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*)