Attempted to clean up mapUnibus() and bus-related faults; how well or ill-advised these changes are remains to be seen
This commit is contained in:
parent
96ad4ec37e
commit
daefc2992c
41 changed files with 1454 additions and 1476 deletions
|
|
@ -9,7 +9,7 @@ PDP-11 Boot Images
|
|||
|
||||
The project contains the following PDP-11 boot images:
|
||||
|
||||
* [PDP-11 Boot Test](test/)
|
||||
* [PDP-11 Boot Monitor](monitor/)
|
||||
* [DEC PDP-11 Bootstrap Loader](bootstrap/)
|
||||
|
||||
Boot code can be pre-loaded into any machine by including a `<ram>` component in the machine XML configuration file
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
037744: 016701 000026 MOV 26(PC),R1 ; @037776
|
||||
037744: 016701 000026 MOV 037776,R1
|
||||
037750: 012702 000352 MOV #352,R2
|
||||
037754: 005211 INC @R1
|
||||
037756: 105711 TSTB @R1
|
||||
037760: 100376 BPL 037756
|
||||
037762: 116162 000002 037400 MOVB 2(R1),37400(R2)
|
||||
037770: 005267 177756 INC 177756(PC) ; @037752
|
||||
037770: 005267 177756 INC 037752
|
||||
037774: 000765 BR 037750
|
||||
037776: 177550 .WORD 177550
|
||||
|
|
|
|||
|
|
@ -29,20 +29,20 @@ Here's what the **Bootstrap Loader** looks like:
|
|||
037776 177550
|
||||
|
||||
Using any [PDPjs](/modules/pdpjs/) machine with the built-in Debugger, such as this
|
||||
[PDP-11/20 Boot Test](/devices/pdp11/machine/1120/test/debugger/), the **Bootstrap Loader**
|
||||
[PDP-11/20 Boot Monitor](/devices/pdp11/machine/1120/monitor/debugger/), the **Bootstrap Loader**
|
||||
is easily entered with a single Debugger EDIT ("e") command:
|
||||
|
||||
e 037744 016701 000026 012702 000352 005211 105711 100376 116162 000002 037400 005267 177756 000765 177550
|
||||
|
||||
You can immediately disassemble the code using the Debugger's UNASSEMBLE ("u") command `u 037744 040000`:
|
||||
|
||||
037744: 016701 000026 MOV 26(PC),R1 ; @037776
|
||||
037744: 016701 000026 MOV 037776,R1
|
||||
037750: 012702 000352 MOV #352,R2
|
||||
037754: 005211 INC @R1
|
||||
037756: 105711 TSTB @R1
|
||||
037760: 100376 BPL 037756
|
||||
037762: 116162 000002 037400 MOVB 2(R1),37400(R2)
|
||||
037770: 005267 177756 INC 177756(PC) ; @037752
|
||||
037770: 005267 177756 INC 037752
|
||||
037774: 000765 BR 037750
|
||||
037776: 177550 .WORD 177550
|
||||
|
||||
|
|
|
|||
89
apps/pdp11/boot/monitor/PDPJSMON.json
Normal file
89
apps/pdp11/boot/monitor/PDPJSMON.json
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
{"load":0xC000 /*140000*/,"exec":0xC000 /*140000*/,
|
||||
"words":[
|
||||
0x0005 /*000005*/,0x0A1F /*005037*/,0xFFFE /*177776*/,0x15C6 /*012706*/,0xC000 /*140000*/,0x0A1F /*005037*/,0xFF74 /*177564*/,0x15C0 /*012700*/,
|
||||
0xC251 /*141121*/,0x09F7 /*004767*/,0x0052 /*000122*/,0x15DF /*012737*/,0xC054 /*140124*/,0x0040 /*000100*/,0x15DF /*012737*/,0x00E0 /*000340*/,
|
||||
0x0042 /*000102*/,0x55DF /*052737*/,0x0040 /*000100*/,0xFF66 /*177546*/,0x15C0 /*012700*/,0xC269 /*141151*/,0x09F7 /*004767*/,0x0038 /*000070*/,
|
||||
0xE5C6 /*162706*/,0x00AE /*000256*/,0x1180 /*010600*/,0x09F7 /*004767*/,0x006A /*000152*/,0x0A00 /*005000*/,0x0001 /*000001*/,0x0A80 /*005200*/,
|
||||
0x0BF7 /*005767*/,0x000C /*000014*/,0x03FB /*001773*/,0x15E6 /*012746*/,0x5800 /*054000*/,0x1DE6 /*016746*/,0x0002 /*000002*/,0x0002 /*000002*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0AB7 /*005267*/,0xFFFA /*177772*/,0x0002 /*000002*/,0x8BDF /*105737*/,0xFF74 /*177564*/,0x80FD /*100375*/,
|
||||
0x901F /*110037*/,0xFF76 /*177566*/,0x0087 /*000207*/,0x0000 /*000000*/,0xB5DF /*132737*/,0x0040 /*000100*/,0xFF74 /*177564*/,0x02FC /*001374*/,
|
||||
0x1037 /*010067*/,0xFFF2 /*177762*/,0x15DF /*012737*/,0xC088 /*140210*/,0x0034 /*000064*/,0x15DF /*012737*/,0x0080 /*000200*/,0x0036 /*000066*/,
|
||||
0xD5DF /*152737*/,0x0040 /*000100*/,0xFF74 /*177564*/,0x0087 /*000207*/,0x8BFF /*105777*/,0xFFDA /*177732*/,0x0306 /*001406*/,0x9FDF /*117737*/,
|
||||
0xFFD4 /*177724*/,0xFF76 /*177566*/,0x0AB7 /*005267*/,0xFFCE /*177716*/,0x0002 /*000002*/,0x8A1F /*105037*/,0xFF74 /*177564*/,0x0002 /*000002*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x1037 /*010067*/,0xFFF8 /*177770*/,0x0A37 /*005067*/,0xFFF6 /*177766*/,0x15DF /*012737*/,0xC0C0 /*140300*/,
|
||||
0x0030 /*000060*/,0x15DF /*012737*/,0x0080 /*000200*/,0x0032 /*000062*/,0xD5DF /*152737*/,0x0040 /*000100*/,0xFF70 /*177560*/,0x0087 /*000207*/,
|
||||
0x1026 /*010046*/,0x97C0 /*113700*/,0xFF72 /*177562*/,0xA017 /*120027*/,0x000D /*000015*/,0x032D /*001455*/,0xA017 /*120027*/,0x007F /*000177*/,
|
||||
0x0303 /*001403*/,0xA017 /*120027*/,0x0008 /*000010*/,0x020A /*001012*/,0x0BF7 /*005767*/,0xFFC6 /*177706*/,0x0306 /*001406*/,0x0AF7 /*005367*/,
|
||||
0xFFC0 /*177700*/,0x15C0 /*012700*/,0xC21F /*141037*/,0x09F7 /*004767*/,0xFF7E /*177576*/,0x012B /*000453*/,0xA017 /*120027*/,0x0020 /*000040*/,
|
||||
0x0528 /*002450*/,0xA017 /*120027*/,0x007F /*000177*/,0x0425 /*002045*/,0x09F7 /*004767*/,0xFF5E /*177536*/,0xA017 /*120027*/,0x007A /*000172*/,
|
||||
0x0605 /*003005*/,0xA017 /*120027*/,0x0061 /*000141*/,0x0502 /*002402*/,0xC5C0 /*142700*/,0x0020 /*000040*/,0x2DD7 /*026727*/,0xFF92 /*177622*/,
|
||||
0x00AC /*000254*/,0x0417 /*002027*/,0x9026 /*110046*/,0x1DC0 /*016700*/,0xFF86 /*177606*/,0x6DC0 /*066700*/,0xFF84 /*177604*/,0x9588 /*112610*/,
|
||||
0x0AB7 /*005267*/,0xFF7E /*177576*/,0x010E /*000416*/,0x1DC0 /*016700*/,0xFF76 /*177566*/,0x6DC0 /*066700*/,0xFF74 /*177564*/,0x8A08 /*105010*/,
|
||||
0x15DF /*012737*/,0xC146 /*140506*/,0x00A0 /*000240*/,0x15DF /*012737*/,0x0040 /*000100*/,0x00A2 /*000242*/,0x15DF /*012737*/,0x0400 /*002000*/,
|
||||
0xFFFA /*177772*/,0x1580 /*012600*/,0x0002 /*000002*/,0x0A1F /*005037*/,0xFFFA /*177772*/,0x1026 /*010046*/,0x1066 /*010146*/,0x10A6 /*010246*/,
|
||||
0x10E6 /*010346*/,0x1126 /*010446*/,0x15C0 /*012700*/,0xC21C /*141034*/,0x09F7 /*004767*/,0xFF0C /*177414*/,0xB5DF /*132737*/,0x0040 /*000100*/,
|
||||
0xFF74 /*177564*/,0x02FC /*001374*/,0x0A04 /*005004*/,0x15C3 /*012703*/,0xC223 /*141043*/,0x94C0 /*112300*/,0x0319 /*001431*/,0x1DC2 /*016702*/,
|
||||
0xFF2E /*177456*/,0x9481 /*112201*/,0x0319 /*001431*/,0xA057 /*120127*/,0x0020 /*000040*/,0x03FB /*001773*/,0xA001 /*120001*/,0x0208 /*001010*/,
|
||||
0x94C0 /*112300*/,0x030A /*001412*/,0x9481 /*112201*/,0x0308 /*001410*/,0xA057 /*120127*/,0x0020 /*000040*/,0x02F7 /*001367*/,0x0104 /*000404*/,
|
||||
0x94C0 /*112300*/,0x02FE /*001376*/,0x0A84 /*005204*/,0x01E9 /*000751*/,0x0CC4 /*006304*/,0x09FC /*004774*/,0xC1C0 /*140700*/,0x0104 /*000404*/,
|
||||
0x15C0 /*012700*/,0xC23F /*141077*/,0x09F7 /*004767*/,0xFEC0 /*177300*/,0x0A37 /*005067*/,0xFEF6 /*177366*/,0x15C0 /*012700*/,0xC269 /*141151*/,
|
||||
0x09F7 /*004767*/,0xFEB4 /*177264*/,0x1584 /*012604*/,0x1583 /*012603*/,0x1582 /*012602*/,0x1581 /*012601*/,0x1580 /*012600*/,0x0002 /*000002*/,
|
||||
0xC428 /*142050*/,0xC2A4 /*141244*/,0xC2B0 /*141260*/,0xC2F4 /*141364*/,0xC29A /*141232*/,0x4F43 /*047503*/,0x4D4D /*046515*/,0x4E41 /*047101*/,
|
||||
0x5344 /*051504*/,0x4120 /*040440*/,0x4552 /*042522*/,0x4220 /*041040*/,0x4F4F /*047517*/,0x2C54 /*026124*/,0x4820 /*044040*/,0x4C41 /*046101*/,
|
||||
0x2C54 /*026124*/,0x4C20 /*046040*/,0x4749 /*043511*/,0x5448 /*052110*/,0x2C53 /*026123*/,0x5420 /*052040*/,0x5345 /*051505*/,0x2054 /*020124*/,
|
||||
0x4E41 /*047101*/,0x2044 /*020104*/,0x4548 /*042510*/,0x504C /*050114*/,0x0A0D /*005015*/,0x4F42 /*047502*/,0x544F /*052117*/,0x4420 /*042040*/,
|
||||
0x5645 /*053105*/,0x4349 /*041511*/,0x5345 /*051505*/,0x4120 /*040440*/,0x4552 /*042522*/,0x5220 /*051040*/,0x3F4B /*037513*/,0x5220 /*051040*/,
|
||||
0x3F4C /*037514*/,0x4F20 /*047440*/,0x2052 /*020122*/,0x5052 /*050122*/,0x0D3F /*006477*/,0x000A /*000012*/,0x0A0D /*005015*/,0x0800 /*004000*/,
|
||||
0x0820 /*004040*/,0x4200 /*041000*/,0x4F4F /*047517*/,0x0054 /*000124*/,0x4148 /*040510*/,0x544C /*052114*/,0x5400 /*052000*/,0x5345 /*051505*/,
|
||||
0x0054 /*000124*/,0x494C /*044514*/,0x4847 /*044107*/,0x5354 /*051524*/,0x4800 /*044000*/,0x4C45 /*046105*/,0x0050 /*000120*/,0x5500 /*052400*/,
|
||||
0x4B4E /*045516*/,0x4F4E /*047516*/,0x4E57 /*047127*/,0x4320 /*041440*/,0x4D4F /*046517*/,0x414D /*040515*/,0x444E /*042116*/,0x0D0A /*006412*/,
|
||||
0x5000 /*050000*/,0x5044 /*050104*/,0x312D /*030455*/,0x2031 /*020061*/,0x4F4D /*047515*/,0x494E /*044516*/,0x4F54 /*047524*/,0x2052 /*020122*/,
|
||||
0x3156 /*030526*/,0x302E /*030056*/,0x0D0A /*006412*/,0x0D0A /*006412*/,0x4200 /*041000*/,0x4F4F /*047517*/,0x3E54 /*037124*/,0x0020 /*000040*/,
|
||||
0x4E55 /*047125*/,0x4E4B /*047113*/,0x574F /*053517*/,0x204E /*020116*/,0x4F42 /*047502*/,0x544F /*052117*/,0x4420 /*042040*/,0x5645 /*053105*/,
|
||||
0x4349 /*041511*/,0x0A45 /*005105*/,0x000D /*000015*/,0x2020 /*020040*/,0x2020 /*020040*/,0x2020 /*020040*/,0x4C43 /*046103*/,0x434F /*041517*/,
|
||||
0x204B /*020113*/,0x4954 /*044524*/,0x4B43 /*045503*/,0x0A53 /*005123*/,0x000D /*000015*/,0x15C0 /*012700*/,0xC1CA /*140712*/,0x09F7 /*004767*/,
|
||||
0xFDC6 /*176706*/,0x0087 /*000207*/,0x0000 /*000000*/,0x15C0 /*012700*/,0xC21C /*141034*/,0x09F7 /*004767*/,0xFDBA /*176672*/,0x0087 /*000207*/,
|
||||
0x0A37 /*005067*/,0xFD9E /*176636*/,0x15C5 /*012705*/,0x1A00 /*015000*/,0x115F /*010537*/,0xFF78 /*177570*/,0x1144 /*010504*/,0x0C84 /*006204*/,
|
||||
0x0A00 /*005000*/,0x1141 /*010501*/,0x7204 /*071004*/,0x1002 /*010002*/,0x7084 /*070204*/,0x60C1 /*060301*/,0x2045 /*020105*/,0x0301 /*001401*/,
|
||||
0x0000 /*000000*/,0x7F0A /*077412*/,0x7F4F /*077517*/,0x15C0 /*012700*/,0xC28B /*141213*/,0x1DC3 /*016703*/,0xFD74 /*176564*/,0x0A02 /*005002*/,
|
||||
0x7297 /*071227*/,0x0008 /*000010*/,0x65C3 /*062703*/,0x0030 /*000060*/,0x90E0 /*110340*/,0x1083 /*010203*/,0x02F8 /*001370*/,0x09F7 /*004767*/,
|
||||
0xFD76 /*176566*/,0x0087 /*000207*/,0x15C3 /*012703*/,0x7F06 /*077406*/,0x0A02 /*005002*/,0x0A01 /*005001*/,0x15C0 /*012700*/,0x0008 /*000010*/,
|
||||
0x10F1 /*010361*/,0xF4C0 /*172300*/,0x10B1 /*010261*/,0xF4E0 /*172340*/,0x10F1 /*010361*/,0xF4D0 /*172320*/,0x10B1 /*010261*/,0xF4F0 /*172360*/,
|
||||
0x10F1 /*010361*/,0xF480 /*172200*/,0x10B1 /*010261*/,0xF4A0 /*172240*/,0x10F1 /*010361*/,0xF490 /*172220*/,0x10B1 /*010261*/,0xF4B0 /*172260*/,
|
||||
0x10F1 /*010361*/,0xFF80 /*177600*/,0x10B1 /*010261*/,0xFFA0 /*177640*/,0x10F1 /*010361*/,0xFF90 /*177620*/,0x10F1 /*010361*/,0xFFB0 /*177660*/,
|
||||
0x65C2 /*062702*/,0x0080 /*000200*/,0x65C1 /*062701*/,0x0002 /*000002*/,0x7E1D /*077035*/,0x55DF /*052737*/,0xFC00 /*176000*/,0xF4FE /*172376*/,
|
||||
0x55DF /*052737*/,0xFC00 /*176000*/,0xF4BE /*172276*/,0x55DF /*052737*/,0xFC00 /*176000*/,0xFFBE /*177676*/,0x15DF /*012737*/,0x003F /*000077*/,
|
||||
0xF54E /*172516*/,0x15DF /*012737*/,0x0001 /*000001*/,0xFF7A /*177572*/,0x15DF /*012737*/,0x03C0 /*001700*/,0xF4A4 /*172244*/,0x15DF /*012737*/,
|
||||
0x03C0 /*001700*/,0xF4B4 /*172264*/,0x15DF /*012737*/,0x1000 /*010000*/,0xFFFE /*177776*/,0x15C3 /*012703*/,0x4080 /*040200*/,0x15C2 /*012702*/,
|
||||
0xC384 /*141604*/,0x14A6 /*012246*/,0x0D93 /*006623*/,0x2097 /*020227*/,0xC428 /*142050*/,0x87FB /*103773*/,0x15F7 /*012767*/,0x4080 /*040200*/,
|
||||
0xFCCE /*176316*/,0x0087 /*000207*/,0x15C0 /*012700*/,0x001F /*000037*/,0x15C1 /*012701*/,0xF800 /*174000*/,0x35DF /*032737*/,0x0001 /*000001*/,
|
||||
0xFF78 /*177570*/,0x030C /*001414*/,0x15C0 /*012700*/,0x0F0F /*007417*/,0x1001 /*010001*/,0x0A41 /*005101*/,0x35DF /*032737*/,0x0002 /*000002*/,
|
||||
0xFF78 /*177570*/,0x0304 /*001404*/,0x15C0 /*012700*/,0x3C73 /*036163*/,0x15C1 /*012701*/,0x3E00 /*037000*/,0x1042 /*010102*/,0xE5C2 /*162702*/,
|
||||
0x0002 /*000002*/,0x45C2 /*042702*/,0x0001 /*000001*/,0x1083 /*010203*/,0x45C3 /*042703*/,0xFFC1 /*177701*/,0x15F3 /*012763*/,0x0001 /*000001*/,
|
||||
0x4000 /*040000*/,0x65C3 /*062703*/,0x0002 /*000002*/,0x15F3 /*012763*/,0x004B /*000113*/,0x4000 /*040000*/,0x1084 /*010204*/,0x7517 /*072427*/,
|
||||
0xFFFA /*177772*/,0x45C4 /*042704*/,0xFF80 /*177600*/,0x15C5 /*012705*/,0x03C0 /*001700*/,0xE105 /*160405*/,0x1084 /*010204*/,0x7517 /*072427*/,
|
||||
0xFFF4 /*177764*/,0x45C4 /*042704*/,0xFFF1 /*177761*/,0x1174 /*010564*/,0xF4A0 /*172240*/,0x1043 /*010103*/,0x74D7 /*072327*/,0xFFF4 /*177764*/,
|
||||
0x45C3 /*042703*/,0xFFF1 /*177761*/,0x20C4 /*020304*/,0x030A /*001412*/,0x1044 /*010104*/,0x7517 /*072427*/,0xFFFA /*177772*/,0x45C4 /*042704*/,
|
||||
0xFF80 /*177600*/,0x15C5 /*012705*/,0x03C0 /*001700*/,0xE105 /*160405*/,0x1173 /*010563*/,0xF4A0 /*172240*/,0x15C4 /*012704*/,0x0003 /*000003*/,
|
||||
0x67C4 /*063704*/,0xFF78 /*177570*/,0x15C3 /*012703*/,0x0002 /*000002*/,0x61C3 /*060703*/,0x004A /*000112*/,0x7F02 /*077402*/,0x1002 /*010002*/,
|
||||
0x0C02 /*006002*/,0x0C41 /*006101*/,0x0C00 /*006000*/,0x01C2 /*000702*/,0x0A03 /*005003*/,0x9481 /*112201*/,0x0365 /*001545*/,0xA057 /*120127*/,
|
||||
0x0020 /*000040*/,0x03FB /*001773*/,0xA057 /*120127*/,0x0052 /*000122*/,0x0305 /*001405*/,0x15C0 /*012700*/,0xC270 /*141160*/,0x09F7 /*004767*/,
|
||||
0xFC26 /*176046*/,0x0087 /*000207*/,0x9481 /*112201*/,0x9480 /*112200*/,0x030E /*001416*/,0xA017 /*120027*/,0x0020 /*000040*/,0x030B /*001413*/,
|
||||
0xA017 /*120027*/,0x0037 /*000067*/,0x0619 /*003031*/,0xE5C0 /*162700*/,0x0030 /*000060*/,0x0516 /*002426*/,0x0CC3 /*006303*/,0x0CC3 /*006303*/,
|
||||
0x0CC3 /*006303*/,0x5003 /*050003*/,0x01F0 /*000760*/,0x0A02 /*005002*/,0x15D2 /*012722*/,0x005F /*000137*/,0x15D2 /*012722*/,0xC000 /*140000*/,
|
||||
0x15D2 /*012722*/,0xC000 /*140000*/,0x0A12 /*005022*/,0xA057 /*120127*/,0x004B /*000113*/,0x033E /*001476*/,0xA057 /*120127*/,0x004C /*000114*/,
|
||||
0x0308 /*001410*/,0xA057 /*120127*/,0x0050 /*000120*/,0x034F /*001517*/,0x15C0 /*012700*/,0xC23F /*141077*/,0x09F7 /*004767*/,0xFBD8 /*175730*/,
|
||||
0x0087 /*000207*/,0x0005 /*000005*/,0x00C3 /*000303*/,0x15C1 /*012701*/,0xF900 /*174400*/,0x15F1 /*012761*/,0x000B /*000013*/,0x0004 /*000004*/,
|
||||
0x55C3 /*052703*/,0x0004 /*000004*/,0x10C9 /*010311*/,0x8BC9 /*105711*/,0x80FE /*100376*/,0x8A03 /*105003*/,0x55C3 /*052703*/,0x0008 /*000010*/,
|
||||
0x10C9 /*010311*/,0x8BC9 /*105711*/,0x80FE /*100376*/,0x1C42 /*016102*/,0x0006 /*000006*/,0x45C2 /*042702*/,0x003F /*000077*/,0x0A82 /*005202*/,
|
||||
0x10B1 /*010261*/,0x0004 /*000004*/,0x8A03 /*105003*/,0x55C3 /*052703*/,0x0006 /*000006*/,0x10C9 /*010311*/,0x8BC9 /*105711*/,0x80FE /*100376*/,
|
||||
0x0A31 /*005061*/,0x0002 /*000002*/,0x0A31 /*005061*/,0x0004 /*000004*/,0x15F1 /*012761*/,0xFE00 /*177000*/,0x0006 /*000006*/,0x8A03 /*105003*/,
|
||||
0x55C3 /*052703*/,0x000C /*000014*/,0x10C9 /*010311*/,0x8BC9 /*105711*/,0x80FE /*100376*/,0x45C9 /*042711*/,0x00FF /*000377*/,0x0A02 /*005002*/,
|
||||
0x0A03 /*005003*/,0x0A04 /*005004*/,0x0A05 /*005005*/,0x0A07 /*005007*/,0x0005 /*000005*/,0x00C3 /*000303*/,0x0CC3 /*006303*/,0x0CC3 /*006303*/,
|
||||
0x0CC3 /*006303*/,0x0CC3 /*006303*/,0x0CC3 /*006303*/,0x15C1 /*012701*/,0xFF0A /*177412*/,0x10C9 /*010311*/,0x0A21 /*005041*/,0x15E1 /*012741*/,
|
||||
0xFE00 /*177000*/,0x15E1 /*012741*/,0x0005 /*000005*/,0x0A02 /*005002*/,0x0A03 /*005003*/,0x0A04 /*005004*/,0x0A05 /*005005*/,0x8BC9 /*105711*/,
|
||||
0x80FE /*100376*/,0x8A09 /*105011*/,0x0A07 /*005007*/,0x0005 /*000005*/,0x15C1 /*012701*/,0xFDC0 /*176700*/,0x15F1 /*012761*/,0x0020 /*000040*/,
|
||||
0x0008 /*000010*/,0x10F1 /*010361*/,0x0008 /*000010*/,0x15C9 /*012711*/,0x0011 /*000021*/,0x15F1 /*012761*/,0x1000 /*010000*/,0x001A /*000032*/,
|
||||
0x15F1 /*012761*/,0xFE00 /*177000*/,0x0002 /*000002*/,0x0A31 /*005061*/,0x0004 /*000004*/,0x0A31 /*005061*/,0x0006 /*000006*/,0x0A31 /*005061*/,
|
||||
0x001C /*000034*/,0x15C9 /*012711*/,0x0039 /*000071*/,0x8BC9 /*105711*/,0x80FE /*100376*/,0x8A09 /*105011*/,0x10C0 /*010300*/,0x0A07 /*005007*/]
|
||||
}
|
||||
533
apps/pdp11/boot/monitor/PDPJSMON.lst
Normal file
533
apps/pdp11/boot/monitor/PDPJSMON.lst
Normal file
|
|
@ -0,0 +1,533 @@
|
|||
1 ; BOOT MONITOR
|
||||
2 ;
|
||||
3 ; REBASE HIGHER LINK/BOT:140000
|
||||
4 ; WANT PERFORMANCE COUNTER - CLOCK TICKS TO DO SOMETHING?
|
||||
5
|
||||
6 177776 PSW = 177776
|
||||
7 177564 DL11XCSR = 177564
|
||||
8 000064 DL11VEC = 64
|
||||
9
|
||||
10 177546 KW11LKS = 177546
|
||||
11 000100 KW11VEC = 100
|
||||
12
|
||||
13 .ASECT
|
||||
14 140000 .=140000
|
||||
15 140000 000005 START: RESET ; 140000
|
||||
16 140002 005037 177776 CLR @#PSW
|
||||
17 140006 012706 140000 MOV #START,SP
|
||||
18 140012 005037 177564 CLR @#DL11XCSR ; CLEAR THE XCSR
|
||||
19 140016 012700 141121 MOV #BANNER,R0
|
||||
20 140022 004767 140150' JSR PC,PRINT
|
||||
21 140026 012737 140124 000100 MOV #CLKAST,@#KW11VEC
|
||||
22 140034 012737 000340 000102 MOV #340,@#KW11VEC+2
|
||||
23 140042 052737 000100 177546 BIS #100,@#KW11LKS ; SET CLOCK TICKING
|
||||
24
|
||||
25 140050 012700 141151 MOV #PROMPT,R0
|
||||
26 140054 004767 140150' JSR PC,PRINT
|
||||
27 140060 162706 000256 SUB #256,SP
|
||||
28 140064 010600 MOV SP,R0
|
||||
29 140066 004767 140244' JSR PC,INPUT
|
||||
30 140072 005000 CLR R0
|
||||
31 140074 000001 1$: WAIT
|
||||
32 140076 005200 INC R0
|
||||
33 140100 005767 140120' TST LGHTON
|
||||
34 140104 001773 BEQ 1$
|
||||
35 140106 012746 054000 MOV #054000,-(SP) ; SUPER PRIORITY 0 ALT REG
|
||||
36 140112 016746 140120' MOV LGHTON,-(SP) ; CALL SUPER LOOP START
|
||||
37 140116 000002 RTI
|
||||
38
|
||||
39 140120 000000 LGHTON: .WORD 0
|
||||
40 140122 000000 CLKTIC: .WORD 0
|
||||
41
|
||||
42 CLKAST: ; 140124
|
||||
43 140124 005267 140122' INC CLKTIC
|
||||
44 140130 000002 RTI
|
||||
45
|
||||
46 ONECHR:
|
||||
47 140132 105737 177564 TSTB @#DL11XCSR ; 140132
|
||||
48 140136 100375 BPL ONECHR
|
||||
49 140140 110037 177566 MOVB R0,@#177566
|
||||
50 140144 000207 RTS PC
|
||||
51
|
||||
52 140146 000000 PRTPTR: .WORD 0 ; 140146
|
||||
53
|
||||
54 PRINT: ; 140150
|
||||
55 140150 132737 000100 177564 BITB #100,@#DL11XCSR
|
||||
56 140156 001374 BNE PRINT
|
||||
57 140160 010067 140146' MOV R0,PRTPTR
|
||||
58 140164 012737 140210 000064 MOV #PRTAST,@#DL11VEC
|
||||
59 140172 012737 000200 000066 MOV #200,@#DL11VEC+2
|
||||
60 140200 152737 000100 177564 BISB #100,@#DL11XCSR
|
||||
61 140206 000207 RTS PC
|
||||
62
|
||||
63 PRTAST: ; 140210
|
||||
64 140210 105777 140146' TSTB @PRTPTR
|
||||
65 140214 001406 BEQ 2$
|
||||
66 140216 117737 140146' 177566 MOVB @PRTPTR,@#177566
|
||||
67 140224 005267 140146' INC PRTPTR
|
||||
68 140230 000002 RTI
|
||||
69 140232 105037 177564 2$: CLRB @#177564
|
||||
70 140236 000002 RTI
|
||||
71
|
||||
72 140240 000000 BUFFER: .WORD 0 ; INPUT BUFFER POINTER
|
||||
73 140242 000000 LENGTH: .WORD 0 ; INPUT BUFFER LENGTH
|
||||
74
|
||||
75 INPUT:
|
||||
76 140244 010067 140240' MOV R0,BUFFER ; 140244
|
||||
77 140250 005067 140242' CLR LENGTH
|
||||
78 140254 012737 140300 000060 MOV #INPAST,@#60
|
||||
79 140262 012737 000200 000062 MOV #200,@#62
|
||||
80 140270 152737 000100 177560 BISB #100,@#177560
|
||||
81 140276 000207 RTS PC
|
||||
82
|
||||
83 INPAST: ; 140300
|
||||
84 140300 010046 MOV R0,-(SP)
|
||||
85 140302 113700 177562 MOVB @#177562,R0
|
||||
86 140306 120027 000015 CMPB R0,#15
|
||||
87 140312 001455 BEQ 7$ ; CARRIAGE RETURN
|
||||
88 140314 120027 000177 CMPB R0,#127.
|
||||
89 140320 001403 BEQ 2$ ; <DEL>
|
||||
90 140322 120027 000010 CMPB R0,#10
|
||||
91 140326 001012 BNE 4$ ; BACK SPACE
|
||||
92 140330 005767 140242' 2$: TST LENGTH ; DATA IN BUFFER?
|
||||
93 140334 001406 BEQ 3$
|
||||
94 140336 005367 140242' DEC LENGTH ; LENGTH
|
||||
95 140342 012700 141037 MOV #DEL,R0
|
||||
96 140346 004767 140150' JSR PC,PRINT
|
||||
97 140352 000453 3$: BR 9$
|
||||
98 140354 120027 000040 4$: CMPB R0,#40
|
||||
99 140360 002450 BLT 9$ ; BELOW SPACE
|
||||
100 140362 120027 000177 CMPB R0,#177
|
||||
101 140366 002045 BGE 9$ ; SKIP STUFF TOO BIG
|
||||
102 140370 004767 140132' JSR PC,ONECHR ; ECHO CHAR
|
||||
103 140374 120027 000172 CMPB R0,#172
|
||||
104 140400 003005 BGT 5$ ; ABOVE Z
|
||||
105 140402 120027 000141 CMPB R0,#141
|
||||
106 140406 002402 BLT 5$ ; BELOW A
|
||||
107 140410 142700 000040 BICB #40,R0 ; CONVERT TO UPPER CASE
|
||||
108 140414 026727 140242' 000254 5$: CMP LENGTH,#254
|
||||
109 140422 002027 BGE 9$
|
||||
110 140424 110046 MOVB R0,-(SP)
|
||||
111 140426 016700 140240' MOV BUFFER,R0
|
||||
112 140432 066700 140242' ADD LENGTH,R0
|
||||
113 140436 112610 MOVB (SP)+,(R0)
|
||||
114 140440 005267 140242' INC LENGTH
|
||||
115 140444 000416 BR 9$
|
||||
116
|
||||
117 140446 016700 140240' 7$: MOV BUFFER,R0
|
||||
118 140452 066700 140242' ADD LENGTH,R0
|
||||
119 140456 105010 CLRB (R0)
|
||||
120 140460 012737 140506 000240 MOV #CMD,@#240 ; CALL CMD AT PRIORITY 2
|
||||
121 140466 012737 000100 000242 MOV #100,@#242
|
||||
122 140474 012737 002000 177772 MOV #2000,@#177772
|
||||
123 140502 012600 9$: MOV (SP)+,R0
|
||||
124 140504 000002 RTI
|
||||
125
|
||||
126 CMD: ; 140506
|
||||
127 140506 005037 177772 CLR @#177772 ; NO MORE PIR CALLS
|
||||
128 140512 010046 MOV R0,-(SP)
|
||||
129 140514 010146 MOV R1,-(SP)
|
||||
130 140516 010246 MOV R2,-(SP)
|
||||
131 140520 010346 MOV R3,-(SP)
|
||||
132 140522 010446 MOV R4,-(SP)
|
||||
133 140524 012700 141034 MOV #EOL,R0
|
||||
134 140530 004767 140150' JSR PC,PRINT
|
||||
135 140534 132737 000100 177564 1$: BITB #100,@#177564
|
||||
136 140542 001374 BNE 1$
|
||||
137 140544 005004 CLR R4
|
||||
138 140546 012703 141043 MOV #CMDLST,R3 ; CMD LIST
|
||||
139 140552 112300 3$: MOVB (R3)+,R0
|
||||
140 140554 001431 BEQ 13$
|
||||
141 140556 016702 140240' MOV BUFFER,R2 ; USER CMD
|
||||
142 140562 112201 4$: MOVB (R2)+,R1
|
||||
143 140564 001431 BEQ 15$ ; NULL COMMAND?
|
||||
144 140566 120127 000040 CMPB R1,#40
|
||||
145 140572 001773 BEQ 4$ ; SKIP SPACE
|
||||
146 140574 120001 5$: CMPB R0,R1
|
||||
147 140576 001010 BNE 7$
|
||||
148 140600 112300 MOVB (R3)+,R0
|
||||
149 140602 001412 BEQ 9$
|
||||
150 140604 112201 MOVB (R2)+,R1
|
||||
151 140606 001410 BEQ 9$
|
||||
152 140610 120127 000040 CMPB R1,#40
|
||||
153 140614 001367 BNE 5$
|
||||
154 140616 000404 BR 9$
|
||||
155 140620 112300 7$: MOVB (R3)+,R0
|
||||
156 140622 001376 BNE 7$
|
||||
157 140624 005204 INC R4
|
||||
158 140626 000751 BR 3$
|
||||
159 140630 006304 9$: ASL R4
|
||||
160 140632 004774 140700 JSR PC,@CMDTBL(R4) ; EXECUTE
|
||||
161 140636 000404 BR 15$
|
||||
162
|
||||
163 140640 012700 141077 13$: MOV #UNKMSG,R0
|
||||
164 140644 004767 140150' JSR PC,PRINT
|
||||
165
|
||||
166 140650 005067 140242' 15$: CLR LENGTH
|
||||
167 140654 012700 141151 MOV #PROMPT,R0
|
||||
168 140660 004767 140150' JSR PC,PRINT
|
||||
169 140664 012604 MOV (SP)+,R4
|
||||
170 140666 012603 MOV (SP)+,R3
|
||||
171 140670 012602 MOV (SP)+,R2
|
||||
172 140672 012601 MOV (SP)+,R1
|
||||
173 140674 012600 MOV (SP)+,R0
|
||||
174 140676 000002 RTI
|
||||
175
|
||||
176
|
||||
177 140700 142050 141244 141260 CMDTBL: .WORD BOOT,HALT,TEST,LIGHTS,HELP
|
||||
140706 141364 141232
|
||||
178 140712 103 117 115 HLPMSG: .ASCIZ 'COMMANDS ARE BOOT, HALT, LIGHTS, TEST AND HELP'<15><12>'BOOT DEVICES ARE RK? RL? OR RP?'<15><12>
|
||||
140715 115 101 116
|
||||
140720 104 123 040
|
||||
140723 101 122 105
|
||||
140726 040 102 117
|
||||
140731 117 124 054
|
||||
140734 040 110 101
|
||||
140737 114 124 054
|
||||
140742 040 114 111
|
||||
140745 107 110 124
|
||||
140750 123 054 040
|
||||
140753 124 105 123
|
||||
140756 124 040 101
|
||||
140761 116 104 040
|
||||
140764 110 105 114
|
||||
140767 120 015 012
|
||||
140772 102 117 117
|
||||
140775 124 040 104
|
||||
141000 105 126 111
|
||||
141003 103 105 123
|
||||
141006 040 101 122
|
||||
141011 105 040 122
|
||||
141014 113 077 040
|
||||
141017 122 114 077
|
||||
141022 040 117 122
|
||||
141025 040 122 120
|
||||
141030 077 015 012
|
||||
141033 000
|
||||
179 141034 015 012 000 EOL: .BYTE 15,12,0
|
||||
180 141037 010 040 010 DEL: .BYTE 10,40,10,0
|
||||
141042 000
|
||||
181 141043 102 117 117 CMDLST: .ASCIZ 'BOOT'
|
||||
141046 124 000
|
||||
182 141050 110 101 114 .ASCIZ 'HALT'
|
||||
141053 124 000
|
||||
183 141055 124 105 123 .ASCIZ 'TEST'
|
||||
141060 124 000
|
||||
184 141062 114 111 107 .ASCIZ 'LIGHTS'
|
||||
141065 110 124 123
|
||||
141070 000
|
||||
185 141071 110 105 114 .ASCIZ 'HELP'
|
||||
141074 120 000
|
||||
186 141076 000 .BYTE 0
|
||||
187 141077 125 116 113 UNKMSG: .ASCIZ 'UNKNOWN COMMAND'<12><15>
|
||||
141102 116 117 127
|
||||
141105 116 040 103
|
||||
141110 117 115 115
|
||||
141113 101 116 104
|
||||
141116 012 015 000
|
||||
188 141121 120 104 120 BANNER: .ASCIZ 'PDP-11 MONITOR V1.0'<12><15><12><15>
|
||||
141124 055 061 061
|
||||
141127 040 115 117
|
||||
141132 116 111 124
|
||||
141135 117 122 040
|
||||
141140 126 061 056
|
||||
141143 060 012 015
|
||||
141146 012 015 000
|
||||
189 ; 'ADAPTED FROM CODE BY PAUL NANKERVIS <PAULNANK@HOTMAIL.COM>'<12><15><12><15>
|
||||
190 141151 102 117 117 PROMPT: .ASCIZ 'BOOT> '
|
||||
141154 124 076 040
|
||||
141157 000
|
||||
191 141160 125 116 113 BADBOO: .ASCIZ 'UNKNOWN BOOT DEVICE'<12><15>
|
||||
141163 116 117 127
|
||||
141166 116 040 102
|
||||
141171 117 117 124
|
||||
141174 040 104 105
|
||||
141177 126 111 103
|
||||
141202 105 012 015
|
||||
141205 000
|
||||
192 141206 040 040 040 PERMSG: .ASCIZ ' CLOCK TICKS'<12><15>
|
||||
141211 040 040 040
|
||||
141214 103 114 117
|
||||
141217 103 113 040
|
||||
141222 124 111 103
|
||||
141225 113 123 012
|
||||
141230 015 000
|
||||
193
|
||||
194 .EVEN
|
||||
195
|
||||
196 HELP: ; 141244
|
||||
197 141232 012700 140712 MOV #HLPMSG,R0
|
||||
198 141236 004767 140150' JSR PC,PRINT
|
||||
199 141242 000207 RTS PC
|
||||
200
|
||||
201 HALT: ; 141260
|
||||
202 141244 000000 HALT
|
||||
203 141246 012700 141034 MOV #EOL,R0
|
||||
204 141252 004767 140150' JSR PC,PRINT
|
||||
205 141256 000207 RTS PC
|
||||
206
|
||||
207 TEST: ; 141272
|
||||
208 141260 005067 140122' CLR CLKTIC
|
||||
209
|
||||
210 141264 012705 015000 MOV #15000,R5
|
||||
211 141270 010537 177570 10$: MOV R5,@#177570 ; DISPLAY
|
||||
212 141274 010504 MOV R5,R4
|
||||
213 141276 006204 ASR R4
|
||||
214 141300 005000 15$: CLR R0
|
||||
215 141302 010501 MOV R5,R1
|
||||
216 141304 071004 DIV R4,R0
|
||||
217 141306 010002 MOV R0,R2
|
||||
218 141310 070204 MUL R4,R2
|
||||
219 141312 060301 ADD R3,R1
|
||||
220 141314 020105 CMP R1,R5
|
||||
221 141316 001401 BEQ 20$
|
||||
222 141320 000000 HALT
|
||||
223 141322 077412 20$: SOB R4,15$
|
||||
224 141324 077517 SOB R5,10$
|
||||
225
|
||||
226 141326 012700 141213 MOV #PERMSG+5,R0
|
||||
227 141332 016703 140122' MOV CLKTIC,R3
|
||||
228
|
||||
229 141336 005002 25$: CLR R2 ; 141350
|
||||
230 141340 071227 000010 DIV #10,R2
|
||||
231 141344 062703 000060 ADD #'0,R3
|
||||
232 141350 110340 MOVB R3,-(R0)
|
||||
233 141352 010203 MOV R2,R3
|
||||
234 141354 001370 BNE 25$
|
||||
235
|
||||
236 141356 004767 140150' JSR PC,PRINT
|
||||
237 141362 000207 RTS PC
|
||||
238
|
||||
239
|
||||
240 177572 MMR0=177572
|
||||
241 177574 MMR1=177574
|
||||
242 177576 MMR2=177576
|
||||
243 172516 MMR3=172516
|
||||
244
|
||||
245 LIGHTS: ; 141376
|
||||
246 141364 012703 077406 MOV #77406,R3 ; DEFAULT PDR
|
||||
247 141370 005002 CLR R2
|
||||
248 141372 005001 CLR R1
|
||||
249 141374 012700 000010 MOV #8.,R0
|
||||
250 141400 010361 172300 1$: MOV R3,172300(R1) ; KERNEL I PDR
|
||||
251 141404 010261 172340 MOV R2,172340(R1) ; KERNEL I PAR
|
||||
252 141410 010361 172320 MOV R3,172320(R1) ; KERNEL D PDR
|
||||
253 141414 010261 172360 MOV R2,172360(R1) ; KERNEL D PAR
|
||||
254 141420 010361 172200 MOV R3,172200(R1) ; SUPER I PDR
|
||||
255 141424 010261 172240 MOV R2,172240(R1) ; SUPER I PAR
|
||||
256 141430 010361 172220 MOV R3,172220(R1) ; SUPER D PDR
|
||||
257 141434 010261 172260 MOV R2,172260(R1) ; SUPER D PAR
|
||||
258 141440 010361 177600 MOV R3,177600(R1) ; USER I PDR
|
||||
259 141444 010261 177640 MOV R2,177640(R1) ; USER I PAR
|
||||
260 141450 010361 177620 MOV R3,177620(R1) ; USER D PDR
|
||||
261 141454 010361 177660 MOV R3,177660(R1) ; USER D PAR
|
||||
262 141460 062702 000200 ADD #200,R2
|
||||
263 141464 062701 000002 ADD #2,R1
|
||||
264 141470 077035 SOB R0,1$
|
||||
265 141472 052737 176000 172376 BIS #176000,@#172376 ; KERNEL D POINTS TO I/O SPACE
|
||||
266 141500 052737 176000 172276 BIS #176000,@#172276 ; SUPER D POINTS TO I/O SPACE
|
||||
267 141506 052737 176000 177676 BIS #176000,@#177676 ; USER D POINTS TO I/O SPACE
|
||||
268 141514 012737 000077 172516 MOV #77,@#MMR3 ; 77 FOR 22 BIT
|
||||
269 141522 012737 000001 177572 MOV #1,@#MMR0
|
||||
270
|
||||
271 141530 012737 001700 172244 MOV #1700,@#172244 ; BASE SUPER I (PAR 2) #40000 AT #170000
|
||||
272 141536 012737 001700 172264 MOV #1700,@#172264 ; BASE SUPER D (PAR 2) #40000 AT #170000
|
||||
273 141544 012737 010000 177776 MOV #010000,@#177776 ; SET PM TO SUPER
|
||||
274
|
||||
275 141552 012703 040200 MOV #40200,R3 ; SUPER CODE ADDRESS
|
||||
276 141556 012702 141604 MOV #SUPERS,R2 ; ADDRESS SUPER CODE
|
||||
277 141562 012246 10$: MOV (R2)+,-(SP)
|
||||
278 141564 006623 MTPI (R3)+
|
||||
279 141566 020227 142050 CMP R2,#SUPERE
|
||||
280 141572 103773 BLO 10$
|
||||
281
|
||||
282 141574 012767 040200 140120' MOV #40200,LGHTON ; CHANGE IDLE TASK
|
||||
283 141602 000207 RTS PC
|
||||
284
|
||||
285 ;
|
||||
286 ; TO BE COPIED TO SUPER #40200 AT PHYSICAL #170000
|
||||
287 ; #40000 TO #40200 FOR WAIT & JMP INSTRUCTIONS
|
||||
288 ;
|
||||
289 SUPERS: ; 141616
|
||||
290 141604 012700 000037 MOV #37,R0 ; LOAD PATTERN
|
||||
291 141610 012701 174000 MOV #174000,R1
|
||||
292 141614 032737 000001 177570 BIT #1,@#177570
|
||||
293 141622 001414 BEQ 10$
|
||||
294 141624 012700 007417 MOV #7417,R0
|
||||
295 141630 010001 MOV R0,R1
|
||||
296 141632 005101 COM R1
|
||||
297 141634 032737 000002 177570 BIT #2,@#177570
|
||||
298 141642 001404 BEQ 10$
|
||||
299 141644 012700 036163 MOV #36163,R0
|
||||
300 141650 012701 037000 MOV #37000,R1
|
||||
301 141654 010102 10$: MOV R1,R2
|
||||
302 141656 162702 000002 SUB #2,R2
|
||||
303 141662 042702 000001 BIC #1,R2 ; WAIT ADDRESS
|
||||
304 141666 010203 MOV R2,R3
|
||||
305 141670 042703 177701 BIC #177701,R3 ; ADDRESS OFFSET
|
||||
306 141674 012763 000001 040000 MOV #0000001,40000(R3) ; WRITE WAIT
|
||||
307 141702 062703 000002 ADD #2,R3
|
||||
308 141706 012763 000113 040000 MOV #0000113,40000(R3) ; WRITE JMP (R3)
|
||||
309
|
||||
310 141714 010204 MOV R2,R4
|
||||
311 141716 072427 177772 ASH #-6,R4
|
||||
312 141722 042704 177600 BIC #177600,R4
|
||||
313 141726 012705 001700 MOV #1700,R5
|
||||
314 141732 160405 SUB R4,R5 ; PAR ADDRESS BASE FOR WAIT
|
||||
315 141734 010204 MOV R2,R4
|
||||
316 141736 072427 177764 ASH #-12.,R4
|
||||
317 141742 042704 177761 BIC #177761,R4 ; PAR SELECT OFFSET
|
||||
318 141746 010564 172240 MOV R5,172240(R4) ; SUPER I SPACE
|
||||
319
|
||||
320 141752 010103 MOV R1,R3
|
||||
321 141754 072327 177764 ASH #-12.,R3
|
||||
322 141760 042703 177761 BIC #177761,R3 ; PAR SELECT OFFSET
|
||||
323 141764 020304 CMP R3,R4 ; SAME PAR
|
||||
324 141766 001412 BEQ 30$
|
||||
325 141770 010104 MOV R1,R4
|
||||
326 141772 072427 177772 ASH #-6,R4
|
||||
327 141776 042704 177600 BIC #177600,R4
|
||||
328 142002 012705 001700 MOV #1700,R5
|
||||
329 142006 160405 SUB R4,R5 ; PAR ADDRESS BASE FOR JMP
|
||||
330 142010 010563 172240 MOV R5,172240(R3) ; SUPER I SPACE
|
||||
331 30$:
|
||||
332 142014 012704 000003 MOV #3,R4
|
||||
333 142020 063704 177570 ADD @#177570,R4
|
||||
334 142024 012703 000002 MOV #2,R3
|
||||
335 142030 060703 ADD PC,R3
|
||||
336 142032 000112 40$: JMP (R2)
|
||||
337 142034 077402 SOB R4,40$
|
||||
338 142036 010002 MOV R0,R2
|
||||
339 142040 006002 ROR R2 ; ROTATE PATTERN
|
||||
340 142042 006101 ROL R1
|
||||
341 142044 006000 ROR R0
|
||||
342 142046 000702 BR 10$
|
||||
343 SUPERE:
|
||||
344
|
||||
345 BOOT: ; 142062
|
||||
346 142050 005003 CLR R3 ; UNIT
|
||||
347 142052 112201 1$: MOVB (R2)+,R1
|
||||
348 142054 001545 BEQ BOOTRK ; DEFAULT DEVICE IS RK0
|
||||
349 142056 120127 000040 CMPB R1,#40
|
||||
350 142062 001773 BEQ 1$
|
||||
351 142064 120127 000122 CMPB R1,#'R
|
||||
352 142070 001405 BEQ 5$
|
||||
353
|
||||
354 142072 012700 141160 MOV #BADBOO,R0
|
||||
355 142076 004767 140150' JSR PC,PRINT
|
||||
356 142102 000207 RTS PC
|
||||
357
|
||||
358 142104 112201 5$: MOVB (R2)+,R1 ; HOPEFULLY K, L OR P
|
||||
359 142106 112200 7$: MOVB (R2)+,R0 ; DIGIT
|
||||
360 142110 001416 BEQ 9$
|
||||
361 142112 120027 000040 CMPB R0,#40
|
||||
362 142116 001413 BEQ 9$
|
||||
363 142120 120027 000067 CMPB R0,#'7
|
||||
364 142124 003031 BGT 11$
|
||||
365 142126 162700 000060 SUB #'0,R0
|
||||
366 142132 002426 BLT 11$
|
||||
367 142134 006303 ASL R3
|
||||
368 142136 006303 ASL R3
|
||||
369 142140 006303 ASL R3
|
||||
370 142142 050003 BIS R0,R3 ; PUT DIGIT INTO UNIT
|
||||
371 142144 000760 BR 7$
|
||||
372 142146 005002 9$: CLR R2
|
||||
373 142150 012722 000137 MOV #137,(R2)+ ; STORE "JMP @#140000" INSTRUCTION AT ADDRESS 0
|
||||
374 142154 012722 140000 MOV #START,(R2)+
|
||||
375 142160 012722 140000 MOV #START,(R2)+ ; STORE #140000 IN VECTOR 4, IN CASE OF TRAP TO 4
|
||||
376 142164 005022 CLR (R2)+
|
||||
377 142166 120127 000113 CMPB R1,#'K
|
||||
378 142172 001476 BEQ BOOTRK
|
||||
379 142174 120127 000114 CMPB R1,#'L
|
||||
380 142200 001410 BEQ BOOTRL
|
||||
381 142202 120127 000120 CMPB R1,#'P
|
||||
382 142206 001517 BEQ BOOTRP
|
||||
383
|
||||
384 142210 012700 141077 11$: MOV #UNKMSG,R0
|
||||
385 142214 004767 140150' JSR PC,PRINT
|
||||
386 142220 000207 RTS PC
|
||||
387
|
||||
388 174400 RLCS=174400
|
||||
389 BOOTRL: ; 142326
|
||||
390 142222 000005 RESET
|
||||
391 142224 000303 SWAB R3 ; UNIT NUMBER
|
||||
392 142226 012701 174400 MOV #RLCS,R1 ; CSR
|
||||
393 142232 012761 000013 000004 MOV #13,4(R1) ; CLR ERR
|
||||
394 142240 052703 000004 BIS #4,R3 ; UNIT+GSTAT
|
||||
395 142244 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
396 142246 105711 TSTB (R1) ; WAIT
|
||||
397 142250 100376 BPL .-2
|
||||
398 142252 105003 CLRB R3
|
||||
399 142254 052703 000010 BIS #10,R3 ; UNIT+RDHDR
|
||||
400 142260 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
401 142262 105711 TSTB (R1) ; WAIT
|
||||
402 142264 100376 BPL .-2
|
||||
403 142266 016102 000006 MOV 6(R1),R2 ; GET HDR
|
||||
404 142272 042702 000077 BIC #77,R2 ; CLR SECTOR
|
||||
405 142276 005202 INC R2 ; MAGIC BIT
|
||||
406 142300 010261 000004 MOV R2,4(R1) ; SEEK TO 0
|
||||
407 142304 105003 CLRB R3
|
||||
408 142306 052703 000006 BIS #6,R3 ; UNIT+SEEK
|
||||
409 142312 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
410 142314 105711 TSTB (R1) ; WAIT
|
||||
411 142316 100376 BPL .-2
|
||||
412 142320 005061 000002 CLR 2(R1) ; CLR BA
|
||||
413 142324 005061 000004 CLR 4(R1) ; CLR DA
|
||||
414 142330 012761 177000 000006 MOV #-512.,6(R1) ; SET WC
|
||||
415 142336 105003 CLRB R3
|
||||
416 142340 052703 000014 BIS #14,R3 ; UNIT+READ
|
||||
417 142344 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
418 142346 105711 TSTB (R1) ; WAIT
|
||||
419 142350 100376 BPL .-2
|
||||
420 142352 042711 000377 BIC #377,(R1)
|
||||
421 142356 005002 CLR R2
|
||||
422 142360 005003 CLR R3
|
||||
423 142362 005004 CLR R4
|
||||
424 142364 005005 CLR R5
|
||||
425 142366 005007 CLR PC
|
||||
426
|
||||
427 177412 RKDA=177412
|
||||
428 000005 READGO=5
|
||||
429 BOOTRK:
|
||||
430 142370 000005 RESET ; 142402
|
||||
431 142372 000303 SWAB R3 ; UNIT NUMBER
|
||||
432 142374 006303 ASL R3
|
||||
433 142376 006303 ASL R3
|
||||
434 142400 006303 ASL R3
|
||||
435 142402 006303 ASL R3
|
||||
436 142404 006303 ASL R3
|
||||
437 142406 012701 177412 MOV #RKDA,R1 ; CSR
|
||||
438 142412 010311 MOV R3,(R1) ; LOAD DA
|
||||
439 142414 005041 CLR -(R1) ; CLEAR BA
|
||||
440 142416 012741 177000 MOV #-256.*2,-(R1) ; LOAD WC
|
||||
441 142422 012741 000005 MOV #READGO,-(R1) ; READ & GO
|
||||
442 142426 005002 CLR R2
|
||||
443 142430 005003 CLR R3
|
||||
444 142432 005004 CLR R4
|
||||
445 142434 005005 CLR R5
|
||||
446 142436 105711 TSTB (R1)
|
||||
447 142440 100376 BPL .-2
|
||||
448 142442 105011 CLRB (R1)
|
||||
449 142444 005007 CLR PC
|
||||
450
|
||||
451 176700 RPCSR=0176700
|
||||
452 BOOTRP: ; 142460
|
||||
453 142446 000005 RESET
|
||||
454 142450 012701 176700 MOV #RPCSR, R1
|
||||
455 142454 012761 000040 000010 MOV #0000040, 10(R1) ; RESET
|
||||
456 142462 010361 000010 MOV R3, 10(R1) ; SET UNIT
|
||||
457 142466 012711 000021 MOV #0000021, (R1) ; PACK ACK
|
||||
458 142472 012761 010000 000032 MOV #0010000, 32(R1) ; 16B MODE
|
||||
459 142500 012761 177000 000002 MOV #-512., 2(R1) ; SET WC
|
||||
460 142506 005061 000004 CLR 4(R1) ; CLR BA
|
||||
461 142512 005061 000006 CLR 6(R1) ; CLR DA
|
||||
462 142516 005061 000034 CLR 34(R1) ; CLR CYL
|
||||
463 142522 012711 000071 MOV #0000071, (R1) ; READ
|
||||
464 142526 105711 TSTB (R1) ; WAIT
|
||||
465 142530 100376 BPL .-2
|
||||
466 142532 105011 CLRB (R1)
|
||||
467 142534 010300 MOV R3,R0
|
||||
468 142536 005007 CLR PC
|
||||
469
|
||||
470 .END START
|
||||
470
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
; BOOT LOADER CODE
|
||||
; BOOT MONITOR
|
||||
;
|
||||
; REBASE HIGHER LINK/BOT:140000
|
||||
; WANT PERFORMANCE COUNTER - CLOCK TICKS TO DO SOMETHING?
|
||||
|
|
@ -185,7 +185,8 @@ CMDLST: .ASCIZ 'BOOT'
|
|||
.ASCIZ 'HELP'
|
||||
.BYTE 0
|
||||
UNKMSG: .ASCIZ 'UNKNOWN COMMAND'<12><15>
|
||||
BANNER: .ASCIZ 'PDP-11 BOOT TEST FOR PDPjs'<12><15>'ADAPTED FROM CODE BY PAUL NANKERVIS <PAULNANK@HOTMAIL.COM>'<12><15><12><15>
|
||||
BANNER: .ASCIZ 'PDP-11 MONITOR V1.0'<12><15><12><15>
|
||||
; 'ADAPTED FROM CODE BY PAUL NANKERVIS <PAULNANK@HOTMAIL.COM>'<12><15><12><15>
|
||||
PROMPT: .ASCIZ 'BOOT> '
|
||||
BADBOO: .ASCIZ 'UNKNOWN BOOT DEVICE'<12><15>
|
||||
PERMSG: .ASCIZ ' CLOCK TICKS'<12><15>
|
||||
|
|
@ -1,26 +1,26 @@
|
|||
---
|
||||
layout: page
|
||||
title: PDP-11 Boot Test
|
||||
permalink: /apps/pdp11/boot/test/
|
||||
title: PDP-11 Boot Monitor
|
||||
permalink: /apps/pdp11/boot/monitor/
|
||||
redirect_from:
|
||||
- /devices/pdp11/rom/test/
|
||||
---
|
||||
|
||||
PDP-11 Boot Test
|
||||
----------------
|
||||
PDP-11 Boot Monitor
|
||||
-------------------
|
||||
|
||||
[BOOTTEST.mac](BOOTTEST.mac) is based on [boot.mac](http://skn.noip.me/pdp11/boot.mac) written by
|
||||
[Paul Nankervis](mailto:paulnank@hotmail.com). It is used with all our initial PDP-11 boot tests.
|
||||
[PDPJSMON.mac](PDPJSMON.mac) is a custom boot monitor/loader based on [boot.mac](http://skn.noip.me/pdp11/boot.mac) written by
|
||||
[Paul Nankervis](mailto:paulnank@hotmail.com). It is used with all our PDP-11 test machines.
|
||||
|
||||
[BOOTTEST.mac](BOOTTEST.mac) was cross-assembled with [MACRO11](https://github.com/shattered/macro11) to produce
|
||||
[BOOTTEST.lst](BOOTTEST.lst), which was then processed by [FileDump](/modules/filedump/) to produce
|
||||
[BOOTTEST.json](BOOTTEST.json).
|
||||
[PDPJSMON.mac](PDPJSMON.mac) was cross-assembled with [MACRO11](https://github.com/shattered/macro11) to produce
|
||||
[PDPJSMON.lst](PDPJSMON.lst), which was then processed by [FileDump](/modules/filedump/) to produce
|
||||
[PDPJSMON.json](PDPJSMON.json).
|
||||
|
||||
To see the Boot Test in action, try the [PDP-11/70 Boot Test (with Debugger)](/devices/pdp11/machine/1170/test/debugger/).
|
||||
To see the Boot Monitor in action, try the [PDP-11/70 Boot Monitor (with Debugger)](/devices/pdp11/machine/1170/monitor/debugger/).
|
||||
|
||||
The **BOOTTEST.mac** source code is shown below.
|
||||
The **PDPJSMON.mac** source code is shown below.
|
||||
|
||||
; BOOT LOADER CODE
|
||||
; BOOT MONITOR
|
||||
;
|
||||
; REBASE HIGHER LINK/BOT:140000
|
||||
; WANT PERFORMANCE COUNTER - CLOCK TICKS TO DO SOMETHING?
|
||||
|
|
@ -207,7 +207,8 @@ The **BOOTTEST.mac** source code is shown below.
|
|||
.ASCIZ 'HELP'
|
||||
.BYTE 0
|
||||
UNKMSG: .ASCIZ 'UNKNOWN COMMAND'<12><15>
|
||||
BANNER: .ASCIZ 'PDP-11 BOOT TEST FOR PDPjs'<12><15>'ADAPTED FROM CODE BY PAUL NANKERVIS <PAULNANK@HOTMAIL.COM>'<12><15><12><15>
|
||||
BANNER: .ASCIZ 'PDP-11 MONITOR V1.0'<12><15><12><15>
|
||||
; 'ADAPTED FROM CODE BY PAUL NANKERVIS <PAULNANK@HOTMAIL.COM>'<12><15><12><15>
|
||||
PROMPT: .ASCIZ 'BOOT> '
|
||||
BADBOO: .ASCIZ 'UNKNOWN BOOT DEVICE'<12><15>
|
||||
PERMSG: .ASCIZ ' CLOCK TICKS'<12><15>
|
||||
11
apps/pdp11/boot/monitor/makefile
Normal file
11
apps/pdp11/boot/monitor/makefile
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#
|
||||
# Don't have macro11? Make yourself a copy from https://github.com/shattered/macro11
|
||||
#
|
||||
|
||||
all: PDPJSMON.json
|
||||
|
||||
PDPJSMON.lst: PDPJSMON.mac
|
||||
macro11 PDPJSMON.mac -l PDPJSMON.lst
|
||||
|
||||
PDPJSMON.json: PDPJSMON.lst
|
||||
node ../../../../modules/filedump/bin/filedump --file=PDPJSMON.lst --format=octal --output=PDPJSMON.json --overwrite
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
{"load":0xC000 /*140000*/,"exec":0xC000 /*140000*/,
|
||||
"words":[
|
||||
0x0005 /*000005*/,0x0A1F /*005037*/,0xFFFE /*177776*/,0x15C6 /*012706*/,0xC000 /*140000*/,0x0A1F /*005037*/,0xFF74 /*177564*/,0x15C0 /*012700*/,
|
||||
0xC251 /*141121*/,0x09F7 /*004767*/,0x0052 /*000122*/,0x15DF /*012737*/,0xC054 /*140124*/,0x0040 /*000100*/,0x15DF /*012737*/,0x00E0 /*000340*/,
|
||||
0x0042 /*000102*/,0x55DF /*052737*/,0x0040 /*000100*/,0xFF66 /*177546*/,0x15C0 /*012700*/,0xC2AC /*141254*/,0x09F7 /*004767*/,0x0038 /*000070*/,
|
||||
0xE5C6 /*162706*/,0x00AE /*000256*/,0x1180 /*010600*/,0x09F7 /*004767*/,0x006A /*000152*/,0x0A00 /*005000*/,0x0001 /*000001*/,0x0A80 /*005200*/,
|
||||
0x0BF7 /*005767*/,0x000C /*000014*/,0x03FB /*001773*/,0x15E6 /*012746*/,0x5800 /*054000*/,0x1DE6 /*016746*/,0x0002 /*000002*/,0x0002 /*000002*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0AB7 /*005267*/,0xFFFA /*177772*/,0x0002 /*000002*/,0x8BDF /*105737*/,0xFF74 /*177564*/,0x80FD /*100375*/,
|
||||
0x901F /*110037*/,0xFF76 /*177566*/,0x0087 /*000207*/,0x0000 /*000000*/,0xB5DF /*132737*/,0x0040 /*000100*/,0xFF74 /*177564*/,0x02FC /*001374*/,
|
||||
0x1037 /*010067*/,0xFFF2 /*177762*/,0x15DF /*012737*/,0xC088 /*140210*/,0x0034 /*000064*/,0x15DF /*012737*/,0x0080 /*000200*/,0x0036 /*000066*/,
|
||||
0xD5DF /*152737*/,0x0040 /*000100*/,0xFF74 /*177564*/,0x0087 /*000207*/,0x8BFF /*105777*/,0xFFDA /*177732*/,0x0306 /*001406*/,0x9FDF /*117737*/,
|
||||
0xFFD4 /*177724*/,0xFF76 /*177566*/,0x0AB7 /*005267*/,0xFFCE /*177716*/,0x0002 /*000002*/,0x8A1F /*105037*/,0xFF74 /*177564*/,0x0002 /*000002*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x1037 /*010067*/,0xFFF8 /*177770*/,0x0A37 /*005067*/,0xFFF6 /*177766*/,0x15DF /*012737*/,0xC0C0 /*140300*/,
|
||||
0x0030 /*000060*/,0x15DF /*012737*/,0x0080 /*000200*/,0x0032 /*000062*/,0xD5DF /*152737*/,0x0040 /*000100*/,0xFF70 /*177560*/,0x0087 /*000207*/,
|
||||
0x1026 /*010046*/,0x97C0 /*113700*/,0xFF72 /*177562*/,0xA017 /*120027*/,0x000D /*000015*/,0x032D /*001455*/,0xA017 /*120027*/,0x007F /*000177*/,
|
||||
0x0303 /*001403*/,0xA017 /*120027*/,0x0008 /*000010*/,0x020A /*001012*/,0x0BF7 /*005767*/,0xFFC6 /*177706*/,0x0306 /*001406*/,0x0AF7 /*005367*/,
|
||||
0xFFC0 /*177700*/,0x15C0 /*012700*/,0xC21F /*141037*/,0x09F7 /*004767*/,0xFF7E /*177576*/,0x012B /*000453*/,0xA017 /*120027*/,0x0020 /*000040*/,
|
||||
0x0528 /*002450*/,0xA017 /*120027*/,0x007F /*000177*/,0x0425 /*002045*/,0x09F7 /*004767*/,0xFF5E /*177536*/,0xA017 /*120027*/,0x007A /*000172*/,
|
||||
0x0605 /*003005*/,0xA017 /*120027*/,0x0061 /*000141*/,0x0502 /*002402*/,0xC5C0 /*142700*/,0x0020 /*000040*/,0x2DD7 /*026727*/,0xFF92 /*177622*/,
|
||||
0x00AC /*000254*/,0x0417 /*002027*/,0x9026 /*110046*/,0x1DC0 /*016700*/,0xFF86 /*177606*/,0x6DC0 /*066700*/,0xFF84 /*177604*/,0x9588 /*112610*/,
|
||||
0x0AB7 /*005267*/,0xFF7E /*177576*/,0x010E /*000416*/,0x1DC0 /*016700*/,0xFF76 /*177566*/,0x6DC0 /*066700*/,0xFF74 /*177564*/,0x8A08 /*105010*/,
|
||||
0x15DF /*012737*/,0xC146 /*140506*/,0x00A0 /*000240*/,0x15DF /*012737*/,0x0040 /*000100*/,0x00A2 /*000242*/,0x15DF /*012737*/,0x0400 /*002000*/,
|
||||
0xFFFA /*177772*/,0x1580 /*012600*/,0x0002 /*000002*/,0x0A1F /*005037*/,0xFFFA /*177772*/,0x1026 /*010046*/,0x1066 /*010146*/,0x10A6 /*010246*/,
|
||||
0x10E6 /*010346*/,0x1126 /*010446*/,0x15C0 /*012700*/,0xC21C /*141034*/,0x09F7 /*004767*/,0xFF0C /*177414*/,0xB5DF /*132737*/,0x0040 /*000100*/,
|
||||
0xFF74 /*177564*/,0x02FC /*001374*/,0x0A04 /*005004*/,0x15C3 /*012703*/,0xC223 /*141043*/,0x94C0 /*112300*/,0x0319 /*001431*/,0x1DC2 /*016702*/,
|
||||
0xFF2E /*177456*/,0x9481 /*112201*/,0x0319 /*001431*/,0xA057 /*120127*/,0x0020 /*000040*/,0x03FB /*001773*/,0xA001 /*120001*/,0x0208 /*001010*/,
|
||||
0x94C0 /*112300*/,0x030A /*001412*/,0x9481 /*112201*/,0x0308 /*001410*/,0xA057 /*120127*/,0x0020 /*000040*/,0x02F7 /*001367*/,0x0104 /*000404*/,
|
||||
0x94C0 /*112300*/,0x02FE /*001376*/,0x0A84 /*005204*/,0x01E9 /*000751*/,0x0CC4 /*006304*/,0x09FC /*004774*/,0xC1C0 /*140700*/,0x0104 /*000404*/,
|
||||
0x15C0 /*012700*/,0xC23F /*141077*/,0x09F7 /*004767*/,0xFEC0 /*177300*/,0x0A37 /*005067*/,0xFEF6 /*177366*/,0x15C0 /*012700*/,0xC2AC /*141254*/,
|
||||
0x09F7 /*004767*/,0xFEB4 /*177264*/,0x1584 /*012604*/,0x1583 /*012603*/,0x1582 /*012602*/,0x1581 /*012601*/,0x1580 /*012600*/,0x0002 /*000002*/,
|
||||
0xC46C /*142154*/,0xC2E8 /*141350*/,0xC2F4 /*141364*/,0xC338 /*141470*/,0xC2DE /*141336*/,0x4F43 /*047503*/,0x4D4D /*046515*/,0x4E41 /*047101*/,
|
||||
0x5344 /*051504*/,0x4120 /*040440*/,0x4552 /*042522*/,0x4220 /*041040*/,0x4F4F /*047517*/,0x2C54 /*026124*/,0x4820 /*044040*/,0x4C41 /*046101*/,
|
||||
0x2C54 /*026124*/,0x4C20 /*046040*/,0x4749 /*043511*/,0x5448 /*052110*/,0x2C53 /*026123*/,0x5420 /*052040*/,0x5345 /*051505*/,0x2054 /*020124*/,
|
||||
0x4E41 /*047101*/,0x2044 /*020104*/,0x4548 /*042510*/,0x504C /*050114*/,0x0A0D /*005015*/,0x4F42 /*047502*/,0x544F /*052117*/,0x4420 /*042040*/,
|
||||
0x5645 /*053105*/,0x4349 /*041511*/,0x5345 /*051505*/,0x4120 /*040440*/,0x4552 /*042522*/,0x5220 /*051040*/,0x3F4B /*037513*/,0x5220 /*051040*/,
|
||||
0x3F4C /*037514*/,0x4F20 /*047440*/,0x2052 /*020122*/,0x5052 /*050122*/,0x0D3F /*006477*/,0x000A /*000012*/,0x0A0D /*005015*/,0x0800 /*004000*/,
|
||||
0x0820 /*004040*/,0x4200 /*041000*/,0x4F4F /*047517*/,0x0054 /*000124*/,0x4148 /*040510*/,0x544C /*052114*/,0x5400 /*052000*/,0x5345 /*051505*/,
|
||||
0x0054 /*000124*/,0x494C /*044514*/,0x4847 /*044107*/,0x5354 /*051524*/,0x4800 /*044000*/,0x4C45 /*046105*/,0x0050 /*000120*/,0x5500 /*052400*/,
|
||||
0x4B4E /*045516*/,0x4F4E /*047516*/,0x4E57 /*047127*/,0x4320 /*041440*/,0x4D4F /*046517*/,0x414D /*040515*/,0x444E /*042116*/,0x0D0A /*006412*/,
|
||||
0x5000 /*050000*/,0x5044 /*050104*/,0x312D /*030455*/,0x2031 /*020061*/,0x4F42 /*047502*/,0x544F /*052117*/,0x5420 /*052040*/,0x5345 /*051505*/,
|
||||
0x2054 /*020124*/,0x4F46 /*047506*/,0x2052 /*020122*/,0x4450 /*042120*/,0x6A50 /*065120*/,0x0A73 /*005163*/,0x410D /*040415*/,0x4144 /*040504*/,
|
||||
0x5450 /*052120*/,0x4445 /*042105*/,0x4620 /*043040*/,0x4F52 /*047522*/,0x204D /*020115*/,0x4F43 /*047503*/,0x4544 /*042504*/,0x4220 /*041040*/,
|
||||
0x2059 /*020131*/,0x4150 /*040520*/,0x4C55 /*046125*/,0x4E20 /*047040*/,0x4E41 /*047101*/,0x454B /*042513*/,0x5652 /*053122*/,0x5349 /*051511*/,
|
||||
0x3C20 /*036040*/,0x4150 /*040520*/,0x4C55 /*046125*/,0x414E /*040516*/,0x4B4E /*045516*/,0x4840 /*044100*/,0x544F /*052117*/,0x414D /*040515*/,
|
||||
0x4C49 /*046111*/,0x432E /*041456*/,0x4D4F /*046517*/,0x0A3E /*005076*/,0x0A0D /*005015*/,0x000D /*000015*/,0x4F42 /*047502*/,0x544F /*052117*/,
|
||||
0x203E /*020076*/,0x5500 /*052400*/,0x4B4E /*045516*/,0x4F4E /*047516*/,0x4E57 /*047127*/,0x4220 /*041040*/,0x4F4F /*047517*/,0x2054 /*020124*/,
|
||||
0x4544 /*042504*/,0x4956 /*044526*/,0x4543 /*042503*/,0x0D0A /*006412*/,0x2000 /*020000*/,0x2020 /*020040*/,0x2020 /*020040*/,0x4320 /*041440*/,
|
||||
0x4F4C /*047514*/,0x4B43 /*045503*/,0x5420 /*052040*/,0x4349 /*041511*/,0x534B /*051513*/,0x0D0A /*006412*/,0x0000 /*000000*/,0x15C0 /*012700*/,
|
||||
0xC1CA /*140712*/,0x09F7 /*004767*/,0xFD82 /*176602*/,0x0087 /*000207*/,0x0000 /*000000*/,0x15C0 /*012700*/,0xC21C /*141034*/,0x09F7 /*004767*/,
|
||||
0xFD76 /*176566*/,0x0087 /*000207*/,0x0A37 /*005067*/,0xFD5A /*176532*/,0x15C5 /*012705*/,0x1A00 /*015000*/,0x115F /*010537*/,0xFF78 /*177570*/,
|
||||
0x1144 /*010504*/,0x0C84 /*006204*/,0x0A00 /*005000*/,0x1141 /*010501*/,0x7204 /*071004*/,0x1002 /*010002*/,0x7084 /*070204*/,0x60C1 /*060301*/,
|
||||
0x2045 /*020105*/,0x0301 /*001401*/,0x0000 /*000000*/,0x7F0A /*077412*/,0x7F4F /*077517*/,0x15C0 /*012700*/,0xC2CE /*141316*/,0x1DC3 /*016703*/,
|
||||
0xFD30 /*176460*/,0x0A02 /*005002*/,0x7297 /*071227*/,0x0008 /*000010*/,0x65C3 /*062703*/,0x0030 /*000060*/,0x90E0 /*110340*/,0x1083 /*010203*/,
|
||||
0x02F8 /*001370*/,0x09F7 /*004767*/,0xFD32 /*176462*/,0x0087 /*000207*/,0x15C3 /*012703*/,0x7F06 /*077406*/,0x0A02 /*005002*/,0x0A01 /*005001*/,
|
||||
0x15C0 /*012700*/,0x0008 /*000010*/,0x10F1 /*010361*/,0xF4C0 /*172300*/,0x10B1 /*010261*/,0xF4E0 /*172340*/,0x10F1 /*010361*/,0xF4D0 /*172320*/,
|
||||
0x10B1 /*010261*/,0xF4F0 /*172360*/,0x10F1 /*010361*/,0xF480 /*172200*/,0x10B1 /*010261*/,0xF4A0 /*172240*/,0x10F1 /*010361*/,0xF490 /*172220*/,
|
||||
0x10B1 /*010261*/,0xF4B0 /*172260*/,0x10F1 /*010361*/,0xFF80 /*177600*/,0x10B1 /*010261*/,0xFFA0 /*177640*/,0x10F1 /*010361*/,0xFF90 /*177620*/,
|
||||
0x10F1 /*010361*/,0xFFB0 /*177660*/,0x65C2 /*062702*/,0x0080 /*000200*/,0x65C1 /*062701*/,0x0002 /*000002*/,0x7E1D /*077035*/,0x55DF /*052737*/,
|
||||
0xFC00 /*176000*/,0xF4FE /*172376*/,0x55DF /*052737*/,0xFC00 /*176000*/,0xF4BE /*172276*/,0x55DF /*052737*/,0xFC00 /*176000*/,0xFFBE /*177676*/,
|
||||
0x15DF /*012737*/,0x003F /*000077*/,0xF54E /*172516*/,0x15DF /*012737*/,0x0001 /*000001*/,0xFF7A /*177572*/,0x15DF /*012737*/,0x03C0 /*001700*/,
|
||||
0xF4A4 /*172244*/,0x15DF /*012737*/,0x03C0 /*001700*/,0xF4B4 /*172264*/,0x15DF /*012737*/,0x1000 /*010000*/,0xFFFE /*177776*/,0x15C3 /*012703*/,
|
||||
0x4080 /*040200*/,0x15C2 /*012702*/,0xC3C8 /*141710*/,0x14A6 /*012246*/,0x0D93 /*006623*/,0x2097 /*020227*/,0xC46C /*142154*/,0x87FB /*103773*/,
|
||||
0x15F7 /*012767*/,0x4080 /*040200*/,0xFC8A /*176212*/,0x0087 /*000207*/,0x15C0 /*012700*/,0x001F /*000037*/,0x15C1 /*012701*/,0xF800 /*174000*/,
|
||||
0x35DF /*032737*/,0x0001 /*000001*/,0xFF78 /*177570*/,0x030C /*001414*/,0x15C0 /*012700*/,0x0F0F /*007417*/,0x1001 /*010001*/,0x0A41 /*005101*/,
|
||||
0x35DF /*032737*/,0x0002 /*000002*/,0xFF78 /*177570*/,0x0304 /*001404*/,0x15C0 /*012700*/,0x3C73 /*036163*/,0x15C1 /*012701*/,0x3E00 /*037000*/,
|
||||
0x1042 /*010102*/,0xE5C2 /*162702*/,0x0002 /*000002*/,0x45C2 /*042702*/,0x0001 /*000001*/,0x1083 /*010203*/,0x45C3 /*042703*/,0xFFC1 /*177701*/,
|
||||
0x15F3 /*012763*/,0x0001 /*000001*/,0x4000 /*040000*/,0x65C3 /*062703*/,0x0002 /*000002*/,0x15F3 /*012763*/,0x004B /*000113*/,0x4000 /*040000*/,
|
||||
0x1084 /*010204*/,0x7517 /*072427*/,0xFFFA /*177772*/,0x45C4 /*042704*/,0xFF80 /*177600*/,0x15C5 /*012705*/,0x03C0 /*001700*/,0xE105 /*160405*/,
|
||||
0x1084 /*010204*/,0x7517 /*072427*/,0xFFF4 /*177764*/,0x45C4 /*042704*/,0xFFF1 /*177761*/,0x1174 /*010564*/,0xF4A0 /*172240*/,0x1043 /*010103*/,
|
||||
0x74D7 /*072327*/,0xFFF4 /*177764*/,0x45C3 /*042703*/,0xFFF1 /*177761*/,0x20C4 /*020304*/,0x030A /*001412*/,0x1044 /*010104*/,0x7517 /*072427*/,
|
||||
0xFFFA /*177772*/,0x45C4 /*042704*/,0xFF80 /*177600*/,0x15C5 /*012705*/,0x03C0 /*001700*/,0xE105 /*160405*/,0x1173 /*010563*/,0xF4A0 /*172240*/,
|
||||
0x15C4 /*012704*/,0x0003 /*000003*/,0x67C4 /*063704*/,0xFF78 /*177570*/,0x15C3 /*012703*/,0x0002 /*000002*/,0x61C3 /*060703*/,0x004A /*000112*/,
|
||||
0x7F02 /*077402*/,0x1002 /*010002*/,0x0C02 /*006002*/,0x0C41 /*006101*/,0x0C00 /*006000*/,0x01C2 /*000702*/,0x0A03 /*005003*/,0x9481 /*112201*/,
|
||||
0x0365 /*001545*/,0xA057 /*120127*/,0x0020 /*000040*/,0x03FB /*001773*/,0xA057 /*120127*/,0x0052 /*000122*/,0x0305 /*001405*/,0x15C0 /*012700*/,
|
||||
0xC2B3 /*141263*/,0x09F7 /*004767*/,0xFBE2 /*175742*/,0x0087 /*000207*/,0x9481 /*112201*/,0x9480 /*112200*/,0x030E /*001416*/,0xA017 /*120027*/,
|
||||
0x0020 /*000040*/,0x030B /*001413*/,0xA017 /*120027*/,0x0037 /*000067*/,0x0619 /*003031*/,0xE5C0 /*162700*/,0x0030 /*000060*/,0x0516 /*002426*/,
|
||||
0x0CC3 /*006303*/,0x0CC3 /*006303*/,0x0CC3 /*006303*/,0x5003 /*050003*/,0x01F0 /*000760*/,0x0A02 /*005002*/,0x15D2 /*012722*/,0x005F /*000137*/,
|
||||
0x15D2 /*012722*/,0xC000 /*140000*/,0x15D2 /*012722*/,0xC000 /*140000*/,0x0A12 /*005022*/,0xA057 /*120127*/,0x004B /*000113*/,0x033E /*001476*/,
|
||||
0xA057 /*120127*/,0x004C /*000114*/,0x0308 /*001410*/,0xA057 /*120127*/,0x0050 /*000120*/,0x034F /*001517*/,0x15C0 /*012700*/,0xC23F /*141077*/,
|
||||
0x09F7 /*004767*/,0xFB94 /*175624*/,0x0087 /*000207*/,0x0005 /*000005*/,0x00C3 /*000303*/,0x15C1 /*012701*/,0xF900 /*174400*/,0x15F1 /*012761*/,
|
||||
0x000B /*000013*/,0x0004 /*000004*/,0x55C3 /*052703*/,0x0004 /*000004*/,0x10C9 /*010311*/,0x8BC9 /*105711*/,0x80FE /*100376*/,0x8A03 /*105003*/,
|
||||
0x55C3 /*052703*/,0x0008 /*000010*/,0x10C9 /*010311*/,0x8BC9 /*105711*/,0x80FE /*100376*/,0x1C42 /*016102*/,0x0006 /*000006*/,0x45C2 /*042702*/,
|
||||
0x003F /*000077*/,0x0A82 /*005202*/,0x10B1 /*010261*/,0x0004 /*000004*/,0x8A03 /*105003*/,0x55C3 /*052703*/,0x0006 /*000006*/,0x10C9 /*010311*/,
|
||||
0x8BC9 /*105711*/,0x80FE /*100376*/,0x0A31 /*005061*/,0x0002 /*000002*/,0x0A31 /*005061*/,0x0004 /*000004*/,0x15F1 /*012761*/,0xFE00 /*177000*/,
|
||||
0x0006 /*000006*/,0x8A03 /*105003*/,0x55C3 /*052703*/,0x000C /*000014*/,0x10C9 /*010311*/,0x8BC9 /*105711*/,0x80FE /*100376*/,0x45C9 /*042711*/,
|
||||
0x00FF /*000377*/,0x0A02 /*005002*/,0x0A03 /*005003*/,0x0A04 /*005004*/,0x0A05 /*005005*/,0x0A07 /*005007*/,0x0005 /*000005*/,0x00C3 /*000303*/,
|
||||
0x0CC3 /*006303*/,0x0CC3 /*006303*/,0x0CC3 /*006303*/,0x0CC3 /*006303*/,0x0CC3 /*006303*/,0x15C1 /*012701*/,0xFF0A /*177412*/,0x10C9 /*010311*/,
|
||||
0x0A21 /*005041*/,0x15E1 /*012741*/,0xFE00 /*177000*/,0x15E1 /*012741*/,0x0005 /*000005*/,0x0A02 /*005002*/,0x0A03 /*005003*/,0x0A04 /*005004*/,
|
||||
0x0A05 /*005005*/,0x8BC9 /*105711*/,0x80FE /*100376*/,0x8A09 /*105011*/,0x0A07 /*005007*/,0x0005 /*000005*/,0x15C1 /*012701*/,0xFDC0 /*176700*/,
|
||||
0x15F1 /*012761*/,0x0020 /*000040*/,0x0008 /*000010*/,0x10F1 /*010361*/,0x0008 /*000010*/,0x15C9 /*012711*/,0x0011 /*000021*/,0x15F1 /*012761*/,
|
||||
0x1000 /*010000*/,0x001A /*000032*/,0x15F1 /*012761*/,0xFE00 /*177000*/,0x0002 /*000002*/,0x0A31 /*005061*/,0x0004 /*000004*/,0x0A31 /*005061*/,
|
||||
0x0006 /*000006*/,0x0A31 /*005061*/,0x001C /*000034*/,0x15C9 /*012711*/,0x0039 /*000071*/,0x8BC9 /*105711*/,0x80FE /*100376*/,0x8A09 /*105011*/,
|
||||
0x10C0 /*010300*/,0x0A07 /*005007*/]
|
||||
}
|
||||
|
|
@ -1,555 +0,0 @@
|
|||
1 ; BOOT LOADER CODE
|
||||
2 ;
|
||||
3 ; REBASE HIGHER LINK/BOT:140000
|
||||
4 ; WANT PERFORMANCE COUNTER - CLOCK TICKS TO DO SOMETHING?
|
||||
5
|
||||
6 177776 PSW = 177776
|
||||
7 177564 DL11XCSR = 177564
|
||||
8 000064 DL11VEC = 64
|
||||
9
|
||||
10 177546 KW11LKS = 177546
|
||||
11 000100 KW11VEC = 100
|
||||
12
|
||||
13 .ASECT
|
||||
14 140000 .=140000
|
||||
15 140000 000005 START: RESET ; 140000
|
||||
16 140002 005037 177776 CLR @#PSW
|
||||
17 140006 012706 140000 MOV #START,SP
|
||||
18 140012 005037 177564 CLR @#DL11XCSR ; CLEAR THE XCSR
|
||||
19 140016 012700 141121 MOV #BANNER,R0
|
||||
20 140022 004767 140150' JSR PC,PRINT
|
||||
21 140026 012737 140124 000100 MOV #CLKAST,@#KW11VEC
|
||||
22 140034 012737 000340 000102 MOV #340,@#KW11VEC+2
|
||||
23 140042 052737 000100 177546 BIS #100,@#KW11LKS ; SET CLOCK TICKING
|
||||
24
|
||||
25 140050 012700 141254 MOV #PROMPT,R0
|
||||
26 140054 004767 140150' JSR PC,PRINT
|
||||
27 140060 162706 000256 SUB #256,SP
|
||||
28 140064 010600 MOV SP,R0
|
||||
29 140066 004767 140244' JSR PC,INPUT
|
||||
30 140072 005000 CLR R0
|
||||
31 140074 000001 1$: WAIT
|
||||
32 140076 005200 INC R0
|
||||
33 140100 005767 140120' TST LGHTON
|
||||
34 140104 001773 BEQ 1$
|
||||
35 140106 012746 054000 MOV #054000,-(SP) ; SUPER PRIORITY 0 ALT REG
|
||||
36 140112 016746 140120' MOV LGHTON,-(SP) ; CALL SUPER LOOP START
|
||||
37 140116 000002 RTI
|
||||
38
|
||||
39 140120 000000 LGHTON: .WORD 0
|
||||
40 140122 000000 CLKTIC: .WORD 0
|
||||
41
|
||||
42 CLKAST: ; 140124
|
||||
43 140124 005267 140122' INC CLKTIC
|
||||
44 140130 000002 RTI
|
||||
45
|
||||
46 ONECHR:
|
||||
47 140132 105737 177564 TSTB @#DL11XCSR ; 140132
|
||||
48 140136 100375 BPL ONECHR
|
||||
49 140140 110037 177566 MOVB R0,@#177566
|
||||
50 140144 000207 RTS PC
|
||||
51
|
||||
52 140146 000000 PRTPTR: .WORD 0 ; 140146
|
||||
53
|
||||
54 PRINT: ; 140150
|
||||
55 140150 132737 000100 177564 BITB #100,@#DL11XCSR
|
||||
56 140156 001374 BNE PRINT
|
||||
57 140160 010067 140146' MOV R0,PRTPTR
|
||||
58 140164 012737 140210 000064 MOV #PRTAST,@#DL11VEC
|
||||
59 140172 012737 000200 000066 MOV #200,@#DL11VEC+2
|
||||
60 140200 152737 000100 177564 BISB #100,@#DL11XCSR
|
||||
61 140206 000207 RTS PC
|
||||
62
|
||||
63 PRTAST: ; 140210
|
||||
64 140210 105777 140146' TSTB @PRTPTR
|
||||
65 140214 001406 BEQ 2$
|
||||
66 140216 117737 140146' 177566 MOVB @PRTPTR,@#177566
|
||||
67 140224 005267 140146' INC PRTPTR
|
||||
68 140230 000002 RTI
|
||||
69 140232 105037 177564 2$: CLRB @#177564
|
||||
70 140236 000002 RTI
|
||||
71
|
||||
72 140240 000000 BUFFER: .WORD 0 ; INPUT BUFFER POINTER
|
||||
73 140242 000000 LENGTH: .WORD 0 ; INPUT BUFFER LENGTH
|
||||
74
|
||||
75 INPUT:
|
||||
76 140244 010067 140240' MOV R0,BUFFER ; 140244
|
||||
77 140250 005067 140242' CLR LENGTH
|
||||
78 140254 012737 140300 000060 MOV #INPAST,@#60
|
||||
79 140262 012737 000200 000062 MOV #200,@#62
|
||||
80 140270 152737 000100 177560 BISB #100,@#177560
|
||||
81 140276 000207 RTS PC
|
||||
82
|
||||
83 INPAST: ; 140300
|
||||
84 140300 010046 MOV R0,-(SP)
|
||||
85 140302 113700 177562 MOVB @#177562,R0
|
||||
86 140306 120027 000015 CMPB R0,#15
|
||||
87 140312 001455 BEQ 7$ ; CARRIAGE RETURN
|
||||
88 140314 120027 000177 CMPB R0,#127.
|
||||
89 140320 001403 BEQ 2$ ; <DEL>
|
||||
90 140322 120027 000010 CMPB R0,#10
|
||||
91 140326 001012 BNE 4$ ; BACK SPACE
|
||||
92 140330 005767 140242' 2$: TST LENGTH ; DATA IN BUFFER?
|
||||
93 140334 001406 BEQ 3$
|
||||
94 140336 005367 140242' DEC LENGTH ; LENGTH
|
||||
95 140342 012700 141037 MOV #DEL,R0
|
||||
96 140346 004767 140150' JSR PC,PRINT
|
||||
97 140352 000453 3$: BR 9$
|
||||
98 140354 120027 000040 4$: CMPB R0,#40
|
||||
99 140360 002450 BLT 9$ ; BELOW SPACE
|
||||
100 140362 120027 000177 CMPB R0,#177
|
||||
101 140366 002045 BGE 9$ ; SKIP STUFF TOO BIG
|
||||
102 140370 004767 140132' JSR PC,ONECHR ; ECHO CHAR
|
||||
103 140374 120027 000172 CMPB R0,#172
|
||||
104 140400 003005 BGT 5$ ; ABOVE Z
|
||||
105 140402 120027 000141 CMPB R0,#141
|
||||
106 140406 002402 BLT 5$ ; BELOW A
|
||||
107 140410 142700 000040 BICB #40,R0 ; CONVERT TO UPPER CASE
|
||||
108 140414 026727 140242' 000254 5$: CMP LENGTH,#254
|
||||
109 140422 002027 BGE 9$
|
||||
110 140424 110046 MOVB R0,-(SP)
|
||||
111 140426 016700 140240' MOV BUFFER,R0
|
||||
112 140432 066700 140242' ADD LENGTH,R0
|
||||
113 140436 112610 MOVB (SP)+,(R0)
|
||||
114 140440 005267 140242' INC LENGTH
|
||||
115 140444 000416 BR 9$
|
||||
116
|
||||
117 140446 016700 140240' 7$: MOV BUFFER,R0
|
||||
118 140452 066700 140242' ADD LENGTH,R0
|
||||
119 140456 105010 CLRB (R0)
|
||||
120 140460 012737 140506 000240 MOV #CMD,@#240 ; CALL CMD AT PRIORITY 2
|
||||
121 140466 012737 000100 000242 MOV #100,@#242
|
||||
122 140474 012737 002000 177772 MOV #2000,@#177772
|
||||
123 140502 012600 9$: MOV (SP)+,R0
|
||||
124 140504 000002 RTI
|
||||
125
|
||||
126 CMD: ; 140506
|
||||
127 140506 005037 177772 CLR @#177772 ; NO MORE PIR CALLS
|
||||
128 140512 010046 MOV R0,-(SP)
|
||||
129 140514 010146 MOV R1,-(SP)
|
||||
130 140516 010246 MOV R2,-(SP)
|
||||
131 140520 010346 MOV R3,-(SP)
|
||||
132 140522 010446 MOV R4,-(SP)
|
||||
133 140524 012700 141034 MOV #EOL,R0
|
||||
134 140530 004767 140150' JSR PC,PRINT
|
||||
135 140534 132737 000100 177564 1$: BITB #100,@#177564
|
||||
136 140542 001374 BNE 1$
|
||||
137 140544 005004 CLR R4
|
||||
138 140546 012703 141043 MOV #CMDLST,R3 ; CMD LIST
|
||||
139 140552 112300 3$: MOVB (R3)+,R0
|
||||
140 140554 001431 BEQ 13$
|
||||
141 140556 016702 140240' MOV BUFFER,R2 ; USER CMD
|
||||
142 140562 112201 4$: MOVB (R2)+,R1
|
||||
143 140564 001431 BEQ 15$ ; NULL COMMAND?
|
||||
144 140566 120127 000040 CMPB R1,#40
|
||||
145 140572 001773 BEQ 4$ ; SKIP SPACE
|
||||
146 140574 120001 5$: CMPB R0,R1
|
||||
147 140576 001010 BNE 7$
|
||||
148 140600 112300 MOVB (R3)+,R0
|
||||
149 140602 001412 BEQ 9$
|
||||
150 140604 112201 MOVB (R2)+,R1
|
||||
151 140606 001410 BEQ 9$
|
||||
152 140610 120127 000040 CMPB R1,#40
|
||||
153 140614 001367 BNE 5$
|
||||
154 140616 000404 BR 9$
|
||||
155 140620 112300 7$: MOVB (R3)+,R0
|
||||
156 140622 001376 BNE 7$
|
||||
157 140624 005204 INC R4
|
||||
158 140626 000751 BR 3$
|
||||
159 140630 006304 9$: ASL R4
|
||||
160 140632 004774 140700 JSR PC,@CMDTBL(R4) ; EXECUTE
|
||||
161 140636 000404 BR 15$
|
||||
162
|
||||
163 140640 012700 141077 13$: MOV #UNKMSG,R0
|
||||
164 140644 004767 140150' JSR PC,PRINT
|
||||
165
|
||||
166 140650 005067 140242' 15$: CLR LENGTH
|
||||
167 140654 012700 141254 MOV #PROMPT,R0
|
||||
168 140660 004767 140150' JSR PC,PRINT
|
||||
169 140664 012604 MOV (SP)+,R4
|
||||
170 140666 012603 MOV (SP)+,R3
|
||||
171 140670 012602 MOV (SP)+,R2
|
||||
172 140672 012601 MOV (SP)+,R1
|
||||
173 140674 012600 MOV (SP)+,R0
|
||||
174 140676 000002 RTI
|
||||
175
|
||||
176
|
||||
177 140700 142154 141350 141364 CMDTBL: .WORD BOOT,HALT,TEST,LIGHTS,HELP
|
||||
140706 141470 141336
|
||||
178 140712 103 117 115 HLPMSG: .ASCIZ 'COMMANDS ARE BOOT, HALT, LIGHTS, TEST AND HELP'<15><12>'BOOT DEVICES ARE RK? RL? OR RP?'<15><12>
|
||||
140715 115 101 116
|
||||
140720 104 123 040
|
||||
140723 101 122 105
|
||||
140726 040 102 117
|
||||
140731 117 124 054
|
||||
140734 040 110 101
|
||||
140737 114 124 054
|
||||
140742 040 114 111
|
||||
140745 107 110 124
|
||||
140750 123 054 040
|
||||
140753 124 105 123
|
||||
140756 124 040 101
|
||||
140761 116 104 040
|
||||
140764 110 105 114
|
||||
140767 120 015 012
|
||||
140772 102 117 117
|
||||
140775 124 040 104
|
||||
141000 105 126 111
|
||||
141003 103 105 123
|
||||
141006 040 101 122
|
||||
141011 105 040 122
|
||||
141014 113 077 040
|
||||
141017 122 114 077
|
||||
141022 040 117 122
|
||||
141025 040 122 120
|
||||
141030 077 015 012
|
||||
141033 000
|
||||
179 141034 015 012 000 EOL: .BYTE 15,12,0
|
||||
180 141037 010 040 010 DEL: .BYTE 10,40,10,0
|
||||
141042 000
|
||||
181 141043 102 117 117 CMDLST: .ASCIZ 'BOOT'
|
||||
141046 124 000
|
||||
182 141050 110 101 114 .ASCIZ 'HALT'
|
||||
141053 124 000
|
||||
183 141055 124 105 123 .ASCIZ 'TEST'
|
||||
141060 124 000
|
||||
184 141062 114 111 107 .ASCIZ 'LIGHTS'
|
||||
141065 110 124 123
|
||||
141070 000
|
||||
185 141071 110 105 114 .ASCIZ 'HELP'
|
||||
141074 120 000
|
||||
186 141076 000 .BYTE 0
|
||||
187 141077 125 116 113 UNKMSG: .ASCIZ 'UNKNOWN COMMAND'<12><15>
|
||||
141102 116 117 127
|
||||
141105 116 040 103
|
||||
141110 117 115 115
|
||||
141113 101 116 104
|
||||
141116 012 015 000
|
||||
188 141121 120 104 120 BANNER: .ASCIZ 'PDP-11 BOOT TEST FOR PDPjs'<12><15>'ADAPTED FROM CODE BY PAUL NANKERVIS <PAULNANK@HOTMAIL.COM>'<12><15><12><15>
|
||||
141124 055 061 061
|
||||
141127 040 102 117
|
||||
141132 117 124 040
|
||||
141135 124 105 123
|
||||
141140 124 040 106
|
||||
141143 117 122 040
|
||||
141146 120 104 120
|
||||
141151 152 163 012
|
||||
141154 015 101 104
|
||||
141157 101 120 124
|
||||
141162 105 104 040
|
||||
141165 106 122 117
|
||||
141170 115 040 103
|
||||
141173 117 104 105
|
||||
141176 040 102 131
|
||||
141201 040 120 101
|
||||
141204 125 114 040
|
||||
141207 116 101 116
|
||||
141212 113 105 122
|
||||
141215 126 111 123
|
||||
141220 040 074 120
|
||||
141223 101 125 114
|
||||
141226 116 101 116
|
||||
141231 113 100 110
|
||||
141234 117 124 115
|
||||
141237 101 111 114
|
||||
141242 056 103 117
|
||||
141245 115 076 012
|
||||
141250 015 012 015
|
||||
141253 000
|
||||
189 141254 102 117 117 PROMPT: .ASCIZ 'BOOT> '
|
||||
141257 124 076 040
|
||||
141262 000
|
||||
190 141263 125 116 113 BADBOO: .ASCIZ 'UNKNOWN BOOT DEVICE'<12><15>
|
||||
141266 116 117 127
|
||||
141271 116 040 102
|
||||
141274 117 117 124
|
||||
141277 040 104 105
|
||||
141302 126 111 103
|
||||
141305 105 012 015
|
||||
141310 000
|
||||
191 141311 040 040 040 PERMSG: .ASCIZ ' CLOCK TICKS'<12><15>
|
||||
141314 040 040 040
|
||||
141317 103 114 117
|
||||
141322 103 113 040
|
||||
141325 124 111 103
|
||||
141330 113 123 012
|
||||
141333 015 000
|
||||
192
|
||||
193 141335 000 .EVEN
|
||||
194
|
||||
195 HELP: ; 141244
|
||||
196 141336 012700 140712 MOV #HLPMSG,R0
|
||||
197 141342 004767 140150' JSR PC,PRINT
|
||||
198 141346 000207 RTS PC
|
||||
199
|
||||
200 HALT: ; 141260
|
||||
201 141350 000000 HALT
|
||||
202 141352 012700 141034 MOV #EOL,R0
|
||||
203 141356 004767 140150' JSR PC,PRINT
|
||||
204 141362 000207 RTS PC
|
||||
205
|
||||
206 TEST: ; 141272
|
||||
207 141364 005067 140122' CLR CLKTIC
|
||||
208
|
||||
209 141370 012705 015000 MOV #15000,R5
|
||||
210 141374 010537 177570 10$: MOV R5,@#177570 ; DISPLAY
|
||||
211 141400 010504 MOV R5,R4
|
||||
212 141402 006204 ASR R4
|
||||
213 141404 005000 15$: CLR R0
|
||||
214 141406 010501 MOV R5,R1
|
||||
215 141410 071004 DIV R4,R0
|
||||
216 141412 010002 MOV R0,R2
|
||||
217 141414 070204 MUL R4,R2
|
||||
218 141416 060301 ADD R3,R1
|
||||
219 141420 020105 CMP R1,R5
|
||||
220 141422 001401 BEQ 20$
|
||||
221 141424 000000 HALT
|
||||
222 141426 077412 20$: SOB R4,15$
|
||||
223 141430 077517 SOB R5,10$
|
||||
224
|
||||
225 141432 012700 141316 MOV #PERMSG+5,R0
|
||||
226 141436 016703 140122' MOV CLKTIC,R3
|
||||
227
|
||||
228 141442 005002 25$: CLR R2 ; 141350
|
||||
229 141444 071227 000010 DIV #10,R2
|
||||
230 141450 062703 000060 ADD #'0,R3
|
||||
231 141454 110340 MOVB R3,-(R0)
|
||||
232 141456 010203 MOV R2,R3
|
||||
233 141460 001370 BNE 25$
|
||||
234
|
||||
235 141462 004767 140150' JSR PC,PRINT
|
||||
236 141466 000207 RTS PC
|
||||
237
|
||||
238
|
||||
239 177572 MMR0=177572
|
||||
240 177574 MMR1=177574
|
||||
241 177576 MMR2=177576
|
||||
242 172516 MMR3=172516
|
||||
243
|
||||
244 LIGHTS: ; 141376
|
||||
245 141470 012703 077406 MOV #77406,R3 ; DEFAULT PDR
|
||||
246 141474 005002 CLR R2
|
||||
247 141476 005001 CLR R1
|
||||
248 141500 012700 000010 MOV #8.,R0
|
||||
249 141504 010361 172300 1$: MOV R3,172300(R1) ; KERNEL I PDR
|
||||
250 141510 010261 172340 MOV R2,172340(R1) ; KERNEL I PAR
|
||||
251 141514 010361 172320 MOV R3,172320(R1) ; KERNEL D PDR
|
||||
252 141520 010261 172360 MOV R2,172360(R1) ; KERNEL D PAR
|
||||
253 141524 010361 172200 MOV R3,172200(R1) ; SUPER I PDR
|
||||
254 141530 010261 172240 MOV R2,172240(R1) ; SUPER I PAR
|
||||
255 141534 010361 172220 MOV R3,172220(R1) ; SUPER D PDR
|
||||
256 141540 010261 172260 MOV R2,172260(R1) ; SUPER D PAR
|
||||
257 141544 010361 177600 MOV R3,177600(R1) ; USER I PDR
|
||||
258 141550 010261 177640 MOV R2,177640(R1) ; USER I PAR
|
||||
259 141554 010361 177620 MOV R3,177620(R1) ; USER D PDR
|
||||
260 141560 010361 177660 MOV R3,177660(R1) ; USER D PAR
|
||||
261 141564 062702 000200 ADD #200,R2
|
||||
262 141570 062701 000002 ADD #2,R1
|
||||
263 141574 077035 SOB R0,1$
|
||||
264 141576 052737 176000 172376 BIS #176000,@#172376 ; KERNEL D POINTS TO I/O SPACE
|
||||
265 141604 052737 176000 172276 BIS #176000,@#172276 ; SUPER D POINTS TO I/O SPACE
|
||||
266 141612 052737 176000 177676 BIS #176000,@#177676 ; USER D POINTS TO I/O SPACE
|
||||
267 141620 012737 000077 172516 MOV #77,@#MMR3 ; 77 FOR 22 BIT
|
||||
268 141626 012737 000001 177572 MOV #1,@#MMR0
|
||||
269
|
||||
270 141634 012737 001700 172244 MOV #1700,@#172244 ; BASE SUPER I (PAR 2) #40000 AT #170000
|
||||
271 141642 012737 001700 172264 MOV #1700,@#172264 ; BASE SUPER D (PAR 2) #40000 AT #170000
|
||||
272 141650 012737 010000 177776 MOV #010000,@#177776 ; SET PM TO SUPER
|
||||
273
|
||||
274 141656 012703 040200 MOV #40200,R3 ; SUPER CODE ADDRESS
|
||||
275 141662 012702 141710 MOV #SUPERS,R2 ; ADDRESS SUPER CODE
|
||||
276 141666 012246 10$: MOV (R2)+,-(SP)
|
||||
277 141670 006623 MTPI (R3)+
|
||||
278 141672 020227 142154 CMP R2,#SUPERE
|
||||
279 141676 103773 BLO 10$
|
||||
280
|
||||
281 141700 012767 040200 140120' MOV #40200,LGHTON ; CHANGE IDLE TASK
|
||||
282 141706 000207 RTS PC
|
||||
283
|
||||
284 ;
|
||||
285 ; TO BE COPIED TO SUPER #40200 AT PHYSICAL #170000
|
||||
286 ; #40000 TO #40200 FOR WAIT & JMP INSTRUCTIONS
|
||||
287 ;
|
||||
288 SUPERS: ; 141616
|
||||
289 141710 012700 000037 MOV #37,R0 ; LOAD PATTERN
|
||||
290 141714 012701 174000 MOV #174000,R1
|
||||
291 141720 032737 000001 177570 BIT #1,@#177570
|
||||
292 141726 001414 BEQ 10$
|
||||
293 141730 012700 007417 MOV #7417,R0
|
||||
294 141734 010001 MOV R0,R1
|
||||
295 141736 005101 COM R1
|
||||
296 141740 032737 000002 177570 BIT #2,@#177570
|
||||
297 141746 001404 BEQ 10$
|
||||
298 141750 012700 036163 MOV #36163,R0
|
||||
299 141754 012701 037000 MOV #37000,R1
|
||||
300 141760 010102 10$: MOV R1,R2
|
||||
301 141762 162702 000002 SUB #2,R2
|
||||
302 141766 042702 000001 BIC #1,R2 ; WAIT ADDRESS
|
||||
303 141772 010203 MOV R2,R3
|
||||
304 141774 042703 177701 BIC #177701,R3 ; ADDRESS OFFSET
|
||||
305 142000 012763 000001 040000 MOV #0000001,40000(R3) ; WRITE WAIT
|
||||
306 142006 062703 000002 ADD #2,R3
|
||||
307 142012 012763 000113 040000 MOV #0000113,40000(R3) ; WRITE JMP (R3)
|
||||
308
|
||||
309 142020 010204 MOV R2,R4
|
||||
310 142022 072427 177772 ASH #-6,R4
|
||||
311 142026 042704 177600 BIC #177600,R4
|
||||
312 142032 012705 001700 MOV #1700,R5
|
||||
313 142036 160405 SUB R4,R5 ; PAR ADDRESS BASE FOR WAIT
|
||||
314 142040 010204 MOV R2,R4
|
||||
315 142042 072427 177764 ASH #-12.,R4
|
||||
316 142046 042704 177761 BIC #177761,R4 ; PAR SELECT OFFSET
|
||||
317 142052 010564 172240 MOV R5,172240(R4) ; SUPER I SPACE
|
||||
318
|
||||
319 142056 010103 MOV R1,R3
|
||||
320 142060 072327 177764 ASH #-12.,R3
|
||||
321 142064 042703 177761 BIC #177761,R3 ; PAR SELECT OFFSET
|
||||
322 142070 020304 CMP R3,R4 ; SAME PAR
|
||||
323 142072 001412 BEQ 30$
|
||||
324 142074 010104 MOV R1,R4
|
||||
325 142076 072427 177772 ASH #-6,R4
|
||||
326 142102 042704 177600 BIC #177600,R4
|
||||
327 142106 012705 001700 MOV #1700,R5
|
||||
328 142112 160405 SUB R4,R5 ; PAR ADDRESS BASE FOR JMP
|
||||
329 142114 010563 172240 MOV R5,172240(R3) ; SUPER I SPACE
|
||||
330 30$:
|
||||
331 142120 012704 000003 MOV #3,R4
|
||||
332 142124 063704 177570 ADD @#177570,R4
|
||||
333 142130 012703 000002 MOV #2,R3
|
||||
334 142134 060703 ADD PC,R3
|
||||
335 142136 000112 40$: JMP (R2)
|
||||
336 142140 077402 SOB R4,40$
|
||||
337 142142 010002 MOV R0,R2
|
||||
338 142144 006002 ROR R2 ; ROTATE PATTERN
|
||||
339 142146 006101 ROL R1
|
||||
340 142150 006000 ROR R0
|
||||
341 142152 000702 BR 10$
|
||||
342 SUPERE:
|
||||
343
|
||||
344 BOOT: ; 142062
|
||||
345 142154 005003 CLR R3 ; UNIT
|
||||
346 142156 112201 1$: MOVB (R2)+,R1
|
||||
347 142160 001545 BEQ BOOTRK ; DEFAULT DEVICE IS RK0
|
||||
348 142162 120127 000040 CMPB R1,#40
|
||||
349 142166 001773 BEQ 1$
|
||||
350 142170 120127 000122 CMPB R1,#'R
|
||||
351 142174 001405 BEQ 5$
|
||||
352
|
||||
353 142176 012700 141263 MOV #BADBOO,R0
|
||||
354 142202 004767 140150' JSR PC,PRINT
|
||||
355 142206 000207 RTS PC
|
||||
356
|
||||
357 142210 112201 5$: MOVB (R2)+,R1 ; HOPEFULLY K, L OR P
|
||||
358 142212 112200 7$: MOVB (R2)+,R0 ; DIGIT
|
||||
359 142214 001416 BEQ 9$
|
||||
360 142216 120027 000040 CMPB R0,#40
|
||||
361 142222 001413 BEQ 9$
|
||||
362 142224 120027 000067 CMPB R0,#'7
|
||||
363 142230 003031 BGT 11$
|
||||
364 142232 162700 000060 SUB #'0,R0
|
||||
365 142236 002426 BLT 11$
|
||||
366 142240 006303 ASL R3
|
||||
367 142242 006303 ASL R3
|
||||
368 142244 006303 ASL R3
|
||||
369 142246 050003 BIS R0,R3 ; PUT DIGIT INTO UNIT
|
||||
370 142250 000760 BR 7$
|
||||
371 142252 005002 9$: CLR R2
|
||||
372 142254 012722 000137 MOV #137,(R2)+
|
||||
373 142260 012722 140000 MOV #START,(R2)+
|
||||
374 142264 012722 140000 MOV #START,(R2)+
|
||||
375 142270 005022 CLR (R2)+
|
||||
376 142272 120127 000113 CMPB R1,#'K
|
||||
377 142276 001476 BEQ BOOTRK
|
||||
378 142300 120127 000114 CMPB R1,#'L
|
||||
379 142304 001410 BEQ BOOTRL
|
||||
380 142306 120127 000120 CMPB R1,#'P
|
||||
381 142312 001517 BEQ BOOTRP
|
||||
382
|
||||
383 142314 012700 141077 11$: MOV #UNKMSG,R0
|
||||
384 142320 004767 140150' JSR PC,PRINT
|
||||
385 142324 000207 RTS PC
|
||||
386
|
||||
387 174400 RLCS=174400
|
||||
388 BOOTRL: ; 142234
|
||||
389 142326 000005 RESET
|
||||
390 142330 000303 SWAB R3 ; UNIT NUMBER
|
||||
391 142332 012701 174400 MOV #RLCS,R1 ; CSR
|
||||
392 142336 012761 000013 000004 MOV #13,4(R1) ; CLR ERR
|
||||
393 142344 052703 000004 BIS #4,R3 ; UNIT+GSTAT
|
||||
394 142350 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
395 142352 105711 TSTB (R1) ; WAIT
|
||||
396 142354 100376 BPL .-2
|
||||
397 142356 105003 CLRB R3
|
||||
398 142360 052703 000010 BIS #10,R3 ; UNIT+RDHDR
|
||||
399 142364 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
400 142366 105711 TSTB (R1) ; WAIT
|
||||
401 142370 100376 BPL .-2
|
||||
402 142372 016102 000006 MOV 6(R1),R2 ; GET HDR
|
||||
403 142376 042702 000077 BIC #77,R2 ; CLR SECTOR
|
||||
404 142402 005202 INC R2 ; MAGIC BIT
|
||||
405 142404 010261 000004 MOV R2,4(R1) ; SEEK TO 0
|
||||
406 142410 105003 CLRB R3
|
||||
407 142412 052703 000006 BIS #6,R3 ; UNIT+SEEK
|
||||
408 142416 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
409 142420 105711 TSTB (R1) ; WAIT
|
||||
410 142422 100376 BPL .-2
|
||||
411 142424 005061 000002 CLR 2(R1) ; CLR BA
|
||||
412 142430 005061 000004 CLR 4(R1) ; CLR DA
|
||||
413 142434 012761 177000 000006 MOV #-512.,6(R1) ; SET WC
|
||||
414 142442 105003 CLRB R3
|
||||
415 142444 052703 000014 BIS #14,R3 ; UNIT+READ
|
||||
416 142450 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
417 142452 105711 TSTB (R1) ; WAIT
|
||||
418 142454 100376 BPL .-2
|
||||
419 142456 042711 000377 BIC #377,(R1)
|
||||
420 142462 005002 CLR R2
|
||||
421 142464 005003 CLR R3
|
||||
422 142466 005004 CLR R4
|
||||
423 142470 005005 CLR R5
|
||||
424 142472 005007 CLR PC
|
||||
425
|
||||
426 177412 RKDA=177412
|
||||
427 000005 READGO=5
|
||||
428 BOOTRK:
|
||||
429 142474 000005 RESET ; 142402
|
||||
430 142476 000303 SWAB R3 ; UNIT NUMBER
|
||||
431 142500 006303 ASL R3
|
||||
432 142502 006303 ASL R3
|
||||
433 142504 006303 ASL R3
|
||||
434 142506 006303 ASL R3
|
||||
435 142510 006303 ASL R3
|
||||
436 142512 012701 177412 MOV #RKDA,R1 ; CSR
|
||||
437 142516 010311 MOV R3,(R1) ; LOAD DA
|
||||
438 142520 005041 CLR -(R1) ; CLEAR BA
|
||||
439 142522 012741 177000 MOV #-256.*2,-(R1) ; LOAD WC
|
||||
440 142526 012741 000005 MOV #READGO,-(R1) ; READ & GO
|
||||
441 142532 005002 CLR R2
|
||||
442 142534 005003 CLR R3
|
||||
443 142536 005004 CLR R4
|
||||
444 142540 005005 CLR R5
|
||||
445 142542 105711 TSTB (R1)
|
||||
446 142544 100376 BPL .-2
|
||||
447 142546 105011 CLRB (R1)
|
||||
448 142550 005007 CLR PC
|
||||
449
|
||||
450 176700 RPCSR=0176700
|
||||
451 BOOTRP: ; 142460
|
||||
452 142552 000005 RESET
|
||||
453 142554 012701 176700 MOV #RPCSR, R1
|
||||
454 142560 012761 000040 000010 MOV #0000040, 10(R1) ; RESET
|
||||
455 142566 010361 000010 MOV R3, 10(R1) ; SET UNIT
|
||||
456 142572 012711 000021 MOV #0000021, (R1) ; PACK ACK
|
||||
457 142576 012761 010000 000032 MOV #0010000, 32(R1) ; 16B MODE
|
||||
458 142604 012761 177000 000002 MOV #-512., 2(R1) ; SET WC
|
||||
459 142612 005061 000004 CLR 4(R1) ; CLR BA
|
||||
460 142616 005061 000006 CLR 6(R1) ; CLR DA
|
||||
461 142622 005061 000034 CLR 34(R1) ; CLR CYL
|
||||
462 142626 012711 000071 MOV #0000071, (R1) ; READ
|
||||
463 142632 105711 TSTB (R1) ; WAIT
|
||||
464 142634 100376 BPL .-2
|
||||
465 142636 105011 CLRB (R1)
|
||||
466 142640 010300 MOV R3,R0
|
||||
467 142642 005007 CLR PC
|
||||
468
|
||||
469 .END START
|
||||
469
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
#
|
||||
# Don't have macro11? Make yourself a copy from https://github.com/shattered/macro11
|
||||
#
|
||||
|
||||
all: BOOTTEST.json
|
||||
|
||||
BOOTTEST.lst: BOOTTEST.mac
|
||||
macro11 BOOTTEST.mac -l BOOTTEST.lst
|
||||
|
||||
BOOTTEST.json: BOOTTEST.lst
|
||||
node ../../../../modules/filedump/bin/filedump --file=BOOTTEST.lst --format=octal --output=BOOTTEST.json --overwrite
|
||||
Loading…
Reference in a new issue