
* macro definitions

msg macro string
 pshs d
 ldd #1
 sys write,1f,2f
 puls d
 data
1 fcc &1
2 fdb *-1b
 text
 endm

*
* C intermediate language definitions
*

* conversion operators

CVC equ 5 convert to character
CVI equ 6 convert to integer
CVU equ 7 convert to unsigned
CVL equ 8 convert to long
CVF equ 9 convert to float
CVP equ 10 convert to pointer
*CTI equ 5 char to int
*CTU equ 6 char to unsigned
*CTL equ 7 char to long
*CTF equ 8 char to fp
*ITC equ 9 int to char
*ITU equ 10 int to unsigned
*ITP equ 11 int to pointer
*ITL equ 12 int to long
*ITF equ 13 int to fp
*UTC equ 14 unsigned to char
*UTI equ 15 unsigned to int
*UTP equ 16 unsigned to ptr
*UTL equ 17 unsigned to long
*UTF equ 18 unsigned to fp
*LTC equ 19 long to char
*LTI equ 20 long to int
*LTU equ 21 long to unsigned
*LTP equ 22 long to ptr
*LTF equ 23 long to fp
*FTI equ 24 fp to int
*FTU equ 25 fp to unsigned
*FTL equ 26 fp to long

* unary operators

NOP equ 29 nop operator

FPP equ 30 prefix ++
FMM equ 31 prefix __
BPP equ 32 postfix ++
BMM equ 33 postfix --
NOT equ 34 not !
ADR equ 35 unary &
IND equ 36 indirection *
UNM equ 37 unary minus -
COM equ 38 compliment ~

* binary operators

ADD equ 40 add +
SUB equ 41 subtract -
MUL equ 42 multiply *
DIV equ 43 divide /
MOD equ 44 mod %
SHR equ 45 shift right >>
SHL equ 46 shift left <<
AND equ 47 bit and &
BOR equ 48 bit or |
XOR equ 49 bit xor ^

LND equ 53 logical and &&
LOR equ 54 logical or ||

EQU equ 60 equals ==
NEQ equ 61 not equals !=
LEQ equ 62 less than or equal <=
LES equ 63 less than <
GEQ equ 64 greater than or equal >=
GRT equ 65 greater than >

ADA equ 70 add assign +=
SUA equ 71 subtract assign -=
MUA equ 72 mult assign *=
DIA equ 73 divide assign /=
MOA equ 74 mod assign %=
SRA equ 75 shift right assign >>=
SLA equ 76 shift left assign <<=
ANA equ 77 and assign &=
BOA equ 78 or assign |=
XOA equ 79 xor assign ^=
ASN equ 80 assign =

CXB equ 90 conditional exp branch
CBR equ 91 cond exp bra II
CEN equ 92 end cond expr

ORB equ 93 logical or branch
ORE equ 94 end logical or
ANB equ 95 logical and branch
ANE equ 96 end logical and
ORC equ 97 continue or
ANC equ 98 continue and

DOT equ 99 dot op .

CAL equ 100 function call
PRM equ 101 function parameter
LOD equ 102 load value
SPL equ 103 start parameter list
SPR equ 104 start parameter
CMA equ 105 comma operator

* special operators

ENDITM equ 128 end of item ()
BEGEXP equ 129 start of expression (line #)
ENDEXP equ 130 end of expression ()
NNAME equ 131 variable name (class,type,number/name)
NCON equ 132 constant (type,value)
NNODE equ 133 node number (number)
LABEL equ 134 label (number)
BRANCH equ 135 branch (number)
CBRNCH equ 136 conditional branch (cond,number)
BEGFNT equ 137 begin function (name)
ENDFNT equ 138 end function ()
SWIT equ 139 switch operation (deflab,line,lab-val ...)
STVAR equ 140 static variable (number,name)
AUTVAR equ 141 auto variable (number,name)
REGVAR equ 142 register variable (number,name)
PROFIL equ 143 profile flag ()
TEXT equ 144 text designator ()
DATA equ 145 data designator ()
BSS equ 146 bss designator ()
SSPACE equ 147 statis space (size)
BYTES equ 148 byte data (count,data-bytes)
WORDS equ 149 word data (count,data-words)
DNAME equ 150 data name (name)
EXTERS equ 151 external symbol name (name)
COMDAT equ 152 common data space (size,name)
CMNT equ 153 comment pass through (string)
STRNG equ 154 string (number,string)
BEGBLK equ 155 begin block (label-number)
ENDBLK equ 156 end block (label-number,number,flag)
BEGMOD equ 157 begin module (name)
ENDMOD equ 158 end module ()
CLNSTK equ 159 clean stack (number)
GLOBAL equ 160 global variable declaration (name)
LABELS equ 161 label data for inits (count,data)

