13 22FL #LIS K0SAVEDA>K0SAVE>K0COMMAND>K0ALLGEO 15 22_= #SEG SAVEDA70 [RUTH PORTER 7 23DW 8HSAVEDA 4 23YG # 18 24D6 # THIS SEGMENT COMPLETES THE SAVE COMMAND FOR DA FILES 4 24XQ # 19 25CB SEGENTRY K1SAVEDA,XK1 [ENTRY FROM SAVE 4 25X2 # 4 26BL # 15 26W= # THIS SUBROUTINE FORMS ORGANISATIONAL RECORD 4 27*W ORGR 18 27TG MHUNTW 1,ADATA,CSTORE [FIND POSITION FOR NEXT 7 28*6 LDN 0 5 17 28SQ LDN 3 A1(1) [ORGANISATIONAL ENTRY 8 29#B ADX 3 0(3) 8 29S2 ADS 0 A1(1) 8 2=?L SMO FX1 17 2=R= LDX 0 TYPE5 [SPECIFICATION WORD 8 2?=W STO 0 0(3) 17 2?QG LDX 0 AWORK3(2) [DESTINATION IN CORE 8 2#=6 STO 0 1(3) 16 2#PQ STO 7 2(3) [RECORD LENGTH 14 2*9B NGS 6 3(3) [CHECKSUM 16 2*P2 LDX 0 AWORK4(2) [BUCKET ADDRESS 9 2B8L SBX 0 A1+2(1) 8 2BN= STO 0 4(3) 9 2C7W #SKI K6SAVEDA>199-199 10 2CMG TRACE 4(3),SVORGBUC 16 2D76 LDN 6 0 [RESET CHECKSUM 17 2DLQ LDN 7 0 [AND RECORD LENGTH 7 2F6B EXIT 4 0 19 2FL2 WRITB [WRITE TO BUCKET SPECIFIED 14 2G5L SBX 4 FX1 [IN X3 8 2GK= WRITED 3,1 11 2H4W TESTRPN2 OVERFILE,SPACE 9 2HJG GEOERR 1,SVFULL 5 2J46 SPACE 11 2JHQ SETNCORE 128,1,FILE,FRWB 8 2K3B ADX 4 FX1 7 2KH2 EXIT 4 0 19 2L2L ORGB [TIDY ORGANISATIONAL BUCKET 11 2LG= MHUNTW 1,ADATA,CSTORE 19 2L_W LDN 0 1 [WHERE IS NEXT ORG BUCKET? 17 2MFG STO 0 A1+1(1) [TENTATIVELY,ADJACENT 17 2M_6 LDX 0 A1+2(1) [FIND CURRENT BUCKET 5 2NDQ #SKIP G4 7 2NYB ANDN 0 7 5 2PD2 #SKIP G3 7 2PXL ANDN 0 3 18 2QC= BNZ 0 ORGBX [J IF GROUP SUFFICES,ELSE 18 2QWW LDX 0 AWORK2(2) [FIND RELATIVE ADDRESS OF 18 2RBG SBX 0 A1+2(1) [NEXT QUARTET OR OCTET 9 2RW6 STO 0 A1+1(1) 5 2S*Q #SKIP G4 7 2STB LDN 0 8 5 2T*2 #SKIP G3 7 2TSL LDN 0 4 16 2W#= ADS 0 AWORK2(2) [NEXT FREE GROUP 5 2WRW ORGBX 18 2X?G LDX 0 A1+1(1) [ABSOLUTE BUCKET NUMBER + 18 2XR6 ADX 0 A1+2(1) [NEXT REL.=NEW ABSOLUTE 9 2Y=Q STO 0 AWORK3(2) 5 2YQB ORGBY 15 2_=2 LDX 2 A1(1) [DATA LENGTH 7 2_PL SBN 2 3 17 329= LDN 3 A1+3(1) [FIRST USEFUL WORD 14 32NW SUM 2 0(2) [CHECKSUM 15 338G LDX 3 A1+2(1) [DESTINATION 9 33N6 NGS 2 A1+2(1) 7 347Q EXIT 4 0 17 34MB NORGB [BEGIN NEW ORG BUCKET 11 3572 MHUNTW 1,ADATA,CSTORE 16 35LL LDN 0 3 [RESET POINTER 8 366= STO 0 A1(1) 9 36KW LDX 0 AWORK3(2) 16 375G STOZ A1+1(1) [NEXT REL BUCK 17 37K6 STO 0 A1+2(1) [CURRENT ORG BUCKET 7 384Q EXIT 4 0 17 38JB RENAM [SWITCH WRITE BLOCKS 11 3942 MHUNTW 1,ADATA,CSTORE 10 39HL MHUNTW 2,FILE,FRWB 11 3=3= NAME 2,ADATA,CSTORE 10 3=GW NAME 1,FILE,FRWB 8 3?2G LDX 2 FX2 7 3?G6 EXIT 4 0 5 3?_Q #SKIP G4 4 3#FB ( 4 3#_2 # 15 3*DL # ROUTINE STORES NEXT TYPE 7 RECORD FROM X6+X7 4 3*Y= # 4 3BCW SV0 8 3BXG LDX 2 FX2 8 3CC6 SBX 4 FX1 18 3CWQ LDX 0 AWORK1(2) [JUMP UNLESS FIRST ENTRY 8 3DBB BNZ 0 SV1 15 3DW2 SETNCORE 128,1,FILE,FRWB [CREATE BLOCK 8 3F*L BRN SV5 4 3FT= SV1 15 3G#W MHUNTW 1,FILE,FRWB [FIND BLOCK 9 3GSG LDX 0 AWORK3(2) 8 3H#6 SBN 0 128 15 3HRQ BZE 0 SV3 [JUMP IF FULL 4 3J?B SV2 16 3JR2 SMO AWORK3(2) [STORE NEW PAIR 8 3K=L STO 6 A1(1) 9 3KQ= SMO AWORK3(2) 9 3L9W STO 7 A1+1(1) 7 3LPG LDN 0 2 16 3M96 ADS 0 AWORK3(2) [UPDATE POINTER 17 3MNQ LDCT 0 #40 [EXTRACT SHARED BIT 7 3N8B ANDX 0 6 17 3NN2 ADN 0 1 [GNDICATE PRESENCE OF 16 3P7L ORS 0 AWORK1(2) [TYPE 7 RECORDS 8 3PM= ADX 4 FX1 7 3Q6W EXIT 4 0 17 3QLG SV3 [FULL BUCKET ROUTINE 9 3R66 LDX 0 AWORK2(2) 17 3RKQ SBN 0 2 [FIRST TYPE 7 BUCKET? 8 3S5B BNZ 0 SV4 7 3SK2 LDN 0 3 16 3T4L STO 0 AWORK2(2) [SKIP BUCKET 2 4 3TJ= SV4 8 3W3W SMO FX1 17 3WHG LDX 0 TYPE7 [SPECIFICATION WORD 8 3X36 STO 0 A1(1) 15 3XGQ LDN 0 128 [USEFUL WORDS 9 3Y2B STO 0 A1+1(1) 17 3YG2 LDX 3 AWORK2(2) [DESTINATION BUCKET 7 3Y_L LDN 0 1 15 3_F= ADS 0 AWORK2(2) [NEW BUCKET 7 3_YW ADX 0 3 16 42DG STO 0 A1+3(1) [CHAIN ADDRESS 14 42Y6 LDN 1 A1(1) [CHECKSUM 8 43CQ SUM 0 128 8 43XB SBS 0 2(1) 16 44C2 STO 4 AWORK3(2) [PRESERVE LINK 17 44WL CALL 4 WRITB [WRITE AWAY BUCKET 15 45B= LDX 4 AWORK3(2) [RESTORE LINK 4 45TW SV5 7 46*G LDN 0 4 16 46T6 STO 0 AWORK3(2) [RESET POINTER 16 47#Q BRN SV1 [NOW STORE RECORD 4 47SB ) 4 48#2 # 9 48RL TYPE #73230000 9 49?= TEB #73020003 9 49QW TES #73100006 17 4==G TURTY #74000 [MAX.RECORD SIZE 30K 5 4=Q6 #SKIP G4 9 4?9Q TYPE7 #73000007 18 4?PB TYPE5 #73050005 [FIRST WORD OF ORG.RECORD 19 4#92 TYPE2 #73020002 [FIRST WORD OF ENTRY BLOCK 18 4#NL XBUC1 +0 [DATA FOR FIRST BUCKET 9 4*8= #1000023 8 4*MW +8 10 4B7G 12HCOMPOFILE 8 4BM6 +0 8 4C6Q +1 8 4CLB +0 8 4D62 +0 8 4DKL +9 19 4F5= 12HPROGRAM [NAME TO BE ADDED FROM R/S 8 4FJW +2 18 4G4G +0 [NO.OF BUCKETS-CALCULATED 8 4GJ6 +0 8 4H3Q +1 9 4HHB 4HA100 4 4J32 # 4 4JGL # 8 4K2= # ENTRY HERE !! 4 4KFW # 4 4K_G XK1 18 4LF6 SWAPOUT [STABLE FOR PERM CHECKS 2 4LYQ 16 4MDB SETNCORE 128,1,ADATA,CSTORE [ORG BUCKET AREA 19 4MY2 LDN 0 2 [CURRENT ORG'BUCKET NUMBER 9 4NCL STO 0 AWORK2(2) 4 4NX= N1 8 4PBW FPCACA 1,2 5 4PWG #SKIP G3 4 4QB6 ( 17 4QTQ LDX 6 ALIMIT(1) [PRESERVE CORE SIZE 7 4R*B SLC 6 9 4 4RT2 ) 5 4S#L #SKIP G4 4 4SS= ( 17 4T?W HUNT2 3,BSTB,BSCB,1 [FIND PROGRAM SIZE 10 4TRG LDX 6 AMAXSIZE(3) 7 4W?6 LDX 0 6 8 4WQQ SLC 6 12 16 4X=B BPZ 0 N1A [JUMP IF DENSE 19 4XQ2 SBN 6 #3776 [REMOVE B0,STORE BIT FOR RS 4 4Y9L N1A 7 4YP= SLC 6 7 4 4_8W ) 9 4_NG LDX 7 ARM1(1) 7 5286 SRL 7 3 7 52MQ ANDN 7 7 17 537B HUNT2 1,AOBRES,0 [FIND REQUEST SLIP 16 53M2 MHUNTW 2,ADATA,CSTORE [FIND ORG.BUCKET 8 546L LDN 4 A1(1) 9 54L= LDN 5 A1+3(2) 19 555W LDX 3 A1(1) [FIND LENGTH OF REQUEST SLIP 8 55KG SRL 3 12 8 5656 ANDN 3 #77 19 56JQ MOVE 4 0(3) [REQUEST SLIP TO OUTPUT BLOCK 9 574B STO 6 A1+6(2) 8 57J2 SUM 4 0(3) 17 583L SBS 4 A1+16(2) [NEGATIVE CHECKSUM 5 58H= #SKIP G3 4 592W ( 10 59GG LDX 0 ALOGLEN(1) 8 5=26 SBN 0 17 15 5=FQ BPZ 0 N2 [JUMP IF SRS 17 5=_B BZE 7 N3 [JUMP IF MODES ABSENT 19 5?F2 # FORM SUPPLEMENTARY REQUEST SLIP IF ONE IS PRESENT OR NEEDED 4 5?YL ) 4 5#D= N2 7 5#XW LDX 1 5 18 5*CG ADX 1 3 [WORD AFTER REQUEST SLIP 8 5*X6 SMO FX1 18 5BBQ LDX 0 TES [STORE SPECIFYING WORD 8 5BWB STO 0 0(1) 15 5CB2 STO 7 1(1) [STORE MODES 17 5CTL LDN 7 2(1) [CLEAR RESERVED WORDS 8 5D*= LDN 0 3(1) 8 5DSW STOZ 2(1) 7 5F#G MOVE 7 4 7 5FS6 SUM 0 7 14 5G?Q NGS 0 7(1) [CHECKSUM 16 5GRB LDN 7 8 [LENGTH OF SRS 4 5H?2 N3 16 5HQL ADN 7 3 [1ST THREE WORDS 16 5J== ADX 7 3 [LENGTH OF R/S 17 5JPW STO 7 A1(2) [RESULT IS POINTER 5 5K9G #SKIP G4 4 5KP6 ( 4 5L8Q # 17 5LNB # THIS ROUTINE STORES PERMISSIONS FOR EACH SEGMENT NOT 16 5M82 # HAVING NORMAL SETTINGS IN THE SWAP CONTROL BLOCK 4 5MML # 4 5N7= SW0 8 5NLW LDX 2 FX2 9 5P6G STOZ AWORK1(2) 15 5PL6 LDN 6 0 [START ADRESS 4 5Q5Q SW1 8 5QKB LDX 2 FX2 18 5R52 LDX 0 6 [TEST IF NEW WD REQUIRED 18 5RJL SLL 0 8 [I+E: MULTIPLE OF 8*64K 8 5S4= BNG 0 SW2 7 5SHW LDX 0 6 17 5T3G SRL 0 16 [FIND MULTIPLE OF 64K 14 5TH6 FPCACA 3,FX2 [FIND SCB 10 5W2Q HUNT2 3,BSTB,BSCB,3 7 5WGB SMO 0 9 5X22 LDX 0 HPERM(3) 17 5XFL STO 0 AWORK4(2) [SETS OF PERMISSIONS 17 5X_= SW2 [EXTRACT NEXT 3 BITS 9 5YDW LDX 0 AWORK4(2) 7 5YYG SLC 0 3 9 5_D6 STO 0 AWORK4(2) 14 5_XQ ERN 0 7 [INVERT 7 62CB ANDN 0 7 18 62X2 LDX 7 0 [ARRANGE FOR STORING IN 14 63BL SRC 7 3 [BUCKET 8 63W= BZE 0 SW3 16 64*W CALL 4 SV0 [STORE IF SPECIAL 4 64TG SW3 18 65*6 MHUNTW 3,ADATA,CSTORE [FIND TEMPORARY STORAGE 18 65SQ BNZ 6 SW4 [JUMP UNLESS FIRST CYCLE 17 66#B STOZ 4 [ZEROISE START ADRESS 8 66S2 FPCACA 2,FX2 18 67?L LDX 5 ALIMIT(2) [FIND PROGRAM LENGTH IN K 8 67R= SRL 5 10 8 68=W BRN SW5 4 68QG SW4 18 69=6 LDX 4 A1+124(3) [MOVE IN START ADDRESS 16 69PQ LDX 5 A1+125(3) [PROGRAM LENGTH 16 6=9B ADN 4 64 [UPDATE LENGTH 4 6=P2 SW5 17 6?8L LDN 0 4 [PRESERVE WITH RECORD 15 6?N= LDN 1 A1+124(3) [FOR SEGMENT 7 6#7W MOVE 0 4 8 6#MG FPCACA 2,FX2 16 6*76 SCANPT 3,SOVER,SCOOR,SGAP,ASEGTAB(2),4,5,2,3 5 6*LQ SCOOR 17 6B6B LDX 5 7 [SET PREVIOUS VALUE 18 6BL2 STOZ 4 [ZEROISE RECFRD LENGTH 4 6C5L SW6 17 6CK= LDX 1 0(2) [EXAMINE NEXT ENTRY 17 6D4W BNG 1 SW7 [JUMP UNLESS REPLACED 8 6DJG LDX 1 0(1) 4 6F46 SW7 19 6FHQ SRL 1 6 [EXTRACT PERMS & SHRBL BIT 17 6G3B ERN 1 14 [INVERT PERMISSIONS 8 6GH2 SLL 1 20 8 6H2L LDCT 0 #740 7 6HG= ANDX 0 5 7 6H_W TXU 1 0 18 6JFG BCC SW10 [JUMP IF SAME AS PREVIOUS 4 6J_6 SW8 8 6KDQ LDCT 0 #740 7 6KYB ANDX 0 5 19 6LD2 ADX 6 4 [FORM ADDRESSES FOR STORED 16 6LXL ADX 4 5 [AND NEW RECORDS 7 6MC= SBX 4 0 7 6MWW SBX 0 7 19 6NBG LDX 7 5 [PRESENT TO STORING ROUTINE 19 6NW6 LDX 5 1 [NEW VALUES FOR NEXT CYCLE 20 6P*Q BZE 0 SW9 [JUMP IF SAME VALUES AS SEGMENT 19 6PTB MHUNTW 1,ADATA,CSTORE [PRESERVE DETAILS OF SEARCH 7 6Q*2 LDN 0 2 9 6QSL LDN 1 A1+120(1) 7 6R#= MOVE 0 4 17 6RRW CALL 4 SV0 [STORE TYPE 7 RECORD 11 6S?G MHUNTW 1,ADATA,CSTORE 9 6SR6 LDN 6 A1+120(1) 7 6T=Q LDN 7 2 19 6TQB MOVE 6 4 [RESTORE DETAILS OF SEARCH 4 6W=2 SW9 11 6WPL MHUNTW 1,ADATA,CSTORE 18 6X9= LDX 6 A1+126(1) [RESTORE SEGMENT ADDRESS 16 6XNW LDX 7 A1+127(1) [AND PERMISSIONS 4 6Y8G SW10 17 6YN6 ADN 5 1024 [UPDATE RECORD LENGTH 16 6_7Q ADN 2 1 [UPDATE POINTER 15 6_MB SBN 3 1 [UPDATE COUNT 17 7272 BZE 3 SW8 [CLEAR LAST RECORD 8 72LL BPZ 3 SW6 4 736= SGAP 14 73KW ADX 6 BIT7 [ADD 64K 7 745G LDX 0 6 7 74K6 SLL 0 2 18 754Q BNZ 0 SW1 [JUMP UNLESS 64 ENTRIES 5 75JB SOVER 4 7642 # 12 76HL # CLEAR UP AFTER LAST TYPE 7 RECORD 4 773= # 8 77GW LDX 2 FX2 17 782G MHUNTW 1,ADATA,CSTORE [FIND BLOCK WITH R/S 9 78G6 LDX 5 AWORK1(2) 19 78_Q BZE 5 SX1 [JUMP IF NO TYPE 7 RECORDS 17 79FB MHUNTW 3,FILE,FRWB [FIND TYPE 7 RECORDS 19 79_2 LDX 0 AWORK2(2) [TEST IF FIRST TYPE 7 BUCKET 7 7=DL SBN 0 2 15 7=Y= BNZ 0 SX2 [JUMP IF NOT 18 7?CW LDX 0 A1(1) [POINTER TO ADATA/CSTORE 9 7?XG ADX 0 AWORK3(2) 19 7#C6 SBN 0 129 [IS THERE ROOM IN BUCKET 2? 15 7#WQ BPZ 0 SX2 [JUMP IF NOT 18 7*BB LDN 7 A1(1) [MOVE RECORDS TO BUCKET 2 17 7*W2 ADX 7 A1(1) [DESTINATION ADDRESS 16 7B*L LDN 6 A1(3) [SO4RCE ADDRESS 9 7BT= LDX 3 AWORK3(2) 8 7C#W MOVE 6 0(3) 7 7CSG LDN 0 3 16 7D#6 STO 0 AWORK2(2) [NEXT ORG.BUCKET 8 7DRQ LDX 2 A1(1) 16 7F?B ADN 2 A1-4(1) [WORD 4 OF SRS 8 7FR2 SMO FX1 17 7G=L LDX 0 TYPE7 [SPECIFICATION WORD 8 7GQ= STO 0 4(2) 19 7H9W STO 3 5(2) [LENGTH FO SPA INFORMATION 8 7HPG LDN 7 4(2) 8 7J96 STOZ 7(2) 8 7JNQ SUM 6 0(3) 14 7K8B SBS 6 6(2) [CHECSUM 2 7KN2 16 7L7L # STORE IN SRS A WORD INDICATING NO SHAREABLE AREAS, 17 7LM= # RESTRICTED BINARY FORMAT AND TYPE 7 RECORDS IN THIS 5 7M6W # BUCKET 4 7MLG # 19 7N66 LDCT 7 1 [EXTRACT SHAREABLE INDICATOR 16 7NKQ ERX 7 5 [AND SET BIT 5 17 7P5B SRL 7 1 [ELIMINATE INDICATOR 7 7PK2 SLL 7 4 8 7Q4L ADX 7 A1(1) 15 7QJ= STO 7 0(2) [STORE IN SRS 8 7R3W SBS 7 3(2) 8 7S36 BRN SX3 17 7SGQ SX1 [NO TYPE 7 RECORDS 18 7T2B LDX 2 A1(1) [INDICATE IN WD4 OF SRS 9 7TG2 ADN 2 A1-4(1) 7 7T_L LDCT 0 8 8 7WF= STO 0 0(2) 8 7WYW SBS 0 3(2) 8 7XDG BRN U0 4 7XY6 # 14 7YCQ # WRITE AWAY LAST BUCKET OF TYPE 7 RECORDS 4 7YXB # 4 7_C2 SX2 8 7_WL SMO FX1 17 82B= LDX 0 TYPE7 [SPECIFICATION WORD 8 82TW STO 0 A1(3) 18 83*G LDX 1 AWORK3(2) [STORE NO OF USEFUL WORDS 9 83T6 STO 1 A1+1(3) 15 84#Q STOZ A1+3(3) [END OF CHAIN 8 84SB LDN 7 A1(3) 8 85#2 SUM 6 0(1) 16 85RL SBS 6 A1+2(3) [STORE CHECKSUM 17 86?= LDX 3 AWORK2(2) [DESTINATION BUCKET 17 86QW CALL 4 WRITB [LAST TYPE7 BUCKET 16 87=G LDN 0 1 [NEXT ORG+BUCKET 9 87Q6 ADS 0 AWORK2(2) 4 889Q # 16 88PB # STORE IN SRS A WORD INDICATING NO SHAREABLE AREAS, 16 8992 # RESTRICTED BINARY FORMAT AND TYPE 7 RECORDS IN A 8 89NL # GROUP OF BUCKETS 4 8=8= # 11 8=MW MHUNTW 1,ADATA,CSTORE 16 8?7G LDX 3 A1(1) [FIND WD 4 OF SRS 9 8?M6 ADN 3 A1-4(1) 19 8#6Q LDCT 0 #40 [EXTRACT SHAREABLE INDICATOR 9 8#LB ANDX 0 AWORK1(2) 8 8*62 SRC 0 12 18 8*KL ADX 0 AWORK2(2) [NO OF BUCKETS OF TYPE 7 17 8B5= ADN 0 #1005 [DATA FROM BUCKET 3 7 8BJW SRC 0 9 8 8C4G STO 0 0(3) 8 8CJ6 SBS 0 3(3) 4 8D3Q SX3 19 8DHB SMO FX2 [STORE RELATIVE ADDRESS OF 19 8F32 LDX 0 AWORK2 [NEXT ORGANISATIONAL BUCKET 7 8FGL SBN 0 2 9 8G2= STO 0 A1+1(1) 14 8GFW CALL 4 ORGBY [TIDY AND 17 8G_G CALL 4 RENAM [WRITE AWAY BUCKET 2 7 8HF6 LDN 3 2 8 8HYQ CALL 4 WRITB 8 8JDB CALL 4 RENAM 19 8JY2 MFREE FILE,FRWB [FREE TYPE 7'S BUCKET AREA 17 8KCL MHUNT 1,ADATA,CSTORE [INITIALISE WITH NEXT 15 8KX= LDN 0 3 [FREE BUCKET 14 8LBW STO 0 A1(1) [POINTER 4 8LWG ) 11 8MB6 # INITIALISE FOR MAJOR ROUTINES 4 8MTQ # 4 8N*B U0 11 8NT2 SETNCORE 512,1,FILE,FRWB 11 8P#L MHUNTW 1,ADATA,CSTORE 9 8PS= LDX 0 AWORK2(2) 17 8Q?W STO 0 A1+2(1) [CURRENT ORG'BUCKET 16 8QRG STOZ A1+1(1) [NEXT ORG'BUCKET 5 8R?6 #SKIP G4 4 8RQQ ( 16 8S=B ADN 0 7 [FIND FIRST OCTET 8 8SQ2 ANDN 0 #7770 4 8T9L ) 5 8TP= #SKIP G3 4 8W8W ( 17 8WNG ADN 0 3 [FIND FIRST QUARTET 8 8X86 ANDN 0 #7774 4 8XMQ ) 7 8Y7B ADN 0 1 9 8YM2 STO 0 AWORK2(2) 15 8_6L LDN 5 0 [O/P POINTER 15 8_L= U1 [NEW RECORD 14 925W LDN 6 0 [CHECKSUM 16 92KG LDN 7 0 [PECORD LENGTH 4 9356 U2 17 93JQ FPCACA 1,FX2 [TEST IF END OF O/P 8 944B LDN 3 512 9 94J2 LDX 0 ALIMIT(1) 7 953L SBX 0 5 15 95H= BZE 0 V4 [JUMP IF SO 5 962W #SKIP G3 4 96GG ( 19 9726 SBN 0 512 [LESS THAN 512 WORDS LEFT? 8 97FQ BPZ 0 U2C 7 97_B ADX 3 0 4 98F2 ) 4 98YL U2C 5 99D= #SKIP G4 4 99XW ( 10 9=CG LDN 4 CHUSED+GREAD 17 9=X6 GETWORDX 5,1,4,4,3,VBIN [GET NEXT 512 WORDS 17 9?BQ TESTRPN2 NOTUSED,U2B [J IF NOT ACCESSED 16 9?WB VFREEW ADATA,ERREPLY [KEEP CORE TIDY 16 9#B2 LDX 1 FX1 [ON THE SAFE SIDE 17 9#TL LDX 3 4 [SKIP UNACCESSED AREA 4 9**= ) 5 9*SW #SKIP G3 11 9B#G GETWORD 5,1,READ,4,3,VBIN 6 9BS6 #SKI ADELO 10 9C?Q TESTREP2 LOADERR,Y8 4 9CRB U2B 8 9D?2 BNZ 5 U2A 16 9DQL LDX 0 8(1) [FIND ENTRY POINT 15 9F== STO 0 AWORK1(2) [PRESERVE IT 4 9FPW U2A 20 9G9G ADX 5 3 [UPDATE POINTER BY RECORD LENGTH 18 9GP6 STO 3 ACOMMUNE1(2) [PRESERVE BLOCK LENGTH 12 9H8Q # NOW TEST IF BLOCK IS ENTIRELY ZERO 5 9HNB #SKIP G4 4 9J82 ( 17 9JML ANDN 3 512 [TEST IF UNACCESSED 8 9K7= BZE 3 U5A 4 9KLW ) 19 9L6G SUM 0 0(3) [CHECKSUM IS NEEDED ANYWAY 19 9LL6 ADX 6 0 [UPDATE CHECKSUM OVER RECORD 5 9M5Q #SKIP G4 8 9MKB BRN U7 5 9N52 #SKIP G3 4 9NJL ( 8 9P4= BNZ 0 U7 4 9PHW U5 8 9Q3G ORX 0 0(1) 7 9QH6 BUX 1 / 8 9R2Q BCT 3 U5 8 9RGB BNZ 0 U6 4 9S22 ) 15 9SFL # BLOCK IS ENTIRELY ZERO.TEST IF END OF RECORD 4 9S_= U5A 19 9TDW BZE 7 U2 [BACK IF NO RECORD PRESENT 8 9TYG BRN V2 4 9WD6 U6 5 9WXQ #SKIP G3 17 9XCB SBX 1 ACOMMUNE1(2) [RESET O/P ADDRESS 4 9XX2 U7 17 9YBL ADX 7 ACOMMUNE1(2) [UPDATE RECORD LENGTH 10 9YW= MHUNTW 2,FILE,FRWB 8 9_*W LDN 2 A1(2) 8 9_TG MOVE 1 512 8 =2*6 LDX 2 FX2 18 =2SQ SBSC 7 ACOMMUNE1(2) [TEST IF FIRST BUCKET OF 14 =3#B BCS V1 [RECORD 13 =3S2 # DEAL WITH FIRST BUCKET OF NEW RECORD 19 =4?L MHUNTW 3,ADATA,CSTORE [ORGANISATIONAL BUCKET FULL? 8 =4R= LDX 0 A1(3) 8 =5=W SBN 0 124 15 =5QG BNG 0 U9 [JUMP IF NOT 4 =6=6 U8 19 =6PQ CALL 4 ORGB [TIDY ORGANISATIONAL BUCKET 8 =79B CALL 4 RENAM 19 =7P2 CALL 4 WRITB [WRITE ORGANISATIONAL BUCKET 8 =88L CALL 4 RENAM 17 =8N= CALL 4 NORGB [BEGIN NEW ORG.BUCKET 4 =97W U9 17 =9MG STO 5 AWORK3(2) [STORE O/P ADDRESS 9 ==76 SBS 7 AWORK3(2) 18 ==LQ LDX 0 AWORK2(2) [STORE BEGINNING BUCKET 14 =?6B STO 0 AWORK4(2) [ADDRESS 16 =?L2 # DEAL WITH BUCKETS OTHER THAN THE FIRST OF A RECORD 4 =#5L V1 9 =#K= LDX 3 AWORK2(2) 18 =*4W SRL 3 2 [CONVERT TO BLOCK NUMBER 7 =*JG ADN 3 1 19 =B46 WRITED 3,4 [WRITE 4 BUCKETS OF PROGRAM 10 =BHQ TESTRPN2 OVERFILE,ROOM 9 =C3B GEOERR 1,SVFULL 4 =CH2 ROOM 11 =D2L SETNCORE 512,3,FILE,FRWB 17 =DG= LDN 0 4 [FIND NEXT QUARTET 9 =D_W ADS 0 AWORK2(2) 19 =FFG TXL 7 TURTY(1) [JUMP UNLESS RECORD IS 30K 15 =F_6 BCS U2 [NEXT RECORD 4 =GDQ V2 16 =GYB CALL 4 ORGR [STORE ORG.RECORD 8 =HD2 BRN U2 4 =HXL V4 8 =JC= BZE 7 V5 8 =JWW CALL 4 ORGR 16 =KBG # END OF OBJECT PROGRAM HAS BEEN REACHED AND LAST 13 =KW6 # ORGANISATIONAL RECORD HAS BEEN FORMED 4 =L*Q V5 18 =LTB MHUNTW 1,ADATA,CSTORE [TEST IF ROOM FOR ENTRY 14 =M*2 LDX 3 A1(1) [BLOCK 8 =MSL SBN 3 126 8 =N#= BNG 3 V6 17 =NRW CALL 4 ORGB [IF NOT,TIDX BUCKET 8 =P?G CALL 4 RENAM 15 =PR6 CALL 4 WRITB [AND WRITE IT 8 =Q=Q CALL 4 RENAM 15 =QQB CALL 4 NORGB [NEW BUCKET 17 =R=2 BRN V5 [FIND ADATA/CSTORE 4 =RPL V6 18 =S9= LDN 3 A1(1) [FIND POSITION FOR ENTRY 16 =SNW LDN 0 2 [UPDATE POINTER 8 =T8G ADX 3 0(3) 8 =TN6 ADS 0 A1(1) 8 =W7Q SMO FX1 18 =WMB LDX 0 TEB [STORE SPECIFICATION WORD 8 =X72 STO 0 0(3) 16 =XLL LDX 0 AWORK1(2) [STORE ENTRY WORD 8 =Y6= STO 0 1(3) 16 =YKW CALL 4 ORGBX [TIDY LAST BUCKET 8 =_5G CALL 4 RENAM 17 =_K6 MFREE ADATA,CSTORE [FREE 512 WORD BLOCK 17 ?24Q CALL 4 WRITB [WRITE BUCKET AWAY 18 ?2JB MHUNTW 1,FILE,FRWB [MOVE IN CONSTANT DATA 16 ?342 LDN 4 A1(1) [FOR FIRST BUCKET 8 ?3HL SMO FX1 8 ?43= LDN 3 XBUC1 8 ?4GW MOVE 3 19 17 ?52G FPCACA 3,2 [FIND REQUEST SLIP 10 ?5G6 HUNT2 3,AOBRES,0 9 ?5_Q LDX 0 A1+1(3) 17 ?6FB STO 0 A1+13(1) [STORE PROGRAM NAME 9 ?6_2 LDX 0 AWORK2(2) 7 ?7DL SBN 0 1 18 ?7Y= STO 0 A1+15(1) [STORE NUMBER OF BUCKETS 7 ?8CW LDN 3 1 16 ?8XG CALL 4 WRITB [WRITE BUCKET 1 9 ?9C6 MFREE FILE,FRWB 7 ?9WQ LDN 6 0 8 ?=BB Y4 FPCACA 2,FX2 15 ?=W2 HUNT2 3,APERI,APERIRES,2 [X3 -> PRB 7 ??*L SMO 6 18 ??T= LDX 4 A1(3) [GET 1ST/NEXT PRB ENTRY 14 ?##W BNG 4 Y7 [J IF END 20 ?#SG OUTPACK 4,1,PERINAME [PERIPHERAL NAME -> OUTPUT BLOCK 18 ?*#6 MONOUT JSAVE [O/P NOT SAVED MESSAGE 17 ?*RQ BDX 6 Y4 [UPDATE PTR & GO BACK 14 ?B?B Y7 WORDFIN [TIDY UP 4 ?BR2 Y8 13 ?C=L CLOSE [AND 14 ?CQ= ENDCOM [FINISH 4 ?D9W VBIN 18 ?DPG WORDFIN [SIGNAL END OF GETWORDS 6 ?F96 CLOSE 7 ?FNQ COMBRKIN 16 ?G8B ZERR GEOERR 1,NOIMAGE [NO CORE IMAGE 11 ?GN2 MENDAREA 30, K100SAVEDA 4 ?H7L #END 8 ____ ...77504164000500000000