|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 1920 (0x780) Types: TextFile Names: »EOFLN.SRC«
└─⟦c9df7130d⟧ Bits:30005915 Pascal MT+ Release 5.2 (Jet-80) └─ ⟦this⟧ »EOFLN.SRC«
;ROUTINES FOR EOLN,EOF,AND FOR FILLING THE TXTIN BUFFER ; NAME EOFLN ENTRY EOLN,EOF,FTXTIN,L120,L121,L124 EXT TOUT,TIN,MTRUE,MTRUE1,FALSE INCLUDE DEFLT.SRC ; ;EOLN RETURNS THE CARRY SET IF THE END OF LINE FLAG IN THE BUFFER ;IS SET AND RETURNS THE CARRY RESET IF IT ISN'T. IT EXPECTS HL TO CONTAIN ;THE FILE BUFFER ADDRESS. ;MUST BE CALLED WITH A 0 ;EOLN( 0 ) IS DEFINED AS EOLN ON THE CONSOLE ;EOLN MUST PRESERVE REGISTERS BECAUSE IT IS CALLED BY INPUT ROUTINES L120: EOLN: XRA A PUSH H CMP H ;CHECK FOR CONSOLE POINTER JRNZ FEOLN ;NO...CHECK FILE EOLN PUSH D LHLD 6 LXI D,-PUTP DAD D MOV A,M ; A := fill pointer. DCX H CMP M ; fill pointer - text_in_pointer JC MTRUE1 ; Branch if end of line. MOV E,M MVI D,0 DAD D INX H ; HL points to next character to read. MOV A,M CPI CR ; EOLN is also true if we about to read a CR. JZ MTRUE1 POP D POP H JMP FALSE FEOLN: BIT 0,M ;TEST EOLN FLAG, BIT 0 OF BYTE 1 OF BUFFER POP H JZ FALSE JMP MTRUE ;EOF RETURNS THE CARRY SET IF END OF FILE IS TRUE AND RESET IF IT IS ;FALSE. IT EXPECTS HL TO CONTAIN THE BUFFER ADDRESS. ;A REG MUST BE 0 L121: EOF: XRA A CMP H ;FOR CONSOLE FILES END OF FILE IS ALWAYS FALSE JZ FALSE BIT 1,M ;EOF FLAG,BIT 1 OF BYTE 1 OF BUFFER JNZ MTRUE JMP FALSE ;FTXTIN ALLOWS THE USER TO FILL THE PASCAL TXTIN BUFFER L124: FTXTIN: MOV H,A ;SET HL TO LENGTH OF STRING+1 MOV L,C INX H DAD SP ;POINT TO STRING PUSH H ;SAVE THIS POINTER MOV B,C ;MOVE COUNT TO B-REGISTER FTXT2: CALL TIN ;FIRST EMPTY THE BUFFER CPI CR JRNZ FTXT2 FTXT3: MOV C,M ;GET CHAR CALL TOUT DCX H ;BUMP POINTER DJNZ FTXT3 ;CHECK FOR MORE MVI C,CR CALL TOUT ;ADD A CR POP H POP D ;GET RETURN ADDRESS INX H ;FIX STACK SPHL XRA A XCHG ;AND... PCHL ;...RETURN «eof»