CALL CNTLN MOV A,C SUI 1 MOV C,A LXI D,WORD LHLD HLSAV CALL BLKTFR SHLD EPTR XCHG MVI A,0DH MOV M,A LHLD HLLSAV XCHG LXI H,WORD CALL CMPR ORA A JNZ SETCNT LHLD HLSAV INX H SHLD HLSAV JMP INDE2 SETCNT LXI H,SCNT MOV C,M RET INDX MVI C,1 MOV A,M CMP B RZ CPI 0DH JZ ZC MOV A,C ADI 1 MOV C,A INX H JMP INDX+2 ZC XRA A MOV C,A RET SINDX MVI C,1 MOV A,M CPI '$' RZ CPI '#' RZ CPI 0DH RZ MOV A,C ADI 1 MOV C,A INX H JMP SINDX+2 LETTER MOV A,M MOV B,M CPI 41H JM NOTL CPI 5AH JP NOTL XRA A RET NOTL ORA H RET SETUP CALL CNTLN MOV B,C CALL BACKUP MOV C,B RET TOP LHLD HLSAV SHLD CPTR SHLD LLSAV LXI H,TSAVE SHLD DESAV XCHG TMORE LHLD CPTR CALL SINDX CPI '$' JZ GETXT CPI '#' JZ GETNUM JMP TMOVE GETXT CALL INSERT CPI 1 JNZ TMORE LXI D,TSAVE LHLD LLSAV JMP TALL GETNUM CALL INSNUM JMP GETXT+3 TMOVE LHLD DESAV XCHG LHLD CPTR TALL CALL SETUP CALL BLKTFR MVI A,0DH XCHG MOV M,A LXI H,TSAVE CALL DSPLY XRA A RET INSNUM MOV A,C SUI 1 JZ VBL MOV C,A LHLD DESAV XCHG LHLD CPTR CALL BLKTFR VBL MOV B,H MOV C,L XCHG SHLD DESAV MOV H,B MOV L,C INX H MOV C,M INX H SHLD CPTR MOV B,C CALL VARMCH CPI 1 RZ INX H MOV E,M LXI H,WORD CALL PUTNM LHLD DESAV XCHG LXI H,WORD CALL SETUP MOV A,C SUI 1 MOV C,A CALL BLKTFR XCHG SHLD DESAV XRA A RET INSERT MOV A,C SUI 1 JZ LBL MOV C,A LHLD DESAV XCHG LHLD CPTR CALL BLKTFR LBL MOV B,H MOV C,L XCHG SHLD DESAV MOV H,B MOV L,C CALL GETWD DCX H SHLD CPTR LHLD APTR INX H CALL LOOKS CPI 1 RZ CALL GETA RET GETA INX H MOV B,H MOV C,L LHLD DESAV XCHG MOV H,B MOV L,C CALL SETUP MOV A,C SUI 1 MOV C,A CALL BLKTFR XCHG SHLD DESAV XRA A RET AOP LHLD HLSAV CALL GETCH CPI '$' JNZ NIN LXI D,LABSAV CALL WDTFR CALL ENTR CALL ASTORE RET NIN CPI '#' JNZ CENT INX H MOV A,M STA VARSAV CALL ENTR CALL CKNUM CALL NSTORE RET CENT CALL ENTR RET ENTR CALL KEYIN LXI H,EBUFF MOV A,M CPI 1AH RNZ INX H MOV A,M CPI 0DH JZ RSTRT CALL OPS JMP ENTR CKNUM CPI '0' JM NERR CPI '9'+1 RM NERR LXI H,NMSG CALL ERROR CALL ENTR JMP CKNUM ASTORE LXI H,EBUFF CALL CNTLN MOV B,C LHLD APTR CALL DECA MOV A,C ORA A RZ LXI H,EBUFF CALL BLKTFR LXI H,LABSAV CALL CNTLN MOV B,C LHLD APTR CALL DECA MOV A,C ORA A RZ LXI H,LABSAV CALL BLKTFR MOV L,E MOV H,D DCX H MVI A,' ' MOV M,A RET DECA MOV E,L MOV D,H DCX H MOV A,M CPI 1 JZ STOVF MOV A,B SUI 1 MOV B,A JNZ DECA SHLD APTR MVI M,1 RET STOVF LXI H,NRMSG CALL ERROR MVI C,0 RET NSTORE LXI H,EBUFF CALL GETCH CALL GETNM LXI H,VARSAV MOV B,M CALL VARMCH CPI 1 CZ BADFRM RZ INX H MOV M,E RET MC LXI H,MBRCH MVI M,'^' JMP MOP1 MOP LXI H,MBRCH MVI M,',' MOP1 LHLD HLSAV SHLD MPTR NEXTM CALL MMOV LHLD MPTR SHLD HLSAV CALL SQUEZ LXI H,EBUFF SHLD HLSAV CALL PAD CALL SQUEZ LXI H,EBUFF SHLD HLSAV LXI H,MSAVE SHLD HLLSAV CALL INDEX MOV A,C ORA A CNZ SWY RNZ LHLD MPTR DCX H MOV A,M CPI 0DH JZ MDONE INX H MOV A,M CPI 0DH JZ MDONE JMP NEXTM MDONE CALL SWN RET SWY ORA H STA YNSW RET SWN XRA A STA YNSW RET MMOV LHLD MPTR LXI D,MSAVE MMOV2 CALL MBR JZ SMOV INX H XCHG MOV M,B INX H XCHG JMP MMOV2 SMOV INX H XCHG MVI A,0DH MOV M,A INX H XCHG SHLD MPTR RET MBR MOV A,M MOV B,A CPI 0DH RZ LDA MBRCH CMP B RET PAD LXI H,WORD MVI A,' ' MOV M,A INX H XCHG LHLD HLSAV CALL CNTLN LHLD HLSAV CALL BLKTFR XCHG DCX H MVI A,' ' MOV M,A INX H MVI A,0DH MOV M,A LHLD HLSAV XCHG LXI H,WORD CALL CNTLN LXI H,WORD CALL BLKTFR RET SQUEZ LHLD HLSAV SHLD HLLSAV MOV A,M CKEOL CPI 0DH RZ CPI ' ' JZ CKNC INX H JMP SQUEZ+3 CKNC INX H CKNC1 MOV A,M CPI ' ' JNZ CKEOL SHLD HLLSAV CALL SHIFT LHLD HLLSAV JMP CKNC1 SHIFT INX H MOV B,M DCX H MOV M,B MOV A,M CPI 0DH RZ INX H JMP SHIFT COP LHLD HLSAV MVI B,'=' CALL INDX MOV A,C ORA A JZ EXMSG INX H CALL GETCH CPI '-' JNZ CGVAL SHLD HLLSAV XRA A STA TEMP LHLD HLLSAV JMP SUBV CGVAL CALL GVALUE LXI H,TEMP MOV M,E LHLD CPTR INX H CALL GETCH CPI 0DH JZ AVAL COPY PILO3:S/1