Digital PDFs
Documents
Guest
Register
Log In
XX-AF919-EE
August 1978
49 pages
Original
3.2MB
view
download
OCR Version
2.7MB
view
download
Document:
ROM Listing Diagnostic
Order Number:
XX-AF919-EE
Revision:
0
Pages:
49
Original Filename:
K-SP-M9312-0-7_Aug78.pdf
OCR Text
O Qus Gus S O P P O QG @b O G = P P P P P G G S ¢ REVISION HISTORY CHK ! { ! ECO NO ! ! { REV { { VARIATIONS ! { ! { ! { ! ! { ! ! ! ! { { ! FOR THIS ASSY,!FIRST USED ON3 1 ! IMADE BY: B CRAMM ] ! ICHECKEDS N POLLITT ! ! IDSN,ENG.t B GIST ! ! {PROD,: D PETERSON ! ! M9312 - ! 1 AUG 78 IDATE: ! ! IDATE: 17 AUG 78 — ! IDATE: 1 AUG 78 ! ! IDATE: 3 AUG 78 — ! ! ! ! DIGITAL EQUIPMENT CORPORATION MAYNARD, MASSACHUSETTS E CROCKER OR COPIED OR USED 1IN WHOLE OR IN PART AS THE BASIS FOR THE MANUFACTURE OR SALE OF ITEMS WITHOUT WRITTEN PERMISSION, COPYRIGHT 1976, DIGITAL EQUIPMENT CORPORATION"® ! ! ! —! ! (!TITLE ] ' ! ROM LISTING BOOTSTRAP ! ! ! ! ] ! ! ! ! 1SIZEICODE! DOCUMENT NUMBER ! REV ! ! ! ! ! ! ! K ! SP ! M9312~0=7 1 A} ] ! ! R ! IEDIT NO! 1 AUG 78 IASSY, #3 ! 11 {DATE: ! ! ! . "THIS DRAWING AND SPECIFICATIONS HEREIN, ARE THE PROPERTY OF DIGITA L EQUIPMENT CORPORATION AND SHALL NOT BE REPRODUCED !RESP,ENG,: ®: ] ! ! ! ] z (K=SP=M9312=9=7) Page 2 ! TT { LO SPD RDR ! 3 DK ! RKO3/05 ! DT ! TUS55/56 { 5 DM ! RKO6/07 ! NA { NA ! 8 { DL ! RLO1 ! NA NA { 10 759A9 ! DS ! RSO3/04 ! NA NA ! 12 753A9 ! DX { RX0O1 { NA ! NA ! 13 811A9 ! DY ! RX02 ! NA ! NA ! 15 7158A9 ! MT ! TU1¢6/E10,TS63 ! NA { NA ! 17 757A9 ! MM ITU16/E16 TMO2/3! NA ! NA ! 19 761A9 ! CT ! TU6O ! NA ! NA ! 21 7S5A9 ! DP ! RP02/03 ! DB {RPQ4/5/6 RMO2/3! 23 764A9 ! MS ! TSO4 ! NA ! NA ! 25 T65A9 ! DD ! TUSS8 ! NA ! NA 28 COMM ! NA P fw un Jav W $um Pu» PN 75179 QU ! S 752A9 GuUp ! P 756A9 o O PuB GUP P P P PGB Pub Qb Pub P Pub P S 47 Qb P Qum P > 1) P o W QU P = > ¢ Pus P gus NA O = > b fun NA Sa» Qb G YuB NA S = > fun NA Sum = > Sen Qe 2 > NA Pt Qe o> W w w P NA P S = S 33 QU 30 P> Pw S QU L L L LR leacowses P S P Qun NA P Paw G L LI = = > G S S NA Qv = > = 1> S S S P G O S Qan G P S g fun Hen S G Qv S Pfun s Jan COMM W XwW Qus Pfun 870A9 Qewn 869A9 = 3 P S fwn S fun S fan Pen P S P P 868A9 Pan B67A9 fuv 866A9 COMM Je» > =] 865A9 e G G H» g 864A9 Pen 863A9 P © G XM P 862A9 T @ srocccves | ceacses | svesececossvoecas | sovcan- IR Gup P P Gun G P ! PR Qe ! PC@BS T60A9 P G !MNEMON=! SECOND DEVICE ! PAGE oo# ! IN ROM ! IC 0w IMNEMON=! FIRST DEVICE ! IN ROM ! IC G PART ’ ! -.--.---------'-----.--------------------.----.1 Gun Gev TABLE OF CONTENTS Sun M9312 ROM LISTING BOOTSTRAP M9312 ROM LISTING BOOTSTRAP Page (K=SP=M9312~0-7) M9312 THIS BOOTSTRAP ROM ROM WILL BOOT LISTING THE PC11 OPTION(S) TO BOOT UNIT ©,AND NOT RUN DIAGNOSTICS,THE START ADDR IS 173Y34, TO BOOT UNIT @ AND RUN CPU DIAGNOSTICS,THE START ADDR IS 173Y36, THE Y COMPONENT OF THE ADDRESS REPRESENTS BITS 7 AND 8 OF THE WHOLE ADDR, 1730XX IF THIS ROM IS IN SLOT 1 THE Y COMPONENT IS @0 IF THIS ROM IS IN SLOT 2 THE Y COMPONENT 1S @1 ADDR, 1732XX, ADDR, 1734XX, IF THIS ROM IS IN SLOT 3 THE Y COMPONENT IS 10 ADDR, 1736XX, IF THIS ROM IS IN SLOT 4 THE Y COMPONENT IS 11 «SBTTL +SBTTL 000000 0506122 000002 200004 000026 029261 P00006 012700 212701 010704 103064 No0412 173000 000349 952124 000146 000261 212700 #12701 000012 000016 000020 000022 000024 P0P026 000030 200032 200034 200036 200042 000046 200050 000854 A00060 000062 P00064 0000179 200072 AeBR76 PP0102 P006106 000112 #00116 HSR$ 212725 912725 <ASCII « WORD "RP" <HSRE=,+2> 177550 MOV MOV $0,R0O #HSRCR,R1 MOV BCC BR « WORD PC,R4 BDIAG LOAD MRESERVED HSRE: « NORD RESERVED TT: «ASCII HSRM¢ CFUDGE: « WORD "TT" <TTE=,+2> READER BOOT, sOFFSET TO NEXT BOOT, sENTRY POINT TO NO DIAG, s LOAD CSR ADDR, INTO R1, sENTRY POINT ;GO DO DIAG, ;LOW SPEED READER, sOFFSET TO NEXT BOOT, SEC 000000 177560 TTM: 160000 LOAD: 00004 290502 P¥0032 #16701 200026 #12702 700352 P05211 195711 100376 18 MOV #0,R0O MOV #TTCR,R1 BR MOV MOV MOV CFUDGE #160000,RS5 $#4,R3 PCs (R3)+ CLR MOV (R3) $502,SP MOV R1,=(RS) BIC MOV MOV #32,R5 $16701,(5)+ #26,(5)+ MOV $12702,(5)+ MOV #352,(5)+ MOV MOV MOV MOV MOV #5211,(5)+ #105711,(5)+ #100376,(5)+ #116162,(5)+ $2,(5)+ 000122 000126 012725 P00132 012725 116162 090136 000142 $12725 P000A2 #10515 MOV RS, (5) 200144 195025 Pa5205 CLRB INC (5)+ NBA146 sHIGH SPEED sENTRY SEC 200000 000763 912705 212703 010723 P95013 P12706 010145 942705 912725 012725 912725 912725 TTY BOOT ;PC, DL BOOT RS s LOAD CSR ADDR, INTO R1, sPUT ERRVEC INTO R3 sPUT RETURN ADDR IN sTIMES OUT UNTIL RIGHT ADDR! ERRVEC WORD, 3 M9312 ROM LISTING BOOTSTRAP 200150 000154 #00160 012725 212725 912725 200164 #10115 900166 200172 990176 900165 200137 154747 205267 177756 290765 177746 165564 #5267,(5)+ #177756,(5)+ MOV #765,(5)+ MOV R1,(5) JMP JMP TTE? +«WORD «32(RS) @#DIAG 154747 GO DO BOOT ADDR,=X7744 3CRC WORD FOR LAST 63, +«END SYMBOL 090172 MOV MOV BDIAG? A00001 BDIAG Page (K=SP=M9312=0=7) BIT8 = 900400 CRCWD = 000000 000026 HSRE MRESER= 173000 RKO6CR= 177440 RSO3ICR= 172040 DIAG HSRM = 165564 000012 RO 23000000 R4 SP TTTM . =3000004 x=3000006 000042 = 000200 R1 =%000001 RS =%000005 200030 TT TU1O0CR® 172522 PC =%000007 RLOICR= 174400 RSP4CR= 172040 TABLE BIT9 HSR = 991000 INITSW= 000000 173024 RESERV: 000349 RPOICR= 176714 RXO1CR= 177179 R2 =%000002 R6 =%000006 TTCR = 177560 TU16CR= 172440 CFUDGE 000016 HSRCR = 177550 LOAD 200050 RKOS5CR= 177404 RPO4CR= 176700 RX@2CR= 1771740 R3 25000003 R7 =%000007 200176 TTE TUS6CR= 177342 WORDS, 4 M9312 ROM LISTING BOOTSTRAP (K=SP=M9312=0~7) .TITLE Page 5 M9312 BOOTSTRAP ROM LISTING THIS ROM WILL BOOT THE RK@S5 TU56 OPTION(S), «SBTTL RKOS BOOT TO BOOT UNIT ©,AND NOT RUN DIAGNOSTICS,THE START ADDR IS 173Y94, TO BOOT UNIT @ AND RUN CPU DIAGNOSTICS,THE START ADDR IS 173Y0@6, THE Y COMPONENT OF THE ADDRESS REPRESENTS BITS 7 AND 8 OF THE WHOLE WORD, IF THIS ROM Is IN SLOT 1 THE Y COMPONENT IS 09 IF THIS ROM IS IN SLOT 2 THE Y COMPONENT IS @#1 IF THIS ROM IS IN SLOT 3 THE Y COMPONENT IS 10 IF THIS ROM IS IN SLOT 4 THE Y COMPONENT IS 11 «SBTTL ADDR, ADDR, ADDR, ADDR, 1730XX 1732XX, 1734XX, 1736XX, TUS6 BOOT THIS ROM WILL BOOT THE TU56 OPTION(S), TO BOOT UNIT @,AND NOT RUN DIAGNOSTICS,THE START ADDR IS 173Y34, TO BOOT UNIT & AND RUN CPU DIAGNOSTICS,THE START ADDR IS 173Y36, THE Y COMPONENT OF THE ADDRESS REPRESENTS BITS 7 AND 8 OF THE WHOLE WORD, IF THIS ROM IS IN SLOT 1 THE Y COMPONENT IS @8 ADDR, 1730XX IF THIS ROM IS IN SLOT 2 THE Y COMPONENT IS @1 ADDR, 1732XX, IF THIS ROM IS IN SLOT 3 THE Y COMPONENT IS 10 ADDR, 1734XX, IF THIS ROM IS IN SLOT 4 THE Y COMPONENT IS 11 ADDR, 1736XX, .SBTTL $RK@5, TUS6 BOOT :CMNDS "DK", "DT" +sRK®S BOOT. s THIS BOOT READS DISK ADDR, NOT READY,NO DISK,ETC, A 0,0 ON ERROR I.E, DRIVE SYSTEM INIT, IS ISSUED AND H H THE BQOT IS RETRIED UNTIL A GOOD BOOT OCCURS OR THE BOOT IS HALTED, s TUS56 BOOT, THIS BOOT READS BLOCK © FROM THE DEC TAPE ON ERROR : THIS RETRY WILL OCCUR UNTIL WE SUCCESSFULLY BOOT, H : WE ISSUE A A OR THE BOOT SYSTEM INIT, THEN TRY TO REBOOT, IS HALTED, ’ 000000 000002 P00004 000006 POOV12 042113 000026 @00261 012700 012701 PO0V020 000022 103057 0PG426 P00016 P00024 Q00026 000030 200032 A00034 P00036 200042 010704 RK®5: 000000 177404 173000 0PB340 042124 000146 V0A261 (12700 0127081 RKO5M: RK@5E: TU56: VNVVOY 177342 TUS6M: +ASCII « WORD SEC MOV MOV "“KD*" <RKOS5E=,+2> #$RKO5CR,R1 ;CMND "DK"TM RK@S BOOT, sOFFSET TO NEXT DEVICE BOOT, sUNIT @, NO DIAG, ENTRY POINT, sUNIT @4, RUN DIAG, ENTRY POINT s LOAD CSR ADDR. INTO R1i, BCC BR BDIAG RKO58B sEXERCISE DIAG. IF C=0 $sGOTO RK@5 BOOT. $0,RO MOV PC,R4 + WORD MRESERVED WORD +ASCII « WORD SEC MOV MOV RESERVED *"TD" <TUS6E~,+2> #RO, RO #TUS6CR,R1 sENTRY FROM CONSOLE EMULATOR, ;CMND "DT" TUS56 BOOT, sOFFSET TO NEXT DEVICE BOOT. sUNIT @, NO DIAG, ENTRY POINT, sUNIT 0, RUN DIAG, ENTRY POINT, :LOAD CSR ADDR, INTO R1 M9312 ROM LISTING BOOTSTRAP (K=SP=M9312+=0=7) page 6 0UP046 000050 000052 010704 103043 010003 MOV BCC MOV PC, R4 BDIAG RO, R3 sENTRY FROM CONSOLE EMULATOR. EXERCISE DIAG, IF C=0 :FIX UNIT NUMBER IN R3 000054 ©VA3D3 SWAB R3 :TUS6 BOOT, (R1) sWAIT FOR END ZONE ERROR 000956 000060 000064 000066 210311 ©52711 005711 100376 000070 000074 000076 905761 910311 000410 000100 010003 000104 000106 000110 000112 006083 006003 006003 006003 000102 000114 009120 000126 009132 000134 000136 010361 012761 052703 810311 105711 177776 RK@5B: 0OPB06 177000 OPE0S 000142 100003 0BOPOS OPP164 042711 05007 ©00137 000002 CBOOT: 152 100376 005711 000144 183 000241 000140 000146 000152 009156 000160 004003 MOV BIS TST BPL 165564 ERROR; GBOOT: BDIAG: s TST MOV BR =2(R1) R3, (R1) CBOOT MOV R@,R3 ROR ROR ROR ROR R3 R3 R3 R3 BIS MOV TSTB #5,R3 R3, (1) (R1) CLC MOV MOV BPL TST ©BOPBD2 0008377 R3, (R1) $4003, (R1) R3,6(R1) $-512.,2(R1) 15 (R1) BPL GBOOT JMP BIC CLR JMP 2 (R4) $377, (R1) R7 @4DIAG RESET sFIX UNIT NUMBER IN DEVICE. s SET REWIND sLOOK FOR ERROR. sCLEAR DEVICE. :GOTO COMMON BOOT, sFIX UNIT NUMBER FOR DEVICE. sSET UNIT NUMBER IN DEVICE 3COMMON BOOT, SET WORD COUNT. :PICK UP READ WORD. :SET INTO DEVICE CSR., :WAIT FOR DEVICE DONE, s TEST FOR DEVICE ERROR ;ON ERROR, INITIALIZE SYSTEM sRETURN TO START OF BOOT., :NO ERROR, CLEAR DEVICE :GOTO SECONDARY MONITOR ADDR, OR :GOTO DIAGNOSTIC IF Cz@ sRETURNS BASED ON 000261 000166 000176 012700 000707 000176 124650 000001 R4 sENTRY POINT FOR RKOS5 UNIT #2,NO DIAGS RUN. WA W TN WA %% NN SEC H TYTETYLTTIYTEYY S S T2 22X 22X YRX 2222423222 2222222 % 2 2 ) *ENTRY POINT FOR RKOS UNIT #2, RUN DIAGS. H 3 3 35 3 3 3 3 3 3 3¢ 3 3 3 38 3 3 3 3 W 3 3 W W I I3 I I AW 000172 IN X 2T SRR YRR T LI LSRR Y X2 E L Y 2L X Y H 3 30 30 3 359 W 3 % W 3% % I8 W % 6 W W W I AW I8 W I 000164 ADDR. H FTIIIZIIIYTYTYEYT YRR R 2 PRI 00AAB2 RK@52: MOV TUS6E: .WORD BR =176 «END W I B W I W W% I %W %W % $2,RD sENTRY POINT FOR RKOS BOOT UNIT 2 124658 sCRC WORD FOR LAST 63. WORDS. RKOSM M9312 ROM LISTING BOOTSTRAP (K=SP=M9312=9=17) SYMBOL TABLE 00169 BIT8 = nNA0 400 BIT9 = 001000 = 200000 DIAG = 165564 = RESERV= P0R340 ERROR MRESER= RKOASB Po0144 173000 000100 RK052 RPO4CR= 000166 176790 RXA2CR= 177170 BDIAG CRCWD HSRCR RKOSE 177550 200026 174400 RS@4CR= 172040 R1 =$000001 RS =%000005 TTCR = 177560 TUS6CR= 177342 RLOICR= INITSW= 173024 RK@25 00900 RKOSM P00v12 RPO3CR= 176714 RX@P1CR= 177170 R2 =%000002 R6 =%$000006 TU10CR= 172522 200176 TUS6E R3 R?7 =%000003 =%000007 TU16CR= TUS6M 172440 000042 000120 CB800T 200152 GBOOT PC =3000007 RKOSCR= 177404 RK@6CR= 177440 RSO3CR= 172040 RO =%000000 R4 SP =2%000004 =%000006 . = TUS6 000039 000200 ROM LISTING BOOTSTRAP Page (K=SP=M9312-0~7) M9312 BOOTSTRAP ROM LISTING THIS ROM WILL BOOT THE RKQ6/RK¢7 OPTION(S), TO BOOT UNIT @,AND NOT RUN DIAGNOSTICS,THE START ADDR IS 173Y04, TO BOOT UNIT @ AND RUN CPU DIAGNOSTICS,THE START ADDR IS 173Y06, THE Y COMPONENT OF THE ADDRESS REPRESENTS BITS 7 AND 8 OF THE WHOLE WORD, ADDR, 1730XX IF THIS ROM IS IN SLOT i THE Y COMPONENT IS 00 ADDR, 1732XX, IF THIS ROM IS IN SLOT 2 THE Y COMPONENT IS 01 ADDR, 1734XX, IF THIS ROM IS IN SLOT 3 THE Y COMPONENT IS 10 IF THIS ROM «SBTTL Is IN SLOT 4 THE Y COMPONENT IS ADDR, 11 1736XX, RK@6/RKO7 BOOT THIS BOOT BOOOTS EITHER THE RK96 OR RK@7 DRIVES, IT IF WE TO FIRST TRIES TO BOOT SELECTED DRIVE AS A RK@6, WE GET A DRIVE TYPE ERROR AS A RESULT OF THAT TRY, SET THE RK@7 DRIVE TYPE IN THE RK611 CSR, AND TRY BOOT THE SELECTED DRIVE AS A RKO7, VO VWS WE WO W9 sRK@6 BOOT, WO NOTE: DRIVE TYPE IS LEFT IN THE CSR WHEN WE LEAVE THIS BOOT, w® M9312 000000 000002 POP004 000006 200012 000016 000020 000022 000024 200026 000030 P00034 P00040 000042 o044 200046 000050 P00056 000060 A00062 P00066 220072 pe0o74 200076 000100 042115 200176 000261 212700 812701 010704 103055 000402 173000 000340 910061 212711 105711 100376 205711 100015 232761 901426 000005 210061 #12711 185711 100376 285711 100415 AVe102 ?00102 200110 P00112 012761 f11103 #42703 «SBTTL s RK@6/RK0O7 $CMND = "“DM" RKO6 «ASCII « WORD "MD" <RK@6E=,+2> s ID OF RK@6,RKO7 BOOT, sOFFSET TO NEXT DEVICE BOOT, SEC 000000 177440 RKA6M: 000010 000003 000040 PC/R4 BDIAG RKO6B MRESERVED +« WORD 16 MOV TSTB $3,(R1) (R1) CBOOT: s LOAD DEVICE ADDR, INTO R}, RESERVED RG,19(R1) 092003 0Ba377 MOV BCC BR + WORD MOV 000014 NOA2A2 $2,R0 $RKO6CR,R1 RKO6B 200010 177000 MOV MOV BPL 1$ TST BPL BIT BEQ RESET MOV MOV TSTB (R1) 3s #40,14(R1) ERROR BPL TST BMI 28 (R1) ERROR MOV #=512,,2(R1) RO,10(R1) $002003, (R1) (R1) MOV (R1),R3 BIC #377,R3 sNO ERROR-THEN PRROCEED, s THERE WAS AN ERROR,PUT DRIVE TYPE? sNO,INIT ;YES sSET AND TRY AGAIN, INIT AND TRY RK@7 DRIVE NUMBER, TYPE DRIVE, s SELECT RK@7,PAC, sWAIT FOR READY, s LOOK FOR AN ERROR s IF ERROR INIT TRY AGAIN, ¢+REGISTER INTO ITSELF, s LOAD WORD COUNT +READ DEVICE +STR1P, 8 M9312 ROM LISTING BOOTSTRAP Po0116 252703 n0e122 212311 P00124 105711 000126 090130 000132 108376 905711 100003 P00134 000136 000142 000142 000005 000164 Page (K=SP=M9312=9¢=7) PooV21 182 ERROR: 000002 GBOOT: START: 905007 sADD READ CODE s START DEVICE BIS #21,R3 MOV R3,(R1) TSTB (R1) sWAIT FOR READY BPL TST BPL 1§ (1) GBOOT sANY ERROR? sNO ERROR, EXIT RESET JMP 2(4) :RETRY BOOT, CLR PC s INITIALIZE SYSTEM s STARTS LOADED CODE, E 22 IXTTITTITILIE TSRS LLRLLALLISILLLLTIZALZ AL LIS 2 L2 22 sENTRY POINT FOR RKO@6,RK@7 UNIT Z 200144 000261 #1, 22 ZYTTITTTILRIS SRS LEALZLAL LTI NO DIAG, LLLLLLI LI $ 363 3 30 3 3 3 3 3636 36 3 3 3 3 36 36 4 3 3 38 3 I 2 3 36 3 A 36 3 3 3 I 336 36 3 3 3 333636 3 sENTRY POINT FOR RK@6,RK@7 XTI ITIRZ ST 000146 200152 000154 000176 212700 000717 000137 2008176 277161 000001 BDIAG: MOV BR JMP RKQ6E: «WORD 000001 165564 RESERVE 000340 RKO6CR= 177440 RP@3CR= 176714 RXOI1CR= 177170 R2 23000002 R6, TTCR . =%000006 = 177560 = 000200 22176 R UNIT #1i, BIT8 DIAG = 000400 = 165564 INITSW= 173024 RKOSCR= 177404 RKO6E POB176 RPO4CR= 176700 RXQ2CR= 177170 R3 =%000003 R7 =%000007 TU1O0CR= 172522 3 22 2 IR 2SI 22 Y RUN DIAG. LR XXT AL ZISTLIAL SIS IS LA $1,R0O RKO6M @#DIAG 277161 sCRC WORD FOR LAST 63, +END SYMBOL 088154 BDIAG CRCWD = 000000 HSRCR = 177550 L LY 2 L SEC TABLE = 001000 BIT9 000134 ERROR MRESER= 173000 RK@6 000009 RK@O6M 000012 RS@3CR= 1720490 RO =%000000 R4 24000004 =%000006 SP TU16CR= 172440 000102 000142 PC =%000007 RK©26B 000030 RLO1CR= 174400 RSO4CR= 172040 R1 =%000001 2000005 RS 000142 START TUS6CR= 177342 CBOOT GBOOT WORDS, 9 M9312 ROM LISTING BOOTSTRAP (K=SP=M9312=9=7) Page 10 M9312 BOOTSTRAP ROM LISTING THIS ROM WILL BOOT THE RL@1 OPTION(S). T0O BOOT UNIT ©0,AND NOT RUN DIAGNOSTICS,THE START ADDR IS 173Y04. TO BOOT UNIT @ AND RUN CPU DIAGNOSTICS,THE START ADDR IS 173Y@6, THE Y COMPONENT OF THE ADDRESS REPRESENTS BITS 7 AND 8 OF THE WHOLE WORD, ADDR, 1730XX IF THIS ROM IS IN SLOT 1 THE Y COMPONENT IS 00 ADDR, 1732XX, IF THIS ROM IS IN SLOT 2 THE Y COMPONENT 1S 01 ADDR, 1734XX, IF THIS ROM IS IN SLOT 3 THE Y COMPONENT IS 10 ADDR, 1736XX, IF THIS ROM IS IN SLOT 4 THE Y COMPONENT IS 11 000000 042114 900006 000012 012700 012701 000002 000004 000016 000020 000022 000024 000026 000030 000032 000034 000036 000044 000050 200052 000054 000056 080176 000261 010704 103064 @090303 010311 012761 052703 010311 105711 100376 105003 052703 200066 105711 010311 000070 000072 100376 016102 000102 005202 200076 000104 000110 200112 000116 000120 200122 000124 000130 000136 V2140 P00144 003146 ¥Pe150 200152 042702 010261 105003 052703 010311 005061 012761 105003 052703 10311 105711 100376 005711 RLO1: «ASCII 182 000013 000004 000004 000010 0060006 000077 48 5s¢ $0,R0 $RLO1CR,R} sUNIT 6, RUN DIAG, ENTRY POINT, s LOAD CSR ADDR, INTO R1 sENTRY POINT FROM CONSOLE EMULATOR, sEXERCISE DIAG. FC=90 SWAB MOV MOV R3 R3,(R1) #13,4(R1) $ASSUME SYSTEM INIT ON ENTRY, ¢+SET UNIT NUMBER, sCLEAR DRIVE ERROR, MOV TSTB R3,(R1) (R1) s ISSUE GET STATUS, sWAIT TILL DONE, #10,R3 ¢ ISSUE A READ HEADER, (R1) sWAIT TILL DONE, BR «WORD «WORD MOV 18 MRESERVED RESERVED RO,R3 #4,R3 BPL CLRB 28 R3 MOV R3,(R1) BPL MOV 3$ 6(R1),R2 INC R2 CLRB BIS R3 $6,R3 TSTB MOV TSTB BPL CLRB 000014 s+ID OF RL11/RLO1 BOOT, PC,R4 BDIAG CLR MOV ©GOA0A6 "LD" MOV BCC MOV MOV MOV 0VP006 "DL* <RLO1E=,+2> BIC 000004 = « WORD SEC BIS 3s¢ 000004 177000 ¢sCMND BIS 282 105711 108376 RL@1 BOOT RLO1IM: 000402 173000 000340 910003 000060 000064 000000 174400 «SBTTL, BIS MOV TSTB BPL TST #77,R2 sOFFSET TO NEXT DEVICE BOOT, $UNIT @, NO DIAG, ENTRY POINT :GET HEADER, :CLEAR SECTOR, R2,4(R1) s SET SEEK TO ZERO, R3,(R1) +DO SEEK, (R1) 4s ¢sWAIT TILL DONE, 4(R1) #=-512,,6(R1) :CLEAR DISK ADDR, :SET WORD COUNT, #14,R3 R3,(R1) sREAD DATA CMND, s ISSUE READ CMND, R3 (R1) 5s (R1) :WAIT TILL DONE, ¢ LOOK FOR ERRORS, M9312 ROM LISTING BOOTSTRAP 200154 100003 P00156 00005 000160 V0164 PB00a2 000164 200170 200172 042711 005007 200317 GBOOT: 000137 165564 000176 BPL ERROR: 209176 174540 dvevo1 INITSW= PV0172 165564 173024 GBOOT RESET BDIAG: JMP BIC CLR JMP 2(R4) #377,(RY) R7 @#DIAG RLO1E: =176 « WORD 174540 $SYSTEM INITIALIZE, sCLEAR RLO1%, $GOTO SECONDARY BOOT, sCRC WORD FOR LAST 63,WORDS, «END SYMBOL BDIAG DIAG = Page (K=SP=M9312=9=7) BIT8 ERROR TABLE = 000400 00A156 BIT9 = 001000 GBOOT 000164 MRESER= 173000 PC RKOSCR= 177404 RLO1E 200176 RSO3CR= 172040 RKO6CR= RLOIM RS@4CR= 177449 P00V12 172040 RO =$000000 R4 =3000004 =%000006 SP TUS6CR= 177342 R1 RS TICR =$000001 =%000005 = 177560 RLO1 200000 RPA3CR= 176714 RXO1CR= 177170 R2 23000002 =%$000007 . = 000200 R6 =$000006 TU1OCR= 172522 CRCWD = 000000 HSRCR = 177550 RESERV= 000340 RLO1CR= 174400 RPO4CR= 176700 RX@2CR= 177179 R3 34000003 R?7 =%000007 TU16CR= 172440 11 M9312 ROM LISTING BOOTSTRAP Page (KeSP=M9312«0=7) M9312 BOOTSTRAP ROM LISTING THIS ROM WILL BOOT THE RS®3 OPTION(S), TO BOOT UNIT 9,AND NOT RUN DIAGNOSTICS,THE START ADDR IS 173Y@4. TO BOOT UNIT @ AND RUN CPU DIAGNOSTICS,THE START ADDR IS 173Y@6, THE Y COMPONENT OF THE ADDRESS REPRESENTS BITS 7 AND 8 OF THE WHOLE WORD, IF IF THIS THIS IF IF THIS THIS «SBTTL 000000 Q00002 000004 000006 990012 000016 000020 900022 200024 200026 000030 000032 800036 200044 200052 0200656 0002060 000062 000064 200066 208070 000872 200076 290176 042123 200176 000261 012700 812701 010704 163026 200402 173000 090340 010083 010361 #16161 912761 912711 RS©3: +ASCII « WORD SEC 183 RS@3B: 000010 000016 200016 000002 177000 000071 1s¢ ERROR?: PAPVB2 165564 126075 MRESER= 173000 RKO6CR= 177440 00000 RS@3 000012 RSO3M =3000000 RO =%000004 R4 =%000006 SP TUS6CR= 177342 Y Y Y Y COMPONENT COMPONENT COMPONENT COMPONENT IS IS IS IS @9 01 10 11 BIT8 ERROR PC = 000400 000079 =5000007 RLOICR= 174400 RSA3B N"P0A32 RSO4CR= 172049 =%0330001 R1 =SE0VAANAS R5 = 177560 TICR $0,R0O #RSU3CR,R1 PC/,R4 BDIAG «WORD +WORD MRESERVED RESERVED MOV MOV MOV MOV TSTB . = D200 1730XX 1732XX, 1734XX, 1736XX, R3,10(R1) 16(R1),16(R1) $=512,,2(R1) #71,(R1) (R1) sENTRY FOR UNIT 0,RUN CPU DIAG, :PUT ADDR, OF CSR INTO R}i, ¢+GET RETURN ADDR,, $°GOTO DIAG IF ENABLED(C=0), 18 MOV RO,R3 BPL 18 BMI CLR ERROR R7 (R1) RESET JMP 2(R4) JMP @#DIAG RSO3E: « WORD 126075 $SET UNIT NUMBER sWRITE ATTENTION FLAGS, s SET WORD COUNT, $sSET COMMAND READ, sWAIT TILL READY, s LOOK FOR ERRORS,, s IF ERROR,TAKE CARE OF IT. sELSE EXIT TO LOADED CODE,., sINIT SYSTEM, sGOTO DIAGNOSTICS +RETURN MADE THROU ADDR, ;CRC16 WORD FOR LAST 63, WORDS, TABLE = @01000 BIT9 HSRCR = 17755@ RESERV= 000349 RPO3CR= 176714 RSO3CR= 172049 RX?1CR= 177174 =%000002 R2 R6é ADDR, ADDR, ADDR, ADDR, s IDENTIFIER ’DS’ FOR RS93 BOOT, sOFFSET TO NEXT ROM, sENTRY FOR UNIT 8,NO CPU DIAG RUN, +END SYMBOL ?00076 165564 MOV MOV MOV BCC BDIAG: 000001 BDIAG DIAG THE THE THE THE §{ 2 3 4 °*SD’ <RSO3E=,+2> TST 295711 SLOT SLOT SLOT SLOT BOOT BR 185711 100376 100401 205007 000005 200164 000137 RS23 DS RS@3M: IN IN IN IN IS IS IS IS s CMND 000000 172040 ROM ROM ROM ROM =%000006 TUIUCR= 172522 CRCWD = 000000 INITSW= 173024 RKOSCR= RPP4CR= 177404 176700 200176 RSO3E RXQ2CR= 177170 =%000003 R3 =$000007 R7 TU16CR= 172440 IN R4, 12 M9312 ROM LISTING BOOTSTRAP (K=SP=M9312=03=7) M9312 Page BOOTSTRAP ROM LISTING THIS ROM WILL BOOT THE RX@1 OPTION(S), TO BOOT UNIT &,AND NOT TO BOOT UNIT © AND RUN THE Y COMPONENT OF THE IF THIS ROM IS IN SLOT IF THIS ROM IS IN SLOT RUN DIAGNOSTICS,THE START ADDR IS 173Y04, CPU DIAGNOSTICS,THE START ADDR IS 173Y@6, ADDRESS REPRESENTS BITS 7 AND 8 OF THE WHOLE WORD, i THE Y COMPONENT IS 90 ADDR, 1730XX 2 THE Y COMPONENT IS 01 ADDR, 1732XX, IF THIS ROM 4 THE Y COMPONENT IF THIS ROM IS IN SLOT 3 THE Y COMPONENT IS 1@ «SBTTL *sCMND IS RX01 IN SLOT IS 11 ADDR, ADDR. 1734XX, 1736XX, BOOT ”Dxfl s THIS BOOT READ TRACK sDRIVE @ OR DRIVE 1}, 1,SECTOR i OFF DISK, IT CAN ONLY LOOK AT sIF ANY ERROR IS ENCONTERED I.E. DRIVE OFF LINE,NO DISK,ETC, sA SYSTEM INIT, IS ISSUED AND WE TRY AGAIN TO REBOOT THE DISK, ’ 000000 000002 000004 000006 P00012 042130 000176 000261 012700 000000 000012 000016 012701 177170 000020 000022 000024 000026 000030 000032 P00036 000042 000044 010704 103056 000402 PVP0e50 RX0O1: RXO1M: 012703 132711 MOV MOV 173000 000340 000241 012703 132700 001402 «ASCII « WORD SEC MOV 182 RX@1B: 001407 000001 011427 100040 1s: BCC BR +«WORD +WORD CLC MOV BITB BEQ MOV BITB "“XD" <RX@1E=,+2> #¥0,RP $RX01CR,R1 PC,R4 BDIAG 18 MRESERVED RESERVED #1407,R3 #1,R0O 1s #11427,R3 $100040, (R1) sCMND "DX" RX©1 BOOT, sOFFSET TO NEXT DEVICE BOOT, sUNIT @, NO DIAG sUNIT @ RUN sENTRY FROM CONSOLE EMULATOR sGET CSR ADDR TO Rt sEXERCISE DIAG. IF C=D H ; IS DONE BIT SET? ’ #00054 A00056 P00060 PVP062 020064 001775 110311 111165 100376 BEQ 282 112761 00V00V01 000076 932711 100040 P0P0112 005003 200072 0v¥¥074 PvR102 000104 Ppua106 ¢pe11e fOR114 P0n116 97120 106003 102771 9917175 100412 0V0VO303 110311 105711 10V0376 116123 000002 482 NBO0A2 R3,(R1) (R1),RS 28 RORB BVS R3 28 BEQ BMI SWAB MOVB 3s ERROR R3 R3, (R1) TSTB BPL (R1) 4s MOVB 3s: 1s MOVB MOVB BPL BIT CLR MOVR s LOAD READ CMND, 1S °TR’ BIT SET? #1,2(RY) s LOAD TRACK,SECTOR ADDR, $#100040, (R1) sWAIT FOR ERROR OR DONE, R3 2(R1),(R3)+ 13 M9312 ROM LISTING 000124 P00126 009130 000132 900134 BOOTSTRAP 105703 100372 205007 200005 000140 Page (K=SP=M9312=0=7) CLR RESET 212700 000001 MOV M1:¢ : 000144 @00146 P00150 200261 000154 200716 600156 200176 000137 105572 000721 012700 SEC BR MOV 200001 RXO1M $1,R0 ’ 165564 sALL DONr READS? R3 4s PC TSTB BPL BR RXO1M JMP «WORD @#DIAG 195572 BITY 001000 HSRCR M2 RKO6CR= 1775580 sNO GET NEXT ¢ START CODE #1,R0 sUNIT #1 BYTE sENTER HERE TO BOOT WITHOUT DIAG, sENTER HERE TO BOOT sUNIT #1 WITH DIAG, RUN, 000001 SYMBOL TABLE 000156 BDIAG = 165564 DIAG MRESER= 173000 RESERV= 200340 RPO3CR= 176714 000000 RX21 000012 RXO1M R2 =%000002 =%000006 R6 TU10CR= 172522 BIT8 = 000400 ERROR 000132 M1 000140 RK#S5CR= 177404 RPAP4ACR= 176700 RX01B 000032 RXO#2CR= 177170 =3000003 R3 =%000007 R7 TU16CR= 172440 000150 177440 172049 177170 CRCWD = 000000 INITSW= 173024 3%000007 PC RLO1CR= 174400 RO =%000000 RSO4CR= 172040 200176 RXO1E R1 2%000001 R4 =%000004 R5 RSO3CR= RX@1CR= SP =%000006 TUS6CR= 177342 24000005 TTICR = 177560 . = 000200 14 M9312 ROM LISTING BOOTSTRAP (K=SP=M9312=0=7) Page +TITLE «REM M9312 BOOTSTRAP ROM LISTING L COPYRIGHT (C) 1977,1978 DIGITAL EQUIPMENT CORP, MAYNARD, PROGRAM MASS, BY 01754 EDWARD C, sTHIS BOOT BADGER BOOTS THE RX92 FLOOPY DISK FORM COMMAND "DY" : THE SECOUNDAY BOOT MUST BE IN DISK TRACK 1 sSECTORS sNOTE ¢ ; 1,3,5, AND 7 IF SINGLE DENSITY LOC @ LoC @, ANY SECTOR IS WILL BOOT 256 sDOUBLE DENSITY WILL TO TO THIS ROM WILL BOOT THE RX@2 BOOT BOOT 042131 000176 000261 000006 000012 P00016 000020 000022 P00024 000026 000030 P00030 012700 012701 010704 103064 09P0402 173000 000340 000032 000005 P00034 V12704 P00040 005002 000042 PP0046 @12705 042703 000052 001001 ARA054 006205 A000856 RUN OPTION(S), DIAGNOSTICS,THE START ADDR IS 173Y04, ROM IS IN SLOT 1 THE Y COMPONENT 1S 00 ROM ADDR, IS IN SLOT 1730XX 2 THE Y COMPONENT IF IF THIS IS ADDR, ROM @1 IS IN SLOT 3 THE Y COMPONENT THIS IS 1732XXx, 10 ROM IS ADDR, IN SLOT 4 THE Y IS 11 ADDR, 1734XX, 1736XX, L6 162 L62: 000401 L7 000200 1773177 COMPONENT RX02 BOOT +ASCII +« WORD SEC "YD" <RXP2E=,+2> sASSCI IDENTIFIER FOR THIS BOOT $OFFFSET TO NEXT DEVICE BOOT, sENTRY POINT FOR NOT DIAG RUN, MOV MOV #0,R0O #RXO2CR,R1 $ENTRY POINT TO $PUT CSR ADDR, MOV BCC PC,R4 BDIAG sRECORD BOOT ADDR, s IF ENABLED ,RUN DIAG, BR « WORD « WORD 1s MRESERVED RESERVED sCONTINUE PAST sPOWER UP HERE sPOWER UP HERE COM STATE POWER UP RESERVED LCO FOR NEW PC, FOR NOW STATUS WORD R3 sCHANGE #401,R4 sSYSTEM INITAILIZE, s TRACK, SECTOR INFO, CLR R2 s START MOV BIC $200,R5 $“C<BIT8>,R3 s IF ALREADY SET,CLEAR 1IT, sCLEAR OUT ALL BUT DENSITY BNE LL6 s IF SET,DOUBLE ASR RS s IF CLEAR, ADDR, sHALF THE "DY" RUN DIAG, 1IN R} RESET MOV LL6¢ 200056 A00056 NOT RUN READ, 1008 WORDS,STARTING THE IF THIS IF THIS V0000 177170 005103 ©,AND & AND BOOT BE CPU DIAGNOSTICS,THE START ADDR IS 173Y06, Y COMPONENT OF THE ADDRESS REPRESENTS BITS 7 AND 8 OF THE WHOLE WORD, «SBTTL 000000 200002 200004 UNIT UNIT UNSED,IT STILL WILL WORDS STARTING AT OF DENSITY BIT, ¢ IT WORD INFORMATION, DENSITY., WAS SINGLE DENSITY,MUST COUNT, LL? 050700 BIS PC,R@ +R® WILL CONTAIN EITHER A ZERO OR A ONE, sBY ADDING THE PC AND THE NEXT OFFSET,WE sCOME UP WITH THHE ADDRESS OF THE BYTE THAT sCONTAINS THE START CODE FOR EITHER UNIT @ {5 M9312 ROM LISTING BOOTSTRAP Page BISB READ=,(R@),R3 sOR UNIT ONE, sREAD EITHER "@@7" 040700 BIC PC,RO 210706 200423 P00432 ¢RESTORE R# TO UNIT NUMBER, MOV BR PC/,R6 WAIT BR RDDY 000060 156003 000064 200066 000079 200072 P00074 200076 (K=SP=M9312~0=~7) 000036 BR WAITS BR WAITS 000100 PPP425 BR EMPTY 000102 000430 BR WAITD sGIVE 00104 000407 BR WAITD2 sGIVE CURRENT p00106 960502 0605082 122424 120427 ADD R5,R2 sUPDATE CUURRENT ADD R5,R2 000116 CMPB 007 027 READ$ «BYTE (R4)+,(R4)+ R4, (PC)+ 7,27 "@27" sGIVE SECOTR INFORAMATION, sGIVE TRACK INFORMATION, WORD COUNT ADDR, ADDR, s UPDATE SECTOR NUMBER, s+ IF THE LAST SECTOR IS #7,READ sONE MORE SECTOR, IF GREATOR (OCTAL 11) THEN sTHEN WE’LL EXIT, sTHE #7 IN LOWER BYTE FOR LAST INSTR, AND s THESE LOCATIONS ALSO USED BY PREVOUS s INSTR, AS DATA FOR UNIT § OR UNIT +READ SECTOR WITH UNIT NUMBER, 000120 000122 000124 000130 #0132 900136 000140 000144 P00146 900150 200152 000154 000160 000162 000164 P0e170 200172 200176 P93756 205007 010261 000403 110461 000304 832711 000002 WAITD2: 000002 WAITS: 100240 WAITS A00116 000004 EMPTY: RDDY: 000002 WAITD: 165564 BDIAG: RXO2E: 000001 SYMBOL BDIAG DIAG LL L7 Po0172 = 165564 A00056 000040 READ 000116 RLO1CR= 174400 RSO4CR= 172040 RO =3000000 =%000004 R4 SP =%000006 TUS56CR= WAITS 177342 P00132 LL R7 BLE P91775 100730 205726 042703 P19311 200766 110561 220763 200137 057141 CLR MOV R2,2(R1) BR MOVB WAIT R4,2(R1) SWAB R4 BIT $100240, (R1) BEQ WAIT BMI L62 TST (6)+ (6) JMP BIC FROM WHERE YE CAME, sCRC=16 WORD FOR THIS BOOOT. POR0S6 L6 00N016 MRESER= PC RPO3CR= 173000 P0A340 176714 RX@1CR= 177170 177560 sRETURN END TABLE LL6 NAA140 DOe2090 sFIX REURN ADDR, @e#DIAG 257141 177559 WAIT s LOOK FOR ERROR,T/R OR DONE, s IF NONE,LOOP $IF ERROR,RESART, JMP « WORD 001000 =%000005 INFO, s STORE WORD COUNT sWAIT TILL DONE, BIT9 RS SECTOR WAIT HSRCR TTCR TRACK OR BR 000400 =%000001 s LOAD ADDR, R3, (R1) WAIT R5,2(R1) 200154 R1 s+LOAD CURRENT $4,R3 BITS EMPTY RESERV= +sREADS SECTORS 1,3,5,7 sEXIT TO LOC ZERO BR MOVB MOV $000007 RK@AS5CRs= 177404 RPQ4CR= 176700 RX@2CR= 177170 R2 =%000002 R6 =%000206 TU10CR= 172522 WAITD PoN164 FOR UNIT sWAIT UNIT UNIT IS READY, $SET READ SECTOR 000416 CMPB @ OR sRECORD WHERE WE ARE FOR RETURN, 000415 000110 000112 200114 FOR UNIT CRCWD = INITSW= 000000 173024 L62 200030 RDDY 000160 RKQO6CR= 177449 RSO3CR= 172040 RXQ2E 200176 R3 =%000003 R7 =%000007 TU16CR= 1724409 WAITD2 000124 IN DBR 2 i, 16 M9312 ROM LISTING BOOTSTRAP (K=SP=M9312=¢=7) Page M9312 THIS TO BOOTSTRAP ROM BOOT WILL ROM LISTING BOOT THE TU1@ UNIT ©0,AND NOT RUN OPTION(S), DIAGNOSTICS,THE START ADDR 1S 173Y04, TO BOOT UNIT & AND RUN CPU DIAGNOSTICS,THE START ADDR IS 173Y#6, THE IF IF IF IF Y COMPONENT THIS ROM THIS ROM THIS ROM THIS ROM IS IS Is IS OF IN IN IN IN THE SLOT SLOT SLOT SLOT ADDRESS 1 2 3 4 REPRESENTS THE Y COMPONENT THE Y COMPONENT THE Y COMPONENT THE Y COMPONENT BITS 7 IS @@ IS @1 IS 10 IS 11 AND ADDR, ADDR, ADDR, ADDR, 8 OF THE WHOLE WORD, 1730XX 1732XX, 1734XX, 1736XX, % 000000 000002 000004 000006 000012 000016 000020 000022 P00024 000026 200030 000034 00036 200042 000044 000046 0080050 000052 000054 046524 Q00176 000261 @12700 ?127061 010704 103054 ©@00411 1730090 090340 012700 ©OB766 012700 000261 0P0762 010003 000303 010311 Q06061 000060 000062 000066 000070 103375 052711 145711 100376 000104 200106 ooa110 105711 100376 005711 000112 100415 000072 00100 0002114 Pv0122 A00124 PVA130 012761 112711 012761 011103 042703 152703 2¥0134 010311 20140 101376 ¥e0136 Av0142 00144 105711 005711 100004 0NVVVBY 172522 «SBTTL ;TU16 BOOT sCMND MT TUl@: +«ASCII « WORD SEC MOV MOV MOV BCC BR « WORD « WORD MOV BR MOV SEC BR MOV SWAB TU1@M: 000001 000001 1s: TU1OB: 177776 1s: 060017 177777 0060011 282 3s: 000002 4s: 177000 00000A2 CBOOT: @0¥0377 00RVR3 1s: MOV ROR BOOTS UNITS 0,1,0R 2 WITH OR WITHOUT DIAGNOSTICS "TM" ;TM11/TU10 <TU1QE=,+2> sOFFSET TO NEXT DEVICE BOOT., sENTRY POINT TO UNIT 0 NO DIAG. sENTRY POINT TO DIAGNOSTICS s LOAD CSR ADDR INTO R}, sENTRY POINT $0,RO #TU10CR,R1 PC/R4 BDIAG 18 MRESERVED RESERVED #1,R0 TU10OM #1,R0 TU10M R3,R3 R3 ;GOTO BOOT BOOT, s START UNIT #1 DIAGNOSTICS s START UNIT #1 NO DIAGNOSTICS R3, (R}1) =2(R1) sFIX UNIT # sSEE IF THE SELECTED DRIVE BCC BIS TSTB BPL 1s $60017, (R1) (R1) 3s sWAIT IF NOT, sREWIND, 800 BPI sWAIT TILL DONE #=-1,2(R1) #11, (R1) (R1) s SET RECORD COUNTER TO SKIP ONE RECORD s SPACE FORWARD CMND, sWAIT FOR ERROR OR READY BPL TST BMI 4 (R1) ERROR ;s SEE MOV BIC BISB (R1),R3 #377,R3 #3,R3 MOV MOVB TSTB MOV #=512,,2(R1) MOV R3,(R1) BPL 1$ TSTR TST BPL (1) (R1) GBOOT IS ON LINE 9 CHANNEL IF ERROR s LOAD WORD COUNT s SET READ sWAIT TILL DONE sTEST FOR ERRORS, sNO = ERRROR = EXIT, 17 M9312 ROM LISTING BOQTSTRAP 000146 000150 000152 P00156 200162 200176 000005 000720 0090137 "42711 205007 200176 021526 000001 ERROR: 165564 280377 RESET BR BDIAG: GBOOT: JMP BIC CLR =176 TU10E: «WORD TU10M @#DIAG $#377,(R1) PC sELSE, INITIALIZE, BITS8 DIAG INITSHW= RKOS5CR= 000400 165564 173024 177404 176700 177170 921526 RP@4CR= RXP2CR= R3 =%000003 R7 =%000007 P000B50 TU10B TU16CR= 172440 TABLE BITY 001000@ 000146 ERROR MRESER= 173000 RKAG6CR= 177449 RSG3CR= 172040 RO =3000000 =3000004 R4 SP =%000006 TU10CR= 172522 TUS6CR= 177342 TRY sCLEAR CONTROLLER, $sGO TO SECONDARY BOOT, «END SYMBOL P00152 BDIAG CRCWD = 200000 HSRCR = 177550 RESERV= 000340 RPA3CR= 176714 RXP1CR= 177170 R2 3000002 R6 3000006 000000 TU18 000012 TU1OM Page (K=SP=M9312=0~7) CBOOT 000114 200156 GBOOT PC 23000007 RLE1CR= 174400 RSO4CR= 172040 R1 =%000001 R5 =%000005 TTCR = 177560 TU10QE 200176 200200 AGAIN, 18 M3312 ROM LISTING BOOTSTRAP (K=SP=M9312«=p=7) Page M9312 BOOTSTRAP ROM LISTING THIS ROM WILL BOOT THE TU16/TU77 OPTION(S). TO BOOT UNIT @,AND NOT RUN DIAGNOSTICS,THE START ADDR IS 173Y04, TO BOOT UNIT @ RUN CPU DIAGNOSTICS,THE START ADDR IS 173Y06, AND THE Y COMPONENT OF THE ADDRESS REPRESENTS BITS IF THIS ROM IS IN SLOT 1 THE Y COMPONENT IS 20 IF THIS ROM IS IN SLOT 2 THE Y COMPONENT IS @1 IF THIS ROM IS IN SLOT 3 THE Y COMPONENT IS 1@ IF THIS ROM IS IN SLOT 4 THE Y COMPONENT IS 7 11 AND 8 OF THE WHOLE WORD., ADDR, 1730XX ADDR, ADDR, ADDR, 1732XX, 1734XX, 1736XX, DEVICE BOOT, % P00000 000002 046515 00P0B176 000004 200006 000012 000261 012700 012701 200016 000020 000022 010704 103064 000402 Q00000 172440 «SBTTL ;TU16/TU77 BOOT sCMND = "MM" TU16: «ASCII «WORD TU16M: SEC MOV MOV MOV BCC BR 200024 173000 « WORD 000026 00D340 «WORD 000030 200030 P00032 000034 000040 000044 000052 A00054 000060 000064 990066 000072 000076 g00100 200106 P00112 200116 000120 000126 200134 080136 0¥0142 0P0005 010003 0527903 010361 032761 001774 112711 105761 100375 112711 105761 190375 012761 112711 105761 100375 016161 012761 TU16B: TU16ER: 001300 000032 010000 0400012 1§: 000007 00012 28 000011 000012 38 177777 0008006 000031 000012 0AVNB16 177000 4ss 00016 000802 CMM$SGO: 011103 042703 152703 00146 010311 PP0150 200152 105711 1006376 PV0154 AO5711 00156 100004 gue160 022761 00166 GR1320 0003177 000071 1$2 001000 000V14 "MM" <TUL16E=~,.+2> #0,R0O #TU16CR,R1 PC,R4 BDIAG TU16B MRESERVED RESERVED RESET MOV BIS MOV BIT BEQ MOVB TSTB BPL MOVB TSTB BPL MOV MOVB #1300,R3 R3,32(R1) #10000,12(R1) 1s #7,(R1) 12(R1) 28 #11,(R1) 12(R1) 38 #=1,6(R1) #31,(R1) TSTB BPL MOV MOV 12(R1) 4s 16(R1),16(R1) $#=512,,2(R1) MOV BIC BISB (R1),R3 #377,R3 #71,R3 MOV R3,(R1) TSTB BPL (R1) 18 sTU16 BOOT, sOFFSET TO NEXT sUNIT ZERO sLOAD CSR ENTRY ADDR. INTO R1 RO,R3 TST (R1) BPL CMP CLCRS #1000,14(R1) BNE TU16ER 2800 BPI AND FORMAT sREWIND COMMAND sDRIVE CLEAR CMND, s SPACE FORWARD sREAD CMND, CMND sPATTERN TO TEST FRAME ERROR BIT 19 M9312 ROM LISTING BOOTSTRAP 000170 000172 000176 205007 200137 000176 CLCRS: BDIAG: 165564 162556 TU16E: 000001 CLR JMP 2176 « WORD PC @#DIAG 162556 +«END SYMBOL BDIAG 900172 000126 CMMSGO INITSW= 173024 RKOSCR= 177404 RPO4CR= 176700 RXP2CR= 177170 R3 =%$000003 R7 =$000007 TU16 000000 TUI16ER 000030 Page (K=SP=M9312=0=7) BIT8 = 000400 CRCWD = 000000 MRESER= 1739000 RKO6CR= 177440 RSO3CR= 172040 RO =%000000 =3000004 R4 SP TU16B TU16M 34000006 P00230 000012 TABLE = 001000 BITY9 = 165564 DIAG PC =3000007 RLO1CR= 174400 RSO4CR= 172040 R1 =%000001 =%000005 RS TTCR = 177560 TUI16CR= 172440 TUS6CR= 177342 900170 CLCRS HSRCR = 177559 RESERV= 000340 RPO3ICR= 176714 RXGiCR= 177170 =%000002 R2 R6 =%000006 TULIOCR= 172522 TU16E . 002176 = 000200 20 M9312 ROM LISTING BOOTSTRAP (K=SP=M9312=0=7) Page 21 M9312 BOOTSTRAP ROM LISTING THIS ROM WILL BOOT THE TU6@ OPTION(S), TO BOOT UNIT ©,AND NOT RUN DIAGNOSTICS,THE START ADDR IS TO BOOT UNIT @ AND RUN CPU DIAGNOSTICS,THE START ADDR IS 173Y04, 173Y@6, THE Y COMPONENT OF THE ADDRESS REPRESENTS BITS 7 AND 8 OF THE WHOLE WORD, IF IF IF IF THIS THIS THIS THIS % «SBTTL P00000 041524 000002 000004 000006 000012 000176 ©00261 012700 012701 000016 200020 000022 P00024 090026 000030 010794 103042 000402 173000 000340 010003 000042 000044 A00050 009054 010405 042705 062705 012702 P00032 000036 000040 900060 200062 000064 200066 042703 000303 910311 112503 112511 100407 001776 105202 100772 116112 000771 000106 000110 100404 005002 200112 000114 006116 000120 000122 PPA126 A0n132 305 177500 177776 024 224 249 037 ADDR, ADDR, ADDR, ADDR, 1730XX 1732XX, 1734XX, 1736XX, = CT TALIM: MOV BCC PC,R4 BDIAG sRETURN ADDR, $GOT DIAG, IF 16 BR « WORD « WORD MOV 18 MRESERVED RESERVED RO,R3 R4,R5 #177,R5 $TABLE,RS5 #375,R2 LOOPi: MOV BIC ADD MOV MOVB MOVB BIC SWAB MOV LooP2: BMI BITB DONE:? TST ERROR: #15 0@ @1 10 11 :THIS TA=-11,TU60 CASSETTE BOOT, sCMMD BDIAG: TABLE: +EVEN "TC" #177776,R3 R3 R3, (R1) (R5)+,R3 (R5)+,(R1) DONE s TU60 BOOT "CT" ENABLED, s XFERR COUNT, s SET COMPARITOR, sLEAD COMMAND, R3/,(R1) sWATCH FOR LAST COMMAND, sLOOK FOR DONE BIT (R1) sANY ERRORS? R3, (R2) sCORRECT CODE IN LOC 07? LOOP2 R2 LOOP1 2(R1),(R2) LoOP2 BMI CLR ERROR R2 BNE CLR RESET ERROR PC L.BYTE 240,37,15,5,24,224 JMP JMP ID sSTRIP JUNK, ONLY UNIT 0 OR 1§, sPUT IN CORRECT POS, s LOAD UNIT # BEQ INCB BMI MOVB BR CMPB Q00002 165564 IS IS IS IS sOFFSET TO NEXT DEVICE BOOT, sUNIT #0 ENTRY, NO DIAG sUNIT #0 ENTRY, RUN DIAG s LOAD CSR ADDR IN Rl 000002 000164 ©POO137 COMPONENT COMPONENT COMPONENT COMPONENT «WORD <TA11E=,+2> SEC MOV #0,R0O MOV #177500,R1 120312 001001 005007 000005 Y Y Y Y +ASCII 090177 090132 000375 005711 THE THE THE THE TAll: TA11B: 130311 000070 000072 000074 200076 000102 #00104 000000 ROM IS IN SLOT 1 ROM IS IN SLOT 2 ROM IS IN SLOT 3 ROM IS IN SLOT 4 2(R4) @#DIAG M9312 ROM LISTING A00176 BOOTSTRAP Page (K=SP=M9312=09~=7) 022763 TAI1E: 300001 022763 « WORD «END SYMBOL TABLE = 001009 BDIAG 000126 DIAG = 165564 INITSW= 173024 PC =%000007 RLOI1CR= 1744900 RSO4CR= 172040 R1 =3000001 BIT8 DONE RP@3CR= 176714 RXO1CR= 177170 R2 23000002 200066 LOOP2 RK@SCR= 177404 RPQ4CR= 176700 RXO2CR= 177170 R3 =%000003 RS R6 R7 23000005 = LOOP1 000400 000104 200062 RESERV= 900340 2%000006 TABLE TAL11M 200132 000012 TA11l TICR = TUS6CR= 177342 . 3 000000 177560 000200 BIT9 000120 ERROR TA11B 3000007 TU10CR= 000032 172522 CRCWD = 000000 HSRCR = 177550 MRESER= 173000 RK@6CR= 177449 RS@3CR= 172040 RO =3000000 R4 =%000004 SP =%000006 TAL11E TU16CR= 200176 172440 22 M9312 ROM LISTING BOOTSTRAP (K=SP=M9312=p=7) Page M9312 BOOTSTRAP THIS ROM TO BOOT ROM LISTING WILL BOOT THE UNIT O,AND NOT RP02/RP@3 RUN OPTION(S), DIAGNOSTICS,THE START ADDR IS 173Y04, TO BOOT UNIT © AND RUN CPU DIAGNOSTICS,THE START ADDR IS 173Y@6, THE Y COMpPONENT OF THE ADDRESS REPRESENTS BITS 7 AND 8 OF THE WHOLE WORD, IF IF IF IF 1 THE Y COMPONENT 2 THE Y COMPONENT IN SLOT 3 THE Y COMPONENT THIS THIS ROM ROM IS IS IN IN SLOT SLOT THIS THIS ROM ROM IS IS IN SLOT 4 THE Y COMPONENT IS 00 IS @1 IS 1@ Is 11 ADDR, ADDR, 1730XX 1732XX, ADDR, 1734XX, ADDR, 1736XX, THIS ROM WILL BOOT THE RPO4/RPO@S5 OPTION(S), TO BOOT UNIT O,AND NOT RUN DIAGNOSTICS,THE START ADDR IS 173Y46, TO BOOT UNIT @ AND RUN CPU DIAGNOSTICS,THE START ADDR IS 173Y50, THE Y COMPONENT OF THE ADDRESS REPRESENTS BITS 7 AND 8 OF THE WHOLE WORD, IF THIS ROM IS IN SLOT 1 THE Y COMPONENT IS 00 ADDR, 1730XX IF THIS ROM IS IN SLOT 2 THE Y COMPONENT IS 01 ADDR, 1732XX, IF THIS ROM IS IN SLOT 3 THE Y COMPONENT IS 190 ADDR, 1734XX, IF THIS ROM IS IN SLOT 4 THE Y COMPONENT IS 11 ADDR, 1736XX, «SBTTL :BOOT FOR RPO2, sCMND A00000 042120 200002 000004 000006 P00012 000016 000020 000022 000024 000026 000030 #00032 00034 P00036 000042 000042 000261 012700 012701 010704 103060 000402 173000 000340 010003 000303 010311 G12702 000425 200044 042102 000046 000132 000000 176714 "PD" sID OF RP©2, <RPO3E=,+2> sOFFSET TO NEXT DEVICE BOOT, sUNIT O, NO DIAG ENTRY POINT, sUNIT @0, RUN DIAG ENTRY POINT, s LOAD CSR ADDR. INTO R1, sENTRY FROM CONDOLE EMULATOR, sEXERCISE DIAG. IF C=0, RP@3E: « WORD SEC MOV MOV MOV BCC BR « WORD +« WORD MOV SWAB MOV MOV BR RPO4: 000605 000261 012700 000000 000056 000062 000064 012701 010704 103036 176700 000066 PRR0T72 000076 000102 001106 N17061 012702 012711 (12761 016161 0ROV10 0PVOV11} 00V0021 914000 000V16 A00N32 000N Pvn116 012761 177000 @0ERA2 RPOS «ASCII 1s¢ 000050 RP24, CMND RPO3M: 000052 RPO3, "DP" RpPO3: = #0,RO #RPO3CR,R1 PC,R4 CMS$SGO: "DB" RP23 BOOT. BDIAG 18 MRESERVED RESERVED RO,R3 R3 R3, (R1) #5,R2 CM$§GO s LOAD UNIT &+, sCODE FOR READ., $GOTO COMMON BOOT CODE, +ASCII "BD" sID « WORD <REND=,+2> sOFFSET sUNIT 0@, NO DIAG, MOV #0,R0 sUNIT RUN MOV MOV BCC #RPO4CR,R1 PC,R4 BDIAG s LOAD CSR ADDR. INTO R1, sENTRY FROM CONSOLE EMULATOR, sEXERCISE DIAG IF C=0, MOV MOV MoV MOV MOV RO,10(R1) #71,R2 $21, (R1) $14000,32(R1) 16(R1),16(R1) MOV #=512,,2(R1) s SET UNIT NUMBER, ;CODE FOR READ, s ISSUE READ IN PRESET CMND, sSET FMT22 AND ECC INHIBIT BITS sWRITE ATTENTION SUMMARY REG, s INTO ITSELF, s LOAD WORD COUNT, sNEW HEADER BLOCK BEGINS HERE SEC RPO4M: = OF RP@4, 0, TO RPOS NEXT BOOT, DEVICE BOOT, DIAG., ENTRY POINT, ENTRY POINT, 23 M9312 ROM LISTING BOOTSTRAP 000124 200126 000132 911103 242703 050203 000134 200136 200140 P10311 (KeSP=M9312=0-7) Page (R1),R3 MOV PVN377 MOV 105711 100376 005711 100003 1s:2 TSTB BPL 000142 000144 P00146 200005 000150 0002164 000002 000154 042711 290377 200160 200162 005007 000137 TST BPL ERROR: $SET CLRGO: BIC BDIAG: CLR JMP R NEW COMMAND, (R1) )8 sWAIT FOR READY, (R1) CLRGO s LOOK FOR ERRORS, sNONE - CONTINUE 2(4) #377,(R1) sCLEAR DEVICE (LOW BYTE) sAWAY WE GO TO THE NEWLY LOADED CODE!} $GOTO DIAGNOSTICS, R7 @#DIAG 2212 a22242222222l 22222222 2 222222221 LY. :RPO2,RP23 ENTRY FOR UNIT #1, R 000166 200261 IZA T LSS L2 R 000174 200706 200176 200176 111612 000001 REND: 900001 BDIAG 009162 000116 HSRCR REND = 177550 000176 RLOICR= 174400 RPO3M 000012 RSO3CR= 172040 RO =$000000 R4 =%000004 SP =%000006 TUS6CR= 177342 2 2 a2 R a2 ENTRY FOR UNIT NO DIAG TLIZTTAL ARSI A AT LI A2 il #1, RUN ST LIRS TTL YL T BITS8 CRCWD = = INITSW= RESERV= RPO3 RPO4 RSP4CR= R1 RS TTCR . 000400 000000 = #1,R0O BR RPO3M e=176 +«WORD 111612 TABLE BIT9 = 001000 = 165564 173024 MRESER= 173000 900340 000000 200944 172040 RKOSCR= RPA3CR= 176714 000200 IS Y] A2 2222212222222 2223222 S LI L2 MOV DIAG =%000001 =%000005 = 177560 i DIAG. +END SYMBOL CM8GO 22 A2 2d 222 sRPO2,RPO3 012700 PR SEC A 000170 INITIALIZE SYSTEM sIF ERROR, RESET JMP 165564 sGET CSR CONTENTS, #377,R3 R2,R3 R3, (R1) BIC BIS 177404 RPO@4CR= 176700 RXO1CR= 177170 R2 =%$000002 R6 =%000006 TU1ACR= 172522 CLRGO 000154 200146 ERROR PC =%000007 RKO6CR= 177440 RPO3E 000042 RPO4M 900056 RX@2CR= 177170 R3 =%000003 R7 =3000007 TU16CR= 172440 24 M9312 ROM LISTING BOOTSTRAP (K=SP=M9312=p<=7) Page 1 2 20100 00200 $3<11-UTILITIES>TSBOOT,P11,145, 8<NOV=78 12:53:44, EDIT BY KINZELMAN .TITLE TSBOOT = TS®4 M9312 BOOTSTRAP CODE (ROM PART # 23-764A9) 3 4 5 20300 P3400 P9590 «REM 7 a0700 8 9 10 00800 20909 21000 12 21200 6 ! BY PAUL KINZELMAN ML1=3 E63 3=2473 0206900 11 13 14 27=JUN=78 THIS IS THE M9312 BOOTSTRAP CODE FOR THE TS04 MAG TAPE DRIVE, WRITTEN TO CONFORM TO SPEC # ECB1-77-001-00-U BY ED BADGER (10 OCT 77), 01100 THIS BOOTSTRAP MUST BE LOCATED IN THE 1ST 32K AREA OF THE ADDRESS SPACE, 91300 21400 THE MAGTAPE MUST HAVE A SINGLE RECORD OR FILE MARK BEFORE THE DESIRED BOOTSTRAP RECORD, AND THE BOOTSTRAP RECORD MUST BE 512(10) BYTES LONG, 15 21500 16 01600 THE BOOTSTRAP DOES THE FOLLOWING OPERATIONS: 18 19 20 21 22 23 24 25 26 21800 01900 02000 02100 02200 02300 #2400 92500 22600 1 2 3 4 S 28 29 30 31 32 02800 02900 03000 #3100 #3200 34 35 36 37 03400 P3500 n3600 03700 UPON EXIT FROM THE BOOT, R1 CONTAINS THE ADDRESS OF THE TSSR REG, R2 CONTAINS THE TSBA REG, AND RO LO BYTE CONTAINS THE UNIT NUMBER, IF YOU SUBTRACT 20 FROM R4, R4 WILL POINT TO THE ASCII ID OF THE DEVICE, THEREBY YOU CAN FIGURE OUT FROM WHAT MTA TYPE YOU WERE BOOTED FROM, 38 39 23800 n3900 FOR THOSE OF 40 41 42 43 44 P4000 04100 04200 24300 04400 THE TSSR REG CONTAINS THE SSR (SUBSYSTEM RDY) BIT INDICATING THAT THE DRIVE IS RDY FOR THE NEXT COMMAND, THE TSSR ALSO CONTAINS THE SC (SPECIAL CONDITION) BIT INDICATING THAT SOMETHING ABNORMAL (USUALLY ERROR) HAPPENED DURING THE LAST OPERATION, TO DO AN OPERATION, WE WAIT FOR THE SSR BIT TO COME TRUE, WE THEN WRITE THE ADDRESS OF THE COMMAND PACKET WE WISH 46 #4600 THE SC BIT TO TELL US WHETHER ANYTHING UNUSUAL HAPPENED, 48 49 #4800 94900 THE ADDRESS OF THE COMMAND PACKET MUST BE ON AN EVEN 4 WORD BOUNDARY (THE LO ORDER 2 BITS ARE @), BIT 17 OF THE PACKET ADR IS MOVED TO BIT i OF 50 P5000 THE POINTER AS WRITTEN INTO THE TSBA AND BIT 16 OF THE PACKET ADR IS 52 A5200 17 91700 27 02700 33 23300 45 04500 47 24700 51 25199 53 54 55 #5300 BOAVA0 20100 op IF SET CHAR REWIND RD FWD (TP MK) READ FWD RD PREV REV RTY 2 3 ¢4 EXIT EXIT ENTER BOOT IN THE STANDARD OK, WAY DO (RO = UNIT SINCE THE TS@4 HAS 1 UNIT PER ADDRESS, AND ADDED TO THE BUS ADR IN R1: MS# TSSR (DEFAULT) 2 1 2 3 TO PERFORM YQOU INTO ERR, DO #, R1 = THE UNIT # TSSR BUS ADR), IS ROTATED LEFT 2 PLACES ADR 172522 172522 172526 172532 172536 WHO IF 2 1 1 5 1 KNOW THE TSBA, (ETC.) NOTHING ABOUT THE TS@4, HERE WHEN SSR COMES TRUE AGAIN, IS A CHEAT-SHEET, WE CHECK MOVED TO BIT @ OF THE POINTER, AND A FREE DINNER TO THE FIRST ONE TO COME UP WITH A SHORTER BOOTSTRAP THAN THIS ONE THAT DOES THE EQUIVALENT OPERATIONS! «ASECT 25 M9312 ROM 56 57 58 59 60 61 62 63 64 6S 66 LISTING BOOTSTRAP 172522 165564 022000 00200 00300 00400 00500 20600 8@700 #0800 20900 01000 21100 91200 022000 022002 022004 046523 000176 000261 022006 022012 012700 012791 67 68 69 76 022016 022020 022022 022024 010704 103063 000411 173000 01300 21400 21500 21609 74 75 022030 022032 1420190 000000 02000 02100 71 72 73 76 71 78 79 80 81 82 83 84 85 86 87 88 89 990 91 92 93 94 95 96 97 98 99 100 1801 102 103 104 105 106 107 108 109 110 022026 022034 022036 022040 022042 022044 ©22050 022052 022056 022060 22064 006303 @22079 022072 022074 022076 022100 +ENABL ABS 001022 091375 ©06303 060301 010102 005742 105711 100376 022102 005037 @080000 022106 022112 022114 012712 111143 100376 001010 02400 02500 02600 02700 02800 #2900 93000 23100 #3200 23300 03400 23500 03600 23700 #3800 23900 04000 04100 04200 94300 24400 04500 24600 #4700 #4800 24900 #5000 #5100 00100 00200 09300 00n400 sFIRST TSP4 STATUS REG (TSBA IS PREV WD) TSO4SR= 172522 DIAG= 522000 TS04: TSO4M: «ASCII 165564 sFOR NOW "sM" «WORD SEC MOV MOV MOV BCC BR <CRCWD=.+2> «WORD 340 « WORD $0,R0O #TSO4SR,R1 PC,R4 BDIAG RSTRT 173000 $MOVE THE FOLLOWING TO 1000: CMPRWD: 02200 02300 140004 001012 000000 010702 012765 014245 105705 022066 21709 91800 21900 000000 001000 010003 022062 090000 172522 000340 022046 Page (K=SP=M9312=¢=7) sASCII CODE (BACKWARDS) sOFFSET TO NEXT DEVICE sENTRY POINT TO UNIT @ NO DIAG sENTRY POINT TO DIAGNOSTICS sGET THE 1ST TSSR ADR IN Ri sENTRY POINT, SAVE RTN PC sBR TO RUN DIAGNOSTICS sBR OVER RESERVED WORDS sTHE VOICE FROM ABOVE SAID THESE sWORDS HAD TO BE HERE 3 (XXX24 IS EXCEPTION ADDRESS) sREWIND (1 WD) 142010 sLO 16 BITS ADR $HI 2 BITS ADR @ ) $SIZE OF RECORD (512(16) BYTES) 256,%2 ¢+SET CHARACTERISTICS CMD (4 WDS) +LO 16 BITS OF MSG BUFF POINTER (= ,) CMPSCH: 140004 1012 2 sHI 2 BITS s THE FOLLOWING MUST NOT BE MOVED AWAY FROM THE END OF THE CMD LIST s THE FOLLOWING IS ALSO TAKEN AS THE MSG RSTRT: 1§¢ MOV RO,R3 MOV PC,R2 BNE is MOV MOV TSTB ASL ASL sBUFFER POINTER SIZE AND MBF SIZE! sCOPY THE UNIT # sTHE FOLLOWING IS TAKEN AS THE DRV CHARe sACTERISTICS WORD: #1022,R5 «(R2),=(R5) RS sGET WHERE WE ARE $sEND OF COMMAND LST IN CORE sMOVE IN THE COMMAND LIST sARE WE DONE YET? sLOOP FOR ALL WDS (EXIT WITH RS = 1000) sROTATE INTO PLACE R3 SO WE CAN ADD IT TO THE ADR R3 sNOTE: THE FOLLOWING ASSUMES THE USER TYPED A REASONABLE NUMBER FOR ;THE UNIT, IF NOT, WE WILL PROBABLY GET A BUSS TIMEOUT, 282 ADD MOV TST TSTB BPL sADD IN TO THE BUS ADR ;COPY THE TS STATUS REG sPOINT R2 TO THE TSBA s AND CHK FOR SSR :BR IF SSR NOT UP YET R3,R1 R1,R2 =(R2) (R1) 28 sTHE FOLLOWING MAY BE REMOVED IF WE NEED THE SPACE? 3s:s sCLR OUT LOC @ IN CASE BOOT FAILED WE’LL HALT CLR R0 MOV #1010, (R2) BPL 38 MOVB (R1),R3 ;DO THE SET CHARACTERISTICS sTST SSR BIT (INIT R3 BYTE TO NEG WHEN RDY) sBR IF NOT RDY YET :DON’T NEED TO CHK ERRS BECAUSE IF IT FAILED, 26 M9312 111 112 113 ROM LISTING BOOTSTRAP 922116 010512 00709 Lp1: MOV R5, (R2) sD0 THE REWIND OR RD FWD OVER TAPE MARK 022120 105711 1006376 932711 00800 20900 4s: TSTB BPL (R1) 4s sTST SSR BIT sBR IF NOT RDY 022122 117 118 119 922130 322132 222136 120 121 122 123 822140 0901346 912715 195103 100366 022142 210512 022144 105711 100376 005711 100401 205007 132 133 134 135 136 137 138 139 140 BDIAG CMPRWD CMPSCH o ABS, sTHE NEXT COMMAND WILL CERTAINLY FAIL ANYWAY 00500 00600 114 115 116 124 125 126 127 128 129 130 131 Page (K=SP=M9312=0=7) 022124 022146 022159 922152 222154 YET 000012 01000 BIT #12,(R1) sALLOW 140001 01100 01200 P1300 BNE MOV RSTRT $140001, (RS) $BR IF ERROR, TRY AGN sCODE FOR RD FWD AS NEXT COMB BPL R3 LP1 s INVERT OUR FLG sBR BACK TO DO THE RD LP2: MOV R5, (R2) :DO RD FWD THE BOOT RECORD 683 TSTB (R1) sTST BPL TST 6s$ (R1) sBR IF NOT RDY YET sTST SC BIT BMI CLR RDBAD PC ;BR IF ERROR, sJMP TO LOC © RDBAD: MOV COMB BPL BR #161001, (RS) R3 LP2 RSTRT sCODE FOR RD PREV REV RETRY s INVERT OUR FLG s LOOP BACK FOR RD RETRY sBR TO TRY WHOLE THING AGN BDIAG: JMP HALT @#DIAG «ERROR , sBOOTSTRAP CODE OVERFLOW 01400 01500 01600 21700 n1800 01900 02000 021900 TERM CLASS @ AND SSR 4, CHK FOR OTHERS OPERATION OVER TAPE MARK (R5=10080) BIT DO RETRY 02200 922156 022162 022164 212715 195103 02300 02400 161001 022166 100366 000727 922170 200137 022174 000000 02900 Pa1 #3000 23100 000 03200 140726 93300 03400 922176 92500 02600 02700 92800 165564 000001 022179 022030 022049 022200 CRCWD DIAG LP1 000 = 922176 165564 922116 «ENDC CRCWD: 140726 ;;LINK TO DIAGNOSTICS sTHIS IS A SPARE LOCATION sCRC FOR BOOTSTRAP «END LP2 RDBAD RSTRT 022142 022156 222046 TS04 TS@4M TSO4SR= 022000 022012 172522 . = 022200 27 ROM NNNNODNYN NN N 0t b (b mh b B b b b b - DOV OTONANEPLWNEEHSODDOD~LNOPALWNWOVO~SPONRDSd WN M9312 LISTING BOOTSTRAP Page (K=SP=M9312=9=7) $M9312 BOOTSTRAP ROM LISTING ’ sTHIS ROM WILL BOOT THE TUS8 OPTION ;TO BOOT UNIT @, AND NOT RUN DIAGNOSTICS THE START ADDR IS 173Y04 +TO BOOT UNIT @, AND RUN CPU DIAGNOSTICS THE START ADDR IS 173Y06 $THE Y COMPONENT OF THE ADDRESS REPRESENTS BITS 7 AND 8 OF THE WORD s IF THE ROM IS IN SLOT 1 THE Y COMPONENT IS @09 ADDR, 1730XX s IF THE ROM IS IN SLOT 2 THE Y COMPONENT IS @i ADDR, 1732XX s IF THE ROM IS IN SLOT 3 THE Y COMPONENT IS 10 ADDR, 1734XX s IF THE ROM IS IN SLOT 4 THE Y COMPONENT IS i1 ADDR, 1736XX «SBTTL TUS58 BOOT I I 36 W AW U6 B3 H 3096 98 3 38 3 35 3 3 3 9 3 3 36 3 36 3 3 36 I8 36 3 9 3 3 3 W 38 3 3 3 3 3 36 I W 3 I I I I 36 3 NOTE: THIS BOOTSTRAP DOES NOT RETRY IF THE BOOT FAILS, 3 ¥R THIS IS NECESSARY BECAUSE RETRIES CAN DAMAGE THE o 9% s 4 TAPE CARTRIDGE IF A HARDWARE FAILURE HAS OCCURRED, P00000 200002 000004 000006 000012 000016 000020 000022 000024 P00026 000030 000034 165564 173000 000340 2125025 176500 176502 176504 176506 042104 290176 200261 912700 912701 010704 103054 000000 176500 202000 012702 P05212 205003 176504 na0046 204767 AV5012 005737 012703 000046 P24 010 090034 AVN109 TBOOT: 7205004 000036 000042 000044 ?00052 000054 NO0P60 900062 PYeV64 PA0070 P00072 A00076 9 40 0040 003000 36 90 36 38 3090 3430 3046 3048 304090 3830 3030 3636 3030 06T 3030 36 30 30 34 30 38 303830 3630 3048 30 30 30 30 36 30 00 30 30 303090 000 3030 003000 00 00 165564 DIAG= MRESERVED =173000 =340 RESERVED 125025 CRC TISCSR =176500 TISBFR =176502 TOSCSR =176504 TOSBFR =176506 "“DpD" TUS8: ;ASCII IDENTIFIER «ASCII =,+2> <TUS8E sOFFSET TO NEXT BOOT «WORD $ENTRY POINT FOR UNIT @ NO DIAGS SEC MOV $0,R0 sENTRY POINT FOR UNIT @ WITH DIAGS MOV sPUT DEVICE ADDRESS IN Rt $TISCSR,R1{ TUS8M: MOV PC,R4 sDIAGNOSTIC BOILER PLATE 200402 173000 000340 212706 0047617 176502 BCC BR BDIAG TBOOT «WORD MRESERVED «WORD MOV CLR MOV INC CLR JSR CLR TST MOV P90a30 RCVLOP? RESERVED $2000,SP R4 $TOSCSR,R2 @R2 sSET STACK POINTER s SEND BREAK ON SERIAL LINE R3 PC,SENDS eR2 @#TISBFR (PC)+/R3 +sDELAY 7 CHARACTER TIMES s REMOVE BREAK sDUMP RECEIVE REGISTER JSR PC/,SEND2 s SEND MOV R&,R3 JSR CLR TSTB PC,SEND1 R3 eR1 +BYTE @10003 204767 015003 165711 2 4,10 sGET INIT, BOOT FLAGS FLAGS ;sSEND UNIT NUMBER :SET ADDRESS POINTER TO © sWAIT FOR CHARACTER RECEIVED 28 M9312 ROM 53 54 55 56 57 LISTING 000102 200104 900110 BOOTSTRAP 100376 113723 #22703 (K=SP=M9312=0-7) Page 176502 BPL MOVB RCVLOP @#TISBFR, (R3)+ 201000 CMP $1000,R3 Poo114 1901371 BHI RCVLOP 0090116 0050087 CLR PC sSTORE CHARACTER IN MEMORY RECEIVED? 3512 BYTES sNO, LOOP s YES, JUMP TO 0 sSUBROUTINE TO OUTPUT CHARACTERS TO THE SERIAL LINE 000120 200122 000124 000126 200130 200132 004717 004717 004717 105712 199376 110337 290136 000303 000140 000207 SEND8: SEND2: SEND1: 176506 JSR JSR PCs @PC Pcs@PC @R2 $ SEND 8 CHARACTERS s SEND 4 CHARACTERS s SEND 2 CHARACTERS s TEST TRANSMIT READY MOVB SEND1 R3,@#TOSBFR s SEND CHARACTER SWAB R3 RTS PC JSR TSTB BPL PC,@PC sENTRY FOR UNIT 1 000142 0P2144 000150 000261 912700 200720 000001 900152 900137 165564 UNITi: UNIT1D: BDIAG: 000176° 000176 022549 TUS8E: 000001 SEC MOV #1,R0O BR TUS8M JMP @#DIAG & WORD sUNIT sUNIT 1 1 NO DIAGS NO DIAGS s LINK TO DIAGNOSTIC ADDRESS <TU58+176> CRC +«END SYMBOL TABLE P09152R CRC = 022540 DIAG = 165564 MRESER= 173000 BDIAG « ABS, P0O0009 P00200 0o 001 RCVLOP 0Q00190R RESERVE= 000340 SEND1 SEND2 000124R P0B126R SENDS8 TBOOT TISBFR= TISCSR= 00012@R 0090 30R 176502 176500 TOSBFR= TOSCSR= TUSS8 TUSSE 176506 176504 C00000R P00176R TUS8M UNIT1H UNITID 000012R POO142R ©000144R 29 M9312 ROM LISTING BOOTSTRAP 1 Page 39 (K=SP=M9312=0=7) <REM % 2 3 4 IDENTIFICATION g 7 8 PRODUCT CODE: XXXXXXXeXXmXXXXX=X=X 10 PRODUCT NAME: M9312 DECNET BOOT = DMC 12 PRODUCT DATE: APRIL 1978 14 MAINTAINER: DIAGNOSTIC ENGINEERING 9 11 13 THE INFORMATION IN THIS DOCUMENT 1Is SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT EQUIPMENT DIGITAL CORPORATION, BY DIGITAL EQUIPMENT THAT ERRORS ANY FOR BILITY RESPONSI CORPORATION ASSUMES NO 15 16 17 18 19 MAY APPEAR IN THIS MANUAL, 20 THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION OF DIGITALS COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT AS MAY 21 22 23 24 25 OTHERWISE BE PROVIDED IN WRITING BY DIGITAL, 26 27 DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS 28 29 NOT SUPPLIED BY DIGITAL, 30 31 32 D OO~ WN W)+ [V 33 COPYRIGHT (C) 1978 DIGITAL EQUIPMENT CORPORATION % +REM % THIS ROM WILL BOOT THE DMC OPTION, T0 BOOT UNIT @,AND NOT RUN DIAGNOSTICS,THE START ADDR IS 173Y04, TO BOOT UNIT @,AND RUN CPU DIAGNOSTICS,THE START ADDR IS 173Y06, TO BOOT UNIT 1,AND NOT RUN DIAGNOSTICS,THE START ADDR IS 173Y30, TO BOOT UNIT 1,AND RUN CPU DIAGNOSTICS,THE START ADDR IS 173Y32, THE Y COMPONENT OF THE ADDRESS REPRESENTS BITS 7 AND 8 OF THE WHOLE WORD, IF ROM #1 IS IN SLOT 1 THE Y COMPONENT IS ©0 ADDR, 1736XX IF ROM #1 IS IN SLOT 2 THE Y COMPONENT IS 21 ADDR, 1732XX, % LISTING BOOTSTRAP RNRAD WN - ROM OO~ M9312 (K=SP=M9312=09=7) oTITLE ; 000000 RO=%0 000001 000002 Ri=%1 R2=%2 000003 R3=%3 R4=%4 R5=%5 R6=%6 000004 000005 200006 200007 000006 Page M9312 DECNET BOOT = DMC BASIC DEFINITIONS R7=3%7 Sp=%6 000007 PC=%7 000340 RESERVED=340 DIAG=165564 165564 173024 200000 173000 020000 INITSW=173024 CRCWD=@ MRESERVED=173000 «NLIST MC,MD oLIST ME +ENABL «=20000 ABS 31 LISTING BOOTSTRAP Page (KeSP=M9312=0=7) XM $CMND 020000 020002 020004 020006 920012 020016 020020 020022 020024 220026 920030 020032 220036 115 900576 000261 212700 912701 010704 130 000000 160010 DMCBGN: ,ASCII + WORD SEC MOV MOV DMCM: 173000 200340 200261 012700 000765 000001 $0,R0O #160010,R1 BDIAG sGO TO DIAG IF ENABLED (C=0) BR SETSTK $GET RETURN ADDR MRESERVED «WORD RESERVED MOV $1,R0O SEC sOFFSET TO NEXT BOOT sENTRY FOR UNIT @, NO CPU DIAG RUN sENTRY FOR UNIT @, RUN CPU DIAG sPUT FLOATING BASE ADDR IN Rl PC,R4 «WORD s IDENTIFIER ‘XM’ FOR DMC BOOT ‘MX‘ <DMCE=,+2> MOV BCC 103015 200416 ¢sENTRY FOR UNIT 1, NO CPU DIAG RUN sENTRY FOR UNIT i, RUN CPU DIAG DMCM BR $ 9040 U0 36 004 3020 3 0003 003 3030 30 3000 3 300 O 003300030 00 03 36 30 002000 38 00 00 0 0 2 3000 00 00 20 90 00 306 38 90 3030 303030 30 3030 30 0030 3090 3 3000 3030 3 30 000 3030 20380000 30003 3 00 0 33000 B 3 0 3 0030 30 s# FLOATING DEVICE INTERRUPT ROUTINE 020040 020042 020044 020046 020050 920052 005202 205303 020054 200137 1INC NODEV: 100002 000000 28 000776 200002 18 165564 DEC BPL HALT BR RTI sUPDATE R2 TO POINT TO NEXT DEV MODULO R2 :SUB ONE FROM R3 sIF CANT FIND DEVICE, HALT %% #RANOTE# H ADDRESS ASSIGNMENTS FLOATING 'REVIEW R3 1$ 2§ s RETURN S 0000 3030 08 30 300 30 30 35 30 30 30 3636 30 36 3630 06 6 20 38 36 003630 36 30 30 30 303038 38 38 36 90 30 0 30 30 30 30 9 38 30 300 30 98 3 08 s# GO TO DIAG © 030600 38 30 3 2 A0 3036 38 3 336 30 063 A I 363363 I I A T 00 U A A6 00 062 33 336 00 06 3 3 3 3 B 36 9% % BDIAG: et - R O W ~3 NN BWN W NN NNNNDNN N 0o b Bub b fub b fmb B b b e WNTM - QOVO~-~TOONBWNESTQOVOSONNA ROM w M9312 JMP e @#DIAG YRR A XYL AL I ILLLLS +GO TO DIAG sRETURN MADE THROUGH ADDR IN R4 LA LI S22 I LSS S S22 L tad el s# SET UP REQUEST SECONDARY BOOT MESSAGE AND STACK 32 020060 020064 $20070 212706 212716 912746 217776 00001 006010 S 363030 30 3630 33030 30 30 306 3 30 3036 40 363 3 30 30 3836 30 3 3806 203 SETSTK: MOV MOV MOV #17776,SP #1,(SP) $6010,=(SP) 3000 U 00363 3030 0000 3 0 30 3 3 B ¢sSET REQ SECOND BOOT MSG POINTER +SET HIGH ORDER WORD OF MESSAGE 'SET LOW ORDER WORD OF MESSAGE %% # #%#NOTE °BOOT MSG= 10,14,1,0 +sSTACK POINTER IS SET AT ® 3630 00 30 0 38 30 30 30 30 30 3630 30 30 06 3638 30 3036 30 30 3000 30 30 3038 30 30 40 30 30 300 30 90 30 20 30 3030 3 000 30 30 00 3 00 38 20 34 8 17774 s# FIND THE DEVICE IN FLOATING SPACE s# VERIFY THAT TWO EXTENSION ROMS ARE PROPERLY INSTALLED X 22 YT 320074 010702 820076 962702 000422 920102 020104 010704 262704 177734 020110 #20112 020116 011246 920122 01402 166416 #22726 PA0200 285001 28 MOV 382 MOV ADD ADD MOV SuUB CMP BEQ R IR ISR AL XRNNLRLIL S S 2222222222222 gt PC,R2 $SET UP R2 WITH PC,R4 +SET UP R4 WITH s leldsy $DEVTAB=2$=2,R2 :POINTER TO DEVTAB #NODEV=-3§8-2,R4 (R2),=(SP) 200(R4), (SP) #5097, (SP)+ L¥ °POINTER TO TRAP ROUTINE #%#NOTE ### 'THE NEXT FOUR INSTRUCTIONS VERIFY THAT +sTHE EXTENSION ROMS ARE PROPERLY INSTALLED, +IF NOT, THE BOOT WILL HALT +sPUSH THE #7407 FROM ROM #3 ON THE STACK +:SUBTRACT FROM IT THE #2400 OFF ROM #2 sCOMP IT WITH #5007 sIF NOT EQUAL, HALT 32 M9312 ROM 56 LISTING BOOTSTRAP 220124 e0R0A0 57 020126 58 020130 59 920134 P0o1776 60 61 920136 020140 205013 235711 62 63 64 65 66 67 68 69 79 71 #20142 020144 920146 111204 060401 905201 020150 #20152 920154 940401 005703 2901371 58 PB0004 HALT BR 4s¢ P10423 FLOAT: MOV MOV CLR TST #4,R3 R4, (R3)+ MOVB ADD INC BIC (R2),R4 R4,R1 R1 R4,R1 R3 TST BNE : ###NOTE %4 sCHECK POS OF ROMS #2 AND #3 5s +SET R3 TO DMC POS IN FLOAT =2 ¢+SET TRAP ROUTINE ADDR IN LOC 4 sCLR NEW PSW, R3 NOW CONTAINS DMC POS(6) sTEST FOR DEVICE, MAYBE TRAP TO NODEV (R3) (R1) ¢tMODULO INCREMENT ¢+UPDATE ADDRESS +BY MODULO s IN TABLE sIS THIS A DMC? FLOAT sNOT YET S 3638 3630 3 30 38 34 30 3 3634 36 36 90 30 36 90 30 30 34 30 34 30 36 38 30 30 3 35 3 30 36 90 3 36 3 30 36 38 0 34 3 30 38 96 36 36 3 38 30 3¢ 4 3 :# ADD UNIT DISPLACEMENT TO UNIT O CSR ADDR S 409000 30 30 4 30 30 36 38 98 3 30363630 08 3 30 3 30 30 36 38 3 30 36 36 30 30 36 30 3030 96 30 36 36 3 38 38 36 36 3 3 30 3036 96 98 30 38 34 3 % 020156 72 020162 73 020164 74 028166 75 020170 76 920172 77 78 79 80 81 82 83 84 8s 86 87 88 89 012703 Page (K=SP=-M9312=¢~-=7) 220174 920176 P20200 242700 010046 006300 177760 BIC 000402 XTI 222 s# DMC I 012704 000005 010702 000461 0000843 217370 90 020222 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 020224 000402 173000 000340 010702 000451 000041 020226 020239 020232 920234 #20236 020249 020244 000444 000044 000009 907774 @10705 i8¢ DMCRCV: P0A436 P00040 020264 P20266 #20270 @17774 Q00004 712702 2Vov17 FOR SECONDARY BOOT sUNIT # TIMES 2 sUNIT # TIMES 4 sUNIT # TIMES 8 161040 -2 $CRC16 WORD FOR ROM #1 s HEADER WORD FOR ROM #2 $CSR ADDR + UNIT#»8 $GO TO MAINLINE CODE R R TSR TR IR TLTL RS ARS SIS LTSS AS LI LAY MOV RESET NSA AL RAIATIIIITASR AL $8.,R4 PC,R2 DMCIN 43 +« WORD « WORD 17370 0 +« WORD « WORD MRESERVED RESERVED BR « WORD « WORD +« WORD DMCIN 41 @ 2400 « WORD « WORD 44 0 MOV MOV BR « WORD MOV DMCXMT: % RO RO RO TITII TR RS I XT ST DMC ¢ sPREVENT TRYING TO BOOT UNIT &% > 15 $SAVE UNIT J LS 2L MAINLINE BR P10702 #20262 RO, R1 DMC MOV BR +« WORD 000000 202400 010702 #20246 #20250 920252 "20254 220256 020260 200010 200000 020242 ADD BR +WORD « WORD 161040 177776 020202 020206 920210 $20212 020214 020216 020220 RO,=(SP) ASL ASL ASL 006300 206300 060001 $#177760,R0 MOV AL LT L L L $ RETURN ADDR s INPUT TO DMC sRQI + BASE REQUEST ¢+BASE ADDR s NO RESUME 18 PC,R2 ¢SET RETURN ADDRESS PCsR2 DMCIN $SET RETURN ADDR s INPUT TO DMC 4092, PC/,RS ¢SET SIZE TO MAX FOR CRC=i16 sSET NON=ZERO AS RS FLAG (RCV PENDING) MOV PC,R2 MOV #15,,R2 BR « WORD « WORD « WORD 2SI ¢$SET RETRY COUNT sMASTER CLEAR DMC DMCIN 40 17774 4 s INPUT TO DMC sRQI ¢+ CNTLI +FILLER $MAINT MODE + HDX $RQI ¢+ BA,CC + RCV ¢sBUFFER ADDRESS $SET RETURN ADDR s INPUT TO DMC ¢+RQI + BA/CC + XMIT ¢+MESSAGE ADDR ¢tMESSAGE LENGTH s LARGE LOOP COUNTER 33 M9312 ROM 110 111 112 113 LISTING 020274 020300 020302 020304 114 020306 115 020310 116 020312 117 P20314 118 020316 119 120 121 122 123 124 020320 020322 BOOTSTRAP 105761 100002 210703 (K=SP=M9312=0=7) 200002 280456 005705 1s: TSTB 28 P91754 Page 905300 001367 2085302 201365 sTEST RDYO SET BPL MOV 2(R1) 28 PC,R3 BR DMCOUT TST RS BEQ DEC DMCRCYV RO sDECREMENT BNE DEC 18 R2 18 tAGAIN s DECREMENT LONG LOOP sAGAIN ¢tDECREMENT RETRY COUNT s SEND AGAIN BNE sNOT YET :SET RETURN ADDR sCHECK DMC REQUEST $IS RECEIVE STILL OUTSTANDING :NO, REISSUE ONE SHORT LOOP 205304 DEC R4 920324 020326 020330 020332 291354 210702 P00412 000043 BNE DMCXMT MOV PC/,R2 DMCIN 43 ¢tRETURN 020334 020336 020340 020344 020346 130 #20350 017370 000000 012703 005300 P01376 005303 17370 $BASE ADDRESS AGAIN $tNO RESUME 020352 @20354 201374 000712 125 126 127 128 129 131 132 133 134 135 136 000012 112211 005202 105711 100411 105761 140 020366 141 020370 142 143 144 020374 145 020376 BASE REQUEST #10.,R3 DEC BNE DEC RO s LONG LOOP COUNTER=HOLD sDECREMENT SHORT LOOP 18 R3 :AGAIN sDECREMENT LONG LOOP 18 DMC tAGAIN s HUNG UP BNE BR AAZ 22242 DMC REQUEST AA2 2222 DMCIN: R2 TSTB (R1) BMI TSTB RDYIOK 2(R1) 222 BR 220402 020404 114076 177776 100370 210703 « WORD «WORD BPL #20406 P00415 020410 290765 1s 114076 -2 DMCTST MOV PC,R3 BR DMCOUT DMCTST BR Y Y sPOINT TO FIRST PARAMETER WORD sCOMMAND TO DMC $TO NEXT PARAMETER WORD IS RDYI SET? s YES=0K IS RDYO SET? : 1$3 ENOUGH=ANSWER AGAIN ROUTINE (R2)+ (R2)+,(R1) TST INC 209002 INPUT 2 222222 222222 T2 MOVB DMCTST: LONG ##HNOTE### sIF HUNG IN LOOP, IS SW7 OF SW PACK #2 ON? sCRC16 WORD FOR ROM sHEADER WORD FOR ROM sNO,WAIT $SET RETURN ADDR sCHECK DMC REQUEST sWAIT TILL DMC IS #2 #3 READY 151 2222222 A2 A2 d 2222222222222 22222222228 0228 2 152 % DMC LOAD INPUT ROUTINE 153 154 155 156 157 158 159 160 161 162 X $20412 012261 000004 220416 212261 000402 000006 020422 020424 020426 020430 020434 020436 020440 173000 000340 #42711 1865711 A22 2222222222212 RDYIOK: 2222232222222 2 2222222322322 Y 2 MOV (R2)+,4(R1) MOV (R2)+,6(R1) BR « WORD MRESERVED 28 :TO FIRST HALF DMC PORT $TO SECOND HALF DMC PORT « WORD BIC TSTB RESERVED (RY) s TEST 100776 BMI 1s sNOT 20N112 JMP (R2) s RETURN 300040 28 1s: DTR DOWN L2 2222222222322 222202 2L LY RL LR 000402 020400 o + 182 R 137 020360 138 020362 139 020364 tRQI MOV s# 205722 « WORD « WORD +« WORD ADDR $ FORCE PROC ERR=SET BASE AGAIN-KILLS DTR HNGLOP: R 020356 146 147 148 149 150 BR #40, (R1) sCLEAR RQI=GIVE TO DMC RDYI YET CLEAR 34 LISTING 163 164 165 166 020442 167 220450 168 020452 169 170 171 172 173 174 175 176 177 178 179 020460 020462 320464 020466 220470 020472 020474 920500 Page (K=SP=M9312=y=7) 36 3k 36 36 36 3 3¢ 3 34 36 34 36 36 34 36 36 30 3 3 3 3 3 3¢ 3 36 3 36 36 3 b s# DMC BITB $3,2(R1) 132761 P00003 000002 001013 132761 BNE 18 000004 000002 BITB $4,2(R1) 000006 BEQ CLR TST BNE MOV RESET JMP BIT DMCOUT: 001413 005005 905715 001010 012600 P00005 #00137 932761 001314 020510 020514 105061 P00163 A00006 991730 090002 200002 R I 192 #20576 193 194 195 196 197 020600 198 020604 199 020610 200 020612 201 020616 202 020620 203 020622 204 SYMBOL TABLE P20054 BDIAG CRCWD = 200000 n20520 DEVTAB = 165564 DIAG P20202 I P17 207 007 097 087 297 PR DMCE: 060100 es6 #1730,6(R1) sFATAL sRETURN UNIT &% TO Rp sCLEAR DMC~-11 sAND JUMP TO LOADED PROGRAM (SP)+,R0 sCLEAR RDYO=THROW AWAY MODULO LSRR +«BYTE «BYTE «BYTE «BYTE +«BYTE +BYTE «BYTE +«BYTE +«WORD W I I N TABLE 2 2 Rl A ;DJ11 +DHi1 sDQ11 9 17 sl ndddlddl ) DEVICE MODULUS sDU11 :+DUP11 tLK11=A +DMC11 s FILLER } #ARNOTE##% s THE NEXT 23 WORDS ARE ZERO FILLED sCRC16 WORD FOR ROM #3 060100 O 36 3 30 30 3 30 3k 36 3 30 3 I 3 3t 34 36 36 U 3 I 3 I INFO s RETURN 3¢ 36 36 3 36 3 3 3 3 33 I 3 33 3T 36 30 b I B B3 I I I I I DEVICE LIRS ERROR? s YES,START AGAIN AFTER TIME DELAY 2(R3) FLOATING DEVTAB? 28 ;CHECK FOR CODE @,LOAD ¢ AT LOC @ sRECEIVED MESSAGE NO GOOD 2(R1) ;# aa7 ¢sRECEIVE COMPLETE SET NON PENDING FLAG (RS5) CLRB JMP ¢ 36 3 3 30 30 3 3 36 36 3 3 3 3 LTS a2 SR dddd sCTL REQUEST s XMIT OR RCV s XMIT COMPLETE 28 HNGLOP 181 IR sBA/CC OR CRL REQUEST RS BNE 180 020529 920521 020522 020523 020524 020525 020526 190 920527 191 3 3 U6 I 3 3 I 3 I I I I 0 3 I OUTPUT READY ROUTINE X2 2T TSI YT R AL LSS ALLLTTLTIL LS 2L LS 22222 #20506 182 183 184 185 186 187 188 189 DMC BOOTSTRAP d ROM SN M9312 36 36 I 3 I3 I 3 I A6 I % s# RELOCATION ROUTINE L L 2222 2 2SS 2SRRI S S22 LAT LTINS LA TRAS X3 XTTYRTRR =20600 020600 012702 012703 012223 020227 $20000,R2 $30000,R3 020000 MoV 030000 MOV 924576 CMP R2,#20576 Po1401 BEQ 200773 & 28 200000 BR HALT 200001 «END MOV (R2)+,(R3)+ DMCE $20576 DMCTST DMCIN N2@356 DMCXMT 020242 020364 A20256 DMCM 020012 FLOAT 020140 pDMCOUT P20442 HNGLOP 020340 DMCBGN A20400 DMCRCV INITSW= 173024 RESERV= 000340 MRESER= NODEV RDYIOK 173000 020040 020412 R6 =%000006 R7 =%000007 SETSTK 020060 35 M9312 D OVO~JOWN b WA+ NBWN = W WwWiwwwNn NNV N NNV N LS I 80 D~ o WN - VOB [ ROM LISTING BOOTSTRAP (K*SP=M9312=0=7) Page IDENTIFICATION PRODUCT CODE: XXXXXXX=XX=XXXXX=X=X PRODUCT NAME: M9312 DECNET BOOT =~ DU1t PRODUCT DATE: APRIL 1978 MAINTAINER: DIAGNOSTIC THE INFORMATION IN THIS ENGINEERING DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION, DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS MANUAL., THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN COPYRIGHT NOTICE) OTHERWISE BE BE COPIED ONLY FOR USE PROVIDED IN (WITH INCLUSION IN SUCH SYSTEM, OF DIGITALS EXCEPT AS MAY WRITING BY DIGITAL, DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL, COPYRIGHT (C) 1978 DIGITAL EQUIPMENT CORPORATION 36 M9312 ROM LISTING BOOTSTRAP 1 Page (K=SP=M9312=9=7) « REM 2 % THIS 3 4 5 6 7 WILL BOOT TO BOOT UNIT @,AND NOT TO BOOT UNIT ©,AND TO BOOT UNIT TO BOOT UNIT THE Y COMPONENT OF 8 9 IF IF 10 SLOT SLOT L 1 2 ROM ROM #1 #1 ROM IS IS IN IN 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 37 38 44 000000 45 | 2 THE THE M9312 DECNET DEFINITIONS RO=%0 R3=%3 R4=%4 R5=%5 R6=%6 R7=%7 Sp=%6 PC=%7 RESERVED=340 DIAG=165564 INITSW=173024 CRCWD=0 MRESERVED=173000 SSYN=226 DLE=220 ASYN=337 SOH=201 ENQ=005 POLY=120001 +NLIST MC,MD «LIST ADDR ME +ENABL e 220000 ABS BOOT IS IS 173Y04, 173Y@6, IS 173Y3@, IS 173Y32, 8 OF THE WHOLE REPRESENTS BITS 7 AND Y COMPONENT IS 90 ADDR, 1730XX ADDR, 1732XX, Y COMPONENT IS 01 ADDRESS BASIC Ri=%1 R2=%2 020000 THE ; 000000 173024 000000 173000 00vR226 voR220 000337 000201 200005 120001 RUN «TITLE 700001 200002 000003 200004 900005 V00006 200007 P00006 000007 000340 165564 START CPU DIAGNOSTICS,THE START ADDR 1,AND NOT RUN DIAGNOSTICS,THE START ADDR 1,AND RUN CPU DIAGNOSTICS,THE START ADDR 3 4 S 6 7 8 THE DU OPTION, RUN DIAGNOSTICS,THE = DU11 WORD, 37 DWN - ROM VO M9312 LISTING BOOTSTRAP 220000 P20002 020004 #20006 020012 820016 020020 P20022 020024 020026 020030 020032 #20036 125 200576 0006261 212700 912701 010704 (K=SP=M9312=0+7) Page 336 303 3 3 U A I A b I3 3 I3 B 2 s+ (DU11) CMND 2T 130 Xw TTR 22 DUBGN: ITRAL EMDU: RS 020046 920050 000000 200776 220052 000002 I 165564 BDIAG: R #160010,R1 sPUT $GET BCC BDIAG SETSTK 217776 042700 020070 020072 020074 177760 010016 020100 010704 262704 020102 010702 262702 L2 SETSTK: 28 000466 382 177736 GO TO DIAG #1,RO BR EMDU I 6 UNIT 1, NO CPU DIAG RUN 1, RUN I I I I I 96 I I BB A L2222 IIN ST LTTTRTALLL T LT RTY TR DEC sUPDATE R2 TO sSUB ONE FROM POINT R3 BPL 1s s IF CANT DEVICE, : 28 FIND TO #HENOTE###» NEXT L2222 IALLI LTI ILZR DEV MODULO HALT sREVIEW FLOATING ADDRESS s RETURN T X LA L F T REe e ASSIGNMENTS T DIAG T2 I 222 JMP 2222 TR LT L TTTLRL TR TEETEETNLR GO T EL TO DIAG sRETURN MADE THROUGH ADDR IN R4 ST T TR TR F Yy IN FLOATING SPACE 2R LI 22222 MOV L @#DIAG 2222 I #17776,SP LT LLEETY LN BIC #177760,R0 s SET UP STACK sPREVENT TRYING MOV RO, (SP) MOV PC,R2 sSAVE $SET ADD #DEVTAB=-2$-2,R2 ;POINTER MOV PC/,R4 ¢$SET ADD $NODEV=38=2,R4 UNIT UP R2 UP TO R4 ;POINTER NUM WITH LT T TO BOOT AT UNIT & > 15 17776 DEVTAB WITH TO TRAP ROUTINE ###NOTE # %% s THE NEXT FOUR INSTRUCTIONS VERIFY THAT s THE EXTENSION ROMS ARE PROPERLY INSTALLED, s IF NOT, THE BOOT WILL HALT +PUSH THE #7407 FROM ROM #3 ON THE STACK s SUBTRACT FROM IT THE #1775 OFF ROM #2 820114 022726 085412 020120 ?01402 #5412, (SP)+ 4s 5s¢ CMP BEQ HALT sCOMP IT WITH #5412 ¢+IF NOT EQUAL, HALT : #%#NOTE %4 # 48 BR MOV 58 $6,R3 sCHECK POS OF ¢+TRAP PS ADDR DB0206 DIAG %% R2 R3 (R2),=(SP) 020126 CPU INTERRUPT ROUTINE 202(R4),(SP) 000000 (C=@) UNIT FOR MOV Aev776 712703 Ri sENTRY FOR SUB 020124 IN sENTRY 000202 020122 ADDR IF ENABLED #11246 166416 220110 RUN RESERVED MOV I DIAG RUN CPU DIAG FLOATING BASE RETURN ADDR s 020106 NEXT BOOT DU11, NO CPU BOOT MRESERVED AZZTIIE 22222222 EAA 812706 FOR DUii PC,R4 s# FIND THE DEVICE P20060 820064 LT MOV TO EAZ LI 090137 LT X MOV RAAZ AL GO B ‘XU’ sENTRY FOR DU11, HALT BR RTI 18 T #3,R0O I 282 ELE T sOFFSET TO sENTRY FOR INC 005303 100002 TR <ENDBOO=,+2> IIS NODEV: s# 020054 AL LI W I I + WORD BR «WORD « WORD SEC 000001 I A3 WIS s IDENTIFIER s# FLOATING DEVICE 205202 I ‘uXx’ 5 363030 30 30 9 36 3 36 3 3 3 3 W U 36 3 6 3 3 38 I W 020040 020042 020044 W I LASCII MOV 103015 000416 173000 000340 000261 212700 200765 IR I SEC 000000 160010 A2 2222 I 020132 Av5013 CLR (R3) sCLR NEW n20134 210443 MOV R4,-(R3) +SET TRAP ROMS %2 AND #3 ADDR IN LOC PSW ROUTINE 4 38 M9312 ROM LISTING BOOTSTRAP 54 020136 55 020140 56 P20142 295711 111204 57 920144 58 020146 59 220150 060401 2905201 040401 220152 205703 001371 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 8o 020154 (KeSP=M9312=09=7) 005303 FLOAT: Page 39 DEC R3 sR3 TST MOVB (R1) (R2),R4 s TEST FOR DEVICE, s MODULO INCREMENT ADD R4,R1 s UPDATE ADDRESS INC R1 sBY MODULO BIC R4,R1 +IN TABLE TST BNE R3 FLOAT ¢IS THIS sNOT YET R332 212 222 T2 CONTAINS A 222222 Y22 222222 d2222 2 DU11l THE POS IN MAYBE FLOAT TRAP TO SPACE NODEY ONE? X2 222222 YL s# ADD UNIT DISPLACEMENT TO UNIT © CSR ADDR 2222 XTI 020156 020160 906300 006300 020162 206300 260001 020164 £ SRS XRL A2 LI ASL ASL ASL RO RO RO XTI RSTATRITI LS sUNIT sUNIT sUNIT # % # TIMES TIMES TIMES 2 4 8 ADD RO,R1 $CSR ADDR + IR L 2 UNIT#8 2 X2222222112222122 T2 22 Y223 2Ll s# SETUP TO SEND MESSAGE 30T IE 000300300 30030 3 3 0000103 308 00 00000 3 30 38 00 0630 H 30 00 30 30 36 38 303 06 603 T 9330003000 30 212706 010704 020166 020172 220174 020176 P00402 925174 020200 020202 177776 262704 020206 112403 217440 200344 08 0 0 SNDREQ: MOV #17400+4<8,%4>,SP SNDRQ1: MOV PC,R4 BR +« WORD « WORD ADD MOVB 3s 925174 sCRC16 WORD FOR ROM #1 -2 sHEADER WORD FOR ROM #2 #DUREQ=SNDRQ1~-2,R4 sPOINTER TO DUREQ 38¢ XTI ITATA 2222 2L $SET STACK ADDR=17400+8 $SET UP R4 (R4)+,R3 sMESSAGE LTI LLIT R 222X TIMES LOOP DEC., WITH LENGTH 2SS LI + L LI PAD TLZ YR s# SEND A BLOCK ON THE LINK R 220210 020214 020222 020224 020226 020230 020234 320236 020242 020244 020246 012711 212761 000402 173000 0003490 932711 001775 #32711 P01775 022121 852721 020262 112411 195761 106375 095303 020264 001372 920252 020254 020260 200006 036226 IZITT TSI 000002 001000 282 020000 18¢ 000039 177776 SEND: STEST: 28 « WORD +«WORD MRESERVED RESERVED n42741 020272 N20274 924141 020276 012703 2900106 020302 220306 0064767 P00052 03020 005004 901327 S22 2T LTSS LTIIL LTI #6,(R1) $SET #36000+SSYN,2(R1) BIT BEQ BIT BEQ CMP BIS MOVB TSTB BPL DEC BNE #1000, (R1) 28 #20000, (R1) 18 (R1)+,(R1)+ #30,(R1)+ (R4)+,(R1) =2(R1) STEST R3 SEND DTR AND $SET 2 YN RTS FOR DU=11 (INT 22T 222222222222 sl d i i sl ad sl sy s# RECEIVE GETMSG: BIC CMP CLR A MESSAGE IISIITI FROM THE SYNCHRONOUS=8 s TEST FOR DSR $NOT YET sTEST FOR CTS sNOT YET sSET TO XMIT CSR sHDX AND SEND ON sMOVE TO DEVICE BUFFER sTEST FOR DONE sNOT YET sDECREMENT COUNT sMORE TO SEND X2 XTI ZTTIYI TR 020266 IT LI LIALLZ MOV MOV BR LINK TSRS AL ATLILL LSS AL ZALILLILLLL ISR 2 Y #20,=-(R1) =(R1),=(R1) R4 sDROP SEND sRESET TO RCV CSR AND CLR RCV BUFFER sBUFFER ADDR MOV #8.,R3 sHEADER JSR PC,RECV1 sGET THE HEADER SNDREQ sNO BNE LENGTH GOOD CRC BIT) M9312 ROM LISTING BOOTSTRAP 107 020310 108 920314 109 820316 110 020322 111 020326 112 920330 113 920332 114 020334 115 P20336 116 220342 117 020344 118 020346 119 2203590 120 020354 121 122 123 124 020360 125 020364 126 220370 127 820372 128 820374 129 B20376 130 020400 131 020402 132 920406 133 020410 134 020412 135 020414 136 020416 137 020420 138 020422 139 020424 140 920426 141 020430 142 020432 143 020434 144 920436 145 020440 146 147 148 149 150 151 152 153 154 155 156 157 158 159 122527 9901324 113703 P42703 900303 152503 122323 205004 004767 001311 005715 001307 013700 000137 (K=SP=M9312=0=7) Page 200229 CMPB 000002 BNE MOVB SNDREQ BIC $177700,R3 SWAB R3 BISB (RS)+,R3 (R3)+,(R3)+ 177700 200026 a17776 200006 R (R5)+,#DLE +IS *NO @e#2,R3 sHIGH BYTE COUNT sCLEAR FLAGS AND OTHER BYTE s SWAP BYTES 3LOW BYTE COUNT(LOC 1) $ADD TWO FOR CRC CMPB CLR R4 JSR PC/oRECV BNE SNDREQ 042711 012711 005005 000403 DLE MESSAGE(LOC ¢) sBUFFER ADDR TST (RS) $GET DATA FIELD +NO GOOD sCHECK FOR CODE @, BNE MOV SNDREQ sNO JMP %6 e%#17776,R0 $SAVE UNIT NUM FOR SECONDARY BOOT s TRANSFER TO IT LOAD @ AT LOC A4 AT 22222222l YYY Y YT LYY SRR YNy R 000024 000422 AAAL AL A2l RECV1s BIC MOV RECV: 177776 012702 005046 185711 180421 995316 000017 PO1376 -2 sHEADER WORD MOV CLR TSTB BMI s LONG LOOP VALUE 282 #15,,R2 =(SP) (R1) RTEST RDONE T LY T s FILLER ;CRC16 WORD FOR ROM $#2 FOR ROM :ALL DONE sDECREMENT SHORT LOOP sAGAIN R2 BR 38 sDECREMENT LONG LOOP «WORD « WORD MRESERVED BNE TSTB 28 SP BGT SNDRQ1 HNGLOP: CLR MOV #10,.,R3 4s: DEC R2 RESERVED (R1) 4s R3 921374 BNE 48 200644 BR SNDREQ TST (SP)+ 020452 020454 P20456 P025726 020460 042711 000400 BIC 020464 020470 P20472 020476 P20500 116114 112446 912702 200002 #4090, (R1) MOVB 2(R1),(R4) MovB (R4)+,-(SP) 1s: PP0NR10 CRCLOP: s KEEP GOING $CHECK STACK AT OR BELOW : LONG LOOP COUNTER :DECREMENT SHORT LOOP sAGAIN sDECREMENT LONG LOOP sAGAIN ¢tHUNG UP LONG ENOUGH=ANSWER sCLEAN UP STACK=LOOP CTR +NO STRIP SYNC s NUMBER sCLEAR CARRY BVC (SP) 1s AGAIN sSTORE IT sBYTE TO ADD CLC ROR RS 17400 s LOOP ONCE MOR(8 TIMES TOTAL) +DROP DTR~HANG UP MOV ROR #3 s SHORT LOOP sTEST FOR DEVICE DONE BNE RDONE SYNC sINITIALIZE CRC DEC BNE AB6N16 102806 T (SP) 2§ DEC P06405 TR YT RTEST: 085303 ¥00241 TN sCLEAR RTS AND SEARCH $SET SEARCH,STRIP,DTR 2 956471 001374 020446 020450 I «WORD « WORD +WORD DEC 000012 22 $24,(R1) #422, (R1) RS 005302 200402 173000 800340 001367 185706 003256 005011 212703 a4 CLR BR 200000 856471 095302 020504 A s# RECEIVE A BLOCK FROM THE LINK 020444 020502 IT sLOW BIT BITS PER BYTE PARTIAL TO CARRY sCARRY TO BYTE AND BYTE TO CARRY $XOR OF PARTIAL AND BYTE(LOW BITS) © 40 M9312 ROM LISTING BOOTSTRAP 212746 240516 120001 020512 920514 242705 120901 160 161 162 020506 163 164 165 166 167 168 169 170 171 172 173 174 020520 252605 020522 020524 005302 003364 220526 020530 820532 920534 920536 205726 005303 093323 005705 000207 220540 020543 P20546 920551 175 176 020554 020557 177 178 179 180 181 182 183 184 185 186 024 226 300 001 210 000 MOV 1§ $POLY,=(SP) s XOR POLY TO PARTIAL(4 INSTRUCTIONS) R2 sDECREMENT BIT COUNT BIC BIC BIS R5, (SP) #POLY,RS (SP)+,RS BGT CRCLOP TST DEC BGT TST RTS (SP)+ R3 RTEST RS PC DEC +NOT PARTIAL AND POLY sNOT POLY AND PARTIAL :POLY XOR PARTIAL $ONCE MORE sCLEAN UP STACK<=BYTE TO ADD ¢:DECREMENT BYTE COUNT $ONCE MORE sSET CC s RETURN TR 2222222 20 2 2 X 2 2 2 21} ’ FETYYYY Y222 XYY YR T Z R 2SR 226 226 220 004 P00 200 P21 120 002 Vo1 242 s# DECNET BOOT REQUEST H FEYYYYT YT TSR 22 Y R 2R DUREQ: 069 22 RSS2 S22 2222 2222 222 2 22 L) .BYTE 20, +,SSYN,SSYN,SSYN,DLE,4,300,0,0,1,021,120 «BYTE 10,2,1,0,242,60 sDUREQ REQUEST MESSAGE 3****l*l*****l*************‘il******Q***********il***'I"l'l +# FLOATING DEVICE MODULO H Yy Yys e Yy s 21 2 Y2 22T 22T 2222322222222 22 22 2 222 020564 0e7 217 037 920565 007 P20562 #20563 DEVTAB: .BYTE +BYTE «BYTE «BYTE 7 17 7 7 875042 ENDBOO: .WORD 020600 H Perrryeryyyy e 22T T2 2R «=20600 $sTHE NEXT 4 WORDS ARE ZERO FILLED tCRC16 WORD FOR ROM #3 075042 :# RELOCATION ROUTINE #20600 #20604 812702 212703 020000 030000 220610 P20612 220616 #12223 020227 020576 p01401 N20620 009773 P20622 A0BV00 000001 % ## ##BNOTE 3*******l***i***l'&*******'**l**‘l‘i*******"l*i*'*‘fi***** 188 189 190 191 L sDJ11 DEVICE MODULUS sDH11 1DQ11 :DU11 s 187 820576 192 193 194 195 196 197 198 199 Page (K=SpP=M9312=0~7) 28 182 2 222 YRS L2222 22222 2222 2 L 22 222222 ) MOV MOV MOV CMP #20000@,R2 $30000,R3 (R2)4,(R3)+ R2,#20576 BEQ BR )8 28 HALT +END 4% M9312 ROM LISTING BOOTSTRAP (K=SP=M9312~0=7) Page 42 SYMBOL TABLE ASYN = BDIAG CRCLOP CRCWD = DEVTAB DIAG = DLE 000337 020054 920476 200000 @20562 165564 z 900220 DUBGN DUREQ EMDU ENDBOO ENQ = FLOAT GETMSG P20009 020549 020012 @20576 900005 020140 020266 HNGLOP INITSWE MRESER= NODEV POLY = RDONE RECV 0204449 173024 173000 020040 120001 020456 020370 RECV! 220360 RESERV= 000340 RTEST 020402 R6 23000006 R7 =%000007 SEND 920252 SETSTK SNDREQ SNDRQ1 SOH B SSYN = STEST 020060 020166 9020172 000201 000226 020254 ROM VOO N DL WN - M9312 LISTING BOOTSTRAP Page (K=SP=M9312=0=7) IDENTIFICATION PRODUCT CODE: XXXXXXX=XX=XXXXX=X=X PRODUCT NAME: M9312 DECNET BOOT - DUP11 PRODUCT DATE: APRIL MAINTAINER: DIAGNOSTIC ENGINEERING THE INFORMATION IN THIS 1978 DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION, DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS MANUAL, THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION OF DIGITALS COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL, DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL, COPYRIGHT (C) 1978 DIGITAL EQUIPMENT CORPORATION 43 LISTING BOOTSTRAP VOO TN WN - [y Y S N Page (KeSP=M9312=0=7) +«REM % THIS ROM WILL BOOT THE DUP OPTION, TO BOOT UNIT @,AND NOT TO BOOT UNIT @,AND RUN TO BOOT UNIT 1,AND NOT T0O BOOT UNIT 1,AND RUN THE Y COMPONENT OF THE IF ROM #1 IS IN SLOT 1 RUN DIAGNOSTICS,THE START ADDR IS 173Y04, CPU DIAGNOSTICS,THE START ADDR IS 173Y@6, RUN DIAGNOSTICS,THE START ADDR IS 173Y30, CPU DIAGNOSTICS,THE START ADDR IS 173Y32, ADDRESS REPRESENTS BITS 7 AND 8 OF THE WHOLE WORD, ADDR, THE Y COMPONENT IS 0@ IF ROM #1 IS IN SLOT 2 THE Y COMPONENT IS 01 2 +TITLE WN - DQOVAOSOND WN- [N ROM ; 900000 Rg=ng%0 000001 000002 Ri=%1 R2=%2 R3=2%3 R4=%4 R5=%5 R62%6 R7=%7 Sp=%6 200003 000004 200005 000006 000007 000006 000007 000340 AN M9312 165564 173024 000000 173000 000226 000220 900337 000201 P00005 120001 M9312 DECNET BOOT - DUP11 BASIC DEFINITIONS PC=%7 RESERVED=340 DIAG=165564 INITSW=173024 CRCWD=0 MRESERVED=173000 SSYN=226 DLE=220 ASYN=337 SOH=201 ENQ=005 POLY=120001 +NLIST oLIST MC,MD ME .ENABL 200000 020000 0 =20000 ABS ADDR, 1732XX. 44 BOOTSTRAP Page (K=SP=M9312=¢g=7) - LISTING RS ITTTEALTL LSS LWN ROM s# CMND Xw OWO-NONN M9312 IR 020000 020002 020004 020006 920012 020016 020020 020022 020024 020026 020030 920032 020036 127 200576 000261 012700 012701 210704 103015 200416 130 I DUPBGN: 000000 160010 EMDUP: #00340 (DUP11) 000001 AR L AL 2R LSS XL LI LR IRZ AR IR R 1 <ENDBOO=-,+2> sOFFSET TO NEXT BOOT MOV MOV MOV BCC #0,RO #160010,R1 PC,R4 BDIAG sENTRY FOR DUP11, RUN CPU DIAG $PUT FLOATING BASE ADDR IN R{ $GET RETURN ADDR $GO TO DIAG IF ENABLED (C=0) BR SETSTK +«WORD +«WORD MRESERVED RESERVED MOV BR #1,R0 EMDUP TITT XXX TIL NODEV: 2222 2T «WORD I YLl LTS RT AT °XW’ FOR DUP11 BOOT sENTRY FOR DUP11, I NO CPU DIAG RUN sENTRY FOR UNIT i, NO CPU DIAG RUN sENTRY FOR 1, RUN CPU DIAG il ;# FLOATING DEVICE INTERRUPT ROUTINE 905202 905303 100002 000000 000776 200002 I ¢ IDENTIFIER T2, ‘WX’ (£ 2222222222 LA 020040 020042 020044 020046 020050 020052 22222 ,ASCI1 SEC 000261 IT SN TTYRITZLLI SRS SEC 173000 012700 200765 XS L2 IS I UNIT la st dtetd]) LI LLAT LIS 2L L 2L INC DEC R2 R3 sUPDATE R2 TO POINT 3sSUB ONE FROM R3 2§ BPL HALT BR 1s 'IF CANT FIND DEVICE, HALT ###NOTE##% $REVIEH FLOATING ADDRESS ASSIGNMENTS 1s2 RTI 28 TO NEXT DEV MODULO s RETURN XTI YTI2RAITALZZ AL AL LT ELLLLRLILL T SXL AL AL ZLLLLLLLLL S 2 2 3% GO TO DIAG RS2 TTITTRIRITTILLILZTETSSLLIL XL L AT AAILRL LA 22 L 22T L C L 020054 900137 165564 BDIAG: JMP XTI AT XXX @#DIAG $GO TO DIAG $RETURN MADE THROUGH ADDR IT AT LA 22 2RT IS TLLIALLILLT ;# FIND THE DEVICE IN FLOATING SPACE XY ITTTYYITEIITT ALY TTATXIT AL LS L LTI AALTRR 020060 020064 020070 020072 P20074 020100 020102 020106 920119 020114 720120 812706 042700 010016 P10702 962702 910704 062794 211246 166416 022726 001402 020122 00000 020124 220126 020132 PVAT776 012703 A05013 020134 A10443 817776 SETSTK: 177760 28 000474 3s¢ 177736 58 NBVAA6 4% ST LT L L2 #17776,8P #177760,R0 $SET UP STACK sPREVENT TRYING TO BOOT UNIT # MOV RO, (SP) $SAVE UNIT MOV ADD MOV ADD PC/,R2 #DEVTAB=2§-2,R2 PC/R4 $NODEV=38=2,R4 $SET UP R2 WITH ;POINTER TO DEVTAB $SET UP R4 WITH :POINTER TO TRAP ROUTINE CMP 905412 AL MOV BIC MOV SUB 000202 IN R4 SRS I 2222222222l BEQ HALT BR MOV CLR MOV (R2),=(SP) 202(R4),(SP) #5412,(SP)+ 4 NUM AT > 15 17776 %% ###NOTE# :THE NEXT FOUR INSTRUCTIONS VERIFY THAT ¢tTHE EXTENSION ROMS ARE PROPERLY INSTALLED, ¢sIF NOT, THE BOOT WILL HALT sPUSH THE #7407 FROM ROM #3 ON THE STACK ¢ SUBTRACT FROM IT THE #1775 OFF ROM #2 sCOMP IT WITH #5412 5¢ $#6,R3 (R3) s IF NOT EQUAL, HALT H ###NOTE #%% 'CHECK POS OF ROMS #2 AND ¢+TRAP PS ADDR sCLR NEW PSW #3 R4,=(R3) ¢sSET LOC TRAP ROUTINE ADDR IN 4 45 M9312 ROM LISTING BOOTSTRAP 54 55 56 57 S8 59 69 61 62 63 64 820136 920140 320142 020144 020146 020150 920152 (K=SP=M9312=0=7) FLOAT: 205711 111204 260401 2035201 040401 205703 291371 Page 46 TST MOVB ADD INC BIC TST BNE a2 2T sR3 CONTAINS DUP11 POS IN FLOAT SPACE (R1) $TEST FOR DEVICE, $MODULO INCREMENT sUPDATE ADDRESS R1 R4,R1 R3 $BY MODULO sIN TABLE 3IS THIS A THE ONE? FLOAT YT AL SR MAYBE TRAP TO NODEV (R2),R4 R4,R1 L IAA LS ALS S sNOT YET IS LASL 2L AL L2222l 3% ADD UNIT DISPLACEMENT TO UNIT @ CSR ADDR S 0303030 30 30 00 0 38 38 30 3030 3003 30 36300000 30 30 30 30 30 T 3 3 30 06 6 3 3 65 920154 66 220156 67 020160 68 020162 69 70 71 72 020164 73 220170 74 920172 020174 220176 020200 020202 020206 906300 206300 006300 260001 0000 0 33 303000 40 30 30 40 303 20 3 2 sUNIT # TIMES 2 sUNIT # TIMES 4 ASL RO ASL ASL RO RO ADD RO,R1 sUNIT # TIMES 8 sCSR ADDR $ 490 30 30 38 38 98 38 3 30 36 6 3 3 3 3 36 36 6 3 3 38 3 3 9 3 6 A 36 3 W 2 2 I 3636 3 3 3# SETUP TO SEND MESSAGE 212706 $ 900000000 0 0030000 3600300030 30 30 3006 0 0000 30 30 303 30 30 3096 33040 30 0 386 20 30 0 30 0 3 SNDREQ: MOV 017440 SNDRQ1: 010704 200403 000000 924572 177776 062704 112403 + UNIT#%8 3B 33 36 3 W 3 3 33 U $SET STACK ADDR=17400+8 TIMES LOOP DEC. MOV BR +« WORD PC,R4 38 0 $SET UP R4 WITH MOVB (R4)+,R3 $MESSAGE LENGTH + PAD « WORD « WORD ADD 3s8: 000354 $17400+<8,%#4>,8P 38 0000 90 00 30 00 900 % sFILLER 924572 $CRC16 WORD FOR ROM #1 -2 sHEADER WORD FOR ROM #2 #$DUPREQ=SNDRQ1=2,R4 sPOINTER TO DUPREQ $ 390 30 30 36 3 36 30 30 36 36 36 38 36 36 3 36 36 3 3 3 3 3 I 36 3 3 36 3¢ 3 3 20 30 A6 36 3 3 3 I U 33036 A6 3 3 3366 8 3 38 3 0 3# X 220210 020214 020222 020224 220226 820230 020234 820236 020242 220244 220246 920252 #20256 020260 020262 920266 020270 020272 212711 212761 000402 173000 000340 932711 891775 032711 P91775 022121 852721 912711 000401 112411 105761 100375 SEND 200006 191226 200002 001000 288 020000 182 BLOCK SEND: STEST: 201372 THE LINK AL LI 2SS LALTIL LTSS 22 2L 22 #6, (R1) $SET DTR AND RTS $101000+SSYN,2(R1) $SET FOR DUP=11 BR 28 +WORD MRESERVED + WORD RESERVED BIT BEQ $1000, (R1) 28 ¢+TEST FOR DSR $NOT YET BIT 420000, (R1) s TEST FOR CTS CMP (R1)+,(R1)+ $sSET TO XMIT CSR MOV BR $400+SSYN, (R1) STEST s START IT UP WITH TSOM :TEST FOR DONE TSTB BPL «2(R1) STEST BEQ MOVB DEC BNE P25303 ON AT ST LA AL EALTAL MOV MOV BIS P00030 200626 177776 A IITTTITTITL I 18 #30,(R1)+ (R4)+,(R1) R3 SEND $NOT YET ¢sHDX AND SEND ON sMOVE TO DEVICE BUFFER s TEST FOR DONE sNOT YET ¢sDECREMENT COUNT +MORE TO SEND ;# RECEIVE A MESSAGE FROM THE LINK 042741 020300 024141 220302 P05004 MODE=CRC $ 3330 3 30 40 3 36 36 30 3 30 30 30 30 30 36 30 30 36 30 3 36 30 38 3 63 3 30 3 36 30 T6 30 30 30 30 36 36 3 30 63 00 3630 00 30 00 2 3 3 2 $ 3090 3 303030 0 0000 3 000630 3 38 3000 3 30 300 A0 30002 3300200 020274 (DEC 200329 GETMSG: BIC CMP CLR #20,-(R1) =(R1),=(R1) R4 3 303000200 00 00303000 336 T 0323 0 20 sDROP SEND % sRESET TO RCV CSR AND CLR RCV BUFFER sBUFFER ADDR INH) M9312 ROM 107 108 109 110 111 112 113 114 115 LISTING 220304 020310 212703 P04767 020314 901323 020316 020322 122527 9901320 113703 220324 920330 020334 820336 116 920340 117 020342 118 020344 119 120 121 122 123 124 020350 220352 020354 820356 020362 242703 P0A303 152503 #00010 MOV 0002052 JSR BNE 200229 CMPB BNE 204767 001305 MOVB e#2,R3 #177700,R3 SWAB R3 BISB (RS5)+,R3 (R3)+,(R3)+ #91303 817776 000006 130 020376 131 020400 132 A20402 133 020406 134 P20410 135 020414 136 020416 137 020420 138 020422 139 220424 140 020426 141 020430 142 020432 143 020434 144 #20436 145 020440 146 020442 147 P20444 148 020446 149 P20452 150 P20454 151 P20456 R4 PC,RECV sADD TWO FOR CRC sBUFFER ADDR $GET DATA FIELD BNE SNDREQ (RS) :NO GOOD TST sCHECK R 000024 177776 f12711 205005 912702 ?05046 2000017 105711 RIS AL L IALSL LA BIC #24, (R1) BR 18 0 024437 RECV: CLR RS RTEST: MOV CLR =(SP) (R1) BMI RDONE 1$ TSTB BR «WORD « WORD MRESERVED DEC (SP) BNE DEC 28 R2 001367 185706 BNE 28 TSTB Sp 003252 BGT SNDRQ1 CLR (R1) HNGLOP: MOV 4s: DEC 05011 R3 BNE BR 4s SNDREQ 042711 P00420 TST BIC %400, (R1) N20472 #20476 116114 112446 POAOR2 MOVB #W20500 #12702 00241 200010 #20466 n20504 012703 005302 201376 005303 201374 #0012 000640 005726 RDONE LOC SRR TAL LI 2L IS LXR L 2 LSS 2222 LLLIZLL 22222 YT sCLEAR RTS AND SEARCH SYNC ¢sFILLER $CRC16 WORD FOR ROM #2 sHEADER WORD FOR ROM #3 s SET SEARCH,STRIP,DTR sINITIALIZE CRC s LONG LOOP VALUE ¢ SHORT LOOP s TEST FOR DEVICE DONE sALL DONE RESERVED BNE 020464 s TRANSFER TO IT ST TALXTL LIRSS LA -2 #422, (R1) 205302 AT $SAVE UNIT NUM FOR SECONDARY BOOT MOV 182 & Q#17776,R0 e#6 182 283 100421 000402 173000 000340 295316 991371 LOAD MOV «WORD +«WORD «WORD 000422 4, BNE 2T I TT XTI YRR AT LS 000403 000000 024437 CODE s NO JMP RECV1: FOR 1) SNDREQ DEC 020462 s SWAP BYTES sLOW BYTE COUNT(LOC ;# RECEIVE A BLOCK FROM THE LINK 042711 9) sCLEAR FLAGS AND OTHER BYTE CMPB CLR JSR #10.,,R3 R2 43 152 020460 $IS IT A DLE MESSAGE(LOC sNO sHIGH BYTE COUNT (R5)+,#DLE SNDREQ BIC P05715 813700 200137 SNDREQ 177700 290336 sHEADER LENGTH sGET THE HEADER sNO GOOD CRC PC,yRECV1 000002 122323 005004 Page (K=SP=M9312=0~=7) e IITTYZ 125 126 127 920366 128 920372 129 020374 153 154 155 156 157 158 159 BOOTSTRAP (SP)+ 162 MOVB 2(R1),(R4) (R4)+,=(SP) MOV $8,.,sR2 CRCLOP: CLC $DECREMENT SHORT LOOP $AGAIN sDECREMENT LONG LOOP s KEEP GOING sCHECK STACK AT OR BELOW 17400 s LOOP ONCE MOR(8 TIMES TOTAL) sDROP DTR=HANG UP s LONG LOOP COUNTER $DECREMENT SHORT LOOP $AGAIN sDECREMENT LONG LOOP tAGAIN sHUNG UP LONG ENOUGH=ANSWER AGAIN sCLEAN UP STACK=LOOP CTR $NO STRIP SYNC sSTORE IT :BYTE TO ADD s NUMBER BITS sCLEAR CARRY PER BYTE ¢ 47 M9312 ROM LISTING BOOTSTRAP ROR ROR BVC RS (SP) 18 sLOW BIT PARTIAL TO CARRY sCARRY TO BYTE AND BYTE TO CARRY $ XOR OF PARTIAL AND BYTEC(LOW BITS) BIC RS, (SP) ¢sNOT PARTIAL AND POLY 205726 995303 DEC BGT TST DEC R2 CRCLOP (SP)+ R3 s DECREMENT BIT COUNT sONCE MORE sCLEAN UP STACK=BYTE TO ADD s DECREMENT BYTE COUNT 003323 295705 200207 TST RTS RS PC 1690 220506 161 920510 162 220512 163 920514 164 020520 165 220522 006005 PP6016 102006 166 920526 167 220530 168 020532 169 220534 170 020536 #52605 005302 203364 171 220540 172 020542 173 020544 174 175 176 177 020546 820551 220554 920557 178 179 020562 920565 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 Page (K=SP=M9312=@=7) P12746 240516 242705 024 226 300 001 210 000 $POLY,=(SP) MOV 120001 #POLY,RS (SP)+,R5 BIC BIS 120001 162 RTEST 8GT 226 220 226 004 200 021 000 012 043 001 362 DUPREQ: L,BYTE 220573 020574 220575 P20576 +BYTE 820610 220612 020616 920620 020622 s T DEVTAB? o7 11 sDUPREQ REQUEST MESSAGE 10,10.,1,0,43,362 30 030 B30 3000 3T 30T 00 3 303 90000 30 30 e YR 2RSS AT ST ALL ST LL LSS LS L Lo 2222l dalal .BYTE 7 «BYTE 7 sDJ11 DEVICE MODULUS sDHit sDQ11 «BYTE +BYTE 7 0 sDUP11 s FILLER .WORD 036074 $CRC16 WORD FOR ROM #3 3DU11 ENDBOO¢ 0206090 912702 012703 R et e s XYY YT ITR AR FTE YIS ILLL 2222222 L2 2 a 220600 $20000,R2 MOV #30000,R3 MOV (R2)+,(R3)+ MOV 282 R2,#20576 CMP 912223 0202217 PV1401 208773 PV2000 000001 el 17 7 «BYTE «BYTE 236074 2 380004t 4 30 30 30 38 30 30 3690 36 36 30 30 30 36 34 36 3648 3 34 3600 30 38 0006 0 F0 A 3 00 330 A 3003033000230 00 0 0 s# 020600 020604 $SET CC s RETURN 120 R 920572 sONCE MORE 20,,SSYN,SSYN,SSYN,DLE,4,300,0,9,1,021,120 s# FLOATING DEVICE MODULO 207 217 297 00e7 ¢sNOT POLY AND PARTIAL ¢sPOLY XOR PARTIAL S 4 003000 30 90 00 30 96 30 00 30 36 3000 30 00 00 363030 300036 4 00T 00 30 00T 3300300 30 3030000 00T 00T 0030 00 00 00 00 s# DECNET BOOT REQUEST $ 003 0040 30 0000 300 30 08 30 30 30304 30 30 30 3036 28 00 0 3800 F 30 00 3 36 03 363040 300030 30 30 3800 00 3 00 030 0 30 30 20 34 06 0 S 45 000 00006 30 0030 0633600 00 3030 0000 0006 30 36 3000 306 B 00 820570 820571 s XOR POLY TO PARTIAL(4 INSTRUCTIONS) 020000 230000 @20576 1s: RELOCATION BEQ BR HALT +«END ROUTINE 1s 2% s L asdl il ids 48 M9312 ROM LISTING BOOTSTRAP (K=SP=M9312=0=7) Page 49 SYMBOL TABLE ASYN = BDIAG CRCLOP CRCWD = DEVTAB 000337 920054 020504 000000 020570 DUPBGN DUPREQ EMDUP ENDBOO ENQ z 920000 98208546 020012 220576 000005 HNGLOP 020446 INITSwW= 173024 MRESER= 173000 NODEV 020040 POLY = 120001 RECV1 020366 RESERVz 000340 RTEST 020410 R6 2%000006 R7 =%000007 SETSTK SNDREQ SNDRQY SOH = SSYN = 020060 020164 020179 000201 000226 DIAG DLE 165564 000220 FLOAT GETMSG 820136 020274 RDONE RECV SEND STEST 020262 = = 020464 020406 020260
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies