|
|
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 - metrics - download
Length: 3070 (0xbfe)
Types: TextFile
Names: »TEST_2.S«
└─⟦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«
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 "