ILLPERI70

(George Source)

Macros used: ACROSS, CHECKBX, FPCACA, FPERENT, GETWORDX, HUNT2, HUNTW, JWPR, LPROP, OUTPACK, OUTPARAM, PERTYPNO, SEGENTRY

ILLPERI70.txt
22FL    #SEG  ILLPERI70                    [E. WILLIAMS 
22^=    #OPT  K0ILLPERI=0   
23DW    #LIS  K0ILLPERI>K0ALLGEO
23YG          8HILLPERI 
24D6          SEGENTRY K1ILLPERI,XENT1  
24XQ    #     THIS SEGMENT PERFORMS THE ANALYSIS OF AN ILLEGAL'PERI'INSTRUCTION 
25CB    #DEF           VPERI=4  
25X2    #     POSNS USED IN'ILLEGAL'(APED,ANOMESS BLOCK)
26BL    #DEF           VSPROG=A1
26W=    #DEF           VSCOND=A1+2  
27*W    #DEF           VMASK=A1+5   
27TG    #DEF  VACC=A1+12
28*6    #DEF           VINSTR=A1+24 
28SQ    #DEF           VCAREA=A1+27 
29#B    #     VARIOUS CONSTANTS 
29S2    Q5             +5   
2=?L    Q17777777      #17777777
2=R=    Q41737         #41737              [MASK OUT ADDITIVE MODES 
2?=W    XJYUNALLOC     +JYUNALLOC   
2?QG    XACCESS        +GREAD+GNOMESS   
2#=6    XTYPE          +10  
2#PQ    #     RETURN TO OPILLS(IN FACT END PART OF OPILLS COULD BE INSERTED HERE
2*9B    XFIN  ACROSS   OPILLS,2 
2*P2    #     THIS SUBR SETS X2->APED,ANOMESS   
2B8L    X2HUNT2 
2BN=          HUNT2    2,APED,ANOMESS,FX2   
2C7W          EXIT  4  0
2CMG    #     THIS SEGMENT IS ENTERED TO DECIDE WHY A PERI IS ILLEGAL & TO STORE
2D76    #     THE CONTROL AREA IN THE APED ANOMESS BLOCK.ON ENTRY X3 POINTS TO  
2DLQ    #     FIRST WORD OF C/A 
2F6B    XENT1   
2FL2          CALL  4  X2HUNT2  
2G5L          LDX   0  VINSTR+2(2)  
2GK=          SMO      FX2  
2H4W          STO   0  AWORK3              [REMEMEBER O/P ADDRESS   
2HJG          LDX   3  VINSTR+1(2)  
2J46          SRL   3  21                  [ACCUMULATOR OF INSTRUCTION  
2JHQ          BPZ   6  ZA1                 [J IF NOT REPLACED   
2K3B          SMO      3
2KH2          LDX   3  VACC(2)             [GET VALUE OF ACCUMULATOR
2KL6 ...      LDCT  0  #77  
2KP= ...      ANDX  0  6
2KSB ...      SLC   0  9
2KXG ...      SBN   0  6
2L2L ... SEGENTRY K90ILLPERI
2L5Q ...      ANDN  3  #77      [FOR MANYDA SPECIAL 
2L8W ...      BZE   0  TYPE6
2L#2 ...      ANDN  3  #77  
2LC6 ...TYPE6   
2LG=    ZA1   LDCT  7  #77  
2L^W          ANDX  7  6                   [TYPE IN B0-9 OF X7  
2MFG          ORX   7  3                   [TYPE/UNIT IN X7 
2M^6    #SKI  JNLPACK   
2NDQ          LDX   5  7
2NYB    #SKI  JNLPACK<1$1   
2PD2    (   
2PXL          PERTYPNO 7                   [CONVERT TO CHARACTERS   
2QC=          LDX   5  ACOMMUNE9(2)        [REMEMBER IT 
2QWW          CALL  4  X2HUNT2  
2RBG    )   
2RW6          STO  5   VCAREA+1(2)  
2S*Q          LDX   0  7
2STB          SRL   0  15                  [TYPE IN X0  
2T*2          TXL   0  XTYPE(1) 
2TSL          BCC      ZA2                 [J IF >9 
2W#=          SMO      0
2WRW          BRN      XTABLE              [BRN TO BRANCH TABLE 
2X?G    ZA2   SBN   0  13   
2XR6          BZE   0  XFDS                [FDS 
2Y=Q          SBN   0  12   
2YQB          BZE   0  XDR                 [HSD 
2^=2          SBN   0  3
2^PL          BZE   0  XIPC                [IPC 
329=          SBN   0  23   
32NW          BZE   0  XFR                 [FR  
338G          SBN   0  1
33N6          BZE   0  XFW                 [FW  
347Q          SBN   0  9
34MB          BZE   0  XCI                 [CI  
3572    ZA3 
35LL          CALL  3  XGETCA              [GET A WORD CONTROL AREA ANYWAY  
366=                   +4   
36KW          BRN      XFIN 
375G    #   
37K6    #     SWITCH TABLE FOR VARIOUS TYPES
384Q    #   
38JB    #     AT THIS STAGE X5=NAME OF PERIPHERAL,X6=ADDRESS OF CONTROL AREA,   
3942    #                   X7=TYPE/UNIT NO 
39HL    XTABLE  
3=3=          BRN      XTR  
3=GW          BRN      XTP  
3?2G          BRN      XLP  
3?G6          BRN      XCR  
3?^Q          BRN      XCP  
3#FB          BRN      XMT  
3#^2          BRN      XEDS 
3*DL          BRN      XMCF 
3*Y=          BRN      ZA3  
3BCW          BRN      XDR  
3BXG    #     THIS SECTION DEALS WITH A TR. 
3CC6    #     ITS ANNOTATION SERVES AS A MODEL FOR OTHERS.  
3CWQ    XTR 
3DBB          CALL  3  XALLOC              [REPORT IF DEVICE NOT ALLOCATED  
3DW2          CALL  3  XGETCA              [CHECK THAT THE PERI CONTROL AREA IS 
3F*L                   +4                  [RESERVATION & MOVE IT TO APED,ANOMES
3FT=          CALL  3  XCHCA               [CHECK CONTROL AREA ACCORDIN TO 3 PAR
3G#W                   +129 
3GSG                   +0                  [NO FORCED OR MIN VALUE  
3H#6          BRN      XCHAR               [CHAR PERIP,CHAR ADDR PERMITTED  
3HRQ          BRN      XFIN 
3J?B    #     THIS SECTION DEALS WITH A TP  
3JR2    XTP   BRN      XTR  
3K=L    #     THIS SECTION DEALS WITH A LP  
3KQ=    XLP   CALL  3  XALLOC   
3L9W          CALL  3  XGETCA   
3LPG                   +4   
3M96          CALL  3  XCHCA
3MNQ                   +162 
3N8B                   +121.2              [MIN VALUE OF COUNT CHECKED  
3NN2          BRN      XLPC 
3P7L          BRN      XFIN 
3PM=    #     THIS SECTION DEALS WITH A CP  
3Q6W    XCP   CALL  3  XALLOC   
3QLG          CALL  3  XGETCA   
3R66                   +4   
3RKQ          CALL  3  XCHCA
3S5B                   +81  
3SK2                   +80  
3T4L          BRN      XCHWD
3TJ=          BRN      XFIN 
3W3W    #     THIS SECTION DEALS WITH A CR.THIS DEPENDS ON PROPERTIES   
3WHG    XCR   CALL  3  XALLOC              [CHECK ALLOCATED TO PROG 
3X36          CALL  3  XGETCA   
3XGQ                   +4   
3Y2B          SMO      FX2  
3YG2          LDX   6  AWORK1              [PTR  TO DEVICE LIST 
3Y^L          BZE   6  ZCR1                [J IF OFF-LINE   
3^F=          LPROP    6,5                 [PROPS IN X5 
3^YW          ANDN  5  #10                 [IS CARD IMAGE SPECIFIED 
42DG          BZE   5  ZCR1                [J IF NOT
42Y6          LDN   0  #77                 [JUMP IF     CARD IMAGE NOT SPECIFIED
43CQ          ANDX  0  VCAREA+3(2)  
43XB          BZE   0  ZCR1 
44C2          CALL  3  XCHCA               [CHECK CA
44WL                   +161 
45B=                   +0   
45TW          BRN      XCHWD
46*G          BRN      XFIN 
46T6    ZCR1  CALL  3  XCHCA
47#Q                   +81  
47SB                   +0   
48#2          BRN      XCHWD
48RL          BRN      XFIN 
49?=    #     THIS SECTION DEALS WITH MAG TAPE  
49QW    XMT   CALL  3  XALLOC   
4==G          ANDN  6  #1777               [ISOLATE MODE
4=Q6          SBN   6  #10  
4?9Q          BNG   6  XMT30               [JUMP IF MODE 0-7
4?PB          SBN   6  #70  
4#92          BNG   6  XMT10               [JUMP IF MODE #10-#77
4#NL          SBN   6  #700 
4*8=          BNG   6  XMT20               [JUMP IF MODE #100-#777  
4*MW          BZE   6  XMT11               [JUMP IF MODE #1000  
4B7G          SBN   6  7
4BM6          BZE   6  XMT11               [OR MODE #1007   
4C6Q    XMT10 CALL  7  XSETMESS 
4CLB                   +JYMNOTREC          [ILLEGAL:MODE NOT RECOGNISED 
4D62    XMT11 CALL  3  XGETCA              [TWO WORD
4DKL                   +2                  [CONTROL AREA
4F5=          BRN      XFIN 
4FJW    #     MODES    #100-#777
4G4G    XMT20 ADN   6  #100 
4GJ6          BZE   6  XMT21               [JUMP IF #700
4H3Q          ADN   6  #200 
4HHB          BZE   6  XMT23               [JUMP IF #500
4J32          ADN   6  #500 
4JGL          LDCH  0  6
4K2=          BZE   0  XMT22               [JUMP IF #100,200,300,400,600
4KFW    XMT21 CALL  7  XSETMESS 
4K^G                   +JYMNOTREC          [ILLEGAL:MODE NOT RECOGNISED 
4LF6          BRN      XMT23
4LYQ    XMT22 CALL  7  XSETMESS 
4MDB                   +JYALLOC            [ILLEGAL:DEVICE ALREADY ALLOCATED
4MY2    XMT23 CALL  3  XGETCA   
4NCL                   +9   
4NX=          BRN      XFIN 
4PBW    #     MODES    0-7  
4PWG    XMT30 ADN   6  #10                 [SWITCH ON MODE  
4QB6          SMO      6
4QTQ          BRN      XMT300   
4R*B    XMT300  
4RT2          BRN      XMT32               [MODE 0  
4S#L          BRN      XMT33               [MODE 1  
4SS=          BRN      XMT31               [MODE 2  
4T?W          BRN      XMT34               [MODE 3  
4TRG          BRN      XMT34               [MODE 4  
4W?6          BRN      XMT36               [MODE 5  
4WQQ          BRN      XMT37               [MODE 6  
4X=B          BRN      XMT11               [MODE 7  
4XQ2    #              MODE 2   
4Y9L    XMT31 LDN   6  #20                 [CHECK MODE 2 AVAILABLE  
4YP=          CALL  7  XPROPS   
4^8W                   +JYMODENAV   
4^NG    #              MODE 0   
5286    XMT32 CALL  3  XGETCA              [4-WORD C/A  
52MQ                   +4   
537B          CALL  3  XCHCA               [WORD COUNT:MIN 1,MAX 8192   
53M2                   +8193
546L                   +0   
54L=          BRN      XWORD
555W          BRN      XMT35
55KG    #              MODE 1   
5656    XMT33 CALL  7  XWPR                [CHECK WPR AVAILABLE 
56JQ                   +JYNOWPR 
574B          CALL  3  XGETCA              [4-WORD C/A  
57J2                   +4   
583L          CALL  3  XCHCA               [WORD COUNT:MIN 5,MAX 8192   
58H=                   +8193
592W                   +0   
59GG          BRN      XWORD
5=26          BRN      XMT35
5=FQ    #              MODE 3 AND 4 
5=^B    XMT34 CALL  3  XGETCA              [2-WORD C/A  
5?F2                   +2   
5?YL    XMT35 CALL  7  XSETMESS            [DEFAULT- SEQUENCE ERROR 
5#D=                   +JYMODESEQ   
5#XW          BRN      XFIN 
5*CG    #              MODE 5   
5*X6    XMT36 CALL  7  XWPR                [CHECK WPR AVAILABLE 
5BBQ                   +JYNOWPR 
5BWB          BRN      XMT34
5CB2    #              MODE 6   
5CTL    XMT37 LDN   6  #10                 [CHECK MODE 6 AVAILABLE  
5D*=          CALL  7  XPROPS   
5DSW                   +JYMODENAV   
5F#G          BRN      XMT34
5FS6    #     THIS SUBR CHECKS THAT SPECIFIED PROPS ARE AVAILABLE-CALLS XSETMESS
5G?Q    XPROPS  
5GRB          LDX   2  FX2  
5H?2           LPROP   AWORK1(2),2         [GET PROPS   
5HQL          SMO      FX2  
5J==          ANDX  0  2
5JPW          BNZ   0  XPROPS1             [J IF PROPERTY BIT SET   
5K9G          SMO      FX2  
5KP6          LDX   0  AWORK1   
5L8Q          BZE   0  XPROPS1             [JUMP IF NO PROPERTIES-I.E.OFFLINE   
5LNB          BRN      XSETMESS            [SET ERROR MESSAGE   
5M82    XPROPS1 
5MML          EXIT  7  1                   [EXIT
5N7=    #     THIS SUBR CHECKS THAT A WPR IS ATTACHED.  
5NLW    XWPR  SMO      FX2  
5P6G          LDX   0  AWORK1   
5PL6          BZE   0  XWPR1               [J IF OFFLINE
5Q5Q          LDX   2  FX2  
5QKB          JWPR     AWORK1(2),XWPR1     [J IF WPR IS PRESENT 
5R52          BRN      XSETMESS            [REPORT ERROR
5RJL    XWPR1 EXIT  7  1
5S4=    #SKI  IPCV1 
5SHW    (   
5T3G    #     THIS SECTION DEALS WITH IPC.(A PSEUDO OFF LINE PERIPHERAL)
5TH6    #     ONLY CHECKS IF ALLOCATED  
5W2Q    XIPC  CALL  3  XALLOC   
5WGB          ANDN  6  #5777               [MASK OUT MODES  
5X22          SBN   6  #100                [MODES<#100  
5XFL          BNG   6  XCI                 [4 WORD CONTROL AREA 
5X^=          SBN   6  #400                [MODES #100-#400 
5YDW          BNG   6  ZDS1                [5 WORD CONTROL AREA 
5YYG          SBN   6  #300                [MODE #1000  
5^D6          BZE   6  ZDR1                [2 WORD CONTROL AREA 
5^XQ          SBN   6  #700                [MODE #1700  
62CB          BZE   6  ZDS1                [5 WORD CONTROL AREA 
62X2          BRN      XCI                 [4 WORD CONTROL AREA ANYWAY  
63BL    )   
63W=    #     THIS SECTION DEALS WITH DISCS&GETS CONTROL AREA ONLY  
64*W    #     THERE IS NO NEED TO DO ANY FURTHER CHECKING SINCE ALL DISCS & DRUM
64TG    #     ARE OFF-LINE  
65*6    XMCF
65SQ    XFDS
66#B    XEDS  CALL  3  XALLOC   
66S2          ANDX  6  Q41737(1)
67?L          SBN   6  #100 
67R=          BNG   6  ZDS1                [J IF MODE <#100 
68=W          SBN   6  #1601
68QG          BPZ   6  ZDS4                [ILLEGAL MODE
69=6          ADN   6  #1601
69PQ          SRL   6  6
6=9B          SMO      6
6=P2          BRN      ZLEN 
6?8L    ZLEN
6?N=    #REP  4 
6#7W          BRN      ZDS2                [MODE #100,200,300,400   
6#MG          BRN      ZDS1                [MODE #500   
6*76          BRN      ZDS1                [MODE #600   
6*LQ          BRN      ZDS3                [MODE #700   
6B6B          BRN      ZDS4                [MODE #1000  
6BL2          BRN      ZDR1                [MODE #1100  
6C5L          BRN      ZDS2                [MODE #1200  
6CK=          BRN      ZDR1                [MODE #1300  
6D4W          BRN      ZDS3                [MODE #1400  
6DJG          BRN      ZDR2                [MODE #1500  
6F46          BRN      ZDS1                [MODE #1600  
6FHQ          BRN      ZDS1                [MODE #1700  
6G3B    ZDS4  CALL  3  XGETCA   
6GH2                   +3                  [3 WORD CONTROL AREA 
6H2L          BRN      XFIN 
6HG=    ZDS1  CALL  3  XGETCA   
6H^W                   +5                  [5 WD CA 
6JFG          BRN      XFIN 
6J^6    ZDS2  CALL  3  XGETCA   
6KDQ                   +9                  [9 WD CA 
6KYB          BRN      XFIN 
6LD2    ZDS3  CALL  3  XGETCA   
6LXL                   +7   
6MC=          BRN      XFIN                [7 WD CA 
6MWW    #     THIS SECTION DEALS WITH DRUMS.GETS CONTROL AREA ONLY  
6NBG    XDR   CALL  3  XALLOC   
6NW6          ANDX  6  Q41737(1)
6P*Q          SBN   6  #100 
6PTB          BNG   6  ZDS1 
6Q*2          SBN   6  #700 
6QSL          BPZ   6  ZDR1 
6R#=    ZDR2  CALL  3  XGETCA   
6RRW                   +6   
6S?G          BRN      XFIN 
6SR6    ZDR1  CALL  3  XGETCA   
6T=Q                   +2   
6TQB          BRN      XFIN 
6W=2    #     THIS SECTION DEALS WITH FILE HANDLERS & COMMAND ISSUERS   
6WPL    XFR 
6X9=    XFW   CALL  3  XALLOC   
6XNW    XCI   CALL  3  XGETCA   
6Y8G                   +4   
6YN6          BRN      XFIN 
6^7Q    #   
6^MB    #   
7272    #                          SUBROUTINES  
72LL    #                          -----------  
736=    #   
73KW    #     THIS SUBROUTINE CHECKS TO SEE WHETHER THE DEVICE IS ALLOCATED TO  
745G    #     THE PROGRAM AND IF NOT SETS THIS AS THE REASON FOR THE ILLEGALITY.
74K6    #     ON ENTRY X7=TYPE/UNIT NO.ON EXIT AWORK1 CONTAINS THE PTR. TO THE  
754Q    #     DEVICE LIST IF ONLINE,OTHERWISE IT IS ZERO
75JB    XALLOC  
7642          FPCACA   2,FX2
76HL          HUNT2    2,APERI,APERIRES    [X2-> PRB
773=          ADN   2  A1   
77GW          FPERENT  7,2,2               [FIND RELEVANT ENTRY 
782G          BNG   2  ZALL1               [NOT ALLOCATED   
78G6          LDX   0  1(2) 
78^Q          LDX   2  FX2  
79FB          BPZ   0  ZALL3               [J IF ON-LINE
79^2          STOZ     0
7=DL    ZALL3   
7=Y=          STO   0  AWORK1(2)           [STORE DEVICE LIST PTR IF ONLINE 
7?CW          EXIT  3  0
7?XG    ZALL1   
7#C6          SBX   3  FX1  
7#WQ          HUNTW   2,APED,ANOMESS       [FIND THE ILLEGAL BLOCK  
7*BB          LDX   0  VSCOND(2)
7*W2          BNZ   0  ZALL2               [J IF ILL ID. ALREADY PRESENT
7B*L          LDX   0  XJYUNALLOC(1)
7BT=          STO   0  VSCOND(2)           [SET REASON FOR ILLEGALITY   
7C#W          LDX   2  FX2  
7CSG    #SKI  JNLPACK   
7D#6          OUTPACK  5,1,PERINAME 
7DRQ    #SKI  JNLPACK<1$1   
7F?B    (   
7FR2          STO   5  ACOMMUNE5(2) 
7G=L          LDN   0  4
7GQ=          OUTPARAM 0,ACOMMUNE5  
7H9W    )   
7HPG    ZALL2   
7J96          ADX   3  FX1  
7JNQ          SMO      FX2  
7K8B          STOZ     AWORK1   
7KN2          EXIT  3  0
7L7L    #     THIS SUBROUTINE CHECKS THAT THE CONTROL AREA LENGTH LOCATED BY
7LM=    #     THE LINK(X3) IS WITHIN RESERVATIONS & IF SO MOVES IT INTO THE 
7M6W    #     ILLEGAL BLOCK 
7MLG    XGETCA  
7N66          LDX   4  0(3)                [X4=LENGTH OF CONTROL AREA   
7NKQ          SBX   3  FX1  
7P5B          SMO      FX2  
7PK2          LDX   5  AWORK3              [X5=O/P ADDRESS OF C/A   
7Q4L          STOZ     7
7QJ=    XGETCA1 
7QPD ...      SMO      FX1  
7QWL ...      ANDX  5  Q17777777
7R3W          GETWORDX 5,1,XACCESS(1),6,4  [GET CONTROL AREA
7R?N ...      LDX   5  AWORK3(2)
7RHG          TESTREPN OK,XNOCA            [J IF NOT O.K.   
7S36          HUNT2   2,APED,ANOMESS
7SGQ          ADN   2  VCAREA+3 
7T2B          ADX   2  7
7TG2          TXL   6  4
7T^L          BCC      XGETCA2             [J IF ALL WORDS OBTAINED 
7WF=          SMO      6
7WYW          MOVE  1  0                   [MOVE INTO ILLEGAL BLOCK 
7XDG          SBX   4  6                   [RESET COUNT 
7XY6          ADX   5  6                   [RESET ADDRESS   
7YCQ          ADX   7  6                   [AND ADDRESS 
7YXB          LDX   1  FX1  
7^C2          BRN      XGETCA1  
7^WL    XGETCA2 
82B=         SMO      4 
82TW          MOVE  1  0
83*G          CALL  4  X2HUNT2  
83T6          LDN   0  VPERI
84#Q          STO   0  VCAREA(2)           [STORE CATEGORY OF C/A   
84SB          LDX   1  FX1  
85#2          ADX   3  1
85RL          LDX   0  0(3) 
86?=          STO   0  VCAREA+2(2)         [STORE LENGTH OF C/A 
86QW          EXIT  3  1
87=G    #     THIS SUBROUTINE SETS THE REASON FOR AN ILLEGALITY IN THE ILLEGAL  
87Q6    #     BLOCK IF NO OTHER REASON HAS YET BEEN FOUND   
889Q    XSETMESS
88PB          CALL  4  X2HUNT2  
8992          LDX   0  VSCOND(2)
89NL          BNZ   0  ZNOSET   
8=8=          SMO      7
8=MW          LDX   0  0
8?7G          STO   0  VSCOND(2)
8?M6    ZNOSET  
8#6Q          EXIT  7  1
8#LB    #     THIS SUBROUTINE CHECKS A CONTROL AREA ACCORDING TO THREE PARAMS   
8*62    #     LOCATED BY THE LINK X3.IF AN ERROR IS FOUND IT EXITS TO THE   
8*KL    #     APPROPRIATE LABEL.
8B5=    #     1ST PARAM:-MAX VALUE OF COUNT+1.MIN VALUE ASSUMED=1   
8BJW    #     2ND PARAM:-ZERO OR IF+VE FORCED VALUE FOR COUNT OR IF B0=1 MIN VAL
8C4G    #     3RD PARAM:-SWITCH FOR BUFFER CHECK(CHARS,CHAR+WORDS,WORDS ETC)
8CJ6    #   
8D3Q    XCHCA   
8DHB          LDX   5  VCAREA+6(2)         [BUFFER ADDRESS  
8F32          LDX   6  VCAREA+5(2)         [COUNT   
8FGL          BZE   6  XCOUNT              [J IF ZERO COUNT 
8G2=          TXL   6  0(3) 
8GFW          BCC      XCOUNT              [J IF > THAN MAX COUNT   
8G^G          LDX   0  1(3) 
8HF6          BZE   0  ZCH1                [J IF NO FORCED OR MIN VALUE 
8HYQ          BPZ   0  ZCH2                [J IF NO MIN VALUE   
8JDB          ANDX  0  Q17777777(1) 
8JY2    ZCH2  TXL   0  6
8KCL          BCS      ZCH1 
8KX=          LDX   6  0
8LBW    ZCH1
8LWG          ADN   3  2
8MB6          EXIT  3  0
8MTQ    #   
8N*B    #     CHARACTER COUNT & CHARACTER ADDRESS (TR,TP)   
8NT2    #   
8P#L    XCHAR   
8PS=          LDCT  0  #600 
8Q?W          ANDX  0  5
8QRG          SLC   0  2
8R?6          ADX   6  0
8RQQ    #   
8S=B    #     CHARACTER COUNT & WORD ADDRESS (CR,CP)
8SQ2    #   
8T9L    XCHWD   
8TP=          ADN   6  3
8W8W          SRL   6  2
8WNG    #   
8X86    #     WORD COUNT AND WORD ADDRESS (MT)  
8XMQ    #   
8Y7B    XWORD   
8YM2          ANDX  5  VMASK(2) 
8^6L          FPCACA   2,FX2
8^L=          CHECKBX  5,6,XNOBUFF,2
925W          EXIT  3  1
92KG    #   
9356    #     IF LP CHECK THAT CHARACTER ADDRESS=.3 
93JQ    #   
944B    XLPC  LDX   0  5
94J2          SRL   0  22   
953L          SBN   0  3
95H=          BZE   0  XCHAR
962W          CALL  7  XSETMESS            [REPORT'ILLEGAL OR NOT VALID'
96GG                   +JYCHAR  
9726          BRN      XFIN 
97FQ    #   
97^B    #     REPORT VARIOUS OTHER ILLEGALS 
98F2    #   
98YL    XNOCA CALL  7  XSETMESS            ['CONTROL AREA OUT OF RESERVATIONS'  
99D=                   +JYNOCA  
99XW          BRN      XFIN 
9=CG    #   
9=X6    XNOBUFF 
9?BQ          CALL  7  XSETMESS            ['BUFFER OUT OF RESERVATIONS'
9?WB                   +JYNOBUF 
9#B2          BRN      XFIN 
9#TL    XCOUNT  
9**=          CALL  7  XSETMESS            ['COUNT OUT OF RANGE 
9*SW                   +JYCOUNT 
9B#G          BRN      XFIN 
9BS6    #   
9C?Q    XMODE CALL  7  XSETMESS            ['MODE NOT RECOGNISED'   
9CRB                   +JYMODE  
9D?2          BRN      XFIN 
9DQL    #   
9F==    #   
9FPW    #   
9G9G    #   
9HNB    #END
^^^^ ...55300774000400000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1