small adjustments

This commit is contained in:
dick 1986-02-28 17:46:09 +00:00
parent 43fd3df629
commit 1cd71875ac
2 changed files with 32 additions and 2 deletions

View file

@ -1,6 +1,8 @@
This it the text of IR-81, This it the text of IR-81,
DESCRIPTION OF A MACHINE ARCHITECTURE FOR USE WITH BLOCK STRUCTURED LANGUAGES DESCRIPTION OF A MACHINE ARCHITECTURE FOR USE WITH BLOCK STRUCTURED LANGUAGES
The file em.i (text of the defining interpreter) was hand-edited from int/em.p
To print, set NROFF and TBL in the Makefile and call make. To print, set NROFF and TBL in the Makefile and call make.
It uses the kun macro package which is also distributed. It uses the kun macro package which is also distributed.

View file

@ -588,7 +588,7 @@ Instructions that check for undefined integer or floating-point
values and underflow or overflow values and underflow or overflow
are indicated below by (*). are indicated below by (*).
.N 1 .N 1
.DS B .DS
.ta 12n .ta 12n
GROUP 1 \- LOAD GROUP 1 \- LOAD
@ -608,7 +608,9 @@ GROUP 1 \- LOAD
LDE \*g : Load double external (two consecutive externals are stacked) LDE \*g : Load double external (two consecutive externals are stacked)
LDF \*f : Load double offsetted (top of stack + \*f yield address) LDF \*f : Load double offsetted (top of stack + \*f yield address)
LPI \*p : Load procedure identifier LPI \*p : Load procedure identifier
.DE
.DS
GROUP 2 \- STORE GROUP 2 \- STORE
STL \*l : Store local or parameter STL \*l : Store local or parameter
@ -620,7 +622,9 @@ GROUP 2 \- STORE
SDL \*l : Store double local or parameter SDL \*l : Store double local or parameter
SDE \*g : Store double external SDE \*g : Store double external
SDF \*f : Store double offsetted SDF \*f : Store double offsetted
.DE
.DS
GROUP 3 \- INTEGER ARITHMETIC GROUP 3 \- INTEGER ARITHMETIC
ADI \*w : Addition (*) ADI \*w : Addition (*)
@ -631,7 +635,9 @@ GROUP 3 \- INTEGER ARITHMETIC
NGI \*w : Negate (two's complement) (*) NGI \*w : Negate (two's complement) (*)
SLI \*w : Shift left (*) SLI \*w : Shift left (*)
SRI \*w : Shift right (*) SRI \*w : Shift right (*)
.DE
.DS
GROUP 4 \- UNSIGNED ARITHMETIC GROUP 4 \- UNSIGNED ARITHMETIC
ADU \*w : Addition ADU \*w : Addition
@ -641,7 +647,9 @@ GROUP 4 \- UNSIGNED ARITHMETIC
RMU \*w : Remainder RMU \*w : Remainder
SLU \*w : Shift left SLU \*w : Shift left
SRU \*w : Shift right SRU \*w : Shift right
.DE
.DS
GROUP 5 \- FLOATING POINT ARITHMETIC GROUP 5 \- FLOATING POINT ARITHMETIC
ADF \*w : Floating add (*) ADF \*w : Floating add (*)
@ -651,13 +659,17 @@ GROUP 5 \- FLOATING POINT ARITHMETIC
NGF \*w : Floating negate (*) NGF \*w : Floating negate (*)
FIF \*w : Floating multiply and split integer and fraction part (*) FIF \*w : Floating multiply and split integer and fraction part (*)
FEF \*w : Split floating number in exponent and fraction part (*) FEF \*w : Split floating number in exponent and fraction part (*)
.DE
.DS
GROUP 6 \- POINTER ARITHMETIC GROUP 6 \- POINTER ARITHMETIC
ADP \*f : Add \*f to pointer on top of stack ADP \*f : Add \*f to pointer on top of stack
ADS \*w : Add \*w-byte value and pointer ADS \*w : Add \*w-byte value and pointer
SBS \*w : Subtract pointers in same fragment and push diff as size \*w integer SBS \*w : Subtract pointers in same fragment and push diff as size \*w integer
.DE
.DS
GROUP 7 \- INCREMENT/DECREMENT/ZERO GROUP 7 \- INCREMENT/DECREMENT/ZERO
INC \*- : Increment word on top of stack by 1 (*) INC \*- : Increment word on top of stack by 1 (*)
@ -670,7 +682,9 @@ GROUP 7 \- INCREMENT/DECREMENT/ZERO
ZRE \*g : Zero external ZRE \*g : Zero external
ZRF \*w : Load a floating zero of size \*w ZRF \*w : Load a floating zero of size \*w
ZER \*w : Load \*w zero bytes ZER \*w : Load \*w zero bytes
.DE
.DS \" ???
GROUP 8 \- CONVERT (stack: source, source size, dest. size (top)) GROUP 8 \- CONVERT (stack: source, source size, dest. size (top))
CII \*- : Convert integer to integer (*) CII \*- : Convert integer to integer (*)
@ -682,7 +696,9 @@ GROUP 8 \- CONVERT (stack: source, source size, dest. size (top))
CIU \*- : Convert integer to unsigned CIU \*- : Convert integer to unsigned
CUU \*- : Convert unsigned to unsigned CUU \*- : Convert unsigned to unsigned
CFU \*- : Convert floating to unsigned CFU \*- : Convert floating to unsigned
.DE
.DS
GROUP 9 \- LOGICAL GROUP 9 \- LOGICAL
AND \*w : Boolean and on two groups of \*w bytes AND \*w : Boolean and on two groups of \*w bytes
@ -691,18 +707,24 @@ GROUP 9 \- LOGICAL
COM \*w : Complement (one's complement of top \*w bytes) COM \*w : Complement (one's complement of top \*w bytes)
ROL \*w : Rotate left a group of \*w bytes ROL \*w : Rotate left a group of \*w bytes
ROR \*w : Rotate right a group of \*w bytes ROR \*w : Rotate right a group of \*w bytes
.DE
.DS
GROUP 10 \- SETS GROUP 10 \- SETS
INN \*w : Bit test on \*w byte set (bit number on top of stack) INN \*w : Bit test on \*w byte set (bit number on top of stack)
SET \*w : Create singleton \*w byte set with bit n on (n is top of stack) SET \*w : Create singleton \*w byte set with bit n on (n is top of stack)
.DE
.DS
GROUP 11 \- ARRAY GROUP 11 \- ARRAY
LAR \*w : Load array element, descriptor contains integers of size \*w LAR \*w : Load array element, descriptor contains integers of size \*w
SAR \*w : Store array element SAR \*w : Store array element
AAR \*w : Load address of array element AAR \*w : Load address of array element
.DE
.DS
GROUP 12 \- COMPARE GROUP 12 \- COMPARE
CMI \*w : Compare \*w byte integers, Push negative, zero, positive for <, = or > CMI \*w : Compare \*w byte integers, Push negative, zero, positive for <, = or >
@ -717,7 +739,9 @@ GROUP 12 \- COMPARE
TNE \*- : True if not equal, i.e. iff top of stack non zero TNE \*- : True if not equal, i.e. iff top of stack non zero
TGE \*- : True if greater or equal, i.e. iff top of stack >= 0 TGE \*- : True if greater or equal, i.e. iff top of stack >= 0
TGT \*- : True if greater, i.e. iff top of stack > 0 TGT \*- : True if greater, i.e. iff top of stack > 0
.DE
.DS \" ???
GROUP 13 \- BRANCH GROUP 13 \- BRANCH
BRA \*b : Branch unconditionally to label \*b BRA \*b : Branch unconditionally to label \*b
@ -735,14 +759,18 @@ GROUP 13 \- BRANCH
ZNE \*b : Branch not zero ZNE \*b : Branch not zero
ZGE \*b : Branch greater or equal zero ZGE \*b : Branch greater or equal zero
ZGT \*b : Branch greater than zero ZGT \*b : Branch greater than zero
.DE
.DS
GROUP 14 \- PROCEDURE CALL GROUP 14 \- PROCEDURE CALL
CAI \*- : Call procedure (procedure identifier on stack) CAI \*- : Call procedure (procedure identifier on stack)
CAL \*p : Call procedure (with identifier \*p) CAL \*p : Call procedure (with identifier \*p)
LFR \*s : Load function result LFR \*s : Load function result
RET \*z : Return (function result consists of top \*z bytes) RET \*z : Return (function result consists of top \*z bytes)
.DE
.DS
GROUP 15 \- MISCELLANEOUS GROUP 15 \- MISCELLANEOUS
ASP \*f : Adjust the stack pointer by \*f ASP \*f : Adjust the stack pointer by \*f