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: 1880 (0x758) Types: TextFile Names: »CHECK_DATA.S«
└─⟦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«
«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 "