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

⟦924f0e8b7⟧ TextFile

    Length: 1880 (0x758)
    Types: TextFile
    Names: »CHECK_DATA.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⟧ »CHECK_DATA.S« 

TextFile

«ff»
"CHECK_DATA.S"
"---------------"

PROCEDURE CHECK_DATA(NOOFBYTES, PATTERNNO, BUFFERNO : INTEGER);
"**********************************************************************
  AUTHOR:           TLM
  DATE:             810323
***********************************************************************
  COMMENTS:
***********************************************************************
  CHANGE RECORD:
  VERSION    AUTHOR/DATE    DESCRIPTION OF CHANGE
  -------    -----------    ---------------------
**********************************************************************"
CONST NONE_DISCOVERED = #FFFF; "-1"
VAR   I              :  INTEGER;
      INDEX          :  INTEGER;
      ADR            :  INTEGER;
      B1, B2         :  ARRAY [0..127] OF INTEGER;
      FIRST_CONFLICT :  INTEGER;
      CONFLICTS      :  INTEGER;
BEGIN
   FIRST_CONFLICT := NONE_DISCOVERED;
   CONFLICTS := 0;
   FOR I := 0 TO NOOFBYTES - 1 DO
   BEGIN
      IF (I MOD 128) = 0 THEN
      BEGIN
         UNPACK(BUFFERS[BUFFERNO].BUFFER[I DIV 2], B1[0], 128);
         UNPACK(PATTERNS[PATTERNNO].PATTERN[1], B2[0], 128);
      END;
      INDEX := I MOD 128;
      IF B1[INDEX] <> B2[INDEX] THEN
      BEGIN
         WRITETEXT('*** BYTE ERROR ***(:0:)');
         WRITETEXT(' BYTE (:0:)');
         WRITEINT (I);
         WRITETEXT(' WAS (:0:)');
         WRITEHEX (B1[INDEX]);
         WRITETEXT(' SHOULD BE (:0:)');
         WRITEHEX (B2[INDEX]);
         WRITENL;
         IF FIRST_CONFLICT = NONE_DISCOVERED THEN FIRST_CONFLICT := I;
         CONFLICTS := SUCC(CONFLICTS);
      END;
   END;
   IF CONFLICTS <> 0 THEN
   BEGIN
      WRITETEXT('*** DATA CONFLICTS ***(:0:)');
      WRITENL;
      WRITETEXT('*** FIRST IN BYTE  *** (:0:)');
      WRITEINT(FIRST_CONFLICT);
      WRITENL;
      WRITETEXT('*** WRONG BYTES    *** (:0:)');
      WRITEINT(CONFLICTS);
      WRITENL;
   END;
END; " CHECK_DATA "