7 22FL #OPT K0PMDR=0 10 22_= #LIS K0PMDR>K0POST>K0ALLGEO 4 23DW # 15 23YG #SEG PMDR85 [M.C.D. MANN 4 24D6 # 19 24XQ # THIS SEGMENT CONTAINS THE 'CHAPTER CHANGING' 19 25CB # ROUTINES, THE CONVERSION ROUTINES, AND THE 18 25X2 # INPUT/OUTPUT ROUTINES USED THROUGHOUT PM 4 26BL # 19 26W= #OPT JCONO=5 [ VALIDATES CONVERSION FORMAT 21 27*W # [ IN BLOCK IDENTIFIER TABLE MACROS 9 27TG 8HPMDR 4 28*6 # 4 28SQ # 4 29#B # 10 29S2 # ENTRY POINT TABLE 4 2=?L # 4 2=R= # 11 2?=W SEGENTRY K1PMDR,XK1PMDR 4 2?QG # 4 2#=6 # 15 2#PQ # REPLACED ENTRY POINTS FOR SUBROUTINES 4 2*9B # 14 2*P2 # USED FROM SEGMENT PMREPLAC (Q.V.) 4 2B8L # 4 2BN= # 5 2C7W JJPMSEG 9 2CMG BRN XJPMSEG 5 2D76 JJGNO2 9 2DLQ BRN XJGNO2 5 2F6B JJGNO1 9 2FL2 BRN XJGNO1 5 2G5L JJDECN 9 2GK= BRN XJDECN 5 2H4W JJDECP 9 2HJG BRN XJDECP 5 2J46 JJDECS 9 2JHQ BRN XJDECS 5 2K3B JJDECDEC 9 2KH2 BRN XJDECDEC 5 2L2L JJOCT 8 2LG= BRN XJOCT 5 2L_W JJCHA 8 2MFG BRN XJCHA 5 2M_6 JJCON4 9 2NDQ BRN XJCON4 5 2NYB JJCON1 9 2PD2 BRN XJCON1 4 2PXL JJUP 8 2QC= BRN XJUP 5 2QWW JJPRINT 9 2RBG BRN XJPRINT 5 2RW6 JJPRINT1 9 2S*Q BRN XJPRINT1 5 2STB JJPRINT2 9 2T*2 BRN XJPRINT2 5 2TSL JJPRINTX 9 2W#= BRN XJPRINTX 6 2WRW JJSUBSREAD 10 2X?G BRN XJSUBSREAD 6 2XR6 JJBSADDSWAP 10 2Y=Q BRN XJBSADDSWAP 6 2YQB JJBSADDGEO 10 2_=2 BRN XJBSADDGEO 5 2_PL JJBSNUM 9 329= BRN XJBSNUM 5 32NW JJCTWIN 9 338G BRN XJCTWIN 6 33N6 JJSEGREAD 9 347Q BRN XSEGREAD 6 34MB JJSEGREAD2 9 3572 BRN XSEGREAD2 4 35LL # 4 366= # 9 36KW # MAIN DATA AREA 4 375G # 4 37K6 # 21 384Q # 1. UNIVERSALS - THESE CANNOT ALTER THEIR POSN. RELATIVE TO THE 21 38JB # START OF PMDR WITHOUT MENDIT'ING ALL PM SEGMENTS 21 3942 # I.E. ANY ADDITIONS SHOULD BE MADE AFTER EXISTING 21 39HL # UNIVERSALS,OR BY REPLACING ANY LOCALS USED 13 3=3= # TO FILL GAPS 4 3=GW # 4 3?2G # 20 3?G6 JDBASE [START ADDR.FOR PRINT BUFFERS AND 16 3?_Q [DUMPING ROUTINE 17 3#FB PRINTB1 [FIRST PRINT BUFFER 5 3#_2 #REP 31 9 3*DL #20202020 17 3*Y= PRINTB2 [SECOND PRINT BUFFER 5 3BCW #GAP 31 4 3BXG # 4 3CC6 # 20 3CWQ # THERE NOW FOLLOWS AN AREA FORMING PART OF TWO PSEUDO ACTIVITY 17 3DBB # BLOCKS,ANY CHANGES SHOULD BE MADE WITH GREAT CARE. 4 3DW2 # 4 3F*L PFD 16 3FT= XSTART +0 [BLOCK START (LP) 20 3G#W INONA +0 [=1 FOR NON AUTONOMOUS TRANSFER 16 3GSG XXSTART [BLOCK START (MT) 18 3H#6 IPX +0 [NON-ZERO IF F/S TRANSFER 19 3HRQ JBADMEND +0 [MEND CHECKSUM ERROR SWITCH 8 3J?B ALLPOST +1+32 19 3JR2 JUNITNO +0 [SET=UNIT NO. OF ALLOCATED LP 19 3K=L [SET -VE IF NO LP AVAILABLE 19 3KQ= JPMLEV +BPMLEV1 [FIXED CORE LISTING LENGTHS 19 3L9W +0 [SET TO [ENDFIX] BY PMWHATA 20 3LPG JDUMP +XJDUMP [USED BY PMDUMP FOR ENTRY INTO 16 3M96 [SEGMENT TABLE 4 3MNQ X 9 3N8B #REP CHAINADD-X+XSTART 8 3NN2 +0 16 3P7L YCHAD +0 [A 'CHAINADD.' 16 3PM= JLPGEOG +0 [LP'S GEOG. NO 17 3Q6W YYCHAD +0 [ANOTHER 'CHAINADD.' 18 3QLG JTABP [USED BY DUMPING ROUTINES 9 3R66 TABP +SEGTAB 20 3RKQ XJUMP +0 [SET TO HOLD SEGMENT ENTRY POINT 5 3S5B #SKI G4 21 3SK2 JCRUPT +1 [0 MEANS S.TAB WORD OR ENTRY IS CRUPT 21 3T4L APMBRKCHS +0 [SET BY PMBRKCHS IF CHAIN BREAK FOR 15 3TJ= [USE IN FS PM 16 3W3W JVARCRUPT +1 [USED BY PMCRABS 19 3WHG JMTGEOG +0 [GEOG NO. OF MT IF DUMPING PM 18 3X36 JMTREC [PART DEVICE RECORD FOR 20 3XGQ #GAP K53-K50 [MT(ONLY USED ON DUMPING TO MT) 8 3Y2B XCOMMA #34 8 3YG2 SPACE #20 5 3Y_L FLUSH 9 3_F= SPACEFUL #20202020 4 3_YW Y 8 42DG #REP CPPTR-Y+XSTART 8 42Y6 +0 19 43CQ JLPPTR +0 ['CPPTR' WORD FOR LP AND ITS 15 43XB JLPRW1 +0 [REPLY WORD 19 44C2 JMTPTR +0 ['CPPTR' WORD FOR MT AND ITS 15 44WL JMTRW1 +0 [REPLY WORD 4 45B= # 4 45TW # 20 46*G BLKSDMPD +0 [ COUNT OF BLOCKS WRITTEN TO MAG TAPE 5 46T6 SWITCH 19 47#Q EXCHANGE +0 [ SWITCH WORD FOR JPRINR ROUTINES 20 47SB JBUNCHBASE +XBUNCHBASE [ BASE FOR PMDUMPA BUNCHING ROUTINE 17 48#2 JBUNCHEND +XBUNCHEND [ END OF PMDUMPA ROUTINE 6 48RL #UNS JPMDA 19 49?= JDUMPBASE +JDBASE [ BASE FOR PMDUMPA OUTPUT ROUTINE 6 49QW #UNS JPMDA 4 4==G #SKI 19 4=Q6 JLPTOMTBASE +JDBASE [ BASE FOR PMDUMPA OUTPUT ROUTINE 4 4?9Q JTRA 17 4?PB PRINT 2:0,+0,+121,+PRINTB1.3 [LP CONTROL AREAS 13 4#92 2:0,+0,+121,+PRINTB2.3 6 4#NL #UNS JPSCF 4 4*8= ( 17 4*MW JSCFPTR +0 [PTR TO SCF DEVICE LIST 17 4B7G JSCFGEODMP +0 [PTR TO ICF DEVICE LIST 4 4BM6 ) 20 4C6Q JPCONREPLY 0 [CONSOLE REPLY FOR PMDUMPDA/MT 21 4CLB JPDLINK2 0 [LINK FOR DA PERI ROUTINE IN PMDUMP[ 20 4CRJ ...JSCFREC [DUMP FOR SAVED SCF DEVICE LIST 7 4CYQ ...#GAP K53-K50 4 4D62 # 19 4D9X ...BEGINCRAB +0 [HOLDS THE ADDRESS OF A LOCATION 19 4D*S ... [ON THE SWAP FILE FROM WHERE ON CRABS 16 4DFP ... [ARE WRITTEN BY PMCRABS SEGMENT 7 4DHM ...ERRORTYPE +0 17 4DJL ...JAFDTP +0 [POINTER TO FDTABLE 4 4DKL # 8 4F5= # 2. LOCALS 4 4FJW # 4 4G4G # 11 4GJ6 MESSC +10,10H CANCEL_* 9 4H3Q MESSD +2,4H_* 15 4HHB MESSB +24,24H _*UNIT PAPER LOW_* 18 4J32 MESSAGE +0 [ MESSAGE ADDRESS STORE 18 4JGL PCCA 63:0,0,64,+JCCBUF [CA TO READ T/W INPUT 9 4K2= MASK #17777777 9 4KFW MAGIC +7036875 8 4K_G X512 +512 8 4LF6 XFLAG +0 8 4LYQ XCOREADD +0 18 4MDB XCOUNT +0 [ ORIGINAL LENGTH OF TRANSFER 4 4MY2 # 4 4NCL # 21 4NX= # THE FOLLOWING IS TABLE OF PM SEGMENT ADDRESSES,LENGTHS AND ENTRY 19 4PBW # POINTS IN THE ORDER THEY ARE TO BE CALLED TOGETHER WITH AN 21 4PWG # INDICATOR DETERMINING THE CIRCUMSTANCES IN WHICH THEY ARE CALLED 14 4QB6 # THE THIRD PARAMETER OF MACRO PMSEG: 14 4QTQ # IF EQUAL 1 - ROUTINE ALWAYS ENTERED 19 4R*B # 2 - ROUTINE ENTERED IF GIVING NORMAL PM LISTING 20 4RT2 # 4 - ROUTINE ENTERED WHEN ACTUALLY DUMPING TO MAG TAPE 18 4S#L # 8 - ROUTINE ENTERED WHEN DUMPING REQUESTED 18 4SS= # 16 - ROUTINE ENTERED IF GIVING MINI-PM LISTING 17 4T?W # 32 - ROUTINE ALWAYS ENTERED UNLESS GEOSTOP 4 4TRG # 4 4W?6 # 5 4WQQ SEGTAB 6 4X=B #SKI IPL 4 4XQ2 ( 8 4Y9L FIXTRA JPMIPL 9 4YP= PMSEG IPLPM,1,1 4 4_8W ) 8 4_#2 ... FSHCODE AORB 4 4_C6 ...( 10 4_G= ... PMSEG CLOSEIPB,2,1 4 4_KB ...) 8 4_NG PMSEG PMSUMA,4,1 8 5286 PMSEG MOPPM,1,1 7 52*# ...#UNS ENHOPER 8 52GG ... PMSEG PMJOURNL,1,1 9 52MQ FIXTRA JPMIPB 8 537B PMSEG IPBPM,1,1 8 53M2 PMSEG PMLP,1,32 8 546L PMSEG PMJOBS,1,32 8 54L= PMSEG PMWHATA,1,32 5 555W XJDUMP 8 55KG PMSEG PMJOBS,1,4 10 5656 PMSEG PMSUMA,1,2+4+8+16 9 56JQ PMSEG PMENDNOS,1,16 9 574B PMSEG PMENDITS,1,16 8 57J2 PMSEG PMBUFFS,1,16 8 583L PMSEG PMDUMP,2,4 8 585T ... FSHCODE AORB 4 5884 ...( 5 588R ...#SKI G3 10 589G ... PMSEG PMFSB,2,16 10 58=? ... PMSEG PMBRKCHS,1,2 9 58#G ... PMSEG PMFSB,1,2 10 58BP ... PMSEG CLOSEIPB,3,1 4 58DY ...) 8 58H= PMSEG PMACT,1,16 8 592W PMSEG PMCHAP,1,16 8 59GG PMSEG PMFILE,1,16 9 5=26 PMSEG PMFIXSTO,1,16 8 5=FQ PMSEG PMCHAINS,1,2 6 5=_B #SKI 76? 8 5?F2 PMSEG PMCHECK,1,2 8 5?YL PMSEG PMACT,2,2 5 5#D= #SKI G4 4 5#XW ( 8 5*CG PMSEG PMFOUR,1,2 8 5*X6 PMSEG PMCHAINS,3,2 8 5BBQ PMSEG PMOBJ,1,2 8 5BWB PMSEG PMFOUR,2,2 4 5CB2 ) 5 5CTL #SKI G3 8 5D*= PMSEG PMOBJIII,1,2 8 5DSW PMSEG PMCHAINS,2,2 8 5F#G PMSEG PMBDTS,1,2 8 5FS6 PMSEG PMFILE,2,2 7 5F_# ... FSHSKIP 4 5G6G ...( 5 5G8= ...#SKI G3 8 5G=2 ... PMSEG PMFSB,2,16 8 5G?Q PMSEG PMBRKCHS,1,2 8 5GRB PMSEG PMFSB,1,2 4 5H38 ...) 8 5H?2 PMSEG PMDUMP,3,4 9 5HQL PMSEG PMDUMPMT,1,128 9 5J== PMSEG PMDUMPDA,1,64 8 5JPW PMSEG CLOSEIPB,1,1 9 5K9G FIXTRA JPMWIND 8 5KP6 PMSEG PMWINDDN,1,1 8 5L8Q PMSEG RESTART,1,1 4 5LNB # 4 5M82 # 4 5MML # 9 5N7= # END OF DATA AREA 4 5NLW # 4 5P6G # 16 5PL6 # ********************************************* 4 5Q5Q # 4 5QKB # 4 5R52 # 4 5RJL # 14 5S4= # ENTRY POINT FROM PM BOOTSTRAP 4 5SHW # 4 5T3G # 5 5TH6 XK1PMDR 9 5W2Q LDX 1 FXPMDR 10 5WGB ADS 1 JBUNCHBASE(1) 10 5X22 ADS 1 JBUNCHEND(1) 8 5X4K ... FSHCODE AORB 4 5X78 ...( 7 5X9R ... LDX 0 9 19 5X#B ... STO 0 ERRORTYPE(1) [ PRESERVE SYSTEM ERROR TYPE 4 5XB_ ...) 20 5XF= ... LDX 2 BINDEX [TEST TO SEE IF FDTABLE SET UP 9 5XHH ... TXU 2 BINDEX+1 18 5XKS ... BCC X2 [J IF NO LEAVING JAFDTP=0 8 5XN5 ... LDX 2 0(2) 8 5XQB ... LDX 2 0(2) 17 5XSM ... STO 2 JAFDTP(1) [POINTS TO FDTABLE 20 5XWY ...X2 LDN 1 JPMREPLAC [READ PMDR AND PMFSB REPLACERS 20 5X_= LDN 5 FXINPRIN+1 [ INTO CORE FOLLOWING FX WORDS 9 5YDW CALL 7 XSEGREAD 9 5YYG LDN 3 JPMDRBAS 9 5_D6 ... LDX 1 FXPMDR 11 5_XQ LDN 2 JPLACEND-JPMDRBAS 5 62CB REPLOOPX 20 62X2 ... ADS 1 0(3) [ ADD FXPMDR TO PMDRB REPLACERS 20 63BL ADN 3 1 [ AND BUFFER ADDRESSESS 9 63W= BCT 2 REPLOOPX 10 6477 ... ADS 1 PRINT+3(1) 10 64D4 ... ADS 1 PRINT+7(1) 10 64N_ ... LDX 4 JSCFPTR(1) 18 64_W ... BZE 4 XJPMSEG [J IF NO SCF RUNNING,ELSE 17 65=R ... LDN 5 JSCFREC(1) [SAVE SCF DEVICE LIST 9 65HN ... MOVE 4 K53-K50 2 65SQ 4 66#B # 4 66S2 # 15 67?L # MOST OVERLAYS RETURN TO THIS POINT 13 67R= # TO READ DOWN NEXT OVERLAY 4 68=W # 4 68QG # 5 69=6 XJPMSEG 9 69PQ LDX 1 FXPMDR 16 6=9B LDX 3 TABP(1) [ LOAD POINTER 9 6=P2 ST SMO FXPMDR 18 6?8L LDX 6 0(3) [ LOAD ENTRY CONDITIONS 14 6?N= ANDX 6 ALLPOST(1) [ ENTER ? 16 6#7W ADN 3 2 [ MOVE UP POINTER 17 6#MG BZE 6 ST [ J IF NOT TO ENTER 20 6*76 LDX 5 FXPM1 [ CORE ADDRESS TO READ OVERLAY TO 16 6*LQ STO 3 TABP(1) [ STORE POINTER 19 6B6B SBN 3 2 [ GO BACK TO CURRENT ENTRY 9 6BL2 SMO FXPMDR 19 6C5L LDX 1 1(3) [ GET SECOND WORD OF ENTRY 7 6CK= LDN 2 0 18 6D4W SRL 12 12 [ SEGMENT NO. NOW IN X1 18 6DJG SRL 2 12 [ ENTRY POINT NOW IN X2 7 6F46 LDX 7 2 9 6FHQ CALL 6 XSEGREAD2 19 6G3B # ROUTINE TO READ OVERLAYS FROM PROGRAM FILE 4 6GH2 # 13 6H2L # ENTRY REQUIRMENTS:- 4 6HG= # 14 6H_W # X1 SEGMENT NUMBER 18 6JFG # X5 CORE ADDRESS TO READ DOWN TO 4 6J_6 # 15 6KDQ # ENTRY POINT XSEGREAD2 NEEDS 17 6KYB # JUMP HOLDING THE K?PM?? VALUE 13 6LD2 # X7 ENTRY POINT 4 6LXL # 17 6MC= # ON EXIT ALL ACCS WILL BE DESTROYED 4 6MWW # 14 6NBG # EXITS ARE AS FOLLOWS :- 4 6NW6 # 19 6P*Q # XSEGREAD INSTRUCTION AFTER CALL 20 6PTB # XSEGREAD2 ENTRY POINT OF NEW OVERLAY 4 6Q*2 # 21 6QSL # ENTRY POINT XSEGREAD2 ALSO UPDATES APPROPRIATE FX WO 4 6R#= # 6 6RRW XSEGREAD2 18 6S?G ADX 7 5 [ MAKE ENTRY POINT ABSOLUTE 5 6SR6 XSEGREAD 9 6T=Q SMO FXPMFXNT 21 6TQB LDX 2 0(1) [ GET D/L WORD FROM SEGMENT NUMBER 7 6W=2 LDN 3 0 8 6WPL SRL 23 15 16 6X9= SRL 3 2 [ D IS NOW IN X3 16 6XNW SLL 2 2 [ L IS NOW IN X2 9 6Y8G SMO FXPMDR 15 6YN6 STO 7 XJUMP [ SET UP EXIT 17 6_7Q LDN 7 1 [ READ DOWN SEGMENT 20 6_MB SMO FXPMDR [ USING PSEUDO PMBSADD MACRO CALL 20 7272 STO 7 INONA [ TO AVOID A REPLACED CALL BEFORE 17 72LL STOZ IPMBS [ PMREPLAC IS IN CORE 9 736= ... STO 2 IPMBS+2 9 73KW ... STO 5 IPMBS+3 8 745G ... STO 3 IUBSA 9 7642 SMO FXPMDR 8 76HL STOZ IPX 10 773= CALL 0 XJBSADDGEO 6 77GW NULL 9 782G SMO FXPMDR 8 78G6 LDX 7 XJUMP 8 78_Q BRN (7) 4 79FB # 4 79_2 # 14 7=DL # SUBROUTINE XBSADD 14 7=Y= # AND XBSNUM 4 7?CW # 13 7?XG # ON ENTRY X0 IS LINK 4 7#C6 # 19 7#WQ # ON EXIT X5 IS THE ONLY ACCUMULATOR DEFINED 4 7*BB # 4 7*W2 # 5 7B*L XJBSNUM 8 7BT= SMO FXPM1 9 7C#W LDX 7 JBSPTR 8 7CSG STO 7 JPDL 8 7D#6 STOZ IPMBS 8 7DRQ LDN 7 512 9 7F?B STO 7 IPMBS+2 8 7FR2 SMO FXPM2 9 7G=L LDX 7 JTRDATUM 9 7GQ= BRN XBSADD 6 7H9W XJBSADDSWAP 9 7HPG LDX 7 JSWAPDR 8 7J96 STO 7 JPDL 9 7JNQ LDX 7 JSWAPFD 9 7K37 ... SMO FXPMDR 9 7K*J ... ADX 7 JAFDTP 8 7KN2 SBN 7 A1 9 7L7L BRN XBSADD 6 7LM= XJBSADDGEO 9 7M6W LDX 7 GEOBSPTR 8 7MLG STO 7 JPDL 8 7N66 LTYPE 7,2 7 7NKQ SBN 2 9 9 7P5B SMO FXPMDR 15 7PK2 STOZ XFLAG [ PRESET FLAG 15 7Q4L BZE 2 XY [ J IF DRUM 8 7QJ= LDX 1 IUBSA 17 7R3W SRL 12 7 [ ROUND TO 128 WORDS 16 7RHG SLL 1 7 [ ROUNDED DOWN 15 7S36 SRL 2 17 [ REMAINDER 17 7SGQ BZE 2 XY [ J IF NO REMAINDER 19 7T2B STO 1 IUBSA [ RESET BACKING STORE ADDRESS 9 7TG2 LDX 1 IPMBS+2 9 7T_L SMO FXPMDR 17 7WF= STO 1 XCOUNT [ SAVE ORIGINAL COUNT 9 7WYW SMO FXPMDR 18 7XDG STO 2 XFLAG [ SET FLAG = REMAINDER 16 7XY6 ADS 2 IPMBS+2 [ INCREASE COUNT 19 7YCQ LDX 2 IPMBS+3 [ SAVE START ADDRESS IN CORE 9 7YXB SMO FXPMDR 9 7_C2 STO 2 XCOREADD 9 7_WL XY LDX 7 BINDEX 5 82B= XBSADD 9 82TW SMO FXPMDR 8 83*G STO 7 PFD 15 83T6 STO 0 JLINK [ STORE LINK 9 84#Q CALL 2 XLTCOMP 9 84SB XB SMO FXPMDR 8 85#2 LDX 0 IPX 9 85RL SMO FXPMDR 8 86?= LDX 1 PFD 18 86QW BNZ 0 XBSNUM [ J IF CALLED BY PMBSNUM 11 87=G DATUMADD IUBSA,1,IPMBS+2 8 87Q6 BRN XBA 5 889Q XBSNUM 11 88PB DATUMBLK IUBSA,1,IPMBS+2 20 8992 XBA BNZ 1 X1 [ TEST FOR VALID TRANSFER LENGTH 8 89NL BNZ 2 X1 19 8=8= ... BRN (JLINK) [ EXIT 0 IF OFF END OF FILE 20 8?7G X1 SBS 2 IPMBS+2 [ UPDATE REMAINING WORD TO MOVE 9 8?M6 STO 2 JLINK2 18 8#6Q XA DCA JPDL,STO,1,DTSA [ LOAD UP CONTROL AREA 8 8#LB LDX 1 IPMBS 11 8*62 DCA JPDL,DLA,1,MODE 9 8*KL LDX 1 IPMBS+2 8 8B5= BZE 2 XD2 7 8BJW LDX 1 2 8 8C4G BRN XD1 19 8CJ6 XD2 STOZ IPMBS+2 [ RESET IF O.K. IN ONE GO 11 8D3Q XD1 DCA JPDL,STO,1,COUNT 9 8DHB LDX 1 IPMBS+3 11 8F32 DCA JPDL,STO,1,CTSA 9 8FGL XBB LDN 1 JXSTART 16 8G2= GPERI JPDL,1,NC [ DO TRANSFER 17 8GFW LDX 0 IPMBS+2 [ ANY MORE TO DO ? 8 8G_G BNZ 0 XE 9 8HF6 SMO FXPMDR 8 8HYQ LDX 0 INONA 8 8JDB BZE 0 XK 9 8JY2 CALL 2 XLTCOMP 9 8KCL SMO FXPMDR 8 8KX= LDX 2 XFLAG 18 8LBW BZE 2 XK [ J IF SIMPLE TRANSFER 9 8LWG SMO FXPMDR 18 8MB6 LDX 7 XCOREADD [ START ADDRESS IN CORE 7 8MTQ LDX 6 7 20 8N*B ADX 6 2 [ START ADDRESS OF AREA REQUIRED 9 8NT2 LDX 1 FXPMDR 9 8P#L SMO FXPMDR 17 8PS= LDX 2 XCOUNT [ LENGTH TO BE MOVED 19 8Q?W MOVX 2 [ MOVE SO AS TO GET OUR BIT 8 8QRG XK LDX 0 JLINK 7 8R?6 EXIT 0 1 9 8RQQ XE CALL 2 XLTCOMP 9 8S=B LDX 0 JLINK2 15 8SQ2 ADS 0 IUBSA [ RESET B/S 15 8T9L ADS 0 IPMBS+3 [ RESET CORE 16 8TP= BRN XB [ RETURN FOR MORE 5 8W8W XLTCOMP 19 8WNG XC JBUSY JPDL,XC [ WAIT TO END OF TRANSFER 19 8X86 LTYPE JPDL,3 [ GET TYPE OF DEVICE IN X3 15 8XMQ LDX 4 JPDL+1 [ LOAD REPLY 7 8Y7B SLC 4 6 21 8YM2 ANDN 4 15 [ FORGET JUST REACHING END OF CYLDER 17 8_6L TXU 3 JEDS [ B/S DEVICE EDS8 ? 8 8_L= BCS XD 19 925W ANDN 4 #15 [ AMEND REPLY WORD IF EDS8 18 92KG XD BNZ 4 XFAIXL [ J IF TRANSFER NOT O.K. 7 9356 EXIT 2 0 5 93JQ XFAIXL 8 944B ANDN 4 14 8 94J2 LDX 3 JPDL 9 953L CALL 7 XJGNO2 9 95H= LDN 3 JPMESS1 8 962W BNZ 4 XG 9 96GG LDN 3 JPMESS 8 9726 XG STO 5 3(3) 9 97FQ CALL 7 (JCONOUT) 20 97_B XH JDISENG JPDL,XH [ WAIT FOR UNIT TO BE REENGAGED 9 98F2 LDN 1 JXSTART 15 98YL GPERI JPDL,1,NC [ TRY AGAIN 9 99D= BRN XLTCOMP 4 99XW # 16 9=CG # SUBROUTINE TO READ SUBTYPE OVERLAYS INTO CORE 4 9=X6 # 11 9?BQ # CALLED BY MACRO PMSUBSREAD 4 9?WB # 6 9#B2 XJSUBSREAD 9 9#TL STO 7 JLINK7 10 9**= PMDLGET PMSUBSA,3,1 10 9*SW PMDLGET PMSUBSB,,2 7 9B#G ADX 1 2 10 9BS6 PMDLGET PMSUBSC,,2 7 9C?Q ADX 1 2 11 9CRB PMBSADD GEO,0,1,0,3,,XSE 9 9D?2 LDX 7 JLINK7 7 9DQL EXIT 7 1 9 9F== XSE BRN (JLINK7) 4 9FPW # 4 9G9G # 20 9GP6 # THE FOLLFWING S/R GETS GEOG NO OF DEVICE WHOSE DEVICE RECORD 11 9H8Q # POINTER IS IN X3, LINK X7. 4 9HNB # 5 9J82 XJGNO2 7 9JML LGEOG 3,6 4 9K7= # 20 9KLW [ ROUTINE TO CONVERT 9-BIT BINARY NO. MAX VALUE 511 TO 3 DEC DIGITS 11 9L6G # ENTRY X6=NO. IN BINARY 17 9LL6 [ EXIT X5 = GEOG NO IN CHAR POS 1,2,3 PRECEDED BY SPACE 9 9M5Q [ X3 UNDEFINED 10 9MKB # X6=UNDEFINED 9 9N52 # X7=LINK 4 9NJL # 5 9P4= XJGNO1 17 9PHW LDCT 3 #200 [ PUTS SPACE CM IN 8 9Q3G DVS 5 JTEN 17 9QH6 DCH 5 3 [ PUT UNITS DIGIT IN 8 9R2Q DVS 5 JTEN 18 9RGB BNZ 6 SKIP [ TEST IF HUNS DIGIT = 0 19 9S22 LDN 6 #20 [ IF SO, OVERWRITE WITH SPACE 21 9SFL BNZ 5 SKIP [ IF HUNS DIGIT SUPPRESSED TEST TENS 17 9S_= LDN 5 #20 [ IF ZERO, SUPPRESS 4 9TDW SKIP 21 9TYG SLL 56 6 [ LEFT JUSTIFY HUN & TENS 1 CH.POS 7 9WD6 SLL 6 6 7 9WXQ ORX 5 6 7 9XCB ORX 5 3 7 9XX2 EXIT 7 0 4 9YBL # 12 9YW= # DECIMAL CONVERSION ROUTINES 9 9_*W # ENTRY X7=LINK 10 9_TG # X5=BINARY NO. 12 =2*6 # JPMOD=OUTPUT MODIFIER 10 =2SQ # EXIT X5=UNCHANGED 14 =3#B # JPMOD=UPDATED OUTPUT MODIFIER 10 =3S2 # X7,X3,X6=UNDEFINED 4 =4?L # 19 =4R= # ROUTINE TO CONVERT A BINARY NUMBER TO DECIMAL CHARS (N) 4 =5=W # 5 =5QG XJDECN 19 =6=6 STO 5 JWLINK [KEEP RECORD OF BINARY NO. 15 =6PQ XDECA LDX 3 JPMOD [OUTPUT MOD. 9 =79B XDECB SMO FXPMDR 18 =7P2 MPY 5 MAGIC [GET D-L NO. IN X5 AND X6 15 =88L STO 7 JLINKA [STORE LINK 14 =8N= LDN 7 6 [COUNT 7 =97W MODE 1 20 =9MG XDECC CBD 5 0(3) [CONVERT 6 CHARS, ZERO SUPPRESS 19 ==76 BCHX 3 / [AND STORE IN OUTPUT BUFFER 8 ==LQ BCT 7 XDECC 18 =?6B MODE 0 [CONVERT 7TH CHAR. AND 18 =?L2 CBD 5 0(3) [STORE IN OUTPUT BUFFER 7 =#5L BCHX 3 / 19 =#K= STO 3 JPMOD [STORE UPDATED OUTPUT MOD. 19 =*4W LDX 5 JWLINK [RE-SET X5 WITH BINARY NO. 13 =*JG BRN (JLINKA) [EXIT 4 =B46 # 20 =BHQ # ROUTINE TO CONVERT A BINARY NO. TO DECIMAL CHARECTERS (N.N) 4 =C3B # 5 =CH2 XJDECP 9 =D2L STO 7 JLINKB 19 =DG= STO 5 JWLINK [KEEP RECORD OF BINARY NO. 9 =D_W SMO FXPMDR 17 =FFG ANDX 5 MASK [MASK OUT BITS 0 & 1 18 =F_6 CALL 7 XDECA [CONVERT TO DEC. CHARS 8 =GDQ LDN 7 #36 21 =GYB DCH 7 0(3) [DEPOSIT '.' CHAR. IN OUTPUT BUFFER 7 =HD2 BCHX 3 / 7 =HXL LDX 7 5 21 =JC= SRL 7 22 [DEPOSIT CHAR. BITS OF BINARY NO. AS 18 =JWW DCH 7 0(3) [CHARACTER IN OUTPUT AREA 7 =KBG BCHX 3 / 17 =KW6 STO 3 JPMOD [UPDATE OUTPUT MOD. 13 =L*Q BRN (JLINKB) [EXIT 4 =LTB # 20 =M*2 # ROUTINE TO CONVERT BINARY NO. TO DECIMAL CHARACTERS (+ OR - N) 4 =MSL # 5 =N#= XJDECS 9 =NRW STO 5 JWLINK 15 =P?G STO 7 JLINKB [STORE LINK 20 =PR6 LDX 3 JPMOD [UPDATE OUTPUT MOD. TO CATER FOR 15 =Q=Q BCHX 3 / [ '+(-)'SIGN 9 =QQB SMO FXPMDR 8 =R=2 LDX 5 MAGIC 9 =RPL LDXC 6 JWLINK 8 =S9= BCC POS 8 =SNW ... BZE 6 SPECL 9 =T8G NGX 6 JWLINK 7 =TN6 POS MPY 5 6 9 =W7Q SPECL CALL 7 XDECB+2 7 =WMB XDECE SLC 3 2 7 =X72 SBN 3 1 18 =XLL SRC 3 2 [BACKSPACE OUTPUT MOD. 8 =Y6= LDCH 7 0(3) 16 =YKW SBN 7 #20 [TEST AND J IF 16 =_5G BNZ 7 XDECE [NOT SPACE CHAR. 13 =_K6 LDN 7 #33 ['+' 8 ?24Q BPZ 5 XDECF 13 ?2JB LDN 7 #35 ['-' 21 ?342 XDECF DCH 7 0(3) [DEPOSIT '+(-)' CHAR. IN OUTPUT BUF. 9 ?3HL BRN (JLINKB) 4 ?43= # 18 ?4GW # ROUTINE TO CONVERT BINARY NO. TO DECIMAL CHARS. (N/N) 18 ?52G # WHEN USING THIS ROUTINE THE OUTPUT MODIFIER (JPMOD) 18 ?5G6 # MUST BE POSITIONED TWO CHARACTERS PLACES PAST WHERE 12 ?5_Q # THE PUTOUT AREA IS TO START 4 ?6FB # 5 ?6_2 XJDECDEC 9 ?7DL STO 7 JLINKB 9 ?7Y= STO 5 JLINK5 18 ?8CW ANDN 5 #7777 [GET BITS 12-23 OF WORD 17 ?8XG CALL 7 XDECA [CONVERT BITTOM BITS 7 ?9C6 SBN 3 3 19 ?9WQ BCHX 3 / [BACKSPACE OUTPUT MODIFIER 9 ?=BB LDX 5 JLINK5 18 ?=W2 SRL 5 12 [GET BITS 0-11 OF WORD 9 ??*L SMO FXPMDR 19 ??T= MPY 5 MAGIC [GET D-L NIUMBER IN X5 AND X6 16 ?##W MODE 1 [ZERO SUPPRESSION 17 ?#SG CBD 5 0(3) [FORGET FIRST SPACE 7 ?*#6 LDN 7 5 20 ?*RQ XDD CBD 5 0(3) [CONVERT ALL BUT ONE CHARACTER 7 ?B?B BCHX 3 / 8 ?BR2 BCT 7 XDD 20 ?C=L MODE 0 [CHANGE MODE FOR LAST CHARACTER 18 ?CQ= CBD 5 0(3) [CONVERT LAST CHARACTER 7 ?D9W BCHX 3 / 8 ?DPG LDN 7 #37 17 ?F96 DCH 7 0(3) [DUMP '/' INTO NUMBER 9 ?FNQ LDX 5 JLINK5 9 ?G8B BRN (JLINKB) 4 ?GN2 # 16 ?H7L # ROUTINE TO CONVERT BINARY NO. TO OCTAL CHARS. 9 ?HM= # ENTRY X7=LINK 10 ?J6W # X5=BINARY NO. 11 ?JLG # JPMOD=OUTPUT MOD. 10 ?K66 # EXIT X5=UNCHANGED 13 ?KKQ # X3,JPMOD=UPDATED OUTPUT MOD. 10 ?L5B # X7,X6=UNDEFINED 4 ?LK2 # 5 ?M4L XJOCT 9 ?MJ= STO 7 JLINKA 9 ?N3W STO 5 JWLINK 16 ?NHG LDX 3 JPMOD [GET OUTPUT MOD. 14 ?P36 LDN 7 9 [COUNT 16 ?PGQ LDN 6 #23 [GET '#' CHAR. 16 ?Q2B OCT DCH 6 0(3) [DEPOSIT CHAR. 7 ?QG2 BCHX 3 / 7 ?Q_L STOZ 6 17 ?RF= SLC 56 3 [GET NEXT OCTAL CHAR. 19 ?RYW BCT 7 OCT [J UNTIL ALL CHARS. DEPOSITED 9 ?SDG LDX 5 JWLINK 17 ?SY6 STO 3 JPMOD [UPDATE OUTPUT MOD. 13 ?TCQ BRN (JLINKA) [EXIT 4 ?TXB # 16 ?WC2 # ROUTINE TO CONVERT BINARY NO. TO CHARACTERS 9 ?WWL # ENTRY X7=LINK 11 ?XB= # X5=BINARY NUMBER 11 ?XTW # JPMOD=OUTPUT MOD. 10 ?Y*G # EXIT X5=UNCHANGED 13 ?YT6 # X6,JPMOD=UPDATED OUTPUT MOD. 10 ?_#Q # X7=UNDEFINED 4 ?_SB # 9 #2#2 XJCHA STO 7 JLINKA 7 #2RL LDN 6 5 15 #3?= LDX 7 JPMOD [OUTPUT MOD. 7 #3QW MVCH 6 4 17 #4=G STO 7 JPMOD [UPDATE OUTPUT MOD. 9 #4Q6 BRN (JLINKA) 4 #59Q # 4 #5PB # 21 #692 # ROUTINE TO CONVERT A BINARY NO. TO DECIMAL(N.N),OCTAL,CHARS. AND 10 #6NL # INSTRUCTION FORMATS 9 #78= # ENTRY X7=LINK 10 #7MW # X5=BINARY NO. 11 #87G # JPMOD=OUTPUT MOD. 10 #8M6 # EXIT X1,X5=UNCHANGED 13 #96Q # JPMOD=UPDATED OUTPUT MOD. 12 #9LB # ALL OTHER ACCS UNDEFINED 4 #=62 # 5 #=KL XJCON4 9 #?5= STO 7 JLINKC 9 #?JW STO 5 JWLINK 7 ##4G LDN 4 1 17 ##J6 CALL 7 XJDECP [CONVERT TO DEC (N.N) 17 #*3Q ADS 4 JPMOD [UPDATE OUTPUT MOD. 17 #*HB CALL 7 XJCHA [CONVERT TO CHARS. 8 #B32 ADS 4 JPMOD 16 #BGL CALL 7 XJOCT [CONVERT TO OCTAL 16 #C2= ADX 4 JPMOD [GET OUTPUT MOD. 9 #CFW XCON STO 1 JLINKB 10 #C_G ... LDN 6 K1PMINPRIN 9 #DF6 LDX 1 FXINPRIN 7 #DYQ SMO 1 20 #FDB CALL 0 (6) [CONVERT TO INSTRUCTION FORMAT 9 #FY2 LDX 1 JLINKB 9 #GCL LDX 5 JWLINK 9 #GX= BRN (JLINKC) 4 #HBW # 18 #HWG # ROUTINE TO CONVERT BINARY NO. TO INSTRUCTION FORMAT 11 #JB6 # ENTRY/EXIT AS FOR JCON4 4 #JTQ # 5 #K*B XJCON1 9 #KT2 STO 7 JLINKC 8 #L#L LDX 4 JPMOD 9 #LS= STO 5 JWLINK 8 #M?W BRN XCON 4 #MRG # 19 #N?6 # ROUTINE TO UPDATE PRINT BUFFER MODIFIER BY GIVEN NUMBER OF 10 #NQQ # CHARACTER POSITIONS 11 #P=B # ENTRY JPMOD=OUTPUT MOD. 19 #PQ2 # WORD FOLLOWING CALL ORDER=NO.OF CHAR. POS. TO UPDATE 9 #Q9L # EXIT X7=LINK 13 #QP= # X6,JPMOD=UPDATED OUTPUT MOD. 4 #R8W # 4 #RNG XJUP 8 #S86 LDX 6 JPMOD 7 #SMQ SLC 6 2 7 #T7B SMO 7 7 #TM2 ADX 6 0 7 #W6L SRC 6 2 8 #WL= STO 6 JPMOD 7 #X5W EXIT 7 1 4 #XKG # 12 #Y56 # LINE PRINTER OUTPUT ROUTINES 10 #YJQ # ENTRY X7=LINK 12 #_4B # EXIT X7,X3,X5,X6=UNDEFINED 18 #_J2 # JOZ,JPMOD=START ADDR. OF CURRENT PRINT BUFFER 4 *23L # 17 *2H= # ROUTINE TO THROW TO TOP OF FORM AND PRINT A LINE 4 *32W # 5 *3GG XJPRINT 13 *426 LDN 6 #51 [PFCC 7 *4FQ BRN P 4 *4_B # 15 *5F2 # ROUTINE TO THROW A LINE AND PRINT A LINE 4 *5YL # 5 *6D= XJPRINT1 13 *6XW LDN 6 #41 [PFCC 7 *7CG BRN P 4 *7X6 # 16 *8BQ # ROUTINE TO THROW TWO LINES AND PRINT A LINE 4 *8WB # 5 *9B2 XJPRINT2 13 *9TL LDN 6 #42 [PFCC 15 *=*= P STO 7 JLINKB [STORE LINK 14 *=SW STO 0 JLINK0 [STORE X0 14 *?#G STO 1 JLINK1 [STORE X1 9 *?S6 SMO FXPMDR 19 *#?Q LDX 1 SWITCH [POINTER TO CURRENT LP PCA 9 *#RB SMO FXPMDR 20 **?2 LDX 3 PRINT+3(1) [GET ADDR. OF CURRENT LP BUFFER 9 **QL SMO FXPMDR 10 *B== LDX 5 JBUNCHBASE 8 *BPW BRN (5) 6 *C9G XBUNCHBASE 15 *CP6 STO 6 0(3) [STORE PFCC 18 *D8Q ERN 1 4 [POINTER TO OUTPUT BUFFER 7 *DNB STOZ 3 9 *F82 P1 SMO FXPMDR 19 *FML LDX 5 JLPRW1 [LOOP IF PREVIOUS TRANSFER 17 *G7= BNG 5 P1 [STILL IN PROGRESS 7 *GLW SLC 5 5 17 *H6G BPZ 5 P4 [J IF LP ALLOCATED 19 *HL6 BNZ 3 P5 [J IF MESSAGE ALREADY OUTPUT 19 *J5Q ...P9 LDN 3 JPMESS [SET UP 'UNIT NN FIX' MESSAGE 9 *JKB P7 CALL 0 PTWOUT 9 *K52 P5 SMO FXPMDR 18 *KJL LDN 3 XSTART [GET BLOCK START FOR LP 17 *L4= GPERI ,3,NC [REPEAT PREVIOUS TRANSFER 8 *LHW BRN P1 7 *M3G P4 SRC 5 2 18 *MH6 BPZ 5 P8 [J IF LAST TRANSFER OK 5 *MKP ...#UNS AR1 4 *MN# ...( 9 *MQX ... LDX 6 JLPPTR 17 *MTG ... JHLFDON 6,P9 [J IF HALFDONEBIT SET 4 *MY5 ...) 20 *N2Q LDN 3 JPMESS1 [SET UP 'UNIT NN FAIL' MESSAGE 8 *NGB BRN P7 7 *P22 P8 SRC 5 1 9 *PFL SMO FXPMDR 9 *P_= LDX 6 JLPPTR 19 *QDW BPZ 5 P2 [J IF NO PAPER LOW INDICATED 9 *QYG SMO FXPMDR 8 *RD6 LDN 3 MESSB 19 *RXQ CALL 0 PTWOUT [OUTPUT 'PAPERLOW' MESSAGE 9 *SCB SMO FXPMDR 9 *SX2 LDX 6 JLPPTR 15 *TBL DISENGPER 6 [DISENGAGE LP 19 *TW= P6 JDISENG 6,P6 [LOOP TILL PRINTER OPERABLE 9 *W*W P2 SMO FXPMDR 9 *WTG LDX 1 SWITCH 9 *X*6 SMO FXPMDR 10 *XSQ LDX 5 PRINT+3(1) 20 *Y#B DCA 6,STO,5,CTSA [SET UP CURRENT TRANSFER START ADDR 9 *YS2 SMO FXPMDR 9 *_?L LDN 3 XSTART 15 *_R= GPERI ,3,NC [INITIATE TRANSFER 21 B2=W ERN 1 4 [SET POINTER TO OTHER BUFFER - NOW 9 B2QG SMO FXPMDR 16 B3=6 STO 1 SWITCH [CURRENT BUFFER 9 B3PQ SMO FXPMDR 10 B49B LDX 1 PRINT+3(1) 6 B4P2 XBUNCHEND 14 B58L LDX 0 JLINK0 [RESET X0 9 B5N= P3 SMO FXPMDR 9 B67W LDX 6 SPACEFUL 18 B6MG STO 6 0(1) [SPACEFIL CURRENT BUFFER 8 B776 LDN 5 0(1) 8 B7LQ LDN 6 1(1) 8 B86B MOVE 5 30 17 B8L2 STO 1 JOZ [STORE START ADDR. 17 B95L STO 1 JPMOD [OF CURRENT BUFFER 15 B9K= BCHX 1 / [STEP POINTER 15 B=4W STO 1 JLPMOD [AND STORE. 14 B=JG LDX 1 JLINK1 [RESET X1 9 B?46 BRN (JLINKB) 4 B?HQ # 21 B#3B # ROUTINE TO SPACEFIL BUFFER AND RESET MODIFIERS WITHOUT PRINTING 4 B#H2 # 5 B*2L XJPRINTX 9 B*G= STO 7 JLINKB 9 B*_W STO 1 JLINK1 8 BBFG LDX 1 JOZ 8 BB_6 BRN P3 4 BCDQ # 18 BCYB # ROUTINE TO OUTPUT PRINTER MESSAGES ON OPERATOR CONSOLE 13 BDD2 # ENTRY X3=START ADDR. OF MESSAGE 11 BDXL # X6=LP UNIT NO. 9 BFC= # EXIT X0=LINK 10 BFWW # X3,X5,X6,X7=UNDEFINED 4 BGBG # 5 BGW6 PTWOUT 9 BH*Q SMO FXPMDR 9 BHTB STO 3 MESSAGE 9 BJ*2 SMO FXPMDR 9 BJSL LDX 3 JLPPTR 9 BK#= CALL 7 XJGNO2 9 BKRW SMO FXPMDR 9 BL?G LDX 3 MESSAGE 8 BLR6 STO 5 3(3) 9 BM=Q CALL 7 (JCONOUT) 7 BMQB EXIT 0 0 4 BN=2 # 21 BNPL # THERE FOLLOWS A S/R REQ'D UNDER NI TO READ I/P FROM CONSOLE T/W 21 BP9= # IT IS CALLED WHEN IT IS FOUND THAT ENGAGE BUTTON BIT FOR T/W IS 15 BPNW # SET. NB CALLING ROUTINE UNSETS THIS BIT. 14 BQ8G # LINK X7, EXIT CALL+2 NOT OK TRANSFER 16 BQN6 # CALL+1 OK TRANSFER WITH RW IN X6 4 BR7Q # 5 BRMB XJCTWIN 15 BS72 STO 7 JLINK7 [STORE LINK 9 BSLL SMO FXPMDR 8 BT6= LDX 5 PCCA 18 BTKW LDX 3 JCTWPTR [GET T/W DEVICE REC PTR 15 BW5G DCA 3,DLA,5,MODE [SET UP MODE, 9 BWK6 SMO FXPMDR 9 BX4Q LDX 5 PCCA+2 15 BXJB DCA 3,STO,5,COUNT [COUNT AND 9 BY42 SMO FXPMDR 9 BYHL LDX 5 PCCA+3 18 B_3= DCA 3,STO,5,CTSA [TRANSFER START ADDRESS. 10 B_GW LDN 3 JCTWPTR-CPPTR 17 C22G GPERI ,3,NC [INITIATE TRANSFER 15 C2G6 TWIN1 LDX 6 JCTWRW1 [CHECK REPLY. 18 C2_Q BNG 6 TWIN1 [LOOP STILL IN PROGRESS 15 C3FB SLC 6 4 [ CHECK TRF BIT 15 C3_2 BNG 6 TWIN2 [J TFR NOT OK 9 C4DL SMO FXPMDR 8 C4Y= LDN 3 MESSD 16 C5CW CALL 7 (JCONOUT) [OUTPUT NL 13 C5XG SRC 6 4 [ RESTORE REPLY WORD 9 C6C6 SMO FXPMDR 18 C6WQ STO 6 JPCONREPLY [SAVE REPLY FOR LATER USE 9 C7BB LDX 7 JLINK7 14 C7W2 EXIT 7 1 [EXIT OK 4 C8*L # 4 C8T= # 9 C9#W TWIN2 SMO FXPMDR 8 C9SG LDN 3 MESSC 19 C=#6 CALL 7 (JCONOUT) [OUTPUT CANCEL MESSAGE 15 C=RQ BRN (JLINK7) [EXIT NOT OK 4 C??B # 4 C?R2 # 4 C#=L # 4 C#Q= #END 6 ____ ...431241270008