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