READSPEC867
(George Source)
Macros used: CAPCA, CHECKEXT, FADDRESS, FREECORE, GEOERR, GETWORD, ILLEGAL, INMOVE, JNCAFSDV, LADDP, LGEOG, MENDAREA, MFINDEXOF, MFINDSU, MHUNTW, OLPFIN1, OUTPACK, PAIR, PROGBRKIN, RELST, RUNPROG, SEGENTRY, SETUPCORE, SMUSEST, STEPBACK, SUSESTX, TESTREPNOT, TOPCA1, UNPLUG, WORDFIN
- READSPEC867.txt
22FL ...#SEG READSPEC70 [FRANK BLUNDELL 22LS ...# COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 22S2 ...# 22^= #LIS K0READSPEC 23DW 8HREADSPEC 23YG # IMPLEMENTS MODE #1400 (READ FILE AREA SPEC) 24D6 # ON ENTRY ACTIVITY IS AOLPT 24XQ # EXEC2 CONTAINS CA ADDRESS 25CB # 25X2 # 26BL #DEF XCA=EVENT2 26W= # 27*W SEGENTRY K1READSPEC,QK1READ 27TG SEGENTRY K2READSPEC,QK2READ 28*6 # 28SQ RM1 #77777 29#B SM1 #777777 29S2 RHP PAIR PERION,1 2=?L # 2=R= # 2?=W QK1READ 2?QG STOZ AWORK3(2) [EOF FOR LATER USE 2#=6 STO 6 AWORK1(2) [SAVE ADDITIVE MODES 2#PQ LDX 7 APETADDR(2) [USED TO MARK OLPA ENTRY 2*9B LDN 4 8 2*P2 CHECKEXT XCA(2),4,XRV,7,W,RK,HLOCK1 2B8L RK [CHECK CONTROL AREA 2BN= #SKI K6READSPEC>199-199 2C7W ( 2CMG SBN 5 #1400 [CHECK MODE 2D76 BZE 5 RAA 2DLQ GEOERR 1,RSPMODE 2F6B RAA 2FL2 ) 2G5L LDX 3 XCA(2) 2GK= LDX 2 7 [PCA ADDRESS 2H4W ADN 3 6 2HJG FADDRESS 2,3,HLOCK1 [GET ADDRESS OF WORD CONTAINING LBN 2J46 LDX 2 FX2 2JHQ LDX 6 0(3) [X6 CONTAINS LBN 2K3B BZE 6 RD [JUMP IF LBN OUT OF RANGE 2KH2 MFINDEXOF 3,EXNUM(2) [FIND EXOF FOR THIS FILE 2L2L LDX 0 EXMODE(2) 2LG= SBN 0 #400 2L^W BNZ 0 RBA [JUMP IF NOT EOF MODE 2MFG ADX 6 FIP+10(3) 2M^6 SBN 6 1 [ADD IN EOF 2NDQ LDX 0 FIP+10(3) 2NYB SBN 0 1 2PD2 STO 0 AWORK3(2) [EOF FOR LATER USE 2PXL RBA LDEX 4 FIP+5(3) 2QC= BZE 4 RD [NO AREAS 2QWW LDN 5 0 [LOOK FOR FD CELL FOR THIS LBN 2RBG RB SMO 5 2RW6 TXL 6 FDCELLS+5(3) 2S*Q BCS RA 2STB ADN 5 6 2T*2 BCT 4 RB 2TSL RD LDCT 6 #400 [BUCKET OUT OF RANGE 2W#= ... LDN 4 6 2WRW ... LDN 5 1 2X?G BZE 7 RDA [JUMP IF WORKING IN PCA 2XR6 BRN RC [JUMP TO SET REPLY 2Y=Q RA SMO 5 2YQB LDX 4 FDCELLS(3) [SERIAL NUMBER OF UNIT HOLDING 2^=2 SUSESTX 4,RE [MARK UNIT TO BE LEFT ONLINE 2^PL RAS LDX 0 HSTUN(1) 329= SMO FX2 32NW STO 0 ACOMMUNE1 [START SORTING OUT OP REPLIES 375G LGEOG HUNIT(1),4 [GET GEOGRAPHICAL NO. 37K6 LDX 0 BSUNIT1(2) [COUNT OF SUS 38JB SRL 0 6 3942 ANDN 0 #77 39HL SBN 0 1 [JUMP IF ONLY ONE UNIT 3=3= BZE 0 RF 3=GW LDCT 0 #100 [SET SHARED HEADS BIT 3?2G ORX 4 0 3?G6 RF LDCT 0 #200 3?^Q ORX 4 0 [MOVEABLE HEADS 3#2B ...#UNS CAFSINT 3#32 ...( 3#3L ...# FOR THE CAFS INTERFACE, WE INDICATE IN EACH FILE AREA 3#4= ...# DESCRIPTION THE TYPE OF DRIVE CONTAINING THE FILE AREA 3#4W ...# 3#5G ...# THIS IS DONE IN WORD 7 OF THE ENTRY AS FOLLOWS: 3#66 ...# 3#6Q ...# BITS 12,13 = 0 NON-CAFS DRIVE 3#7B ...# = 1 CAFS 'S' DRIVE 3#82 ...# = 2 CAFS 'M' DRIVE 3#8L ...# = 3 UNDEFINED 3#9= ...# 3#9W ...# 3#=G ... JNCAFSDV HUNIT(1),SNOTCAFS [JIF FILE AREA NOT ON A CAFS DRIVE 3#?6 ...# 3#?Q ... LDCT 0 #100 3##B ... SMO HUNIT(1) [CHECK IF THE CAFS DRIVE NUMBER > 7 3#*2 ... ANDX 0 CFDRIVENO 3#*L ... SRL 0 11 [CONVERT TO APPROPRIATE PATTERN 3#B= ... ADN 0 #2000 [AS SPECIFIED ABOVE 3#BW ... ORX 4 0 [MERGE INTO REST OF REPLY 3#CG ...# 3#D6 ...SNOTCAFS 3#DQ ...) 3#FB LDX 2 FX2 3#^2 STO 4 ACOMMUNE7(2) 3*DL RJ SMO 5 3*Y= LDX 0 FDCELLS+1(3) 3BCW STO 0 ACOMMUNE2(2) [START CYLINDER 3BXG SMO 5 3CC6 ADX 0 FDCELLS+3(3) 3CWQ SBN 0 1 [END CYLINDER 3DBB [B0 SET IF NECESSARY 3DW2 STO 0 ACOMMUNE3(2) 3F*L SMO 5 3FT= LDX 0 FDCELLS+2(3) 3G#W STO 0 ACOMMUNE4(2) [STARTING BLOCK 3GSG SMO 5 3H#6 ADX 0 FDCELLS+4(3) [ENDING BLOCK 3HRQ SBN 0 1 3J?B STO 0 ACOMMUNE5(2) 3JR2 SMO 5 3K=L LDX 0 FDCELLS+5(3) 3KQ= SBX 0 AWORK3(2) [SUBTRACT EOF 3L9W STO 0 ACOMMUNE6(2) [LAST LBN+1 3LPG LDX 0 ACOMMUNE7(2) 3M96 BZE 0 RCA [JUMP IF UNIT NOT ONLINE 3MNQ SMO 5 3N8B LDX 6 FDCELLS(3) [SERIAL NUMBER 3NN2 RELST 6 [RELEASE UNIT 3P7L ...RCA LDN 4 ACOMMUNE1(2) 3PM= ... LDN 5 7 3Q6W BZE 7 RDA [JUMP IF IN PCA 3QLG RC LDX 3 XCA(2) 3R66 ADN 3 1 3RKQ ... INMOVE 7,3,4,5 3S5B LDX 1 FX1 3SK2 OLPFIN1 RHP(1) 3T4L # 3TJ= # UNIT NOT ONLINE 3W3W # 3WHG RE LDX 2 FX2 3X36 LDN 0 2 3XGQ ANDX 0 AWORK1(2) [CHECK FOR MODE #400 3Y2B BZE 0 RH [JUMP IF NOT SET 3YG2 STO 4 ACOMMUNE1(2) [SET REPLIES FOR UNIT NOT 3Y^L STOZ ACOMMUNE7(2) [ONLINE 3^F= BRN RJ [GO TO SET REST OF REPLIES 3^YW # 42DG # GET UNIT ONLINE 42Y6 # 43CQ RH LDX 5 EWCHAN(2) [GET DATA INTO ACCS 43XB SRC 5 6 44C2 ORX 5 4 [X5 B0-B5 CHANNEL B6-B23 C.S.N 44WL LDX 4 XCA(2) [C.A ADDRESS 45B= LDX 3 EXNUM(2) 45TW LDX 7 AWORK3(2) [EOF 46*G LDX 1 FX1 46T6 TOPCA1 RHP(1) [CHANGE TO PCA 47#Q UNPLUG [NOW IN PCA 47SB CAPCA [GO TO CPA 48#2 LDX 0 5 48RL ANDX 0 SM1(1) 49?= STO 0 AWORK1(2) [SERIAL NUMBER 49QW SMUSEST AWORK1(2),SCANT,SBRK 4=Q6 STO 7 AWORK3(2) 4?9Q LDN 7 0 [SET MARKER 4?PB STO 3 AWORK1(2) [EXOFILE NUMBER 4#92 ANDX 5 SM1(1) [X5 HOLDS SU SERIAL NUMBER 4#NL STO 4 AWORK2(2) [CONTROL AREA ADDRESS 4BM6 SA MFINDSU 1,5 [FIND ASTUC FOR THIS UNIT 4C6Q MFINDEXOF 3,AWORK1(2) 4F5= LADDP HUNIT(1),2 4FJW LDEX 4 FIP+5(3) 4G4G LDN 5 0 4GJ6 SB SMO 5 4H3Q TXL 6 FDCELLS+5(3) 4HHB BCS RAS 4J32 ADN 5 6 4JGL BCT 4 SB 4K2= BRN RD [JUMP TO SET LBN OUT OF RANGE 4K5X ...RDA SETUPCORE 5,3,EWDAS,GEXD 4K9J ... LDN 6 ACOMMUNE1(2) 4K*9 ... LDN 7 A1(3) 4KDW ... SMO 5 4KJH ... MOVE 6 0 4KN8 ... LDX 7 AWORK2(2) [C.A ADDRESS 4KRT ... ADN 7 1 4KXG ... LDN 6 A1 4L39 ...RDAREP 4L4* ... GETWORD 7,7,WRITE,4,5 [X3 WILL POINT TO GEORGE ADDR OF RW 4L5F ... TESTREPNOT OK,XCRV 4L6K ... MHUNTW 3,EWDAS,GEXD 4L7P ... ADX 6 3 4L8T ... TXL 4 5 [CAN MOVE BE DONE IN ONE GO? 4L=5 ... BCC RDAFIN [J IF IT CAN 4L?K ... SMO 4 4L*5 ... MOVE 6 0 [MOVE WHAT WE CAN 4LBK ... SMO 4 4LD5 ... LDN 6 A1 [UPDATE ADDRESSES 4LFK ... LDX 7 AWORK2(2) 4LH5 ... ADN 7 1 4LJK ... ADX 7 4 4LL5 ... SBX 5 4 [& NO OF WORDS WE WANT TO ACCESS 4LMT ... BRN RDAREP 4LPJ ...RDAFIN 4LR? ... SMO 5 4LSC ... MOVE 6 0 [FINAL MOVE 4LTH ... FREECORE 3 4LWP ... WORDFIN 4LYQ RUNPROG [RESTART PROGRAM 4MDB # 4MY2 # 4NCL # 4NX= # 4PBW # THIS SECTION IMPLEMENTS MODE #1100 (READ FILE SPEC) 4PWG # ENTRY AS MODE #1400 4QB6 # 4QTQ # 4R*B # 4RT2 # 4S#L QK2READ 4SS= LDX 7 APETADDR(2) [PWA ADDRESS 4T?W LDN 4 17 4TRG CHECKEXT XCA(2),4,XRV,APETADDR(2),W,QD,HLOCK1 4W?6 QD [CHECK CONTROL AREA 4WQQ STO 6 AWORK1(2) 4X=B #SKI K6READSPEC>199-199 4XQ2 ( 4Y9L SBN 5 #1100 4YP= BZE 5 QAA 4^8W GEOERR 1,MODEWRNG 4^NG QAA 5286 ) 52MQ LDCT 6 #400 537B ORN 6 5 [REPLY IF SCRATCH FILE 53M2 LDX 0 EXMODE(2) 546L SBN 0 #600 54L= BZE 0 QA [JUMP IF SCRATCH FILE 555W MFINDEXOF 3,EXNUM(2) 55KG SUSESTX ASUSN(3),QB 5656 LDX 0 HSTUN(1) [SERIAL NO. AND BITS 2 AND 3 56JQ STO 0 ASUSN(3) 574B LDX 1 FX1 57J2 LDX 2 FX2 583L LDX 4 XCA(2) 58H= ADN 4 1 592W LDN 5 16 [MOVE IN REPLIES 59GG LDN 6 ASUSN(3) 5=26 INMOVE 7,4,6,5 5=FQ LDX 0 SM1(1) 5=^B ANDS 0 ASUSN(3) [REMOVE BITS 2 AND 3 5?F2 RELST ASUSN(3) [RELEASE UNIT 5?YL OLPFIN1 RHP(1) 5#D= # UNIT NOT ONLINE - CHECK FOR MODE #4000,GET ONLINE 5#XW # IF NECESSARY 5*CG # 5*X6 QB LDX 1 FX1 5BBQ LDX 2 FX2 5BWB LDN 0 2 5CB2 ANDX 0 AWORK1(2) 5CTL BZE 0 QC 5D*= LDCT 6 #400 5DSW ORN 6 6 5F#G QA LDN 5 1 5FS6 LDX 4 XCA(2) 5G?Q ADN 4 1 5GRB LDN 3 6 5H?2 INMOVE 7,4,3,5 5HQL OLPFIN1 RHP(1) 5J== # 5JPW # BACK TO ANALYSIS ROUTINE 5K9G # 5KP6 # 5L8Q # GO TO CPA TO GET UNIT ONLINE,THEN BACK TO PCA TO SET REPLIES 5LNB # 5M82 QC LDX 5 EWCHAN(2) 5MML SRC 5 6 5N7= ORX 5 ASUSN(3) 5NLW LDX 3 EXNUM(2) 5P6G LDX 4 XCA(2) 5PL6 TOPCA1 RHP(1) 5Q5Q # 5QKB # NOW IN PCA 5R52 UNPLUG [UNPLUG PROGRAM 5RJL CAPCA [GO TO CPA 5S4= LDX 0 5 5SHW ANDX 0 SM1(1) 5T3G STO 0 AWORK1(2) [SERIAL NUMBER 5T?# ... STO 3 AWORK3(2) [EXOFILE NO 5TH6 SMUSEST AWORK1(2),SCANT,SBRK 5W2Q [GET UNIT ONLINE 5X22 ANDX 5 SM1(1) 5XFL MFINDSU 1,5 5X^= MFINDEXOF 3,3 [FIND ASTUC AND EXOF 5YDW LDX 0 HSTUN(1) 5YYG STO 0 ASUSN(3) 5^D6 LDX 5 4 5^XQ ADN 5 1 62=7 ... STO 5 AWORK2(2) [RW ADDRESS 62JJ ... LDN 4 ASUSN 62X2 LDN 6 16 62^D ...QGW 633W ... GETWORD 5,5,WRITE,7,6 [X5 POINTS TO GEORGE ADDR OF RW 636# ... TESTREPNOT OK,XCRV 638Q ... MFINDEXOF 3,AWORK3(2) 63?8 ... ADX 4 3 [X4 UPDATE FOR MOVE 63*L ... TXL 7 6 [[CAN MOVE BE DONE IN ONE GO? 63D4 ... BCC QWF [J IF IT CAN 63GG ... SMO 7 63JY ... MOVE 4 0 [MOVE WHAT WE CAN 63MB ... LDX 5 AWORK2(2) 63PS ... ADX 5 7 63S= ... SBX 6 7 [ADJUST NO OF WORDS REQD TO ACCESS 63WN ... SMO 7 63^6 ... LDN 4 ASUSN 643J ... BRN QGW 6462 ...QWF 648D ... SMO 6 64=W ... MOVE 4 0 [FINAL MOVE 64*W SMO FX1 64TG LDX 0 SM1 65*6 ANDS 0 ASUSN(3) 65SQ RELST ASUSN(3) [RELEASE UNIT 664J ... WORDFIN 66#B RUNPROG [RESTART PROGRAM 66S2 # 67?L # 67R= # CANTDO AND BREAKIN WHIST WAITING FOR UNIT 68=W # 68QG # 69=6 STEN +10 69PQ # 6=9B # 6=P2 XCRV GEOERR 1,RESVIOL 6?8L # 6?N= # 6#7W # BREAKIN 6#MG SBRK STEPBACK [STEP BACK ONR OF PROGRAM TO REPEAT 6*76 PROGBRKIN [REPORT BREAKIN 6*LQ # 6B6B # CANTDO 6BL2 # 6C5L SCANT LDX 3 4 6CK= SRL 5 18 [X5= CHANNEL NUMBER 6D4W ... LDCT 6 6 6DJG ... ADX 6 5 [DEVICE AND CHANNEL NO. 6F46 ...XPAR OUTPACK 6,1,PERINAME,XPAR 6LD2 XC2 LDCT 7 #440 6LXL ADN 3 1 6M=3 ... GETWORD 3,3,WRITE 6MJD ... TESTREPNOT OK,XCRV 6MWW STO 7 0(3) 6N6N ... WORDFIN 6NBG ILLEGAL PERFAIL 6NW6 # 6P*Q # 6PTB # RESERVATION VIOLATION 6Q*2 # 6QSL XRV TOPCA1 RHP(1) 6R#= UNPLUG 6RRW ILLEGAL NOCA 6S?G MENDAREA 30,K99READSPEC 6SR6 #END ^^^^ ...10177126000100000000