SIMULPTR60

(George Source)

Macros used: ACROSS, BACKSPACE, BXE, BXGE, BXL, BXU, CHECKA, COMPQU, FADDRESS, FDRMTEST, FOUTMOVE, ILLEGAL, JNOTFDRM, LOCKCA, MENDAREA, OLPFIN, OUTPACK, PAIR, SEGENTRY, STEP, TEST, TESTREP, TICKLES, TOPCA, TOPCA1, UNPLUG

SIMULPTR60.txt
22FL    #   
22^=    #SEG  SIMULPTR60                   [LADISLAV KUTILEK
23DW    #OPT  K0SIMULPTR=0  
23YG    #LIS  K0SIMULPTR>K0ALLGEO>K0GREATGEO>K0FILESTORE
24D6                   8HSIMULPTR   
24XQ          SEGENTRY K1SIMULPTR,Z1SIMULPTR
25CB    #   
25X2    #           THIS SEGMENT IMPLEMENTS OFFLINE *TR AND *CR (TYPE 0 AND 3), 
26BL    #           IF ASSIGNED TO AN "OLD" TP LIKE FILE(PRE MARK 7)
26W=    #   
27*W    #           N=COUNT IN PERI,
27TG    #           R=SIZE OF RECORD
28*6    #           C=CHARACTER POINTER TO NEXT CHAR.IN BUFFER, 
28SQ    #           D=CHARACTER POINTER TO NEXT CHAR.IN BUFFER, 
29#B    #           S=CURRENT SHIFT IN RECORD,  
29S2    #           E=CURRENT SHIFT ASSUMED BY READER.  
2=?L    #              AWORK1=LAST LOADED CHAR  
2=R=    #              AWORK2=B23=1 CR SIMULATION   
2?=W    #                     B0 =1 CR,CP,LP FILE   
2?QG    #   
2#=6    MASK1          #3770000 
2#PQ    MASK2          #37777777
2*9B    MASK3          #47777777
2*P2    MASK4          #60000077
2B8L    MASK5          #74007777
2BN=    MASK6          #57777777
2C7W    MASK7          #20000000
2CMG    MASK8          #17777777
2D76    MASK9          #40000000
2DLQ    MASK10         #3777777 
2F6B    MASK11         #10000   
2FL2    MASK12         #17770000
2G5L    MASK13         #77770000
2GK=    MASK14         #30000   
2H4W    RNO1           #02                 [MODES   
2HJG    RNO2           #04  
2J46    RNO3           #06  
2JHQ    RAC1           #20  
2K3B    RAC2           #22  
2KH2    RAC3           #24  
2L2L    RAC4           #26  
2LG=    RGS1           #10  
2L^W    RGS2           #12  
2MFG    TW             #2                  [GRAPHIC SET 
2M^6    TH             #3                  [PUNCH BLANKS
2NDQ    ST             #64                 [T   
2NYB    SU             #65                 [U   
2PD2    SV             #66                 [V   
2PXL    SW             #67                 [W   
2QC=    SX             #70                 [X   
2QWW    SALP           #74                 [ALPHA SHIFT 
2RBG    SBET           #75                 [BETA SHIFT  
2RW6    SDEL           #76                 [DELTA SHIFT 
2S*Q    SUNA           #77                 [_   
2STB    SDLT           #73                 [DELETE  
2T*2    SROT           #20                 [RUN-OUT 
2TSL    SSTP1          #21                 [TC1 
2W#=    SSTP2          #40                 [@   
2WRW    SSTP3          #32                 [FE2-NEWLINE 
2X?G    SSTP4          #36                 [SHIFT OUT   
2XR6    MAX            +129 
2Y=Q    MAXC           +81  
2YQB    MAXCD          +2037
2^=2    PLINK1  
2^PL          PAIR  SIMULPTR,1  
329=    Z1SIMULPTR  
32NW          LDX   3  APETADDR(2)         [PTR TO APET 
338G          LOCKCA   3,ACAP(2)
33N6          LDX   1  ACAP(2)             [CA IN OBJ.PROG. 
347Q          LDN   2  ACA1(2)             [CA IN OLPA  
34MB          LDN   7  4
3572          FOUTMOVE 3,1,2,7,HLOCK1      [MOVE CA TO OLPA 
35LL          LDX   1  FX1  
366=          LDX   2  FX2  
36KW          STOZ     ACA2(2)             [ZEROISE REPLY WORD  
375G          LDX   3  ACA3(2)             [PERI COUNT  
37K6          BZE   3  WC   
384Q          LDEX  0  AWORK2(2)
38JB          BNZ   0  RCARD               [J SIMULATE CR   
3942    Z5    BXGE  3  MAX(1),WC           [CHECK COUNT<129 
39HL          SLC   3  12   
3=3=          ANDX  5  MASK5(1) 
3=GW          ORX   5  3                   [NEW N IN X5 
3?2G          ANDX  6  MASK5(1)            [D=0 
3?G6          LDX   3  ACA1(2)             [PERI MODE   
3?^Q          ANDN  3  #7777
3#FB          BZE   3  SHIFT               [J IF #00
3#^2          BXE   3  RNO1(1),SHIFT       [     #02
3*DL          BXE   3  RNO2(1),RO1         [     #04
3*Y=          BXE   3  RNO3(1),RO2         [     #06
3BCW          BXE   3  RAC1(1),RC1         [     #20
3BXG          BXE   3  RAC2(1),RC2         [     #22
3CC6          BXE   3  RAC3(1),RC3         [     #24
3CWQ          BXE   3  RAC4(1),RC4         [     #26
3DBB          BXE   3  RGS1(1),SHIFT       [     #10
3DW2          BXE   3  RGS2(1),SHIFT       [     #12
3F*L          BRN      MOPER
3FT=    RCARD BXGE  3  MAXCD(1),WC         [CHECK COUNT<2037
3G#W          SLC   3  12   
3GSG          ANDN  5  #7777               [ZEROISE N IN X5 
3H#6          ORX   5  3                   [STORE NEW N IN X5   
3HRQ          ANDN  6  #7777               [D=0 
3J?B          BRN      SHCR 
3JR2    RO1   LDN   3  1
3K=L          BRN      SHIFT
3KQ=    RO2   LDN   3  3
3L9W          BRN      SHIFT
3LPG    RC1   LDN   3  4
3M96          BRN      SHIFT
3MNQ    RC2   LDN   3  6
3N8B          BRN      SHIFT
3NN2    RC3   LDN   3  5
3P7L          BRN      SHIFT
3PM=    RC4   LDN   3  7
3Q6W    SHIFT SRC   3  4
3QLG          ANDX  6  MASK10(1)           [ERASE PREVIOUS MODE 
3R66          ORX   6  3                   [STORE NEW MODE  
3RKQ    SHCR  LDX   3  ACA3(2)             [PERI COUNT  
3S5B          LDX   1  ACA4(2)             [BUFFER ADDRESS  
3SK2          ADN   3  3
3T4L          SRL   3  2
3TJ=          CHECKA   1,3,RESV,APETADDR(2),W,Z4,HLOCK2 
3W3W    Z4    LDX   0  ALIMEY(2)           [CHECK IF FIRST PERI 
3WHG          LDX   4  AWORK1(2)           [LAST LOADED CHAR.   
3X36          BZE   0  PEFI                [J IF IT IS  
3XGQ          LDX   1  5
3Y2B          ANDN  1  #7777               [PICK UP R   
3YG2          LDX   2  6
3Y^L          ANDN  2  #7777               [PICK UP C   
3^F=          BXE   1  2,SGE               [J IF END OF RECORD  
3^YW          BACKSPACE                    [SET POINTER 
42DG          STEP                         [TO RECORD   
42Y6    SGE   LDX   1  5
43CQ          SLC   1  2                   [PICK UP MODE OF RECORD  
43XB          BPZ   1  TESMO               [J IF NORMAL OR ALCHAR   
44C2          SLC   1  1
44WL          BNG   1  PG                  [J IF BLANKS 
45B=          BRN      PH                  [J IF GRAPHIC
45TW    TESMO LDX   1  FX1  
46*G          BNG   6  PD                  [J IF READ IN GRAPHIC SET
46T6          SLC   6  3                   [PICK UP SHIFT   
47#Q          BNG   6  PRSH                [J IF READ IN PREVIOUS SHIFT 
47SB          SRC   6  3                   [BITS OF X6 INTO NORMAL POSITION 
48#2          ANDX  5  MASK2(1)            [E=ALPHA 
48RL          BXE   4  SDEL(1),SONE        [J IF LOADED CHAR.=DELTA 
49?=          BXE   4  SALP(1),SONE        [                 =ALPHA 
49QW          BXU   4  SBET(1),PA          [                 =BETA  
4==G    SONE  ADN   6  1                   [C=C+1,READER /2 
4=Q6          BRN      PA   
4?9Q    PRSH  SRC   6  3                   [BITS OF X6 INTO NORMAL POSITION 
4?PB          BXE   4  SDEL(1),PB          [J IF LOADED CHAR.=DELTA 
4#92          BRN      PA   
4#NL    PEFI  LDN   0  1
4*8=          STO   0  ALIMEY(2)           [SWITCH FOR FIRST PERI   
4*MW          LDX   1  FX1  
4B7G          ANDX  5  MASK12(1)           [E=S=ALPHA,R=0   
4BM6          ANDX  6  MASK13(1)           [C=0 
4C6Q          BNG   6  PD                  [J IF READ GRAPHIC SET MODE  
4CLB    #   
4D62    #              RECORD IN A SHIFT MODE.  
4DKL    #   
4F5=    PA  
4FJW          CALL  1  SRGNC               [GET FIRST CHARACTER 
4G4G          LDX   1  FX1  
4GJ6          BXE   4  SALP(1),SA          [TEST LOADED CHAR.,J IF IT IS ALPHA  
4H3Q          BXE   4  SBET(1),SB          [J IF IT IS BETA 
4HHB          BXE   4  SDEL(1),SD          [J IF IT IS DELTA
4J32          LDX   0  5
4JGL          SLC   0  1                   [PICK UP S FROM X5   
4K2=          BNG   5  TEST 
4KFW          BNG   0  UNEQ                [J IF E=ALPHA,S=BETA 
4K^G          BRN      SAME                [J IF E=S=ALPHA  
4LF6    TEST  BNG   0  SAME                [J IF E=S=BETA   
4LYQ          ANDX  5  MASK2(1)            [E=BETA,S=ALPHA,MAKE E=S 
4MDB          SMO      FX2  
4MY2          STO   4  AWORK1              [STORE LOADED CHAR   
4NCL          LDX   4  SALP(1)             [LOAD ALPHA  
4NX=          BRN      TCH  
4PBW    UNEQ  ORX   5  MASK9(1)            [MAKE E=S
4PWG          SMO      FX2  
4QB6          STO   4  AWORK1              [STORE LOADED CHAR   
4QTQ          LDX   4  SBET(1)             [LOAD BETA   
4R*B    TCH   CALL  0  SRTCH               [TRANSFER SHIFT CHARACTER
4RT2          SMO      FX2  
4S#L          LDX   4  AWORK1              [RELOAD CHAR 
4SS=    SAME  CALL  0  SRTCH               [TRANSFER CHARACTER  
4T?W          BRN      PA   
4TRG    SA    ANDX  5  MASK6(1)            [S=ALPHA 
4W?6          BRN      PA   
4WQQ    SB    ORX   5  MASK7(1)            [S=BETA  
4X=B          BRN      PA   
4XQ2    SD    LDX   2  6
4Y9L          SLC   2  1                   [TEST IF READ ALL CHARACTERS 
4YP=          BNG   2  YES                 [J IF IT IS  
4^8W          LDX   2  6                   [PICK UP C   
4^NG          ANDN  2  #7777
5286          SRC   2  2                   [X2 AS CHARACTER COUNTER-MODIFIER
52MQ          SMO      3
537B          LDCH  0  2(2)                [LOAD NEXT CHARACTER 
53M2          LDX   1  FX1  
546L          BXE   0  SDLT(1),SIG         [TEST IF IT IS DELETE
54L=          BXE   0  SROT(1),SIG         [OR RUN-OUT  
555W    YES   CALL  0  SRTCH               [TRANSFER DELTA SHIFT
55KG    PB    CALL  1  SRGNC               [GET NEXT CHARACTER  
5656          CALL  0  SRTCH               [TRANSFER CHARACTER  
56JQ          LDX   0  6
574B          SLC   0  2                   [TEST IF READ TO STOP CHARACTER  
57J2          BNG   0  TOST                [J IF IT IS  
583L          BRN      PA   
58H=    SIG   ADN   6  1                   [C=C+1   
592W          BRN      PA   
59GG    TOST  BXE   4  RAC3(1),QUIT        [J IF LOADED CHAR.=TC4   
5=26          BXL   4  SSTP3(1),PA         [J IF NOT STOP CHAR. 
5=FQ          BXGE  4  SSTP4(1),PA         [J IF NOT STOP CHAR. 
5=^B    QUIT  LDX   1  FX1  
5?F2          SMO      FX2  
5?YL          LDEX  2  AWORK2   
5#D=          BNZ   2  SETCR               [J IF *CR
5#XW          LDX   3  5
5*CG          ANDX  3  MASK1(1)            [PICK UP N   
5*X6          LDX   2  6
5BBQ          ANDX  2  MASK1(1)            [PICK UP D   
5BWB          SBX   3  2
5CB2          SRL   3  12                  [REMAINDER COUNT 
5CTL          BRN      REPWO
5D*=    SETCR   
5DSW    SET2  LDX   2  6
5F#G          SRL   2  14                  [POINTER IN BUFFER   
5FS6          SMO      FX2  
5G?Q          LDX   3  ACA4                [BUFFER ADDRESS  
5GRB          ADX   3  2                   [ADDRESS OF LAST TRANSFERRED WORD
5H?2    REPWO LDX   2  FX2  
5HQL          STO   4  AWORK1(2)           [STORE LOADED CHAR   
5J==    OLPREP  
5JPW          LDX   1  APETADDR(2)         [PTR TO APET 
5K9G          LDX   2  ACAP(2)             [PTR TO PERI CA  
5KP6          ADN   2  1
5L8Q          FADDRESS 1,2,HLOCK1   
5LNB          STO   3  0(2)                [REPLY WORD  
5M82    OEND
5MML          LDX   2  FX2  
5N7=          JNOTFDRM XNDRM               [J IF NOT DRM
5NLW          TICKLES  2,3  
5P6G    XNDRM LDX   2  APETADDR(2)  
5PL6          OLPFIN   2
5Q5Q          BRN      K1SIMULPTR   
5QKB    #   
5R52    #              PERI IN GRAPHIC SET MODES(#10,#12),  
5RJL    #              RECORD IN A SHIFT MODE.  
5S4=    #   
5SHW    PD  
5T3G          CALL  1  SRGNC               [GET NEXT CHARACTER  
5TH6          LDX   1  FX1  
5W2Q          SMO      FX2  
5WGB          LDEX  0  AWORK2   
5X22          BNZ   0  READC               [J SIMULATE CR   
5XFL          ANDX  5  MASK2(1)            [E=ALPHA 
5X^=          BXE   4  SALP(1),SAL         [J IF LOADED CHAR.IS ALPHA   
5YDW          BXE   4  SBET(1),SBE         [J IF LOADED CHAR.IS BETA
5YYG    XSDE  BXE   4  SDEL(1),SDE         [J IF LOADED CHAR.IS DELTA   
5^D6          CALL  0  SRTCH               [TRANSFER CHARACTER  
5^XQ          BRN      PD   
62CB    READC BXE   4  SALP(1),PD          [J IF LOAD.CHAR.IS ALPHA 
62X2          BXE   4  SBET(1),PD          [J IF LOAD.CHAR.IS BETA  
63BL          BRN      XSDE 
63W=    SAL   ANDX  5  MASK6(1)            [S=ALPHA 
64*W          BRN      PD   
64TG    SBE   LDX   0  MASK9(1) 
65*6          SRC   0  1                   [B1=1
65SQ          ORX   5  0                   [S=BETA  
66#B          BRN      PD   
66S2    SDE   CALL  1  SRGNC               [NEXT CHARACTER  
67?L          LDX   1  FX1  
67R=          BXL   4  ST(1),STOGR         [J,IT COULD BE A STOP CHAR   
68=W          ADN   4  4
68QG          BXGE  4  SALP(1),NATCH       [J IF A NATIONAL CHAR
69=6          ADN   4  4
69PQ    TRNAT CALL  0  SRTCH               [TRANSFER CHAR   
6=9B          BRN      PD   
6=P2    NATCH BXGE  4  SUNA(1),PD          [JIF NOT A NATIONAL CHAR 
6?8L          BRN      TRNAT
6?N=    STOGR SBN   4  #21  
6#7W          BNG   4  PD                  [J IF NOT A STOP 
6#MG          SBN   4  #17  
6*76          BPZ   4  PD                  [IGNORE IF NOT A STOP
6*LQ          ADN   4  #40                 [RESTORE CHAR
6B6B          SMO      FX2  
6BL2          LDEX  0  AWORK2   
6C5L         BNZ    0  TCOUN               [SPACEFILL IF CR 
6CK=          BRN      QUIT 
6D4W    #   
6DJG    #              RECORD IN GRAPHIC MODE.  
6F46    #   
6FHQ    PH  
6G3B          SMO      FX1  
6GH2          ANDX  5  MASK8               [E=S=ALPHA   
6H2L          BNG   6  RGM                 [J IF READ IN GRAPHIC
6HG=    PE    CALL  1  SRGNC               [GET CHARACTER   
6H^W    SREXIT  
6JFG          LDX   1  FX1  
6J^6          BXL   4  SALP(1),TRACH       [J IF IT IS NOT A FUNY CHAR. 
6KDQ          SMO      FX2  
6KYB          STO   4  AWORK1              [STORE SHIFT 
6LD2          LDN   4  #76                 [DELTA   
6LXL          CALL  0  SRTCH               [TRANSFER DELTA  
6MC=          SMO      FX2  
6MWW          LDX   4  AWORK1              [RESTORE SHIFT   
6NBG          SBN   4  #10                 [CONVERT SHIFT   
6NW6    TRACH CALL  0  SRTCH               [TRANSFER CHARACTER  
6P*Q          BRN      PE   
6PTB    RGM   CALL  1  SRGNC
6Q*2          CALL  0  SRTCH               [TRANSFER CHAR   
6QSL          BRN      RGM  
6R#=    #   
6RRW    #              TP FILE WRITTEN IN MODE #20(PUNCH BLANKS).   
6S?G    #   
6SR6    PG  
6T=Q          SLC   6  1                   [TEST MODE OF PERI   
6TQB          BNG   6  MACH                [J IF READ ALL CHARS.
6W=2          SRC   6  1                   [BITS OF X6 INTO NORMAL POSITIONS
6WPL          LDX   1  FX1  
6X9=          ANDX  5  MASK13(1)           [R=0 
6XNW          ANDX  6  MASK13(1)           [C=0 
6Y8G    NEXRE CALL  1  SRGNC               [BRING DOWN NEXT RECORD  
6YN6          BRN      PG   
6^7Q    MACH  SRC   6  1                   [BITS OF X6 INTO NORMAL POSITION 
6^MB          SMO      FX1  
7272          ANDX  5  MASK8               [E=S=ALPHA   
72LL    PI    LDX   0  5
736=          ANDN  0  #7777               [R   
73KW          LDX   1  6
745G          ANDN  1  #7777               [C   
74K6          BXE   1  0,NEXRE             [J IF R=C
754Q          LDN   4  #76                 [^   
75JB          ADN   6  1                   [C=C+1   
7642          CALL  0  SRTCH               [TRANSFER ^  
76HL          LDX   0  5
773=          ANDN  0  #7777               [R   
77GW          LDX   1  6
782G          ANDN  1  #7777               [C   
78G6          BXE   1  0,NEXRE             [J IF R=C
78^Q          LDN   4  #20                 [SPACE   
79FB          ADN   6  1                   [C=C+1   
79^2          CALL  0  SRTCH               [TRANSFER SPACE  
7=DL          BRN      PI   
7=Y=    #   
7?CW    MOPER CALL  4  SRER 
7?XG          ILLEGAL  MODE,,3             [PRINT MESSAGE AND MEMBER NUMBER 
7#C6    RESV
7#WQ          CALL  4  SRER 
7*BB          ILLEGAL  RESVIOL,,3          [PRINT MESSAGE AND MEMBER NUMBER 
7*W2    WC  
7B*L          CALL  4  SRER 
7BT=          ILLEGAL  COUNT,,3            [PRINT MESSAGE AND MEMBER NUMBER 
7C#W    NORE
7CSG          COMPQU   NORE1
7D#6          BRN      K1SIMULPTR   
7DRQ    NORE1   
7F?B          LDX   2  FX2  
7FR2          LDX   0  ACA1(2)             [TYPE/MODE   
7G=L          SRL   0  6                   [IGNORE A MAID MODE  
7GQ=          ANDN  0  #777 
7H9W          SBN   0  #300                [TEST IF MONITORING MODE #30000  
7HPG          BNZ   0  XBACK               [J IF NOT
7J96          LDX   0  5                   [PERI COUNT  
7JNQ          SBX   0  6                   [SUBTRACT NO. OF TRANSFERED CHARS.   
7K8B          SRL   0  12   
7KN2          ANDN  0  #377                [REMAINDER COUNT 
7L7L          LDCT  7  #50  
7LM=          ORX   7  0                   [SET B3 & B5 
7M6W          LDX   1  APETADDR(2)  
7MLG          LDX   3  ACAP(2)             [PTR TO PERI CA  
7N66          ADN   3  1
7NKQ          FADDRESS 1,3,HLOCK1   
7P5B          STO   7  0(3)                [REPLY WORD  
7PK2          BACKSPACE 
7Q4L          BRN      OEND 
7QJ=    XBACK BACKSPACE 
7R3W          LDX   7  FTYPNO(2)           [PERIPHERAL TYPE/NO  
7RHG          CALL  4  SRER 
7S36          OUTPACK  7,1,PERINAME 
7SGQ          ILLEGAL  FILE,,3             [PRINT MESSAGE AND MEMBER NUMBER 
7T2B    SRER
7TG2          SBX   4  FX1                 [SUBTRACT FX1 FROM LINK  
7T^L          LDX   2  FX2  
7WF=          LDX   3  AMEMNO(2)           [MEMBER NO.  
7WYW    TOPCA CALL  0  SRPCA               [CHANGE TO PCA   
7XDG          UNPLUG                       [UNPLUGS OBJECT PROGRAM FROM EXECUTIV
7XY6          ADX   4  1                   [ADD NEW FX1 TO LINK 
7YCQ          EXIT  4  0
7YXB    WAIT
7^C2          LDN   3  1
7^WL    WAIT2   
82B=          FDRMTEST STEPWAIT,NODRM      [TEST FOR DRM
82TW          BNZ   3  WAIT3
83*G          LDCT  3  #410                [REJECTED INOPERABLE 
83T6          BRN      OLPREP   
84#Q    WAIT3   
84SB          LDCT  3  #420                [REPLY WORD  
85#2          BRN      OLPREP   
85RL    NODRM   
86?=          BZE   3  NORE                [J IF NO RECORDS 
86QW          CALL  0  SRPCA               [CHANGG TO PCA   
87=G          ACROSS   OLPODD,3 
87Q6    #   
889Q    SRPCA                              [ROUTINE TO DUMP X3-X7 & CHANGE TO PC
88PB          LDX   1  APETADDR(2)  
8992          STO   0  AWORK1(1)           [STORE LINK IN PCA   
89NL          LDN   1  3
8=8=          ADN   2  ACC3 
8=MW          MOVE  1  5                   [DUMP X3-X7  
8?7G          LDX   1  FX1  
8?M6          TOPCA1   PLINK1(1)           [CHANGE TO PCA   
8#6Q          LDX   0  AWORK1(2)           [RESTORE LINK
8#LB          EXIT  0  0
8*62    #   
8*KL    #     INSERT N/L IF RECORD IN GRAPHIC   
8B5=    #   
8BJW    NLINSERT
8C4G          LDX   0  5
8CJ6          ANDN  0  #7777               [R   
8D3Q          BZE   0  NEWRC               [R=0 
8DHB          SMO      FX1  
8F32          ANDX  5  MASK13              [R=0 
8FGL    NLINS SMO      FX2  
8G2=          LDEX  2  AWORK2   
8GFW          BNZ   2  TCOUN               [J IF CR 
8G^G          BNG   6  TESTO               [J IF PERI IN GRAPHIC
8HF6          LDN   4  #76                 [^   
8HYQ          CALL  0  SRTCH
8JDB          LDN   4  #32                 [*   
8JY2          CALL  0  SRTCH
8KCL          LDN   7  SREXIT(1)           [LINK
8KX=    TESTO LDX   0  6
8LBW          SLL   0  2
8LWG          BNG   0  QUIT                [J IF READ TO STOP   
8MB6          LDX   1  7                   [RESTORE LINK FOR SRGNC  
8MTQ          BRN      NEWRC               [J IF READ N CHARS   
8N*B    #   
8NT2    #     SPACE-FILLING IF SIMULATION OF CR 
8P#L    #   
8PS=    SPACEFILL   
8Q?W          LDN   4  #20  
8QRG    PUTSP CALL  0  SRTCH
8R?6          BRN      PUTSP
8RQQ    #   
8S=B    TCOUN LDX   2  5
8SQ2          SRL   2  12                  [PERI COUNT  
8T9L          LDX   1  FX1  
8TP=          ANDX  5  MASK13(1)           [R=0 
8W8W          BXL   2  MAXC(1),SPACEFILL   [J IF PERI COUNT<80  
8WNG          LDX   0  6
8X86          SRL   0  12                  [D   
8XMQ          LDN   2  80   
8Y7B          BXGE  0  2,TWORD             [J IF PERI COUNT>80  
8YM2          LDCT  5  #12                 [N=80
8^6L          BRN      SPACEFILL
8^L=    TWORD LDX   2  6
925W          ANDX  2  MASK14(1)           [TEST IF WHOLE LAST WORD HAS BEEN TRA
92KG          BZE   2  SET2                [J IF YES
9356          LDX   4  #20                 [LOAD SPACE  
93JQ          CALL  0  SRTCH               [TRANSFER SPACE  
944B          BRN      TWORD               [J TO TEST   
94J2    #   
953L    #     SUBROUTINE: GET NEXT CHARACTER
95H=    #   
962W    #           X0 UNDEFINED
96GG    #           X1 LINK 
9726    #           X2 UNDEFINED
97FQ    #           X3 POINTER TO RECORD
97^B    #           X4 LOADED CHARACTER 
98F2    #           X5 B0    =E=CURRENT SHIFT IN RECORD 
98YL    #              B1    =S=CURRENT SHIFT ASSUMED BY READER 
99D=    #              B2-3  =RECD.MODE=0=SHIFT MODE
99XW    #                               2=GRAPHIC   
9=CG    #                               3=PUNCH BLANKS  
9=X6    #              B4-11 =N=COUNT IN PERI   
9?BQ    #              B12-23=R=SIZE OF RECORD  
9?WB    #           X6 B0-3  =MODE OF PERI  
9#B2    #              B4-11 =D=CHAR.POINTER TO NEXT CHAR.IN BUFFER 
9#TL    #              B12-23=C=CHAR.POINTER TO NEXT CHAR.IN RECORD 
9**=    #   
9*SW    SRGNC   
9B#G          LDX   0  5                   [PICK UP R   
9BS6          ANDN  0  #7777
9C?Q          LDX   2  6                   [PICK UP C   
9CRB          ANDN  2  #7777
9D?2          STO   1  7                   [STORE LINK  
9DQL          BXL   2  0,R6                [J IF C<R
9F==          SMO      FX2  
9FPW          LDEX  2  AWORK2   
9G9G          BZE   2  TESTG               [J IF NOT CR 
9GP6          BNZ   0  TCOUN               [J IF CR TO CHECK PERI COUNT 
9H8Q          BRN      NEWRC               [BRING DOWN RECORD   
9HNB    TESTG LDX   2  5
9J82          SLL   2  2                   [PICK UP MODE
9JML          BPZ   2  NEWRC               [J IF NORMAL OR ALLCHAR  
9K7=          SLL   2  1
9KLW          BPZ   2  NLINSERT            [J IF GRAPHIC
9L6G    NEWRC SBX   1  FX1                 [SUBTRACT FX1 FROM LINK  
9LL6          LDX   4  1
9M5Q          STEP                         [SET POINTER TO HEADER OF NEXT RECORD
9MKB          TESTREP  STEPWAIT,WAIT       [J IF END COMMUNICATION FILE 
9N52          BZE   3  WAIT2               [END OF FILE 
9NJL          LDX   2  FX1                 [PICK UP NEW FX1 
9P4=          ADX   4  2                   [MAKE NEW LINK   
9PHW          STO   4  7                   [STORE IN X7 
9Q3G          ANDX  6  MASK13(2)           [L=0 
9QH6          LDX   0  0(3)                [PICK UP NUMBER OF WORDS IN RECORD   
9R2Q          SBN   0  2                   [SUBTRACT RED TAPE   
9RGB          SLL   0  2                   [MULTIPLY BY 4=NUMBER OF CHARACTERS  
9S22          LDX   1  1(3)                [PICK UP SECOND WORD OF RED TAPE 
9SFL          SLC   1  2                   [PICK UP NUMBER OF USED CHARACTERS   
9S^=          ANDN  1  #3                  [IN LAST WORD
9TDW          BZE   1  OK   
9TYG          SBN   0  4                   [SUBTRACT FOUR CHARACTERS
9WD6          ADX   0  1                   [AND ADD NUMBER OF CHAR.IN LAST WORD 
9WXQ    OK    DSA   0  5                   [PUT SIZE OF RECORD INTO X5  
9XCB          LDX   0  5                   [PICK UP MODE
9XX2          SLC   0  4                   [OF PREVIOUS RECORD  
9YBL          ANDN  0  #3   
9YW=          SMO      FX2  
9^*W          LDEX  1  AWORK2   
9^TG          BNZ   1  RDCRD               [J IF CR SIMULATION  
=2*6          LDX   1  1(3)                [PICK UP MODE OF NEW RECORD  
=2SQ          SRL   1  6
=3#B          ANDN  1  #77  
=3S2          BZE   1  R11                 [J IF #00
=4?L          BXE   1  RNO1(2),R12         [J IF #02
=4R=          BXE   1  RNO2(2),R1          [J IF #04
=5=W          BXE   1  RAC2(2),R12         [J IF #22
=5QG          BXE   1  RGS1(2),R2          [J IF #10
=6=6          BXE   1  RGS2(2),R2          [J IF #12
=6PQ          BXE   1  RAC1(2),R3          [J IF #20
=79B          BRN      R1                  [J IF NEW TYPE OF FILE   
=7P2    RDCRD LDX   1  1(3)                [PICK UP MODE OF NEW RECORD  
=88L          SRL   1  6
=8N=          ANDN  1  #77  
=97W          BZE   1  XC                  [J TO TEST TYPE OF FILE  
=9MG          BXE   1  RGS1(2),RGM         [J IF RECORD MODE IS #10 
==76          BXE   1  RGS2(2),RGM         [J IF RECORD MODE IS #12 
==LQ          BRN      PD                  [J IF OTHER MODES
=?6B    XC    SMO      FX2  
=?L2          LDX   2  AWORK2   
=#5L          BNG   1  RGM                 [J IF CR,CP OR LP FILE   
=#K=          BRN      PD   
=*4W    R11   SMO      FX2  
=*JG          LDX   1  AWORK2              [PICK UP INFORMATION ABOUT TYPE OF FI
=B46          BNG   1  R2                  [J IF CR,CP.OR LP FILE   
=BHQ    R12   ANDX  5  MASK6(2)            [S=ALPHA 
=C3B    R1    LDN   1  0                   [A SHIFT MODE
=CH2          BRN      R4   
=D2L    R2    LDN   1  2                   [GRAPHIC 
=DG=          ANDX  5  MASK6(2)            [S=ALPHA 
=D^W          BRN      R4   
=FFG    R3    LDX   1  5
=F^6          SLL   1  1
=GDQ          DSA   1  5                   [R=R.2   
=GYB          LDN   1  3
=HD2    R4    BXE   1  0,R5                [J IF EQUAL TO MODE OF PREVIOUS RECOR
=HXL          SLC   5  2                   [MODE INTO B0-1  
=JC=          SLL   5  2                   [ERASE MODE,B23-24 FILLED WITH ZEROES
=JWW          ORX   5  1                   [PUT NEW MODE INTO X5
=KBG          SRC   5  4                   [SHIFT BITS OF X5 INTO NORMAL POSITIO
=KW6          BXE   1  TH(2),PG            [J IF #20
=L*Q          BXE   1  TW(2),PH            [J IF #10
=LTB          BNG   6  PD                  [J IF READ IN GRAPHIC MODE   
=M*2          BRN      PA                  [J IF NOT
=MSL    R5    BXE   1  TH(2),PG            [J IF NEW MODE IS #20 AGAIN  
=N#=          LDX   0  6                   [PICK UP MODE OF READING 
=NRW          SLC   0  3
=P?G          BNG   0  R7                  [J IF IN PREVIOUS SHIFT  
=PR6          LDX   0  6
=Q=Q          SRL   0  12   
=QQB          ANDN  0  #377                [PICK UP D   
=R=2          BNZ   0  R7                  [J TO READ IN PREVIOUS   
=RPL                                       [IF PREV.PERI IS NOT FINISHED
=S9=          ANDX  5  MASK6(2)            [S=ALPHA,IF READ IN ALPHA SHIFT  
=SNW    R7    LDX   0  5
=T8G          ANDN  0  #7777               [R   
=TN6          BZE   0  NLINS               [R=0 
=W7Q          LDX   2  6
=WMB          ANDN  2  #7777               [PICK UP C   
=X72    R6    SRC   2  2                   [X2 AS CHARACTER COUNTER-MODIFIER
=XLL          SMO      3
=Y6=          LDCH  4  2(2)                [LOAD NEXT CHARACTER 
=YKW          ADN   6  1                   [C=C+1   
=^5G          LDX   1  7                   [RESTORE LINK
=^K6          EXIT  1  0
?24Q    #   
?2JB    #     SUBROUTINE: TRANSFER CHARACTER
?342    #   
?3HL    #           X0    LINK  
?43=    #           X1-X2 UNDEFINED 
?4GW    #           X3-X7 SEE SRGNC 
?52G    #   
?5G6    SRTCH   
?5^Q          STO   0  7                   [STORE LINK  
?6FB          LDX   2  6                   [PICK POINTER
?6^2          SRC   2  12                  [TO NEXT CHARACTER JN BUFFER 
?7DL          ANDN  2  #377 
?7Y=          SMO      FX2  
?8CW          LDX   0  ACA4                [BUFFER ADDRESS  
?8XG          SLC   0  2
?9C6          ADX   2  0                   [AND ADD TO POINTER TO NEXT CHAR.
?9WQ          SRC   2  2                   [X2 AS CHARACTER COUNTER-MODIFIER
?=BB          SMO      FX2  
?=W2          LDX   1  APETADDR 
??*L          FADDRESS 1,2,HLOCK2          [CONVERT BUFFER ADD. 
??T=          DCH   4  0(2)                [MOVE CHAR.INTO OBJ.PROGRAM AREA 
?##W          LDX   1  FX1  
?#SG          ADX   6  MASK11(1)           [D=D+1   
?*#6          SMO      FX2  
?*RQ          LDEX  2  AWORK2   
?B?B          BNZ   2  TCR                 [J IF CR SIMULATION  
?BR2          LDX   0  MASK1(1) 
?C=L          LDX   2  0
?CQ=    TETRA ANDX  0  6                   [PICK UP D   
?D9W          ANDX  2  5                   [PICK UP N   
?DPG          BXE   2  0,QUIT              [J IF N=D
?F96          BRN      RELIN
?FNQ    TCR   LDX   0  MASK13(1)
?G8B          LDX   2  0
?GN2          ANDX  0  6                   [D   
?H7L          ANDX  2  5                   [N   
?HM=          BXU   2  0,RELIN  
?J6W          ANDX  5  MASK13(1)           [R=0 
?JLG          BRN      TWORD
?K66    RELIN LDX   0  7                   [RESTORE LINK
?KKQ          EXIT  0  0
?L5B          MENDAREA   AOLPGAP,K99SIMULPTR
?LK2    #END
^^^^ ...02131607000200000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1