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: 2790 (0xae6) Types: TextFile Names: »TEST_1.S«
└─⟦17728abc9⟧ Bits:30005143 8" CR80 Floppy CR80FD_0130 ( CR/D/1422 FLERCPU Source ) └─⟦1815caf3d⟧ └─ ⟦this⟧ »TEST_1.S«
PROCEDURE TEST_1 (R6); "********************************************************************* " THE PROCEDURE REQUESTS INPUT FROM CONSOLE: SLAVENUMBER, CHECKS " IF THE REQUESTED SLAVE IS IDLING, PREPARES COMMANDFIELD, SETS COMMAND- " STROBE AND EXITS " "********************************************************************* VAR SAVE: ARRAY[0..7] OF INTEGER; LOG_PAGE1: INTEGER; LOCAL_COUNT: INTEGER; LABEL STARTA; BEGIN R7=>SAVE[7]; STC(6,ADDRESS(SAVE[7])=>R7); C_STROBE_ADR=>R7; 0=>R1=>R7@INTEGER; "CLEAR COMMANDSTROBE START_ADR=>R7; R1=>R7@INTEGER; "CLEAR START #F000=>R1; 0=>R0; WHILE R0<>R1 DO R0+1; "WAIT "START OF INPUT FROM CONSOLE" STARTA: OUTTEXT(ADDRESS('SLAVE NUMBER PLEASE --> (:0:)')=>R3,R6); FLUSHOUT(R6); #0=>R0; R0=>INPUT_POINTER; WHILE R3<>#D DO BEGIN IN_BYTE(R3,R6); R3=>R7; R7=>INPUTSTRING[R0]; R7=>INPUT_LAST; R0+1; END; 0=>R0; R0=>INPUT_POINTER; "AT THIS POINT, THE ARRAY >INPUTSTRING< CONTAINS VALID CHARACTERS, "THE LAST VALID CHARACTER DESIGNATED BY INPUT_LAST. "INPUT_POINTER POINTS AT THE FIRST BYTE. "START OF CMI 0=>R4; INPUTSTRING[R4]=>R2; R2 EXTRACT 3; R2=>SLAVE_NUMBER; CASE R2 OF 0:CHECK_IDLE(R6); 1:CHECK_IDLE(R6); 2:CHECK_IDLE(R6); 3:CHECK_IDLE(R6); 4:CHECK_IDLE(R6); OTHERWISE BEGIN OUTNEWLINE(R6); OUTTEXT(ADDRESS('?????(:0:)')=>R3,R6); OUTNEWLINE(R6); FLUSHOUT(R6); 0=>R4=>EXIT_STATUS; 1=>R4=>OK; END; OK=>R4; IF R4=1 THEN GOTO STARTA; SVS(R3); "GENERATE COMMAND- R3 SHIFTRL 8; "FIELD R3 EXTRACT 3; 0=>R0; 5=>R1; COMMAND_BASE=>R7; SLAVE_NUMBER=>R2; WHILE R0<>R1 DO BEGIN IF R0=R2 THEN BEGIN 2=>R6; END ELSE BEGIN IF R0=R3 THEN BEGIN 3=>R6; END ELSE BEGIN 1=>R6; END; END; R6=>R7@INTEGER; R7+1; R0+1; END; C_STROBE_ADR=>R7; 1=>R0=>R7@INTEGER; 1=>R0=>EXIT_STATUS; UNS(7,ADDRESS(SAVE[0])=>R7); EXIT(R6); END; "END OF TEST1 " «a5»