U:;$^ :TOP; @ EXTRN@ ?MSG; @ EXTRN@ ?BOOT,?INIT,?ENDING; @ COMMON@ /IOCTRL/; .ER@:@ DB@ 0; .AC@:@ DB@ 0; .IAV@:@ DW@ 0,0,0,0,0,0; @ COMMON@ / / ; :BEGINMAIN(AC,IAV); @ DSEG; .ERASER.@: DB@ 0; @ CSEG; ?SETAC@:@ MVI@ A,1; @ RM; @ RZ; @ XRA@ A; @ RET; ?INTCK@:@ MVI@ B,1; @ LDAX@ D; @ CMP@ M; @ JNZ@ @$+8; @ INX@ H; @ INX@ D; @ LDAX@ D; @ XRA@ M; @ RZ; @ MOV@ A,B; @ RET; ?START@:@ LXI@ SP,?STACK; @ CALL@ ?INIT; :PARAMETER K$$=$$$; .K^P1C^P2C@ EQU@ ^V3S^V4*^V5*^!0N; :MS '$$$$$$$$$'; @ CALL@ ?MSG; @ DB@ '^P1C^P2C^P3C^P4C^P5C^P6C^P7C^P8C^P9C'; :GOSUB $$; @ CALL@ ..^P1C^P2C; :GOTO $$; @ JMP@ ?LL0^P1C^P2C; :$$=+000; @ XRA@ A; @ STA@ .^P1C^P2C; :I$$=+00000; @ LXI@ H,0; @ SHLD@ .I^P1C^P2C; :I$$=+K$$; @ LXI@ H,.K^P3C^P4C; @ SHLD@ .I^P1C^P2C; :PACK(I$$,$$,$$); @ LDA@ .^P5C^P6C; @ MOV@ L,A; @ LDA@ .^P3C^P4C; @ MOV@ H,A; @ SHLD@ .I^P1C^P2C; :UNPACK(I$$,$$,$$); @ LHLD@ .I^P1C^P2C; @ MOV@ A,L; @ STA@ .^P3C^P4C; @ MOV@ A,H; @ STA@ .^P5C^P6C; :CALL I$$; @ LXI@ H,@$+8; @ PUSH@ H; @ LHLD@ .I^P1C^P2C; @ PCHL; :$$=+K$$; @ MVI@ A,.K^P3C^P4C; @ STA@ .^P1C^P2C; :$$='$'; @ MVI@ A,'^P3C'; @ STA@ .^P1C^P2C; :$$=+$$$; @ MVI@ A,^V3S^V4*^V5*^!0N; @ STA@ .^P1C^P2C; :I$$=+$$$$$; @ LXI@ H,^V3S^V4*^V5*^V6*^V7*^!0N; @ SHLD@ .I^P1C^P2C; :$$=$$; @ LDA@ .^P3C^P4C; @ STA@ .^P1C^P2C; :$$++; @ LXI@ H,.^P1C^P2C; @ INR@ M; :$$--; @ LXI@ H,.^P1C^P2C; @ DCR@ M; :I$$=$$; @ LHLD@ .^P3C^P4C; @ MVI@ H,0; @ SHLD@ .I^P1C^P2C; :$$=I$$; @ LDA@ .I^P3C^P4C; @ STA@ .^P1C^P2C; :I$$=I$$; @ LHLD@ .I^P3C^P4C; @ SHLD@ .I^P1C^P2C; :$$=$$($$); @ LHLD@ .^P5C^P6C; @ MVI@ H,0; @ LXI@ D,.^P3C^P4C; @ DAD@ D; @ MOV@ A,M; @ STA@ .^P1C^P2C; :I$$=I$$($$); @ LHLD@ .^P5C^P6C; @ MVI@ H,0; @ LXI@ D,.I^P3C^P4C; @ DAD@ H; @ DAD@ D; @ LXI@ D,.I^P1C^P2C; @ MOV@ A,M; @ STAX@ D; @ INX@ D; @ INX@ H; @ MOV@ A,M; @ STAX@ D; :$$=$$(I$$); @ LHLD@ .I^P5C^P6C; @ LXI@ D,.^P3C^P4C; @ DAD@ D; @ MOV@ A,M; @ STA@ .^P1C^P2C; :I$$=I$$(I$$); @ LHLD@ .I^P5C^P6C; @ LXI@ D,.I^P3C^P4C; @ DAD@ H; @ DAD@ D; @ MOV@ E,M; @ INX@ H; @ MOV@ D,M; @ XCHG; @ SHLD@ .I^P1C^P2C; :$$($$)=$$; @ LHLD@ .^P3C^P4C; @ MVI@ H,0; @ LXI@ D,.^P1C^P2C; @ DAD@ D; @ LDA@ .^P5C^P6C; @ MOV@ M,A; :I$$($$)=I$$; @ LHLD@ .^P3C^P4C; @ MVI@ H,0; @ DAD@ H; @ LXI@ D,.I^P1C^P2C; @ DAD@ D; @ LXI@ D,.I^P5C^P6C; @ LDAX@ D; @ MOV@ M,A; @ INX@ D; @ INX@ H; @ LDAX@ D; @ MOV@ M,A; :$$(I$$)=$$; @ LHLD@ .I^P3C^P4C; @ LXI@ D,.^P1C^P2C; @ DAD@ D; @ LDA@ .^P5C^P6C; @ MOV@ M,A; :I$$(I$$)=I$$; @ LHLD@ .I^P3C^P4C; @ LXI@ D,.I^P1C^P2C; @ DAD@ H; @ DAD@ D; @ XCHG; @ LHLD@ .I^P5C^P6C; @ MOV@ A,L; @ STAX@ D; @ INX@ D; @ MOV@ A,H; @ STAX@ D; :$$=$$+$$; @ LXI@ H,.^P5C^P6C; @ LDA@ .^P3C^P4C; @ ADD@ M; @ STA@ .^P1C^P2C; :$$=$$-$$; @ LXI@ H,.^P5C^P6C; @ LDA@ .^P3C^P4C; @ SUB@ M; @ STA@ .^P1C^P2C; :$$=$$&$$; @ LXI@ H,.^P5C^P6C; @ LDA@ .^P3C^P4C; @ ANA@ M; @ STA@ .^P1C^P2C; :$$=$$?$$; @ LXI@ H,.^P5C^P6C; @ LDA@ .^P3C^P4C; @ ORA@ M; @ STA@ .^P1C^P2C; :I$$++; @ LHLD@ .I^P1C^P2C; @ INX@ H; @ SHLD@ .I^P1C^P2C; :I$$--; @ LHLD@ .I^P1C^P2C; @ DCX@ H; @ SHLD@ .I^P1C^P2C; :I$$=-I$$; @ LHLD@ .I^P3C^P4C; @ CALL@ ?ICOMP; @ EXTRN@ ?ICOMP; @ SHLD@ .I^P1C^P2C; :I$$=I$$+I$$; @ LHLD@ .I^P5C^P6C; @ XCHG; @ LHLD@ .I^P3C^P4C; @ DAD@ D; @ SHLD@ .I^P1C^P2C; :I$$=I$$-I$$; @ LHLD@ .I^P5C^P6C; @ XCHG; @ LHLD@ .I^P3C^P4C; @ CALL@ ?ISUB; @ EXTRN@ ?ISUB; @ SHLD@ .I^P1C^P2C; :I$$=I$$*I$$; @ LHLD@ .I^P5C^P6C; @ XCHG; @ LHLD@ .I^P3C^P4C; @ CALL@ ?IMUL; @ EXTRN@ ?IMUL; @ SHLD@ .I^P1C^P2C; :I$$=I$$/I$$; @ LHLD@ .I^P5C^P6C; @ XCHG; @ LHLD@ .I^P3C^P4C; @ CALL@ ?IDIV; @ EXTRN@ ?IDIV; @ SHLD@ .I^P1C^P2C; :$$=$$==$$; @ LXI@ H,.^P3C^P4C; @ LDA@ .^P5C^P6C; @ CMP@ M; @ JZ@ @$+5; @ XRA@ A; @ LXI@ B,013EH; @ STA@ .^P1C^P2C; :$$=$$!=$$; @ LXI@ H,.^P5C^P6C; @ LDA@ .^P3C^P4C; @ CMP@ M; @ JNZ@ @$+5; @ XRA@ A; @ LXI@ B,013EH; @ STA@ .^P1C^P2C; :$$=$$<=$$; @ LXI@ H,.^P5C^P6C; @ LDA@ .^P3C^P4C; @ CMP@ M; @ CALL@ ?SETAC; @ STA@ .^P1C^P2C; :$$=$$