{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: ASTONIF867)}}
====== ASTONIF867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BRUSEN|BRUSEN]], [[george:macro:BXU|BXU]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:DOWN|DOWN]], [[george:macro:FC|FC]], [[george:macro:FI|FI]], [[george:macro:FNORM|FNORM]], [[george:macro:FREECORE|FREECORE]], [[george:macro:HUNTACTF|HUNTACTF]], [[george:macro:IF|IF]], [[george:macro:JBS|JBS]], [[george:macro:JMBS|JMBS]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:OPENDIR|OPENDIR]], [[george:macro:PARAFREE|PARAFREE]], [[george:macro:PARASTRING|PARASTRING]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:THEN|THEN]]
22FL SEG ASTONIF,,CENT(COMMAND PROCESSOR),,G275
22^= # FOR UGUG MEND M275 (MISCELLANEOUS NEW IF CONDITIONS)
23DW #
23YG # THIS SEGMENT IS ENTERED FROM IFEXPAN TO DEAL WITH THE
24D6 # NEW CONDITIONS INCLUDED BY THE UNIVERSITY OF ASTON
24XQ #
25CB # XCHARS CONTAINS COUNT OF CHARS REMAINING IN THE
25X2 # LINE BUFFER
26BL #
26W= # ON EXIT : XCHPTR & XCHARS MAY HAVE BEEN UPDATED
27*W # : X7 CONTAINS RESULT - 0 TRUE
27TG # 1 FALSE
28*6 # B0 ERROR
28SQ # B1 ERROR
29#B # B012 BREAKIN
29S2 #
2=?L #
2=R= # ENTRY POINTS
2?=W #
2?QG SEGENTRY K1ASTONIF,XSYS [ SYSTEM ISSUED
2#=6 SEGENTRY K2ASTONIF,XFST [ FULLY STARTED
2#PQ SEGENTRY K3ASTONIF,XTST [ TENTATIVELY STARTED
2*9B ... SEGENTRY K4ASTONIF,XOFL [ OFFLINE
2*P2 SEGENTRY K7ASTONIF,XONL [ ONLINE
2B8L SEGENTRY K8ASTONIF,XPRI [ PRIVILEGE
2BN= #
2C7W # WORKING SPACE IN COMMAND PROCESSOR ACTIVITY BLOCK
2CMG #
2D76 #DEF XLBP=EXT
2DLQ #DEF XCHARS=EXT+1
2F6B #DEF XCHPTR=EXT+2
2FL2 #DEF XSTATE=EXT+3
2G5L #DEF XCOUNT=EXT+4
2GK= #
2H4W #
2HJG # CONSTANTS
2J46 #
2JHQ XBRA #30 [ OPEN BRACKET
2K3B XKET #31 [ CLOSE BRACKET
2KH2 XSP #20
2L2L #
2LG= #
2L^W # XSUBA - SUBROUTINE TO SEARCH FOR A L.H.BRACKET AND
2MFG # THEN READ THE PARAMETERS INSIDE THE BRACKETS,
2M^6 # AND THEN OBTAIN THE FIRST PARAMETER.
2NDQ #
2NYB XSUBA
2PD2 SBX 6 FX1
2PXL HUNTACTF CLB,3,FX2
2QC= STO 3 XLBP(2)
2QWW ADX 3 XCHPTR(2)
2RBG LDX 4 XCHARS(2)
2RW6 XSUBA1
2S*Q LDCH 0 0(3)
2STB BXU 0 XSP(1),XSUBA2
2T*2 BCHX 3 £
2TSL BCT 4 XSUBA1 [ SKIP SPACES
2W#= XSUBA2
2WRW BXU 0 XBRA(1),XERROR [ ERROR IF NOT L.H.BRACKET
2X?G SBX 3 XLBP(2) [ RELATIVISE CHAR. POINTER
2XR6 LDX 0 XSTATE(2) [ PRESERVE EXT+3,4
2Y=Q STO 0 AWORK3(2)
2YQB LDX 0 XCOUNT(2)
2^=2 STO 0 AWORK4(2)
2^PL PARASTRING 3,4,CLB
329= LDX 3 ACOMMUNE1(2)
32NW BZE 3 YERROR [ IF ZERO - FORMAT ERROR
338G STO 3 AWORK2(2) [ NEW RELATIVE CHAR. POINTER
33N6 LDX 4 ACOMMUNE2(2)
347Q BZE 4 YERROR
34MB STO 4 AWORK1(2)
3572 SPARAPASS
35LL MHUNT 3,CPB,CUNI
366= ADX 6 FX1
36KW EXIT 6 0
375G #
37K6 #
384Q # THIS SECTION SETS THE RESULT OF THE CONDITION
38JB # IN X7 & RETURNS TO IFEXPAN
3942 #
39HL XTRUE
3=3= LDN 7 0
3=GW XRET
3?2G ACROSS IFEXPAN,3
3?G6 XFALSE
3?^Q LDN 7 1
3#FB BRN XRET
3#^2 YERROR
3*DL LDX 2 FX2
3*Y= LDX 7 AWORK4(2)
3BCW STO 7 XCOUNT(2)
3BXG XERROR
3CC6 LDCT 7 #400 [ UNREPORTED ILLEGAL INDICATOR
3CWQ BRN XRET
3DBB XERROR1
3DW2 LDCT 7 #600
3F*L BRN XRET
3FT= XBREAK
3G#W LDCT 7 #700 [ BREAK IN INDICATOR
3GSG BRN XRET
3H#6 XRET1
3HRQ LDN 1 AWORK1(2)
3J?B LDN 2 XCHARS(2)
3JR2 MOVE 1 4
3K=L BRN XRET
3KQ= #
3L9W #
3LPG # IF SYS,... SYSTEM ISSUED
3M96 #
3MNQ XSYS
3N8B LDX 0 CONTEXT(2)
3NN2 BNG 0 XTRUE
3P7L BRN XFALSE
3PM= #
3Q6W #
3QLG # IF FST,... FULLY STARTED
3R66 #
3RKQ XFST
3S5B LDX 0 CONTEXT(2)
3SK2 SLL 0 12
3T4L BNG 0 XTRUE
3TJ= BRN XFALSE
3W3W #
3WHG #
3X36 # IF TST,... TENTATIVELY STARTED
3XGQ #
3Y2B XTST
3YG2 LDX 0 CONTEXT(2)
3Y^L SLL 0 13
3^F= BNG 0 XTRUE
3^YW BRN XFALSE
42DG #
42Y6 #
43CQ # IF ONL(... ),... ONLINE
43XB #
44C2 # IF OFL(... ),... OFFLINE
44WL #
45B= # IF THE SPECIFIED FILE IS ONLINE/
45TW # OFFLINE, THEN THE CONDITION IS
46*G # TRUE.
46T6 #
47#Q XOFL NGNC 0 1 [ SET X7 = 1 (FALSE) FOR 'OFFLINE',
47SB XONL LDN 7 0 [ OR X7 = 0 (TRUE) FOR 'ONLINE' TEST
48#2 CALL 6 XSUBA
48RL NAMETOP 3,FILE,FNAME
49?= FNORM 24
49QW MFREE FILE,FNAME
4==G TESTRPN2 OK,YERROR
4=Q6 MHUNT 3,FILE,FABSNB
4?9Q IF BC,2,CXTUSER
4?PB THEN
4#92 JBS YERROR,3,BFABLOCONLY
4#B8 ... LDX 0 A1+1(3)
4#HB ... BZE 0 YERROR
4#NL FI
4*8= IF BC,3,BFABWORK [ W/F IS ONLINE, SO X7 CORRECT
4*MW THEN
4B7G JMBS YERROR,3,BFABTSN,BFABREEL
4BM6 FC 3,FFABTYPE
4C6Q OPENDIR XBREAK,READ,QUERY
4CLB ... TESTRPN2 OK,YERROR
4D62 CLOSETOP
4DKL PARAFREE
4F5= MHUNTW 3,FILE,ENT
4FJW ERX 7 ECOPS(3)
4G4G ANDN 7 1 [ 1 TRUE, 0 FALSE
4GJ6 ERN 7 1 [ 0 TRUE, 1 FALSE, AS REQD
4H3Q FI
4HHB FREECORE 3
4J32 BRN XRET1
4JGL #
4K2= #
4KFW # IF PRI(... ),... PRIVILEGE
4K^G #
4LF6 # IF THE USER HAS THE SPECIFIED
4LYQ # PRIVILEGE THEN THE CONDITION IS
4MDB # TRUE
4MY2 #
4NCL XPRI
4NX= CALL 6 XSUBA
4PBW BRUSEN YERROR,2
4PWG LDX 0 ACES
4QB6 STO 0 ACOMMUNE1(2)
4QTQ STO 0 ACOMMUNE2(2)
4R*B LDN 4 APARA(3)
4RT2 LDN 5 ACOMMUNE1(2)
4S#L LDX 6 ANUM(3)
4SS= SBN 6 1
4T?W TXL 6 EIGHT [ TOO LONG OR ILLEGAL CHAR
4TRG BCC YERROR
4W?6 SMO 6
4WQQ MVCH 4 1
4X=B DOWN CHEKPRIV,10 [ SEE CHEKPRIV MACRO
4XQ2 NGNC 0 1 [ EXIT 0 - FALSE
4Y9L LDN 7 0 [ 0 PRIV O.K., 1 IF NOT
4YP= BRN XRET1
4^8W #
4^NG #
5286 #
52MQ #END
^^^^ ...750534310002