home *** CD-ROM | disk | FTP | other *** search
- 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;
- :$$=$$<!$$;
- @ LDA@ .^P3C^P4C;
- @ LXI@ H,.^P5C^P6C;
- @ CMP@ M;
- @ RAL;
- @ ANI@ 1;
- @ STA@ .^P1C^P2C;
- :$$=!$$;
- @ LDA@ .P3C^P4C;
- @ CMA;
- @ ANI@ 1;
- @ STA@ .^P1C^P2C;
- :$$=I$$==I$$;
- @ LXI@ D,.I^P5C^P6C;
- @ LHLD@ .I^P3C^P4C;
- @ LDAX@ D;
- @ XRA@ L;
- @ JNZ@ @$+12;
- @ INX@ D;
- @ LDAX@ D;
- @ XRA@ H;
- @ JNZ@ @$+6;
- @ MVI@ A,1;
- @ LXI@ B,003EH;
- @ STA@ .^P1C^P2C;
- :$$=I$$!=I$$;
- @ LXI@ D,.I^P5C^P6C;
- @ LXI@ H,.I^P3C^P4C;
- @ CALL@ ?INTCK;
- @ STA@ .^P1C^P2C;
- :$$=I$$<=I$$;
- @ LHLD@ .I^P5C^P6C;
- @ XCHG;
- @ LHLD@ .I^P3C^P4C;
- @ CALL@ ?CDEHL;
- @ EXTRN@ ?CDEHL;
- @ CALL@ ?SETAC;
- @ STA@ .^P1C^P2C;
- :$$=I$$<!I$$;
- @ LHLD@ .I^P5C^P6C;
- @ XCHG;
- @ LHLD@ .I^P3C^P4C;
- @ CALL@ ?CDEHL;
- @ EXTRN@ ?CDEHL;
- @ RAL;
- @ ANI@ 1;
- @ STA@ .^P1C^P2C;
- :CASE $$;
- ^!0P^!9P^!8P
- @ JMP@ .XC^P0N;
- @ ORG@ @$-^P9N;
- .UP^P8N@:@ LXI@ H,.ERASER.;
- @ LDA@ .^P1C^P2C;
- @ CMP@ M;
- @ JNZ@ .UP^U1S^S8N^N0S^P0S;
- :ASSOCIATE FCB $ WITH I$$;
- @ LXI@ D,?IFCB+((^P1C-1)*36);
- @ LXI@ H,.I^P2C^P3C;
- @ CALL@ ?ATACH;
- @ EXTRN@ ?ATACH,?IFCB;
- :WRITE $$;
- @ LDA@ .^P1C^P2C;
- @ CALL@ ?WRNXT;
- @ EXTRN@ ?WRNXT;
- :CLOSE $$;
- @ LXI@ H,.^P1C^P2C;
- @ CALL@ ?BCLOF;
- @ EXTRN@ ?BCLOF;
- :STOP $;
- @ MVI@ A,^P1C;
- @ CALL@ ?ISTOP;
- @ EXTRN@ ?ISTOP;
- :OPEN $$ FOR $$ AT I$$;
- @ LXI@ D,.^P1C^P2C;
- @ LDA@ .^P3C^P4C;
- @ LHLD@ .I^P5C^P6C;
- @ CALL@ ?IOPEN;
- @ EXTRN@ ?IOPEN;
- :ENDSUB;
- @ RET;
- :RETURN;
- @ RET;
- :EXTERNAL PROCEDURE $$;
- @ CALL@ ..$$;
- @ EXTRN@ ..$$;
- :READ $$ FROM $$;
- @ LXI@ H,.^P1C^P2C;
- @ LXI@ D,.^P3C^P4C;
- @ CALL@ ?BREAD;
- @ EXTRN@ ?BREAD;
- :WRITE $$ INTO $$;
- @ LDA@ .^P1C^P2C;
- @ LXI@ D,.^P3C^P4C;
- @ CALL@ ?BWRIT;
- @ EXTRN@ ?BWRIT;
- :ENDMAIN;
- @ CALL@ ?ENDING;
- @ JMP@ ?BOOT;
- :LOC $$;
- ?LL0^P1C^P2C@:;
- :CHOOSE ON $$;
- @ LDA@ .^P1C^P2C;
- @ STA@ .ERASER.;
- ^U0S; GENERATE LABEL FOR ENDCHOOSE OR DEFAULT
- ^N3S; PUT A 3 ON THE STACK TO KILL JUMP WITH AN ORG
- ^U1S; PUT .UP LABEL ON THE STACK
- :DEFAULT;
- ^!0P^!9P^!8P
- @ JMP@ .XC^P0N;
- @ ORG@ $-^P9N;
- .UP^P8N@:;
- ^P0S
- :ENDCHOOSE;
- .XC^!0N@:;
- :WHILE;
- ^U0S.X^S0N@:;
- :ON $$;
- @ LDA@ .^P1C^P2C;
- @ ORA@ A;
- @ JZ@ .W^S0N;
- :ENDWHILE;
- @ JMP@ .X^S0N;
- .W^!0N@:;
- :SUB $$;
- ..^P1C^P2C@:;
- :IF $$;
- @ LDA@ .^P1C^P2C;
- @ ORA@ A;
-
- @ JZ@ .F^U0S^S0N;
- :ELSE;
- @ JMP@ .F^U0P^P0N^!9P;
- .F^P9N@:;
- ^P0S
- :ENDIF;
- .F^!0N@:;
- :BYTE $$;
- .^P1C^P2C@:@ DS@ 1;
- :INT I$$;
- .I^P1C^P2C@:@ DS@ 2;
- :BYTE $$($$$$$);
- .^P1C^P2C@:@ DS@ ^V3S^V4*^V5*^V6*^V7*^!0N;
- :BYTE $$($$$);
- .^P1C^P2C@:@ DS@ ^V3S^V4*^V5*^!0N;
- :INT I$$($$$$$);
- .I^P1C^P2C@:@ DS@ 2*^V3S^V4*^V5*^V6*^V7*^!0N;
- :INT I$$($$$);
- .I^P1C^P2C@:@ DS@ 2*^V3S^V4*^V5*^!0N;
- :BOTTOM;
- @ DSEG;
- @ DS@ 60;
- ?STACK@:@ DW@ 0;
- @ END@ ?START;
- :READBUF $$;
- @ LXI@ D,.^P1C^P2C;
- @ CALL@ ?RDBUF;
- @ EXTRN@ ?RDBUF;
- :WRITEBUF $$;
- @ LXI@ D,.^P1C^P2C;
- @ CALL@ ?WRBUF;
- @ EXTRN@ ?WRBUF;
- :READ $$;
- @ CALL@ ?RNX;
- @ EXTRN@ ?RNX;
- @ STA@ .^P1C^P2C;
- :LOCAL VARIABLES;
- @ DSEG;
- :ENDLOCAL;
- @ CSEG;
- :EXTERNAL PROCEDURE NAME $$;
- @ PUBLIC@ ..^P1C^P2C;
- @ CSEG;
- ..^P1C^P2C@:;
- :PROCEDURE END;
- @ RET;
- @ END;
-