org 0 .BINTO $FFF ; % MONITOR FUER Z8000 ; % RDK 1980-03-06 dw $0000 ; WORD: 0; dw $4000 ; WORD: 4000H; % FCW RESET dw $0010 ; WORD: START1; % PC RESET dw $0000 ; WORD: 0; dw $4000 ; WORD: 4000H % PSEUDO CODE dw $02B8 ; WORD: PSEUDO; dw $4000 ; WORD: 4000H; dw $02E0 ; WORD: SYSCALL; % SYSTEM CALL START1: dw $210F, $1FFE ; LD R15,#1FFE; % SYSTEM SP dw $2101, $0000 ; LD R1,0; % FCW INIT dw $6F01, $1E20 ; LD FCWSTO,R1; % NORM MODE dw $2101, $1F00 ; LD R1,1F00H; % USER STACK dw $6F01, $1E1E ; LD REGSTO(30),R1; dw $2101, $0098 ; LD R1,98H; dw $3B16, $FF06 ; OUT $FF06,R1; % INIT UART dw $2101, $000B ; LD R1,0BH; dw $3B16, $FF04 ; OUT #FFF0,R1; dw $2101, $000D ; LD R1,0DH; % TESTAUSGABE UART dw $3B16, $FF00 ; OUT #FF00,R1; % OK NUN INIT SP ETC dw $2101, $0000 ; LD R1,0; dw $7D1D ; LDCTL PSAPOFF,R1; dw $2101, $17FE ; LD R1,#17FE; dw $7D1F ; LDCTL NSPOFF,R1; % STACK LADEN LOOP: dw $DEFA ; CALR SPACE; dw $DEFB ; CALR SPACE; dw $7603, $0272 ; LD R3,^TXT1; dw $DEFA ; CALR PRINT11; LOOPMAIN: dw $2101, $003E ; LD R1,">"; dw $DE64 ; CALR CO; dw $DF0B ; CALR ECHO; % IN R1 ZEICHEN dw $0B01, $004C ; CP R1,"L"; % LOAD dw $5E06, $009C ; JP ZR,LADEN; dw $0B01, $0042 ; CP R1,"B"; % BASIC STARTEN dw $5E06, $0B66 ; JP ZR,START; dw $0B01, $004E ; CP R1,"N"; dw $5E06, $048C ; JP ZR,RSTART; dw $0B01, $0044 ; CP R1,"D"; % DISPLAY A TO B dw $5E06, $0190 ; JP ZR,DISPLAY; dw $0B01, $0045 ; CP R1,"E"; % ENTER dw $5E06, $01B8 ; JP ZR,ENTER; dw $0B01, $0047 ; CP R1,"G"; % GO dw $5E06, $00E2 ; JP ZR,GO; dw $0B01, $0052 ; CP R1,"R"; dw $5E06, $00F4 ; JP ZR,REGISTER; dw $2101, $003F ; CP R1,"?"; dw $DE84 ; CALR CO; dw $DF52 ; CALR CRLF111; dw $E8DB ; JR LOOPMAIN; ; % EINZELNE BEFEHLE ; ; LADEN: % LADEN BINAER ; % NACH ADR EXPR dw $DF4D ; CALR EXPR11; % RS ADDRESSE ; % WARTEN NULL FF FOLGE LPLAD1: dw $DE92 ; CALR CI; dw $0B01, $0000 ; CP R1,0; dw $EEFC ; JR NZ,LPLAD1; LPLAD2: dw $DE96 ; CALR CI; dw $0B01, $00FF ; CP R1,0FFH; dw $5E0E, $00A6 ; JP NZ,LPLAD2; LPLAD3: dw $DE9B ; CALR CI; dw $0B01, $00FF ; CP R1,0FFH; dw $5E06, $00B0 ; JP ZR,LPLADB; dw $0B01, $0000 ; CP R1,0; dw $5E0E, $009E ; JP NZ,LPLAD1; % FEHLER ; % LAENGE FIRST ; % 0 FF FF FF 0 LL LH DATA dw $DEA4 ; CALR CI; dw $A09E ; LDB RL6,RL1; dw $DEA6 ; CALR CI; dw $A096 ; LDB RH6,RL1; MLPLAD: dw $DEA8 ; CALR CI; dw $2E59 ; LDB R5^,RL1; dw $A950 ; INC R5,1; dw $AB60 ; DEC R6,1; dw $5E0E, $00CA ; JP NZ,MLPLAD; dw $DF71 ; CALR CRLF111; dw $A151 ; LD R1,R5; dw $DF4F ; CALR PRRISP; dw $DF74 ; CALR CRLF111; dw $5E08, $0052 ; JP LOOPMAIN; ; ; ; GO: dw $DF70 ; CALR EXPR11; dw $A15E ; LD R14,RS; dw $6101, $1E20 ; LD R1,FCWSTO; dw $7D1A ; LDCTL FCW,R1 % FCW LADEN!!! dw $5C01, $000D, $1E00 ; LDM R0,REGSTO,14; % NUR R0 BIS R13 !! dw $1EE8 ; JP R14^; REGISTER: ; $%NICHT ALLE GUELTIG % NICHT ALLE GUELTIG ; $%FALLS NICHT DIRECT % FALLS NICHT DIRECT ; $%ZU REG SPRG % ZU REG SPRG dw $DF80 ; CALR CRLF111; % REGST0 AUSG. 0 BIS 15 dw $7603, $01EE ; LD R3,^TXTFCW; dw $dF4F ; CALR PRINT11; dw $6101, $1E20 ; LD R1,FCWSTO, dw $DF62 ; CALR PRR1SP; dw $DF87 ; CALR CRLF111; dw $7603, $013C ; LD R3,^TXT2; dw $DF56 ; CALR PRINT11; dw $7604, $1E00 ; LD R4,^REGST0; dw $2105, $0008 ; LD R5,8; LOPA: dw $2141 ; LD R1,R4^; % REGS dw $DF6C ; CALR PRR1SP, dw $A941 ; INC R4,2; dw $AB50 ; DEC R5,15 dw $EEFB ; JR NZ,LOPA; dw $93F4 ; PUSH R15^,R4; dw $DF95 ; CALR CRLF111; dw $7603, $0166 ; LD R3,^TXT3; dw $DF64 ; CALR PRINT11; dw $97F4 ; POP R4,R15^; dw $2105, $0008 ; LD R5,8; LOPB: dw $2141 ; LD R1,R4^; dw $DF79 ; CALR PRRISP; dw $A941 ; INC R4,2; dw $AB50 ; DEC R5,1; dw $EEFB ; JR NZ,LOPB; dw $DFA1 ; CALR CRLF111; dw $5E08, $0052 ; JP LOOPMAIN; ; ; TXT2: dw $5230, $2020, $2052 ; WORD: "R1 R2 R3 R4 R5 R6 R7 "; dw $3120, $2020, $5232 ; dw $2020, $2052, $3320 ; dw $2020, $5234, $2020 ; dw $2052, $3520, $2020 ; dw $5236, $2020, $2052 ; dw $3720 ; dw $0D0A ; WORD: 0D0AH; dw $0000 ; WORD: 0; TXT3: dw $5238, $2020, $2052 ; WORD: "R8 R9 R10 R11 R12 R13 R14 R15"; dw $3920, $2020, $5231 ; dw $3020, $2052, $3131 ; dw $2020, $5231, $3220 ; dw $2052, $3133, $2020 ; dw $5231, $3420, $2052 ; dw $3135 ; dw $0D0A ; WORD: 0D0AH; dw $0000 ; WORD: 0; ; DISPLAY: ; % A TO B dw $DFC7 ; CALR EXPFCL1; % IN R5 IST PARAM 1 dw $A156 ; LD R6,R5; dw $DFC9 ; CALR EXPR11; % R6 ANFADR R5 ENDADR dw $DFD1 ; CALR CRLF111; MLOOP1: dw $A161 ; LD R1,R6; dw $DFAF ; CALR PRRISP dw $DFA4 ; CALR SPACE; dw $2103, $0008 ; LD R3,8; % ACHT WERTE PRO ZEILE MLOOP2: dw $2161 ; LD R1,R6^; dw $DFB4 ; CALR PRFLISP; dw $A961 ; INC R6,2; % WORD dw $AB30 ; DEC R3,1; dw $EEFB ; JR NZ,MLOOP2; % ACHTMAL dw $DFDC ; CALR CRLF111; dw $8B65 ; CP R5,R6; % BEI CARRY STOP dw $EFF3 ; JR NC,MLOOP1; dw $DFDF ; CALR CRLF111; dw $5E0B, $0052 ; JP LOOPMAIN; ; ; ; ENTER ADR A,CR ENDE -, ENTER: dw $DFDB ; CALR EXPR11; dw $A156 ; LD R6,R5; % R6 IST ADR COUNTER ELOOP: dw $A161 ; LD R1,R6; % ADR AUSGEBEN dw $DFC1 ; CALR PRRISP; dw $DFB6 ; CALR SPACE; dw $2161 ; LD R1,R6^; % INHALT dw $DFC4 ; CALR PRRISP; dw $DFE2 ; CALR EXPR11; % WERT HOLEN dw $0B02, $002D ; CP R2,"-"; dw $E60D ; JR ZR,MINUS; dw $0B02, $002C ; CP R2,"."; % MON MODIFY dw $E605 ; JR ZR,C0NTSK; % SKIP STORE dw $0B02, $0020 ; CP R2,1; dw $5E0E, $0052 ; JP NZ,L0OPMAIN; dw $2F65 ; LD R6^,R5; % ABBSPEICHERN CONTSFC: dw $2161 ; LD R1,R6^; dw $DFAB ; CALR PRTR1; dw $DFF7 ; CALR CRLF111; dw $A961 ; INC R6,2; % WORD dw $E8EA ; JR ELOOP; MINUS: dw $DFFA ; CALR CRLF111; dw $AB61 ; DEC R6,2; dw $E8E7 ; JR ELOOP; TXTFCW: dw $4643, $5720, $3A20 ; WORD: "FCW : "; dw $0000 ; WORD: 0; ; CRLF111: dw $2101, $000D ; LD R1,0DH; dw $DF36 ; CALR CO; dw $2101, $000A ; LD R1,0AH; dw $5E08, $0390 ; JP CO; ; EXPR11: ; % GET 16BIT INTO R5 dw $2105, $0000 ; LD R5,0; EX00: dw $DFE3 ; CALR ECHO; % GET CHAR TO R1 EXIT: dw $DFFB ; CALR NIBBLE; % WANDELN dw $E717 ; JR CY,EX22; % TERMINATOR IN R1 dw $B359, $0004 ; SLA R5,4; dw $8515 ; OR R5,R1; % R1 OR R5->R5 dw $E8F9 ; JR EX00; NIBBLE: dw $0701, $00FF ; AND R1,0FFH; dw $A112 ; LD R2,R1; % RETTEN dw $0301, $0030 ; SUB R1,"0"; dw $9E07 ; RET CY; dw $0B01, $0017 ; CP R1,"G"-"0"; dw $8D85 ; COMFLG CY; dw $9E07 ; RET CY; dw $0B01, $000A ; CP R1,10; dw $8D85 ; COMFLG CY; dw $9E0F ; RET NC; dw $0301, $0007 ; SUB R1,"A"-"9"-1; dw $0B01, $000A ; CP R1,10; dw $9E08 ; RET; EX22: dw $9E08 ; RET; ; PRRISP: dw $DFDA ; CALR PRTR1; dw $5E08, $0256 ; JP SPACE; ; ECHO: dw $DF65 ; CALR CI; dw $DF5C ; CALR CO; dw $0A09, $0D0D ; CPB RL1,0DH; dw $9E0E ; RET NZ; dw $2101, $000A ; LD R1,0AH; dw $5E08, $0390 ; JP CO; ; ; SPACE: dw $2101, $0020 ; LD R1," "; dw $5E08, $0390 ; JP CO; ; ; % PRINT11 (R3) DRK BIS 0 PRIN11: dw $2134 ; LD R4,R3^; % LOAD 2 BYTES dw $0B04, $0000 ; CP R4,0; dw $9E06 ; RET ZR; % ZERO DANN ENDE dw $A049 ; LDB RL1,RH4; dw $DF6D ; CALR CO; dw $A0C9 ; LDB RL1,RL4; dw $DF6F ; CALR CO; dw $A931 ; INC R3,2; dw $E8F6 ; JR PRINT11; TXT1: dw $5A38, $3030, $3020 ; WORD: "Z8000 RDK MONITOR. 1.0"; dw $5244, $4B20, $4D4F ; dw $4E49, $544F, $5220 ; dw $312E, $3020 ; dw $0D0A ; WORD: 0D0AH; dw $0000 ; WORD: 0; ; PRTR1: % DRUCKE R1 AUS ; % SEDEZIMAL ; dw $93F1 ; PUSH R15^,R1; dw $A019 ; LDB RL1,RH1; % FIRST HIGH dw $DFFD ; CALR NMOLIT; dw $97F1 ; POP R1,R15^; dw $DFFF ; CALR NMOUT; dw $9E08 ; RET; ; NMOUT: dw $93F1 ; PUSH R15^,R1; dw $B296 ; RRB RL1,2; dw $B296 ; RRB RL1,2; dw $DFFF ; CALR OUTCH; dw $97F1 ; POP R1,R15^; ; dw $0701, $000F ; AND RL1,0FH; dw $0101, $0030 ; ADD R1,"0"; dw $0B01, $003A ; CP R1,"9"+1; dw $E702 ; JR CY,OUTCH; dw $0101, $0007 ; ADD R1,"A"-"9"-1; OUTCH: dw $5E08, $0390 ; JP CO; ; ; PSEUDO: dw $57F0, $1E24 ; POP INSTRW,R15^; dw $57F0, $1E20 ; POP FCWST0,R15^; dw $57F0, $1E22 ; POP PCBT0,R15^; dw $7603, $0362 ; LD R3,^TXTPS; dw $D036 ; CALR PRINT11; dw $6101, $1E24 ; LD R1,INSTRW; dw $D049 ; CALR PRRISP; dw $6101, $1E22 ; LD R1,PCSTO; dw $AB11 ; DEC R1,2; % GENAUER STAND dw $5F00, $023E ; CALL PRRISP; dw $D073 ; CALR CRLF11; dw $5E08, $0052 ; JP LOOPMAIN; SYSCALL: dw $5C09, $000F, $1E00 ; LDM REGSTO,R0,16; % SAVE REGS dw $97F2 ; POP R2,0FFH; % IDENT dw $0702, $00FF ; AND R2,0FFH; dw $57F0, $1E20 ; POP FCWST0,R15^; % DIREKT dw $57F0, $1E22 ; POP PCSTO,R1,R15^; % ADR NORM/SYS dw $0B02, $0001 ; CP R2,1; % CI NACH R1 dw $5E0E, $0300 ; JP NZ,SK1; dw $DFC1 ; CALR CIS dw $E820 ; JR FINA; SK1: dw $0B02, $0002 ; CP R2,2; % CO VON R1 dw $EE02 ; JR NZ,SK2; dw $DFBC ; CALR CO; dw $E81B ; JR FINA; SK2: dw $0B02, $0003 ; CP R2,3; dw $EE02 ; JR NZ,SK3 dw $DFD0 ; CALR CSTSA; dw $E816 ; JR FINA; SK3: dw $0B02, $00FF ; CP R2,255; % TRAP dw $5E06, $00F4 ; JP ZR,REGISTER; dw $0B02, $0000 ; CP R2,0 % RSTART dw $5E06, $0052 ; JP ZR,LOOPMAIN; dw $93F2 ; PUSH R15^,R2; dw $7603, $0350 ; LD R3,^TXTBR; dw $D067 ; CALR PRINT11; dw $97F2 ; POP R2,R15^; dw $A121 ; LD R1,R2; dw $D07A ; CALR PRRISP; dw $6101, $1E22 ; LD R1,PCST0; dw $AB11 ; DEC R1,R2; % GENAUER STAND dw $D07E ; CALR PRRISP; dw $D0A3 ; CALR CRLF111; dw $5E08, $0052 ; JP LOOPMAIN; FINA: dw $6100, $1E20 ; LD R0,FCWSTO; dw $7D0A ; LDCTL FCW,R0; dw $6100, $1E00 ; LD R0,REGSTO; % HIER R0 ZURUECK dw $53F0, $1E22 ; PUSH R15^,PCST0; % AUF NORM STK dw $9308 ; RET; % ODER SYS ; ; TXTBR: dw $2A53, $9553, $2045 ; WORD: "*SYS ERR NR AT "; dw $5252, $204E, $5220 ; dw $4154, $2020 ; 0; dw $000 ; WORD: TXTPSX: dw $2A50, $5320, $494E ; WORD: "*PS INSTR AT "; dw $5354, $5220, $4164 ; dw $2020 ; dw $0000 ; WORD: 0; ; ; ; ; CSTSA: dw $3B14, $FF02 ; IN R1,#FF02; dw $0701, $0008 ; AND R1,8; dw $9E08 ; RET; % ZERO FALLS KEIN ZEICHEN ; CI: ; % R1,TEMP dw $3B14, $FF02 ; IN R1,#FF02; dw $0701, $0008 ; AND R1,8; dw $E6FB ; JR ZR,CI; dw $3B14, $FF00 ; IN R1,#FF00; dw $0701, $00FF ; AND R1,0FFH; % PAR NEC ETC dw $9E08 ; RET ; ; CO: dw $93F2 ; PUSH R15^,R2; CO1: dw $3B24, $FF02 ; IN R2,#FF02; dw $0702, $0010 ; AND R2,#10; dw $E6FB ; JR ZR,C01; dw $97F2 ; POP R2,R15^; dw $3B16, $FF00 ; OUT #FF00,R1; dw $9E08 ; RET; ; ; %***************************** ; % RDKBASIC FUER Z8000 * ; % 1980-03-02 V 1 . 0 * ; % COPYRIGHT 1980 * ; % BY ROLF-DIETER KLEIN * ; %***************************** ; ; % DEFINITIONEN ; % R1 IST AKKU ; % R4 IST HL ; % R5 IST DE ; % R6 IST BC ; dw $5E08, $0B66 ; JP START; dw $7F01 ; CI11: SC 1; dw $9E08 ; RET; dw $7F02 ; SC 2; dw $9E08 ; RET; CSTS: dw $7F03 ; SC 3; dw $9E08 ; RET; ; COMP: ; % HL MIT DE MGL dw $8B54 ; CP R4,R5; dw $9E08 ; RET; ; IGNB: dw $2059 ; LDB RL1,R5^; dw $0A09, $2020 ; CPB RL1," "; dw $9E0E ; RET NZ; dw $A950 ; INC R5,1: dw $E8FA ; JR IGNB; % BYTE ZUGRIFF ; FINI: dw $97F1 ; POP R1,RI5^; % DUMMY dw $DD40 ; CALR FIN; dw $5E08, $096A ; JP QWHAT; ; TSTV: dw $D00B ; CALR IGNB; dw $0209, $4040 ; SUBB RL1,4OH; dw $9E07 ; RET CY; dw $EE10 ; JR NZ,TV1; dw $A950 ; INC R5,1; % BYTE dw $DDA4 ; CALR PARN; dw $8144 ; ADD R4,R4; dw $5E07, $0464 ; JP CY,QHOW; dw $93F5 ; PUSH R15^,R5; dw $AD45 ; EX R5,R4; ; dw $DD7C ; CALR SIZE; dw $8B54 ; CP FH,RS; dw $5E07, $09AC ; JP CY,QSORRY dw $6104, $1216 ; LD R4,TXTXEND; dw $8354 ; SUB R4,R5; dw $97F5 ; POP RS,R15^; dw $9E08 ; RET ; ; TV1: dw $0A09, $1B1B ; CPB RL1,1BH; dw $8D85 ; COMFLG CY; dw $9E07 ; RET CY; dw $A950 ; INC R5,1; dw $7604, $11DA ; LD R4,^VARBGN; dw $C100 ; LDB RH1,0; dw $B318 ; RLC R1,1; dw $8114 ; ADD R4,R1; dw $9E08 ; RET; TSTC: dw $2DF4 ; EX R4,R15^; dw $D02C ; CALR IGNB; dw $0A49 ; CPB RL1,R4^; dw $E608 ; JR ZR,TC3; dw $A941 ; INC R4,2; dw $2144 ; LD R4,R4^; dw $AB41 ; DEC R4,2; ; % ZACHTLING DISLP BYTE ADJ!!!! dw $AB50 ; DEC R5,1; TC2: dw $A950 ; INC R5,1; dw $A941 ; INC R4,2; dw $2DF4 ; EX R4,R15^; dw $9E08 ; RET; TC3: dw $A941 ; INC R4,2; dw $E8FA ; JR TC2; ; TSTNUM: dw $8D48 ; CLR R4; dw $C600 ; LDB RH6,0; dw $D03B ; CALR IGNB; TN1: dw $0A09, $3030 ; CPB RL1,"0"; dw $9E07 ; RET CY; dw $0A09, $3A3A ; CPB RL1,3AH; dw $9E0F ; RET NC; dw $C9F0 ; LDB RL1,0F0H; dw $8649 ; ANDB RL1,RH4; dw $5E0E, $0464 ; JP NZ,QHOW; dw $A860 ; INCB RH6,1; dw $93F6 ; PUSH R15^,R6; dw $A146 ; LD R6,R4; dw $8144 ; ADD R4,R4; dw $8144 ; ADD R4,R4; dw $8164 ; ADD R4,R6; dw $8144 ; ADD R4,R4; dw $2059 ; LDB RL1,R5^; dw $A950 ; INC R5,1; ; dw $0609, $0F0F ; ANDB RL1,0FH; dw $C100 ; LDB RH1,0 dw $8114 ; ADD R4,R1 dw $97F6 ; POP R6,R15^; dw $2059 ; LDB RL1,R5^; dw $5E0D, $042E ; JP PL,TN1; QHOW: dw $93F5 ; PUSH R15^,R5; AHOW: dw $7605, $046E ; LD R5,^HOW; dw $5E08, $0970 ; JP ERROR; ; CONST CRLF1=0D0AH; HOW: dw $484F, $573F ; WORD: "HOW?"; dw $0D0A ; WORD: CRLF1; OK: dw $5245, $4144, $5920 ; WORD: "READY"; dw $0D0A ; WORD: CRLF1; WHAT: dw $5748, $4154, $3F20 ; WORD: "WHAT?"; dw $0D0A ; WORD: CRLF1; SORRY: dw $534F, $5252, $5920 ; WORD: "SORRY"; dw $0D0A ; WORD: CRLF1; ; ; %*************************** ; % HAUPTPR0GRAMM LIEST EINE * ; % BENUTZERZEILE EIN * ; % ************************** ; ; RSTART: dw $760F, $11D8 ; LD R15,^STACK; ; ST1: dw $DC76 ; CALR CRLF; dw $7605, $0474 ; LD R5,^OK; dw $C900 ; LDB RL1,0; dw $DD31 ; CALR PRTSTG; dw $7604, $04A4 ; LD R4,^ST2+2; % TRICK TO 0 dw $6F04, $1008 ; LD CURRNT,R4 ST2: dw $2104, $0000 ; LD R4,0; dw $6F04, $1010 ; LD LOPVAR,R4; dw $6F04, $100A ; LD STKGOS,R4, ST3: dw $C93E ; LDB RL1,">"; dw $DD7E ; CALR GETLN; dw $93F5 ; PUSH R15^,R5; dw $6105, $1218 ; LD R5,BUFFER; dw $D049 ; CALR TSTNUM; dw $D082 ; CALR IGNB; dw $97F6 ; POP R6,R15^; % STK dw $8544 ; OR RR4,R4; dw $5E06, $0D26 ; JP ZR,DIRECT; dw $AB50 ; DEC R5,1; dw $2E54 ; LDB R5^,RH4; dw $AB50 ; DEC R5,1; dw $2E5C ; LDB R5^,^RL4; dw $93F6 ; PUSH R15^,R6; dw $93F5 ; PUSH R15^,R5; dw $A0E9 ; LDB RL1,RL6; dw $82D9 ; SUBB RL1,RL5; dw $93F1 ; PUSH R15^,R1 dw $DD6E ; CALR FNDLN; dw $93F5 ; PUSH R15^,R5; ; dw $EE08 ; JR NZ,ST4 dw $93F5 ; PUSH R15^,R5; dw $DD5C ; CALR FNDNXT; dw $97F6 ; POP R6,R15^; dw $6104, $101C ; LD R4,TXTUNF; dw $DCF8 ; CALR MVUP; dw $6F06, $101C ; LD TXTUNF,R6; ST4: dw $97F6 ; POP R6,R15^; dw $6104, $101C ; LD R4,TXTUNF; dw $97F1 ; POP R1,R15^; dw $93F4 ; PUSH R15^,R4; dw $0A09, $0303 ; CPB RL1,3; dw $5E06, $048C ; JP ZR,RSTART; dw $C100 ; LDB RH1,0; dw $8114 ; ADD R4,R1; dw $6105, $1216 ; LD R5,TXTEND; dw $8B54 ; CP R4,R5; dw $5E0F, $0484 ; JP NC,SORRY; dw $6F04, $101C ; LD TXTUNF,R4; dw $97F5 ; POP R5,R15^; dw $DD09 ; CALR MOVDWN; dw $97F5 ; POP R5,R15^; dw $97F4 ; POP R4,R15^; dw $DD11 ; CALR MVUP; dw $5E08, $04AE ; JP ST3; ; % MAKRO DEFINITION FUER TSTC ; ; MACRO ; BEGIN TESTC CHAR,RELA; ; CALR ; BYTE; TSTC; ; WORD: CHAR,CHAR; ; END; RELA ; ; % *********************** ; % NEW STOP RUN GOTO UPR ; % *********************** * ; NEW: dw $DDDF ; CALR ENDCHK; dw $7604, $121C ; LD R4,^TXTBGN; dw $6F04, $101C ; LD TXTUNF,R4; STOP: dw $DDE4 ; CALR ENDCHK; dw $5E08, $048C ; JP RSTART; RUN: dw $DDE7 ; CALR ENDCHK; dw $7605, $121C ; LD R5,^TXTBGN; RUNNXL: dw $8D48 ; CLR R4 dw $DD99 ; CALR FNDLP; dw $5E07, $048C ; JP CY,RSTART; RUNTSL: dw $6F05, $1008 ; LD CURRENT,R5; dw $A951 ; INC R5,2; % !!!!! RUNSML: dw $DB0E ; CALR CONT; dw $7604, $0C28 ; LD R4.^TAB2-1; % ! dw $5E08, $0D2A ; JP EXEC; GOTO: dw $DEEC ; CALR EXPR; dw $93F5 ; PUSH R15^,R5; dw $DDF8 ; CALR ENDCHK; dw $DDAC ; CALR FNDLN; dw $5E0E, $0466 ; JP NZ,AHOW; dw $97F1 ; POP R1,R15^, dw $E8F0 ; JR RUNTSL; ; % ***************** ; % LIST PRINT LIPR * ; % ***************** ; LIST1: dw $D09B ; CALR TSTNUM; dw $DDFF ; CALR ENDCHK; dw $DDB3 ; CALR FNDLN, LS1: dw $5E07, $048C ; JP CY,RSTART; dw $DD43 ; CALR PRTLN; dw $DB21 ; CALR CONT; dw $DDB3 ; CALR FNDLP; dw $E8FA ; JR LSI; PRINT: dw $CE06 ; LDB RL6,6; dw $D0B3, $3B3B, $057C ; TESTC ";",PR2; dw $DCE9 ; CALR CRLF; dw $5E08, $0542 ; JP RUNSML; PR2: dw $D0B9, $0D0D, $0588 ; TESTC 0DH,PRO; dw $DCEF ; CALR CRLF; dw $5E08, $0534 ; JP RUNNXL ; PR0: dw $D0BF, $2323, $0596 ; TESTC "#",PR1 dw $DF0D ; CALR EXPR; dw $A0CE ; LDB RL6,RL4; dw $5E08, $059A ; JP PR3; PR1: dw $DDA6 ; CALR QTSTG; dw $E807 ; JR PR8; PR3: dw $D0C8, $2C2C, $05A4 ; TESTC ,,PR6; dw $DE2D ; CALR FIN; dw $E8F2 ; JR PR0; PR6: dw $DD00 ; CALR CRLF; dw $D0F2 ; CALR FINI; dw $DF1A ; CALR EXPR; dw $93F6 ; PUSH R15^,R6; dw $DD8F ; CALR PRTNUM; dw $97F6 ; POP R6,R15^; dw $5E08, $059A ; JP PR3; ; ; %******************* ; % GOSUB RETURN UPR * ; %******************* GOSUB: dw $DD42 ; CALR PUSH1; dw $DF21 ; CALR EXPR; dw $93F5 ; PUSH R15^,R5; dw $DDE0 ; CALR FNDLN; dw $5E0E, $0466 ; JP NZ,AHOW dw $53F0, $1008 ; PUSH R15^,CURRNT; dw $53F0, $100A ; PUSH R15^,STKGOS; dw $4D08, $1010 ; CLR LOPVAR dw $6F0F, $100A ; LD STKGOS,R15; dw $5E08, $053C ; JP RUNTSL; ; RETURN: dw $DE3A ; CALR ENDCHK; dw $6104, $100A ; LD R4,STKGOS; dw $8544 ; OR R4,R4; dw $5E06, $096A ; JP ZR,QWHAT; dw $A14F ; LD R15,R4; % !!! dw $57F0, $100A ; POP STKG0S,R15^; dw $57F0, $1008 ; POP CURRNT,R15-^; dw $97F5 ; POP R5,R15^; dw $DD6F ; CALR POPA; dw $D116 ; CALR FINI; ; ; ; %xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ; % FOR NEXT UPR * ; %xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx FOR1: dw $DD60 ; CALR PUSHA; dw $DE66 ; CALR SETVAL; dw $AB40 ; DEC R4,R1 dw $6F04, $1010 ; LD LOPVAR,R4; dw $7604, $0CF6 ; LD R4,^TAB5-1; dw $5E08, $0D2A ; JP EXEC; FR1: dw $DF47 ; CALR EXPR; dw $6F04, $1014 ; LD LOPLMT,R4; dw $7604, $0CFE ; LD R4,^TAB6-1; dw $5E08, $0D2A ; JP EXEC; FR2: dw $DF4E ; CALR EXPR; dw $E802 ; JR FR4: FR3: dw $2104, $0001 ; LD R4,1; FR4: dw $6F04, $1012 ; LD LOPINC,R4; FR5: dw $6104, $1008 ; LD R4,CURRNT; dw $6F04, $1016 ; LD LOPLN,R4; dw $6F05, $1018 ; LD LOPPT,R5; dw $2106, $000A ; LD R6,0AH; dw $6105, $1010 ; LD R5,LOPVAR; dw $A1F4 ; LD R4,R15; dw $E801 ; JR SKIP1; FR7: dw $8164 ; ADD R4,R6; SKIP1: dw $2049 ; LDB RL1,R4^; dw $A940 ; INC R4,1; dw $0449 ; ORB RL1,R4^; dw $E60E ; JR ZR,FR8; dw $2049 ; LDB RL1,R4^; dw $AB40 ; DEC R4,1; dw $8AD9 ; CPB RL1,RL5; dw $EEF7 ; JR NZ-FRZ; dw $2049 ; LDB RL1,R4^; dw $8A59 ; CPB RL1,RH5; dw $EEF4 ; JR NZ,FR7; dw $AD54 ; EX R4,R5; dw $A1F6 ; LD R6,R15; dw $2104, $000A ; LD R4,0AH; dw $8154 ; ADD R4,R5; dw $DDAB ; CALR MVDOWN; dw $A14F ; ld r15,r4; FR8: dw $6104, $1018 ; LD R4,LOPPT; dw $AD54 ; EX R4,R5; dw $D14F ; CALR FINI; ; NEXT: dw $D14C ; CALR TSTV; dw $5E07, $096A ; JP CY,QWHAT; dw $6F04, $100E ; LD VARNXT,R4; ; NX0: dw $93F5 ; PUSH R15^,R5; dw $AD54 ; EX R4,R5; dw $6104, $1010 ; LD R4,LOPVAR; dw $8544 ; OR R4,R4; dw $5E06, $096C ; JR ZR,AWHAT; dw $8B54 ; CP R4,R5; dw $E605 ; JR ZR,NX3; dw $97F5 ; POP R5,R15^; dw $DDB9 ; CALR POPA; dw $6104, $100C ; LD R4,VARNXT; dw $E8F2 ; JR NX0; ; NX3: dw $204D ; LDB RL5,R4^; dw $A940 ; INC R4,1; dw $2045 ; LDB RH5,R4^; dw $6104, $1012 ; LD R4,LOPINC; dw $93F4 ; PUSH R15^,R4; dw $A049 ; LDB RL1,RH4; dw $8154 ; ADD R4,R5; dw $8859 ; XORB RL1,RH5; dw $A059 ; LDB RL1,RH5; dw $E502 ; JR MI,NX4; dw $8849 ; XORB RL1,RH4; dw $E517 ; JR MI,NX5; NX4: dw $AD54 ; EX R4,R5; dw $6104, $1010 ; LD R4,LOPVAR; dw $2E4D ; LDB R4^,RL5; dw $A940 ; INC R4,1; dw $2E45 ; LDB R4^,RH5; dw $6104, $1014 ; LD R4,L0PLMT; dw $97F1 ; POP R1,R15^; dw $8411 ; ORB RH1,RH1; % SWAP? dw $ED01 ; JR PL,NX1; dw $AD54 ; EX R4,R5; NX1: dw $DED0 ; CALR CKHLDE; dw $97F5 ; POP R5,R15^; dw $E70A ; JR CY,NX2; dw $6104, $1016 ; LD R4,LDPLN; dw $6F04, $1008 ; LD CURRNT,R4; dw $6104, $1018 ; LD R4,LOPPT; dw $AD54 ; EX R4,R5; dw $D186 ; CALR FINI; NX5: dw $97F4 ; POP R4,R15^; dw $97F5 ; POP R5,R15^; NX2: dw $DDE3 ; CALR POPA; dw $D18A ; CALR FINI; ; %*********************** ; % REM IF INPUT LET UPR * ; %*********************** REM: dw $8D48 ; CLR R4; dw $E801 ; JR IFFR; IFF: dw $DFB4 ; CALR EXPR; IFFR: dw $8544 ; OR R4,R4; dw $5E0E, $0542 ; JP NZ,RUNSML; dw $DE5D ; CALR FNDSKP; dw $5E0F, $053C ; JP NC,RUNTSL; dw $5E08, $048C ; JP RSTART; ; INPERR: dw $610F, $100E ; LD R15,STKINP; dw $97F4 ; POP R4,R15^; dw $97F5 ; POP R5,R15^; dw $97F5 ; POP R5,R15^; ; INPUT: IP1: dw $93F5 ; PUSH R15^,R5; dw $DE58 ; CALR QTSTG; dw $E803 ; JR IP2; dw $D19A ; CALR TSTV; dw $E72A ; JR CY,IP4; dw $E80E ; JR IP3; IP2: dw $93F5 ; PUSH R15^,R5; dw $5F00, $03CC ; CALL TSTV; dw $5E07, $096A ; JP CY,QWHAT; dw $2059 ; LDB RL1,R5^; dw $A09E ; LDB RL6,RL1; dw $8299 ; SUBB RL1,RL1; dw $2E59 ; LDB R5^,RL1; dw $97F5 ; POP R5,R15^; dw $DE71 ; CALR PRTSTG; dw $A0E9 ; LDB RL1,RL6; dw $AB50 ; DEC R5,1; dw $2E59 ; LDB R5^,RL1; IP3: dw $93F5 ; PUSH R15^,R5; dw $AD54 ; EX R4,R5; dw $6104, $1008 ; LD R4,CURRNT; dw $93F4 ; PUSH R15^,R4; dw $7604, $06F8 ; LD R4,^IP1; dw $6F04, $1008 ; LD CURRNT,R4; dw $6F0F, $100E ; LD STKINP,R15; dw $93F5 ; PUSH R15^,R5; dw $C93A ; LDB RL1,":"; dw $DEC3 ; CALR GETLN; dw $6105, $1218 ; LD R5,BUFFER; dw $DFE6 ; CALR EXPR; dw $DC0E ; CALR CONT; dw $97F5 ; POP R5,R15^; dw $AD54 ; EX R4,R5; dw $2E4D ; LDB R4^,RL5; dw $A940 ; INC R4,1; dw $2E45 ; LDB R4^,RH5; dw $97F4 ; POP R4,R15^; dw $6F04, $1008 ; LD CURRNT,R4; dw $97F5 ; POP R5,R15^; IP4: dw $97F1 ; POP R1,R15^; dw $D1A7, $2C2C, $0760 ; TESTC ".",IP5; dw $E8CC ; JR XP1; IP5: dw $D1CF ; CALR FINI; DEFLT: dw $2059 ; LDB RL1,R5^; dw $0A09, $0D0D ; CPB RL1,0DH; dw $E605 ; JR ZR,LT1; LET: dw $DF22 ; CALR SETVAL; dw $D1B1, $2C2C, $0774 ; TESTC ",",LT1; dw $E8FB ; JR LET; LT1: dw $D1D9 ; CALR FINI; ; ; ; %*********** ; % EXPR UPR * ; %*********** EXPR: dw $DFD0 ; CALR EXPR2; dw $93F4 ; PUSH R15^,R4; EXPR1: dw $7604, $0D08 ; LD R4,^TAB8-1; dw $5E08, $0D2A ; JP EXEC; XP11: dw $DFE4 ; CALR XP18; dw $9E07 ; RET CY; dw $A09C ; LDB RL4,RL1; dw $9E08 ; RET; XP12: dw $DFE8 ; CALR XP18; dw $9E06 ; RET ZR; dw $A09C ; LDB RL4,RL1; dw $9E08 ; RET; XP13: dw $DFEC ; CALR XP18; dw $9E06 ; RET ZR; ; dw $9E07 ; RET CY; dw $A09C ; LDB RL4,RL1; dw $9E08 ; RET; XP14: dw $DFF1 ; CALR XP18; dw $A09C ; LDB RL4,RL1; dw $9E06 ; RET ZR; dw $9E07 ; RET CY; dw $A04C ; LDB RL4,RH4; dw $9E08 ; RET; XP15: dw $DFF7 ; CALR XP18; dw $9E0E ; RET NZ; dw $A09C ; LDB RL4,RL1 ; dw $9E08 ; RET: XP16: dw $DFFB ; CALR XP18; dw $9E0F ; RET NC; dw $A09C ; LDB RL4,RL1; dw $9E08 ; RET; XP17: dw $97F4 ; POP R4,R15^; dw $9E08 ; RET ; XP18: dw $A0E9 ; LDB RL1.RL6; dw $97F4 ; POP R4,R15^; dw $97F6 ; POP R6,R15^; dw $93F4 ; PUSH R15^,R4; dw $93F6 ; PUSH R15^,R6; dw $A09E ; LDB RL6,RL1; dw $DFF9 ; CALR EXPR2; dw $AD54 ; EX R4,R5; dw $2DF4 ; EX R4,R15^; dw $DF5A ; CALR CKHLDE; dw $97F5 ; POP R5,R15^; dw $8D48 ; CLR R4; dw $C901 ; LDB RL1,1; dw $9E08 ; RET; EXPR2: dw $D1E7, $2D2D, $07E2 ; TESTC "-",XP21; dw $8D48 ; CLR R4; dw $E818 ; JR XP26; XP21: dw $D1EC, $2B2B, $07E8 ; TESTC "+",XP22; XP22: dw $DFE7 ; CALR EXPR3; XP23: dw $D1F0, $2B2B, $080C ; TESTC "+",XP25; dw $93F4 ; PUSH R15^,R4; dw $DFEC ; CALR EXPR3; XP24: dw $AD54 ; EX R4,R5; dw $2DF4 ; EX R4,R15^; dw $A049 ; LDB RL1,RH5; dw $8154 ; ADD R4,R5; dw $8859 ; XORB RL1,RH4; dw $97F5 ; POP R5,R15^; dw $E5F4 ; JR MI,XP23; dw $8849 ; XORB RL1,RH4; dw $5E0D, $07EA ; JP PL,XP23; dw $5E08, $0464 ; JP QHOW; XP25: dw $D201, $2D2D, $08A0 ; TESTC "-",XP42; dw $93F4 ; PUSH R15^,R4; dw $DFFD ; CALR EXPR3; dw $DF88 ; CALR CHGSGN; dw $5E08, $07F4 ; JP XP24 EXPR3: dw $DFD4 ; CALR EXPR4; XP31: dw $D20A, $2A2A, $0844 ; TESTC "*",XP34; dw $93F4 ; PUSH R15^,R4; dw $DFD9 ; CALR EXPR4; dw $C600 ; LDB RH6,0; dw $DF94 ; CALR CHKSGN; dw $2DF4 ; EX R4,R15^; dw $DF96 ; CALR CHKSGN; dw $AD54 ; EX R4,R15^; dw $2DF4 ; EX R4,R15^; dw $8D88 ; CLR R8; dw $A149 ; LD R9,R4; dw $9958 ; MULT RR8,R5; dw $A194 ; LD R9,R9; dw $8588 ; OR R8,R8; dw $5E0E, $0466 ; JP NZ,AHOW; dw $E811 ; JR XP35; XP34: dw $D12D, $2F2F, $08A0 ; TESTC "/",XP42; dw $93F4 ; PUSH R15^,R4; dw $DFEC ; CALR EXPR4; dw $C600 ; LDB RH6,0; dw $DFA7 ; CALR CHKSGN; dw $2DF4 ; EX R4,R15^; dw $DFA9 ; CALR CHKSGN; dw $2DF5 ; EX R5,R15^; dw $8555 ; OR R5,R5; dw $5E06, $0466 ; JP ZR,AHOW; dw $93F6 ; PUSH R15^,R6; dw $DFB5 ; CALR DIVIDE; dw $A164 ; LD R4,R6; dw $97F6 ; POP R6,R15^; XP35: dw $97F5 ; POP R5,R15^; dw $8444 ; ORB RH4,RH4; dw $5E05, $0464 ; JP MI,QHOW; dw $8466 ; ORB RH6,RH6; dw $EDD6 ; JR PL,XP31; dw $DFB6 ; CALR CHGSGN; dw $E8D4 ; JR XP31; EXPR4: dw $7604, $0CB1 ; LD R4,^TAB4-1; dw $5E08, $0D2A ; JP EXEC; XP40: dw $D25A ; CALR TSTV; dw $E705 ; JR CY,XP41; dw $2049 ; LDB RL1,R4^; dw $A940 ; INC R4,1; dw $2044 ; LDB RH4,R4^; dw $A09C ; LDB RL4,RL1; dw $9E08 ; RET; XP41: dw $D233 ; CALR TSTNUM; dw $8466 ; ORB RH6,RH6; dw $9E0E ; RET NZ; PARN: dw $D244, $2828, $08A2 ; TESTC "(",XP43; dw $D092 ; CALR EXPR; dw $D248, $2929, $08A2 ; TESTC ")",XP43; XP42: dw $9E08 ; RET; XP43: dw $5E08, $096A ; JP QWHAT; RND: dw $D00B ; CALR PARN; dw $8444 ; ORB RH4,RH4; dw $5E05, $0464 ; JP MI,QHOW; dw $8544 ; OR R4,R4; dw $5E06, $0464 ; JP ZR,QHOW; dw $93F5 ; PUSH R15^,R5; dw $93F4 ; PUSH R15^,R4; dw $6104, $101A ; LD R4,RANPNT; dw $7605, $1005 ; LD R5,^LSTR0M; dw $8B54 ; CP R4,R5; dw $5E07, $08CA ; JP CY,RA1; dw $7604, $0B66 ; LD R4,^START; RA1: dw $204D ; LDB RL5,R4^; dw $A940 ; INC R4,1; dw $2045 ; LDB RH5,R4^; dw $6F04, $101A ; LD RANPNT,R4; dw $97F4 ; POP R4,R15^; dw $AD54 ; EX R4,R5; dw $93F6 ; PUSH R15^,R6; dw $DFF2 ; CALR DIVIDE; dw $97F6 ; POP R6,R15^; dw $97F5 ; POP R5,R15^; dw $A940 ; INC R4,1; dw $9E08 ; RET; ABS1: dw $D02A ; CALR PARN; dw $AB50 ; DEC R5,1; dw $DFF3 ; CALR CHKSGN; dw $A950 ; INC R5,1; dw $9E08 ; RET; SIZE: dw $6104, $1216 ; LD R4,TXTEND; dw $4304, $101C ; SUB R4,TXTUNF; dw $9E08 ; RET; ; ; %************************************ ; % DIVIDE SUBDE CHKBGN CKHLDE CHGSGN * ; %************************************ ; ; DIVIDE: % HL/DE RES IN BC REMAINDER IN HL dw $A149 ; LD R9,R4; dw $8D88 ; CLR R8; dw $9B58 ; DIU RR8,R5; dw $A196 ; LD F6,R9; dw $A184 ; LD R4,R8; dw $9E08 ; RET; ; CHKSGN: dw $8444 ; ORB RH4,RH4 dw $9E0D ; RET PL; CHGSGN: dw $8544 ; OR R4,R4; dw $9E06 ; RET ZR; dw $A049 ; LDB RL1,RH4; dw $8D42 ; NEG R4; dw $8849 ; XORB RL1,RH4; dw $5E0D, $0464 ; JP PL,QHOW; dw $0806, $8080 ; XORB RH6,80H; dw $9E08 ; RET; CHKHLDE: dw $A049 ; LDB RL1,RH4; dw $8859 ; XORB RL1,RH5; dw $ED01 ; JR PL,CK1; dw $AD54 ; EX R4,R5; CK1: dw $8B54 ; CP R4,R5; dw $9E08 ; RET ; ; ; %************************* ; % SETVAL IN ENDCHK ERROR * ; %************************* SETVAL: dw $D2AF ; CALR TSTV; dw $5E07, $096A ; JP CY,QWHAT; dw $93F4 ; PUSH R15^,R4; dw $D293, $3D3D, $0944 ; TESTC "=",SV1; dw $D0E1 ; CALR EXPR; dw $A146 ; LD R6,R4; dw $97F4 ; POP R4,R15^; dw $2E4E ; LDB R4^,RL6; dw $A940 ; INC R4,1; dw $2E46 ; LDB R4^,RH6; dw $9E08 ; RET: SV1: dw $5E08, $096A ; JP QWHAT; FIN: dw $D29F, $3B3B, $0954 ; TESTC ";",FI1; dw $97F1 ; POP R1,R15^; dw $5E08, $0542 ; JP RUNSML; FI1: dw $D2A5, $0D0D, $0960 ; TESTC 0DH,FI2; dw $97F1 ; POP R1,R15^; dw $5E08, $0534 ; JP RUNNXL; FI2: dw $9E08 ; RET; ; ENDCHK: dw $D2D6 ; CALR IGNB; dw $0A09, $0D0D ; CPB RL1,0DH; dw $9E06 ; RET ZR; QWHAT: dw $93F5 ; PUSH R15^,R5; AWHAT: dw $7605, $047C ; LD R5,^WHAT; ERROR: dw $8299 ; SUBB PLI,RL1; dw $DF9E ; CALR PRTSTG; dw $97F5 ; POP R5,R15^; dw $2059 ; LDB RL1,R5^; dw $93F1 ; PUSH R15^,R1; dw $8299 ; SUBB RL1,RL1; dw $2E59 ; LDB R5,RL1; dw $6104, $1008 ; LD R4,CURRNT; dw $93F4 ; PUSH R15^,R4; dw $2049 ; LDB RL1,R4^; dw $A940 ; INC R4,1; dw $0449 ; ORB RL1,R4^; dw $97F5 ; POP R5,R15^; dw $5E06, $048C ; JP ZR,RSTART; dw $2049 ; LDB RL1,R4^; dw $8499 ; ORB RL1,RL1; dw $5E05, $06EE ; JP MI,INPERR; dw $DF5C ; CALR PRTLN; dw $AB50 ; DEC R5,1; dw $97F1 ; POP R1,R15^; dw $2E59 ; LDB R5^,RL1; dw $C93F ; LDB RL1,"?"; dw $DEFE ; CALR OUTC; dw $8299 ; SUBB RL1,RL1; dw $DFB8 ; CALR PRTSTG dw $5E08, $048C ; JP RSTART; QSORRY: dw $93F5 ; PUSH R15^,R5; ASORRY: dw $7605, $0484 ; LD R5,^SORRY; dw $5E08, $0970 ; JP ERROR; ; %****************** ; % GETLN FNDLN UPR * ; %****************** ; GETLN: dw $DF08 ; CALR OUTC; dw $6105, $1218 ; LD R5,BUFFER; GL1: dw $DEF3 ; CALR CHKIO; % DEL ZEICHEN dw $0A09, $0101 ; CPB RL1,1; dw $E611 ; JR ZR,GL3; dw $DF0F ; CALR OUTC; dw $0A09, $0A0A ; CPB RL1,0AH; dw $E6F8 ; JR ZR,GL1; dw $8499 ; ORB RL1,RL1; dw $E6F6 ; JR ZR,GL4; dw $0A09, $1B1B ; CPB RL1,1BH; % ESC dw $E60F ; JR ZR,GL4; dw $2E59 ; LDB R5^,RL1; dw $A950 ; INC R5,1; dw $0A09, $0D0D ; CPB RL1,0DH; dw $9E06 ; RET ZR; dw $A0D9 ; LDB RL1,RL5; dw $DE3F ; CALR CXBUFE; dw $EEEB ; JR NZ,GL1; GL3: dw $A0D9 ; LDB RL1,RL5; dw $DE3E ; CALR CXBUFA; dw $E604 ; JR ZR,GL4; dw $AB50 ; DEC R5,1; dw $C908 ; LDB RL1,8; dw $DF25 ; CALR OUTC; dw $E8E4 ; JR GL1; GL4: dw $DF28 ; CALR CRLF; dw $C90B ; LDB RL1,0BH; dw $5E08, $09B6 ; JP GETLN; FNDLN: dw $8444 ; ORB RH4,RH4; dw $5E05, $0464 ; Jp MI,QHOW; dw $7605, $121C ; LD R5,^TXTBGN; FNDLP: FL1: dw $93F4 ; PUSH R15^,R4; dw $6104, $101C ; LD R5,^TXTUNF; dw $AB40 ; DEC R4,1; dw $8B54 ; CP R4,R5; dw $97F4 ; POP R4,R15^; dw $9E07 ; RET CY; dw $2059 ; LDB RL1,R5^; dw $82C9 ; SUBB RL1,RL4; dw $A096 ; LDB RH6,RL1; dw $A950 ; INC R5,1; dw $2059 ; LDB RL1,R5^; dw $B649 ; SBCB RL1,RH4 dw $E704 ; JR CY,FL2; dw $AB50 ; DEC R5,1; dw $8469 ; ORB RL1,RH6; dw $9E08 ; RET; FNDNXT: dw $A950 ; INC R5,1; FL2: dw $A950 ; INC R5,1; FNDSKP: dw $2059 ; LDB RL1,R5^; dw $0A09, $0D0D ; CPB RL1,0DH; dw $EEFB ; JR NZ,FL2; dw $A950 ; INC R5,1; dw $E8E7 ; JR FL1; ; ; % PRTSTQ GTBTC PRTN0N PRTLN UPR * ; %******************************** ; PRTSTG: dw $A096 ; LDB RL1,R5^; PS1: dw $2059 ; LDB R1:1,R5^; dw $A950 ; INC RR5,1; dw $8A69 ; CPB RL1,RH6; dw $9E06 ; RET ZR; dw $DF4E ; CALR OUTC; dw $0A09, $0D0D ; CPB RL1,0DH; dw $EEF8 ; JR NZ,PSI; dw $9E08 ; RET; QTSTC: dw $D321, $2222, $0A74 ; TESTC '"',QT3; dw $C922 ; LDB RL1,22H; QT1: dw $5F00, $0A38 ; CALL PRTSTG; dw $0A09, $0D0D ; CPB RL1,0DH; dw $97F4 ; POP R4,R15^; dw $5E06, $0534 ; JP ZR,RUNNXL; QT2: ; % VAR RESTURN dw $2140 ; LD R0,R4^; dw $A941 ; INC R4,Z; dw $0700, $F000 ; AND R0,0F000H; dw $0B00, $E000 ; CP R0,0E000H; % JR BEFEHL dw $1E46 ; JP ZR,R4; % SONST JP DANACH dw $A941 ; INC R4,2; dw $1E48 ; JP R4^; QT3: dw $D335, $2727, $0A7E ; TESTC 27H,QT1; dw $C927 ; LDB RL1,27H; dw $E8EB ; JR QT1; QT4: dw $D33A, $5F5F, $0A8E ; TESTC "<",QT5; dw $C98D ; LDB RL1,8DH; % CR OHNE LF dw $5F00, $0BA8 ; CALL OUTC; dw $97F4 ; POP R4,R15^; dw $E8EA ; JR QT2; QT5: dw $9E08 ; RET; ; PRTNUM: dw $C600 ; LDB RH6,0; dw $5F00, $0904 ; CALL CHKSGN; dw $ED02 ; JR PL,PNI; dw $C62D ; LDB RH6,"-"; dw $AAE0 ; DECB RL6,1; PN1: dw $93F5 ; PUSH R15^,R5; dw $2105, $000A ; LD R5,0AH; dw $93F5 ; PUSH R15^,R5; dw $AAE0 ; DECB RL6,1; dw $93F6 ; PUSH R15^,R6; PN2: dw $D0D9 ; CALR DIVIDE; dw $8566 ; OR R6,R6 dw $E605 ; JR ZR,PN3; dw $2DF4 ; EX R4,R15^; dw $AAC0 ; DECB RL4,1; dw $93F4 ; PUSH R15^,R4; dw $A164 ; LD R4,R6; dw $E8F8 ; JR PN2; PN3: dw $97F6 ; POP R6,R15^; PN4: dw $AAE0 ; DECB RL6,1; dw $84EE ; ORB RL6,RL6; dw $E503 ; JR MI,PN5; dw $C920 ; LDB RL1," "; dw $DF8E ; CALR OUTC; dw $E8FA ; JR PN4; PN5: dw $A069 ; LDB RL1,RH6; dw $8466 ; ORB RH6,RH6; dw $E601 ; JR ZR,SKIP2; dw $DF93 ; CALR OUTC; SKIP2: dw $A0CD ; LDB RL5,RL4; PN6: dw $A0D9 ; LDB RL1,RL5; dw $0A0D, $0A0A ; CPB RL5,0AH; dw $97F5 ; POP R5,R15^; dw $9E06 ; RET ZR; dw $0009, $3030 ; ADDB RL1,"0"; dw $DF9C ; CALR OUTC; dw $E8F7 ; JR PN6; PRTLN: dw $205C ; LDB RL4,R5^; dw $A950 ; INC R5,1; dw $2054 ; LDB RH4,R5^; dw $A950 ; INC R5,1; dw $CE04 ; LDB RL6,4; dw $D02F ; CALR PRTNUM; dw $C920 ; LDB RL1," "; dw $DFA5 ; CALR OUTC; dw $8299 ; SUBB RL1,RL1; dw $D05F ; CALR PRTSTG; dw $9E08 ; RET ; ; ; ; % ************************ ; % MVUP MVDOWN POPA PUSHA * ; % ************************ MVUP: dw $8B54 ; CP R4,R5 dw $9E06 ; RET ZR; dw $BA51, $0068 ; LDIB R6^,R5^,R0; dw $E8FB ; JR MVUP ; MVDOWN: dw $8B65 ; CP R5,R6; dw $9E06 ; RET ZR dw $AB50 ; DEC R5,1; dw $AB40 ; DEC R4,1; dw $2059 ; LDB RL1,R5^ dw $2E49 ; LDB R4^,RL1; dw $E8F9 ; JR MVDOWN; POPA: dw $97F6 ; POP R6,R15^; dw $97F4 ; POP R4,R15^; dw $6F04, $1010 ; LD LOPVAR,R4; dw $8544 ; OR R4,R4 dw $E609 ; JR ZR,PP1; dw $57F0, $1012 ; POP LOPINC,R15^; dw $57F0, $1014 ; POP LGPLMT,R15^; dw $57F0, $1016 ; POP LOPLN,R15^; dw $97F4 ; POP R4,R15^; dw $6F04, $1018 ; LD LOPPT,R4; PP1: dw $93F6 ; PUSH R15^,R6; dw $9E08 ; RET; ; PUSHA: dw $7604, $1046 ; LD R4,^STKLMT; dw $5F00, $0908 ; CALL CHKSGN; dw $97F6 ; POP R6-R15^; dw $A1F0 ; LD R0,R15; dw $8104 ; ADD R4,R0; dw $5E0F, $09AC ; JP NC,QSORRY; dw $6104, $1010 ; LD R4,LOPVAR;; dw $8544 ; OR R4,R4; dw $E60A ; JR ZR,PU1; dw $53F0, $1018 ; PUSH R15^,LOPPT; dw $53F0, $1016 ; PUSH R15^,LOPLN; dw $53F0, $1014 ; PUSH R15^,LGPLMT; dw $53F0, $1012 ; PUSH R15^,LOPINC; dw $6104, $1010 ; LD R4,LOPVAR; PU1: dw $93F4 ; PUSH R15^,R4; dw $93F6 ; PUSH R15^,R6; dw $9E08 ; RET; ; ; % ************ ; % OUTC CHKIO * ; % ************* ; START: dw $760F, $11D8 ; LD R15,^STACK; dw $C9FF ; LDB RL1,0FFH; INIT: dw $6E09, $1006 ; LDB OCSW,RL1; dw $DFE6 ; CALR CRLF; dw $8299 ; SUBB RL1,RL1; dw $7605, $0BF4 ; LD R5,^MSG1; dw $D0A1 ; CALR PRTSTG; dw $7604, $0B66 ; LD R4,^START; dw $6F04, $101A ; LD RANPRT,R4; dw $7604, $121C ; LD R4,^TXTBGN; dw $6F04, $101C ; LD TXTUNF,R4; dw $7604, $1476 ; LD R4,^TXTE; dw $6F04, $1216 ; LD TXTEND,R4; dw $7604, $1478 ; LD R4,^BUFA; dw $6F04, $1218 ; LD BUFFER,R4; dw $7604, $14B8 ; LD R4,^BUFE; dw $6F04, $121A ; LD BUFEND,R4; dw $5E08, $148C ; JP RSTART; ; CRLF: dw $C90D ; LDB RL1,0DH OUTC: dw $93F6 ; PUSH R15^,R6; dw $93F1 ; PUSH R15^,R1; dw $6009, $1006 ; LDB RL1,OCBW; dw $8499 ; ORB RL1,RL1; OC2: dw $EE03 ; JR NZ,OCB; dw $97F1 ; POP R1,R15^; dw $97F6 ; POP R6,R15^; dw $9E08 ; RET; ; OC3: dw $97F1 ; POP R1,R15^; dw $93F1 ; PUSH R15^,R1; dw $A09E ; LDB RL6,RL1; LPT: dw $0A0E, $0D0D ; CPB RL6,0DH; dw $E605 ; JR ZR,LINEF; HI: dw $A0E9 ; LDB RL1,RL6; dw $D40F ; CALR CO11; dw $97F1 ; POP R1,R15^; dw $97F6 ; POP R6,R15^; dw $9E08 ; RET; LINEF: dw $C90D ; LDB RL1,0DH; dw $D414 ; CALR CO11; dw $CE0A ; LDB RL6,0AH; dw $E8F7 ; JR HI; CHKIO: dw $D419 ; CALR CT11; dw $0609, $7F7F ; ANDB RL1,7FH; dw $0A09, $0202 ; CF*B RL1,2; dw $EE03 ; JR NZ,CI1; dw $4D00, $1006 ; COM OCSW; dw $E8F7 ; JR CHKIO; ; CI1: dw $0A09, $0303 ; CPB RL1,3; dw $9E0E ; RET NZ; dw $5E08, $048C ; JP RSTART; ; MSG1: db "RDK Z8000 BASIC 1.0 " ; WORD: "RDK Z8000 BASIC 1.0 "; dw $0D0A ; WORD: 0D0AH; ; ; %*********************** ; % TABELLEN DIRECT EXEC * ; %*********************** ; % ; % BYTE UND WORDS ; TAB1: db "LIST",0; ; BYTE: "LIST",0; dw LIST1; ; WORD: LIST1,; db "RUN",0; ; BYTE: "RUN",0; dw RUN; ; WORD: RUN; db "NEW",0; ; BYTE: "NEW",0; dw NEW; ; WORD: NEW; db "BYE",0; ; BYTE: "BYE",0; dw BYE; ; WORD: BYE; db "MEM",0; ; BYTE: "MEM",0; % NEU END dw END1; ; WORD: END1; TAB2: db "NEXT",0; ; BYTE: "NEXT",0; dw NEXT; ; WORD: NEXT; db "LET",0; ; BYTE: "LET",0; dw LET; ; WORD: LET; db "IF",0; ; BYTE: "IF",0; dw IFF; ; WORD: IFF; db "GOTO",0; ; BYTE; "GOTO",0; dw GOTO; ; WORD: GOTO; db "GOSUB",0; ; BYTE: "GOSUB",0; dw GOSUB; ; WORD: GOSUB; db "RETURN",0; ; BYTE: "RETURN",0; dw RETURN; ; WORD: RETURN; db "REM",0; ; BYTE: "REM",0; dw REM; ; WORD: REM; db "FOR",0; ; BYTE: "FOR",0; dw FOR1; ; WORD: FOR1; db "INPUT",0; ; BYTE: "INPUT",0; dw INPUT; ; WORD: INPUT; db "PRINT",0; ; BYTE: "PRINT",0; dw PRINT; ; WORD: PRINT; db "STOP",0 ; BYTE: "STOP",0 dw STOP; ; WORD: STOP; db "CALL",0; ; BYTE: "CALL",0; dw CALL1; ; Word: CALL1; db "OUTC",0; ; BYTE: "OUTC",0; dw OUTCHAR; ; WORD: OUTCHAR; db "OUT",0; ; BYTE: "OUT",0; dw OUT1; ; WORD: OUT1; ; db "O$",0; ; BYTE: "O$",0; dw OO; ; WORD: OO; db "I$",0; ; BYTE: "I$",0; dw II; ; WORD: II; db "POKE",0 ; ; BYTE: "POKE",0 ; dw POKE; ; WORD: POKE; db "TAB",0; ; BYTE: "TAB",0; dw TAB; ; WORD: TAB; db "BYTE",0; ; BYTE: "BYTE",0; dw BYTE1; ; WORD: BYTE1; db "WORD",0; ; BYTE: "WORD",0; dw WORD1; ; WORD: WORD1; db "O"; ; BYTE: O; dw DEFLT; ; WORD: DEFLT; ; TAB4: db "RND",0; ; BYTE: "RND",0; dw RND; ; WORD: RND; db "ABS",0; ; BYTE: "ABS",0; dw ABS1; ; WORD: ABS1; db "SIZE",0; ; BYTE: "SIZE",0; dw SIZE; ; WORD: SIZE; db "PEEK",0; ; BYTE: "PEEK",0; dw PEEK; ; WORD: PEEK; db "INC",0; ; BYTE: "INC",0; dw INCHAR; ; WORD: INCHAR; db "HEX",0; ; BYTE: "HEX",0; dw HEX; ; WORD: HEX; db "IN",0; ; BYTE: "IN",0; dw IN1; ; WORD: IN1; db 27H,0; ; BYTE: 27H,0; dw QUOTE; ; WORD: QUOTE; db "TOP",0; ; BYTE: "TOP",0; dw TOP; ; WORD: TOP; db "LEN",0; ; BYTE: "LEN",0; dw LENGTH; ; WORD: LENGTH; db "CSTS",0; ; BYTE: "CSTS",0; dw CSTAT; ; WORD: CSTAT; db 0 ; BYTE: 0; dw XP40; ; WORD: XP40; TAB5: db "TO",0; ; BYTE: "TO",0; dw FR1; ; WORD: FR1; db 0 ; BYTE: 0; dw QWHAT; ; WORD: QWHAT; ; TAB6: db "STEP",0; ; BYTE: "STEP",0; dw FR2; ; WORD: FR2; db 0 ; BYTE: 0; dw FR3; ; WORD: FR3; ; TAB8: db ">=",0; ; BYTE: ">=",0; dw XP11; ; WORD: XP11; db "#",0; ; BYTE: "#",0; dw XP12; ; WORD: XP12; db ">",0; ; BYTE: ">,0; dw XP13; ; WORD: XP13; db "=",0; ; BYTE: "=",0; ; dw XP15; ; WORD: XP15; db "<=",0; ; BYTE: "<=",0; dw XP14; ; WORD: XP14; db "<",0; ; BYTE: "<",0; dw XP16; ; WORD: XP16; db 0 ; BYTE: 0; dw XP17; ; WORD: XP17; ; ; %**************** ; % DIRECT MODULE * ; %**************** ; DIRECT: dw $7604, $0C09 ; LD R4,^TAB1-1; EXEC: EX0: dw $04BA ; CALR IGNB; dw $93F5 ; PUSH R15^,R5; EX1: dw $2059 ; LDB RL1,R5^; dw $A950 ; INC R5,1; dw $0A09, $2E2E ; CPB RL1,"."; dw $E60D ; JR ZR,EX3; dw $A940 ; INC R4,1; dw $0A49 ; CPB RL1,R4^; dw $E6F8 ; JR ZR,EX1; dw $8C98 ; CLRB RL1; dw $AB50 ; DEC R5,1; dw $0A49 ; CPB RL1,R4^; dw $E60A ; JP ZR,EX5; EX2: dw $A940 ; INC R4,1; dw $0A49 ; CPB RL1,R4^; dw $EEFD ; JR NZ,EX2; dw $A941 ; INC R4,2; dw $97F5 ; POP R5,R15^ dw $E8EC ; JR EX0; EX3: dw $8C98 ; CLRB RL1; EX4: dw $A940 ; INC R4,1; dw $0A49 ; CPB RL1,R4^; dw $EEFD ; JR NZ,EX4;; EX5: dw $A940 ; INC R4,1; dw $2040 ; LDB RH0,R4^; dw $A940 ; INC R4,1; dw $2048 ; LDB RLO,R4^; dw $97F1 ; POP R1,R15^; dw $1E08 ; JP R0^; ; ; %*********** ; % END EXEC * ; %*********** ; ; % EINZELNE ROUTINEN ; CXBUFE: ; ; dw $6100, $121A ; LD R0,BUFEND; dw $8A89 ; CPB RL1,RL0; dw $9E08 ; RET; ; CXBUFA: dw $6100, $1218 ; LD R0,BUFFER; dw $8A89 ; CPB RL1,RL0; dw $9E08 ; RET; END1: dw $D301 ; CALR EXPR; dw $7605, $1476 ; LD R5,^TXTE; dw $8B54 ; CP R4,R5; dw $5E07, $09AE ; JP CY,ASORRY; dw $8444 ; ORB RH4,RH4; dw $5E05, $09AE ; JP MI;ASORRY; dw $2140 ; LD R0,R4^; dw $0D40 ; COM R4^; dw $8D00 ; COM R0; dw $0B40 ; CP R0,R4^; dw $5E0E, $09AE ; JP NZ,ASORRY; dw $6F04, $121A ; LD BUFEND,R4^; dw $0304, $0084 ; SUB R4,132; dw $6F04, $1218 ; LD BUFFER,R4; dw $AB41 ; DEC R4,2; dw $6F04, $1216 ; LD TXTEND,R4; dw $5E08, $048C ; JP RSTART; BYE: dw $7FFF ; SC 255; dw $5E08, $048C ; JP RSTART; CALL1: dw $D31E ; CALR EXPR; dw $93F5 ; PUSH R15^,R5; dw $7606, $0DBC ; LD R6,^HERE; dw $93F6 ; PUSH R15^,R6; dw $1E48 ; JP R4^; HERE: dw $97F5 ; POP R5,R15^; % NUR IN SYS MODE dw $D4FE ; CALR FINI; OUT1: dw $D298 ; CALR PARN; dw $93F4 ; PUSH R15^,R1; dw $D4DD, $3D3D, $0DD2 ; TESTC ="RSV0; dw $D32B ; CALR EXPR; ; dw $97F0 ; POP R0,R15^; dw $3F04 ; OUT R0^,R4; dw $D507 ; CALR FINI; RSV0: dw $5E08, $096A ; JP QWHAT; ; TAB: dw $D2A3 ; CALR PARM; A1: dw $8544 ; OR R4,R4 dw $EE01 ; JR NZ,SK4; dw $D50D ; CALR FINI; SK4: dw $AB40 ; DEC R4,1; dw $C920 ; LDB RL1," "; dw $D11E ; CALR OUTC; dw $E8F9 ; JR A1 IN1: dw $D2AB ; CALR PARN; dw $A140 ; LD R0,R4; dw $3D04 ; IN R4,R0^; dw $9E08 ; RET; ; ; OO: dw $D33D ; CALR EXPR; dw $93F5 ; PUSH R15^,R5; dw $AD54 ; EX R4,R5; dw $8D18 ; CLR R1; dw $5F00, $0A38 ; CALL PRTSTG; dw $97F5 ; POP R5,R15^; dw $D51D ; CALR FINI; II: dw $D345 ; CALR EXPR; dw $93F5 ; PUSH R15^,R5; dw $6105, $101c ; LD R5,TXTUNF; dw $8B54 ; CP R4,R5; dw $5E07, $09AE ; JP CY,ASORRY; dw $6105, $1218 ; LD R5,BUFFER; dw $D22B ; CALR GL1; dw $A146 ; LD R6,R4; dw $AD54 ; EX R4,R5; dw $AB40 ; DEC R4,1; dw $6105, $1218 ; LD R5,BUFFER; dw $93F5 ; PUSH R15^,R5; dw $D194 ; CALR MVUP; dw $0C68 ; CLRB R6^; dw $97F5 ; POP R5,R15^; dw $A940 ; INC R4,1; dw $8354 ; SUB R4,R5; dw $AD54 ; EX R4,R5; dw $7604, $1000 ; LD R4,^LEGT; dw $2E4D ; LDB R4^,RL5; dw $A940 ; INC R4,1; dw $2E45 ; LDB R4^,RH5; dw $97F5 ; POP R5,R15^; dw $D53A ; CALR FINI; ; PEEK: dw $D2D4 ; CALR PARN; dw $204C ; LDB RL4,R4^; dw $8C48 ; CLRB RH4; dw $9E08 ; RET; ; POKE: dw $D366 ; CALR EXPR; dw $93F4 ; PUSH R15^,R4^; dw $D51D, $2C2C, $0E54 ; TESTC .",PK1; dw $D36B ; CALR EXPR; dw $A0C9 ; LDB RL1,RL4; dw $97F4 ; POP R4,R15^; dw $2E49 ; LDB R4^,RL1; dw $D53A ; CALR FINI; PK1: dw $5E08, $096A ; JP QWHAT; BYTE1: dw $D2E4 ; CALR PARN; dw $A0C9 ; LDB RL1,RL4; dw $DFF9 ; CALR WRIT2; dw $D54E ; CALR FINI; ; WORD1: dw $D2E8 ; CALR PARN; dw $A049 ; LDB RL1,RH4; dw $DFFD ; CALR WRIT2; dw $A0C9 ; LDB RL1,RL4; dw $DFFF ; CALR WRIT2; dw $D554 ; CALR FINI; ; WRIT2: dw $93F1 ; PUSH R15^,R1; dw $B311, $FBFC ; SRL R1,4; dw $DFFF ; CALR IST; dw $97F1 ; POP R1,R15^; IST: dw $0609, $0F0F ; ANDB RL1,0FH; dw $0009, $9090 ; ADDB RL1,90H; dw $B090 ; DAB RL1; dw $C840 ; LDB RL0,4OH; dw $B489 ; ADCB RL1,RL0; dw $B090 ; DAB RL1; dw $5E08, $0BA8 ; JP OUTC; ; CSTAT: dw $5F00, $03B0 ; CALL CSTS; dw $A09C ; LDB RL4,RL1; dw $8C48 ; CLRB RH4; dw $9E08 ; RET; ; QUOTE: dw $2059 ; LDB RL1,R5^; dw $A950 ; INC R5,1; dw $A09C ; LDB RL4,RL1; dw $8C48 ; CLRB RH4; dw $D549, $2727, $0EA4 ; TESTC 27H,ASCI; dw $9E08 ; RET; ASCI: dw $5E08, $096A ; JP QWHAT; ; TOP: dw $6104, $101C ; LD R4,TXTUNF; dw $A940 ; INC R4,1; dw $9E08 ; RET; ; LENGTH: dw $6104, $1000 ; LD R4,LEGT; dw $AB40 ; DEC R4,1; dw $9E08 ; RET; ; OUTCHAR: dw $D3A2 ; CALR EXPR; dw $A0C9 ; LDB RL1,RL4; dw $5F00, $0BA8 ; CALL OUTC; dw $D57F ; CALR FINI; ; INCHAR: dw $D176 ; CALR CHKIO; dw $A09C ; LDB RL4,RL1; dw $8C48 ; CLRB RH4; dw $9E08 ; RET; ; HEX: dw $93F6 ; PUSH R15^,R6; dw $8D48 ; CLR R4; dw $D562, $2828, $0EF4 ; TESTC "(",HN2; HNXTH: dw $2059 ; LDB RL1,R5^; dw $0A09, $0D0D ; CPB RL1,0DH; dw $5E06, $096A ; JP ZR,QWHAT; dw $DFF4 ; CALR CNVBN; dw $B349, $0004 ; SLA R4,4; dw $8C18 ; CLRB RH1; dw $8114 ; ADD R4,R1; dw $A950 ; INC R5,1; dw $D570, $2929, $0ED4 ; TESTC ")",HNXTH; POPRET: dw $97F6 ; POP R6,R15^; dw $9E08 ; RET; ; HN2: dw $5E08, $096A ; JP QWHAT; ; CNDBN: dw $0A09, $3030 ; CPB RL1,"0"; dw $5E05, $096A ; JP M1,QWHAT; dw $0A09, $3939 ; CPB RL1,"9"; dw $E509 ; JR M1,CONTC; dw $E608 ; JR ZR,CONTC; dw $0A09, $4141 ; CPB RL1,"A"; dw $5E05, $096A ; JP M1,QWHAT; dw $0A09, $4747 ; CPB RL1,"C; dw $5E0D, $096A ; JP PL,QWHAT; CONTC: dw $0209, $3030 ; SUBB RL1,"0"; dw $0A09, $0A0A ; CPB RL1,1O; dw $9E05 ; RET MI; dw $0209, $0707 ; SUBB RL1,7; dw $9E08 ; RET; CONT: ; % FLAGB dw $5F00, $03B0 ; CALL CSTS; dw $8511 ; OR R1,R1 dw $9E06 ; RET ZR; dw $5F00, $037C ; CALL CI; dw $0A09, $0303 ; CPB RL1-3; dw $9E0E ; RET NZ; dw $5E08, $048C ; JP RSTART; end