DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Hard and Floppy Disks

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Hard and Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦068ac7a91⟧ TextFile

    Length: 2456 (0x998)
    Types: TextFile
    Names: »IN_BYTE.S«

Derivation

└─⟦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« 

TextFile

«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"