DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 2456 (0x998) Types: TextFile Names: »IN_BYTE.S«
└─⟦f81e11cf7⟧ Bits:30005196 8" CR80 Floppy CR80FD_0194 ( CR/D/2497 TEST-TDX VS0102 Source moduler Att. Holger Bay 820208/AEK ) └─⟦d066df9e9⟧ └─ ⟦this⟧ »IN_BYTE.S«
«ff» "IN_BYTE.S " "----------------" PROCEDURE IN_BYTE(VAR CH : CHAR); "********************************************************************** AUTHOR: TLM DATE: 810323 *********************************************************************** COMMENTS: *********************************************************************** CHANGE RECORD: VERSION AUTHOR/DATE DESCRIPTION OF CHANGE ------- ----------- --------------------- **********************************************************************" CONST NOT_REPEATING = FALSE; VAR FILE_ADR : FILE_ADDRESS; OPREF : OPERATION_REFERENCE; CC : COMPLETION_CODE; FINISHED : BOOLEAN; MSG : MESSAGE_BUFFER; EVENT : INTEGER; EVTTYPE : EVENT_TYPE; NULL_CHARS : ARRAY [0..1] OF INTEGER; PACK_LINE : ARRAY [1..66] OF INTEGER; I : INTEGER; ANY_FINISHED : BOOLEAN; BEGIN IF CH_COUNT = LINE_LENGTH THEN BEGIN WRITETEXT('-->(:0:)'); NULL_CHARS[0] := 0; NULL_CHARS[1] := 0; CH_COUNT := 0; LINE_LENGTH := 0; FILE_ADR.FIRST_BYTE := INFILEPOS; FILE_ADR.BYTE_COUNT := LONG(LINELENGTH); FILE_ADR.TRANSFERRED_BYTES := 0L; BLEP@.LINK := NIL; BLEP@.XL := LOCAL; BLEP@.BUFSIZE_IN_BYTES := LINELENGTH; BLEP@.BUFADDR := REL_ADDR(PACK_LINE[1]); INIT_READ_BYTES(INFILE, FILE_ADR, BLEP, OPREF, CC); CHECK_CC(CC, 'IN_BYTE ERROR 1(:0:)'); REPEAT TEST_OPERATION(OPREF, FINISHED, CC); IF FINISHED THEN CHECK_CC(CC, ' IN_BYTE ERROR 2(:0:)'); CHECK_INIT_OPS(NOT_REPEATING, ANY_FINISHED); IF NOT FINISHED THEN WAIT_EVENT(1, #100, MSG, EVENT, EVTTYPE); UNTIL FINISHED; UNPACK(PACK_LINE[1], CURRENT_LINE[1], LINELENGTH); REPEAT LINE_LENGTH := SUCC(LINE_LENGTH); INFILEPOS := INFILEPOS + 1L; UNTIL (CURRENT_LINE[LINE_LENGTH] IN [NL, CR, EM]) OR (LINE_LENGTH = LINELENGTH); IF GIVEN[IFILE] OR GIVEN[OFILE] THEN BEGIN FOR I := 1 TO LINE_LENGTH DO WRITEBYTE(CURRENT_LINE[I]); FLUSHOUT; END; END; CH_COUNT := SUCC(CH_COUNT); CH := CURRENT_LINE[CH_COUNT]; CHECK_INIT_OPS(NOT_REPEATING, ANY_FINISHED); END; "IN_BYTE"