12 22FL ... SEG ASSIGN,860,FILESTORE,OLP 11 22_= SEGENTRY K1ASSIGN,ZASSIGN 11 23DW SEGENTRY K10ASSIGN,ZASSILO 12 23YG SEGENTRY K11ASSIGN,ZONLINEC 4 24D6 [ 15 24XQ # THIS SEGMENT IMPLEMENTS THE ASSIGN COMMAND 9 25CB ZJPARMIS +JPARMIS 8 25X2 ZMISSING +APER 8 26BL +APER 10 26W= +JFENTRANT 8 27*W +APER 10 27TG ZASSIGNER1 +ASSIGNER1 9 28*6 ZJTOOMANY +JTOOMANY 9 28SQ ZINCOMQU +INCOMQU 9 29#B ZILLQUAL +ILLQUAL 10 29S2 ZASSIGNER2 +ASSIGNER2 9 2=?L OLPLUSEX #20040000 9 2=HD ...YFILEHAN #46400000 10 2=R= ...YFILEREAD #46200000 9 2?34 ...YFILEWRITE #46300000 9 2?=W ZEROAPPE #77770777 8 2?QG # FOR MASK FOR *FH 9 2#=6 XSER #00040000 9 2#PQ XDAFILE #77717637 9 2*9B XDIRS #26000120 9 2*P2 XINDE #20400100 9 2*YS ...XNIND #40000000 9 2B8L XONLI #47600160 9 2BN= XMULT #47600000 9 2C7W XCOMM #07400160 9 2CMG XGDR #47600160 4 2D76 # 21 2DLQ # THE FOLLOWING MACRO SETS UP AN EMPTY TABLE OF 64 CHARACTERS ( 1 FOR 19 2F6B # EACH PERIPHERAL TYPE). EACH CHARACTER WILL EVENTUALLY CONTAIN 6 2FL2 # EITHER - 20 2G5L # A) ZERO, INDICATING THE PERIPH. TYPE CANNOT BE ASSIGNED; OR 21 2GK= # B) A POINTER (PLUS 1) TO THE APPROPRIATE ENTRY IN THE PERIPHERAL 8 2H4W # DATA TABLE. 4 2HJG # 6 2J46 PERMITTED 7 2JHQ ASTABLES 4 2K3B # 21 2KH2 # NOW WE FILL IN THE ABOVE TABLE AND SET UP THE PERIPHERAL DATA TABLE 17 2L2L # WHICH CONSISTS OF ENTRIES OF THE FOLLOWING FORMAT :- 4 2LG= # 21 2L_W # WD 0 FILE TYPE/MODE ASSOCIATED WITH PERIPHERAL (AS ETM) 4 2MFG # 18 2M_6 # WD 1 B0=1 DON'T FREE FILE/ENT BLOCK AFTER USEROPEN 14 2NDQ # B1=0 SERIAL ACCESS PERIPHERAL 10 2NYB # B2=1, CR 10 2PD2 # B3=1, TR 18 2PXL # B1=1 RANDOM ACCESS PERIPHERAL (INCLUDING MT) 10 2QC= # B2=1, MT 10 2QWW # B3=1, DR 14 2RBG # B5=1 LIMIT ADJUNCT APPLICABLE 11 2RW6 # B7-13 AOLPT LENGTH 18 2S*Q # B14-23 ADDRESS OF ANALYSIS ROUTINE FOR MODES 4 2STB # 16 2T*2 # WD 2 INITIAL LINK FOR AOLPT ACTIVITY 4 2TSL # 5 2W#= PDATA 15 2WRW ASTYPE 0,READ,#400:#2,ASERLEN,TROBJ,1,3 16 2X?G ASTYPE 1,OUTPUTP,#400:#12,ASERLEN,TPOBJ,1,5 16 2XR6 ASTYPE 2,OUTPUTLP,#400:#12,ASERLEN,LPOBJ,1,5 15 2Y=Q ASTYPE 3,READ,#400:#12,ASERLEN,CROBJ,1,2 16 2YQB ASTYPE 4,OUTPUT,#400:#12,ASERLEN,CPOBJ,1,5 17 2_=2 ASTYPE 5,MAGNETIC,#405:0,AMTLEN,MTSTART,1,1,2,5 16 2_PL ASTYPE 6,RANDOM,#406:0,ARANLEN,EDSTART,1,0,1 16 329= ASTYPE 9,RDRUM,#411:0,ADRLEN,DRSTART,1,1,3 15 32NW ... ASTYPE 50,READ,#462:0,ASERLEN,FHOBJ,1,0 17 338G ... ASTYPE 51,NFILEHND,#463:0,ASERLEN,FHOBJ,1,5,0 17 33N6 ASTYPE 52,NFHANDLE,#464:0,ASERLEN,FHOBJ,1,5,0 13 347Q ASTYPE 60,PCI,0,ABEXLEN,BEXTRA,1 10 34MB TSIM LINK SIMULPTR,1 8 3572 TPTYPE +1:0 21 35LL TLO [THIS TABLE GIVES THE TYPE OF PERIPH. 21 366= [TO BE ASSIGNED, DEPENDING ON THE FIL 21 36KW [TYPE. #77 MEANS CANNOT BE ASSIGNED. 9 375G #00007703 9 37K6 #03050677 9 384Q #77777777 9 38JB #77067777 4 3942 TLO1 11 39HL #DEF TLOLEN=TLO-TLO1*4M_#400 2 3=3= 17 3=GW ZASSILO [ENTRY FROM LOADFIN (DOWN) - ASSILO MACRO 2 3?2G 8 3?G6 LDX 0 GSIGN 15 3?_Q STO 0 AWORK4(2) [ENTRY SWITCH 10 3#FB MHUNTW 3,FILE,ENT 9 3#_2 LDCT 1 TLOLEN 9 3*DL ANDX 1 ETM(3) 17 3*Y= BPZ 1 TLOUP [J IF NO PERI-TYPE 8 3BCW ERX 1 GSIGN 8 3BXG BNZ 1 TLOUP 8 3CC6 LDCT 1 #77 13 3CWQ ANDX 1 ETM(3) [TYPE 15 3DBB SLC 1 7 [CHAR. PTR. 8 3DW2 SMO FX1 8 3F*L ADN 1 TLO 17 3FT= LDCH 0 0(1) [PICK UP PERIPH. TYPE 8 3G#W SBN 0 #77 16 3GSG BNZ 0 TLOOK [OK UNLESS #77 5 3H#6 TLOUP 15 3HRQ UP [ERROR EXIT 5 3J?B TLOOK 8 3JR2 ADN 0 #77 7 3K=L SRC 0 9 18 3KQ= STO 0 AWORK3(2) [SET TYPE (UNIT NO. ZERO) 14 3L9W SETMODE 6,GIVE [SET GIVE 20 3LPG ORX 6 GSIGN [ BUT INDICATE NO ADJUNCTS BLOK 19 3M96 BRN W2 [JOIN MAIN PART OF ROUTINE 2 3MNQ 20 3N8B ZONLINEC [ENTRY FROM ONLINEC (ACROSS) TO FINISH SETTING UP THE 18 3NN2 [AOLPT FOR PSEUDO ONLINE SLOW PERIPHERALS. 2 3P7L 16 3PM= LDCT 0 #200 [B1 INDICATES O-L 16 3Q6W STO 0 AWORK4(2) [ENTRY INDICATOR 7 3QLG NGNC 3 1 9 3R66 ANDX 3 AWORK1(2) 18 3RKQ STO 3 AWORK3(2) [PERIPHERAL TYPE/UNIT NO. 16 3S5B SRL 3 15 [ISOLATE TYPE & 19 3SK2 SRC 3 2 [ CONVERT TO CHAR POINTER 8 3T4L SMO FX1 20 3TJ= LDCH 0 PERMITTED(3) [GET POINTER TO PDATA TABLE ENTRY 7 3W3W SBN 0 1 15 3WHG BZE 7 WILCH [JIF M/F OPEN 20 3X36 ORX 0 GSIGN [REMEMBER NOT TO DO CHANGESTREAM 5 3XGQ WILCH 7 3Y2B LDX 7 0 17 3YG2 LDN 4 0 [USEROPEN MODES (N/A) 8 3Y_L LDCT 0 #400 17 3_F= STO 0 AWORK2(2) [INDICATE NO ADJUNCTS 12 3_YW LDX 0 HLINK+2*2+PDATA(1) 20 42DG STO 0 AWORK1(2) [FILE TYPE/MODE = *LP = GRAPHIC 7 42Y6 SMO 7 15 43CQ LDX 6 PDATA+1(1) [SWITCH WD 18 43XB FINDACTF 3,2,AOLPT,,,BPTR [LOCATE AOLPT CONCERNED 19 44C2 BXE 3 BPTR(2),W4 [JIF IT'S NEXT TO THIS ACT. 10 44WL LDN 1 ACTRING(3) 19 45B= BXE 1 ACTRING+BPTR(2),NORERING [JIF NEXT IN ACT RING 18 45TW CHAIN 1,ACTRING+BPTR(2) [ OTHERWISE RERING IT & 5 46*G NORERING 16 46T6 CHAIN 3,BPTR(2) [ RECHAIN IT 19 47#Q BRN W4 [JOIN MAIN PART OF ROUTINE 2 47SB 12 48#2 ZASSIGN [THE COMMAND ENTRY 17 48RL PARANUMB 7 [GET NO.OF PARAMS 7 49?= SBN 7 1 8 49QW BNZ 7 XMEN 9 4==G ACROSS ONLINEA,1 4 4=Q6 XMEN 15 4?9Q ADN 7 1 [ENTRY MARKR 9 4?PB STOZ AWORK4(2) 7 4#92 LDN 3 0 7 4#NL SBN 7 2 9 4*8= BNG 7 NJPARMIS 9 4*MW BNZ 7 NJTOOMANY 7 4B7G LDN 7 2 4 4BM6 P 15 4C6Q SPARAPAS [GET A PARAM 10 4CLB MHUNT 1,CPB,CUNI 9 4D62 LDX 4 ANUM(1) 14 4DKL BZE 4 P2 [JIF NULL 9 4F5= LDCH 4 APARA(1) 8 4FJW ERN 4 #32 19 4G4G BNZ 4 P1 [JIF DOESN'T BEGIN WITH '*' 18 4GJ6 ORN 3 1 [INDICATE PERIPH. PARAM 8 4H3Q BRN P3 4 4HHB P2 18 4J32 ORX 7 GSIGN [ NOT SET IN ADJUNCTS BLK 4 4JGL P1 18 4K2= ORN 3 2 [INDICATE ENTRANT PARAM 18 4KFW NAMETOP 1,FILE,FNAME [RENAME CUNI FOR FNORM 4 4K_G P3 7 4LF6 BCT 7 P 8 4LYQ ERN 3 #3 17 4MDB BNZ 3 NJPARMIS1 [JIF PARAM(S) MISSING 2 4MY2 18 4NCL PERCON [CONVERT PERIPH. PARAM 10 4NX= TESTREP2 PARERR,XEND 11 4PBW MHUNTW 3,CPAR,GPERCON 7 4PWG NGNC 5 1 9 4QB6 ANDX 5 GPER1(3) 18 4QTQ STO 5 AWORK3(2) [PERIPH. TYPE & UNIT NO. 8 4R*B SRL 5 15 14 4RT2 BZE 5 YTRLP [J IF TR 7 4S#L ERN 5 2 8 4SS= BNZ 5 NOTLP 5 4T?W YTRLP 20 4TRG LEGALLEV 3,WRONGQUAL,ANYCOMMON,1 [CHECK QUALS. FOR *LP,*TR 9 4W?6 LDX 0 GPER2(3) 9 4WQQ ORS 0 AWORK4(2) 8 4X=B LDCT 0 #401 7 4XQ2 SRL 0 1 9 4Y9L ANDX 0 AWORK4(2) 8 4YP= SMO FX1 12 4_8W BXE 0 OLPLUSEX,WRONGQUAL 8 4_NG BRN OKAUT 5 5286 NOTLP 19 52MQ LEGALLEV 3,WRONGQUAL,ANYCOMMON [CHECK QUALS. FOR OTHERS 5 537B OKAUT 15 53M2 MFREE CPB,CUNI [ & CUNI 19 546L RELPEREN AWORK3(2) [DELETE ANY EXISTING ENTRY 9 54L= BPZ 7 PHNORM 9 555W LDX 3 AWORK3(2) 9 55KG STO 3 AWORK1(2) 8 5656 SRL 3 15 7 56JQ LDX 7 3 7 574B SBN 7 5 8 57J2 BNG 7 YMEN 8 57M6 ... SBN 7 45 8 57Q= ... BNG 7 YYMEN 7 57TB ... SBN 7 3 8 57YG ... BPZ 7 YYMEN 7 583L ... ADN 7 3 8 586Q ... BZE 7 ZMEN 7 589W ... LDN 7 1 8 58*2 ... BRN ZMEN 7 58D6 ...YYMEN LDN 3 2 9 58H= BRN NJPARMIS1 4 592W YMEN 7 59GG ADN 7 2 8 5=26 BZE 7 ZMEN 7 5=FQ ADN 7 3 8 5=_B BZE 7 ZMEN 7 5?F2 LDN 7 1 4 5?YL ZMEN 9 5#D= ACROSS ONLINEC,2 5 5#XW PHNORM 2 5*CG 7 5*X6 FNORM 3 10 5BBQ TESTREP2 NAMEFORM,XEND 10 5BWB MHUNT 3,FILE,FNAME 10 5CB2 NAMETOP 3,CPB,CUNI 17 5CTL LDCT 6 #400 [IN CASE NO ADJUNCTS 10 5D*= TESTRPN2 ADJUNCTS,W1 11 5DSW MHUNTW 3,FILE,ADJUNCTS 14 5F#G LDX 6 A1+1(3) [MODE WD 16 5FS6 LDX 5 A1+4(3) [GET 2ND MODE WD 9 5G?Q STO 5 AWORK1(2) 4 5GRB W1 9 5H?2 #SKI K6ASSIGN>699-699 10 5HQL TRACE 6,ADJUNCTS 7 5J== CREATEB 3 9 5JPW #SKI K6ASSIGN>699-699 12 5K9G TRACE AWORK3(2),ASSPERTY 4 5KP6 W2 21 5L8Q STO 6 AWORK2(2) [PRESERVE ADJUNCTS INDICATOR/MODE WD 8 5LNB LDCT 1 #777 9 5M82 ANDX 1 AWORK3(2) 19 5MML SLC 1 7 [FORM CHAR POINTER FROM TYPE 8 5N7= ADX 1 FX1 18 5NLW LDCH 7 PERMITTED(1) [PICK UP MODIFIER CHAR. 8 5P6G LDX 1 FX1 19 5PL6 BZE 7 WRONGDEVICE [JIF TYPE CAN'T BE ASSIGNED 7 5Q5Q SBN 7 1 9 5QKB LDXC 0 AWORK4(2) 15 5R52 BCS W3 [JIF ASSILO 7 5RJL SMO 7 15 5S4= LDX 0 PDATA(1) [TYPE/MODE 9 5SHW STO 0 CETM(3) 4 5T3G W3 13 5TH6 SETMODE 4,COMMUNE,NOWAIT,REPLY 7 5W2Q ANDX 4 6 7 5WGB SMO 7 10 5X22 LDX 0 PDATA+1(1) 8 5XFL ANDN 0 #1777 7 5X_= ADX 0 1 17 5YDW BRN (0) [J TO MODE ANALYSIS 5 5YYG NFHANDLE 16 5_D6 BNG 6 READ [J IF NO ADJUNCTS 11 5_XQ MHUNTW 2,FILE,ADJUNCTS 15 62CB LDX 0 A1+2(2) [TYPE ADJUNCT 15 62X2 BZE 0 NOTNONSER [J IF NONE 8 63BL SRL 0 15 15 63W= ANDN 0 #77 [X0=TYPE NO 7 64*W SBN 0 5 17 64TG BPZ 0 NONSERFH [J IF NOT SERIAL TYPE 6 65*6 NOTNONSER 7 65SQ LDX 0 6 8 66#B ANDN 0 #7000 8 66S2 SBN 0 #4000 16 67?L BNZ 0 MCHAPQ [J IF NOT WRITE 7 67R= #SKI AMULTUSER 14 68=W ... ADDMODE 4,GENERAL,CREATE,STREAMS,FILE 8 68QG #SKI AMULTUSER<1$1 13 69=6 ... ADDMODE 4,GENERAL,CREATE,STREAMS 7 69PQ BRN T 5 6=9B MCHAPQ 8 6=P2 ADN 0 #1000 14 6?8L BZE 0 OUTPUTP [J IF APPEND 8 6?N= BRN READ 20 6#7W NONSERFH [*FH WITH NONSERIAL FILE. WE USE 20 6#MG [READR,WRITE AND EMPTY,OR WRITE 20 6*76 [EMPTY AND CREATE AS APPROPRIATE. 21 6*LQ [WE ALSO SET UP THE CREATE BLOCK WITH 20 6B6B [THE RIGHT TYPE MODE AND WITH THE 19 6BL2 [MAG TAPE FILE BIT IF ITS MT. 15 6C5L BNZ 0 NOTMTFH [J IF NOT MT 17 6CK= BS 3,CEMT [SET MT BIT IN CREATE 5 6D4W NOTMTFH 9 6DJG LDX 0 A1+2(2) 8 6F46 ORX 0 GSIGN 16 6FHQ STO 0 CETM(3) [SET UP TYPE MODE 16 6G3B TESTMAIN 6,WRITEDAFH,,WRITE [J IF WRITE MODE 16 6GH2 ADDMODE 4,READR [ELSE USE READR 8 6H2L BRN OPEN 6 6HG= WRITEDAFH 20 6H_W ADDMODE 4,WRITE,EMPTY [USE THESE MODES FOR WRITE CASE 17 6JFG JBC OPEN,3,CEMT [PLUS CREATE IF MT 9 6J_6 ADDMODE 4,CREATE 8 6KDQ BRN OPEN 5 6KYB NFILEHND 5 6LD2 OUTPUTP 4 6LXL T 9 6MC= BNG 6 OUTPUT 11 6MWW MHUNTW 2,FILE,ADJUNCTS 8 6NBG LDCT 0 #777 7 6NW6 SMO 7 9 6P*Q ANDX 0 PDATA(1) 11 6PTB BXU 0 YFILEHAN(1),XCONT 7 6Q*2 LDN 0 4 7 6QSL ANDX 0 6 7 6R#= SBN 0 4 8 6RRW BNZ 0 XCONT 10 6S?G LDX 0 ZEROAPPE(1) 9 6SR6 ANDS 0 A1+1(2) 5 6T=Q XCONT 9 6TQB LDX 0 A1+2(2) 9 6W=2 BZE 0 OUTPUT 8 6WPL SRL 0 15 8 6X9= ANDN 0 #77 9 6XNW BNZ 0 OUTPUT 9 6Y8G LDX 0 A1+2(2) 8 6YN6 ORX 0 GSIGN 9 6_7Q STO 0 CETM(3) 5 6_MB OUTPUT 8 7272 LDX 2 FX2 8 72LL LDX 0 GSIGN 9 736= ORS 0 CEINF1(3) 12 73KW TESTMAINMODE 4,QDEST,,GENERAL 7 745G #SKI AMULTUSER 15 74K6 ADDMODE 4,APPEND,EMPTY,CREATE,FILE,MULT 8 754Q #SKI AMULTUSER<1$1 14 75JB ADDMODE 4,APPEND,EMPTY,CREATE,STREAMS 8 7642 BRN QDEST 4 76HL READ 7 773= #SKI AMULTUSER 11 77GW ADDMODE 4,READ,FILE,MULT 8 782G #SKI AMULTUSER<1$1 11 78G6 ADDMODE 4,READ,STREAMS 5 78_Q QDEST 17 79FB BNG 6 OPEN [JIF NO ADJUNCTS BLOK 14 79_2 LDX 5 4 [SAVE X4 8 7=DL LDN 4 14 19 7=Y= CALL 6 XADJ [LOOK FOR DESTCOMM ADJUNCT 15 7?CW BRN NDEST [NOT FOUND 16 7?XG DSA 4 CEINF3(3) [DESTCOMM VALUE 12 7#C6 SETMODE 4,DESTRUCT,COMMUNE 5 7#WQ NDEST 7 7*BB ORX 4 5 9 7*W2 SETUPMOD ,5,GDR 8 7B5S ... LDX 2 FX2 9 7B*L ANDX 5 AWORK1(2) 8 7BT= BRN OPEN2 5 7C#W OUTPUTLP 8 7CSG LDX 0 BIT9 9 7D#6 ANDX 0 AWORK4(2) 9 7DRQ BZE 0 NOTEXTEN 8 7F?B LDN 0 #22 8 7FR2 ORX 0 GSIGN 9 7G=L STO 0 CETM(3) 5 7GQ= NOTEXTEN 9 7H9W LDEX 0 AWORK4(2) 9 7HPG BZE 0 OUTPUT 8 7J96 LDX 0 GSIGN 15 7JNQ ORS 0 CEINF1(3) [SERIAL BIT 16 7K8B BNG 6 NCOMMS [JIF NO ADJUNCTS 19 7KN2 TESTMODE 6,NOTCOMM,,COMMUNE [JIF COMMUNE GIVEN WITH AUTO 19 7L7L TESTMODE AWORK1(2),NOTCOMM,,GDR [JIF GDR GIVEN WITH AUTO 8 7LM= LDN 4 14 8 7M6W CALL 6 XADJ 9 7MLG BRN NCOMMS 8 7N66 LDX 1 FX1 19 7NKQ BRN NOTCOMM [JIF DESTCOMM GIVEN WITH AUTO 5 7P5B NCOMMS 11 7PK2 SETMODE 4,NOWAIT,REPLY 9 7Q4L ANDX 4 AWORK2(2) 7 7QJ= #SKI AMULTUSER 15 7R3W ADDMODE 4,GENERAL,EMPTY,CREATE,FILE,MULT 8 7RHG #SKI AMULTUSER<1$1 15 7S36 ADDMODE 4,GENERAL,EMPTY,CREATE,STREAMS 8 7SGQ LDN 6 #7000 9 7T2B ANDX 6 AWORK2(2) 17 7TG2 ORS 6 AWORK4(2) [REMEMBER IF APPEND 8 7T_L BRN OPEN 5 7WF= MAGNETIC 9 7WYW LDXC 0 AWORK4(2) 8 7XDG BCS MAGAS 7 7XY6 LDCT 0 4 14 7YCQ ORS 0 CEINF1(3) [MT FILE 5 7YXB MAGAS 9 7_C2 SETMODE 4,EMPTY 7 7_WL ANDX 4 6 17 82B= ANDN 6 #7000 [ISOLATE MAIN MODE 16 82TW BZE 4 MAG1 [J IF NOT EMPTY 9 83*G SETMODE 0,READ 15 83T6 BXE 6 0,XMODES [JIF CLASH 4 84#Q MAG0 11 84SB ADDMODE 4,WRITE,CREATE 8 85#2 BRN OPEN 4 85RL MAG1 9 86?= SETMODE 0,WRITE 15 86QW BXE 6 0,MAG0 [JIF WRITE 9 87=G ADDMODE 4,READR 8 87Q6 BRN OPEN 7 889Q RDRUM LDN 4 1 8 88PB BRN RA 5 8992 RANDOM 7 89NL LDN 4 0 4 8=8= RA 17 8=MW ANDN 6 #7000 [ISOLATE MAIN MODE 9 8?7G SETMODE 5,EMPTY 9 8?M6 ANDX 5 AWORK2(2) 14 8#6Q BNZ 4 NOVER [JIF DRUM 9 8#LB SETMODE 4,OVERLAY 15 8*62 BXE 6 4,WRDA [JIF OVERLAY 9 8*KL SETMODE 4,OFFSET 9 8B5= ANDX 4 AWORK2(2) 16 8BJW BZE 4 NOVER [JIF NOT OFFSET 9 8C4G ADDMODE 4,WRITE 9 8CJ6 BRN USRCLN 5 8D3Q NOVER 9 8DHB SETMODE 4,WRITE 15 8F32 BXE 6 4,MPTY [JIF WRITE 9 8FGL SETMODE 4,READ 14 8G2= BXE 6 4,RDDA [JIF READ 16 8GFW BZE 5 RDDA2 [JIF NOT EMPTY 4 8G_G WRDA 9 8HF6 SETMODE 4,WRITE 4 8HYQ MPTY 18 8JDB ORX 4 5 [ADD IN EMPTY IF PRESENT 9 8JY2 BRN USRCLN 4 8KCL RDDA 16 8KX= BNZ 5 XMODES [JIF EMPTY & READ 5 8LBW RDDA2 9 8LWG SETMODE 4,READR 5 8MB6 USRCLN 10 8MTQ SETMODE 0,USERCLEAN 9 8N*B ANDX 0 AWORK2(2) 7 8NT2 ORX 4 0 8 8P#L BRN OPEN 4 8PS= PCI 9 8Q?W SETMODE 4,GENERAL 4 8QRG OPEN 15 8R?6 LDN 5 0 [2ND MODE WD 5 8RQQ OPEN2 8 8S=B LDX 2 FX2 9 8SQ2 ADDMODE 4,LEAVE 8 8T9L LDCT 0 #777 8 8TP= LDX 1 FX1 7 8W8W SMO 7 9 8WNG ANDX 0 PDATA(1) 10 8X86 BXU 0 YFILEHAN(1),U 11 8XMQ TESTMAIN 4,U,NOT,GENERAL 10 8Y7B ADDINMODE ,5,USERCARE 4 8YM2 U 9 8_6L LDX 0 AWORK4(2) 15 8_L= BNG 0 USE1 [J IF ASSILO 9 925W USEROPEX OPBI,4,5 18 92KG REPERR OPOK [REPORT ERROR (IF ANY) 17 9356 BRN XEND [ & JIF THERE WAS 4 93JQ OPOK 9 944B MFREE CPB,CUNI 18 94J2 TREP STREAM,USE1 [KEEP FABSNB IF MULTIFILE 10 953L MFREE FILE,FABSNB 4 95H= USE1 8 962W LDX 1 FX1 10 96GG MHUNTW 3,FILE,ENT 16 9726 LDX 0 ETM(3) [KEEP IN CASE TR 9 97FQ STO 0 AWORK1(2) 7 97_B SMO 7 10 98F2 LDXC 6 PDATA+1(1) 9 98YL BCS NOFREA 18 99D= FREECORE 3 [FREE ENT IF NOT NEEDED 5 99XW NOFREA 4 9=CG # 18 9=X6 # X1=FX1, X2=FX2, X4=USEROPEN MODES, X7=PDATA TABLE MODIFIER 21 9?BQ # AWORK1=FILE T/M, AWORK2=ADJUNCTS BLOCK MODE WD., AWORK3=PERIPHERAL T/M 10 9?WB # AWORK4(B0)=ENTRY SWITCH 4 9#B2 # 7 9#TL LDX 3 6 8 9**= SRL 3 10 15 9*SW ANDN 3 #177 [AOLPT LENGTH 15 9B#G LDCT 5 AOLPT/8 [AOLPT TYPE 8 9BS6 GETACTX 5,3,1 9 9C?Q LDX 3 BPTR(2) 4 9CRB W4 9 9D?2 LDX 0 JOBNO(2) 9 9DQL STO 0 JOBNO(3) 8 9F== LDCT 0 #400 10 9FPW STO 0 FRECHADD(3) 17 9G9G STO 4 FSCMODE(3) [MODE WD FOR COMPCHAN 7 9GP6 #SKI AMULTUSER 15 9H8Q SETMODE 0,FILE,MULT,MULTEL,LEAVE,UNTRAP 8 9HNB #SKI AMULTUSER<1$1 14 9J82 SETMODE 0,STREAMS,STREAMCOMP,LEAVE 10 9JML ERS 0 FSCMODE(3) 9 9K7= LDX 0 AWORK1(2) 15 9KLW STO 0 FSCTM(3) [TYPE/MODE 8 9L6G LDCT 0 #400 17 9LL6 ORS 0 GIVE(3) [SET BIT FOR ADLOT 9 9M5Q LDX 0 AWORK3(2) 9 9MKB STO 0 FTYPNO(3) 7 9N52 ADXC 6 6 17 9NJL BCC SIMU [JIF NOT RANDOM OR MT 9 9P4= SETMODE 0,GIVE 9 9PHW ANDX 0 AWORK2(2) 8 9Q3G BNZ 0 NORA1 8 9QH6 LDCT 0 #400 16 9R2Q ERS 0 GIVE(3) [VNSET ALLOT BIT 5 9RGB NORA1 7 9S22 ADXC 6 6 14 9SFL BCS WAJ2 [JIF MT 9 9S_= SETMODE 0,MAYBE 9 9TDW ANDX 0 AWORK2(2) 8 9TYG BZE 0 NORA2 9 9WD6 STO 0 ABITS(3) 5 9WXQ NORA2 7 9XCB ADXC 6 6 14 9XX2 BCS WAJ2 [JIF DRUM 10 9YBL MHUNTW 1,FILE,ENT 4 9YW= # 12 9_*W # SET UP INFO FROM FILE/ENT IN AOLPT 4 9_TG # 20 =2*6 LDX 0 ERET(1) [ERET HAS NO MEANING FOR FILES AT 21 =2SQ SLL 0 12 [PRESENT BUT DOING THIS DOESN'T UPSET 14 =3#B ORX 0 ERET(1) [ANYONE 18 =3S2 STO 0 AERET(3) [DATA & FILE RETENTION 9 =4?L LDX 0 EKEY(1) 15 =4R= STO 0 AEKEY(3) [KEY DETAILS 9 =5=W LDX 0 EFLOW(1) 17 =5QG STO 0 AEFLOW(3) [2ND LEVEL O'FLOW BKT 8 =6=6 LDCT 0 #600 9 =6PQ ANDX 0 EINF3(1) 18 =79B STO 0 AEINF3(3) [INTEGRITY CODE (B0&1) 10 =7P2 LDX 0 EWRITDAY(1) 15 =88L STO 0 AEWRITDAY(3) [DATE WRITTEN 9 =8N= LDX 0 EORG(1) 17 =97W STO 0 AEORG(3) [FILE ORGANISATION 8 =9MG ANDN 0 #77 7 ==76 LDN 6 7 7 ==LQ SLOG SRL 0 1 8 =?6B BZE 0 WLOG 8 =?L2 BUX 6 SLOG 18 =#5L WLOG STO 6 ALOG(3) [LOG2 OF BKT SIZE IN WDS 18 =#K= NGS 6 EDPTIME(3) [INITIALISE PERI TIMER 17 =*4W FREECORE 1 [ENT NO LONGER NEEDED 7 =*JG TOPFCA2 1 10 =B46 STOZ FREADWORD(1) 19 =BHQ JBC WAJ,1,BAMWRITE [JIF NOT OPEN IN WRITE MODE 7 =C3B TOPFCB2 1 21 =CH2 MBS 1,BFALTR,BFALTB ['COS FVERSION (& FENDBUCK) WILL BE 21 =D2L LDX 0 FVERSION(1) [ CHANGED 7 =DG= ADN 0 1 21 =D_W DSA 0 FVERSION(1) [UPDATE VERSION FOR OVERLAY & OFFSET 8 =FFG LDN 6 #7000 9 =F_6 ANDX 6 AWORK2(2) 9 =GDQ SETMODE 0,OVERLAY 15 =GYB BXE 6 0,WAJ [JIF OVERLAY 9 =HD2 SETMODE 0,OFFSET 7 =HXL ANDX 0 4 16 =JC= BZE 0 NOFFS [JIF NOT OFFSET 10 =JWW LDX 0 FENDBUCK(1) 10 =KBG SMO FILERING(2) 19 =KW6 STO 0 FREADWORD [END OF FILE BKT FOR EDOBJ 9 =L*Q SMO ALOG(3) 7 =LTB SLL 0 0 9 =M*2 SRL 0 GSBSLOG 9 =MSL DEX 0 EDBUFR(3) 8 =N#= BRN WAJ 5 =NRW NOFFS 16 =P?G STOZ FVERSION(1) [ZEROISE VERSION 20 =PR6 STOZ FENDBUCK(1) [ & E.O.F. BKT IF WRITE ONLY 8 =Q=Q BRN WAJ 4 =QQB SIMU 10 =R=2 # SET UP MASK FOR *FH 8 =RPL LDCT 0 #777 7 =S9= SMO 7 9 =SNW ANDX 0 PDATA(1) 12 =SW4 ... BXE 0 YFILEREAD(1),MASKSET 12 =T3= ... BXE 0 YFILEWRITE(1),MASKSET 11 =T8G BXU 0 YFILEHAN(1),U1 5 =TD# ...MASKSET 4 =TN6 # 21 =W7Q ...# FOR *FH,*FR,*FW WE ASSEMBLE A MASK OF FORBIDDEN MODES IN X4 AND A SET 21 =WMB # SWITCHES IN X5. THESE ARE PUT IN AWORK3 AND 4 OF THE OLPA RESPECTIVEL 15 =X72 # WE ALSO FREE THE ENT IN THE SERIAL FILE CASE. 4 =XLL # 15 =Y6= LDN 4 0 [CLEAR MASKS 7 =YKW LDN 5 0 14 =_5G TOPFCA2 2 [X2->FCA 16 =_K6 JBC NFHCOMM,2,BACOMM [J IF NOT COMMUNE 17 ?24Q ORX 4 XCOMM(1) [ADD FORBIDDEN MODES 5 ?2JB NFHCOMM 17 ?342 JBC NFHMULT,2,BAMULT [J IF NOT MULTIFILE 17 ?3HL ORX 4 XMULT(1) [ADD FORBIDDEN MODES 5 ?43= NFHMULT 16 ?4GW TOPFCB 2 [X2->FCB OF FILE 8 ?52G LDN 0 #77 9 ?5G6 ANDX 0 FINFC(2) 16 ?5_Q BZE 0 NFHIND [J IF NOT INDEXED 17 ?6FB ORX 4 XINDE(1) [ADD FORBIDDEN MODES 15 ?6_2 ... JBC YFHIND,2,BFDIR [J IF NOT DIR 17 ?7DL ORX 4 XDIRS(1) [ADD FORBIDDEN MODES 19 ?7Y= OWNERCHE [DOES USER OWN FILES IN DIR 10 ?8CW TESTRPN2 OK,NOTOWNDIR 17 ?8XG LDN 5 #40 [SET A SWITCH IF SO 6 ?9C6 NOTOWNDIR 14 ?9HJ ... FINDACTFB 3,2,AOLPT,,,BPTR [X3->OLPA 21 ?9N2 ... BXE 3 BPTR(2),NONEWACT [IF OWNERCHE HAS SET UP AN AUTOCLOSE 19 ?9SD ... RINGACT 3,2 [BETWEEN CPA AND OLPA WE MUST 21 ?9YW ... [RECHAIN THE OLPA TO AVOID BREAKING T 17 ?=5# ... [ROLPA MACRO BELOW 5 ?=9Q ...NONEWACT 16 ?=BB TOPFCB2 2 [X2->FCB AGAIN 9 ?=L8 ... BRN YFHIND 5 ?=W2 NFHIND 18 ?=_X ... ORX 4 XNIND(1) [ADD FORBIDDEN MODE FOR 17 ??5S ... [NONINDEXED FILES. 5 ??9P ...YFHIND 20 ??*L JMBAC NFHDEST,2,BFGDR,BFDCF [ J IF NOT DESTRUCTIVE ACCESS 17 ??T= ORX 4 XGDR(1) [ADD FORBIDDEN MODES 5 ?##W NFHDEST 17 ?#SG JBC NFHSERIAL,2,BFSER [J IF NOT SERIAL FILE 18 ?*#6 ORX 4 XSER(1) [ADD IN FORBIDDEN MODE 8 ?*RQ LDX 2 FX2 18 ?B?B LDCT 0 #200 [IF SERIAL MAY BE OL *FH 21 ?BR2 ANDX 0 AWORK4(2) [IN WHICH CASE MORE FORBIDDEN MODES 20 ?C=L BNZ 0 YFHOL [AND NO FILE ENT BLOCK TO FREE 9 ?CQ= MFREEW FILE,ENT 8 ?D9W BRN NFHOL 5 ?DPG YFHOL 20 ?F96 ORX 4 XONLI(1) [ADD IN ONLINE FORBIDDEN MODES 8 ?FNQ BRN NFHOL 6 ?G8B NFHSERIAL 19 ?GN2 LDN 5 #100 [SET SWITCH TO SHOW NONSERIAL 20 ?H7L ORX 4 XDAFILE(1) [ADD IN NONSER FORBIDDEN MODES 8 ?HM= LDX 2 FX2 5 ?J6W NFHOL 15 ?JLG STO 4 AWORK3(3) [STORE MASKS 9 ?K66 STO 5 AWORK4(3) 4 ?KKQ U1 7 ?L5B ADXC 6 6 15 ?LK2 BCC NOTCR [JIF NOT CR 7 ?M4L LDN 4 1 5 ?MJ= TPCHEK 8 ?N3W LDCT 0 #377 9 ?NHG ANDX 0 AWORK1(2) 16 ?P36 BXU 0 TPTYPE(1),WAJ2 [JIF NOT TP FILE 15 ?PGQ STO 4 AWORK2(3) [FOR SIMULPTR 8 ?Q2B BRN WAJ2 5 ?QG2 NOTCR 7 ?Q_L ADXC 6 6 15 ?RF= BCC NOTTR [JIF NOT TR 7 ?RYW LDN 4 0 9 ?SDG LDX 0 AWORK4(2) 8 ?SY6 ANDX 0 BIT10 9 ?TCQ STO 0 AWORK4(3) 9 ?TXB BRN TPCHEK 5 ?WC2 NOTTR 9 ?WWL LDEX 0 AWORK4(2) 9 ?XB= BZE 0 MCHEXT 7 ?XTW SRL 0 2 9 ?Y*G STO 0 AWORK2(3) 9 ?YT6 BRN MCHAPP 5 ?_#Q MCHEXT 8 ?_SB LDX 0 BIT9 9 #2#2 ANDX 0 AWORK4(2) 8 #2RL BZE 0 WAJ2 9 #3?= STO 0 AWORK2(3) 8 #3QW BRN WAJ2 5 #4=G MCHAPP 8 #4Q6 LDN 0 #7000 9 #59Q ANDX 0 AWORK4(2) 17 #5PB BZE 0 WAJ2 [JIF NOT APPEND CASE 7 #692 #SKI CLINK<1$1 8 #6NL SBX 5 FX1 21 #78= WIND [HAVE TO DO WIND 'COS OPEN IN GENERAL 7 #7MW #SKI CLINK<1$1 7 #87G ADX 5 1 9 #8M6 LDX 3 BPTR(2) 8 #96Q BRN WAJ2 4 #9LB WAJ 8 #=62 LDX 1 FX1 4 #=KL WAJ2 8 #?5= LDCT 0 #10 7 #?JW SMO 7 10 ##4G ANDX 0 PDATA+1(1) 20 ##J6 BZE 0 PLINK [JIF LIMIT ADJUNCT NOT APPLICABLE 9 #*3Q LDXC 0 AWORK2(2) 17 #*HB BCS NLIM [JIF NO ADJUNCTS BLOK 8 #B32 LDN 4 18 18 #BGL CALL 6 XADJ [LOOK FOR LIMIT ADJUNCT 15 #C2= NLIM [NOT FOUND 9 #CFW LDX 4 AZVOLUME 8 #C_G LDCT 6 #200 9 #DF6 ANDX 6 AWORK4(2) 8 #DYQ BZE 6 VOL 18 #FDB LDX 4 BITS22LS [ NO LIMIT FOR O-L CASE 4 #FY2 VOL 9 #GCL STO 4 ALIMEY(3) 5 #GX= PLINK 8 #HBW LDX 1 FX1 7 #HWG SMO 7 10 #JB6 LDX 5 PDATA+2(1) 8 #JTQ LDCT 0 #377 9 #K*B ANDX 0 AWORK1(2) 18 #KT2 BXU 0 TPTYPE(1),NTPTYPE [J UNLESS *TP TYPE FILE 18 #L#L LDX 5 TSIM(1) [LINK FOR TP SIMULATOR 5 #LS= NTPTYPE 8 #M?W LINKSET 3,5 9 #MRG LDX 5 AWORK3(2) 17 #N?6 PUTPEREN 5,GSIGN [INSERT PERIPH. ENTRY 18 #NQQ ROLPA [CHAIN AOLPT IN PCA CHAIN 19 #P=B HUNTW 3,FILE,ENT [IF ENT LEFT GIVE IT TO OLPA 9 #PQ2 BNG 3 NOENTLEFT 8 #Q9L CHAIN 3,6 6 #QP= NOENTLEFT 19 #R8W BNG 7 NOCH [JIF NO M/F TO CHANGESTREAM 7 #RNG LOCK 6 17 #S86 CHANGEST 6 [PASS FILE TO OLPA 7 #SMQ UNLOCK 6 4 #T7B NOCH 9 #TM2 LDX 4 JOBNO(2) 10 #W6L GSCAN 4,JOB ASTU,2 9 #WL= LDX 0 AWORK4(2) 15 #X5W BPZ 0 XEND [J IF COMMAND 7 #XKG UPPLUS 1 4 #Y56 XEND 6 #YJQ ENDCOM 4 #_4B XADJ 11 #_J2 MHUNTW 1,FILE,ADJUNCTS 14 *23L LDX 0 A1(1) [REC HDDR 19 *2H= SBN 0 ADPAIR-A1 [WORD PAIRS START AT ADPAIR 13 *32W BNG 0 X [? 7 *3GG SRL 0 1 15 *426 BZE 0 X [BLOCK EMPTY 4 *4FQ X2 20 *4_B BXE 4 ADPAIR(1),X1 [JIF THIS IS REQD. ADJUNCT TYPE 7 *5F2 ADN 1 2 8 *5YL BCT 0 X2 7 *6D= X LDN 4 0 16 *6XW EXIT 6 0 [NOT FOUND X4=0 4 *7CG X1 9 *7X6 #SKI K6ASSIGN>199-199 10 *8BQ TRACE 4,ADJ TYPE 16 *8WB LDX 4 ADPAIR+1(1) [ADJUNCT VALUE 9 *9B2 #SKI K6ASSIGN>199-199 10 *9TL TRACE 4,ADJ VALU 19 *=*= EXIT 6 1 [FOUND X4=ADJUNCT VALUE 4 *=SW OPBI 18 *?#G COMBRKIN [USEROPEN BREAK-IN LABEL 6 *?S6 NJPARMIS1 8 *#?Q LDX 1 FX1 5 *#RB NJPARMIS 7 **?2 ADX 3 1 13 **QL COMERRX ZJPARMIS(1),ZMISSING(3) 6 *B== WRONGDEVICE 10 *BPW LDX 6 ZASSIGNER1(1) 5 *C9G NASSILO 9 *CP6 LDXC 0 AWORK4(2) 15 *D8Q BCS TLOUP [JIF ASSILO 6 *DNB NCOMERRX1 7 *F82 COMERRX 6 6 *FML NJTOOMANY 10 *G7= LDX 6 ZJTOOMANY(1) 9 *GLW BRN NCOMERRX1 5 *H6G XMODES 10 *HL6 LDX 6 ZINCOMQU(1) 9 *J5Q BRN NASSILO 6 *JKB WRONGQUAL 10 *K52 LDX 6 ZILLQUAL(1) 9 *KJL BRN NCOMERRX1 5 *L4= NOTCOMM 10 *LHW LDX 6 ZASSIGNER2(1) 9 *M3G BRN NCOMERRX1 4 *MH6 [ 11 *N2Q MENDAREA AOLPGAP,K99ASSIGN 4 *NGB #END 6 ____ ...175134310011