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

⟦612865500⟧ TextFile

    Length: 1634 (0x662)
    Types: TextFile
    Names: »TIMEOUT.S«

Derivation

└─⟦17728abc9⟧ Bits:30005143 8" CR80 Floppy CR80FD_0130 ( CR/D/1422 FLERCPU Source )
    └─⟦1815caf3d⟧ 
        └─ ⟦this⟧ »TIMEOUT.S« 

TextFile

PROCEDURE TIMEOUT (R6);
"*********************************************************************
"THE PROCEDURE LOADS THE GLOBAL VARIABLE >T_COUNT<,WITH THE FIRST FOUR
"HEX CHARACTERS AFTER THE SPACE IN INPUTSTRING.
"*********************************************************************
VAR

SAVE:    ARRAY[0..7] OF INTEGER;
NUMBER:  ARRAY[0..3] OF INTEGER;


LABEL NO_SPACE;

BEGIN

R7=>SAVE[7];
STC(6,ADDRESS(SAVE[7])=>R7);
"FIND SPACE IN INPUTSTRING, INPUT_POINTER WILL POINT AT SPACE+1"
"EXIT IF INPUTPOINTER>HEX E.

#0=>R4;
#20=>R1;
R4=>INPUT_POINTER;
      INPUTSTRING[R4]=>R0;
      WHILE R0<>R1 DO
         BEGIN
          R4+1;
          INPUTSTRING[R4]=>R0;
          INPUT_POINTER=>R5;
          R5+1;
          R5=>INPUT_POINTER;
            IF R4>=#F THEN
                  BEGIN
                  GOTO NO_SPACE;
                  END;
         END;

NO_SPACE:
R5+1;
R5=>INPUT_POINTER;

INPUT_POINTER=>R4;
#0=>R5;
WHILE R5<4 DO
   BEGIN
    INPUTSTRING[R4]=>R6;
    R6=>NUMBER[R5];
    R5+1;
    R4+1;
   END;

#0=>R5;
#30=>R0;
WHILE R5<4 DO           "CONVERT FROM ASCII TO HEX.
   BEGIN
      NUMBER[R5]=>R6;
      R6-R0;
      R6 EXTRACT 4;
      R6=>NUMBER[R5];
      R5+1;
   END;
NUMBER[0]=>R5;
R5 SHIFTLL #C;
R5=>NUMBER[0];
NUMBER[1]=>R5;
R5 SHIFTLL #8;
R5=>NUMBER[1];
NUMBER[2]=>R5;
R5 SHIFTLL 4;
R5=>NUMBER[2];
#0=>R5;
#0=>R6;
WHILE R5<4 DO
   BEGIN
      NUMBER[R5]=>R0;
      R6+R0;
      R5+1;
   END;
R6=>T_COUNT;

OUTTEXT(ADDRESS('TIMEOUT-COUNT:=  (:0:)')=>R3,R6);
T_COUNT=>R3;
OUTHEX(R3,R6);
OUTNEWLINE(R6);
FLUSHOUT(R6);

0=>R0=>EXIT_STATUS;

UNS(7,ADDRESS(SAVE[0])=>R7);
EXIT(R6);
END;   "END OF TIMEOUT" «a5»