home *** CD-ROM | disk | FTP | other *** search
- U:;$^
- :REGISTER=$$$;
- :TOP;
- @ TITLE@ '8086 TINCMP CMPLR[CP/M 1.1]';
- @ PAGEWIDTH 79;
- @ NAME@ 'MAINPROG';
- @ EXTRN@ MSG@:NEAR,OPENIO@:NEAR,CLOSEIO@:NEAR,RNX@:NEAR;
- @ EXTRN@ WNX@:NEAR,STOP@:NEAR,BREAD@:NEAR,BWRITE@:NEAR;
- @ EXTRN@ INITIAL@:NEAR,ENDING@:NEAR,STOP@:NEAR,ATTACH@:NEAR;
- @ EXTRN@ ASSOC@:NEAR;
- DATA@ DSEG;
- :LOMEM=$$$$$;
- :HIMEM=$$$$$;
- :PARAMETER K$$=$$$;
- KA0^P1C^P2C@ EQU@ ^V3S^V4*^V5*^!0N;
- :MS '$$$$$$$$$';
- @ CALL@ MSG;
- @ DB@ '^P1C^P2C^P3C^P4C^P5C^P6C^P7C^P8C^P9C';
- :GOSUB $$;
- @ CALL@ SA0^P1C^P2C;
- :GOTO $$;
- @ JMP@ LOC^P1C^P2C;
- :BYTE $$;
- BA0^P1C^P2C@ RB@ 1;
- :BYTE $$($$$);
- BA0^P1C^P2C@ RB@ ^V3S^V4*^V5*^!0N;
- :BYTE $$($$$$$);
- BA0^P1C^P2C@ RB@ ^V3S^V4*^V5*^V6*^V7*^!0N;
- :INT I$$;
- WA0^P1C^P2C@ RW@ 1;
- :INT I$$($$$);
- WA0^P1C^P2C@ RW@ ^V3S^V4*^V5*^!0N;
- :INT I$$($$$$$);
- WA0^P1C^P2C@ RW@ ^V3S^V4*^V5*^V6*^V7*^!0N;
- :$$=+K$$;
- @ MOV@ BA0^P1C^P2C,KA0^P3C^P4C;
- :$$=+$$$;
- @ MOV@ BA0^P1C^P2C,^V3S^V4*^V5*^!0N;
- :$$='$';
- @ MOV@ BA0^P1C^P2C,'^P3C';
- :I$$=+$$$;
- @ MOV@ WA0^P1C^P2C,^V3S^V4*^V5*^!0N;
- :I$$=+$$$$$;
- @ MOV@ WA0^P1C^P2C,^V3S^V4*^V5*^V6*^V7*^!0N;
- :$$=$$;
- @ MOV@ AL,BA0^P3C^P4C;
- @ MOV@ BA0^P1C^P2C,AL;
- :$$++;
- @ INC@ BA0^P1C^P2C;
- :$$--;
- @ DEC@ BA0^P1C^P2C;
- :I$$=$$;
- @ MOV@ BH,0;
- @ MOV@ BL,BA0^P3C^P4C;
- @ MOV@ WA0^P1C^P2C,BX;
- :I$$=I$$;
- @ MOV@ BX,WA0^P3C^P4C;
- @ MOV@ WA0^P1C^P2C,BX;
- :$$=$$($$);
- @ MOV@ BL,BA0^P5C^P6C;
- @ MOV@ BH,0;
- @ MOV@ AL,BA0^P3C^P4C[BX];
- @ MOV@ BA0^P1C^P2C,AL;
- :I$$=I$$($$);
- @ MOV@ BL,BA0^P5C^P6C;
- @ MOV@ BH,0;
- @ SHL@ BX,1;
- @ MOV@ AX,WA0^P3C^P4C[BX];
- @ MOV@ WA0^P1C^P2C,AX;
- :$$=$$(I$$);
- @ MOV@ BX,WA0^P5C^P6C;
- @ MOV@ AL,BA0^P3C^P4C[BX];
- @ MOV@ BA0^P1C^P2C,AL;
- :I$$=I$$(I$$);
- @ MOV@ BX,WA0^P5C^P6C;
- @ SHL@ BX,1;
- @ MOV@ AX,WA0^P3C^P4C[BX];
- @ MOV@ WA0^P1C^P2C,AX;
- :$$($$)=$$;
- @ MOV@ AL,BA0^P5C^P6C;
- @ MOV@ BL,BA0^P3C^P4C;
- @ MOV@ BH,0;
- @ MOV@ BA0^P1C^P2C[BX],AL;
- :$$(I$$)=$$;
- @ MOV@ AL,BA0^P5C^P6C;
- @ MOV@ BX,WA0^P3C^P4C;
- @ MOV@ BA0^P1C^P2C[BX],AL;
- :I$$($$)=I$$;
- @ MOV@ AX,WA0^P5C^P6C;
- @ MOV@ BL,BA0^P3C^P4C;
- @ MOV@ BH,0;
- @ SHL@ BX,1;
- @ MOV@ WA0^P1C^P2C[BX],AX;
- :I$$(I$$)=I$$;
- @ MOV@ AX,WA0^P5C^P6C;
- @ MOV@ BX,WA0^P3C^P4C;
- @ SHL@ BX,1;
- @ MOV@ WA0^P1C^P2C[BX],AX;
- :$$=$$+$$;
- @ MOV@ AL,BA0^P5C^P6C;
- @ ADD@ AL,BA0^P3C^P4C;
- @ MOV@ BA0^P1C^P2C,AL;
- :$$=$$-$$;
- @ MOV@ AL,BA0^P3C^P4C;
- @ SUB@ AL,BA0^P5C^P6C;
- @ MOV@ BA0^P1C^P2C,AL;
- :$$=$$&$$;
- @ MOV@ AL,BA0^P3C^P4C;
- @ AND@ AL,BA0^P5C^P6C;
- @ MOV@ BA0^P1C^P2C,AL;
- :$$=$$?$$;
- @ MOV@ AL,BA0^P3C^P4C;
- @ OR@ AL,BA0^P5C^P6C;
- @ MOV@ BA0^P1C^P2C,AL;
- :I$$++;
- @ INC@ WA0^P1C^P2C;
- :I$$--;
- @ DEC@ WA0^P1C^P2C;
- :I$$=-I$$;
- @ MOV@ AX,WA0^P3C^P4C;
- @ NEG@ AX;
- @ MOV@ WA0^P1C^P2C,AX;
- :I$$=I$$+I$$;
- @ MOV@ AX,WA0^P3C^P4C;
- @ ADD@ AX,WA0^P5C^P6C;
- @ MOV@ WA0^P1C^P2C,AX;
- :I$$=I$$-I$$;
- @ MOV@ AX,WA0^P3C^P4C;
- @ SUB@ AX,WA0^P5C^P6C;
- @ MOV@ WA0^P1C^P2C,AX;
- :I$$=I$$*I$$;
- @ MOV@ AX,WA0^P3C^P4C;
- @ IMUL@ WA0^P5C^P6C;
- @ MOV@ WA0^P1C^P2C,AX;
- :I$$=I$$/I$$;
- @ MOV@ AX,WA0^P3C^P4C;
- @ MOV@ CX,WA0^P5C^P6C;
- @ CWD;
- @ JCXZ@ @$+4;
- @ IDIV@ CX;
- @ MOV@ WA0^P1C^P2C,AX;
- :$$=$$==$$;
- @ MOV@ AL,BA0^P3C^P4C;
- @ CMP@ AL,BA0^P5C^P6C;
- @ MOV@ AL,1;
- @ JZ@ @$+4;
- @ MOV@ AL,0;
- @ MOV@ BA0^P1C^P2C,AL;
- :$$=$$=!$$;
- @ MOV@ AL,BA0^P3C^P4C;
- @ CMP@ AL,BA0^P5C^P6C;
- @ MOV@ AL,1;
- @ JNZ@ @$+4;
- @ MOV@ AL,0;
- @ MOV@ BA0^P1C^P2C,AL;
- :$$=$$<=$$;
- @ MOV@ AL,BA0^P3C^P4C;
- @ CMP@ AL,BA0^P5C^P6C;
- @ MOV@ AL,0;
- @ JNBE@ @$+4;
- @ MOV@ AL,1;
- @ MOV@ BA0^P1C^P2C,AL;
- :ENDSUB;
- @ RET;
- :RETURN;
- @ RET;
- :STOP $;
- @ MOV@ AL,^P1C;
- @ CALL@ STOP;
- :LOC $$;
- LOC^P1C^P2C@:;
- :ENDMAIN;
- @ CALL@ ENDING;
- @ MOV@ CL,0;
- @ INT@ 224;
-
- :IF $$;
- @ MOV@ AL,BA0^P1C^P2C;
- @ TEST@ AL,AL;
- @ JNZ@ @$+5;
- @ JMP@ IF0^U0S^S0N;
- :ELSE;
- @ JMP@ IF0^U0P^P0N^!9P;
- IF0^P9N@:;
- ^P0S
- :ENDIF;
- IF0^!0N@:;
- :CALL $$;
- @ CALL@ SA0^P1C^P2C;
- :;
- :BOTTOM;
- @ END@ START;
- :READ $$ FROM $$;
- @ MOV@ BX, OFFSET BA0^P1C^P2C;
- @ MOV@ DX, OFFSET BA0^P3C^P4C;
- @ CALL@ BREAD;
- :WRITE $$ INTO $$;
- @ MOV@ BX, OFFSET BA0^P1C^P2C;
- @ MOV@ DX, OFFSET BA0^P3C^P4C;
- @ CALL@ BWRITE;
- :BEGINMAIN($$,I$$);
- BA0^P1C^P2C@ RB@ 1;
- WA0^P3C^P4C@ RW@ 1;
- IOCTRL@ DSEG@ COMMON;
- IAV@ DW@ 0;
- BA0ER@ DB@ 0;
- @ CSEG;
- START@:@ CALL@ INITIAL;
- @ MOV@ AX,IAV;
- @ MOV@ BA0^P1C^P2C,AL;
- :CLOSE $$;
- @ MOV@ DX, OFFSET BA0^P1C^P2C;
- @ CALL@ CLOSEIO;
- :WHILE;
- ^U0STW0^S0N@:;
- :ON $$;
- @ MOV@ AL,BA0^P1C^P2C;
- @ TEST@ AL,AL;
- @ JNZ@ @$+5;
- @ JMP@ BW0^S0N;
- :ENDWHILE;
- @ JMP@ TW0^S0N;
- BW0^!0N@:;
- :CHOOSE ON $$;
- @ MOV@ AL,BA0^P1C^P2C^U0S^N3S^U1S;
- :DEFAULT;
- ^!0P^!9P^!8P
- @ JMP@ XA0^P0N;
- @ RB@ 0-^P9N;
- A0U^P8N@:;
- ^P0S
- :ENDCHOOSE;
- XA0^!0N@:;
- :SUB $$;
- SA0^P1C^P2C@:;
- :CASE $$;
- ^!0P^!9P^!8P
- @ JMP@ XA0^P0N;
- @ RB@ 0-^P9N;
- A0U^P8N@:@ CMP@ AL,BA0^P1C^P2C;
- @ JZ@ @$+5;
- @ JMP@ A0U^U1S^S8N^N0S^P0S;
- :ASSOCIATE FCB $ WITH I$$;
- @ MOV@ AL,^P1C;
- @ MOV@ BX, OFFSET WA0^P2C^P3C;
- @ CALL@ ATTACH;
- :UNPACK(I$$,$$,$$);
- @ MOV@ AX,WA0^P1C^P2C;
- @ MOV@ BA0^P3C^P4C,AH;
- @ MOV@ BA0^P5C^P6C,AL;
- :PACK(I$$,$$,$$);
- @ MOV@ AL,BA0^P5C^P6C;
- @ MOV@ AH,BA0^P3C^P4C;
- @ MOV@ WA0^P1C^P2C,AX;
- :$$=I$$;
- @ MOV@ AL,BYTE PTR WA0^P3C^P4C;
- @ MOV@ BA0^P1C^P2C,AL;
- :$$=$$!=$$;
- @ MOV@ AL,BA0^P5C^P6C;
- @ CMP@ AL,BA0^P3C^P4C;
- @ MOV@ AL,1;
- @ JNZ@ @$+4;
- @ MOV@ AL,0;
- @ MOV@ BA0^P1C^P2C,AL;
- :$$=I$$==I$$;
- @ MOV@ AX,WA0^P5C^P6C;
- @ CMP@ AX,WA0^P3C^P4C;
- @ MOV@ AL,1;
- @ JZ@ @$+4;
- @ MOV@ AL,0;
- @ MOV@ BA0^P1C^P2C,AL;
- :WRITE $$;
- @ MOV@ AL,BA0^P1C^P2C;
- @ CALL@ WNX;
- :READ $$;
- @ CALL@ RNX;
- @ MOV@ BA0^P1C^P2C,AL;
- :OPEN $$ FOR $$ AT I$$;
- @ MOV@ DX,OFFSET BA0^P1C^P2C;
- @ MOV@ BX,OFFSET BA0^P3C^P4C;
- @ MOV@ SI,OFFSET WA0^P5C^P6C;
- @ CALL@ OPENIO;
- :$$=$$<!$$;
- @ MOV@ AL,BA0^P3C^P4C;
- @ CMP@ AL,BA0^P5C^P6C;
- @ LAHF;
- @ AND@ AH,1;
- @ MOV@ BA0^P1C^P2C,AH;
- :$$=I$$<!I$$;
- @ MOV@ AX,WA0^P3C^P4C;
- @ CMP@ AX,WA0^P5C^P6C;
- @ LAHF;
- @ ROL@ AH,1;
- @ AND@ AH,1;
- @ MOV@ BA0^P1C^P2C,AH;
- :$$=I$$<=I$$;
- @ MOV@ AX,WA0^P3C^P4C;
- @ CMP@ AX,WA0^P5C^P6C;
- @ MOV@ AL,1;
- @ JLE@ @$+4;
- @ MOV@ AL,0;
- @ MOV@ BA0^P1C^P2C,AL;
- :$$=I$$!=I$$;
- @ MOV@ AX,WA0^P5C^P6C;
- @ CMP@ AX,WA0^P3C^P4C;
- @ MOV@ AL,0;
- @ JZ@ @$+4;
- @ MOV@ AL,1;
- @ MOV@ BA0^P1C^P2C,AL;
- :$$=!$$;
- @ MOV@ AL,BA0^P3C^P4C;
- @ NOT@ AL;
- @ AND@ AL,1;
- @ MOV@ BA0^P1C^P2C,AL;
- :ASSOCIATE FILE $$($$) WITH I$$ RETURN $$;
- @ MOV@ BL,BA0^P3C^P4C;
- @ MOV@ BH,0;
- @ LEA@ DI,BA0^P1C^P2C[BX];
- @ MOV@ SI,OFFSET BA0^P7C^P8C;
- @ MOV@ BX,OFFSET WA0^P5C^P6C;
- @ CALL@ ASSOC;
- :;
-