15 22FL #SEG FREEPER [LEN WAGSTAFF. 16 22PD ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983. 8 22_= #OPT K0FREEPER=0 9 23DW #OPT K6FREEPER=K6PERI 14 23YG #LIS K0FREEPER>K0PERI>K0GREATGEO>K0ALLGEO 4 24D6 # 20 24XQ # THIS SEGMENT IS ENTERED FROM THE FREEPER MACRO TO RELEASE THE 20 25CB # PERIPHERAL OWNED BY THE CALLING ACTIVITY. AN ACTLF IS SET UP 20 25X2 # FOR A SLOW OUTPUT DEVICE, UNLESS THE CALLING ACTIVITY ITSELF 20 26BL # IS AN ACTLF. THE DEVICE IS WRONGED IF MARKED WAITING TO BE SO, 20 26W= # AND THE APPROPRIATE MESSAGE IS SENT TO THE RELEVANT CONSOLE. 4 27*W # 9 27TG 8HFREEPER 4 28*6 # 4 28SQ # 12 29#B SEGENTRY K1FREEPER,X1FREEPER 15 29J8 FSHENTRY K2FREEPER,X2FREEPER,,X2FREEPER 4 29S2 # 4 2=?L # 5 2=R= XCR +3 5 2?=W XLP +2 5 2?QG XTP +1 5 2#=6 XCP +4 5 2#PQ PLINK 10 2*9B PAIR LISTINIT,4 15 2*P2 PLINKTC [TP OR CP 10 2B8L PAIR LISTINTC,8 9 2BN= XAZFREE +AZFREE 9 2C7W XJWRONG +JWRONG 9 2C*4 XJSWRJ +JSWOREJ 9 2CG= XJUSWO +JUNITSWO 6 2CMG X1FREEPER 7 2D76 LDN 7 0 18 2DLQ LDX 3 CPPTR(2) [UNTIL FOUND DIFFERENT 9 2F6B #SKI K6FREEPER>199$199 18 2FL2 ( [SKIPPED IF K6FREEPER<200 9 2G5L BNZ 3 PLOCAL 10 2GK= LDX 0 JSOURCE2(2) 19 2H4W BNZ 0 REMOTE [BR IF REMOTE, OTHERWISE... 9 2HJG GEOERR 1,LOCAL!! 5 2J46 PLOCAL 4 2JHQ ) 9 2K3B #SKI K6FREEPER<199$199 15 2KH2 BZE 3 REMOTE [BR IF REMOTE 12 2L2L # _ SKIPPED IF K6FREEPER >200 5 2LG= NOTBUSY 9 2L_W #SKI K6FREEPER>12$12 4 2MFG ( 8 2M_6 LGEOG 3,4 10 2NDQ GSCAN 4,FREEPERL 4 2NYB ) 9 2PD2 CLCOUNT 3,GEORGE 17 2PXL CLCOUNT 3,OBJECT [CLEAR DEVICE COUNTS 9 2QC= CLCOUNT 3,REPEAT 9 2QWW CLCOUNT 3,FAIL 17 2RBG LTYPE 3,4 [DEVICE TYPE TO X4 19 2RW6 CLDRM 3 [CLEAR ONLINE IN DRM MARKER 15 2S*Q LDN 7 1 [MARK ONLINE 9 2STB JONL 3,ONLINE 16 2T*2 LDN 7 0 [MARK NOT ONLINE 5 2TSL ONLINE 19 2W#= JWTBWR 3,XWTBWR [BR IF WAITING TO BE WRONGED 17 2WRW CLEARJPS 3 [CLEAR JPSTATE WORD 9 2X?G TXU 4 XLP(1) 17 2XR6 BCC XOP [BR IF LINEPRINTER 9 2Y=Q TXU 4 XTP(1) 16 2YQB BCC XOP [BR IF TAPEPUNCH 9 2_=2 TXU 4 XCP(1) 17 2_PL BCS XNOP [BR IF NOT CARDPUNCH 4 329= XOP 9 32NW LDCH 0 ATYPE(2) 9 338G SBN 0 ACTLF/64 17 33N6 BZE 0 XACTLF [BR IF ACTLF ISSUED 18 347Q SETALLOC 3 [MARK DEVICE ALLOCATED 19 34MB GETACT ACTLF,CENTRAL [GET CENTRAL ACTLF FOR DEVICE 19 3572 LDX 2 BPTR(2) [X2 NOW POINTS TO NEW ACTLF 9 35LL TXU 4 XLP(1) 15 366= BCC TOLP [J. IF LP 17 36KW LINKSET 2,PLINKTC(1) [MOVE IN LINK FOR TP 8 375G BRN NOTLP 17 37K6 TOLP LINKSET 2,PLINK(1) [MOVE IN LINK FOR LP 5 384Q NOTLP 19 38JB STO 3 CPPTR(2) [STORE D1L POINTER IN CPPTR 20 3942 SLL 4 18 [SET UP DEVICE TYPE FOR JSOURCE1 18 39HL LGEOG 3,0 [LOAD GEOG NO OF DEVICE 7 3=3= ADX 4 0 16 3=GW STO 4 JSOURCE1(2) [SET UP JSOURCE1 6 3?2G FPUT 19 3?G6 BRN XNOMESS [BR TO TIDY UP - NO MESSAGE 4 3?_Q # 19 3#FB XWTBWR [DEVICE WAITING TO BE WRONGED 14 3#_2 CLEARJPS 3 [CLEAR 18 3*DL JMT 3,XMT [JUMP IF MAGNETIC TAPE 18 3*Y= DISENGPE 3 [... ELSE DISENGAGE IT 15 3BCW JEXOTIC 3,XOTIC [BR IF EXOTIC 8 3BXG SBN 4 10 17 3CC6 BZE 4 UXZ [BR IF UNIPLEXOR... 7 3CWQ SBN 4 1 17 3DBB BZE 4 UXZ [...OR IF MULTIPLEXOR 8 3DW2 SBN 4 13 16 3F*L BNZ 4 XALDIS [BR IF NOT IPB 8 3FHW #SKI IDFMARK8<1$1 9 3FQ6 YWRONG SGOT,3 7 3FYB #SKI IDFMARK8 16 3G6L YWRONG XBRK,SGOT,3 [WRONG IPB IN IDF 9 3G#W BRN XALDIS 4 3GSG UXZ 8 3H2Q #SKI IDFMARK8<1$1 9 3H92 XWRONG SGOT,3 7 3HC= #SKI IDFMARK8 17 3HKG XWRONG XBRK,SGOT,3 [WRONG UX/MX IN IDF 5 3HRQ XOTIC 5 3J?B XALDIS 4 3JR2 XMT 16 3K=L WRONG 3 [WRONG THE DEVICE 9 3KB5 JNWTBSW 3,XWRONG 7 3KFJ CLWTBSW 3 10 3KK3 SWOUT 3,XBRKN,XSWRJ 9 3KNG LDX 6 XJUSWO(1) 8 3KR_ BRN XOUT 5 3KXD XSWRJ 9 3L2X LDX 6 XJSWRJ(1) 8 3L6B BRN XOUT 19 3L9W XACTLF [CALLING ACTIVITY IS AN ACTLF 19 3LPG LONGON #27 [WAKE UP FOR SLOW O/P DEVICE 20 3M96 BRN XNOMESS [NO MESSAGE FOR SLOW OJP DEVICE 18 3MNQ XNOP [NOT SLOW OUTPUT DEVICE 18 3N8B JMT 3,XNOMESS [NO DIS OR MESSAGE FOR MT 17 3NN2 DISENGPER 3 [DISENGAGE THE DEVICE 17 3P7L CHECKXOT 3,XNFWOREX [BR IF NOT EXOTIC 17 3PM= LONGON #30 [WAKE UP FOR EXOTICS 19 3Q6W BRN XFREE [BR TO TIDY UP - FREE MESSAGE 18 3QLG XNFWOREX [NOT FLAGWAVER OR EXOTIC 9 3R66 TXU 4 XCR(1) 16 3RKQ BCC XSLIP [BR IF CARDREADER 17 3S5B BNZ 4 XFREE [BR IF NOT TAPEREADER 14 3SK2 XSLIP [TR OR CR 20 3T4L LONGON #60 [WAKE UP FOR SLOW INPUT DEVICE 18 3TJ= XFREE [FREE MESSAGE REQUIRED 20 3W3W LDX 6 XAZFREE(1) [LOAD MESSAGE IDENTIFIER (FREE) 8 3WHG BRN XOUT 18 3X36 XWRONG [WRONGED MESSAGE REQUIRED 19 3XGQ LDX 6 XJWRONG(1) [WRONGED MESSAGE IDENTIFIER 4 3Y2B XOUT 20 3YG2 BNZ 3 SNOUT [USE CPPTR IF LOCAL PERIPHERAL 17 3Y_L GEOPACK 5 [PACK JSOURCE WORDS 8 3_F= BRN XINF 5 3_YW SNOUT 15 42DG GEOPACK 5,JK52C(3),COBBLERS [PACK G:OG NO 4 42Y6 XINF 17 43CQ OUTPACK 5,1,GEOPER [AND OUTPUT PERI DESC 15 43XB INFORMX 7,6,1 [SEND MESSAGE 5 44C2 XNOMESS 4 44WL XUP 19 45B= LDCH 0 ATYPE(2) [DONT CLEAR JSOURCE WORDS ... 9 45TW SBN 0 ACTLF/64 16 46*G BNZ 0 XNJSCE [BR IF NOT ACTLF 10 46T6 STOZ JSOURCE1(2) 18 47#Q STOZ JSOURCE2(2) [ZEROISE JSOURCE WORDS 10 47SB STOZ JSOURCE3(2) 5 48#2 XNJSCE 9 48RL STOZ CPPTR(2) 20 49?= STOZ CPRW1(2) [CLEAR CPPTR, CPRW1,2, AND CPRSW 9 49QW STOZ CPRW2(2) 9 4==G STOZ CPRSW(2) 14 4=Q6 UP [RETURN 4 4?9Q # 4 4?PB SGOT 4 4#92 # 21 4#NL # THIS LABEL IS USED IF SOME MISERABLE MOGUPPER SNATCHED A UX,MX, OR CC 20 4*8= # FROM THE IDF BEFORE WE GOT IN TO WRONG IT. THE DEVICE IS MARKED 20 4*MW # WAITING-TO-BE-WRONGED AND NO MESSAGE IS OUTPUT,THUS CONFUSING THE 8 4B7G # POOR OLD OPERATOR 4 4BM6 # 19 4C6Q SETWTBWR 3 [SET WAITING TO BE WRONGED 9 4CLB BRN XNJSCE 4 4D62 # 5 4DKL REMOTE 13 4F5= GSCAN JSOURCE1(2),FREEPERR,3 17 4FJW SAWCE PCT,XPCT [BR IF NOT FROM IPB 4 4G4G XIPB 10 4GJ6 LDX 4 JSOURCE1(2) 16 4H3Q ANDN 4 #7777 [IDENTIFIER IN X4 16 4HHB CALL 6 XHDCB [HUNT DCB ON X3 9 4J32 LDX 5 IWAIT(3) 21 4JGL ANDN 5 #1000 [MASK IN WAITING TO BE WRONGED BIT 18 4K2= BZE 5 XIPB3 [... AND BR IF NOT SET 7 4KFW LDCT 5 2 17 4K_G ORS 5 FOURTHWD-FPTR(2) [MARK DEVICE WRONGED 5 4LF6 XIPB3 15 4LYQ # CHECK IF INITIAL BULK OUTPUT HAS FAILED 11 4MDB LDEX 0 FOURTHWD-FPTR(2) 7 4MY2 ANDN 0 3 7 4NCL ERN 0 3 17 4NX= BNZ 0 XFDV [J IF NOT LP OR TP 19 4PBW LDCT 0 #20 [CHECK IF DEVICE HAS FAILED 10 4PWG ANDX 0 ISTATUS(3) 16 4QB6 BZE 0 XFDV [J IF NOT FAIL 8 4QTQ LDN 0 #4000 20 4R*B ORS 0 FOURTHWD-FPTR(2) [SET INITIAL BULK OUTPUT FAIL BIT 4 4RT2 # 4 4S#L XFDV 20 4SS= STOZ A1+BPTR(3) [FREE DEVICE BY ZEROISING BPTR OF 16 4T?W STOZ 1(2) [THE RING PAIRS 18 4TRG LDX 4 FOURTHWD-FPTR(2) [B23=1 IF OUTPUT DEVICE 7 4W?6 ANDN 4 1 18 4WQQ ERN 4 1 [X4=1 FOR INPUT DEVICE 17 4X=B BZE 4 XCLOSE [J IF OUTPUT DEVICE 20 4XQ2 BZE 5 XCLOSE [J IF DEVICE NOT BEING WRONGED 21 4Y9L CCSTOP IDENTNO(3),IADIN(3) [STOP I/P AND CLEAR ON THIS DEVICE 16 4YP= CALL 6 XHDCB [HUNT DCB ON Y3 5 4YQ? XCLOSE 18 4YR# # IF REQUESTED TO CLOSE THE IDENTIFIER (B18 OF IWAIT) 16 4YS* # AND IT IS NOT ALREADY CLOSED, SEND CRASH CLOSE 8 4YTB LDN 0 #40 9 4YWC ANDX 0 IWAIT(3) 20 4YXD BZE 0 XFRE [CLOSE IDENTIFIER NOT REQUESTED 7 4YYF SLL 0 9 11 4Y_G ANDX 0 FOURTHWD-FPTR(2) 16 4_2H BNZ 0 XFRE [ALREADY CLOSED 18 4_3J LDN 6 #0127 [COUNT + SPERVISORY CODE 8 4_4K SMO FX2 9 4_5L STO 6 ACOMMUNE1 16 4_6M CCOUT IDENTNO(3),IADIN(3) [SEND CRASH CLOSE 16 4_7N CALL 6 XHDCB [HUNT DCB ON X3 4 4_8W XFRE 15 4_NG FREECORE 3 [AND FREE IT 5 5286 XIPB4 8 52MQ LDX 2 FX2 18 537B LDN 3 0 [SET X3=0 TO MEAN REMOTE 20 53M2 BNZ 5 XWRONG [BR TO TIDY UP - WRONG MESSAGE 19 546L BNZ 4 XFREE [BR TO TIDY UP - FREE MESSAGE 19 54L= BRN XUP [BR TO TIDY UP - NO MESSAGE 4 555W # 4 55KG # 15 5656 XPCT [PCT DEVICE 9 56JQ DOWN PCTDIS,1 18 574B LDX 4 ACOMMUNE1(2) [GET INPUT DEVICE MARKER 17 57J2 LDX 5 ACOMMUNE2(2) [GET WRONGED MARKER 8 583L BRN XIPB4 4 58H= # 5 592W XHDCB 20 59GG # SUBROUTINE HUNTS FOR THE AMXOR/ADCB BLOCK, AND GIVES A POINTER 20 5=26 # TO IT IN X3. ALSO LEAVES, IN X2, A POINTER TO THE ADEVS RING 10 5=FQ # ELEMENT. LINK IN X6 10 5=_B HUNTW 3,AMXOR,ADCB 21 5?F2 BPZ 3 XHD1 [BRANCH IF DCB FOUND, OTHERWISE... 9 5?YL GEOERR 1,NO DCB 4 5#D= XHD1 21 5#XW LDX 2 A1+FPTR(3) [X2= POINTER TO ADEVS RING ELEMENT 7 5*CG EXIT 6 0 4 5*X6 # 16 5B6Y XBRK GEOERR 1,BREAKIN! [BRK-IN ON IDF 10 5B=T XBRKN GEOERR 1,SWOUTBRK 4 5BBQ # 5 5BWB #PAGE 11 5CB2 MENDAREA 24,K100FREEPER 4 5CTL #END 8 ____ ...61713714000100000000