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

⟦1da3771ae⟧ TextFile

    Length: 2880 (0xb40)
    Types: TextFile
    Notes: Mikados_K
    Names: »UR.K«

Derivation

└─⟦5630b2e42⟧ Bits:30009005 START APRIL 1985 aft april 1985 (PASCAL kildetekster)
    └─⟦this⟧ »UR.K« 
└─⟦6c21327e0⟧ Bits:30008986 LINIMATIC K-FILER (IKKE HELT UPTODTATE)
    └─⟦this⟧ »UR.K« 

Mikados K File

PROCEDURE UR;
VAR C,CH:CHAR;
BEGIN
  SETUP(DBUF,LNGTH);
  C:=' ';
  IF TÆNDT THEN
  BEGIN
  GOTOXY(62,1);WRITE('Alarm');
  IF ALARM THEN BEGIN GOTOXY(72,1);WRITE(ALARMTIME) END;
  GOTOXY(62,2);WRITE('Time');
  END;
  SV:=-1;
  REPEAT
  IF C<>CLOCK^.TIME(8) THEN
  BEGIN
   IF TÆNDT THEN
   BEGIN
    GOTOXY(67,2);
    WRITE(CLOCK^.TIME);
   END;
    C:=CLOCK^.TIME(8);
    OFFSET:=TIME;
    IF STIMER>0 THEN STIMER:=STIMER-1
  END;
  IF TÆNDT THEN
  BEGIN
  GOTOXY(76,2);
  WRITE((TIME-OFFSET) MOD 100:4);
  END;
  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;
    IF TÆNDT THEN
    BEGIN
    GOTOXY(60,3);
    WRITE(MIN:4,SEC:3,SEC100:3);
    END;
  END;
  IF ALARM THEN IF ALARMTIME<=CLOCK^.TIME THEN HOWL:=TRUE;
  IF TÆNDT THEN
  IF HOWL THEN WRITE(CHR(7));
  IF AVAIL THEN
  BEGIN
    CH:=NEXT;
    IF CH IN (.'a'..'å'.) THEN CH:=CHR(ORD(CH)-32);
    IF TÆNDT OR (CH='T') OR (CH IN (.'0'..'9'.)) THEN
    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;
    'T':TÆNDT:=NOT TÆNDT;
'0','1','2','3','4','5','6','7','8','9':BEGIN SV:=ORD(CH)-48;
                                              IF SV=1 THEN DELAY(20);
                                              IF AVAIL THEN
                                              BEGIN
                                                CH:=NEXT;
                                                IF CH IN (.'0'..'9'.) THEN
                                                  SV:=10*SV+ORD(CH)-48 
                                              END;
                                        WRITELN(SV) 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;
  FINIS
END;

Full view