home *** CD-ROM | disk | FTP | other *** search
- ;
- ; FILPRINT.ASM as of 7/29/80
- ; by Keith Petersen, W8SDZ
- ;
- ; (for CP/M 2.x only)
- ;This program will print any ASCII file made with
- ;a CP/M editor. The file must contain no tabs, and
- ;must end with a single $ character. When you make
- ;the file with the editor, start it with one line
- ;of 80 spaces. Then after you end the edit, DDT
- ;the file and patch it with FILPRINT.HEX (with no
- ;offset). Save the patched file as a .COM file.
- ;
- ;
- ORG 100H
- ;
- BEGIN: LXI H,STRING
- ;
- LOOP: MOV A,M ;GET CHARACTER
- CPI '$' ;ENDING CHAR?
- RZ ;RETURN TO CP/M
- CALL OUTPUT ;OUTPUT CHAR & GET ANY INPUT
- CPI 'C'-40H ;CONTROL-C?
- RZ ;RETURN TO CP/M
- INX H ;POINT TO NEXT CHAR
- JMP LOOP ;GET ANOTHER CHAR
- ;
- OUTPUT: MOV E,A ;CHAR TO E FOR CP/M
- MVI C,6 ;CP/M-2 DIRECT OUTPUT FUNCTION
- CALL DOFUNC ;DO IT
- MVI E,0FFH
- MVI C,6 ;DIRECT INPUT WITH NO ECHO
- CALL DOFUNC ;DO IT
- ORA A
- RZ ;NOTHING TYPED
- CPI 'S'-40H ;CONTROL-S?
- RNZ
- WAIT: MVI E,0FFH
- MVI C,6
- CALL DOFUNC
- ORA A
- JZ WAIT
- RET
- ;
- DOFUNC: PUSH H
- CALL 5
- POP H
- RET
- ;
- STRING: DB 'CTL-S pauses, CTL-C aborts'
- DB 0DH,0AH
- ;
- END
-