; ; 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