{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: NETOFLNE867)}} ====== NETOFLNE867 ====== (George Source) **Macros used:** [[george:macro:ALTLEN|ALTLEN]], [[george:macro:CHANGEPER|CHANGEPER]], [[george:macro:CHECKB|CHECKB]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERR|COMERR]], [[george:macro:COOR1|COOR1]], [[george:macro:COOR1Y|COOR1Y]], [[george:macro:DCA|DCA]], [[george:macro:DFLOAD|DFLOAD]], [[george:macro:DOWN|DOWN]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:ERROR|ERROR]], [[george:macro:ERRTEST|ERRTEST]], [[george:macro:FADDRESS|FADDRESS]], [[george:macro:FNORM|FNORM]], [[george:macro:FOUTMOVE|FOUTMOVE]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FSHCODE|FSHCODE]], [[george:macro:FSHSKIP|FSHSKIP]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETACTX|GETACTX]], [[george:macro:GPERI|GPERI]], [[george:macro:HLSXONCH|HLSXONCH]], [[george:macro:ILLEGALX|ILLEGALX]], [[george:macro:JFREZFCB|JFREZFCB]], [[george:macro:LGEOG|LGEOG]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LOCKCA|LOCKCA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:OLPFINX|OLPFINX]], [[george:macro:OPEN|OPEN]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:OUTPAR|OUTPAR]], [[george:macro:PAIR|PAIR]], [[george:macro:PERCON|PERCON]], [[george:macro:PICKREP2|PICKREP2]], [[george:macro:PMODES|PMODES]], [[george:macro:PUTREP2|PUTREP2]], [[george:macro:RELPERENT|RELPERENT]], [[george:macro:REPALLER|REPALLER]], [[george:macro:ROLPA|ROLPA]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SKIP|SKIP]], [[george:macro:SPARANOT|SPARANOT]], [[george:macro:TESTERR|TESTERR]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTREPNOT|TESTREPNOT]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TOPCA|TOPCA]], [[george:macro:TOPFCB|TOPFCB]], [[george:macro:TRACE|TRACE]], [[george:macro:UNPLUG|UNPLUG]], [[george:macro:UP|UP]], [[george:macro:VFREE|VFREE]] 22FL SEG NETOFLNE,867,SECT.FILE,,G550 22^= #LIS K0NETOFLNE 23DW #OPT G550 = 0 23YG #SKI G550&1 24D6 # FOR G3UG MEND M550 (LINE PRINTER OUTPUT DIRECT TO MAGNETIC TAPE) 24XQ SEGENTRY K1NETOFLNE,Z1NETOFLNE[ZOFFLINE(ZF) 25CB SEGENTRY K2NETOFLNE,Z2NETOFLNE[PERI HANDLING 25X2 SEGENTRY K3NETOFLNE,Z3NETOFLNE[RELEASE ENTRY 26BL SEGENTRY K4NETOFLNE,Z4NETOFLNE['ILLEGAL' ENTRY 26W= [ 27*W [ 27TG [ THIS SEGMENT WRITTEN BY N.E.T.R.H.A. 28*6 [ 28SQ [ IT IMPLEMENTS THE ZOFFLINE COMMAND TO SPOOL 29#B [ PRINT DIRECTLY TO TAPE, AND THE OTHER LINKED 29S2 [ FUNCTIONS. 2=?L [ 2=R= [ NOTE: IT WILL ONLY IMPLEMENT 2/#0 OR 2/#4 PERIS 2?=W [ THE 2/#2 AUTOWRITE WILL BE FLAGED AS ILLEGAL 2?QG [ 2#=6 [ 2#PQ XFIVE +5 2*9B XLP +2 2*P2 XMASK #77777771 2B8L XMASK1 #60000000 2BN= XMASK2 #60077777 2C7W XMASK3 #17777777 2CMG XMASK4 #04000000 2D76 XMASK5 #02000000 2DLQ XHASH11 #11 2F6B XHASH51 #51 2FL2 XWRITE #40 2G5L XTRA 2,4096,2,4096,2,4096 2GK= MAX1 +162 2H4W MAX2 +513 2HJG ZJYMODE +JYMODE 2J46 ZJYCHAR +JYCHAR 2JHQ ZJYCOUNT +JYCOUNT 2K3B ZJYRESVIOL +JYRESVIOL 2KH2 ZJYOUTFULL +JYOUTFULL 2L2L ZJYPERFAIL +JYPERFAIL 2LG= PAIR2 PAIR NETOFLNE,2 2L^W PAIR4 PAIR NETOFLNE,4 2MFG # 2M^6 # 2NDQ # ZOFFLINE COMMAND 2NYB # 2PD2 # 2PXL Z1NETOFLNE 2QC= # DECODE COMMAND PARAMETERS 2QWW PERCON 1 [DECODE PERIPHERAL NAME 2RBG TESTREPNOT OK,TERR [J IF ERROR 2RW6 MHUNT 3,CPAR,GPERCON [LOOK FOR REPLY BLOCK 2S*Q LDX 0 A1(3) 2STB SRL 0 15 2T*2 TXU 0 XLP(1) 2TSL BCC P1 [J IF LP 2W#= SPARANOT 1 [PASS FIRST PARAMETER 2WRW ERROR JPNAL,JNOTLP [OTHERWISE REPORT ERROR 2X?G TERR ENDCOM [TERMINATE IF ERROR 2XR6 # RELEASE ANY PREVIOUS CHANNEL 2Y=Q P1 LDX 5 A1(3) [TYPE/UNIT NO. 2YQB STO 5 AWORK4(2) 2^=2 #UNS JWPHASE4 2^PL ( 329= LDCT 6 #3 32NW ADX 6 5 338G HLSXONCH XBRKIN,6,PHLSER 33N6 ) 347Q RELPERENT 5 [RELEASE ANY PREVIOUS PERIPHERAL 34MB # ENTRANT DESCRIPTION PARAMETER 3572 P4 SPARANOT 2 [UNPACK ENTRANT DESCRIPTION 35LL MHUNT 3,CPB,CUNI 366= LDX 0 ANUM(3) 36KW BPZ 0 P2 [J UNLESS PARAMETER MISSING 375G COMERR JPARMIS,JFENTRANT 37K6 #UNS JWPHASE4 384Q ( 38JB PHLSER 3942 COMERR ERHLSONL 39HL ) 3=3= PNOTEMP 3=GW COMERR ERTEMPDIR 3?2G P2 NAMETOP 3,FILE,FNAME 3?G6 FNORM 3?^Q PICKREP2 7 3#FB MHUNT 3,FILE,FNAME 3#^2 NAMETOP 3,CPB,CUNI 3*DL PUTREP2 7 3*Y= NGN 7 1 3BCW TESTREP2 NAMEFORM,TERR 3BXG TESTRPN2 OK,TERR 3CC6 P5 MFREE CPB,CUNI 3CWQ MHUNT 3,FILE,FABSNB 3DBB LDX 0 ATYPE(3) 3DW2 ANDN 0 #200 3F*L BNZ 0 PNOTEMP 3FT= LDX 0 HDREC(3) 3G#W SBN 0 10 3GSG BNG 0 PE1 3H#6 ADN 0 4 3HRQ STO 0 HDREC(3) [INSERT REDUCED LENGTH 3J?B LDX 0 ACES 3JR2 SMO HDREC(3) 3K=L STO 0 A1+5(3) 3KQ= NGN 0 #101 3L9W ANDS 0 ATYPE(3) [REMOVE LANG CODE BIT 3LPG FSHCODE B,XFSHBOPEN 3M96 ([ 3MNQ OPEN PG4,GENERAL,QUERY [OPEN DIRECTORY 3N8B XFSHBOPEN 3NN2 )[ 3P7L FSHSKIP B,XFSHNBOPEN 3PM= ([ 3Q6W OPEN PG4,READ,QUERY 3QLG XFSHNBOPEN 3R66 )[ 3RKQ TESTREP2 OK,P6 3S5B TESTERR NAME,TERR 3SK2 TESTREP2 NOFILE,PE4 3T4L TESTREP2 VRYWRONG,PE4 3TJ= TESTREP2 NOUSER,PE4 3W3W GEOERR 1,REPLY 3WHG P6 3X36 MHUNT 2,FILE,FABSNB [THE FABSNB NEEDS TO BE SET 3XGQ LDN 0 6 [TO CONTAIN :USER.LOCALNAME ONLY 3Y2B ADS 0 A1(2) [THIS IS FOR LATER USE WHEN 3YG2 LDX 0 A1(2) [UPDATING BUDGETS 3Y^L SBN 0 10 3^F= BZE 0 P02 3^YW LDX 3 2 42DG TOPFCB 1 42Y6 ADN 1 FME1 43CQ ADN 2 A1+1 43XB MOVE 1 3 44C2 SMO A1(3) 44WL LDN 1 A1-6(3) 45B= LDN 2 A1+4(3) 45TW LDX 5 ALOGLEN(3) 46*G SBX 5 A1(3) 46T6 ADN 5 6 47#Q SMO 5 47SB MOVE 1 0 [MOVE LOCAL NAME UP FABSNB 48#2 ADN 5 4 48RL LDN 1 10 49?= STO 1 A1(3) 49QW ALTLEN 3,5,FILE,FABSNB 4==G P02 4=Q6 #UNS FTS1 4?9Q ( 4?PB TOPFCB 3 [X3 POINTS TO DIRS FILE-FCB 4#92 JFREZFCB 3,PERR2 [TEST FOR FROZEN DIR & FREEZE PRIVILE 4#NL ) 4*8= OWNERCHECK [CHECK OUT OWNERSHIP OF TAPE 4*MW PICKREP2 3 4B7G CLOSETOP [CLOSE DIRECTORY 4BM6 PUTREP2 3 4C6Q #UNS FTS1 4CLB ( 4D62 TESTREP2 OK,P7 [OWNERSHIP OK? 4DKL REPALLER 4F5= BRN TERR 4FJW ) 4G4G P7 MHUNT 3,FILE,FABSNB 4GJ6 #UNS FTS1 4H3Q VFREE FILE,ADJUNCTS 4HHB LDN 0 1 4J32 ORS 0 ATYPE(3) [NON-FILESTORE ENTRANT REQUIRED 4JGL STOZ ACOMMUNE1(2) 4K2= TRACE 2,GETONZF 4KFW DOWN GET,3 [GO DOWN TO GET A TAPE 4K^G BRN XBRKIN 4LF6 TESTREPNOT OK,PE [J IF FAILED TO GET A TAPE 4LYQ OUTPAR TIMENOW 4MDB LGEOG ,3 4MY2 P8 OUTPACK 3,1,GEOPER,P8 4NCL P9 LDX 5 AWORK4(2) 4NX= OUTPACK 5,1,PERINAME,P9 4PBW DFLOAD ,TSN,3 4PWG P10 OUTPACK 3,1,TSN,P10 4QB6 P11 MHUNT 3,FILE,FABSNB 4QTQ ADX 3 HDREC(3) 4R*B OUTPACK A1-6(3),3,LOCNAME,P11 4RT2 P12 MHUNT 3,FILE,FABSNB 4S#L ADX 3 HDREC(3) 4SS= OUTPACK A1-2(3),1,GENNUM,P12 4T?W P13 MHUNT 3,FILE,FABSNB 4TRG ADX 3 HDREC(3) 4W?6 OUTPACK A1-3(3),1,REELNUM,P13 4WQQ OUTPAR SKIP 4X=B MONOUT JPER 4XQ2 MHUNT 3,FILE,FABSNB 4Y9L FREECORE 3 4YP= LDN 3 AOLPTLEN+AZFLEN 4^8W LDCT 5 AOLPT/8 [AOLPT TYPE 4^NG GETACTX 5,3,1 5286 LDX 3 BPTR(2) 52MQ LDX 0 JOBNO(2) 537B STO 0 JOBNO(3) 53M2 LDCT 0 #400 546L STO 0 FRECHADD(3) 54L= ORS 0 GIVE(3) [SET BIT FOR ADLOT 555W LDX 0 AWORK4(2) 55KG STO 0 FTYPNO(3) 5656 STOZ AWORK1(3) 56JQ STOZ AWORK2(3) 574B STOZ AWORK3(3) 57J2 STOZ AWORK4(3) 583L LDX 1 FX1 58H= LINKSET 3,PAIR2(1) 592W CHANGEPER 3 [TRANSFER TAPE TO AOLPT 59GG LDX 5 AWORK4(2) 5=26 PUTPEREN 5,GSIGN [INSERT PERIPH. ENTRY 5=FQ ROLPA [CHAIN AOLPT IN PCA CHAIN 5=^B ENDCOM 5?F2 # 5?YL # EXECPTION CONDITIONS FOR ZOFFLINE(ZF) 5#D= # 5#XW PE TESTREP2 NOLOCN,PE1 5*CG TESTREP2 TSN,PE2 5*X6 TESTREP2 NOTAV,PE3 5BBQ TESTRPN2 ODRAWN,PQ1 5BWB ERROR BUDGODR,BUDGSPA 5CB2 BRN TERR 5CTL PQ1 TESTRPN2 INCREASE,PQ2 5D*= ERROR BUDGINC,BUDGSPA 5DSW BRN TERR 5F#G PQ2 TESTREP2 ALREADY,TERR 5FS6 TESTREP2 NAME,TERR 5G?Q TESTREP2 WRGEN,TERR 5GRB TESTREP2 VRYWRONG,TERR 5H?2 TESTREP2 TEMP,TERR 5HQL TESTREP2 NODECKS,PE5 5J== GEOERR 1,GETREP 5JPW PE1 COMERR AMTDESC,JLOCN [SERIAL NUMBER GIVEN 5K9G PE2 COMERR AMTDESC,JNTSN [LOCAL NAME NOT GIVEN 5KP6 PE3 COMERR JNPT [POOL TAPE NOT AVAILABLE 5L8Q PE4 COMERR ERNAME 5LNB PE5 COMERR ERNODECKS 5M82 PERR TESTRPN2 ILLCOMB,PERR1 5MML COMERR ERILLCOMB 5N7= PERR1 COMERR ERILLMODE 5NLW #UNS FTS1 5P6G ( 5PL6 PERR2 CLOSETOP 5Q5Q ERRTEST 3,TERR,FROZEN,NOFPRIV [ERROR MESS FOR FROZEN & NO-F-PR 5QKB GEOERR 1,GLFRREP [ELSE GEORGE ERROR 5R52 ) 5RJL # BREAKIN EXITS 5S4= XBRKIN COMBRKIN 5SHW # GEORGE ERRORS 5T3G PG4 GEOERR BRIEFPM,BREAKIN 5TH6 # 5W2Q # 5WGB # PERI HANDLING ROUTINE 5X22 # 5XFL # 5X^= Z2NETOFLNE 5YDW LDX 0 AWORK1(2) 5YYG BNG 0 Z2FAIL [J IF TAPE HAS FAILED 5^D6 BNZ 0 Z2RENTRY [J IF NOT FIRST ENTRY 5^XQ LDX 0 AWORK2(2) 62CB BNZ 0 Z2RENTRY [J IF NOT FIRST ENTRY 62X2 NGN 0 62 63BL LDN 5 512 63W= CALL 6 Z2WRITES [WRITE START OF DATA SENTINEL 64*W BNZ 4 Z2FAIL [J IF WRITE ERROR 64TG Z2RENTRY 65*6 LDX 7 APETADDR(2) 65SQ LDX 3 7 66#B LOCKCA 3,EVENT2(2) [CHECK CONTROL AREA 66S2 LDX 4 EVENT2(2) 67?L LDN 5 ACA1(2) 67R= LDN 6 4 68=W FOUTMOVE 3,4,5,6,HLOCK1 [MOVE OUT CONTROL AREA 68QG LDEX 0 ACA1(2) [TEST MODE 69=6 BZE 0 Z2CAD [OK IF #0 69PQ ANDX 0 XMASK(1) 6=9B BNZ 0 Z2MILL 6=P2 LDEX 0 ACA1(2) 6?8L ANDN 0 #6 6?N= ERN 0 #6 6#7W BZE 0 Z2MILL 6#MG SRL 0 2 6*76 BNZ 0 Z2MILL [ILLEGAL IF MODE #2 6*LQ Z2CAD LDCT 5 #600 6B6B ANDX 5 ACA4(2) [TEST ADDRESS 6BL2 ERX 5 XMASK1(1) 6C5L BNZ 5 Z2CADILL [ILLEGAL IF NOT CHAR 3 6CK= Z2CADOK 6D4W LDX 6 ACA3(2) [TEST COUNT 6DJG BZE 6 Z2CILL 6F46 TXL 6 MAX1(1) 6FHQ BCC Z2CILL [ILLEGAL IF > 2000 6G3B ADN 6 6 6GH2 SRL 6 2 [CONVERT COUNT TO WORDS 6H2L LDX 5 ACA4(2) 6HG= PMODES 3,7 [CHECK ADDRESS MODE 6H^W ANDN 3 #10 6JFG BNZ 3 Z2A [J IF 22AM 6J^6 ANDX 5 XMASK2(1) 6KDQ Z2A LDN 4 CHREAD [SET MODE = READ 6KYB STO 5 ACA4(2) [SAVE ADDRESS 6LD2 CHECKB 5,6,Z2RESV,7,4,Z2RESOK [CHECK RESERVATIONS 6LXL # 6MC= # 6MWW # PERI VALID - NOW PROCESS IT 6NBG # 6NW6 # 6P*Q Z2RESOK 6PTB LDX 2 7 6Q*2 SMO FX2 6QSL LDX 3 ACA4 [PROGRAM BUFFER ADDRESS 6R#= FADDRESS 2,3,HLOCK1 [ADD DATUM 6RRW LDX 2 FX2 6S?G LDCH 5 0(3) [LOAD PFCC 6SR6 TXL 5 XWRITE(1) 6T=Q BCC Z2RESOKP [J IF 'PRINT' MODE 6TQB LDN 6 1 [SET LENGTH = 1 6W=2 Z2RESOKP 6WPL ADN 6 1 6X9= ADX 6 AWORK1(2) [ADD BUFFER SIZE SO FAR 6XNW TXL 6 MAX2(1) 6Y8G BCC Z2BUFFUL [J IF BUFFER FULL 6YN6 SBX 6 AWORK1(2) [RESTORE RECORD SIZE 6^7Q BRN Z2BUFFOK [AND J TO ADD RECORD TO BUFFER 6^MB # 7272 # 72LL # BUFFER FULL - WRITE IT TO TAPE 736= # 73KW # 745G Z2BUFFUL 74K6 LDX 5 AWORK1(2) 754Q STOZ AWORK1(2) [MARK BUFFER EMPTY 75JB LDN 0 1 7642 ADS 0 AWORK2(2) [UPDATE MT BLOCK COUNT 76HL CALL 6 Z2WRITE [WRITE THE BLOCK TO TAPE 773= BNZ 4 Z2FAIL [J IF WRITE ERROR 77GW LDX 6 ACA3(2) 782G ADN 6 10 78G6 SRL 6 2 [RESET RECORD LENGTH 78^Q LDX 4 CPRW1(2) 79FB ANDX 4 XMASK5(1) 79^2 BZE 4 Z2BUFFOK [J IF NOT END OF TAPE 7=DL LDX 4 AWORK4(2) 7=Y= BZE 4 Z2EOR [J IF EOT JUST REACHED 7?CW BNG 4 Z2EOT [J IF OK TO WRITE EOR 7?XG ANDX 4 XMASK3(1) 7#C6 SBN 4 1 [DECREMENT END COUNT 7#WQ BZE 4 Z2EOT [J IF COUNT EXHAUSTED 7*BB BNG 4 Z2EOT [J IF COUNT EXHAUSTED 7*W2 DSA 4 AWORK4(2) 7B*L BRN Z2BUFFOK [J TO PROCESS PERI 7BT= Z2EOR LDCT 4 #200 7C#W ADN 4 10 [SET COUNT OF 10 MORE BLOCKS 7CSG STO 4 AWORK4(2) [SO THAT WE MAY WAIT FOR A HOF 7D#6 BRN Z2BUFFOK [J TO PROCESS PERI 7DRQ # 7F?B # 7FR2 # WRITE EOR TO FULL REEL 7G=L # AND THEN FAIL OUTPUT *LPN FILE FULL 7GQ= # 7H9W # 7HPG Z2EOT LDCT 0 #600 7J96 LDX 5 AWORK2(2) 7JNQ CALL 6 Z2WRITES [WRITE EOR LABEL 7K8B BNZ 4 Z2FAIL [J IF TAPE FAIL 7KN2 LDCT 0 #400 7L7L STO 0 AWORK1(2) 7LM= LDCT 5 #50 7M6W LDX 0 ACA1(2) 7MLG SRL 0 3 7N66 ANDN 0 #7777 7NKQ SBN 0 #3000 7P5B BZE 0 Z2REP 7PK2 LDX 5 ZJYOUTFULL(1) [OUTPUT FILE FULL 7Q4L BRN Z2ILL 7QJ= # 7R3W # 7RHG # ADD RECORD TO BUFFER 7S36 # 7SGQ # 7T2B Z2BUFFOK 7TG2 LDX 2 7 7T^L SMO FX2 7WF= LDX 3 ACA4 [PROGRAM BUFFER ADDRESS 7WYW FADDRESS 2,3,HLOCK1 [ADD DATUM 7XDG LDCH 4 0(3) [LOAD PFCC 7XY6 LDX 2 FX2 7YCQ TXU 4 XHASH51(1) 7YXB BCC Z2THROW [J IF WRITE AFTER HOF 7^C2 TXU 4 XHASH11(1) 7^WL BCS Z2NOTHROW [J IF NOT THROW TO HOF 82B= Z2THROW 82TW LDX 4 AWORK4(2) 83*G BZE 4 Z2NOEOT [J IF EOT NOT REACHED 83T6 LDCT 4 #400 84#Q STO 4 AWORK4(2) [MARK OK TO CLOSE TAPE 84SB Z2NOEOT 85#2 LDX 3 AWORK1(2) 85RL BNZ 3 Z2BUFFUL [J IF DATA IN BUFFER 86?= BNG 4 Z2EOT [J TO CLOSE TAPE 86QW Z2NOTHROW 87=G LDX 2 7 87Q6 SMO FX2 889Q LDX 3 ACA4 [PROGRAM BUFFER ADDRESS 88PB FADDRESS 2,3,HLOCK1 [ADD DATUM 8992 LDX 2 FX2 89NL LDCH 5 0(3) [LOAD PFCC 8=8= TXL 5 XWRITE(1) 8=MW BCC Z2PRINT [J IF 'PRINT' MODE 8?7G LDX 3 AWORK1(2) 8?M6 ADX 3 FX2 8#6Q LDN 6 2 8#LB STO 6 ACA5(3) [WORD COUNT = 2 8*62 ADS 6 AWORK1(2) 8*KL SLL 5 18 8B5= LDEX 4 ACA1(2) 8BJW SRL 45 6 [ADD MODE INTO WORD 8C4G LDN 4 1 [NO. CHARS = 1 8CJ6 BRN Z2ENDPERI 8D3Q Z2PRINT 8DHB LDX 3 AWORK1(2) 8F32 ADX 3 FX2 8FGL STO 6 ACA5(3) [WORD COUNT 8G2= ADS 6 AWORK1(2) 8GFW SBN 6 1 [RESET TO LENGTH OF DATA 8G^G LDX 4 ACA4(2) 8HF6 ANDX 4 XMASK3(1) 8HYQ LDN 5 ACA6(3) 8JDB FOUTMOVE 7,4,5,6,HLOCK1 [MOVE DATA INTO BUFFER 8JY2 LDX 5 ACA6(3) [LOAD PFCC 8KCL SLL 5 18 8KX= LDEX 4 ACA1(2) 8LBW SRL 45 6 [ADD MODE INTO WORD 8LWG LDX 4 ACA3(2) 8MB6 Z2ENDPERI 8MTQ SRL 45 12 [ADD CHAR. COUNT INTO WORD 8N*B STO 5 ACA6(3) [STORE LENGTH/MODE/PFCC IN RECORD 8NT2 LDN 5 0 8P#L Z2REP LINKSET FX2,PAIR2(1) [SET LINK FOR NEXT ENTRY 8PS= LDX 2 7 8Q?W SMO FX2 8QRG LDX 3 EVENT2 [ADDRESS OF CONTROL AREA 8R?6 ADN 3 1 8RQQ FADDRESS 2,3,HLOCK1 8S=B STO 5 0(3) [SET 'OK' REPLY TO OBJECT PROGRAM 8SQ2 OLPFINX 7 [SIGNAL PERI FINISHED 8T9L BRN Z2NETOFLNE [J FOR NEXT TRANSFER 8TP= # 8W8W # 8WNG # VARIOUS ILLEGAL CONDITIONS COME HERE 8X86 # 8XMQ # 8Y7B Z2FAIL 8YM2 LDCT 5 #50 8^6L LDX 0 ACA1(2) 8^L= SRL 0 3 925W ANDN 0 #7777 92KG SBN 0 #3000 9356 BZE 0 Z2REP 93JQ LDCT 5 #400 944B STO 5 AWORK1(2) 94J2 LDX 5 ZJYPERFAIL(1) [ONLINE PERI FAIL 953L BRN Z2ILL 95H= Z2MILL 962W LDX 5 ZJYMODE(1) [MODE IN ERROR 96GG BRN Z2ILL 9726 Z2CADILL 97FQ LDX 5 ZJYCHAR(1) [ILLEGAL CHAR. ADDR. 97^B BRN Z2ILL 98F2 Z2CILL 98YL LDX 5 ZJYCOUNT(1) [COUNT OUT OF RANGE 99D= BRN Z2ILL 99XW Z2RESV 9=CG LDX 5 ZJYRESVIOL(1) [RESERVATION VIOLATION 9=X6 Z2ILL LDX 4 FTYPNO(2) [TYPE/UNIT 9?BQ TOPCA PAIR4(1) 9?WB COOR1Y 9#B2 BRN Z2NETOFLNE [J FOR NEXT TRANSFER 9#TL # 9**= # 9*SW # TAPE WRITE SUBROUTINE 9B#G # 9BS6 # 9C?Q Z2WRITES [WRITE SENTINEL ENTRY 9CRB SBX 6 FX1 9D?2 STO 0 ACA5(2) [SENTINEL TYPE 9DQL STO 5 ACA6(2) [SUBSIDIARY INFORMATION 9F== STOZ ACA7(2) 9FPW LDN 4 ACA7(2) 9G9G LDN 5 ACA8(2) 9GP6 MOVE 4 17 [SET REMAINDER TO ZERO 9H8Q LDX 3 CPPTR(2) 9HNB LDN 5 5 9J82 DCA 3,STO,5,MODE 9JML GPERI ,2 [WRITE A TAPE MARK 9K7= COOR1 [WAIT FOR TRANSFER TO FINISH 9KLW LDN 5 20 [QUALIFIER BLOCK 20 WORDS LONG 9L6G BRN Z2WRS 9LL6 Z2WRITE [WRITE BLOCK ENTRY 9M5Q SBX 6 FX1 9MKB TXL 5 XFIVE(1) 9N52 BCC Z2WRITEOK [J IF BLOCK >= 5 WORDS 9NJL LDN 4 ACA5(2) 9P4= ADX 4 5 9PHW LDN 3 XTRA(1) 9Q3G MOVE 3 6 [ADD 3 NULL 2 WORD RECORDS 9QH6 ADN 5 6 [INCREMENT BLOCK LENGTH 9R2Q Z2WRITEOK 9RGB LDX 3 CPPTR(2) 9S22 Z2WRS DCA 3,STO,5,COUNT 9SFL LDN 5 1 9S^= DCA 3,STO,5,MODE 9TDW LDN 5 ACA5(2) 9TYG DCA 3,STO,5,CTSA 9WD6 GPERI ,2 [WRITE THE BLOCK 9WXQ COOR1 [WAIT FOR TRANSFER 9XCB LDX 4 CPRW1(2) [LOAD REPLY 9XX2 ANDX 4 XMASK4(1) [MASK ERROR BIT 9YBL ADX 6 FX1 9YW= EXIT 6 0 9^*W # 9^TG # =2*6 # RELEASE ENTRY =2SQ # =3#B # =3S2 Z3NETOFLNE =4?L # *MT FAILS IN CLOSING ARE NOTED IN ACOMMUNE1 FOR OFFREL. =4R= STOZ ACOMMUNE1(2) =5=W LDX 5 AWORK1(2) =5QG BNG 5 Z3NOWRITE [J IF TAPE HAS FAILED =6=6 BZE 5 Z3BUFFEMPTY [J IF NO DATA IN BUFFER =6PQ LDN 0 1 =79B ADS 0 AWORK2(2) [UPDATE MT BLOCK COUNT =7P2 CALL 6 Z2WRITE [WRITE THE REMAINING BLOCK =88L STO 4 ACOMMUNE1(2) =8N= BNZ 4 Z3NOWRITE =97W # =9MG # ==76 # WRITE TRAILER LABEL AND RELEASE TAPE ==LQ # =?6B # =?L2 Z3BUFFEMPTY =#5L LDCT 0 #400 =#K= LDX 5 AWORK2(2) [BLOCK COUNT =*4W CALL 6 Z2WRITES [WRITE EOF SENTINEL =*JG STO 4 ACOMMUNE1(2) =B46 Z3NOWRITE =BHQ # OFFREL WILL REWIND THE TAPE AUTONOMOUSLY AND FREE IT. =C3B UP [RETURN TO OFFREL =CH2 # =D2L # =DG= # 'ILLEGAL' ENTRY =D^W # =FFG # =F^6 Z4NETOFLNE =GDQ UNPLUG [UNPLUG THE PROGRAM FROM EXECUTIVE =GYB OUTPACK 4,1,PERINAME =HD2 ILLEGALX 5 [SEND THE PROGRAM 'ILLEGAL' =HXL #END =JC= ^^^^ ...455552450001