fparty = ARRAY[0..8] OF string[3]; fattrn = ARRAY[0..15] OF string[15]; fstylef= ARRAY[0..7] OF string[5]; fstne = PACKED ARRAY[1..25] OF char; fpcode = PACKED ARRAY[1..8] OF char; initf = PACKED ARRAY[1..3] OF char; s_integer = 0..65530; byte = 0..255; stylef = 0..7; xattr = 1..24; sattr = SET OF xattr; sts = string[40]; bdayf = ARRAY[1..3] OF byte; vf = RECORD fnameind: s_integer; {Index into first name file} namind: s_integer; {Index into surname & house name file} street: byte; {Index into street name file} style: stylef; {Mr, Mrs, Ms etc} init: initf; {Initials - up to 3} xvote: byte; {current canvas & previous canvas * 16} attr: sattr; {Attribute bit list} commf: s_integer; {PC ONLY - pointer to comment file} END; ntfile = FILE of vf; rf = RECORD street: fstne; {Street name file} postind: byte; {index to postcode file (if present)} restadr: s_integer; {index to SURNAME FILE of 2,3,4th part of address} r_no: s_integer; fr_no: s_integer; spare: s_integer; END; rffile = FILE of rf; postrf = RECORD postcode: fpcode; {postcode file} r_no: s_integer; {last voter with this postcode} END; postff = FILE of postrf; nnf = RECORD sname: string [4]; {Alphabetically sorted list, first 4 chars of name} street: byte; {Street number - for fast lookup} regl : byte; {Register letter - PC ONLY} r_no: 1..65000; {register number - index into ntfile} END; nffile = FILE of nnf; xaf = ARRAY[0..26] of 0..65000; prog = FILE of byte; namf = FILE of char; mma = RECORD s : string[35]; end; messa = ARRAY[0..9] of mma; COMMON final: integer; max_val: s_integer; out, nat: text; party, sparty: fparty; attrn: fattrn; stylea: fstylef; max_row, max_attr, max_party: byte; surname, firstname, housename: sts; instring, postcode, addr2, addr3, addr4: sts; reg, outf: string[14]; disc, scr_inv, scr_nor, exit : string[4]; cvote, pvote: byte; ext : string [4]; birthday: bdayf; title : string [35]; mess : messa; dbfile: ntfile; rdfile: rffile; ndfile: nffile; nafile: namf; fafile: namf; pofile: postff;