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

⟦538f97544⟧ TextFile

    Length: 3070 (0xbfe)
    Types: TextFile
    Names: »TEST_2.S«

Derivation

└─⟦18a2fd90d⟧ Bits:30005144 8" CR80 Floppy CR80FD_0132 ( CR/D/2479 CRD2479: En-CPU CPU/CACHE TEST- PROGRAMMER node: master: CRP5 )
    └─⟦56889de57⟧ 
        └─ ⟦this⟧ »TEST_2.S« 

TextFile

PROCEDURE TEST_2 (R6);
"*********************************************************************


"*********************************************************************
VAR
SAVE:    ARRAY[0..7] OF INTEGER;
TEMP1:    INTEGER;
LOOP_COUNT:  INTEGER;

CONST
PHPAGE_Y=      #81;
ADR_LPAGE_4=   #F84;
PHPAGE_X=      #85;
ADR_LPAGE_3=   #F83;








BEGIN
R7=>SAVE[7];
STC(6,ADDRESS(SAVE[7])=>R7);
OUTNEWLINE(R6);
OUTTEXT(ADDRESS('TEST 2 RUNNING (:0:)')=>R3,R6);
OUTNEWLINE(R6);
FLUSHOUT(R6);


#0=>R0=>LOOP_COUNT;
COUNT=>R0=>TEMP1;
WHILE R0<>#0 DO
BEGIN "MAIN

CAD;                                      "MAP IN PHPAGE Y AS LOGPAGE 4
PHPAGE_Y=>R3;
ADR_LPAGE_4=>R5;
CIO(R3,R5);
IF DICA=>R0=1 THEN CAD ELSE CAE;


#0=>R1;                                   "CLEAR LOGPAGE 4
#1000=>R0;
WHILE R0<#1400 DO
   BEGIN
      R1=>R0@INTEGER;
      R0+1;
   END;


CAD;                                      "MAP IN PHPAGE X AS LOGPAGE 3
PHPAGE_X=>R3;
ADR_LPAGE_3=>R5;
CIO(R3,R5);
IF DICA=>R0=1 THEN CAD ELSE CAE;


#0=>R0;                                   "WRITE PATTERN IN LOGPAGE 3
#C00=>R1;
WHILE R0<#400 DO
   BEGIN
      R0=>R1@INTEGER;
      R0+1;
      R1+1;
   END;

#0=>R0;                                   "CHECK PATTERN IN LOGPAGE 3
#C00=>R1;
WHILE R0<#400 DO
   BEGIN
      R1@INTEGER=>R2;
      IF R0<>R2 THEN
          BEGIN
               R0=>EXPECT_DATA;
               R2=>ACTUAL_DATA;
               R1=>FAULT_ADDRESS;
               ERROR_MESSAGE(R6);
          END;
      R0+1;
      R1+1;
   END;



#0=>R0;                                   "CHECK PATTERN IN LOGPAGE 3
#C00=>R1;
WHILE R0<#400 DO
   BEGIN
      R1@INTEGER=>R2;
      IF R0<>R2 THEN
          BEGIN
               R0=>EXPECT_DATA;
               R2=>ACTUAL_DATA;
               R1=>FAULT_ADDRESS;
               ERROR_MESSAGE(R6);
          END;
      R0+1;
      R1+1;
   END;



                         "MAP IN PHPAGE Y AS LOGPAGE 3
                         "AND PHPAGE X AS LOGPAGE 4, CLEAR CACHE.
PHPAGE_Y=>R3;
ADR_LPAGE_3=>R5;
CIO(R3,R5);
PHPAGE_X=>R3;
ADR_LPAGE_4=>R5;
CIO(R3,R5);
CAD;
IF DICA=>R0=1 THEN CAD ELSE CAE;


#0=>R1;                                   "CHECK IF LOGPAGE 3 IS CLEARED
#C00=>R0;
#0=>R2;
WHILE R2<#400 DO
   BEGIN
      R0@INTEGER=>R3;
      IF R3<>0 THEN
          BEGIN
               R1=>EXPECT_DATA;
               R3=>ACTUAL_DATA;
               R0=>FAULT_ADDRESS;
               ERROR_MESSAGE(R6);
          END;
      R0+1;
      R2+1;
   END;

LOOP_COUNT=>R0+1=>LOOP_COUNT;
#40=>R1;
IF R0>=R1 THEN
   BEGIN
        IF (OUT_ENABLE=>R0)=1 THEN
              BEGIN
              OUTNEWLINE(R6);
              END;
      #0=>R0=>LOOP_COUNT;
   END;

    IF (OUT_ENABLE=>R0)=1 THEN
        BEGIN
        OUTTEXT(ADDRESS('2(:0:)')=>R3,R6);
        FLUSHOUT(R6);
        END;
TEMP1=>R0-1=>TEMP1;
END;   "MAIN




    IF (OUT_ENABLE=>R0)=1 THEN
        BEGIN
        OUTNEWLINE(R6);
        OUTTEXT(ADDRESS('TEST 2 TERMINATED (:0:)')=>R3,R6);
        OUTNEWLINE(R6);
        FLUSHOUT(R6);
        END;

UNS(7,ADDRESS(SAVE[0])=>R7);
EXIT(R6);
END;   "END OF TEST2     "