* PQTER PUSH B CALL CONTST LXI H,0 JZ PQTE1 CALL CONIN LXI H,0 ORA A ( MODE SELECT? ) JNZ PQTE1 INR L PQTE1 POP B JMP HPUSH ; PKEY PUSH B CALL CONIN POP B MOV L,A MVI H,0 JMP HPUSH ; PINKEY PUSH B CALL CONTST LXI H,0 JZ PINK1 CALL CONIN MOV L,A MVI H,0 PINK1 POP B JMP HPUSH ; OUTPUT PUSH B MOV B,A CALL CONOUT POP B RET . ; PEMIT DW $+2 POP H MOV A,L ANI 7FH CALL OUTPUT JMP NEXT ; PCR MVI A,ACR CALL OUTPUT MVI A,LF CALL OUTPUT JMP NEXT ; DB 82H ASC '.' DB 'S'+80H DW BYE-6 DOTS DW DOCOL DW SZERO DW AT DW SPAT DW SUBB DW TWO DW SLASH DW ONE DW SUBB DW ZBRAN The IF statement DW DOTS1-$ DW SPAT DW TWO DW SUBB DW SZERO DW AT DW TWO DW SUBB DW XDO DOTS2 DW IDO DW AT DW DOT DW LIT DW -2 DW XPLOO DW DOTS2-$ DW BRAN DW DOTS3-$ DOTS1 DW PDOTQ DB 0CH Length of the string ASC 'Stack empty ' DW CR DOTS3 DW SEMIS ; DB 84H ASC '.HE' DB 'X'+80H DW DOTS-5 DOTH DW $+2 POP H MOV E,L MOV A,L RAR RAR RAR RAR CALL HEOUT MOV A,E CALL HEOUT JMP NEXT * HEOUT ANI 0FH ADI 30H CPI 3AH JC OUTH ADI 7 OUTH JMP OUTPUT * DB 83H ASC 'CL' DB 'S'+80H DW DOTH-7 IF NOSOLOS CLS DW $+2 LXI H,0CC00H CLS1 MVI M,20H INX H MOV A,H CPI 0D0H JNZ CLS1 MVI A,ACR CALL OUTPUT XRA A OUT 0C8H OUT 0FEH JMP NEXT ENDF IF SOLOS CLS DW DOCOL DW LIT DW 11 DW EMIT DW SEMIS ENDF * DB 84H ASC 'TAS' DB 'K'+80H DW CLS-6 <<<<<<<=================== TASK DW DOCOL DW SEMIS ; INITDP DS EM-$ END