@@ -1,4 +1,9 @@
.define .aar2
+.sect .text
+.sect .rom
+.sect .data
+.sect .bss
! Load address of array element, decriptor contains 2-bytes integers
! Expects on stack: pointer to array descriptor
.define .adi4
! Add two 32 bits signed or unsigned integers
! Expects on stack: operands
.define .and
! Any size logical-'and'.
! Expects: size in de-registers
.define .blm
! Block move
! Expects in de-reg: size of block
.define .cii
! Convert integer to integer
! Expects in a-reg: 1 for signed integer to signed integer (cii)
.define .cmi4
! Compare 32 bits integers
! Expects: operands on stack
.define .cms
! Any size compare
.define .com
! Complement bytes on top of stack.
! Expects in de-registers: number of bytes
.define .csa
! Case jump
! Expects on stack: address of case descriptor
.define .csb
! Table lookup jump
.define .dup
! Duplicate top bytes of stack
! Expects in de-registers: number of bytes to duplicate
@@ -1,5 +1,10 @@
-
.define .dvi2
+
! 16 bits signed and unsigned integer divide and remainder routine
! Bit 0 of a-reg is set iff quotient has to be delivered
.define .dvi4
! 32 bits integer divide and remainder routine
.define .exg
! Exchange top bytes of stack
! Expects in de-registers the number of bytes to be exchanged.
@@ -3,6 +3,11 @@
.define .zrf4,.zrf8
.define .cfi,.cif,.cuf,.cff,.cfu
.define .cmf4,.cmf8
! Floating point is not implemented
.define .inn
! Any size bit test on set.
! Expects in de-reg: size of set (in bytes)
.define .ior
! Any size inclusive-or.
.define .lar2
! Load array element, descriptor contains 2-bytes integers
.define .loi
! Load indirect
! Expects in de-registers: number of bytes to be loaded
.define .mli2
! 16 bits signed integer multiply
! the algorithm multiples A * B, where A = A0*2^8 + A1 and B = B0*2^8 + B1
.define .mli4
! 32 bits signed and unsigned integer multiply routine
! Expects operands on stack
.define .mlu2
! 16 bits unsigned multiply routine
.define .ngi4
! Exchange 32 bits integer by its two's complement
! Expects operand on stack
.define .nop
.nop: push b
lhld hol0+4
.define .rck
! Range check
! Expects on stack: address of range check descriptor
.define .rol4
! Rotate 4 bytes left
! Expects in de-reg: number of rotates
.define .ror4
! Rotate 4 bytes right
.define .sar2
! Store array element, descriptor contains 2-bytes integers
.define .sbi4
! Subtract two 32 bits signed or unsigned integers.
.define .set
! Create set with one bit on
! Expects in de-reg: size of set to be created
.define .set2
! Create 16 bits set with one bit on
! Expects in de-reg: bit number
.define .sli2
! Shift 16 bits integer left
! Expects on stack: number of shifts
.define .sli4
! Shift 32 bits integer left
.define .sri2
! Shift 16 bits signed or unsigned integer right
! Expects in a-reg.: 1 if signed integer
.define .sri4
! Shift 32 bits signed or unsigned integer right
.define .sti
! Store indirect
! Expects on stack: number of bytes to be stored
.define .xor
! Any size exclusive-or.