{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: WRITEFIP867)}} ====== WRITEFIP867 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BLOCK|BLOCK]], [[george:macro:CAFSINFO|CAFSINFO]], [[george:macro:CLOSEST|CLOSEST]], [[george:macro:CLOSEWR|CLOSEWR]], [[george:macro:EXCHOFE|EXCHOFE]], [[george:macro:EXMESS|EXMESS]], [[george:macro:EXOFILE|EXOFILE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:KEEPMESS|KEEPMESS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFINDEXOF|MFINDEXOF]], [[george:macro:MFINDSU|MFINDSU]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MUSEST|MUSEST]], [[george:macro:OPENST|OPENST]], [[george:macro:OPTMESS|OPTMESS]], [[george:macro:PICKREP|PICKREP]], [[george:macro:PUTREP|PUTREP]], [[george:macro:READST|READST]], [[george:macro:RELST|RELST]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETREP|SETREP]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTREPNOT|TESTREPNOT]], [[george:macro:TRACE|TRACE]], [[george:macro:UNLOCKSU|UNLOCKSU]], [[george:macro:UP|UP]], [[george:macro:USEST|USEST]], [[george:macro:USESTX|USESTX]] 22FL ... SEG WRITEFIP,867 22^= # 23DW # COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 23YG # 25CB # 25X2 # SEGMENT TO REWRITE OR CREATE FIP 26BL # ACTION DETERMINED BY MARKERS IN EXMARK OF EXOF BLOCK 26W= # ENTERED VIA DOWN FROM CLOSBAC/RENAMEX TO REWRITE FIP -WITH 27*W # PARAMS BRITE+BSERL+BSPEC+BLOCK, 27TG # OR VIA ACROSS FROM SOUP TO CREATE FIP -WITH PARAMS 28*6 # BCREATE+BSPEC+(OPTIONALLY)BSERL+(OPTIONALLY)BSUPP 28SQ # OUTPUT IS REPLY OK OR EXFAIL ,IF EXFAIL MARKERS FOR REASON SET IN 29#B # EMARK OF GEXD BLOCK AS FOLLOWS: 29S2 # ABREAK = BREAK-IN WHILST WAITING FOR SU TO BE LOADED 2=?L # OR SCALO TO BE CLAIMED 2=R= # AFAIL = TRANSFER FAIL WHILST READING FIP CELLS 2?=W # OR EXOFILE SECURITY CHECK FAILURE 2?QG # APLINKF= IPB FAILURE - SCALO NOT AVAILABLE 2#=6 # ANONL = UNIT NOT ONLINE(PLEASE LOAD MESS SUPPRESSED) 2#PQ # ARITE = CD REPLY TO PLEASE LOAD REQUEST 2*9B # ANFOUND= FILE NOT FOUND(BRITE ONLY) 2*P2 # ANOROOM= NO ROOM TO CREATE FIP 2B8L # ANINUSE= FILE ALREADY EXISTS(BCREATE ONLY) 2BN= # 2C7W # 2CMG SEGENTRY K1WRITEFIP,QK1WRITEFIP [REWRITE FIP (VIA DOWN) 2D76 SEGENTRY K2WRITEFIP,QK2WRITEFIP [CREATE FIP (ACROSS FROM SOUP) 2DLQ # 2F6B # 2FL2 XEWR +EWFULS 2G5L XEWN +EWNOL [UNIT NOT ONLINE 2GK= XEWI +EWINUSE 2H4W XEWCS +EWCONSEC [CANT CREATE ON SECURE SU 2HJG XEWCI +EWCONINS [CANT CREATE ON INSECURE SU 2J46 XEWTC +EWTCEE [TRAPS CLOSED FOR EXOFILE ENTRY 2JHQ XEWNE +EWSUNE [SU UNSUITABLE - NO EXOF ENTRY 2K3B XEWNT +EWSUTC [SU UNSUITABLE - TRAPS CLOSED 2KH2 # 2L2L NX5 #37777777 2LG= # 2L^W XER1 GEOERR 1,EXOTRAN 2MFG # 2M^6 # S/R TO SET X2 POINTING TO EWDAS/EXOF 2NDQ # AND X3 POINTING TO EWDAS/GEXD 2NYB # 2PD2 XHUNT MHUNTW 2,EWDAS,EXOF 2PXL MHUNTW 3,EWDAS,GEXD 2QC= EXIT 5 0 2QWW # 2RBG # 2RW6 # S/R TO FIND AND GET NEXT S.U. 2S*Q # LINK X7 2STB # ON ENTRY AND EXIT X1 POINTS TO CURRENT SU ASTUC 2T*2 # X2 EXOF BLOCK 2TSL # X3 GEXD BLOCK 2W#= # 2WRW # USES X4,X5 2X?G # 2XR6 NEXTSU 2Y=Q SBX 7 FX1 2YQB LDN 4 0 2^=2 NX2 LDX 1 FPTR(1) 2^PL TXU 1 CXCC 329= BCC NX1 [JUMP IF END OF CHAIN 32NW LDX 0 BACK1(1) 338G BZE 0 NX1 [JUMP IF NO MORE ASTUCS 33N6 BNG 0 NX2 [JUMP IF DEAD ASTUC 347Q LDCT 0 #200 34MB ANDX 0 ASMARK(1) 3572 BNZ 0 NX2 [OR DISENGAGED 35LL LDX 0 EXMARK(2) 366= ANDN 0 BCREATE 36KW BZE 0 NX3 [JUMP IF NOT CREATING FILE 375G LDCT 0 #100 [CHECK SCRATCH INHIBIT BIT 37K6 ANDX 0 HSTUN(1) 384Q BNZ 0 NX2 [JUMP IF SCRATCH INHIBIT 38JB NX3 LDX 5 BACK1(1) [SAVE SERIAL NO 3942 USESTX 5,NX9,,TBREAK,NX9 [ADD ONE TO COUNT OF USERS AND GET SC 39HL MHUNTW 3,EWDAS,EXOF 3=3= LDX 0 EXMARK(3) 3=GW ANDN 0 BCREATE 3?2G BZE 0 NXES9 [J IF FILE NOT BEING CREATED 3?G6 LDN 0 CAPPEND [APPEND 3?^Q STO 0 AWORK2(2) [TRAPS TO BE CHECKED FOR 3#FB EXCHOFE ICL,5,AWORK2(2),NXES9 [DETERMINE IF EXOF ENTRY HAS TRAP 3#^2 PICKREP 6 [PRESERVE REPLY 3*DL TESTREP2 OK,NXES1,NOFILE,NXES2,NOTRAP,NXES3 3*Y= BRN XER1 3BCW NXES2 3BXG LDX 0 EDSQ 3CC6 BNG 0 NXES7 [J IF FULL SECURITY IN USE 3CWQ NXES1 3DBB LDN 0 CWRITE [WRITE 3DW2 STO 0 AWORK2(2) [TRAPS TO BE CHECKED FOR 3F*L EXCHOFE EXOF,5,AWORK2(2),NXES9 [DETERMINE IF EXOF ENTRY HAS 3FT= TESTREP2 OK,NXES4,NOFILE,NXES5,NOTRAP,NXES6 [CORRECT TRAPS 3G#W BRN XER1 3GSG NXES4 3H#6 PUTREP 6 [OLD REPLY 3HRQ TESTREP2 OK,NXES4A [OK+OK MEANS OK TO GO ON 3J?B LDX 6 XEWCI(1) [CANT CREATE SECURE ON INSECURE SU 3JR2 BRN NXES8 3K=L NXES4A 3KQ= EXCHOFE ICL,5,,NXES9,AW [D&T WRITTEN+ACCESSED FOR ICLSCAFILE 3L9W EXCHOFE EXOF,5,,NXES9,AW [ " " " " " EXOF ENTRY 3LPG BRN NXES9 3M96 NXES5 3MNQ PUTREP 6 3N8B TESTREP2 NOFILE,NXES9 [NOFILE+NOFILE MEANS OK TO GO ON 3NN2 LDX 6 XEWCS(1) [CANT CREATE INSECURE ON SECURE SU 3P7L BRN NXES8 3PM= NXES6 3Q6W LDX 6 XEWTC(1) [EXOFILE ENTRY'S TRAPS CLOSED 3QLG BRN NXES8 3R66 NXES3 3RKQ LDX 6 XEWNT(1) [SU UNSUITABLE - TRAPS CLOSED 3S5B BRN NXES8 3SK2 NXES7 3T4L LDX 6 XEWNE(1) [SU UNSUITABLE - NO EXOF ENTRY 3TJ= NXES8 3W3W OPTMESS 6,5 3WHG UNLOCKSU 5 [UNLOCK THIS ONE 3X36 BRN NX9 3XGQ NXES9 3Y2B ADN 7 1 [UPDATE LINK TO EXIT OK 3YG2 MHUNTW 3,EWDAS,GEXD 3Y^L STO 5 ESERL(3) [SAVE SERIAL NUMBER OF THIS UNIT 3^F= NX1 BZE 4 NX10 [JUMP IF NO UNIT SAVED 3^YW RELST 4 [OTHERWISE RELEASE IT 42DG NX10 CALL 5 XHUNT 42Y6 ADX 7 FX1 43CQ EXIT 7 0 43XB # 44C2 # SCALO NOT AVAILABLE OR IN USE BY S-TRUSTED 44WL # 45B= NX9 BZE 4 NX11 [JUMP IF NO UNIT SAVED 45TW RELST 4 46*G NX11 LDX 4 5 [SAVE NEW UNIT SERIAL NO. 46T6 MFINDSU 1,4 [REFIND ASTUC 47#Q CALL 5 XHUNT 47SB BRN NX2 [JUMP TO GET NEXT UNIT 48#2 # 48RL # BREAKIN WHILE WAITING FOR LOCK-OUT FROM OTHER PROCESSOR 49?= # 49QW TBREAK 4==G CALL 5 XHUNT 4=Q6 LDN 0 ABREAK 4?9Q ORS 0 EMARK(3) [SET BREAK IN MARKER 4?PB BRN NX1 4#92 # 4#NL # 4*8= # 4*MW # READ S/R LINK X5 ADDRESS X1 4B7G # 4BM6 XREAD 4C6Q SBX 5 FX1 [READ S/R 4CLB READST 1,XRD1 4D62 TESTREPNOT OK,XRD2 4DKL LDX 1 ECOR(3) 4F5= XRD1 MHUNTW 2,EWDAS,EXOF 4FJW ADX 5 FX1 4G4G EXIT 5 1 4GJ6 XRD2 TESTREPNOT EXFAIL,XER1 4H3Q ADX 5 FX1 4HHB EXIT 5 0 4J32 # 4JGL # 4K2= # UNLOCK UNIT S/R LINK X7 SERIAL NUMBER X1 4KFW # 4K^G XUNLOCK 4LF6 SBX 7 FX1 4LYQ UNLOCKSU 1 4MDB CALL 5 XHUNT 4MY2 ADX 7 FX1 4NCL EXIT 7 0 4NX= # 4PBW # OPEN UNIT S/R LINK X7 SERIAL NO. ESERL(3) 4PWG # 4QB6 XOPEN 4QTQ OPENST 4R*B EXIT 7 0 4RT2 # 4S#L # 4SS= # START HERE 4T?W # THROUGHOUT X2 POINTS TO EXOF BLOCK 4TRG # X3 POINTS TO GEXD BLOCK 4W?6 # 4WQQ QK2WRITEFIP 4X=B NGNC 0 1 4XQ2 QK1WRITEFIP 4Y9L LDN 0 0 4YP= STO 0 AWORK1(2) 4^8W CALL 5 XHUNT 4^NG STOZ EMARK(3) [ZEROISE RESULT MARKER 5286 ... TRACE EXMARK(2),EXOPEN 52MQ ... TRACE ASUSN(2), 537B # 53M2 # CHECK VALID ENTRY PARAMS 546L # 54L= LDX 0 EXMARK(2) 555W LDN 4 BRITE+BSPEC+BSERL+BLOCK [CHECK SENSIBLE 55KG ANDX 0 4 [COMBINATION OF BRITE PARAMS 5656 TXU 0 4 56JQ BCC XROK [^ IF OK 574B LDX 0 EXMARK(2) 57J2 LDN 4 BCREATE+BSPEC [CHECK SENSIBLE 583L ANDX 0 4 [COMBINATION OF BCREATE PARAMS 58H= TXU 0 4 592W BCC XROK 59GG XMARK GEOERR 1,MARKERR [OTHERWISE ERROR 5=26 XROK LDX 0 EXMARK(2) 5=FQ ANDX 0 BOPEN+BANY+BHIGH+BREPQUAL [CHECK NO OTHER INVALID MARKERS 5=^B BNZ 0 XMARK 5?F2 # 5?YL LDX 0 EXMARK(2) 5#D= ANDN 0 BRITE 5#XW BNZ 0 XRITE [JUMP IF FIP TO BE REWRITTEN 5*CG LDX 0 EXMARK(2) 5*X6 ANDN 0 BSERL 5BBQ BZE 0 SERCH [JUMP IF SERIAL NUMBER NOT SPECIFIED 5BWB # 5CB2 # SERIAL NUMBER SPECIFIED 5CTL # GET UNIT ON LINE IF NECCESSARY 5D*= # 5DSW LDX 0 EXMARK(2) 5F#G ANDN 0 BCREATE 5FS6 BZE 0 PES10 [J IF EXOFILE NOT BEING CREATED 5G?Q LDX 7 ASUSN(2) 5GRB LDN 5 CAPPEND [APPEND 5H?2 EXCHOFE ICL,7,5,PES10 [TRAPS TO BE CHECKED FOR 5HQL PICKREP 6 [PRESERVE REPLY 5J== TESTREP2 OK,PES1,NOFILE,PES2,NOTRAP,PES3 5JPW BRN XER1 5K9G PES2 5KP6 LDX 0 EDSQ 5L8Q BNG 0 PES7 [J IF FULL SECURITY IN USE 5LNB PES1 5M82 LDN 5 CWRITE [CHECK FOR WRITE TRAPS 5MML EXCHOFE EXOF,,5,PES9 [TO EXOFILE ENTRY 5N7= TESTREP2 OK,PES4,NOFILE,PES5,NOTRAP,PES6 5NLW BRN XER1 5P6G PES4 5PL6 PUTREP 6 5Q5Q TESTREP OK,PES4A [OK+OK MEANS OK TO,GO ON 5QKB LDX 5 XEWCI(1) [CANT CREATE ON INSECURE SU 5R52 BRN PES8 5RJL PES4A 5S4= EXCHOFE ICL,7,,PES9,AW [D&T WRITTEN+ACESSED FOR ICLSCAFILE 5SHW EXCHOFE EXOF,,,PES9,AW [ " " " " " EXOF ENTRY 5T3G BRN PES9 5TH6 PES5 5W2Q PUTREP 6 5WGB TESTREP NOFILE,PES9 [NOFILE+NOFILE MEANS OK TO GO ON 5X22 LDX 5 XEWCS(1) [CANT CREATE ON SECURE SU 5XFL BRN PES8 5X^= PES6 5YDW LDX 5 XEWTC(1) [TRAPS CLOSED FOR EXOFILE ENTRY 5YYG BRN PES8 5^D6 PES7 5^XQ LDX 5 XEWNE(1) [SU UNSUITABLE - NO EXOFILE ENTRY 62CB BRN PES8 62X2 PES3 63BL LDX 5 XEWNT(1) [SU UNSUITABLE - TRAPS CLOSED 63W= PES8 64*W KEEPMESS 5,7 64TG LDN 4 AFAIL [SUPPRESS FURTHER MESSAGE + 65*6 BRN P2D [IT GIVES OL *DA0 FAIL IN CHINERR 65SQ PES9 66#B CALL 5 XHUNT 66S2 PES10 67?L USEST ASUSN(2),P2A,,P2F,P2H 67R= # 68=W # UNIT NOW MARKED "TO BE KEPT ONLINE" + SCALO CLAIMED 68QG # 69=6 P2G CALL 5 XHUNT 69PQ LDX 0 ASUSN(2) 6=9B STO 0 ESERL(3) [PUT SERIAL NUMBER IN GEXD 6=P2 BRN PS1 [GO TO SEARCH FIP CELLS 6?8L # 6?N= # UNIT NOT ONLINE OR IN USE BY S-TRUSTED 6#7W # 6#MG P2A CALL 5 XHUNT 6*76 LDX 0 EXMARK(2) 6*LQ ANDN 0 BSUPP [CHECK IF TO SUPPRESS LOAD MESSAGE 6B6B BZE 0 P2C [JUMP IF NOT 6BL2 KEEPMESS XEWN(1),ASUSN(2) [UNIT NOT ONLINE 6C5L LDN 4 ANONL 6CK= BRN P2D 6D4W # 6DJG # SCALO NOT AVAILABLE - IPB FAILURE 6F46 # 6FHQ P2H LDN 4 APLINKF [IPB FAIL 6G3B BRN P2D 6GH2 # 6H2L # OUTPUT REQUEST FOR UNIT TO BE PUT ONLINE 6HG= # 6H^W P2C MUSEST ASUSN(2),P2E,P2F,,P2H 6JFG BRN P2G 6J^6 # 6KDQ # CANTDO TO REQUEST 6KYB # 6LD2 P2E LDN 4 ARITE 6LXL BRN P2D 6MC= # 6MWW # BREAK-IN WHILST WAITING FOR UNIT TO BE PUT ONLINE 6NBG # 6NW6 P2F LDN 4 ABREAK [BREAKIN 6P*Q P2D CALL 5 XHUNT 6PTB ORS 4 EMARK(3) 6Q*2 BRN XERR 6QSL # 6R#= # BSERL NOT SPECIFIED - START SEARCH OF ALL ONLINE UNITS 6RRW # 6S?G SERCH STOZ ASUSN(2) 6SR6 LDN 1 BCCB 6T=Q CALL 7 NEXTSU [GET NEXT UNIT ONLINE 6TQB BRN TF4 [NO SUITABLE UNIT FOUND 6W=2 # 6WPL # SEARCH FIP CELLS OF SPECIFIED OR CURRENT UNIT 6X9= # 6XNW PS1 CALL 7 XOPEN [OPEN UNIT 6Y8G PS1A LDN 0 147 6YN6 STO 0 HOME(2) [START OF FIP CELLS 6^7Q PS1B LDX 1 HOME(2) 6^MB CALL 5 XREAD [READ NEXT CELL 7272 BRN TF1 [TRANSFER ERROR 72LL PS1C LDX 0 0(1) 736= BNG 0 US1 [CHECK IF CELL UNUSED 73KW LDX 5 2(1) 745G LDX 6 3(1) 74K6 LDX 7 4(1) [CHECK FILENAMES 754Q TXU 5 FIP(2) 75JB TXU 6 FIP+1(2) 7642 TXU 7 FIP+2(2) 76HL BCS P5 [JUMP IF DIFFERENT 773= LDX 0 6(1) [GEN NUMBER CHECK 77GW SRL 0 12 782G LDX 4 FIP+4(2) 78G6 SRL 4 12 78^Q TXU 0 4 79FB BCS P5 [JUMP IF DIFFERENT 79^2 LDX 0 EXMARK(2) 7=DL ANDN 0 BCREATE 7=Y= BNZ 0 TF5 [JUMP IF CREATING FIP 7?CW # 7?XG # 7#C6 # EXISTING FIP FOUND 7#WQ # 7*BB LDX 4 HOME(2) 7*W2 LDX 5 BACK2(2) 7B*L MFINDEXOF 2,5 [FIND EXOF IN CCB CHAIN 7BT= STO 4 HOME(2) [RESET B S HOME 7C#W BRN XUPDF [JUMP TO REWRITE 7CSG # 7D#6 # FILENAME OR GEN DIFFERENT 7DRQ # GET NEXT FIP CELL 7F?B # 7FR2 P5 LDX 0 0(1) [POINTER TO NEXT CELL 7G=L BNZ 0 P5A [JUMP IF NEXT CELL NOT CONSECUTIVE 7GQ= LDN 1 17 7H9W ADS 1 ECOR(3) [UPDATE CORE POINTER 7HPG ADS 1 HOME(2) [ UPDATE B.S HOME 7J96 LDX 1 ECOR(3) 7JNQ BRN PS1C 7K8B P5A SMO FX1 7KN2 TXU 0 NX5 [CHECK IF END OF CHAIN 7L7L BCC TF6 [JUMP IF IT IS 7LM= STO 0 HOME(2) 7M6W BRN PS1B [CONTINUE SEARCH 7MLG # 7N66 # NO MORE USED CELLS 7NKQ # 7P5B US1 LDX 0 EXMARK(2) 7PK2 ANDN 0 BCREATE 7Q4L BNZ 0 XCRE 7QJ= LDN 0 ANFOUND [FILE NOT FOUND 7R3W ORS 0 EMARK(3) 7RHG CLOSEST XERR [GO TO SEARCH FIP CELLS 7S36 BRN XERR 7SGQ # 7T2B # ROOM FOUND TO CREATE FILE 7TG2 # 7T^L XCRE NGNC 0 1 7WF= ANDS 0 0(1) [UNSET UNUSED BIT 7WYW STOZ 1(1) [FDCELL POINTER 7XDG LDN 0 1 7XY6 STO 0 FBUK(2) 7YCQ LDX 0 ESERL(3) 7YXB STO 0 ASUSN(2) [PUT SERIAL NO IN EXOF 7^C2 BRN XUPDF 7^WL # 82B= # 82TW # REWRITE FIP. 83*G # 83T6 XRITE CALL 7 XOPEN [OPEN UNIT 84#Q LDX 1 HOME(2) 84SB CALL 5 XREAD 85#2 BRN TF2 [TRANSFER ERROR 85RL LDX 5 2(1) [CHECK FILENAME 86?= LDX 6 3(1) 86QW LDX 7 4(1) 87=G TXU 5 FIP(2) 87Q6 TXU 6 FIP+1(2) 889Q TXU 7 FIP+2(2) 88PB BCS PS1A [JUMP IF NOT THE SAME 8992 LDX 4 6(1) [CHECK GEN NUMBER 89NL SRL 4 12 8=8= LDX 0 FIP+4(2) 8=MW SRL 0 12 8?7G TXU 0 4 8?M6 BCS PS1A [JUMP IF NOT THE SAME 8#6Q LDX 4 BACK2(2) 8#LB MFINDEXOF 2,4 8*62 # 8*KL # HERE TO UPDATE FIP 8B5= # 8BJW XUPDF ADN 1 2 8C4G LDN 0 FIP(2) 8CJ6 MOVE 0 15 8D3Q CLOSEWR W,HOME(2) 8DHB TESTREPNOT OK,TF3 8F32 CALL 5 XHUNT 8FGL STOZ EMARK(3) 8G2= # 8GFW XEND SETREP OK 8G^G SMO FX2 8HF6 LDX 0 AWORK1 8HYQ BNZ 0 XEND1 8JDB UP 8JY2 # 8KCL # FIP SUCCESSFULLY CREATED - PREPARE TO OPEN FILE 8KX= # 8LBW XEND1 8LWG STOZ COPEN(2) [CLEAR COPEN AND BACK2 8MB6 STOZ BACK2(2) 8MTQ LDN 0 #7777 8N*B ANDS 0 EXMARK(2) [ALSO B0-11 OF EXMARK 8NT2 LDN 0 1 [CREATE:- 8P#L STO 0 COPEN(2) [COUNT OF OPENS=1 8PS= LDCT 0 #400 8Q?W STO 0 EXMARK(2) [SET WRITE MARKER 8QRG LDX 7 2 8R?6 EXOFILE 7 [CHAIN IN EXOF & GIVE IT A NUMBER 8RQQ LDX 2 7 8S=B LDX 7 BACK2(2) 8SQ2 STO 7 CEFN(3) [SAVE EFN 8T9L LDX 6 ASUSN(2) [PICK UP SERIAL NO 8TP= # AS THE FILE IS BEING OPENED FOR WRITING WE HAVE TO INFORM 8W8W # THE CAFS SUBSYSTEM OF THE EVENT 8WNG CAFSINFO OPENFILE,CEFN(3) 8X86 EXMESS 8XMQ ACROSS ANTIC,1 [CONNECT FILE 8Y7B # 8YM2 # 8^6L # FAILURE CASES 8^L= # 925W # TRANSFER FAIL WHILE READING FIP CELLS 92KG # 9356 TF1 LDN 4 AFAIL 93JQ TF1C CALL 5 XHUNT 944B TF1B ORS 4 EMARK(3) [SET FAIL BIT 94J2 LDX 0 EXMARK(2) 953L ANDN 0 BSERL 95H= BZE 0 TF1A [^ IF SERIAL NUMBER NOT SPECIFIED 962W LDN 0 BLOCK 96GG ANDX 0 EXMARK(2) 9726 BNZ 0 XERR [^ IF LOCKED ON ENTRY 97FQ BRN XREL 97^B TF1A LDX 6 ESERL(3) [OTHERWISE (BCREATE ONLY) ATTEMPT 98F2 SMO FX2 [TO SEARCH NEXT ONLINE UNIT 98YL STO 6 AWORK4 [PRESERVE X6 99D= MFINDSU 1,6 99XW CALL 7 NEXTSU [GET NEXT S.U,IF ANY 9=CG BRN XREL [JUMP IF NO MORE 9=X6 SMO FX2 9?BQ LDX 6 AWORK4 9?WB LDCT 0 #400 9#B2 ANDX 0 EMARK(3) 9#TL ERS 0 EMARK(3) [UNSET 9**= BNZ 0 PS1 [J IF NOT TO UNLOCK PREVIOUS UNIT 9*SW LDX 1 6 9B#G CALL 7 XUNLOCK [UNLOCK UNIT 9BS6 RELST 6 9C?Q CALL 5 XHUNT 9CRB BRN PS1 [BACK TO SEARCH NEXT UNIT 9D?2 # 9DQL # 9F== # READ FAIL FOR FIP REWRITE 9FPW # 9G9G TF2 LDN 4 AFAIL 9GP6 BRN TF1C 9H8Q # 9HNB # TRANSFER FAIL WHILST WRITING FIP 9J82 # 9JML TF3 LDN 4 ARITE 9K7= BRN TF1C 9KLW # 9L6G # 9LL6 # NO SUITABLE UNIT FOUND (CREATE ONLY) 9M5Q # 9MKB TF4 CALL 5 XHUNT 9N52 LDX 0 EMARK(3) 9NJL ANDN 0 ABREAK 9P4= BNZ 0 XERR 9PHW LDN 0 ANONL 9Q3G ORS 0 EMARK(3) 9QH6 BRN XERR 9R2Q # 9RGB # 9S22 # FILE FOUND WHILST CREATING. 9SFL # 9S^= TF5 LDX 1 FX1 9TDW OPTMESS XEWI(1),ESERL(3) [FILENAME IN USE 9TYG CALL 5 XHUNT 9WD6 LDN 0 AINUSE 9WXQ ORS 0 EMARK(3) 9XCB CLOSEST TF5A 9XX2 TESTREPNOT OK,XER1 9YBL CALL 5 XHUNT 9YW= TF5A LDN 0 BSERL 9^*W ANDX 0 EXMARK(2) 9^TG BNZ 0 XREL =2*6 BRN TF1A =2SQ # =3#B # =3S2 # NO ROOM TO CREATE FIP ON THIS SU =4?L # =4R= # =5=W TF6 LDX 1 FX1 =5QG OPTMESS XEWR(1),ESERL(3) [OPTIONALLY OUTPUT NO ROOM =6=6 LDN 4 ANOROOM =6PQ BRN TF1C =79B # =7P2 # IN SOME FAILURE CASES UNIT MUST BE UNLOCKED + RELEASED =88L # =8N= XREL LDX 1 ESERL(3) =97W CALL 7 XUNLOCK =9MG RELST ESERL(3) ==76 # ==LQ # FAILURE CASE TERMINATION IS UP OR ACROSS TO K1CHINERR =?6B # =?L2 XERR SETREP EXFAIL =#5L SMO FX2 =#K= LDX 0 AWORK1 =*4W BZE 0 XERR1 =*JG ACROSS CHINERR,1 =B46 XERR1 UP =BHQ # =C3B MENDAREA 30,K99WRITEFIP =CH2 #END ^^^^ ...321744250003