; Dump of M9301-YF boot roms ; 23-480A9, 23-481A9, 23-482A9, and 23-483A9 ; This code depends on the fact that when location 173024 is read, ; the M9312 _modifies_ the data on the bus with the contents of S1. ; So treat references to 173024 like references to a register that ; allows S1 to be read. S1LOC = 173024 ; Low bank - contains console emulator, CPU diagnostics, and DL11 and PC11 ; bootstraps 165000 165000 OPDAT: ; Operation test data 165002 165000 165004 100000 165006 177777 165010 177777 165012 165010 165014 165006 165016 000500 165020 000501 ; CPU Test 1 - Single operand tests 165022 005003 DIAGS: CLR R3 165024 005203 INC R3 165026 005103 COM R3 165030 006203 ASR R3 165032 006303 ASL R3 165034 006003 ROR R3 165036 005703 TST R3 165040 005403 NEG R3 165042 005303 DEC R3 165044 005603 SBC R3 165046 006103 ROL R3 165050 005503 ADC R3 165052 000303 SWAB R3 165054 001377 BNE . ; Loop on failure ; CPU Test 2 - Double operand tests 165056 012702 MOV #OPDAT, R2 165060 165000 165062 011203 MOV @R2, R3 165064 022203 CMP (R2)+, R3 165066 001377 BNE . ; Loop on failure 165070 063203 ADD @(R2)+, R3 165072 165203 SUB @-(R2), R3 165074 044203 BIC -(R2), R3 165076 056203 BIS 12(R2), R3 165100 000012 165102 037203 BIT @14(R2), R3 165104 000014 165106 001777 BEQ . ; Loop on failure ; CPU Test 3 - Jump tests (not as elaborate as in -YA) ; See description in M9301-TM for how these work on different models 165110 010703 MOV PC, R3 165112 000123 JMP (R3)+ 165114 012703 MOV #JMPT, R3 165116 165124 165120 000133 JMP @(R3)+ 165122 000113 JMP @R3 ; Skip over target word 165124 165122 JMPT: ; Jump target ; CPU Test 4 - Byte single operand tests 165126 105767 TSTB -126(PC) ; Should be zero (165002) 165130 177652 165132 001377 BNE . ; Loop on error 165134 022222 CMP (R2)+, (R2)+ 165136 105722 TSTB (R2)+ 165140 001377 BNE . ; Loop on error 165142 105712 TSTB @R2 165144 100377 BPL . ; Loop on error ; CPU Test 5 - Double operand non-modifying tests 165146 005202 INC R2 165150 010203 MOV R2, R3 165152 005722 TST (R2)+ 165154 021322 CMP @R3, (R2)+ 165156 001377 BNE . ; Loop on error 165160 034342 BIT -(R3), -(R2) 165162 001777 BEQ . ; Loop on error 165164 000456 165166 000413 165170 010015 165172 000524 165174 000005 165176 000115 165200 000406 165202 010005 165204 005004 165206 000516 165210 010506 165212 011505 165214 000505 165216 005000 165220 005002 165222 010703 165224 000453 165226 120227 165230 000015 165232 001433 165234 162702 165236 000070 165240 062702 165242 000010 165244 103357 165246 006300 165250 006300 165252 006300 165254 050200 165256 000760 165260 012702 165262 000030 165264 000261 165266 006100 165270 106102 165272 010703 165274 000435 165276 012702 165300 020206 165302 006300 165304 001403 165306 106102 165310 103774 165312 000765 165314 000302 165316 010703 165320 000423 165322 022121 165324 000161 165326 177776 165330 012702 165332 014012 165334 010703 165336 000414 165340 061702 165342 003767 165344 105002 165346 152702 165350 000015 165352 000770 165354 105737 TSTB @#177560 165356 177560 165360 100375 165362 105002 165364 153702 165366 177562 165370 105737 165372 177564 165374 100375 165376 110237 MOVB R2, @#177566 165400 177566 165402 142702 165404 100200 165406 022323 165410 000163 165412 177776 165414 010701 165416 000744 165420 010701 165422 000716 165424 010400 165426 000714 165430 010600 165432 010701 165434 000711 165436 010500 165440 000707 165442 010605 165444 010701 165446 000730 165450 112702 165452 000044 165454 010703 165456 000744 165460 005000 165462 000734 165464 000302 165466 000732 165470 012703 165472 173740 165474 020223 165476 001404 165500 005200 165502 005713 165504 100373 165506 000756 165510 012701 165512 172400 165514 156001 165516 173721 165520 006301 165522 020104 165524 001001 165526 005725 165530 010104 165532 020027 165534 000012 165536 003401 165540 000114 165542 062704 165544 006000 165546 010701 165550 000622 165552 012701 165554 173346 165556 105737 165560 173024 165562 001257 165564 012705 165566 165010 165570 012702 165572 000500 165574 011503 165576 005012 165600 112512 165602 005202 165604 112512 165606 005302 165610 023512 165612 001015 165614 005202 165616 143522 165620 024542 165622 143522 165624 001010 165626 010502 165630 016505 165632 177772 165634 110532 165636 150572 165640 000000 165642 020352 165644 001407 165646 000000 165650 005723 165652 001011 165654 021605 165656 001007 165660 000203 165662 000000 165664 011206 165666 012702 165670 165650 165672 005726 165674 004312 165676 000000 165700 004362 165702 000004 165704 010703 165706 000415 165710 005003 165712 010313 165714 005723 165716 020305 165720 101774 165722 005003 165724 005413 165726 060313 165730 005723 165732 001016 165734 020305 165736 101772 165740 000710 165742 012705 165744 160000 165746 005037 165750 000006 165752 012737 165754 165760 165756 000004 165760 012706 165762 000502 165764 005745 165766 000607 165770 014304 165772 010300 165774 005006 165776 000000 ; High bank - contains all bootstraps except DL11 and PC11 ; Entry point -- Console emulator w/ CPU Diagnostics ; DIP switches xx11111111 (173000) 173000 010701 MOV PC, R1 ; Entry point -- Console emulator w/out CPU diagnostics ; DIP switches xx11111110 (173002) 173002 100555 173004 000137 JMP 173006 165414 173010 060017 173012 001411 173014 034421 ; Enter here via explicit start, reads device from switch ; register and boots 173016 013704 MOV @#177570, R4 173020 177570 173022 000542 BR ; Power-on auto-start prototype PC+PS; actual new PC is or'd with ; switch S1-3 (bit 8, 4xx) through S1-10 (bit 1, 2) ; Location 173024 is magic - see comment in header 173024 173000 ; Prototype entry 173026 000340 ; PS - no interrupts 173030 024444 173032 005744 173034 000005 173036 000544 ; Entry point -- RP11 Boot w/ Diagnostics ; DIP switches xx11101111 (173040) 173040 120000 CMP R0, R0 ; Entry point -- RP11 Boot w/out Diagnostics ; DIP switches xx11101111 (173042) 173042 000530 173044 176714 173046 173720 173050 010311 173052 000501 ; Entry point -- TJU16 Boot w/ Diagnostic ; DIP switches xx11101001 (173054) 173054 120000 ; Entry point -- TJU16 Boot w/out Diagnostic ; DIP switches xx11101000 (173056) 173056 000522 173060 172440 173062 173464 173064 010003 173066 052203 173070 010361 173072 000032 173074 032761 173076 010000 173100 000012 173102 001774 173104 112211 173106 105761 173110 000012 173112 100375 173114 112211 173116 105761 173120 000012 173122 100375 173124 012761 173126 177777 173130 000006 173132 112211 173134 105761 173136 000012 173140 100375 173142 000442 ; Entry point -- RK11 Boot w/ Diagnostic ; DIP switches xx11001101 (173144) 173144 120000 ; Entry point -- RK11 Boot w/out Diagnostic ; DIP switches xx11001100 (173146) 173146 000466 173150 177404 173152 173720 173154 006303 173156 006303 173160 006303 173162 006303 173164 006303 173166 010361 173170 000006 173172 000431 ; Entry point -- TC11 Boot w/ Diagnostic ; DIP switches xx11000001 (173174) 173174 120000 ; Entry point -- TC11 Boot w/ Diagnostic ; DIP switches xx11000000 (173176) 173176 000452 173200 177342 173202 173716 173204 010311 173206 052211 173210 005711 173212 100376 173214 005761 173216 177776 173220 100303 173222 000712 ; Entry point -- RJP0x Boot w/ Diagnostic ; DIP switches xx10110101 (173224) 173224 120000 ; Entry point -- RJP0x Boot w/out Diagnostic ; DIP switches xx10110100 (173226) 173226 000436 173230 176700 173232 173014 173234 110061 173236 000010 173240 112211 173242 012761 173244 014000 173246 000032 173250 016161 173252 000016 173254 000016 173256 012761 173260 177000 173262 000002 173264 011103 173266 042703 173270 000377 173272 152203 173274 010311 173276 105711 173300 100376 173302 005711 173304 100005 173306 105712 173310 001247 173312 021261 173314 000014 173316 001244 173320 105011 173322 005007 173324 013704 173326 173024 173330 005714 173332 100005 173334 010701 173336 000547 173340 000137 173342 165564 173344 005724 173346 005000 173350 010003 173352 000303 173354 005724 173356 012401 173360 012402 173362 000114 ; Entry point -- DL11 Boot w/ Diagnostic ; DIP switches xx10000101 (173364) 173364 120000 ; Entry point -- DL11 Boot w/out Diagnostic ; DIP switches xx10000100 (173366) 173366 000756 173370 177560 173372 173776 173374 012703 173376 173402 173400 000137 173402 165742 173404 010115 173406 142205 173410 010515 173412 011503 173414 005211 173416 105711 173420 100376 173422 116113 173424 000002 173426 005215 173430 121203 173432 001367 173434 105223 173436 000143 ; Entry point -- RJS0x Boot w/ Diagnostic ; DIP switches xx01101111 (173440) 173440 120000 ; Entry point -- RJS0x Boot w/out Diagnostic ; DIP switches xx01101110 (173442) 173442 000730 173444 172040 173446 173015 173450 110061 173452 000010 173454 000675 173456 001407 173460 011427 173462 100040 173464 001300 173466 004407 173470 034431 173472 001000 ; Entry point -- TM11 Boot w/ Diagnostic ; DIP switches xx01100001 (173474) 173474 120000 ; Entry point -- TM11 Boot w/ Diagnostic ; DIP switches xx01100000 (173476) 173476 000712 173500 172522 173502 173010 173504 010311 173506 006061 173510 177776 173512 103375 173514 052211 173516 105711 173520 100376 173522 012761 173524 177777 173526 000002 173530 112211 173532 105711 173534 100376 173536 005711 173540 100663 173542 000645 ; Entry point -- RX11 Boot w/ Diagnostic ; DIP switches xx01001101 (173544) 173544 120000 ; Entry point -- RX11 Boot w/out Diagnostic ; DIP switches xx01001101 (173544) 173546 000666 173550 177170 173552 173456 173554 012203 173556 131700 173560 001401 173562 011203 173564 005722 173566 131211 173570 001776 173572 110311 173574 111105 173576 100376 173600 112761 173602 000001 173604 000002 173606 106003 173610 102771 173612 031211 173614 001776 173616 100634 173620 000303 173622 110311 173624 005003 173626 105711 173630 100376 173632 116123 173634 000002 173636 105703 173640 100372 173642 000627 ; Entry point -- User power fail @24 w/ Diagnostic ; DIP switches xx00101101 (173644) 173644 010701 ; Entry point -- User power fail @24 w/out Diagnostic ; DIP switches xx00101100 (173646) 173646 100403 173650 012706 173652 000024 173654 000002 173656 000137 173660 165022 ; Entry point -- RK611 Boot w/ Diagnostic ; DIP switches xx00100110 (173662) 173662 120000 ; Entry point -- RK611 Boot w/ Diagnostic ; DIP switches xx00100101 (173664) 173664 000617 173666 177440 173670 173014 173672 010061 173674 000010 173676 012711 173700 000003 173702 000713 ; Entry point -- PC11 Boot w/ Diagnostic ; DIP switches xx00011101 (173704) 173704 120000 ; Entry point -- PC11 Boot w/out Diagnostic ; DIP switches xx00011100 (173706) 173706 000606 173710 177550 173712 173776 173714 000627 173716 004003 173720 075405 173722 110427 173724 031513 173726 117477 173730 155021 173732 131743 173734 042076 173736 040073 173740 052124 173742 046515 173744 042123 173746 042102 173750 042113 173752 042124 173754 046524 173756 042120 173760 042115 173762 050122 173764 042130 173766 051415 173770 042440 173772 042040 173774 046040 173776 176424