/lisp 3-23-64 : 1 field /// Null Macro define extend termin /// sign extend B and deposit at A - never used! define 1load A,B 0000 700000 law B 0001 240000 dac A termin /// sign extend B and deposit address part into A - why? define init A,B 0000 700000 law B 0001 260000 dap A termin /// A=A+1, A!=B -> JMP C define index A,B,C 0000 440000 idx A 0001 520000 sas B 0002 600000 jmp C termin define step A,B,C index A,(B,C +0000 440000 idx A +0001 520000 sas (B +0002 600000 jmp C termin define setup A,B 0000 710000 law i B 0001 240000 dac A termin /// so what's R? The program just has 0 define exit 0000 600000 jmp R termin /// only used in load define move A,B 0000 200000 lac A 0001 240000 dac B termin define load A,B move (B,A +0000 200000 lac (B +0001 240000 dac A termin define count A,B 0000 460000 isp A 0001 600000 jmp B termin define test K,P 0000 500000 sad (K 0001 600000 jmp P termin /// decrease (some number) by one define undex A /// load AC with -1, add A to it, and write it back 0000 710001 law i 1 0001 400000 add A 0002 240000 dac A termin /// swap AC & IO define swap 0000 663777 rcl 9s 0001 663777 rcl 9s termin 652000 smi=spi i 640500 szm=sza sma-szf 650500 spq=szm i 000000 xy=0 760400 xx=hlt 651600 clo=spa sma szo i-szf-szf 540000 mul=540000 560000 div=560000 /// Undefined in ISP, *1ASR, and LISP Source /// 764200 clc start