14 22FL #SEG IPBSCAN8 [R.WEYAND 16 22PD ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD. 1982 11 22_= #LIS K0IPBSCAN>K0IPB>K0ALLGEO 9 23DW 8HIPBSCAN 4 23YG # 4 24D6 # 21 24XQ # THIS SEGMENT PERFORMS THE DEVICE INITIALISATION ROUTINES REQUIRED FOR 9 25CB # SYSTEM USE OF THE DCP. 4 25X2 # 12 26BL SEGENTRY K1IPBSCAN,SK1IPBSCAN 20 26W= # K1IPBSCAN IS THE ENTRY POINT FOR A SCANNING ACTIVITY AT THE END OF 21 27*W # E.M.S. OR AFTER A ^MOP ON^ COMMAND. IT GETS AN IPB OUTPUT ACTIVITY AND 20 27TG # THEN SCANS EACH IDENTIFIER IN TURN. IT SETS UP A CPA FOR EACH MOP 17 28*6 # TELETYPE, AND OPENS AND STARTS ALL BULK INPUT DEVICES. 4 28SQ # 12 29#B SEGENTRY K2IPBSCAN,SK2IPBSCAN 20 29S2 # K2IPBSCAN IS ENTERED FROM A CPA SET UP ON RECEIVING INPUT FROM A 20 2=?L # PREVIOUSLY IDLE LINE. IT CHECKS THE IDF TO SEE THAT GEORGE MAY USE 20 2=R= # THE IDENTIFIER, THEN GOES ACROSS TO THE APPROPRIATE INPUT ROUTINE. 19 2?=W # AN ^AVAILABLE^ REPORT FOR A PREVIOUSLY IDLE OUTPUT IDENTIFIER 21 2?QG # CAUSES AN ACTLF TO BE SET UP, ALSO WITH A LINK TO THIS ENTRY POINT. 21 2#=6 # THE SAME CHECKS ARE PERFORMED AND THE ACTIVITY CROSSES TO K2IPBLISTA 4 2#PQ # 12 2*9B SEGENTRY K3IPBSCAN,SK3IPBSCAN 20 2*P2 # K3IPBSCAN IS USED BY A MOP CPA SET UP BY THE SCANNING ACTIVITY. 19 2B8L # IT SETS UP A DEVICE CONTROL BLOCK AND ISSUES THE APPROPRIATE 21 2BN= # SUPERVISORY CODES TO OPEN THE IDENTIFIER AND SET THE CORRECT PRIORITY, 20 2C7W # MODE AND NPU SIZE, THEN LEAVES THE DEVICE STARTED FOR INPUT AND 21 2CMG # GOES ACROSS TO K3MORNING TO OUTPUT THE ^THIS IS GEORGE THREE^ MESSAGE. 4 2D76 # 12 2DLQ SEGENTRY K4IPBSCAN,SK4IPBSCAN 21 2F6B # K4IPBSCAN IS USED BY A 7023 CONSOLE ACTIVITY IN ROUGHLY THE SAME WAY 11 2FL2 # AS A MOP CPA USES K3IPBSCAN. 4 2G5L # 12 2GK= SEGENTRY K5IPBSCAN,SK5IPBSCAN 21 2H4W # ENTRY FOR SCANNING ACTIVITY AFTER CANCEL ATTACH , CANCEL CONCEPTUAL, 18 2HJG # CONCEPTUAL PERI MODE #1000 OR SUP. SEG 'IDENTIFIER FREE' 4 2J46 # 12 2J5# SEGENTRY K7IPBSCAN,SK7IPBSCAN 13 2J6G # ENTRY BY MACRO CHANGMOD TO CHANGE MODE 4 2J7N # 12 2J7X SEGENTRY K8IPBSCAN,SK8IPBSCAN 20 2J86 # ENTRY POINT (FOR SEGMENT IDFPER) TO EXTRACT THE MODE/NPU SIZE FROM 16 2J8* # IPBSCAN AND COPY IT TO THE CURRENT ACTIVITY'S ADCB 4 2J8J # 13 2JGP SEGENTRY K11IPBSCAN,SK11IPBSCAN 14 2JH4 [ ENTRY FROM IPBSCANB TO CALLING SUBROUTINE 13 2JHC [ NEBUL AND THEN RETURN TO IPBSCANB 13 2JHG ... SEGENTRY K12IPBSCAN,SK12IPBSCAN 10 2JHK ...[ ENTRY FROM IPBSCANB 9 2JHQ PAIR1 PAIR IPBOUT,1 9 2K3B PAIR2 PAIR IPBSCAN,3 8 2KH2 #SKI 0?-PAIR2<2$2 4 2L2L ( 8 2LG= #REP 0?-PAIR2$3-1 5 2L_W +0 4 2MFG ) 9 2M_6 PAIR3 PAIR IPBSCAN,4 4 2NDQ # 9 2NYB #DEF ZLEN=PAIR3-PAIR2 4 2PD2 # 5 2PXL XPAIR2 6 2QC= #HAL CPAT,0 7 2QWW XPLUS +CPATLEN 8 2RBG #SKI 2 THE IPB OUTPUT ACTIVITY 17 434S # IF A VIRTUAL 7900, EXITS WITH X1=FX1 AND X4 UNDEFINED 6 435? # LINK IN X7 4 435Q # 6 4369 V7900IPBOUT 12 436N JV7900 CPPTR(2),V7900OPACT 20 4377 BRN V7900OPEX [IPB IS NOT A VIRTUAL 7900 : EXIT 6 437L V7900OPACT 20 4385 LDX 0 BIT9 [SET 'IPB IS A VIRTUAL 7900' FLAG 9 438J ORS 0 IPBSW(2) 19 4393 LDCT 0 #010 [PRESET THE REPLY ^TRANSFER 18 439G STO 0 CPRW1(2) [COMPLETED SUCCESSFULLY^ 15 439_ LDX 4 2 [PRESERVE X2 20 43=D SCHSS HUNTW 2,AMXOR,IOUT [CHAIN SS BLOCK AFTER OUTPUT ACT 18 43=X BNG 2 NBLKSS [J IF CHAINED ALL BLOCKS 8 43?B CHAIN 2,4 8 43?T BRN SCHSS 5 43## NBLKSS 14 43#R LDX 2 4 [RESET X2 6 43*= V7900OPEX 7 43*P EXIT 7 0 4 43B8 # 4 43BM # 4 43C? ...[ 15 43CD ...[ K1IPBSCAN - AMSCAN IPBTYPE ACTIVITY 4 43CK ...[ 6 43CQ SK1IPBSCAN 19 43XB GETACT BMOP,IPBOUT,1 [SET UP AN OUTPUT ACTIVITY. 9 44WL LDX 2 BPTR(2) 17 45B= LDCT 4 #100 [SET ^ASLEEP^ MARKER. 18 45TW LINKSET 2,PAIR1(1) [STORE LINK TO K1IPBOUT 21 46*G LDX 7 CPPTR(3) [POINTER TO IPB DEVICE CONTROL AREA. 9 46T6 STO 4 IPBSW(2) 9 47#Q STO 7 CPPTR(2) 20 47M6 CALL 7 V7900IPBOUT [ADDITIONAL ACTION FOR A V7900 19 47SB LDN 1 IPBRING(3) [RING THE INPUT ACTIVITY TO 18 48#2 RERING 1,IPBRING(2) [THE NEW OUTPUT ACTIVITY. 8 48RL LDX 2 FX2 18 493D STO 3 AMOPADDR(2) [SAVE ADDRESS OF IPBIN 18 49?= NXTP LDX 3 FPTR(3) [FIND THE ROUTING BLOCK. 9 49QW LDX 0 ATYPE(3) 8 4==G TXL 0 CACT 8 4=Q6 BCS NOTAC 18 4?9Q LDX 3 BPTR(2) [NO ADEVS : MOPPED OFF 7 4?PB LOCK 3 7 4#92 MURDER 3 8 4#NL BRN SUIC 10 4*8= NOTAC TXU 0 MXORADEVS(1) 8 4*MW BCS NXTP 4 4B7G # 21 4BM6 # FRIG UNTIL DECIDED WHETHER TO LOCK INPUT BUFFER PERMANENTLY IN E.M.S. 13 4C6Q HUNT2 2,AMXOR,INBF,AMOPADDR(2) 7 4CLB LOCK 2 21 4D62 MHUNTW 1,IDF,IDENTIFIERS [FIND THE IDENTIFIER DESCRIPTION BLK. 21 4DKL LDX 7 A1(1) [LOWEST IDENTIFIER NO. ON THIS UNIT. 21 4F5= LDX 6 ALOGLEN(1) [NUMBER OF IDENTIFIERS ON THIS UNIT. 11 4FJW STO 7 A1+FOURTHWD(3) 10 4G4G STO 7 ACOMMUNE5(2) 10 4GJ6 ADX 3 ALOGLEN(3) 7 4H3Q SBN 6 1 4 4HHB # 21 4J32 # STEP THROUGH THE BLOCK (BACKWARDS) CHECKING EACH IDENTIFIER IN TURN. 4 4JGL # 17 4K2= NXTR LDCT 4 #40 [ALREADY DEALT WITH? 7 4KFW SBN 3 4 11 4K_G ANDX 4 A1+FOURTHWD(3) 15 4LF6 BZE 4 NXTS [J. IF SO. 19 4LYQ LDCT 0 #20 [SET ^SETTING UP CPA^ MARKER. 7 4MDB SMO 6 8 4MY2 ORX 0 A1(1) 20 4NCL LDX 5 0 [TEST ^TYPE UNCERTAIN^ MARKER. 8 4NX= ANDN 5 #400 14 4PBW BNZ 5 NNOWN [J IF SET 16 4PWG ORX 0 BIT9 [SET ^CLOSED^ BIT 8 4QB6 BRN NOWN 8 4QTQ NNOWN ORX 0 GSIGN 19 4R*B DEX 4 0 [CLEAR THE DEVICE TYPE BITS. 20 4RT2 NOWN STOC 0 A1+FOURTHWD(3) [STORE MARKER & IDENTIFIER TYPE. 19 4S#L BCS UNOWN [J. IF TYPE NOT KNOWN BY IDF. 7 4SDH LDX 5 0 8 4SQF ANDN 5 #40 17 4SR2 BNZ 5 RESET [J IF WRONGED IN IDF 17 4SS= ANDN 0 #77 [EXTRACT DEVICE TYPE. 17 4T?W BZE 0 PCONS [J. IF MOP CONSOLE. 7 4TRG SBN 0 5 17 4W?6 BZE 0 YBULK [J IF 7023 CONSOLE 7 4WD# SBN 0 5 17 4WKG BZE 0 PCONS [J. IF MOP DISPLAY. 7 4WKP ... SBN 0 3 10 4WKY ... SEGENTRY K70IPBSCAN 8 4WL7 ... BZE 0 UNOWN 8 4WMJ ... SBN 0 #15 18 4WP2 BZE 0 PCONS [J IF RIGHTED PSEUDO VDU 20 4WQQ ORS 4 A1+FOURTHWD(3) [MARK ^NOT FINISHED SCANNING YET^ 8 4X=B BRN NXTS 19 4XCJ RESET LDCT 0 #22 [RESET ROUTING BLOCK ENTRY 8 4XJQ BRN SEMA4 10 4XMB ... SEGENTRY K71IPBSCAN 19 4XQ2 UNOWN LDCT 0 #20 [RESE0 ROUTING BLOCK ENTRY 18 4Y9L ADN 0 #400 [SET ^UNKNOWN TYPE^ BIT 11 4YP= SEMA4 ERS 0 A1+FOURTHWD(3) 8 4_8W BRN NXTS 4 4_NG # 8 5286 YBULK LDN 0 ZLEN 8 52#3 ... BRN PCONB 10 52CY ... SEGENTRY K72IPBSCAN 5 52G4 ...PCONS 11 52J8 ... LDX 0 A1+FOURTHWD(3) 8 52L# ... ANDN 0 #17 8 52ND ... SBN 0 #15 17 52QJ ... BNZ 0 PCONA [J NOT ERROR LOGGER 21 52SN ... JENVNOT UNOWN,CME [J. ERROR LOGGER BUT NOT CME ENVIR 5 52WS ...PCONA 7 52YY ... LDN 0 0 5 5334 ...PCONB 8 5358 ... CALL 7 NECON 15 537B HUNT2J 1,AMXOR,ADEVS,AMOPADDR(2),SUIC 7 53M2 ADX 3 1 11 546L MHUNTW 1,IDF,IDENTIFIERS 21 54L= NXTS BCT 6 NXTR [J. FOR NEXT, UNLESS FINISHED PASS. 4 555W # 16 55KG # GO THROUGH BLOCK AGAIN DEALING WITH BULK DEVICES. 4 5656 # 7 56JQ SBN 3 4 10 574B LDX 6 ALOGLEN(1) 7 57J2 PHOTO 4 7 583L FREECORE 1 16 58H= LDX 5 AMOPADDR(2) [IPBIN ADDRESS 20 592W STO 5 AWORK1(2) [FOR OUTPT & START SUBROUTINES 20 59GG CALL 7 SETDB [SET UP DCB FOR BULK IDENTIFIERS 9 5=26 TESTMOVE 4,NMVD2 12 5=FQ HUNT2J 3,AMXOR,ADEVS,5,SUIC 9 5=_B NMVD2 STO 5 IADIN(2) 16 5?F2 ADX 3 ALOGLEN(3) [SET POINTERS. 7 5?YL SBN 6 1 8 5#D= ADN 3 A1 7 5#XW NXTT SBN 3 4 8 5*CG LDCT 0 #40 10 5*X6 ANDX 0 FOURTHWD(3) 20 5BBQ BZE 0 NXTA [IDENTIFIER ALREADY DEALT WITH 10 5BWB ERS 0 FOURTHWD(3) 8 5CB2 CALL 7 NEBUL 20 5CKS RNEBUL1 [THIS LABEL MUST ALWAYS FOLLOW CALL TO NEBUL 8 5CTL NXTA BCT 6 NXTT 7 5D5D FSHSKIP 7 5D*= SUIC SUICIDE 8 5DGD FSHCODE AORB 10 5DML SUIC ACROSS IPBSCANB,10 4 5DSW # 21 5F#G # SUBROUTINE TO SET UP DUMMY ADCB BLOCK FOR INITIALISING BULK IDENTS. 4 5FS6 # 8 5G?Q SETDB SBX 7 FX1 15 5GL7 DOWN IPBSCANB,1 [SET UP DCB 10 5GYJ MHUNTW 2,AMXOR,ADCB 8 5H?2 ADX 7 FX1 7 5HQL EXIT 7 0 4 5J== # 20 5JPW # SUBROUTINES TO INITIALISE IDENTIFIERS NEWLY MOPPED ON , OR FREED 20 5K9G # ON ENTRY X6 CONTAINS IDENTIFIER NUMBER RELATIVE TO LOWEST ON IPB 18 5KP6 # X3 POINTS TO ADEVS ENTRY FOR THIS IDENTIFIER ; CALL ON X7 4 5L8Q # 15 5LNB # 1 : CONSOLES : X0=0 IF MOP , =ZLEN IF 7023 4 5M82 # 8 5MML NECON SBX 7 FX1 7 5N7= LDX 3 0 20 5NLW DOWN IPBSCANB,2 [GET ACTIVITY AND START IT GOING 7 5P6G LDX 3 6 7 5PL6 SLL 3 2 8 5_D6 ADX 7 FX1 7 5_XQ EXIT 7 0 4 62CB # 14 62X2 # 2 : BULK : X2 POINTS TO DUMMY ADCB BLOCK 4 63BL # 8 63W= NEBUL SBX 7 FX1 8 64*W SMO FX2 16 64TG STO 7 AWORK2 [PRESERVE LINK 8 65*6 LDX 1 FX1 17 65SQ LDN 4 PRESET1(1) [INITIALISE THE DCB. 10 66#B LDN 5 ISTATUS(2) 8 66S2 MOVE 4 P1LEN 7 67?L LDN 0 7 6 67#F #UNS AHRET 4 67*# ( 8 67B7 LDCT 4 #11 10 67C2 ANDX 4 FOURTHWD(3) 9 67CT ORX 4 BPTR(3) 18 67DN BNZ 4 OBULK [J IF RINGED OR ONLINING 10 67FH LDEX 4 FOURTHWD(3) 7 67GB ERN 4 5 16 67H9 BZE 4 ZJCON [J IF 7020 CONSOLE 19 67HL LDCT 4 #201 [CHECK BIT 1 AND BIT 8 2 67J4 5 67JX ZJCON 8 67KQ ORN 4 #777 19 67LK [ TEST FOR AH IF NOT CONSOLE 10 67MD ANDX 4 FOURTHWD(3) 4 67N? ) 6 67P6 #UNS AHRET 4 67P_ #SKI 18 67R= LDEX 4 FOURTHWD(3) [EXTRACT THE DEVICE TYPE. 21 68=W LDX 7 6 [GET THE RELATIVE IDENTIFIER NUMBER. 7 68QG TXL 0 4 18 69=6 BCS OBULK [DEVICE TYPE >7 : IGNORE 15 69PQ SMO FX2 [SAVE TYPE. 15 6=9B STO 4 AWORK4 [SAVE TYPE 21 6=P2 SMO BSTART(3) [TURN INTO ACTUAL IDENTIFIER NUMBER. 11 6?8L ADX 7 A1+FOURTHWD(3) 7 6?=J #UNS CCERROR 4 6?#G ( 17 6?BD STO 7 IDENTNO(2) [SET UP IDENT NUMBER 8 6?DB SMO FX2 9 6?G# LDX 0 AWORK1 16 6?J= STO 0 IADIN(2) [AND IPBIN ADDR 4 6?L8 ) 7 6?N= SMO 4 9 6#7W BRN TABL1-1 4 6#MG # 18 6*76 TABL1 BRN OBULK [7100 - 5-TRACK TELETYPE. 15 6*LQ BRN OBULK [REMOTE AVDU. 15 6B6B BRN TYP3 [POLLED LP. 15 6BL2 BRN TYP4 [POLLED CR. 15 6C5L BRN NXTV [POLLED TW. 15 6CK= BRN TYP6 [POLLED TR. 15 6D4W BRN TYP7 [POLLED TP. 4 6DJG # 4 6F46 TYP3 21 6FHQ TYP7 [ENRING THE DCB & THE ADEVS ENTRY. 17 6G3B CALL 4 OPEN [OPEN THE IDENTIFIER. 16 6GH2 BRN NXTU [J. IF FAILED. 18 6H2L ERN 5 2 [SHOULD BE OUTPUT DEVICE. 8 6HG= BNZ 5 NOIDE 8 6H_W LDCT 0 #400 17 6JFG ORS 0 AWORK4(2) [SET OUTPUT MARKER 8 6J_6 BRN XMODE 4 6KDQ # 4 6KYB TYP4 21 6LD2 TYP6 [ENRING THE DCB & THE ADEVS ENTRY. 17 6LXL CALL 4 OPEN [OPEN THE IDENTIFIER. 16 6MC= BRN NXTU [J. IF FAILED. 8 6MWW BCT 5 NOIDE 21 6NBG XMODE CALL 5 XCHNG [CHANGE MODE/NPU SIZE IF NECESSARY 21 6NW6 BRN NXTU [UNABLE TO RUN ID IN MODE(S) REQUIRED 19 6QSL LDXC 0 AWORK4(2) [J IF MARKED AS INPUT DEVICE 8 6R#= BCC NXTB 19 6RRW LDN 5 0 [SET UP ACTLF/GREMOTE ACT. 16 6S?G STOZ A1+BPTR(3) [CLEAR THE RING 10 6SR6 LDX 3 A1+FPTR(3) 9 6TQB STOZ BPTR(3) 9 6W=2 DOWN IPBINB,30 15 6WPL HUNT2J 3,AMXOR,ADEVS,AMOPADDR(2),SUIC 10 6X9= MHUNTW 2,AMXOR,ADCB 17 6XNW LDX 1 6 [REFIND ADEVS ENTRY 7 6Y8G SLL 1 2 8 6YN6 ADN 3 A1(1) 8 6_7Q BRN NXTV 20 6_#8 NXTB LDCT 0 2 [IF (CR) ID IS IN REMOTE MODE (2) 19 6_DL ANDX 0 IMDNPU(3) [SET B12 OF FOURTHWD BECAUSE 21 6_K4 SRL 0 5 [WE CAN'T RECORD THIS FACT IN IPBSCAN 10 6_PG SMO A1+FPTR(3) 9 6_TY ORS 0 FOURTHWD 20 722B LDCT 5 #400 [SET SWITCH FOR ^ONE SHOT INPUT^ 17 7272 CALL 0 START [OUTPUT THE MESSAGE. 20 72LL NXTU MHUNTW 2,AMXOR,ADCB [LOCATE THE DEVICE CONTROL BLOCK. 21 736= LDX 3 A1+FPTR(2) [CLEAR THE RING & RESET THE POINTERS. 10 73KW STOZ A1+BPTR(2) 9 745G STOZ BPTR(3) 20 74K6 OBULK LDCT 0 #20 [UNSET THE ^SETTING UP^ MARKER. 10 74SY ANDX 0 FOURTHWD(3) 10 754Q ERS 0 FOURTHWD(3) 8 75JB NXTV SMO FX2 16 7642 LDX 4 AWORK2 [LINK ACCUMULATOR 8 76HL SMO FX1 7 773= EXIT 4 0 8 774H #UNS JSKI36+JSKI38 4 775S ( 4 7775 # 17 778B # SUBROUTINE TO UNSET BIT8 IN IWAIT,THE GIVE REPLY BIT 4 779M # 5 77=Y XUNBIT 10 77#9 MHUNTW 3,AMXOR,ADCB 7 77*G LDCT 0 1 9 77BR ERS 0 IWAIT(3) 7 77D4 EXIT 7 0 4 77F* ) 4 77GW # 19 782G # SUBROUTINE TO OUTPUT SUPERVISORY SEGMENTS & WAIT FOR REPLIES. 4 78G6 # 14 78_Q OUTPT SBX 5 FX1 [LINK. 18 79FB LDX 1 3 [ADDRESS OF IOUT BLOCK. 7 79H_ #UNS CCERROR 4 79LJ ( 21 79P7 ... BRN STEZ [GO TO CHECK MOP OFF OR WRONG BIT IN 18 79RQ STEZRT [RETURN HERE IF NOT SET 4 79W* ) 18 79_2 SMO AWORK1(2) [FIND THE OUTPUT ACTIVITY 9 7=DL LDX 3 IPBRING 19 7=Y= SBN 3 IPBRING [ADDRESS OF IPBOUT ACTIVITY 10 7?CW LDX 2 ACTRING(3) 9 7?XG SBN 2 ACTRING 20 7#C6 CHAIN 1,BPTR(2) [CHAIN AT END OF IPBOUT ACTIVITY 19 7#WQ LDCT 0 #100 [TEST & J. IF ALREADY AWAKE. 9 7*BB ANDX 0 IPBSW(3) 8 7*W2 BZE 0 NXTX 9 7B*L ERS 0 IPBSW(3) 7 7BT= LDX 2 3 6 7C#W FPUT 17 7CSG NXTX BZE 5 XIT [ENTERED FROM ^START^ 10 7D#6 MHUNTW 3,AMXOR,ADCB 8 7DRQ LDX 0 GSIGN 18 7F?B ORS 0 IWAIT(3) [SET THE ASLEEP MARKER. 16 7FR2 COOR1 [WAIT FOR INPUT 18 7G=L MHUNTW 3,AMXOR,IDATSG [FIND THE INPUT BLOCK. 8 7GBH #UNS JSKI36+JSKI38 17 7GGD BNG 3 STO2G [ABSENT=MOPPING OFF 9 7GL* #UNS JSKI36+JSKI38<1$1 17 7GQ= BNG 3 STOP2 [ABSENT = MOPPING OFF 9 7H9W ADN 2 ACOMMUNE6 9 7HPG LDN 1 A1+1(3) 18 7J96 MOVE 1 4 [CONTENTS OF IDATSG BLOCK 15 7JNQ FREECORE 3 [AMXOR,IDATSG 11 7K8B LDN 3 ACOMMUNE5-A1(2) 8 7KN2 SMO FX1 14 7L7L EXIT 5 0 [EXIT. 8 7L9J #UNS JSKI36+JSKI38 4 7L?G ( 9 7L*D STO2G LDX 0 AWORK3(2) 17 7LCB BPZ 0 STOP2 [J IF NOT CHANGMOD 7 7LD2 #UNS CCERROR 4 7LDL ZMM 15 7LF# CALL 7 XUNBIT [UNSET BIT8 15 7LH= UP [MOP OFF EXIT 4 7LK8 ) 4 7LM= # 21 7M6W # SUBROUTINE TO SET UP ^OPEN IDENTIFIER^ COMMAND & DEAL WITH THE ANSWER. 4 7MLG # 8 7N66 OPEN SBX 4 FX1 21 7NJC RING2CHK A1+FPTR(2),FPTR(3) [ENRING THE DCB & THE ADEVS ENTRY. 21 7NKQ SETNCORE P3LEN,3,AMXOR,IOUT,1[SET UP SEGMENT FOR ^OPEN IDENTIFIER^ 10 7P5B LDN 0 PRESET4(1) 9 7PK2 LDN 1 IMOPTY(3) 8 7Q4L MOVE 0 P3LEN 17 7QJ= DSA 7 IPBIDE(3) [IDENTIFIER NUMBER. 8 7QS3 #UNS JSKI36+JSKI38 17 7QWL STOZ AWORK3(2) [NOT CHANGMOD MACRO 17 7R3W CALL 5 OUTPT [OUTPUT THE SEGMENT. 21 7RHG LDXC 0 A1+1(3) [J. IF DATA SEG. : DEVICE NOT STARTED 8 7S36 BCC NSUPS 16 7SGQ LDX 1 3 [SAVE POINTER. 7 7T2B BCHX 3 / 17 7TG2 LDCH 0 A1+2(3) [GET SEGMENT TYPE. 19 7T_L ERN 0 48 [J. IF ^IDENTIFIER OPENED^. 8 7WF= BZE 0 ZOPEN 21 7XY6 ERN 0 37$48 [J. IF ^ILLEGAL^, OTHERWISE ERROR. 8 7YCQ BZE 0 OPILL 7 7YW# #UNS CCERROR 4 7YWS #SKI 10 7YXB SRONG GEOERR 1,SS WRONG 7 7Y__ #UNS CCERROR 4 7_4J ( 8 7_77 SRONG CALL 5 NSW 8 7_9Q BRN XOP 4 7_#* ) 5 7_C2 OPILL 17 82B= LDCH 5 A1+3(1) [GET TYPE OF ILLEGAL. 21 82TW ERN 5 16 [J. IF NOT ^IDENTIFIER NON-EXISTENT^. 8 83*G BNZ 5 NOT16 21 83T6 # ^IDENTIFIER DOES NOT EXIST^ OR THE DEVICE TYPE DIFFERS FROM THE IDF'S. 10 84#Q NOIDE MHUNTW 3,AMXOR,ADCB 8 84SB LDN 0 #400 10 85#2 SMO A1+FPTR(3) 18 85RL DEX 0 FOURTHWD [MARK ^UNKNOWN^ IN ADEVS 9 86?= LDX 1 AWORK1(2) 18 86H4 UPDATE XBI,CPPTR(1),7 [MARK ^UNKNOWN^ IN IDF 8 87=G XOP SMO FX1 7 87Q6 EXIT 4 0 4 889Q # 8 88PB NOT16 ERN 5 28$16 20 8992 BZE 5 XOP [IDETIFIER ON TEST : LEAVE CLOSED 7 89L2 #UNS CCERROR 4 89M? #SKI 8 89NL BRN NILL 7 89R9 #UNS CCERROR 4 89TS ( 8 89YC CALL 5 NSL 8 8=32 BRN XOP 4 8=5K ) 4 8=8= # 7 8=LL #UNS CCERROR 4 8=M= #SKI 10 8=MW NSUPS GEOERR 1,DATANOW? 7 8=QF #UNS CCERROR 4 8=T4 ( 8 8=XM NSUPS CALL 5 NSU 8 8?2= BRN XOP 4 8?4T ) 4 8?7G # 19 8?M6 ZOPEN LDCH 5 A1+4(1) [GET THE DEVICE TYPE CODE. 18 8#6Q ANDN 5 7 [ISOLATE THE CODE BITS. 8 8#LB SMO FX1 7 8*62 EXIT 4 1 4 8*6T # 11 8*7N # ENTERED HERE BY CHANGMOD MACRO 4 8*8H # 6 8*9B SK7IPBSCAN 8 8*=9 #UNS JSKI36+JSKI38 4 8*?4 ( 8 8*?X LDX 0 GSIGN 19 8*#Q STO 0 AWORK3(2) [MARKER TO INDICATE K7 ENTRY 16 8**K LDX 5 ACOMMUNE1(2) [NEW MODE AND NPU 17 8*BD MHUNTW 3,AMXOR,ADCB [GET IPBIN ADDRESS 9 8*C? LDX 0 IADIN(3) 9 8*D6 STO 0 AWORK1(2) 16 8*D_ LDX 7 IDENTNO(3) [IDENTIFIER NO 16 8*FS LDCT 0 1 [WE WANT TO GET 15 8*GM ORS 0 IWAIT(3) [THE REPLY 8 8*HG BRN XCHMD 4 8*J* ) 4 8*KL # 21 8B5= # SUBROUTINE TO SET UP ^CHANGE MODE^ COMMAND AND DEAL WITH THE REPLY. 16 8B*4 # IF MODE CHANGE SUCCEEDS, EXITS +1 WITH X3 -> ADCB 4 8BJW # 20 8C4G XCHNG SBX 5 FX1 [RELATIVISE AND SAVE THE LINK. 8 8CJ6 LDX 2 FX2 21 8CK2 LDN 4 0 [INITIALISE RELATIVE ENTRY POINTER 10 8CKW MHUNTW 1,AMXOR,ADCB 9 8CLQ LDX 0 A1+3(3) 18 8CML STO 0 IMDNPU(1) [STORE CURRENT MODE/NPU 15 8CN4 LDX 3 1 [X3 -> ADCB 18 8CT# ANDX 5 BITS22LS [MAKE SURE BIT 0 NOT SET 9 8CTQ STO 5 AWORK3(2) 10 8CWL NXMN SMO A1+FPTR(1) 15 8CXG LDEX 1 FOURTHWD [DEVICE TYPE 8 8CY3 LDN 0 #32 7 8CY4 ERX 0 1 17 8CY5 BNZ 0 USMN [J IF NOT PSEUDO VDU 17 8CY6 LDN 1 T26MN [MODE/NPUSIZE ADDRESS 9 8CY7 BRN SPECMN 4 8CY8 USMN 8 8CY* ... LDN 0 #15 7 8CYF ... SBX 0 1 17 8CYK ... BNZ 0 XNER [J IPB ERROR LOGGER 8 8CYP ... LDN 1 T13MN 9 8CYT ... BRN SPECMN 4 8CY_ ...XNER 8 8C_5 ... SMO FX1 20 8C_= LDX 1 TYPEINDEX(1) [RELATIVE MODE/NPU LIST POINTER 5 8C_S SPECMN 8 8D26 ADX 1 FX1 18 8D32 ADX 1 4 [CURRENT ENTRY POINTER 8 8DM6 LDX 5 0(1) 16 8DN2 BPZ 5 TB1 [NOT END OF LIST 19 8DNW ORX 4 GSIGN [END OF LIST : SET B0 OF X4 7 8DPQ TB1 SLC 5 1 19 8DQ9 # IF THE IPB IS A VIRTUAL 7900, ACCESS THE NEXT VIRTUAL 7900 10 8DQB # MODE/NPU SIZE ENTRY 9 8DQH SMO IADIN(3) 8 8DQN LDX 0 IPBSW 7 8DQT SLL 0 9 18 8DR2 BPZ 0 TESTENTRY [IPB NOT A VIRTUAL 7900 20 8DR7 BPZ 5 NOTMAC1 [NOT V7900 ENTRY : TRY NEXT ENTRY 19 8DR# BRN USEENTRY [V7900 ENTRY : USE THIS ENTRY 4 8DRF # 6 8DRL TESTENTRY 21 8DRR BNG 5 TEND [NO MORE APT ENTRIES : TAKE END OF 15 8DRY [LIST ACTION 5 8DS5 USEENTRY 7 8DW6 SRC 5 1 9 8DX2 ANDX 5 BITS22LS 18 8DXW STO 5 ACOMMUNE1(2) [STORE MODE/NPU REQUIRED 21 8DYM BXE 5 IMDNPU(3),YMODE [MATCH FOUND : CURRENT MODE/NPU VALID 8 8D_D #UNS JSKI36+JSKI38 16 8F29 XCHMD [CHANGMOD MACRO 21 8F32 SETNCORE P5LEN,3,AMXOR,IOUT,1[SET UP SEGMENT FOR ^CHANGE MODE^. 10 8FGL LDN 0 PRESET5(1) 9 8G2= LDN 1 IMOPTY(3) 11 8GFW STO 5 IMOPTY+P4LEN(3) 8 8G_G MOVE 0 P4LEN 9 8HF6 DSA 7 IPBIDE(3) 17 8HYQ CALL 5 OUTPT [OUTPUT THE MESSAGE. 20 8KCL LDXC 0 A1+1(3) [SHOULD NOT BE A DATA SEGMENT. 7 8KJS #UNS CCERROR 4 8KQ2 #SKI 8 8KX= BCC NSUPS 7 8L37 #UNS CCERROR 4 8L74 ( 17 8L=_ BCS NDAS [J UNLESS DATA SEG 8 8LBW CALL 5 NSU 8 8LGR BRN ZTE 4 8LLN NDAS 4 8LQK ) 7 8LWG BCHX 3 / 9 8M8? LDCH 0 A1+2(3) 8 8MG4 ERN 0 37 15 8MRT BZE 0 THILL [ILLEGAL CODE 8 8N5L ERN 0 56$37 18 8NCC BZE 0 YMODE [MODE CHANGED SUCCEEDED 8 8NP8 ERN 0 58$56 7 8P2_ #UNS CCERROR 4 8P#Q #SKI 4 8PLH ( 20 8PY# BNZ 0 SRONG [NOT UNAVAILABLE EITHER : GEOERR 20 8Q=5 BRN NXTX [UNAVAILABLE : COOR1 WITH X5 LINK 4 8QHW ) 7 8QTM #UNS CCERROR 4 8R7D ( 18 8RF9 BZE 0 NXTX [J IF AVAILABILITY WRONG 19 8RR2 CALL 5 NSW [NOTHING ELSE SHOULD BE WRONG 8 8S4R BRN ZTE 4 8SBJ ) 4 8SN* # 10 8T26 THILL LDCH 0 ACOMMUNE8(2) 21 8T?X ERN 0 6 [ILLEGAL TYPE ^MODE NOT AVAILABLE^ 18 8TKN BNZ 0 NILL [NOT ^MODE NOT AVAILABLE^ 8 8TXP #UNS JSKI36+JSKI38 4 8TY* ( 9 8TY_ LDX 0 AWORK3(2) 18 8T_K BPZ 0 NOTMAC1 [J IF NOT CHANGMOD MACRO 15 8W29 CALL 7 XUNBIT [UNSET BIT8 7 8W2T UPPLUS 1 5 8W3F NOTMAC1 4 8W45 ) 15 8W4Y BNG 4 TEND [END OF LIST 17 8W=R ADN 4 1 [UPDATE ENTRY POINTER 16 8W#P MHUNTW 1,AMXOR,ADCB [TRY NEXT ENTRY 15 8WBM LDX 3 1 [X3 -> ADCB 8 8WDL BRN NXMN 16 8WLF TEND LDX 1 FX1 [EXIT TO LINK+0 9 8WS# SMO AWORK3(2) 7 8X27 EXIT 1 0 7 8X46 #UNS CCERROR 4 8X65 #SKI 21 8X86 NILL GEOERR 1,ILLEGAL? [SHOULD NOT BE ILLEGAL FOR ANY OTHER 7 8X=P #UNS CCERROR 4 8X*# ( 8 8XCX NILL CALL 5 NSL 8 8XGG BRN ZTE 4 8XK5 ) 21 8XMQ # REASON. 5 8XQJ YMODE 8 8XTB #UNS JSKI36+JSKI38 4 8XY8 ( 9 8Y32 LDX 0 AWORK3(2) 17 8Y5S BPZ 0 NOTMAC2 [J IF NOT CHANGMOD 15 8Y8L CALL 7 XUNBIT [UNSET BIT8 16 8Y?D UPPLUS 2 [MODE CHANGED OK 5 8YB= NOTMAC2 4 8YF4 ) 20 8YHW MHUNTW 3,AMXOR,ADCB [LOCATE THE DEVICE CONTROL BLOCK. 17 8YM2 LDX 0 ACOMMUNE1(2) [STORE NEW MODE/NPU 9 8_6L STO 0 IMDNPU(3) 8 8_BD LDX 1 FX1 17 925W SMO AWORK3(2) [EXIT TO LINK + 1. 7 92KG EXIT 1 1 4 9356 # 21 93JQ # SUBROUTINE TO OUTPUT ^START INPUT^ AND (OPTIONALLY) ^SET PRIORITY^. 4 944B # 18 94J2 START SBX 0 1 [RELATIVISE & SAVE LINK. 9 953L STO 0 AWORK3(2) 20 95H= SMO 5 [SET UP OUTPUT BLOCK TO CONTAIN 9 962W OBEY ORDER(1) 11 96GG SETUPCORE 4,3,AMXOR,IOUT,1 15 9726 LDN 0 PRESET7(1) [START INPUT 21 97FQ LDN 1 IMOPTY(3) [(& CHANGE PRIORITY, IF NECESSARY). 7 97_B SMO 4 7 98F2 MOVE 0 0 9 98YL DSA 7 IPBIDE(3) 8 99D= BZE 5 SONLY 18 99XW BNG 5 SINSH [BULK INPUT : SINGLE SHOT 12 9=CG DSA 7 IPBIDE+P7LEN-P6LEN(3) 8 9=X6 BRN SONLY 8 9?BQ SINSH LDX 0 BIT11 20 9?WB ADS 0 IPBIDE(3) [START INPUT = 17 ; ONE SHOT = 18 18 9#B2 SONLY LDX 5 FX1 [DONT COOR1 AFTER CHAIN 8 9#TL BRN OUTPT 17 9**= XIT SMO AWORK3(2) [EXIT TO THE LINK. 7 9*SW EXIT 1 0 4 9B#G # 15 9BS6 # DEVICE INITIALISATION CODE FOR MOP TERMINALS. 4 9C?Q # 6 9CRB SK3IPBSCAN 21 9D?2 SETNCORE ADCBLEN,3,AMXOR,ADCB,,1,2[SET UP DCB FOR THIS IDENTIFIER. 17 9DQL LDN 4 PRESET1(1) [AND INITIALISE IT. 10 9F== LDN 5 ISTATUS(3) 10 9FPW STO 7 IDENTNO(3) 9 9G9G LDX 2 AWORK1(2) 8 9GP6 MOVE 4 P1LEN 9 9H8Q STO 2 IADIN(3) 21 9HNB HUNT2J 2,AMXOR,ADEVS,,SUIC [RING IT TO THE ROUTING BLOCK. 7 9J82 ADX 2 6 11 9J?J ... LDEX 0 A1+FOURTHWD(2) 8 9JC6 ... ANDX 0 #17 8 9JGN ... SBN 0 #15 18 9JL= ... BZE 0 XERL [J. ERROR LOGGING DEVICE 19 9JPT LDN 4 PRESET2+1(1) [COMPLETE DCB INITIALISATION 11 9JS4 LDEX 0 A1+FOURTHWD(2) 15 9JW? BZE 0 TMDCB [MOP CONSOLE 15 9JYG LDN 4 PRESET2V(1) [MOP DISPLAY 9 9K2P TMDCB LDN 5 ICHAR(3) 10 9K4Y MOVE 4 P2MOPLEN-1 8 9K65 ADN 3 A1 19 9K67 LDX 4 TYPEAH(1) [MASK OF TYPE BITS + AH BIT 11 9K69 ANDX 4 A1+FOURTHWD(2) 9 9K6? ERX 4 PVDUAH(1) 21 9K6* BZE 4 TLEAVE [LEAVE ATTACHED PVDUS UNINITIALISED 8 9K6C LDCT 4 #11 11 9K6F ANDX 4 A1+FOURTHWD(2) 10 9K6H ORX 4 A1+BPTR(2) 19 9K6K BZE 4 ZNOL [J UNLESS RINGED OR ONLINING 5 9K6M TLEAVE 8 9K6P LDCT 0 #20 11 9K6Q ANDX 0 A1+FOURTHWD(2) 11 9K6R ERS 0 A1+FOURTHWD(2) 8 9K6T BRN SUIC 4 9K6X ZNOL 18 9K7= CALL 4 OPEN [ATTEMPT TO OPEN DEVICE. 16 9KLW BRN STOP2 [J. IF NOT THERE. 20 9KWN ERN 5 3 [J. IF DEVICE TYPE INTERACTIVE. 8 9LB# BNZ 5 NOIDE 17 9M5Q LDCH 6 A1+4(3) [CHECK THE PRIORITY 8 9MKB SBN 6 16 8 9N52 BZE 6 PRIOK 21 9NJL LDN 6 1 [SET MARK TO REMEMBER TO CH. PRIORITY 18 9P4= PRIOK CALL 5 XCHNG [CHANGE MODE IF NECESSARY 17 9QH6 BRN STOP0 [J. IF CHANGE FAILED. 20 9R2Q LDX 5 6 [SWITCH WORD FOR PRIORITY CHANGE. 18 9RGB CALL 0 START [OUTPUT THE MESSAGE(S). 21 9S22 MHUNTW 3,AMXOR,ADCB [UNSET THE ^REPORT SUP. SEGMENTS^ BIT 7 9SFL LDCT 0 1 9 9S_= ERS 0 IWAIT(3) 10 9T74 SMO A1+FPTR(3) 9 9T92 LDEX 0 FOURTHWD 16 9T=Y ERN 0 #32 [IF PSEUDO VDU 16 9T#W BZE 0 STOP3 [JUMP TO SUICIDE 10 9TDW LDXC 0 ISTATUS(3) 8 9TYG BCS STOP3 20 9WD6 RCONS LDX 4 XMXMSK(1) [SET CONTEXT & REPORT MASK BITS 19 9WXQ SMO A1+FPTR(3) [EXTRACT THE ADEVS MODIFIER 17 9XCB NGX 5 BSTART [FOR USE BY MORNING. 10 9XX2 LDX 6 XCONTEXT(1) 9 9YBL LDEX 0 IBIL(3) 9 9YW= STO 4 AMXMSK(2) 8 9_*W SBN 5 A1 10 9_TG STO 6 CONTEXT(2) 15 =2*6 LDN 4 24 [IPB TYPE. 16 =2SQ LGEOG ,6 [IPB GEOG. NO. 19 =3#B STO 7 JSOURCE2(2) [SET UP THE JOBSOURCE WORDS 19 =3S2 STO 6 JSOURCE1(2) [FOR A MOP CONSOLE ON A 7900. 10 =4?L DCH 4 JSOURCE1(2) 9 =4R= LDX 4 WORD(1) 20 =5=W BZE 0 ZERO [J. IF BREAK-IN LEVEL CLEARED. 18 =5QG LDX 6 GSIGN [SET THE ^ASLEEP^ BIT. 9 =6=6 WAIT ORS 6 IWAIT(3) 20 =6PQ COOR1 [WAIT FOR END OF BREAK-IN STATE. 10 =79B MHUNTW 3,AMXOR,ADCB 10 =7P2 SMO A1+FPTR(3) 9 =88L LDX 0 FOURTHWD 16 =8N= SLL 0 2 [B2 : MOPPING OFF 8 =97W BNG 0 TMOF 16 =9MG LDEX 0 IBIL(3) [BREAK-IN LEVEL 8 ==76 BNZ 0 WAIT 21 ==LQ ZERO SMO A1+FPTR(3) [UNSET IPBIN'S SETTING UP BIT IF SET. 9 =?6B ANDS 4 FOURTHWD 18 =?L2 STOZ CPPTR(2) [CLEAR MOP CPAT'S CPPTR 21 =?NK TOSS HUNTW 2,AMXOR,IDATSG [DISCARD ANY REVERTED BIACKS OR VD DATA 9 =?R8 BNG 2 OHELLO 7 =?TR FREECORE 2 8 =?YB BRN TOSS 5 =#2_ OHELLO 19 =#5L ACROSS MORNING,3 [GO TO OUTPUT PRELIMINARIES. 20 =#78 ...TMOF LDX 3 A1+FPTR(3) [ENTRY IF MOPOFF WHILE SETTING UP 8 =#8Q ... SBN 3 A1 18 =#=# ...NOTON SMO A1+FPTR(3) [CLEAR THE RING ELEMENTS. 8 =#?W ... STOZ BPTR 19 =#*D ... LDCT 4 #24 [UNSET THE SETTING UP BITS. 10 =#C2 ... STOZ A1+BPTR(3) 11 =#DJ ... ANDX 4 A1+FOURTHWD(3) 11 =#G6 ... ERS 4 A1+FOURTHWD(3) 15 =#HN ... BRN SUIC [CLEAR UP. 4 =#K= # 18 =*4W STOP0 SMO AWORK1(2) [FIND THE OUTPUT ACTIVITY 9 =*JG LDX 3 IPBRING 9 =B46 SBN 3 IPBRING 7 =C8J #UNS CCERROR 4 =C*Q #SKI 8 =CH2 STOP4 LGEOG ,4 7 =CHN #UNS CCERROR 4 =CJB ( 9 =CK4 STOP4 LDXC 0 IPBSW(3) 18 =CKQ BCS STOP2 [J IF ERROR OR INOP SET 7 =CMS #UNS CCERROR 4 =CNG ( 8 =CP8 SMO FX2 18 =CPW STOZ AWORK3 [SHOW NOT CHANGMOD MACRO 7 =CQJ LDN 1 0 21 =CR= [ SO GO STRAIGHT ON AFTER MOP OFF BIT 18 =CRY STEZ [CAN COME HERE FROM OUTPT 10 =CSL MHUNTW 2,AMXOR,ADCB 8 =CT# ... LDCT 0 #102 10 =CW2 SMO A1+FPTR(2) 9 =CWN ANDX 0 FOURTHWD 14 =CXB LDX 2 FX2 [RESET X2 21 =CY4 ... BNZ 0 STO2G [J IF MOP OFFOR WRONG BIT SET IN ADEV 17 =CYQ BNZ 1 STEZRT [J IF CAME FROM OUTPT 4 =C_D ) 21 =C_L DOWN IPBSCANB,3 [REPORT ^THE WRONG TP FOR MOP USE IS 14 =C_N [LOADED^ 19 =C_Q [(IF NOT ALREADY REPORTED) 19 =C_S [REGARDLESS OF DEVICE TYPE 21 =C_W [AND SET UP A ^CLOSE^ IDENTIFIER SEG 20 =C_Y MHUNTW 3,AMXOR,IOUT [FIND THE ^CLOSE^ IDENTIFIER SEG 7 =N*H #UNS CCERROR 4 =NBS #SKI 4 =ND5 ( 8 =NFD #UNS JSKI36+JSKI38 17 =NLL STOZ AWORK3(2) [NOT CHANGMOD MACRO 4 =NP= ) 16 =NRW CALL 5 OUTPT [DO THE OUTPUT. 7 =P?G LDX 1 3 21 =QQB LDXC 0 A1+1(3) [J. IF DATA SEG. : DEVICE NOT STARTED 7 =QXJ #UNS CCERROR 4 =R4Q #SKI 8 =R=2 BCC NSUPS 7 =R?Y #UNS CCERROR 4 =R*W ( 17 =RCS BCS NZDA [J IF NOT DATA SEG 8 =RFQ CALL 5 NSU 8 =RHN BRN STOP2 4 =RKL NZDA 4 =RMJ ) 7 =RPL BCHX 3 / 20 =S9= LDCH 0 A1+2(3) [J. IF ^CLOSE IMPLEMENTED^ REPLY. 8 =SNW ERN 0 54 8 =T8G BZE 0 ZCLOS 7 =T*N #UNS CCERROR 4 =TGW #SKI 10 =TN6 GEOERR 1,NOTCLOSE 7 =TQ4 #UNS CCERROR 4 =TS2 ( 8 =TTY SMO FX1 18 =TXW LDN 5 STOP2 [EXIT AFTER CCERROR MACRO 8 =T_S CALL 2 ZEA2 10 =W3Q +CCNOTCLOSE 4 =W5N ) 5 =W7Q ZCLOS 19 =X72 STOP2 MHUNTW 3,AMXOR,ADCB [RESET THE DCB & UNRING IT. 10 =XLL STOP3 STOZ A1+BPTR(3) 10 =Y6= LDX 3 A1+FPTR(3) 9 =YCL STOZ BPTR(3) 5 =YP2 STOP5 8 =_2B LDCT 0 #20 10 =_?Q ANDX 0 FOURTHWD(3) 19 =_K6 ERS 0 FOURTHWD(3) [RESET THE ADEVS BLOCK ENTRY. 14 ?24Q BRN SUIC [FINISH. 4 ?25K ...[ 17 ?26D ...[ DEVICE INITIALISATION CODE FOR THE ERROR LOGGER 4 ?27? ...[ 4 ?286 ...XERL 20 ?28_ ... CALL 4 OPEN [THIS WILL RING ADCB AND ADEV'S 16 ?29S ... BRN STOP2 [OPEN FAILED 21 ?2=M ... BCT 5 NOIDE [J ILLEGAL FROM OPEN - MARK UNKNOW 21 ?2?G ... CALL 5 XCHNG [CHANGE MODE TO THAT IN THE TABLE 19 ?2#* ... BRN STOP2 [J CHNG MD DID NOT WORK 17 ?2*8 ... LDN 5 0 [START INPU ONLY 19 ?2B3 ... CALL 0 START [SUBROUTINE START INPUT 10 ?2BW ... MHUNTW 3,AMXOR,ADCB 8 ?2CP ... LDCT 0 #400 19 ?2DJ ... ADN 0 #2000 [INDICATE ACTIVITY ASLEEP 9 ?2FC ... ORS 0 IWAIT(3) 6 ?2G= ... COOR1 19 ?2H5 ... ACROSS IPBLOG,1 [GO ACROSS TO ERROR LOGGER 4 ?2JB # 20 ?342 # DEVICE INITIALISATION CODE FOR REMOTE OPERATORS (7023) CONSOLES. 4 ?3HL # 6 ?43= SK4IPBSCAN 21 ?4GW SETNCORE ADCB7023LEN,3,AMXOR,ADCB,,1,2[SET UP DCB FOR THIS IDENT. 17 ?52G LDN 4 PRESET1(1) [AND INITIALISE IT. 10 ?5G6 LDN 5 ISTATUS(3) 9 ?5_Q LDX 2 AWORK1(2) 8 ?6FB MOVE 4 P1LEN 17 ?6_2 ADN 5 P1LEN [MOVE IN NL SEQUENCE. 10 ?7DL LDN 4 PRESET3(1) 10 ?7Y= STO 7 IDENTNO(3) 9 ?8CW MOVE 4 P2OPSLEN 9 ?8XG STO 2 IADIN(3) 21 ?9C6 HUNT2J 2,AMXOR,ADEVS,,SUIC [RING IT TO THE ROUTING BLOCK. 7 ?9WQ ADX 2 6 8 ?=BB ADN 3 A1 8 ?=FG LDCT 4 #11 11 ?=JL ANDX 4 A1+FOURTHWD(2) 10 ?=MQ ORX 4 A1+BPTR(2) 20 ?=QW BNZ 4 TLEAVE [LEAVE UNINIALISED IF ONLINING 20 ?=W2 CALL 4 OPEN [ATTEMPT TO OPEN THE IDENTIFIER. 17 ??*L BRN STOP2 [J. IF OPEN FAILED. 20 ??T= ERN 5 3 [J. IF NOT CORRECT DEVICE TYPE. 8 ?#8_ BNZ 5 NOIDE 19 ?*RQ CALL 5 XCHNG [ATTEMPT TO CHANGE THE MODE. 19 ?B22 BRN STOP2 [J. IF FAILED TO CHANGE MODE. 16 ?BR2 LDN 5 0 [SET SWITCH WORD. 19 ?C=L CALL 0 START [ISSUE START INPUT COMMAND. 21 ?CQ= LGEOG ,5 [SET UP A JSOURCE1 & JSOURCE2 PAIR 20 ?D9W LDN 0 #77 [FOR USE BY IPBCONS IN SETTING UP 20 ?DPG STO 7 AWORK3(2) [CPATS TO DEAL WITH CONSOLE INPUT 8 ?F96 ORX 5 CACT 9 ?FNQ DCH 0 AWORK3(2) 9 ?G8B STO 5 AWORK4(2) 16 ?GN2 ACROSS MORNING,4 [AND OFF WE GO! 4 ?H7L # 21 ?HM= # ENTRY POINT TO CHECK THE IDF IF INPUT IS RECEIVED FROM AN IDLE IDENT. 4 ?J6W # 6 ?JLG SK2IPBSCAN 10 ?K66 ... ACROSS IPBSCANB,14 4 #P=B # 20 #PQ2 # ENTRY POINT TO INITIALISE IDENTIFIERS NEWLY DETACHED OR OFF-TEST 4 #Q9L # 6 #QP= SK5IPBSCAN 10 #R8W ACROSS IPBSCANB,11 4 *JKC # 20 *JKD # ENTRY POINT (FOR SEGMENT IDFPER) TO EXTRACT THE MODE/NPU SIZE FROM 16 *JKF # IPBSCAN AND COPY IT TO THE CURRENT ACTIVITY'S ADCB 4 *JKG # 6 *JKH SK8IPBSCAN 9 *JKJ CALL 7 SMDNPU 5 *JKK UP 21 *JKL SMDNPU [COPY IDEN'S MODE/NPU SIZE TO ADCB 10 *JKM MHUNTW 3,AMXOR,ADCB 10 *JKN SMO A1+FPTR(3) 9 *JKP LDEX 5 FOURTHWD 8 *JKQ ... ANDN 5 #17 5 *JKR ...SMDNPU1 7 *JKS ... SMO 5 20 *JKT ... LDX 1 TYPEINDEX(1) [(RELATIVE MODE/NPU LIST POINTER) 8 *JKW ... ADX 1 FX1 21 *JKY # IF IPB IS A VIRTUAL 7900 EXTRACT THE FIRST VIRTUAL 7900 20 *JK_ # ENTRY OF THE DEVICE TYPE OTHERWISE EXTRACT JUST THE 15 *JL2 # FIRST ENTRY OF THE DEVICE TYPE 9 *JL3 SMO IADIN(3) 8 *JL4 LDX 0 IPBSW 7 *JL5 SLL 0 9 18 *JL6 BPZ 0 SMNEXTRACT [IPB NOT A VIRTUAL 7900 21 *JL7 SNXVE ADN 1 1 [ASSUME FIRST ENTRY NOT A V7900 ENTRY 8 *JL8 LDX 0 0(1) 7 *JL9 SLC 0 1 19 *JL= BPZ 0 SNXVE [NOT A V7900 ENTRY : TRY NEXT 6 *JL? SMNEXTRACT 8 *JL* LDX 0 0(1) 8 *JLB LDX 1 FX1 17 *JLC ANDX 0 BITS22LS [(IGNORE BITS 0&1) 9 *JLD STO 0 IMDNPU(3) 7 *JLF EXIT 7 0 4 *K2N [ 17 *K2P [ ENTRY POINT TO CALL SUBROUTINE NEBUL FOR IPBSCANB 4 *K2Q [ 6 *K2R SK11IPBSCAN 18 *K2S HUNT2J 3,AMXOR,ADEVS,AMOPADDR(2),SUIC [HUNT ADEVS 7 *K2X LDX 0 6 7 *K2Y SLL 0 2 7 *K32 ADX 3 0 8 *K33 ADN 3 A1 10 *K34 MHUNTW 2,AMXOR,ADCB 18 *K35 [X3 - PTR TO IDENT IN ADEVS 17 *K36 [X2 - PTR TO ADCB BLK 8 *K37 CALL 7 NEBUL 21 *K38 RNEBUL2 [THIS LABEL MUST ALWAYS FOLLOW THIS CALL TO 16 *K39 ACROSS IPBSCANB,12 [RETURN TO IPBSCANB 4 *K3# ...[ 16 *K3C ...[ ENTRY FROM IPBSCANB TO DO THE ROUTINE RCONS 4 *K3G ...[ 6 *K3K ...SK12IPBSCAN 10 *K3N ... MHUNTW 3,AMXOR,ADCB 9 *K3R ... LDX 5 ICHARS(3) 8 *K3W ... BRN RCONS 17 *K49 XBI GEOERR 1,BREAKIN! [CANT HAVE BREAK-IN 11 *K52 MENDAREA 50,K100IPBSCAN 4 *KJL #END 8 ____ ...27241113000100000000