5749129 [rkeene@sledge /home/rkeene/projects/pac]$ cat rskc001.txt
8 General registers (ax[0],bx[1],cx[2],dx[3],ex[4],fx[5],gx[6],hx[7])
Upto 64 `large' STACKS, atleast 1.
1 `IN' FIFO, GEN_BUFFER
1 Condition Bit (cb)
1 Stack Size Value (st)

OPCODES:

00.n[3]		OUT /reg/	  Write 1 byte from lowest byte of reg"N".
01.i[5]		JMP /imm/	  Jump signed-imm"I" bytes.
02.i[5]		JE  /imm/	  Jump signed-imm"I" bytes if CB set.
03.i[5]		JNE /imm/	  Jump signed-imm"I" bytes if CB not set.
04.n[3].i[8]	CMP /reg/ /imm/	  Compare lower byte of imm"I" to reg"N".
05.n[3].i[16]	CMP /reg/ /imm/	  Compare lower word of imm"I" to reg"N".
06.n[3].i[32]	CMP /reg/ /imm/	  Compare imm"I" to reg"N".
07.c[1]		LOOP /bit/	  ?"C"=0: Begin loop (if in loop, nest.)
				  ?"C"=1: End loop(cx--, unless cx=0, then end.)
08.n[3].s[3]	MOV /reg/ /reg/	  Copy contents of reg"S" to reg"N".
09.n[3].i[8]	MOV /reg/ /imm/	  Copy imm"I" to reg"N".
10.n[3].i[16]	MOV /reg/ /imm/	  Copy imm"I" to reg"N".
11.n[3].i[32]	MOV /reg/ /imm/	  Copy imm"I" to reg"N".
12.n[3]		PUSH /reg/	  Copy reg"N" to stack #0.
13.n[3]		POP /reg/	  Move 32 bits from stack #0 to reg"N".
14.n[3]		POP /reg/	  Move 8 bits from stack #0 to reg"N".
15.n[3].s[3]	ADD /reg/ /reg/	  Add reg"S" to reg"N" (store in reg"N".)
16.n[3].i[32]	ADD /reg/ /imm/	  Add imm"I" to reg"N".
17.n[3].i[16]	ADD /reg/ /imm/	  Add imm"I" to reg"N".
18.n[3].i[8]	ADD /reg/ /imm/	  Add imm"I" to reg"N".
19.n[3].s[3]	SUB /reg/ /reg/	  Subtract reg"S" from reg"N" (store in reg"N".)
20.n[3].i[32]	SUB /reg/ /imm/	  Subtract imm"I" from reg"N".
21.n[3].i[16]	SUB /reg/ /imm/	  Subtract imm"I" from reg"N".
22.n[3].i[8]	SUB /reg/ /imm/	  Subtract imm"I" from reg"N".
23.n[3].s[3]	MUL /reg/ /reg/	  Multiply reg"S" by reg"N" (store in reg"N".)
24.n[3].i[32]	MUL /reg/ /imm/	  Multiply imm"I" by reg"N".
25.n[3].i[16]	MUL /reg/ /imm/	  Multiply imm"I" by reg"N".
26.n[3].i[8]	MUL /reg/ /imm/	  Multiply imm"I" by reg"N".
27.n[3].s[3]	DIV /reg/ /reg/	  Divide reg"S" by reg"N" (int=reg"N", rem=dx.)
28.n[3].i[32]	DIV /reg/ /imm/	  Divide imm"I" by reg"N".
29.n[3].i[16]	DIV /reg/ /imm/	  Divide imm"I" by reg"N".
30.n[3].i[8]	DIV /reg/ /imm/	  Divide imm"I" by reg"N".
31.n[3].i[5]	SHR /reg/ /imm/	  Shift reg"N" right imm"I" bits.
32.n[3].i[5]	SHL /reg/ /imm/	  Shift reg"N" left imm"I" bits.
33.n[3].s[3]	SHR /reg/ /reg/	  Shift reg"N" right reg"S" bits.
34.n[3].s[3]	SHL /reg/ /reg/   Shift reg"N" left reg"S" bits.
35.i[5]		PROC /imm/	  Begin definition of proc imm"I" [Not execd].
36.i[5]		CALL /imm/	  Run proc imm"I".
37.null		RET		  End definition of proc.
38.n[3].s[3]	XOR /reg/ /reg/	  Excl-bws-OR reg"N" with reg"S" sto in reg"N".
39.n[3].i[32]	XOR /reg/ /imm/	  Excl-bws-OR reg"N" with imm"I".
40.n[3].i[16]	XOR /reg/ /imm/	  Excl-bws-OR reg"N" with imm"I".
41.n[3].i[8]	XOR /reg/ /imm/	  Excl-bws-OR reg"N" with imm"I".
42.n[3].s[3]	OR /reg/ /reg/	  Bws-OR reg"N" with reg"S" sto in reg"N".
43.n[3].i[32]	OR /reg/ /imm/	  Bws-OR reg"N" with imm"I".
44.n[3].i[16]	OR /reg/ /imm/	  Bws-OR reg"N" with imm"I".
45.n[3].i[8]	OR /reg/ /imm/	  Bws-OR reg"N" with imm"I".
46.n[3].s[3]	AND /reg/ /reg/	  Bws-AND reg"N" with reg"S" sto in reg"N".
47.n[3].i[32]	AND /reg/ /imm/	  Bws-AND reg"N" with imm"I".
48.n[3].i[16]	AND /reg/ /imm/	  Bws-AND reg"N" with imm"I".
49.n[3].i[8]	AND /reg/ /imm/	  Bws-AND reg"N" with imm"I".
50.n[3].s[3]	EXP /reg/ /reg/	  Raise reg"N" to the reg"S" powr sto in reg"N".
51.n[3].i[32]	EXP /reg/ /imm/	  Raise reg"N" to the imm"I" power.
52.n[3].i[16]	EXP /reg/ /imm/	  Raise reg"N" to the imm"I" power.
53.n[3].i[8]	EXP /reg/ /imm/	  Raise reg"N" to the imm"I" power.
54.i[6]		NR-STACKS /imm/	  Set # of stacks <ST> to imm"I".
55.i[|ST|].n[3] PUSH /imm/ /reg/  Copy reg"N" to stack #imm"I".
56.i[|ST|].n[3]	POP /imm/ /reg/	  Move 32bits from stack #imm"I" to reg"N".
57.c[1].i[|ST|].n[3] POP /imm/ /imm/ /reg/
				  ?"C"=0: Move 8bits from stk #imm"I" to reg"N".
				  ?"C"=1: Move 16bits frm stk #imm"I" to reg"N".
58.??????????????????????????????????????????????????????????
59.i[|ST|]	OUT /imm/	  Write stack #imm"I" to disk.
60.null		OUTREG		  Write all registers to disk in order.
61.??????????????????????????????????????????????????????????
62.n[3]		POP /reg/	  Move 16 bits from stack #0 to reg"N".
63.c[5]		EXT /imm/ /.../	  (Least frequently called functions go here)
			?"C"=0:		HLT  (compression okay, all done.)
			?"C"=1: .i[8]; 	DISP Display imm"I" bytes following.
			?"C"=2: 	ABRT (compression failed, all done.)
			?"C"=3: .n[3]; 	LOAD Load 1 byte from GEN_BUF to reg"N".
			?"C"=4: .i[|ST|]; OUTLOW Write lowest order bytes of
					      stack #imm"I" to disk.
			?"C"=5: .i[|ST|]; STFLIP Flip stack #imm"I".
			?"C"=6: .i[1]; 	CWSC (control word size change)
			  ?"I"=0: Enter 5bit Control Word State.
			  ?"I"=1: Enter 6bit Control Word State (default).
			?"C"=7: .i[3].r[6]...; REMAP enter imm"I" bit Control
					         Word State, with opcodes 
						 remapped as opcode X=imm"R"_X.
						 (Example: [3F.07.1.00.3F])
			?"C"=8:
5749130 [rkeene@sledge /home/rkeene/projects/pac]$

Click here to go back to the directory listing.
Click here to download this file.
last modified: 2001-11-07 04:20:19