12 22FL SEG FHOBJBL,860,FILESTORE 4 22_= # 20 23DW # THIS SEGMENT DEALS WITH THE BLOCK MODES #21,#22, AND #23. IT IS 21 23YG # ENTERED ACROSS FROM MASTER SEGMENT FHOBJ WITH SOME BUT NOT ALL THE 21 24D6 # CHECKS COMPLETED. IN PARTICULAR THE 'END OF FILE VIOLATION' CHECKS 20 24XQ # HAVE NOT BEEN DONE AS THE MEANINGS OF POINTER VALUES FOR BLOCK 20 25CB # ACCESS DIFFER FROM THE MEANINGS FOR RECORD ACCESS, SO FHOBJ TESTS 10 25X2 # WOULD NOT BE APPROPRIATE. 4 26BL # 11 26W= SEGENTRY K21FHOBJBL,MODE21 11 27*W SEGENTRY K22FHOBJBL,MODE22 11 27TG SEGENTRY K23FHOBJBL,MODE23 4 28*6 # 15 28SQ # AWORK AND ACC CONVENTIONS ARE AS FOR FHOBJ. 4 29#B # 8 29S2 # BIT IDENTIFIERS:- 20 2=?L BITDEFS AWORK4,23,MFHEOFMULT [WE'VE RUN OFF THE END OF A 20 2=R= [MULTIFILE. NO FURTHER PERIS 18 2?=W [CAN BE IMPLEMENTED. 21 2?QG BITDEFS AWORK4,22,MFHDIRMOD [THIS IS A DIRECTORY MODE WE'RE 16 2#=6 [IMPLEMENTING 19 2#PQ BITDEFS AWORK4,21,MFHRECEOF [LAST READ PERI LEFT US 16 2*9B [AFTER EOF. 20 2*P2 BITDEFS AWORK4,20,MFHBLOCKEOF [SIMILAR BIT FOR BLOCK PERIS. 20 2B8L [HAS TO BE HANDLED SEPARATELY 20 2BN= [OWING TO DIFFERENT POINTER 16 2C7W [CONVENTIONS. 20 2CMG BITDEFS AWORK4,19,MFHNOT1ST [THIS IS NOT THE 1ST PERI. 19 2D76 BITDEFS AWORK4,18,MFHDIROWN [USER OWNS THE FILES IN 17 2DLQ [THIS DIRECTORY 20 2F6B BITDEFS AWORK4,17,MFHNONSER [THIS IS A DA,DR, OR MT FILE 20 2FL2 BITDEFS AWORK4,16,MFHCHUCKOFF [WE ARE THROWING THIS FILE 21 2G5L [OFFLINE (SET DURING MODE #33). 20 2GK= BITDEFS AWORK4,15,MFHTRAPSALT [WE ARE ALTERING THIS FILE'S 20 2H4W [TRAPS (SET DURING MODE #33). 19 2HJG BITDEFS AWORK4,14,MFHTABSSET [THE TAB SYSTEM HAS BEEN 16 2J46 [INITIALISED. 4 2JHQ # 4 2K3B # 4 2KH2 # 13 2L2L # SUBROUTINE TO CHECK THE COUNT FIELD. 4 2LG= # 6 2L_W VALIDCOUNT 9 2MFG LDX 0 ACA3(2) 8 2M_6 SBN 0 512 17 2NDQ BNZ 0 NILCOUNT [J IF COUNT NOT 512 7 2NYB EXIT 6 0 4 2PD2 # 9 2PXL # ******************** 4 2QC= # 20 2QWW # SUBROUTINE TO SET UP A FILE/FWB, MOVE THE USER BUFFER OUT TO IT, 20 2RBG # AND VALIDATE THE RECORD HEADERS (UNLESS THE FILE IS NOT SERIAL). 11 2RW6 # CALLED ON X6 AND COORDINATES. 4 2S*Q # 6 2STB MOVEOUTBUF 16 2T*2 SBX 6 FX1 [RELATIVISE LINK 14 2TSL SETNCORE 512,3,FILE,FWB [X3->FWB 17 2W#= LDN 4 A1(3) [X4->DATA DESTINATION 17 2WRW LDX 3 AWORK2(2) [X3->DATA WITHIN PROG 16 2X?G LDN 5 512 [LENGTH OF MOVE 16 2XR6 FOUTMOVE APETADDR(2),3,4,5,HLOCK2,2 [DO MOVE 18 2Y=Q ... MHUNTW 3,FILE,FWB [X3->FWB CONTAINING DATA 20 2YQB ... JBS NONSERCHK,2,MFHNONSER [J TO NONSER CHECKS IF NONSER 16 2_=2 LDN 5 0 [OFFSET DOWN DATA 6 2_PL RECHDLOOP 7 2_SQ ... SMO 5 17 3259 ... LDX 0 A1(3) [NEXT RECORD HEADER 19 32*N ... LDX 4 MS15(1) [MS 15 BITS MUST NOT BE SET 20 32L7 ... ANDX 4 0 [IN A VALID USER-SUPPLIED RECORD 14 32WL ... BNZ 4 NILDATA [HEADER. 18 3375 ... BXE 0 ONE(1),NILDATA [1 WORD RECORD ILLEGAL 19 33CJ ... [(EVEN IN AN AMORPHOUS FILE). 18 33N6 BZE 0 NOTBAD [OK IF IT'S END OF BLOCK 16 33XY ... ADX 5 0 [UPDATE OFFSET 21 347Q BXGE 5 BSBS,NILDATA [DATA FORMAT ERROR IF OFF END OF BLOC 9 34MB BRN RECHDLOOP 5 3572 NOTBAD 8 35LL ADX 6 FX1 7 366= EXIT 6 0 9 366* ...MS15 #77777000 7 366D ...ONE 1 4 366K ...# 21 366Y ...# IF THE FILE IS NONSERIAL THE ONLY FORMAT CHECKS APPLIED ARE TO THE 20 367? ...# INDEX BLOCKS OF A *MT FILE. THIS CHECK IS DONE IN THE STANDARD 21 367L ...# 'MTCHECK' MACRO, WHICH REQUIRES DATA TO BE CARRIED FORWARD BETWEEN 20 367_ ...# CALLS. WE USE EUSE1 AND EUSE2 OF THE ENT BLOCK LEFT BY ASSIGN TO 8 368# ...# CARRY THIS DATA. 16 368M ...# WE ASSUME THAT EUSE1 IS ZERO FOR TERMINAL FILES. 4 3692 ...# 9 369* ...# EUSE1=0 (INITIALLY) 18 369N ...# 'BULK FILE ADDRESS' STATISTIC NEEDED BY MTCHECK. 4 36=3 ...# 14 36=B ...# EUSE2=NO OF INDEX BLOCKS LEFT TO CHECK. 4 36=P ...# 6 36?4 ...NONSERCHK 14 36?C ... MHUNTW 3,FILE,ENT [X3->ENT 17 36?Q ... JBC NOTBAD,3,BEMT [NO CHECK IF NOT *MT 20 36#5 ... BWNZ EUSE1(3),NOT1STBLK [J UNLESS FIRST BLOCK ACCEPTED 14 36#D ... TOPFCB2 1 [X1->FCB 17 36#R ... LDX 0 BULKMOD(1) [NO OF INDEX BLOCKS 16 36*6 ... STO 0 EUSE2(3) [INITIALISE EUSE2 8 36*F ... LDX 1 FX1 6 36*S ...NOT1STBLK 20 36B7 ... LDX 4 EUSE2(3) [PICK UP NO OF INDEX BLOCKS LEFT 15 36BG ... BZE 4 NOTBAD [J IF NONE 14 36BT ... MTCHECK FILE,FWB,EUSE1(3) [DO CHECK 17 36C8 ... TESTREP2 CORRUPT,NILDATA [ILLEGAL IF CORRUPT 19 36CH ... SBN 4 1 [DECR COUNT OF INDEX BLOCKS 19 36CW ... BNZ 4 MOREINDEX [J IF NOT THE LAST EXPECTED 20 36D9 ... TESTRPN2 ENDFILE,NILDATA [CORRUPT IF LASTBLOCK DID NOT END 17 36DJ ... [INDEX DATA PROPERLY 6 36DX ...STOREDATA 10 36F= ... MHUNTW 3,FILE,ENT 15 36FK ... STO 4 EUSE2(3) [UPDATE DATA 21 36FY ... LDX 0 ACOMMUNE1(2) [MTCHECK SENDS NUM BACK FOR STORAGE 9 36G? ... STO 0 EUSE1(3) 9 36GL ... BRN NOTBAD 6 36G_ ...MOREINDEX 21 36H# ... TESTREP2 ENDFILE,NILDATA [WE EXPECT MORE INDEX BLOCKS SO THAT 18 36HM ... [CAN'T HAVE BEEN THE LAST 9 36J2 ... BRN STOREDATA 4 36J* ...# 4 36KW # 9 375G # ******************** 20 37K6 # SUBROUTINE TO CHECK WHETHER A MODE #22 WOULD READ END OF FILE. 20 384Q # IT EXITS 6 0 IF MODE #22 WOULD, OTHERWISE IT EXIT 6 1. EXPECTS 8 38JB # X1->FCA, X3->FCB. 4 3942 # 6 39HL WILLREADEOF 18 3=3= LDX 0 FREADBLOCK(1) [PICK UP BLOCK READ PTR 17 3=GW BPZ 0 NBOF [J UNLESS AT BEG FILE 20 3?2G LDX 0 FBLMOD(3) [BEG FILE IS STILL EOF IF FILE 14 3?G6 SBN 0 FBLKS-A1 [EMPTY 17 3?SH ... BZE 0 (6) [EXIT 6 0 IF EMPTY 10 3#6Y ... BRN NOTEOFNEXT 4 3#FB NBOF 9 3#_2 SBX 0 FBLMOD(3) 8 3*DL SBN 0 A1-1 20 3*Y= ... BPZ 0 (6) [EXIT 6 0 IF ABOUT TO READ EOF 6 3BCW ...NOTEOFNEXT 16 3BXG EXIT 6 1 [ELSE EXIT 6 1 4 3CC6 # 21 3CWQ # ******************************************************************** 4 3DBB # 20 3DW2 # MODE #21 IS VERY SIMPLE. WE CHECK THE COUNT, MOVE OUT AND CHECK 11 3F*L # THE DATA, AND DO A WRITEB. 4 3FT= # 5 3G#W MODE21 15 3GSG CALL 6 VALIDCOUNT [CHECK COUNT 19 3H#6 CALL 6 MOVEOUTBUF [MOVE OUT BUFFER AND CHECK IT 9 3HRQ WRITEB ,ANSWER 16 3J?B TESTREP2 FILEFULL,XFILEFULL,GLUTTON,TOOMUCH 17 3JR2 BRN SETREP [JUMP TO WINDUP CODE 4 3K=L # 21 3KQ= # ******************************************************************** 4 3L9W # 19 3LPG # MODE #22 IS NOT SO SIMPLE. FIRST WE CHECK THE COUNT WORD AND 20 3M96 # ESTABLISH WHETHER WE ARE ABOUT TO READ END OF FILE, JUMPING INTO 12 3MNQ # THE EXCEPTION SECTION IF WE ARE. 4 3N8B # 5 3NN2 MODE22 15 3P7L CALL 6 VALIDCOUNT [CHECK COUNT 16 3PM= TOPFCAB2 1,3 [X1->FCA,X3->FCB 19 3Q6W CALL 6 WILLREADEOF [ARE WE ABOUT TO READ EOF? 14 3QLG BRN MODE22EOF [J IF SO 19 3R66 BC 2,MFHBLOCKEOF [ENSURE EOF INDICATOR CLEAR 4 3RKQ # 7 3S5B # ********** 4 3SK2 # 21 3T4L # HAVING REMOVED ALL POSSIBILITY OF FAILURE WE DO AN 'AUTSTART'WHICH 14 3TJ= # SETS THE PROGRAM RUNNING AUTONOMOUSLY. 4 3W3W # 7 3WHG AUTSTART 4 3X36 # 7 3XGQ # ********** 4 3Y2B # 18 3YG2 # NOW WE HAVE GONE AUTONOMOUS WE READ THE DATA INTO A FRB 4 3Y_L # 6 3_F= READB 4 3_YW # 7 42DG # ********** 4 42Y6 # 21 43CQ # WE NOW MOVE THE DATA INTO THE OBJECT PROGRAM. WE ARE NOT ALLOWED TO 21 43XB # MOVE IN THE RUBBISH AFTER THE END OF VALID DATA IN A BLOCK OF A SERIA 21 44C2 # FILE AS THIS MAY BE SENSITIVE DATA FROM A PREVIOUS USE OF THE BLOCK. 21 44WL # SO WE ESTABLISH WHERE THE END OF USEFUL DATA IS BY CHAINING DOWN THE 20 45B= # RECORD HEADERS TILL WE FIND THE ZERO WORD AND THEN MOVE THIS ZERO 13 45JG ...# THROUGH THE REMAINDER OF THE BLOCK. 19 45QQ ...# IT IS POSSIBLE THAT THE END OF THE BLOCK WILL BE INDICATED BY 20 45_2 ...# A DUMMY RECORD (B0 OF HEADER SET). IN THIS CASE WE ZEROISE IT AND 12 467= ...# PROCEED FOR A NORMAL BLOCK END. 4 46*G # 10 46T6 MHUNTW 3,FILE,FRB 18 47#Q JBS NOTSERM22,2,MFHNONSER [J IF NOT SERIAL FILE 17 47SB LDN 7 0 [OFFSET DOWN BLOCK 5 48#2 NEXTRHD 7 48RL SMO 7 16 48Y4 ... LDX 0 A1(3) [PICK UP RECHD 18 494G ... BPZ 0 NOTDUMMY [J UNLESS DUMMY RECORD. 20 498Y ... LDN 0 0 [TREAT DUMMY REC HEADER AS ZERO. 7 49*B ... SMO 7 8 49FS ... STOZ A1(3) 5 49L= ...NOTDUMMY 16 49QW ADX 7 0 [UPDATE OFFSET 19 4==G BNZ 0 NEXTRHD [LOOP IF NOT OF END OF BLOCK 8 4=Q6 LDN 6 511 20 4?9Q SBX 6 7 [X6 = NO OF WDS TO MOVE ZERO THRU 17 4?PB BZE 6 NOZEROMOVE [J IF NO MOVE NEEDED 7 4#92 SMO 7 14 4#NL LDN 4 A1(3) [X4->ZERO 7 4*8= LDX 5 4 17 4*MW ADN 5 1 [X5->WORD AFTER ZERO 7 4B7G SMO 6 14 4BM6 MOVE 4 0 [DO MOVE 6 4C6Q NOZEROMOVE 6 4CLB NOTSERM22 4 4D62 # 7 4DKL # ********** 4 4F5= # 17 4FJW # WE MOVE THE DATA IN USING FINMOVE AND FREE THE BUFFER 4 4G4G # 13 4GJ6 LDN 3 A1(3) [DATA 17 4H3Q LDX 4 AWORK2(2) [BUFFER ADDR IN PROG 15 4HHB FINMOVE APETADDR(2),4,3,ACA3(2),HLOCK2,2 9 4J32 MFREEW FILE,FRB 4 4JGL # 7 4K2= # ********** 4 4KFW # 21 4K_G # FINALLY WE COMPUTE THE REPLY AND DO AN 'AUTFIN' WHICH SETS THE REPLY, 20 4LF6 # CLEANS UP, AND SENDS THE OLPA TO SLEEP READY FORTHE NEXT PERI.ON 20 4LYQ # RETURN WE ENTER FHOBJ TO LOOK AT THE NEW PERI. WE CANNOT USE THE 20 4MDB # NORMAL WINDUP CODE IN THIS CASE SINCE WE HAVE GONE AUTONOMOUS AND 16 4MY2 # THIS INVALIDATES THE USE OF THE NORMAL MACROS. 4 4NCL # 15 4NX= LDX 7 AWORK2(2) [BUFFER ADDR 18 4PBW ADN 7 512 [PLUS DATA TRANSFERRED 16 4PWG ANDX 7 REPMASK(1) [AND OUT MS6 BITS 18 4QB6 AUTFIN 7 [SET REPLY AND GO WAITING 19 4QTQ BC 2,MFHNOT1ST [GO ACROSS TO ANALYSE PERI 9 4R*B ACROSS FHOBJ,1 15 4RT2 REPMASK #777777 [REPLY MASK 4 4S#L # 21 4SS= # ******************************************************************** 4 4T?W # 21 4TRG # MODE #23 IS ONLY ALLOWED IF WE ARE NOT AT BEGINNING OF FILE AND IF 16 4W?6 # WE ARE NOT ABOUT TO READ EOF FOR THE SECOND TIME. 4 4WQQ # 5 4X=B MODE23 18 4XQ2 CALL 6 VALIDCOUNT [CHECK THE COUNT FIELD 16 4Y9L TOPFCAB2 1,3 [X1->FCA,X3->FCB 10 4YP= LDX 0 FREADBLOCK(1) 16 4_8W BNG 0 NILBOF [J IF AT BEG FILE 21 4_NG JBC NOTEOF23,2,MFHBLOCKEOF [J IF LAST MODE #22 DIDNT READ EOF 21 5286 CALL 6 WILLREADEOF [CHECK THAT MORE DATA HAS BEEN ADDED 16 52MQ BRN NILEOF [NO - ILLEGAL EOF 5 537B NOTEOF23 4 53M2 # 7 546L # ********** 4 54L= # 20 555W # AL IS OK. WE SET FREADWORD TO A1 TO TRICK A LATER STEPWRITE INTO 21 55KG # GETTING A POINTER TO THE DATA DESTINATION AND DOING ALL THE CAREFUL 21 5656 # UPDATING FOR US. WE THEN CALL THE SUBROUTINE WHICH MOVES THE BUFFER 12 56JQ # OUT INTO A FWB AND VALIDATES IT. 8 574B LDN 0 A1 16 57J2 STO 0 FREADWORD(1) [FIDDLE FREADWORD 18 583L LDX 1 FX1 [RESTORE CORRUPTED ACC 19 58H= CALL 6 MOVEOUTBUF [MOVE OUT AND CHECK BUFFER 4 592W # 7 59GG # ********** 4 5=26 # 21 5=FQ # A CALL TO STEPWRITE NOW GIVES US X3->DATA DESTINATION AND DOES THE 20 5=_B # CAREFUL UPDATING. WE MOVE THE DATA ACROSS, FREE THE BUFFER, AND 10 5?F2 # ENTER THE WINDUP ROUTINE. 7 5?YL STEPWRITE 10 5#D= MHUNTW 2,FILE,FWB 14 5#XW ... ADN 2 A1 [X2->DATA 16 5*CG MOVE 2 0 [DO 512 WD MOVE 14 5*X6 SBN 2 A1 [X2->FWB 14 5BBQ FREECORE 2 [FREE FWB 8 5BLJ ... FRITE ,AUT 4 5BWB # 21 5CB2 # ******************************************************************** 4 5CTL # 17 5D*= # THE WINDUP CODE JUST GOES ACROSS TO FHOBJ ENTRY 2. 4 5DSW # 5 5F#G SETREP 16 5FS6 ACROSS FHOBJ,2 [RETURN TO FHOBJ 4 5G?Q # 21 5GRB # ******************************************************************** 4 5H?2 # 13 5HQL # THIS SECTION DEALS WITH EXCEPTIONS. 4 5J== # 20 5JPW # SUBROUTINE TO SET X7=#05000000 (I.E. THE OWN MON EVENT BITS) IF 17 5K9G ...# OWN MONITORING WAS USED. OTHERWISE X7 IS ZEROISED. 4 5KP6 # 5 5L8Q MCHOWN 7 5LDJ ... LDN 7 0 15 5LNB LDX 0 ACA1(2) [MODE WORD 7 5M82 SRL 0 6 19 5MML ANDN 0 #777 [PICK UP ADDITIVE MODE BITS 8 5N7= SBN 0 #300 17 5NLW BNZ 0 (6) [EXIT IF NOT OWN MON 17 5P6G LDCT 7 #050 [SET UP OWN MON REPLY 7 5PL6 EXIT 6 0 4 5Q5Q # 9 5QKB # ******************** 4 5R52 # 21 5RJL # SUBROUTINE TO RESET THE OLPA LINK TO ENTER K1FHOBJ AND TRANSFER TO 21 5S4= # THE PCA. THIS IS NECESSARY EVERY TIME WE ENTER OLPODD TO ILLEGAL OR 11 5SHW # TO DEAL WITH LOBS EXCEEDED. 4 5T3G # 5 5TH6 TOPCA 19 5W2Q TOPCA1 RESETLINK(1) [CARRY OUT RESET AND CHANGE 7 5WGB EXIT 6 0 6 5X22 RESETLINK 9 5XFL PAIR FHOBJ,1 4 5X_= # 9 5YDW # ******************** 4 5YYG # 19 5_D6 # SUBROUTINE TO CHECK FOR AND IF POSSIBLE IMPLEMENT A SWITCH OF 20 5_XQ # MULTIFILE ELEMENTS. IF A SWITCH TAKES PLACE WE JUMP BACK TO FHOBJ 19 62CB # TO REPEAT THE PERI WITH THE NEW FILE. OTHERWISE WE EXIT. IF 19 62X2 # NECESSARY THE 'END OF MULTIFILE' MARKER WILL HAVE BEEN SET. 4 63BL # 6 63W= MULTSWITCH 8 64*W SBX 6 FX1 18 64TG COMPQU NOTAMULT [EXIT IF NOT A MULTIFILE 21 65*6 BRN TOFHOBJ [J TO REENTER FHOBJ IF SWITCH DONE 19 65SQ BS 2,MFHEOFMULT [SET SWITCH TO SHOW MF DEAD 10 66#B LDX 3 APETADDR(2) 21 66S2 LOCKCA 3,ACAP(2) [RESET LOCK ON CA (COMPQU CLEARS LOCK 5 67?L NOTAMULT 8 67R= ADX 6 FX1 7 68=W EXIT 6 0 5 68QG TOFHOBJ 9 69=6 ACROSS FHOBJ,1 4 69PQ # 9 6=9B # ******************** 4 6=P2 # 20 6?8L # IF WE GET FILE FULL WHILE WRITING WE ATTEMPT A MULTELEM SWITCH. 19 6?N= # IF THIS FAILS WE EITHER SET AN OWN MON REPLY OR ILLEGAL AS 7 6#7W # APPROPRIATE. 4 6#MG # 6 6*76 XFILEFULL 19 6*## ... VFREE FILE,FWB [MAY BE LEFT BY WRITEB 8 6*FG ... LDX 1 FX1 10 6*LQ CALL 6 MULTSWITCH 16 6BL2 CALL 6 MCHOWN [CHECK IF OWN MON 17 6C5L BNZ 7 SETREP [J TO SET REPLY IF SO 15 6CK= LDN 3 FYOUTFULL [ILLEGAL TYPE 21 6D4W LDX 4 FTYPNO(2) [THIS ILLEGAL REQUIRES X4 AS WELL AS 4 6DJG # 7 6F46 # ********** 4 6FHQ # 21 6G3B # ILLEGALING IS DONE IN OLPDD. WE TRANSFER TO THE PCA AND ENTER OLPODD. 4 6GH2 # 5 6H2L OUTILL 8 6HG= CALL 6 TOPCA 9 6H_W ACROSS OLPODD,4 4 6JFG # 7 6J_6 # ********** 4 6KDQ # 21 6KYB # A MODE #22 HAS REALISED IT IS ABOUT TO READ EOF. IF BIT MFHBLOCKEOF 21 6LD2 # IS CLEAR THIS IS THE FIRST OCCURENCE SO WE ATTEMPT A MULTIFILE ELEM 21 6LXL # SWITCH. IF THIS FAILS WE SET BIT MFHBLOCKEOF AND SET UP A REPLY IN X7 20 6MC= # INDICATING END OF FILE, POSSIBLY WITH THE OWN MON EVENTS BIT SET 6 6MWW # AS WELL. 4 6NBG # 6 6NW6 MODE22EOF 20 6P*Q LDX 1 FX1 [CORRUPT ON ENTRY TO THIS CODE 17 6PTB JBS SECONDEOF,2,MFHBLOCKEOF [J IF SECOND TIME 18 6Q*2 CALL 6 MULTSWITCH [ATTEMPT MULTELEM SWITCH 20 6R#= CALL 6 MCHOWN [CHECK IF OWN MON AND SET BITS 18 6RRW [IN X7 IF APPROPRIATE. 16 6S?G LDX 0 AWORK2(2) [BUFFER ADDRESS 17 6SR6 ANDX 0 REPMASK(1) [MASK OUT MS 6 BITS 16 6T=Q ORX 7 0 [ASSEMBLE REPLY 16 6TQB BS 2,MFHBLOCKEOF [SET EOF SWITCH 18 6W=2 BRN SETREP [AND JUMP TO WINDUP CODE 4 6WPL # 7 6X9= # ********** 4 6XNW # 21 6Y8G # IF EOF HAS BEEN DETECTED TWICE AN END OF FILE VIOLATION HAS OCCURRED 15 6YN6 # SO WE EITHER SET AN OWN MON REPLY OR ILLEGAL. 4 6_7Q # 6 6_MB SECONDEOF 19 72LL CALL 6 MCHOWN [SET OWN MON BITS IF OWN MON 18 736= BNZ 7 SETREP [ TO WIND UP IF REPLY SET 5 73KW NILEOF 21 745G LDX 1 FX1 [MODE #23 JOINS HERE WITH X1 CORRUPT 17 74K6 LDN 3 FYENDFILE [ILLEGAL END OF FILE 9 754Q BRN OUTILL 4 75JB # 7 7642 # ********** 4 76HL # 17 773= # IF THE LIMIT ON ONLINE BS IS REACHED WE GO TO OLPODD 4 77GW # 5 782G TOOMUCH 16 78G6 CALL 6 TOPCA [TRANSFER TO PCA 9 78_Q ACROSS OLPODD,2 4 79FB # 7 79_2 # ********** 4 7=DL # 12 7=Y= # OTHER ILLEGAL SITUATIONS ARE:- 4 7?CW # 9 7?XG # COUNT OUT OF RANGE 4 7#C6 # 5 7#WQ NILCOUNT 9 7*BB LDN 3 FYCOUNT 9 7*W2 BRN OUTILL 4 7B*L # 11 7BT= # ILLEGAL BEG FILE VIOLATION 4 7C#W # 5 7CSG NILBOF 18 7D#6 LDX 1 FX1 [CORRUPT ON JUMPING HERE 9 7DRQ LDN 3 FYBEGFILE 9 7F?B BRN OUTILL 4 7FR2 # 9 7G=L # ILLEGAL DATA FORMAT 4 7GQ= # 5 7H9W NILDATA 9 7HC4 ... VFREEW FILE,FWB 8 7HJ= ... LDX 1 FX1 9 7HPG LDN 3 FYDATAER 9 7J96 BRN OUTILL 4 7JNQ # 4 7K8B # 4 7KN2 # 4 7L7L # 10 7LM= MENDAREA 30,K99FHOBJBL 4 7M6W # 4 7MLG #END 6 ____ ...705514120016