|
|
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: 10208 (0x27e0)
Types: TextFile
Notes: Mikados_K
Names: »FILETEST.K«
└─⟦89d8689a3⟧ Bits:30003591 MIKADOS Pascal compiler (01.02.1982 E)
└─⟦this⟧ »FILETEST.K«
PROGRAM FILETEST;
(***************************************************)
(* *)
(* CREATION AND UPDATING OF A PERSON FILE *)
(* *)
(* DEMONSTRATION OF DIRECT FILES AND THE USE OF *)
(* THE EDIT PROCEDURE IN MIKADOS PASCAL *)
(***************************************************)
TYPE STATUS = ( MARRIED, WIDOW, DIVORCED, BACHELOR );
ALFA = STRING(30);
TXT = STRING(18);
DATE = RECORD DAY: 1..31;
MONTH: 1..12;
YEAR: INTEGER
END;
PERSON = RECORD
NAME: RECORD
FIRSTNAME, LASTNAME: ALFA
END;
SEX: (MAN, WOMAN, UNKNOWN);
BIRTHDAY: DATE;
CASE MARRIEDSTATUS: STATUS OF
MARRIED,
WIDOW: (MARRIAGEDATE: DATE);
DIVORCED: (DIVDATE: DATE;
NUMBEROFDIVORCES: INTEGER);
BACHELOR: (INDEPENDENT: BOOLEAN)
END (*PERSON*);
VAR REGISTER: FILE OF PERSON;
MSTATUS, CODE: ALFA;
FINISHED, OK: BOOLEAN;
OPCODE, ANSWER : CHAR;
RECORDNUMBER: INTEGER;
IOVAL: INTEGER;
(***************************************************)
(* GENERALLY USEFUL PROCEDURE THAT ILLUSTRATES HOW *)
(* THE EDIT PROCEDURE MAY BE USED TO EDIT INTEGERS *)
(* IF OPCODE<>'A' A NEW INTEGER IS ENTERED *)
(* IF OPCODE ='A' THE PRESENT CONTENTS OF THE *)
(* INTEGER ARE PRESENTED ON THE TERMINAL AND *)
(* EDITED BY THE USER *)
(***************************************************)
PROCEDURE ENTERINTEGER( INVITATION: TXT;
VAR NUMBER: INTEGER );
VAR SIZE,INDEX: INTEGER;
INTSTRING: STRING(6);
SIGN, CH: CHAR;
DIGITS, FINISHED: BOOLEAN;
BEGIN
INDEX := 18;
WHILE INVITATION(INDEX)=' ' DO INDEX:=INDEX-1;
WRITE( INVITATION:INDEX, ' ' );
INTSTRING := ' ';
IF OPCODE='A' THEN
BEGIN
INDEX:=0;
IF NUMBER<0 THEN
BEGIN
NUMBER:=-NUMBER;
INDEX:=1;
INTSTRING(1):='-'
END;
SIZE:=10000;
WHILE NUMBER<SIZE DO
SIZE := SIZE DIV 10;
REPEAT
BEGIN
INDEX:=INDEX+1;
INTSTRING(INDEX):= CHR( NUMBER DIV SIZE + ORD('0'));
NUMBER := NUMBER MOD SIZE;
SIZE := SIZE DIV 10;
END;
UNTIL SIZE=0;
END;
EDIT( INTSTRING:6 );
INDEX := 1;
FINISHED := FALSE;
DIGITS := FALSE;
SIGN := ' ';
NUMBER := 0;
REPEAT
BEGIN
CH := INTSTRING(INDEX);
IF CH IN (.'+','-'.) THEN
IF DIGITS OR (SIGN<>' ') THEN FINISHED:=TRUE
ELSE SIGN:= CH
ELSE
IF CH IN (.'0'..'9'.) THEN
BEGIN
NUMBER := NUMBER*10 + ORD(CH) - ORD('0');
DIGITS := TRUE
END
ELSE FINISHED:=TRUE;
INDEX := INDEX + 1;
END;
UNTIL FINISHED OR (INDEX>6);
IF SIGN='-' THEN NUMBER:=-NUMBER;
END (*ENTERINTEGER*);
PROCEDURE ENTERSTRING( INVITATION: TXT;
VAR EDITSTRING: ALFA;
LENGTH: INTEGER );
VAR INDEX: INTEGER;
BEGIN
INDEX:=18;
WHILE INVITATION(INDEX)=' ' DO INDEX:=INDEX-1;
WRITE( INVITATION:INDEX, ' ' );
IF OPCODE='C' THEN
BEGIN
FILLCHAR( EDITSTRING(1), LENGTH, ' ' );
(*$R-*) EDITSTRING(0) := CHR(LENGTH); (*$R+*)
END;
EDIT( EDITSTRING:LENGTH )
END (*ENTERSTRING*);
PROCEDURE ENTERDATE( INVITATION: TXT;
VAR EDITDATE: DATE );
VAR INDEX: INTEGER;
BEGIN
INDEX:= 18;
WHILE INVITATION(INDEX)=' ' DO INDEX:=INDEX-1;
WRITELN( INVITATION:INDEX );
WITH EDITDATE DO
BEGIN
ENTERINTEGER( 'DAY ', DAY );
ENTERINTEGER( 'MONTH ', MONTH );
ENTERINTEGER( 'YEAR ', YEAR );
END;
END (*ENTERDATE*);
PROCEDURE ENTERCOMMAND;
BEGIN
REPEAT
BEGIN
WRITE( 'OPERATION (C-CREATE, A-ALTER, E-END) ' );
WHILE EOLN DO READLN;
READ( OPCODE );
END;
UNTIL OPCODE IN (.'C','A','E'.);
END;
PROCEDURE ENTERSTATUS;
BEGIN
IF OPCODE='A' THEN
CASE REGISTER^.MARRIEDSTATUS OF
MARRIED: MSTATUS := 'MARRIED ';
WIDOW: MSTATUS := 'WIDOW ';
DIVORCED: MSTATUS := 'DIVORCED';
BACHELOR: MSTATUS := 'BACHELOR';
END
ELSE MSTATUS := ' ';
REPEAT
BEGIN
WRITE( 'ENTER MARRIED STATUS (M/W/D/B) ' );
EDIT( MSTATUS );
END;
UNTIL MSTATUS(1) IN (.'M','W','D','B'.);
END;
BEGIN
REWRITE( REGISTER, 'PERSDATA:P2:10' );
FINISHED := FALSE;
REPEAT
BEGIN
CLEARSCREEN;
OK := TRUE;
ENTERCOMMAND;
IF OPCODE<>'E' THEN
BEGIN
WRITELN;
WRITE( 'ENTER RECORD NUMBER ' );
READ( RECORDNUMBER );
SEEK( REGISTER, RECORDNUMBER );
IF IORESULT<>0 THEN
BEGIN
IOVAL:=IORESULT;
WRITE( 'ERROR ', IOVAL, ' WHEN LOOKING IN FILE' );
WRITE(' - STRIKE RETURN:');
READLN;
OK := FALSE
END;
IF OK AND (OPCODE='A') THEN
BEGIN
GET( REGISTER );
IF IORESULT<>0 THEN
BEGIN
WRITELN( 'ERROR ', IORESULT, ' WHEN READING RECORD');
OK := FALSE
END
ELSE SEEK( REGISTER, RECORDNUMBER );
END;
IF OK THEN
BEGIN
WITH REGISTER^,NAME DO
BEGIN
ENTERSTRING('FIRST NAME ', FIRSTNAME, 30 );
ENTERSTRING('LAST NAME ', LASTNAME, 30 );
CODE := ' ';
REPEAT
BEGIN
IF OPCODE='A' THEN
CASE SEX OF
MAN: CODE := 'M';
WOMAN: CODE := 'W';
UNKNOWN: CODE := 'U';
END;
ENTERSTRING('SEX (M/W/U) ', CODE, 1 );
END;
UNTIL CODE(1) IN (.'M','W','U'.);
CASE CODE(1) OF
'M': SEX := MAN;
'W': SEX := WOMAN;
'U': SEX := UNKNOWN;
END;
ENTERDATE( 'BIRTHDAY: ', BIRTHDAY );
ENTERSTATUS;
CASE MSTATUS(1) OF
'M','W': BEGIN
IF MSTATUS(1)='M' THEN MARRIEDSTATUS:=MARRIED
ELSE MARRIEDSTATUS:=WIDOW;
WRITE( 'DATE OF ');
ENTERDATE('MARRIAGE: ',MARRIAGEDATE);
END;
'D': BEGIN
MARRIEDSTATUS:=DIVORCED;
ENTERDATE('DATE OF DIVORCE: ', DIVDATE );
ENTERINTEGER('# OF DIVORCES ',NUMBEROFDIVORCES);
END;
'B': BEGIN
MARRIEDSTATUS:=BACHELOR;
REPEAT
BEGIN
WRITE('INDEPENDET (Y/N) ');
WHILE EOLN DO READLN;
READ( ANSWER )
END;
UNTIL ANSWER IN (.'Y','N'.);
INDEPENDENT := ANSWER = 'Y';
END;
END (* CASE MSTATUS *)
END (*WITH REGISTER^*);
PUT( REGISTER );
END (*IF OK*);
END (*OPKODE<>'E'*);
END (*REPEAT*) ;
UNTIL OPCODE='E';
WRITELN('FILETEST TERMINATED');
END (*FILETEST*).
0x0000…0013 Line {l1=0x11, l2=»PROGRAM FILETEST;«, l3=0x11}
0x0013…0016 Line {l1=0x01, l2=» «, l3=0x01}
0x0016…0054 Line {l1=0x3c, l2=» (***************************************************)«, l3=0x3c}
0x0054…0092 Line {l1=0x3c, l2=» (* *)«, l3=0x3c}
0x0092…00d0 Line {l1=0x3c, l2=» (* CREATION AND UPDATING OF A PERSON FILE *)«, l3=0x3c}
0x00d0…010e Line {l1=0x3c, l2=» (* *)«, l3=0x3c}
0x010e…014c Line {l1=0x3c, l2=» (* DEMONSTRATION OF DIRECT FILES AND THE USE OF *)«, l3=0x3c}
0x014c…018a Line {l1=0x3c, l2=» (* THE EDIT PROCEDURE IN MIKADOS PASCAL *)«, l3=0x3c}
0x018a…01c8 Line {l1=0x3c, l2=» (***************************************************)«, l3=0x3c}
0x01c8…01cb Line {l1=0x01, l2=» «, l3=0x01}
[…0x1…]
0x01ce…0205 Line {l1=0x35, l2=»TYPE STATUS = ( MARRIED, WIDOW, DIVORCED, BACHELOR );«, l3=0x35}
0x0205…021e Line {l1=0x17, l2=» ALFA = STRING(30);«, l3=0x17}
0x021e…0236 Line {l1=0x16, l2=» TXT = STRING(18);«, l3=0x16}
0x0236…0256 Line {l1=0x1e, l2=» DATE = RECORD DAY: 1..31;«, l3=0x1e}
0x0256…0278 Line {l1=0x20, l2=» MONTH: 1..12;«, l3=0x20}
0x0278…029a Line {l1=0x20, l2=» YEAR: INTEGER«, l3=0x20}
0x029a…02ac Line {l1=0x10, l2=» END;«, l3=0x10}
0x02ac…02c2 Line {l1=0x14, l2=» PERSON = RECORD«, l3=0x14}
0x02c2…02e0 Line {l1=0x1c, l2=» NAME: RECORD«, l3=0x1c}
0x02e0…0313 Line {l1=0x31, l2=» FIRSTNAME, LASTNAME: ALFA«, l3=0x31}
0x0313…032f Line {l1=0x1a, l2=» END;«, l3=0x1a}
0x032f…035c Line {l1=0x2b, l2=» SEX: (MAN, WOMAN, UNKNOWN);«, l3=0x2b}
0x035c…037d Line {l1=0x1f, l2=» BIRTHDAY: DATE;«, l3=0x1f}
0x037d…03ac Line {l1=0x2d, l2=» CASE MARRIEDSTATUS: STATUS OF«, l3=0x2d}
0x03ac…03c8 Line {l1=0x1a, l2=» MARRIED,«, l3=0x1a}
0x03c8…03fb Line {l1=0x31, l2=» WIDOW: (MARRIAGEDATE: DATE);«, l3=0x31}
0x03fb…0428 Line {l1=0x2b, l2=» DIVORCED: (DIVDATE: DATE;«, l3=0x2b}
0x0428…0462 Line {l1=0x38, l2=» NUMBEROFDIVORCES: INTEGER);«, l3=0x38}
0x0462…0496 Line {l1=0x32, l2=» BACHELOR: (INDEPENDENT: BOOLEAN)«, l3=0x32}
0x0496…04b5 Line {l1=0x1d, l2=» END (*PERSON*);«, l3=0x1d}
0x04b5…04b8 Line {l1=0x01, l2=» «, l3=0x01}
0x04b8…04d8 Line {l1=0x1e, l2=»VAR REGISTER: FILE OF PERSON;«, l3=0x1e}
0x04d8…04f3 Line {l1=0x19, l2=» MSTATUS, CODE: ALFA;«, l3=0x19}
0x04f3…0510 Line {l1=0x1b, l2=» FINISHED, OK: BOOLEAN;«, l3=0x1b}
0x0510…052d Line {l1=0x1b, l2=» OPCODE, ANSWER : CHAR;«, l3=0x1b}
0x052d…054a Line {l1=0x1b, l2=» RECORDNUMBER: INTEGER;«, l3=0x1b}
0x054a…0560 Line {l1=0x14, l2=» IOVAL: INTEGER;«, l3=0x14}
0x0560…0563 Line {l1=0x01, l2=» «, l3=0x01}
[…0x1…]
0x0566…05a4 Line {l1=0x3c, l2=» (***************************************************)«, l3=0x3c}
0x05a4…05e2 Line {l1=0x3c, l2=» (* GENERALLY USEFUL PROCEDURE THAT ILLUSTRATES HOW *)«, l3=0x3c}
0x05e2…0620 Line {l1=0x3c, l2=» (* THE EDIT PROCEDURE MAY BE USED TO EDIT INTEGERS *)«, l3=0x3c}
0x0620…065e Line {l1=0x3c, l2=» (* IF OPCODE<>'A' A NEW INTEGER IS ENTERED *)«, l3=0x3c}
0x065e…069c Line {l1=0x3c, l2=» (* IF OPCODE ='A' THE PRESENT CONTENTS OF THE *)«, l3=0x3c}
0x069c…06da Line {l1=0x3c, l2=» (* INTEGER ARE PRESENTED ON THE TERMINAL AND *)«, l3=0x3c}
0x06da…0718 Line {l1=0x3c, l2=» (* EDITED BY THE USER *)«, l3=0x3c}
0x0718…0756 Line {l1=0x3c, l2=» (***************************************************)«, l3=0x3c}
0x0756…0759 Line {l1=0x01, l2=» «, l3=0x01}
0x0759…0783 Line {l1=0x28, l2=»PROCEDURE ENTERINTEGER( INVITATION: TXT;«, l3=0x28}
0x0783…07b3 Line {l1=0x2e, l2=» VAR NUMBER: INTEGER );«, l3=0x2e}
0x07b3…07cf Line {l1=0x1a, l2=» VAR SIZE,INDEX: INTEGER;«, l3=0x1a}
0x07cf…07ec Line {l1=0x1b, l2=» INTSTRING: STRING(6);«, l3=0x1b}
0x07ec…0803 Line {l1=0x15, l2=» SIGN, CH: CHAR;«, l3=0x15}
0x0803…0825 Line {l1=0x20, l2=» DIGITS, FINISHED: BOOLEAN;«, l3=0x20}
0x0825…082c Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x082c…083c Line {l1=0x0e, l2=» INDEX := 18;«, l3=0x0e}
0x083c…086e Line {l1=0x30, l2=» WHILE INVITATION(INDEX)=' ' DO INDEX:=INDEX-1;«, l3=0x30}
0x086e…0891 Line {l1=0x21, l2=» WRITE( INVITATION:INDEX, ' ' );«, l3=0x21}
0x0891…08ab Line {l1=0x18, l2=» INTSTRING := ' ';«, l3=0x18}
0x08ab…08c1 Line {l1=0x14, l2=» IF OPCODE='A' THEN«, l3=0x14}
0x08c1…08cc Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x08cc…08db Line {l1=0x0d, l2=» INDEX:=0;«, l3=0x0d}
0x08db…08f1 Line {l1=0x14, l2=» IF NUMBER<0 THEN«, l3=0x14}
0x08f1…08fe Line {l1=0x0b, l2=» BEGIN«, l3=0x0b}
0x08fe…0916 Line {l1=0x16, l2=» NUMBER:=-NUMBER;«, l3=0x16}
0x0916…0927 Line {l1=0x0f, l2=» INDEX:=1;«, l3=0x0f}
0x0927…0940 Line {l1=0x17, l2=» INTSTRING(1):='-'«, l3=0x17}
0x0940…094c Line {l1=0x0a, l2=» END;«, l3=0x0a}
0x094c…095e Line {l1=0x10, l2=» SIZE:=10000;«, l3=0x10}
0x095e…0978 Line {l1=0x18, l2=» WHILE NUMBER<SIZE DO«, l3=0x18}
0x0978…0994 Line {l1=0x1a, l2=» SIZE := SIZE DIV 10;«, l3=0x1a}
0x0994…09a0 Line {l1=0x0a, l2=» REPEAT«, l3=0x0a}
0x09a0…09ad Line {l1=0x0b, l2=» BEGIN«, l3=0x0b}
0x09ad…09c4 Line {l1=0x15, l2=» INDEX:=INDEX+1;«, l3=0x15}
0x09c4…0a00 Line {l1=0x3a, l2=» INTSTRING(INDEX):= CHR( NUMBER DIV SIZE + ORD('0'));«, l3=0x3a}
0x0a00…0a22 Line {l1=0x20, l2=» NUMBER := NUMBER MOD SIZE;«, l3=0x20}
0x0a22…0a3e Line {l1=0x1a, l2=» SIZE := SIZE DIV 10;«, l3=0x1a}
0x0a3e…0a4a Line {l1=0x0a, l2=» END;«, l3=0x0a}
0x0a4a…0a5d Line {l1=0x11, l2=» UNTIL SIZE=0;«, l3=0x11}
0x0a5d…0a67 Line {l1=0x08, l2=» END;«, l3=0x08}
0x0a67…0a7f Line {l1=0x16, l2=» EDIT( INTSTRING:6 );«, l3=0x16}
0x0a7f…0a8e Line {l1=0x0d, l2=» INDEX := 1;«, l3=0x0d}
0x0a8e…0aa4 Line {l1=0x14, l2=» FINISHED := FALSE;«, l3=0x14}
0x0aa4…0ab8 Line {l1=0x12, l2=» DIGITS := FALSE;«, l3=0x12}
0x0ab8…0ac8 Line {l1=0x0e, l2=» SIGN := ' ';«, l3=0x0e}
0x0ac8…0ad8 Line {l1=0x0e, l2=» NUMBER := 0;«, l3=0x0e}
0x0ad8…0ae2 Line {l1=0x08, l2=» REPEAT«, l3=0x08}
0x0ae2…0aed Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x0aed…0b0a Line {l1=0x1b, l2=» CH := INTSTRING(INDEX);«, l3=0x1b}
0x0b0a…0b29 Line {l1=0x1d, l2=» IF CH IN (.'+','-'.) THEN«, l3=0x1d}
0x0b29…0b5d Line {l1=0x32, l2=» IF DIGITS OR (SIGN<>' ') THEN FINISHED:=TRUE«, l3=0x32}
0x0b5d…0b73 Line {l1=0x14, l2=» ELSE SIGN:= CH«, l3=0x14}
0x0b73…0b7d Line {l1=0x08, l2=» ELSE«, l3=0x08}
0x0b7d…0b9f Line {l1=0x20, l2=» IF CH IN (.'0'..'9'.) THEN«, l3=0x20}
0x0b9f…0bae Line {l1=0x0d, l2=» BEGIN«, l3=0x0d}
0x0bae…0be1 Line {l1=0x31, l2=» NUMBER := NUMBER*10 + ORD(CH) - ORD('0');«, l3=0x31}
0x0be1…0bf9 Line {l1=0x16, l2=» DIGITS := TRUE«, l3=0x16}
0x0bf9…0c06 Line {l1=0x0b, l2=» END«, l3=0x0b}
0x0c06…0c22 Line {l1=0x1a, l2=» ELSE FINISHED:=TRUE;«, l3=0x1a}
0x0c22…0c3b Line {l1=0x17, l2=» INDEX := INDEX + 1;«, l3=0x17}
0x0c3b…0c45 Line {l1=0x08, l2=» END;«, l3=0x08}
0x0c45…0c65 Line {l1=0x1e, l2=» UNTIL FINISHED OR (INDEX>6);«, l3=0x1e}
0x0c65…0c8a Line {l1=0x23, l2=» IF SIGN='-' THEN NUMBER:=-NUMBER;«, l3=0x23}
0x0c8a…0ca2 Line {l1=0x16, l2=»END (*ENTERINTEGER*);«, l3=0x16}
0x0ca2…0ca5 Line {l1=0x01, l2=» «, l3=0x01}
0x0ca5…0cce Line {l1=0x27, l2=»PROCEDURE ENTERSTRING( INVITATION: TXT;«, l3=0x27}
0x0cce…0cfc Line {l1=0x2c, l2=» VAR EDITSTRING: ALFA;«, l3=0x2c}
0x0cfc…0d27 Line {l1=0x29, l2=» LENGTH: INTEGER );«, l3=0x29}
0x0d27…0d3e Line {l1=0x15, l2=» VAR INDEX: INTEGER;«, l3=0x15}
0x0d3e…0d45 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x0d45…0d53 Line {l1=0x0c, l2=» INDEX:=18;«, l3=0x0c}
0x0d53…0d85 Line {l1=0x30, l2=» WHILE INVITATION(INDEX)=' ' DO INDEX:=INDEX-1;«, l3=0x30}
0x0d85…0da8 Line {l1=0x21, l2=» WRITE( INVITATION:INDEX, ' ' );«, l3=0x21}
0x0da8…0dbe Line {l1=0x14, l2=» IF OPCODE='C' THEN«, l3=0x14}
0x0dbe…0dc9 Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x0dc9…0df6 Line {l1=0x2b, l2=» FILLCHAR( EDITSTRING(1), LENGTH, ' ' );«, l3=0x2b}
0x0df6…0e2b Line {l1=0x33, l2=» (*$R-*) EDITSTRING(0) := CHR(LENGTH); (*$R+*)«, l3=0x33}
0x0e2b…0e35 Line {l1=0x08, l2=» END;«, l3=0x08}
0x0e35…0e52 Line {l1=0x1b, l2=» EDIT( EDITSTRING:LENGTH )«, l3=0x1b}
0x0e52…0e68 Line {l1=0x14, l2=»END (*ENTERSTRING*);«, l3=0x14}
0x0e68…0e6b Line {l1=0x01, l2=» «, l3=0x01}
0x0e6b…0e92 Line {l1=0x25, l2=»PROCEDURE ENTERDATE( INVITATION: TXT;«, l3=0x25}
0x0e92…0ebe Line {l1=0x2a, l2=» VAR EDITDATE: DATE );«, l3=0x2a}
0x0ebe…0ed5 Line {l1=0x15, l2=» VAR INDEX: INTEGER;«, l3=0x15}
0x0ed5…0edc Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x0edc…0eeb Line {l1=0x0d, l2=» INDEX:= 18;«, l3=0x0d}
0x0eeb…0f1d Line {l1=0x30, l2=» WHILE INVITATION(INDEX)=' ' DO INDEX:=INDEX-1;«, l3=0x30}
0x0f1d…0f3d Line {l1=0x1e, l2=» WRITELN( INVITATION:INDEX );«, l3=0x1e}
0x0f3d…0f51 Line {l1=0x12, l2=» WITH EDITDATE DO«, l3=0x12}
0x0f51…0f5c Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x0f5c…0f8c Line {l1=0x2e, l2=» ENTERINTEGER( 'DAY ', DAY );«, l3=0x2e}
0x0f8c…0fbe Line {l1=0x30, l2=» ENTERINTEGER( 'MONTH ', MONTH );«, l3=0x30}
0x0fbe…0fef Line {l1=0x2f, l2=» ENTERINTEGER( 'YEAR ', YEAR );«, l3=0x2f}
0x0fef…0ff9 Line {l1=0x08, l2=» END;«, l3=0x08}
0x0ff9…100e Line {l1=0x13, l2=»END (*ENTERDATE*);«, l3=0x13}
0x100e…1011 Line {l1=0x01, l2=» «, l3=0x01}
0x1011…102a Line {l1=0x17, l2=»PROCEDURE ENTERCOMMAND;«, l3=0x17}
0x102a…1031 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x1031…103b Line {l1=0x08, l2=» REPEAT«, l3=0x08}
0x103b…1046 Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x1046…107d Line {l1=0x35, l2=» WRITE( 'OPERATION (C-CREATE, A-ALTER, E-END) ' );«, l3=0x35}
0x107d…1098 Line {l1=0x19, l2=» WHILE EOLN DO READLN;«, l3=0x19}
0x1098…10ad Line {l1=0x13, l2=» READ( OPCODE );«, l3=0x13}
0x10ad…10b7 Line {l1=0x08, l2=» END;«, l3=0x08}
0x10b7…10db Line {l1=0x22, l2=» UNTIL OPCODE IN (.'C','A','E'.);«, l3=0x22}
0x10db…10e1 Line {l1=0x04, l2=»END;«, l3=0x04}
0x10e1…10e4 Line {l1=0x01, l2=» «, l3=0x01}
0x10e4…10fc Line {l1=0x16, l2=»PROCEDURE ENTERSTATUS;«, l3=0x16}
0x10fc…1103 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x1103…1119 Line {l1=0x14, l2=» IF OPCODE='A' THEN«, l3=0x14}
0x1119…113e Line {l1=0x23, l2=» CASE REGISTER^.MARRIEDSTATUS OF«, l3=0x23}
0x113e…1166 Line {l1=0x26, l2=» MARRIED: MSTATUS := 'MARRIED ';«, l3=0x26}
0x1166…118e Line {l1=0x26, l2=» WIDOW: MSTATUS := 'WIDOW ';«, l3=0x26}
0x118e…11b6 Line {l1=0x26, l2=» DIVORCED: MSTATUS := 'DIVORCED';«, l3=0x26}
0x11b6…11de Line {l1=0x26, l2=» BACHELOR: MSTATUS := 'BACHELOR';«, l3=0x26}
0x11de…11e7 Line {l1=0x07, l2=» END«, l3=0x07}
0x11e7…1202 Line {l1=0x19, l2=» ELSE MSTATUS := ' ';«, l3=0x19}
0x1202…120c Line {l1=0x08, l2=» REPEAT«, l3=0x08}
0x120c…1217 Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x1217…1248 Line {l1=0x2f, l2=» WRITE( 'ENTER MARRIED STATUS (M/W/D/B) ' );«, l3=0x2f}
0x1248…125e Line {l1=0x14, l2=» EDIT( MSTATUS );«, l3=0x14}
0x125e…1268 Line {l1=0x08, l2=» END;«, l3=0x08}
0x1268…1294 Line {l1=0x2a, l2=» UNTIL MSTATUS(1) IN (.'M','W','D','B'.);«, l3=0x2a}
0x1294…129a Line {l1=0x04, l2=»END;«, l3=0x04}
0x129a…129d Line {l1=0x01, l2=» «, l3=0x01}
[…0x1…]
0x12a0…12a7 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x12a7…12cf Line {l1=0x26, l2=»REWRITE( REGISTER, 'PERSDATA:P2:10' );«, l3=0x26}
0x12cf…12e3 Line {l1=0x12, l2=»FINISHED := FALSE;«, l3=0x12}
0x12e3…12eb Line {l1=0x06, l2=»REPEAT«, l3=0x06}
0x12eb…12f4 Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x12f4…1304 Line {l1=0x0e, l2=» CLEARSCREEN;«, l3=0x0e}
0x1304…1313 Line {l1=0x0d, l2=» OK := TRUE;«, l3=0x0d}
0x1313…1324 Line {l1=0x0f, l2=» ENTERCOMMAND;«, l3=0x0f}
0x1324…133b Line {l1=0x15, l2=» IF OPCODE<>'E' THEN«, l3=0x15}
0x133b…1346 Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x1346…1354 Line {l1=0x0c, l2=» WRITELN;«, l3=0x0c}
0x1354…137a Line {l1=0x24, l2=» WRITE( 'ENTER RECORD NUMBER ' );«, l3=0x24}
0x137a…1395 Line {l1=0x19, l2=» READ( RECORDNUMBER );«, l3=0x19}
0x1395…13ba Line {l1=0x23, l2=» SEEK( REGISTER, RECORDNUMBER );«, l3=0x23}
0x13ba…13d3 Line {l1=0x17, l2=» IF IORESULT<>0 THEN«, l3=0x17}
0x13d3…13e0 Line {l1=0x0b, l2=» BEGIN«, l3=0x0b}
0x13e0…13f8 Line {l1=0x16, l2=» IOVAL:=IORESULT;«, l3=0x16}
0x13f8…1432 Line {l1=0x38, l2=» WRITE( 'ERROR ', IOVAL, ' WHEN LOOKING IN FILE' );«, l3=0x38}
0x1432…1455 Line {l1=0x21, l2=» WRITE(' - STRIKE RETURN:');«, l3=0x21}
0x1455…1464 Line {l1=0x0d, l2=» READLN;«, l3=0x0d}
0x1464…1477 Line {l1=0x11, l2=» OK := FALSE«, l3=0x11}
0x1477…1483 Line {l1=0x0a, l2=» END;«, l3=0x0a}
0x1483…14a4 Line {l1=0x1f, l2=» IF OK AND (OPCODE='A') THEN«, l3=0x1f}
0x14a4…14b1 Line {l1=0x0b, l2=» BEGIN«, l3=0x0b}
0x14b1…14c9 Line {l1=0x16, l2=» GET( REGISTER );«, l3=0x16}
0x14c9…14e4 Line {l1=0x19, l2=» IF IORESULT<>0 THEN«, l3=0x19}
0x14e4…14f3 Line {l1=0x0d, l2=» BEGIN«, l3=0x0d}
0x14f3…1532 Line {l1=0x3d, l2=» WRITELN( 'ERROR ', IORESULT, ' WHEN READING RECORD');«, l3=0x3d}
0x1532…1547 Line {l1=0x13, l2=» OK := FALSE«, l3=0x13}
0x1547…1554 Line {l1=0x0b, l2=» END«, l3=0x0b}
0x1554…1580 Line {l1=0x2a, l2=» ELSE SEEK( REGISTER, RECORDNUMBER );«, l3=0x2a}
0x1580…158c Line {l1=0x0a, l2=» END;«, l3=0x0a}
0x158c…159c Line {l1=0x0e, l2=» IF OK THEN«, l3=0x0e}
0x159c…15a9 Line {l1=0x0b, l2=» BEGIN«, l3=0x0b}
0x15a9…15c7 Line {l1=0x1c, l2=» WITH REGISTER^,NAME DO«, l3=0x1c}
0x15c7…15d6 Line {l1=0x0d, l2=» BEGIN«, l3=0x0d}
0x15d6…1612 Line {l1=0x3a, l2=» ENTERSTRING('FIRST NAME ', FIRSTNAME, 30 );«, l3=0x3a}
0x1612…164d Line {l1=0x39, l2=» ENTERSTRING('LAST NAME ', LASTNAME, 30 );«, l3=0x39}
0x164d…1663 Line {l1=0x14, l2=» CODE := ' ';«, l3=0x14}
0x1663…1673 Line {l1=0x0e, l2=» REPEAT«, l3=0x0e}
0x1673…1684 Line {l1=0x0f, l2=» BEGIN«, l3=0x0f}
0x1684…16a2 Line {l1=0x1c, l2=» IF OPCODE='A' THEN«, l3=0x1c}
0x16a2…16bb Line {l1=0x17, l2=» CASE SEX OF«, l3=0x17}
0x16bb…16e0 Line {l1=0x23, l2=» MAN: CODE := 'M';«, l3=0x23}
0x16e0…1705 Line {l1=0x23, l2=» WOMAN: CODE := 'W';«, l3=0x23}
0x1705…172a Line {l1=0x23, l2=» UNKNOWN: CODE := 'U';«, l3=0x23}
0x172a…173c Line {l1=0x10, l2=» END;«, l3=0x10}
0x173c…1774 Line {l1=0x36, l2=» ENTERSTRING('SEX (M/W/U) ', CODE, 1 );«, l3=0x36}
0x1774…1784 Line {l1=0x0e, l2=» END;«, l3=0x0e}
0x1784…17af Line {l1=0x29, l2=» UNTIL CODE(1) IN (.'M','W','U'.);«, l3=0x29}
0x17af…17c8 Line {l1=0x17, l2=» CASE CODE(1) OF«, l3=0x17}
0x17c8…17e4 Line {l1=0x1a, l2=» 'M': SEX := MAN;«, l3=0x1a}
0x17e4…1802 Line {l1=0x1c, l2=» 'W': SEX := WOMAN;«, l3=0x1c}
0x1802…1822 Line {l1=0x1e, l2=» 'U': SEX := UNKNOWN;«, l3=0x1e}
0x1822…1830 Line {l1=0x0c, l2=» END;«, l3=0x0c}
0x1830…1866 Line {l1=0x34, l2=» ENTERDATE( 'BIRTHDAY: ', BIRTHDAY );«, l3=0x34}
0x1866…187c Line {l1=0x14, l2=» ENTERSTATUS;«, l3=0x14}
0x187c…1898 Line {l1=0x1a, l2=» CASE MSTATUS(1) OF«, l3=0x1a}
0x1898…18b2 Line {l1=0x18, l2=» 'M','W': BEGIN«, l3=0x18}
0x18b2…18f2 Line {l1=0x3e, l2=» IF MSTATUS(1)='M' THEN MARRIEDSTATUS:=MARRIED«, l3=0x3e}
0x18f2…192e Line {l1=0x3a, l2=» ELSE MARRIEDSTATUS:=WIDOW;«, l3=0x3a}
0x192e…1954 Line {l1=0x24, l2=» WRITE( 'DATE OF ');«, l3=0x24}
0x1954…1994 Line {l1=0x3e, l2=» ENTERDATE('MARRIAGE: ',MARRIAGEDATE);«, l3=0x3e}
0x1994…19a9 Line {l1=0x13, l2=» END;«, l3=0x13}
0x19a9…19bf Line {l1=0x14, l2=» 'D': BEGIN«, l3=0x14}
0x19bf…19ea Line {l1=0x29, l2=» MARRIEDSTATUS:=DIVORCED;«, l3=0x29}
0x19ea…1a27 Line {l1=0x3b, l2=» ENTERDATE('DATE OF DIVORCE: ', DIVDATE );«, l3=0x3b}
0x1a27…1a6e Line {l1=0x45, l2=» ENTERINTEGER('# OF DIVORCES ',NUMBEROFDIVORCES);«, l3=0x45}
0x1a6e…1a83 Line {l1=0x13, l2=» END;«, l3=0x13}
0x1a83…1a99 Line {l1=0x14, l2=» 'B': BEGIN«, l3=0x14}
0x1a99…1ac4 Line {l1=0x29, l2=» MARRIEDSTATUS:=BACHELOR;«, l3=0x29}
0x1ac4…1add Line {l1=0x17, l2=» REPEAT«, l3=0x17}
0x1add…1af7 Line {l1=0x18, l2=» BEGIN«, l3=0x18}
0x1af7…1b27 Line {l1=0x2e, l2=» WRITE('INDEPENDET (Y/N) ');«, l3=0x2e}
0x1b27…1b51 Line {l1=0x28, l2=» WHILE EOLN DO READLN;«, l3=0x28}
0x1b51…1b74 Line {l1=0x21, l2=» READ( ANSWER )«, l3=0x21}
0x1b74…1b8d Line {l1=0x17, l2=» END;«, l3=0x17}
0x1b8d…1bbc Line {l1=0x2d, l2=» UNTIL ANSWER IN (.'Y','N'.);«, l3=0x2d}
0x1bbc…1beb Line {l1=0x2d, l2=» INDEPENDENT := ANSWER = 'Y';«, l3=0x2d}
0x1beb…1c00 Line {l1=0x13, l2=» END;«, l3=0x13}
0x1c00…1c20 Line {l1=0x1e, l2=» END (* CASE MSTATUS *)«, l3=0x1e}
0x1c20…1c41 Line {l1=0x1f, l2=» END (*WITH REGISTER^*);«, l3=0x1f}
0x1c41…1c59 Line {l1=0x16, l2=» PUT( REGISTER );«, l3=0x16}
0x1c59…1c70 Line {l1=0x15, l2=» END (*IF OK*);«, l3=0x15}
0x1c70…1c8a Line {l1=0x18, l2=» END (*OPKODE<>'E'*);«, l3=0x18}
0x1c8a…1c9e Line {l1=0x12, l2=» END (*REPEAT*) ;«, l3=0x12}
0x1c9e…1cb1 Line {l1=0x11, l2=»UNTIL OPCODE='E';«, l3=0x11}
0x1cb1…1cd2 Line {l1=0x1f, l2=»WRITELN('FILETEST TERMINATED');«, l3=0x1f}
0x1cd2…1ce5 Line {l1=0x11, l2=»END (*FILETEST*).«, l3=0x11}
0x1ce5…1d00 00 00 44 20 28 2a 57 49 54 48 20 52 45 47 49 53 54 45 52 5e 2a 29 3b 1f 16 20 20 ┆ D (*WITH REGISTER^*); ┆
0x1d00…1d20 20 20 20 20 50 55 54 28 20 52 45 47 49 53 54 45 52 20 29 3b 16 15 20 20 20 20 20 20 45 4e 44 20 ┆ PUT( REGISTER ); END ┆
0x1d20…1d40 20 28 2a 49 46 20 4f 4b 2a 29 3b 15 18 20 20 20 20 45 4e 44 20 28 2a 4f 50 4b 4f 44 45 3c 3e 27 ┆ (*IF OK*); END (*OPKODE<>'┆
0x1d40…1d60 41 27 2a 29 3b 18 18 20 20 45 4e 44 20 28 2a 52 45 50 45 41 54 53 5b 54 4e 49 4e 47 2a 29 3b 18 ┆A'*); END (*REPEATSÆTNING*); ┆
0x1d60…1d80 11 55 4e 54 49 4c 20 4f 50 4b 4f 44 45 3d 27 41 27 3b 11 18 57 52 49 54 45 4c 4e 28 27 46 49 4c ┆ UNTIL OPKODE='A'; WRITELN('FIL┆
0x1d80…1da0 45 54 45 53 54 20 53 4c 55 54 27 29 18 11 45 4e 44 20 28 2a 46 49 4c 45 54 45 53 54 2a 29 2e 11 ┆ETEST SLUT') END (*FILETEST*). ┆
0x1da0…1dc0 00 00 52 4f 47 52 41 4d 20 46 49 4c 45 54 45 53 54 3b 11 01 20 01 3c 20 20 20 20 20 20 20 28 2a ┆ ROGRAM FILETEST; < (*┆
0x1dc0…1de0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆
0x1de0…1e00 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 29 3c 3c 20 20 20 20 20 20 20 28 2a 20 20 ┆******************)<< (* ┆
0x1e00…1e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ┆
0x1e20…1e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 29 3c 3c 20 20 20 20 20 20 20 28 2a 20 20 20 4f ┆ *)<< (* O┆
0x1e40…1e60 50 52 45 54 54 45 4c 53 45 20 4f 47 20 41 4a 4f 55 52 46 5c 52 49 4e 47 20 41 46 20 50 45 52 53 ┆PRETTELSE OG AJOURFØRING AF PERS┆
0x1e60…1e80 4f 4e 4b 41 52 54 4f 54 45 4b 20 20 20 2a 29 3c 3c 20 20 20 20 20 20 20 28 2a 20 20 20 20 20 20 ┆ONKARTOTEK *)<< (* ┆
0x1e80…1ea0 89 00 ae 02 9f ab 08 de a1 15 f0 00 c3 f1 7f c8 84 a1 05 f1 cc 0d b9 05 ae 22 00 cc 07 b9 02 ae ┆ " ┆
0x1ea0…1ec0 22 de a1 14 e2 ab 19 c6 0e c6 0e bc 08 08 e3 e4 94 9c a0 08 bd 08 b9 0e e1 ae 1e df a1 05 1c ae ┆" ┆
0x1ec0…1ee0 1e b9 03 01 cc 08 e0 a2 04 ef 9a e0 ab 08 b9 05 c7 89 00 ae 02 a7 11 01 cb ab 23 a7 23 93 a1 02 ┆ # # ┆
0x1ee0…1f00 ae 06 a7 23 a1 f0 a7 11 10 c3 a1 04 ae 06 b9 03 0c ae 02 df a1 2c c6 0e bc 08 08 00 b7 08 a1 1d ┆ # , ┆
0x1f00…1f20 a7 45 a2 02 c6 0e bc 08 08 a0 08 bd 08 a7 45 01 9a a7 45 ab 0a 00 ab 09 ae 22 1c ae 1e 02 ab 09 ┆ E E E " ┆
0x1f20…1f40 b9 18 a7 45 a2 02 c6 0e bc 08 08 a0 08 bd 08 a7 45 01 9a a7 45 ab 0a 00 ab 09 b9 56 ac 9c 00 00 ┆ E E E V ┆
0x1f40…1f60 26 00 b9 4e 5e 02 04 00 06 00 08 00 bc 01 0c 00 0e 00 10 00 12 00 14 00 16 00 18 00 1a 00 1c 00 ┆& N^ ┆
0x1f60…1f80 1e 00 90 01 22 00 24 00 26 00 28 00 2a 00 2c 00 2e 00 30 00 32 00 34 00 36 00 38 00 3a 00 3c 00 ┆ " $ & ( * , . 0 2 4 6 8 : < ┆
0x1f80…1fa0 3e 00 40 00 42 00 44 00 46 00 48 02 39 02 2a 02 e3 01 a7 11 c6 01 bc 04 04 8b 93 a1 12 06 ae 02 ┆> @ B D F H 9 * ┆
0x1fa0…1fc0 c6 01 bc 04 04 a5 56 bc 04 04 9c a0 04 ae 0e b9 e8 ad 00 02 03 00 de 02 26 00 7e 00 c9 00 b8 01 ┆ V & ü ┆
0x1fc0…1fe0 eb 00 ed 00 f4 00 24 00 08 00 19 00 14 03 43 05 c6 01 bc 04 04 b3 03 8b 80 00 00 00 00 00 03 9c ┆ $ C ┆
0x1fe0…2000 a0 04 ce 43 a7 11 27 c3 a1 f0 ae 22 c6 05 a5 08 a8 05 a7 12 cc 0a ae 06 c6 01 bc 04 04 b3 03 01 ┆ C ' " ┆
0x2000…2020 80 00 00 00 00 00 03 9c a0 04 ce 43 ae 22 dc 9f cb ef 9f cb 84 a1 f4 e1 b9 f6 dc a7 34 c3 ef a7 ┆ C " 4 ┆
0x2020…2040 34 c3 84 a1 05 0f ae 1e b9 30 c6 05 ae 40 dc a7 33 c3 ef a7 33 c3 84 a1 05 10 ae 1e b9 1c dc f9 ┆4 0 @ 3 3 ┆
0x2040…2060 03 c3 dc ef 00 00 00 00 ae 12 84 a1 05 0c ae 1e b9 08 c7 86 00 ae 02 9f ab 08 b9 7e c6 05 ae 40 ┆ ü @┆
0x2060…2080 dc a7 33 c3 ef a7 33 c3 84 a1 05 07 ae 1e b9 08 c7 86 00 ae 02 9f ab 08 b9 60 dc a7 34 c3 ef a7 ┆ 3 3 ` 4 ┆
0x2080…20a0 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆cccccccccccccccccccccccccccccccc┆
[…0x3a…]