CONSERNO6

(George Source)

Macros used: CLOSETOP, FREECORE, GEOERR, MENDAREA, MHUNT, MHUNTX, NAME, OPENSYS, READAGAIN, SDSEARCH, SEG, SEGENTRY, SETNCORE, UP, UPPLUS

CONSERNO6.txt
22FL    #LIS           K0CONSERNO>K0LIBRARY 
22^=          SEG      CONSERNO,6,N.R.BOULT 
23DW    #     THIS ENTRY POINT IMPLEMENTS THE CONSERNO MACRO.   
23YG    #     ACOMMUNE1 HOLDS THE TSN TO BE CONVERTED TO OCTAL CHARACTERS.  
24D6    #     ACOMMUNE2 HOLDS THE POSN. WITHIN THE BLOCK TO STORE THE OUTPUT -  
24XQ    #     IF ZERO, A1 OF A FLIB/FTSN TO BE SET UP IS ASSUMED.   
25CB    #     ACOMMUNE3 HOLDS ATYPE OF THE BLOCK TO STORE THE OUTPUT IN -   
25X2    #     IF ZERO AND ACOMMUNE2 IS SET, THE ACTIVITY BLOCK IS USED. 
26BL    #     ON EXIT, THE COUNT OF CHARS. IS ALSO LEFT IN ACOMMUNE1.   
26W=    #   
27*W          SEGENTRY K1CONSERNO,QK1CONSERNO   
27TG          SEGENTRY K2CONSERNO,QK2CONSERNO   
28*6          SEGENTRY K3CONSERNO,QK3CONSERNO   
28SQ    #   
29#B    #   
29S2    QK1CONSERNO 
2=?L          LDX   7  ACOMMUNE1(2)        [TSN 
2=R=          LDX   0  ACOMMUNE2(2) 
2?=W          BNZ   0  TSN1                [BRANCH UNLESS FLIB/FTSN REQUIRED
2?QG          SETNCORE 4,3,FLIB,FTSN
2#=6          ADN   3  A1   
2#PQ          BRN      TSN2 
2*9B    TSN1
2*P2          LDX   0  ACOMMUNE3(2) 
2B8L          LDX   3  FX2  
2BN=          ADX   3  ACOMMUNE2(2) 
2C7W          BZE   0  TSN2                [BRANCH IF ACTIVITY BLOCK TO BE USED 
2CMG          MHUNTX   3,0  
2D76          ADX   3  ACOMMUNE2(2) 
2DLQ    TSN2
2F6B          LDN   1  1(3) 
2FL2          LDN   4  0                   [NO. OF CHARS. OUTPUT
2G5L          LDX   0  7
2GK=          ORX   7  GSIGN
2H4W          ERX   7  GSIGN               [UNSET ANY XENOTAPE BIT  
2HJG          LDN   5  8
2J46    TSN3
2JHQ          LDN   6  0
2K3B          SLL   67 3
2KH2          BNZ   4  TSN4                [BRANCH UNLESS NON. SIG. ZEROS IGNORE
2L2L          BZE   6  TSN5 
2LG=    TSN4
2L^W          DCH   6  0(1) 
2MFG          BCHX  1  £
2M^6          ADN   4  1
2NDQ    TSN5
2NYB          BCT   5  TSN3 
2PD2          BPZ   0  TSN6                [BRANCH UNLESS XENOTAPE  
2PXL          LDN   0  #70                 [X   
2QC=          DCH   0  0(1) 
2QWW          ADN   4  1
2RBG    TSN6
2RW6          STO   4  ACOMMUNE1(2)        [COUNT OF CHARS. OUTPUT  
2S*Q          STO   4  0(3) 
2STB          UP
2T*2    Q3    GEOERR   1,NOSYSDOC          [NO RECORD IN :SYSTEM.DOCUMENT   
2TSL    XBRK  UP                           [EXIT IF BREAK-IN
2W#=    Q1    TXU   6  NEG(1)              [VALIDATE PARAMETER  
2WRW          BCC      Q4   
2X?G    QR    GEOERR   1,CONSERNO   
2XR6    [   
2Y=Q    [ENTRY POINT TO FORM AONBS/GTN BLOCK FROM :SYSTEM.DOCUMENT MAG TAPE 
2YQB    [RECORD 
2^=2    [   
2^PL    QK2CONSERNO 
329=          LDX   6  EXEC2(2)            [ENTRY MARKER
32NW          LDX   7  EXEC1(2)            [SAVE EXEC1  
338G          BNG   6  Q1                  [J IF NEGATIVE   
33N6    [FIND RECORD IN :SYSTEM.DOCUMENT
347Q    #              THIS SECTION OF CODE IS NOT USED 
34MB    #              IT WILL NOT BE DELETED JUST YET  
3572          OPENSYS  XBRK,DOCUMENT,READ   
35LL          SDSEARCH Q3,GEOG,6
366=          READAGAIN 
36KW          CLOSETOP                     [CLOSE SYSTEM.DOCUMENT   
375G          MHUNT    3,FILE,FRB   
37K6          NAME     3,FLIB,FMAGH 
384Q    [SET UP AONBS/GTN BLOCK 
38JB    Q4    SETNCORE 15,2,AONBS,GTN   
3942          MHUNT    3,FLIB,FMAGH 
39HL          SMO      FX2  
3=3=          STO   2  EXEC2
3=GW          SMO      FX2  
3?2G          STO   3  EXEC3
3?G6          SMO      FX2  
3?^Q          STO   7  EXEC1               [RESTORE EXEC1   
3#FB    [INSERT TSN 
3#^2          LDX   5  A1+2(3)             [TSN 
3*DL          LDN   0  0
3*Y=          BPZ   5  QQ                  [J IF NOT XENOTAPE   
3BCW          LDN   0  1                   [INDICATE XENO   
3BXG          ERX   5  GSIGN
3CC6    QQ  
3CWQ          BNZ   5  QQT  
3DBB          LDX   0  A1+21(3) 
3DW2          ANDN  0  #400 
3F*L          BZE   0  QR   
3FT=          STOZ  A1(2)   
3G#W          BRN      QTN  
3GSG    QQT 
3H#6          LDN   1  8                   [COUNT   
3HRQ          LDN   6  8                   [WORK COUNT  
3J?B          LDN   7  0                   [MARKER  
3JR2    Q8    LDN   4  0                   [SET ACCUMULATOR ZERO
3K=L    Q7    SLL   45 3                   [SHIFT IN NEXT OCTAL 
3KQ=          BNZ   7  Q5                  [J MARKER NOT SET
3L9W          BNZ   4  Q6                  [J NON-ZERO OCTAL
3LPG          SBN   1  1                   [REDUCE COUNT
3M96          BCT   6  Q7                  [BCT WORK COUNT  
3MNQ          BRN      QR                  [J FOR GEORGE ERROR  
3N8B    Q6    LDN   7  1                   [SET MARKER  
3NN2    Q5    DCH   4  A1+1(2)             [INSERT OCTAL CHAR   
3P7L          BCHX  2  £                   [STEP POINTER
3PM=          BCT   6  Q8                  [BCT WORK COUNT  
3Q6W          BZE   0  QQ1                 [J IF NOT XENOTAPE   
3QLG          LDN   0  #70                 [X TO FOLLOW TSN 
3R66          DCH   0  A1+1(2)  
3RKQ          ADN   1  1                   [UPDATE COUT 
3S5B    QQ1 
3SK2          SMO      FX2  
3T4L          LDX   2  EXEC2               [RESET POINTER TO GTN
3TJ=          STO   1  A1(2)               [INSERT NUMBER OF CHARACTERS 
3W3W    [INSERT TAPE NAME   
3WHG    QTN 
3X36          ADN   2  A1+5 
3XGQ          ADN   3  A1+3 
3Y2B          CALL  6  TSP  
3YG2          LDX   2  FX2                 [RESTORE POINTERS
3Y^L          LDX   3  EXEC3(2) 
3^F=          LDX   2  EXEC2(2) 
3^YW          STO   4  A1+4(2)             [INSERT COMNT
42DG    [REEL,GENERATION
42Y6          LDX   1  FX1  
43CQ          LDX   0  A1+21(3) 
43XB          ANDN  0  #400 
44C2          BZE   0  Q5A                 [J IF STANDARD TAPE  
44WL          LDX   0  NONS(1)             ['NONS'  
45B=          STO   0  A1+9(2)  
45TW          LDN   0  4
46*G          STO   0  A1+8(2)             [UPDATE COUNT
46T6          BRN      Q14  
47#Q    Q5A 
47SB          LDX   5  A1+6(3)             [REEL
48#2          ANDX  5  REELMASK(1)         [REMOVE ZERO BIT 
48RL          TXL   5  REELMAX(1)          [ERROR IF NOT < 513  
49?=          BCC      QR   
49QW          LDN   1  A1+9(2)  
4==G          CALL  0  NUM                 [CONVERT TO DECIMAL  
4=Q6          ADN   7  1                   [FOR COMMA   
4?9Q          STO   7  A1+8(2)  
4?PB          LDN   0  #34  
4#92          DCH   0  0(1)                [INSERT COMMA
4#NL          BCHX  1  £                   [STEP POINTER
4*8=          LDX   5  A1+7(3)             [GENERATION  
4*MW          BPZ   5  Q12                 [J IF POSITIVE   
4B7G          TXU   5  GSIGN
4BM6          BCC      Q13  
4C6Q          SMO      FX1  
4CLB          LDN   0  NGMS 
4D62          MVCH  0  8
4DKL          LDN   0  8
4F5=          ADS   0  A1+8(2)  
4FJW          BRN      Q14  
4G4G    Q13 
4GJ6          NGX   5  5                   [ELSE NEGATE 
4H3Q          LDN   0  #35                 [AND PREFIX '-'  
4HHB          DCH   0  0(1) 
4J32          BCHX  1  £
4JGL    Q12   CALL  0  NUM  
4K2=          ADS   7  A1+8(2)             [UPDATE COUNT
4KFW    [CLEARING UP TO FINISH  
4K^G    Q14 
4LF6          SMO      FX2  
4LYQ          LDX   3  EXEC3               [FINISHED WITH FILE/FRB  
4MDB          FREECORE 3                   [--- SO FREE IT  
4MY2          MHUNT    3,AONBS,GTN         [RELOCATE GTN
4NCL          LDX   5  EXEC1(2)            [LOAD JOB NUMBER 
4NX=          BPZ   5  Q9                  [J IF REALLY JOB NR  
4PBW          TXU   5  NEG(1)   
4PWG          BCS      QR   
4QB6          STOZ     A1+12(3)            [ZEROIS5 JOB COUNT   
4QTQ    Q10   UPPLUS   1                   [FINISHED
4R*B    [   
4RT2    [JOB NUMBER 
4S#L    Q9  
4SS=          LDN   1  A1+13(3) 
4T?W          CALL  0  NUM                 [CONVERT TO DECIMAL  
4TRG          STO   7  A1+12(3) 
4W?6          BRN      Q10  
4WQQ    [   
4X=B    [ENTRY POINT TO SET UP AONBS/GTN FROM FILE/FABSNB   
4XQ2    [   
4Y9L    QK3CONSERNO 
4YP=          SETNCORE 15,2,AONBS,GTN      [SET UP OUTPUT BLOCK 
4^8W          STOZ     A1(2)               [ZEROISE TSN COUNT   
4^NG          SMO      FX2  
5286          STO   2  EXEC2
52MQ          MHUNT    3,FILE,FABSNB       [LOCATE INPUT BLOCK  
537B          ADN   2  A1+5 
53M2          ADX   3  HDREC(3) 
546L          ADN   3  A1-6                [POINTER 
54L=          SMO      FX2  
555W          STO   3  EXEC3
55KG          CALL  6  TSP                 [REMOVE  
5656          LDX   1  FX1  
56JQ          LDX   2  FX2  
574B          LDX   3  EXEC3(2)            [RESTORE X3  
57J2          LDX   2  EXEC2(2)            [RESTORE X2  
583L          STO   4  A1+4(2)             [INSERT COUNT
58H=          LDX   5  3(3) 
592W          ANDX  5  REELMASK(1)         [REMOVE ZERO BIT 
59GG          TXL   5  REELMAX(1)          [TEST REEL < 513 
5=26          BCC      QR                  [J ERROR IF NOT  
5=FQ          LDN   1  A1+9(2)  
5=^B          CALL  0  NUM                 [CONVERT TO DECIMAL  
5?F2          ADN   7  1                   [FOR COMMA   
5?YL          STO   7  A1+8(2)             [COUNT SO FAR
5#D=          LDN   0  #34  
5#XW          DCH   0  0(1)                [INSERT COMMA
5*CG          BCHX  1  £                   [STEP POINTER
5*X6          LDX   5  4(3)                [GENERATION  
5BBQ          BNG   5  QR                  [J,ERROR IF NEGATIVE 
5BWB          BZE   5  Q11                 [J IF GEN ZERO   
5CB2          SLL   5  3
5CTL          SRL   5  3
5D*=          CALL  0  NUM                 [CONVERT TO DECIMAL  
5DSW          ADS   7  A1+8(2)  
5F#G    Q11   LDX   3  2
5FS6          SMO      FX2  
5G?Q          LDX   5  EXEC1
5GRB          BRN      Q9                  [GO TO CONVERT JOB NR
5H?2    [   
5HQL    [SUBROUTINE TSP 
5J==    TSP   LDN   5  13                  [WORK COUNT  
5JPW    TSP1  LDN   4  12                  [FINAL COUNT 
5K9G    TSP2  BCT   5  TSP3                [STEP WORK COUNT 
5KP6          EXIT  6  0                   [EXIT WHEN FINISHED  
5L8Q    TSP3  LDCH  0  0(3)                [LOAD CHARACTER  
5LNB          DCH   0  0(2)                [STEP POINTERS   
5M82          BCHX  3  £
5MML          BCHX  2  £
5N7=          SBN   0  #20  
5NLW          BNZ   0  TSP1                [J NOT SPACE 
5P6G          BCT   4  TSP2                [STEP FINAL COUNT
5PL6          LDN   4  1                   [COUNT OF 1,ALL SPACES   
5Q5Q          EXIT  6  0
5QKB    [   
5R52    [SUBROUTINE NUM 
5RJL    NUM   LDN   6  0
5S4=          LDN   4  0
5SHW          SMO      FX1  
5T3G          MPY   5  MAGIC               [SCALE NUMBER
5TH6          LDN   7  8
5W2Q    NUM2  BCT   7  NUM1                [STEP COUNT  
5WGB          BNZ   4  NUM4 
5X22          LDN   7  1                   [ZERO CASE   
5XFL          BCHX  1  £
5X^=          EXIT  0  0                   [EXIT ZERO CASE  
5YDW    NUM4  LDX   7  4                   [COUNT   
5YYG          EXIT  0  0                   [EXIT
5^D6    NUM1  CBD   5  0(1)                [CONVERT 
5^XQ          BNZ   4  NUM3 
62CB          LDCH  4  0(1) 
62X2          BZE   4  NUM2 
63BL          LDX   4  7
63W=    NUM3  BCHX  1  £
64*W          BRN      NUM2 
64TG    [   
65*6    [CONSTANTS  
65SQ    NEG            -1   
66#B    REELMASK       #67777777
66S2    REELMAX        +513 
67?L    MAGIC          +7036875 
67R=    NGMS           8H-8388608   
68=W    NONS           4HNONS   
68QG          MENDAREA 50,K99CONSERNO   
69=6    #END
^^^^ ...52441672000100000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1