{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PRINT70)}}
====== PRINT70 ======
(George Source)
**Macros used:** [[george:macro:ABANDCOM|ABANDCOM]], [[george:macro:ASSMESS|ASSMESS]], [[george:macro:BS|BS]], [[george:macro:CHNUMCON|CHNUMCON]], [[george:macro:CLOSE|CLOSE]], [[george:macro:CLOSEMULT|CLOSEMULT]], [[george:macro:CLOSESTREAM|CLOSESTREAM]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:CREATEB|CREATEB]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:ERRORX|ERRORX]], [[george:macro:FLIPS|FLIPS]], [[george:macro:FPCACA|FPCACA]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETWORDX|GETWORDX]], [[george:macro:HUNT|HUNT]], [[george:macro:INPRINTX|INPRINTX]], [[george:macro:LDNBIT|LDNBIT]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:OUTBLOCN|OUTBLOCN]], [[george:macro:OUTMON|OUTMON]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:PARABEGX|PARABEGX]], [[george:macro:PARABRAC|PARABRAC]], [[george:macro:PARAFREE|PARAFREE]], [[george:macro:PARALYSE|PARALYSE]], [[george:macro:PARALYSX|PARALYSX]], [[george:macro:PARAPASS|PARAPASS]], [[george:macro:PARUNACC|PARUNACC]], [[george:macro:REPERR|REPERR]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETBIT|SETBIT]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SPARANOT|SPARANOT]], [[george:macro:STEP|STEP]], [[george:macro:TBS|TBS]], [[george:macro:TESTBRKIN|TESTBRKIN]], [[george:macro:TESTGETW|TESTGETW]], [[george:macro:TESTMULT|TESTMULT]], [[george:macro:TESTRACE|TESTRACE]], [[george:macro:TESTREAM|TESTREAM]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTREPNOT|TESTREPNOT]], [[george:macro:TRACE|TRACE]], [[george:macro:UNSETBIT|UNSETBIT]], [[george:macro:USEROPEN|USEROPEN]], [[george:macro:VFREE|VFREE]], [[george:macro:WORDFIN|WORDFIN]]
22FL ...#SEG PRINT70 [JOHN P. TITORENKO
22^= #LIS K0PRINT>K0ALLGEO>K0GREATGEO
23DW #OPT K6PRINT=K6ALLGEO>K6GREATGEO
23YG 8HPRINT
24D6 #
24XQ SEGENTRY K1PRINT,XX1P
25CB #
25X2 # THIS SEGMENT DEALS WITH THE PRINT COMMAND. IF A FILE DESCRIPTION
26BL # PARAMETER IS INCLUDED THE SEGMENT INSERTS IN THE SPECIFIED FILE
26W= # THE WORDS OF OBJECT PROGRAM SPECIFIED BY THE FOLLOWING PARAMETERS
27*W # OF THE COMMAND,OTHERWISE OUTPUT IS TO THE MONITORING FILE, THE
27TG # WORD IS INTERPRETED IN CHARACTER,OCTAL,DECIMAL AND INSTRUCTION FORM
28*6 # ENTRY IS MADE AT K1
28SQ #
29#B SPIT 6HREGION
29S2 SALL 3HALL
2=?L #
2=R= XACCESS +GREAD+CHUSED+GNOMESS
2?=W MAGIC +7036875
2?QG XCAT #200
2#=6 THREE +3
2#PQ SPACE #00000020
2*9B X7CHARS +1.3
2*P2 XJNOTUSED +JNOTUSED
2B8L PERM1 +ERUNPAIR [ERROR MESSAGES
2BN= PERM3 +CHNUMIN
2C7W PERM4 +GWERRES
2CMG PERM5 +JPOSWDS
2D76 PERM6 +JPARMIS
2DLQ PERM7 +JMTRACE
2F6B PERM8 +APFERR
2FL2 PERM9 +EREXQUOTA
2FTS ...PJMAXPAR +JMAXPAR
2G5L #
2GK= # LOCATIONS IN BUFFER(ADATA/CSTORE)
2H4W #DEF PADDR=A1
2HJG #DEF PCHAR=PADDR+3
2J46 #DEF PSDEC=PCHAR+2
2JHQ #DEF POCTAL=PSDEC+2
2K3B #DEF PINST=POCTAL+4
2KH2 #DEF PACCDUMP=PINST+4
2L2L #
2LG= # WORKING SPACE
2L^W #
2MFG #DEF PFLAG=AWORK1
2M^6 #
2NDQ # PFLAG IS USED TO HOLD VARIOUS FLAGS AS FOLLOWS
2NYB #
2P88 ...#DEF STARTAREA=23
2PD2 #DEF RESVIOL=22
2PXL #DEF PPRES=21
2QC= ...#DEF STARTCOM=20
2QWW ...#DEF STARTPRINT=19
2RBG #DEF UFILE=18
2RW6 #DEF POPEN=17
2S*Q #DEF REGION=16
2STB #SKI G4
2T*2 #DEF NU1=15
2TSL #DEF ONEP=14
2W#= #DEF PMODE=5
2WRW #
2X?G # THIS S/R IS USED TO FIND A PARAMETER STARTING WITH A SPECIFIED
2XR6 # CHARACTER STRING
2Y=Q PBEG
2YQB SBX 7 FX1
2^=2 PARABEGX 3,4,,,0
2^PL MHUNT 3,CPB,CUNI
329= LDX 4 ANUM(3)
32NW LDX 5 JPARNUM(3)
338G LDCH 6 APARA(3) [OBTAIN 1ST CHARACTER
33N6 ADX 7 FX1
347Q EXIT 7 0
34MB #
3572 # THIS S/R SPLITS UP THE PARAMETER FOUND BY PBEG, LEAVING THEM IN A
35LL # MULTY BLOCK AT LEVEL 2
366= PLYSE
36KW SBX 7 FX1
375G PARALYSE ,,5 [SPLIT AT PAIRED PARENTHESIS
37K6 TESTREP UNPAIR,PERR1A [J IF UNPAIRED PARENTHESIS
37SY ... TESTREP TOOMANY,PERR11
384Q MFREE CPB,CUNI
38JB LDN 4 2
3942 LDN 5 #34 [, AS SEPARATOR
39HL PARALYSX 5,,4 [SPLIT REGIONES
39RD ... TESTREP TOOMANY,PERR11
3=3= ADX 7 FX1
3=GW EXIT 7 0
3?2G #
3?G6 # THIS S/R DOES A PARAPASS & FINDS THE CUNI BLOCK
3?^Q PPASS
3#FB SBX 7 FX1
3#^2 #SKI AJOBUSE<1$1
3*DL (
3*Y= HUNT 3,CPB,CMULTI
3BCW BNG 3 UNACC
3BXG PARAPASS
3CC6 BRN SEARCH
3CWQ UNACC
3DBB )
3DW2 PARUNACC
3F*L SEARCH
3FT= MHUNT 3,CPB,CUNI
3G#W ADX 7 FX1
3GSG EXIT 7 0
3H#6 #
3HRQ #
3J?B XX1P
3JR2 #
3K=L SETNCORE 18,3,ADATA,CSTORE [BLOCK TO CONTAIN OUTPUT TO
3KQ= [ THE MONITORING FILE
3L9W LDN 5 0
3LKK ...#FID STARTCOM STARTCOM 1
3L^# ...#FID STARTPRINT STARTPRINT 1
3M*3 ...#FID STARTAREA STARTAREA 1
3MNQ STO 5 PFLAG(2) [INITIALISE FLAG WORD
3N8B # THE FIRST PART OF T8E SEGMENT DOWN TO LABEL ZOUTPUT NALYSES THE NEXT
3NN2 # PARAMETER, IF THIS IS A FILE NAME THE SPECIFIED FILE IS PENED AND
3P7L # THE COMMON PATH JOINED TO ACCESS THE NEXT PARAMETER. THERWISE THE
3PM= # PARAMETER IS TESTED FOR VALIDITY AND THE 0/P ADDRESS OF T E 1ST WORD
3Q6W # TO BE PRINTED INSERTED IN X5. A COUNT OF THE NUMBER OF ORDS T BE
3QLG # PRINTED IS INS RTED IN X4. CONTROL T EN PASSES TO ZOUTPUT
3R66 #
3RKQ #
3S5B NEWPAR
3SK2 CALL 7 PPASS [GET PARAM & POINTER TO BLOCK
3T4L LDX 4 ANUM(3)
3TJ= ... TBS STARTCOM,PFLAG(2),5 [TEST START SWITCH
3W3W BZE 5 OREC [IF NOT SET -NOT 1ST PARAM
3WHG ERS 5 PFLAG(2) [UNSET SWITCH
3X36 BZE 4 RECO [IF NULL NO FILE NAME PARAMETER
3XGQ ... BNG 4 NEWPARG [NO PARAMETER
3Y2B LDCH 0 APARA(3)
3YG2 SBN 0 #12 [TEST IF :
3Y^L BZE 0 NREG
3^F= SBN 0 #7 [TEST IF !
3^YW BZE 0 NREG
42DG SBN 0 #20 [TEST IF ALPHABETIC
42Y6 BNG 0 RECO
43CQ SBN 0 #32
43XB BPZ 0 RECO
44C2 NREG
44WL MFREE CPB,CUNI
45B= SETBIT UFILE,PFLAG(2) [INDICATE OUTPUT TO FILE
45TW #
46*G # REGION LIST FORMAT
46T6 #
47#Q # LOOK FOR'ALL'
47SB NPAR
48#2 LDN 4 3 [CHARACTER COUNT
48RL LDX 5 SALL(1)
49?= LDN 3 1
49QW CALL 7 PBEG [SEARCH FOR ALL
4==G BNG 4 PPAR [GO TO LOOK FOR'REGIONS'
4=Q6 SETBIT ONEP,PFLAG(2)
4?9Q FPCACA 3,2
4?PB LDX 4 ALIMIT(3)
4#92 STOZ 5
4#NL BRN ZOUTPUT [GO TO PRINT PROGRAM
4*8= #
4*MW # 1 REGION LIST PARAMETER FINISHED OR A NON EXISTENT PARAMETER FOUND
4B7G #
4BM6 NEWPARG
4C6Q TBS REGION,PFLAG(2),3 [SEE IF PRINTING FINISHED
4CLB BZE 3 PR1 [PRINTING IS FINISHED
4D62 PARAFREE [FREE MULTY BLOCKS
4DKL #
4F5= # REGION LIST FORMAT BUT NO'ALL'
4FJW #
4G4G # LOOK FOR PARAMETER PRECEDED BY 'REGION'
4GJ6 #
4H3Q PPAR
4HHB LDN 3 1 [SET UP ACCS FOR S/R
4J32 SETBIT REGION,PFLAG(2)
4JGL ... LDN 4 6
4K2= LDX 5 SPIT(1)
4KFW LDX 6 SPIT+1(1)
4K^G CALL 7 PBEG [SEARCH FOR REGIONS
4LF6 BNG 4 PERR8 [NO'REGIONS'-PARAMETER FORMAT ERROR
4LYQ SBN 6 #30 [SEE IF 1ST CHAR IS A '('
4MDB BNZ 6 ONEPAR [IF NOT-ASSUME 1 PARAMETER ONLY
4MY2 CALL 7 PLYSE [SPLIT REGIONS PARAM
4NCL BRN NEWPAR
4NX= #
4PBW # 'REGIONS' PARAMETER WITHOUT PAIRED PARENTHESIS
4PWG #
4QB6 ONEPAR
4QTQ BZE 4 ORE1
4R*B SETBIT ONEP,PFLAG(2)
4RT2 BRN ROCO
4S#L #
4SS= OREC
4T?W BZE 4 ZFUNI [NULL PARAMETER
4TRG BPZ 4 ROCO [J IFF IF EXISTS
4W?6 ORE1
4WQQ MFREE CPB,CUNI
4X=B BRN NEWPARG
4XQ2 #
4Y9L RECO LDN 7 #200 [TEST IF MONITORING FILE POSL0MORT
4YP= TESTRACE 7,PERR7 [CATEGORY ALLOWED
4^8W BZE 4 NPAR
4^NG ROCO SRL 4 12 [TYPE TO B12-23
5286 BZE 4 TP1A [BRANCH IF SIMPLE
52MQ SBN 4 2
537B BNG 4 Q1END [IF PSEUDO-SIMPLE AVOID QUICK
53M2 [ ANALYSIS-BOUND TO FAIL
546L BNZ 4 TP3A [BRANCH IF QUALIFIED
54L= [OTHERWISE COMPOSITE
555W #
55KG # [A QUICK TEST FOR PARAMETER OF TYPE
5656 # [ (N,M) WHERE N,M ARE DECIMAL INTS.
56JQ LDN 4 #7777
574B ANDX 4 ANUM(3) [PARAMETER LENGTH
57J2 SBN 4 1
583L BCHX 3 £ [FIRST CHAR KNOWN TO BE (
58H= CALL 0 XCDB
592W BNZ 6 Q2END [QUICK TEST FAILS IF N DOUBLE LENGTH
59GG STO 7 ACC5(2) [REMEMBER N
5=26 LDN 5 #34 [IE ,
5=FQ CALL 0 XTEST [IS NEXT CHAR A , ?
5=^B BRN Q2END [IF NOT,QUICK TEST FAILS
5?F2 BZE 4 Q2END [IF COUNT EXHAUSTED,QUICK TEST FAILS
5?YL CALL 0 XCDB
5#D= BNZ 6 Q2END [QUICK TEST FAILS IF M DOUBLE LENGTH
5#XW BZE 4 Q2END [ OR IF COUNT EXHAUSTED
5*CG STO 7 ACC4(2) [REMEMBER M
5*X6 LDN 5 #31 [IE )
5BBQ CALL 0 XTEST
5BWB BRN Q2END [QUICK TEST FAILS IF NEXT CHAR NOT )
5CB2 BNZ 4 Q2END [ OR IF COUNT NOT EXHAUSTED
5CTL LDX 4 ACC4(2) [OTHERWISE TEST OK
5D*= LDX 5 ACC5(2) [ RESTORE X4,X5,
5DSW LDN 7 0 [ INDICATE TYPE 2 PARAM
5F#G BRN VCHK [ AND CHECK PARAMETER VALUES
5FS6 #
5G?Q #
5GRB TP1A LDX 4 ANUM(3) [A QUICK TEST FOR PARAMETER OF TYPE
5H?2 ANDN 4 #7777 [ N WHERE N IS A DECIMAL INTEGER.
5HQL CALL 0 XCDB
5J== BNZ 4 Q1END [QUICK TEST FAILS IF COUNT NOT
5JPW # [ EXHAUSTED
5K9G BNZ 6 Q1END [ OR IF NUMBER WENT DOUBLE LENGTH
5KP6 LDN 4 1 [NUMBER OF PRINTWORDS
5L8Q LDX 5 7 [THE CONVERTED NUMBER
5LNB BPZ 5 ZOUTPUT [IF NUMBER > OR = 0,ANALYSIS COMPLETE
5M82 BRN PERR4 [OTHERWISE ERROR
5MML #
5N7= TP3A [A QUICK TEST FOR PARAMETER OF TYPE
5NLW LDN 4 #7777 [ M(N) WHERE M,N ARE DECIMAL INTEGERS
5P6G ANDX 4 ANUM(3) [COUNT TO X4
5PL6 CALL 0 XCDB
5Q5Q BNZ 6 Q3END [IF M WENT DOUBLE LENGTH,TEST FAILS
5QKB STO 7 ACC5(2) [REMEMBER M
5R52 LDN 5 #30
5RJL CALL 0 XTEST [IS NEXT CHARACTER A ( ?
5S4= BRN Q3END [IF NOT QUICK TEST FAILS
5SHW BZE 4 Q3END [QUICK TEST FAILS IF COUNT EXHAUSTED
5T3G CALL 0 XCDB
5TH6 BNZ 6 Q3END [IF N WENT DOUBLE LENGTH,TEST FAILS
5W2Q BZE 4 Q3END [DITTO IF COUNT EXHASTED
5WGB STO 7 ACC4(2) [REMEMBER N
5X22 LDN 5 #31
5XFL CALL 0 XTEST [IS NEXT CHARACTER A ) ?
5X^= BRN Q3END [IF NOT QUICK TEST FAILS
5YDW BNZ 4 Q3END [DITTO IF COUNT NOT EXHAUSTED
5YYG LDX 4 ACC4(2) [IF TEST SUCCESSFUL,RESTORE X4,X5
5^D6 LDX 5 ACC5(2)
5^XQ NGN 7 1 [INDICATES TYPE 3 PARAM
62CB BRN VCHK [CHECK PARAMETER VALUES
62X2 #
63BL Q1END LDN 7 1 [ SET TYPE 1 MARKER
63W= BRN PCON
64*W Q2END LDN 7 0 [SET TYPE 2 MARKER
64TG BRN PBRAC
65*6 Q3END NGN 7 1 [ SET TYPE 3 MARKER
65SQ PBRAC PARABRAC [ REDUCE PARAMETER TO A NUMBER STRING
66#B TESTREPNOT OK,PERR1 [ UNPAIRED PARENTHESES
66S2 MHUNT 3,CPB,CUNI
67?L LDX 5 ANUM(3)
67R= BZE 5 PERR3
68=W #
68QG #
69=6 PCON [REACH HERE WITH N OR N,M IN UNI BLOC
69PQ #SKI K6PRINT>699-699
6=9B (
6=P2 TRACE 1,PTCOMCV
6?8L )
6?N= CHNUMCON 1,REAKIN [ATTEMPT TO CONVERT NUMBERS
6#7W TESTREP2 CHNUMERR,PERR3A [TEST FOR ERROR
6#MG MHUNTW 3,CPAR,GNUMCON
6*76 LDX 6 A1(3) [THE NO. OF EXPRESSIONS CONVERTED
6*LQ LDX 5 A1+1(3) [IF DEFINED,THE O/P BASE ADDR
6B6B LDX 4 A1+2(3) [IF DEFINED,EITHER O/P WORDCOUNT (TP3
6BL2 [ PARAM),OR TOP OF PT AREA (TP2PARAM)
6C5L FREECORE 3 [FREE THE GNUMCON BLOCK
6CK= BCT 6 X6GT1
6D4W LDN 4 1 [IF 1 CONVN SET WORDCOUNT TO 1
6DJG LDN 7 1 [ AND INDICATE TYPE 1 PARAMETER
6F46 BRN VCHK [ AND CHECK X4,X5 FOR LEGALITY
6FHQ X6GT1 BCT 6 PERR3 [ERROR IF >2 CONVERSIONS
6G3B #
6GH2 VCHK BNG 5 PERR4 [IF O/P BASE ADDR <0,ERROR
6H2L BZE 7 TP2A [BRANCH IF TYPE 2 PARAMETER
6HG= BZE 4 TP3B [PARAM WAS LIKE 6(0)
6H^W BNG 4 PERR5 [NO OF PRINTWORDS NEGATIVE
6JFG BRN ZOUTPUT
6J^6 #
6KDQ TP2A SBX 4 5 [CONVERT TYPE 2 PARAM (N,M) TO
6KYB # [ TYPE 3 FORM N(M-N+1)
6LD2 BNG 4 PERR5 [IF UPPER BND < LOWER BND
6LXL ADN 4 1
6MC= BRN ZOUTPUT
6MWW #
6NBG # ERROR CASES
6NW6 #
6P*Q PERR1 LDX 1 FX1
6PTB LDX 4 PERM1(1) [UNPAIRED PARENTHESES
6Q*2 BRN XERCL
6QSL PERR3A
6R#= LDN 0 #1000
6RRW ANDX 0 CONTEXT(2)
6S?G BZE 0 ULTND [PACK UP IF LOAD ERROR
6SR6 PERR3 LDX 1 FX1
6T=Q LDX 4 PERM3(1) [INVALID NUMBER FORMAT
6TQB BRN XERCL
6W=2 PERR4 LDX 1 FX1
6WPL LDX 4 PERM4(1) [RESERVATION VIOLATION
6X9= BRN XERCL
6XNW PERR5 LDX 1 FX1
6Y8G LDX 4 PERM5(1) [NO OF PRINTWORDS < 0
6YN6 XERCL CALL 7 SRERR [ISSUE ERROR MESSAGE
6^7Q PERR2
6^MB TP3B SETBIT PPRES,PFLAG(2) [PARAMETER PRESENT BIT
7272 ZFUNI VFREE CPB,CUNI
73KW BRN NEWPAR
745G #
74K6 PERR1A
754Q LDX 4 PERM1(1)
75JB CALL 7 SRERR
7642 SETBIT PPRES,PFLAG(2) [PARAMETER PRESENT BIT
76HL BRN ORE1
76L9 ...PERR11
76NS ... LDX 4 PJMAXPAR(1)
76RC ... CALL 7 SRERR
76W2 ... SETBIT PPRES,PFLAG(2)
76YK ... BRN ORE1
773= #
77GW # THE REST OF THIS SEGMENT.DOWN TO LABEL PR1,OUTPUTS TO THE MONITORING
782G # FILE THE CONTENTS OF [X4] WORDS COMMENCING AT OBJECT PROGRAM ADDRESS
78G6 # [X5].GETWORD REQUESTS ACCESS TO A MAXIMUM OF 512 WORDS.
78^Q #
79FB #
79^2 ZOUTPUT
7=8S ... SETBIT STARTAREA,PFLAG(2)
7=DL SETBIT PPRES,PFLAG(2)
7=Y= STOZ AWORK4(2) ['ZERO COUNT' WORD
7?CW FPCACA 3,2 [FIND THE PCA
7?XG LDX 0 ALIMIT(3)
7#C6 SBX 0 5 [X0=NO OF PRINTWORDS ALLOWED WITHOUT
7#WQ [ RESERVATION VIOLATION
7*BB BNG 0 PERR4
7*W2 BZE 0 PERR4 [J IF NO PRINTWORDS IN RESERVATION
7B*L TXL 0 4
7BT= BCC RESOK [J IF PRINT REQUEST WITHIN
7C#W # [RESERVATIONS
7CSG LDX 4 0 [ADJUST REQUEST TO BE WITHIN RESERVN
7D#6 SETBIT RESVIOL,PFLAG(2)
7DRQ BRN QQQ
7F?B RESOK LDNBIT RESVIOL,0
7FR2 ANDS 0 PFLAG(2) [UNSET RESVIOL FLAG
7G=L QQQ
7GQ= TBS UFILE,PFLAG(2),0
7H9W BZE 0 XNOFI [J IF NO FILE
7HPG TBS POPEN,PFLAG(2),0
7J96 BNZ 0 XNOFI [J IF FILE OPEN
7JNQ FLIPS PFLAG(2),,POPEN [INDICATE FILE OPEN
7K8B LDN 1 0
7KN2 SPARANOT 1,1 [GET PARAMETER FRO M CALAS
7L7L XFID MHUNT 3,CPB,CMULTI
7LM= BNG 3 XNOFID
7M6W NAMETOP 3,ADATA,ERREPLY [RENAME MULTI SO AS NOT TO CONFUSE
7MLG BRN XFID [USEROPEN
7N66 XNOFID
7NKQ MHUNT 3,CPB,CUNI
7P5B NAMETOP 3,FILE,FNAME [RENAME BLOCK
7PK2 CREATEB [SET UP FILE/CREATE BLOCK
7PXC ... MHUNT 3,FILE,CREATE
7Q9S ... BS 3,CESERIAL
7QJ= LDCT 0 #400
7R3W ADN 0 #12
7RHG STO 0 CETM(3)
7S36 #SKI AMULTUSER
7SGQ USEROPEN REAKIN,APPEND,CREATE,EMPTY,MULT,FILE
7T2B #SKI AMULTUSER<1$1
7TG2 USEROPEN REAKIN,APPEND,CREATE,EMPTY,STREAMS
7T^L UNFID MHUNT 3,ADATA,ERREPLY
7WF= BNG 3 NOFID
7WYW NAMETOP 3,CPB,CMULTI
7XDG BRN UNFID
7XY6 NOFID
7YCQ REPERR YAKO
7YXB BRN ULTND [PACK UP IF ERROR
7^C2 REAKIN
7^WL COMBRKIN [ACTION IF BREAKIN
82B= XNOFI
82TW QBRKN TESTBRKIN ZBRKN [TEST FOR BREAK-IN
83*G YAKO
83T6 ... TBS STARTPRINT,PFLAG(2),0
84#Q BNZ 0 NOSPACE
84SB CALL 6 SPACES [OUTPUT ALINE OF SPACES
85#2 NOSPACE
85RL ZOUT STOZ AWORK2(2)
86?= LDX 6 4
86QW SBN 6 512
87=G BNG 6 ZGTWD [IF REQUEST FOR < OR = 512 WORDS THEN
87Q6 # [ SET AWORK2 TO 0 AND LEAVE X4 ALONE
889Q STO 6 AWORK2(2) [OTERWISE X4=512 FOR THE CURRENT
88PB LDN 4 512 [ GETWORD AND THE EXCESS IS STORED IN
8992 # [ AWORK2
89NL ZGTWD
8=8= #SKI K6PRINT>699-699
8=MW TRACE 4,PTGETWDC
8?7G # X5=O/P ADDR;X6=GEORGE ADDR;X4=WORDS REQUESTED;X7=WORDS GIVEN(G3)
8?M6 # OR WORDS TO THE END OF UNACCESSED AREA
8#6Q GETWORDX 5,6,XACCESS(1),7,4,ZBRKN,1
8#LB TESTREP OK,ZGOOD
8*62 TESTREP2 LOADERR,TIFO
8*KL #SKI G4
8B5= (
8BJW TESTREPN NOTUSED,RELERR
8C4G LDX 0 AWORK2(2) [WORDS STILL TO BE PRINTED
8CJ6 ADX 0 4 [+WORDS REQUESTED-NO OF WORDS TO
8D3Q SBX 0 7 [THE END OF UNACCESSED AREA IN X0
8DHB BZE 0 P1FIN [J IF ZERO
8F32 BNG 0 P1FIN [OR NEGATIVE
8FGL STO 0 4 [OTHERWISE X4=NO OF WORDS REMAINING
8G2= LDX 0 5
8GFW ADX 0 7
8G^G STO 0 AWORK2(2) [AWORK2=O/P ADDRESS
8HF6 CALL 7 OUTLINE [OUTPUT PARAMETER IF NECESSARY
8HYQ LDX 5 AWORK2(2) [SET X5=O/P ADDRESS
8JDB BRN ZOUT [AND DO ANOTHER GETWORDX
8JY2 #
8KCL P1FIN
8KX= CALL 7 OUTLINE [OUTPUT PARAMETER
8LBW ADX 5 4 [O/P ADDRESS OF LAST WORD REQUESTED
8LWG ADX 5 AWORK2(2) [+NO OF WORDS STILL TO BE PRINTED
8MB6 SBN 5 1
8MTQ CALL 7 XOUTPAR [OUTPUT PARAMETER
8N*B CALL 7 XOUTMESS [OUTPUT'NOTUSED'MESSAGE
8NT2 UNSETBIT NU1,PFLAG(2) [REMOVE NOTUSED MARKER AND
8P#L BRN ZFUNI [LOOK FOR MORE PARAMETERS
8PS= RELERR
8Q?W )
8QRG GEOERR 1,PRINT1
8R?6 ZGOOD
8RQQ SBX 5 6
8S=B NGS 5 AWORK3(2) [AWORK3=G.ADDR-O/P ADDR
8SQ2 LDX 5 6 [X5=GEORGE ADDRESS OF PRINTWORD
8T9L ADX 4 AWORK2(2) [IF WE HAVE ACCESS ALL WORDS
8TP= LDX 0 4 [ REQUIRED,PROCEED TO PRINT THEM
8W8W SBX 0 7
8WNG STO 3 ACOMMUNE1(2) [REMEMBER PREVIOUS WORD
8X86 BNG 0 ZGOTAL
8XMQ LDX 4 7 [...OTHERWISE PRINT THE NUMBER GIVEN
8Y7B STO 0 AWORK2(2) [ AND SET AWORK2 TO THE RESIDUE.
8YM2 BRN ZIN
8^6L ZGOTAL
8^L= STOZ AWORK2(2)
925W ZIN
92KG #SKI G4
9356 (
93JQ TBS NU1,PFLAG(2),0
944B BZE 0 ZBETTER [J IF PRGEDING AREA NOT'NOTUSED'
94J2 ERS 0 PFLAG(2) [UNSET NOTUSED FLAG
953L STO 5 AWORK4(2) [THIS IS SILLY
95H= SBX 5 AWORK3(2)
962W SBN 5 1
96GG CALL 7 XOUTPAR [OUTPUT LAST LOCATION AS PARAMETER
9726 LDX 5 AWORK4(2)
97FQ STOZ AWORK4(2)
97^B CALL 7 XOUTMESS [OUTPUT MESSAGE
98F2 CALL 6 SPACES
98YL SMO 5
99D= LDX 6 0 [X6=CURRENT PRINTWORD
99XW BRN ZPRT
9=CG ZBETTER
9=X6 )
9?BQ ... TBS STARTPRINT,PFLAG(2),0
9?WB ... BZE 0 ZIN1 [J IF NOT 1ST PARAM TO BE PRINTED
9#B2 ERS 0 PFLAG(2)
9#TL FPCACA 1,2,N
9**= LDX 0 ALMT(1)
9*SW ANDN 0 #40 [PICK UP BRANCH MOD&
9B#G SRC 0 11
9BS6 ORS 0 PFLAG(2)
9CRB ZIN1
9D?2 SMO 5
9DQL LDX 6 0 [X6=THE VALUE OF THE NEXT O/P WORD
9DXS ... TBS STARTAREA,PFLAG(2),0
9F52 ... BZE 0 PHINE
9F=8 ... ERS 0 PFLAG(2)
9FCB ... BRN X6NE
9FJJ ...PHINE TXU 6 ACOMMUNE1(2)
9FPW BCS X6NE [J IF NOT EQUAL TO PREVIOUS WORD
9G9G LDX 0 AWORK4(2) [COUNT = 0?
9GP6 BNZ 0 ZNFT [J IF NOT
9H8Q LDN 0 1 [OTHERWISE ADD 1 TO COUNT
9HNB STO 0 AWORK4(2)
9J82 ZNFT LDN 7 1
9JML TXU 7 4
9K7= BCS X6Z
9KLW LDX 0 AWORK2(2)
9L6G BZE 0 X6ZT [IF X6=0 AND THIS IS THE LAST PRINTWO
9LL6 X6Z LDX 0 AWORK4(2) [ZERO COUNT
9M5Q TXU 0 THREE(1) [INCREMENT THE ZERO COUNT UNLESS
9MKB BCC X6ZA [ IT WAS PREVIOUSLY
9N52 ADS 7 AWORK4(2) [ THREE
9NJL X6ZA SMO 0
9P4= BRN X6ZB
9PHW X6ZB BRN ZPRT [IF ZERO COUNT=0,PRINT CURRENT WORD
9Q3G BRN ZFIN [ =1,IGNORE CURRENT WORD
9QH6 CALL 6 SPACES [ =2,OUTPUT ALINE OF SPAC
9R2Q BRN ZFIN [ =3,IGNORE CURRENT WORD
9RGB #
9S22 X6ZT LDX 0 AWORK4(2) [ZERO COUNT
9SFL BZE 0 ZPRT [IF 0,STRAIGHTFORWARD PRINT
9S^= SBN 0 2
9TDW BNZ 0 ZC13T [IF ZERO COUNT = 2,
9TYG CALL 6 SPACES [OUTPUT ALINE OF SPACES
9WD6 ZC13T CALL 7 PRINTOLD
9WXQ BRN ZFIN
9XCB #
9XX2 X6NE LDX 0 AWORK4(2) [ZERO COUNT WORD
9YBL STOZ AWORK4(2) [RESET IT TO ZERO
9YW= SBN 0 2
9^*W BNG 0 ZPRT [IF COUNT 0 OR 1 PRINT
9^TG LDN 6 0
=2*6 SBN 5 1 [BACKSTEP TO PREVIOUS WORD
=2SQ CALL 7 PRINTOLD [PRINT IT
=3#B ADN 5 1 [STEP FORWARD TO CURRENT WORD
=3S2 # [ PRINTWORD.
=4?L ZPRT CALL 7 PRINT [CURRENT PRINTWORD TO MONITORING FILE
=4R= #
=5=W ZFIN TESTBRKIN ZBRKN [TEST FOR BREAK-IN
=5QG #
=6=6 SMO 5
=6PQ LDX 6 0
=79B STO 6 ACOMMUNE1(2) [REMEMBER PREVIOUS WORD
=7P2 ADN 5 1 [STEP GEORGE ADDRESS OF O/P WORD
=88L BCT 4 ZIN1 [IF COUNT NOT EXHAUSTED CONTINUE
=8N= # [ INNER LOOP
=97W LDX 4 AWORK2(2)
=9MG BZE 4 QRVFS [EXIT FROM OUTER LOOP IF ALL PRINTING
==76 LDX 3 ACOMMUNE1(2) [COMPLETE
==LQ SBX 5 AWORK3(2) [OTHERWISE RESET X4 TO TOTAL COUNT OF
=?6B # [ PRINTWORDS,SET X5 TO O/P ADDRESS
=?L2 BRN ZOUT [ AND DO ANOTHER GETWORD.
=#5L QRVFS TBS RESVIOL,PFLAG(2),0
=#K= BZE 0 ZFUNI
=*4W [ NEXT PARAMETER
=*JG BRN PERR4 [ OTHERWISE ISSUE ERROR MESSAGE FIRST
=B46 #
=BHQ # THE LAST PART OF THIS SEGMENT CLEARS UP AFTER BREAK-IN OR AT END OF
=C3B # COMMAND.
=CH2 #
=D2L PR1 TBS PPRES,PFLAG(2),0
=DG= BNZ 0 TERM [J IF PARAMETER PRESENT BIT SET
=D^W LDX 4 PERM6(1) [ISSUE ERROR MESSAGE
=FFG CALL 7 SRERR
=F^6 TERM
=GDQ TIFO LDN 7 0 [SET X7 FOR NORMAL TERMINATION
=GYB TPR1 TBS POPEN,PFLAG(2),0
=HD2 BZE 0 YNF [J IF NO USER FILE
=HXL #SKI AMULTUSER
=JC= NOST TESTMULT STCL
=JWW #SKI AMULTUSER<1$1
=KBG NOST TESTREAM STCL [J IF MULTIFILE
=KW6 MFREE FILE,FABSNB
=L*Q CLOSE
=LTB BRN YNF
=M*2 STCL CLOSE
=MSL #SKI AMULTUSER
=N#= STC CLOSEMULT [CLOSE SDF
=NRW #SKI AMULTUSER<1$1
=P?G STC CLOSESTREAM [CLOSE SDF
=PR6 YNF TESTGETW NOGWD
=Q=Q WORDFIN [CLEAR UP IF GETWORD
=QQB NOGWD BZE 7 ULTND [J IF NOT BREAKIN
=R=2 ABANDCOM [RETURN TO COMMAND PROCESSOR
=RPL ULTND ENDCOM [ " " " " "
=S9= XTOF LDN 7 0 [FILE OPEN & NO BREAKIN
=SNW BRN NOST
=T8G XABAN LDN 7 1 [FILE OPEN & BREAKIN
=TN6 BRN NOST
=W7Q NIKAERB
=WMB LDN 7 1 [SDF OPEN & BREAKIN
=X72 BRN STC
=XLL #
=Y6= ZBRKN LDN 7 1 [SET X7 FOR BREAK-IN
=YKW BRN TPR1
=^5G #
=^K6 # ERROR CASES WHICH END COMMAND
?24Q #
?2JB PERR7 LDX 1 FX1
?342 LDX 4 PERM7(1)
?3HL CALL 7 SRERR
?43= BRN ULTND
?4GW PERR8
?52G ... TBS STARTPRINT,PFLAG(2),0
?5G6 BZE 0 PR1 [J IF REGION FOUND
?5^Q CALL 7 PPASS
?6FB LDX 4 PERM8(1)
?6^2 CALL 7 SRERR [PARAMETER FORMAT ERROR
?7DL BRN TIFO
?7Y= PERR9
?8CW SBX 5 AWORK3(2)
?8XG SBN 5 1
?9C6 OUTNUM 5,0
?9WQ MONOUT JFILEVIOL
?=BB BRN XTOF
?=W2 PERR10
??*L LDX 4 PERM9(1)
??T= CALL 7 SRERR
?##W BRN XTOF
?#SG #
?*#6 # SUBROUTINES
?*RQ #
?B?B # THE FOLLOWING TWO SUBROUTINES SET UP THE BUFFER READY FOR OUTPUT AND
?BR2 # CALL THE S/R XMSOUT TO OUTPUT TO THE APPROPRIATE FILE
?C=L # PRINTOLD ONLY SETS THE ADDRESS,AS THE REMAINDER OF THE BUFFER WILL
?CQ= # HAVE BEEN SET UP BY THE PREVIOUS LINE OF OUTPUT
?D9W #
?DPG PRINTOLD
?F96 LDN 6 0
?FNQ BRN START
?G8B #
?GN2 PRINT [CONVERTS A GIVEN WORD TO VARIOUS
?H7L # [CHARACTER FORMS AND INSERTS THEM
?HM= [IN THE MONITORING FILE
?J6W LDN 6 1
?JLG START MHUNTW 3,ADATA,CSTORE [FIND THE DATA BLOCK
?K66 LDX 1 FX1
?KKQ LDX 2 FX2
?L5B STO 4 PACCDUMP(3) [REMEMBER COUNT
?LK2 STO 5 PACCDUMP+1(3) [REMEMBER GEORGE ADDR OF PRINTWORD
?M4L SBX 7 FX1
?MJ= STO 7 PACCDUMP+2(3) [REMEMBER RELATIVISED CALL ADDRESS
?N3W LDX 0 ACES [SPACE WORD
?NHG STO 0 PADDR(3)
?P36 STO 0 PADDR+1(3) [SPACE FILL ADDR AREA OF BUFFER
?PGQ BZE 6 ZINAD
?Q2B PFRIG SMO 5
?QG2 LDX 6 0 [OTHERWISE X6:=PRINTWORD
?Q^L LDN 4 PADDR(3)
?RF= LDN 5 PADDR+1(3)
?RYW MOVE 4 14 [SPACE FILL THE BLOCK
?SDG STO 6 PCHAR(3) [STORE WORD IN CHARACTER FORM
?SY6 LDX 1 6 [OCTAL FORM IN A1+7,A1+8
?TCQ LDN 7 8
?TXB PR2 LDN 0 0
?WC2 SLL 01 3
?WWL DCH 0 POCTAL+1(3)
?XB= BCHX 3 £
?XTW BCT 7 PR2
?Y*G LDN 0 #23 [IE #
?YT6 SBN 3 2 [RESET X3 TO START OF BLOCK
?^#Q SMO 3
?^SB DCH 0 POCTAL [ # TO CHAR POSN 3 OF POCTAL
#2#2 #
#2RL # [INSTRUCTION FORM TO A1+11 - A1+14
#3?= LDCH 4 PFLAG(2) [MODE OF MEMBER 0
#3QW LDN 7 PINST
#4=G INPRINTX 6,7,4,ADATA,CSTORE
#4Q6 MHUNTW 3,ADATA,CSTORE
#59Q #
#5PB [SIGNED DECIMAL FORM TO A1+5 - A1+6
#692 LDN 0 6
#6NL LDN 5 #33 [IE +
#78= BPZ 6 Q5 [IF PRINTWORD POSITIVE,CONVERT IT
#7MW LDN 5 #35 [IE -
#87G NGX 6 6 [OR IF NEGATIVE,BUT NOT #40000000
#8M6 BPZ 6 Q5 [ NEGATE AND CONVERT
#96Q LDX 6 MAGIC(1) [IF #40000000,NEGATION SHOULD HAVE
#9LB LDN 7 0 [ GIVEN #37777777+1,WHICH,WHEN MULT-
#=62 BRN Q99 [ IPLIED BY MAGIC LEAVES X6,X7 SET UP
#=KL # [ AS SPECIFIED
#?5= Q5 MPY 6 MAGIC(1)
#?JW Q99 MODE 1 [SUPPRESS NON-SIGNIFICANT ZEROS
##4G LDX 2 3 [X2 WILL BE LEFT POINTING TO THE
##J6 BCHX 3 £ [ POSITION OF THE ARITHMETIC SIGN
#*3Q Q6 CBD 6 4
#*HB TXU 4 SPACE(1) [IF CBD PRODUCES A SPACE,
#B32 BCS Q8
#BGL LDX 2 3 [ UPDATE X2
#C2= Q8 DCH 4 PSDEC(3)
#CFW BCHX 3 £
#C^G BCT 0 Q6
#DF6 MODE 0 [LAST ZERO UNSUPRESSED
#DYQ CBD 6 PSDEC(3)
#FDB DCH 5 PSDEC(2)
#FY2 SBX 3 X7CHARS(1) [X3 POINTS TO DATA BLOCK AGAIN
#GCL LDX 2 FX2
#GX= #
#HBW # [ AND INSERTED IN A1 TO A1+1
#HWG ZINAD
#JB6 LDX 4 PACCDUMP+1(3) [GEORGE [DDRESS OF PRINTWORD
#JTQ SBX 4 AWORK3(2) [-CONVERTED TO O/P ADDRESS
#K*B MPY 4 MAGIC(1)
#KT2 LDN 0 6
#L#L BCHX 3 £ [STEP FIRST CHARACTER POSITION
#LS= MODE 1 [ZERO SUPPRESSION
#M?W Q9 CBD 4 PADDR(3)
#MRG BCHX 3 £
#N?6 BCT 0 Q9
#NQQ MODE 0 [-EXCEPT LAST CHARACTER
#P=B CBD 4 PADDR(3)
#PQ2 SBN 3 1 [X3 POINTS TO DATA BLOCK (+0.3)
#Q9L #
#QP= # [BUFFER NOW SET UP
#R8W LDX 4 PACCDUMP(3)
#RNG LDX 5 PACCDUMP+1(3)
#S86 LDX 7 PACCDUMP+2(3)
#SMQ LDN 3 17
#T7B CALL 6 XMSOUT
#TM2 #
#W6L ADX 7 FX1 [MAKE CALL ADDRESS ABSOLUTE
#WL= EXIT 7 0
#X5W #
#XKG #
#Y56 #
#YJQ XCDB [CONVERTS CHARACTER STRING TO BINARY,
#^4B LDCT 6 #200 [ HALTING AT END OF STRING OR FIRST
#^J2 LDN 7 0 [ NOW NUMERIC CHARACTER.COUNT (X4)
*23L ZCVT CDB 6 APARA(3) [ AND POINTER (X3) UPDATED FOR EACH
*2H= BCS ZEND [ NUMERIC CHAR FOUND
*32W BCHX 3 £ [ S/L RESULT IN X7.
*3GG BCT 4 ZCVT [IF EITHER CONVERTED NO. WAS DOUBLE
*426 ZEND EXIT 0 0 [ LENGTH OR FIRST CHARACTER NON-
*4FQ [ NUMERIC X6 SET NZ.X6 INITIALISED
*4^B [ T0 #20000000 SO 1ST CDB MAKES X6=0
*5F2 #
*5YL #
*6D= #
*6XW XTEST [TESTS CHARACTER IN X5 AGAINST'THAT
*7CG LDCH 1 APARA(3) [ POINTED TO BY X3,STEPING X3 IF
*7X6 TXU 1 5 [ THESE COINCIDE
*8BQ BCS ZDIF
*8WB BCHX 3 £
*9B2 SBN 4 1
*9TL EXIT 0 1 [EXIT IF MATCH FOUND
*=*= ZDIF EXIT 0 0 [EXIT IF MATCH NOT FOUND
*=SW #
*?#G #
*?S6 #
*#?Q SRERR [JUST THE MACRO ERRORX FOR THE OUTPUT
*#RB SBX 7 FX1 [ OF MONITORING FILE MESSAGES
**?2 ERRORX 4
**QL ADX 7 FX1
*B== EXIT 7 0
*BPW #
*C9G #
*CP6 SPACES
*D8Q LDN 3 2
*DNB #
*F82 # THIS SUBROUTINE OUTPUTS A LINE TO THE MONITORING FILE OR MOVES
*FML # DATA TO A FILE FUWB.ON ENTRY X3 CONTAINS THE NUMBER OF WORDS
*G7= # INVOLVED
*GLW XMSOUT
*H6G SBX 6 FX1
*HL6 LDX 2 FX2
*J5Q TBS UFILE,PFLAG(2),0
*JKB BZE 0 XMON [J IF OUTPUT TO M/F
*K52 TBS POPEN,PFLAG(2),0
*KJL BZE 0 YMON [NOTHING IF NO FILE OPEN
*L4= LDX 7 3 [REMEMBER X3
*LHW OKAY LDX 3 7
*M3G STEP ,0(3),XABAN
*MH6 TESTREP REFUSED,PERR10
*N2Q TESTREPN FILEFULL,TST [IF FILEFULL- TO NEXT STREAM
*NGB #SKI AMULTUSER
*P22 TESTMULT TNOC
*PFL #SKI AMULTUSER<1$1
*P^= TESTREAM TNOC
*QDW BRN PERR9 [OUTPUT MESSAGE
*QYG TNOC CLOSE [CLOSE ELEMENT
*RD6 CREATEB
*RXQ MHUNT 3,FILE,CREATE
*SCB LDCT 0 #420
*SKL ... STO 0 CEINF1(3)
*SRW ... LDCT 0 #400
*T26 ... ADN 0 #12
*T8B ... STO 0 CETM(3)
*TBL #SKI AMULTUSER
*TW= USEROPEN NIKAERB,APPEND,CREATE,EMPTY,MULTEL
*W*W #SKI AMULTUSER<1$1
*WTG USEROPEN NIKAERB,APPEND,CREATE,EMPTY,STREAMCOMP
*X*6 REPERR OKAY [TEST FOR ERROR
*XSQ LDN 7 0 [SDF OPEN & BREAKIN
*Y#B BRN STC
*YS2 TST SMO 7
*^?L LDN 0 0 [WORD COUNT
*^R= STO 0 0(3)
B2=W LDN 0 #41
B2QG STO 0 1(3)
B3=6 SBN 7 2
B3PQ BZE 7 XSPACES [J IF LINE OF SPACES
B49B ADN 3 2 [UPDATE POINTER
B4P2 MHUNT 2,ADATA,CSTORE [FIND BLOCK
B58L ADN 2 PADDR
B5N= SMO 7
B67W MOVE 2 0 [MOVE A DATA
B6MG XSPACES
B776 LDX 7 PACCDUMP+2-PADDR(2) [RESET X7
B7LQ BRN YMON [AND EXIT
B86B XMON
B8L2 SBN 3 2
B95L BZE 3 PMON [J IF SPACES
B9K= SLL 3 2 [SET CHARACTER COUNT
B=4W PMON
B=JG SMO FX1
B?46 LDX 1 XCAT [CATEGOIY BRTS
B?HQ OUTMON 3,PADDR,1,ADATA,CSTORE
B#3B YMON
B#H2 LDX 2 FX2
B*2L LDX 1 FX1
B*G= ADX 6 FX1
B*^W EXIT 6 0
BBFG #
BB^6 #
BCDQ #
BCYB #SKI G4
BDD2 (
BDXL #
BFC= # G4 SUBROUTINES
BFWW # ==============
BGBG #
BGW6 # THIS SUBROUTINE IS OBEYED FOLLOWING A NOTUSED REPLY FROM GETWORD
BH*Q # IF THIS IS THE 1ST NOTUSED REPLY IT WILL:-
BHTB # 1)OUTPUT THE LAST LOCATION ACCESSED IF THIS WAS THE LAST IN A
BJ*2 # SERIES OF IDENTICAL LOCATIONS
BJSL # 2)OUTPUT A LINE OF SPACES
BK#= # 3)SET UP A PARAMETER BLOCK AND OUTPUT THE 1ST LOCATION ADDRESS
BKRW # AS A PARAMETER
BL?G #
BLR6 OUTLINE
BM=Q SBX 7 FX1
BMQB TBS NU1,PFLAG(2),0
BN=2 BNZ 0 PTNOT1 [J IF NOT 1ST NOTUSED REPLY
BNPL SETBIT NU1,PFLAG(2)
BP9= LDX 0 AWORK4(2)
BPNW SBN 0 2
BQ8G STO 7 AWORK4(2) [REMEMBER X7
BQN6 BNG 0 NOTZE [J IF NOT MORE THAN 1
BR7Q SBN 5 1
BRMB STOZ AWORK3(2) [BIG FIDDLE
BS72 CALL 7 PRINTOLD
BSLL ADN 5 1
BT6= NOTZE CALL 6 SPACES [OUTPUT A LINE OF SPACES
BTKW OUTBLOCN 8 [OUTPUT PARAMETER BLOCK
BW5G CALL 7 XOUTPAR [OUTPUT 1ST LOCATION
BWK6 LDX 7 AWORK4(2)
BX4Q STOZ AWORK4(2)
BXJB PTNOT1
BY42 ADX 7 FX1
BYHL EXIT 7 0
B^3= #
B^GW #
C22G # OUTPUTS THE CONTENTS OF X5 AS A PARAMETER
C2G6 #
C2^Q XOUTPAR
C3FB SBX 7 FX1
C3^2 OUTNUM 5,0
C4DL ADX 7 FX1
C4Y= EXIT 7 0
C5CW #
C5XG #
C6C6 # OUTPUTS THE NOTUSED MESSAGE TO THE APPROPRIATE FILE .CALLS XMSOUT IF
C6WQ # THIS IS AN USER SPECIFIED FILE
C7BB #
C7W2 XOUTMESS
C8*L SBX 7 1
C8T= TBS UFILE,PFLAG(2),0
C9#W BNZ 0 XFILE [J IF OUTPUT TO FILE
C9SG MONOUT JNOTUSED
C=#6 BRN XNOFILE
C=RQ XFILE
C??B ASSMESS XJNOTUSED(1)
C?R2 STO 7 AWORK4(2)
C#=L MHUNT 1,GMON,AOUT
C#Q= LDX 3 A1(1)
C*9W ADN 1 A1+2
C*PG MHUNT 2,ADATA,CSTORE
CB96 ADN 2 PADDR
CBNQ ADN 3 3
CBYJ ... ANDN 3 #7777
CC8B SRL 3 2 [CHARS-WDS
CCD8 ... ADN 3 2
CCN2 MOVE 1 0(3) [MOVE TO OUTPUT BUFFER
CD7L CALL 6 XMSOUT [AND OUTPUT MESSAGE
CDM= LDX 7 AWORK4(2)
CF6W STOZ AWORK4(2)
CFLG XNOFILE
CG66 ADX 7 FX1
CGKQ EXIT 7 0
CH5B #
CHK2 #
CJ4L #
CJJ= )
CK3W MENDAREA 30,K100PRINT
CKHG #
CL36 #
CLGQ #END
^^^^ ...65531551001700000000