|
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: 1408 (0x580) Types: TextFile Names: »RESET.SRC«
└─⟦c9df7130d⟧ Bits:30005915 Pascal MT+ Release 5.2 (Jet-80) └─ ⟦this⟧ »RESET.SRC«
;ROUTINE TO RESET AN INPUT FILE ; NAME RESET ENTRY RESET,L122 EXT CLSOT,OPNIN,BYTIN,SCAN,MOVNAM include deflt.src ; ;SYSTEM FILE BUFFER STRUCTURE ;FIRST BYTE IS FILES FLAG.BITS 0-EOLN,1-EOF,2-WRITTEN,3-PREVIOUS ;OPERATION A WRITE,4-RANDOMLY ACCESSED FILE. ;SECOND IS THE READ AHEAD BYTE FOR INPUT FILES ;RESET REOPENS AN INPUT FILE, SO A USER CAN ;READ IT FROM THE BEGINNING ;GET BUFFER ADDRESS FROM STACK L122: RESET: PUSH B ;SAVE <FNAM> LENGTH PUSH Y CALL SCAN JRNC SKIP PUSH H INX H ;ADJUST POINTER TO K2 BUFFER INX H INX H CALL CLSOT XRA A ;REMOVE IT FROM OUTPUT LIST STAX B DCX B STAX B POP H SKIP: MVI M,0 ;RESET ALL FLAGS POP Y POP B ;GET <FNAM> LENGTH POP D ;RETURN ADDRESS INX H INX H INX H CALL MOVNAM JRC YEOF ;SET END OF FILE, BAD FILENAME CALL OPNIN ;REOPEN FILE JRC YEOF ;SET END OF FILE, NO SUCH FILE EXISTS ;READ FIRST BYTE AND SET EOF AND EOLN FLAGS CALL BYTIN MOV C,A JRC YEOF CPI CR JRZ YEOLN CPI LF JRZ YEOLN DCX H DCX H MOV M,C ;STORE READ BYTE DCX H XRA A XCHG PCHL ;SET END OF FILE FLAG YEOF: DCX H DCX H DCX H BSET 1,M ;SET EOF FLAG JMPR YCONT ;SET EOLN INDICATER YEOLN: XRA A DCX H DCX H DCX H RES 1,M ;SET EOF FLAG YCONT: BSET 0,M ;SET EOLN FLAG INX H MOV M,C ;STORE READ BYTE INX H XCHG XRA A ;CLEAR ACCUMULATOR PCHL «eof»