GETFREEB864
(George Source)
Macros used: AND, BXE, CLOSETOP, DEMANDX, DOWN, ELSE, FI, FREECORE, GEOERR, GEOPACK, HUNT, HUNTW, IF, INFORMX, LADDP, LGEOG, LONGOFF, LONGSET, LTYPE, MFREE, MFREEW, MHUNTW, OPEN, OPENSYS, OUTNUM, OUTPACK, OUTPARAM, OUTPER, REWIND, SAWCE, SAWCEJ, SAWCEN, SEGENTRY, SETNCORE, SETREP, SETREP2, THEN, TRACE, TRACEVER, UP, UPPLUS, VFREEW
- GETFREEB864.txt
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