PCTMES8

(George Source)

Macros used: ALTLEN, CHAIN, MENDAREA, MHUNTW, SEGENTRY, SETNCORE, UP

PCTMES8.txt
22FL    #LIS  K0PCTMES>K0PCT>K0ALLGEO>K0GREATGEO
22^=    #SEG  PCTMES8                      [G CONSTANTINIDES
23DW                   8HPCTMES8
23YG    # ENTRY POINTS  
24D6          SEGENTRY K1PCTMES,Z1PCTMES
24XQ          MENDAREA APCTGAP,K100PCTMES   
25CB    [   
25X2    [ THIS SEGMENT IS ENTERED WHEN A CONSOLE CATEGORY MESSAGE IS TO BE  
26BL    [ SENT TO A REMOTE TELE-TYPE. THE SEGMENT GETS AN A7020/CONSOUT BLOCK   
26W=    [AND MOVES THE MESSAGE (IN CONBUF/IREMTW) AND TRANSMISSION  
27*W    [CHARACTERS INTO IT AT COUTBUFF ONWARDS.THE ROUTING BLOCK IS THEN CHAIND
27TG    [TO THE FRONT - NEXT TO THE ACTIVITY.   
28*6    #   
28SQ    #   
29#B    X35            +35                 [MAXIMUM MESSAGE LENGTH (+2) 
29S2    XDELTA         #74                 [TO BE CONVERTED TO DELTA SHIFT  
2=?L    #   
2=R=    #   
2?=W    NLETX          #76327635           [NL(FE2), CR(FE5)
2?QG                   #76047623           [DC4, ETX
2#=6    #   
2#PQ    #   
2*9B    Z1PCTMES                           [TO PREPARE A MESSAGE FOR OUTPUT TO  
2*P2                                       [A 7023 TELE-TYPE.   
2B8L    #   
2BN=          STOZ     AWORK1(2)           [PRESET THE MESSAGE BUFFER REMEM.
2C7W          MHUNTW  3,CONBUFF,IREMTW  
2CMG          LDX   4  A1(3)
2D76          ANDN  4  #7777               [WD CT   
2DLQ          SLL   4  2
2F6B          STO   4  AWORK4(2)           [CHAR CT OF MSGE.
2FL2    NXBLOCK 
2G5L          SETNCORE COUTBUFF-COUTREP+1+32,3,A7020,CONSOUT,1 [GET THE BUFFER  
2GK=          STO   3  AWORK2(2)           [REMEMBER BUFFER BLOCK ADDRESS   
2H4W          MHUNTW  2,CONBUFF,IREMTW  
2HJG          SMO      FX2                 [REMEMBER THE MESSAGE
2J46          STO   2  AWORK3              [BLOCK ADDRESS   
2JHQ          SLL   2  2                   [PREPARE POINTER 
2K3B          SMO      FX2                 [TO POINT TO THE NEXT
2KH2          ADX   2  AWORK1              [MESSAGE CHARACTER   
2L2L          SRC   2  2                   [TO BE TRANSFERED
2LG=          LDN   0  #76                 [MOVE
2L^W          DCH   0  COUTBUFF(3)         [IN THE  
2MFG          BCHX  3  £                   [THE 
2M^6          LDN   0  #22                 [START OF
2NDQ          DCH   0  COUTBUFF(3)         [MESSAGE 
2NYB          BCHX  3  £                   [CHARACTERS  
2PD2          SMO      FX2                 [MESSAGE 
2PXL          LDX   6  AWORK4              [LENGTH  
2QC=          BZE   6  MESSEND             [IF NO CHARS,J TO SEND N/L ONLY  
2QWW          LDN   4  128-10              [BUFFER COUNT
2RBG          LDN   5  80                  [TRANSMISSION BLOCK COUNT
2RW6          LDN   7  72                  [PRINT LINE COUNT
2S*Q    NXCH  LDCH  0  ICBUFF(2)           [GET THE NEXT MESSAGE CHARACTER  
2STB          TXL   0  XDELTA(1)           [IS THE CHARACTER TO BE IN   
2T*2          BCC      ZDELTA              [DELTA SHIFT 
2TSL          DCH   0  COUTBUFF(3)         [INSERT IT IN THE BUFFER 
2W#=          BCHX  2  £                   [STEP THE BUFFER AND MESSAGE 
2WRW          BCHX  3  £                   [BLOCK POINTERS  
2X?G    XDELT SBN   6  1                   [REDUCE  
2XR6          BZE   6  MESSEND             [MESSAGE COUNT   
2Y=Q          SBN   4  1                   [REDUCE  
2YQB          BZE   4  XEND                [BUFFER COUNT
2^=2          SBN   7  1                   [REDUCE  
2^PL          BZE   7  XEND                [THE PRINTLINE COUNT 
329=          BCT   5  NXCH                [REDUCE TRANSMISSION BLOCK COUNT 
32NW    XEND  LDX   1  2                   [REMEMBER POINTER TO MESSAGE BLOCK   
338G          SMO      FX1                 [MOVE
33N6          LDN   2  NLETX               [IN  
347Q          ADN   3  COUTBUFF            [THE END 
34MB          MVCH  2  8                   [OF MESSAGE CHARACTERS   
3572          LDX   2  FX2                 [RESET THE ACTIVITY POINTER  
35LL          STO   6  AWORK4(2)           [RETAIN THE COUNT
366=          LDX   0  AWORK3(2)           [POINTER TO THE MESSAGE BLOCK
36KW          SLC   0  2                   ["ITS CHARACTER POSITION"
375G          SLC   1  2                   [LENGTH OF THE MESSAGE   
37K6          SBX   1  0                   [TRANSFERED  
384Q          STO   1  AWORK1(2)           [REMEMBER THIS LENGTH
38JB          SMO      AWORK3(2)           [CALCULATE   
3942          LDX   4  A1                  [THE SIZE OF MESSAGE 
39HL          SRL   1  2                   [STILL TO BE 
3=3=          SBX   4  1                   [TRANSFERED  
3=GW          LDX   3  AWORK2(2)           [POINTER TO THE BUFFER BLOCK 
3?2G          BRN      NXBLOCK             [NOW GO FOR THE NEXT MESSA&E BLOCK   
3?G6    #   
3?^Q    ZDELTA  
3#FB          LDN   1  #76                 [DEPOSIT A DELTA SHIFT CHARACTER 
3#^2          DCH   1  COUTBUFF(3)         [IN THE BUFFER   
3*DL          LDX   1  FX1                 [RESET X1
3*Y=          BCHX  3  £                   [STEP THE BUFFER POINTER 
3BCW          SBN   0  #10                 [ADJUST THE MESSAGE CHARACTER
3BXG          DCH   0  COUTBUFF(3)         [AND DEPOSIT THAT IN THE BUFFER  
3CC6          BCHX  3  £                   [STEP THE BUFFER AND 
3CWQ          BCHX  2  £                   [MESSAGE BLOCK POINTETERS
3DBB          BCT   4  XDELT               [HAS THE BUFFER COUNT BEEN   
3DW2          BRN      XEND                [EXHAUSTED?  
3F*L    #   
3FT=    MESSEND 
3G#W          LDN   2  NLETX(1)            [MOVE IN 
3GSG          ADN   3  COUTBUFF            [THE END 
3H#6          MVCH  2  8                   [OF MESSAGE  
3HRQ          LDX   2  FX2  
3J?B          SLC   3  2
3JR2          ADN   3  11   
3K=L          SRL   3  2                   [ADDR OF LAST WD USED
3KQ=          SBX   3  AWORK2(2)           [LOGICAL LENGTH REQD 
3L9W          LDN   0  4(3) 
3LPG          TXL   0  ALOGLEN(2)   
3M96          BCC      RECHAIN             [J IF ITS NOT WORTH LENGTH CHANGE
3MNQ          ALTLEN   AWORK2(2),3         [SHORTEN BLOCK   
3N8B    RECHAIN 
3NN2          MHUNTW  3,CONBUFF,IREMTW  
3P7L          CHAIN   3,2                  [RE-CHAIN NEXT TO ACT
3PM=          UP                           [FINISH OF THE "OUTPUT"  
3Q6W    #   
3QLG    #   
3R66    #END
^^^^ ...22741506000100000000