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