DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦2b3135438⟧ TextFile

    Length: 3744 (0xea0)
    Types: TextFile
    Notes: Mikados_K
    Names: »UR.K«

Derivation

└─⟦6b1c9961a⟧ Bits:30008989 INDPERM P1
    └─⟦this⟧ »UR.K« 

Mikados K File

CONST LNGTH=20;
TYPE
PARMARRAY=PACKED ARRAY (1..39) OF CHAR;
DIRECTBUF=PACKED ARRAY (1..LNGTH) OF CHAR;
CLOCKRECORD = RECORD
               DATE:PACKED ARRAY (1..10) OF CHAR;
               TIME:PACKED ARRAY (1..8) OF CHAR
              END;
VAR    PARM:^PARMARRAY;
       CLOCK:^CLOCKRECORD;
       SV,TT,OFFSET,MIN,SEC,SEC100:INTEGER;
       HOWL,ALARM,STOPWATCH:BOOLEAN;
       ALARMTIME:PACKED ARRAY (1..8) OF CHAR;
       DBUF:DIRECTBUF;
       C,CH :CHAR;
       F:STRING(11);
       QUQ:^INTEGER;
       I:INTEGER;
PROCEDURE SETUP(VAR BUFFER:DIRECTBUF;LENGTH:INTEGER);
EXTERNAL;
FUNCTION AVAIL:BOOLEAN;
EXTERNAL;
FUNCTION NEXT:CHAR;
EXTERNAL;
PROCEDURE FINIS;
EXTERNAL;
PROCEDURE UR;
BEGIN
  SETUP(DBUF,LNGTH);
  C:=' ';
  GOTOXY(62,1);WRITE('Alarm');
  IF ALARM THEN BEGIN GOTOXY(72,1);WRITE(ALARMTIME) END;
  GOTOXY(62,2);WRITE('Time');
  SV:=-1;
  REPEAT
  IF C<>CLOCK^.TIME(8) THEN
  BEGIN
    GOTOXY(67,2);
    WRITE(CLOCK^.TIME);
    C:=CLOCK^.TIME(8);
    OFFSET:=TIME;
  END;
  GOTOXY(76,2);
  WRITE((TIME-OFFSET) MOD 100:4);
  IF STOPWATCH THEN
  BEGIN
    IF (TIME<0) AND (TT>0) THEN
      SEC100:=SEC100+(32767-TT)+(32767+TIME+2)
    ELSE
      SEC100:=SEC100+TIME-TT;
    TT:=TIME;
    SEC:=SEC+SEC100 DIV 100;SEC100:=SEC100 MOD 100;
    MIN:=MIN+SEC DIV 60;    SEC:=SEC MOD 60;
    GOTOXY(60,3);
    WRITE(MIN:4,SEC:3,SEC100:3);
  END;
  IF ALARM THEN IF ALARMTIME<=CLOCK^.TIME THEN HOWL:=TRUE;
  IF HOWL THEN WRITE(CHR(7));
  IF AVAIL THEN
  BEGIN
    CH:=NEXT;
    CASE CH OF
    'S':BEGIN
          STOPWATCH:=NOT(STOPWATCH);
          IF STOPWATCH THEN BEGIN MIN:=0;SEC:=0;SEC100:=0;TT:=TIME END;
        END;
    'U':BEGIN GOTOXY(67,2);FOR I:=1 TO 8 DO CLOCK^.TIME(I):=NEXT END;
    'C':BEGIN STOPWATCH:=TRUE;TT:=TIME END;
'0','1','2','3','4','5','6','7','8','9':BEGIN FINIS;SV:=ORD(CH)-48 END;
    'M':BEGIN
          GOTOXY(70,3);
          IF STOPWATCH THEN
             WRITE(MIN:4,SEC:3,SEC100:3);
        END;
    'A':BEGIN
          HOWL:=FALSE;
          ALARM:=NOT(ALARM);
          CLOCK^.DATE(9):='0';
          IF ALARM THEN
          BEGIN
            CLOCK^.DATE(9):='1';
            GOTOXY(72,1);
            FOR I:=1 TO 8 DO BEGIN CLOCK^.DATE(I):=NEXT;
                                   ALARMTIME(I):=CLOCK^.DATE(I)
                             END;
            GOTOXY(72,1);WRITE(ALARMTIME)
          END;
        END;
    END;
  END;
  UNTIL SV>-1
END;
PROCEDURE DOIT;
BEGIN
    WRITELN(' ':20,'0 Stop');
    WRITELN;
    WRITELN(' ':20,'1 Kartoteksvedligeholdelse');
    GOTOXY(1,20);WRITELN('Vælg 0-1 ');
    UR;
    I:=SV;
    CLEARSCREEN;
    CASE I OF
    2: F:='PAKLISTE:P1';
    1: BEGIN
         WRITELN(' ':20,'1 FJOLLEREGISTER');
         GOTOXY(1,20);WRITELN('Vælg 1-1');
         REPEAT
           GOTOXY(11,20);READLN;READ(I)
         UNTIL (IORESULT=0) AND (I>-1) AND (I<7);
         CASE I OF
         1: BEGIN
              FNAVN:='FJOLREG:P2:0000:I';
              DESCNAVN:='FJOLDESC:P2:0000:J';
              REGNAVN:='FJOLLE'
            END;
         2: BEGIN
            END
         END;
         REGVEDL;
       END;
    0: F:='STOP';
    END;
END;
BEGIN
  ALARM:=CLOCK^.DATE(9)='1';
  IF ALARM THEN FOR I:=1 TO 8 DO ALARMTIME(I):=CLOCK^.DATE(I);
  HOWL:=FALSE;STOPWATCH:=FALSE;
  REPEAT
    F:=' ';
    CLEARSCREEN;
    DOIT;
  UNTIL F<>' ';
  IF F<>'STOP' THEN
  CHAIN('INTRE   *1',F,QUQ)
END.

Full view