{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: GETFREEB864)}}
====== GETFREEB864 ======
(George Source)
**Macros used:** [[george:macro:AND|AND]], [[george:macro:BXE|BXE]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:DEMANDX|DEMANDX]], [[george:macro:DOWN|DOWN]], [[george:macro:ELSE|ELSE]], [[george:macro:FI|FI]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GEOPACK|GEOPACK]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNTW|HUNTW]], [[george:macro:IF|IF]], [[george:macro:INFORMX|INFORMX]], [[george:macro:LADDP|LADDP]], [[george:macro:LGEOG|LGEOG]], [[george:macro:LONGOFF|LONGOFF]], [[george:macro:LONGSET|LONGSET]], [[george:macro:LTYPE|LTYPE]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:OPEN|OPEN]], [[george:macro:OPENSYS|OPENSYS]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:OUTPER|OUTPER]], [[george:macro:REWIND|REWIND]], [[george:macro:SAWCE|SAWCE]], [[george:macro:SAWCEJ|SAWCEJ]], [[george:macro:SAWCEN|SAWCEN]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETREP|SETREP]], [[george:macro:SETREP2|SETREP2]], [[george:macro:THEN|THEN]], [[george:macro:TRACE|TRACE]], [[george:macro:TRACEVER|TRACEVER]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]], [[george:macro:VFREEW|VFREEW]]
22FL ...#SEG GETFREEB [R.WEYAND
22^= ...#OPT K0GETFREEB=0
23DW ...#LIS K0GETFREEB>K0PERI>K0ALLGEO
23YG ...#
24D6 ... 8HGETFREEB
24XQ ...#
25CB ...# THIS SEGMENT IMPLEMENTS K3GETFREE(SETPROP) ON BEHALF OF GETFREE
25X2 ...#
26BL ...# ENTRY POINTS
26W= ...#
27*W ... SEGENTRY K1GETFREEB,X1GETFREEB
27TG ...#
2D9P ...#UNS FLLP4B
2D## ...(
2DBX ...XACTLFC
2DFG ...#HAL ACTLF+CENTRAL,0
2DJ5 ...)
2F3P ...#UNS G3SIGNET
2FH* ... +JMEEP [MEEP USING %A ON %B
2HJG TABMESS [MESSAGE IDENTIFIER TABLE
2J46 +0 [NO MESSAGE
2JHQ +FREEPROP1 [PLEASE FREE ....
2K3B +ATTPROP2 [PLEASE AU ......
2KH2 +FREEPROP2 [PLEASE FREE ... AND AU ....
2L2L XPROPNAME
2LG= # THIS SUBROUTINE BUILDS UP A LIST OF PROPERTY NAMES IN AN ADATA,
2L^W # CSTORE BLOCK. IT RECEIVES THE PROPERTY NAME IN X7
2MFG # LINK IN X5
2M^6 SBX 5 FX1
2NDQ ... APROPNAM 7,0,XPRNO [CONVERT PR NO TO PR NAME
2NYB ...XPRNO LDN 3 ACOMMUNE1(2) [SET X3 -> PROPERTY NAME
2T*2 LDX 2 3
2TSL ADN 2 3 [X2 PRINTS TO LAST WORD +1
2W#= XHCB
2WRW SLC 2 2
2X?G SBN 2 1 [REVERSE BCHX ON X-2
2XR6 SRC 2 2
2Y=Q LDCH 0 0(2)
2YQB SBN 0 #20
2^=2 BZE 0 XHCB [BR IF SPACE
2^PL SLL 3 2
329= SLC 2 2
32NW SBX 2 3
338G SRL 3 2
33N6 ADN 2 1 [X2=NO OF SIGNIFICANT CHARACTERS
347Q MHUNTW 1,ADATA,CSTORE
34MB LDX 7 1
3572 ADX 1 A1(1) [X1 POINTS TO FIRST FREE CHARACTER
35LL LDX 0 3
366= SMO 2 [MOVE PROPERTY INTO ADATA,CSTORE
36KW MVCH 0 0
375G LDN 0 #26
37K6 DCH 0 0(1) [INSERT '&'
384Q BCHX 1 £
38JB SBX 1 7
3942 SMO 7
39HL STO 1 A1 [STORE ADDRESS OF NEXT FREE CHAR
3=3= REWIND [REWIND :SYSTEM.PROPERTY
3=GW ADX 5 FX1
3?2G BRN (5)
3?G6 #
3?^Q OPEN
3#FB # SUBROUTINE OPENS :SYSTEM.PROPERTY
3#^2 # LINK INX5
3*DL SBX 5 FX1
3*Y= OPENSYS XBRKIN,PROPERTY,READ
3J?B ADX 5 FX1
3JR2 BRN (5)
3K=L #
3KQ= #
4X=B SCLOSETOP
4XQ2 # THIS SUBROUTINE CLOSES :SYSTEM.PROPERTY
4Y9L # LINK IN X7
4YP= SBX 7 FX1
4^8W CLOSETOP [CLOSE :S0STEM.PROPERTY
4^NG ADX 7 FX1
5286 BRN (7)
52MQ #
583L SCHECKATT
58H= # THIS SUBROUTINE BUZZES AROUND THE APIA POINTED AT BY X1, AND
592W # CHECKS THE PROPERTIES ATTRIBUTED AND REQUESTED IN THE APROPNOS
59GG # BLOCK. THE MASTER MARKER IS UPDATED TO REFLECT THE SUITABILITY
5=26 # OF THE DEVICE UNDER INVESTIGATION.
5=FQ # LINK IN X7
5=^B LDN 5 0 [INITIALIASE MARKER FOR THIS DEVICE
5?F2 LDN 4 0 [RELATIVE POINTER DOWN APIA
5?YL XLOOP
5#D= SMO 4
5#XW LDXC 0 APERPROP(1) [LOAD 1ST/NEXT PROPERTY (LOSE B0)
5*CG BZE 0 PROPEND [BR IF NONE/NO MORE
5*X6 BNG 3 NONWANTED [BR IF NO PROPERTIES REQUIRED
5BBQ LDX 6 BPROPCNT(3) [ELSE GET COUNT OF THEM
5BWB R1
5CB2 SMO 6
5CTL TXU 0 BPROPS-1(3) [COMPARE REQUESTS AND ATTRIBUTIONS
5D*= BCC WANTED [BR IF THIS ONE WANTED
5DSW BCT 6 R1 [COUNT DOWN
5F#G NONWANTED
5FS6 # THIS PROPERTY IS NOT WANTED
5G?Q SMO 4
5GRB LDXC 0 APERPROP(1)
5H?2 BCC WILLDO [BR IF PROPERTY INCLUSIVE
5HQL SLL 0 1
5J== BPZ 0 TEMP [BR IF TEMPORARY/EXCLUSIVE
5JPW ORN 5 4 [ELSE SET P/E NOT REQUIRED MARKER
5K9G BRN WILLDO [AND BR TO DO NEXT PROPERTY
5KP6 TEMP
5L8Q ORN 5 32 [SET T/E NOT REQUIRED MARKER
5LNB BRN WILLDO [AND CARRY ON
5M82 WANTED
5MML LDCT 0 256
5N7= SMO 6 [MARK PROPERTY AS BEING ATTRIBUTED
5NLW ORS 0 BPROPS-1(3) [TO THIS DEVICE
5P6G WILLDO
5PL6 ADN 4 1 [STEP POINTER DOWN PROPERTY LIST
5Q5Q LDN 0 ATTMAX+1 [TEST IF REACHED MAXIMUM NUMBER OF
5QKB TXL 4 0 [DEVICE ATTRIBUTIONS PERMITTED
5R52 BCS XLOOP [BR IF NOT
5RJL PROPEND
5S4= BNG 3 NONREQ [BR IF NO PROPERTIES REQUIRED
5SHW LDX 4 BPROPCNT(3) [ELSE GET COUNT OF THEM
5T3G RLOOP
5TH6 SMO 4
5W2Q LDXC 0 BPROPS-1(3) [TEST IF PROPERTY ATTRIBUTED TO
5WGB BCS XATT [DEVICE - BR IF YES
5X22 SLL 0 1
5XFL BPZ 0 XTEMP [BR IF TEMPORARY
5X^= ORN 5 2 [ELSE SET PERM NOT GOT MARKER
5YDW SRL 0 1
5YYG ANDX 0 BITS22LS [STORE MISSING PERMANENT PROPERTY
5^D6 SMO FX2 [IN ACOMMUNE8
5^XQ STO 0 ACOMMUNE8
62CB BRN R2
62X2 XTEMP
63BL ORN 5 32 [SET TEMP NOT GOT MARKER
63W= BRN R2
64*W XATT
64TG SMO 4 [CLEAR B0 OF THIS ENTRY IN
65*6 STO 0 BPROPS-1(3) [APROPNOS BLOCK
65SQ R2
66#B BCT 4 RLOOP [COUNT DOWN AND PROCEED
66S2 NONREQ
67?L BRN (7) [EXIT
67R= #
67RD ...#UNS G3SIGNET
67RL ...(
67RS ...SCHECKMEEP
67S2 ...# THIS SUBROUTINE TESTS IF THE MEEP LP IS REQUIRED AND EXISTS
67S8 ...# ON ENTRY : X3 -> APERI/APROPNOS BLOCK ; EXITS +0 WITH X1 -> MEEP
67SB ...# LP DEVICE LIST AND B0 SET IN AWORK4 IF TRUE ; EXITS +1 IF FALSE
67SJ ...# REPLIES NOTAV IF MEEP LP IS REQUIRED BUT DOESN'T EXIST
67SQ ...# LINK IN X7
67SY ... LDX 0 AWORK4(2) [TEST IF LP REQUIRED
67T6 ... ANDN 0 #77
67T# ... SBN 0 2
67TG ... BNZ 0 SMEEPEX [LP NOT REQUIRED
67TN ... LDCT 6 #400 [FOR 'TWOMEEPS' CHECK
67TW ... LDX 4 BPROPCNT(3) [TEST IF A MEEP PROPERTY IS REQUIRED
67W4 ...SMEEP1
67W= ... SMO 4
67WD ... LDX 0 BPROPS-1(3)
67WL ... SLL 0 9
67WS ... BPZ 0 SMEEP2 [NOT A MEEP PROPERTY NO.(B9 UNSET)
67X2 ... LDX 0 CPROPNO(3) [TEST IF A CONSOLE PROP ALSO REQUIRED
67X8 ... BNZ 0 XMEEP [NOT PERMITTED WITH MEEP PROPERTY
67XB ... BPZ 6 TWOMEEPS [MORE THAN ONE MEEP PROPERTY REQUIRED
67XJ ... LDX 6 ASIGNETPTR
67XQ ... BZE 6 SMEEP2 [MEEP LP DOESN'T EXIST BUT CHECK FOR
67XY ... ['TWOMEEPS'
67Y6 ... STO 6 1 [SET X1 -> MEEP LP DEVICE LIST
67Y# ... LDCT 0 #400 [SET B0 OF AWORK4 TO INDICATE THAT
67YG ... ORS 0 AWORK4(2) [THE MEEP LP IS REQUIRED AND EXISTS
67YN ...SMEEP2
67YW ... BCT 4 SMEEP1 [TEST NEXT PROPERTY NO.
67^4 ... BZE 6 NOTAV [MEEP LP REQUIRED BUT DOESN'T EXIST
67^= ... BPZ 6 (7) [MEEP LP IS REQUIRED&EXISTS: EXIT +0
67^D ...SMEEPEX
67^L ... EXIT 7 1 [MEEP LP IS NOT REQUIRED: EXIT+1
67^S ...#
6822 ...TESTIFMEEP
6828 ...# THIS SUBROUTINE TESTS IF THE DEVICE OWNED BY THE CURRENT ACTIVITY
682B ...# IS THE MEEP(SIGNET) LINE PRINTER : EXITS +0 IF TRUE; EXITS +1 IF
682J ...# FALSE
682Q ...# LINK IN X7
682Y ... SMO FX2
6836 ... LDX 0 CPPTR
683# ... BZE 0 TMEEPEX [REMOTE DEVICE OWNED
683G ... BXE 0 ASIGNETPTR,(7) [MEEP LP OWNED : EXIT +0
683N ...TMEEPEX
683W ... EXIT 7 1
6844 ...#
684= ...SCHECKMDEV1
684D ... HUNTW 3,APERI,APROPNOS [SETS X3 FOR SCHECKMDEV
684L ... BNG 3 (5) [MUST BE REMOTE
684S ...SCHECKMDEV
6852 ...# THIS SUBROUTINE CHECKS THAT IF THE MEEP LP IS OWNED,THE REQUEST
6858 ...# NEEDS IT AND THAT IF THE MEEP LP IS NOT OWNED,THE REQUEST DOESN'T
685B ...# NEED IT
685J ...# ON ENTRY : X3 -> APERI/APROPNOS BLOCK ; IF CHECKS OK THE S/R EXITS
685Q ...# ELSE THE REPLY PERMEXCL IS GIVEN
685Y ...# LINK IN X5
6866 ... LTYPE ,0 [SET DEV TYPE IN AWK4 FOR SCHECKMEEP
686# ... STO 0 AWORK4(2)
686G ... LDN 1 0 [NOTE X1 WILL ONLY BE CHANGED IF MEEP
686N ... [LP IS REQUIRED AND EXISTS
686W ... CALL 7 SCHECKMEEP
6874 ... BRN SCMO [MEEP LP IS REQUIRED AND EXISTS
687= ... CALL 7 TESTIFMEEP [MEEP LP NOT REQUIRED : TEST IF OWNED
687D ... BRN PERMEXCL [NOT REQUIRED BUT OWNED:NO ACCORDANCE
687L ... EXIT 5 0
687S ...SCMO SBX 1 CPPTR(2) [CHECK IF MEEP LP OWNED
6882 ... BNZ 1 PERMEXCL [REQUIRED BUT NOT OWNED:NO ACCORDANCE
6888 ... EXIT 5 0
688B ...#
688J ...)
68=W XYFREE1
68QG # THIS SUBROUTINE FREES THE ADATA,ADEMAND BLOCK AND THE GMON,AOUT BLOCK
69=6 # ENTRY XYFREE2 ONLY FREES THE GMON,AOUT BLOCK
69PQ # LINK IN X7
6=9B VFREEW ADATA,ADEMAND
6=P2 XYFREE2
6?8L VFREEW GMON,AOUT
6?N= LDCT 0 #100
6#7W ORS 0 CLONG1(2)
6#MG ERS 0 CLONG1(2)
6*76 VFREEW GMON,ASET [FREE GMON,ASET BLOCK
6*LQ BRN (7)
6B6B #
8W8W XBRKIN [BREAK IN WHILE OPENING SYS.PROP
8WNG MFREE FILE,FABSNB
8X86 MFREEW APERI,APROPS
8XMQ MFREEW APERI,APROPNOS
8Y7B UP [BREAKIN EXIT
8YM2 #
9#TL SWIPEDCONS
9**= SWITCHED
9*SW FREECORE 3 [FREE APERI,ATTRIB BLOCK
9B#G CALL 7 SCLOSETOP [CLOSE :SYSTEM.PROPERTY
9BS6 BRN T1
9C2S ...#UNS G3SIGNET
9C9G ...(
9CD8 ...#
9CLW ...TWOMEEPS [MORE THAN 1 MEEP PROPERTY SPECIFIED
9CTJ ... SETREP2 TWOMEEPS
9D4= ... UPPLUS 2
9D=Y ...#
9DFL ...XMEEP [MEEP PROPERTY MAY NOT BE SPECIFIED
9DN# ... [WITH A CONSOLE PROPERTY
9DX2 ... SETREP2 XMEEP
9F5N ... UPPLUS 2
9F#B ...#
9FH4 ...)
9FPW T1
9G9G SETREP2 NOPER
9GP6 UPPLUS 2
9H8Q NOPROPA
9HNB FREECORE 3 [FREE APERI,ATTRIB BLOCK
9J82 #
9JML PRNOPROP
9K7= CALL 7 SCLOSETOP [CLOSE :SYSTEM.PROPERTY
9KLW NOPROP
9L6G # NO DEVICE OF SPECIFIED TYPE HAS ALL THE PERM PROPS REQUIRED
9LL6 SETREP NOPROP
9M5Q UPPLUS 2
9MKB #
9N52 PERMYUK
9NJL FREECORE 3 [FREE APERI,ATTRIB BLOCK
9P4= PRPERMEXCL
9PHW CALL 7 SCLOSETOP [CLOSE :SYSTEM.PROPERTY
9Q3G PERMEXCL
9QH6 # DEVICES HAVE PERM EXCL PROPERTIES NOT REQUIRED
9S^= SETREP2 PERMEXCL
9TDW UPPLUS 2
9TYG #
9WD6 ...NOTAV
9WXQ ... BRN (GEOERR) [MEEP LP REQUIRED BUT DOESN'T EXIST
9XCB ... [LF ROUTINES SHOULD PREVENT THIS CASE
9XX2 ...#
=3#B PROK
=3S2 CALL 7 SCLOSETOP [CLOSE :SYSTEM.PROPERTY
=3TS OK
=4M8 SETREP OK
=4R= UPPLUS 2
=5=W ...#
=5QG ...#
=6=6 ...#
=6PQ ...X1GETFREEB
?SY6 # THIS ENTRY POINT SERVICES THE SETPROP MACRO. IT REQUESTS CHANGES IN
?TCQ # THE ATTRIBUTIONS OF TEMPORARY PROPERTIES TO THE DEVICE OWNED BY THE
?TXB # CURRENT ACTIVITY. GETPER7 DROPS STRAIGHT THROUGH TO HERE WHEN NOT
?WC2 # ISSUED BY AN ACTLF
?WWL #
?WX3 # SPECIAL ACTION IF 7503 IN SPOOLING OPERATION:
?WX? # SET UP GOUT'GSPOOL BLOCK TO CONTAIN (1)CONSOLE PROPNO
?WXH # (2)PROPNAMES FROM APERI'APROPNOS (3)CHAR COUNT OF SAME;
?WXR # THEN SIMPLY REPLY 'OK' SO THAT LISTFILE ROUTINES GO AHEAD
?WY3 # LF ROUTINES THEN ISSUE SPLPROPS MACRO WHICH WILL OUTPUT
?WY? # 'PROPERTIES REQD' MESSAGE FROM GOUT'GSPOOL.
?WYM #
?W^4 ... SAWCEJ NOTLF,SPIPB
?W^F MHUNTW 3,A7020,ALIST [FIND APPROPRIATE BLOCK..
?W^W LDX 0 EWAIT(3) [..& TEST SPOOLING BIT
?X2? BRN TESPL
?X2N SPIPB MHUNTW 3,AMXOR,ADCB
?X35 LDX 0 IWAIT(3)
?X3G TESPL ANDN 0 4
?X8B ... BNZ 0 SETOK [J IF SPOOLING
?X*= #
?XB= NOTLF
?XL4 LDX 2 FX2
?XP^ ...#UNS G3SIGNET
?XTW ... CALL 5 SCHECKMDEV1 [CHECKOUT MEEP LP OWNERSHIP/REQUEST
?X^R STOZ AWORK4(2) [+VE(ZERO) TO MARK FIRST PASS
?Y*G QCHECK
?YT6 HUNTW 3,APERI,APROPNOS
?^#Q LADDP ,1 [ADDRESS OF APIA
?^SB SAWCE CENTRAL,TRIMBLE [BR IF CENTRAL
#2#2 MHUNTW 1,GOUT,GPROPNOS [ - REMOTE: TREAT GPROPNOS BLOCK
#2RL # AS APIA FOR THIS DEVICE
#3?= LDX 0 GPROPNUM(1)
#3QW BZE 0 T1 [BR IF CONS PROP ATT CANCELLED
#4=G ANDX 0 BITS22LS
#4Q6 LDX 5 CPROPNO(3) [CONSOLE PROPERTY NO REQUIRED
#59Q ANDX 5 BITS22LS
#5PB TXU 0 5
#692 BCS T1 [BR IF NOW HAVE WRONG ONE
#6NL ADN 1 GPROPNUM-APERPROP [PSEUDO APIA POINTER
#78= TRIMBLE
#7MW CALL 7 SCHECKATT [CHECK ATTRIBUTIONS
#87G BZE 5 SETOK [BR IF ALL OK
#8M6 LDN 0 2
#96Q ANDX 0 5
#9LB BNZ 0 NOPROP [ NOPROP
#=62 LDN 0 4
#=KL ANDX 0 5
#?5= BNZ 0 PERMEXCL [ PERMEXCL
#?JW #
##4G # OK - SO NOW OE KNOW CHANGES IN TEMPORARY PROPERTIES ARE REQ'D
##J6 #
#*3Q CALL 5 OPEN [OPEN :SYSTEM.PROPERTY
#*HB #
#B32 # WE OPEN :SYSTEM.PROPERTY HERE TO MAINTAIN THE INTERLOCK WITH
#BGL # ATTRIBUTE. BEFORE WE CLOSE IT AGAIN WE ISSUE A LONGSET TO SET
#C2= # ATTRIBUTE TO TELL US WHEN SOMETHING HAPPENS.
#CFW #
#C^G SETNCORE 12,3,APERI,ATTRIB [SET UP PROPERTY BLOCK
#DF6 HUNTW 1,APERI,APROPNOS [X1 -> APR-PNOS OR -VE
#DYQ STOZ HAS(3)
#FDB LDN 7 HAS(3)
#FY2 LDN 0 HAS+1(3) [AND ZEROISE CONTENTS
#GCL MOVE 7 11
#GX= LDN 4 ATTMAX-1 [NO OF PROPERTIES PERMISSIBLE
#HBW SAWCEN CENTRAL,PREMOTE [BR IF DEVICE IS REMOTE
#HWG LADDP ,2 [LOAD ADDRESS OF PROPERTY
#JB6 ADN 2 APERPROP+1 [ATTRIBUTION LIST
#JTQ BRN Z1
#K*B PREMOTE [OWN A REMOTE PERIPHERAL
#KT2 MHUNTW 2,GOUT,GPROPNOS [LOCATE GPROPNOS BLOCK
#L#L LDXC 0 GPROPNUM(2) [CONSOLE PROP NO (LESS B0)
#LS= BZE 0 SWIPEDCONS [BR IF CONSOLE PROPERTY GONE
#M?W TXU 0 CPROPNO(1)
#MRG BCS SWITCHED [BR IF CONSOLE PROPERTY CHANGED
#N?6 ADN 2 GPROPNUM+1 [X2 POINTS TO NEXT ENTRY
#NQQ Z1 [LOCAL DEVICE
#P=B Z2
#PQ2 BNG 1 SNOPROPS [BR IF NO APROPNOS BLOCK
#Q9L LDX 7 BPROPCNT(1) [NO OF PROPERTIES IN APROPNOS
#QP= SNOPROPS
#R8W LDXC 0 0(2) [LOAD NEXT (AU ED) PROP NO
#RNG BCC SCOUNTDOWN [IGNORE IF INCLUSIVE
#S86 BZE 0 PROPFIN [BR IF NO MORE PROPERTIES
#SMQ BNG 1 Z3A [BR IF NO APROPNOS BLOCK
#T7B Z3
#TM2 TXU 0 BPROPS(1)
#W6L BCC Z3B [BR IF THIS PROPERTY IS REQUIRED
#WL= ADN 1 1
#X5W BCT 7 Z3 [BR TO COMPARE NEXT PROPERTY
#XKG Z3A
#Y56 LDCT 6 #200
#YJQ ANDX 6 0 [PROPERTY NEEDS TO BE FREED
#^4B BNZ 6 PERMYUK [BR IF PERMANENT
#^J2 LDX 6 HAS(3)
*23L SMO 6
*2H= STO 0 HAS+1(3) [STORE PROP NO
*32W ADN 6 1
*3GG STO 6 HAS(3) [UPDATE COUNT
*426 Z3B
*4FQ HUNTW 1,APERI,APROPNOS [RELOCATE APROPNOS BLOCK
*4^B SCOUNTDOWN
*5F2 ADN 2 1 [STEP DOWN PROPERTY LIST
*5YL BCT 4 Z2 [AND COUNT DOWN
*6D= # THE "PROPERTIES ATTRIBUTED BUT NOT WANTED" LIST IS NOW COMPLETE. NOW
*6XW # WE CONCOCT THE "PROPERTIES WANTED BUT NOT ATTRIBUTED" LIST
*7CG #
*7X6 PROPFIN
*8BQ HUNTW 1,APERI,APROPNOS
*8WB BNG 1 NOWANTS [BR IF NO PROPERTIES WANTED
*9B2 LDX 4 BPROPCNT(1)
*9TL SMO FX2
*=*= STOZ ACOMMUNE1 [LOCAL PERIPHERAL
*=SW SAWCEN CENTRAL,Z4 [BR IF SOURCE NOT CENTRAL
*?#G LDX 2 FX2
*?S6 NGS 2 ACOMMUNE1(2) [REMOTE PERIPHERAL - ACOM1 -UE
*#?Q LADDP ,2 [START ADDRESS OF APIA AGAIN
*#RB ADN 2 APERPROP+1 [START ADDRESS OF PROPERTY LIST
**?2 BRN Z5
**QL Z4 [REMOTE PERIPHERAL
*B== MHUNTW 2,GOUT,GPROPNOS [LOCATE GPROPNOS BLOCK
*BPW ADN 2 GPROPNUM [START ADDRESS OF PROPERTY LIST
*C9G #
*CP6 # THIS IS NECESSARY BECAUSE FOR REMOTE PERIPHERALS THE CONSOLE PROPERTY
*D8Q # APPEARS IN THE BPROPS LIST IN THE APROPNOS BLOCK
*DNB #
*F82 Z5
*FML SMO FX2
*G7= LDXC 0 ACOMMUNE1 [SET C IF PERIPHERAL REMOTE
*GLW LDN 5 ATTMAX-1
*H6G LDX 7 BPROPS(1) [FIRST/NEXT PROPERTY NUMBER
*HL6 Z6
*J5Q LDXC 0 0(2) [LOAD NEXT ATTRIBUTED PROPERTY
*JKB BZE 0 NO [BR IF NO MORE ATTRIBUTIONS
*K52 TXU 0 7
*KJL BCC YES [BR IF MATCHES
*L4= ADN 2 1 [STEP DOWN LIST
*LHW BCT 5 Z6
*M3G NO [PROPERTY NOT ATTRIBUTED
*MH6 LDX 0 BPROPS(1)
*N2Q SLL 0 1
*NGB BNG 0 NOPROPA [BR IF PROPERTY PERMANENT
*NHR ...#UNS G3SIGNET
*NK8 ...(
*NLK ... SLC 0 8
*NN2 ... BPZ 0 Z7 [NOT MEEP PROPERTY (BIT 9 UNSET)
*NPC ... CALL 7 TESTIFMEEP
*NQS ... BRN YES [MEEP LP : OMIT MEEP PROPERTY FROM
*NS9 ... [ATTRIBUTIONS WANTED LIST
*NTL ... LDX 7 BPROPS(1) [RESET X7 WITH PR NO
*NX3 ...Z7
*NYD ...)
*P22 LDX 6 HASNT(3) [TO STORE IN ATTRIBUTE LIST
*PFL SMO 6
*P^= STO 7 HASNT+1(3) [STORE PROPERTY NUMBER
*QDW ADN 6 1
*QYG STO 6 HASNT(3) [AND UPDATE COUNT
*RD6 YES
*RXQ SMO FX2
*SCB LDXC 0 ACOMMUNE1 [SET C IF PERIPHERAL REMOTE
*SX2 SBN 2 ATTMAX-1 [RESET X2 TO BEGINNING
*TBL ADX 2 5
*TW= ADN 1 1
*W*W BCT 4 Z5 [LOOP AROUND APROPNOS LIST
*WTG #
*X*6 # WE NOW HAVE AN APERI/ATTRIB BLOCK CONTAINING A COMPLETE LIST OF ALL
*XSQ # PROPERTY CHANGES REQUIRED; POINTED TO BY X3.
*Y#B #
*YS2 NOWANTS
*^?L LDX 1 FX1
*^R= LDX 2 FX2
B2=W LDX 4 HAS(3) [NO OF FREES REQUIRED
B2QG #SKI K6PERI>199$199
B3=6 TRACE 4,HAS
B3PQ BZE 4 NOFREES
B3S* ...#UNS G3SIGNET
B3WY ...(
B3^H ... CALL 7 TESTIFMEEP
B446 ... BRN NOFREES [MEEP LP : IGNORE ANY FREES REQUIRED
B46P ...)
B49B ADN 1 1 [MESSAGE POINTER MODIFIER
B4P2 NOFREES
B58L LDX 4 HASNT(3) [NO OF ATTRIBUTES REQUIRED
B5N= #SKI K6PERI>199$199
B67W TRACE 4,HASNT
B6MG BZE 4 NOGAINS [BR IF NO NEW AU'S WANTED
B776 ADN 1 2
B7LQ NOGAINS
B86B LDX 6 TABMESS(1) [LOAD MESSAGE IDENTIFIER
B8L2 BNZ 6 SYSMESS [BR IF MESSAGE WANTED
B95L FREECORE 3 [ELSE FREE APERI,ATTRIB BLOCK
B9D3 CALL 7 SCLOSETOP
B9QD BRN SETOK [AND BRANCH TO SET REPLY
B=4W SYSMESS
B==4 ...#UNS G3SIGNET
B=C= ...#SKI
B=JG OUTPER [OUTPUT PERIPHERAL DESCRIPTION PARAM
B?46 SETNCORE 16,1,ADATA,CSTORE [TO HOLD PROPERTY NAMES
B?HQ LDN 0 A1+1
B#3B STO 0 A1(1) [FIRST FREE CHARACTER
B#5# ...#UNS G3SIGNET
B#7= ...(
B#98 ... CALL 7 TESTIFMEEP
B#?6 ... BRN OWANTS [MEEP LP : MEEP MESSAGE REQUIRED
B#*4 ... [OMIT OUTPER AND FREE PARAMETERS
B#*9 ...[
B#*B ...[ IF LOCAL PERIPHERAL CANNOT USE OUTPER
B#*H ... LDX 2 FX2
B#*N ... LDX 0 CPPTR(2)
B#*T ... BZE 0 XREMT [REMOTE PL
B#B2 ...XLCL2 LGEOG ,7
B#B7 ... GEOPACK 5,7,1
B#B# ... OUTPACK 5,1,GEOPER,XLCL2
B#BF ... BRN XLOCL
B#BL ...XREMT
B#C2 ... OUTPER [OUTPUT PERIPHERAL DESCRIPTION PARAM
B#C^ ...XLOCL
B#DY ...)
B#H2 MHUNTW 2,APERI,ATTRIB
B*2L LDX 4 HAS(2)
B*G= BZE 4 NOFREEL [BR IF NO FREES REQUIRED
BCDQ QQQ
BCYB SMO 4
BDD2 LDX 7 HAS(2) [PROPERTY NUMBER
BDXL CALL 5 XPROPNAME [INSERT PROPERTY IN CSTORE
BFC= MHUNTW 2,APERI,ATTRIB
BFWW BCT 4 QQQ [STEP DOWN LIST
BGBG MHUNTW 1,ADATA,CSTORE
BGW6 LDX 4 A1(1)
BH*Q SLC 4 2
BHTB SBN 4 A1+1*4+1 [NO -OF CHARACTERS IN STRING
BJ*2 LDN 0 A1+1
BJSL STO 0 A1(1) [REINITIALISE BLOCK
BK#= OUTPARAM 4,A1+1,ADATA,CSTORE [OUTPUT CHARACTER STRING
BKJ4 ...OWANTS
BKRW MHUNTW 2,APERI,ATTRIB
BL?G NOFREEL
BLR6 LDX 4 HASNT(2)
BM=Q BZE 4 NCLOSE [BR IF NO AU LIST
BMQB QQ1
BN=2 SMO 4
BNPL LDX 7 HASNT(2) [PROPERTY NUMBER
BP9= CALL 5 XPROPNAME [GET PROPERTY NAME
BPNW MHUNTW 2,APERI,ATTRIB
BQ8G BCT 4 QQ1
BQN6 MHUNTW 1,ADATA,CSTORE
BR7Q LDX 4 A1(1)
BRMB SLC 4 2
BS72 SBN 4 A1+1*4+1 [NO OF CHARACTERS IN STRING
BSLL OUTPARAM 4,A1+1,ADATA,CSTORE [OUTPUT PROPERTY NAMES
BT6= NCLOSE
BTKW LDX 2 FX2
BW5G LDX 1 CPPTR(2)
BWK6 BZE 1 NCPPTR [BR IF REMOTE
BX4Q LGEOG 1,5 [ELSE LOAD GEOG VUMBER
BXJB BRN XLONG
BY42 NCPPTR
BYHL GEOPACK 5
B^3= XLONG
B^GW LONGSET ATTRIBUTE,TRAGEDY,5 [SET WAITING STYLES
C22G CALL 7 SCLOSETOP [CLOSE :SYSTEM.PROPERTY
C2G6 MFREEW ADATA,CSTORE [AND FREE WORKKLOCK
C3FB MFREEW APERI,ATTRIB [FREE PROPERTY LIST BLOCK
C3^2 LDN 4 0 [ROUTING PARAMETER
C42J ...#UNS G3SIGNET
C446 ...(
C45N ... CALL 7 TESTIFMEEP
C47= ... BRN XINFORMMEEP [MEEP LP : SEND MEEP MESSAGE INSTEAD
C48S ...)
C4=B LDX 0 AWORK4(2)
C4HQ BPZ 0 XDEMAND [FIRST PASS
C4T6 ADX 0 6
C56G BZE 0 SECONDTIME [NOT FIRST PASS WITH SAME MESSAGE
C5CW XDEMAND
C5XG NGS 6 AWORK4(2) [MARK NOT FIRST PASS(W/ MESS IDEN)
C6C6 DEMANDX 4,6,YCANTDO,YBRKIN,XLABEL,2
C6WQ XEVENT
C7BB CALL 7 XYFREE1 [FREE GMON,AOUT - ADATA,ADEMAND
C7W2 BRN QCHECK [BR TO CHECK NEW DEVICE STATE
C8*L YCANTDO
C8T= CALL 7 XYFREE1 [FREE ADATA,ADEMAND AND GMON,AOUT
C954 SETREP CANT
C9#W UPPLUS 1
C9SG #
C=#6 YBRKIN [BREAKIN FROM DEMAND
C=RQ CALL 7 XYFREE1 [FREE ADATA,ADEMAND AND GMON,AOUT
C??B XIDFBRK
C?R2 VFREEW APERI,APROPNOS [FREE ANY APROPNOS BLOCK
C#2S SETREP CANT
C#=L UP
C#Q= #
C*9W SECONDTIME
C*PG # ISSUE DEMAND WITH TIME DELAY FOR RECONSTRUCTED MESSAGE
CB96 #
CBNQ DEMANDX 4,6,YCANTDO,YBRKIN,RHUBARB,2,1
CC8B BRN XEVENT
CCN2 TRAGEDY
CD7L GEOERR 1,LONGWAIT
CDM= #
CF6W ...#UNS G3SIGNET
CFLG ...(
CG66 ...XINFORMMEEP
CGKQ ... LONGOFF
CH5B ... OUTNUM 5,0 [%B = GEOG NO. WITHOUT "U"
CHK2 ... LDX 6 TABMESS-1(1) [MEEP USING "MEDIA/FORMAT LOOP(TEMPOR
CJ4L ... INFORMX 4,6,1 [ARY) PROPERTY(S)" ON "LP GEOG NO."
CJJ= ... BRN SETOK [PRETEND REQUIRED PROPERTIES AUED
CK3W ...)
CKHG ...#
CN3N SETOK
CN3R ...#UNS FLLP4B
CN3W ...(
CN3^ ...#UNS FLLP4BC
CN44 ... TRACEVER 2,GF1
CN47 ... LDX 2 FX2
CN4= ... SMO FX1
CN4* ... LDX 1 XACTLFC
CN4D ... IF 1,E,ATYPE(2)
CN4H ...#UNS FLLP4BC
CN4L ... TRACEVER 1,GF2
CN4P ... LDX 1 CPPTR(2)
CN4S ...#UNS FLLP4BC
CN4X ... TRACEVER 1,GF3DEV
CN52 ... AND BS,1,FLP4B
CN55 ... THEN
CN58 ...#UNS FLLP4BC
CN5? ... TRACEVER 0,GF4TOFL2
CN5B ... DOWN FORMLOOP,2
CN5F ... ELSE
CN5J ...)
CN5Q HUNT 1,APERI,APROPNOS
CN7S IF 1,PZ [ PROPERTIES
CN9W AND +CPROPNO(1),NZ [ CONSOLE PROPERTY
CNB2 HUNT 1,AMXOR,ADCB
CND4 AND 1,PZ [ ON 7900
CNG6 AND BS,1,ADCB7502LP [ 7502 LP
CNJ8 THEN
CNJW ...#UNS FLLP4BC
CNKJ ... TRACEVER 0,GF5TOFL2
CNL= DOWN FORMLOOP,2 [ SET FORMAT LOOP BLOCK
CNN# ELSE
CNQB SETREP OK
CNSD FI
CNST ...#UNS FLLP4BC
CNT= ... TRACEVER EXEC3(2),GF6
CNTM ...#UNS FLLP4B
CNW4 ... FI
CNWG UPPLUS 2
CNYW #
CPDG ...#END
^^^^ ...003243070002