|
|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 3744 (0xea0)
Types: TextFile
Notes: Mikados_K
Names: »UR.K«
└─⟦6b1c9961a⟧ Bits:30008989 INDPERM P1
└─⟦this⟧ »UR.K«
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.