14 22FL ... SEG USERTYPE,83,MIKE PUTNAM,USEROPES 4 22_= [ 4 23DW [ 11 23YG SEGENTRY K1USERTYPE,WRIT 11 24D6 SEGENTRY K2USERTYPE,READ 4 24XQ [ 4 25CB [ 21 25X2 # USERTYPE CHECKS THAT THE PERIPHERAL TYPE MODE WORD OF A FILE (AS G 21 26BL [ IN A FILE/ENT BLOCK IS SUCH THAT THE FILE CAN BE USED FOR A PERIPH 21 26W= [ TYPE/MODE AS SPECIFIED IN A FILE/CREATE BLOCK. THE REPLY PERITYPE 20 27*W [ GIVEN WHEN FILE TYPES CLASH AND THE REPLY PERIMODE IS GIVEN 17 27TG [ WHEN FILE MODES CLASH. FILE TYPES FOR MK7+ ARE: 9 28*6 [ BASIC (#400...) 9 28SQ [ *MT (#405...) 14 29#B [ *DA (#406..., #411..., #415...) 4 29S2 [ 19 2=?L [ BUT MK7- FILES MIGHT BE AROUND. SO A GOOD DEAL OF PRESENT 19 2=R= [ CODE CONCERNS THEM. FILE TYPES (#400... TO #404...) 4 2?=W [ 21 2?QG [ THIS TABLE COULD BE COMPRESSED TO ONE QUARTER BUT REQUIRES THOUGHT ON 15 2#=6 [ HOW TO MAKE IT COMPREHENSIBLE AND CHANGEABLE 20 2#PQ [ ANOTHER PROBLEM IS COPYING DIRECTORIES. CETM DOES NOT DISTIN- 21 2*9B [ GUISH BETWEEN DIR & *FH; WE DO NOT WANT TO APPEND (COPY OF) DIR TO 21 2*P2 [ A TERMINAL FILE BECAUSE OF RECHDR DIFFERENCES. WE DO NOT ALLOW 20 2B8L [ COPY TO SET UP A F/CREATE BLK WITH BITS DISTINGUISHING DIRS 20 2BN= [ BECAUSE IN THE CREATE(MODE)/NOFILE(REPLY) CASE WE GO DIRECTLY 13 2C7W [ TO USERCREA & BY-PASS USERTYPE. 19 2CMG [ MARK8+ MEASURE IS TO HAVE ASSIGN SET UP CETM FOR *FH AS : 4 2D76 [ 9 2DLQ [ *FR (#462...) 9 2F6B [ *FW (#463...) 9 2FB8 ...[ *FH (#464...) 4 2FL2 [ 19 2G5L [ USEROPEN AND USERCREA WILL ZEROIZE CETM IN THESE CASES. 19 2GK= [ USERTYPE,MEANWHILE, ALLOWS [CETM] = 0 TO APPEND TO FILES 20 2H4W ...[ WITH [CETM] = 0 ONLY AND IT ALLOWS #462,#463,#464 TO ACCESS 11 2HJG [ ANY SERIAL FILE WHATSOEVER 4 2J46 [ 7 2JHQ T0 #40000000 4 2K3B T3 4 2KH2 T4 7 2L2L #40300000 7 2LG= #40400000 4 2L_W T2 7 2MFG #40200000 4 2M_6 T1 7 2NDQ #40100000 7 2NYB #40000000 4 2PD2 T5 7 2PXL #40500000 4 2QC= T6 4 2QWW T13 7 2RBG #40600000 7 2RW6 #41500000 4 2S*Q T9 7 2STB #41100000 6 2T*2 #DEF T=T0-1 5 2TSL TABLE 19 2W#= [ CHARACTER N GIVES THE START IN THE ABOVE TABLE OF THE GROUP OF 20 2WRW [ PERMISSIBLE PTMS FOR FILES IF DESIRED TYPE (IN CREATE BLOCK) IS N 19 2X?G [ MARK7 PREVENTS *TP WRITING TO TP FILE FRIG 2ND CHAR= T0 10 2XR6 SARAH T0,T0,T2,T3,T 10 2Y=Q SARAH T4,T5,T6,T,T 10 2YQB SARAH T,T9,T,T,T 10 2_=2 SARAH T,T13,T,T,T 5 2_PL TABLEN 15 329= [ NO. OF ALLOWED PTMS IF FILE IS BEING READ 7 32NW #05010105 7 338G #02010200 7 33N6 #00010000 7 347Q #00020000 5 34MB TABLEN2 16 3572 [ NO. OF ALLOWED PTMS IF FILE IS BEING WRITTEN 7 35LL #01010102 7 366= #02010200 7 36KW #00010000 7 375G #00020000 4 37K6 [ 4 384Q [ 4 38JB WRIT 4 3942 [ 19 39HL [ THIS PART SEES TO IT THAT AMORPHOUS FILES CAN BE APPENDED 20 3=3= [ TO BY AMORPHOUS NEW DATA AND THAT *FH CAN ACCESS ANY SERIAL 4 3=GW [ 10 3?2G MHUNTW 3,FILE,CREATE 9 3?G6 LDX 2 CETM(3) 20 3?_Q BZE 2 MORPHOUS [J IF SETTING UP AMORPHOUS DATA 7 3#FB LDX 4 2 8 3#_2 SRL 4 15 8 3*DL SBN 4 #462 14 3*Y= BZE 4 YHANDLER [J IF *FR 7 3BCW SBN 4 1 15 3BMN ... BZE 4 YHANDLER [J IF *FW 7 3BXG ... SBN 4 1 16 3C7# ... BNZ 4 TC1 [J IF NOT *FH 5 3CC6 YHANDLER 10 3CWQ MHUNTW 3,FILE,ENT 15 3DBB JBS TX,3,BESERIAL [J IF SERIAL 19 3DW2 [ CETM = 0 & FILE EXISTS. THEN FILE MUST BE SERIAL (FOR *FH) 9 3F*L #SKI K6USEROPEN>99-99 11 3FT= TRACE EINF1(3),USERNSER 19 3G#W BRN XR [ENTRANT NOT A SERIAL FILE 5 3GSG MORPHOUS 8 3H#6 LDCT 0 #100 8 3HRQ LDX 1 FX2 9 3J?B ANDX 0 AWORK3(1) 19 3JR2 BNZ 0 YHANDLER [J IF WAS ORIGINALLY AN *FH 9 3K=L SETMODE 0,MULTEL 9 3KQ= ANDX 0 AWORK4(1) 20 3L9W BNZ 0 YHANDLER [CETM CHECK ALREADY MADE WITH MDF 10 3LPG MHUNTW 1,FILE,ENT 9 3M96 LDX 0 ETM(1) 17 3MNQ BZE 0 TY [J IF AMORPHOUS FILE 8 3N8B BRN XR 4 3NN2 TC1 9 3P7L #SKI K6USEROPEN>699-699 10 3PM= TRACE 2,USERCETM 9 3Q6W BPZ 2 TYPERONG 21 3QLG LDCT 0 #17 [GEORGE ERROR IF PERIPHERAL TYPE IS 16 3R66 [ [GREATER THAN 15 7 3RKQ ANDS 0 2 17 3S5B BZE 2 TMODE [J IF *TR - LIKE FILE 21 3SK2 SLC 2 7 [MAKE INTO CHAR POINTER FOR TABLES 8 3T4L ADX 2 FX1 8 3TJ= LDN 0 #7000 7 3W3W ANDX 0 5 8 3WHG SBN 0 #3000 16 3X36 BNG 0 TC10 [J IF INPUT MODE 4 3XGQ [ 17 3Y2B [ LOAD NO.OF ALLOWED PTMS FOR WRITING TO THIS FILE 10 3YG2 LDCH 4 TABLEN2(2) 8 3Y_L BRN TC11 4 3_F= [ 16 3_YW [ LOAD NO.OF ALLOWED PTMS FOR READING THIS FILE 4 42DG TC9 8 42Y6 ADX 2 FX1 4 43CQ TC10 9 43XB LDCH 4 TABLEN(2) 4 44C2 [ 20 44WL [ LOAD START ADDRESS REL.TO START OF TABLE T FOR THIS FILE TYPE 4 45B= TC11 9 45TW LDCH 2 TABLE(2) 7 46*G #SKI K6USEROPEN 4 46T6 ( 8 47#Q BNZ 2 S1 9 47SB GEOERR 1,TYPE 4 48#2 S1 4 48RL ) 10 49?= MHUNTW 3,FILE,ENT 8 49QW ADX 2 FX1 8 4==G LDCT 0 #777 9 4=Q6 ANDX 0 ETM(3) 17 4?9Q [ IS THIS FILE TYPE IN THE LIST OF PERMITTED TYPES? 4 4?PB TM 9 4#92 BXE 0 T(2),TX 7 4#NL ADN 2 1 19 4*8= BCT 4 TM [J IF MORE TYPES PERMITTED 9 4*MW #SKI K6USEROPEN>99-99 11 4B7G TRACE ETM(3),USERXETM 4 4BM6 XR 9 4C6Q MFREEW FILE,ENT 10 4CLB MFREEW FILE,CREATE 18 4D62 VFREEBAX [MAY AS WELL FREE BS HERE 9 4DKL SETREP2 PERITYPE 5 4F5= UP 4 4FJW TX 4 4G4G #SKI 4 4GJ6 ( 10 4H3Q HUNTW 1,BSTB,FULLB 8 4HHB BNG 1 TY 7 4J32 FREEBAX 21 4JGL MFREEW BSTB,EMPTYB [FREE BS FOR FILE,SINCE FILE EXISTS. 4 4K2= ) 4 4KFW TY 7 4K_G UPPLUS 1 5 4LF6 TYPERONG 10 4LYQ GEOERR 1,TYPEMODE 4 4MDB [ 4 4MY2 [ 21 4NCL [ THIS SECTION IS MARK7 CHECK ON MODES. *TR WRITES ONLY TO TR FILES 5 4NX= TMODE 8 4PBW LDN 6 #7000 18 4PWG ANDX 6 5 [GET MAIN USEROPEN MODE 8 4QB6 SBN 6 #3000 15 4QTQ BNG 6 TC9 [J IF READING 18 4R*B LDEX 6 CETM(3) [GET MODE OF NEW RECORD 10 4RT2 MHUNTW 3,FILE,ENT 8 4S#L LDCT 0 #17 9 4SS= ANDX 0 ETM(3) 18 4T?W BNZ 0 XR [IF TYPE NOT *TR, ERROR 18 4TRG LDEX 0 ETM(3) [GET EXISTING FILE MODE 19 4W?6 SBX 0 6 [IF MODES COMPATIBLE, GO HOME 8 4WQQ BZE 0 TX 17 4X=B MFREEW FILE,ENT [OTHERWISE MODE ERROR 10 4XQ2 MFREEW FILE,CREATE 10 4Y9L HUNTW 1,BSTB,FULLB 8 4YP= BNG 1 XOUT 7 4_8W FREEBAX 10 4_NG MFREEW BSTB,EMPTYB 4 5286 XOUT 9 52MQ SETREP2 PERIMODE 5 537B UP 4 53M2 [ 4 546L [ 4 54L= [ 14 555W # THIS SECTION CHECKS T/M FOR LISTFILE 18 55KG [ N.B. MT PLACE IN P AND M TABLES IS FOR MONITORING FILES 19 5656 P [PTR TO START OF PERIPH TYPES TABLE 7 56JQ #01010403 7 574B #03040000 18 57J2 N [ TABLE OF NUMBER OF TYPES 7 583L #03030304 7 58H= #04020000 4 592W TN1 14 59GG [ TABLE OF PERMISSIBLE PERIPHERAL TYPES. 18 5=26 #00000000 [MON FILE FOR TAPE FILES 17 5=FQ #02000000 [LP FOR TAPE FILES 7 5=_B #01000000 14 5?F2 #00000000 [MON FILE 7 5?YL #02000000 7 5#D= #04000000 4 5#XW [ 4 5*CG [ 4 5*X6 READ 10 5BBQ MHUNTW 1,FILE,ENT 8 5BWB LDCT 2 #477 15 5CB2 ANDX 2 ETM(1) [FILE TYPE 16 5CTL ... LDCT 7 #40 [MULTIFILE BITS 9 5D*= ANDX 7 EINF1(1) 10 5DSW MHUNTW 1,GOUT,INFO 9 5F#G BZE 2 OKTYPE 8 5FS6 LDCT 0 #77 7 5G?Q ANDX 0 2 7 5GRB SLC 0 9 17 5H?2 SBN 0 5 [ERROR IF TYPE > 4 8 5HQL BPZ 0 XT 9 5J== BRN OKTYPE 5 5JPW OLDTYPE 15 5K9G SRC 2 2 [CHAR PTR. 8 5KP6 ADX 2 FX1 21 5L8Q LDCH 3 P(2) [POINTER REL.TO START OF PERIPHERAL 16 5LNB [ TYPES TABLE TN1 8 5M82 BZE 3 XT 19 5MML LDCH 6 N(2) [NUMBER OF ALLOWABLE TYPES 4 5N7= NEX 8 5NLW SMO FX1 20 5P6G LDX 4 TN1-1(3) [PICK UP NEXT PERMISSIBLE TYPE 8 5PL6 LDCT 0 #770 17 5Q5Q ANDX 0 GOPTY(1) [TEST TOP CHAR ONLY 21 5QKB BXU 4 0,TNX [J IF NOT THE TYPE OF O/P DEVICE REQD 5 5R52 OKTYPE 18 5RJL BZE 7 OKNOST [J UNLESS A MULTIFILE. 20 5S4= [ TYPE OK,BUT CHECK FROM AND OR LINES NOT GIVEN FOR MULTIFILE. 13 5SHW LDX 0 GFLI(1) [FROM 15 5T3G ORX 0 GNLI(1) [ & LINES 21 5TH6 BZE 0 OKNOST [ NOT ALLOWED WIT MULTIFS 9 5W2Q MFREEW FILE,ENT 9 5WGB SETREP2 FRLINE 5 5X22 UP 5 5XFL OKNOST 13 5X_= UPPLUS 1 [OK 4 5YDW TNX 7 5YYG ADN 3 1 8 5_D6 BCT 6 NEX 8 5_XQ BRN XT 9 62CB XT MFREEW FILE,ENT 9 62X2 SETREP2 LISTTYPE 5 63BL UP 4 63W= [ 4 64*W [ 11 64TG [ GAP FOR USEROPEN'S SAKE 11 65*6 ... MENDAREA 150,K99USERTYPE 4 66#B #END 8 ____ ...42263303001000000000