78 lines
2.7 KiB
C
78 lines
2.7 KiB
C
/*
|
||
StarForth — Steady-State Virtual Machine Runtime
|
||
|
||
Copyright (c) 2023–2025 Robert A. James
|
||
All rights reserved.
|
||
|
||
This file is part of the StarForth project.
|
||
|
||
Licensed under the StarForth License, Version 1.0 (the "License");
|
||
you may not use this file except in compliance with the License.
|
||
|
||
You may obtain a copy of the License at:
|
||
https://github.com/star.4th@proton.me/StarForth/LICENSE.txt
|
||
|
||
This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||
express or implied, including but not limited to the warranties of
|
||
merchantability, fitness for a particular purpose, and noninfringement.
|
||
|
||
See the License for the specific language governing permissions and
|
||
limitations under the License.
|
||
|
||
StarForth — Steady-State Virtual Machine Runtime
|
||
Copyright (c) 2023–2025 Robert A. James
|
||
All rights reserved.
|
||
|
||
This file is part of the StarForth project.
|
||
|
||
Licensed under the StarForth License, Version 1.0 (the "License");
|
||
you may not use this file except in compliance with the License.
|
||
|
||
You may obtain a copy of the License at:
|
||
https://github.com/star.4th@proton.me/StarForth/LICENSE.txt
|
||
|
||
This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||
express or implied, including but not limited to the warranties of
|
||
merchantability, fitness for a particular purpose, and noninfringement.
|
||
|
||
See the License for the specific language governing permissions and
|
||
limitations under the License.
|
||
|
||
*/
|
||
|
||
#ifndef LOGICAL_WORDS_H
|
||
#define LOGICAL_WORDS_H
|
||
|
||
#include "vm.h"
|
||
|
||
/**
|
||
* @defgroup logical_ops FORTH-79 Logical Operations
|
||
* @{
|
||
*
|
||
* @brief FORTH-79 Standard logical and comparison operations
|
||
*
|
||
* @details Implementation of the following FORTH-79 words:
|
||
* - AND ( n1 n2 -- n3 ) Bitwise AND
|
||
* - OR ( n1 n2 -- n3 ) Bitwise OR
|
||
* - XOR ( n1 n2 -- n3 ) Bitwise XOR
|
||
* - NOT ( n1 -- n2 ) Bitwise NOT
|
||
* - 0= ( n -- flag ) True if n is zero
|
||
* - 0< ( n -- flag ) True if n is negative
|
||
* - 0> ( n -- flag ) True if n is positive
|
||
* - = ( n1 n2 -- flag ) True if n1 equals n2
|
||
* - < ( n1 n2 -- flag ) True if n1 < n2
|
||
* - > ( n1 n2 -- flag ) True if n1 > n2
|
||
* - U< ( u1 u2 -- flag ) True if u1 < u2 (unsigned)
|
||
* - U> ( u1 u2 -- flag ) True if u1 > u2 (unsigned)
|
||
* - WITHIN ( n low high -- flag ) True if low <= n < high
|
||
* @}
|
||
*/
|
||
|
||
/*
|
||
* @brief Registers all logical and comparison words with the Forth virtual machine
|
||
*
|
||
* @param vm Pointer to the Forth virtual machine instance
|
||
*/
|
||
void register_logical_words(VM * vm);
|
||
|
||
#endif /* LOGICAL_WORDS_H */ |