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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1