7 asm705 7 IBM 705 symbolic coding system 7 7 6 00010 0200 00020nop01000 Ochange to transfer after setup complete 1 00040set 0001 01 place to save original location 0 1 00050lod 0000 01 00060rad96030 store in higher addresses and check 1 00070unl 0000 00080rad96020 +2 1 00090unl30000 00100rad96010 +1 1 00110unl20000 1 00120lod 0000 1 00130unl 0000 01 restore location 0 00140unl96500 00150trz00280 skip if zero. 00160cmp96200 check against 2. 00170trh00230 30,000 00180tre00210 20,000 00190lod80090 01 blank 00200tr 00240 00210lod96920 01 minus 00220tr 00240 00230lod96930 01 plus 00240adm96510-00301 adjust last address 00280lod96300-00101 load record mark 00290unl80100 01 1 00300set 0004 04 00310lod96510 04 get last address 00320adm29010 04 adjust buffer pointer 00330adm29030 04 00340adm32070 04 00350adm32080 04 00360adm49030 04 00370adm49060 04 00380adm49090 04 00381adm41105 04 00382adm41320 04 00383adm41350 04 00390lod96920 01 make constants a plus 00400adm20340 01 00410adm40610 01 00420sgn00020-004 make skip into transfer 7 7 1 01000sel 0500 write login banner 01010wr 95000-029 1 01020hlt 0000 wait for operator to set things up. 1 01030set 0004 set input device 01040lod96900 card reader 1 01050sel 0911 01060trs01080 if 911 input from card reader 01070lod96910 tape unit 0 01080unl20180 01090unl20520 Set in error routine 01095unl20570 1 01100set 0001 01 load plus sign to asu 1 01110lod96920 01 01120sgn20202-004 01130adm20202-00401 turn back to nop 01150sgn40220-004 set pass 3 listings to transfer 01160sgn40260-004 01170sgn41300-004 01180sgn41330-004 01190sgn49040-004 01200sgn49070-004 01210sgn52170-004 01220sgn52200-004 01230sgn52240-004 1 01240sel 0912 check if output to printer 01250trs01400 yes go enable 1 01260sel 0913 check if output to tape 01270trs01500 yes go enable 1 01280sel 0914 check if deck to punch 01290trs01600 yes go enable 1 01300sel 0915 check if deck to tape 01310trs01700 yes go enable 01320tr 02000 on to more setup. 7 7 enable output to printer 01400adm40260-00401 01410adm41330-00401 01420adm52170-00401 01430tr 01260 7 7 enable output to tape 01500adm40220-00401 01510adm41300-00401 01520adm52200-00401 01530sgn52240-00401 01540tr 01280 7 7 enable deck to punch 01600adm49040-00401 01610tr 01300 7 7 enable deck to tape 01700adm49070-00401 01710tr 01320 7 7 initialize for pass1 1 02000set 0001 10 set asu 10 to blank 02100lod80090 10 1 02110set 0004 11 4 digit asu 1 02120set 0004 12 4 digit asu 1 02130set 0001 13 asu 13 set to minus 02140lod96930 13 1 02150set 0001 14 asu 14 set to plus 02160lod96920 14 1 02200set 0001 01 Setup some holding areas 1 02210set 0002 02 1 02220set 0003 03 1 02230set 0004 04 1 02240set 0005 05 02250unl82134 04 set transfer address to zero 1 02260sel 0202 rewind temp tape 1 02270rwd 1 02280sel 0201 rewind symbol temp tape 1 02290rwd 7 7 pass 1 7 translate opcodes 7 store symbols 7 compute location of records 7 1 20030set 0000 06 SET LOCATION COUNTER TO 5 DIGITS OF ZERO 1 20040set 0005 06 1 20050set 0005 05 place to hold 5 digits. 20080rad96100 07 LOAD 10 TO 07 1 20090set 0004 07 SET TO 4 DIGITS 1 20100set 0004 08 TEMP REGISTER 1 20110set 0010 09 Count register for symbol tmt 20130lod96520 04 PLACE TO SAVE NEXT SYMBOL 20140unl28080 04 SAVE IN STORAGE 20142lod96560 07 initialize origin table pointer 20145unl27340 07 1 20150set 0000 set number of symbols to zero 1 20160set 0004 20170st 99980 1 20180sel read next record 20190rd 97000 20200tra20500 20202nop20210 1 20203set 0006 20204lod97100 Copy identifier to card label 20206unl80030 20207sgn20202-004 convert to tr 1 20210set 0012 BLANK REST OF LINE 20220lod80090 20230unl97140 20240unl97120 06 PUT CURRENT LOCATION IN RECORD 1 20250set 0001 20260lod97000 20270cmp80090 CHECK IF BLANK TYPE 20280tre21000 20290cmp96230 CHECK IF OVER 7 20300trh20440 20310mpy96050 MULTIPLY BY 5 20320add20340 PUT INTO SWITCH ADDRESS 20330unl20350 20340nop20360 20350tr 20360 computed go to 20360tr 21000 0 20370tr 22000 1 20380tr 26000 2 20390tr 24000 3 20400tr 20440 4 20410tr 26000 5 20420tr 27000 6 20430tr 28000 7 20440lod96440 01 Set error to I 20450unl97110 01 20460tr 28000 7 7 process error during read 1 20500sel 0902 PROCESS READ ERROR 20510trs20540 1 20520sel 20530trs20555 END PASS 1 20540cmp96010 08 Check if input from tape 20550tre20570 20555adm29620-00414 make write symbol table nop 20560tr 29500 nope, end of pass 1 20570sel read error, try and back up. 1 20580bsp 20590tr 20190 7 7 handle class 0/blank lines 21000lod96410 01 set undefind symbol 21010unl97110 01 21020tr 22010 7 7 common code for class 0/blank/1 lines 7 7 make sure location at 0/5 boundry 22000lod97040 05 Copy address to computed address 22005unl97130 05 22010lod97120 01 check to be on 0/5 boundry. 22015trz22110 01 22020sub96050 01 check if over. 22030trz22110 01 at 5 22040trp22050 01 over 5, adjust 22045add96050 01 revers digit. 22050st 96950 01 save 22055rad96050 5 - location 22060sub96950 22070st 96950 22080add96950 06 advance to boundry. 22090unl97120 06 save. 22110add96050 06 ADVANCE TO NEXT LOCATION 22120rad96110 Set count 22130st 96980 22140sgn96990 01 force length sign positive 22170adm96990 14 22180lod96530 07 load first item location 22190sub96990 07 back up to one before 7 DO BINARY SEARCH FOR OPCODE 22200rad96980 load number of items in table 22210cmp96260 compare to 01 22220trh22240 22224lod96420 01 set error to O 22225unl97110 01 22230tr 28000 item not found 22240mpy96050 divide by 2 1 22250rnd 0001 round 22260st 96980 save back 22270mpy96990 times length 22280st 96950 adjust location 22290add96950 07 load address 22300cmp96530 07 check low address 22310trh22360 go check against high address 22320tre22390 go check value 22330sgn96990 strip sign, set plus 22340adm96990 14 22350tr 22200 recacluate 22360cmp96540 07 check high address 22370trh22450 over limit 22380unl22410 07 store address 1 22390set 0003 set length to 2 22400lod97030 load data 1 22410cmp check against key 22420tre22500 matched, done 22430trh22330 over set to backward 7 under set to forward 22450sgn96990 change sign of length to minus 22460adm96990 13 set sign 22470tr 22200 go recalculate 7 7 found match, copy data 22500sub96030 07 back up 3 22510unl22520 07 load data for instruction 1 22520lod get control character. 22530unl96950 save in temp. 1 22540shr 0001 get rid of opcode 22550lod96950 01 load opcode 22560unl97140 01 save in opcode digit. 7 if no asu data, finished 22570cmp80090 if asu blank, done 22580tre28000 7 check for control instruction 22590lod97030 03 Load operation 22600cmp96250 01 Check if control operation 22610tre22680 yes, address encode. 7 check for sbn 22620cmp88400 03 22630tre22660 7 not control, unload into asu 22640unl97070 save in asu field. 22650tr 28000 7 sbn, add asu to value given 22660adm97070 increment asu code. 22670tr 28000 7 control instruction, data to address 22680lod97000 01 class of line 22690cmp96220 01 check if static opcode 22700tre22730 22710lod96440 01 set error. 22720tr 24020 go set it 1 22730set 0004 make valid address 22740lod97130 07 check if already set. 22750cmp80090 07 22760tre22810 if blanks, then copy 22770cmp97040 no, verify correct 22780tre22830 22790lod96400 01 Set A error 22800tr 24020 use what we were given 22810unl97130 save in address field. 22820unl97130-00410 put blank in last top of caddr. 22830cmp88050 03 check if bsf 22840tre22860 22850tr 28000 22860rad96010 set ASU to 01 1 22870set 0002 22880unl97070 22890tr 28000 7 7 handle class 3 24000lod96410 01 FLAG TO LOOKUP SYMBOL NEXT PASS 24010add96040 06 ADD 4 TO LOCATION 24020unl97110 01 set error 24030tr 28000 7 7 handle class 2 and 5 1 26000set 0002 26010lod97070 load ASU code 26020trz26280 if zero, 0/5 boundry. 26030cmp80090 check if empty. 26040tre26380 26050add96970 clear zones 26060cmp96250 compare against 4 26070trh26090 over, do by division 26080tr 26500 26090ntr26100 26100st 96950 1 26110set 0005 set back to 5 26120lod97120 load in location 1 26130set 0006 set back to 6 26140div96950 compute remainder 1 26150shr 0127 get to remainder. 1 26200set 0002 26205trz26270 zero aligned. 26210st 96950 save it 26220lod97070 26230sub96950 26240st 96950 26250add96950 06 adjust it. 26260unl97120 06 26270tr 26380 26280lod97120 01 load address 26290trz26380 01 check address 26300sub96050 01 check against 5 26310trz26380 01 26320trp26340 01 26330add96050 01 adjust it. 26340st 96950 01 26350rad96050 26370tr 26230 26380lod97010 03 LOAD LINE LENGTH 26390st 96950 03 SAVE FOR LATER 26400add96950 06 ADD TO LOCATION 26410TR 28000 26500rad96050 work by 5. 26510st 96950 1 26520set 0005 set back to 5 26530lod97120 load in location 1 26546set 0006 set back to 6 26550div96950 compute remainder 1 26560shr 0127 get to remainder. 1 26570set 0001 26580tr 26210 7 7 handle class 6 27000lod97070 01 check asu flag 27010cmp80090 01 check if blank 27020tre27180 Non blank asu means address is not numeric 27030lod27340 07 set asu 7 to origin table 1 27050set 0005 Length of compare to 5 digits 27060lod97040 27070add96100 07 Advance to next entry 27080cmp96560 07 Check if over top of table 27090tre27420 Did not find entry. 27100unl27110 07 Set location for compare 1 27110cmp Check if match 27120tre27140 found label 27130tr 27070 Nope, go check next one. 27140sub96050 07 Match found, back up to location 27150unl27160 1 27160lod 27165unl96950 save to temp 27170tr 27230 27180lod97040 05 COPY ADDRESS TO LOCATION 27200cmp80090 05 check if empty address 27210tre27260 no location change 27220unl96950 05 Copy to location counter 1 27230set 0005 06 27240lod96950 06 27250add96940 06 clear zones 27260unl97120 06 SET LOCATION TO CURRENT 27280lod97020 05 LOAD IN LABEL FIELD 27290cmp80090 05 check if empty 27300tre29000 SKIP IF BLANK OR 0 27305add96940 05 clear zones 27310unl97980 05 27320unl97980-00506 1 27340rcv top of origin table. 27350tmt97980-00909 27360lod27340 07 back up origin lable 27370cmp96550 07 Check if at beginning. 27380tre27420 Yes, flag line with error. 27390sub96100 07 back up 10. 27400unl27340 07 Save back in origin pointer 27410tr 28080 finish line 27420lod96420 01 27430unl97110 01 set error code to O 27440tr 28080 7 7 finished, also class 7 lines 28000lod97020 05 LOAD IN LABEL FIELD 28020cmp80090 05 check if empty 28030tre29000 SKIP IF BLANK OR 0 28040add96940 05 clear zones 28050unl97980 05 set label field 28055sub96010 06 back up to end of field. 28060unl97980-00506 28070add96010 06 fix up 1 28080rcv copy to next symbol entry 28090tmt97980-00909 28100rad96010 load 1 1 28110set 0003 28120adm28080-001 advance to next symbol 1 28130set 0004 28140adm99980 advance counter 28160lod28080 04 CHECK IF OVER 28170cmp96510 04 28180tre29510 7 7 copy temp record to end of memory and dump 1 29000set 0092 29005lod97140 1 29010unl 0197 1 29020sel 0202 write built record to temp 1 29030dmp 0106 29040tr 20180 29500lod28080 04 point to end of symbol table 29510unl29540 04 1 29520set 0001 put in group mark 29530lod95001 1 29540unl 1 29550sel 0201 write symbol table to symbol tape 29560wr 99980-004 1 29570set 0000 reset number to zero. 1 29580set 0004 29590st 99980 29600lod99980 reset next entry to first. 29610unl28080 29620tr 29000 7 7 pass 1 over, set up to start pass 2 30000sgn29620-004 fix back to transfer 1 30020wtm put tape mark to find end of table 1 30030rwd rewind symbol table table 1 30040sel 0202 1 30050wtm put tape mark on end of temp tape. 1 30060rwd 1 30065sel 0203 1 30068rwd 30070lod30040 04 Copy temp file 1 to pass2 30090unl32000 04 202 30100add96010 04 Adjust for unit of temp file 2 30110unl32060 04 203 30120tr 31000 1 30130sel 0902 PROCESS READ ERROR pass 2 30140trs30170 1 30150sel 0201 30160trs40000 1 30170sel 0201 1 30180bsp 7 7 pass 2, resolve symbolic locations 1 31000sel 0201 read in symbol table block 31010rd 99980-004 31020tra30130 check error 31030lod31040 12 load return location 31040nop31320 31080rad96100 06 set asu 6 to const 10 1 31090set 0004 06 31120rad99980 load length 31130st 96950 save length 31140rad96950 get size 31150cmp96260 check if done 31160tre31700 done sorting. 31170mpy96050 divide by 2 1 31180rnd 0001 31190st 96950 1 31200lng 0001 times 10. 1 31205set 0005 5 digits. 31210st 96960 store in temp 31220sgn31630-004 make alldone a nop 31230adm31630-00414 31240rad99980 09 load length 31250sub96950 09 subtract jump 31255sub96010 09 subtract 1 1 31260set 0004 31270lod96520 load base of symbol table 31275add96090 advance to start of first symbol 31280unl31430 31290add96960 add jump times 10 31300tr 60000 convert to address 31320unl31420 save other 1 31410set 0005 set to 5 digits. 1 31420lod load symbol row[n] 1 31430cmp compare value. row[m] 31440trh31590 Ok, no exchange needed. 31445tre31590 skip if equal 1 31450set 0010 31460lod31420 04 row[n] to temp 31470unl31520 04 31480unl31550 04 31490lod31430 04 row[m] to row[n] 31500unl31540 04 31510unl31570 04 1 31520lod row[n] 31530unl97980 temp 1 31540lod row[m] 1 31550unl row[n] 31560lod97980 temp 1 31570unl row[m] 31580sgn31630-004 make transfer. 31590adm31420 06 advance 31600adm31430 06 31610sub96010 09 decrement count 31620trp31410 09 loop until minus 31630tr 31220 all done 31640tr 31140 31700rad99980 load length 1 31710lng 0001 time 10 1 31750set 0005 31720st 96950 31740lod96520 31760adm96950 add into length 31770sgn96950 strip sign 7 7 resolve as many symbols as possible in this pass 1 32000sel pass2 32010rd 97000 read into line 32020tra32100 32030lod97110 01 32040cmp96410 01 check if undefined symbol 32050tre33000 go try and lookup symbol 1 32060sel write to second temp tape 1 32062set 0092 32065lod97140 copy record to output 1 32070unl 0197 1 32080dmp 0106 32090tr 32000 7 process errors 32100lod32000 04 32110unl32150 04 32120unl32170 04 1 32130sel 0902 PROCESS READ ERROR 32140trs32170 Error, back up and try again 1 32150sel Check if end of file 32160trs32200 1 32170sel 1 32180bsp try again if error 32190tr 32000 7 rewind and switch units. 32200lod32060 12 End of file, reverse read and write units 32210unl32250 04 32220unl32060 04 32230unl32280 12 32240unl32000 12 1 32250sel Put tape mark at end to write unit 1 32260wtm 1 32270rwd And rewind 1 32280sel 1 32290rwd Rewind read unit. 32310tr 31000 Go read in next symbol block 7 7 Look up operand in symbol table. 33000rad99980 Set count 33010st 96992 33015lod33020 12 load return location 33020nop33310 33060rad96100 set length to +10 33070st 96995 1 33080set 0005 Make 5 digits. 33090lod96520 load first item location 33092sub96010 back up one location 33095st 96960 33110rad96992 load number of items in table 33120cmp96260 compare to 1 33130trh33150 33140tr 32060 item not found 33150mpy96050 divide by 2 1 33160rnd 0001 round 33170st 96992 save back 33180mpy96995 times length 1 33185set 0005 set lenght to 5 33190adm96960 adjust location 33200rad96960 load address 33210cmp96520 check low address 33220trh33280 go check against high address 33230tre33300 go check value 33240rad96100 strip sign, set plus 33260st 96995 33270tr 33110 recacluate 33280cmp96950 check high address 33290trh33370 over limit 33300tr 60000 convert to address 33310unl33330 store address 1 33320set 0005 set length to 5 33325lod97040 load operand 1 33330cmp check against key 33340trh33240 over set to forward 33350tre33400 matched, done 33360tr 33370 under set to backward 33370rsu96100 change sign of lenght to minus 33380st 96995 set sign 33390tr 33110 go recalculate 33400lod33330 04 33420unl33430 04 33424lod96270 04 load -5 33410adm33430 04 back up 5 location 1 33430lod 33440unl97130 save in addr 33460unl97110 10 Blank out error code. 33470tr 32060 7 7 7 pass 3, generate listing and object deck 1 40000rwd 1 40010set 0080 Copy loader card to output buffer 40015lod81079 40020unl97840 40025rad96010 load +1 1 40030set 0003 40035unl96570 set card counter to 1. 1 40040set 0000 set output location to 99999 1 40045set 0005 40050sub96010 40055st 96960 1 40125set 0002 07 asu 07 holds line counter 40130lod96330 07 set line count max 40140lod32000 04 Load last temp file tape number 40150unl40160 04 1 40160sel 40170rd 97000 40180tra41400 40190cmp96330 07 40200tre40220 40210tr 40310 40220tr 40260 1 40230sel 0205 40240wr 80000-039 40250wr 80050-039 40251wr 80040 40260tr 40300 1 40270sel 0400 40280wr 80000-039 40290wr 80050-039 40291wr 80040 1 40300set 0000 07 clear asu 07 1 40305set 0002 07 40310add96010 07 advance line count 40320lod45040 04 set output start to data 40325unl48220 04 set data pointer. 40330rcv97500+004 blank output record 40340tmt80080-035 7 40350lod97000 01 Copy line class 40360unl97500 01 40382lod97110 01 copy error code 40385unl97620 01 error 40370lod97080 01 Copy sign field. 40380unl97610 01 40390lod97070 02 Copy ASU 40400unl97560 02 1 40410set 0003 09 40420lod97010 09 Copy length field 40430unl97510 09 40435add96975 09 strip zones 40440lod97030 03 Copy opcode 40450unl97530 03 40460lod97060 04 Copy increment 40470unl97550 04 40480lod97020 05 Format label 40485cmp80090 05 check if blank 40486tre40492 40490spr97520 05 40491tr 40495 40492unl97520-00105 1 40495set 0050 40500lod97090 Copy data 40505unl97630 40510lod97120 05 load location to asu 05 1 40512set 0005 06 load operand field 40515lod97040 06 1 40520set 0001 40530lod97500 40540cmp80090 CHECK IF BLANK TYPE 40550tre45000 40560cmp96230 CHECK IF OVER 7 40570trh40700 40580mpy96050 MULTIPLY BY 5 40590add40610 PUT INTO SWITCH ADDRESS 40600unl40620 40610nop40630 40620tr 40630 computed go to 40630tr 45000 class 0 40640tr 44000 class 1 40650tr 46000 class 2 40660tr 43000 class 3 40670tr 40700 class 4 40680tr 41900 class 5 40690tr 42000 class 6 7 7 class 7 40700unl97540-00106 Put operand unformated to field 40710tr 41102 7 7 Convert all gm/rm to printable characters 7 40900rad96950 Compare current location to new one. 41100nop41102 skip save if 6 41101sub96010 05 back up one 41102unl97570 05 save it 1 41103set 0120 set to copy record 41104lod97640 load line 1 41105unl 0198 41106adm41100 14 reset 7 41110lod40360 04 Load pointer to first output location 7 41115rad96120 01 number of location to scan 7 41120set 0001 one digit at a time 7 41130unl41140 04 7 41140lod 7 41150cmp96310-001 Convert to gm. 7 41160tre41220 7 41170cmp96300-001 Convert to rm 7 41180tre41200 7 41190tr 41250 7 41200lod96300 7 41210tr 41230 7 41220lod96310 7 41230unl41240 04 7 41240unl Save it back 7 41250add96010 04 next location 7 41260sub96010 01 7 41270trp41130 01 done. 7 41280set 0000 01 clear sign flag 7 41290set 0001 01 fix back to on digit 7 7 Done with record, do listing 41300tr 41330 Switch, nop to list on tape 1 41310sel 0205 Write line to tape 7 41314wr 97500 1 41320dmp 0080 41330tr 41360 Switch, nop to print on printer 1 41340sel 0400 7 41345wr 97500 1 41350dmp 0080 41360tr 40160 7 41400lod40160 04 Adjust error routine. 41410unl41450 04 41420unl41470 04 1 41430sel 0902 PROCESS READ ERROR 41440trs41470 1 41450sel Check for end of file 41460trs41500 1 41470sel Back up and try again 1 41480bsp 41490tr 40160 7 flush any remaing data records. 41500adm49310-00414 First dump transfer to nop 41510adm49320-00414 Second dump transfer to nop 41520tr 49000 dump record 7 7 Class 5 data block 41900st 96950 09 save length 41910unl97540-00106 unload label 41920add96950 05 add in length 41930sub96010 05 back up one location 41940rad96000 09 set length to zero 41950tr 49000 7 7 Class 6 set origin. 42000st 96960 05 save new location 42010rad96000 09 set length to zero 42020sgn41100 skip saving of address 42030cmp80090 02 check if asu blank 42040tre42070 42050spr97540 06 Put label formated to field 42060tr 49000 Finish with record. 42070unl97540-00106 put label directly into field. 42080tr 49000 7 7 Class 3 computed address 43000spr97540 06 Print as label into operand field 43010lod96260 04 0001 43030adm48220 04 advance to next output char 43040rad96040 09 and length to 4. 43050tr 45050 Go modify final address 7 7 Class 1, fixed address 44000unl97540-00106 Store label directly. 44030tr 45010 7 7 Blank and Class 0, label 45000spr97540 06 Put label formated to field 45010rad96050 09 Force length to 5 45020lod97140 01 Copy operation code 45030unl97580 01 45040unl97090-04901 Save as first output data 45050lod97130 06 Load computed address 45060unl97590 06 put in place 45070lod97060 03 clear zones in increment 45080add96975 03 set sign on increment 45090trz45175 03 if value zero, skip adjust 45100unl96950 03 Save in temp 45110unl96950-00310 set end of field. 45120sgn97050 grab sign 45130adm96950 set sign 45140adm97590 14 make address a number. 45150rad96950 Adjust address. 1 45155set 0005 set to 5 digits. 45160adm97590 do adjust 45170sgn97590 clear sign 1 45175set 0005 set to 5 digits. 45180lod97590 load final address 45185lod45200 12 convert to address 45190tr 60000 45200nop45210 return location 45210unl97600 save in place 45230add96970 02 clear of asu zones 45240trz45400 02 done with check 45250cmp96220 02 check if over 11 45260trh45500 45270cmp96230 02 check if over 07 42280trh45530 45290cmp96250 02 check if over 03 45300trh45560 over 3 45310trz45400 02 if zero, done 45320cmp96200 02 check against 02 45330trh45390 over must be 3 45340tre45370 equals to 2. 45350adm97600-00110 1. A bit 45360tr 45400 45370adm97600-00113 2 add in bit B 45380tr 45400 45390adm97600-00114 3 add in bits A+B 45400lod97080 01 load sign digit 45405cmp96440 01 check if indirect 45410tre45430 45415cmp96420 01 o in sign flag sets origin. 45420tre45700 45425tr 45470 45430sgn97600 01 check if B bit set. 45440trp45460 01 no, just add it in. 45450adm97600 14 yes, add A and B bit 45454tr 45470 45460adm97600 10 set indirect bit. 45470lod97600 04 Copy address to data 45480unl97090-04504 Save into data 45490tr 46000 Set location to listing 45500adm97600-00214 12-15 set bits A+B 45510sub96130 02 subtract 12 45520tr 45310 45530adm97600-00213 08-11 set bit B 45540sub96080 02 subtract 08 45550tr 45310 45560adm97600-00210 04-07 set bit A 45570sub96040 02 subtract 04 45580tr 45310 45700st 96950 05 Compare current location to new one. 45710rad96950 load 45720add96040 add 4 to point to correct address 45730lod45750 12 45740tr 60000 convert to address. 45750nop45760 45760unl82134 set transfer address to location 45770tr 45470 7 7 Class 2 data record. 46000unl97540-00106 Store label directly. 46010cmp80090 01 46020tre48000 46030cmp96320 09 check if over size 46040trh48000 46050st 96950 09 46060lod48220 04 Load address of data 46070add96950 04 Adjust location 46080sub96010 04 back up one location 46090unl46110 04 location to modify 46100sgn97080 Get sign 1 46110adm Adjust 7 7 put data into current card image 48000sub96010 09 adjust length 48010trp48020 09 anything left 48015sgn48015 01 force plus. 48020tr 41100 no, go process next record. 48030st 96950 05 Compare current location to new one. 48035lod48510 04 load address of buffer 48036unl48290 04 where do put digit. 48037lod97830 02 check count 48038trz48400 02 48040rad96950 48050sub96960 Check if new before current. 48060trp48080 48065add96010 09 back up one space 48070tr 49000 Moving backwards, dump current. 1 48080set 0004 set length 4 48090cmp96340 Compare if over limit. 48100trh48065 Yes, dump 48110adm48290 add where it goes. 1 48115set 0002 scale back 48117add96010 plus one 48120cmp97830 check if bigger 48130trh48300 Set new length if bigger then current 1 48220lod load next digit. 48230add96010 05 advance to next location 48240lod48220 04 check if over limit 48250cmp48500 04 48260tre48520 convert to blank 48270lod96260 04 load 0001 48280adm48220 04 advance by 1 1 48290unl save in output 48295tr 48000 Still more continue 48300unl97830 set new length 48310tr 48220 48400adm49310-00414 make tr a nop 48410tr 49170 set new address 48450sgn49310-004 fix back 48160rad96970 Set to 00 48460tr 48117 48500nop97100 01 last address 48510nop97840-06401 Address of data area 48520lod80090 load a blank 48530tr 48295 7 7 Dump card record to output units 49000lod97830 02 check length. 49010trz49170 02 1 49020set 0080 49025lod97840 1 49030unl 0198 where to put result 49040tr 49070 Set to nop to dump to punch 1 49050sel 0300 card punch 1 49060dmp 0119 49070tr 49095 Set to nop to dump to tape 1 49080sel 0204 tape unit 4 1 49090dmp 0119 49095nop52000 7 reset output record. 1 49100set 0040 49105lod80090 copy 40 blanks 49110unl97840-025 1 49115set 0025 49116unl97840 1 49117set 0006 49118lod80030 copy label 49119unl97800 49120lod96570 03 advance card count. 49130unl97810 03 save to new image 49140add96010 03 +1 1 49150set 0003 03 3 digits. 49155unl96570 03 save back 49160rad96970 Set to 00 49165unl97830 set length to 0. 49170st 96960 05 set new output location 49180rad96960 get location 49200lod49220 12 convert to address 49210tr 60000 49220nop49230 49230unl97820 49310tr 48000 Continue with dumping record. 49320tr 48450 7 50000sgn49095-004 make nop a jump 50010lod80090 04 set location to blank 50020unl97820 04 50030lod96290 03 set counter 999 50040unl97810 03 1 50050set 0040 50060lod82134 50070unl97840-025 50080tr 49020 Continue with dumping record. 7 7 add in code to dump last loader card. 52000sgn49310-004 reset to jump 52010sgn49320-004 reset to jump 52020adm49095-00414 Second transfer to nop 52030lod49070-00401 copy tr/nop to tape mark write 52040cmp96220 01 compare to 1 52050tre52140 equal, skip 1 52080wtm 7 7 Print until end of page. 52140cmp96330 07 52150trh52240 Over, done 52160add96010 07 52170tr 52200 switch, nop to list on tape 1 52180sel 0205 write line to tape 52190wr 80040 52200tr 52230 switch, nop to print on printer 1 52210sel 0400 52220wr 80040 52230tr 52140 52240tr 52270 1 52250sel 0205 Write line to tape 1 52260wtm 52270tr 00020 7 7 routine to convert 5 digit address in 7 asu 0 to 4 digit address in asu 0 7 return location in asu 12 7 asu 10 set to blank 7 asu 13 set to minus 7 asu 14 set to plus 60000unl60160 12 set return location 60010unl97970 unload to temp 1 60020shr 0004 grab high order digit. 60025add96000 clear zone 60030trz60140 If zero, finished. 60040cmp96250 check if over 40,000 60050trh60170 Yes, go adjust lower digit. 60060tre60110 If 30,000 add in 3 bits. 60070cmp96220 Check against 10,000 60080trh60130 Must be 20,000 60090adm97970-00310 10,000 add in bit A 60100tr 60140 60110adm97970-00314 30,000 add in bits A+B 60120tr 60140 60130adm97970-00313 20,000 add in bit B 1 60140set 0004 load final value 60150lod97970 1 60160tr return to main 60170adm97970 13 set b bit. 60180sub96040 decrement count 60190tr 60030 7 7 FIRST HEADING LINE 204080000 C LNG SYMBOLIC INCR 204080010 ACTUAL S DATA OR DESCRIPT 203480020 ION 200680030 label 200180040 | 7 7 SECOND HEADING LINE 204080050 L LOC OP ADDR ASU LOC 204080060 OP ADDR ADDR N 204080065 200180070 | 7 7 EMPTY LINE 204080080 00 . . . . 204080090 200580100 | 7 7 Loader card 1 81004SEL 0100 20100 1 81009NOP 0018 A0018 1 81014SET 0002 06 B0 -2 1 81019SET 0004 07 B0 +4 1 81024RD 0080 Y0080 1 81029TRA 0079 I0079 1 81034LOD 0094 06 80 R4 1 81039TRZ 0099 06 N0 R9 1 81044UNL 0059 06 70 N9 1 81049RCV 0061 U0061 1 81054TMT 0089 07 90 9 1 81059SET 0000 08 B0-00 1 81064RCV 0000 U0000 1 81069TMT 0095 08 90-95 1 81074TR 0004 10004 1 81079HLT 0100 J1000 7 7 transfer card 1 82099set 0001 01 set asu to usefull length 1 82104set 0002 02 1 82109set 0003 03 1 82114set 0004 04 1 82119set 0005 05 1 82124set 0010 13 1 82129set 0004 14 1 82134tr 0000 7 7 OPCODES 7 2 numeric modifier 7 1 letter opcode 7 3 letter name 7 200688000 'AAM add addr to mem 200688010 GADD add 200688020 6ADM add mem 200688030 $BLM blank mem 200688040 183BPC Bypass 200688050 043BSF backspace file set ASU01 200688060 043BSP backspace 200688090 4CMP compare 200688100 WDIV divide 200688120 01RDMP dump 200688130 01YFSP forward space 200688140 JHLT halt 200688150 =LDA load addr 200688160 DLNG lengthen 200688170 8LOD load 200688180 003IOF indicator off 200688190 033ION indicator on 200688200 VMPY multiply 200688220 ANOP no operation 200688230 XNTR normalize transfer 200688240 153PRW prep to read while writing 200688250 293PTW print tape write 200688260 HRAD reset and add 200688270 URCV recieve 200688280 YRD read 200688290 02YRMA read mem address 200688300 ERND round 200688310 283RST reset counter 200688320 QRSU reset and subtrack 200688330 163RTS read tape to trc 200688340 023RWD rewind 200688350 263RWS read write start 200688360 273RWT read write tape 200688370 SRWW read while writing 200688380 %SB set bit 200688390 07%SBA set bit alt 200688400 08%SBN set bit 1 + ASU <<< 200688410 08%SBR set bit redundant 200688420 %SBZ set bit 0 200688430 2SEL select 200688440 BSET set left 200688450 TSGN sign 200688460 CSHR shorten 200688470 093SKP skip 200688480 /SND send 200688490 5SPR store for print 200688500 02RSRC set record counter 200688510 FST store 200688520 PSUB subtract 200688530 053SUP supress 200688540 01ITAA tr alt sw A on (0911) 200688550 02ITAB tr alt sw B on (0912) 200688560 03ITAC tr alt sw C on (0913) 200688570 04ITAD tr alt sw D on (0914) 200688580 05ITAE tr alt sw E on (0915) 200688590 06ITAF tr alt sw F on (0916) 200688600 13OTEC tr echo check 200688610 10OTIC tr instr check 200688620 11OTMC tr machine check 200688630 9TMT transmit 200688640 1TR transfer 200688650 ITRA transfer any 200688660 LTRE tr equal 200688670 12OTRG tr rd wr check 200688680 KTRH tr high 200688690 MTRP tr positive 200688700 01OTRR tr ready 200688710 OTRS tr signal 200688720 NTRZ tr zero 200688730 03OTSA tr sync any 200688740 15OTSC tr sign check 200688750 011TSL tr store location 200688760 02OTTC tr transmit check 200688770 .TZB tr 0 bit 200688780 *ULA unload address 200688790 7UNL unload 200688800 RWR write 200688810 ZWRE write erase 200688820 173WST Write trc to tape 200688830 013WTM write tape mark 7 7 203095000 IBM 705 SYMBOLIC CODER READY 200195001 | 7 general constants 7 signed constants 200196000 +0 200196010 +1 200196020 +2 200196030 +3 200196040 +4 200196050 +5 200196080 +8 200196090 +9 200296100 +10 200296110 +79 number of entries in opcode table 200396120 +109 length of print line 200296130 +12 7 7 unsigned constants 200296200 02 200296220 11 200296230 07 200196240 5 200296250 03 200596260 00001 200496270 I995 200396290 999 last card number 7 7 other constants 200296300 #= record mark and translation 200296310 |) group mark and translation 200396320 050 max data area length 200296330 67 lines per page 200496340 0064 max digits per output record minus 1. 7 7 error codes. 200196400 a address error 200196410 u undefined symbol 200196420 o undefined operation 200196430 l length error 200196440 i indirect indicator 7 7 variables 200196500 0 memory size 200496510 9800 symbol table max 200199515 0 3 96520 99980+001 symbol table start 3 96530 88000 first item 3 96540 88830 last item 3 96550 99910-100 start of origin table 3 96560 99910-010 end of origin table 200396570 001 Card count 7 200496900 0100 card reader input 200496910 0200 tape input device 200196920 + plus sign 200196930 - minus sign. 200596940 +00000 zero address to clear zones 200596950 +00000 temp location 200596960 +00000 output location 200296970 +00 zone strip for asu 200296975 +000 zone strip for increment 200296980 +79 number of items in table plus one 200296990 +06 length of items 200596992 +00000 hold length of symbol table 200296995 +10 length of symbol table entry 7 7 7 input and temporary line structure. 7 500197000 00 Class of line 500397010 length of line 500597020 label for line 500397030 op 500597040 address or label 500197050 increment sign 500397060 increment 500297070 asu 500197080 sign of data 505097090 data or comment for line 500697100 identifier. 7 7 extended record information 500197110 error code 500597120 location 500597130 computed address 500197140 opcode 7 7 output record 7 500197500 00 class of line 500197501 blank 500397510 length of line 500197511 blank 500897520 label plus blank 500397530 op field 500197531 blank 500897540 address field and blank 500497550 increment field. 500197551 blank 500297560 asu 500297561 blank 500597570 location 500197571 blank 500197580 opcode 500197581 blank 500597590 computed address 500197591 blank 500497600 actual address 500197601 blank 500197610 sign 500197611 blank 500197620 error 500297621 blank 505097630 data 201097640 7 7 deck output record 500697800 00 card label 500397810 card number 500497820 location 500297830 length 506597840 data 7 7 500597970 temp location 501097980 00 symbol table temp location 7 7 Origin table. 510099910 00 Place for 10 origin statements. 7 symbol table start 500599980 10 number of items 501099990 first table item 7