|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 145152 (0x23700) Types: Rc489kSubCat Names: »jtas«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt. └─⟦0364f57e3⟧ └─⟦this⟧ »jtas« └─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦this⟧ »jtas«
0x00000…00033 (0,) Rc489kSubCatEnt {f00=0x001542, f01=0x0007f8, f02=0x000801, filename=»tsetdef «, entry_tail=0-4-0-1-1980-12-04T16:20-disc-0x0-0x0-0x0-0x0} 0x00033…00066 Rc489kSubCatEnt {f00=0x002dca, f01=0x0007f8, f02=0x000801, filename=»jttestext «, entry_tail=0-4-0-1-1980-12-04T16:02-disc1-0x0-0x0-0x0-0x0} 0x00066…00099 Rc489kSubCatEnt {f00=0x003b52, f01=0x0007f8, f02=0x000801, filename=»jttrans «, entry_tail=0-4-0-2-1980-12-04T12:29-disc1-0x0-0x0-0x0-0x0} 0x00099…000cc Rc489kSubCatEnt {f00=0x0052cb, f01=0x0007f8, f02=0x000801, filename=»talgoltask «, entry_tail=0-4-0-25-1980-11-27T13:13-disc3-0x0-0x0-0x0-0x0} 0x000cc…000ff Rc489kSubCatEnt {f00=0x01eb9b, f01=0x0007f8, f02=0x000801, filename=»tsetentry «, entry_tail=0-4-0-9-1979-12-04T12:15-disc3-0x0-0x0-0x0-0x0} 0x000ff…00132 Rc489kSubCatEnt {f00=0x027df3, f01=0x0007f8, f02=0x000801, filename=»prelinktext «, entry_tail=0-4-0-63-1980-12-02T12:42-disc3-0x0-0x0-0x0-0x0} 0x00132…00165 Rc489kSubCatEnt {f00=0x066cc3, f01=0x0007f8, f02=0x000801, filename=»texecintf1 «, entry_tail=0-4-0-16-1980-02-26T10:16-disc3-0x0-0x0-0x0-0x0} 0x00165…00198 Rc489kSubCatEnt {f00=0x0765c3, f01=0x0007f8, f02=0x000801, filename=»tcreatetask «, entry_tail=0-4-0-26-1980-11-17T15:11-disc3-0x0-0x0-0x0-0x0} 0x00198…001a0 ff ff ff ff ff ff ff ff ┆ ┆ 0x001a0…001c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ┆ ┆ […0x3…] 0x00220…00240 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00 05 80 04 1b 80 00 01 7f ff fd 74 72 6f ┆ tro┆ 0x00240…00260 00 00 00 00 00 00 00 00 00 80 00 0a 72 65 61 64 65 72 00 00 00 00 00 00 63 99 3e 00 00 00 00 00 ┆ reader c > ┆ 0x00260…00280 00 00 00 00 00 00 00 1b 14 1b 80 00 01 7f ff fd 70 6f 73 00 00 00 00 00 00 00 00 00 00 00 18 64 ┆ pos d┆ 0x00280…002a0 69 73 63 00 00 00 00 00 00 00 00 69 d5 88 80 b0 b0 00 00 00 00 29 24 00 0a ac ff ff ff 00 02 6c ┆isc i )$ l┆ 0x002a0…002c0 00 02 75 77 72 6b 30 30 30 31 36 35 00 00 00 00 00 17 64 69 73 63 31 00 00 00 00 00 00 00 76 b3 ┆ uwrk000165 disc1 v ┆ 0x002c0…002e0 29 00 00 00 00 00 00 00 00 00 00 2d ee ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ┆) - ┆ 0x002e0…002fd ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ┆ ┆ 0x002fd…00300 0x000008 0x00300…00600 Data for tsetdef 0x00600…00900 Data for jttestext 0x00900…00f00 (1,) Data for jttrans 0x00f00…05a00 Data for talgoltask 0x05a00…07500 (10,) Data for tsetentry 0x07500…13200 (13,) Data for prelinktext 0x13200…16200 (34,) Data for texecintf1 0x16200…1b000 Data for tcreatetask 0x1b000…1b020 (48,) 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 63 61 6c 63 75 6c 61 74 65 5f 68 61 73 68 5f ┆nteger procedure calculate_hash_┆ 0x1b020…1b040 6b 65 79 28 6e 61 6d 65 29 3b 0a 20 20 20 20 76 61 6c 75 65 20 6e 61 6d 65 3b 20 6c 6f 6e 67 20 ┆key(name); value name; long ┆ 0x1b040…1b060 6e 61 6d 65 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 63 61 6c 63 75 6c 61 74 65 5f 68 61 ┆name; begin calculate_ha┆ 0x1b060…1b080 73 68 5f 6b 65 79 20 3a 3d 20 28 28 20 6e 61 6d 65 20 65 78 74 72 61 63 74 20 31 32 29 20 2b 0a ┆sh_key := (( name extract 12) + ┆ 0x1b080…1b0a0 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 28 20 6e 61 6d 65 ┆ ( name┆ 0x1b0a0…1b0c0 20 73 68 69 66 74 20 28 2d 31 32 29 20 65 78 74 72 61 63 74 20 31 32 29 20 2b 0a 20 20 20 20 20 ┆ shift (-12) extract 12) + ┆ 0x1b0c0…1b0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 20 6e 61 6d 65 20 73 68 69 66 ┆ ( name shif┆ 0x1b0e0…1b100 74 20 28 2d 32 34 29 20 65 78 74 72 61 63 74 20 31 32 29 20 2b 0a 20 20 20 20 20 20 20 20 20 20 ┆t (-24) extract 12) + ┆ 0x1b100…1b120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 20 6e 61 6d 65 20 73 68 69 66 74 20 28 2d 33 ┆ ( name shift (-3┆ 0x1b120…1b140 36 29 20 65 78 74 72 61 63 74 20 31 32 29 20 2b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆6) extract 12) + ┆ 0x1b140…1b160 20 20 20 20 20 20 20 20 20 20 20 28 20 6e 61 6d 65 20 73 68 69 66 74 20 28 2d 34 30 29 20 65 78 ┆ ( name shift (-40) ex┆ 0x1b160…1b180 74 72 61 63 74 20 38 29 20 2b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆tract 8) + ┆ 0x1b180…1b1a0 20 20 20 20 20 28 20 6e 61 6d 65 20 73 68 69 66 74 20 28 2d 33 32 29 20 65 78 74 72 61 63 74 20 ┆ ( name shift (-32) extract ┆ 0x1b1a0…1b1c0 38 29 20 2b 0a 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 28 ┆8) + (┆ 0x1b1c0…1b1e0 20 6e 61 6d 65 20 73 68 69 66 74 20 28 2d 32 34 29 20 65 78 74 72 61 63 74 20 31 32 29 20 0a 20 ┆ name shift (-24) extract 12) ┆ 0x1b1e0…1b200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 ┆ ) ┆ 0x1b200…1b220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 20 73 65 61 72 63 68 5f 74 ┆ mod search_t┆ 0x1b220…1b240 61 62 6c 65 5f 6c 65 6e 67 74 68 3b 0a 20 20 20 20 65 6e 64 20 63 61 6c 63 75 6c 61 74 65 5f 68 ┆able_length; end calculate_h┆ 0x1b240…1b260 61 73 68 5f 6b 65 79 3b 0a 0a 20 20 20 20 69 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 ┆ash_key; integer procedure ┆ 0x1b260…1b280 69 6e 73 65 72 74 5f 6e 61 6d 65 5f 74 61 62 6c 65 28 69 6e 64 65 78 2c 6e 61 6d 65 2c 74 79 70 ┆insert_name_table(index,name,typ┆ 0x1b280…1b2a0 65 2c 72 65 66 66 29 3b 0a 20 20 20 20 76 61 6c 75 65 20 69 6e 64 65 78 2c 6e 61 6d 65 2c 74 79 ┆e,reff); value index,name,ty┆ 0x1b2a0…1b2c0 70 65 2c 72 65 66 66 3b 20 6c 6f 6e 67 20 69 6e 64 65 78 2c 6e 61 6d 65 3b 20 20 20 20 20 20 20 ┆pe,reff; long index,name; ┆ 0x1b2c0…1b2e0 20 20 20 0a 20 20 20 20 69 6e 74 65 67 65 72 20 74 79 70 65 2c 72 65 66 66 3b 0a 20 20 20 20 62 ┆ integer type,reff; b┆ 0x1b2e0…1b300 65 67 69 6e 0a 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 69 6e 64 65 78 2c 31 29 20 3a 3d 20 ┆egin name_table(index,1) := ┆ 0x1b300…1b320 6e 61 6d 65 3b 0a 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 69 6e 64 65 78 2c 30 29 20 3a 3d ┆name; name_table(index,0) :=┆ 0x1b320…1b340 20 74 79 70 65 3b 0a 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 69 6e 64 65 78 2c 34 29 20 3a ┆ type; name_table(index,4) :┆ 0x1b340…1b360 3d 20 72 65 66 66 3b 0a 20 20 20 20 65 6e 64 20 69 6e 73 65 72 74 5f 6e 61 6d 65 5f 74 61 62 6c ┆= reff; end insert_name_tabl┆ 0x1b360…1b380 65 3b 0a 0a 0a 0a 20 20 20 20 69 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 6e 65 77 5f ┆e; integer procedure new_┆ 0x1b380…1b3a0 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 72 65 66 28 6e 61 6d 65 2c 69 6e 73 74 72 5f 69 6e 64 65 ┆insert_label_ref(name,instr_inde┆ 0x1b3a0…1b3c0 78 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 0a 20 20 20 20 76 61 6c 75 ┆x,line_no,element_no); valu┆ 0x1b3c0…1b3e0 65 20 6e 61 6d 65 2c 69 6e 73 74 72 5f 69 6e 64 65 78 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 ┆e name,instr_index,line_no,eleme┆ 0x1b3e0…1b400 6e 74 5f 6e 6f 3b 0a 20 20 20 20 6c 6f 6e 67 20 6e 61 6d 65 3b 0a 20 20 20 20 69 6e 74 65 67 65 ┆nt_no; long name; intege┆ 0x1b400…1b420 72 20 69 6e 73 74 72 5f 69 6e 64 65 78 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f ┆r instr_index,line_no,element_no┆ 0x1b420…1b440 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 6c 5f 72 5f 72 65 63 6f 72 64 20 3a 3d 20 61 6c ┆; begin l_r_record := al┆ 0x1b440…1b460 6c 6f 63 61 74 65 28 6c 5f 72 5f 72 65 63 6f 72 64 5f 6c 65 6e 67 74 68 29 3b 0a 20 20 20 20 48 ┆locate(l_r_record_length); H┆ 0x1b460…1b480 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 63 68 61 69 6e 20 3a 3d 20 6c 5f 72 5f ┆EAP.l_r_record.l_r_chain := l_r_┆ 0x1b480…1b4a0 72 65 63 6f 72 64 5f 63 68 61 69 6e 5f 68 65 61 64 3b 0a 20 20 20 20 6c 5f 72 5f 72 65 63 6f 72 ┆record_chain_head; l_r_recor┆ 0x1b4a0…1b4c0 64 5f 63 68 61 69 6e 5f 68 65 61 64 20 3a 3d 20 6c 5f 72 5f 72 65 63 6f 72 64 3b 0a 20 20 20 20 ┆d_chain_head := l_r_record; ┆ 0x1b4c0…1b4e0 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 6e 61 6d 65 20 3a 3d 20 6e 61 6d 65 ┆HEAP.l_r_record.l_r_name := name┆ 0x1b4e0…1b500 3b 0a 20 20 20 20 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 69 6e 64 65 78 20 ┆; HEAP.l_r_record.l_r_index ┆ 0x1b500…1b520 3a 3d 20 69 6e 73 74 72 5f 69 6e 64 65 78 3b 0a 20 20 20 20 48 45 41 50 2e 6c 5f 72 5f 72 65 63 ┆:= instr_index; HEAP.l_r_rec┆ 0x1b520…1b540 6f 72 64 2e 6c 5f 72 5f 6c 69 6e 65 5f 6e 6f 20 3a 3d 20 6c 69 6e 65 5f 6e 6f 3b 0a 20 20 20 20 ┆ord.l_r_line_no := line_no; ┆ 0x1b540…1b560 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 65 6c 65 6d 65 6e 74 5f 6e 6f 20 3a ┆HEAP.l_r_record.l_r_element_no :┆ 0x1b560…1b580 3d 20 65 6c 65 6d 65 6e 74 5f 6e 6f 3b 0a 20 20 20 20 6e 65 77 5f 69 6e 73 65 72 74 5f 6c 61 62 ┆= element_no; new_insert_lab┆ 0x1b580…1b5a0 65 6c 5f 72 65 66 20 3a 3d 20 6c 5f 72 5f 72 65 63 6f 72 64 3b 0a 20 20 20 20 65 6e 64 20 6e 65 ┆el_ref := l_r_record; end ne┆ 0x1b5a0…1b5c0 77 5f 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 72 65 66 3b 0a 0a 0a 0a 20 20 20 20 69 6e 74 65 67 ┆w_insert_label_ref; integ┆ 0x1b5c0…1b5e0 65 72 20 70 72 6f 63 65 64 75 72 65 20 6e 65 77 5f 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 64 65 ┆er procedure new_insert_label_de┆ 0x1b5e0…1b600 66 28 6e 61 6d 65 2c 69 6e 64 65 78 2c 69 6e 73 74 72 5f 69 6e 64 65 78 2c 6c 69 6e 65 5f 6e 6f ┆f(name,index,instr_index,line_no┆ 0x1b600…1b620 2c 73 70 65 63 29 3b 0a 20 20 20 20 76 61 6c 75 65 20 6e 61 6d 65 2c 69 6e 64 65 78 2c 69 6e 73 ┆,spec); value name,index,ins┆ 0x1b620…1b640 74 72 5f 69 6e 64 65 78 2c 73 70 65 63 2c 6c 69 6e 65 5f 6e 6f 3b 0a 20 20 20 20 6c 6f 6e 67 20 ┆tr_index,spec,line_no; long ┆ 0x1b640…1b660 6e 61 6d 65 2c 69 6e 64 65 78 3b 0a 20 20 20 20 69 6e 74 65 67 65 72 20 69 6e 73 74 72 5f 69 6e ┆name,index; integer instr_in┆ 0x1b660…1b680 64 65 78 2c 73 70 65 63 2c 6c 69 6e 65 5f 6e 6f 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆dex,spec,line_no; begin ┆ 0x1b680…1b6a0 6c 5f 64 5f 72 65 63 6f 72 64 20 3a 3d 20 61 6c 6c 6f 63 61 74 65 28 6c 5f 64 5f 72 65 63 6f 72 ┆l_d_record := allocate(l_d_recor┆ 0x1b6a0…1b6c0 64 5f 6c 65 6e 67 74 68 29 3b 0a 20 20 20 20 69 6e 73 65 72 74 5f 6e 61 6d 65 5f 74 61 62 6c 65 ┆d_length); insert_name_table┆ 0x1b6c0…1b6e0 28 69 6e 64 65 78 2c 6e 61 6d 65 2c 6c 61 62 65 6c 5f 74 79 70 65 2c 6c 5f 64 5f 72 65 63 6f 72 ┆(index,name,label_type,l_d_recor┆ 0x1b6e0…1b700 64 29 3b 0a 20 20 20 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 63 68 61 69 ┆d); HEAP.l_d_record.l_d_chai┆ 0x1b700…1b720 6e 20 3a 3d 20 69 6e 64 65 78 3b 20 3c 2a 20 69 6e 64 65 78 20 62 61 63 6b 20 74 6f 20 6e 61 6d ┆n := index; <* index back to nam┆ 0x1b720…1b740 65 20 74 61 62 6c 65 20 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆e table ┆ 0x1b740…1b760 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 ┆ ┆ 0x1b760…1b780 2a 3e 0a 20 20 20 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 69 6e 64 65 78 ┆*> HEAP.l_d_record.l_d_index┆ 0x1b780…1b7a0 20 3a 3d 20 69 6e 73 74 72 5f 69 6e 64 65 78 3b 0a 20 20 20 20 48 45 41 50 2e 6c 5f 64 5f 72 65 ┆ := instr_index; HEAP.l_d_re┆ 0x1b7a0…1b7c0 63 6f 72 64 2e 6c 5f 64 5f 6c 69 6e 65 5f 6e 6f 20 3a 3d 20 6c 69 6e 65 5f 6e 6f 3b 0a 20 20 20 ┆cord.l_d_line_no := line_no; ┆ 0x1b7c0…1b7e0 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 73 70 65 63 20 3a 3d 20 73 70 65 ┆ HEAP.l_d_record.l_d_spec := spe┆ 0x1b7e0…1b800 63 3b 0a 20 20 20 20 6e 65 77 5f 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 64 65 66 20 3a 3d 20 69 ┆c; new_insert_label_def := i┆ 0x1b800…1b820 6e 64 65 78 3b 0a 20 20 20 20 65 6e 64 20 6e 65 77 5f 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 64 ┆ndex; end new_insert_label_d┆ 0x1b820…1b840 65 66 3b 0a 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 72 65 73 6f 6c 76 65 5f 6c 61 62 65 6c ┆ef; procedure resolve_label┆ 0x1b840…1b860 73 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 6e 74 65 67 65 72 20 6f 70 5f 63 6f 64 65 ┆s; begin integer op_code┆ 0x1b860…1b880 5f 69 6e 64 65 78 3b 0a 20 20 20 20 6c 6f 6e 67 20 6e 61 6d 65 5f 74 61 62 6c 65 5f 69 6e 64 65 ┆_index; long name_table_inde┆ 0x1b880…1b8a0 78 3b 0a 20 20 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 77 72 5f 6e 61 6d 65 28 31 3a 32 29 3b 20 ┆x; long array wr_name(1:2); ┆ 0x1b8a0…1b8c0 3c 2a 20 75 73 65 64 20 66 6f 72 20 77 72 69 74 69 6e 67 20 6f 66 20 61 20 6e 61 6d 65 20 2a 3e ┆<* used for writing of a name *>┆ 0x1b8c0…1b8e0 0a 20 20 20 20 77 72 5f 6e 61 6d 65 28 32 29 3a 3d 30 3b 0a 0a 20 20 20 20 6c 5f 72 5f 72 65 63 ┆ wr_name(2):=0; l_r_rec┆ 0x1b8e0…1b900 6f 72 64 20 3a 3d 20 6c 5f 72 5f 72 65 63 6f 72 64 5f 63 68 61 69 6e 5f 68 65 61 64 3b 0a 20 20 ┆ord := l_r_record_chain_head; ┆ 0x1b900…1b920 (49,) 20 20 20 77 68 69 6c 65 20 6c 5f 72 5f 72 65 63 6f 72 64 20 3e 2d 31 20 64 6f 0a 20 20 20 20 20 ┆ while l_r_record >-1 do ┆ 0x1b920…1b940 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 69 66 20 2d 2c 20 6c 6f 6f 6b 75 70 5f 6e 61 6d 65 ┆ begin if -, lookup_name┆ 0x1b940…1b960 28 6e 61 6d 65 5f 74 61 62 6c 65 2c 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f ┆(name_table,HEAP.l_r_record.l_r_┆ 0x1b960…1b980 6e 61 6d 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 5f 74 ┆name, name_t┆ 0x1b980…1b9a0 61 62 6c 65 5f 69 6e 64 65 78 29 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a ┆able_index) then begin ┆ 0x1b9a0…1b9c0 20 20 20 20 20 20 20 20 20 69 6e 73 74 72 5f 69 6e 64 65 78 20 3a 3d 20 48 45 41 50 2e 6c 5f 72 ┆ instr_index := HEAP.l_r┆ 0x1b9c0…1b9e0 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 69 6e 64 65 78 3b 0a 20 20 20 20 20 20 20 20 20 65 72 72 6f ┆_record.l_r_index; erro┆ 0x1b9e0…1ba00 72 28 75 6e 64 65 63 5f 6c 61 62 65 6c 2c 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f ┆r(undec_label,HEAP.l_r_record.l_┆ 0x1ba00…1ba20 72 5f 6c 69 6e 65 5f 6e 6f 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆r_line_no, ┆ 0x1ba20…1ba40 20 20 20 20 20 20 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 65 6c 65 6d 65 6e ┆ HEAP.l_r_record.l_r_elemen┆ 0x1ba40…1ba60 74 5f 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 65 6c 73 65 ┆t_no); end else┆ 0x1ba60…1ba80 0a 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 6c 5f 64 5f 72 65 63 ┆ begin l_d_rec┆ 0x1ba80…1baa0 6f 72 64 20 3a 3d 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 61 6d 65 5f 74 61 62 6c 65 5f 69 6e 64 ┆ord := name_table(name_table_ind┆ 0x1baa0…1bac0 65 78 2c 34 29 3b 0a 20 20 20 20 20 20 20 20 20 6f 70 5f 63 6f 64 65 5f 69 6e 64 65 78 20 3a 3d ┆ex,4); op_code_index :=┆ 0x1bac0…1bae0 20 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 69 6e 64 65 78 3b 0a 20 20 20 20 ┆ HEAP.l_r_record.l_r_index; ┆ 0x1bae0…1bb00 20 20 20 20 20 6f 70 5f 63 6f 64 65 28 6f 70 63 6f 64 65 5f 69 6e 64 65 78 29 20 3a 3d 20 6d 61 ┆ op_code(opcode_index) := ma┆ 0x1bb00…1bb20 73 6b 5f 69 6e 28 6f 70 5f 63 6f 64 65 28 6f 70 5f 63 6f 64 65 5f 69 6e 64 65 78 29 2c 0a 20 20 ┆sk_in(op_code(op_code_index), ┆ 0x1bb20…1bb40 20 20 20 20 20 20 20 20 20 65 78 74 65 6e 64 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e ┆ extend HEAP.l_d_record.┆ 0x1bb40…1bb60 6c 5f 64 5f 69 6e 64 65 78 2c 0a 20 20 20 20 20 20 20 20 20 20 20 61 64 64 72 73 5f 6d 61 73 6b ┆l_d_index, addrs_mask┆ 0x1bb60…1bb80 29 3b 0a 20 20 20 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 20 20 20 69 66 20 74 65 73 74 5f 6c ┆); if test_l┆ 0x1bb80…1bba0 61 62 65 6c 5f 62 69 74 20 6f 72 20 74 65 73 74 5f 6c 61 62 65 6c 5f 72 65 66 20 74 68 65 6e 0a ┆abel_bit or test_label_ref then ┆ 0x1bba0…1bbc0 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 77 72 5f 6e ┆ begin wr_n┆ 0x1bbc0…1bbe0 61 6d 65 28 31 29 20 3a 3d 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 6e 61 ┆ame(1) := HEAP.l_d_record.l_d_na┆ 0x1bbe0…1bc00 6d 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 22 6e 6c 22 2c 31 2c ┆me; write(out,"nl",1,┆ 0x1bc00…1bc20 22 73 70 22 2c 35 2c 3c 3c 7a 64 64 64 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆"sp",5,<<zddd>, ┆ 0x1bc20…1bc40 20 6f 63 74 61 6c 28 65 78 74 65 6e 64 20 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f ┆ octal(extend HEAP.l_r_record.l_┆ 0x1bc40…1bc60 72 5f 69 6e 64 65 78 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3a 20 6c 61 ┆r_index), <: la┆ 0x1bc60…1bc80 62 65 6c 20 72 65 66 66 20 74 6f 3a 20 3a 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆bel reff to: :>, ┆ 0x1bc80…1bca0 20 20 6f 63 74 61 6c 28 65 78 74 65 6e 64 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c ┆ octal(extend HEAP.l_d_record.l┆ 0x1bca0…1bcc0 5f 64 5f 69 6e 64 65 78 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3a 20 6e ┆_d_index), <: n┆ 0x1bcc0…1bce0 61 6d 65 3a 20 3a 3e 2c 77 72 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 ┆ame: :>,wr_name); end┆ 0x1bce0…1bd00 3b 0a 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 69 66 20 74 65 73 74 5f 6c 61 62 ┆; if test_lab┆ 0x1bd00…1bd20 65 6c 5f 62 69 74 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 ┆el_bit then begin ┆ 0x1bd20…1bd40 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 22 6e 6c 22 2c 31 2c 22 73 70 22 2c 31 31 ┆ write(out,"nl",1,"sp",11┆ 0x1bd40…1bd60 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 66 6f 72 6d 61 74 65 64 28 6f 70 5f ┆); print_formated(op_┆ 0x1bd60…1bd80 63 6f 64 65 28 6f 70 5f 63 6f 64 65 5f 69 6e 64 65 78 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ┆code(op_code_index)); ┆ 0x1bd80…1bda0 20 65 6e 64 3b 0a 0a 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 6c 5f 72 5f ┆ end; end; l_r_┆ 0x1bda0…1bdc0 72 65 63 6f 72 64 20 3a 3d 20 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 63 68 ┆record := HEAP.l_r_record.l_r_ch┆ 0x1bdc0…1bde0 61 69 6e 3b 0a 20 20 20 20 20 20 20 65 6e 64 20 73 63 61 6e 20 6c 6f 6f 70 3b 0a 20 20 20 20 65 ┆ain; end scan loop; e┆ 0x1bde0…1be00 6e 64 20 72 65 73 6f 6c 76 65 5f 6c 61 62 65 6c 73 3b 0a 0a 20 20 20 20 70 72 6f 63 65 64 75 72 ┆nd resolve_labels; procedur┆ 0x1be00…1be20 65 20 6c 61 62 65 6c 5f 6c 69 73 74 28 6f 6e 6c 79 5f 73 70 65 63 5f 77 61 6e 74 65 64 29 3b 0a ┆e label_list(only_spec_wanted); ┆ 0x1be20…1be40 20 20 20 20 76 61 6c 75 65 20 6f 6e 6c 79 5f 73 70 65 63 5f 77 61 6e 74 65 64 3b 20 62 6f 6f 6c ┆ value only_spec_wanted; bool┆ 0x1be40…1be60 65 61 6e 20 6f 6e 6c 79 5f 73 70 65 63 5f 77 61 6e 74 65 64 3b 0a 20 20 20 20 62 65 67 69 6e 0a ┆ean only_spec_wanted; begin ┆ 0x1be60…1be80 20 20 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 77 72 5f 6e 61 6d 65 28 31 3a 32 29 3b 0a 20 20 20 ┆ long array wr_name(1:2); ┆ 0x1be80…1bea0 20 69 6e 74 65 67 65 72 20 69 6e 64 65 78 3b 0a 20 20 20 20 77 72 5f 6e 61 6d 65 28 32 29 20 3a ┆ integer index; wr_name(2) :┆ 0x1bea0…1bec0 3d 20 30 3b 0a 20 20 20 20 0a 20 20 20 20 66 6f 72 20 69 6e 64 65 78 20 3a 3d 20 31 20 73 74 65 ┆= 0; for index := 1 ste┆ 0x1bec0…1bee0 70 20 31 20 75 6e 74 69 6c 20 6e 61 6d 65 5f 74 61 62 6c 65 5f 6c 65 6e 67 74 68 20 64 6f 0a 20 ┆p 1 until name_table_length do ┆ 0x1bee0…1bf00 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 6e 61 6d 65 5f 74 61 62 6c 65 28 69 ┆ begin if name_table(i┆ 0x1bf00…1bf20 6e 64 65 78 2c 30 29 20 3d 20 6c 61 62 65 6c 5f 74 79 70 65 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆ndex,0) = label_type then ┆ 0x1bf20…1bf40 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 6c 5f 64 5f 72 65 63 6f 72 64 20 3a 3d 20 6e 61 ┆ begin l_d_record := na┆ 0x1bf40…1bf60 6d 65 5f 74 61 62 6c 65 28 69 6e 64 65 78 2c 34 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 48 45 ┆me_table(index,4); if HE┆ 0x1bf60…1bf80 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 73 70 65 63 20 3e 20 30 20 6f 72 0a 20 20 ┆AP.l_d_record.l_d_spec > 0 or ┆ 0x1bf80…1bfa0 20 20 20 20 20 20 20 20 20 2d 2c 20 6f 6e 6c 79 5f 73 70 65 63 5f 77 61 6e 74 65 64 20 74 68 65 ┆ -, only_spec_wanted the┆ 0x1bfa0…1bfc0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 77 72 ┆n begin wr┆ 0x1bfc0…1bfe0 5f 6e 61 6d 65 28 31 29 20 3a 3d 20 6e 61 6d 65 5f 74 61 62 6c 65 28 69 6e 64 65 78 2c 31 29 3b ┆_name(1) := name_table(index,1);┆ 0x1bfe0…1c000 0a 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 22 73 70 22 2c 31 35 20 2d 20 ┆ write(out,"sp",15 - ┆ 0x1c000…1c020 77 72 69 74 65 28 6f 75 74 2c 22 6e 6c 22 2c 31 2c 77 72 5f 6e 61 6d 65 29 2c 0a 20 20 20 20 20 ┆write(out,"nl",1,wr_name), ┆ 0x1c020…1c040 20 20 20 20 20 20 20 20 20 20 20 20 22 63 72 22 2c 31 2c 22 73 70 22 2c 37 2c 3c 3a 20 72 65 66 ┆ "cr",1,"sp",7,<: ref┆ 0x1c040…1c060 66 2e 20 74 6f 20 61 64 64 72 65 73 73 3a 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆f. to address:>, ┆ 0x1c060…1c080 20 20 3c 3c 5f 7a 64 64 64 3e 2c 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 69 ┆ <<_zddd>,HEAP.l_d_record.l_d_i┆ 0x1c080…1c0a0 6e 64 65 78 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 63 74 61 6c 28 65 78 ┆ndex, octal(ex┆ 0x1c0a0…1c0c0 74 65 6e 64 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 69 6e 64 65 78 29 2c ┆tend HEAP.l_d_record.l_d_index),┆ 0x1c0c0…1c0e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 48 45 41 50 2e 6c 5f 64 5f 72 ┆ if HEAP.l_d_r┆ 0x1c0e0…1c100 65 63 6f 72 64 2e 6c 5f 64 5f 73 70 65 63 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 ┆ecord.l_d_spec > 0 then ┆ 0x1c100…1c120 20 20 20 20 20 20 20 20 20 20 3c 3a 20 73 70 65 63 2e 20 6f 72 20 6c 69 6e 65 20 6e 6f 20 3a 3e ┆ <: spec. or line no :>┆ 0x1c120…1c140 20 65 6c 73 65 20 3c 3a 3a 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c ┆ else <::>, <<┆ 0x1c140…1c160 5f 5f 62 64 64 64 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 48 45 ┆__bddd>, if HE┆ 0x1c160…1c180 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 73 70 65 63 20 3e 20 30 20 74 68 65 6e 0a ┆AP.l_d_record.l_d_spec > 0 then ┆ 0x1c180…1c1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 ┆ HEAP.l_d_recor┆ 0x1c1a0…1c1c0 64 2e 6c 5f 64 5f 73 70 65 63 20 2d 20 31 20 65 6c 73 65 20 30 29 3b 0a 20 20 20 20 20 20 20 20 ┆d.l_d_spec - 1 else 0); ┆ 0x1c1c0…1c1e0 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 20 6c 61 62 65 6c ┆ end; end; end label┆ 0x1c1e0…1c200 5f 6c 69 73 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 62 6f 6f ┆_list; end; boo┆ 0x1c200…1c220 (50,) 6c 65 61 6e 20 70 72 6f 63 65 64 75 72 65 20 70 72 69 6e 74 5f 65 72 72 6f 72 5f 74 61 62 6c 65 ┆lean procedure print_error_table┆ 0x1c220…1c240 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 66 69 65 6c 64 ┆; begin long array field┆ 0x1c240…1c260 20 70 72 65 76 69 75 73 2c 74 68 69 73 2c 6d 69 6e 5f 6c 69 6e 65 3b 0a 20 20 20 20 69 6e 74 65 ┆ previus,this,min_line; inte┆ 0x1c260…1c280 67 65 72 20 6d 69 6e 5f 6c 69 6e 65 5f 6e 6f 3b 0a 0a 20 20 20 20 69 66 20 65 72 72 6f 72 5f 72 ┆ger min_line_no; if error_r┆ 0x1c280…1c2a0 65 63 6f 72 64 5f 63 68 61 69 6e 5f 68 65 61 64 20 3d 20 6e 69 6c 20 74 68 65 6e 0a 20 20 20 20 ┆ecord_chain_head = nil then ┆ 0x1c2a0…1c2c0 20 20 70 72 69 6e 74 5f 65 72 72 6f 72 5f 74 61 62 6c 65 20 3a 3d 20 74 72 75 65 0a 20 20 20 20 ┆ print_error_table := true ┆ 0x1c2c0…1c2e0 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 70 72 69 6e 74 5f 65 72 72 ┆else begin print_err┆ 0x1c2e0…1c300 6f 72 5f 74 61 62 6c 65 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 77 68 69 6c 65 20 65 ┆or_table := false; while e┆ 0x1c300…1c320 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 68 61 69 6e 5f 68 65 61 64 20 3c 3e 20 6e 69 6c 20 64 6f ┆rror_record_chain_head <> nil do┆ 0x1c320…1c340 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 6d 69 6e 5f 6c 69 6e 65 5f ┆ begin min_line_┆ 0x1c340…1c360 6e 6f 20 3a 3d 20 38 33 38 38 36 30 36 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73 20 3a 3d 20 65 ┆no := 8388606; this := e┆ 0x1c360…1c380 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 68 61 69 6e 5f 68 65 61 64 3b 0a 20 20 20 20 20 20 20 20 ┆rror_record_chain_head; ┆ 0x1c380…1c3a0 70 72 65 76 69 75 73 20 3a 3d 20 6e 69 6c 3b 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 74 68 ┆previus := nil; while th┆ 0x1c3a0…1c3c0 69 73 20 3c 3e 20 6e 69 6c 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 ┆is <> nil do begin ┆ 0x1c3c0…1c3e0 20 20 20 20 20 20 20 69 66 20 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 ┆ if HEAP.this.error_record┆ 0x1c3e0…1c400 5f 6c 69 6e 65 5f 6e 6f 20 3c 3d 20 6d 69 6e 5f 6c 69 6e 65 5f 6e 6f 20 74 68 65 6e 0a 20 20 20 ┆_line_no <= min_line_no then ┆ 0x1c400…1c420 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 6e 5f 6c ┆ begin min_l┆ 0x1c420…1c440 69 6e 65 5f 6e 6f 20 3a 3d 20 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 ┆ine_no := HEAP.this.error_record┆ 0x1c440…1c460 5f 6c 69 6e 65 5f 6e 6f 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 6e 5f 6c 69 6e 65 3a 3d ┆_line_no; min_line:=┆ 0x1c460…1c480 20 70 72 65 76 69 75 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 ┆ previus; end; ┆ 0x1c480…1c4a0 20 20 20 20 20 70 72 65 76 69 75 73 20 3a 3d 20 74 68 69 73 3b 0a 20 20 20 20 20 20 20 20 20 20 ┆ previus := this; ┆ 0x1c4a0…1c4c0 74 68 69 73 20 3a 3d 20 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 ┆this := HEAP.this.error_record_c┆ 0x1c4c0…1c4e0 68 61 69 6e 3b 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 20 20 20 20 3c 2a ┆hain; end; <*┆ 0x1c4e0…1c500 20 72 65 6d 6f 76 65 20 72 65 63 6f 72 64 20 66 72 6f 6d 20 6c 69 73 74 20 2a 3e 0a 20 20 20 20 ┆ remove record from list *> ┆ 0x1c500…1c520 20 20 20 20 69 66 20 6d 69 6e 5f 6c 69 6e 65 20 3d 20 6e 69 6c 20 74 68 65 6e 20 20 20 20 20 20 ┆ if min_line = nil then ┆ 0x1c520…1c540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 ┆ begin ┆ 0x1c540…1c560 20 20 20 20 20 20 20 20 20 74 68 69 73 20 3a 3d 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 68 ┆ this := error_record_ch┆ 0x1c560…1c580 61 69 6e 5f 68 65 61 64 3b 0a 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 ┆ain_head; error_record┆ 0x1c580…1c5a0 5f 63 68 61 69 6e 5f 68 65 61 64 20 3a 3d 20 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 ┆_chain_head := HEAP.this.error_r┆ 0x1c5a0…1c5c0 65 63 6f 72 64 5f 63 68 61 69 6e 3b 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 ┆ecord_chain; end ┆ 0x1c5c0…1c5e0 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 ┆ else begin ┆ 0x1c5e0…1c600 20 20 70 72 65 76 69 75 73 20 3a 3d 20 6d 69 6e 5f 6c 69 6e 65 3b 0a 20 20 20 20 20 20 20 20 20 ┆ previus := min_line; ┆ 0x1c600…1c620 20 74 68 69 73 20 3a 3d 20 48 45 41 50 2e 70 72 65 76 69 75 73 2e 65 72 72 6f 72 5f 72 65 63 6f ┆ this := HEAP.previus.error_reco┆ 0x1c620…1c640 72 64 5f 63 68 61 69 6e 3b 0a 20 20 20 20 20 20 20 20 20 48 45 41 50 2e 70 72 65 76 69 75 73 2e ┆rd_chain; HEAP.previus.┆ 0x1c640…1c660 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 68 61 69 6e 20 3a 3d 0a 20 20 20 20 20 20 20 20 20 20 ┆error_record_chain := ┆ 0x1c660…1c680 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 68 61 69 6e 3b 0a 20 20 ┆HEAP.this.error_record_chain; ┆ 0x1c680…1c6a0 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 22 ┆ end; write(out,"┆ 0x1c6a0…1c6c0 6e 6c 22 2c 31 2c 3c 3c 5f 64 64 64 64 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 45 ┆nl",1,<<_dddd>, HE┆ 0x1c6c0…1c6e0 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 6c 69 6e 65 5f 6e 6f 2c 0a 20 20 ┆AP.this.error_record_line_no, ┆ 0x1c6e0…1c700 20 20 20 20 20 20 20 20 20 20 20 20 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f ┆ HEAP.this.error_reco┆ 0x1c700…1c720 72 64 5f 69 6e 73 74 72 5f 69 6e 64 65 78 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 63 ┆rd_instr_index, oc┆ 0x1c720…1c740 74 61 6c 28 65 78 74 65 6e 64 20 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 ┆tal(extend HEAP.this.error_recor┆ 0x1c740…1c760 64 5f 69 6e 73 74 72 5f 69 6e 64 65 78 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 45 ┆d_instr_index), HE┆ 0x1c760…1c780 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 65 6c 65 6d 65 6e 74 5f 70 6f 73 ┆AP.this.error_record_element_pos┆ 0x1c780…1c7a0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 70 22 2c 32 2c 73 74 72 69 6e 67 20 48 45 ┆, "sp",2,string HE┆ 0x1c7a0…1c7c0 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 74 65 78 74 29 3b 0a 20 20 20 20 ┆AP.this.error_record_text); ┆ 0x1c7c0…1c7e0 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 65 6e 64 20 70 72 ┆ end; end; end pr┆ 0x1c7e0…1c800 69 6e 74 5f 65 72 72 6f 72 5f 74 61 62 6c 65 3b 0a 0a 0a 0a 20 20 20 20 70 72 6f 63 65 64 75 72 ┆int_error_table; procedur┆ 0x1c800…1c820 65 20 70 72 69 6e 74 5f 66 6f 72 6d 61 74 65 64 28 6f 70 63 6f 64 65 29 3b 0a 20 20 20 20 3c 2a ┆e print_formated(opcode); <*┆ 0x1c820…1c840 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 3e ┆*******************************>┆ 0x1c840…1c860 0a 20 20 20 20 76 61 6c 75 65 20 6f 70 63 6f 64 65 3b 20 6c 6f 6e 67 20 6f 70 63 6f 64 65 3b 0a ┆ value opcode; long opcode; ┆ 0x1c860…1c880 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 6e 74 65 67 65 72 20 66 72 6f 6d 2c 74 6f 2c ┆ begin integer from,to,┆ 0x1c880…1c8a0 6e 75 6d 62 65 72 2c 69 6e 64 65 78 3b 0a 20 20 20 20 20 20 20 20 66 72 6f 6d 20 3a 3d 20 30 3b ┆number,index; from := 0;┆ 0x1c8a0…1c8c0 0a 20 20 20 20 20 20 20 20 66 6f 72 20 69 6e 64 65 78 20 3a 3d 2d 34 37 20 73 74 65 70 20 31 20 ┆ for index :=-47 step 1 ┆ 0x1c8c0…1c8e0 75 6e 74 69 6c 20 30 20 64 6f 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 ┆until 0 do begin ┆ 0x1c8e0…1c900 20 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c 69 66 20 6f 70 63 6f 64 65 20 73 68 69 66 74 20 69 ┆ outchar(out,if opcode shift i┆ 0x1c900…1c920 6e 64 65 78 20 65 78 74 72 61 63 74 20 31 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 ┆ndex extract 1 = 1 then ┆ 0x1c920…1c940 20 20 34 39 20 65 6c 73 65 20 34 36 29 3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 66 6f 72 6d ┆ 49 else 46); if form┆ 0x1c940…1c960 61 74 28 66 72 6f 6d 29 20 65 78 74 72 61 63 74 20 31 32 20 3d 20 34 37 20 2b 20 69 6e 64 65 78 ┆at(from) extract 12 = 47 + index┆ 0x1c960…1c980 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 ┆ then begin ┆ 0x1c980…1c9a0 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c 33 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 ┆ outchar(out,32); f┆ 0x1c9a0…1c9c0 72 6f 6d 3a 3d 66 72 6f 6d 2b 31 3b 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 ┆rom:=from+1; end; ┆ 0x1c9c0…1c9e0 20 20 20 20 65 6e 64 20 66 6f 72 20 6c 6f 6f 70 3b 0a 20 20 20 20 3c 2a 20 66 6f 72 20 69 6d 70 ┆ end for loop; <* for imp┆ 0x1c9e0…1ca00 72 6f 76 69 6e 67 20 72 65 61 64 61 62 69 6c 69 74 79 20 77 72 69 74 65 20 61 6e 20 65 78 74 72 ┆roving readability write an extr┆ 0x1ca00…1ca20 61 20 6e 65 77 6c 69 6e 65 20 2a 3e 0a 20 20 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c 31 30 29 ┆a newline *> outchar(out,10)┆ 0x1ca20…1ca40 3b 0a 0a 20 20 20 20 65 6e 64 20 20 70 72 69 6e 74 5f 66 6f 72 6d 61 74 3b 0a 0a 0a 20 20 61 6c ┆; end print_format; al┆ 0x1ca40…1ca60 67 6f 6c 20 63 6f 70 79 2e 32 20 20 3c 2a 20 73 6f 75 72 63 65 20 73 68 6f 75 6c 64 20 62 65 20 ┆gol copy.2 <* source should be ┆ 0x1ca60…1ca80 6d 32 39 30 78 70 72 6f 63 20 2a 3e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 20 20 69 6e 74 65 67 65 72 20 ┆m290xproc *>; integer ┆ 0x1ca80…1caa0 70 72 6f 63 65 64 75 72 65 20 0a 20 20 20 20 67 65 74 5f 61 6c 6c 5f 72 65 67 5f 6f 70 65 72 61 ┆procedure get_all_reg_opera┆ 0x1caa0…1cac0 6e 64 73 28 6f 70 5f 31 2c 6b 69 6e 64 5f 31 2c 6f 70 5f 32 2c 6b 69 6e 64 5f 32 2c 6f 70 5f 33 ┆nds(op_1,kind_1,op_2,kind_2,op_3┆ 0x1cac0…1cae0 2c 6b 69 6e 64 5f 33 29 3b 0a 20 20 3c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆,kind_3); <*******************┆ 0x1cae0…1cb00 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 ┆********************************┆ 0x1cb00…1cb20 (51,) 2a 2a 2a 2a 2a 2a 2a 3e 0a 20 20 69 6e 74 65 67 65 72 20 6f 70 5f 31 2c 6b 69 6e 64 5f 31 2c 6f ┆*******> integer op_1,kind_1,o┆ 0x1cb20…1cb40 70 5f 32 2c 6b 69 6e 64 5f 32 2c 6f 70 5f 33 2c 6b 69 6e 64 5f 33 3b 0a 20 20 62 65 67 69 6e 0a ┆p_2,kind_2,op_3,kind_3; begin ┆ 0x1cb40…1cb60 20 20 69 6e 74 65 67 65 72 20 6e 6f 5f 6f 66 5f 6f 70 3b 0a 20 20 6e 6f 5f 6f 66 5f 6f 70 20 3a ┆ integer no_of_op; no_of_op :┆ 0x1cb60…1cb80 3d 20 30 3b 0a 20 20 6f 70 5f 31 20 3a 3d 20 6f 70 5f 32 20 3a 3d 20 6f 70 5f 33 20 3a 3d 20 6b ┆= 0; op_1 := op_2 := op_3 := k┆ 0x1cb80…1cba0 69 6e 64 5f 31 20 3a 3d 20 6b 69 6e 64 5f 32 20 3a 3d 20 6b 69 6e 64 5f 33 20 3a 3d 20 6e 6f 74 ┆ind_1 := kind_2 := kind_3 := not┆ 0x1cba0…1cbc0 5f 75 73 65 64 3b 0a 20 20 63 6c 61 73 73 20 3a 3d 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 ┆_used; class := look_ahead_cla┆ 0x1cbc0…1cbe0 73 73 3b 0a 20 20 69 66 20 63 6c 61 73 73 20 3d 20 6c 65 66 74 5f 70 61 72 5f 63 6c 61 73 73 20 ┆ss; if class = left_par_class ┆ 0x1cbe0…1cc00 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 67 65 74 ┆then begin next; get┆ 0x1cc00…1cc20 5f 61 5f 72 65 67 5f 6f 70 65 72 61 6e 64 28 6f 70 5f 31 2c 6b 69 6e 64 5f 31 29 3b 0a 20 20 20 ┆_a_reg_operand(op_1,kind_1); ┆ 0x1cc20…1cc40 20 6e 6f 5f 6f 66 5f 6f 70 20 3a 3d 20 31 3b 0a 20 20 20 69 66 20 6c 6f 6f 6b 5f 61 68 65 61 64 ┆ no_of_op := 1; if look_ahead┆ 0x1cc40…1cc60 5f 63 6c 61 73 73 20 3d 20 63 6f 6d 6d 61 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆_class = comma_class then ┆ 0x1cc60…1cc80 62 65 67 69 6e 0a 20 20 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 20 20 67 65 74 5f 61 5f 72 65 ┆begin next; get_a_re┆ 0x1cc80…1cca0 67 5f 6f 70 65 72 61 6e 64 28 6f 70 5f 32 2c 6b 69 6e 64 5f 32 29 3b 0a 20 20 20 20 20 20 6e 6f ┆g_operand(op_2,kind_2); no┆ 0x1cca0…1ccc0 5f 6f 66 5f 6f 70 20 3a 3d 20 32 3b 0a 20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 5f 61 68 65 61 64 ┆_of_op := 2; if look_ahead┆ 0x1ccc0…1cce0 5f 63 6c 61 73 73 20 3d 20 63 6f 6d 6d 61 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆_class = comma_class then ┆ 0x1cce0…1cd00 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 20 20 20 20 ┆ begin next; ┆ 0x1cd00…1cd20 20 67 65 74 5f 61 5f 72 65 67 5f 6f 70 65 72 61 6e 64 28 6f 70 5f 33 2c 6b 69 6e 64 5f 33 29 3b ┆ get_a_reg_operand(op_3,kind_3);┆ 0x1cd20…1cd40 0a 20 20 20 20 20 20 20 20 20 6e 6f 5f 6f 66 5f 6f 70 20 3a 3d 20 33 3b 0a 20 20 20 20 20 20 20 ┆ no_of_op := 3; ┆ 0x1cd40…1cd60 20 20 65 6e 64 3b 0a 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 6e 65 78 74 3b 0a 20 20 69 66 20 63 ┆ end; end; next; if c┆ 0x1cd60…1cd80 6c 61 73 73 20 3c 3e 20 72 69 67 68 74 5f 70 61 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 ┆lass <> right_par_class then ┆ 0x1cd80…1cda0 20 20 65 72 72 6f 72 28 74 65 72 6d 69 6e 61 74 69 6f 6e 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d ┆ error(termination,line_no,elem┆ 0x1cda0…1cdc0 65 6e 74 5f 6e 6f 29 3b 0a 20 20 65 6e 64 20 65 6c 73 65 20 65 72 72 6f 72 28 6d 69 73 73 69 6e ┆ent_no); end else error(missin┆ 0x1cdc0…1cde0 67 5f 6f 70 65 72 61 6e 64 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 67 ┆g_operand,line_no,element_no); g┆ 0x1cde0…1ce00 65 74 5f 61 6c 6c 5f 72 65 67 5f 6f 70 65 72 61 6e 64 73 20 3a 3d 20 6e 6f 5f 6f 66 5f 6f 70 3b ┆et_all_reg_operands := no_of_op;┆ 0x1ce00…1ce20 0a 65 6e 64 20 70 72 6f 63 65 64 75 72 65 20 67 65 74 5f 61 6c 6c 5f 72 65 67 5f 6f 70 65 72 61 ┆ end procedure get_all_reg_opera┆ 0x1ce20…1ce40 6e 64 73 3b 0a 0a 0a 0a 0a 0a 0a 20 20 70 72 6f 63 65 64 75 72 65 20 67 65 74 5f 61 5f 72 65 67 ┆nds; procedure get_a_reg┆ 0x1ce40…1ce60 5f 6f 70 65 72 61 6e 64 28 6f 70 5f 76 61 6c 75 65 2c 6b 69 6e 64 29 3b 0a 20 20 3c 2a 2a 2a 2a ┆_operand(op_value,kind); <****┆ 0x1ce60…1ce80 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 ┆********************************┆ 0x1ce80…1cea0 2a 2a 2a 2a 2a 3e 0a 20 20 69 6e 74 65 67 65 72 20 6f 70 5f 76 61 6c 75 65 2c 6b 69 6e 64 3b 0a ┆*****> integer op_value,kind; ┆ 0x1cea0…1cec0 20 20 62 65 67 69 6e 0a 20 20 6c 6f 6e 67 20 6c 6f 6f 6b 75 70 5f 69 6e 64 65 78 3b 0a 20 20 20 ┆ begin long lookup_index; ┆ 0x1cec0…1cee0 20 6e 65 78 74 3b 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 6e 75 6d 62 65 72 5f 63 6c 61 ┆ next; if class = number_cla┆ 0x1cee0…1cf00 73 73 20 74 68 65 6e 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 6b 69 6e 64 20 3a 3d 20 6e 75 6d 62 ┆ss then begin kind := numb┆ 0x1cf00…1cf20 65 72 5f 63 6c 61 73 73 3b 0a 20 20 20 6f 70 5f 76 61 6c 75 65 20 3a 3d 20 6e 75 6d 62 65 72 0a ┆er_class; op_value := number ┆ 0x1cf20…1cf40 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 61 70 ┆ end else if class = ap┆ 0x1cf40…1cf60 6f 73 74 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 ┆ost_class then begin ┆ 0x1cf60…1cf80 20 6e 65 78 74 3b 0a 20 20 20 20 20 20 6b 69 6e 64 20 3a 3d 20 30 3b 0a 20 20 20 20 20 20 6f 70 ┆ next; kind := 0; op┆ 0x1cf80…1cfa0 5f 76 61 6c 75 65 20 3a 3d 20 30 3b 0a 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 75 6e ┆_value := 0; if class = un┆ 0x1cfa0…1cfc0 6b 6e 6f 77 6e 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 6f 72 0a 20 20 20 20 20 20 20 20 20 28 63 6c ┆known_name_class or (cl┆ 0x1cfc0…1cfe0 61 73 73 20 3d 20 74 65 78 74 5f 63 6c 61 73 73 20 61 6e 64 20 74 79 70 65 20 3d 20 6c 61 62 65 ┆ass = text_class and type = labe┆ 0x1cfe0…1d000 6c 5f 74 79 70 65 29 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆l_type) then begin ┆ 0x1d000…1d020 20 20 20 20 20 6e 65 77 5f 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 72 65 66 28 6e 61 6d 65 2c 69 ┆ new_insert_label_ref(name,i┆ 0x1d020…1d040 6e 73 74 72 5f 69 6e 64 65 78 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a ┆nstr_index,line_no,element_no); ┆ 0x1d040…1d060 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 3a 3d 20 6e 75 6d 62 65 72 5f 63 6c 61 73 73 3b 0a 20 ┆ kind := number_class; ┆ 0x1d060…1d080 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 ┆ end else ┆ 0x1d080…1d0a0 20 65 72 72 6f 72 28 6f 70 65 72 61 6e 64 5f 74 79 70 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d ┆ error(operand_type,line_no,elem┆ 0x1d0a0…1d0c0 65 6e 74 5f 6e 6f 29 3b 0a 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 62 65 ┆ent_no); end else be┆ 0x1d0c0…1d0e0 67 69 6e 0a 20 20 20 20 20 20 69 66 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c 30 ┆gin if name_table(number,0┆ 0x1d0e0…1d100 29 20 3c 3e 20 72 65 67 5f 6f 70 5f 74 79 70 65 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 ┆) <> reg_op_type then begi┆ 0x1d100…1d120 6e 0a 20 20 20 20 20 20 6b 69 6e 64 20 3a 3d 20 30 3b 0a 20 20 20 20 20 20 65 72 72 6f 72 28 6f ┆n kind := 0; error(o┆ 0x1d120…1d140 70 65 72 61 6e 64 5f 74 79 70 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a ┆perand_type,line_no,element_no) ┆ 0x1d140…1d160 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e ┆ end else begin┆ 0x1d160…1d180 0a 20 20 20 20 20 20 6f 70 5f 76 61 6c 75 65 20 3a 3d 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 ┆ op_value := name_table(nu┆ 0x1d180…1d1a0 6d 62 65 72 2c 32 29 3b 0a 20 20 20 20 20 20 6b 69 6e 64 20 3a 3d 20 74 65 78 74 5f 63 6c 61 73 ┆mber,2); kind := text_clas┆ 0x1d1a0…1d1c0 73 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 20 6f 66 20 ┆s; end; end; end of ┆ 0x1d1c0…1d1e0 67 65 74 5f 61 5f 72 65 67 5f 6f 70 65 72 61 6e 64 3b 0a 0a 0a 0a 0a 20 20 70 72 6f 63 65 64 75 ┆get_a_reg_operand; procedu┆ 0x1d1e0…1d200 72 65 20 20 67 65 74 5f 32 5f 72 65 67 5f 6f 70 65 72 61 6e 64 73 28 6f 70 5f 76 61 6c 75 65 5f ┆re get_2_reg_operands(op_value_┆ 0x1d200…1d220 31 2c 6f 70 5f 76 61 6c 75 65 5f 32 29 3b 0a 20 20 69 6e 74 65 67 65 72 20 6f 70 5f 76 61 6c 75 ┆1,op_value_2); integer op_valu┆ 0x1d220…1d240 65 5f 31 2c 6f 70 5f 76 61 6c 75 65 5f 32 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 6e 74 65 67 65 ┆e_1,op_value_2; begin intege┆ 0x1d240…1d260 72 20 6b 69 6e 64 5f 31 2c 6b 69 6e 64 5f 32 3b 0a 20 20 20 20 67 65 74 5f 61 5f 72 65 67 5f 6f ┆r kind_1,kind_2; get_a_reg_o┆ 0x1d260…1d280 70 65 72 61 6e 64 28 6f 70 5f 76 61 6c 75 65 5f 31 2c 6b 69 6e 64 5f 31 29 3b 0a 20 20 20 20 6e ┆perand(op_value_1,kind_1); n┆ 0x1d280…1d2a0 65 78 74 3b 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3c 3e 20 63 6f 6d 6d 61 5f 63 6c 61 73 73 ┆ext; if class <> comma_class┆ 0x1d2a0…1d2c0 20 74 68 65 6e 20 65 72 72 6f 72 28 64 65 6c 69 6d 69 74 65 72 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c ┆ then error(delimiter,line_no,el┆ 0x1d2c0…1d2e0 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 20 20 20 20 67 65 74 5f 61 5f 72 65 67 5f 6f 70 65 72 61 6e 64 ┆ement_no); get_a_reg_operand┆ 0x1d2e0…1d300 28 6f 70 5f 76 61 6c 75 65 5f 32 2c 6b 69 6e 64 5f 32 29 3b 0a 20 20 65 6e 64 20 6f 66 20 67 65 ┆(op_value_2,kind_2); end of ge┆ 0x1d300…1d320 74 5f 32 5f 72 65 67 5f 6f 70 65 72 61 6e 64 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 20 20 69 6e 74 65 ┆t_2_reg_operands; inte┆ 0x1d320…1d340 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 73 73 3b 0a ┆ger procedure look_ahead_class; ┆ 0x1d340…1d360 20 20 62 65 67 69 6e 0a 20 20 20 20 69 6e 74 65 67 65 72 20 74 6f 3b 20 6c 6f 6e 67 20 6e 61 6d ┆ begin integer to; long nam┆ 0x1d360…1d380 65 2c 6e 75 6d 62 65 72 3b 0a 20 20 20 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 73 73 20 3a ┆e,number; look_ahead_class :┆ 0x1d380…1d3a0 3d 20 67 65 74 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d 65 2c 6e 75 6d 62 65 72 2c 6c 69 6e 65 5f 70 ┆= get_element(name,number,line_p┆ 0x1d3a0…1d3c0 6f 69 6e 74 65 72 2c 74 6f 29 3b 0a 20 20 65 6e 64 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 ┆ointer,to); end look_ahead_cla┆ 0x1d3c0…1d3e0 73 73 3b 0a 0a 0a 0a 20 20 70 72 6f 63 65 64 75 72 65 20 73 6b 69 70 5f 75 6e 74 69 6c 5f 64 65 ┆ss; procedure skip_until_de┆ 0x1d3e0…1d400 6c 69 6d 5f 63 6c 61 73 73 3b 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 66 6f 72 20 63 6c 61 73 73 ┆lim_class; begin for class┆ 0x1d400…1d420 (52,) 3a 3d 72 65 61 64 5f 6b 69 6e 64 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 29 20 77 68 69 6c 65 20 ┆:=read_kind(line_pointer) while ┆ 0x1d420…1d440 63 6c 61 73 73 20 3c 3e 20 64 65 6c 69 6d 5f 63 6c 61 73 73 20 20 0a 20 20 20 20 61 6e 64 20 63 ┆class <> delim_class and c┆ 0x1d440…1d460 6c 61 73 73 20 3c 3e 20 65 6f 66 5f 63 6c 61 73 73 20 0a 20 20 20 20 61 6e 64 20 63 6c 61 73 73 ┆lass <> eof_class and class┆ 0x1d460…1d480 20 3c 3e 20 73 74 6f 70 5f 6c 69 6e 65 5f 63 6c 61 73 73 20 64 6f 0a 20 20 20 20 6c 69 6e 65 5f ┆ <> stop_line_class do line_┆ 0x1d480…1d4a0 70 6f 69 6e 74 65 72 3a 3d 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 2b 20 31 3b 0a 20 20 65 6e 64 ┆pointer:=line_pointer + 1; end┆ 0x1d4a0…1d4c0 20 73 6b 69 70 5f 75 6e 74 69 6c 5f 64 65 6c 69 6d 5f 63 6c 61 73 73 3b 0a 0a 0a 0a 0a 20 20 69 ┆ skip_until_delim_class; i┆ 0x1d4c0…1d4e0 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 67 65 74 5f 6c 6f 6e 67 5f 6e 61 6d 65 28 6c ┆nteger procedure get_long_name(l┆ 0x1d4e0…1d500 6f 6e 67 5f 6e 61 6d 65 29 3b 0a 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 6c 6f 6e 67 5f 6e 61 6d ┆ong_name); long array long_nam┆ 0x1d500…1d520 65 3b 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 69 6e 74 65 67 65 72 20 63 6c 61 73 73 2c 74 6f 3b ┆e; begin integer class,to;┆ 0x1d520…1d540 0a 20 20 20 20 6c 6f 6e 67 20 6e 61 6d 65 2c 6e 75 6d 62 65 72 3b 0a 20 20 20 20 63 6c 61 73 73 ┆ long name,number; class┆ 0x1d540…1d560 20 3a 3d 20 67 65 74 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d 65 2c 6e 75 6d 62 65 72 2c 6c 69 6e 65 ┆ := get_element(name,number,line┆ 0x1d560…1d580 5f 70 6f 69 6e 74 65 72 2c 74 6f 29 3b 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 75 6e 6b ┆_pointer,to); if class = unk┆ 0x1d580…1d5a0 6e 6f 77 6e 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 6f 72 20 63 6c 61 73 73 20 3d 20 74 65 78 74 5f ┆nown_name_class or class = text_┆ 0x1d5a0…1d5c0 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 67 65 74 5f 6c ┆class then begin get_l┆ 0x1d5c0…1d5e0 6f 6e 67 5f 6e 61 6d 65 20 3a 3d 20 31 3b 0a 20 20 20 20 20 20 6c 6f 6e 67 5f 6e 61 6d 65 28 31 ┆ong_name := 1; long_name(1┆ 0x1d5e0…1d600 29 20 3a 3d 20 6e 61 6d 65 3b 0a 20 20 20 20 20 20 6c 6f 6e 67 5f 6e 61 6d 65 28 32 29 20 3a 3d ┆) := name; long_name(2) :=┆ 0x1d600…1d620 20 30 3b 0a 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 63 6c 61 73 ┆ 0; end else if clas┆ 0x1d620…1d640 73 20 3d 20 6c 6f 6e 67 5f 74 65 78 74 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 62 65 67 ┆s = long_text_class then beg┆ 0x1d640…1d660 69 6e 0a 20 20 20 20 20 20 6c 6f 6e 67 5f 6e 61 6d 65 28 31 29 20 3a 3d 20 72 65 61 64 5f 76 61 ┆in long_name(1) := read_va┆ 0x1d660…1d680 6c 75 65 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 29 3b 0a 20 20 20 20 20 20 6c 6f 6e 67 5f 6e 61 ┆lue(line_pointer); long_na┆ 0x1d680…1d6a0 6d 65 28 32 29 20 3a 3d 20 72 65 61 64 5f 76 61 6c 75 65 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 ┆me(2) := read_value(line_pointer┆ 0x1d6a0…1d6c0 20 2b 20 32 29 3b 0a 20 20 20 20 20 20 67 65 74 5f 6c 6f 6e 67 5f 6e 61 6d 65 20 3a 3d 20 20 69 ┆ + 2); get_long_name := i┆ 0x1d6c0…1d6e0 66 20 72 65 61 64 5f 6b 69 6e 64 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 2b 20 33 20 29 20 3d ┆f read_kind(line_pointer + 3 ) =┆ 0x1d6e0…1d700 20 74 65 78 74 5f 63 6c 61 73 73 20 0a 20 20 20 20 20 20 74 68 65 6e 20 2d 32 20 65 6c 73 65 20 ┆ text_class then -2 else ┆ 0x1d700…1d720 32 3b 0a 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 67 65 74 5f 6c 6f 6e 67 ┆2; end else get_long┆ 0x1d720…1d740 5f 6e 61 6d 65 20 3a 3d 20 30 3b 0a 20 20 65 6e 64 20 67 65 74 5f 6c 6f 6e 67 5f 6e 61 6d 65 3b ┆_name := 0; end get_long_name;┆ 0x1d740…1d760 0a 0a 20 20 3c 2a 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 72 6f 63 65 64 75 72 65 73 20 ┆ <* the following procedures ┆ 0x1d760…1d780 75 73 65 73 20 67 65 74 6e 65 78 74 20 65 6c 65 6d 65 6e 74 0a 20 20 20 20 20 74 6f 20 67 65 74 ┆uses getnext element to get┆ 0x1d780…1d7a0 20 6e 65 78 74 20 65 6c 65 6d 65 6e 74 20 69 6e 74 6f 20 0a 20 20 20 20 20 63 6c 61 73 73 2c 6e ┆ next element into class,n┆ 0x1d7a0…1d7c0 61 6d 65 2c 6e 75 6d 62 65 72 2c 74 79 70 65 0a 20 20 20 20 20 63 6c 61 73 73 31 2c 6e 61 6d 65 ┆ame,number,type class1,name┆ 0x1d7c0…1d7e0 31 2c 6e 75 6d 62 65 72 31 2c 74 79 70 65 32 0a 20 20 20 20 20 63 6c 61 73 73 32 2c 6e 61 6d 65 ┆1,number1,type2 class2,name┆ 0x1d7e0…1d800 32 2c 6e 75 6d 62 65 72 32 2c 74 79 70 65 32 20 2a 3e 0a 0a 20 20 69 6e 74 65 67 65 72 20 70 72 ┆2,number2,type2 *> integer pr┆ 0x1d800…1d820 6f 63 65 64 75 72 65 20 6e 65 78 74 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6e 65 78 74 20 3a 3d 20 ┆ocedure next; begin next := ┆ 0x1d820…1d840 63 6c 61 73 73 20 3a 3d 20 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d 65 2c 6e ┆class := get_next_element(name,n┆ 0x1d840…1d860 75 6d 62 65 72 29 3b 0a 20 20 74 79 70 65 20 3a 3d 20 69 66 20 63 6c 61 73 73 20 3d 20 74 65 78 ┆umber); type := if class = tex┆ 0x1d860…1d880 74 5f 63 6c 61 73 73 20 74 68 65 6e 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c 30 ┆t_class then name_table(number,0┆ 0x1d880…1d8a0 29 20 65 6c 73 65 20 63 6c 61 73 73 3b 0a 20 20 65 6e 64 20 6e 65 78 74 3b 0a 0a 20 20 69 6e 74 ┆) else class; end next; int┆ 0x1d8a0…1d8c0 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 6e 65 78 74 31 3b 0a 20 20 62 65 67 69 6e 0a 20 20 ┆eger procedure next1; begin ┆ 0x1d8c0…1d8e0 6e 65 78 74 31 20 3a 3d 20 63 6c 61 73 73 31 20 3a 3d 20 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d ┆next1 := class1 := get_next_elem┆ 0x1d8e0…1d900 65 6e 74 28 6e 61 6d 65 31 2c 6e 75 6d 62 65 72 31 29 3b 0a 20 20 74 79 70 65 31 20 3a 3d 20 69 ┆ent(name1,number1); type1 := i┆ 0x1d900…1d920 66 20 63 6c 61 73 73 31 20 3d 20 74 65 78 74 5f 63 6c 61 73 73 20 20 74 68 65 6e 20 6e 61 6d 65 ┆f class1 = text_class then name┆ 0x1d920…1d940 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c 30 29 20 65 6c 73 65 20 63 6c 61 73 73 31 3b 0a 20 20 ┆_table(number,0) else class1; ┆ 0x1d940…1d960 65 6e 64 20 6e 65 78 74 31 3b 0a 0a 20 20 69 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 ┆end next1; integer procedure ┆ 0x1d960…1d980 6e 65 78 74 32 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6e 65 78 74 32 3a 3d 63 6c 61 73 73 32 3a 3d ┆next2; begin next2:=class2:=┆ 0x1d980…1d9a0 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d 65 32 2c 6e 75 6d 62 65 72 32 29 3b ┆get_next_element(name2,number2);┆ 0x1d9a0…1d9c0 0a 20 20 74 79 70 65 32 20 3a 3d 20 69 66 20 63 6c 61 73 73 32 20 3d 20 74 65 78 74 5f 63 6c 61 ┆ type2 := if class2 = text_cla┆ 0x1d9c0…1d9e0 73 73 20 74 68 65 6e 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c 30 29 20 65 6c 73 ┆ss then name_table(number,0) els┆ 0x1d9e0…1da00 65 20 63 6c 61 73 73 32 3b 0a 20 20 65 6e 64 20 6e 65 78 74 32 3b 0a 0a 20 20 69 6e 74 65 67 65 ┆e class2; end next2; intege┆ 0x1da00…1da20 72 20 70 72 6f 63 65 64 75 72 65 20 73 6b 69 70 5f 6e 65 78 74 3b 0a 20 20 62 65 67 69 6e 0a 20 ┆r procedure skip_next; begin ┆ 0x1da20…1da40 20 6c 6f 6e 67 20 64 75 6d 6d 79 6e 61 6d 65 2c 64 75 6d 6d 79 6e 75 6d 62 65 72 3b 0a 20 20 73 ┆ long dummyname,dummynumber; s┆ 0x1da40…1da60 6b 69 70 5f 6e 65 78 74 3a 3d 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 28 64 75 6d 6d 79 ┆kip_next:=get_next_element(dummy┆ 0x1da60…1da80 6e 61 6d 65 2c 64 75 6d 6d 79 6e 75 6d 62 65 72 29 3b 0a 20 20 65 6e 64 20 73 6b 69 70 5f 6e 65 ┆name,dummynumber); end skip_ne┆ 0x1da80…1daa0 78 74 3b 0a 0a 20 20 69 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 6c 6f 6f 6b 3b 0a 20 ┆xt; integer procedure look; ┆ 0x1daa0…1dac0 20 62 65 67 69 6e 0a 20 20 6c 6f 6f 6b 20 3a 3d 20 63 6c 61 73 73 20 3a 3d 20 6c 6f 6f 6b 5f 61 ┆ begin look := class := look_a┆ 0x1dac0…1dae0 68 65 61 64 5f 63 6c 61 73 73 3b 0a 20 20 65 6e 64 20 6c 6f 6f 6b 3b 0a 0a 20 20 69 6e 74 65 67 ┆head_class; end look; integ┆ 0x1dae0…1db00 65 72 20 70 72 6f 63 65 64 75 72 65 20 6c 6f 6f 6b 31 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6c 6f ┆er procedure look1; begin lo┆ 0x1db00…1db20 6f 6b 31 20 3a 3d 20 63 6c 61 73 73 31 20 3a 3d 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 73 ┆ok1 := class1 := look_ahead_clas┆ 0x1db20…1db40 73 3b 0a 20 20 65 6e 64 20 6c 6f 6f 6b 31 3b 0a 0a 20 20 69 6e 74 65 67 65 72 20 70 72 6f 63 65 ┆s; end look1; integer proce┆ 0x1db40…1db60 64 75 72 65 20 6c 6f 6f 6b 32 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6c 6f 6f 6b 32 3a 3d 20 63 6c ┆dure look2; begin look2:= cl┆ 0x1db60…1db80 61 73 73 32 20 3a 3d 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 73 73 3b 0a 20 20 65 6e 64 20 ┆ass2 := look_ahead_class; end ┆ 0x1db80…1dba0 6c 6f 6f 6b 32 3b 0a 0a 0a 0a 0a 0a 0a 0a 20 20 69 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 ┆look2; integer procedur┆ 0x1dba0…1dbc0 65 20 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d 65 2c 6e 75 6d 62 65 72 29 3b ┆e get_next_element(name,number);┆ 0x1dbc0…1dbe0 0a 20 20 6c 6f 6e 67 20 6e 61 6d 65 2c 6e 75 6d 62 65 72 3b 0a 20 20 62 65 67 69 6e 0a 20 20 20 ┆ long name,number; begin ┆ 0x1dbe0…1dc00 20 69 6e 74 65 67 65 72 20 74 6f 2c 74 65 73 74 63 6c 61 73 73 3b 3b 0a 20 20 20 20 67 65 74 5f ┆ integer to,testclass;; get_┆ 0x1dc00…1dc20 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 20 74 65 73 74 63 6c 61 73 73 20 3a 3d 20 67 65 74 ┆next_element := testclass := get┆ 0x1dc20…1dc40 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d 65 2c 6e 75 6d 62 65 72 2c 6c 69 6e 65 5f 70 6f 69 6e 74 65 ┆_element(name,number,line_pointe┆ 0x1dc40…1dc60 72 2c 74 6f 29 3b 0a 20 20 20 20 69 66 20 74 65 73 74 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 ┆r,to); if test then begi┆ 0x1dc60…1dc80 6e 0a 20 20 20 20 20 20 69 6e 74 65 67 65 72 20 69 3b 0a 20 20 20 20 20 20 77 72 69 74 65 28 6f ┆n integer i; write(o┆ 0x1dc80…1dca0 75 74 2c 3c 3a 3c 31 30 3e 2a 2a 2a 20 74 65 73 74 63 6c 61 73 73 3a 20 3a 3e 2c 3c 3c 5f 64 64 ┆ut,<:<10>*** testclass: :>,<<_dd┆ 0x1dca0…1dcc0 3e 2c 74 65 73 74 5f 63 6c 61 73 73 2c 6c 69 6e 65 70 6f 69 6e 74 65 72 2c 74 6f 2c 0a 20 20 20 ┆>,test_class,linepointer,to, ┆ 0x1dcc0…1dce0 20 20 20 3c 3a 20 72 6b 69 6e 64 3a 20 3a 3e 29 3b 0a 20 20 20 20 20 20 66 6f 72 20 69 3a 3d 31 ┆ <: rkind: :>); for i:=1┆ 0x1dce0…1dd00 20 73 74 65 70 20 31 20 75 6e 74 69 6c 20 6e 6f 5f 6f 66 5f 65 6c 65 6d 65 6e 74 73 20 64 6f 0a ┆ step 1 until no_of_elements do ┆ 0x1dd00…1dd20 (53,) 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 3c 3c 5f 64 64 3e 2c 72 65 61 64 5f 6b 69 6e 64 ┆ write(out,<<_dd>,read_kind┆ 0x1dd20…1dd40 28 69 29 29 3b 0a 20 20 20 20 65 6e 64 20 74 65 73 74 3b 0a 20 20 20 20 65 6c 65 6d 65 6e 74 5f ┆(i)); end test; element_┆ 0x1dd40…1dd60 6e 6f 3a 3d 65 6c 65 6d 65 6e 74 5f 6e 6f 2b 31 3b 0a 20 20 20 20 6c 69 6e 65 5f 70 6f 69 6e 74 ┆no:=element_no+1; line_point┆ 0x1dd60…1dd80 65 72 20 3a 3d 20 69 66 20 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 3d 20 6e 6f 5f 6f 66 5f 65 6c ┆er := if line_pointer = no_of_el┆ 0x1dd80…1dda0 65 6d 65 6e 74 73 20 74 68 65 6e 20 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 65 6c 73 65 20 74 6f ┆ements then line_pointer else to┆ 0x1dda0…1ddc0 3b 0a 20 20 65 6e 64 20 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 3b 0a 0a 0a 0a 20 20 69 ┆; end get_next_element; i┆ 0x1ddc0…1dde0 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 67 65 74 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d ┆nteger procedure get_element(nam┆ 0x1dde0…1de00 65 2c 6e 75 6d 62 65 72 2c 66 72 6f 6d 2c 74 6f 29 3b 0a 20 20 76 61 6c 75 65 20 66 72 6f 6d 3b ┆e,number,from,to); value from;┆ 0x1de00…1de20 20 69 6e 74 65 67 65 72 20 66 72 6f 6d 2c 74 6f 3b 20 6c 6f 6e 67 20 6e 61 6d 65 2c 6e 75 6d 62 ┆ integer from,to; long name,numb┆ 0x1de20…1de40 65 72 3b 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 69 6e 74 65 67 65 72 20 63 6c 61 73 73 3b 0a 20 ┆er; begin integer class; ┆ 0x1de40…1de60 20 20 20 66 6f 72 20 63 6c 61 73 73 3a 3d 72 65 61 64 5f 6b 69 6e 64 28 66 72 6f 6d 29 20 77 68 ┆ for class:=read_kind(from) wh┆ 0x1de60…1de80 69 6c 65 20 63 6c 61 73 73 20 3d 20 64 65 6c 69 6d 5f 63 6c 61 73 73 20 64 6f 0a 20 20 20 20 66 ┆ile class = delim_class do f┆ 0x1de80…1dea0 72 6f 6d 20 3a 3d 20 66 72 6f 6d 20 2b 20 31 3b 0a 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d ┆rom := from + 1; if class =┆ 0x1dea0…1dec0 20 36 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 72 65 61 64 5f ┆ 6 then begin if read_┆ 0x1dec0…1dee0 6b 69 6e 64 28 66 72 6f 6d 2b 31 29 20 3c 3e 20 36 20 6f 72 0a 20 20 20 20 20 20 28 20 72 65 61 ┆kind(from+1) <> 6 or ( rea┆ 0x1dee0…1df00 64 5f 6b 69 6e 64 28 66 72 6f 6d 2b 31 29 20 3d 20 36 20 61 6e 64 20 72 65 61 64 5f 76 61 6c 75 ┆d_kind(from+1) = 6 and read_valu┆ 0x1df00…1df20 65 28 66 72 6f 6d 2b 31 29 20 3d 20 30 29 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a ┆e(from+1) = 0) then begin ┆ 0x1df20…1df40 20 20 20 20 20 20 20 20 3c 2a 20 73 68 6f 72 74 20 74 65 78 74 20 2a 3e 0a 20 20 20 20 20 20 20 ┆ <* short text *> ┆ 0x1df40…1df60 20 6e 61 6d 65 20 3a 3d 20 72 65 61 64 5f 76 61 6c 75 65 28 66 72 6f 6d 29 3b 0a 20 20 20 20 20 ┆ name := read_value(from); ┆ 0x1df60…1df80 20 20 20 69 66 20 6e 61 6d 65 20 3d 20 66 69 6e 64 5f 6e 61 6d 65 28 31 29 20 74 68 65 6e 20 66 ┆ if name = find_name(1) then f┆ 0x1df80…1dfa0 6f 75 6e 64 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 5f 75 70 ┆ound := true; if look_up┆ 0x1dfa0…1dfc0 5f 6e 61 6d 65 28 6e 61 6d 65 5f 74 61 62 6c 65 2c 6e 61 6d 65 2c 6e 75 6d 62 65 72 29 20 74 68 ┆_name(name_table,name,number) th┆ 0x1dfc0…1dfe0 65 6e 0a 20 20 20 20 20 20 20 20 67 65 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 20 36 20 65 6c 73 65 ┆en get_element := 6 else┆ 0x1dfe0…1e000 20 67 65 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 20 39 3b 0a 0a 0a 20 20 20 20 20 20 65 6e 64 0a 20 ┆ get_element := 9; end ┆ 0x1e000…1e020 20 20 20 20 20 65 6c 73 65 20 67 65 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 20 37 3b 0a 20 20 20 20 ┆ else get_element := 7; ┆ 0x1e020…1e040 20 20 3c 2a 20 73 6b 69 70 20 74 6f 20 31 2e 20 6e 6f 74 20 74 65 78 74 20 65 6c 65 6d 65 6e 74 ┆ <* skip to 1. not text element┆ 0x1e040…1e060 20 2a 3e 0a 20 20 20 20 20 20 66 72 6f 6d 20 3a 3d 20 66 72 6f 6d 2b 31 3b 0a 20 20 20 20 20 20 ┆ *> from := from+1; ┆ 0x1e060…1e080 66 6f 72 20 63 6c 61 73 73 20 3a 3d 20 72 65 61 64 5f 6b 69 6e 64 28 66 72 6f 6d 29 20 77 68 69 ┆for class := read_kind(from) whi┆ 0x1e080…1e0a0 6c 65 20 63 6c 61 73 73 20 3d 20 36 20 64 6f 0a 20 20 20 20 20 20 66 72 6f 6d 20 3a 3d 20 66 72 ┆le class = 6 do from := fr┆ 0x1e0a0…1e0c0 6f 6d 2b 31 3b 0a 20 20 20 20 20 20 74 6f 20 3a 3d 20 66 72 6f 6d 3b 0a 20 20 20 20 65 6e 64 0a ┆om+1; to := from; end ┆ 0x1e0c0…1e0e0 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 70 6c 75 73 5f 63 6c 61 ┆ else if class = plus_cla┆ 0x1e0e0…1e100 73 73 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 67 65 74 5f 69 ┆ss then begin if get_i┆ 0x1e100…1e120 6e 74 65 67 65 72 28 6e 75 6d 62 65 72 2c 66 72 6f 6d 2b 31 2c 74 6f 29 20 74 68 65 6e 20 67 65 ┆nteger(number,from+1,to) then ge┆ 0x1e120…1e140 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 20 32 0a 0a 20 20 20 20 20 20 65 6c 73 65 20 67 65 74 5f 65 ┆t_element := 2 else get_e┆ 0x1e140…1e160 6c 65 6d 65 6e 74 20 3a 3d 20 31 3b 0a 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 ┆lement := 1; end else ┆ 0x1e160…1e180 20 20 69 66 20 63 6c 61 73 73 20 3d 20 6d 69 6e 75 73 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 ┆ if class = minus_class then ┆ 0x1e180…1e1a0 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 67 65 74 5f 69 6e 74 65 67 65 72 28 6e 75 6d ┆ begin if get_integer(num┆ 0x1e1a0…1e1c0 62 65 72 2c 66 72 6f 6d 2b 31 2c 74 6f 29 20 74 68 65 6e 20 67 65 74 5f 65 6c 65 6d 65 6e 74 3a ┆ber,from+1,to) then get_element:┆ 0x1e1c0…1e1e0 3d 32 0a 20 20 20 20 20 20 65 6c 73 65 20 67 65 74 5f 65 6c 65 6d 65 6e 74 3a 3d 31 3b 0a 20 20 ┆=2 else get_element:=1; ┆ 0x1e1e0…1e200 20 20 20 20 6e 75 6d 62 65 72 3a 3d 20 6e 75 6d 62 65 72 2a 28 2d 31 29 3b 0a 20 20 20 20 65 6e ┆ number:= number*(-1); en┆ 0x1e200…1e220 64 20 65 6c 73 65 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 32 20 74 68 65 6e 0a 20 20 20 ┆d else if class = 2 then ┆ 0x1e220…1e240 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 67 65 74 5f 69 6e 74 65 67 65 72 28 6e 75 6d 62 ┆ begin if get_integer(numb┆ 0x1e240…1e260 65 72 2c 66 72 6f 6d 2c 74 6f 29 20 74 68 65 6e 20 67 65 74 5f 65 6c 65 6d 65 6e 74 3a 3d 32 0a ┆er,from,to) then get_element:=2 ┆ 0x1e260…1e280 20 20 20 20 20 20 65 6c 73 65 20 67 65 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 20 31 3b 0a 20 20 20 ┆ else get_element := 1; ┆ 0x1e280…1e2a0 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 73 74 6f ┆ end else if class = sto┆ 0x1e2a0…1e2c0 70 5f 6c 69 6e 65 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆p_line_class then begin ┆ 0x1e2c0…1e2e0 20 20 6e 75 6d 62 65 72 20 3a 3d 20 72 65 61 64 5f 76 61 6c 75 65 28 66 72 6f 6d 29 3b 0a 20 20 ┆ number := read_value(from); ┆ 0x1e2e0…1e300 20 20 20 20 69 66 20 6e 75 6d 62 65 72 20 65 78 74 72 61 63 74 20 32 34 20 3d 20 32 35 20 3c 2a ┆ if number extract 24 = 25 <*┆ 0x1e300…1e320 20 65 6f 66 20 76 61 6c 75 65 20 2a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 67 65 74 5f 65 6c 65 ┆ eof value *> then get_ele┆ 0x1e320…1e340 6d 65 6e 74 20 3a 3d 20 65 6f 66 5f 63 6c 61 73 73 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 ┆ment := eof_class else ┆ 0x1e340…1e360 20 20 20 67 65 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 63 6c 61 73 73 3b 0a 20 20 20 20 20 20 74 6f ┆ get_element :=class; to┆ 0x1e360…1e380 20 3a 3d 66 72 6f 6d 2b 31 3b 0a 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 62 65 67 69 ┆ :=from+1; end else begi┆ 0x1e380…1e3a0 6e 0a 20 20 20 20 20 20 6e 75 6d 62 65 72 3a 3d 72 65 61 64 5f 76 61 6c 75 65 28 66 72 6f 6d 29 ┆n number:=read_value(from)┆ 0x1e3a0…1e3c0 3b 0a 20 20 20 20 20 20 74 6f 20 3a 3d 20 66 72 6f 6d 2b 31 3b 0a 20 20 20 20 20 20 67 65 74 5f ┆; to := from+1; get_┆ 0x1e3c0…1e3e0 65 6c 65 6d 65 6e 74 20 3a 3d 20 63 6c 61 73 73 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 ┆element := class; end; end┆ 0x1e3e0…1e400 20 67 65 74 5f 65 6c 65 6d 65 6e 74 3b 0a 0a 0a 20 20 62 6f 6f 6c 65 61 6e 20 70 72 6f 63 65 64 ┆ get_element; boolean proced┆ 0x1e400…1e420 75 72 65 20 67 65 74 5f 69 6e 74 65 67 65 72 28 6e 75 6d 62 65 72 2c 66 72 6f 6d 2c 74 6f 29 3b ┆ure get_integer(number,from,to);┆ 0x1e420…1e440 0a 20 20 76 61 6c 75 65 20 66 72 6f 6d 3b 20 69 6e 74 65 67 65 72 20 66 72 6f 6d 2c 74 6f 3b 20 ┆ value from; integer from,to; ┆ 0x1e440…1e460 6c 6f 6e 67 20 6e 75 6d 62 65 72 3b 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 6c 6f 6e 67 20 62 61 ┆long number; begin long ba┆ 0x1e460…1e480 73 65 3b 0a 20 20 20 20 69 66 20 72 65 61 64 5f 6b 69 6e 64 28 66 72 6f 6d 29 3c 3e 20 32 20 74 ┆se; if read_kind(from)<> 2 t┆ 0x1e480…1e4a0 68 65 6e 20 67 65 74 5f 69 6e 74 65 67 65 72 3a 3d 66 61 6c 73 65 0a 20 20 20 20 65 6c 73 65 0a ┆hen get_integer:=false else ┆ 0x1e4a0…1e4c0 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 72 65 61 64 5f 6b 69 6e 64 28 66 72 6f ┆ begin if read_kind(fro┆ 0x1e4c0…1e4e0 6d 2b 31 29 20 3d 20 70 65 72 69 6f 64 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 ┆m+1) = period_class then b┆ 0x1e4e0…1e500 65 67 69 6e 0a 20 20 20 20 20 20 20 20 62 61 73 65 3a 3d 72 65 61 64 5f 76 61 6c 75 65 28 66 72 ┆egin base:=read_value(fr┆ 0x1e500…1e520 6f 6d 29 3b 0a 20 20 20 20 20 20 20 20 66 72 6f 6d 3a 3d 66 72 6f 6d 2b 32 3b 0a 20 20 20 20 20 ┆om); from:=from+2; ┆ 0x1e520…1e540 20 20 20 69 66 20 72 65 61 64 5f 6b 69 6e 64 28 66 72 6f 6d 29 20 3c 3e 20 32 20 74 68 65 6e 0a ┆ if read_kind(from) <> 2 then ┆ 0x1e540…1e560 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 67 65 74 5f 69 6e 74 65 ┆ begin get_inte┆ 0x1e560…1e580 67 65 72 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 74 6f 20 3a 3d 20 66 72 ┆ger := false; to := fr┆ 0x1e580…1e5a0 6f 6d 2d 31 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 62 ┆om-1; end else b┆ 0x1e5a0…1e5c0 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 3a 3d 72 65 61 64 5f 76 61 6c 75 ┆egin number:=read_valu┆ 0x1e5c0…1e5e0 65 28 66 72 6f 6d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 67 65 74 5f 69 6e 74 65 67 65 72 3a 3d ┆e(from); get_integer:=┆ 0x1e5e0…1e600 62 61 73 65 5f 63 6f 6e 76 65 72 74 28 62 61 73 65 2c 6e 75 6d 62 65 72 29 3b 0a 20 20 20 20 20 ┆base_convert(base,number); ┆ 0x1e600…1e620 (54,) 20 20 20 20 74 6f 20 3a 3d 20 66 72 6f 6d 20 2b 20 31 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b ┆ to := from + 1; end;┆ 0x1e620…1e640 0a 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆ end else begin ┆ 0x1e640…1e660 20 20 20 20 6e 75 6d 62 65 72 3a 3d 72 65 61 64 5f 76 61 6c 75 65 28 66 72 6f 6d 29 3b 0a 20 20 ┆ number:=read_value(from); ┆ 0x1e660…1e680 20 20 20 20 20 20 67 65 74 5f 69 6e 74 65 67 65 72 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 ┆ get_integer := true; ┆ 0x1e680…1e6a0 20 20 20 74 6f 20 3a 3d 20 66 72 6f 6d 20 2b 20 31 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 ┆ to := from + 1; end; ┆ 0x1e6a0…1e6c0 20 20 65 6e 64 3b 0a 20 20 65 6e 64 20 67 65 74 5f 69 6e 74 65 67 65 72 3b 0a 0a 0a 20 20 62 6f ┆ end; end get_integer; bo┆ 0x1e6c0…1e6e0 6f 6c 65 61 6e 20 70 72 6f 63 65 64 75 72 65 20 62 61 73 65 5f 63 6f 6e 76 65 72 74 28 62 61 73 ┆olean procedure base_convert(bas┆ 0x1e6e0…1e700 65 2c 6e 75 6d 62 65 72 29 3b 0a 20 20 6c 6f 6e 67 20 62 61 73 65 2c 6e 75 6d 62 65 72 3b 0a 20 ┆e,number); long base,number; ┆ 0x1e700…1e720 20 62 65 67 69 6e 0a 20 20 20 20 69 6e 74 65 67 65 72 20 73 68 69 66 74 5f 69 6e 64 65 78 3b 20 ┆ begin integer shift_index; ┆ 0x1e720…1e740 6c 6f 6e 67 20 6e 75 6d 62 65 72 31 2c 6e 75 6d 62 65 72 32 3b 0a 20 20 20 20 6e 75 6d 62 65 72 ┆long number1,number2; number┆ 0x1e740…1e760 32 3a 3d 30 3b 20 73 68 69 66 74 5f 69 6e 64 65 78 20 3a 3d 30 3b 0a 20 20 20 20 62 61 73 65 5f ┆2:=0; shift_index :=0; base_┆ 0x1e760…1e780 63 6f 6e 76 65 72 74 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 69 66 20 62 61 73 65 20 3d 20 38 ┆convert := true; if base = 8┆ 0x1e780…1e7a0 20 74 68 65 6e 20 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 66 6f 72 20 6e 75 6d 62 65 ┆ then begin for numbe┆ 0x1e7a0…1e7c0 72 31 20 3a 3d 20 6e 75 6d 62 65 72 20 6d 6f 64 20 31 30 20 77 68 69 6c 65 20 6e 75 6d 62 65 72 ┆r1 := number mod 10 while number┆ 0x1e7c0…1e7e0 20 3c 3e 20 30 20 64 6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 6e 75 6d ┆ <> 0 do begin num┆ 0x1e7e0…1e800 62 65 72 20 3a 3d 20 6e 75 6d 62 65 72 20 2f 2f 20 31 30 3b 0a 20 20 20 20 20 20 20 20 69 66 20 ┆ber := number // 10; if ┆ 0x1e800…1e820 6e 75 6d 62 65 72 31 3e 37 20 6f 72 20 6e 75 6d 62 65 72 31 20 3c 20 30 20 74 68 65 6e 20 62 61 ┆number1>7 or number1 < 0 then ba┆ 0x1e820…1e840 73 65 5f 63 6f 6e 76 65 72 74 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 6e 75 6d ┆se_convert := false; num┆ 0x1e840…1e860 62 65 72 32 3a 3d 6e 75 6d 62 65 72 32 20 2b 20 6e 75 6d 62 65 72 31 20 73 68 69 66 74 20 73 68 ┆ber2:=number2 + number1 shift sh┆ 0x1e860…1e880 69 66 74 5f 69 6e 64 65 78 3b 0a 20 20 20 20 20 20 20 20 73 68 69 66 74 5f 69 6e 64 65 78 20 3a ┆ift_index; shift_index :┆ 0x1e880…1e8a0 3d 20 73 68 69 66 74 5f 69 6e 64 65 78 2b 33 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 ┆= shift_index+3; end; ┆ 0x1e8a0…1e8c0 20 20 6e 75 6d 62 65 72 20 3a 3d 20 6e 75 6d 62 65 72 32 3b 0a 20 20 20 20 65 6e 64 20 65 6c 73 ┆ number := number2; end els┆ 0x1e8c0…1e8e0 65 20 62 61 73 65 5f 63 6f 6e 76 65 72 74 3a 3d 66 61 6c 73 65 3b 0a 20 20 65 6e 64 20 62 61 73 ┆e base_convert:=false; end bas┆ 0x1e8e0…1e900 65 5f 63 6f 6e 76 65 72 74 3b 0a 20 20 62 6f 6f 6c 65 61 6e 20 70 72 6f 63 65 64 75 72 65 20 72 ┆e_convert; boolean procedure r┆ 0x1e900…1e920 65 61 64 5f 61 6e 64 5f 73 65 74 5f 62 69 74 73 28 6f 70 65 72 61 6e 64 29 3b 0a 20 20 3c 2a 2a ┆ead_and_set_bits(operand); <**┆ 0x1e920…1e940 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 ┆********************************┆ 0x1e940…1e960 2a 2a 2a 2a 2a 2a 2a 2a 3e 0a 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 6f 70 65 72 61 6e 64 3b 0a ┆********> long array operand; ┆ 0x1e960…1e980 20 20 62 65 67 69 6e 0a 20 20 62 6f 6f 6c 65 61 6e 20 65 72 72 6f 72 3b 0a 20 20 65 72 72 6f 72 ┆ begin boolean error; error┆ 0x1e980…1e9a0 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 0a 20 20 72 65 70 65 61 74 0a 20 20 20 20 62 65 67 69 6e ┆ := false; repeat begin┆ 0x1e9a0…1e9c0 0a 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 6c 65 66 74 5f 70 ┆ next; if class = left_p┆ 0x1e9c0…1e9e0 61 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 ┆ar_class then begin ┆ 0x1e9e0…1ea00 69 66 20 6e 65 78 74 31 20 3c 3e 20 6e 75 6d 62 65 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 ┆if next1 <> number_class then ┆ 0x1ea00…1ea20 20 20 20 20 20 20 65 72 72 6f 72 20 3a 3d 20 74 72 75 65 0a 20 20 20 20 20 20 20 65 6c 73 65 0a ┆ error := true else ┆ 0x1ea20…1ea40 20 20 20 20 20 20 69 66 20 6e 65 78 74 3c 3e 20 63 6f 6c 6f 6e 5f 63 6c 61 73 73 20 74 68 65 6e ┆ if next<> colon_class then┆ 0x1ea40…1ea60 0a 20 20 20 20 20 20 20 20 65 72 72 6f 72 20 3a 3d 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 65 ┆ error := true e┆ 0x1ea60…1ea80 6c 73 65 0a 20 20 20 20 20 20 69 66 20 6e 65 78 74 32 20 3c 3e 20 6e 75 6d 62 65 72 5f 63 6c 61 ┆lse if next2 <> number_cla┆ 0x1ea80…1eaa0 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 65 72 72 6f 72 20 3a 3d 20 74 72 75 65 0a 20 20 ┆ss then error := true ┆ 0x1eaa0…1eac0 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 69 66 20 6e 65 78 74 20 3c 3e 20 72 69 67 68 74 ┆ else if next <> right┆ 0x1eac0…1eae0 5f 70 61 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 65 72 72 6f 72 20 3a 3d 20 ┆_par_class then error := ┆ 0x1eae0…1eb00 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 69 66 20 6e 75 6d 62 65 72 5f 31 20 3c 3d 20 6e 75 6d ┆true; if number_1 <= num┆ 0x1eb00…1eb20 62 65 72 5f 32 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 5f 31 20 3e 3d ┆ber_2 and number_1 >=┆ 0x1eb20…1eb40 20 30 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 5f 32 20 3c 3d 20 6e 6f ┆ 0 and number_2 <= no┆ 0x1eb40…1eb60 5f 6f 66 5f 62 69 74 73 5f 69 6e 5f 63 6f 64 65 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 ┆_of_bits_in_code and ┆ 0x1eb60…1eb80 2d 2c 20 65 72 72 6f 72 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 20 3a ┆-, error then error :┆ 0x1eb80…1eba0 3d 20 2d 2c 20 73 65 74 5f 62 69 74 73 28 6f 70 65 72 61 6e 64 2c 6e 75 6d 62 65 72 31 20 65 78 ┆= -, set_bits(operand,number1 ex┆ 0x1eba0…1ebc0 74 72 61 63 74 20 32 34 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 ┆tract 24, nu┆ 0x1ebc0…1ebe0 6d 62 65 72 32 20 65 78 74 72 61 63 74 20 32 34 29 0a 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 ┆mber2 extract 24) else ┆ 0x1ebe0…1ec00 65 72 72 6f 72 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 6e 65 78 74 3b 0a 0a 20 20 20 ┆error := true; next; ┆ 0x1ec00…1ec20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 6e 75 6d 62 ┆ end else if class = numb┆ 0x1ec20…1ec40 65 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 69 66 ┆er_class then begin if┆ 0x1ec40…1ec60 20 6e 75 6d 62 65 72 20 3e 3d 20 30 20 61 6e 64 20 20 6e 75 6d 62 65 72 20 3c 3d 20 6e 6f 5f 6f ┆ number >= 0 and number <= no_o┆ 0x1ec60…1ec80 66 5f 62 69 74 73 5f 69 6e 5f 63 6f 64 65 20 74 68 65 6e 0a 20 20 20 20 20 65 72 72 6f 72 20 3a ┆f_bits_in_code then error :┆ 0x1ec80…1eca0 3d 20 2d 2c 20 73 65 74 5f 62 69 74 73 28 6f 70 65 72 61 6e 64 2c 6e 75 6d 62 65 72 20 65 78 74 ┆= -, set_bits(operand,number ext┆ 0x1eca0…1ecc0 72 61 63 74 20 32 34 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 20 65 78 ┆ract 24, number ex┆ 0x1ecc0…1ece0 74 72 61 63 74 20 32 34 29 0a 20 20 20 20 20 20 65 6c 73 65 20 65 72 72 6f 72 20 3a 3d 20 74 72 ┆tract 24) else error := tr┆ 0x1ece0…1ed00 75 65 3b 0a 20 20 20 20 20 20 6e 65 78 74 3b 0a 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 ┆ue; next; end; ┆ 0x1ed00…1ed20 65 6e 64 3b 0a 20 20 75 6e 74 69 6c 20 63 6c 61 73 73 20 3c 3e 20 63 6f 6d 6d 61 5f 63 6c 61 73 ┆end; until class <> comma_clas┆ 0x1ed20…1ed40 73 20 6f 72 20 65 72 72 6f 72 3b 0a 20 20 72 65 61 64 5f 61 6e 64 5f 73 65 74 5f 62 69 74 73 20 ┆s or error; read_and_set_bits ┆ 0x1ed40…1ed60 3a 3d 20 2d 2c 20 65 72 72 6f 72 3b 0a 0a 20 20 65 6e 64 20 72 65 61 64 5f 61 6e 64 5f 73 65 74 ┆:= -, error; end read_and_set┆ 0x1ed60…1ed80 5f 62 69 74 73 3b 0a 0a 20 20 62 6f 6f 6c 65 61 6e 20 70 72 6f 63 65 64 75 72 65 20 73 65 74 5f ┆_bits; boolean procedure set_┆ 0x1ed80…1eda0 62 69 74 73 28 6f 70 65 72 61 6e 64 2c 62 69 74 5f 6c 6f 77 2c 62 69 74 5f 68 69 67 68 29 3b 0a ┆bits(operand,bit_low,bit_high); ┆ 0x1eda0…1edc0 20 20 3c 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 ┆ <*****************************┆ 0x1edc0…1ede0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 3e 0a 20 20 76 61 6c 75 65 ┆***********************> value┆ 0x1ede0…1ee00 20 62 69 74 5f 6c 6f 77 2c 62 69 74 5f 68 69 67 68 3b 20 69 6e 74 65 67 65 72 20 62 69 74 5f 6c ┆ bit_low,bit_high; integer bit_l┆ 0x1ee00…1ee20 6f 77 2c 62 69 74 5f 68 69 67 68 3b 0a 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 6f 70 65 72 61 6e ┆ow,bit_high; long array operan┆ 0x1ee20…1ee40 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 6e 74 65 67 65 72 20 0a 20 20 20 20 69 6e 64 65 78 5f ┆d; begin integer index_┆ 0x1ee40…1ee60 6c 6f 77 2c 0a 20 20 20 20 69 6e 64 65 78 5f 68 69 67 68 2c 0a 20 20 20 20 62 69 74 5f 68 69 67 ┆low, index_high, bit_hig┆ 0x1ee60…1ee80 68 5f 69 6e 5f 77 6f 72 64 2c 0a 20 20 20 20 62 69 74 5f 6c 6f 77 5f 69 6e 5f 77 6f 72 64 2c 0a ┆h_in_word, bit_low_in_word, ┆ 0x1ee80…1eea0 20 20 20 20 77 6f 72 64 5f 69 6e 64 65 78 3b 0a 0a 20 20 69 66 20 62 69 74 5f 68 69 67 68 20 3c ┆ word_index; if bit_high <┆ 0x1eea0…1eec0 20 62 69 74 5f 6c 6f 77 20 74 68 65 6e 0a 20 20 20 20 73 65 74 5f 62 69 74 73 20 3a 3d 20 66 61 ┆ bit_low then set_bits := fa┆ 0x1eec0…1eee0 6c 73 65 0a 20 20 20 65 6c 73 65 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 6e 64 65 78 5f ┆lse else begin index_┆ 0x1eee0…1ef00 6c 6f 77 20 3a 3d 20 63 61 73 65 20 28 20 62 69 74 5f 6c 6f 77 2f 2f 34 38 29 20 2b 20 31 20 6f ┆low := case ( bit_low//48) + 1 o┆ 0x1ef00…1ef20 (55,) 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2c 32 2c 33 2c 34 2c 35 2c 36 2c ┆f (1,2,3,4,5,6,┆ 0x1ef20…1ef40 37 2c 38 29 3b 0a 20 20 20 20 69 6e 64 65 78 5f 68 69 67 68 20 3a 3d 20 63 61 73 65 20 28 62 69 ┆7,8); index_high := case (bi┆ 0x1ef40…1ef60 74 5f 68 69 67 68 2f 2f 34 38 29 20 2b 20 31 20 6f 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆t_high//48) + 1 of ┆ 0x1ef60…1ef80 20 20 20 20 28 31 2c 32 2c 33 2c 34 2c 35 2c 36 2c 37 2c 38 29 3b 0a 20 20 20 20 62 69 74 5f 6c ┆ (1,2,3,4,5,6,7,8); bit_l┆ 0x1ef80…1efa0 6f 77 5f 69 6e 5f 77 6f 72 64 20 3a 3d 20 62 69 74 5f 6c 6f 77 20 6d 6f 64 20 34 38 3b 0a 20 20 ┆ow_in_word := bit_low mod 48; ┆ 0x1efa0…1efc0 20 20 62 69 74 5f 68 69 67 68 5f 69 6e 5f 77 6f 72 64 20 3a 3d 20 62 69 74 5f 68 69 67 68 20 6d ┆ bit_high_in_word := bit_high m┆ 0x1efc0…1efe0 6f 64 20 34 38 3b 0a 20 20 20 20 69 66 20 69 6e 64 65 78 5f 6c 6f 77 20 3d 20 69 6e 64 65 78 5f ┆od 48; if index_low = index_┆ 0x1efe0…1f000 68 69 67 68 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 6f 70 65 72 ┆high then begin oper┆ 0x1f000…1f020 61 6e 64 28 69 6e 64 65 78 5f 6c 6f 77 29 20 3a 3d 20 6c 6f 67 5f 6f 72 28 6f 70 65 72 61 6e 64 ┆and(index_low) := log_or(operand┆ 0x1f020…1f040 28 69 6e 64 65 78 5f 6c 6f 77 29 2c 0a 20 20 20 20 20 20 20 20 65 78 74 65 6e 64 28 2d 31 29 20 ┆(index_low), extend(-1) ┆ 0x1f040…1f060 73 68 69 66 74 20 28 28 2d 34 38 29 2b 28 62 69 74 5f 68 69 67 68 5f 69 6e 5f 77 6f 72 64 2b 31 ┆shift ((-48)+(bit_high_in_word+1┆ 0x1f060…1f080 2d 62 69 74 5f 6c 6f 77 5f 69 6e 5f 77 6f 72 64 29 29 0a 20 20 20 20 20 20 20 20 73 68 69 66 74 ┆-bit_low_in_word)) shift┆ 0x1f080…1f0a0 20 28 34 37 20 2d 20 62 69 74 5f 68 69 67 68 5f 69 6e 5f 77 6f 72 64 29 29 3b 0a 20 20 20 20 20 ┆ (47 - bit_high_in_word)); ┆ 0x1f0a0…1f0c0 20 65 6e 64 0a 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆ end else begin ┆ 0x1f0c0…1f0e0 20 20 20 6f 70 65 72 61 6e 64 28 69 6e 64 65 78 5f 6c 6f 77 29 20 3a 3d 20 6c 6f 67 5f 6f 72 28 ┆ operand(index_low) := log_or(┆ 0x1f0e0…1f100 6f 70 65 72 61 6e 64 28 69 6e 64 65 78 5f 6c 6f 77 29 2c 0a 20 20 20 20 20 20 20 20 20 65 78 74 ┆operand(index_low), ext┆ 0x1f100…1f120 65 6e 64 20 28 2d 31 29 20 73 68 69 66 74 20 28 20 2d 20 62 69 74 5f 6c 6f 77 5f 69 6e 5f 77 6f ┆end (-1) shift ( - bit_low_in_wo┆ 0x1f120…1f140 72 64 29 29 3b 0a 20 20 20 20 20 20 20 6f 70 65 72 61 6e 64 28 69 6e 64 65 78 5f 68 69 67 68 29 ┆rd)); operand(index_high)┆ 0x1f140…1f160 20 3a 3d 20 6c 6f 67 5f 6f 72 28 6f 70 65 72 61 6e 64 28 69 6e 64 65 78 5f 68 69 67 68 29 2c 0a ┆ := log_or(operand(index_high), ┆ 0x1f160…1f180 20 20 20 20 20 20 20 20 20 65 78 74 65 6e 64 28 2d 31 29 20 73 68 69 66 74 20 28 34 37 20 2d 20 ┆ extend(-1) shift (47 - ┆ 0x1f180…1f1a0 62 69 74 5f 68 69 67 68 5f 69 6e 5f 77 6f 72 64 29 29 3b 0a 20 20 20 20 20 20 20 66 6f 72 20 77 ┆bit_high_in_word)); for w┆ 0x1f1a0…1f1c0 6f 72 64 5f 69 6e 64 65 78 20 3a 3d 20 69 6e 64 65 78 5f 6c 6f 77 2b 31 20 73 74 65 70 20 31 20 ┆ord_index := index_low+1 step 1 ┆ 0x1f1c0…1f1e0 75 6e 74 69 6c 20 69 6e 64 65 78 5f 6c 6f 77 20 20 2d 20 31 20 64 6f 0a 20 20 20 20 20 20 20 20 ┆until index_low - 1 do ┆ 0x1f1e0…1f200 20 6f 70 65 72 61 6e 64 28 77 6f 72 64 5f 69 6e 64 65 78 29 20 3a 3d 20 2d 31 3b 0a 20 20 20 20 ┆ operand(word_index) := -1; ┆ 0x1f200…1f220 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 73 65 74 5f 62 69 74 73 20 3a 3d 20 74 72 75 65 3b ┆ end; set_bits := true;┆ 0x1f220…1f240 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 65 6e 64 20 73 65 74 5f 62 69 74 73 3b 0a 0a 0a 0a 20 20 ┆ end; end set_bits; ┆ 0x1f240…1f260 6c 6f 6e 67 20 70 72 6f 63 65 64 75 72 65 20 69 6e 69 74 5f 6d 61 73 6b 28 6f 70 65 72 61 6e 64 ┆long procedure init_mask(operand┆ 0x1f260…1f280 2c 66 72 6f 6d 2c 74 6f 29 3b 0a 20 20 3c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆,from,to); <******************┆ 0x1f280…1f2a0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 3e 0a 20 20 76 61 6c 75 ┆************************> valu┆ 0x1f2a0…1f2c0 65 20 66 72 6f 6d 2c 74 6f 2c 6f 70 65 72 61 6e 64 3b 20 6c 6f 6e 67 20 6f 70 65 72 61 6e 64 3b ┆e from,to,operand; long operand;┆ 0x1f2c0…1f2e0 20 69 6e 74 65 67 65 72 20 66 72 6f 6d 2c 74 6f 3b 0a 20 20 69 6e 69 74 5f 6d 61 73 6b 3a 3d 6d ┆ integer from,to; init_mask:=m┆ 0x1f2e0…1f300 61 73 6b 5f 69 6e 28 6f 70 65 72 61 6e 64 2c 65 78 74 65 6e 64 20 28 2d 31 29 2c 0a 20 20 65 78 ┆ask_in(operand,extend (-1), ex┆ 0x1f300…1f320 74 65 6e 64 20 28 2d 31 29 20 73 68 69 66 74 20 28 28 2d 34 38 29 2b 28 74 6f 2b 31 2d 66 72 6f ┆tend (-1) shift ((-48)+(to+1-fro┆ 0x1f320…1f340 6d 29 29 20 20 73 68 69 66 74 20 28 34 37 2d 74 6f 29 29 3b 0a 0a 0a 20 20 3c 2a 20 2a 2a 2a 2a ┆m)) shift (47-to)); <* ****┆ 0x1f340…1f360 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 ┆********************************┆ 0x1f360…1f380 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 20 20 20 20 64 69 72 65 63 74 69 76 65 20 70 72 6f ┆************* directive pro┆ 0x1f380…1f3a0 63 65 64 75 72 65 73 20 73 65 63 74 69 6f 6e 0a 20 20 20 20 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆cedures section ***********┆ 0x1f3a0…1f3c0 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 ┆********************************┆ 0x1f3c0…1f3e0 2a 2a 2a 2a 2a 2a 20 2a 3e 0a 0a 20 20 70 72 6f 63 65 64 75 72 65 20 64 69 72 65 63 74 69 76 65 ┆****** *> procedure directive┆ 0x1f3e0…1f400 5f 73 6b 69 70 5f 75 6e 74 69 6c 3b 0a 20 20 62 65 67 69 6e 0a 20 20 62 6f 6f 6c 65 61 6e 20 75 ┆_skip_until; begin boolean u┆ 0x1f400…1f420 6e 74 69 6c 5f 63 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 3b 0a 0a 20 20 6c 6f 6e 67 20 73 6b 69 70 ┆ntil_condition_met; long skip┆ 0x1f420…1f440 5f 65 6e 64 5f 6e 61 6d 65 3b 0a 20 20 6e 65 78 74 31 3b 0a 0a 20 20 69 66 20 63 6c 61 73 73 31 ┆_end_name; next1; if class1┆ 0x1f440…1f460 20 3d 20 74 65 78 74 5f 63 6c 61 73 73 20 6f 72 20 63 6c 61 73 73 31 20 3d 20 75 6e 6b 6e 6f 77 ┆ = text_class or class1 = unknow┆ 0x1f460…1f480 6e 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆n_name_class then begin ┆ 0x1f480…1f4a0 73 6b 69 70 5f 65 6e 64 5f 6e 61 6d 65 20 3a 3d 20 6e 61 6d 65 31 3b 0a 20 20 20 20 72 65 70 65 ┆skip_end_name := name1; repe┆ 0x1f4a0…1f4c0 61 74 0a 20 20 20 20 20 69 66 20 6c 69 73 74 5f 61 6c 6c 20 74 68 65 6e 20 6c 69 73 74 5f 6c 69 ┆at if list_all then list_li┆ 0x1f4c0…1f4e0 6e 65 3b 0a 20 20 20 20 20 72 65 61 64 5f 6e 65 78 74 5f 73 6f 75 72 63 65 5f 6c 69 6e 65 3b 0a ┆ne; read_next_source_line; ┆ 0x1f4e0…1f500 0a 20 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 73 74 61 72 5f 63 6c 61 73 73 20 74 68 65 6e ┆ if class = star_class then┆ 0x1f500…1f520 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 6e 65 78 74 31 3b 0a 20 20 ┆ begin next1; ┆ 0x1f520…1f540 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 75 6e 74 69 6c 3a 3e 20 ┆ if name1 = long <:until:> ┆ 0x1f540…1f560 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 6e ┆then begin n┆ 0x1f560…1f580 65 78 74 31 3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 31 20 3d 20 63 6f 6c 6f ┆ext1; if class1 = colo┆ 0x1f580…1f5a0 6e 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 31 ┆n_class then next1┆ 0x1f5a0…1f5c0 3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 73 6b 69 70 5f 65 6e 64 5f ┆; if name1 = skip_end_┆ 0x1f5c0…1f5e0 6e 61 6d 65 20 74 68 65 6e 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 74 69 6c 5f 63 ┆name then until_c┆ 0x1f5e0…1f600 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 ┆ondition_met := true; ┆ 0x1f600…1f620 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 66 69 72 73 ┆end; end control of firs┆ 0x1f620…1f640 74 20 74 6f 6b 65 6e 3b 0a 20 20 20 20 20 75 6e 74 69 6c 20 75 6e 74 69 6c 5f 63 6f 6e 64 69 74 ┆t token; until until_condit┆ 0x1f640…1f660 69 6f 6e 5f 6d 65 74 3b 0a 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 65 72 72 ┆ion_met; end else err┆ 0x1f660…1f680 6f 72 28 64 69 72 65 63 74 69 76 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 ┆or(directive,line_no,element_no)┆ 0x1f680…1f6a0 3b 0a 20 20 72 65 74 75 72 6e 5f 66 72 6f 6d 5f 73 6b 69 70 20 3a 3d 20 74 72 75 65 3b 0a 20 20 ┆; return_from_skip := true; ┆ 0x1f6a0…1f6c0 65 6e 64 20 64 69 72 65 63 74 69 76 65 5f 73 6b 69 70 5f 75 6e 74 69 6c 3b 0a 70 72 6f 63 65 64 ┆end directive_skip_until; proced┆ 0x1f6c0…1f6e0 75 72 65 20 64 69 72 65 63 74 69 76 65 5f 6f 6e 6c 79 69 6e 5f 6c 6f 67 69 63 28 6d 6f 64 65 29 ┆ure directive_onlyin_logic(mode)┆ 0x1f6e0…1f700 3b 0a 3c 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 ┆; <*****************************┆ 0x1f700…1f720 2a 2a 2a 3e 0a 76 61 6c 75 65 20 6d 6f 64 65 3b 20 62 6f 6f 6c 65 61 6e 20 6d 6f 64 65 3b 0a 3c ┆***> value mode; boolean mode; <┆ 0x1f720…1f740 2a 20 69 66 20 6d 6f 64 65 20 69 73 20 74 72 75 65 20 74 68 65 6e 20 73 6b 69 70 20 6f 6e 6c 79 ┆* if mode is true then skip only┆ 0x1f740…1f760 20 69 6e 20 69 73 20 70 65 72 66 6f 72 6d 65 64 0a 20 20 20 65 6c 73 65 20 73 6b 69 70 20 6e 6f ┆ in is performed else skip no┆ 0x1f760…1f780 74 20 69 6e 20 69 73 20 70 65 72 66 6f 72 6d 65 64 20 2a 3e 0a 62 65 67 69 6e 0a 3c 2a 20 63 68 ┆t in is performed *> begin <* ch┆ 0x1f780…1f7a0 65 63 6b 20 74 68 65 20 70 61 72 61 6d 20 6c 69 73 74 20 74 6f 20 73 65 20 74 68 65 20 70 61 72 ┆eck the param list to se the par┆ 0x1f7a0…1f7c0 61 6d 0a 20 20 20 6d 6f 64 65 2e 3c 74 65 78 74 3e 20 2c 20 77 68 65 72 65 20 3c 74 65 78 74 3e ┆am mode.<text> , where <text>┆ 0x1f7c0…1f7e0 20 73 63 68 61 6c 6c 20 62 65 20 65 71 75 61 6c 0a 20 20 20 74 68 65 20 6e 65 78 74 20 65 6c 65 ┆ schall be equal the next ele┆ 0x1f7e0…1f800 6d 65 6e 74 20 2a 3e 0a 6c 6f 6e 67 20 61 72 72 61 79 20 70 61 72 61 6d 5f 6e 61 6d 65 2c 75 6e ┆ment *> long array param_name,un┆ 0x1f800…1f820 (56,) 74 69 6c 5f 6e 61 6d 65 2c 6f 6e 6c 79 5f 6e 61 6d 65 28 31 3a 32 29 3b 0a 69 6e 74 65 67 65 72 ┆til_name,only_name(1:2); integer┆ 0x1f820…1f840 20 70 61 72 61 6d 5f 63 61 6c 6c 5f 72 65 73 75 6c 74 3b 0a 62 6f 6f 6c 65 61 6e 20 75 6e 74 69 ┆ param_call_result; boolean unti┆ 0x1f840…1f860 6c 5f 63 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 3b 0a 0a 0a 70 61 72 61 6d 5f 63 61 6c 6c 5f 72 65 ┆l_condition_met; param_call_re┆ 0x1f860…1f880 73 75 6c 74 20 3a 3d 20 67 65 74 5f 74 65 78 74 5f 73 74 72 69 6e 67 28 3c 3a 76 65 72 73 69 6f ┆sult := get_text_string(<:versio┆ 0x1f880…1f8a0 6e 3a 3e 2c 70 61 72 61 6d 5f 6e 61 6d 65 29 3b 0a 63 6c 61 73 73 31 20 3a 3d 20 67 65 74 5f 6c ┆n:>,param_name); class1 := get_l┆ 0x1f8a0…1f8c0 6f 6e 67 5f 6e 61 6d 65 28 6f 6e 6c 79 5f 6e 61 6d 65 29 3b 0a 69 66 20 70 61 72 61 6d 5f 63 61 ┆ong_name(only_name); if param_ca┆ 0x1f8c0…1f8e0 6c 6c 5f 72 65 73 75 6c 74 20 3c 3e 20 30 20 6f 72 0a 20 20 20 28 70 61 72 61 6d 5f 63 61 6c 6c ┆ll_result <> 0 or (param_call┆ 0x1f8e0…1f900 5f 72 65 73 75 6c 74 20 3d 20 30 20 61 6e 64 0a 20 20 20 20 20 28 28 20 6d 6f 64 65 20 61 6e 64 ┆_result = 0 and (( mode and┆ 0x1f900…1f920 20 28 70 61 72 61 6d 5f 6e 61 6d 65 28 31 29 20 3c 3e 20 6f 6e 6c 79 5f 6e 61 6d 65 28 31 29 20 ┆ (param_name(1) <> only_name(1) ┆ 0x1f920…1f940 6f 72 0a 20 20 20 20 20 20 70 61 72 61 6d 5f 6e 61 6d 65 28 32 29 20 3c 3e 20 6f 6e 6c 79 5f 6e ┆or param_name(2) <> only_n┆ 0x1f940…1f960 61 6d 65 28 32 29 29 29 0a 20 20 20 20 6f 72 0a 20 20 20 20 20 28 20 2d 2c 20 6d 6f 64 65 20 61 ┆ame(2))) or ( -, mode a┆ 0x1f960…1f980 6e 64 20 20 70 61 72 61 6d 5f 6e 61 6d 65 28 31 29 20 3d 20 6f 6e 6c 79 5f 6e 61 6d 65 28 31 29 ┆nd param_name(1) = only_name(1)┆ 0x1f980…1f9a0 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 5f 6e ┆ and param_n┆ 0x1f9a0…1f9c0 61 6d 65 28 32 29 20 3d 20 6f 6e 6c 79 5f 6e 61 6d 65 28 32 29 20 29 29 29 20 74 68 65 6e 0a 0a ┆ame(2) = only_name(2) ))) then ┆ 0x1f9c0…1f9e0 20 20 62 65 67 69 6e 20 0a 20 20 3c 2a 20 73 6b 69 70 20 75 6e 74 69 6c 20 61 20 27 75 6e 74 69 ┆ begin <* skip until a 'unti┆ 0x1f9e0…1fa00 6c 27 20 64 69 72 65 63 74 69 76 65 20 69 73 20 6d 65 74 20 77 69 74 68 0a 20 20 20 20 20 77 69 ┆l' directive is met with wi┆ 0x1fa00…1fa20 74 68 20 74 68 65 20 76 65 72 73 69 6f 6e 20 74 65 78 74 20 61 73 20 70 61 72 61 6d 65 74 65 72 ┆th the version text as parameter┆ 0x1fa20…1fa40 2e 20 2a 3e 0a 20 20 20 75 6e 74 69 6c 5f 63 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 20 3a 3d 20 66 ┆. *> until_condition_met := f┆ 0x1fa40…1fa60 61 6c 73 65 3b 0a 20 20 20 72 65 70 65 61 74 0a 20 20 20 20 20 69 66 20 6c 69 73 74 5f 61 6c 6c ┆alse; repeat if list_all┆ 0x1fa60…1fa80 20 74 68 65 6e 20 6c 69 73 74 5f 6c 69 6e 65 3b 0a 20 20 20 20 20 72 65 61 64 5f 6e 65 78 74 5f ┆ then list_line; read_next_┆ 0x1fa80…1faa0 73 6f 75 72 63 65 5f 6c 69 6e 65 3b 0a 20 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 65 6f 66 ┆source_line; if class = eof┆ 0x1faa0…1fac0 5f 63 6c 61 73 73 20 74 68 65 6e 20 75 6e 74 69 6c 5f 63 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 20 ┆_class then until_condition_met ┆ 0x1fac0…1fae0 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 0a 20 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 73 ┆:= true; if class = s┆ 0x1fae0…1fb00 74 61 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆tar_class then begin ┆ 0x1fb00…1fb20 20 20 20 6e 65 78 74 31 3b 0a 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 ┆ next1; if name1 = long┆ 0x1fb20…1fb40 20 3c 3a 75 6e 74 69 6c 3a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 ┆ <:until:> then begin ┆ 0x1fb40…1fb60 20 20 20 20 20 20 20 20 6e 65 78 74 31 3b 0a 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 ┆ next1; if class┆ 0x1fb60…1fb80 31 20 3d 20 63 6f 6c 6f 6e 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 ┆1 = colon_class then ┆ 0x1fb80…1fba0 63 6c 61 73 73 31 20 3a 3d 20 67 65 74 5f 6c 6f 6e 67 5f 6e 61 6d 65 28 75 6e 74 69 6c 5f 6e 61 ┆class1 := get_long_name(until_na┆ 0x1fba0…1fbc0 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 31 20 3e 20 30 20 61 6e 64 0a ┆me); if class1 > 0 and ┆ 0x1fbc0…1fbe0 20 20 20 20 20 20 20 20 20 20 20 20 6f 6e 6c 79 5f 6e 61 6d 65 28 31 29 20 3d 75 6e 74 69 6c 5f ┆ only_name(1) =until_┆ 0x1fbe0…1fc00 6e 61 6d 65 28 31 29 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 6f 6e 6c 79 5f 6e 61 6d ┆name(1) and only_nam┆ 0x1fc00…1fc20 65 28 32 29 20 3d 20 75 6e 74 69 6c 5f 6e 61 6d 65 28 32 29 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆e(2) = until_name(2) then ┆ 0x1fc20…1fc40 20 20 20 20 20 75 6e 74 69 6c 5f 63 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 20 3a 3d 20 74 72 75 65 ┆ until_condition_met := true┆ 0x1fc40…1fc60 3b 0a 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 65 6e 64 20 63 6f 6e 74 72 ┆; end; end contr┆ 0x1fc60…1fc80 6f 6c 20 6f 66 20 66 69 72 73 74 20 74 6f 6b 65 6e 20 27 63 6f 6c 6f 6e 27 20 3b 0a 20 20 20 20 ┆ol of first token 'colon' ; ┆ 0x1fc80…1fca0 75 6e 74 69 6c 20 75 6e 74 69 6c 5f 63 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 3b 0a 20 65 6e 64 20 ┆until until_condition_met; end ┆ 0x1fca0…1fcc0 73 6b 69 70 20 6e 6f 74 20 74 68 69 73 20 76 65 72 73 69 6f 6e 20 3b 0a 72 65 74 75 72 6e 5f 66 ┆skip not this version ; return_f┆ 0x1fcc0…1fce0 72 6f 6d 5f 73 6b 69 70 20 3a 3d 20 74 72 75 65 3b 0a 0a 0a 65 6e 64 20 64 69 72 65 63 74 69 76 ┆rom_skip := true; end directiv┆ 0x1fce0…1fd00 65 5f 6f 6e 6c 79 5f 69 6e 3b 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 63 6c 75 64 65 5f 73 ┆e_only_in; procedure include_s┆ 0x1fd00…1fd20 6f 75 72 63 65 5f 66 69 6c 65 3b 0a 3c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ource_file; <*******************┆ 0x1fd20…1fd40 2a 2a 2a 2a 2a 2a 2a 2a 2a 3e 0a 62 65 67 69 6e 0a 6c 6f 6e 67 20 61 72 72 61 79 20 66 69 6c 65 ┆*********> begin long array file┆ 0x1fd40…1fd60 5f 6e 61 6d 65 28 31 3a 32 29 3b 0a 69 6e 74 65 67 65 72 20 73 74 61 63 6b 5f 72 65 73 75 6c 74 ┆_name(1:2); integer stack_result┆ 0x1fd60…1fd80 3b 0a 63 6c 61 73 73 31 20 3a 3d 20 67 65 74 5f 6c 6f 6e 67 5f 6e 61 6d 65 28 66 69 6c 65 5f 6e ┆; class1 := get_long_name(file_n┆ 0x1fd80…1fda0 61 6d 65 29 3b 0a 69 66 20 63 6c 61 73 73 31 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 62 65 67 ┆ame); if class1 > 0 then beg┆ 0x1fda0…1fdc0 69 6e 0a 20 20 20 20 73 74 61 63 6b 5f 72 65 73 75 6c 74 20 3a 3d 20 20 73 74 61 63 6b 5f 61 6e ┆in stack_result := stack_an┆ 0x1fdc0…1fde0 64 5f 63 6f 6e 6e 65 63 74 5f 69 6e 28 66 69 6c 65 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 69 66 20 ┆d_connect_in(file_name); if ┆ 0x1fde0…1fe00 6c 69 73 74 20 74 68 65 6e 20 6c 69 73 74 5f 6c 69 6e 65 3b 0a 0a 20 20 20 20 69 66 20 73 74 61 ┆list then list_line; if sta┆ 0x1fe00…1fe20 63 6b 5f 72 65 73 75 6c 74 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 77 72 69 74 65 28 ┆ck_result <> 0 then write(┆ 0x1fe20…1fe40 6f 75 74 2c 22 2a 22 2c 34 2c 3c 3a 20 63 6f 70 79 20 63 6f 6e 6e 65 63 74 20 65 72 72 6f 72 3a ┆out,"*",4,<: copy connect error:┆ 0x1fe40…1fe60 20 3a 3e 2c 66 69 6c 65 5f 6e 61 6d 65 2c 22 6e 6c 22 2c 31 29 0a 20 20 20 20 65 6c 73 65 0a 20 ┆ :>,file_name,"nl",1) else ┆ 0x1fe60…1fe80 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 3c 3a 20 6d 69 63 61 73 6d 20 73 6f 75 72 63 65 20 ┆ write(out,<: micasm source ┆ 0x1fe80…1fea0 3a 20 3a 3e 2c 66 69 6c 65 5f 6e 61 6d 65 2c 22 6e 6c 22 2c 31 29 3b 0a 20 20 20 20 65 6e 64 20 ┆: :>,file_name,"nl",1); end ┆ 0x1fea0…1fec0 65 6c 73 65 20 0a 20 20 20 20 65 72 72 6f 72 28 64 69 72 65 63 74 69 76 65 2c 6c 69 6e 65 5f 6e ┆else error(directive,line_n┆ 0x1fec0…1fee0 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 65 6e 64 20 69 6e 63 6c 75 64 65 5f 73 6f 75 72 63 ┆o,element_no); end include_sourc┆ 0x1fee0…1ff00 65 5f 66 69 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 6c 69 73 74 5f 6c 69 ┆e_file; procedure list_li┆ 0x1ff00…1ff20 6e 65 3b 0a 3c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 3e 0a 62 65 67 69 6e 0a ┆ne; <*******************> begin ┆ 0x1ff20…1ff40 69 66 20 2d 2c 20 6c 69 6e 65 5f 6c 69 73 74 65 64 20 74 68 65 6e 0a 62 65 67 69 6e 0a 6c 69 6e ┆if -, line_listed then begin lin┆ 0x1ff40…1ff60 65 5f 6c 69 73 74 65 64 20 3a 3d 20 74 72 75 65 3b 0a 69 66 20 6c 69 6e 65 5f 6e 75 6d 20 74 68 ┆e_listed := true; if line_num th┆ 0x1ff60…1ff80 65 6e 20 77 72 69 74 65 28 6f 75 74 2c 3c 3c 64 64 64 64 3e 2c 6c 69 6e 65 5f 6e 6f 29 3b 0a 20 ┆en write(out,<<dddd>,line_no); ┆ 0x1ff80…1ffa0 20 20 20 20 20 69 66 20 63 6f 64 65 5f 67 65 6e 65 72 61 74 65 64 20 74 68 65 6e 0a 20 20 20 20 ┆ if code_generated then ┆ 0x1ffa0…1ffc0 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 64 65 63 5f 63 6f 64 65 20 74 68 65 6e 20 77 ┆ begin if dec_code then w┆ 0x1ffc0…1ffe0 72 69 74 65 28 6f 75 74 2c 3c 3c 5f 7a 64 64 64 3e 2c 69 6e 73 74 72 5f 69 6e 64 65 78 29 3b 0a ┆rite(out,<<_zddd>,instr_index); ┆ 0x1ffe0…20000 20 20 20 20 20 20 69 66 20 6f 63 74 61 6c 5f 63 6f 64 65 20 74 68 65 6e 20 77 72 69 74 65 28 6f ┆ if octal_code then write(o┆ 0x20000…20020 75 74 2c 3c 3c 5f 7a 64 64 64 3e 2c 6f 63 74 61 6c 28 65 78 74 65 6e 64 20 69 6e 73 74 72 5f 69 ┆ut,<<_zddd>,octal(extend instr_i┆ 0x20020…20040 6e 64 65 78 29 29 3b 20 20 20 20 20 0a 20 20 20 20 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c 27 ┆ndex)); outchar(out,'┆ 0x20040…20060 73 70 27 29 3b 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 ┆sp'); end else ┆ 0x20060…20080 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 69 66 20 64 65 63 5f 63 6f 64 65 20 74 68 65 6e 20 ┆ begin if dec_code then ┆ 0x20080…200a0 77 72 69 74 65 28 6f 75 74 2c 22 73 70 22 2c 35 29 3b 0a 20 20 20 20 20 20 20 69 66 20 6f 63 74 ┆write(out,"sp",5); if oct┆ 0x200a0…200c0 61 6c 5f 63 6f 64 65 20 74 68 65 6e 20 77 72 69 74 65 28 6f 75 74 2c 22 73 70 22 2c 35 29 3b 0a ┆al_code then write(out,"sp",5); ┆ 0x200c0…200e0 20 20 20 20 20 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c 27 73 70 27 29 3b 0a 20 20 20 20 20 20 ┆ outchar(out,'sp'); ┆ 0x200e0…20100 20 65 6e 64 3b 0a 20 20 20 20 20 20 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 3a 3d 20 30 3b 0a 20 ┆ end; line_pointer := 0; ┆ 0x20100…20120 (57,) 20 20 20 20 20 66 6f 72 20 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 3a 3d 20 6c 69 6e 65 5f 70 6f ┆ for line_pointer := line_po┆ 0x20120…20140 69 6e 74 65 72 2b 31 20 0a 20 20 20 20 20 20 77 68 69 6c 65 20 6c 69 6e 65 5f 70 6f 69 6e 74 65 ┆inter+1 while line_pointe┆ 0x20140…20160 72 20 3c 3d 20 6e 6f 5f 6f 66 5f 65 6c 65 6d 65 6e 74 73 20 64 6f 0a 20 20 20 20 20 20 62 65 67 ┆r <= no_of_elements do beg┆ 0x20160…20180 69 6e 0a 20 20 20 20 20 20 20 20 69 66 20 72 65 61 64 5f 6b 69 6e 64 28 6c 69 6e 65 5f 70 6f 69 ┆in if read_kind(line_poi┆ 0x20180…201a0 6e 74 65 72 29 20 3d 20 36 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 ┆nter) = 6 then begin ┆ 0x201a0…201c0 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 73 74 72 69 6e 67 20 72 65 61 64 5f 76 61 6c ┆ write(out,string read_val┆ 0x201c0…201e0 75 65 28 69 6e 63 72 65 61 73 65 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 29 29 29 3b 0a 20 20 20 ┆ue(increase(line_pointer))); ┆ 0x201e0…20200 20 20 20 20 20 20 20 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 3a 3d 20 6c 69 6e 65 5f 70 6f 69 6e ┆ line_pointer := line_poin┆ 0x20200…20220 74 65 72 20 2d 20 31 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 65 6c 73 ┆ter - 1; end els┆ 0x20220…20240 65 0a 20 20 20 20 20 20 20 20 69 66 20 72 65 61 64 5f 6b 69 6e 64 28 6c 69 6e 65 5f 70 6f 69 6e ┆e if read_kind(line_poin┆ 0x20240…20260 74 65 72 29 20 3d 20 32 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c ┆ter) = 2 then write(out,┆ 0x20260…20280 3c 3c 64 3e 2c 72 65 61 64 5f 76 61 6c 75 65 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 29 29 0a 20 ┆<<d>,read_value(line_pointer)) ┆ 0x20280…202a0 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c ┆ else outchar(out,┆ 0x202a0…202c0 72 65 61 64 5f 76 61 6c 75 65 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 29 20 65 78 74 72 61 63 74 ┆read_value(line_pointer) extract┆ 0x202c0…202e0 20 38 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 65 6e 64 20 6c 69 73 74 5f ┆ 8); end; end; end list_┆ 0x202e0…20300 6c 69 6e 65 3b 0a 0a 0a 0a 0a 20 20 70 72 6f 63 65 64 75 72 65 20 72 65 61 64 5f 6e 65 78 74 5f ┆line; procedure read_next_┆ 0x20300…20320 73 6f 75 72 63 65 5f 6c 69 6e 65 3b 0a 20 20 3c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆source_line; <****************┆ 0x20320…20340 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 3e 0a 20 20 62 65 67 69 6e 0a 20 20 3c 2a 20 72 65 73 ┆**************> begin <* res┆ 0x20340…20360 65 74 20 62 6f 6f 6c 65 61 6e 20 63 6f 6e 74 72 6f 6c 20 2a 3e 0a 20 20 65 72 72 6f 72 5f 69 6e ┆et boolean control *> error_in┆ 0x20360…20380 5f 74 68 69 73 5f 6c 69 6e 65 20 3a 3d 20 66 61 6c 73 65 20 3b 0a 0a 20 20 63 6f 64 65 5f 67 65 ┆_this_line := false ; code_ge┆ 0x20380…203a0 6e 65 72 61 74 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 61 6c 75 5f 66 75 6e 63 74 69 6f 6e ┆nerated := false; alu_function┆ 0x203a0…203c0 5f 70 65 72 66 6f 72 6d 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 6a 75 6d 70 5f 73 65 6b 76 ┆_performed := false; jump_sekv┆ 0x203c0…203e0 65 6e 73 5f 70 65 72 66 6f 72 6d 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 61 64 64 72 73 5f ┆ens_performed := false; addrs_┆ 0x203e0…20400 70 65 72 66 6f 72 6d 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 73 68 69 66 74 5f 63 6f 6e 64 ┆performed := false; shift_cond┆ 0x20400…20420 69 74 69 6f 6e 5f 70 65 72 66 6f 72 6d 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 6a 75 6d 70 ┆ition_performed := false; jump┆ 0x20420…20440 5f 61 64 64 72 73 5f 70 65 72 66 6f 72 6d 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 6c 69 6e ┆_addrs_performed := false; lin┆ 0x20440…20460 65 5f 6c 69 73 74 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 6c 69 6e 65 5f 70 6f 69 6e 74 ┆e_listed := false; line_point┆ 0x20460…20480 65 72 20 3a 3d 20 31 3b 0a 20 20 65 6c 65 6d 65 6e 74 5f 6e 6f 20 3a 3d 20 30 3b 0a 20 20 6e 6f ┆er := 1; element_no := 0; no┆ 0x20480…204a0 5f 6f 66 5f 65 6c 65 6d 65 6e 74 73 20 3a 3d 20 72 65 61 64 5f 61 6c 6c 28 69 6e 2c 72 65 61 64 ┆_of_elements := read_all(in,read┆ 0x204a0…204c0 5f 76 61 6c 75 65 2c 72 65 61 64 5f 6b 69 6e 64 2c 31 29 3b 0a 20 20 6c 69 6e 65 5f 6e 6f 20 3a ┆_value,read_kind,1); line_no :┆ 0x204c0…204e0 3d 20 6c 69 6e 65 5f 6e 6f 20 2b 20 31 3b 0a 20 20 6e 65 78 74 3b 0a 20 20 65 6e 64 20 72 65 61 ┆= line_no + 1; next; end rea┆ 0x204e0…20500 64 5f 6e 65 78 74 5f 73 6f 75 72 63 65 5f 6c 69 6e 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 20 20 70 ┆d_next_source_line; p┆ 0x20500…20520 6c 75 73 5f 6c 61 62 65 6c 5f 64 65 63 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 70 6c 75 73 20 6c 61 62 ┆lus_label_dec := long <:plus lab┆ 0x20520…20540 65 6c 20 64 65 63 2e 3a 3e 3b 0a 20 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 3a 3d 20 6c 6f 6e 67 ┆el dec.:>; declaration := long┆ 0x20540…20560 20 3c 3a 64 65 63 6c 61 72 61 74 69 6f 6e 3a 3e 3b 0a 20 20 6f 70 65 72 61 6e 64 5f 74 79 70 65 ┆ <:declaration:>; operand_type┆ 0x20560…20580 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 6f 70 65 72 61 6e 64 20 74 79 70 65 3a 3e 3b 0a 20 20 6d 69 6e ┆ := long <:operand type:>; min┆ 0x20580…205a0 75 73 5f 64 65 6c 69 6d 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 6d 69 6e 75 73 20 64 65 6c 69 6d 2e 3a ┆us_delim := long <:minus delim.:┆ 0x205a0…205c0 3e 3b 0a 20 20 6d 69 73 73 69 6e 67 5f 6f 70 65 72 61 6e 64 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 6d ┆>; missing_operand := long <:m┆ 0x205c0…205e0 69 73 73 69 6e 67 20 6f 70 65 72 61 6e 64 2e 3a 3e 3b 0a 20 20 6c 61 62 65 6c 5f 64 65 63 3a 3d ┆issing operand.:>; label_dec:=┆ 0x205e0…20600 20 6c 6f 6e 67 20 3c 3a 6c 61 62 65 6c 20 64 65 63 2e 3a 3e 3b 0a 20 20 69 6c 6c 65 67 61 6c 5f ┆ long <:label dec.:>; illegal_┆ 0x20600…20620 74 79 70 65 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 69 6c 6c 65 67 61 6c 20 74 79 70 65 3a 3e 3b 0a 20 ┆type := long <:illegal type:>; ┆ 0x20620…20640 20 70 6c 75 73 5f 6e 61 6d 65 5f 64 65 63 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 70 6c 75 73 20 6e 61 ┆ plus_name_dec := long <:plus na┆ 0x20640…20660 6d 65 20 64 65 63 2e 3a 3e 3b 0a 20 20 6e 61 6d 65 5f 75 6e 6b 6e 6f 77 6e 20 3a 3d 20 6c 6f 6e ┆me dec.:>; name_unknown := lon┆ 0x20660…20680 67 20 3c 3a 6e 61 6d 65 20 75 6e 6b 6e 6f 77 6e 3a 3e 3b 0a 20 20 64 69 72 65 63 74 69 76 65 20 ┆g <:name unknown:>; directive ┆ 0x20680…206a0 3a 3d 20 6c 6f 6e 67 20 3c 3a 64 69 72 65 63 74 69 76 65 3a 3e 3b 0a 20 20 75 6e 6b 6e 6f 77 6e ┆:= long <:directive:>; unknown┆ 0x206a0…206c0 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 75 6e 6b 6e 6f 77 6e 3a 3e 3b 0a 20 20 6e 61 6d 65 5f 6c 65 6e ┆ := long <:unknown:>; name_len┆ 0x206c0…206e0 67 74 68 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 6e 61 6d 65 20 6c 65 6e 67 74 68 20 65 78 65 65 64 65 ┆gth := long <:name length exeede┆ 0x206e0…20700 73 20 36 20 63 68 61 72 2e 3a 3e 3b 0a 20 20 64 65 6c 69 6d 69 74 65 72 20 3a 3d 20 6c 6f 6e 67 ┆s 6 char.:>; delimiter := long┆ 0x20700…20720 20 3c 3a 64 65 6c 69 6d 69 74 65 72 3a 3e 3b 0a 20 20 75 6e 64 65 63 5f 6c 61 62 65 6c 20 3a 3d ┆ <:delimiter:>; undec_label :=┆ 0x20720…20740 20 6c 6f 6e 67 20 3c 3a 75 6e 64 65 63 2e 20 6c 61 62 65 6c 20 6f 72 20 61 64 64 72 73 2e 20 3a ┆ long <:undec. label or addrs. :┆ 0x20740…20760 3e 3b 0a 20 20 6d 75 6c 74 69 70 6c 65 5f 66 75 6e 63 74 69 6f 6e 20 3a 3d 20 6c 6f 6e 67 20 3c ┆>; multiple_function := long <┆ 0x20760…20780 3a 6d 75 6c 74 69 70 6c 65 20 66 75 6e 63 74 69 6f 6e 2e 3a 3e 3b 0a 20 20 70 6c 75 73 5f 61 64 ┆:multiple function.:>; plus_ad┆ 0x20780…207a0 64 72 73 5f 64 65 66 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 70 6c 75 73 20 61 64 64 72 73 20 64 65 66 ┆drs_def := long <:plus addrs def┆ 0x207a0…207c0 2e 3a 3e 3b 0a 20 20 6d 69 6e 75 73 5f 61 64 64 72 73 5f 64 65 66 20 3a 3d 20 6c 6f 6e 67 20 3c ┆.:>; minus_addrs_def := long <┆ 0x207c0…207e0 3a 6d 69 6e 75 73 20 61 64 64 72 73 2e 20 64 65 66 2e 3a 3e 3b 0a 20 20 69 6c 6c 65 67 61 6c 5f ┆:minus addrs. def.:>; illegal_┆ 0x207e0…20800 73 6f 75 72 63 65 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 69 6c 6c 65 67 61 6c 20 73 6f 75 72 63 65 3a ┆source := long <:illegal source:┆ 0x20800…20820 3e 3b 0a 20 20 69 6c 6c 65 67 61 6c 5f 64 65 73 74 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 69 6c 6c 65 ┆>; illegal_dest := long <:ille┆ 0x20820…20840 67 61 6c 20 64 65 73 74 69 6e 61 74 69 6f 6e 3a 3e 3b 0a 20 20 69 6c 6c 65 67 61 6c 5f 64 65 73 ┆gal destination:>; illegal_des┆ 0x20840…20860 74 5f 61 6e 64 5f 73 6f 75 72 63 65 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 69 6c 6c 65 67 61 6c 20 64 ┆t_and_source := long <:illegal d┆ 0x20860…20880 65 73 74 69 6e 61 74 69 6f 6e 20 61 6e 64 20 6f 72 20 73 6f 75 72 63 65 20 3a 3e 3b 0a 20 20 73 ┆estination and or source :>; s┆ 0x20880…208a0 61 76 65 5f 66 69 6c 65 5f 6e 61 6d 65 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 69 6c 6c 65 67 61 6c 20 ┆ave_file_name := long <:illegal ┆ 0x208a0…208c0 73 61 76 65 20 66 69 6c 65 20 6e 61 6d 65 3a 3e 3b 0a 20 20 6c 6f 61 64 5f 66 69 6c 65 5f 6e 61 ┆save file name:>; load_file_na┆ 0x208c0…208e0 6d 65 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 69 6c 6c 65 67 61 6c 20 6c 6f 61 64 20 66 69 6c 65 20 6e ┆me := long <:illegal load file n┆ 0x208e0…20900 61 6d 65 3a 3e 3b 0a 20 20 74 65 72 6d 69 6e 61 74 69 6f 6e 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 74 ┆ame:>; termination := long <:t┆ 0x20900…20920 65 72 6d 69 6e 61 74 69 6f 6e 3a 3e 3b 0a 20 20 6f 70 65 72 61 6e 64 20 3a 3d 20 6c 6f 6e 67 20 ┆ermination:>; operand := long ┆ 0x20920…20940 3c 3a 75 6e 6b 6e 6f 77 6e 20 6f 70 65 72 61 6e 64 3a 3e 3b 0a 20 20 61 6c 67 6f 6c 20 63 6f 70 ┆<:unknown operand:>; algol cop┆ 0x20940…20960 79 2e 33 20 3c 2a 20 73 63 68 6f 75 6c 64 20 62 65 20 6d 32 39 30 78 69 6e 69 74 20 2a 3e 3b 0a ┆y.3 <* schould be m290xinit *>; ┆ 0x20960…20980 20 20 69 6e 69 74 5f 6c 6f 6e 67 5f 61 72 72 61 79 28 6e 61 6d 65 5f 74 61 62 6c 65 2c 2d 31 29 ┆ init_long_array(name_table,-1)┆ 0x20980…209a0 3b 0a 20 20 69 6e 69 74 5f 48 45 41 50 3b 0a 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 ┆; init_HEAP; error_record_c┆ 0x209a0…209c0 68 61 69 6e 5f 68 65 61 64 20 3a 3d 20 6e 69 6c 3b 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 ┆hain_head := nil; error_record┆ 0x209c0…209e0 5f 74 65 78 74 20 3a 3d 20 34 3b 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 6c 69 6e 65 5f ┆_text := 4; error_record_line_┆ 0x209e0…20a00 6e 6f 20 3a 3d 20 38 3b 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 65 6c 65 6d 65 6e 74 5f ┆no := 8; error_record_element_┆ 0x20a00…20a20 (58,) 70 6f 73 20 3a 3d 20 31 30 3b 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 68 61 69 6e 20 ┆pos := 10; error_record_chain ┆ 0x20a20…20a40 3a 3d 20 36 3b 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 69 6e 73 74 72 5f 69 6e 64 65 78 ┆:= 6; error_record_instr_index┆ 0x20a40…20a60 20 3a 3d 20 31 32 3b 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 6c 65 6e 67 74 68 20 3a 3d ┆ := 12; error_record_length :=┆ 0x20a60…20a80 20 31 32 3b 0a 20 20 6c 5f 64 5f 6e 61 6d 65 20 3a 3d 20 38 3b 0a 20 20 6c 5f 64 5f 73 70 65 63 ┆ 12; l_d_name := 8; l_d_spec┆ 0x20a80…20aa0 20 3a 3d 20 32 3b 0a 20 20 6c 5f 64 5f 69 6e 64 65 78 20 3a 3d 20 34 3b 0a 20 20 6c 5f 64 5f 6c ┆ := 2; l_d_index := 4; l_d_l┆ 0x20aa0…20ac0 69 6e 65 5f 6e 6f 20 3a 3d 20 36 3b 0a 20 20 6c 5f 64 5f 63 68 61 69 6e 20 3a 3d 20 38 3b 0a 20 ┆ine_no := 6; l_d_chain := 8; ┆ 0x20ac0…20ae0 20 6c 5f 64 5f 72 65 63 6f 72 64 5f 6c 65 6e 67 74 68 20 3a 3d 20 38 3b 0a 0a 20 20 6c 5f 72 5f ┆ l_d_record_length := 8; l_r_┆ 0x20ae0…20b00 63 68 61 69 6e 20 3a 3d 20 32 3b 0a 20 20 6c 5f 72 5f 6e 61 6d 65 20 20 3a 3d 20 36 3b 0a 20 20 ┆chain := 2; l_r_name := 6; ┆ 0x20b00…20b20 6c 5f 72 5f 69 6e 64 65 78 20 3a 3d 20 38 3b 0a 20 20 6c 5f 72 5f 6c 69 6e 65 5f 6e 6f 20 3a 3d ┆l_r_index := 8; l_r_line_no :=┆ 0x20b20…20b40 20 31 30 3b 0a 20 20 6c 5f 72 5f 65 6c 65 6d 65 6e 74 5f 6e 6f 20 3a 3d 20 31 32 3b 0a 20 20 6c ┆ 10; l_r_element_no := 12; l┆ 0x20b40…20b60 5f 72 5f 72 65 63 6f 72 64 5f 6c 65 6e 67 74 68 20 3a 3d 20 31 32 3b 0a 20 20 6c 5f 72 5f 72 65 ┆_r_record_length := 12; l_r_re┆ 0x20b60…20b80 63 6f 72 64 5f 63 68 61 69 6e 5f 68 65 61 64 20 3a 3d 2d 31 3b 20 3c 2a 20 6e 6f 20 6c 61 62 65 ┆cord_chain_head :=-1; <* no labe┆ 0x20b80…20ba0 6c 20 72 65 66 66 65 72 65 6e 63 65 20 62 6c 6f 63 6b 73 20 2a 3e 0a 20 20 6e 61 6d 65 5f 6e 61 ┆l refference blocks *> name_na┆ 0x20ba0…20bc0 6d 65 20 3a 3d 20 38 3b 0a 20 20 6e 61 6d 65 5f 63 68 61 69 6e 20 3a 3d 20 32 3b 0a 20 20 6e 61 ┆me := 8; name_chain := 2; na┆ 0x20bc0…20be0 6d 65 5f 74 79 70 65 20 3a 3d 20 34 3b 0a 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 30 2c 30 29 20 ┆me_type := 4; name_table(0,0) ┆ 0x20be0…20c00 3a 3d 20 6e 61 6d 65 5f 74 61 62 6c 65 5f 6c 65 6e 67 74 68 3b 0a 20 20 3c 2a 20 61 73 6d 2e 20 ┆:= name_table_length; <* asm. ┆ 0x20c00…20c20 62 65 67 69 6e 20 2a 3e 0a 20 20 20 20 70 72 6f 6d 5f 63 6f 64 65 20 3a 3d 20 2d 31 3b 0a 20 20 ┆begin *> prom_code := -1; ┆ 0x20c20…20c40 20 20 66 6f 72 20 69 6e 64 65 78 20 3a 3d 20 30 20 73 74 65 70 20 31 20 75 6e 74 69 6c 20 6c 65 ┆ for index := 0 step 1 until le┆ 0x20c40…20c60 6e 67 74 68 5f 6f 66 5f 63 6f 64 65 2d 31 20 64 6f 0a 20 20 20 20 6f 70 63 6f 64 65 28 69 6e 64 ┆ngth_of_code-1 do opcode(ind┆ 0x20c60…20c80 65 78 29 3a 3d 70 72 6f 6d 5f 63 6f 64 65 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 6e ┆ex):=prom_code; begin in┆ 0x20c80…20ca0 74 65 67 65 72 20 61 72 72 61 79 20 74 61 69 6c 28 31 3a 32 30 29 3b 0a 20 20 20 20 7a 6f 6e 65 ┆teger array tail(1:20); zone┆ 0x20ca0…20cc0 20 64 75 6d 6d 79 28 31 32 38 2c 31 2c 73 74 64 65 72 72 6f 72 29 3b 0a 20 20 20 20 72 65 61 6c ┆ dummy(128,1,stderror); real┆ 0x20cc0…20ce0 20 72 3b 0a 20 20 20 20 69 6e 74 65 67 65 72 20 69 2c 6a 2c 6c 6f 6f 6b 75 70 5f 72 65 73 75 6c ┆ r; integer i,j,lookup_resul┆ 0x20ce0…20d00 74 3b 0a 20 20 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 6d 69 63 5f 61 73 6d 5f 70 72 6f 67 5f 6e ┆t; long array mic_asm_prog_n┆ 0x20d00…20d20 61 6d 65 2c 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 28 31 3a 32 29 3b 0a 20 20 20 20 69 3a 3d 73 79 ┆ame,program_name(1:2); i:=sy┆ 0x20d20…20d40 73 74 65 6d 28 32 2c 6a 2c 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 6f 70 65 6e ┆stem(2,j,program_name); open┆ 0x20d40…20d60 28 64 75 6d 6d 79 2c 34 2c 70 72 6f 67 72 61 6d 6e 61 6d 65 2c 30 29 3b 0a 20 20 20 20 6c 6f 6f ┆(dummy,4,programname,0); loo┆ 0x20d60…20d80 6b 75 70 5f 72 65 73 75 6c 74 3a 3d 6d 6f 6e 69 74 6f 72 28 34 32 2c 64 75 6d 6d 79 2c 30 2c 74 ┆kup_result:=monitor(42,dummy,0,t┆ 0x20d80…20da0 61 69 6c 29 3b 0a 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 22 66 66 22 2c 31 2c 3c 3a 4d 69 63 ┆ail); write(out,"ff",1,<:Mic┆ 0x20da0…20dc0 72 6f 20 61 73 6d 2e 3a 5f 3a 3e 2c 74 72 75 65 2c 31 32 2c 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 ┆ro asm.:_:>,true,12,program_name┆ 0x20dc0…20de0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3a 20 76 65 72 73 69 6f 6e 20 64 61 74 65 ┆, <: version date┆ 0x20de0…20e00 2e 3a 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 3c 3c 7a 64 64 64 64 64 2e 64 64 64 64 3e 2c 73 79 ┆.:>, <<zddddd.dddd>,sy┆ 0x20e00…20e20 73 74 69 6d 65 28 36 2c 74 61 69 6c 28 36 29 2c 72 29 20 2b 20 72 2f 31 30 30 30 30 30 30 2c 22 ┆stime(6,tail(6),r) + r/1000000,"┆ 0x20e20…20e40 6e 6c 22 2c 31 29 3b 0a 20 20 20 20 63 6c 6f 73 65 28 64 75 6d 6d 79 2c 74 72 75 65 29 3b 0a 20 ┆nl",1); close(dummy,true); ┆ 0x20e40…20e60 20 69 66 20 63 6f 6e 6e 65 63 74 5f 66 69 6c 65 5f 69 6e 28 6d 69 63 5f 61 73 6d 5f 70 72 6f 67 ┆ if connect_file_in(mic_asm_prog┆ 0x20e60…20e80 5f 6e 61 6d 65 29 20 3d 20 34 20 74 68 65 6e 0a 20 20 77 72 69 74 65 28 6f 75 74 2c 22 6e 6c 22 ┆_name) = 4 then write(out,"nl"┆ 0x20e80…20ea0 2c 31 2c 22 2a 22 2c 35 2c 3c 3a 53 6f 75 72 63 65 20 66 69 6c 65 20 63 6f 6e 6e 65 63 74 20 65 ┆,1,"*",5,<:Source file connect e┆ 0x20ea0…20ec0 72 72 6f 72 3a 3a 3e 2c 0a 20 20 20 20 20 20 20 20 6d 69 63 5f 61 73 6d 5f 70 72 6f 67 5f 6e 61 ┆rror::>, mic_asm_prog_na┆ 0x20ec0…20ee0 6d 65 29 3b 0a 20 20 20 20 67 65 74 5f 63 6f 6e 6e 65 63 74 65 64 5f 6e 61 6d 65 28 69 6e 2c 6d ┆me); get_connected_name(in,m┆ 0x20ee0…20f00 69 63 61 73 6d 5f 70 72 6f 67 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 6c 6f 6f 6b 75 70 5f 72 65 73 ┆icasm_prog_name); lookup_res┆ 0x20f00…20f20 75 6c 74 3a 3d 6d 6f 6e 69 74 6f 72 28 34 32 2c 69 6e 2c 30 2c 74 61 69 6c 29 3b 0a 20 20 20 20 ┆ult:=monitor(42,in,0,tail); ┆ 0x20f20…20f40 77 72 69 74 65 28 6f 75 74 2c 22 6e 6c 22 2c 31 2c 3c 3a 53 6f 75 72 63 65 20 66 69 6c 65 3a 3a ┆write(out,"nl",1,<:Source file::┆ 0x20f40…20f60 3e 2c 74 72 75 65 2c 31 32 2c 0a 20 20 20 20 20 20 20 20 20 20 6d 69 63 5f 61 73 6d 5f 70 72 6f ┆>,true,12, mic_asm_pro┆ 0x20f60…20f80 67 5f 6e 61 6d 65 2c 3c 3a 20 76 65 72 73 69 6f 6e 20 64 61 74 65 2e 3a 3e 2c 0a 20 20 20 20 20 ┆g_name,<: version date.:>, ┆ 0x20f80…20fa0 20 20 20 20 20 3c 3c 7a 64 64 64 64 64 2e 64 64 64 64 3e 2c 73 79 73 74 69 6d 65 28 36 2c 74 61 ┆ <<zddddd.dddd>,systime(6,ta┆ 0x20fa0…20fc0 69 6c 28 36 29 2c 72 29 2b 72 2f 31 30 30 30 30 30 30 2c 22 6e 6c 22 2c 31 29 3b 0a 0a 0a 20 20 ┆il(6),r)+r/1000000,"nl",1); ┆ 0x20fc0…20fe0 20 20 3c 2a 20 63 6f 6e 74 72 6f 6c 20 69 66 20 61 6e 79 20 61 6e 64 20 67 65 74 20 6e 61 6d 65 ┆ <* control if any and get name┆ 0x20fe0…21000 20 6f 66 20 6f 62 6a 65 63 74 20 66 69 6c 65 20 2a 3e 0a 20 20 20 20 69 66 20 67 65 74 5f 6c 65 ┆ of object file *> if get_le┆ 0x21000…21020 66 74 5f 73 69 64 65 28 6f 62 6a 65 63 74 5f 66 69 6c 65 5f 6e 61 6d 65 29 20 3d 20 30 20 74 68 ┆ft_side(object_file_name) = 0 th┆ 0x21020…21040 65 6e 0a 20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 5f 66 69 6c 65 20 3a 3d 20 74 72 75 65 20 ┆en object_file := true ┆ 0x21040…21060 65 6c 73 65 20 6f 62 6a 65 63 74 5f 66 69 6c 65 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 69 ┆else object_file := false; i┆ 0x21060…21080 66 20 6f 62 6a 65 63 74 5f 66 69 6c 65 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 ┆f object_file then begin ┆ 0x21080…210a0 20 6f 70 65 6e 28 64 75 6d 6d 79 2c 30 2c 6f 62 6a 65 63 74 5f 66 69 6c 65 5f 6e 61 6d 65 2c 30 ┆ open(dummy,0,object_file_name,0┆ 0x210a0…210c0 29 3b 0a 20 20 20 20 6c 6f 6f 6b 75 70 5f 72 65 73 75 6c 74 20 3a 3d 20 6d 6f 6e 69 74 6f 72 28 ┆); lookup_result := monitor(┆ 0x210c0…210e0 34 32 29 20 6c 6f 6f 6b 75 70 20 74 61 69 6c 3a 28 64 75 6d 6d 79 2c 30 2c 74 61 69 6c 29 3b 0a ┆42) lookup tail:(dummy,0,tail); ┆ 0x210e0…21100 20 20 20 20 0a 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 5f 72 65 73 75 6c 74 20 3c 3e 20 30 20 74 ┆ if lookup_result <> 0 t┆ 0x21100…21120 68 65 6e 0a 20 20 20 20 20 20 20 6f 62 6a 65 63 74 5f 66 69 6c 65 20 3a 3d 20 66 61 6c 73 65 3b ┆hen object_file := false;┆ 0x21120…21140 0a 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 22 6e 6c 22 2c 31 2c 69 66 20 6c 6f 6f 6b 75 70 5f ┆ write(out,"nl",1,if lookup_┆ 0x21140…21160 72 65 73 75 6c 74 20 3d 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3a ┆result = 0 then <:┆ 0x21160…21180 4f 62 6a 65 63 74 20 66 69 6c 65 3a 3a 3e 20 65 6c 73 65 20 3c 3a 2a 2a 2a 20 55 6e 6b 6e 6f 77 ┆Object file::> else <:*** Unknow┆ 0x21180…211a0 6e 20 6f 62 6a 65 63 74 20 66 69 6c 65 3a 3a 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆n object file::>, ┆ 0x211a0…211c0 74 72 75 65 2c 31 32 2c 6f 62 6a 65 63 74 5f 66 69 6c 65 5f 6e 61 6d 65 2c 22 6e 6c 22 2c 31 29 ┆true,12,object_file_name,"nl",1)┆ 0x211c0…211e0 3b 0a 20 20 20 20 63 6c 6f 73 65 28 64 75 6d 6d 79 2c 74 72 75 65 29 3b 0a 20 20 20 20 65 6e 64 ┆; close(dummy,true); end┆ 0x211e0…21200 3b 0a 20 20 65 6e 64 20 62 6c 6f 63 6b 20 77 69 74 68 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 66 69 ┆; end block with control of fi┆ 0x21200…21220 6c 65 73 3b 0a 0a 0a 0a 20 20 20 20 3c 2a 20 67 65 74 20 61 6e 64 20 63 6f 6e 74 72 6f 6c 20 6f ┆les; <* get and control o┆ 0x21220…21240 66 20 6f 74 68 65 72 20 70 61 72 61 6d 65 74 65 72 73 2c 0a 20 20 20 20 20 20 20 75 6e 6b 6e 6f ┆f other parameters, unkno┆ 0x21240…21260 77 6e 20 70 61 72 61 6d 65 74 65 72 73 20 69 73 20 69 67 6e 6f 72 65 64 2e 20 2a 3e 0a 20 20 20 ┆wn parameters is ignored. *> ┆ 0x21260…21280 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 68 65 6c 70 3a 3e 2c 68 65 6c 70 5f 77 ┆ get_bool_string(<:help:>,help_w┆ 0x21280…212a0 61 6e 74 65 64 29 3b 0a 20 20 20 20 69 66 20 68 65 6c 70 5f 77 61 6e 74 65 64 20 74 68 65 6e 20 ┆anted); if help_wanted then ┆ 0x212a0…212c0 68 65 6c 70 5f 73 74 72 69 6e 67 28 3c 3a 6d 69 63 61 73 6d 68 65 6c 70 3a 3e 29 3b 0a 20 20 20 ┆help_string(<:micasmhelp:>); ┆ 0x212c0…212e0 20 69 66 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 6d 65 73 73 61 67 65 3a 3e 2c ┆ if get_bool_string(<:message:>,┆ 0x212e0…21300 6d 65 73 73 61 67 65 5f 6c 69 73 74 29 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 6d 65 ┆message_list) <> 0 then me┆ 0x21300…21320 (59,) 73 73 61 67 65 5f 6c 69 73 74 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 6c 69 73 74 5f 61 6c 6c ┆ssage_list := true; list_all┆ 0x21320…21340 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 69 66 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e ┆ := false; if get_bool_strin┆ 0x21340…21360 67 28 3c 3a 6c 69 73 74 3a 3e 2c 6c 69 73 74 29 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 ┆g(<:list:>,list) <> 0 then ┆ 0x21360…21380 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 70 61 72 61 6d 5f ┆ begin long array param_┆ 0x21380…213a0 6e 61 6d 65 28 31 3a 32 29 3b 0a 20 20 20 20 20 20 20 69 66 20 67 65 74 5f 74 65 78 74 5f 73 74 ┆name(1:2); if get_text_st┆ 0x213a0…213c0 72 69 6e 67 28 3c 3a 6c 69 73 74 3a 3e 2c 70 61 72 61 6d 5f 6e 61 6d 65 29 20 3d 20 30 20 74 68 ┆ring(<:list:>,param_name) = 0 th┆ 0x213c0…213e0 65 6e 0a 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 69 66 20 70 61 ┆en begin if pa┆ 0x213e0…21400 72 61 6d 5f 6e 61 6d 65 28 31 29 20 3d 20 6c 6f 6e 67 20 3c 3a 61 6c 6c 3a 3e 20 74 68 65 6e 20 ┆ram_name(1) = long <:all:> then ┆ 0x21400…21420 6c 69 73 74 3a 3d 6c 69 73 74 5f 61 6c 6c 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 ┆list:=list_all := true; ┆ 0x21420…21440 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66 20 67 65 74 5f 62 6f 6f ┆ end; end; if get_boo┆ 0x21440…21460 6c 5f 73 74 72 69 6e 67 28 3c 3a 6c 69 6e 65 6e 75 6d 3a 3e 2c 6c 69 6e 65 5f 6e 75 6d 29 20 3c ┆l_string(<:linenum:>,line_num) <┆ 0x21460…21480 3e 20 30 20 74 68 65 6e 20 6c 69 6e 65 5f 6e 75 6d 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 69 66 ┆> 0 then line_num:= true; if┆ 0x21480…214a0 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 64 65 63 63 6f 64 65 3a 3e 2c 64 65 63 ┆ get_bool_string(<:deccode:>,dec┆ 0x214a0…214c0 5f 63 6f 64 65 29 20 3c 3e 20 30 20 74 68 65 6e 20 64 65 63 5f 63 6f 64 65 20 3a 3d 20 74 72 75 ┆_code) <> 0 then dec_code := tru┆ 0x214c0…214e0 65 3b 0a 20 20 20 20 69 66 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 6f 63 74 61 ┆e; if get_bool_string(<:octa┆ 0x214e0…21500 6c 3a 3e 2c 6f 63 74 61 6c 5f 63 6f 64 65 29 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆l:>,octal_code) <> 0 then ┆ 0x21500…21520 62 65 67 69 6e 0a 20 20 20 20 20 20 6f 63 74 61 6c 5f 63 6f 64 65 20 3a 3d 20 74 72 75 65 3b 0a ┆begin octal_code := true; ┆ 0x21520…21540 20 20 20 20 20 20 69 66 20 67 65 74 5f 74 65 78 74 5f 73 74 72 69 6e 67 28 3c 3a 6f 63 74 61 6c ┆ if get_text_string(<:octal┆ 0x21540…21560 3a 3e 2c 70 61 72 61 6d 5f 6e 61 6d 65 29 20 3d 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 ┆:>,param_name) = 0 then ┆ 0x21560…21580 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 6e 61 6d 65 28 31 29 20 3d ┆begin if param_name(1) =┆ 0x21580…215a0 20 6c 6f 6e 67 20 3c 3a 6f 6e 6c 79 3a 3e 20 74 68 65 6e 20 64 65 63 5f 63 6f 64 65 3a 3d 20 6c ┆ long <:only:> then dec_code:= l┆ 0x215a0…215c0 69 6e 65 5f 6e 75 6d 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 ┆ine_num := false; end; ┆ 0x215c0…215e0 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66 20 67 65 74 5f 74 65 78 74 5f 73 74 72 69 6e 67 ┆ end; if get_text_string┆ 0x215e0…21600 28 3c 3a 66 69 6e 64 3a 3e 2c 66 69 6e 64 5f 6e 61 6d 65 29 20 3d 20 30 20 74 68 65 6e 20 66 69 ┆(<:find:>,find_name) = 0 then fi┆ 0x21600…21620 6e 64 20 3a 3d 20 74 72 75 65 3b 0a 0a 20 20 20 20 69 66 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 ┆nd := true; if get_bool_str┆ 0x21620…21640 69 6e 67 28 3c 3a 65 72 72 6f 72 73 3a 3e 2c 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 29 ┆ing(<:errors:>,list_error_lines)┆ 0x21640…21660 20 3c 3e 20 30 20 61 6e 64 0a 20 20 20 20 20 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 ┆ <> 0 and get_bool_string(┆ 0x21660…21680 3c 3a 65 72 72 6f 72 6c 69 6e 65 73 3a 3e 2c 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 29 ┆<:errorlines:>,list_error_lines)┆ 0x21680…216a0 20 3c 3e 20 30 20 61 6e 64 0a 20 20 20 20 20 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 ┆ <> 0 and get_bool_string(┆ 0x216a0…216c0 3c 3a 65 6c 73 3a 3e 2c 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 29 20 3c 3e 20 30 20 74 ┆<:els:>,list_error_lines) <> 0 t┆ 0x216c0…216e0 68 65 6e 0a 20 20 20 20 20 20 20 20 20 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 20 3a 3d ┆hen list_error_lines :=┆ 0x216e0…21700 20 74 72 75 65 3b 0a 20 20 20 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 63 6f 64 ┆ true; get_bool_string(<:cod┆ 0x21700…21720 65 3a 3e 2c 70 72 69 6e 74 5f 63 6f 64 65 29 3b 0a 20 20 20 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 ┆e:>,print_code); get_bool_st┆ 0x21720…21740 72 69 6e 67 28 3c 3a 6c 61 62 65 6c 78 72 65 66 3a 3e 2c 74 65 73 74 5f 6c 61 62 65 6c 5f 72 65 ┆ring(<:labelxref:>,test_label_re┆ 0x21740…21760 66 29 3b 0a 20 20 20 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 6c 61 62 65 6c 62 ┆f); get_bool_string(<:labelb┆ 0x21760…21780 69 74 3a 3e 2c 74 65 73 74 5f 6c 61 62 65 6c 5f 62 69 74 29 3b 0a 20 20 20 20 67 65 74 5f 62 6f ┆it:>,test_label_bit); get_bo┆ 0x21780…217a0 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 65 6e 74 72 79 3a 3e 2c 65 6e 74 72 79 5f 6c 69 73 74 5f 77 ┆ol_string(<:entry:>,entry_list_w┆ 0x217a0…217c0 61 6e 74 65 64 29 3b 0a 20 20 20 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 62 69 ┆anted); get_bool_string(<:bi┆ 0x217c0…217e0 74 6c 69 6e 65 73 3a 3e 2c 6c 69 73 74 5f 62 69 74 5f 6c 69 6e 65 73 29 3b 0a 20 20 20 20 72 65 ┆tlines:>,list_bit_lines); re┆ 0x217e0…21800 74 75 72 6e 5f 66 72 6f 6d 5f 73 6b 69 70 20 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 20 20 3c 2a ┆turn_from_skip := false; <*┆ 0x21800…21820 20 69 6e 69 74 69 61 6c 69 7a 69 6e 67 20 6f 66 20 63 6f 75 6e 74 69 6e 67 20 76 61 72 69 61 62 ┆ initializing of counting variab┆ 0x21820…21840 6c 65 73 20 61 6e 64 0a 20 20 20 20 20 20 20 72 65 61 64 69 6e 67 20 6f 66 20 66 69 72 73 74 20 ┆les and reading of first ┆ 0x21840…21860 63 6f 64 65 20 6c 69 6e 65 20 2a 3e 0a 20 20 20 20 0a 0a 20 20 20 20 69 6e 73 74 72 5f 69 6e 64 ┆code line *> instr_ind┆ 0x21860…21880 65 78 3a 3d 30 3b 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 70 72 65 73 65 6e 74 5f 63 ┆ex:=0; present_c┆ 0x21880…218a0 6f 64 65 20 3a 3d 20 6e 6f 70 5f 63 6f 64 65 3b 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 ┆ode := nop_code; ┆ 0x218a0…218c0 20 65 72 72 6f 72 5f 69 6e 5f 74 68 69 73 5f 6c 69 6e 65 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 ┆ error_in_this_line := false; ┆ 0x218c0…218e0 20 20 6c 69 6e 65 5f 6e 6f 20 3a 3d 20 30 3b 0a 20 20 20 20 72 65 61 64 5f 6e 65 78 74 5f 73 6f ┆ line_no := 0; read_next_so┆ 0x218e0…21900 75 72 63 65 5f 6c 69 6e 65 3b 0a 0a 77 68 69 6c 65 20 63 6c 61 73 73 20 3c 3e 20 65 6f 66 5f 63 ┆urce_line; while class <> eof_c┆ 0x21900…21920 6c 61 73 73 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 ┆lass do begin if class┆ 0x21920…21940 20 3d 20 73 74 6f 70 5f 6c 69 6e 65 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 ┆ = stop_line_class then be┆ 0x21940…21960 67 69 6e 0a 20 20 20 20 20 20 20 20 3c 2a 20 0a 20 20 20 20 20 20 65 6e 64 20 6c 69 6e 65 20 2c ┆gin <* end line ,┆ 0x21960…21980 20 6f 72 0a 63 6f 6d 6d 65 6e 74 20 20 20 20 20 20 2e 20 43 6f 6d 6d 61 6e 74 20 77 69 6c 20 62 ┆ or comment . Commant wil b┆ 0x21980…219a0 65 20 62 65 20 63 72 65 61 74 65 64 20 62 79 0a 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 ┆e be created by get_next_element┆ 0x219a0…219c0 20 20 20 20 20 20 20 2a 3e 0a 69 66 20 28 6c 69 73 74 20 6f 72 20 28 65 72 72 6f 72 5f 69 6e 5f ┆ *> if (list or (error_in_┆ 0x219c0…219e0 74 68 69 73 5f 6c 69 6e 65 20 61 6e 64 20 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 20 29 ┆this_line and list_error_lines )┆ 0x219e0…21a00 20 20 0a 20 20 20 20 6f 72 20 28 20 66 69 6e 64 20 61 6e 64 20 66 6f 75 6e 64 20 29 29 0a 20 20 ┆ or ( find and found )) ┆ 0x21a00…21a20 20 20 61 6e 64 20 28 20 2d 2c 20 72 65 74 75 72 6e 5f 66 72 6f 6d 5f 73 6b 69 70 20 6f 72 20 6c ┆ and ( -, return_from_skip or l┆ 0x21a20…21a40 69 73 74 5f 61 6c 6c 29 20 74 68 65 6e 0a 20 20 20 20 6c 69 73 74 5f 6c 69 6e 65 3b 0a 72 65 74 ┆ist_all) then list_line; ret┆ 0x21a40…21a60 75 72 6e 5f 66 72 6f 6d 5f 73 6b 69 70 20 3a 3d 20 66 61 6c 73 65 3b 0a 66 6f 75 6e 64 20 3a 3d ┆urn_from_skip := false; found :=┆ 0x21a60…21a80 20 66 61 6c 73 65 3b 0a 20 20 20 20 69 66 20 70 72 69 6e 74 5f 63 6f 64 65 20 61 6e 64 20 63 6f ┆ false; if print_code and co┆ 0x21a80…21aa0 64 65 5f 67 65 6e 65 72 61 74 65 64 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆de_generated then begin ┆ 0x21aa0…21ac0 69 66 20 2d 2c 20 6c 69 73 74 20 20 61 6e 64 20 2d 2c 20 6c 69 73 74 5f 62 69 74 5f 6c 69 6e 65 ┆if -, list and -, list_bit_line┆ 0x21ac0…21ae0 73 20 61 6e 64 0a 20 20 20 20 20 20 20 2d 2c 20 28 65 72 72 6f 72 5f 69 6e 5f 74 68 69 73 5f 6c ┆s and -, (error_in_this_l┆ 0x21ae0…21b00 69 6e 65 20 61 6e 64 20 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 29 20 74 68 65 6e 0a 20 ┆ine and list_error_lines) then ┆ 0x21b00…21b20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 3c 3c 2d 7a 64 64 64 3e 2c 69 6e 73 74 72 5f 69 6e ┆ write(out,<<-zddd>,instr_in┆ 0x21b20…21b40 64 65 78 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 63 74 61 6c 28 65 78 74 65 6e 64 20 69 ┆dex, octal(extend i┆ 0x21b40…21b60 6e 73 74 72 5f 69 6e 64 65 78 29 2c 22 73 70 22 2c 31 29 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 ┆nstr_index),"sp",1) else ┆ 0x21b60…21b80 20 20 69 66 20 2d 2c 20 6c 69 73 74 20 61 6e 64 20 6c 69 73 74 5f 62 69 74 5f 6c 69 6e 65 73 20 ┆ if -, list and list_bit_lines ┆ 0x21b80…21ba0 20 61 6e 64 0a 20 20 20 20 20 20 2d 2c 20 28 65 72 72 6f 72 5f 69 6e 5f 74 68 69 73 5f 6c 69 6e ┆ and -, (error_in_this_lin┆ 0x21ba0…21bc0 65 20 61 6e 64 20 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 29 20 74 68 65 6e 0a 20 20 20 ┆e and list_error_lines) then ┆ 0x21bc0…21be0 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 6c 69 73 74 5f 6c 69 6e 65 3b 0a 20 20 20 20 20 20 ┆ begin list_line; ┆ 0x21be0…21c00 77 72 69 74 65 28 6f 75 74 2c 3c 3a 20 20 20 20 20 20 20 20 20 20 3a 3e 29 3b 0a 20 20 20 20 20 ┆write(out,<: :>); ┆ 0x21c00…21c20 (60,) 20 65 6e 64 0a 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 3c ┆ end else write(out,<┆ 0x21c20…21c40 3a 20 20 20 20 20 20 20 20 20 20 3a 3e 29 3b 0a 20 20 20 20 20 20 70 72 69 6e 74 5f 66 6f 72 6d ┆: :>); print_form┆ 0x21c40…21c60 61 74 65 64 28 70 72 65 73 65 6e 74 5f 63 6f 64 65 29 3b 0a 20 20 20 20 20 20 6f 75 74 63 68 61 ┆ated(present_code); outcha┆ 0x21c60…21c80 72 28 6f 75 74 2c 31 30 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66 20 63 6f 64 65 5f ┆r(out,10); end; if code_┆ 0x21c80…21ca0 67 65 6e 65 72 61 74 65 64 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 6f ┆generated then begin o┆ 0x21ca0…21cc0 70 5f 63 6f 64 65 28 69 6e 73 74 72 5f 69 6e 64 65 78 29 3a 3d 70 72 65 73 65 6e 74 5f 63 6f 64 ┆p_code(instr_index):=present_cod┆ 0x21cc0…21ce0 65 3b 0a 20 20 20 20 20 20 69 6e 73 74 72 5f 69 6e 64 65 78 3a 3d 69 6e 73 74 72 5f 69 6e 64 65 ┆e; instr_index:=instr_inde┆ 0x21ce0…21d00 78 2b 31 3b 0a 20 20 20 20 20 20 70 72 65 73 65 6e 74 5f 63 6f 64 65 20 3a 3d 20 6e 6f 70 5f 63 ┆x+1; present_code := nop_c┆ 0x21d00…21d20 6f 64 65 3b 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 65 6e 64 3b 0a 20 20 3c 2a 20 72 ┆ode; end; <* r┆ 0x21d20…21d40 65 61 64 20 6e 65 78 74 20 6c 69 6e 65 20 6f 66 20 73 6f 75 72 63 65 20 20 74 65 78 74 20 2a 3e ┆ead next line of source text *>┆ 0x21d40…21d60 0a 20 20 72 65 61 64 5f 6e 65 78 74 5f 73 6f 75 72 63 65 5f 6c 69 6e 65 3b 0a 20 20 65 6e 64 20 ┆ read_next_source_line; end ┆ 0x21d60…21d80 63 6c 61 73 73 20 32 20 6e 65 77 20 6c 69 6e 65 0a 20 20 65 6c 73 65 0a 20 20 69 66 20 63 6c 61 ┆class 2 new line else if cla┆ 0x21d80…21da0 73 73 20 3d 20 74 65 78 74 5f 63 6c 61 73 73 20 6f 72 20 63 6c 61 73 73 20 3d 20 75 6e 6b 6e 6f ┆ss = text_class or class = unkno┆ 0x21da0…21dc0 77 6e 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 63 ┆wn_name_class then begin c┆ 0x21dc0…21de0 6c 61 73 73 5f 32 20 3a 3d 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 73 73 3b 0a 20 20 20 20 ┆lass_2 := look_ahead_class; ┆ 0x21de0…21e00 69 66 20 63 6c 61 73 73 5f 32 20 3d 20 63 6f 6c 6f 6e 5f 63 6c 61 73 73 20 6f 72 20 63 6c 61 73 ┆if class_2 = colon_class or clas┆ 0x21e00…21e20 73 5f 32 20 3d 20 73 6c 61 73 68 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 ┆s_2 = slash_class then beg┆ 0x21e20…21e40 69 6e 0a 20 20 20 20 20 20 69 66 20 65 6c 65 6d 65 6e 74 5f 6e 6f 20 3d 20 31 20 61 6e 64 20 63 ┆in if element_no = 1 and c┆ 0x21e40…21e60 6c 61 73 73 20 3d 20 75 6e 6b 6e 6f 77 6e 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 ┆lass = unknown_name_class then ┆ 0x21e60…21e80 20 20 20 20 20 20 20 62 65 67 69 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ begin ┆ 0x21e80…21ea0 0a 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 32 20 3d 20 73 6c 61 73 68 5f 63 6c 61 73 73 ┆ if class2 = slash_class┆ 0x21ea0…21ec0 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 ┆ then begin ┆ 0x21ec0…21ee0 73 6b 69 70 5f 6e 65 78 74 3b 0a 20 20 20 20 20 20 20 20 20 20 63 6c 61 73 73 32 20 3a 3d 20 6c ┆skip_next; class2 := l┆ 0x21ee0…21f00 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 73 73 3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c ┆ook_ahead_class; if cl┆ 0x21f00…21f20 61 73 73 32 20 3d 20 6e 75 6d 62 65 72 5f 63 6c 61 73 73 20 6f 72 20 63 6c 61 73 73 32 20 3d 20 ┆ass2 = number_class or class2 = ┆ 0x21f20…21f40 63 6f 6c 6f 6e 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 ┆colon_class then be┆ 0x21f40…21f60 67 69 6e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 5f 32 20 3d 20 6e ┆gin if class_2 = n┆ 0x21f60…21f80 75 6d 62 65 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆umber_class then ┆ 0x21f80…21fa0 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 31 3b 0a 20 20 20 20 ┆begin next1; ┆ 0x21fa0…21fc0 20 20 20 20 20 20 20 20 20 20 20 63 6c 61 73 73 32 20 3a 3d 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f ┆ class2 := look_ahead_┆ 0x21fc0…21fe0 63 6c 61 73 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 ┆class; end ┆ 0x21fe0…22000 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 ┆ else numbe┆ 0x22000…22020 72 5f 31 20 3a 3d 20 6c 69 6e 65 5f 6e 6f 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 ┆r_1 := line_no; if ┆ 0x22020…22040 63 6c 61 73 73 32 20 3d 20 63 6f 6c 6f 6e 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆class2 = colon_class then ┆ 0x22040…22060 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 ┆ begin ne┆ 0x22060…22080 77 5f 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 64 65 66 28 6e 61 6d 65 2c 6e 75 6d 62 65 72 2c 69 ┆w_insert_label_def(name,number,i┆ 0x22080…220a0 6e 73 74 72 5f 69 6e 64 65 78 2c 6c 69 6e 65 5f 6e 6f 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆nstr_index,line_no, ┆ 0x220a0…220c0 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 28 31 2b 61 62 73 ┆ (1+abs┆ 0x220c0…220e0 28 6e 75 6d 62 65 72 31 29 29 20 65 78 74 72 61 63 74 20 32 34 29 3b 0a 20 20 20 20 20 20 20 20 ┆(number1)) extract 24); ┆ 0x220e0…22100 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 ┆ end else er┆ 0x22100…22120 72 6f 72 28 64 69 72 65 63 74 69 76 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f ┆ror(directive,line_no,element_no┆ 0x22120…22140 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆); end ┆ 0x22140…22160 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 64 69 72 65 63 74 69 76 ┆else error(directiv┆ 0x22160…22180 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 20 ┆e,line_no,element_no); ┆ 0x22180…221a0 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 ┆ end else ┆ 0x221a0…221c0 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 5f 69 6e 73 ┆ begin new_ins┆ 0x221c0…221e0 65 72 74 5f 6c 61 62 65 6c 5f 64 65 66 28 6e 61 6d 65 2c 6e 75 6d 62 65 72 2c 69 6e 73 74 72 5f ┆ert_label_def(name,number,instr_┆ 0x221e0…22200 69 6e 64 65 78 2c 6c 69 6e 65 5f 6e 6f 2c 30 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 ┆index,line_no,0); e┆ 0x22200…22220 6e 64 3b 0a 20 20 20 20 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 ┆nd; next; end ┆ 0x22220…22240 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 65 72 72 6f 72 ┆ else error┆ 0x22240…22260 28 6c 61 62 65 6c 5f 64 65 63 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a ┆(label_dec,line_no,element_no); ┆ 0x22260…22280 20 20 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 65 6e 64 20 0a 20 20 20 20 65 6c 73 65 0a 20 20 ┆ next; end else ┆ 0x22280…222a0 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 75 6e 6b 6e 6f 77 6e ┆ begin if class = unknown┆ 0x222a0…222c0 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 ┆_name_class then begin ┆ 0x222c0…222e0 20 20 20 20 20 65 72 72 6f 72 28 6e 61 6d 65 5f 75 6e 6b 6e 6f 77 6e 2c 6c 69 6e 65 5f 6e 6f 2c ┆ error(name_unknown,line_no,┆ 0x222e0…22300 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 73 6b 69 70 5f 75 6e 74 69 6c 5f ┆element_no); skip_until_┆ 0x22300…22320 64 65 6c 69 6d 5f 63 6c 61 73 73 3b 0a 20 20 20 20 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 20 ┆delim_class; next; ┆ 0x22320…22340 20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 69 66 20 6e 61 6d 65 5f 74 61 ┆ end else if name_ta┆ 0x22340…22360 62 6c 65 28 6e 75 6d 62 65 72 2c 30 29 20 3d 20 61 6c 75 5f 66 75 6e 63 74 69 6f 6e 5f 74 79 70 ┆ble(number,0) = alu_function_typ┆ 0x22360…22380 65 20 74 68 65 6e 0a 20 20 20 20 20 20 61 6c 75 5f 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 ┆e then alu_function ┆ 0x22380…223a0 65 6c 73 65 0a 20 20 20 20 20 20 69 66 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c ┆else if name_table(number,┆ 0x223a0…223c0 30 29 20 3d 20 6a 75 6d 70 5f 61 64 64 72 73 5f 74 79 70 65 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆0) = jump_addrs_type then ┆ 0x223c0…223e0 6a 75 6d 70 5f 61 64 64 72 73 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 69 66 20 6e ┆jump_addrs else if n┆ 0x223e0…22400 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c 30 29 20 3d 20 6a 75 6d 70 5f 73 65 6b 76 65 ┆ame_table(number,0) = jump_sekve┆ 0x22400…22420 6e 73 5f 74 79 70 65 20 74 68 65 6e 0a 20 20 20 20 20 20 6a 75 6d 70 5f 73 65 6b 76 65 6e 73 0a ┆ns_type then jump_sekvens ┆ 0x22420…22440 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 69 66 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e ┆ else if name_table(n┆ 0x22440…22460 75 6d 62 65 72 2c 30 29 20 3d 20 6c 6f 61 64 5f 63 6f 75 6e 74 65 72 5f 74 79 70 65 20 74 68 65 ┆umber,0) = load_counter_type the┆ 0x22460…22480 6e 0a 20 20 20 20 20 20 6c 6f 61 64 5f 63 6f 75 6e 74 65 72 0a 20 20 20 20 20 20 65 6c 73 65 0a ┆n load_counter else ┆ 0x22480…224a0 20 20 20 20 20 20 69 66 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c 30 29 20 3d 20 ┆ if name_table(number,0) = ┆ 0x224a0…224c0 73 70 65 63 69 61 6c 5f 74 79 70 65 20 74 68 65 6e 0a 20 20 20 20 20 20 73 70 65 63 69 61 6c 0a ┆special_type then special ┆ 0x224c0…224e0 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 65 ┆ else begin e┆ 0x224e0…22500 72 72 6f 72 28 69 6c 6c 65 67 61 6c 5f 74 79 70 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e ┆rror(illegal_type,line_no,elemen┆ 0x22500…22520 (61,) 74 5f 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 6e 65 78 74 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 ┆t_no); next end; ┆ 0x22520…22540 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 20 74 79 70 65 20 65 71 75 61 6c 20 69 64 65 6e 74 69 66 ┆ end; end type equal identif┆ 0x22540…22560 69 65 72 0a 20 20 65 6c 73 65 0a 20 20 69 66 20 63 6c 61 73 73 20 3d 20 73 74 61 72 5f 63 6c 61 ┆ier else if class = star_cla┆ 0x22560…22580 73 73 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 3c 2a 20 41 66 74 65 72 20 73 74 61 ┆ss then begin <* After sta┆ 0x22580…225a0 72 20 69 73 20 61 73 73 6d 2e 20 64 69 72 65 63 74 69 76 65 2c 0a 20 20 20 20 31 20 64 69 72 65 ┆r is assm. directive, 1 dire┆ 0x225a0…225c0 6b 74 69 76 65 20 70 72 2e 20 6c 69 6e 65 2c 0a 20 20 20 20 61 66 74 65 72 20 74 68 65 20 64 69 ┆ktive pr. line, after the di┆ 0x225c0…225e0 72 65 6b 74 69 76 65 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 6c 69 6e 65 20 69 73 20 ┆rektive the rest of the line is ┆ 0x225e0…22600 73 6b 69 70 70 65 64 2c 0a 20 20 20 20 74 68 65 20 64 69 72 65 6b 74 69 76 65 20 73 63 68 6f 75 ┆skipped, the direktive schou┆ 0x22600…22620 6c 64 20 62 65 20 74 68 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 6c ┆ld be the first element in the l┆ 0x22620…22640 69 6e 65 20 2a 3e 0a 20 20 20 20 69 66 20 63 6f 64 65 5f 67 65 6e 65 72 61 74 65 64 20 74 68 65 ┆ine *> if code_generated the┆ 0x22640…22660 6e 20 65 72 72 6f 72 28 64 69 72 65 63 74 69 76 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e ┆n error(directive,line_no,elemen┆ 0x22660…22680 74 5f 6e 6f 29 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 6e ┆t_no) else begin n┆ 0x22680…226a0 65 78 74 31 3b 0a 20 20 20 20 20 20 6e 65 78 74 32 3b 0a 20 20 20 20 20 20 69 66 20 28 63 6c 61 ┆ext1; next2; if (cla┆ 0x226a0…226c0 73 73 31 20 3c 3e 20 39 20 61 6e 64 20 63 6c 61 73 73 31 20 3c 3e 20 36 20 29 20 6f 72 20 63 6c ┆ss1 <> 9 and class1 <> 6 ) or cl┆ 0x226c0…226e0 61 73 73 32 20 3c 3e 20 63 6f 6c 6f 6e 5f 63 6c 61 73 73 20 3c 2a 63 6f 6c 6f 6e 2a 3e 20 74 68 ┆ass2 <> colon_class <*colon*> th┆ 0x226e0…22700 65 6e 0a 20 20 20 20 20 20 65 72 72 6f 72 28 6c 6f 6e 67 20 3c 3a 74 65 73 74 20 64 69 72 20 31 ┆en error(long <:test dir 1┆ 0x22700…22720 20 3a 3e 2c 6c 69 6e 65 5f 6e 6f 2c 69 66 20 63 6c 61 73 73 32 20 3c 3e 20 63 6f 6c 6f 6e 5f 63 ┆ :>,line_no,if class2 <> colon_c┆ 0x22720…22740 6c 61 73 73 20 74 68 65 6e 20 65 6c 65 6d 65 6e 74 5f 6e 6f 20 65 6c 73 65 0a 20 20 20 20 20 20 ┆lass then element_no else ┆ 0x22740…22760 65 6c 65 6d 65 6e 74 5f 6e 6f 20 2d 31 29 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 ┆element_no -1) else ┆ 0x22760…22780 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a ┆begin if name1 = long <:┆ 0x22780…227a0 6e 61 6d 65 3a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 ┆name:> then begin ┆ 0x227a0…227c0 20 20 20 20 6e 65 78 74 31 3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 31 20 3c ┆ next1; if class1 <┆ 0x227c0…227e0 3e 20 39 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 69 66 20 63 6c 61 73 ┆> 9 then error(if clas┆ 0x227e0…22800 73 31 20 3c 3e 20 36 20 74 68 65 6e 20 6c 6f 6e 67 20 3c 3a 74 65 73 74 20 64 69 72 20 32 2e 3a ┆s1 <> 6 then long <:test dir 2.:┆ 0x22800…22820 3e 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 70 6c 75 73 5f 6e 61 6d 65 5f 64 65 63 2c 6c ┆> else plus_name_dec,l┆ 0x22820…22840 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 ┆ine_no,element_no) els┆ 0x22840…22860 65 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 ┆e begin na┆ 0x22860…22880 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 31 2c 31 29 20 3a 3d 20 6e 61 6d 65 31 3b 0a 20 20 ┆me_table(number1,1) := name1; ┆ 0x22880…228a0 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 3a 3d 30 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ index:=0; ┆ 0x228a0…228c0 20 66 6f 72 20 63 6c 61 73 73 32 20 3a 3d 20 6e 65 78 74 32 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ for class2 := next2 ┆ 0x228c0…228e0 20 77 68 69 6c 65 20 63 6c 61 73 73 32 20 3d 20 63 6f 6d 6d 61 5f 63 6c 61 73 73 20 61 6e 64 20 ┆ while class2 = comma_class and ┆ 0x228e0…22900 69 6e 64 65 78 20 3c 20 35 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 ┆index < 5 do begin ┆ 0x22900…22920 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 32 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆ next2; ┆ 0x22920…22940 20 20 69 66 20 63 6c 61 73 73 32 20 3d 20 6e 75 6d 62 65 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a ┆ if class2 = number_class then ┆ 0x22940…22960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 31 ┆ name_table(number1┆ 0x22960…22980 2c 69 6e 64 65 78 29 20 3a 3d 20 6e 75 6d 62 65 72 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆,index) := number2 ┆ 0x22980…229a0 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 32 20 3d 20 ┆ else if class2 = ┆ 0x229a0…229c0 36 20 3c 2a 20 64 65 66 69 6e 65 64 20 6e 61 6d 65 20 2a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆6 <* defined name *> then ┆ 0x229c0…229e0 20 20 20 20 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 31 2c 69 6e 64 65 78 ┆ name_table(number1,index┆ 0x229e0…22a00 29 20 3a 3d 20 6e 75 6d 62 65 72 5f 32 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 ┆) := number_2 ┆ 0x22a00…22a20 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e ┆ else begin┆ 0x22a20…22a40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 6c 6f 6e 67 20 3c 3a 74 65 ┆ error(long <:te┆ 0x22a40…22a60 73 74 20 64 69 72 2e 20 33 3a 3e 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b ┆st dir. 3:>,line_no,element_no);┆ 0x22a60…22a80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 3a 3d 31 30 30 3b 0a 20 20 20 ┆ index:=100; ┆ 0x22a80…22aa0 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 ┆ end; if┆ 0x22aa0…22ac0 20 69 6e 64 65 78 20 3d 20 30 20 74 68 65 6e 20 69 6e 64 65 78 20 3a 3d 32 20 65 6c 73 65 0a 20 ┆ index = 0 then index :=2 else ┆ 0x22ac0…22ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 6e 64 65 78 3c 31 30 30 20 74 68 65 6e 20 69 ┆ if index<100 then i┆ 0x22ae0…22b00 6e 64 65 78 3a 3d 69 6e 64 65 78 2b 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a ┆ndex:=index+1; end; ┆ 0x22b00…22b20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a ┆ end; end else ┆ 0x22b20…22b40 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 ┆ if name1 = long┆ 0x22b40…22b60 20 3c 3a 63 6f 6e 73 74 3a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a ┆ <:const:> then begin ┆ 0x22b60…22b80 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 31 3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c ┆ next1; if cl┆ 0x22b80…22ba0 61 73 73 31 20 3c 3e 20 39 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 ┆ass1 <> 9 then error┆ 0x22ba0…22bc0 28 69 66 20 63 6c 61 73 73 31 20 3c 3e 20 36 20 74 68 65 6e 20 64 69 72 65 63 74 69 76 65 20 65 ┆(if class1 <> 6 then directive e┆ 0x22bc0…22be0 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 75 73 5f 6e 61 6d 65 ┆lse plus_name┆ 0x22be0…22c00 5f 64 65 63 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a 20 20 20 20 20 20 20 ┆_dec,line_no,element_no) ┆ 0x22c00…22c20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆ else begin ┆ 0x22c20…22c40 20 20 20 20 20 20 20 20 20 6e 65 78 74 32 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 ┆ next2; if ┆ 0x22c40…22c60 63 6c 61 73 73 32 20 3d 20 63 6f 6d 6d 61 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆class2 = comma_class then ┆ 0x22c60…22c80 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 ┆ begin ne┆ 0x22c80…22ca0 78 74 32 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 32 20 3d 20 ┆xt2; if class2 = ┆ 0x22ca0…22cc0 6e 75 6d 62 65 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆number_class then ┆ 0x22cc0…22ce0 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 5f 69 6e ┆ begin new_in┆ 0x22ce0…22d00 73 65 72 74 5f 6c 61 62 65 6c 5f 64 65 66 28 6e 61 6d 65 31 2c 6e 75 6d 62 65 72 31 2c 0a 20 20 ┆sert_label_def(name1,number1, ┆ 0x22d00…22d20 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 ┆ ┆ 0x22d20…22d40 20 20 20 20 6e 75 6d 62 65 72 32 20 65 78 74 72 61 63 74 20 31 32 2c 6c 69 6e 65 5f 6e 6f 2c 30 ┆ number2 extract 12,line_no,0┆ 0x22d40…22d60 29 3b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 ┆);; end ┆ 0x22d60…22d80 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 65 72 72 6f 72 28 64 69 72 65 63 74 69 76 65 2c 6c 69 ┆ else error(directive,li┆ 0x22d80…22da0 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ne_no,element_no); ┆ 0x22da0…22dc0 20 20 65 6e 64 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 65 72 72 6f 72 28 ┆ end else error(┆ 0x22dc0…22de0 64 69 72 65 63 74 69 76 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 20 ┆directive,line_no,element_no); ┆ 0x22de0…22e00 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 65 ┆ end; end e┆ 0x22e00…22e20 (62,) 6c 73 65 0a 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c ┆lse if name1 = l┆ 0x22e20…22e40 6f 6e 67 20 3c 3a 6d 61 73 6b 3a 3e 20 74 68 65 6e 20 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e ┆ong <:mask:> then begin┆ 0x22e40…22e60 0a 20 20 20 20 20 20 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 6f 70 65 72 61 6e 64 28 31 3a 31 29 ┆ long array operand(1:1)┆ 0x22e60…22e80 3b 20 3c 2a 20 6f 6e 6c 79 20 6f 6e 65 20 77 6f 72 64 20 75 73 65 64 20 2a 3e 0a 20 20 20 20 20 ┆; <* only one word used *> ┆ 0x22e80…22ea0 20 20 20 62 6f 6f 6c 65 61 6e 20 6d 61 73 6b 5f 73 75 63 63 65 73 3b 0a 20 20 20 20 20 20 20 20 ┆ boolean mask_succes; ┆ 0x22ea0…22ec0 6c 6f 6e 67 20 6d 61 73 6b 5f 6e 61 6d 65 2c 6d 61 73 6b 5f 6e 75 6d 62 65 72 3b 0a 20 20 20 20 ┆long mask_name,mask_number; ┆ 0x22ec0…22ee0 20 20 20 20 6f 70 65 72 61 6e 64 28 31 29 20 3a 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 69 ┆ operand(1) := 0; i┆ 0x22ee0…22f00 66 20 6e 65 78 74 31 20 3c 3e 20 75 6e 6b 6e 6f 77 6e 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 74 68 ┆f next1 <> unknown_name_class th┆ 0x22f00…22f20 65 6e 0a 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 6c 6f 6e 67 20 3c 3a 20 64 69 72 65 63 ┆en error(long <: direc┆ 0x22f20…22f40 74 69 76 65 20 32 3a 3e 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a 20 20 20 ┆tive 2:>,line_no,element_no) ┆ 0x22f40…22f60 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 65 78 74 32 20 3c ┆ else if next2 <┆ 0x22f60…22f80 3e 20 63 6f 6d 6d 61 5f 63 6c 61 73 73 20 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 65 72 ┆> comma_class then er┆ 0x22f80…22fa0 72 6f 72 28 6c 6f 6e 67 20 3c 3a 64 69 72 65 63 74 69 76 65 20 33 3a 3e 2c 6c 69 6e 65 5f 6e 6f ┆ror(long <:directive 3:>,line_no┆ 0x22fa0…22fc0 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 ┆,element_no) else ┆ 0x22fc0…22fe0 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 6d 61 73 6b 5f 6e 61 6d ┆ begin mask_nam┆ 0x22fe0…23000 65 20 3a 3d 20 6e 61 6d 65 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 6d 61 73 6b 5f 6e 75 6d 62 ┆e := name1; mask_numb┆ 0x23000…23020 65 72 20 3a 3d 20 6e 75 6d 62 65 72 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 6d 61 73 6b 5f 73 ┆er := number1; mask_s┆ 0x23020…23040 75 63 63 65 73 20 3a 3d 20 72 65 61 64 5f 61 6e 64 5f 73 65 74 5f 62 69 74 73 28 6f 70 65 72 61 ┆ucces := read_and_set_bits(opera┆ 0x23040…23060 6e 64 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 20 2d 2c 20 6d 61 73 6b 5f 73 75 63 63 ┆nd); if -, mask_succ┆ 0x23060…23080 65 73 20 74 68 65 6e 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 6c 6f 6e 67 ┆es then error(long┆ 0x23080…230a0 20 3c 3a 64 69 72 65 63 74 69 76 65 20 34 3a 3e 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 ┆ <:directive 4:>,line_no,element┆ 0x230a0…230c0 5f 6e 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 ┆_no) else ┆ 0x230c0…230e0 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 ┆ begin name_table┆ 0x230e0…23100 28 6d 61 73 6b 5f 6e 75 6d 62 65 72 2c 30 29 20 3a 3d 20 6d 61 73 6b 5f 74 79 70 65 3b 0a 20 20 ┆(mask_number,0) := mask_type; ┆ 0x23100…23120 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6d 61 73 6b 5f 6e 75 6d 62 65 ┆ name_table(mask_numbe┆ 0x23120…23140 72 2c 31 29 20 3a 3d 20 6d 61 73 6b 5f 6e 61 6d 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆r,1) := mask_name; ┆ 0x23140…23160 6e 61 6d 65 5f 74 61 62 6c 65 28 6d 61 73 6b 5f 6e 75 6d 62 65 72 2c 32 29 20 3a 3d 20 6f 70 65 ┆name_table(mask_number,2) := ope┆ 0x23160…23180 72 61 6e 64 28 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c ┆rand(1); write(out,┆ 0x23180…231a0 3c 3a 3c 31 30 3e 2a 2a 2a 4d 41 53 4b 20 30 3a 3a 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆<:<10>***MASK 0::>, ┆ 0x231a0…231c0 20 20 20 20 20 20 20 20 20 20 20 6d 61 73 6b 5f 6e 75 6d 62 65 72 2c 0a 20 20 20 20 20 20 20 20 ┆ mask_number, ┆ 0x231c0…231e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 70 65 72 61 6e 64 28 31 29 20 73 68 69 66 74 28 ┆ operand(1) shift(┆ 0x231e0…23200 2d 32 34 29 2c 0a 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 ┆-24), ┆ 0x23200…23220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 70 65 72 61 6e 64 28 31 29 20 65 78 74 72 61 ┆ operand(1) extra┆ 0x23220…23240 63 74 20 32 34 2c 0a 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 ┆ct 24, ┆ 0x23240…23260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 63 74 61 6c 28 6f 70 65 72 61 6e 64 28 31 ┆ octal(operand(1┆ 0x23260…23280 29 29 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 ┆))); end; ┆ 0x23280…232a0 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 20 ┆ end; end else ┆ 0x232a0…232c0 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 6f 72 69 67 6f 3a 3e 20 74 68 65 6e 0a ┆ if name1 = long <:origo:> then ┆ 0x232c0…232e0 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 65 78 74 31 ┆ begin if next1┆ 0x232e0…23300 20 3c 3e 20 6e 75 6d 62 65 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 ┆ <> number_class then ┆ 0x23300…23320 65 72 72 6f 72 28 6c 6f 6e 67 20 3c 3a 74 65 73 74 20 64 69 72 2e 20 34 3a 3e 2c 6c 69 6e 65 5f ┆error(long <:test dir. 4:>,line_┆ 0x23320…23340 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 ┆no,element_no) else ┆ 0x23340…23360 20 20 20 20 20 20 20 20 69 6e 73 74 72 5f 69 6e 64 65 78 20 3a 3d 20 6e 75 6d 62 65 72 31 3b 0a ┆ instr_index := number1; ┆ 0x23360…23380 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 ┆ end else ┆ 0x23380…233a0 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 6c 69 73 74 3a 3e 20 74 68 65 6e 0a 20 ┆ if name1 = long <:list:> then ┆ 0x233a0…233c0 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 31 3b 0a 20 20 ┆ begin next1; ┆ 0x233c0…233e0 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 6f 6e 3a 3e 20 6f ┆ if name1 = long <:on:> o┆ 0x233e0…23400 72 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 79 65 73 3a 3e 20 74 68 65 6e 0a 20 20 20 20 ┆r name1 = long <:yes:> then ┆ 0x23400…23420 20 20 20 20 20 20 6c 69 73 74 20 3a 3d 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 ┆ list := true els┆ 0x23420…23440 65 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 6f 66 ┆e if name1 = long <:of┆ 0x23440…23460 66 3a 3e 20 6f 72 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 6e 6f 3a 3e 20 74 68 65 6e 0a ┆f:> or name1 = long <:no:> then ┆ 0x23460…23480 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 20 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 ┆ list := false ┆ 0x23480…234a0 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 6c 6f 6e 67 20 3c 3a 74 65 ┆ else error(long <:te┆ 0x234a0…234c0 73 74 20 64 69 72 20 35 3a 3e 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a 20 ┆st dir 5:>,line_no,element_no) ┆ 0x234c0…234e0 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 ┆ end else if name1┆ 0x234e0…23500 20 3d 20 6c 6f 6e 67 20 3c 3a 70 61 67 65 3a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 ┆ = long <:page:> then ┆ 0x23500…23520 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 69 73 74 20 74 68 65 6e 0a 20 20 20 ┆begin if list then ┆ 0x23520…23540 20 20 20 20 20 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c 31 32 29 3b 0a 20 20 20 20 20 20 20 20 ┆ outchar(out,12); ┆ 0x23540…23560 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f ┆ end else if name1 = lo┆ 0x23560…23580 6e 67 20 3c 3a 73 6b 69 70 3a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 ┆ng <:skip:> then begi┆ 0x23580…235a0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 3c 2a 20 70 72 6f 63 65 64 75 72 65 20 73 6b 69 70 20 6c ┆n <* procedure skip l┆ 0x235a0…235c0 6f 67 69 63 20 2a 3e 0a 20 20 20 20 20 20 20 20 20 20 20 64 69 72 65 63 74 69 76 65 5f 73 6b 69 ┆ogic *> directive_ski┆ 0x235c0…235e0 70 5f 75 6e 74 69 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 ┆p_until; end else ┆ 0x235e0…23600 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 6f 6e 6c 79 69 3a 3e 20 20 ┆ if name1 = long <:onlyi:> ┆ 0x23600…23620 61 64 64 20 27 6e 27 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 ┆add 'n' then begin ┆ 0x23620…23640 20 20 20 20 20 20 20 20 20 3c 2a 20 70 72 6f 63 65 64 75 72 65 20 73 6b 69 70 20 69 66 20 6e 6f ┆ <* procedure skip if no┆ 0x23640…23660 74 20 69 6e 20 6e 61 6d 65 64 20 6d 6f 64 65 20 2a 3e 0a 20 20 20 20 20 20 20 20 20 20 20 64 69 ┆t in named mode *> di┆ 0x23660…23680 72 65 63 74 69 76 65 5f 6f 6e 6c 79 69 6e 5f 6c 6f 67 69 63 28 74 72 75 65 29 3b 0a 20 20 20 20 ┆rective_onlyin_logic(true); ┆ 0x23680…236a0 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 ┆ end else if name1┆ 0x236a0…236c0 20 3d 20 6c 6f 6e 67 20 3c 3a 6e 6f 74 69 6e 3a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 ┆ = long <:notin:> then ┆ 0x236c0…236e0 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 3c 2a 20 73 6b 69 70 20 69 66 20 6e 61 ┆ begin <* skip if na┆ 0x236e0…23700 6d 65 64 20 6d 6f 64 65 20 2a 3e 0a 20 20 20 20 20 20 20 20 20 20 20 64 69 72 65 63 74 69 76 65 ┆med mode *> directive┆
0x00000…00033 (0,) Rc489kSubCatEnt {f00=0x001542, f01=0x0007f8, f02=0x000801, filename=»tsetdef «, entry_tail=0-4-0-1-1980-12-04T16:20-disc-0x0-0x0-0x0-0x0} 0x00033…00066 Rc489kSubCatEnt {f00=0x002dca, f01=0x0007f8, f02=0x000801, filename=»jttestext «, entry_tail=0-4-0-1-1980-12-04T16:02-disc1-0x0-0x0-0x0-0x0} 0x00066…00099 Rc489kSubCatEnt {f00=0x003b52, f01=0x0007f8, f02=0x000801, filename=»jttrans «, entry_tail=0-4-0-2-1980-12-04T12:29-disc1-0x0-0x0-0x0-0x0} 0x00099…000cc Rc489kSubCatEnt {f00=0x0052cb, f01=0x0007f8, f02=0x000801, filename=»talgoltask «, entry_tail=0-4-0-25-1980-11-27T13:13-disc3-0x0-0x0-0x0-0x0} 0x000cc…000ff Rc489kSubCatEnt {f00=0x01eb9b, f01=0x0007f8, f02=0x000801, filename=»tsetentry «, entry_tail=0-4-0-9-1979-12-04T12:15-disc3-0x0-0x0-0x0-0x0} 0x000ff…00132 Rc489kSubCatEnt {f00=0x027df3, f01=0x0007f8, f02=0x000801, filename=»prelinktext «, entry_tail=0-4-0-63-1980-12-02T12:42-disc3-0x0-0x0-0x0-0x0} 0x00132…00165 Rc489kSubCatEnt {f00=0x066cc3, f01=0x0007f8, f02=0x000801, filename=»texecintf1 «, entry_tail=0-4-0-16-1980-02-26T10:16-disc3-0x0-0x0-0x0-0x0} 0x00165…00198 Rc489kSubCatEnt {f00=0x0765c3, f01=0x0007f8, f02=0x000801, filename=»tcreatetask «, entry_tail=0-4-0-26-1980-11-17T15:11-disc3-0x0-0x0-0x0-0x0} 0x00198…001a0 ff ff ff ff ff ff ff ff ┆ ┆ 0x001a0…001c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ┆ ┆ […0x3…] 0x00220…00240 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00 05 80 04 1b 80 00 01 7f ff fd 74 72 6f ┆ tro┆ 0x00240…00260 00 00 00 00 00 00 00 00 00 80 00 0a 72 65 61 64 65 72 00 00 00 00 00 00 63 99 3e 00 00 00 00 00 ┆ reader c > ┆ 0x00260…00280 00 00 00 00 00 00 00 1b 14 1b 80 00 01 7f ff fd 70 6f 73 00 00 00 00 00 00 00 00 00 00 00 18 64 ┆ pos d┆ 0x00280…002a0 69 73 63 00 00 00 00 00 00 00 00 69 d5 88 80 b0 b0 00 00 00 00 29 24 00 0a ac ff ff ff 00 02 6c ┆isc i )$ l┆ 0x002a0…002c0 00 02 75 77 72 6b 30 30 30 31 36 35 00 00 00 00 00 17 64 69 73 63 31 00 00 00 00 00 00 00 76 b3 ┆ uwrk000165 disc1 v ┆ 0x002c0…002e0 29 00 00 00 00 00 00 00 00 00 00 2d ee ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ┆) - ┆ 0x002e0…002fd ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ┆ ┆ 0x002fd…00300 0x000008 0x00300…00600 Data for tsetdef 0x00600…00900 Data for jttestext 0x00900…00f00 (1,) Data for jttrans 0x00f00…05a00 Data for talgoltask 0x05a00…07500 (10,) Data for tsetentry 0x07500…13200 (13,) Data for prelinktext 0x13200…16200 (34,) Data for texecintf1 0x16200…1b000 Data for tcreatetask 0x1b000…1b020 (48,) 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 63 61 6c 63 75 6c 61 74 65 5f 68 61 73 68 5f ┆nteger procedure calculate_hash_┆ 0x1b020…1b040 6b 65 79 28 6e 61 6d 65 29 3b 0a 20 20 20 20 76 61 6c 75 65 20 6e 61 6d 65 3b 20 6c 6f 6e 67 20 ┆key(name); value name; long ┆ 0x1b040…1b060 6e 61 6d 65 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 63 61 6c 63 75 6c 61 74 65 5f 68 61 ┆name; begin calculate_ha┆ 0x1b060…1b080 73 68 5f 6b 65 79 20 3a 3d 20 28 28 20 6e 61 6d 65 20 65 78 74 72 61 63 74 20 31 32 29 20 2b 0a ┆sh_key := (( name extract 12) + ┆ 0x1b080…1b0a0 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 28 20 6e 61 6d 65 ┆ ( name┆ 0x1b0a0…1b0c0 20 73 68 69 66 74 20 28 2d 31 32 29 20 65 78 74 72 61 63 74 20 31 32 29 20 2b 0a 20 20 20 20 20 ┆ shift (-12) extract 12) + ┆ 0x1b0c0…1b0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 20 6e 61 6d 65 20 73 68 69 66 ┆ ( name shif┆ 0x1b0e0…1b100 74 20 28 2d 32 34 29 20 65 78 74 72 61 63 74 20 31 32 29 20 2b 0a 20 20 20 20 20 20 20 20 20 20 ┆t (-24) extract 12) + ┆ 0x1b100…1b120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 20 6e 61 6d 65 20 73 68 69 66 74 20 28 2d 33 ┆ ( name shift (-3┆ 0x1b120…1b140 36 29 20 65 78 74 72 61 63 74 20 31 32 29 20 2b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆6) extract 12) + ┆ 0x1b140…1b160 20 20 20 20 20 20 20 20 20 20 20 28 20 6e 61 6d 65 20 73 68 69 66 74 20 28 2d 34 30 29 20 65 78 ┆ ( name shift (-40) ex┆ 0x1b160…1b180 74 72 61 63 74 20 38 29 20 2b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆tract 8) + ┆ 0x1b180…1b1a0 20 20 20 20 20 28 20 6e 61 6d 65 20 73 68 69 66 74 20 28 2d 33 32 29 20 65 78 74 72 61 63 74 20 ┆ ( name shift (-32) extract ┆ 0x1b1a0…1b1c0 38 29 20 2b 0a 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 28 ┆8) + (┆ 0x1b1c0…1b1e0 20 6e 61 6d 65 20 73 68 69 66 74 20 28 2d 32 34 29 20 65 78 74 72 61 63 74 20 31 32 29 20 0a 20 ┆ name shift (-24) extract 12) ┆ 0x1b1e0…1b200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 ┆ ) ┆ 0x1b200…1b220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 20 73 65 61 72 63 68 5f 74 ┆ mod search_t┆ 0x1b220…1b240 61 62 6c 65 5f 6c 65 6e 67 74 68 3b 0a 20 20 20 20 65 6e 64 20 63 61 6c 63 75 6c 61 74 65 5f 68 ┆able_length; end calculate_h┆ 0x1b240…1b260 61 73 68 5f 6b 65 79 3b 0a 0a 20 20 20 20 69 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 ┆ash_key; integer procedure ┆ 0x1b260…1b280 69 6e 73 65 72 74 5f 6e 61 6d 65 5f 74 61 62 6c 65 28 69 6e 64 65 78 2c 6e 61 6d 65 2c 74 79 70 ┆insert_name_table(index,name,typ┆ 0x1b280…1b2a0 65 2c 72 65 66 66 29 3b 0a 20 20 20 20 76 61 6c 75 65 20 69 6e 64 65 78 2c 6e 61 6d 65 2c 74 79 ┆e,reff); value index,name,ty┆ 0x1b2a0…1b2c0 70 65 2c 72 65 66 66 3b 20 6c 6f 6e 67 20 69 6e 64 65 78 2c 6e 61 6d 65 3b 20 20 20 20 20 20 20 ┆pe,reff; long index,name; ┆ 0x1b2c0…1b2e0 20 20 20 0a 20 20 20 20 69 6e 74 65 67 65 72 20 74 79 70 65 2c 72 65 66 66 3b 0a 20 20 20 20 62 ┆ integer type,reff; b┆ 0x1b2e0…1b300 65 67 69 6e 0a 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 69 6e 64 65 78 2c 31 29 20 3a 3d 20 ┆egin name_table(index,1) := ┆ 0x1b300…1b320 6e 61 6d 65 3b 0a 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 69 6e 64 65 78 2c 30 29 20 3a 3d ┆name; name_table(index,0) :=┆ 0x1b320…1b340 20 74 79 70 65 3b 0a 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 69 6e 64 65 78 2c 34 29 20 3a ┆ type; name_table(index,4) :┆ 0x1b340…1b360 3d 20 72 65 66 66 3b 0a 20 20 20 20 65 6e 64 20 69 6e 73 65 72 74 5f 6e 61 6d 65 5f 74 61 62 6c ┆= reff; end insert_name_tabl┆ 0x1b360…1b380 65 3b 0a 0a 0a 0a 20 20 20 20 69 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 6e 65 77 5f ┆e; integer procedure new_┆ 0x1b380…1b3a0 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 72 65 66 28 6e 61 6d 65 2c 69 6e 73 74 72 5f 69 6e 64 65 ┆insert_label_ref(name,instr_inde┆ 0x1b3a0…1b3c0 78 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 0a 20 20 20 20 76 61 6c 75 ┆x,line_no,element_no); valu┆ 0x1b3c0…1b3e0 65 20 6e 61 6d 65 2c 69 6e 73 74 72 5f 69 6e 64 65 78 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 ┆e name,instr_index,line_no,eleme┆ 0x1b3e0…1b400 6e 74 5f 6e 6f 3b 0a 20 20 20 20 6c 6f 6e 67 20 6e 61 6d 65 3b 0a 20 20 20 20 69 6e 74 65 67 65 ┆nt_no; long name; intege┆ 0x1b400…1b420 72 20 69 6e 73 74 72 5f 69 6e 64 65 78 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f ┆r instr_index,line_no,element_no┆ 0x1b420…1b440 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 6c 5f 72 5f 72 65 63 6f 72 64 20 3a 3d 20 61 6c ┆; begin l_r_record := al┆ 0x1b440…1b460 6c 6f 63 61 74 65 28 6c 5f 72 5f 72 65 63 6f 72 64 5f 6c 65 6e 67 74 68 29 3b 0a 20 20 20 20 48 ┆locate(l_r_record_length); H┆ 0x1b460…1b480 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 63 68 61 69 6e 20 3a 3d 20 6c 5f 72 5f ┆EAP.l_r_record.l_r_chain := l_r_┆ 0x1b480…1b4a0 72 65 63 6f 72 64 5f 63 68 61 69 6e 5f 68 65 61 64 3b 0a 20 20 20 20 6c 5f 72 5f 72 65 63 6f 72 ┆record_chain_head; l_r_recor┆ 0x1b4a0…1b4c0 64 5f 63 68 61 69 6e 5f 68 65 61 64 20 3a 3d 20 6c 5f 72 5f 72 65 63 6f 72 64 3b 0a 20 20 20 20 ┆d_chain_head := l_r_record; ┆ 0x1b4c0…1b4e0 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 6e 61 6d 65 20 3a 3d 20 6e 61 6d 65 ┆HEAP.l_r_record.l_r_name := name┆ 0x1b4e0…1b500 3b 0a 20 20 20 20 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 69 6e 64 65 78 20 ┆; HEAP.l_r_record.l_r_index ┆ 0x1b500…1b520 3a 3d 20 69 6e 73 74 72 5f 69 6e 64 65 78 3b 0a 20 20 20 20 48 45 41 50 2e 6c 5f 72 5f 72 65 63 ┆:= instr_index; HEAP.l_r_rec┆ 0x1b520…1b540 6f 72 64 2e 6c 5f 72 5f 6c 69 6e 65 5f 6e 6f 20 3a 3d 20 6c 69 6e 65 5f 6e 6f 3b 0a 20 20 20 20 ┆ord.l_r_line_no := line_no; ┆ 0x1b540…1b560 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 65 6c 65 6d 65 6e 74 5f 6e 6f 20 3a ┆HEAP.l_r_record.l_r_element_no :┆ 0x1b560…1b580 3d 20 65 6c 65 6d 65 6e 74 5f 6e 6f 3b 0a 20 20 20 20 6e 65 77 5f 69 6e 73 65 72 74 5f 6c 61 62 ┆= element_no; new_insert_lab┆ 0x1b580…1b5a0 65 6c 5f 72 65 66 20 3a 3d 20 6c 5f 72 5f 72 65 63 6f 72 64 3b 0a 20 20 20 20 65 6e 64 20 6e 65 ┆el_ref := l_r_record; end ne┆ 0x1b5a0…1b5c0 77 5f 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 72 65 66 3b 0a 0a 0a 0a 20 20 20 20 69 6e 74 65 67 ┆w_insert_label_ref; integ┆ 0x1b5c0…1b5e0 65 72 20 70 72 6f 63 65 64 75 72 65 20 6e 65 77 5f 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 64 65 ┆er procedure new_insert_label_de┆ 0x1b5e0…1b600 66 28 6e 61 6d 65 2c 69 6e 64 65 78 2c 69 6e 73 74 72 5f 69 6e 64 65 78 2c 6c 69 6e 65 5f 6e 6f ┆f(name,index,instr_index,line_no┆ 0x1b600…1b620 2c 73 70 65 63 29 3b 0a 20 20 20 20 76 61 6c 75 65 20 6e 61 6d 65 2c 69 6e 64 65 78 2c 69 6e 73 ┆,spec); value name,index,ins┆ 0x1b620…1b640 74 72 5f 69 6e 64 65 78 2c 73 70 65 63 2c 6c 69 6e 65 5f 6e 6f 3b 0a 20 20 20 20 6c 6f 6e 67 20 ┆tr_index,spec,line_no; long ┆ 0x1b640…1b660 6e 61 6d 65 2c 69 6e 64 65 78 3b 0a 20 20 20 20 69 6e 74 65 67 65 72 20 69 6e 73 74 72 5f 69 6e ┆name,index; integer instr_in┆ 0x1b660…1b680 64 65 78 2c 73 70 65 63 2c 6c 69 6e 65 5f 6e 6f 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆dex,spec,line_no; begin ┆ 0x1b680…1b6a0 6c 5f 64 5f 72 65 63 6f 72 64 20 3a 3d 20 61 6c 6c 6f 63 61 74 65 28 6c 5f 64 5f 72 65 63 6f 72 ┆l_d_record := allocate(l_d_recor┆ 0x1b6a0…1b6c0 64 5f 6c 65 6e 67 74 68 29 3b 0a 20 20 20 20 69 6e 73 65 72 74 5f 6e 61 6d 65 5f 74 61 62 6c 65 ┆d_length); insert_name_table┆ 0x1b6c0…1b6e0 28 69 6e 64 65 78 2c 6e 61 6d 65 2c 6c 61 62 65 6c 5f 74 79 70 65 2c 6c 5f 64 5f 72 65 63 6f 72 ┆(index,name,label_type,l_d_recor┆ 0x1b6e0…1b700 64 29 3b 0a 20 20 20 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 63 68 61 69 ┆d); HEAP.l_d_record.l_d_chai┆ 0x1b700…1b720 6e 20 3a 3d 20 69 6e 64 65 78 3b 20 3c 2a 20 69 6e 64 65 78 20 62 61 63 6b 20 74 6f 20 6e 61 6d ┆n := index; <* index back to nam┆ 0x1b720…1b740 65 20 74 61 62 6c 65 20 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆e table ┆ 0x1b740…1b760 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 ┆ ┆ 0x1b760…1b780 2a 3e 0a 20 20 20 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 69 6e 64 65 78 ┆*> HEAP.l_d_record.l_d_index┆ 0x1b780…1b7a0 20 3a 3d 20 69 6e 73 74 72 5f 69 6e 64 65 78 3b 0a 20 20 20 20 48 45 41 50 2e 6c 5f 64 5f 72 65 ┆ := instr_index; HEAP.l_d_re┆ 0x1b7a0…1b7c0 63 6f 72 64 2e 6c 5f 64 5f 6c 69 6e 65 5f 6e 6f 20 3a 3d 20 6c 69 6e 65 5f 6e 6f 3b 0a 20 20 20 ┆cord.l_d_line_no := line_no; ┆ 0x1b7c0…1b7e0 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 73 70 65 63 20 3a 3d 20 73 70 65 ┆ HEAP.l_d_record.l_d_spec := spe┆ 0x1b7e0…1b800 63 3b 0a 20 20 20 20 6e 65 77 5f 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 64 65 66 20 3a 3d 20 69 ┆c; new_insert_label_def := i┆ 0x1b800…1b820 6e 64 65 78 3b 0a 20 20 20 20 65 6e 64 20 6e 65 77 5f 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 64 ┆ndex; end new_insert_label_d┆ 0x1b820…1b840 65 66 3b 0a 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 72 65 73 6f 6c 76 65 5f 6c 61 62 65 6c ┆ef; procedure resolve_label┆ 0x1b840…1b860 73 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 6e 74 65 67 65 72 20 6f 70 5f 63 6f 64 65 ┆s; begin integer op_code┆ 0x1b860…1b880 5f 69 6e 64 65 78 3b 0a 20 20 20 20 6c 6f 6e 67 20 6e 61 6d 65 5f 74 61 62 6c 65 5f 69 6e 64 65 ┆_index; long name_table_inde┆ 0x1b880…1b8a0 78 3b 0a 20 20 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 77 72 5f 6e 61 6d 65 28 31 3a 32 29 3b 20 ┆x; long array wr_name(1:2); ┆ 0x1b8a0…1b8c0 3c 2a 20 75 73 65 64 20 66 6f 72 20 77 72 69 74 69 6e 67 20 6f 66 20 61 20 6e 61 6d 65 20 2a 3e ┆<* used for writing of a name *>┆ 0x1b8c0…1b8e0 0a 20 20 20 20 77 72 5f 6e 61 6d 65 28 32 29 3a 3d 30 3b 0a 0a 20 20 20 20 6c 5f 72 5f 72 65 63 ┆ wr_name(2):=0; l_r_rec┆ 0x1b8e0…1b900 6f 72 64 20 3a 3d 20 6c 5f 72 5f 72 65 63 6f 72 64 5f 63 68 61 69 6e 5f 68 65 61 64 3b 0a 20 20 ┆ord := l_r_record_chain_head; ┆ 0x1b900…1b920 (49,) 20 20 20 77 68 69 6c 65 20 6c 5f 72 5f 72 65 63 6f 72 64 20 3e 2d 31 20 64 6f 0a 20 20 20 20 20 ┆ while l_r_record >-1 do ┆ 0x1b920…1b940 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 69 66 20 2d 2c 20 6c 6f 6f 6b 75 70 5f 6e 61 6d 65 ┆ begin if -, lookup_name┆ 0x1b940…1b960 28 6e 61 6d 65 5f 74 61 62 6c 65 2c 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f ┆(name_table,HEAP.l_r_record.l_r_┆ 0x1b960…1b980 6e 61 6d 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 5f 74 ┆name, name_t┆ 0x1b980…1b9a0 61 62 6c 65 5f 69 6e 64 65 78 29 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a ┆able_index) then begin ┆ 0x1b9a0…1b9c0 20 20 20 20 20 20 20 20 20 69 6e 73 74 72 5f 69 6e 64 65 78 20 3a 3d 20 48 45 41 50 2e 6c 5f 72 ┆ instr_index := HEAP.l_r┆ 0x1b9c0…1b9e0 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 69 6e 64 65 78 3b 0a 20 20 20 20 20 20 20 20 20 65 72 72 6f ┆_record.l_r_index; erro┆ 0x1b9e0…1ba00 72 28 75 6e 64 65 63 5f 6c 61 62 65 6c 2c 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f ┆r(undec_label,HEAP.l_r_record.l_┆ 0x1ba00…1ba20 72 5f 6c 69 6e 65 5f 6e 6f 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆r_line_no, ┆ 0x1ba20…1ba40 20 20 20 20 20 20 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 65 6c 65 6d 65 6e ┆ HEAP.l_r_record.l_r_elemen┆ 0x1ba40…1ba60 74 5f 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 65 6c 73 65 ┆t_no); end else┆ 0x1ba60…1ba80 0a 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 6c 5f 64 5f 72 65 63 ┆ begin l_d_rec┆ 0x1ba80…1baa0 6f 72 64 20 3a 3d 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 61 6d 65 5f 74 61 62 6c 65 5f 69 6e 64 ┆ord := name_table(name_table_ind┆ 0x1baa0…1bac0 65 78 2c 34 29 3b 0a 20 20 20 20 20 20 20 20 20 6f 70 5f 63 6f 64 65 5f 69 6e 64 65 78 20 3a 3d ┆ex,4); op_code_index :=┆ 0x1bac0…1bae0 20 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 69 6e 64 65 78 3b 0a 20 20 20 20 ┆ HEAP.l_r_record.l_r_index; ┆ 0x1bae0…1bb00 20 20 20 20 20 6f 70 5f 63 6f 64 65 28 6f 70 63 6f 64 65 5f 69 6e 64 65 78 29 20 3a 3d 20 6d 61 ┆ op_code(opcode_index) := ma┆ 0x1bb00…1bb20 73 6b 5f 69 6e 28 6f 70 5f 63 6f 64 65 28 6f 70 5f 63 6f 64 65 5f 69 6e 64 65 78 29 2c 0a 20 20 ┆sk_in(op_code(op_code_index), ┆ 0x1bb20…1bb40 20 20 20 20 20 20 20 20 20 65 78 74 65 6e 64 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e ┆ extend HEAP.l_d_record.┆ 0x1bb40…1bb60 6c 5f 64 5f 69 6e 64 65 78 2c 0a 20 20 20 20 20 20 20 20 20 20 20 61 64 64 72 73 5f 6d 61 73 6b ┆l_d_index, addrs_mask┆ 0x1bb60…1bb80 29 3b 0a 20 20 20 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 20 20 20 69 66 20 74 65 73 74 5f 6c ┆); if test_l┆ 0x1bb80…1bba0 61 62 65 6c 5f 62 69 74 20 6f 72 20 74 65 73 74 5f 6c 61 62 65 6c 5f 72 65 66 20 74 68 65 6e 0a ┆abel_bit or test_label_ref then ┆ 0x1bba0…1bbc0 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 77 72 5f 6e ┆ begin wr_n┆ 0x1bbc0…1bbe0 61 6d 65 28 31 29 20 3a 3d 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 6e 61 ┆ame(1) := HEAP.l_d_record.l_d_na┆ 0x1bbe0…1bc00 6d 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 22 6e 6c 22 2c 31 2c ┆me; write(out,"nl",1,┆ 0x1bc00…1bc20 22 73 70 22 2c 35 2c 3c 3c 7a 64 64 64 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆"sp",5,<<zddd>, ┆ 0x1bc20…1bc40 20 6f 63 74 61 6c 28 65 78 74 65 6e 64 20 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f ┆ octal(extend HEAP.l_r_record.l_┆ 0x1bc40…1bc60 72 5f 69 6e 64 65 78 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3a 20 6c 61 ┆r_index), <: la┆ 0x1bc60…1bc80 62 65 6c 20 72 65 66 66 20 74 6f 3a 20 3a 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆bel reff to: :>, ┆ 0x1bc80…1bca0 20 20 6f 63 74 61 6c 28 65 78 74 65 6e 64 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c ┆ octal(extend HEAP.l_d_record.l┆ 0x1bca0…1bcc0 5f 64 5f 69 6e 64 65 78 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3a 20 6e ┆_d_index), <: n┆ 0x1bcc0…1bce0 61 6d 65 3a 20 3a 3e 2c 77 72 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 ┆ame: :>,wr_name); end┆ 0x1bce0…1bd00 3b 0a 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 69 66 20 74 65 73 74 5f 6c 61 62 ┆; if test_lab┆ 0x1bd00…1bd20 65 6c 5f 62 69 74 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 ┆el_bit then begin ┆ 0x1bd20…1bd40 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 22 6e 6c 22 2c 31 2c 22 73 70 22 2c 31 31 ┆ write(out,"nl",1,"sp",11┆ 0x1bd40…1bd60 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 66 6f 72 6d 61 74 65 64 28 6f 70 5f ┆); print_formated(op_┆ 0x1bd60…1bd80 63 6f 64 65 28 6f 70 5f 63 6f 64 65 5f 69 6e 64 65 78 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ┆code(op_code_index)); ┆ 0x1bd80…1bda0 20 65 6e 64 3b 0a 0a 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 6c 5f 72 5f ┆ end; end; l_r_┆ 0x1bda0…1bdc0 72 65 63 6f 72 64 20 3a 3d 20 48 45 41 50 2e 6c 5f 72 5f 72 65 63 6f 72 64 2e 6c 5f 72 5f 63 68 ┆record := HEAP.l_r_record.l_r_ch┆ 0x1bdc0…1bde0 61 69 6e 3b 0a 20 20 20 20 20 20 20 65 6e 64 20 73 63 61 6e 20 6c 6f 6f 70 3b 0a 20 20 20 20 65 ┆ain; end scan loop; e┆ 0x1bde0…1be00 6e 64 20 72 65 73 6f 6c 76 65 5f 6c 61 62 65 6c 73 3b 0a 0a 20 20 20 20 70 72 6f 63 65 64 75 72 ┆nd resolve_labels; procedur┆ 0x1be00…1be20 65 20 6c 61 62 65 6c 5f 6c 69 73 74 28 6f 6e 6c 79 5f 73 70 65 63 5f 77 61 6e 74 65 64 29 3b 0a ┆e label_list(only_spec_wanted); ┆ 0x1be20…1be40 20 20 20 20 76 61 6c 75 65 20 6f 6e 6c 79 5f 73 70 65 63 5f 77 61 6e 74 65 64 3b 20 62 6f 6f 6c ┆ value only_spec_wanted; bool┆ 0x1be40…1be60 65 61 6e 20 6f 6e 6c 79 5f 73 70 65 63 5f 77 61 6e 74 65 64 3b 0a 20 20 20 20 62 65 67 69 6e 0a ┆ean only_spec_wanted; begin ┆ 0x1be60…1be80 20 20 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 77 72 5f 6e 61 6d 65 28 31 3a 32 29 3b 0a 20 20 20 ┆ long array wr_name(1:2); ┆ 0x1be80…1bea0 20 69 6e 74 65 67 65 72 20 69 6e 64 65 78 3b 0a 20 20 20 20 77 72 5f 6e 61 6d 65 28 32 29 20 3a ┆ integer index; wr_name(2) :┆ 0x1bea0…1bec0 3d 20 30 3b 0a 20 20 20 20 0a 20 20 20 20 66 6f 72 20 69 6e 64 65 78 20 3a 3d 20 31 20 73 74 65 ┆= 0; for index := 1 ste┆ 0x1bec0…1bee0 70 20 31 20 75 6e 74 69 6c 20 6e 61 6d 65 5f 74 61 62 6c 65 5f 6c 65 6e 67 74 68 20 64 6f 0a 20 ┆p 1 until name_table_length do ┆ 0x1bee0…1bf00 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 6e 61 6d 65 5f 74 61 62 6c 65 28 69 ┆ begin if name_table(i┆ 0x1bf00…1bf20 6e 64 65 78 2c 30 29 20 3d 20 6c 61 62 65 6c 5f 74 79 70 65 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆ndex,0) = label_type then ┆ 0x1bf20…1bf40 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 6c 5f 64 5f 72 65 63 6f 72 64 20 3a 3d 20 6e 61 ┆ begin l_d_record := na┆ 0x1bf40…1bf60 6d 65 5f 74 61 62 6c 65 28 69 6e 64 65 78 2c 34 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 48 45 ┆me_table(index,4); if HE┆ 0x1bf60…1bf80 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 73 70 65 63 20 3e 20 30 20 6f 72 0a 20 20 ┆AP.l_d_record.l_d_spec > 0 or ┆ 0x1bf80…1bfa0 20 20 20 20 20 20 20 20 20 2d 2c 20 6f 6e 6c 79 5f 73 70 65 63 5f 77 61 6e 74 65 64 20 74 68 65 ┆ -, only_spec_wanted the┆ 0x1bfa0…1bfc0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 77 72 ┆n begin wr┆ 0x1bfc0…1bfe0 5f 6e 61 6d 65 28 31 29 20 3a 3d 20 6e 61 6d 65 5f 74 61 62 6c 65 28 69 6e 64 65 78 2c 31 29 3b ┆_name(1) := name_table(index,1);┆ 0x1bfe0…1c000 0a 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 22 73 70 22 2c 31 35 20 2d 20 ┆ write(out,"sp",15 - ┆ 0x1c000…1c020 77 72 69 74 65 28 6f 75 74 2c 22 6e 6c 22 2c 31 2c 77 72 5f 6e 61 6d 65 29 2c 0a 20 20 20 20 20 ┆write(out,"nl",1,wr_name), ┆ 0x1c020…1c040 20 20 20 20 20 20 20 20 20 20 20 20 22 63 72 22 2c 31 2c 22 73 70 22 2c 37 2c 3c 3a 20 72 65 66 ┆ "cr",1,"sp",7,<: ref┆ 0x1c040…1c060 66 2e 20 74 6f 20 61 64 64 72 65 73 73 3a 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆f. to address:>, ┆ 0x1c060…1c080 20 20 3c 3c 5f 7a 64 64 64 3e 2c 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 69 ┆ <<_zddd>,HEAP.l_d_record.l_d_i┆ 0x1c080…1c0a0 6e 64 65 78 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 63 74 61 6c 28 65 78 ┆ndex, octal(ex┆ 0x1c0a0…1c0c0 74 65 6e 64 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 69 6e 64 65 78 29 2c ┆tend HEAP.l_d_record.l_d_index),┆ 0x1c0c0…1c0e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 48 45 41 50 2e 6c 5f 64 5f 72 ┆ if HEAP.l_d_r┆ 0x1c0e0…1c100 65 63 6f 72 64 2e 6c 5f 64 5f 73 70 65 63 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 ┆ecord.l_d_spec > 0 then ┆ 0x1c100…1c120 20 20 20 20 20 20 20 20 20 20 3c 3a 20 73 70 65 63 2e 20 6f 72 20 6c 69 6e 65 20 6e 6f 20 3a 3e ┆ <: spec. or line no :>┆ 0x1c120…1c140 20 65 6c 73 65 20 3c 3a 3a 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c ┆ else <::>, <<┆ 0x1c140…1c160 5f 5f 62 64 64 64 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 48 45 ┆__bddd>, if HE┆ 0x1c160…1c180 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 64 2e 6c 5f 64 5f 73 70 65 63 20 3e 20 30 20 74 68 65 6e 0a ┆AP.l_d_record.l_d_spec > 0 then ┆ 0x1c180…1c1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 45 41 50 2e 6c 5f 64 5f 72 65 63 6f 72 ┆ HEAP.l_d_recor┆ 0x1c1a0…1c1c0 64 2e 6c 5f 64 5f 73 70 65 63 20 2d 20 31 20 65 6c 73 65 20 30 29 3b 0a 20 20 20 20 20 20 20 20 ┆d.l_d_spec - 1 else 0); ┆ 0x1c1c0…1c1e0 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 20 6c 61 62 65 6c ┆ end; end; end label┆ 0x1c1e0…1c200 5f 6c 69 73 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 62 6f 6f ┆_list; end; boo┆ 0x1c200…1c220 (50,) 6c 65 61 6e 20 70 72 6f 63 65 64 75 72 65 20 70 72 69 6e 74 5f 65 72 72 6f 72 5f 74 61 62 6c 65 ┆lean procedure print_error_table┆ 0x1c220…1c240 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 66 69 65 6c 64 ┆; begin long array field┆ 0x1c240…1c260 20 70 72 65 76 69 75 73 2c 74 68 69 73 2c 6d 69 6e 5f 6c 69 6e 65 3b 0a 20 20 20 20 69 6e 74 65 ┆ previus,this,min_line; inte┆ 0x1c260…1c280 67 65 72 20 6d 69 6e 5f 6c 69 6e 65 5f 6e 6f 3b 0a 0a 20 20 20 20 69 66 20 65 72 72 6f 72 5f 72 ┆ger min_line_no; if error_r┆ 0x1c280…1c2a0 65 63 6f 72 64 5f 63 68 61 69 6e 5f 68 65 61 64 20 3d 20 6e 69 6c 20 74 68 65 6e 0a 20 20 20 20 ┆ecord_chain_head = nil then ┆ 0x1c2a0…1c2c0 20 20 70 72 69 6e 74 5f 65 72 72 6f 72 5f 74 61 62 6c 65 20 3a 3d 20 74 72 75 65 0a 20 20 20 20 ┆ print_error_table := true ┆ 0x1c2c0…1c2e0 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 70 72 69 6e 74 5f 65 72 72 ┆else begin print_err┆ 0x1c2e0…1c300 6f 72 5f 74 61 62 6c 65 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 77 68 69 6c 65 20 65 ┆or_table := false; while e┆ 0x1c300…1c320 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 68 61 69 6e 5f 68 65 61 64 20 3c 3e 20 6e 69 6c 20 64 6f ┆rror_record_chain_head <> nil do┆ 0x1c320…1c340 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 6d 69 6e 5f 6c 69 6e 65 5f ┆ begin min_line_┆ 0x1c340…1c360 6e 6f 20 3a 3d 20 38 33 38 38 36 30 36 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73 20 3a 3d 20 65 ┆no := 8388606; this := e┆ 0x1c360…1c380 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 68 61 69 6e 5f 68 65 61 64 3b 0a 20 20 20 20 20 20 20 20 ┆rror_record_chain_head; ┆ 0x1c380…1c3a0 70 72 65 76 69 75 73 20 3a 3d 20 6e 69 6c 3b 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 74 68 ┆previus := nil; while th┆ 0x1c3a0…1c3c0 69 73 20 3c 3e 20 6e 69 6c 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 ┆is <> nil do begin ┆ 0x1c3c0…1c3e0 20 20 20 20 20 20 20 69 66 20 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 ┆ if HEAP.this.error_record┆ 0x1c3e0…1c400 5f 6c 69 6e 65 5f 6e 6f 20 3c 3d 20 6d 69 6e 5f 6c 69 6e 65 5f 6e 6f 20 74 68 65 6e 0a 20 20 20 ┆_line_no <= min_line_no then ┆ 0x1c400…1c420 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 6e 5f 6c ┆ begin min_l┆ 0x1c420…1c440 69 6e 65 5f 6e 6f 20 3a 3d 20 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 ┆ine_no := HEAP.this.error_record┆ 0x1c440…1c460 5f 6c 69 6e 65 5f 6e 6f 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 6e 5f 6c 69 6e 65 3a 3d ┆_line_no; min_line:=┆ 0x1c460…1c480 20 70 72 65 76 69 75 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 ┆ previus; end; ┆ 0x1c480…1c4a0 20 20 20 20 20 70 72 65 76 69 75 73 20 3a 3d 20 74 68 69 73 3b 0a 20 20 20 20 20 20 20 20 20 20 ┆ previus := this; ┆ 0x1c4a0…1c4c0 74 68 69 73 20 3a 3d 20 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 ┆this := HEAP.this.error_record_c┆ 0x1c4c0…1c4e0 68 61 69 6e 3b 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 20 20 20 20 3c 2a ┆hain; end; <*┆ 0x1c4e0…1c500 20 72 65 6d 6f 76 65 20 72 65 63 6f 72 64 20 66 72 6f 6d 20 6c 69 73 74 20 2a 3e 0a 20 20 20 20 ┆ remove record from list *> ┆ 0x1c500…1c520 20 20 20 20 69 66 20 6d 69 6e 5f 6c 69 6e 65 20 3d 20 6e 69 6c 20 74 68 65 6e 20 20 20 20 20 20 ┆ if min_line = nil then ┆ 0x1c520…1c540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 ┆ begin ┆ 0x1c540…1c560 20 20 20 20 20 20 20 20 20 74 68 69 73 20 3a 3d 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 68 ┆ this := error_record_ch┆ 0x1c560…1c580 61 69 6e 5f 68 65 61 64 3b 0a 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 ┆ain_head; error_record┆ 0x1c580…1c5a0 5f 63 68 61 69 6e 5f 68 65 61 64 20 3a 3d 20 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 ┆_chain_head := HEAP.this.error_r┆ 0x1c5a0…1c5c0 65 63 6f 72 64 5f 63 68 61 69 6e 3b 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 ┆ecord_chain; end ┆ 0x1c5c0…1c5e0 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 ┆ else begin ┆ 0x1c5e0…1c600 20 20 70 72 65 76 69 75 73 20 3a 3d 20 6d 69 6e 5f 6c 69 6e 65 3b 0a 20 20 20 20 20 20 20 20 20 ┆ previus := min_line; ┆ 0x1c600…1c620 20 74 68 69 73 20 3a 3d 20 48 45 41 50 2e 70 72 65 76 69 75 73 2e 65 72 72 6f 72 5f 72 65 63 6f ┆ this := HEAP.previus.error_reco┆ 0x1c620…1c640 72 64 5f 63 68 61 69 6e 3b 0a 20 20 20 20 20 20 20 20 20 48 45 41 50 2e 70 72 65 76 69 75 73 2e ┆rd_chain; HEAP.previus.┆ 0x1c640…1c660 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 68 61 69 6e 20 3a 3d 0a 20 20 20 20 20 20 20 20 20 20 ┆error_record_chain := ┆ 0x1c660…1c680 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 68 61 69 6e 3b 0a 20 20 ┆HEAP.this.error_record_chain; ┆ 0x1c680…1c6a0 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 22 ┆ end; write(out,"┆ 0x1c6a0…1c6c0 6e 6c 22 2c 31 2c 3c 3c 5f 64 64 64 64 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 45 ┆nl",1,<<_dddd>, HE┆ 0x1c6c0…1c6e0 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 6c 69 6e 65 5f 6e 6f 2c 0a 20 20 ┆AP.this.error_record_line_no, ┆ 0x1c6e0…1c700 20 20 20 20 20 20 20 20 20 20 20 20 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f ┆ HEAP.this.error_reco┆ 0x1c700…1c720 72 64 5f 69 6e 73 74 72 5f 69 6e 64 65 78 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 63 ┆rd_instr_index, oc┆ 0x1c720…1c740 74 61 6c 28 65 78 74 65 6e 64 20 48 45 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 ┆tal(extend HEAP.this.error_recor┆ 0x1c740…1c760 64 5f 69 6e 73 74 72 5f 69 6e 64 65 78 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 45 ┆d_instr_index), HE┆ 0x1c760…1c780 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 65 6c 65 6d 65 6e 74 5f 70 6f 73 ┆AP.this.error_record_element_pos┆ 0x1c780…1c7a0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 70 22 2c 32 2c 73 74 72 69 6e 67 20 48 45 ┆, "sp",2,string HE┆ 0x1c7a0…1c7c0 41 50 2e 74 68 69 73 2e 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 74 65 78 74 29 3b 0a 20 20 20 20 ┆AP.this.error_record_text); ┆ 0x1c7c0…1c7e0 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 65 6e 64 20 70 72 ┆ end; end; end pr┆ 0x1c7e0…1c800 69 6e 74 5f 65 72 72 6f 72 5f 74 61 62 6c 65 3b 0a 0a 0a 0a 20 20 20 20 70 72 6f 63 65 64 75 72 ┆int_error_table; procedur┆ 0x1c800…1c820 65 20 70 72 69 6e 74 5f 66 6f 72 6d 61 74 65 64 28 6f 70 63 6f 64 65 29 3b 0a 20 20 20 20 3c 2a ┆e print_formated(opcode); <*┆ 0x1c820…1c840 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 3e ┆*******************************>┆ 0x1c840…1c860 0a 20 20 20 20 76 61 6c 75 65 20 6f 70 63 6f 64 65 3b 20 6c 6f 6e 67 20 6f 70 63 6f 64 65 3b 0a ┆ value opcode; long opcode; ┆ 0x1c860…1c880 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 6e 74 65 67 65 72 20 66 72 6f 6d 2c 74 6f 2c ┆ begin integer from,to,┆ 0x1c880…1c8a0 6e 75 6d 62 65 72 2c 69 6e 64 65 78 3b 0a 20 20 20 20 20 20 20 20 66 72 6f 6d 20 3a 3d 20 30 3b ┆number,index; from := 0;┆ 0x1c8a0…1c8c0 0a 20 20 20 20 20 20 20 20 66 6f 72 20 69 6e 64 65 78 20 3a 3d 2d 34 37 20 73 74 65 70 20 31 20 ┆ for index :=-47 step 1 ┆ 0x1c8c0…1c8e0 75 6e 74 69 6c 20 30 20 64 6f 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 ┆until 0 do begin ┆ 0x1c8e0…1c900 20 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c 69 66 20 6f 70 63 6f 64 65 20 73 68 69 66 74 20 69 ┆ outchar(out,if opcode shift i┆ 0x1c900…1c920 6e 64 65 78 20 65 78 74 72 61 63 74 20 31 20 3d 20 31 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 ┆ndex extract 1 = 1 then ┆ 0x1c920…1c940 20 20 34 39 20 65 6c 73 65 20 34 36 29 3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 66 6f 72 6d ┆ 49 else 46); if form┆ 0x1c940…1c960 61 74 28 66 72 6f 6d 29 20 65 78 74 72 61 63 74 20 31 32 20 3d 20 34 37 20 2b 20 69 6e 64 65 78 ┆at(from) extract 12 = 47 + index┆ 0x1c960…1c980 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 ┆ then begin ┆ 0x1c980…1c9a0 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c 33 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 ┆ outchar(out,32); f┆ 0x1c9a0…1c9c0 72 6f 6d 3a 3d 66 72 6f 6d 2b 31 3b 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 ┆rom:=from+1; end; ┆ 0x1c9c0…1c9e0 20 20 20 20 65 6e 64 20 66 6f 72 20 6c 6f 6f 70 3b 0a 20 20 20 20 3c 2a 20 66 6f 72 20 69 6d 70 ┆ end for loop; <* for imp┆ 0x1c9e0…1ca00 72 6f 76 69 6e 67 20 72 65 61 64 61 62 69 6c 69 74 79 20 77 72 69 74 65 20 61 6e 20 65 78 74 72 ┆roving readability write an extr┆ 0x1ca00…1ca20 61 20 6e 65 77 6c 69 6e 65 20 2a 3e 0a 20 20 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c 31 30 29 ┆a newline *> outchar(out,10)┆ 0x1ca20…1ca40 3b 0a 0a 20 20 20 20 65 6e 64 20 20 70 72 69 6e 74 5f 66 6f 72 6d 61 74 3b 0a 0a 0a 20 20 61 6c ┆; end print_format; al┆ 0x1ca40…1ca60 67 6f 6c 20 63 6f 70 79 2e 32 20 20 3c 2a 20 73 6f 75 72 63 65 20 73 68 6f 75 6c 64 20 62 65 20 ┆gol copy.2 <* source should be ┆ 0x1ca60…1ca80 6d 32 39 30 78 70 72 6f 63 20 2a 3e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 20 20 69 6e 74 65 67 65 72 20 ┆m290xproc *>; integer ┆ 0x1ca80…1caa0 70 72 6f 63 65 64 75 72 65 20 0a 20 20 20 20 67 65 74 5f 61 6c 6c 5f 72 65 67 5f 6f 70 65 72 61 ┆procedure get_all_reg_opera┆ 0x1caa0…1cac0 6e 64 73 28 6f 70 5f 31 2c 6b 69 6e 64 5f 31 2c 6f 70 5f 32 2c 6b 69 6e 64 5f 32 2c 6f 70 5f 33 ┆nds(op_1,kind_1,op_2,kind_2,op_3┆ 0x1cac0…1cae0 2c 6b 69 6e 64 5f 33 29 3b 0a 20 20 3c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆,kind_3); <*******************┆ 0x1cae0…1cb00 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 ┆********************************┆ 0x1cb00…1cb20 (51,) 2a 2a 2a 2a 2a 2a 2a 3e 0a 20 20 69 6e 74 65 67 65 72 20 6f 70 5f 31 2c 6b 69 6e 64 5f 31 2c 6f ┆*******> integer op_1,kind_1,o┆ 0x1cb20…1cb40 70 5f 32 2c 6b 69 6e 64 5f 32 2c 6f 70 5f 33 2c 6b 69 6e 64 5f 33 3b 0a 20 20 62 65 67 69 6e 0a ┆p_2,kind_2,op_3,kind_3; begin ┆ 0x1cb40…1cb60 20 20 69 6e 74 65 67 65 72 20 6e 6f 5f 6f 66 5f 6f 70 3b 0a 20 20 6e 6f 5f 6f 66 5f 6f 70 20 3a ┆ integer no_of_op; no_of_op :┆ 0x1cb60…1cb80 3d 20 30 3b 0a 20 20 6f 70 5f 31 20 3a 3d 20 6f 70 5f 32 20 3a 3d 20 6f 70 5f 33 20 3a 3d 20 6b ┆= 0; op_1 := op_2 := op_3 := k┆ 0x1cb80…1cba0 69 6e 64 5f 31 20 3a 3d 20 6b 69 6e 64 5f 32 20 3a 3d 20 6b 69 6e 64 5f 33 20 3a 3d 20 6e 6f 74 ┆ind_1 := kind_2 := kind_3 := not┆ 0x1cba0…1cbc0 5f 75 73 65 64 3b 0a 20 20 63 6c 61 73 73 20 3a 3d 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 ┆_used; class := look_ahead_cla┆ 0x1cbc0…1cbe0 73 73 3b 0a 20 20 69 66 20 63 6c 61 73 73 20 3d 20 6c 65 66 74 5f 70 61 72 5f 63 6c 61 73 73 20 ┆ss; if class = left_par_class ┆ 0x1cbe0…1cc00 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 67 65 74 ┆then begin next; get┆ 0x1cc00…1cc20 5f 61 5f 72 65 67 5f 6f 70 65 72 61 6e 64 28 6f 70 5f 31 2c 6b 69 6e 64 5f 31 29 3b 0a 20 20 20 ┆_a_reg_operand(op_1,kind_1); ┆ 0x1cc20…1cc40 20 6e 6f 5f 6f 66 5f 6f 70 20 3a 3d 20 31 3b 0a 20 20 20 69 66 20 6c 6f 6f 6b 5f 61 68 65 61 64 ┆ no_of_op := 1; if look_ahead┆ 0x1cc40…1cc60 5f 63 6c 61 73 73 20 3d 20 63 6f 6d 6d 61 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆_class = comma_class then ┆ 0x1cc60…1cc80 62 65 67 69 6e 0a 20 20 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 20 20 67 65 74 5f 61 5f 72 65 ┆begin next; get_a_re┆ 0x1cc80…1cca0 67 5f 6f 70 65 72 61 6e 64 28 6f 70 5f 32 2c 6b 69 6e 64 5f 32 29 3b 0a 20 20 20 20 20 20 6e 6f ┆g_operand(op_2,kind_2); no┆ 0x1cca0…1ccc0 5f 6f 66 5f 6f 70 20 3a 3d 20 32 3b 0a 20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 5f 61 68 65 61 64 ┆_of_op := 2; if look_ahead┆ 0x1ccc0…1cce0 5f 63 6c 61 73 73 20 3d 20 63 6f 6d 6d 61 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆_class = comma_class then ┆ 0x1cce0…1cd00 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 20 20 20 20 ┆ begin next; ┆ 0x1cd00…1cd20 20 67 65 74 5f 61 5f 72 65 67 5f 6f 70 65 72 61 6e 64 28 6f 70 5f 33 2c 6b 69 6e 64 5f 33 29 3b ┆ get_a_reg_operand(op_3,kind_3);┆ 0x1cd20…1cd40 0a 20 20 20 20 20 20 20 20 20 6e 6f 5f 6f 66 5f 6f 70 20 3a 3d 20 33 3b 0a 20 20 20 20 20 20 20 ┆ no_of_op := 3; ┆ 0x1cd40…1cd60 20 20 65 6e 64 3b 0a 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 6e 65 78 74 3b 0a 20 20 69 66 20 63 ┆ end; end; next; if c┆ 0x1cd60…1cd80 6c 61 73 73 20 3c 3e 20 72 69 67 68 74 5f 70 61 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 ┆lass <> right_par_class then ┆ 0x1cd80…1cda0 20 20 65 72 72 6f 72 28 74 65 72 6d 69 6e 61 74 69 6f 6e 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d ┆ error(termination,line_no,elem┆ 0x1cda0…1cdc0 65 6e 74 5f 6e 6f 29 3b 0a 20 20 65 6e 64 20 65 6c 73 65 20 65 72 72 6f 72 28 6d 69 73 73 69 6e ┆ent_no); end else error(missin┆ 0x1cdc0…1cde0 67 5f 6f 70 65 72 61 6e 64 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 67 ┆g_operand,line_no,element_no); g┆ 0x1cde0…1ce00 65 74 5f 61 6c 6c 5f 72 65 67 5f 6f 70 65 72 61 6e 64 73 20 3a 3d 20 6e 6f 5f 6f 66 5f 6f 70 3b ┆et_all_reg_operands := no_of_op;┆ 0x1ce00…1ce20 0a 65 6e 64 20 70 72 6f 63 65 64 75 72 65 20 67 65 74 5f 61 6c 6c 5f 72 65 67 5f 6f 70 65 72 61 ┆ end procedure get_all_reg_opera┆ 0x1ce20…1ce40 6e 64 73 3b 0a 0a 0a 0a 0a 0a 0a 20 20 70 72 6f 63 65 64 75 72 65 20 67 65 74 5f 61 5f 72 65 67 ┆nds; procedure get_a_reg┆ 0x1ce40…1ce60 5f 6f 70 65 72 61 6e 64 28 6f 70 5f 76 61 6c 75 65 2c 6b 69 6e 64 29 3b 0a 20 20 3c 2a 2a 2a 2a ┆_operand(op_value,kind); <****┆ 0x1ce60…1ce80 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 ┆********************************┆ 0x1ce80…1cea0 2a 2a 2a 2a 2a 3e 0a 20 20 69 6e 74 65 67 65 72 20 6f 70 5f 76 61 6c 75 65 2c 6b 69 6e 64 3b 0a ┆*****> integer op_value,kind; ┆ 0x1cea0…1cec0 20 20 62 65 67 69 6e 0a 20 20 6c 6f 6e 67 20 6c 6f 6f 6b 75 70 5f 69 6e 64 65 78 3b 0a 20 20 20 ┆ begin long lookup_index; ┆ 0x1cec0…1cee0 20 6e 65 78 74 3b 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 6e 75 6d 62 65 72 5f 63 6c 61 ┆ next; if class = number_cla┆ 0x1cee0…1cf00 73 73 20 74 68 65 6e 0a 20 20 20 62 65 67 69 6e 0a 20 20 20 6b 69 6e 64 20 3a 3d 20 6e 75 6d 62 ┆ss then begin kind := numb┆ 0x1cf00…1cf20 65 72 5f 63 6c 61 73 73 3b 0a 20 20 20 6f 70 5f 76 61 6c 75 65 20 3a 3d 20 6e 75 6d 62 65 72 0a ┆er_class; op_value := number ┆ 0x1cf20…1cf40 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 61 70 ┆ end else if class = ap┆ 0x1cf40…1cf60 6f 73 74 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 ┆ost_class then begin ┆ 0x1cf60…1cf80 20 6e 65 78 74 3b 0a 20 20 20 20 20 20 6b 69 6e 64 20 3a 3d 20 30 3b 0a 20 20 20 20 20 20 6f 70 ┆ next; kind := 0; op┆ 0x1cf80…1cfa0 5f 76 61 6c 75 65 20 3a 3d 20 30 3b 0a 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 75 6e ┆_value := 0; if class = un┆ 0x1cfa0…1cfc0 6b 6e 6f 77 6e 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 6f 72 0a 20 20 20 20 20 20 20 20 20 28 63 6c ┆known_name_class or (cl┆ 0x1cfc0…1cfe0 61 73 73 20 3d 20 74 65 78 74 5f 63 6c 61 73 73 20 61 6e 64 20 74 79 70 65 20 3d 20 6c 61 62 65 ┆ass = text_class and type = labe┆ 0x1cfe0…1d000 6c 5f 74 79 70 65 29 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆l_type) then begin ┆ 0x1d000…1d020 20 20 20 20 20 6e 65 77 5f 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 72 65 66 28 6e 61 6d 65 2c 69 ┆ new_insert_label_ref(name,i┆ 0x1d020…1d040 6e 73 74 72 5f 69 6e 64 65 78 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a ┆nstr_index,line_no,element_no); ┆ 0x1d040…1d060 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 3a 3d 20 6e 75 6d 62 65 72 5f 63 6c 61 73 73 3b 0a 20 ┆ kind := number_class; ┆ 0x1d060…1d080 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 ┆ end else ┆ 0x1d080…1d0a0 20 65 72 72 6f 72 28 6f 70 65 72 61 6e 64 5f 74 79 70 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d ┆ error(operand_type,line_no,elem┆ 0x1d0a0…1d0c0 65 6e 74 5f 6e 6f 29 3b 0a 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 62 65 ┆ent_no); end else be┆ 0x1d0c0…1d0e0 67 69 6e 0a 20 20 20 20 20 20 69 66 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c 30 ┆gin if name_table(number,0┆ 0x1d0e0…1d100 29 20 3c 3e 20 72 65 67 5f 6f 70 5f 74 79 70 65 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 ┆) <> reg_op_type then begi┆ 0x1d100…1d120 6e 0a 20 20 20 20 20 20 6b 69 6e 64 20 3a 3d 20 30 3b 0a 20 20 20 20 20 20 65 72 72 6f 72 28 6f ┆n kind := 0; error(o┆ 0x1d120…1d140 70 65 72 61 6e 64 5f 74 79 70 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a ┆perand_type,line_no,element_no) ┆ 0x1d140…1d160 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e ┆ end else begin┆ 0x1d160…1d180 0a 20 20 20 20 20 20 6f 70 5f 76 61 6c 75 65 20 3a 3d 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 ┆ op_value := name_table(nu┆ 0x1d180…1d1a0 6d 62 65 72 2c 32 29 3b 0a 20 20 20 20 20 20 6b 69 6e 64 20 3a 3d 20 74 65 78 74 5f 63 6c 61 73 ┆mber,2); kind := text_clas┆ 0x1d1a0…1d1c0 73 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 20 6f 66 20 ┆s; end; end; end of ┆ 0x1d1c0…1d1e0 67 65 74 5f 61 5f 72 65 67 5f 6f 70 65 72 61 6e 64 3b 0a 0a 0a 0a 0a 20 20 70 72 6f 63 65 64 75 ┆get_a_reg_operand; procedu┆ 0x1d1e0…1d200 72 65 20 20 67 65 74 5f 32 5f 72 65 67 5f 6f 70 65 72 61 6e 64 73 28 6f 70 5f 76 61 6c 75 65 5f ┆re get_2_reg_operands(op_value_┆ 0x1d200…1d220 31 2c 6f 70 5f 76 61 6c 75 65 5f 32 29 3b 0a 20 20 69 6e 74 65 67 65 72 20 6f 70 5f 76 61 6c 75 ┆1,op_value_2); integer op_valu┆ 0x1d220…1d240 65 5f 31 2c 6f 70 5f 76 61 6c 75 65 5f 32 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 6e 74 65 67 65 ┆e_1,op_value_2; begin intege┆ 0x1d240…1d260 72 20 6b 69 6e 64 5f 31 2c 6b 69 6e 64 5f 32 3b 0a 20 20 20 20 67 65 74 5f 61 5f 72 65 67 5f 6f ┆r kind_1,kind_2; get_a_reg_o┆ 0x1d260…1d280 70 65 72 61 6e 64 28 6f 70 5f 76 61 6c 75 65 5f 31 2c 6b 69 6e 64 5f 31 29 3b 0a 20 20 20 20 6e ┆perand(op_value_1,kind_1); n┆ 0x1d280…1d2a0 65 78 74 3b 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3c 3e 20 63 6f 6d 6d 61 5f 63 6c 61 73 73 ┆ext; if class <> comma_class┆ 0x1d2a0…1d2c0 20 74 68 65 6e 20 65 72 72 6f 72 28 64 65 6c 69 6d 69 74 65 72 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c ┆ then error(delimiter,line_no,el┆ 0x1d2c0…1d2e0 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 20 20 20 20 67 65 74 5f 61 5f 72 65 67 5f 6f 70 65 72 61 6e 64 ┆ement_no); get_a_reg_operand┆ 0x1d2e0…1d300 28 6f 70 5f 76 61 6c 75 65 5f 32 2c 6b 69 6e 64 5f 32 29 3b 0a 20 20 65 6e 64 20 6f 66 20 67 65 ┆(op_value_2,kind_2); end of ge┆ 0x1d300…1d320 74 5f 32 5f 72 65 67 5f 6f 70 65 72 61 6e 64 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 20 20 69 6e 74 65 ┆t_2_reg_operands; inte┆ 0x1d320…1d340 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 73 73 3b 0a ┆ger procedure look_ahead_class; ┆ 0x1d340…1d360 20 20 62 65 67 69 6e 0a 20 20 20 20 69 6e 74 65 67 65 72 20 74 6f 3b 20 6c 6f 6e 67 20 6e 61 6d ┆ begin integer to; long nam┆ 0x1d360…1d380 65 2c 6e 75 6d 62 65 72 3b 0a 20 20 20 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 73 73 20 3a ┆e,number; look_ahead_class :┆ 0x1d380…1d3a0 3d 20 67 65 74 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d 65 2c 6e 75 6d 62 65 72 2c 6c 69 6e 65 5f 70 ┆= get_element(name,number,line_p┆ 0x1d3a0…1d3c0 6f 69 6e 74 65 72 2c 74 6f 29 3b 0a 20 20 65 6e 64 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 ┆ointer,to); end look_ahead_cla┆ 0x1d3c0…1d3e0 73 73 3b 0a 0a 0a 0a 20 20 70 72 6f 63 65 64 75 72 65 20 73 6b 69 70 5f 75 6e 74 69 6c 5f 64 65 ┆ss; procedure skip_until_de┆ 0x1d3e0…1d400 6c 69 6d 5f 63 6c 61 73 73 3b 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 66 6f 72 20 63 6c 61 73 73 ┆lim_class; begin for class┆ 0x1d400…1d420 (52,) 3a 3d 72 65 61 64 5f 6b 69 6e 64 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 29 20 77 68 69 6c 65 20 ┆:=read_kind(line_pointer) while ┆ 0x1d420…1d440 63 6c 61 73 73 20 3c 3e 20 64 65 6c 69 6d 5f 63 6c 61 73 73 20 20 0a 20 20 20 20 61 6e 64 20 63 ┆class <> delim_class and c┆ 0x1d440…1d460 6c 61 73 73 20 3c 3e 20 65 6f 66 5f 63 6c 61 73 73 20 0a 20 20 20 20 61 6e 64 20 63 6c 61 73 73 ┆lass <> eof_class and class┆ 0x1d460…1d480 20 3c 3e 20 73 74 6f 70 5f 6c 69 6e 65 5f 63 6c 61 73 73 20 64 6f 0a 20 20 20 20 6c 69 6e 65 5f ┆ <> stop_line_class do line_┆ 0x1d480…1d4a0 70 6f 69 6e 74 65 72 3a 3d 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 2b 20 31 3b 0a 20 20 65 6e 64 ┆pointer:=line_pointer + 1; end┆ 0x1d4a0…1d4c0 20 73 6b 69 70 5f 75 6e 74 69 6c 5f 64 65 6c 69 6d 5f 63 6c 61 73 73 3b 0a 0a 0a 0a 0a 20 20 69 ┆ skip_until_delim_class; i┆ 0x1d4c0…1d4e0 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 67 65 74 5f 6c 6f 6e 67 5f 6e 61 6d 65 28 6c ┆nteger procedure get_long_name(l┆ 0x1d4e0…1d500 6f 6e 67 5f 6e 61 6d 65 29 3b 0a 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 6c 6f 6e 67 5f 6e 61 6d ┆ong_name); long array long_nam┆ 0x1d500…1d520 65 3b 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 69 6e 74 65 67 65 72 20 63 6c 61 73 73 2c 74 6f 3b ┆e; begin integer class,to;┆ 0x1d520…1d540 0a 20 20 20 20 6c 6f 6e 67 20 6e 61 6d 65 2c 6e 75 6d 62 65 72 3b 0a 20 20 20 20 63 6c 61 73 73 ┆ long name,number; class┆ 0x1d540…1d560 20 3a 3d 20 67 65 74 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d 65 2c 6e 75 6d 62 65 72 2c 6c 69 6e 65 ┆ := get_element(name,number,line┆ 0x1d560…1d580 5f 70 6f 69 6e 74 65 72 2c 74 6f 29 3b 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 75 6e 6b ┆_pointer,to); if class = unk┆ 0x1d580…1d5a0 6e 6f 77 6e 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 6f 72 20 63 6c 61 73 73 20 3d 20 74 65 78 74 5f ┆nown_name_class or class = text_┆ 0x1d5a0…1d5c0 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 67 65 74 5f 6c ┆class then begin get_l┆ 0x1d5c0…1d5e0 6f 6e 67 5f 6e 61 6d 65 20 3a 3d 20 31 3b 0a 20 20 20 20 20 20 6c 6f 6e 67 5f 6e 61 6d 65 28 31 ┆ong_name := 1; long_name(1┆ 0x1d5e0…1d600 29 20 3a 3d 20 6e 61 6d 65 3b 0a 20 20 20 20 20 20 6c 6f 6e 67 5f 6e 61 6d 65 28 32 29 20 3a 3d ┆) := name; long_name(2) :=┆ 0x1d600…1d620 20 30 3b 0a 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 63 6c 61 73 ┆ 0; end else if clas┆ 0x1d620…1d640 73 20 3d 20 6c 6f 6e 67 5f 74 65 78 74 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 62 65 67 ┆s = long_text_class then beg┆ 0x1d640…1d660 69 6e 0a 20 20 20 20 20 20 6c 6f 6e 67 5f 6e 61 6d 65 28 31 29 20 3a 3d 20 72 65 61 64 5f 76 61 ┆in long_name(1) := read_va┆ 0x1d660…1d680 6c 75 65 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 29 3b 0a 20 20 20 20 20 20 6c 6f 6e 67 5f 6e 61 ┆lue(line_pointer); long_na┆ 0x1d680…1d6a0 6d 65 28 32 29 20 3a 3d 20 72 65 61 64 5f 76 61 6c 75 65 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 ┆me(2) := read_value(line_pointer┆ 0x1d6a0…1d6c0 20 2b 20 32 29 3b 0a 20 20 20 20 20 20 67 65 74 5f 6c 6f 6e 67 5f 6e 61 6d 65 20 3a 3d 20 20 69 ┆ + 2); get_long_name := i┆ 0x1d6c0…1d6e0 66 20 72 65 61 64 5f 6b 69 6e 64 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 2b 20 33 20 29 20 3d ┆f read_kind(line_pointer + 3 ) =┆ 0x1d6e0…1d700 20 74 65 78 74 5f 63 6c 61 73 73 20 0a 20 20 20 20 20 20 74 68 65 6e 20 2d 32 20 65 6c 73 65 20 ┆ text_class then -2 else ┆ 0x1d700…1d720 32 3b 0a 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 67 65 74 5f 6c 6f 6e 67 ┆2; end else get_long┆ 0x1d720…1d740 5f 6e 61 6d 65 20 3a 3d 20 30 3b 0a 20 20 65 6e 64 20 67 65 74 5f 6c 6f 6e 67 5f 6e 61 6d 65 3b ┆_name := 0; end get_long_name;┆ 0x1d740…1d760 0a 0a 20 20 3c 2a 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 72 6f 63 65 64 75 72 65 73 20 ┆ <* the following procedures ┆ 0x1d760…1d780 75 73 65 73 20 67 65 74 6e 65 78 74 20 65 6c 65 6d 65 6e 74 0a 20 20 20 20 20 74 6f 20 67 65 74 ┆uses getnext element to get┆ 0x1d780…1d7a0 20 6e 65 78 74 20 65 6c 65 6d 65 6e 74 20 69 6e 74 6f 20 0a 20 20 20 20 20 63 6c 61 73 73 2c 6e ┆ next element into class,n┆ 0x1d7a0…1d7c0 61 6d 65 2c 6e 75 6d 62 65 72 2c 74 79 70 65 0a 20 20 20 20 20 63 6c 61 73 73 31 2c 6e 61 6d 65 ┆ame,number,type class1,name┆ 0x1d7c0…1d7e0 31 2c 6e 75 6d 62 65 72 31 2c 74 79 70 65 32 0a 20 20 20 20 20 63 6c 61 73 73 32 2c 6e 61 6d 65 ┆1,number1,type2 class2,name┆ 0x1d7e0…1d800 32 2c 6e 75 6d 62 65 72 32 2c 74 79 70 65 32 20 2a 3e 0a 0a 20 20 69 6e 74 65 67 65 72 20 70 72 ┆2,number2,type2 *> integer pr┆ 0x1d800…1d820 6f 63 65 64 75 72 65 20 6e 65 78 74 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6e 65 78 74 20 3a 3d 20 ┆ocedure next; begin next := ┆ 0x1d820…1d840 63 6c 61 73 73 20 3a 3d 20 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d 65 2c 6e ┆class := get_next_element(name,n┆ 0x1d840…1d860 75 6d 62 65 72 29 3b 0a 20 20 74 79 70 65 20 3a 3d 20 69 66 20 63 6c 61 73 73 20 3d 20 74 65 78 ┆umber); type := if class = tex┆ 0x1d860…1d880 74 5f 63 6c 61 73 73 20 74 68 65 6e 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c 30 ┆t_class then name_table(number,0┆ 0x1d880…1d8a0 29 20 65 6c 73 65 20 63 6c 61 73 73 3b 0a 20 20 65 6e 64 20 6e 65 78 74 3b 0a 0a 20 20 69 6e 74 ┆) else class; end next; int┆ 0x1d8a0…1d8c0 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 6e 65 78 74 31 3b 0a 20 20 62 65 67 69 6e 0a 20 20 ┆eger procedure next1; begin ┆ 0x1d8c0…1d8e0 6e 65 78 74 31 20 3a 3d 20 63 6c 61 73 73 31 20 3a 3d 20 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d ┆next1 := class1 := get_next_elem┆ 0x1d8e0…1d900 65 6e 74 28 6e 61 6d 65 31 2c 6e 75 6d 62 65 72 31 29 3b 0a 20 20 74 79 70 65 31 20 3a 3d 20 69 ┆ent(name1,number1); type1 := i┆ 0x1d900…1d920 66 20 63 6c 61 73 73 31 20 3d 20 74 65 78 74 5f 63 6c 61 73 73 20 20 74 68 65 6e 20 6e 61 6d 65 ┆f class1 = text_class then name┆ 0x1d920…1d940 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c 30 29 20 65 6c 73 65 20 63 6c 61 73 73 31 3b 0a 20 20 ┆_table(number,0) else class1; ┆ 0x1d940…1d960 65 6e 64 20 6e 65 78 74 31 3b 0a 0a 20 20 69 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 ┆end next1; integer procedure ┆ 0x1d960…1d980 6e 65 78 74 32 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6e 65 78 74 32 3a 3d 63 6c 61 73 73 32 3a 3d ┆next2; begin next2:=class2:=┆ 0x1d980…1d9a0 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d 65 32 2c 6e 75 6d 62 65 72 32 29 3b ┆get_next_element(name2,number2);┆ 0x1d9a0…1d9c0 0a 20 20 74 79 70 65 32 20 3a 3d 20 69 66 20 63 6c 61 73 73 32 20 3d 20 74 65 78 74 5f 63 6c 61 ┆ type2 := if class2 = text_cla┆ 0x1d9c0…1d9e0 73 73 20 74 68 65 6e 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c 30 29 20 65 6c 73 ┆ss then name_table(number,0) els┆ 0x1d9e0…1da00 65 20 63 6c 61 73 73 32 3b 0a 20 20 65 6e 64 20 6e 65 78 74 32 3b 0a 0a 20 20 69 6e 74 65 67 65 ┆e class2; end next2; intege┆ 0x1da00…1da20 72 20 70 72 6f 63 65 64 75 72 65 20 73 6b 69 70 5f 6e 65 78 74 3b 0a 20 20 62 65 67 69 6e 0a 20 ┆r procedure skip_next; begin ┆ 0x1da20…1da40 20 6c 6f 6e 67 20 64 75 6d 6d 79 6e 61 6d 65 2c 64 75 6d 6d 79 6e 75 6d 62 65 72 3b 0a 20 20 73 ┆ long dummyname,dummynumber; s┆ 0x1da40…1da60 6b 69 70 5f 6e 65 78 74 3a 3d 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 28 64 75 6d 6d 79 ┆kip_next:=get_next_element(dummy┆ 0x1da60…1da80 6e 61 6d 65 2c 64 75 6d 6d 79 6e 75 6d 62 65 72 29 3b 0a 20 20 65 6e 64 20 73 6b 69 70 5f 6e 65 ┆name,dummynumber); end skip_ne┆ 0x1da80…1daa0 78 74 3b 0a 0a 20 20 69 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 6c 6f 6f 6b 3b 0a 20 ┆xt; integer procedure look; ┆ 0x1daa0…1dac0 20 62 65 67 69 6e 0a 20 20 6c 6f 6f 6b 20 3a 3d 20 63 6c 61 73 73 20 3a 3d 20 6c 6f 6f 6b 5f 61 ┆ begin look := class := look_a┆ 0x1dac0…1dae0 68 65 61 64 5f 63 6c 61 73 73 3b 0a 20 20 65 6e 64 20 6c 6f 6f 6b 3b 0a 0a 20 20 69 6e 74 65 67 ┆head_class; end look; integ┆ 0x1dae0…1db00 65 72 20 70 72 6f 63 65 64 75 72 65 20 6c 6f 6f 6b 31 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6c 6f ┆er procedure look1; begin lo┆ 0x1db00…1db20 6f 6b 31 20 3a 3d 20 63 6c 61 73 73 31 20 3a 3d 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 73 ┆ok1 := class1 := look_ahead_clas┆ 0x1db20…1db40 73 3b 0a 20 20 65 6e 64 20 6c 6f 6f 6b 31 3b 0a 0a 20 20 69 6e 74 65 67 65 72 20 70 72 6f 63 65 ┆s; end look1; integer proce┆ 0x1db40…1db60 64 75 72 65 20 6c 6f 6f 6b 32 3b 0a 20 20 62 65 67 69 6e 0a 20 20 6c 6f 6f 6b 32 3a 3d 20 63 6c ┆dure look2; begin look2:= cl┆ 0x1db60…1db80 61 73 73 32 20 3a 3d 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 73 73 3b 0a 20 20 65 6e 64 20 ┆ass2 := look_ahead_class; end ┆ 0x1db80…1dba0 6c 6f 6f 6b 32 3b 0a 0a 0a 0a 0a 0a 0a 0a 20 20 69 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 ┆look2; integer procedur┆ 0x1dba0…1dbc0 65 20 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d 65 2c 6e 75 6d 62 65 72 29 3b ┆e get_next_element(name,number);┆ 0x1dbc0…1dbe0 0a 20 20 6c 6f 6e 67 20 6e 61 6d 65 2c 6e 75 6d 62 65 72 3b 0a 20 20 62 65 67 69 6e 0a 20 20 20 ┆ long name,number; begin ┆ 0x1dbe0…1dc00 20 69 6e 74 65 67 65 72 20 74 6f 2c 74 65 73 74 63 6c 61 73 73 3b 3b 0a 20 20 20 20 67 65 74 5f ┆ integer to,testclass;; get_┆ 0x1dc00…1dc20 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 20 74 65 73 74 63 6c 61 73 73 20 3a 3d 20 67 65 74 ┆next_element := testclass := get┆ 0x1dc20…1dc40 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d 65 2c 6e 75 6d 62 65 72 2c 6c 69 6e 65 5f 70 6f 69 6e 74 65 ┆_element(name,number,line_pointe┆ 0x1dc40…1dc60 72 2c 74 6f 29 3b 0a 20 20 20 20 69 66 20 74 65 73 74 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 ┆r,to); if test then begi┆ 0x1dc60…1dc80 6e 0a 20 20 20 20 20 20 69 6e 74 65 67 65 72 20 69 3b 0a 20 20 20 20 20 20 77 72 69 74 65 28 6f ┆n integer i; write(o┆ 0x1dc80…1dca0 75 74 2c 3c 3a 3c 31 30 3e 2a 2a 2a 20 74 65 73 74 63 6c 61 73 73 3a 20 3a 3e 2c 3c 3c 5f 64 64 ┆ut,<:<10>*** testclass: :>,<<_dd┆ 0x1dca0…1dcc0 3e 2c 74 65 73 74 5f 63 6c 61 73 73 2c 6c 69 6e 65 70 6f 69 6e 74 65 72 2c 74 6f 2c 0a 20 20 20 ┆>,test_class,linepointer,to, ┆ 0x1dcc0…1dce0 20 20 20 3c 3a 20 72 6b 69 6e 64 3a 20 3a 3e 29 3b 0a 20 20 20 20 20 20 66 6f 72 20 69 3a 3d 31 ┆ <: rkind: :>); for i:=1┆ 0x1dce0…1dd00 20 73 74 65 70 20 31 20 75 6e 74 69 6c 20 6e 6f 5f 6f 66 5f 65 6c 65 6d 65 6e 74 73 20 64 6f 0a ┆ step 1 until no_of_elements do ┆ 0x1dd00…1dd20 (53,) 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 3c 3c 5f 64 64 3e 2c 72 65 61 64 5f 6b 69 6e 64 ┆ write(out,<<_dd>,read_kind┆ 0x1dd20…1dd40 28 69 29 29 3b 0a 20 20 20 20 65 6e 64 20 74 65 73 74 3b 0a 20 20 20 20 65 6c 65 6d 65 6e 74 5f ┆(i)); end test; element_┆ 0x1dd40…1dd60 6e 6f 3a 3d 65 6c 65 6d 65 6e 74 5f 6e 6f 2b 31 3b 0a 20 20 20 20 6c 69 6e 65 5f 70 6f 69 6e 74 ┆no:=element_no+1; line_point┆ 0x1dd60…1dd80 65 72 20 3a 3d 20 69 66 20 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 3d 20 6e 6f 5f 6f 66 5f 65 6c ┆er := if line_pointer = no_of_el┆ 0x1dd80…1dda0 65 6d 65 6e 74 73 20 74 68 65 6e 20 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 65 6c 73 65 20 74 6f ┆ements then line_pointer else to┆ 0x1dda0…1ddc0 3b 0a 20 20 65 6e 64 20 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 3b 0a 0a 0a 0a 20 20 69 ┆; end get_next_element; i┆ 0x1ddc0…1dde0 6e 74 65 67 65 72 20 70 72 6f 63 65 64 75 72 65 20 67 65 74 5f 65 6c 65 6d 65 6e 74 28 6e 61 6d ┆nteger procedure get_element(nam┆ 0x1dde0…1de00 65 2c 6e 75 6d 62 65 72 2c 66 72 6f 6d 2c 74 6f 29 3b 0a 20 20 76 61 6c 75 65 20 66 72 6f 6d 3b ┆e,number,from,to); value from;┆ 0x1de00…1de20 20 69 6e 74 65 67 65 72 20 66 72 6f 6d 2c 74 6f 3b 20 6c 6f 6e 67 20 6e 61 6d 65 2c 6e 75 6d 62 ┆ integer from,to; long name,numb┆ 0x1de20…1de40 65 72 3b 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 69 6e 74 65 67 65 72 20 63 6c 61 73 73 3b 0a 20 ┆er; begin integer class; ┆ 0x1de40…1de60 20 20 20 66 6f 72 20 63 6c 61 73 73 3a 3d 72 65 61 64 5f 6b 69 6e 64 28 66 72 6f 6d 29 20 77 68 ┆ for class:=read_kind(from) wh┆ 0x1de60…1de80 69 6c 65 20 63 6c 61 73 73 20 3d 20 64 65 6c 69 6d 5f 63 6c 61 73 73 20 64 6f 0a 20 20 20 20 66 ┆ile class = delim_class do f┆ 0x1de80…1dea0 72 6f 6d 20 3a 3d 20 66 72 6f 6d 20 2b 20 31 3b 0a 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d ┆rom := from + 1; if class =┆ 0x1dea0…1dec0 20 36 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 72 65 61 64 5f ┆ 6 then begin if read_┆ 0x1dec0…1dee0 6b 69 6e 64 28 66 72 6f 6d 2b 31 29 20 3c 3e 20 36 20 6f 72 0a 20 20 20 20 20 20 28 20 72 65 61 ┆kind(from+1) <> 6 or ( rea┆ 0x1dee0…1df00 64 5f 6b 69 6e 64 28 66 72 6f 6d 2b 31 29 20 3d 20 36 20 61 6e 64 20 72 65 61 64 5f 76 61 6c 75 ┆d_kind(from+1) = 6 and read_valu┆ 0x1df00…1df20 65 28 66 72 6f 6d 2b 31 29 20 3d 20 30 29 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a ┆e(from+1) = 0) then begin ┆ 0x1df20…1df40 20 20 20 20 20 20 20 20 3c 2a 20 73 68 6f 72 74 20 74 65 78 74 20 2a 3e 0a 20 20 20 20 20 20 20 ┆ <* short text *> ┆ 0x1df40…1df60 20 6e 61 6d 65 20 3a 3d 20 72 65 61 64 5f 76 61 6c 75 65 28 66 72 6f 6d 29 3b 0a 20 20 20 20 20 ┆ name := read_value(from); ┆ 0x1df60…1df80 20 20 20 69 66 20 6e 61 6d 65 20 3d 20 66 69 6e 64 5f 6e 61 6d 65 28 31 29 20 74 68 65 6e 20 66 ┆ if name = find_name(1) then f┆ 0x1df80…1dfa0 6f 75 6e 64 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 69 66 20 6c 6f 6f 6b 5f 75 70 ┆ound := true; if look_up┆ 0x1dfa0…1dfc0 5f 6e 61 6d 65 28 6e 61 6d 65 5f 74 61 62 6c 65 2c 6e 61 6d 65 2c 6e 75 6d 62 65 72 29 20 74 68 ┆_name(name_table,name,number) th┆ 0x1dfc0…1dfe0 65 6e 0a 20 20 20 20 20 20 20 20 67 65 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 20 36 20 65 6c 73 65 ┆en get_element := 6 else┆ 0x1dfe0…1e000 20 67 65 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 20 39 3b 0a 0a 0a 20 20 20 20 20 20 65 6e 64 0a 20 ┆ get_element := 9; end ┆ 0x1e000…1e020 20 20 20 20 20 65 6c 73 65 20 67 65 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 20 37 3b 0a 20 20 20 20 ┆ else get_element := 7; ┆ 0x1e020…1e040 20 20 3c 2a 20 73 6b 69 70 20 74 6f 20 31 2e 20 6e 6f 74 20 74 65 78 74 20 65 6c 65 6d 65 6e 74 ┆ <* skip to 1. not text element┆ 0x1e040…1e060 20 2a 3e 0a 20 20 20 20 20 20 66 72 6f 6d 20 3a 3d 20 66 72 6f 6d 2b 31 3b 0a 20 20 20 20 20 20 ┆ *> from := from+1; ┆ 0x1e060…1e080 66 6f 72 20 63 6c 61 73 73 20 3a 3d 20 72 65 61 64 5f 6b 69 6e 64 28 66 72 6f 6d 29 20 77 68 69 ┆for class := read_kind(from) whi┆ 0x1e080…1e0a0 6c 65 20 63 6c 61 73 73 20 3d 20 36 20 64 6f 0a 20 20 20 20 20 20 66 72 6f 6d 20 3a 3d 20 66 72 ┆le class = 6 do from := fr┆ 0x1e0a0…1e0c0 6f 6d 2b 31 3b 0a 20 20 20 20 20 20 74 6f 20 3a 3d 20 66 72 6f 6d 3b 0a 20 20 20 20 65 6e 64 0a ┆om+1; to := from; end ┆ 0x1e0c0…1e0e0 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 70 6c 75 73 5f 63 6c 61 ┆ else if class = plus_cla┆ 0x1e0e0…1e100 73 73 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 67 65 74 5f 69 ┆ss then begin if get_i┆ 0x1e100…1e120 6e 74 65 67 65 72 28 6e 75 6d 62 65 72 2c 66 72 6f 6d 2b 31 2c 74 6f 29 20 74 68 65 6e 20 67 65 ┆nteger(number,from+1,to) then ge┆ 0x1e120…1e140 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 20 32 0a 0a 20 20 20 20 20 20 65 6c 73 65 20 67 65 74 5f 65 ┆t_element := 2 else get_e┆ 0x1e140…1e160 6c 65 6d 65 6e 74 20 3a 3d 20 31 3b 0a 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 ┆lement := 1; end else ┆ 0x1e160…1e180 20 20 69 66 20 63 6c 61 73 73 20 3d 20 6d 69 6e 75 73 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 ┆ if class = minus_class then ┆ 0x1e180…1e1a0 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 67 65 74 5f 69 6e 74 65 67 65 72 28 6e 75 6d ┆ begin if get_integer(num┆ 0x1e1a0…1e1c0 62 65 72 2c 66 72 6f 6d 2b 31 2c 74 6f 29 20 74 68 65 6e 20 67 65 74 5f 65 6c 65 6d 65 6e 74 3a ┆ber,from+1,to) then get_element:┆ 0x1e1c0…1e1e0 3d 32 0a 20 20 20 20 20 20 65 6c 73 65 20 67 65 74 5f 65 6c 65 6d 65 6e 74 3a 3d 31 3b 0a 20 20 ┆=2 else get_element:=1; ┆ 0x1e1e0…1e200 20 20 20 20 6e 75 6d 62 65 72 3a 3d 20 6e 75 6d 62 65 72 2a 28 2d 31 29 3b 0a 20 20 20 20 65 6e ┆ number:= number*(-1); en┆ 0x1e200…1e220 64 20 65 6c 73 65 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 32 20 74 68 65 6e 0a 20 20 20 ┆d else if class = 2 then ┆ 0x1e220…1e240 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 67 65 74 5f 69 6e 74 65 67 65 72 28 6e 75 6d 62 ┆ begin if get_integer(numb┆ 0x1e240…1e260 65 72 2c 66 72 6f 6d 2c 74 6f 29 20 74 68 65 6e 20 67 65 74 5f 65 6c 65 6d 65 6e 74 3a 3d 32 0a ┆er,from,to) then get_element:=2 ┆ 0x1e260…1e280 20 20 20 20 20 20 65 6c 73 65 20 67 65 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 20 31 3b 0a 20 20 20 ┆ else get_element := 1; ┆ 0x1e280…1e2a0 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 73 74 6f ┆ end else if class = sto┆ 0x1e2a0…1e2c0 70 5f 6c 69 6e 65 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆p_line_class then begin ┆ 0x1e2c0…1e2e0 20 20 6e 75 6d 62 65 72 20 3a 3d 20 72 65 61 64 5f 76 61 6c 75 65 28 66 72 6f 6d 29 3b 0a 20 20 ┆ number := read_value(from); ┆ 0x1e2e0…1e300 20 20 20 20 69 66 20 6e 75 6d 62 65 72 20 65 78 74 72 61 63 74 20 32 34 20 3d 20 32 35 20 3c 2a ┆ if number extract 24 = 25 <*┆ 0x1e300…1e320 20 65 6f 66 20 76 61 6c 75 65 20 2a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 67 65 74 5f 65 6c 65 ┆ eof value *> then get_ele┆ 0x1e320…1e340 6d 65 6e 74 20 3a 3d 20 65 6f 66 5f 63 6c 61 73 73 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 ┆ment := eof_class else ┆ 0x1e340…1e360 20 20 20 67 65 74 5f 65 6c 65 6d 65 6e 74 20 3a 3d 63 6c 61 73 73 3b 0a 20 20 20 20 20 20 74 6f ┆ get_element :=class; to┆ 0x1e360…1e380 20 3a 3d 66 72 6f 6d 2b 31 3b 0a 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 62 65 67 69 ┆ :=from+1; end else begi┆ 0x1e380…1e3a0 6e 0a 20 20 20 20 20 20 6e 75 6d 62 65 72 3a 3d 72 65 61 64 5f 76 61 6c 75 65 28 66 72 6f 6d 29 ┆n number:=read_value(from)┆ 0x1e3a0…1e3c0 3b 0a 20 20 20 20 20 20 74 6f 20 3a 3d 20 66 72 6f 6d 2b 31 3b 0a 20 20 20 20 20 20 67 65 74 5f ┆; to := from+1; get_┆ 0x1e3c0…1e3e0 65 6c 65 6d 65 6e 74 20 3a 3d 20 63 6c 61 73 73 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 ┆element := class; end; end┆ 0x1e3e0…1e400 20 67 65 74 5f 65 6c 65 6d 65 6e 74 3b 0a 0a 0a 20 20 62 6f 6f 6c 65 61 6e 20 70 72 6f 63 65 64 ┆ get_element; boolean proced┆ 0x1e400…1e420 75 72 65 20 67 65 74 5f 69 6e 74 65 67 65 72 28 6e 75 6d 62 65 72 2c 66 72 6f 6d 2c 74 6f 29 3b ┆ure get_integer(number,from,to);┆ 0x1e420…1e440 0a 20 20 76 61 6c 75 65 20 66 72 6f 6d 3b 20 69 6e 74 65 67 65 72 20 66 72 6f 6d 2c 74 6f 3b 20 ┆ value from; integer from,to; ┆ 0x1e440…1e460 6c 6f 6e 67 20 6e 75 6d 62 65 72 3b 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 6c 6f 6e 67 20 62 61 ┆long number; begin long ba┆ 0x1e460…1e480 73 65 3b 0a 20 20 20 20 69 66 20 72 65 61 64 5f 6b 69 6e 64 28 66 72 6f 6d 29 3c 3e 20 32 20 74 ┆se; if read_kind(from)<> 2 t┆ 0x1e480…1e4a0 68 65 6e 20 67 65 74 5f 69 6e 74 65 67 65 72 3a 3d 66 61 6c 73 65 0a 20 20 20 20 65 6c 73 65 0a ┆hen get_integer:=false else ┆ 0x1e4a0…1e4c0 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 72 65 61 64 5f 6b 69 6e 64 28 66 72 6f ┆ begin if read_kind(fro┆ 0x1e4c0…1e4e0 6d 2b 31 29 20 3d 20 70 65 72 69 6f 64 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 ┆m+1) = period_class then b┆ 0x1e4e0…1e500 65 67 69 6e 0a 20 20 20 20 20 20 20 20 62 61 73 65 3a 3d 72 65 61 64 5f 76 61 6c 75 65 28 66 72 ┆egin base:=read_value(fr┆ 0x1e500…1e520 6f 6d 29 3b 0a 20 20 20 20 20 20 20 20 66 72 6f 6d 3a 3d 66 72 6f 6d 2b 32 3b 0a 20 20 20 20 20 ┆om); from:=from+2; ┆ 0x1e520…1e540 20 20 20 69 66 20 72 65 61 64 5f 6b 69 6e 64 28 66 72 6f 6d 29 20 3c 3e 20 32 20 74 68 65 6e 0a ┆ if read_kind(from) <> 2 then ┆ 0x1e540…1e560 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 67 65 74 5f 69 6e 74 65 ┆ begin get_inte┆ 0x1e560…1e580 67 65 72 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 74 6f 20 3a 3d 20 66 72 ┆ger := false; to := fr┆ 0x1e580…1e5a0 6f 6d 2d 31 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 62 ┆om-1; end else b┆ 0x1e5a0…1e5c0 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 3a 3d 72 65 61 64 5f 76 61 6c 75 ┆egin number:=read_valu┆ 0x1e5c0…1e5e0 65 28 66 72 6f 6d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 67 65 74 5f 69 6e 74 65 67 65 72 3a 3d ┆e(from); get_integer:=┆ 0x1e5e0…1e600 62 61 73 65 5f 63 6f 6e 76 65 72 74 28 62 61 73 65 2c 6e 75 6d 62 65 72 29 3b 0a 20 20 20 20 20 ┆base_convert(base,number); ┆ 0x1e600…1e620 (54,) 20 20 20 20 74 6f 20 3a 3d 20 66 72 6f 6d 20 2b 20 31 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b ┆ to := from + 1; end;┆ 0x1e620…1e640 0a 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆ end else begin ┆ 0x1e640…1e660 20 20 20 20 6e 75 6d 62 65 72 3a 3d 72 65 61 64 5f 76 61 6c 75 65 28 66 72 6f 6d 29 3b 0a 20 20 ┆ number:=read_value(from); ┆ 0x1e660…1e680 20 20 20 20 20 20 67 65 74 5f 69 6e 74 65 67 65 72 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 ┆ get_integer := true; ┆ 0x1e680…1e6a0 20 20 20 74 6f 20 3a 3d 20 66 72 6f 6d 20 2b 20 31 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 ┆ to := from + 1; end; ┆ 0x1e6a0…1e6c0 20 20 65 6e 64 3b 0a 20 20 65 6e 64 20 67 65 74 5f 69 6e 74 65 67 65 72 3b 0a 0a 0a 20 20 62 6f ┆ end; end get_integer; bo┆ 0x1e6c0…1e6e0 6f 6c 65 61 6e 20 70 72 6f 63 65 64 75 72 65 20 62 61 73 65 5f 63 6f 6e 76 65 72 74 28 62 61 73 ┆olean procedure base_convert(bas┆ 0x1e6e0…1e700 65 2c 6e 75 6d 62 65 72 29 3b 0a 20 20 6c 6f 6e 67 20 62 61 73 65 2c 6e 75 6d 62 65 72 3b 0a 20 ┆e,number); long base,number; ┆ 0x1e700…1e720 20 62 65 67 69 6e 0a 20 20 20 20 69 6e 74 65 67 65 72 20 73 68 69 66 74 5f 69 6e 64 65 78 3b 20 ┆ begin integer shift_index; ┆ 0x1e720…1e740 6c 6f 6e 67 20 6e 75 6d 62 65 72 31 2c 6e 75 6d 62 65 72 32 3b 0a 20 20 20 20 6e 75 6d 62 65 72 ┆long number1,number2; number┆ 0x1e740…1e760 32 3a 3d 30 3b 20 73 68 69 66 74 5f 69 6e 64 65 78 20 3a 3d 30 3b 0a 20 20 20 20 62 61 73 65 5f ┆2:=0; shift_index :=0; base_┆ 0x1e760…1e780 63 6f 6e 76 65 72 74 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 69 66 20 62 61 73 65 20 3d 20 38 ┆convert := true; if base = 8┆ 0x1e780…1e7a0 20 74 68 65 6e 20 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 66 6f 72 20 6e 75 6d 62 65 ┆ then begin for numbe┆ 0x1e7a0…1e7c0 72 31 20 3a 3d 20 6e 75 6d 62 65 72 20 6d 6f 64 20 31 30 20 77 68 69 6c 65 20 6e 75 6d 62 65 72 ┆r1 := number mod 10 while number┆ 0x1e7c0…1e7e0 20 3c 3e 20 30 20 64 6f 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 6e 75 6d ┆ <> 0 do begin num┆ 0x1e7e0…1e800 62 65 72 20 3a 3d 20 6e 75 6d 62 65 72 20 2f 2f 20 31 30 3b 0a 20 20 20 20 20 20 20 20 69 66 20 ┆ber := number // 10; if ┆ 0x1e800…1e820 6e 75 6d 62 65 72 31 3e 37 20 6f 72 20 6e 75 6d 62 65 72 31 20 3c 20 30 20 74 68 65 6e 20 62 61 ┆number1>7 or number1 < 0 then ba┆ 0x1e820…1e840 73 65 5f 63 6f 6e 76 65 72 74 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 6e 75 6d ┆se_convert := false; num┆ 0x1e840…1e860 62 65 72 32 3a 3d 6e 75 6d 62 65 72 32 20 2b 20 6e 75 6d 62 65 72 31 20 73 68 69 66 74 20 73 68 ┆ber2:=number2 + number1 shift sh┆ 0x1e860…1e880 69 66 74 5f 69 6e 64 65 78 3b 0a 20 20 20 20 20 20 20 20 73 68 69 66 74 5f 69 6e 64 65 78 20 3a ┆ift_index; shift_index :┆ 0x1e880…1e8a0 3d 20 73 68 69 66 74 5f 69 6e 64 65 78 2b 33 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 ┆= shift_index+3; end; ┆ 0x1e8a0…1e8c0 20 20 6e 75 6d 62 65 72 20 3a 3d 20 6e 75 6d 62 65 72 32 3b 0a 20 20 20 20 65 6e 64 20 65 6c 73 ┆ number := number2; end els┆ 0x1e8c0…1e8e0 65 20 62 61 73 65 5f 63 6f 6e 76 65 72 74 3a 3d 66 61 6c 73 65 3b 0a 20 20 65 6e 64 20 62 61 73 ┆e base_convert:=false; end bas┆ 0x1e8e0…1e900 65 5f 63 6f 6e 76 65 72 74 3b 0a 20 20 62 6f 6f 6c 65 61 6e 20 70 72 6f 63 65 64 75 72 65 20 72 ┆e_convert; boolean procedure r┆ 0x1e900…1e920 65 61 64 5f 61 6e 64 5f 73 65 74 5f 62 69 74 73 28 6f 70 65 72 61 6e 64 29 3b 0a 20 20 3c 2a 2a ┆ead_and_set_bits(operand); <**┆ 0x1e920…1e940 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 ┆********************************┆ 0x1e940…1e960 2a 2a 2a 2a 2a 2a 2a 2a 3e 0a 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 6f 70 65 72 61 6e 64 3b 0a ┆********> long array operand; ┆ 0x1e960…1e980 20 20 62 65 67 69 6e 0a 20 20 62 6f 6f 6c 65 61 6e 20 65 72 72 6f 72 3b 0a 20 20 65 72 72 6f 72 ┆ begin boolean error; error┆ 0x1e980…1e9a0 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 0a 20 20 72 65 70 65 61 74 0a 20 20 20 20 62 65 67 69 6e ┆ := false; repeat begin┆ 0x1e9a0…1e9c0 0a 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 6c 65 66 74 5f 70 ┆ next; if class = left_p┆ 0x1e9c0…1e9e0 61 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 ┆ar_class then begin ┆ 0x1e9e0…1ea00 69 66 20 6e 65 78 74 31 20 3c 3e 20 6e 75 6d 62 65 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 ┆if next1 <> number_class then ┆ 0x1ea00…1ea20 20 20 20 20 20 20 65 72 72 6f 72 20 3a 3d 20 74 72 75 65 0a 20 20 20 20 20 20 20 65 6c 73 65 0a ┆ error := true else ┆ 0x1ea20…1ea40 20 20 20 20 20 20 69 66 20 6e 65 78 74 3c 3e 20 63 6f 6c 6f 6e 5f 63 6c 61 73 73 20 74 68 65 6e ┆ if next<> colon_class then┆ 0x1ea40…1ea60 0a 20 20 20 20 20 20 20 20 65 72 72 6f 72 20 3a 3d 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 65 ┆ error := true e┆ 0x1ea60…1ea80 6c 73 65 0a 20 20 20 20 20 20 69 66 20 6e 65 78 74 32 20 3c 3e 20 6e 75 6d 62 65 72 5f 63 6c 61 ┆lse if next2 <> number_cla┆ 0x1ea80…1eaa0 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 65 72 72 6f 72 20 3a 3d 20 74 72 75 65 0a 20 20 ┆ss then error := true ┆ 0x1eaa0…1eac0 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 69 66 20 6e 65 78 74 20 3c 3e 20 72 69 67 68 74 ┆ else if next <> right┆ 0x1eac0…1eae0 5f 70 61 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 65 72 72 6f 72 20 3a 3d 20 ┆_par_class then error := ┆ 0x1eae0…1eb00 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 69 66 20 6e 75 6d 62 65 72 5f 31 20 3c 3d 20 6e 75 6d ┆true; if number_1 <= num┆ 0x1eb00…1eb20 62 65 72 5f 32 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 5f 31 20 3e 3d ┆ber_2 and number_1 >=┆ 0x1eb20…1eb40 20 30 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 5f 32 20 3c 3d 20 6e 6f ┆ 0 and number_2 <= no┆ 0x1eb40…1eb60 5f 6f 66 5f 62 69 74 73 5f 69 6e 5f 63 6f 64 65 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 ┆_of_bits_in_code and ┆ 0x1eb60…1eb80 2d 2c 20 65 72 72 6f 72 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 20 3a ┆-, error then error :┆ 0x1eb80…1eba0 3d 20 2d 2c 20 73 65 74 5f 62 69 74 73 28 6f 70 65 72 61 6e 64 2c 6e 75 6d 62 65 72 31 20 65 78 ┆= -, set_bits(operand,number1 ex┆ 0x1eba0…1ebc0 74 72 61 63 74 20 32 34 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 ┆tract 24, nu┆ 0x1ebc0…1ebe0 6d 62 65 72 32 20 65 78 74 72 61 63 74 20 32 34 29 0a 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 ┆mber2 extract 24) else ┆ 0x1ebe0…1ec00 65 72 72 6f 72 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 6e 65 78 74 3b 0a 0a 20 20 20 ┆error := true; next; ┆ 0x1ec00…1ec20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 6e 75 6d 62 ┆ end else if class = numb┆ 0x1ec20…1ec40 65 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 69 66 ┆er_class then begin if┆ 0x1ec40…1ec60 20 6e 75 6d 62 65 72 20 3e 3d 20 30 20 61 6e 64 20 20 6e 75 6d 62 65 72 20 3c 3d 20 6e 6f 5f 6f ┆ number >= 0 and number <= no_o┆ 0x1ec60…1ec80 66 5f 62 69 74 73 5f 69 6e 5f 63 6f 64 65 20 74 68 65 6e 0a 20 20 20 20 20 65 72 72 6f 72 20 3a ┆f_bits_in_code then error :┆ 0x1ec80…1eca0 3d 20 2d 2c 20 73 65 74 5f 62 69 74 73 28 6f 70 65 72 61 6e 64 2c 6e 75 6d 62 65 72 20 65 78 74 ┆= -, set_bits(operand,number ext┆ 0x1eca0…1ecc0 72 61 63 74 20 32 34 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 20 65 78 ┆ract 24, number ex┆ 0x1ecc0…1ece0 74 72 61 63 74 20 32 34 29 0a 20 20 20 20 20 20 65 6c 73 65 20 65 72 72 6f 72 20 3a 3d 20 74 72 ┆tract 24) else error := tr┆ 0x1ece0…1ed00 75 65 3b 0a 20 20 20 20 20 20 6e 65 78 74 3b 0a 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 ┆ue; next; end; ┆ 0x1ed00…1ed20 65 6e 64 3b 0a 20 20 75 6e 74 69 6c 20 63 6c 61 73 73 20 3c 3e 20 63 6f 6d 6d 61 5f 63 6c 61 73 ┆end; until class <> comma_clas┆ 0x1ed20…1ed40 73 20 6f 72 20 65 72 72 6f 72 3b 0a 20 20 72 65 61 64 5f 61 6e 64 5f 73 65 74 5f 62 69 74 73 20 ┆s or error; read_and_set_bits ┆ 0x1ed40…1ed60 3a 3d 20 2d 2c 20 65 72 72 6f 72 3b 0a 0a 20 20 65 6e 64 20 72 65 61 64 5f 61 6e 64 5f 73 65 74 ┆:= -, error; end read_and_set┆ 0x1ed60…1ed80 5f 62 69 74 73 3b 0a 0a 20 20 62 6f 6f 6c 65 61 6e 20 70 72 6f 63 65 64 75 72 65 20 73 65 74 5f ┆_bits; boolean procedure set_┆ 0x1ed80…1eda0 62 69 74 73 28 6f 70 65 72 61 6e 64 2c 62 69 74 5f 6c 6f 77 2c 62 69 74 5f 68 69 67 68 29 3b 0a ┆bits(operand,bit_low,bit_high); ┆ 0x1eda0…1edc0 20 20 3c 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 ┆ <*****************************┆ 0x1edc0…1ede0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 3e 0a 20 20 76 61 6c 75 65 ┆***********************> value┆ 0x1ede0…1ee00 20 62 69 74 5f 6c 6f 77 2c 62 69 74 5f 68 69 67 68 3b 20 69 6e 74 65 67 65 72 20 62 69 74 5f 6c ┆ bit_low,bit_high; integer bit_l┆ 0x1ee00…1ee20 6f 77 2c 62 69 74 5f 68 69 67 68 3b 0a 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 6f 70 65 72 61 6e ┆ow,bit_high; long array operan┆ 0x1ee20…1ee40 64 3b 0a 20 20 62 65 67 69 6e 0a 20 20 69 6e 74 65 67 65 72 20 0a 20 20 20 20 69 6e 64 65 78 5f ┆d; begin integer index_┆ 0x1ee40…1ee60 6c 6f 77 2c 0a 20 20 20 20 69 6e 64 65 78 5f 68 69 67 68 2c 0a 20 20 20 20 62 69 74 5f 68 69 67 ┆low, index_high, bit_hig┆ 0x1ee60…1ee80 68 5f 69 6e 5f 77 6f 72 64 2c 0a 20 20 20 20 62 69 74 5f 6c 6f 77 5f 69 6e 5f 77 6f 72 64 2c 0a ┆h_in_word, bit_low_in_word, ┆ 0x1ee80…1eea0 20 20 20 20 77 6f 72 64 5f 69 6e 64 65 78 3b 0a 0a 20 20 69 66 20 62 69 74 5f 68 69 67 68 20 3c ┆ word_index; if bit_high <┆ 0x1eea0…1eec0 20 62 69 74 5f 6c 6f 77 20 74 68 65 6e 0a 20 20 20 20 73 65 74 5f 62 69 74 73 20 3a 3d 20 66 61 ┆ bit_low then set_bits := fa┆ 0x1eec0…1eee0 6c 73 65 0a 20 20 20 65 6c 73 65 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 6e 64 65 78 5f ┆lse else begin index_┆ 0x1eee0…1ef00 6c 6f 77 20 3a 3d 20 63 61 73 65 20 28 20 62 69 74 5f 6c 6f 77 2f 2f 34 38 29 20 2b 20 31 20 6f ┆low := case ( bit_low//48) + 1 o┆ 0x1ef00…1ef20 (55,) 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2c 32 2c 33 2c 34 2c 35 2c 36 2c ┆f (1,2,3,4,5,6,┆ 0x1ef20…1ef40 37 2c 38 29 3b 0a 20 20 20 20 69 6e 64 65 78 5f 68 69 67 68 20 3a 3d 20 63 61 73 65 20 28 62 69 ┆7,8); index_high := case (bi┆ 0x1ef40…1ef60 74 5f 68 69 67 68 2f 2f 34 38 29 20 2b 20 31 20 6f 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆t_high//48) + 1 of ┆ 0x1ef60…1ef80 20 20 20 20 28 31 2c 32 2c 33 2c 34 2c 35 2c 36 2c 37 2c 38 29 3b 0a 20 20 20 20 62 69 74 5f 6c ┆ (1,2,3,4,5,6,7,8); bit_l┆ 0x1ef80…1efa0 6f 77 5f 69 6e 5f 77 6f 72 64 20 3a 3d 20 62 69 74 5f 6c 6f 77 20 6d 6f 64 20 34 38 3b 0a 20 20 ┆ow_in_word := bit_low mod 48; ┆ 0x1efa0…1efc0 20 20 62 69 74 5f 68 69 67 68 5f 69 6e 5f 77 6f 72 64 20 3a 3d 20 62 69 74 5f 68 69 67 68 20 6d ┆ bit_high_in_word := bit_high m┆ 0x1efc0…1efe0 6f 64 20 34 38 3b 0a 20 20 20 20 69 66 20 69 6e 64 65 78 5f 6c 6f 77 20 3d 20 69 6e 64 65 78 5f ┆od 48; if index_low = index_┆ 0x1efe0…1f000 68 69 67 68 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 6f 70 65 72 ┆high then begin oper┆ 0x1f000…1f020 61 6e 64 28 69 6e 64 65 78 5f 6c 6f 77 29 20 3a 3d 20 6c 6f 67 5f 6f 72 28 6f 70 65 72 61 6e 64 ┆and(index_low) := log_or(operand┆ 0x1f020…1f040 28 69 6e 64 65 78 5f 6c 6f 77 29 2c 0a 20 20 20 20 20 20 20 20 65 78 74 65 6e 64 28 2d 31 29 20 ┆(index_low), extend(-1) ┆ 0x1f040…1f060 73 68 69 66 74 20 28 28 2d 34 38 29 2b 28 62 69 74 5f 68 69 67 68 5f 69 6e 5f 77 6f 72 64 2b 31 ┆shift ((-48)+(bit_high_in_word+1┆ 0x1f060…1f080 2d 62 69 74 5f 6c 6f 77 5f 69 6e 5f 77 6f 72 64 29 29 0a 20 20 20 20 20 20 20 20 73 68 69 66 74 ┆-bit_low_in_word)) shift┆ 0x1f080…1f0a0 20 28 34 37 20 2d 20 62 69 74 5f 68 69 67 68 5f 69 6e 5f 77 6f 72 64 29 29 3b 0a 20 20 20 20 20 ┆ (47 - bit_high_in_word)); ┆ 0x1f0a0…1f0c0 20 65 6e 64 0a 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆ end else begin ┆ 0x1f0c0…1f0e0 20 20 20 6f 70 65 72 61 6e 64 28 69 6e 64 65 78 5f 6c 6f 77 29 20 3a 3d 20 6c 6f 67 5f 6f 72 28 ┆ operand(index_low) := log_or(┆ 0x1f0e0…1f100 6f 70 65 72 61 6e 64 28 69 6e 64 65 78 5f 6c 6f 77 29 2c 0a 20 20 20 20 20 20 20 20 20 65 78 74 ┆operand(index_low), ext┆ 0x1f100…1f120 65 6e 64 20 28 2d 31 29 20 73 68 69 66 74 20 28 20 2d 20 62 69 74 5f 6c 6f 77 5f 69 6e 5f 77 6f ┆end (-1) shift ( - bit_low_in_wo┆ 0x1f120…1f140 72 64 29 29 3b 0a 20 20 20 20 20 20 20 6f 70 65 72 61 6e 64 28 69 6e 64 65 78 5f 68 69 67 68 29 ┆rd)); operand(index_high)┆ 0x1f140…1f160 20 3a 3d 20 6c 6f 67 5f 6f 72 28 6f 70 65 72 61 6e 64 28 69 6e 64 65 78 5f 68 69 67 68 29 2c 0a ┆ := log_or(operand(index_high), ┆ 0x1f160…1f180 20 20 20 20 20 20 20 20 20 65 78 74 65 6e 64 28 2d 31 29 20 73 68 69 66 74 20 28 34 37 20 2d 20 ┆ extend(-1) shift (47 - ┆ 0x1f180…1f1a0 62 69 74 5f 68 69 67 68 5f 69 6e 5f 77 6f 72 64 29 29 3b 0a 20 20 20 20 20 20 20 66 6f 72 20 77 ┆bit_high_in_word)); for w┆ 0x1f1a0…1f1c0 6f 72 64 5f 69 6e 64 65 78 20 3a 3d 20 69 6e 64 65 78 5f 6c 6f 77 2b 31 20 73 74 65 70 20 31 20 ┆ord_index := index_low+1 step 1 ┆ 0x1f1c0…1f1e0 75 6e 74 69 6c 20 69 6e 64 65 78 5f 6c 6f 77 20 20 2d 20 31 20 64 6f 0a 20 20 20 20 20 20 20 20 ┆until index_low - 1 do ┆ 0x1f1e0…1f200 20 6f 70 65 72 61 6e 64 28 77 6f 72 64 5f 69 6e 64 65 78 29 20 3a 3d 20 2d 31 3b 0a 20 20 20 20 ┆ operand(word_index) := -1; ┆ 0x1f200…1f220 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 73 65 74 5f 62 69 74 73 20 3a 3d 20 74 72 75 65 3b ┆ end; set_bits := true;┆ 0x1f220…1f240 0a 20 20 20 20 65 6e 64 3b 0a 0a 20 20 65 6e 64 20 73 65 74 5f 62 69 74 73 3b 0a 0a 0a 0a 20 20 ┆ end; end set_bits; ┆ 0x1f240…1f260 6c 6f 6e 67 20 70 72 6f 63 65 64 75 72 65 20 69 6e 69 74 5f 6d 61 73 6b 28 6f 70 65 72 61 6e 64 ┆long procedure init_mask(operand┆ 0x1f260…1f280 2c 66 72 6f 6d 2c 74 6f 29 3b 0a 20 20 3c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆,from,to); <******************┆ 0x1f280…1f2a0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 3e 0a 20 20 76 61 6c 75 ┆************************> valu┆ 0x1f2a0…1f2c0 65 20 66 72 6f 6d 2c 74 6f 2c 6f 70 65 72 61 6e 64 3b 20 6c 6f 6e 67 20 6f 70 65 72 61 6e 64 3b ┆e from,to,operand; long operand;┆ 0x1f2c0…1f2e0 20 69 6e 74 65 67 65 72 20 66 72 6f 6d 2c 74 6f 3b 0a 20 20 69 6e 69 74 5f 6d 61 73 6b 3a 3d 6d ┆ integer from,to; init_mask:=m┆ 0x1f2e0…1f300 61 73 6b 5f 69 6e 28 6f 70 65 72 61 6e 64 2c 65 78 74 65 6e 64 20 28 2d 31 29 2c 0a 20 20 65 78 ┆ask_in(operand,extend (-1), ex┆ 0x1f300…1f320 74 65 6e 64 20 28 2d 31 29 20 73 68 69 66 74 20 28 28 2d 34 38 29 2b 28 74 6f 2b 31 2d 66 72 6f ┆tend (-1) shift ((-48)+(to+1-fro┆ 0x1f320…1f340 6d 29 29 20 20 73 68 69 66 74 20 28 34 37 2d 74 6f 29 29 3b 0a 0a 0a 20 20 3c 2a 20 2a 2a 2a 2a ┆m)) shift (47-to)); <* ****┆ 0x1f340…1f360 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 ┆********************************┆ 0x1f360…1f380 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 20 20 20 20 64 69 72 65 63 74 69 76 65 20 70 72 6f ┆************* directive pro┆ 0x1f380…1f3a0 63 65 64 75 72 65 73 20 73 65 63 74 69 6f 6e 0a 20 20 20 20 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆cedures section ***********┆ 0x1f3a0…1f3c0 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 ┆********************************┆ 0x1f3c0…1f3e0 2a 2a 2a 2a 2a 2a 20 2a 3e 0a 0a 20 20 70 72 6f 63 65 64 75 72 65 20 64 69 72 65 63 74 69 76 65 ┆****** *> procedure directive┆ 0x1f3e0…1f400 5f 73 6b 69 70 5f 75 6e 74 69 6c 3b 0a 20 20 62 65 67 69 6e 0a 20 20 62 6f 6f 6c 65 61 6e 20 75 ┆_skip_until; begin boolean u┆ 0x1f400…1f420 6e 74 69 6c 5f 63 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 3b 0a 0a 20 20 6c 6f 6e 67 20 73 6b 69 70 ┆ntil_condition_met; long skip┆ 0x1f420…1f440 5f 65 6e 64 5f 6e 61 6d 65 3b 0a 20 20 6e 65 78 74 31 3b 0a 0a 20 20 69 66 20 63 6c 61 73 73 31 ┆_end_name; next1; if class1┆ 0x1f440…1f460 20 3d 20 74 65 78 74 5f 63 6c 61 73 73 20 6f 72 20 63 6c 61 73 73 31 20 3d 20 75 6e 6b 6e 6f 77 ┆ = text_class or class1 = unknow┆ 0x1f460…1f480 6e 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆n_name_class then begin ┆ 0x1f480…1f4a0 73 6b 69 70 5f 65 6e 64 5f 6e 61 6d 65 20 3a 3d 20 6e 61 6d 65 31 3b 0a 20 20 20 20 72 65 70 65 ┆skip_end_name := name1; repe┆ 0x1f4a0…1f4c0 61 74 0a 20 20 20 20 20 69 66 20 6c 69 73 74 5f 61 6c 6c 20 74 68 65 6e 20 6c 69 73 74 5f 6c 69 ┆at if list_all then list_li┆ 0x1f4c0…1f4e0 6e 65 3b 0a 20 20 20 20 20 72 65 61 64 5f 6e 65 78 74 5f 73 6f 75 72 63 65 5f 6c 69 6e 65 3b 0a ┆ne; read_next_source_line; ┆ 0x1f4e0…1f500 0a 20 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 73 74 61 72 5f 63 6c 61 73 73 20 74 68 65 6e ┆ if class = star_class then┆ 0x1f500…1f520 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 6e 65 78 74 31 3b 0a 20 20 ┆ begin next1; ┆ 0x1f520…1f540 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 75 6e 74 69 6c 3a 3e 20 ┆ if name1 = long <:until:> ┆ 0x1f540…1f560 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 6e ┆then begin n┆ 0x1f560…1f580 65 78 74 31 3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 31 20 3d 20 63 6f 6c 6f ┆ext1; if class1 = colo┆ 0x1f580…1f5a0 6e 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 31 ┆n_class then next1┆ 0x1f5a0…1f5c0 3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 73 6b 69 70 5f 65 6e 64 5f ┆; if name1 = skip_end_┆ 0x1f5c0…1f5e0 6e 61 6d 65 20 74 68 65 6e 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 74 69 6c 5f 63 ┆name then until_c┆ 0x1f5e0…1f600 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 ┆ondition_met := true; ┆ 0x1f600…1f620 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 66 69 72 73 ┆end; end control of firs┆ 0x1f620…1f640 74 20 74 6f 6b 65 6e 3b 0a 20 20 20 20 20 75 6e 74 69 6c 20 75 6e 74 69 6c 5f 63 6f 6e 64 69 74 ┆t token; until until_condit┆ 0x1f640…1f660 69 6f 6e 5f 6d 65 74 3b 0a 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 65 72 72 ┆ion_met; end else err┆ 0x1f660…1f680 6f 72 28 64 69 72 65 63 74 69 76 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 ┆or(directive,line_no,element_no)┆ 0x1f680…1f6a0 3b 0a 20 20 72 65 74 75 72 6e 5f 66 72 6f 6d 5f 73 6b 69 70 20 3a 3d 20 74 72 75 65 3b 0a 20 20 ┆; return_from_skip := true; ┆ 0x1f6a0…1f6c0 65 6e 64 20 64 69 72 65 63 74 69 76 65 5f 73 6b 69 70 5f 75 6e 74 69 6c 3b 0a 70 72 6f 63 65 64 ┆end directive_skip_until; proced┆ 0x1f6c0…1f6e0 75 72 65 20 64 69 72 65 63 74 69 76 65 5f 6f 6e 6c 79 69 6e 5f 6c 6f 67 69 63 28 6d 6f 64 65 29 ┆ure directive_onlyin_logic(mode)┆ 0x1f6e0…1f700 3b 0a 3c 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 ┆; <*****************************┆ 0x1f700…1f720 2a 2a 2a 3e 0a 76 61 6c 75 65 20 6d 6f 64 65 3b 20 62 6f 6f 6c 65 61 6e 20 6d 6f 64 65 3b 0a 3c ┆***> value mode; boolean mode; <┆ 0x1f720…1f740 2a 20 69 66 20 6d 6f 64 65 20 69 73 20 74 72 75 65 20 74 68 65 6e 20 73 6b 69 70 20 6f 6e 6c 79 ┆* if mode is true then skip only┆ 0x1f740…1f760 20 69 6e 20 69 73 20 70 65 72 66 6f 72 6d 65 64 0a 20 20 20 65 6c 73 65 20 73 6b 69 70 20 6e 6f ┆ in is performed else skip no┆ 0x1f760…1f780 74 20 69 6e 20 69 73 20 70 65 72 66 6f 72 6d 65 64 20 2a 3e 0a 62 65 67 69 6e 0a 3c 2a 20 63 68 ┆t in is performed *> begin <* ch┆ 0x1f780…1f7a0 65 63 6b 20 74 68 65 20 70 61 72 61 6d 20 6c 69 73 74 20 74 6f 20 73 65 20 74 68 65 20 70 61 72 ┆eck the param list to se the par┆ 0x1f7a0…1f7c0 61 6d 0a 20 20 20 6d 6f 64 65 2e 3c 74 65 78 74 3e 20 2c 20 77 68 65 72 65 20 3c 74 65 78 74 3e ┆am mode.<text> , where <text>┆ 0x1f7c0…1f7e0 20 73 63 68 61 6c 6c 20 62 65 20 65 71 75 61 6c 0a 20 20 20 74 68 65 20 6e 65 78 74 20 65 6c 65 ┆ schall be equal the next ele┆ 0x1f7e0…1f800 6d 65 6e 74 20 2a 3e 0a 6c 6f 6e 67 20 61 72 72 61 79 20 70 61 72 61 6d 5f 6e 61 6d 65 2c 75 6e ┆ment *> long array param_name,un┆ 0x1f800…1f820 (56,) 74 69 6c 5f 6e 61 6d 65 2c 6f 6e 6c 79 5f 6e 61 6d 65 28 31 3a 32 29 3b 0a 69 6e 74 65 67 65 72 ┆til_name,only_name(1:2); integer┆ 0x1f820…1f840 20 70 61 72 61 6d 5f 63 61 6c 6c 5f 72 65 73 75 6c 74 3b 0a 62 6f 6f 6c 65 61 6e 20 75 6e 74 69 ┆ param_call_result; boolean unti┆ 0x1f840…1f860 6c 5f 63 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 3b 0a 0a 0a 70 61 72 61 6d 5f 63 61 6c 6c 5f 72 65 ┆l_condition_met; param_call_re┆ 0x1f860…1f880 73 75 6c 74 20 3a 3d 20 67 65 74 5f 74 65 78 74 5f 73 74 72 69 6e 67 28 3c 3a 76 65 72 73 69 6f ┆sult := get_text_string(<:versio┆ 0x1f880…1f8a0 6e 3a 3e 2c 70 61 72 61 6d 5f 6e 61 6d 65 29 3b 0a 63 6c 61 73 73 31 20 3a 3d 20 67 65 74 5f 6c ┆n:>,param_name); class1 := get_l┆ 0x1f8a0…1f8c0 6f 6e 67 5f 6e 61 6d 65 28 6f 6e 6c 79 5f 6e 61 6d 65 29 3b 0a 69 66 20 70 61 72 61 6d 5f 63 61 ┆ong_name(only_name); if param_ca┆ 0x1f8c0…1f8e0 6c 6c 5f 72 65 73 75 6c 74 20 3c 3e 20 30 20 6f 72 0a 20 20 20 28 70 61 72 61 6d 5f 63 61 6c 6c ┆ll_result <> 0 or (param_call┆ 0x1f8e0…1f900 5f 72 65 73 75 6c 74 20 3d 20 30 20 61 6e 64 0a 20 20 20 20 20 28 28 20 6d 6f 64 65 20 61 6e 64 ┆_result = 0 and (( mode and┆ 0x1f900…1f920 20 28 70 61 72 61 6d 5f 6e 61 6d 65 28 31 29 20 3c 3e 20 6f 6e 6c 79 5f 6e 61 6d 65 28 31 29 20 ┆ (param_name(1) <> only_name(1) ┆ 0x1f920…1f940 6f 72 0a 20 20 20 20 20 20 70 61 72 61 6d 5f 6e 61 6d 65 28 32 29 20 3c 3e 20 6f 6e 6c 79 5f 6e ┆or param_name(2) <> only_n┆ 0x1f940…1f960 61 6d 65 28 32 29 29 29 0a 20 20 20 20 6f 72 0a 20 20 20 20 20 28 20 2d 2c 20 6d 6f 64 65 20 61 ┆ame(2))) or ( -, mode a┆ 0x1f960…1f980 6e 64 20 20 70 61 72 61 6d 5f 6e 61 6d 65 28 31 29 20 3d 20 6f 6e 6c 79 5f 6e 61 6d 65 28 31 29 ┆nd param_name(1) = only_name(1)┆ 0x1f980…1f9a0 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 5f 6e ┆ and param_n┆ 0x1f9a0…1f9c0 61 6d 65 28 32 29 20 3d 20 6f 6e 6c 79 5f 6e 61 6d 65 28 32 29 20 29 29 29 20 74 68 65 6e 0a 0a ┆ame(2) = only_name(2) ))) then ┆ 0x1f9c0…1f9e0 20 20 62 65 67 69 6e 20 0a 20 20 3c 2a 20 73 6b 69 70 20 75 6e 74 69 6c 20 61 20 27 75 6e 74 69 ┆ begin <* skip until a 'unti┆ 0x1f9e0…1fa00 6c 27 20 64 69 72 65 63 74 69 76 65 20 69 73 20 6d 65 74 20 77 69 74 68 0a 20 20 20 20 20 77 69 ┆l' directive is met with wi┆ 0x1fa00…1fa20 74 68 20 74 68 65 20 76 65 72 73 69 6f 6e 20 74 65 78 74 20 61 73 20 70 61 72 61 6d 65 74 65 72 ┆th the version text as parameter┆ 0x1fa20…1fa40 2e 20 2a 3e 0a 20 20 20 75 6e 74 69 6c 5f 63 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 20 3a 3d 20 66 ┆. *> until_condition_met := f┆ 0x1fa40…1fa60 61 6c 73 65 3b 0a 20 20 20 72 65 70 65 61 74 0a 20 20 20 20 20 69 66 20 6c 69 73 74 5f 61 6c 6c ┆alse; repeat if list_all┆ 0x1fa60…1fa80 20 74 68 65 6e 20 6c 69 73 74 5f 6c 69 6e 65 3b 0a 20 20 20 20 20 72 65 61 64 5f 6e 65 78 74 5f ┆ then list_line; read_next_┆ 0x1fa80…1faa0 73 6f 75 72 63 65 5f 6c 69 6e 65 3b 0a 20 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 65 6f 66 ┆source_line; if class = eof┆ 0x1faa0…1fac0 5f 63 6c 61 73 73 20 74 68 65 6e 20 75 6e 74 69 6c 5f 63 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 20 ┆_class then until_condition_met ┆ 0x1fac0…1fae0 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 0a 20 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 73 ┆:= true; if class = s┆ 0x1fae0…1fb00 74 61 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆tar_class then begin ┆ 0x1fb00…1fb20 20 20 20 6e 65 78 74 31 3b 0a 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 ┆ next1; if name1 = long┆ 0x1fb20…1fb40 20 3c 3a 75 6e 74 69 6c 3a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 ┆ <:until:> then begin ┆ 0x1fb40…1fb60 20 20 20 20 20 20 20 20 6e 65 78 74 31 3b 0a 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 ┆ next1; if class┆ 0x1fb60…1fb80 31 20 3d 20 63 6f 6c 6f 6e 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 ┆1 = colon_class then ┆ 0x1fb80…1fba0 63 6c 61 73 73 31 20 3a 3d 20 67 65 74 5f 6c 6f 6e 67 5f 6e 61 6d 65 28 75 6e 74 69 6c 5f 6e 61 ┆class1 := get_long_name(until_na┆ 0x1fba0…1fbc0 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 31 20 3e 20 30 20 61 6e 64 0a ┆me); if class1 > 0 and ┆ 0x1fbc0…1fbe0 20 20 20 20 20 20 20 20 20 20 20 20 6f 6e 6c 79 5f 6e 61 6d 65 28 31 29 20 3d 75 6e 74 69 6c 5f ┆ only_name(1) =until_┆ 0x1fbe0…1fc00 6e 61 6d 65 28 31 29 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 6f 6e 6c 79 5f 6e 61 6d ┆name(1) and only_nam┆ 0x1fc00…1fc20 65 28 32 29 20 3d 20 75 6e 74 69 6c 5f 6e 61 6d 65 28 32 29 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆e(2) = until_name(2) then ┆ 0x1fc20…1fc40 20 20 20 20 20 75 6e 74 69 6c 5f 63 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 20 3a 3d 20 74 72 75 65 ┆ until_condition_met := true┆ 0x1fc40…1fc60 3b 0a 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 65 6e 64 20 63 6f 6e 74 72 ┆; end; end contr┆ 0x1fc60…1fc80 6f 6c 20 6f 66 20 66 69 72 73 74 20 74 6f 6b 65 6e 20 27 63 6f 6c 6f 6e 27 20 3b 0a 20 20 20 20 ┆ol of first token 'colon' ; ┆ 0x1fc80…1fca0 75 6e 74 69 6c 20 75 6e 74 69 6c 5f 63 6f 6e 64 69 74 69 6f 6e 5f 6d 65 74 3b 0a 20 65 6e 64 20 ┆until until_condition_met; end ┆ 0x1fca0…1fcc0 73 6b 69 70 20 6e 6f 74 20 74 68 69 73 20 76 65 72 73 69 6f 6e 20 3b 0a 72 65 74 75 72 6e 5f 66 ┆skip not this version ; return_f┆ 0x1fcc0…1fce0 72 6f 6d 5f 73 6b 69 70 20 3a 3d 20 74 72 75 65 3b 0a 0a 0a 65 6e 64 20 64 69 72 65 63 74 69 76 ┆rom_skip := true; end directiv┆ 0x1fce0…1fd00 65 5f 6f 6e 6c 79 5f 69 6e 3b 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 63 6c 75 64 65 5f 73 ┆e_only_in; procedure include_s┆ 0x1fd00…1fd20 6f 75 72 63 65 5f 66 69 6c 65 3b 0a 3c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ource_file; <*******************┆ 0x1fd20…1fd40 2a 2a 2a 2a 2a 2a 2a 2a 2a 3e 0a 62 65 67 69 6e 0a 6c 6f 6e 67 20 61 72 72 61 79 20 66 69 6c 65 ┆*********> begin long array file┆ 0x1fd40…1fd60 5f 6e 61 6d 65 28 31 3a 32 29 3b 0a 69 6e 74 65 67 65 72 20 73 74 61 63 6b 5f 72 65 73 75 6c 74 ┆_name(1:2); integer stack_result┆ 0x1fd60…1fd80 3b 0a 63 6c 61 73 73 31 20 3a 3d 20 67 65 74 5f 6c 6f 6e 67 5f 6e 61 6d 65 28 66 69 6c 65 5f 6e ┆; class1 := get_long_name(file_n┆ 0x1fd80…1fda0 61 6d 65 29 3b 0a 69 66 20 63 6c 61 73 73 31 20 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 62 65 67 ┆ame); if class1 > 0 then beg┆ 0x1fda0…1fdc0 69 6e 0a 20 20 20 20 73 74 61 63 6b 5f 72 65 73 75 6c 74 20 3a 3d 20 20 73 74 61 63 6b 5f 61 6e ┆in stack_result := stack_an┆ 0x1fdc0…1fde0 64 5f 63 6f 6e 6e 65 63 74 5f 69 6e 28 66 69 6c 65 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 69 66 20 ┆d_connect_in(file_name); if ┆ 0x1fde0…1fe00 6c 69 73 74 20 74 68 65 6e 20 6c 69 73 74 5f 6c 69 6e 65 3b 0a 0a 20 20 20 20 69 66 20 73 74 61 ┆list then list_line; if sta┆ 0x1fe00…1fe20 63 6b 5f 72 65 73 75 6c 74 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 77 72 69 74 65 28 ┆ck_result <> 0 then write(┆ 0x1fe20…1fe40 6f 75 74 2c 22 2a 22 2c 34 2c 3c 3a 20 63 6f 70 79 20 63 6f 6e 6e 65 63 74 20 65 72 72 6f 72 3a ┆out,"*",4,<: copy connect error:┆ 0x1fe40…1fe60 20 3a 3e 2c 66 69 6c 65 5f 6e 61 6d 65 2c 22 6e 6c 22 2c 31 29 0a 20 20 20 20 65 6c 73 65 0a 20 ┆ :>,file_name,"nl",1) else ┆ 0x1fe60…1fe80 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 3c 3a 20 6d 69 63 61 73 6d 20 73 6f 75 72 63 65 20 ┆ write(out,<: micasm source ┆ 0x1fe80…1fea0 3a 20 3a 3e 2c 66 69 6c 65 5f 6e 61 6d 65 2c 22 6e 6c 22 2c 31 29 3b 0a 20 20 20 20 65 6e 64 20 ┆: :>,file_name,"nl",1); end ┆ 0x1fea0…1fec0 65 6c 73 65 20 0a 20 20 20 20 65 72 72 6f 72 28 64 69 72 65 63 74 69 76 65 2c 6c 69 6e 65 5f 6e ┆else error(directive,line_n┆ 0x1fec0…1fee0 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 65 6e 64 20 69 6e 63 6c 75 64 65 5f 73 6f 75 72 63 ┆o,element_no); end include_sourc┆ 0x1fee0…1ff00 65 5f 66 69 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 63 65 64 75 72 65 20 6c 69 73 74 5f 6c 69 ┆e_file; procedure list_li┆ 0x1ff00…1ff20 6e 65 3b 0a 3c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 3e 0a 62 65 67 69 6e 0a ┆ne; <*******************> begin ┆ 0x1ff20…1ff40 69 66 20 2d 2c 20 6c 69 6e 65 5f 6c 69 73 74 65 64 20 74 68 65 6e 0a 62 65 67 69 6e 0a 6c 69 6e ┆if -, line_listed then begin lin┆ 0x1ff40…1ff60 65 5f 6c 69 73 74 65 64 20 3a 3d 20 74 72 75 65 3b 0a 69 66 20 6c 69 6e 65 5f 6e 75 6d 20 74 68 ┆e_listed := true; if line_num th┆ 0x1ff60…1ff80 65 6e 20 77 72 69 74 65 28 6f 75 74 2c 3c 3c 64 64 64 64 3e 2c 6c 69 6e 65 5f 6e 6f 29 3b 0a 20 ┆en write(out,<<dddd>,line_no); ┆ 0x1ff80…1ffa0 20 20 20 20 20 69 66 20 63 6f 64 65 5f 67 65 6e 65 72 61 74 65 64 20 74 68 65 6e 0a 20 20 20 20 ┆ if code_generated then ┆ 0x1ffa0…1ffc0 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 64 65 63 5f 63 6f 64 65 20 74 68 65 6e 20 77 ┆ begin if dec_code then w┆ 0x1ffc0…1ffe0 72 69 74 65 28 6f 75 74 2c 3c 3c 5f 7a 64 64 64 3e 2c 69 6e 73 74 72 5f 69 6e 64 65 78 29 3b 0a ┆rite(out,<<_zddd>,instr_index); ┆ 0x1ffe0…20000 20 20 20 20 20 20 69 66 20 6f 63 74 61 6c 5f 63 6f 64 65 20 74 68 65 6e 20 77 72 69 74 65 28 6f ┆ if octal_code then write(o┆ 0x20000…20020 75 74 2c 3c 3c 5f 7a 64 64 64 3e 2c 6f 63 74 61 6c 28 65 78 74 65 6e 64 20 69 6e 73 74 72 5f 69 ┆ut,<<_zddd>,octal(extend instr_i┆ 0x20020…20040 6e 64 65 78 29 29 3b 20 20 20 20 20 0a 20 20 20 20 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c 27 ┆ndex)); outchar(out,'┆ 0x20040…20060 73 70 27 29 3b 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 ┆sp'); end else ┆ 0x20060…20080 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 69 66 20 64 65 63 5f 63 6f 64 65 20 74 68 65 6e 20 ┆ begin if dec_code then ┆ 0x20080…200a0 77 72 69 74 65 28 6f 75 74 2c 22 73 70 22 2c 35 29 3b 0a 20 20 20 20 20 20 20 69 66 20 6f 63 74 ┆write(out,"sp",5); if oct┆ 0x200a0…200c0 61 6c 5f 63 6f 64 65 20 74 68 65 6e 20 77 72 69 74 65 28 6f 75 74 2c 22 73 70 22 2c 35 29 3b 0a ┆al_code then write(out,"sp",5); ┆ 0x200c0…200e0 20 20 20 20 20 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c 27 73 70 27 29 3b 0a 20 20 20 20 20 20 ┆ outchar(out,'sp'); ┆ 0x200e0…20100 20 65 6e 64 3b 0a 20 20 20 20 20 20 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 3a 3d 20 30 3b 0a 20 ┆ end; line_pointer := 0; ┆ 0x20100…20120 (57,) 20 20 20 20 20 66 6f 72 20 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 3a 3d 20 6c 69 6e 65 5f 70 6f ┆ for line_pointer := line_po┆ 0x20120…20140 69 6e 74 65 72 2b 31 20 0a 20 20 20 20 20 20 77 68 69 6c 65 20 6c 69 6e 65 5f 70 6f 69 6e 74 65 ┆inter+1 while line_pointe┆ 0x20140…20160 72 20 3c 3d 20 6e 6f 5f 6f 66 5f 65 6c 65 6d 65 6e 74 73 20 64 6f 0a 20 20 20 20 20 20 62 65 67 ┆r <= no_of_elements do beg┆ 0x20160…20180 69 6e 0a 20 20 20 20 20 20 20 20 69 66 20 72 65 61 64 5f 6b 69 6e 64 28 6c 69 6e 65 5f 70 6f 69 ┆in if read_kind(line_poi┆ 0x20180…201a0 6e 74 65 72 29 20 3d 20 36 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 ┆nter) = 6 then begin ┆ 0x201a0…201c0 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 73 74 72 69 6e 67 20 72 65 61 64 5f 76 61 6c ┆ write(out,string read_val┆ 0x201c0…201e0 75 65 28 69 6e 63 72 65 61 73 65 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 29 29 29 3b 0a 20 20 20 ┆ue(increase(line_pointer))); ┆ 0x201e0…20200 20 20 20 20 20 20 20 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 20 3a 3d 20 6c 69 6e 65 5f 70 6f 69 6e ┆ line_pointer := line_poin┆ 0x20200…20220 74 65 72 20 2d 20 31 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 65 6c 73 ┆ter - 1; end els┆ 0x20220…20240 65 0a 20 20 20 20 20 20 20 20 69 66 20 72 65 61 64 5f 6b 69 6e 64 28 6c 69 6e 65 5f 70 6f 69 6e ┆e if read_kind(line_poin┆ 0x20240…20260 74 65 72 29 20 3d 20 32 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c ┆ter) = 2 then write(out,┆ 0x20260…20280 3c 3c 64 3e 2c 72 65 61 64 5f 76 61 6c 75 65 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 29 29 0a 20 ┆<<d>,read_value(line_pointer)) ┆ 0x20280…202a0 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c ┆ else outchar(out,┆ 0x202a0…202c0 72 65 61 64 5f 76 61 6c 75 65 28 6c 69 6e 65 5f 70 6f 69 6e 74 65 72 29 20 65 78 74 72 61 63 74 ┆read_value(line_pointer) extract┆ 0x202c0…202e0 20 38 29 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 3b 0a 65 6e 64 20 6c 69 73 74 5f ┆ 8); end; end; end list_┆ 0x202e0…20300 6c 69 6e 65 3b 0a 0a 0a 0a 0a 20 20 70 72 6f 63 65 64 75 72 65 20 72 65 61 64 5f 6e 65 78 74 5f ┆line; procedure read_next_┆ 0x20300…20320 73 6f 75 72 63 65 5f 6c 69 6e 65 3b 0a 20 20 3c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆source_line; <****************┆ 0x20320…20340 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 3e 0a 20 20 62 65 67 69 6e 0a 20 20 3c 2a 20 72 65 73 ┆**************> begin <* res┆ 0x20340…20360 65 74 20 62 6f 6f 6c 65 61 6e 20 63 6f 6e 74 72 6f 6c 20 2a 3e 0a 20 20 65 72 72 6f 72 5f 69 6e ┆et boolean control *> error_in┆ 0x20360…20380 5f 74 68 69 73 5f 6c 69 6e 65 20 3a 3d 20 66 61 6c 73 65 20 3b 0a 0a 20 20 63 6f 64 65 5f 67 65 ┆_this_line := false ; code_ge┆ 0x20380…203a0 6e 65 72 61 74 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 61 6c 75 5f 66 75 6e 63 74 69 6f 6e ┆nerated := false; alu_function┆ 0x203a0…203c0 5f 70 65 72 66 6f 72 6d 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 6a 75 6d 70 5f 73 65 6b 76 ┆_performed := false; jump_sekv┆ 0x203c0…203e0 65 6e 73 5f 70 65 72 66 6f 72 6d 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 61 64 64 72 73 5f ┆ens_performed := false; addrs_┆ 0x203e0…20400 70 65 72 66 6f 72 6d 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 73 68 69 66 74 5f 63 6f 6e 64 ┆performed := false; shift_cond┆ 0x20400…20420 69 74 69 6f 6e 5f 70 65 72 66 6f 72 6d 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 6a 75 6d 70 ┆ition_performed := false; jump┆ 0x20420…20440 5f 61 64 64 72 73 5f 70 65 72 66 6f 72 6d 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 6c 69 6e ┆_addrs_performed := false; lin┆ 0x20440…20460 65 5f 6c 69 73 74 65 64 20 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 6c 69 6e 65 5f 70 6f 69 6e 74 ┆e_listed := false; line_point┆ 0x20460…20480 65 72 20 3a 3d 20 31 3b 0a 20 20 65 6c 65 6d 65 6e 74 5f 6e 6f 20 3a 3d 20 30 3b 0a 20 20 6e 6f ┆er := 1; element_no := 0; no┆ 0x20480…204a0 5f 6f 66 5f 65 6c 65 6d 65 6e 74 73 20 3a 3d 20 72 65 61 64 5f 61 6c 6c 28 69 6e 2c 72 65 61 64 ┆_of_elements := read_all(in,read┆ 0x204a0…204c0 5f 76 61 6c 75 65 2c 72 65 61 64 5f 6b 69 6e 64 2c 31 29 3b 0a 20 20 6c 69 6e 65 5f 6e 6f 20 3a ┆_value,read_kind,1); line_no :┆ 0x204c0…204e0 3d 20 6c 69 6e 65 5f 6e 6f 20 2b 20 31 3b 0a 20 20 6e 65 78 74 3b 0a 20 20 65 6e 64 20 72 65 61 ┆= line_no + 1; next; end rea┆ 0x204e0…20500 64 5f 6e 65 78 74 5f 73 6f 75 72 63 65 5f 6c 69 6e 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 20 20 70 ┆d_next_source_line; p┆ 0x20500…20520 6c 75 73 5f 6c 61 62 65 6c 5f 64 65 63 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 70 6c 75 73 20 6c 61 62 ┆lus_label_dec := long <:plus lab┆ 0x20520…20540 65 6c 20 64 65 63 2e 3a 3e 3b 0a 20 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 3a 3d 20 6c 6f 6e 67 ┆el dec.:>; declaration := long┆ 0x20540…20560 20 3c 3a 64 65 63 6c 61 72 61 74 69 6f 6e 3a 3e 3b 0a 20 20 6f 70 65 72 61 6e 64 5f 74 79 70 65 ┆ <:declaration:>; operand_type┆ 0x20560…20580 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 6f 70 65 72 61 6e 64 20 74 79 70 65 3a 3e 3b 0a 20 20 6d 69 6e ┆ := long <:operand type:>; min┆ 0x20580…205a0 75 73 5f 64 65 6c 69 6d 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 6d 69 6e 75 73 20 64 65 6c 69 6d 2e 3a ┆us_delim := long <:minus delim.:┆ 0x205a0…205c0 3e 3b 0a 20 20 6d 69 73 73 69 6e 67 5f 6f 70 65 72 61 6e 64 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 6d ┆>; missing_operand := long <:m┆ 0x205c0…205e0 69 73 73 69 6e 67 20 6f 70 65 72 61 6e 64 2e 3a 3e 3b 0a 20 20 6c 61 62 65 6c 5f 64 65 63 3a 3d ┆issing operand.:>; label_dec:=┆ 0x205e0…20600 20 6c 6f 6e 67 20 3c 3a 6c 61 62 65 6c 20 64 65 63 2e 3a 3e 3b 0a 20 20 69 6c 6c 65 67 61 6c 5f ┆ long <:label dec.:>; illegal_┆ 0x20600…20620 74 79 70 65 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 69 6c 6c 65 67 61 6c 20 74 79 70 65 3a 3e 3b 0a 20 ┆type := long <:illegal type:>; ┆ 0x20620…20640 20 70 6c 75 73 5f 6e 61 6d 65 5f 64 65 63 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 70 6c 75 73 20 6e 61 ┆ plus_name_dec := long <:plus na┆ 0x20640…20660 6d 65 20 64 65 63 2e 3a 3e 3b 0a 20 20 6e 61 6d 65 5f 75 6e 6b 6e 6f 77 6e 20 3a 3d 20 6c 6f 6e ┆me dec.:>; name_unknown := lon┆ 0x20660…20680 67 20 3c 3a 6e 61 6d 65 20 75 6e 6b 6e 6f 77 6e 3a 3e 3b 0a 20 20 64 69 72 65 63 74 69 76 65 20 ┆g <:name unknown:>; directive ┆ 0x20680…206a0 3a 3d 20 6c 6f 6e 67 20 3c 3a 64 69 72 65 63 74 69 76 65 3a 3e 3b 0a 20 20 75 6e 6b 6e 6f 77 6e ┆:= long <:directive:>; unknown┆ 0x206a0…206c0 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 75 6e 6b 6e 6f 77 6e 3a 3e 3b 0a 20 20 6e 61 6d 65 5f 6c 65 6e ┆ := long <:unknown:>; name_len┆ 0x206c0…206e0 67 74 68 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 6e 61 6d 65 20 6c 65 6e 67 74 68 20 65 78 65 65 64 65 ┆gth := long <:name length exeede┆ 0x206e0…20700 73 20 36 20 63 68 61 72 2e 3a 3e 3b 0a 20 20 64 65 6c 69 6d 69 74 65 72 20 3a 3d 20 6c 6f 6e 67 ┆s 6 char.:>; delimiter := long┆ 0x20700…20720 20 3c 3a 64 65 6c 69 6d 69 74 65 72 3a 3e 3b 0a 20 20 75 6e 64 65 63 5f 6c 61 62 65 6c 20 3a 3d ┆ <:delimiter:>; undec_label :=┆ 0x20720…20740 20 6c 6f 6e 67 20 3c 3a 75 6e 64 65 63 2e 20 6c 61 62 65 6c 20 6f 72 20 61 64 64 72 73 2e 20 3a ┆ long <:undec. label or addrs. :┆ 0x20740…20760 3e 3b 0a 20 20 6d 75 6c 74 69 70 6c 65 5f 66 75 6e 63 74 69 6f 6e 20 3a 3d 20 6c 6f 6e 67 20 3c ┆>; multiple_function := long <┆ 0x20760…20780 3a 6d 75 6c 74 69 70 6c 65 20 66 75 6e 63 74 69 6f 6e 2e 3a 3e 3b 0a 20 20 70 6c 75 73 5f 61 64 ┆:multiple function.:>; plus_ad┆ 0x20780…207a0 64 72 73 5f 64 65 66 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 70 6c 75 73 20 61 64 64 72 73 20 64 65 66 ┆drs_def := long <:plus addrs def┆ 0x207a0…207c0 2e 3a 3e 3b 0a 20 20 6d 69 6e 75 73 5f 61 64 64 72 73 5f 64 65 66 20 3a 3d 20 6c 6f 6e 67 20 3c ┆.:>; minus_addrs_def := long <┆ 0x207c0…207e0 3a 6d 69 6e 75 73 20 61 64 64 72 73 2e 20 64 65 66 2e 3a 3e 3b 0a 20 20 69 6c 6c 65 67 61 6c 5f ┆:minus addrs. def.:>; illegal_┆ 0x207e0…20800 73 6f 75 72 63 65 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 69 6c 6c 65 67 61 6c 20 73 6f 75 72 63 65 3a ┆source := long <:illegal source:┆ 0x20800…20820 3e 3b 0a 20 20 69 6c 6c 65 67 61 6c 5f 64 65 73 74 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 69 6c 6c 65 ┆>; illegal_dest := long <:ille┆ 0x20820…20840 67 61 6c 20 64 65 73 74 69 6e 61 74 69 6f 6e 3a 3e 3b 0a 20 20 69 6c 6c 65 67 61 6c 5f 64 65 73 ┆gal destination:>; illegal_des┆ 0x20840…20860 74 5f 61 6e 64 5f 73 6f 75 72 63 65 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 69 6c 6c 65 67 61 6c 20 64 ┆t_and_source := long <:illegal d┆ 0x20860…20880 65 73 74 69 6e 61 74 69 6f 6e 20 61 6e 64 20 6f 72 20 73 6f 75 72 63 65 20 3a 3e 3b 0a 20 20 73 ┆estination and or source :>; s┆ 0x20880…208a0 61 76 65 5f 66 69 6c 65 5f 6e 61 6d 65 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 69 6c 6c 65 67 61 6c 20 ┆ave_file_name := long <:illegal ┆ 0x208a0…208c0 73 61 76 65 20 66 69 6c 65 20 6e 61 6d 65 3a 3e 3b 0a 20 20 6c 6f 61 64 5f 66 69 6c 65 5f 6e 61 ┆save file name:>; load_file_na┆ 0x208c0…208e0 6d 65 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 69 6c 6c 65 67 61 6c 20 6c 6f 61 64 20 66 69 6c 65 20 6e ┆me := long <:illegal load file n┆ 0x208e0…20900 61 6d 65 3a 3e 3b 0a 20 20 74 65 72 6d 69 6e 61 74 69 6f 6e 20 3a 3d 20 6c 6f 6e 67 20 3c 3a 74 ┆ame:>; termination := long <:t┆ 0x20900…20920 65 72 6d 69 6e 61 74 69 6f 6e 3a 3e 3b 0a 20 20 6f 70 65 72 61 6e 64 20 3a 3d 20 6c 6f 6e 67 20 ┆ermination:>; operand := long ┆ 0x20920…20940 3c 3a 75 6e 6b 6e 6f 77 6e 20 6f 70 65 72 61 6e 64 3a 3e 3b 0a 20 20 61 6c 67 6f 6c 20 63 6f 70 ┆<:unknown operand:>; algol cop┆ 0x20940…20960 79 2e 33 20 3c 2a 20 73 63 68 6f 75 6c 64 20 62 65 20 6d 32 39 30 78 69 6e 69 74 20 2a 3e 3b 0a ┆y.3 <* schould be m290xinit *>; ┆ 0x20960…20980 20 20 69 6e 69 74 5f 6c 6f 6e 67 5f 61 72 72 61 79 28 6e 61 6d 65 5f 74 61 62 6c 65 2c 2d 31 29 ┆ init_long_array(name_table,-1)┆ 0x20980…209a0 3b 0a 20 20 69 6e 69 74 5f 48 45 41 50 3b 0a 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 ┆; init_HEAP; error_record_c┆ 0x209a0…209c0 68 61 69 6e 5f 68 65 61 64 20 3a 3d 20 6e 69 6c 3b 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 ┆hain_head := nil; error_record┆ 0x209c0…209e0 5f 74 65 78 74 20 3a 3d 20 34 3b 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 6c 69 6e 65 5f ┆_text := 4; error_record_line_┆ 0x209e0…20a00 6e 6f 20 3a 3d 20 38 3b 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 65 6c 65 6d 65 6e 74 5f ┆no := 8; error_record_element_┆ 0x20a00…20a20 (58,) 70 6f 73 20 3a 3d 20 31 30 3b 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 63 68 61 69 6e 20 ┆pos := 10; error_record_chain ┆ 0x20a20…20a40 3a 3d 20 36 3b 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 69 6e 73 74 72 5f 69 6e 64 65 78 ┆:= 6; error_record_instr_index┆ 0x20a40…20a60 20 3a 3d 20 31 32 3b 0a 20 20 65 72 72 6f 72 5f 72 65 63 6f 72 64 5f 6c 65 6e 67 74 68 20 3a 3d ┆ := 12; error_record_length :=┆ 0x20a60…20a80 20 31 32 3b 0a 20 20 6c 5f 64 5f 6e 61 6d 65 20 3a 3d 20 38 3b 0a 20 20 6c 5f 64 5f 73 70 65 63 ┆ 12; l_d_name := 8; l_d_spec┆ 0x20a80…20aa0 20 3a 3d 20 32 3b 0a 20 20 6c 5f 64 5f 69 6e 64 65 78 20 3a 3d 20 34 3b 0a 20 20 6c 5f 64 5f 6c ┆ := 2; l_d_index := 4; l_d_l┆ 0x20aa0…20ac0 69 6e 65 5f 6e 6f 20 3a 3d 20 36 3b 0a 20 20 6c 5f 64 5f 63 68 61 69 6e 20 3a 3d 20 38 3b 0a 20 ┆ine_no := 6; l_d_chain := 8; ┆ 0x20ac0…20ae0 20 6c 5f 64 5f 72 65 63 6f 72 64 5f 6c 65 6e 67 74 68 20 3a 3d 20 38 3b 0a 0a 20 20 6c 5f 72 5f ┆ l_d_record_length := 8; l_r_┆ 0x20ae0…20b00 63 68 61 69 6e 20 3a 3d 20 32 3b 0a 20 20 6c 5f 72 5f 6e 61 6d 65 20 20 3a 3d 20 36 3b 0a 20 20 ┆chain := 2; l_r_name := 6; ┆ 0x20b00…20b20 6c 5f 72 5f 69 6e 64 65 78 20 3a 3d 20 38 3b 0a 20 20 6c 5f 72 5f 6c 69 6e 65 5f 6e 6f 20 3a 3d ┆l_r_index := 8; l_r_line_no :=┆ 0x20b20…20b40 20 31 30 3b 0a 20 20 6c 5f 72 5f 65 6c 65 6d 65 6e 74 5f 6e 6f 20 3a 3d 20 31 32 3b 0a 20 20 6c ┆ 10; l_r_element_no := 12; l┆ 0x20b40…20b60 5f 72 5f 72 65 63 6f 72 64 5f 6c 65 6e 67 74 68 20 3a 3d 20 31 32 3b 0a 20 20 6c 5f 72 5f 72 65 ┆_r_record_length := 12; l_r_re┆ 0x20b60…20b80 63 6f 72 64 5f 63 68 61 69 6e 5f 68 65 61 64 20 3a 3d 2d 31 3b 20 3c 2a 20 6e 6f 20 6c 61 62 65 ┆cord_chain_head :=-1; <* no labe┆ 0x20b80…20ba0 6c 20 72 65 66 66 65 72 65 6e 63 65 20 62 6c 6f 63 6b 73 20 2a 3e 0a 20 20 6e 61 6d 65 5f 6e 61 ┆l refference blocks *> name_na┆ 0x20ba0…20bc0 6d 65 20 3a 3d 20 38 3b 0a 20 20 6e 61 6d 65 5f 63 68 61 69 6e 20 3a 3d 20 32 3b 0a 20 20 6e 61 ┆me := 8; name_chain := 2; na┆ 0x20bc0…20be0 6d 65 5f 74 79 70 65 20 3a 3d 20 34 3b 0a 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 30 2c 30 29 20 ┆me_type := 4; name_table(0,0) ┆ 0x20be0…20c00 3a 3d 20 6e 61 6d 65 5f 74 61 62 6c 65 5f 6c 65 6e 67 74 68 3b 0a 20 20 3c 2a 20 61 73 6d 2e 20 ┆:= name_table_length; <* asm. ┆ 0x20c00…20c20 62 65 67 69 6e 20 2a 3e 0a 20 20 20 20 70 72 6f 6d 5f 63 6f 64 65 20 3a 3d 20 2d 31 3b 0a 20 20 ┆begin *> prom_code := -1; ┆ 0x20c20…20c40 20 20 66 6f 72 20 69 6e 64 65 78 20 3a 3d 20 30 20 73 74 65 70 20 31 20 75 6e 74 69 6c 20 6c 65 ┆ for index := 0 step 1 until le┆ 0x20c40…20c60 6e 67 74 68 5f 6f 66 5f 63 6f 64 65 2d 31 20 64 6f 0a 20 20 20 20 6f 70 63 6f 64 65 28 69 6e 64 ┆ngth_of_code-1 do opcode(ind┆ 0x20c60…20c80 65 78 29 3a 3d 70 72 6f 6d 5f 63 6f 64 65 3b 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 69 6e ┆ex):=prom_code; begin in┆ 0x20c80…20ca0 74 65 67 65 72 20 61 72 72 61 79 20 74 61 69 6c 28 31 3a 32 30 29 3b 0a 20 20 20 20 7a 6f 6e 65 ┆teger array tail(1:20); zone┆ 0x20ca0…20cc0 20 64 75 6d 6d 79 28 31 32 38 2c 31 2c 73 74 64 65 72 72 6f 72 29 3b 0a 20 20 20 20 72 65 61 6c ┆ dummy(128,1,stderror); real┆ 0x20cc0…20ce0 20 72 3b 0a 20 20 20 20 69 6e 74 65 67 65 72 20 69 2c 6a 2c 6c 6f 6f 6b 75 70 5f 72 65 73 75 6c ┆ r; integer i,j,lookup_resul┆ 0x20ce0…20d00 74 3b 0a 20 20 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 6d 69 63 5f 61 73 6d 5f 70 72 6f 67 5f 6e ┆t; long array mic_asm_prog_n┆ 0x20d00…20d20 61 6d 65 2c 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 28 31 3a 32 29 3b 0a 20 20 20 20 69 3a 3d 73 79 ┆ame,program_name(1:2); i:=sy┆ 0x20d20…20d40 73 74 65 6d 28 32 2c 6a 2c 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 6f 70 65 6e ┆stem(2,j,program_name); open┆ 0x20d40…20d60 28 64 75 6d 6d 79 2c 34 2c 70 72 6f 67 72 61 6d 6e 61 6d 65 2c 30 29 3b 0a 20 20 20 20 6c 6f 6f ┆(dummy,4,programname,0); loo┆ 0x20d60…20d80 6b 75 70 5f 72 65 73 75 6c 74 3a 3d 6d 6f 6e 69 74 6f 72 28 34 32 2c 64 75 6d 6d 79 2c 30 2c 74 ┆kup_result:=monitor(42,dummy,0,t┆ 0x20d80…20da0 61 69 6c 29 3b 0a 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 22 66 66 22 2c 31 2c 3c 3a 4d 69 63 ┆ail); write(out,"ff",1,<:Mic┆ 0x20da0…20dc0 72 6f 20 61 73 6d 2e 3a 5f 3a 3e 2c 74 72 75 65 2c 31 32 2c 70 72 6f 67 72 61 6d 5f 6e 61 6d 65 ┆ro asm.:_:>,true,12,program_name┆ 0x20dc0…20de0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3a 20 76 65 72 73 69 6f 6e 20 64 61 74 65 ┆, <: version date┆ 0x20de0…20e00 2e 3a 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 3c 3c 7a 64 64 64 64 64 2e 64 64 64 64 3e 2c 73 79 ┆.:>, <<zddddd.dddd>,sy┆ 0x20e00…20e20 73 74 69 6d 65 28 36 2c 74 61 69 6c 28 36 29 2c 72 29 20 2b 20 72 2f 31 30 30 30 30 30 30 2c 22 ┆stime(6,tail(6),r) + r/1000000,"┆ 0x20e20…20e40 6e 6c 22 2c 31 29 3b 0a 20 20 20 20 63 6c 6f 73 65 28 64 75 6d 6d 79 2c 74 72 75 65 29 3b 0a 20 ┆nl",1); close(dummy,true); ┆ 0x20e40…20e60 20 69 66 20 63 6f 6e 6e 65 63 74 5f 66 69 6c 65 5f 69 6e 28 6d 69 63 5f 61 73 6d 5f 70 72 6f 67 ┆ if connect_file_in(mic_asm_prog┆ 0x20e60…20e80 5f 6e 61 6d 65 29 20 3d 20 34 20 74 68 65 6e 0a 20 20 77 72 69 74 65 28 6f 75 74 2c 22 6e 6c 22 ┆_name) = 4 then write(out,"nl"┆ 0x20e80…20ea0 2c 31 2c 22 2a 22 2c 35 2c 3c 3a 53 6f 75 72 63 65 20 66 69 6c 65 20 63 6f 6e 6e 65 63 74 20 65 ┆,1,"*",5,<:Source file connect e┆ 0x20ea0…20ec0 72 72 6f 72 3a 3a 3e 2c 0a 20 20 20 20 20 20 20 20 6d 69 63 5f 61 73 6d 5f 70 72 6f 67 5f 6e 61 ┆rror::>, mic_asm_prog_na┆ 0x20ec0…20ee0 6d 65 29 3b 0a 20 20 20 20 67 65 74 5f 63 6f 6e 6e 65 63 74 65 64 5f 6e 61 6d 65 28 69 6e 2c 6d ┆me); get_connected_name(in,m┆ 0x20ee0…20f00 69 63 61 73 6d 5f 70 72 6f 67 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 6c 6f 6f 6b 75 70 5f 72 65 73 ┆icasm_prog_name); lookup_res┆ 0x20f00…20f20 75 6c 74 3a 3d 6d 6f 6e 69 74 6f 72 28 34 32 2c 69 6e 2c 30 2c 74 61 69 6c 29 3b 0a 20 20 20 20 ┆ult:=monitor(42,in,0,tail); ┆ 0x20f20…20f40 77 72 69 74 65 28 6f 75 74 2c 22 6e 6c 22 2c 31 2c 3c 3a 53 6f 75 72 63 65 20 66 69 6c 65 3a 3a ┆write(out,"nl",1,<:Source file::┆ 0x20f40…20f60 3e 2c 74 72 75 65 2c 31 32 2c 0a 20 20 20 20 20 20 20 20 20 20 6d 69 63 5f 61 73 6d 5f 70 72 6f ┆>,true,12, mic_asm_pro┆ 0x20f60…20f80 67 5f 6e 61 6d 65 2c 3c 3a 20 76 65 72 73 69 6f 6e 20 64 61 74 65 2e 3a 3e 2c 0a 20 20 20 20 20 ┆g_name,<: version date.:>, ┆ 0x20f80…20fa0 20 20 20 20 20 3c 3c 7a 64 64 64 64 64 2e 64 64 64 64 3e 2c 73 79 73 74 69 6d 65 28 36 2c 74 61 ┆ <<zddddd.dddd>,systime(6,ta┆ 0x20fa0…20fc0 69 6c 28 36 29 2c 72 29 2b 72 2f 31 30 30 30 30 30 30 2c 22 6e 6c 22 2c 31 29 3b 0a 0a 0a 20 20 ┆il(6),r)+r/1000000,"nl",1); ┆ 0x20fc0…20fe0 20 20 3c 2a 20 63 6f 6e 74 72 6f 6c 20 69 66 20 61 6e 79 20 61 6e 64 20 67 65 74 20 6e 61 6d 65 ┆ <* control if any and get name┆ 0x20fe0…21000 20 6f 66 20 6f 62 6a 65 63 74 20 66 69 6c 65 20 2a 3e 0a 20 20 20 20 69 66 20 67 65 74 5f 6c 65 ┆ of object file *> if get_le┆ 0x21000…21020 66 74 5f 73 69 64 65 28 6f 62 6a 65 63 74 5f 66 69 6c 65 5f 6e 61 6d 65 29 20 3d 20 30 20 74 68 ┆ft_side(object_file_name) = 0 th┆ 0x21020…21040 65 6e 0a 20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 5f 66 69 6c 65 20 3a 3d 20 74 72 75 65 20 ┆en object_file := true ┆ 0x21040…21060 65 6c 73 65 20 6f 62 6a 65 63 74 5f 66 69 6c 65 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 69 ┆else object_file := false; i┆ 0x21060…21080 66 20 6f 62 6a 65 63 74 5f 66 69 6c 65 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 ┆f object_file then begin ┆ 0x21080…210a0 20 6f 70 65 6e 28 64 75 6d 6d 79 2c 30 2c 6f 62 6a 65 63 74 5f 66 69 6c 65 5f 6e 61 6d 65 2c 30 ┆ open(dummy,0,object_file_name,0┆ 0x210a0…210c0 29 3b 0a 20 20 20 20 6c 6f 6f 6b 75 70 5f 72 65 73 75 6c 74 20 3a 3d 20 6d 6f 6e 69 74 6f 72 28 ┆); lookup_result := monitor(┆ 0x210c0…210e0 34 32 29 20 6c 6f 6f 6b 75 70 20 74 61 69 6c 3a 28 64 75 6d 6d 79 2c 30 2c 74 61 69 6c 29 3b 0a ┆42) lookup tail:(dummy,0,tail); ┆ 0x210e0…21100 20 20 20 20 0a 20 20 20 20 69 66 20 6c 6f 6f 6b 75 70 5f 72 65 73 75 6c 74 20 3c 3e 20 30 20 74 ┆ if lookup_result <> 0 t┆ 0x21100…21120 68 65 6e 0a 20 20 20 20 20 20 20 6f 62 6a 65 63 74 5f 66 69 6c 65 20 3a 3d 20 66 61 6c 73 65 3b ┆hen object_file := false;┆ 0x21120…21140 0a 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 22 6e 6c 22 2c 31 2c 69 66 20 6c 6f 6f 6b 75 70 5f ┆ write(out,"nl",1,if lookup_┆ 0x21140…21160 72 65 73 75 6c 74 20 3d 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3a ┆result = 0 then <:┆ 0x21160…21180 4f 62 6a 65 63 74 20 66 69 6c 65 3a 3a 3e 20 65 6c 73 65 20 3c 3a 2a 2a 2a 20 55 6e 6b 6e 6f 77 ┆Object file::> else <:*** Unknow┆ 0x21180…211a0 6e 20 6f 62 6a 65 63 74 20 66 69 6c 65 3a 3a 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆n object file::>, ┆ 0x211a0…211c0 74 72 75 65 2c 31 32 2c 6f 62 6a 65 63 74 5f 66 69 6c 65 5f 6e 61 6d 65 2c 22 6e 6c 22 2c 31 29 ┆true,12,object_file_name,"nl",1)┆ 0x211c0…211e0 3b 0a 20 20 20 20 63 6c 6f 73 65 28 64 75 6d 6d 79 2c 74 72 75 65 29 3b 0a 20 20 20 20 65 6e 64 ┆; close(dummy,true); end┆ 0x211e0…21200 3b 0a 20 20 65 6e 64 20 62 6c 6f 63 6b 20 77 69 74 68 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 66 69 ┆; end block with control of fi┆ 0x21200…21220 6c 65 73 3b 0a 0a 0a 0a 20 20 20 20 3c 2a 20 67 65 74 20 61 6e 64 20 63 6f 6e 74 72 6f 6c 20 6f ┆les; <* get and control o┆ 0x21220…21240 66 20 6f 74 68 65 72 20 70 61 72 61 6d 65 74 65 72 73 2c 0a 20 20 20 20 20 20 20 75 6e 6b 6e 6f ┆f other parameters, unkno┆ 0x21240…21260 77 6e 20 70 61 72 61 6d 65 74 65 72 73 20 69 73 20 69 67 6e 6f 72 65 64 2e 20 2a 3e 0a 20 20 20 ┆wn parameters is ignored. *> ┆ 0x21260…21280 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 68 65 6c 70 3a 3e 2c 68 65 6c 70 5f 77 ┆ get_bool_string(<:help:>,help_w┆ 0x21280…212a0 61 6e 74 65 64 29 3b 0a 20 20 20 20 69 66 20 68 65 6c 70 5f 77 61 6e 74 65 64 20 74 68 65 6e 20 ┆anted); if help_wanted then ┆ 0x212a0…212c0 68 65 6c 70 5f 73 74 72 69 6e 67 28 3c 3a 6d 69 63 61 73 6d 68 65 6c 70 3a 3e 29 3b 0a 20 20 20 ┆help_string(<:micasmhelp:>); ┆ 0x212c0…212e0 20 69 66 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 6d 65 73 73 61 67 65 3a 3e 2c ┆ if get_bool_string(<:message:>,┆ 0x212e0…21300 6d 65 73 73 61 67 65 5f 6c 69 73 74 29 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 6d 65 ┆message_list) <> 0 then me┆ 0x21300…21320 (59,) 73 73 61 67 65 5f 6c 69 73 74 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 6c 69 73 74 5f 61 6c 6c ┆ssage_list := true; list_all┆ 0x21320…21340 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 69 66 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e ┆ := false; if get_bool_strin┆ 0x21340…21360 67 28 3c 3a 6c 69 73 74 3a 3e 2c 6c 69 73 74 29 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 ┆g(<:list:>,list) <> 0 then ┆ 0x21360…21380 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 70 61 72 61 6d 5f ┆ begin long array param_┆ 0x21380…213a0 6e 61 6d 65 28 31 3a 32 29 3b 0a 20 20 20 20 20 20 20 69 66 20 67 65 74 5f 74 65 78 74 5f 73 74 ┆name(1:2); if get_text_st┆ 0x213a0…213c0 72 69 6e 67 28 3c 3a 6c 69 73 74 3a 3e 2c 70 61 72 61 6d 5f 6e 61 6d 65 29 20 3d 20 30 20 74 68 ┆ring(<:list:>,param_name) = 0 th┆ 0x213c0…213e0 65 6e 0a 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 69 66 20 70 61 ┆en begin if pa┆ 0x213e0…21400 72 61 6d 5f 6e 61 6d 65 28 31 29 20 3d 20 6c 6f 6e 67 20 3c 3a 61 6c 6c 3a 3e 20 74 68 65 6e 20 ┆ram_name(1) = long <:all:> then ┆ 0x21400…21420 6c 69 73 74 3a 3d 6c 69 73 74 5f 61 6c 6c 20 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 ┆list:=list_all := true; ┆ 0x21420…21440 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66 20 67 65 74 5f 62 6f 6f ┆ end; end; if get_boo┆ 0x21440…21460 6c 5f 73 74 72 69 6e 67 28 3c 3a 6c 69 6e 65 6e 75 6d 3a 3e 2c 6c 69 6e 65 5f 6e 75 6d 29 20 3c ┆l_string(<:linenum:>,line_num) <┆ 0x21460…21480 3e 20 30 20 74 68 65 6e 20 6c 69 6e 65 5f 6e 75 6d 3a 3d 20 74 72 75 65 3b 0a 20 20 20 20 69 66 ┆> 0 then line_num:= true; if┆ 0x21480…214a0 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 64 65 63 63 6f 64 65 3a 3e 2c 64 65 63 ┆ get_bool_string(<:deccode:>,dec┆ 0x214a0…214c0 5f 63 6f 64 65 29 20 3c 3e 20 30 20 74 68 65 6e 20 64 65 63 5f 63 6f 64 65 20 3a 3d 20 74 72 75 ┆_code) <> 0 then dec_code := tru┆ 0x214c0…214e0 65 3b 0a 20 20 20 20 69 66 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 6f 63 74 61 ┆e; if get_bool_string(<:octa┆ 0x214e0…21500 6c 3a 3e 2c 6f 63 74 61 6c 5f 63 6f 64 65 29 20 3c 3e 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆l:>,octal_code) <> 0 then ┆ 0x21500…21520 62 65 67 69 6e 0a 20 20 20 20 20 20 6f 63 74 61 6c 5f 63 6f 64 65 20 3a 3d 20 74 72 75 65 3b 0a ┆begin octal_code := true; ┆ 0x21520…21540 20 20 20 20 20 20 69 66 20 67 65 74 5f 74 65 78 74 5f 73 74 72 69 6e 67 28 3c 3a 6f 63 74 61 6c ┆ if get_text_string(<:octal┆ 0x21540…21560 3a 3e 2c 70 61 72 61 6d 5f 6e 61 6d 65 29 20 3d 20 30 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 ┆:>,param_name) = 0 then ┆ 0x21560…21580 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 69 66 20 70 61 72 61 6d 5f 6e 61 6d 65 28 31 29 20 3d ┆begin if param_name(1) =┆ 0x21580…215a0 20 6c 6f 6e 67 20 3c 3a 6f 6e 6c 79 3a 3e 20 74 68 65 6e 20 64 65 63 5f 63 6f 64 65 3a 3d 20 6c ┆ long <:only:> then dec_code:= l┆ 0x215a0…215c0 69 6e 65 5f 6e 75 6d 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 ┆ine_num := false; end; ┆ 0x215c0…215e0 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66 20 67 65 74 5f 74 65 78 74 5f 73 74 72 69 6e 67 ┆ end; if get_text_string┆ 0x215e0…21600 28 3c 3a 66 69 6e 64 3a 3e 2c 66 69 6e 64 5f 6e 61 6d 65 29 20 3d 20 30 20 74 68 65 6e 20 66 69 ┆(<:find:>,find_name) = 0 then fi┆ 0x21600…21620 6e 64 20 3a 3d 20 74 72 75 65 3b 0a 0a 20 20 20 20 69 66 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 ┆nd := true; if get_bool_str┆ 0x21620…21640 69 6e 67 28 3c 3a 65 72 72 6f 72 73 3a 3e 2c 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 29 ┆ing(<:errors:>,list_error_lines)┆ 0x21640…21660 20 3c 3e 20 30 20 61 6e 64 0a 20 20 20 20 20 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 ┆ <> 0 and get_bool_string(┆ 0x21660…21680 3c 3a 65 72 72 6f 72 6c 69 6e 65 73 3a 3e 2c 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 29 ┆<:errorlines:>,list_error_lines)┆ 0x21680…216a0 20 3c 3e 20 30 20 61 6e 64 0a 20 20 20 20 20 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 ┆ <> 0 and get_bool_string(┆ 0x216a0…216c0 3c 3a 65 6c 73 3a 3e 2c 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 29 20 3c 3e 20 30 20 74 ┆<:els:>,list_error_lines) <> 0 t┆ 0x216c0…216e0 68 65 6e 0a 20 20 20 20 20 20 20 20 20 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 20 3a 3d ┆hen list_error_lines :=┆ 0x216e0…21700 20 74 72 75 65 3b 0a 20 20 20 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 63 6f 64 ┆ true; get_bool_string(<:cod┆ 0x21700…21720 65 3a 3e 2c 70 72 69 6e 74 5f 63 6f 64 65 29 3b 0a 20 20 20 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 ┆e:>,print_code); get_bool_st┆ 0x21720…21740 72 69 6e 67 28 3c 3a 6c 61 62 65 6c 78 72 65 66 3a 3e 2c 74 65 73 74 5f 6c 61 62 65 6c 5f 72 65 ┆ring(<:labelxref:>,test_label_re┆ 0x21740…21760 66 29 3b 0a 20 20 20 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 6c 61 62 65 6c 62 ┆f); get_bool_string(<:labelb┆ 0x21760…21780 69 74 3a 3e 2c 74 65 73 74 5f 6c 61 62 65 6c 5f 62 69 74 29 3b 0a 20 20 20 20 67 65 74 5f 62 6f ┆it:>,test_label_bit); get_bo┆ 0x21780…217a0 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 65 6e 74 72 79 3a 3e 2c 65 6e 74 72 79 5f 6c 69 73 74 5f 77 ┆ol_string(<:entry:>,entry_list_w┆ 0x217a0…217c0 61 6e 74 65 64 29 3b 0a 20 20 20 20 67 65 74 5f 62 6f 6f 6c 5f 73 74 72 69 6e 67 28 3c 3a 62 69 ┆anted); get_bool_string(<:bi┆ 0x217c0…217e0 74 6c 69 6e 65 73 3a 3e 2c 6c 69 73 74 5f 62 69 74 5f 6c 69 6e 65 73 29 3b 0a 20 20 20 20 72 65 ┆tlines:>,list_bit_lines); re┆ 0x217e0…21800 74 75 72 6e 5f 66 72 6f 6d 5f 73 6b 69 70 20 3a 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 20 20 3c 2a ┆turn_from_skip := false; <*┆ 0x21800…21820 20 69 6e 69 74 69 61 6c 69 7a 69 6e 67 20 6f 66 20 63 6f 75 6e 74 69 6e 67 20 76 61 72 69 61 62 ┆ initializing of counting variab┆ 0x21820…21840 6c 65 73 20 61 6e 64 0a 20 20 20 20 20 20 20 72 65 61 64 69 6e 67 20 6f 66 20 66 69 72 73 74 20 ┆les and reading of first ┆ 0x21840…21860 63 6f 64 65 20 6c 69 6e 65 20 2a 3e 0a 20 20 20 20 0a 0a 20 20 20 20 69 6e 73 74 72 5f 69 6e 64 ┆code line *> instr_ind┆ 0x21860…21880 65 78 3a 3d 30 3b 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 70 72 65 73 65 6e 74 5f 63 ┆ex:=0; present_c┆ 0x21880…218a0 6f 64 65 20 3a 3d 20 6e 6f 70 5f 63 6f 64 65 3b 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 ┆ode := nop_code; ┆ 0x218a0…218c0 20 65 72 72 6f 72 5f 69 6e 5f 74 68 69 73 5f 6c 69 6e 65 20 3a 3d 20 66 61 6c 73 65 3b 0a 20 20 ┆ error_in_this_line := false; ┆ 0x218c0…218e0 20 20 6c 69 6e 65 5f 6e 6f 20 3a 3d 20 30 3b 0a 20 20 20 20 72 65 61 64 5f 6e 65 78 74 5f 73 6f ┆ line_no := 0; read_next_so┆ 0x218e0…21900 75 72 63 65 5f 6c 69 6e 65 3b 0a 0a 77 68 69 6c 65 20 63 6c 61 73 73 20 3c 3e 20 65 6f 66 5f 63 ┆urce_line; while class <> eof_c┆ 0x21900…21920 6c 61 73 73 20 64 6f 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 ┆lass do begin if class┆ 0x21920…21940 20 3d 20 73 74 6f 70 5f 6c 69 6e 65 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 ┆ = stop_line_class then be┆ 0x21940…21960 67 69 6e 0a 20 20 20 20 20 20 20 20 3c 2a 20 0a 20 20 20 20 20 20 65 6e 64 20 6c 69 6e 65 20 2c ┆gin <* end line ,┆ 0x21960…21980 20 6f 72 0a 63 6f 6d 6d 65 6e 74 20 20 20 20 20 20 2e 20 43 6f 6d 6d 61 6e 74 20 77 69 6c 20 62 ┆ or comment . Commant wil b┆ 0x21980…219a0 65 20 62 65 20 63 72 65 61 74 65 64 20 62 79 0a 67 65 74 5f 6e 65 78 74 5f 65 6c 65 6d 65 6e 74 ┆e be created by get_next_element┆ 0x219a0…219c0 20 20 20 20 20 20 20 2a 3e 0a 69 66 20 28 6c 69 73 74 20 6f 72 20 28 65 72 72 6f 72 5f 69 6e 5f ┆ *> if (list or (error_in_┆ 0x219c0…219e0 74 68 69 73 5f 6c 69 6e 65 20 61 6e 64 20 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 20 29 ┆this_line and list_error_lines )┆ 0x219e0…21a00 20 20 0a 20 20 20 20 6f 72 20 28 20 66 69 6e 64 20 61 6e 64 20 66 6f 75 6e 64 20 29 29 0a 20 20 ┆ or ( find and found )) ┆ 0x21a00…21a20 20 20 61 6e 64 20 28 20 2d 2c 20 72 65 74 75 72 6e 5f 66 72 6f 6d 5f 73 6b 69 70 20 6f 72 20 6c ┆ and ( -, return_from_skip or l┆ 0x21a20…21a40 69 73 74 5f 61 6c 6c 29 20 74 68 65 6e 0a 20 20 20 20 6c 69 73 74 5f 6c 69 6e 65 3b 0a 72 65 74 ┆ist_all) then list_line; ret┆ 0x21a40…21a60 75 72 6e 5f 66 72 6f 6d 5f 73 6b 69 70 20 3a 3d 20 66 61 6c 73 65 3b 0a 66 6f 75 6e 64 20 3a 3d ┆urn_from_skip := false; found :=┆ 0x21a60…21a80 20 66 61 6c 73 65 3b 0a 20 20 20 20 69 66 20 70 72 69 6e 74 5f 63 6f 64 65 20 61 6e 64 20 63 6f ┆ false; if print_code and co┆ 0x21a80…21aa0 64 65 5f 67 65 6e 65 72 61 74 65 64 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆de_generated then begin ┆ 0x21aa0…21ac0 69 66 20 2d 2c 20 6c 69 73 74 20 20 61 6e 64 20 2d 2c 20 6c 69 73 74 5f 62 69 74 5f 6c 69 6e 65 ┆if -, list and -, list_bit_line┆ 0x21ac0…21ae0 73 20 61 6e 64 0a 20 20 20 20 20 20 20 2d 2c 20 28 65 72 72 6f 72 5f 69 6e 5f 74 68 69 73 5f 6c ┆s and -, (error_in_this_l┆ 0x21ae0…21b00 69 6e 65 20 61 6e 64 20 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 29 20 74 68 65 6e 0a 20 ┆ine and list_error_lines) then ┆ 0x21b00…21b20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 3c 3c 2d 7a 64 64 64 3e 2c 69 6e 73 74 72 5f 69 6e ┆ write(out,<<-zddd>,instr_in┆ 0x21b20…21b40 64 65 78 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 63 74 61 6c 28 65 78 74 65 6e 64 20 69 ┆dex, octal(extend i┆ 0x21b40…21b60 6e 73 74 72 5f 69 6e 64 65 78 29 2c 22 73 70 22 2c 31 29 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 ┆nstr_index),"sp",1) else ┆ 0x21b60…21b80 20 20 69 66 20 2d 2c 20 6c 69 73 74 20 61 6e 64 20 6c 69 73 74 5f 62 69 74 5f 6c 69 6e 65 73 20 ┆ if -, list and list_bit_lines ┆ 0x21b80…21ba0 20 61 6e 64 0a 20 20 20 20 20 20 2d 2c 20 28 65 72 72 6f 72 5f 69 6e 5f 74 68 69 73 5f 6c 69 6e ┆ and -, (error_in_this_lin┆ 0x21ba0…21bc0 65 20 61 6e 64 20 6c 69 73 74 5f 65 72 72 6f 72 5f 6c 69 6e 65 73 29 20 74 68 65 6e 0a 20 20 20 ┆e and list_error_lines) then ┆ 0x21bc0…21be0 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 6c 69 73 74 5f 6c 69 6e 65 3b 0a 20 20 20 20 20 20 ┆ begin list_line; ┆ 0x21be0…21c00 77 72 69 74 65 28 6f 75 74 2c 3c 3a 20 20 20 20 20 20 20 20 20 20 3a 3e 29 3b 0a 20 20 20 20 20 ┆write(out,<: :>); ┆ 0x21c00…21c20 (60,) 20 65 6e 64 0a 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c 3c ┆ end else write(out,<┆ 0x21c20…21c40 3a 20 20 20 20 20 20 20 20 20 20 3a 3e 29 3b 0a 20 20 20 20 20 20 70 72 69 6e 74 5f 66 6f 72 6d ┆: :>); print_form┆ 0x21c40…21c60 61 74 65 64 28 70 72 65 73 65 6e 74 5f 63 6f 64 65 29 3b 0a 20 20 20 20 20 20 6f 75 74 63 68 61 ┆ated(present_code); outcha┆ 0x21c60…21c80 72 28 6f 75 74 2c 31 30 29 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 69 66 20 63 6f 64 65 5f ┆r(out,10); end; if code_┆ 0x21c80…21ca0 67 65 6e 65 72 61 74 65 64 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 6f ┆generated then begin o┆ 0x21ca0…21cc0 70 5f 63 6f 64 65 28 69 6e 73 74 72 5f 69 6e 64 65 78 29 3a 3d 70 72 65 73 65 6e 74 5f 63 6f 64 ┆p_code(instr_index):=present_cod┆ 0x21cc0…21ce0 65 3b 0a 20 20 20 20 20 20 69 6e 73 74 72 5f 69 6e 64 65 78 3a 3d 69 6e 73 74 72 5f 69 6e 64 65 ┆e; instr_index:=instr_inde┆ 0x21ce0…21d00 78 2b 31 3b 0a 20 20 20 20 20 20 70 72 65 73 65 6e 74 5f 63 6f 64 65 20 3a 3d 20 6e 6f 70 5f 63 ┆x+1; present_code := nop_c┆ 0x21d00…21d20 6f 64 65 3b 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 65 6e 64 3b 0a 20 20 3c 2a 20 72 ┆ode; end; <* r┆ 0x21d20…21d40 65 61 64 20 6e 65 78 74 20 6c 69 6e 65 20 6f 66 20 73 6f 75 72 63 65 20 20 74 65 78 74 20 2a 3e ┆ead next line of source text *>┆ 0x21d40…21d60 0a 20 20 72 65 61 64 5f 6e 65 78 74 5f 73 6f 75 72 63 65 5f 6c 69 6e 65 3b 0a 20 20 65 6e 64 20 ┆ read_next_source_line; end ┆ 0x21d60…21d80 63 6c 61 73 73 20 32 20 6e 65 77 20 6c 69 6e 65 0a 20 20 65 6c 73 65 0a 20 20 69 66 20 63 6c 61 ┆class 2 new line else if cla┆ 0x21d80…21da0 73 73 20 3d 20 74 65 78 74 5f 63 6c 61 73 73 20 6f 72 20 63 6c 61 73 73 20 3d 20 75 6e 6b 6e 6f ┆ss = text_class or class = unkno┆ 0x21da0…21dc0 77 6e 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 63 ┆wn_name_class then begin c┆ 0x21dc0…21de0 6c 61 73 73 5f 32 20 3a 3d 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 73 73 3b 0a 20 20 20 20 ┆lass_2 := look_ahead_class; ┆ 0x21de0…21e00 69 66 20 63 6c 61 73 73 5f 32 20 3d 20 63 6f 6c 6f 6e 5f 63 6c 61 73 73 20 6f 72 20 63 6c 61 73 ┆if class_2 = colon_class or clas┆ 0x21e00…21e20 73 5f 32 20 3d 20 73 6c 61 73 68 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 ┆s_2 = slash_class then beg┆ 0x21e20…21e40 69 6e 0a 20 20 20 20 20 20 69 66 20 65 6c 65 6d 65 6e 74 5f 6e 6f 20 3d 20 31 20 61 6e 64 20 63 ┆in if element_no = 1 and c┆ 0x21e40…21e60 6c 61 73 73 20 3d 20 75 6e 6b 6e 6f 77 6e 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 ┆lass = unknown_name_class then ┆ 0x21e60…21e80 20 20 20 20 20 20 20 62 65 67 69 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ begin ┆ 0x21e80…21ea0 0a 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 32 20 3d 20 73 6c 61 73 68 5f 63 6c 61 73 73 ┆ if class2 = slash_class┆ 0x21ea0…21ec0 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 ┆ then begin ┆ 0x21ec0…21ee0 73 6b 69 70 5f 6e 65 78 74 3b 0a 20 20 20 20 20 20 20 20 20 20 63 6c 61 73 73 32 20 3a 3d 20 6c ┆skip_next; class2 := l┆ 0x21ee0…21f00 6f 6f 6b 5f 61 68 65 61 64 5f 63 6c 61 73 73 3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c ┆ook_ahead_class; if cl┆ 0x21f00…21f20 61 73 73 32 20 3d 20 6e 75 6d 62 65 72 5f 63 6c 61 73 73 20 6f 72 20 63 6c 61 73 73 32 20 3d 20 ┆ass2 = number_class or class2 = ┆ 0x21f20…21f40 63 6f 6c 6f 6e 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 ┆colon_class then be┆ 0x21f40…21f60 67 69 6e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 5f 32 20 3d 20 6e ┆gin if class_2 = n┆ 0x21f60…21f80 75 6d 62 65 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆umber_class then ┆ 0x21f80…21fa0 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 31 3b 0a 20 20 20 20 ┆begin next1; ┆ 0x21fa0…21fc0 20 20 20 20 20 20 20 20 20 20 20 63 6c 61 73 73 32 20 3a 3d 20 6c 6f 6f 6b 5f 61 68 65 61 64 5f ┆ class2 := look_ahead_┆ 0x21fc0…21fe0 63 6c 61 73 73 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 ┆class; end ┆ 0x21fe0…22000 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 ┆ else numbe┆ 0x22000…22020 72 5f 31 20 3a 3d 20 6c 69 6e 65 5f 6e 6f 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 ┆r_1 := line_no; if ┆ 0x22020…22040 63 6c 61 73 73 32 20 3d 20 63 6f 6c 6f 6e 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆class2 = colon_class then ┆ 0x22040…22060 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 ┆ begin ne┆ 0x22060…22080 77 5f 69 6e 73 65 72 74 5f 6c 61 62 65 6c 5f 64 65 66 28 6e 61 6d 65 2c 6e 75 6d 62 65 72 2c 69 ┆w_insert_label_def(name,number,i┆ 0x22080…220a0 6e 73 74 72 5f 69 6e 64 65 78 2c 6c 69 6e 65 5f 6e 6f 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆nstr_index,line_no, ┆ 0x220a0…220c0 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 28 31 2b 61 62 73 ┆ (1+abs┆ 0x220c0…220e0 28 6e 75 6d 62 65 72 31 29 29 20 65 78 74 72 61 63 74 20 32 34 29 3b 0a 20 20 20 20 20 20 20 20 ┆(number1)) extract 24); ┆ 0x220e0…22100 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 ┆ end else er┆ 0x22100…22120 72 6f 72 28 64 69 72 65 63 74 69 76 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f ┆ror(directive,line_no,element_no┆ 0x22120…22140 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆); end ┆ 0x22140…22160 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 64 69 72 65 63 74 69 76 ┆else error(directiv┆ 0x22160…22180 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 20 ┆e,line_no,element_no); ┆ 0x22180…221a0 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 ┆ end else ┆ 0x221a0…221c0 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 5f 69 6e 73 ┆ begin new_ins┆ 0x221c0…221e0 65 72 74 5f 6c 61 62 65 6c 5f 64 65 66 28 6e 61 6d 65 2c 6e 75 6d 62 65 72 2c 69 6e 73 74 72 5f ┆ert_label_def(name,number,instr_┆ 0x221e0…22200 69 6e 64 65 78 2c 6c 69 6e 65 5f 6e 6f 2c 30 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 ┆index,line_no,0); e┆ 0x22200…22220 6e 64 3b 0a 20 20 20 20 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 ┆nd; next; end ┆ 0x22220…22240 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 65 72 72 6f 72 ┆ else error┆ 0x22240…22260 28 6c 61 62 65 6c 5f 64 65 63 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a ┆(label_dec,line_no,element_no); ┆ 0x22260…22280 20 20 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 65 6e 64 20 0a 20 20 20 20 65 6c 73 65 0a 20 20 ┆ next; end else ┆ 0x22280…222a0 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 20 3d 20 75 6e 6b 6e 6f 77 6e ┆ begin if class = unknown┆ 0x222a0…222c0 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 ┆_name_class then begin ┆ 0x222c0…222e0 20 20 20 20 20 65 72 72 6f 72 28 6e 61 6d 65 5f 75 6e 6b 6e 6f 77 6e 2c 6c 69 6e 65 5f 6e 6f 2c ┆ error(name_unknown,line_no,┆ 0x222e0…22300 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 73 6b 69 70 5f 75 6e 74 69 6c 5f ┆element_no); skip_until_┆ 0x22300…22320 64 65 6c 69 6d 5f 63 6c 61 73 73 3b 0a 20 20 20 20 20 20 20 20 6e 65 78 74 3b 0a 20 20 20 20 20 ┆delim_class; next; ┆ 0x22320…22340 20 65 6e 64 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 69 66 20 6e 61 6d 65 5f 74 61 ┆ end else if name_ta┆ 0x22340…22360 62 6c 65 28 6e 75 6d 62 65 72 2c 30 29 20 3d 20 61 6c 75 5f 66 75 6e 63 74 69 6f 6e 5f 74 79 70 ┆ble(number,0) = alu_function_typ┆ 0x22360…22380 65 20 74 68 65 6e 0a 20 20 20 20 20 20 61 6c 75 5f 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 ┆e then alu_function ┆ 0x22380…223a0 65 6c 73 65 0a 20 20 20 20 20 20 69 66 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c ┆else if name_table(number,┆ 0x223a0…223c0 30 29 20 3d 20 6a 75 6d 70 5f 61 64 64 72 73 5f 74 79 70 65 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆0) = jump_addrs_type then ┆ 0x223c0…223e0 6a 75 6d 70 5f 61 64 64 72 73 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 69 66 20 6e ┆jump_addrs else if n┆ 0x223e0…22400 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c 30 29 20 3d 20 6a 75 6d 70 5f 73 65 6b 76 65 ┆ame_table(number,0) = jump_sekve┆ 0x22400…22420 6e 73 5f 74 79 70 65 20 74 68 65 6e 0a 20 20 20 20 20 20 6a 75 6d 70 5f 73 65 6b 76 65 6e 73 0a ┆ns_type then jump_sekvens ┆ 0x22420…22440 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 69 66 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e ┆ else if name_table(n┆ 0x22440…22460 75 6d 62 65 72 2c 30 29 20 3d 20 6c 6f 61 64 5f 63 6f 75 6e 74 65 72 5f 74 79 70 65 20 74 68 65 ┆umber,0) = load_counter_type the┆ 0x22460…22480 6e 0a 20 20 20 20 20 20 6c 6f 61 64 5f 63 6f 75 6e 74 65 72 0a 20 20 20 20 20 20 65 6c 73 65 0a ┆n load_counter else ┆ 0x22480…224a0 20 20 20 20 20 20 69 66 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 2c 30 29 20 3d 20 ┆ if name_table(number,0) = ┆ 0x224a0…224c0 73 70 65 63 69 61 6c 5f 74 79 70 65 20 74 68 65 6e 0a 20 20 20 20 20 20 73 70 65 63 69 61 6c 0a ┆special_type then special ┆ 0x224c0…224e0 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 65 ┆ else begin e┆ 0x224e0…22500 72 72 6f 72 28 69 6c 6c 65 67 61 6c 5f 74 79 70 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e ┆rror(illegal_type,line_no,elemen┆ 0x22500…22520 (61,) 74 5f 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 6e 65 78 74 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 ┆t_no); next end; ┆ 0x22520…22540 20 20 20 65 6e 64 3b 0a 20 20 65 6e 64 20 74 79 70 65 20 65 71 75 61 6c 20 69 64 65 6e 74 69 66 ┆ end; end type equal identif┆ 0x22540…22560 69 65 72 0a 20 20 65 6c 73 65 0a 20 20 69 66 20 63 6c 61 73 73 20 3d 20 73 74 61 72 5f 63 6c 61 ┆ier else if class = star_cla┆ 0x22560…22580 73 73 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 0a 20 20 20 20 3c 2a 20 41 66 74 65 72 20 73 74 61 ┆ss then begin <* After sta┆ 0x22580…225a0 72 20 69 73 20 61 73 73 6d 2e 20 64 69 72 65 63 74 69 76 65 2c 0a 20 20 20 20 31 20 64 69 72 65 ┆r is assm. directive, 1 dire┆ 0x225a0…225c0 6b 74 69 76 65 20 70 72 2e 20 6c 69 6e 65 2c 0a 20 20 20 20 61 66 74 65 72 20 74 68 65 20 64 69 ┆ktive pr. line, after the di┆ 0x225c0…225e0 72 65 6b 74 69 76 65 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 6c 69 6e 65 20 69 73 20 ┆rektive the rest of the line is ┆ 0x225e0…22600 73 6b 69 70 70 65 64 2c 0a 20 20 20 20 74 68 65 20 64 69 72 65 6b 74 69 76 65 20 73 63 68 6f 75 ┆skipped, the direktive schou┆ 0x22600…22620 6c 64 20 62 65 20 74 68 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 6c ┆ld be the first element in the l┆ 0x22620…22640 69 6e 65 20 2a 3e 0a 20 20 20 20 69 66 20 63 6f 64 65 5f 67 65 6e 65 72 61 74 65 64 20 74 68 65 ┆ine *> if code_generated the┆ 0x22640…22660 6e 20 65 72 72 6f 72 28 64 69 72 65 63 74 69 76 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e ┆n error(directive,line_no,elemen┆ 0x22660…22680 74 5f 6e 6f 29 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 6e ┆t_no) else begin n┆ 0x22680…226a0 65 78 74 31 3b 0a 20 20 20 20 20 20 6e 65 78 74 32 3b 0a 20 20 20 20 20 20 69 66 20 28 63 6c 61 ┆ext1; next2; if (cla┆ 0x226a0…226c0 73 73 31 20 3c 3e 20 39 20 61 6e 64 20 63 6c 61 73 73 31 20 3c 3e 20 36 20 29 20 6f 72 20 63 6c ┆ss1 <> 9 and class1 <> 6 ) or cl┆ 0x226c0…226e0 61 73 73 32 20 3c 3e 20 63 6f 6c 6f 6e 5f 63 6c 61 73 73 20 3c 2a 63 6f 6c 6f 6e 2a 3e 20 74 68 ┆ass2 <> colon_class <*colon*> th┆ 0x226e0…22700 65 6e 0a 20 20 20 20 20 20 65 72 72 6f 72 28 6c 6f 6e 67 20 3c 3a 74 65 73 74 20 64 69 72 20 31 ┆en error(long <:test dir 1┆ 0x22700…22720 20 3a 3e 2c 6c 69 6e 65 5f 6e 6f 2c 69 66 20 63 6c 61 73 73 32 20 3c 3e 20 63 6f 6c 6f 6e 5f 63 ┆ :>,line_no,if class2 <> colon_c┆ 0x22720…22740 6c 61 73 73 20 74 68 65 6e 20 65 6c 65 6d 65 6e 74 5f 6e 6f 20 65 6c 73 65 0a 20 20 20 20 20 20 ┆lass then element_no else ┆ 0x22740…22760 65 6c 65 6d 65 6e 74 5f 6e 6f 20 2d 31 29 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 ┆element_no -1) else ┆ 0x22760…22780 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a ┆begin if name1 = long <:┆ 0x22780…227a0 6e 61 6d 65 3a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 ┆name:> then begin ┆ 0x227a0…227c0 20 20 20 20 6e 65 78 74 31 3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 31 20 3c ┆ next1; if class1 <┆ 0x227c0…227e0 3e 20 39 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 69 66 20 63 6c 61 73 ┆> 9 then error(if clas┆ 0x227e0…22800 73 31 20 3c 3e 20 36 20 74 68 65 6e 20 6c 6f 6e 67 20 3c 3a 74 65 73 74 20 64 69 72 20 32 2e 3a ┆s1 <> 6 then long <:test dir 2.:┆ 0x22800…22820 3e 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 70 6c 75 73 5f 6e 61 6d 65 5f 64 65 63 2c 6c ┆> else plus_name_dec,l┆ 0x22820…22840 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 ┆ine_no,element_no) els┆ 0x22840…22860 65 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 ┆e begin na┆ 0x22860…22880 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 31 2c 31 29 20 3a 3d 20 6e 61 6d 65 31 3b 0a 20 20 ┆me_table(number1,1) := name1; ┆ 0x22880…228a0 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 3a 3d 30 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ index:=0; ┆ 0x228a0…228c0 20 66 6f 72 20 63 6c 61 73 73 32 20 3a 3d 20 6e 65 78 74 32 0a 20 20 20 20 20 20 20 20 20 20 20 ┆ for class2 := next2 ┆ 0x228c0…228e0 20 77 68 69 6c 65 20 63 6c 61 73 73 32 20 3d 20 63 6f 6d 6d 61 5f 63 6c 61 73 73 20 61 6e 64 20 ┆ while class2 = comma_class and ┆ 0x228e0…22900 69 6e 64 65 78 20 3c 20 35 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 ┆index < 5 do begin ┆ 0x22900…22920 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 32 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆ next2; ┆ 0x22920…22940 20 20 69 66 20 63 6c 61 73 73 32 20 3d 20 6e 75 6d 62 65 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a ┆ if class2 = number_class then ┆ 0x22940…22960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 31 ┆ name_table(number1┆ 0x22960…22980 2c 69 6e 64 65 78 29 20 3a 3d 20 6e 75 6d 62 65 72 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆,index) := number2 ┆ 0x22980…229a0 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 32 20 3d 20 ┆ else if class2 = ┆ 0x229a0…229c0 36 20 3c 2a 20 64 65 66 69 6e 65 64 20 6e 61 6d 65 20 2a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆6 <* defined name *> then ┆ 0x229c0…229e0 20 20 20 20 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6e 75 6d 62 65 72 31 2c 69 6e 64 65 78 ┆ name_table(number1,index┆ 0x229e0…22a00 29 20 3a 3d 20 6e 75 6d 62 65 72 5f 32 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 ┆) := number_2 ┆ 0x22a00…22a20 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e ┆ else begin┆ 0x22a20…22a40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 6c 6f 6e 67 20 3c 3a 74 65 ┆ error(long <:te┆ 0x22a40…22a60 73 74 20 64 69 72 2e 20 33 3a 3e 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b ┆st dir. 3:>,line_no,element_no);┆ 0x22a60…22a80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 3a 3d 31 30 30 3b 0a 20 20 20 ┆ index:=100; ┆ 0x22a80…22aa0 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 ┆ end; if┆ 0x22aa0…22ac0 20 69 6e 64 65 78 20 3d 20 30 20 74 68 65 6e 20 69 6e 64 65 78 20 3a 3d 32 20 65 6c 73 65 0a 20 ┆ index = 0 then index :=2 else ┆ 0x22ac0…22ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 6e 64 65 78 3c 31 30 30 20 74 68 65 6e 20 69 ┆ if index<100 then i┆ 0x22ae0…22b00 6e 64 65 78 3a 3d 69 6e 64 65 78 2b 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a ┆ndex:=index+1; end; ┆ 0x22b00…22b20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a ┆ end; end else ┆ 0x22b20…22b40 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 ┆ if name1 = long┆ 0x22b40…22b60 20 3c 3a 63 6f 6e 73 74 3a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a ┆ <:const:> then begin ┆ 0x22b60…22b80 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 31 3b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c ┆ next1; if cl┆ 0x22b80…22ba0 61 73 73 31 20 3c 3e 20 39 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 ┆ass1 <> 9 then error┆ 0x22ba0…22bc0 28 69 66 20 63 6c 61 73 73 31 20 3c 3e 20 36 20 74 68 65 6e 20 64 69 72 65 63 74 69 76 65 20 65 ┆(if class1 <> 6 then directive e┆ 0x22bc0…22be0 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 75 73 5f 6e 61 6d 65 ┆lse plus_name┆ 0x22be0…22c00 5f 64 65 63 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a 20 20 20 20 20 20 20 ┆_dec,line_no,element_no) ┆ 0x22c00…22c20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 ┆ else begin ┆ 0x22c20…22c40 20 20 20 20 20 20 20 20 20 6e 65 78 74 32 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 ┆ next2; if ┆ 0x22c40…22c60 63 6c 61 73 73 32 20 3d 20 63 6f 6d 6d 61 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 ┆class2 = comma_class then ┆ 0x22c60…22c80 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 ┆ begin ne┆ 0x22c80…22ca0 78 74 32 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6c 61 73 73 32 20 3d 20 ┆xt2; if class2 = ┆ 0x22ca0…22cc0 6e 75 6d 62 65 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆number_class then ┆ 0x22cc0…22ce0 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 5f 69 6e ┆ begin new_in┆ 0x22ce0…22d00 73 65 72 74 5f 6c 61 62 65 6c 5f 64 65 66 28 6e 61 6d 65 31 2c 6e 75 6d 62 65 72 31 2c 0a 20 20 ┆sert_label_def(name1,number1, ┆ 0x22d00…22d20 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 ┆ ┆ 0x22d20…22d40 20 20 20 20 6e 75 6d 62 65 72 32 20 65 78 74 72 61 63 74 20 31 32 2c 6c 69 6e 65 5f 6e 6f 2c 30 ┆ number2 extract 12,line_no,0┆ 0x22d40…22d60 29 3b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 ┆);; end ┆ 0x22d60…22d80 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 65 72 72 6f 72 28 64 69 72 65 63 74 69 76 65 2c 6c 69 ┆ else error(directive,li┆ 0x22d80…22da0 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ne_no,element_no); ┆ 0x22da0…22dc0 20 20 65 6e 64 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 65 72 72 6f 72 28 ┆ end else error(┆ 0x22dc0…22de0 64 69 72 65 63 74 69 76 65 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 3b 0a 20 ┆directive,line_no,element_no); ┆ 0x22de0…22e00 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 65 ┆ end; end e┆ 0x22e00…22e20 (62,) 6c 73 65 0a 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c ┆lse if name1 = l┆ 0x22e20…22e40 6f 6e 67 20 3c 3a 6d 61 73 6b 3a 3e 20 74 68 65 6e 20 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e ┆ong <:mask:> then begin┆ 0x22e40…22e60 0a 20 20 20 20 20 20 20 20 6c 6f 6e 67 20 61 72 72 61 79 20 6f 70 65 72 61 6e 64 28 31 3a 31 29 ┆ long array operand(1:1)┆ 0x22e60…22e80 3b 20 3c 2a 20 6f 6e 6c 79 20 6f 6e 65 20 77 6f 72 64 20 75 73 65 64 20 2a 3e 0a 20 20 20 20 20 ┆; <* only one word used *> ┆ 0x22e80…22ea0 20 20 20 62 6f 6f 6c 65 61 6e 20 6d 61 73 6b 5f 73 75 63 63 65 73 3b 0a 20 20 20 20 20 20 20 20 ┆ boolean mask_succes; ┆ 0x22ea0…22ec0 6c 6f 6e 67 20 6d 61 73 6b 5f 6e 61 6d 65 2c 6d 61 73 6b 5f 6e 75 6d 62 65 72 3b 0a 20 20 20 20 ┆long mask_name,mask_number; ┆ 0x22ec0…22ee0 20 20 20 20 6f 70 65 72 61 6e 64 28 31 29 20 3a 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 69 ┆ operand(1) := 0; i┆ 0x22ee0…22f00 66 20 6e 65 78 74 31 20 3c 3e 20 75 6e 6b 6e 6f 77 6e 5f 6e 61 6d 65 5f 63 6c 61 73 73 20 74 68 ┆f next1 <> unknown_name_class th┆ 0x22f00…22f20 65 6e 0a 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 6c 6f 6e 67 20 3c 3a 20 64 69 72 65 63 ┆en error(long <: direc┆ 0x22f20…22f40 74 69 76 65 20 32 3a 3e 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a 20 20 20 ┆tive 2:>,line_no,element_no) ┆ 0x22f40…22f60 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 65 78 74 32 20 3c ┆ else if next2 <┆ 0x22f60…22f80 3e 20 63 6f 6d 6d 61 5f 63 6c 61 73 73 20 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 65 72 ┆> comma_class then er┆ 0x22f80…22fa0 72 6f 72 28 6c 6f 6e 67 20 3c 3a 64 69 72 65 63 74 69 76 65 20 33 3a 3e 2c 6c 69 6e 65 5f 6e 6f ┆ror(long <:directive 3:>,line_no┆ 0x22fa0…22fc0 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 ┆,element_no) else ┆ 0x22fc0…22fe0 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 6d 61 73 6b 5f 6e 61 6d ┆ begin mask_nam┆ 0x22fe0…23000 65 20 3a 3d 20 6e 61 6d 65 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 6d 61 73 6b 5f 6e 75 6d 62 ┆e := name1; mask_numb┆ 0x23000…23020 65 72 20 3a 3d 20 6e 75 6d 62 65 72 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 6d 61 73 6b 5f 73 ┆er := number1; mask_s┆ 0x23020…23040 75 63 63 65 73 20 3a 3d 20 72 65 61 64 5f 61 6e 64 5f 73 65 74 5f 62 69 74 73 28 6f 70 65 72 61 ┆ucces := read_and_set_bits(opera┆ 0x23040…23060 6e 64 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 20 2d 2c 20 6d 61 73 6b 5f 73 75 63 63 ┆nd); if -, mask_succ┆ 0x23060…23080 65 73 20 74 68 65 6e 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 6c 6f 6e 67 ┆es then error(long┆ 0x23080…230a0 20 3c 3a 64 69 72 65 63 74 69 76 65 20 34 3a 3e 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 ┆ <:directive 4:>,line_no,element┆ 0x230a0…230c0 5f 6e 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 ┆_no) else ┆ 0x230c0…230e0 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 ┆ begin name_table┆ 0x230e0…23100 28 6d 61 73 6b 5f 6e 75 6d 62 65 72 2c 30 29 20 3a 3d 20 6d 61 73 6b 5f 74 79 70 65 3b 0a 20 20 ┆(mask_number,0) := mask_type; ┆ 0x23100…23120 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 5f 74 61 62 6c 65 28 6d 61 73 6b 5f 6e 75 6d 62 65 ┆ name_table(mask_numbe┆ 0x23120…23140 72 2c 31 29 20 3a 3d 20 6d 61 73 6b 5f 6e 61 6d 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆r,1) := mask_name; ┆ 0x23140…23160 6e 61 6d 65 5f 74 61 62 6c 65 28 6d 61 73 6b 5f 6e 75 6d 62 65 72 2c 32 29 20 3a 3d 20 6f 70 65 ┆name_table(mask_number,2) := ope┆ 0x23160…23180 72 61 6e 64 28 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6f 75 74 2c ┆rand(1); write(out,┆ 0x23180…231a0 3c 3a 3c 31 30 3e 2a 2a 2a 4d 41 53 4b 20 30 3a 3a 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ┆<:<10>***MASK 0::>, ┆ 0x231a0…231c0 20 20 20 20 20 20 20 20 20 20 20 6d 61 73 6b 5f 6e 75 6d 62 65 72 2c 0a 20 20 20 20 20 20 20 20 ┆ mask_number, ┆ 0x231c0…231e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 70 65 72 61 6e 64 28 31 29 20 73 68 69 66 74 28 ┆ operand(1) shift(┆ 0x231e0…23200 2d 32 34 29 2c 0a 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 ┆-24), ┆ 0x23200…23220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 70 65 72 61 6e 64 28 31 29 20 65 78 74 72 61 ┆ operand(1) extra┆ 0x23220…23240 63 74 20 32 34 2c 0a 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 ┆ct 24, ┆ 0x23240…23260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 63 74 61 6c 28 6f 70 65 72 61 6e 64 28 31 ┆ octal(operand(1┆ 0x23260…23280 29 29 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 ┆))); end; ┆ 0x23280…232a0 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 20 ┆ end; end else ┆ 0x232a0…232c0 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 6f 72 69 67 6f 3a 3e 20 74 68 65 6e 0a ┆ if name1 = long <:origo:> then ┆ 0x232c0…232e0 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 65 78 74 31 ┆ begin if next1┆ 0x232e0…23300 20 3c 3e 20 6e 75 6d 62 65 72 5f 63 6c 61 73 73 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 ┆ <> number_class then ┆ 0x23300…23320 65 72 72 6f 72 28 6c 6f 6e 67 20 3c 3a 74 65 73 74 20 64 69 72 2e 20 34 3a 3e 2c 6c 69 6e 65 5f ┆error(long <:test dir. 4:>,line_┆ 0x23320…23340 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 ┆no,element_no) else ┆ 0x23340…23360 20 20 20 20 20 20 20 20 69 6e 73 74 72 5f 69 6e 64 65 78 20 3a 3d 20 6e 75 6d 62 65 72 31 3b 0a ┆ instr_index := number1; ┆ 0x23360…23380 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 ┆ end else ┆ 0x23380…233a0 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 6c 69 73 74 3a 3e 20 74 68 65 6e 0a 20 ┆ if name1 = long <:list:> then ┆ 0x233a0…233c0 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 31 3b 0a 20 20 ┆ begin next1; ┆ 0x233c0…233e0 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 6f 6e 3a 3e 20 6f ┆ if name1 = long <:on:> o┆ 0x233e0…23400 72 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 79 65 73 3a 3e 20 74 68 65 6e 0a 20 20 20 20 ┆r name1 = long <:yes:> then ┆ 0x23400…23420 20 20 20 20 20 20 6c 69 73 74 20 3a 3d 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 ┆ list := true els┆ 0x23420…23440 65 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 6f 66 ┆e if name1 = long <:of┆ 0x23440…23460 66 3a 3e 20 6f 72 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 6e 6f 3a 3e 20 74 68 65 6e 0a ┆f:> or name1 = long <:no:> then ┆ 0x23460…23480 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 20 3a 3d 20 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 ┆ list := false ┆ 0x23480…234a0 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 6c 6f 6e 67 20 3c 3a 74 65 ┆ else error(long <:te┆ 0x234a0…234c0 73 74 20 64 69 72 20 35 3a 3e 2c 6c 69 6e 65 5f 6e 6f 2c 65 6c 65 6d 65 6e 74 5f 6e 6f 29 0a 20 ┆st dir 5:>,line_no,element_no) ┆ 0x234c0…234e0 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 ┆ end else if name1┆ 0x234e0…23500 20 3d 20 6c 6f 6e 67 20 3c 3a 70 61 67 65 3a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 ┆ = long <:page:> then ┆ 0x23500…23520 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 69 73 74 20 74 68 65 6e 0a 20 20 20 ┆begin if list then ┆ 0x23520…23540 20 20 20 20 20 20 20 6f 75 74 63 68 61 72 28 6f 75 74 2c 31 32 29 3b 0a 20 20 20 20 20 20 20 20 ┆ outchar(out,12); ┆ 0x23540…23560 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f ┆ end else if name1 = lo┆ 0x23560…23580 6e 67 20 3c 3a 73 6b 69 70 3a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 ┆ng <:skip:> then begi┆ 0x23580…235a0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 3c 2a 20 70 72 6f 63 65 64 75 72 65 20 73 6b 69 70 20 6c ┆n <* procedure skip l┆ 0x235a0…235c0 6f 67 69 63 20 2a 3e 0a 20 20 20 20 20 20 20 20 20 20 20 64 69 72 65 63 74 69 76 65 5f 73 6b 69 ┆ogic *> directive_ski┆ 0x235c0…235e0 70 5f 75 6e 74 69 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 ┆p_until; end else ┆ 0x235e0…23600 20 20 20 20 20 69 66 20 6e 61 6d 65 31 20 3d 20 6c 6f 6e 67 20 3c 3a 6f 6e 6c 79 69 3a 3e 20 20 ┆ if name1 = long <:onlyi:> ┆ 0x23600…23620 61 64 64 20 27 6e 27 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0a 20 20 ┆add 'n' then begin ┆ 0x23620…23640 20 20 20 20 20 20 20 20 20 3c 2a 20 70 72 6f 63 65 64 75 72 65 20 73 6b 69 70 20 69 66 20 6e 6f ┆ <* procedure skip if no┆ 0x23640…23660 74 20 69 6e 20 6e 61 6d 65 64 20 6d 6f 64 65 20 2a 3e 0a 20 20 20 20 20 20 20 20 20 20 20 64 69 ┆t in named mode *> di┆ 0x23660…23680 72 65 63 74 69 76 65 5f 6f 6e 6c 79 69 6e 5f 6c 6f 67 69 63 28 74 72 75 65 29 3b 0a 20 20 20 20 ┆rective_onlyin_logic(true); ┆ 0x23680…236a0 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 31 ┆ end else if name1┆ 0x236a0…236c0 20 3d 20 6c 6f 6e 67 20 3c 3a 6e 6f 74 69 6e 3a 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 ┆ = long <:notin:> then ┆ 0x236c0…236e0 20 20 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 3c 2a 20 73 6b 69 70 20 69 66 20 6e 61 ┆ begin <* skip if na┆ 0x236e0…23700 6d 65 64 20 6d 6f 64 65 20 2a 3e 0a 20 20 20 20 20 20 20 20 20 20 20 64 69 72 65 63 74 69 76 65 ┆med mode *> directive┆