{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: ALASB867)}}
====== ALASB867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ACROSSVAR|ACROSSVAR]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:ALTLENG|ALTLENG]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXU|BXU]], [[george:macro:CATMASK|CATMASK]], [[george:macro:CLOSE|CLOSE]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERRX|COMERRX]], [[george:macro:CPHOOK|CPHOOK]], [[george:macro:CUBSCHEC|CUBSCHEC]], [[george:macro:DOWN|DOWN]], [[george:macro:ENDREC|ENDREC]], [[george:macro:FILECOUNT|FILECOUNT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GETCLB|GETCLB]], [[george:macro:GETCPB|GETCPB]], [[george:macro:HLSINFRT|HLSINFRT]], [[george:macro:HUNTW|HUNTW]], [[george:macro:MASK|MASK]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NAME|NAME]], [[george:macro:OPEN|OPEN]], [[george:macro:OUTEXES|OUTEXES]], [[george:macro:OUTPAR|OUTPAR]], [[george:macro:RESTART|RESTART]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TRACE|TRACE]], [[george:macro:V|V]], [[george:macro:VFREEW|VFREEW]], [[george:macro:XYZ|XYZ]]
228Y ... SEG ALASB,,CENT(COMMAND PROCESSOR),,G277,G400
22CW ...[
22LS ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
22TQ ...[ THIS EXCLUDES CODE UNDER #SKI G277
234N ...[
23?L ...#OPT G277 = 0
23GJ ...#SKI G277&1
23PG ...# WITH UGUG EDIT M277 (ONLY MONOUT COMMANDS IF NECESSARY)
23RS ...#UNS G400
23W6 ...# THIS CHAPTER IS MODIFIED FOR G3PLUS-IH MK2
23YG [ THE ENTRY POINTS
24D6 [ THESE ENTRY POINTS MUST BE KEPT FIXED WITHIN THE SEGMENT
24XQ SEGENTRY K1ALASB,QENTRY1 [ FROM ALAS
25CB SEGENTRY K2ALASB,QENTRY2 [ FROM VERBCLAS, MACRALAS
25X2 SEGENTRY K3ALASB,QENTRY3 [ FROM ALAS (ERROR CASE)
26BL SEGENTRY K4ALASB,QENTRY4 [ FROM ALAS (ERROR CASE)
26W= SEGENTRY K5ALASB,QENTRY5 [ FROM OBEY
27*W SEGENTRY K90ALASB,QENTRY90 [ FROM FULSTART
27H4 #SKI JWPHASE4
27N= SEGENTRY K21ALASB,QENTRY21
27TG [
28*6 [
28SQ [ THIS SEGMENT IS ENTERED FROM SEGMENT ALAS.IT EXTRACTS THE
29#B [ VERB FROM THE CLB AND HANDS IT TO THE SEGMENTS VERBCLAS AND
29S2 [ MACRALAS FOR CLASSIFICATION.IT THEN ANALYSES AND STORES
2=?L [ EACH PARAMETER OF THE CURRENT COMMAND IN THE CPB/CALAS BLOCK
2=R= [ THE CURRENT COMMAND IS THEN ENTERED
2=YD ...#SKI G277&1
2?5L ...UA69Z CATMASK CM
2?=W VINC +INCVERB
2?QG VTL +INVERB
2#=6 VJONG +JONG
2#PQ VMDF +HLMDF
2*9B VERB 4HVERB
2*P2 VSTOP +HSTOP
2B8L VJMAXPAR +JMAXPAR
2BN= MXCHMESS +JMAXCHARS
2C7W MASK #17777777
2D76 PARA 4HPARA
2DLQ MARA 4HM(00
2F6B SPACE #20
2FL2 VERBLEN +12
2G5L TSTART #30303030
2GK= TSTOP #31313131
2H4W PA #41
2H#N PM #55
2HJG PZ #73
2J46 THESISL #30
2JHQ THESISR #31
2K3B QUOTES #22
2KH2 SEPARATOR #34
2L2L THASH #23
2LG= TEN +10
2L^W ONE +1
2MFG TWO +2
2M^6 PARF
2NDQ #HAL APARAFIR,1
2NYB [
2P9Q PCOM [THIS COMMAND CAN HAVE A LONG FIRST
2PH6 4HIF [ PARAMETER
2PSG PCOMA [THESE COMMANDS CAN HAVE ANY KIND OF
2Q5W 4HWE [ PARAMETER LONG
2QC= 4HRO
2QRB PCOMB [THESE COMMANDS CAN HAVE A 'PARAM ('
2R7G 4HEN [ PARAMETER LONG
2RHN 4HRM
2RNW 4HLE
2RW6 4HOB
2S*Q 4HJB
2STB 4HRJ
2T58 4HMR
2T*2 PCOMC
2TSL [
2W#= PUNT MHUNTW 2,CPB,CALAS [ THE FIND S/R FOR ALTLENG
2WRW EXIT 1 0
2X?G [ ROUTINE FOR STORING CHARACTERS IN THE PARAMETER BLOCK
2XR6 [ ON ENTRY, EITHER X5=1 AND X6 CONTAINS NEXT CHAR TO BE STORED IN
2Y=Q [ THE CPB/CALAS BLOCK, OR X5=0 IN WHICH CASE THE END OF THE PARAM
2YQB [ HAS BEEN REACHED.
2^=2 STOREPB
2^PL LDX 4 APTNECHA(2) [LOAD POS. OF NEXT CHAR IN BLOCK
329= SLC 4 2
32NW ADX 4 5 [ADD NO OF CHARS TO BE TRANSFERRED
338G ADN 4 3 [ROUND UP
33N6 SRL 4 2
347Q SBN 4 A1 [SUBTRACT RED TAPE
34MB [ X4 NOW CONTAINS THE LOGICAL LENGTH OF THE BLOCK WHEN THE PRESENT
3572 [ CHARACTERS HAVE BEEN STORED
35LL BNZ 5 P8 [J IF WE ARE NOT TERMINATING A PARAM
366= ADN 4 1 [ADD 1 TO REQUIRED AMOUNT OF CORE
36KW P8 LDX 3 ALOGLEN(2) [DO WE HAVE ENOUGH CORE
375G BXGE 3 4,POT [ JUMP IF YES
37K6 ADN 3 AVELINE [ADD AVELINE TO AVAILABLE CORE
384Q LDX 7 2 [POINTER TO EXTEND BLOCK IN X7.
38JB SBX 0 FX1
3942 SMO FX2
39HL STO 0 EXT+1
3=3= ALTLENG 7,3,PUNT [INCREASE BLOCK SIZE
3=GW MHUNTW 2,CPB,CALAS [FIND PB
3?2G SMO FX2
3?G6 LDX 0 EXT+1
3?^Q ADX 0 FX1
3#FB POT BZE 5 P9 [BRANCH IF WE HAVE TO TERMINATE PARAM
3#^2 LDX 3 APTNECHA(2) [LOAD PTR TO NEXT CHAR
3*DL SMO 2 [ STORE CHAR IN X6 IN THE CPB/CALAS
3*Y= DCH 6 0(3) [ BLOCK AND UPDATE THE POINTER
3BCW BCHX 3 £ [ APTNECHA
3BXG STO 3 APTNECHA(2)
3CC6 SMO APTBEPAR(2)
3CWQ LDX 4 0(2)
3DBB ANDN 4 #7777
3DW2 SBN 4 511 [ IS PARAMETER 'LONG' I.E. AT LEAST
3F*L BNG 4 POKAY [ 512 CHARACTERS LONG
3FT= SMO FX2 [ IS A 'LONG' PARAMETER KNOWN TO BE
3G#W LDX 3 AWORK2 [ ACCEPTABLE IN THIS CASE?
3GSG BZE 3 POKAY [ JUMP IF YES
3H4# BXE 3 PCOM(1),PSET [ WITH IF,LONG 1ST PARAM IS OK
3H#6 LDX 4 APARANUM(2) [ IS THIS THE FIRST PARAMETER? J IF
3HRQ BZE 4 PERR [ YES. FIRST PARAMS CANNOT BE LONG
3J?B LDN 4 PCOMB-PCOMA [ IS THIS A COMMAND WHICH CAN HAVE
3JR2 PLOP1 SMO 4 [ ANY KIND OF PARAMETER LONG?
3K=L BXE 3 PCOMA-1(1),PSET [ IF SO, JUMP TO SET 'ACCEPTABLE'
3KQ= BCT 4 PLOP1
3L9W LDN 4 PCOMC-PCOMB [ IS THIS A COMMAND WHICH CAN HAVE
3LPG PLOP2 SMO 4 [ A 'PARAM(' PARAMETER LONG?
3M96 BXE 3 PCOMB-1(1),PTES [ IF SO, JUMP TO TEST IF THIS PARAM
3MNQ BCT 4 PLOP2 [ IS A 'PARAM(' PARAMETER
3N8B PERR STOZ APTNECHA(2)
3NN2 LDX 2 FPTR(2)
3P7L LDX 7 VJONG(1)
3PM= BRN PCLO
3Q6W PTES
3QLG SMO APTBEPAR(2) [ DOES PARAM BEGIN 'PARAM('?
3R66 LDX 4 1(2) [ LOAD FIRST WORD OF THE PARAMETER
3RKQ BXU 4 PARA(1),PERR [ IS IT 'PARA'? IF NO, JUMP
3RWC LDX 3 APTBEPAR(2)
3S74 ADN 3 2(2) [POINT TO NEXT CHARACTER AFTER 'PARA'
3SCP LDCH 4 0(3) [LOAD CHARACTER
3SNB BXU 4 PM(1),PERR [J IF NOT 'M'
3S^3 PSPC BCHX 3 £
3T9N LDCH 4 0(3) [LOAD NEXT CHARACTER
3TG* BXE 4 SPACE(1),PSPC [J IF SPACE
3TR2 BXU 4 THESISL(1),PERR [J IF NOT '('
3W3W PSET SMO FX2 [ SET THE 'THIS LONG PARAMETER IS
3WHG STOZ AWORK2 [ ACCEPTABLE' MARKER
3X36 POKAY
3XGQ SMO APTBEPAR(2)
3Y2B ADS 5 0(2) [ADD NO OF CHARACTERS TO BE TRANSFERE
3YG2 EXIT 0 0
3Y^L [ THIS SECTION TERMINATES A PARAMETER AND UPDATES THE POINTER TO
3^F= [ THE NEXT AVAILABLE CHARACTER AND TO THE START OF THE LATEST
3^YW [ PARAMETER
42DG P9 ADN 4 A1-1 [UPDATE X4 TO POINT TO NXT CLEAR WD
42Y6 SMO 4
43CQ STO 5 0(2) [STORE ZERO
43XB ADN 4 1 [SET PTR TO START OF NEXT PARAM
44C2 STO 4 APTNECHA(2) [STORE PTR TO NEXT AVAILABLE CHAR
44WL LDN 4 1
45B= ADS 4 APARANUM(2)
45TW LDX 4 APARANUM(2) [GET COUNT OF PARAMETERS SO FAR
46*G ERN 4 #31
46T6 BZE 4 PMAX [J IF 25 PARAMETERS STORED
47#Q SMO FX2
47SB LDX 3 AWORK1
47XG BZE 3 STO1
482L SLL 3 12
485Q ORN 3 #2020
488W STO1
48#2 SMO FX2
48RL STO 3 AWORK2 [ RESET THE 'ACCEPTABLE' MARKER
49?= EXIT 0 0
49QW [
4==G [ ERROR EXIT
4=Q6 PMAX STOZ APTNECHA(2)
4?9Q LDX 2 FPTR(2)
4?PB LDX 7 VJMAXPAR(1)
4?WJ PCLO
4#3Q MHUNTW 3,CPB,CALAS
4#8Y NGN 0 1
4#B6 STO 0 APARAFIR(3)
4#H# LDX 3 FX2
4#NL LDX 6 AWORK1(3)
4*8= BNZ 6 VORTEX [ WAS THE COMMAND A MACRO?
4*MW CLOSE [ IF YES, CLOSE THE MACRO FILE
4B7G BRN VORTEX
4BM6 [
4C6Q #SKI APL
4CLB (
4D62 PL 4HPL
4DKL XPL 12HPRINTLAST
4F5= REPLY VFREEW ADATA,CREPLY
4FJW MHUNTW 3,GMON,AOUT
4G4G NAME 3,ADATA,CREPLY
4GJ6 EXIT 4 0
4H3Q )
4HHB [
4J32 QENTRY1
4JGL LDN 7 0
4JJJ ...#SKI G277&1
4JLG ...(
4JND ... LDX 0 AMFMSK(2)
4JQB ... ORX 0 AMXMSK(2)
4JS# ... ANDX 0 UA69Z(1)
4JW= ... BZE 0 Q90 [ CM NOT TRACED OR REPORTED
4JY8 ...)
4K2= QENTRY3
4KFW VERTMAC
4K^G MHUNTW 2,CLB
4LF6 VERT
4LYQ OUTEXES ANUMCHA(2),CLBFIR,CLB
4MDB QENTRY4
4MY2 OUTPAR TIMENOW [ O/P TIME
4NCL MONOUT ACOMJT
4NX= BNZ 7 VORTEX
4P4D #SKI JWPHASE4
4P9L BRN Q90
4PBW QENTRY90 [FOR RETURN FROM FULSTART IF JOB...
4PWG # [...WAS UNSAVED UNDER DIFFERENT GEORGE
4P^5 #SKI JWPHASE4
4Q3N (
4Q6? HLSINFRT Q90,FSTART
4Q8W Q90
4QB6 STOZ EXT(2)
4QTQ STOZ AWORK1(2)
4R*B LDX 4 ACES [LOAD SPACES
4RT2 STO 4 AWORK2(2)
4S#L STO 4 AWORK3(2)
4SS= STO 4 AWORK4(2)
4T?W LDN 4 CLBFIR
4TRG MHUNTW 2,CLB [FIND LINE BUFFER
4W?6 LDX 5 ANUMCHA(2) [LOAD NO. OF CHARS TO ANALYSE
4WQQ P16 LDX 3 2 [LOAD X3 WITH POINTER TO LB
4X=B ADX 3 4 [ADD POINTER WITHIN BLOCK
4XQ2 LDCH 6 0(3) [LOAD NEXT CHAR
4Y9L BCHX 4 £ [UPDATE POINTER
4YP= TXU 6 SPACE(1)
4^8W BCS R1 [J IF NOT SPACE
4^NG BCT 5 P16 [J IF LINE INCOMPLETE
5286 BRN RESTART
52MQ R1 TXU 6 THASH(1)
537B BCC RESTART [J IF #
53M2 R2 TXL 6 TEN(1)
546L BCC R3 [J IF NOT A NUMBER
54L= LDX 3 BPTR(2) [PTR TO /CALAS
555W LDX 6 CPBFSD(3)
55KG BPZ 6 R5 [J IF SOURCE OF COM. IS A MACRO
5656 LDX 7 VMDF(1)
56JQ BRN VORTEX
574B R6 LDX 3 2
57J2 ADX 3 4
583L BCHX 4 £
58H= LDCH 6 0(3) [LOAD NEXT CHAR
592W TXU 6 SPACE(1)
59GG BCC R7 [J IF SPACE
5=26 R5 BCT 5 R6
5=FQ BRN RESTART
5=^B R7 BCT 5 R16
5?F2 RESTART
5?YL LDN 7 1
5#D= MHUNTW 2,CLB
5#XW STOZ CLBPTNECHA(2)
5*CG BRN VORTEX
5*X6 R16 LDX 3 2
5BBQ ADX 3 4
5BWB LDCH 6 0(3)
5CB2 BCHX 4 £
5CTL R3 LDX 3 FX2
5D*= LDX 7 AWORK1(3)
5DSW TXU 6 SPACE(1)
5F#G BCC P13 [J IF SPACE
5FS6 BZE 7 P14 [J IF FIRST VERB CHAR
5G?Q TXL 7 VERBLEN(1)
5GRB BCC VTOLONG [J IF VERB TOO LONG
5H?2 P18 LDN 0 1
5HQL ADS 0 AWORK1(3) [UPDATE COUNT OF VERB CHARS
5J== SRC 7 2
5JPW ADX 3 7
5K9G DCH 6 AWORK2(3) [DEPOSIT CHAR IN AWORK AREA
5KF# LDX 3 FX2
5KP6 LDX 7 AWORK1(3) [GET COUNT OF VERB CHARS
5L8Q P19 BCT 5 R16
5LNB BZE 7 RESTART
5M82 ADN 5 1
5MML P15 STO 5 APARANUM(2) [STORE NO OF REMAINING CHARS
5N7= SMO FX2
5NLW STO 4 EXT+2
5P6G #SKI APL
5PL6 (
5Q5Q LDX 3 FX2
5QKB LDX 4 AWORK2(3)
5R52 TXU 4 PL(1)
5RJL BCC XFRE
5S4= LDX 5 AWORK3(3)
5SHW LDX 6 AWORK4(3)
5T3G TXU 4 XPL(1)
5TH6 TXU 5 XPL+1(1)
5W2Q TXU 6 XPL+2(1)
5WGB BCC XFRE
5X22 [ IF NOT PRINTLAST COMMAND SET UP ADATA/CREPLY BLOCK
5XFL CALL 4 REPLY
5X^= BRN XCAON
5YDW XFRE MFREEW GMON,AOUT
5YYG XCAON
5^D6 )
5^XQ NGN 0 2
62CB SMO FX2
62X2 ANDS 0 EXT+9 [UNSET B23 - ANALYSIS FINISHED
63BL LDX 2 BPTR(2)
63W= LDX 4 CPBFSD(2)
648M LDX 2 FX2
64H4 BPZ 4 V [J IF SOURCE OF COMMAND IS MACRO
64TG SLL 4 1
65*6 BNG 4 OPEN [J IF WJDF NAME
65SQ SLL 4 1
66#B BPZ 4 V
67?L LDCT 4 #040
67R= ANDX 4 EXT+3(2) [ISOLATE B3
685M BZE 4 OPEN [J IF RUNJOB FILE OPEN
68D4 #SKI JWPHASE4
68K= STOZ EXT+3(2)
68QG ACROSS MACRALAS,1
69=6 [ ENTRY TO VERBCLAS TO CLASSIFY THE VERB
69PQ V
69WY #UNS CUBSCHEC
6=46 DOWN CUBSCHEC,1 [DIAGNOSTIC TO CHECK ONLINE BS COUNT
6=57 ...#UNS G400
6=68 ...(
6=79 ... HUNTW 2,IUSER,G400BLK [LOOK FOR EXIT OB BLK
6=8= ... BNG 2 XDSK1 [J NOT PRESENT
6=9? ... LDX 0 A1(2)
6==# ... SBN 0 1
6=?* ... BNZ 0 XDSK1 [OR NOT EXIT
6=#B ... FREECORE 2
6=*C ...)
6=BJ #SKI JWPHASE4
6=HQ STOZ EXT+3(2)
6=P2 LDCH 4 AWORK2(2) [GET 1ST CHAR
6?8L SBN 4 #56
6?N= BPZ 4 V1 [J IF N -> Z INC
6#7W ACROSS VERBCLAS,1
6#MG V1 ACROSS VCLASTWO,1
6#PD ...#UNS G400
6#RB ...(
6#T# ...XDSK1
6#X= ... SMO FX2
6#^8 ... STOZ EXT+3
6*36 ... ACROSS COMHOOK,1
6*54 ...)
6*76 OPEN
6B6B LDX 4 GSIGN
6BL2 ANDX 4 EXT+3(2) [ISOLATE B0 OF EXT+3 -SET IF CARD F.
6C5L BPZ 4 RJSHIFT [J IF SHIFT FILE
6CK= ORS 4 EXT+9(2) [DENOTES GRAPHIC FILE
6D4W BRN RJX [J IF GRAPHIC FILE
6DJG RJSHIFT
6F46 LDX 4 GSIGN
6FHQ ORS 4 EXT+9(2)
6G3B ERS 4 EXT+9(2) [DENOTES SHIFT FILE
6GH2 RJX
6H2L STOZ AWORK1(2) [SET MARKER TO INDICATE FILENAME
6HG= [ THE ENTRY FROM VERBCLAS AND MACRALAS
6HH? #SKI JWPHASE4
6HJ# (
6HK* LDN 4 0
6HLB BRN Q2STO
6HMC QENTRY21
6HND HLSINFRT QEN21,FSTART
6HPF QEN21
6HQG QENTRY2
6HRH LDX 4 EXT+3(2)
6HSJ STO 4 AWORK1(2)
6HTK LDX 0 EXT+4(2)
6HWL STO 0 AWORK3(2)
6HXM #SKI JWPHASE4<1$1
6HYN (
6H^W QENTRY2
6JFG LDX 4 AWORK1(2) [ X1 HOLDS ZERO FOR MACRO, AND
6JJL BZE 4 Q2STO
6JL8 )
6JMQ SLL 4 12
6JQW ORN 4 #2020
6JW2 Q2STO
6J^6 STO 4 AWORK2(2) [ SHORT FORM OF COMM FOR BI COMMANDS
6KDQ STOZ EXT+3(2) [ZEROISE BRACKET INDICATOR WORD
6KYB MHUNTW 2,CPB,CALAS [FIND PB
6LD2 LDN 4 APARAFIR+1 [SET PARAMETER
6LXL STO 4 APTNECHA(2) [BLOCK WORDS
6MC= STOZ APARAFIR(2) [FOR BEGINNING
6MWW LDN 4 APARAFIR [OF LINE
6NBG STO 4 APTBEPAR(2)
6NW6 STOZ APARANUM(2) [
6P*Q BRN P34
6PTB P13 BZE 7 P19
6Q*2 BRN P15
6QSL P14 TXL 6 PA(1)
6R#= BCS VDELCH
6RRW TXL 6 PZ(1)
6S?G BCS P18
6SR6 VDELCH
6T=Q LDX 3 BPTR(2) [PTR. TO /CALAS
6TQB LDX 7 CPBFSD(3)
6W=2 BNG 7 VERBINC [J IF NOT A MACROS FILE
6WPL SBN 5 4
6X9= BNG 5 VERBINC [J IF NOT ENOUGH CHARS FOR DELIM.
6XNW LDN 7 1
6Y8G ANDX 7 CPBPROGLEV(3) [ISOLATE DELIMITER BIT
6YN6 LDX 4 CLBFIR(2) [GET 1ST 4 CHARS OF LINE
6^7Q BNZ 7 TDELIM [J IF DELIM. BIT SET
6^MB TXU 4 CPBSTART(3)
7272 BCC STARF [J IF STARTER FOUND
72LL TXU 4 CPBSTOP(3)
736= BCS VERBINC [J IF NOT A STOPPER
73KW LDX 7 VSTOP(1) [LOAD ERROR MESSAGE IDENTIFIER
745G LDX 4 ACES
74K6 STO 4 CLBFIR+1(2) [TO TERMINATE STOPPER
754Q BRN VP [TO REPORT THE ERROR
75JB TDELIM
7642 TXU 4 CPBSTOP(3)
76HL BCS VERBINC [J IF NOT STOPPER
773= LDN 7 2
77GW ORS 7 CPBPROGLEV(3)
782G ERS 7 CPBPROGLEV(3) [UNSET 2ND DELIM BIT
78G6 STARF LDN 7 1
78^Q ERS 7 CPBPROGLEV(3) [SET/UNSET DELIM BIT
79FB STOZ CLBPTNECHA(2)
79^2 BRN XYZ
7=DL [ LOADS THE IDENTIFIER CORRESPONDING TO THE 'VERB FORMAT ERROR'
7=Y= [ ERROR MESSAGE
7?CW VERBINC
7?XG LDX 7 VINC(1)
7#C6 BRN VORTEX
7#WQ [ LOADS THE IDENTIFIER CORRESPONDING TO THE 'VERB TOO LONG'
7*BB [ ERROR MESSAGE
7*W2 VTOLONG
7B*L LDX 7 VTL(1)
7BT= BRN VORTEX
7C#W [ THIS SECTION SETS UP A NEW COMMAND PROCESSOR LEVEL WHEN THE
7CSG [ COMMAND JUST ANALYSED WAS A MACRO
7D#6 MAC
7DRQ LDN 4 1
7F?B ADS 4 CPLEV(3) [GO DOWN A COMMAND PROCESSOR LEVEL
7FR2 LDX 4 CPLEV(3) [NEW COMMAND PROCESSOR LEVEL
7G=L GETCLB 3
7GQ= GETCPB 3
7H9W STO 4 CPBCPLEV(3)
7HPG LDX 0 GSIGN
7J96 ANDX 0 EXT+9(2)
7JNQ STO 0 CPBPROGLEV(3)
7JTY ...#UNS G400
7K36 ... CPHOOK 3
7K8B FILECOUNT 6 [NO OF FILES OPEN
7KN2 STO 6 CPBFSD(3)
7L7L LDX 5 AMFMSK(2) [ SET NEW TRACING
7LM= STO 5 CMFMSK(3) [ LEVEL IN CPAT
7LN* #UNS CMXMSK
7LPD (
7LQH STOZ CMXMSK(3)
7LRL SEGENTRY K70ALASB
7LSP BRN XK71 [MENDED TO NULL IF REPORTNEST ON
7LTS LDN 5 #10
7LWX ANDX 5 CONTEXT(2)
7LY2 BZE 5 XK71 [BR IF NOT MOP
7L^5 LDX 5 AMXMSK(2)
7M28 STO 5 CMXMSK(3) [SET REPORTING LEVEL
7M3? XK71
7M4B SEGENTRY K71ALASB
7M5F )
7M6W LDX 5 TSTART(1)
7MLG STO 5 CPBSTART(3) [STORE STARTER
7N66 LDX 5 TSTOP(1)
7NKQ STO 5 CPBSTOP(3) [STORE STOPPER
7P5B LDX 3 FPTR(3)
7PK2 STO 4 CPBCPLEV(3)
7Q4L STO 6 CPBFSD(3)
7QJ= ENDREC
7R3W P60 STO 5 APARANUM(3) [ROUTINE TO EXTRACT
7RHG SMO FX2 [NEXT CHARACTER TO BE
7S36 LDX 4 EXT+2 [ANALYSED FROM THE
7SGQ ADX 3 4 [LINE BUFFER
7T2B LDCH 6 0(3) [
7TG2 BCHX 4 £ [
7T^L SMO FX2
7WF= STO 4 EXT+2
7WYW TXU 6 SPACE(1)
7XDG BCC PRY [J IF SPACE
7XY6 SMO FX2
7YCQ LDX 4 EXT+3 [LOAD BRACKET COUNT
7YXB LDX 5 4 [ISOLATE INDICATOR
7^C2 SRL 5 22
7^WL ANDX 4 MASK(1)
82B= BNZ 4 P21 [J IF UNDER BRACKETS ETC.
82TW LDN 5 0 [INDICATOR = NEW LINE
83*G R70 TXU 6 SEPARATOR(1)
83T6 BCC P23 [J IF COMMA
84#Q TXU 6 THESISL(1)
84SB BCC P25 [J IF PARENTHESIS
85#2 TXU 6 QUOTES(1)
85RL BCC PQUOT [J IF QUOTES
86?= P26 SLL 5 22
86QW ORX 4 5
87=G P27 SMO FX2
87Q6 STO 4 EXT+3 [STORE COUNT
889Q P29 LDX 0 APTNECHA(2) [LD PTR TO NEXT NON SPACE CHAR
88PB BCHX 0 £ [INCREASE BY 1 POSITION
8992 SMO FX2
89NL STO 0 EXT
8=8= PSPIG LDN 5 1
8=MW CALL 0 STOREPB [STORE CHARACTER IN PARAMETER BLOCK
8?7G P34 LDX 3 FPTR(2)
8?M6 LDX 5 APARANUM(3)
8#6Q BCT 5 P60
8#LB SMO FX2
8*62 LDX 0 EXT
8*KL BZE 0 P33
8B5= STO 0 APTNECHA(2) [STORE BACK IN PB
8BJW SBX 0 APTBEPAR(2)
8C4G SLC 0 2
8CJ6 SBN 0 4
8D3Q SMO APTBEPAR(2)
8DHB STO 0 0(2)
8F32 BRN P33
8FGL P23 LDN 5 3 [MARK AS SEPARATOR
8G2= SLL 5 22 [SHIFT TO TOP END OF WORD
8GFW ORX 4 5 [ORX INTO X5
8G^G SMO FX2
8HF6 STO 4 EXT+3 [STORE IN ACTIVITY BLOCK
8HYQ SMO FX2
8JDB LDX 0 EXT
8JY2 BZE 0 XN [J IF MARKER NOT SET
8KCL STO 0 APTNECHA(2)
8KX= SBX 0 APTBEPAR(2)
8LBW SLC 0 2
8LWG SBN 0 4
8MB6 SMO APTBEPAR(2)
8MTQ STO 0 0(2)
8N*B SMO FX2
8NT2 STOZ EXT
8P#L XN LDN 5 0
8PS= CALL 0 STOREPB
8Q?W SMO APTBEPAR(2) [ UPDATE
8QRG LDX 5 0(2) [ APTBEPAR IN /CALAS
8R?6 ADN 5 7 [ TO POINT TO
8RQQ SRL 5 2 [ NEXT PARAMETER
8S=B ADS 5 APTBEPAR(2) [ TYPE/COUNT WORD
8SQ2 BRN P34
8T9L P21 BZE 5 P28 [J IF UNDER PARENTHESIS
8TP= PQ TXU 6 QUOTES(1)
8W8W BCS P29 [J IF NOT QUOTE
8WNG SBN 4 1
8X86 BRN P27
8XMQ P30 SBN 4 1 [SUBTRACT 1 FROM BRACKET COUNT
8Y7B BNZ 4 P26 [BRANCH IF COUNT NOT ZERO
8YM2 BRN P27
8^6L P28 TXU 6 THESISL(1)
8^L= BCC P25 [J IF LHP
925W TXU 6 THESISR(1)
92KG BCC P30 [J IF RHP
9356 BRN P27
93JQ PQUOT LDN 5 2
944B P25 ADN 4 1 [ADD 1 TO BRACKET COUNT
94J2 BRN P26
953L PRY SMO FX2
95H= LDX 0 EXT
962W BNZ 0 PSPIG
96GG BRN P34
9726 [ THIS SECTION ADJUSTS THE LENGTH OF THE
97FQ [ PARAMETER BLOCK BEFORE ENTERING THE COMMAND
97^B P33 LDX 2 FPTR(2)
98F2 LDX 6 CLBPTNECHA(2)
98YL ERS 6 CLBPTNECHA(2) [CLEAR WORD
9C?Q P40 LDX 2 BPTR(2) [LOAD POINTER TO PARAMETER BLOCK
9CRB LDX 4 APTNECHA(2)
9D?2 ERN 4 APARAFIR+1
9DQL BZE 4 P100
9F== LDN 5 0
9FPW CALL 0 STOREPB [TERMINATE PARAMETER
9G9G SMO APTBEPAR(2) [ UPDATE APTBEPAR
9GP6 LDX 5 0(2) [ TO POINT TO
9H8Q ADN 5 7 [ NEXT PARAMETER
9HNB SRL 5 2 [ TYPE/COUNT WORD
9J82 ADS 5 APTBEPAR(2)
9JML P100 STOZ APTNECHA(2)
9K7= NGN 5 1
9KLW LDX 6 APTBEPAR(2)
9L6G SMO 6
9LL6 STO 5 0(2) [MARK LAST PARAMETER IN BLOCK
9M5Q BZE 4 P101 [J IF NO PARAMETERS
9MKB DOWN ANALYSEA,3 [ TO ANALYSE PARAMETERS
9N52 MHUNTW 2,CPB,CALAS
9NJL P101
9P4= LDX 7 PARF(1)
9PHW STO 7 APTBEPAR(2)
9Q3G STO 7 ADNOPARAL(2)
9QH6 SBN 6 A1-1
9QS3 LDN 5 AVELINE+APB+1
9R4Y TXL 6 5
9R*T BCC P41A [BR REQ LEN PARA BLOCK > OR = MIN
9RLQ LDN 6 AVELINE+APB [SET REQ LEN PARA BLOCK TO MIN
9RXM P41A TXL 6 ALOGLEN(2)
9S8J BCC P41 [BR IF REQ LEN = CURRENT LOG LEN
9SFL LDX 3 2
9S^= ALTLEN 3,6 [SHORTEN CPB/CALAS
9TDW P41 MHUNTW 2,CLB [FIND LB
9TYG SMO FX2
9WD6 LDX 6 JOBEVENTS
9WXQ BPZ 6 SAG
9X4Y SLL 6 1
9X=6 BNG 6 SAG [IGNORE IF BREAK-IN IS STOPJOB
9XCB SMO FX2
9XX2 LDX 4 AWORK1
9YBL BNZ 4 P42
9YW= MHUNTW 3,CPB,CALAS
9^*W LDCT 6 #300
9^TG ANDX 6 CPBFSD(3)
=2*6 BNZ 6 SAG
=2SQ CLOSE [CLOSE DOWN MACRO FILE
=3#B P42 COMBRKIN
=3S2 [ ENTRY FROM OBEY COMMAND
=4?L QENTRY5
=4R= SAG LDX 3 FX2
=5=W #SKI K6ALLGEO>99-99
=5QG TRACE AWORK2(3),COMMAND
=6=6 LDX 6 AWORK1(3) [LOAD MACRO OR BUILT IN TYPE
=6PQ BZE 6 MAC [J IF MACRO
=79B ACROSSVAR AWORK3(3) [GO ACROSS TO COMMAND
=7P2 VORTEX
=88L TXU 7 ONE(1)
=8N= BCS VP
=97W XYZ
=9MG #SKI APL
==76 MFREEW GMON,AOUT
==LQ ENDREC
=?6B VP TXU 7 TWO(1)
=?L2 BCC XYZ [J IF LINE OF COMMENT
=#5L MHUNTW 2,CLB
=#K= STOZ CLBPTNECHA(2)
=DG= #SKI APL
=D^W CALL 4 REPLY
=FFG [ THIS COMERR COVERS A MULTITUDE OF SINS: VERB TOO LONG,VERB
=F^6 [ FORMAT ERROR ,PARAMETER IDENTIFIER ERROR ,TOO MANY PARAMETERS
=GDQ [ OR RECORDS IN A COMMAND, PARAMETER SUBSTITUTION AT THE WRONG
=GYB [ LEVEL,PARAMETER TOO LONG.
=HD2 COMERRX 7
=HXL MENDAREA 50,K99ALASB
=JC= #END
^^^^ ...45511370000200000000