Transfer Instructions: JUMP, CALL, RET, JZ, JCZ
Memory Instructions: LOAD, STORE, LOADP, STOREP, LIT
ALU Instructions: COM, XOR, AND, ADD, SHL, SHR, ADDNZ
Register Instructions: LOADA, STOREA, DUP, DROP, OVER, NOP
The F21 had 27 instructions to the MuP21's 24. (Only 23 are listed
above, hmm.) They were renamed:
Code Name Description Forth (with a variable named A)
00 else unconditional jump ELSE
01 T0 jump if T0-19 is false w/ no drop DUP IF
02 call push PC+1 to R, jump :
03 C0 jump if T20 is false CARRY? IF
06 RET pop PC from R (subroutine return) ;
08 @R+ fetch from address in R, increment R R@ @ R> 1+ >R
09 @A+ fetch from address in A, increment A A @ @ 1 A +!
0A # fetch from PC+1, increment PC LIT
0B @A fetch from address in A A @ @
0C !R+ store to address in R, increment R R@ ! R> 1+ >R
0D !A+ store to address in A, increment A A @ ! 1 A +!
0F !A store to address in A A @ !
10 com complement T -1 XOR
11 2* left shift T, 0 to T0 2*
12 2/ right shift T, T20 to T19 2/
13 +* add S to T if T0 is true DUP 1 AND IF OVER + THEN
14 -or exclusive-or S to T XOR
15 and and S to T AND
17 + add S to T +
18 pop pop R, push to T R>
19 A push A to T A @
1A dup push T to T DUP
1B over push S to T OVER
1C push pop T, push to R >R
1D A! pop T to A A !
1E nop delay 2ns NOP
1F drop pop T DROP