|
|
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 - metrics - download
Length: 7584 (0x1da0)
Notes: Mikados TextFile, Mikados_K
Names: »DISKCATA«
└─⟦f1b095e24⟧ Bits:30005320 Katalogisering af disketter
└─⟦this⟧ »DISKCATA«
PROGRAM DISKCATA;
(* BR-09.05.85 - UNDER REVISION - IKKE KØREKLAR *)
TYPE PARAMARRAY = PACKED ARRAY(1..39) OF CHAR;
CLOCKRECORD = RECORD
DATO : PACKED ARRAY(1..10) OF CHAR;
TID : PACKED ARRAY(1..8) OF CHAR;
END;
BLOCK = PACKED ARRAY (0..255) OF CHAR;
BINÆRTRÆ = ^KNUDE;
NAVNTYPE = STRING(8);
KNUDE = RECORD
NAVN : NAVNTYPE;
VENSTRE, HØJRE : BINÆRTRÆ;
END;
FILPOST = RECORD
FNAVN : NAVNTYPE;
FTYPE : CHAR;
END;
STR3 = STRING(3);
VAR PARAM : ^PARAMARRAY;
CLOCK : ^CLOCKRECORD;
FUNC : ^CHAR;
DISCBUFFER : BLOCK;
DISC, ERRORCODE : INTEGER;
ROD, FIL : BINÆRTRÆ;
TRÆ : ARRAY('0'..'Å') OF BINÆRTRÆ;
FILTYPE : CHAR;
FUNDET : BOOLEAN;
DISKFIL : FILE OF FILPOST;
NUMMER : STR3;
DISKID : STRING(15);
DATO : STRING(10);
FILNAVN : NAVNTYPE;
FTYPE : STRING(1);
DISKLABEL, BUDATO : STRING(10);
DISKKODE : STRING(10);
PROCEDURE PSCIU(VAR DISCBUFFER: BLOCK; DISC, TRACK, SECTOR,
IOCODE: INTEGER; VAR ERRORCODE: INTEGER); EXTERNAL;
(********************************************************************)
PROCEDURE DATE;
VAR I : INTEGER;
BEGIN
DATO:='DD.MM.ÅÅÅÅ';
FOR I:=1 TO 10 DO DATO(I):=CLOCK^.DATO(I);
WRITELN;
WRITE('':10,'Rediger datoen .... : '); EDIT(DATO);
FOR I:=1 TO 10 DO CLOCK^.DATO(I):=DATO(I);
END; (*DATE*)
(********************************************************************)
PROCEDURE AFSLUT;
BEGIN
CLEARSCREEN;
WRITELN('MIKADOS VERSION 01.11.1984');
EXIT(PROGRAM);
END; (*AFSLUT*)
(********************************************************************)
PROCEDURE INITIALISER;
BEGIN
ERRORCODE:=1;
CLEARSCREEN;
WRITELN('KATALOGISERING AF DISKETTER':45);
WRITELN('***************************':45);
WRITELN;
WRITELN('Indsæt den diskette, du vil katalogisere, i diskdrevet.');
WRITELN;
DATE;
WRITELN;
WRITELN('Katalog oplysninger om disketten læses.');
WRITELN;
END; (*INITIALISER*)
(********************************************************************)
PROCEDURE LÆSFILCATALOG(NUMMER:STR3);
VAR DISKID: STRING(15);
BEGIN
DISKID:=CONCAT('DISK',NUMMER,':P3:5:F');
RESET(DISKFIL,DISKID);
WRITELN(LIST,'Filer på disk nr. ',NUMMER,' : ');
WRITELN(LIST);
WITH DISKFIL^ DO BEGIN
GET(DISKFIL);
WHILE FNAVN<>'########' DO BEGIN
WRITELN(LIST,FNAVN,' ',FTYPE);
GET(DISKFIL);
END;
END;
CLOSE(DISKFIL);
PAGE(LIST);
END;
(********************************************************************)
PROCEDURE LÆSDISKINF;
VAR I, DISC, TRACK, SECTOR, IOCODE : INTEGER;
BEGIN
DISC := 3;
TRACK := 0;
SECTOR:= 0;
ERRORCODE:=0;
IOCODE := 1;
PSCIU(DISCBUFFER,DISC,TRACK,SECTOR,IOCODE,ERRORCODE);
IF ERRORCODE <> 0 THEN EXIT(LÆSDISKINF);
BUDATO:=' ';
FOR I:=1 TO 10 DO BEGIN
BUDATO(I):=DISCBUFFER(17+I);
IF (BUDATO(I)<CHR(32)) OR (BUDATO(I)>CHR(126)) THEN BUDATO(I):=' ';
END;
WRITE('Dato for sidste backup ... : ',BUDATO,'':5); EDIT(DATO);
IF EOF THEN AFSLUT;
FOR I:=1 TO 10 DO DISCBUFFER(17+I):=DATO(I);
DISKLABEL:=' ';
FOR I:=1 TO 10 DO BEGIN
DISKLABEL(I):=DISCBUFFER(27+I);
IF (DISKLABEL(I)<CHR(32)) OR (DISKLABEL(I)>CHR(126)) THEN
DISKLABEL(I):=' ';
END;
WRITE('Etikette ................. : ',DISKLABEL,'':5); EDIT(DISKLABEL);
IF EOF THEN AFSLUT;
FOR I:=1 TO 10 DO DISCBUFFER(27+I):=DISKLABEL(I);
DISKKODE:=' ';
FOR I:=1 TO 10 DO BEGIN
DISKKODE(I):=DISCBUFFER(63+I);
IF (DISKKODE(I)<CHR(32)) OR (DISKKODE(I)>CHR(126)) THEN
DISKKODE(I):=' ';
END;
WRITE('Disk kode ................ : ',DISKKODE,'':5); EDIT(DISKKODE);
IF EOF THEN AFSLUT;
FOR I:=1 TO 10 DO DISCBUFFER(63+I):=DISKKODE(I);
WRITELN;
WRITE('Fortryder du - tryk på <ESC> '); READLN;
IF EOF THEN AFSLUT;
IOCODE := 2;
PSCIU(DISCBUFFER,DISC,TRACK,SECTOR,IOCODE,ERRORCODE);
IF ERRORCODE <> 0 THEN EXIT(LÆSDISKINF);
END; (*LÆSDISKINF*)
(**********************************************************************)
PROCEDURE MENU;
BEGIN
WRITELN('MENU');
END; (*MENU*)
(**********************************************************************)
BEGIN (*DISKCATA*)
REPEAT
INITIALISER;
LÆSDISKINF;
WRITELN;
MENU;
WRITELN;
WRITE('Afslut, tryk på <ESC>. Fortsæt katalogisering, tryk på <RETURN>'
);
READLN;
UNTIL EOF;
IF ERRORCODE <> 0 THEN WRITELN ('ERRORCODE:', ERRORCODE:4);
AFSLUT;
(*LÆSFILCATALOG(NUMMER);*)
END. (*DISKCATA*)