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

⟦932967c69⟧

    Length: 7584 (0x1da0)
    Notes: Mikados TextFile, Mikados_K
    Names: »DISKCATA«

Derivation

└─⟦f1b095e24⟧ Bits:30005320 Katalogisering af disketter
    └─ ⟦this⟧ »DISKCATA« 

Text

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