|
|
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: 1964 (0x7ac)
Types: TextFile
Names: »WAKEUP_ONE.S«
└─⟦17728abc9⟧ Bits:30005143 8" CR80 Floppy CR80FD_0130 ( CR/D/1422 FLERCPU Source )
└─⟦1815caf3d⟧
└─⟦this⟧ »WAKEUP_ONE.S«
PROCEDURE WAKEUP_ONE (R3;R6);
"*************************************************************************
"*************************************************************************
"R3: CPU_NUMBER TO BE AWAKEN, R6:LINK
VAR
SAVE: ARRAY[0..7] OF INTEGER;
CPU_NUMBER: INTEGER;
TEMPC: INTEGER;
BEGIN
R7=>SAVE[7];
STC(6,ADDRESS(SAVE[7])=>R7);
R3=>CPU_NUMBER;
C_STROBE_ADR=>R7;
0=>R1=>R7@INTEGER; "CLEAR COMMAND STROBE
COMMAND_BASE=>R7;
"COMMAND TO CPUNUMBER R3:=IDLE, TO THIS CPU:=MASTER, TO OTHERS:=NOP.
SVS(R5);
R5 SHIFTRL 8;
R5 EXTRACT 3; "R5= THIS CPU NUMBER
CPU_NUMBER=>R3;
#5=>R2;
WHILE R1<>R2 DO
BEGIN
IF R1=R5 THEN
BEGIN
#10=>R6;
END
ELSE
BEGIN
IF R1=R3 THEN
BEGIN
1=>R6;
END
ELSE
BEGIN
0=>R6;
END
END;
R6=>R7@INTEGER;
R1+1;
R7+1;
END;
C_STROBE_ADR=>R7;
1=>R1=>R7@INTEGER; "SET COMMANDSTROBE
CPU_NUMBER=>R3;
ENABLE_INT(R3,R6);
0=>R1;
CPU(R1);
DISABLE_INT(R3,R6);
#F000=>R1;
0=>R0;
WHILE R0<>R1 DO R0+1; "WAIT
UNIT_MAP(R6);
0=>R1;
IF R3<>R1 THEN
BEGIN
INTERPRETCOM(R6);
END;
OUTNEWLINE(R6);
OUTTEXT(ADDRESS('CPU NUMBER (:0:)')=>R3,R6);
FLUSHOUT(R6);
CPU_NUMBER=>R3;
OUTHEX(R3,R6);
OUTTEXT(ADDRESS(' WAS NOT AWAKENED. (:0:)')=>R3,R6);
OUTNEWLINE(R6);
FLUSHOUT(R6);
UNS(7,ADDRESS(SAVE[0])=>R7);
EXIT(R6);
END;
«a5»