Fixed MMR1/MMR2 updates, and synced boot monitor code with http://skn.noip.me/pdp11/boot.mac
This commit is contained in:
parent
7342ea254e
commit
9d67f243ef
9 changed files with 1401 additions and 809 deletions
|
|
@ -1,8 +1,9 @@
|
|||
{"load":0xC000/*140000*/,"exec":0xC000/*140000*/,
|
||||
{"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*/,
|
||||
0xC25E/*141136*/,0x09F7/*004767*/,0x0052/*000122*/,0x15DF/*012737*/,0xC054/*140124*/,0x0040/*000100*/,0x15DF/*012737*/,0x00E0/*000340*/,
|
||||
0x0042/*000102*/,0x55DF/*052737*/,0x0040/*000100*/,0xFF66/*177546*/,0x15C0/*012700*/,0xC276/*141166*/,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*/,
|
||||
|
|
@ -14,76 +15,101 @@
|
|||
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*/,
|
||||
0xFFC0/*177700*/,0x15C0/*012700*/,0xC227/*141047*/,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*/,
|
||||
0x10E6/*010346*/,0x1126/*010446*/,0x15C0/*012700*/,0xC224/*141044*/,0x09F7/*004767*/,0xFF0C/*177414*/,0xB5DF/*132737*/,0x0040/*000100*/,
|
||||
0xFF74/*177564*/,0x02FC/*001374*/,0x0A04/*005004*/,0x15C3/*012703*/,0xC22B/*141053*/,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*/,
|
||||
0x15C0/*012700*/,0xC24C/*141114*/,0x09F7/*004767*/,0xFEC0/*177300*/,0x0A37/*005067*/,0xFEF6/*177366*/,0x15C0/*012700*/,0xC276/*141166*/,
|
||||
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*/,
|
||||
0xC5AE/*142656*/,0xC2C4/*141304*/,0xC2D0/*141320*/,0xC316/*141426*/,0xC47A/*142172*/,0xC2BA/*141272*/,0x4F43/*047503*/,0x4D4D/*046515*/,
|
||||
0x4E41/*047101*/,0x5344/*051504*/,0x4120/*040440*/,0x4552/*042522*/,0x4220/*041040*/,0x4F4F/*047517*/,0x2C54/*026124*/,0x4820/*044040*/,
|
||||
0x4C41/*046101*/,0x2C54/*026124*/,0x5420/*052040*/,0x5345/*051505*/,0x2C54/*026124*/,0x4420/*042040*/,0x4149/*040511*/,0x2C47/*026107*/,
|
||||
0x4C20/*046040*/,0x4749/*043511*/,0x5448/*052110*/,0x2053/*020123*/,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*/,0x4944/*044504*/,0x4741/*043501*/,0x4C00/*046000*/,
|
||||
0x4749/*043511*/,0x5448/*052110*/,0x0053/*000123*/,0x4548/*042510*/,0x504C/*050114*/,0x0000/*000000*/,0x4E55/*047125*/,0x4E4B/*047113*/,
|
||||
0x574F/*053517*/,0x204E/*020116*/,0x4F43/*047503*/,0x4D4D/*046515*/,0x4E41/*047101*/,0x0A44/*005104*/,0x000D/*000015*/,0x4450/*042120*/,
|
||||
0x2D50/*026520*/,0x3131/*030461*/,0x4D20/*046440*/,0x4E4F/*047117*/,0x5449/*052111*/,0x524F/*051117*/,0x5620/*053040*/,0x2E31/*027061*/,
|
||||
0x0A30/*005060*/,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*/,0x2000/*020000*/,0x2020/*020040*/,0x2020/*020040*/,0x4920/*044440*/,0x4554/*042524*/,
|
||||
0x4152/*040522*/,0x4954/*044524*/,0x4E4F/*047117*/,0x0A53/*005123*/,0x000D/*000015*/,0x15C0/*012700*/,0xC1CC/*140714*/,0x09F7/*004767*/,
|
||||
0xFDA6/*176646*/,0x0087/*000207*/,0x0000/*000000*/,0x15C0/*012700*/,0xC224/*141044*/,0x09F7/*004767*/,0xFD9A/*176632*/,0x0087/*000207*/,
|
||||
0x0A37/*005067*/,0xFD7E/*176576*/,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*/,
|
||||
0x0000/*000000*/,0x7F0A/*077412*/,0x7F4F/*077517*/,0x15C0/*012700*/,0xC298/*141230*/,0x1DC3/*016703*/,0xFD54/*176524*/,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*/]
|
||||
0xFD56/*176526*/,0x0087/*000207*/,0x0000/*000000*/,0x0A37/*005067*/,0xFFFA/*177772*/,0x0A37/*005067*/,0xFD34/*176464*/,0x0A05/*005005*/,
|
||||
0x8104/*100404*/,0x8503/*102403*/,0x8202/*101002*/,0x0501/*002401*/,0x8301/*101401*/,0x0000/*000000*/,0x0AC5/*005305*/,0x8003/*100003*/,
|
||||
0x0302/*001402*/,0x0401/*002001*/,0x0701/*003401*/,0x0000/*000000*/,0x0C05/*006005*/,0x8402/*102002*/,0x8601/*103001*/,0x0201/*001001*/,
|
||||
0x0000/*000000*/,0x95DF/*112737*/,0x000F/*000017*/,0xFFFE/*177776*/,0x8004/*100004*/,0x8403/*102003*/,0x0502/*002402*/,0x8201/*101001*/,
|
||||
0x8101/*100401*/,0x0000/*000000*/,0x15C3/*012703*/,0x7FFF/*077777*/,0x65C3/*062703*/,0x7FFF/*077777*/,0xA7D7/*123727*/,0xFFFE/*177776*/,
|
||||
0x0005/*000005*/,0x0201/*001001*/,0x0000/*000000*/,0x95C4/*112704*/,0x03C0/*001700*/,0x8003/*100003*/,0x2117/*020427*/,0xFFC0/*177700*/,
|
||||
0x0301/*001401*/,0x0000/*000000*/,0x8A04/*105004*/,0x2117/*020427*/,0xFF00/*177400*/,0x0301/*001401*/,0x0000/*000000*/,0x15C5/*012705*/,
|
||||
0xAAAA/*125252*/,0x1140/*010500*/,0x1001/*010001*/,0x1042/*010102*/,0x1083/*010203*/,0x10C4/*010304*/,0x1105/*010405*/,0xE141/*160501*/,
|
||||
0x0501/*002401*/,0x0301/*001401*/,0x0000/*000000*/,0x0C42/*006102*/,0x8601/*103001*/,0x0501/*002401*/,0x0000/*000000*/,0x6083/*060203*/,
|
||||
0x0A83/*005203*/,0x0A43/*005103*/,0x60C1/*060301*/,0x8701/*103401*/,0x0701/*003401*/,0x0000/*000000*/,0x0C04/*006004*/,0x5103/*050403*/,
|
||||
0x6143/*060503*/,0x0A83/*005203*/,0x8702/*103402*/,0x0AC1/*005301*/,0x0501/*002401*/,0x0000/*000000*/,0x0A40/*005100*/,0x8301/*101401*/,
|
||||
0x0000/*000000*/,0x4001/*040001*/,0x6041/*060101*/,0x0601/*003001*/,0x0701/*003401*/,0x0000/*000000*/,0x00C1/*000301*/,0x2057/*020127*/,
|
||||
0x5455/*052125*/,0x0204/*001004*/,0x3105/*030405*/,0x0602/*003002*/,0x0A45/*005105*/,0x0201/*001001*/,0x0000/*000000*/,0x95C0/*112700*/,
|
||||
0xFF01/*177401*/,0x8001/*100001*/,0x0000/*000000*/,0x7E02/*077002*/,0x0A01/*005001*/,0x0A81/*005201*/,0x7E02/*077002*/,0x0BC0/*005700*/,
|
||||
0x0202/*001002*/,0x0BC1/*005701*/,0x0301/*001401*/,0x0000/*000000*/,0x15C7/*012707*/,0xC3FE/*141776*/,0x0000/*000000*/,0x0BD7/*005727*/,
|
||||
0x0000/*000000*/,0x15E6/*012746*/,0xC40A/*142012*/,0x0087/*000207*/,0x0000/*000000*/,0x0A26/*005046*/,0x15E6/*012746*/,0xC414/*142024*/,
|
||||
0x0002/*000002*/,0x0000/*000000*/,0x005F/*000137*/,0xC41A/*142032*/,0x0000/*000000*/,0x15C5/*012705*/,0x0003/*000003*/,0x0A1F/*005037*/,
|
||||
0x0006/*000006*/,0x15DF/*012737*/,0xC42C/*142054*/,0x0004/*000004*/,0x0BE5/*005745*/,0x0000/*000000*/,0x65C6/*062706*/,0x0004/*000004*/,
|
||||
0x0A00/*005000*/,0x15C1/*012701*/,0x0FFF/*007777*/,0x1002/*010002*/,0x65C2/*062702*/,0x0005/*000005*/,0x2432/*022062*/,0xFFFB/*177773*/,
|
||||
0x0302/*001402*/,0x0000/*000000*/,0x0000/*000000*/,0x7E49/*077111*/,0x0AB7/*005267*/,0xFEC8/*177310*/,0x8601/*103001*/,0x0000/*000000*/,
|
||||
0x2DD7/*026727*/,0xFBFE/*175776*/,0x0480/*002200*/,0x8202/*101002*/,0x0077/*000167*/,0xFEC2/*177302*/,0x15C0/*012700*/,0xC2AC/*141254*/,
|
||||
0x1DC3/*016703*/,0xFEB0/*177260*/,0x0A02/*005002*/,0x7297/*071227*/,0x0008/*000010*/,0x65C3/*062703*/,0x0030/*000060*/,0x90E0/*110340*/,
|
||||
0x1083/*010203*/,0x02F8/*001370*/,0x09F7/*004767*/,0xFBF0/*175760*/,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*/,0xC50A/*142412*/,0x14A6/*012246*/,0x0D93/*006623*/,0x2097/*020227*/,0xC5AE/*142656*/,
|
||||
0x87FB/*103773*/,0x15F7/*012767*/,0x4080/*040200*/,0xFB48/*175510*/,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*/,0xC27D/*141175*/,0x09F7/*004767*/,0xFAA0/*175240*/,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*/,
|
||||
0xC24C/*141114*/,0x09F7/*004767*/,0xFA52/*175122*/,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*/]
|
||||
}
|
||||
|
|
@ -174,13 +174,14 @@ CMD:
|
|||
RTI
|
||||
|
||||
|
||||
CMDTBL: .WORD BOOT,HALT,TEST,LIGHTS,HELP
|
||||
HLPMSG: .ASCIZ 'COMMANDS ARE BOOT, HALT, LIGHTS, TEST AND HELP'<15><12>'BOOT DEVICES ARE RK? RL? OR RP?'<15><12>
|
||||
CMDTBL: .WORD BOOT,HALT,TEST,DIAG,LIGHTS,HELP
|
||||
HLPMSG: .ASCIZ 'COMMANDS ARE BOOT, HALT, TEST, DIAG, LIGHTS AND HELP'<15><12>'BOOT DEVICES ARE RK? RL? OR RP?'<15><12>
|
||||
EOL: .BYTE 15,12,0
|
||||
DEL: .BYTE 10,40,10,0
|
||||
CMDLST: .ASCIZ 'BOOT'
|
||||
.ASCIZ 'HALT'
|
||||
.ASCIZ 'TEST'
|
||||
.ASCIZ 'DIAG'
|
||||
.ASCIZ 'LIGHTS'
|
||||
.ASCIZ 'HELP'
|
||||
.BYTE 0
|
||||
|
|
@ -190,6 +191,7 @@ BANNER: .ASCIZ 'PDP-11 MONITOR V1.0'<12><15><12><15>
|
|||
PROMPT: .ASCIZ 'BOOT> '
|
||||
BADBOO: .ASCIZ 'UNKNOWN BOOT DEVICE'<12><15>
|
||||
PERMSG: .ASCIZ ' CLOCK TICKS'<12><15>
|
||||
LOOMSG: .ASCIZ ' ITERATIONS'<12><15>
|
||||
|
||||
.EVEN
|
||||
|
||||
|
|
@ -236,6 +238,179 @@ TEST:
|
|||
JSR PC,PRINT
|
||||
RTS PC
|
||||
|
||||
LOOCNT: .WORD 0
|
||||
|
||||
DIAG:
|
||||
CLR LOOCNT
|
||||
CLR CLKTIC
|
||||
DIAGLP:
|
||||
CLR R5
|
||||
BMI L1
|
||||
BVS L1
|
||||
BHI L1
|
||||
BLT L1
|
||||
BLOS L2
|
||||
L1: HALT
|
||||
|
||||
L2: DEC R5
|
||||
BPL L3
|
||||
BEQ L3
|
||||
BGE L3
|
||||
BLE L4
|
||||
L3: HALT
|
||||
|
||||
L4: ROR R5
|
||||
BVC L5
|
||||
BCC L5
|
||||
BNE L6
|
||||
L5: HALT
|
||||
|
||||
L6: MOVB #17,@#177776
|
||||
BPL L7
|
||||
BVC L7
|
||||
BLT L7
|
||||
BHI L7
|
||||
BMI L8
|
||||
L7: HALT
|
||||
|
||||
L8: MOV #77777,R3
|
||||
ADD #77777,R3
|
||||
CMPB @#177776,#5
|
||||
BNE L9
|
||||
HALT
|
||||
|
||||
L9: MOVB #1700,R4
|
||||
BPL L10
|
||||
CMP R4,#177700
|
||||
BEQ L11
|
||||
L10: HALT
|
||||
|
||||
L11: CLRB R4
|
||||
CMP R4,#177400
|
||||
BEQ L12
|
||||
HALT
|
||||
|
||||
L12: MOV #125252,R5
|
||||
MOV R5,R0
|
||||
MOV R0,R1
|
||||
MOV R1,R2
|
||||
MOV R2,R3
|
||||
MOV R3,R4
|
||||
MOV R4,R5
|
||||
SUB R5,R1
|
||||
BLT NODIAG
|
||||
BEQ L13
|
||||
NODIAG: HALT
|
||||
|
||||
L13: ROL R2
|
||||
BCC L14
|
||||
BLT L15
|
||||
L14: HALT
|
||||
|
||||
L15: ADD R2,R3
|
||||
INC R3
|
||||
COM R3
|
||||
ADD R3,R1
|
||||
BCS L16
|
||||
BLE L17
|
||||
L16: HALT
|
||||
|
||||
L17: ROR R4
|
||||
BIS R4,R3
|
||||
ADD R5,R3
|
||||
INC R3
|
||||
BCS L18
|
||||
DEC R1
|
||||
BLT L19
|
||||
L18: HALT
|
||||
|
||||
L19: COM R0
|
||||
BLOS L20
|
||||
HALT
|
||||
|
||||
L20: BIC R0,R1
|
||||
ADD R1,R1
|
||||
BGT L21
|
||||
BLE L22
|
||||
L21: HALT
|
||||
|
||||
L22: SWAB R1
|
||||
CMP R1,#052125
|
||||
BNE L23
|
||||
BIT R4,R5
|
||||
BGT L23
|
||||
COM R5
|
||||
BNE L24
|
||||
L23: HALT
|
||||
|
||||
L24: MOVB #177401,R0
|
||||
BPL L26
|
||||
L25: HALT
|
||||
|
||||
L26: SOB R0,L25
|
||||
CLR R1
|
||||
L27: INC R1
|
||||
SOB R0,L27
|
||||
TST R0
|
||||
BNE L28
|
||||
TST R1
|
||||
BEQ L29
|
||||
L28: HALT
|
||||
|
||||
L29: MOV #N1,PC
|
||||
HALT
|
||||
|
||||
N1: TST (PC)+
|
||||
HALT
|
||||
|
||||
N2: MOV #N3,-(SP)
|
||||
RTS PC
|
||||
HALT
|
||||
|
||||
N3: CLR -(SP)
|
||||
MOV #N4,-(SP)
|
||||
RTI
|
||||
HALT
|
||||
|
||||
N4: JMP @#N5
|
||||
HALT
|
||||
|
||||
N5: MOV #3,R5
|
||||
CLR @#6
|
||||
MOV #N6,@#4
|
||||
TST -(R5)
|
||||
HALT
|
||||
N6: ADD #4,SP
|
||||
|
||||
CLR R0
|
||||
MOV #7777,R1
|
||||
N7: MOV R0,R2
|
||||
ADD #5,R2
|
||||
CMP (R0)+,-5(R2)
|
||||
BEQ N8
|
||||
HALT
|
||||
D1: .WORD 0
|
||||
|
||||
N8: SOB R1,N7
|
||||
|
||||
INC LOOCNT
|
||||
BCC 10$
|
||||
HALT
|
||||
10$: CMP CLKTIC,#2200
|
||||
BHI 20$
|
||||
JMP DIAGLP
|
||||
20$: MOV #LOOMSG+5,R0
|
||||
MOV LOOCNT,R3
|
||||
|
||||
25$: CLR R2
|
||||
DIV #10,R2
|
||||
ADD #'0,R3
|
||||
MOVB R3,-(R0)
|
||||
MOV R2,R3
|
||||
BNE 25$
|
||||
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
|
||||
MMR0=177572
|
||||
MMR1=177574
|
||||
|
|
|
|||
|
|
@ -16,13 +16,13 @@
|
|||
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
|
||||
19 140016 012700 141136 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
|
||||
25 140050 012700 141166 MOV #PROMPT,R0
|
||||
26 140054 004767 140150' JSR PC,PRINT
|
||||
27 140060 162706 000256 SUB #256,SP
|
||||
28 140064 010600 MOV SP,R0
|
||||
|
|
@ -92,7 +92,7 @@
|
|||
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
|
||||
95 140342 012700 141047 MOV #DEL,R0
|
||||
96 140346 004767 140150' JSR PC,PRINT
|
||||
97 140352 000453 3$: BR 9$
|
||||
98 140354 120027 000040 4$: CMPB R0,#40
|
||||
|
|
@ -130,12 +130,12 @@
|
|||
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
|
||||
133 140524 012700 141044 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
|
||||
138 140546 012703 141053 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
|
||||
|
|
@ -160,11 +160,11 @@
|
|||
160 140632 004774 140700 JSR PC,@CMDTBL(R4) ; EXECUTE
|
||||
161 140636 000404 BR 15$
|
||||
162
|
||||
163 140640 012700 141077 13$: MOV #UNKMSG,R0
|
||||
163 140640 012700 141114 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
|
||||
167 140654 012700 141166 MOV #PROMPT,R0
|
||||
168 140660 004767 140150' JSR PC,PRINT
|
||||
169 140664 012604 MOV (SP)+,R4
|
||||
170 140666 012603 MOV (SP)+,R3
|
||||
|
|
@ -174,360 +174,544 @@
|
|||
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
|
||||
177 140700 142656 141304 141320 CMDTBL: .WORD BOOT,HALT,TEST,DIAG,LIGHTS,HELP
|
||||
140706 141426 142172 141272
|
||||
178 140714 103 117 115 HLPMSG: .ASCIZ 'COMMANDS ARE BOOT, HALT, TEST, DIAG, LIGHTS AND HELP'<15><12>'BOOT DEVICES ARE RK? RL? OR RP?'<15><12>
|
||||
140717 115 101 116
|
||||
140722 104 123 040
|
||||
140725 101 122 105
|
||||
140730 040 102 117
|
||||
140733 117 124 054
|
||||
140736 040 110 101
|
||||
140741 114 124 054
|
||||
140744 040 124 105
|
||||
140747 123 124 054
|
||||
140752 040 104 111
|
||||
140755 101 107 054
|
||||
140760 040 114 111
|
||||
140763 107 110 124
|
||||
140766 123 040 101
|
||||
140771 116 104 040
|
||||
140774 110 105 114
|
||||
140777 120 015 012
|
||||
141002 102 117 117
|
||||
141005 124 040 104
|
||||
141010 105 126 111
|
||||
141013 103 105 123
|
||||
141016 040 101 122
|
||||
141021 105 040 122
|
||||
141024 113 077 040
|
||||
141027 122 114 077
|
||||
141032 040 117 122
|
||||
141035 040 122 120
|
||||
141040 077 015 012
|
||||
141043 000
|
||||
179 141044 015 012 000 EOL: .BYTE 15,12,0
|
||||
180 141047 010 040 010 DEL: .BYTE 10,40,10,0
|
||||
141052 000
|
||||
181 141053 102 117 117 CMDLST: .ASCIZ 'BOOT'
|
||||
141056 124 000
|
||||
182 141060 110 101 114 .ASCIZ 'HALT'
|
||||
141063 124 000
|
||||
183 141065 124 105 123 .ASCIZ 'TEST'
|
||||
141070 124 000
|
||||
184 141072 104 111 101 .ASCIZ 'DIAG'
|
||||
141075 107 000
|
||||
185 141077 114 111 107 .ASCIZ 'LIGHTS'
|
||||
141102 110 124 123
|
||||
141105 000
|
||||
186 141106 110 105 114 .ASCIZ 'HELP'
|
||||
141111 120 000
|
||||
187 141113 000 .BYTE 0
|
||||
188 141114 125 116 113 UNKMSG: .ASCIZ 'UNKNOWN COMMAND'<12><15>
|
||||
141117 116 117 127
|
||||
141122 116 040 103
|
||||
141125 117 115 115
|
||||
141130 101 116 104
|
||||
141133 012 015 000
|
||||
189 141136 120 104 120 BANNER: .ASCIZ 'PDP-11 MONITOR V1.0'<12><15><12><15>
|
||||
141141 055 061 061
|
||||
141144 040 115 117
|
||||
141147 116 111 124
|
||||
141152 117 122 040
|
||||
141155 126 061 056
|
||||
141160 060 012 015
|
||||
141163 012 015 000
|
||||
190 ; 'ADAPTED FROM CODE BY PAUL NANKERVIS <PAULNANK@HOTMAIL.COM>'<12><15><12><15>
|
||||
191 141166 102 117 117 PROMPT: .ASCIZ 'BOOT> '
|
||||
141171 124 076 040
|
||||
141174 000
|
||||
192 141175 125 116 113 BADBOO: .ASCIZ 'UNKNOWN BOOT DEVICE'<12><15>
|
||||
141200 116 117 127
|
||||
141203 116 040 102
|
||||
141206 117 117 124
|
||||
141211 040 104 105
|
||||
141214 126 111 103
|
||||
141217 105 012 015
|
||||
141222 000
|
||||
193 141223 040 040 040 PERMSG: .ASCIZ ' CLOCK TICKS'<12><15>
|
||||
141226 040 040 040
|
||||
141231 103 114 117
|
||||
141234 103 113 040
|
||||
141237 124 111 103
|
||||
141242 113 123 012
|
||||
141245 015 000
|
||||
194 141247 040 040 040 LOOMSG: .ASCIZ ' ITERATIONS'<12><15>
|
||||
141252 040 040 040
|
||||
141255 111 124 105
|
||||
141260 122 101 124
|
||||
141263 111 117 116
|
||||
141266 123 012 015
|
||||
141271 000
|
||||
195
|
||||
196 HELP:
|
||||
197 141232 012700 140712 MOV #HLPMSG,R0
|
||||
198 141236 004767 140150' JSR PC,PRINT
|
||||
199 141242 000207 RTS PC
|
||||
200
|
||||
201 HALT:
|
||||
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:
|
||||
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
|
||||
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:
|
||||
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$
|
||||
196 .EVEN
|
||||
197
|
||||
198 HELP:
|
||||
199 141272 012700 140714 MOV #HLPMSG,R0
|
||||
200 141276 004767 140150' JSR PC,PRINT
|
||||
201 141302 000207 RTS PC
|
||||
202
|
||||
203 HALT:
|
||||
204 141304 000000 HALT
|
||||
205 141306 012700 141044 MOV #EOL,R0
|
||||
206 141312 004767 140150' JSR PC,PRINT
|
||||
207 141316 000207 RTS PC
|
||||
208
|
||||
209 TEST:
|
||||
210 141320 005067 140122' CLR CLKTIC
|
||||
211
|
||||
212 141324 012705 015000 MOV #15000,R5
|
||||
213 141330 010537 177570 10$: MOV R5,@#177570 ; DISPLAY
|
||||
214 141334 010504 MOV R5,R4
|
||||
215 141336 006204 ASR R4
|
||||
216 141340 005000 15$: CLR R0
|
||||
217 141342 010501 MOV R5,R1
|
||||
218 141344 071004 DIV R4,R0
|
||||
219 141346 010002 MOV R0,R2
|
||||
220 141350 070204 MUL R4,R2
|
||||
221 141352 060301 ADD R3,R1
|
||||
222 141354 020105 CMP R1,R5
|
||||
223 141356 001401 BEQ 20$
|
||||
224 141360 000000 HALT
|
||||
225 141362 077412 20$: SOB R4,15$
|
||||
226 141364 077517 SOB R5,10$
|
||||
227
|
||||
228 141366 012700 141230 MOV #PERMSG+5,R0
|
||||
229 141372 016703 140122' MOV CLKTIC,R3
|
||||
230
|
||||
231 141376 005002 25$: CLR R2
|
||||
232 141400 071227 000010 DIV #10,R2
|
||||
233 141404 062703 000060 ADD #'0,R3
|
||||
234 141410 110340 MOVB R3,-(R0)
|
||||
235 141412 010203 MOV R2,R3
|
||||
236 141414 001370 BNE 25$
|
||||
237
|
||||
238 141416 004767 140150' JSR PC,PRINT
|
||||
239 141422 000207 RTS PC
|
||||
240
|
||||
241 141424 000000 LOOCNT: .WORD 0
|
||||
242
|
||||
243 DIAG:
|
||||
244 141426 005067 141424' CLR LOOCNT
|
||||
245 141432 005067 140122' CLR CLKTIC
|
||||
246 DIAGLP:
|
||||
247 141436 005005 CLR R5
|
||||
248 141440 100404 BMI L1
|
||||
249 141442 102403 BVS L1
|
||||
250 141444 101002 BHI L1
|
||||
251 141446 002401 BLT L1
|
||||
252 141450 101401 BLOS L2
|
||||
253 141452 000000 L1: HALT
|
||||
254
|
||||
255 141454 005305 L2: DEC R5
|
||||
256 141456 100003 BPL L3
|
||||
257 141460 001402 BEQ L3
|
||||
258 141462 002001 BGE L3
|
||||
259 141464 003401 BLE L4
|
||||
260 141466 000000 L3: HALT
|
||||
261
|
||||
262 141470 006005 L4: ROR R5
|
||||
263 141472 102002 BVC L5
|
||||
264 141474 103001 BCC L5
|
||||
265 141476 001001 BNE L6
|
||||
266 141500 000000 L5: HALT
|
||||
267
|
||||
268 141502 112737 000017 177776 L6: MOVB #17,@#177776
|
||||
269 141510 100004 BPL L7
|
||||
270 141512 102003 BVC L7
|
||||
271 141514 002402 BLT L7
|
||||
272 141516 101001 BHI L7
|
||||
273 141520 100401 BMI L8
|
||||
274 141522 000000 L7: HALT
|
||||
275
|
||||
276 141524 012703 077777 L8: MOV #77777,R3
|
||||
277 141530 062703 077777 ADD #77777,R3
|
||||
278 141534 123727 177776 000005 CMPB @#177776,#5
|
||||
279 141542 001001 BNE L9
|
||||
280 141544 000000 HALT
|
||||
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:
|
||||
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)
|
||||
282 141546 112704 001700 L9: MOVB #1700,R4
|
||||
283 141552 100003 BPL L10
|
||||
284 141554 020427 177700 CMP R4,#177700
|
||||
285 141560 001401 BEQ L11
|
||||
286 141562 000000 L10: HALT
|
||||
287
|
||||
288 141564 105004 L11: CLRB R4
|
||||
289 141566 020427 177400 CMP R4,#177400
|
||||
290 141572 001401 BEQ L12
|
||||
291 141574 000000 HALT
|
||||
292
|
||||
293 141576 012705 125252 L12: MOV #125252,R5
|
||||
294 141602 010500 MOV R5,R0
|
||||
295 141604 010001 MOV R0,R1
|
||||
296 141606 010102 MOV R1,R2
|
||||
297 141610 010203 MOV R2,R3
|
||||
298 141612 010304 MOV R3,R4
|
||||
299 141614 010405 MOV R4,R5
|
||||
300 141616 160501 SUB R5,R1
|
||||
301 141620 002401 BLT NODIAG
|
||||
302 141622 001401 BEQ L13
|
||||
303 141624 000000 NODIAG: HALT
|
||||
304
|
||||
305 141626 006102 L13: ROL R2
|
||||
306 141630 103001 BCC L14
|
||||
307 141632 002401 BLT L15
|
||||
308 141634 000000 L14: HALT
|
||||
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:
|
||||
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:
|
||||
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
|
||||
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:
|
||||
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
|
||||
310 141636 060203 L15: ADD R2,R3
|
||||
311 141640 005203 INC R3
|
||||
312 141642 005103 COM R3
|
||||
313 141644 060301 ADD R3,R1
|
||||
314 141646 103401 BCS L16
|
||||
315 141650 003401 BLE L17
|
||||
316 141652 000000 L16: HALT
|
||||
317
|
||||
318 141654 006004 L17: ROR R4
|
||||
319 141656 050403 BIS R4,R3
|
||||
320 141660 060503 ADD R5,R3
|
||||
321 141662 005203 INC R3
|
||||
322 141664 103402 BCS L18
|
||||
323 141666 005301 DEC R1
|
||||
324 141670 002401 BLT L19
|
||||
325 141672 000000 L18: HALT
|
||||
326
|
||||
327 141674 005100 L19: COM R0
|
||||
328 141676 101401 BLOS L20
|
||||
329 141700 000000 HALT
|
||||
330
|
||||
331 141702 040001 L20: BIC R0,R1
|
||||
332 141704 060101 ADD R1,R1
|
||||
333 141706 003001 BGT L21
|
||||
334 141710 003401 BLE L22
|
||||
335 141712 000000 L21: HALT
|
||||
336
|
||||
337 141714 000301 L22: SWAB R1
|
||||
338 141716 020127 052125 CMP R1,#052125
|
||||
339 141722 001004 BNE L23
|
||||
340 141724 030405 BIT R4,R5
|
||||
341 141726 003002 BGT L23
|
||||
342 141730 005105 COM R5
|
||||
343 141732 001001 BNE L24
|
||||
344 141734 000000 L23: HALT
|
||||
345
|
||||
346 141736 112700 177401 L24: MOVB #177401,R0
|
||||
347 141742 100001 BPL L26
|
||||
348 141744 000000 L25: HALT
|
||||
349
|
||||
350 141746 077002 L26: SOB R0,L25
|
||||
351 141750 005001 CLR R1
|
||||
352 141752 005201 L27: INC R1
|
||||
353 141754 077002 SOB R0,L27
|
||||
354 141756 005700 TST R0
|
||||
355 141760 001002 BNE L28
|
||||
356 141762 005701 TST R1
|
||||
357 141764 001401 BEQ L29
|
||||
358 141766 000000 L28: HALT
|
||||
359
|
||||
360 141770 012707 141776 L29: MOV #N1,PC
|
||||
361 141774 000000 HALT
|
||||
362
|
||||
363 141776 005727 N1: TST (PC)+
|
||||
364 142000 000000 HALT
|
||||
365
|
||||
366 142002 012746 142012 N2: MOV #N3,-(SP)
|
||||
367 142006 000207 RTS PC
|
||||
368 142010 000000 HALT
|
||||
369
|
||||
370 142012 005046 N3: CLR -(SP)
|
||||
371 142014 012746 142024 MOV #N4,-(SP)
|
||||
372 142020 000002 RTI
|
||||
373 142022 000000 HALT
|
||||
374
|
||||
375 142024 000137 142032 N4: JMP @#N5
|
||||
376 142030 000000 HALT
|
||||
377
|
||||
378 142032 012705 000003 N5: MOV #3,R5
|
||||
379 142036 005037 000006 CLR @#6
|
||||
380 142042 012737 142054 000004 MOV #N6,@#4
|
||||
381 142050 005745 TST -(R5)
|
||||
382 142052 000000 HALT
|
||||
383 142054 062706 000004 N6: ADD #4,SP
|
||||
384
|
||||
385 142060 005000 CLR R0
|
||||
386 142062 012701 007777 MOV #7777,R1
|
||||
387 142066 010002 N7: MOV R0,R2
|
||||
388 142070 062702 000005 ADD #5,R2
|
||||
389 142074 022062 177773 CMP (R0)+,-5(R2)
|
||||
390 142100 001402 BEQ N8
|
||||
391 142102 000000 HALT
|
||||
392 142104 000000 D1: .WORD 0
|
||||
393
|
||||
394 142106 077111 N8: SOB R1,N7
|
||||
395
|
||||
396 142110 005267 141424' INC LOOCNT
|
||||
397 142114 103001 BCC 10$
|
||||
398 142116 000000 HALT
|
||||
399 142120 026727 140122' 002200 10$: CMP CLKTIC,#2200
|
||||
400 142126 101002 BHI 20$
|
||||
401 142130 000167 141436' JMP DIAGLP
|
||||
402 142134 012700 141254 20$: MOV #LOOMSG+5,R0
|
||||
403 142140 016703 141424' MOV LOOCNT,R3
|
||||
404
|
||||
405 142144 005002 25$: CLR R2
|
||||
406 142146 071227 000010 DIV #10,R2
|
||||
407 142152 062703 000060 ADD #'0,R3
|
||||
408 142156 110340 MOVB R3,-(R0)
|
||||
409 142160 010203 MOV R2,R3
|
||||
410 142162 001370 BNE 25$
|
||||
411
|
||||
412 142164 004767 140150' JSR PC,PRINT
|
||||
413 142170 000207 RTS PC
|
||||
414
|
||||
415 177572 MMR0=177572
|
||||
416 177574 MMR1=177574
|
||||
417 177576 MMR2=177576
|
||||
418 172516 MMR3=172516
|
||||
419
|
||||
420 LIGHTS:
|
||||
421 142172 012703 077406 MOV #77406,R3 ; DEFAULT PDR
|
||||
422 142176 005002 CLR R2
|
||||
423 142200 005001 CLR R1
|
||||
424 142202 012700 000010 MOV #8.,R0
|
||||
425 142206 010361 172300 1$: MOV R3,172300(R1) ; KERNEL I PDR
|
||||
426 142212 010261 172340 MOV R2,172340(R1) ; KERNEL I PAR
|
||||
427 142216 010361 172320 MOV R3,172320(R1) ; KERNEL D PDR
|
||||
428 142222 010261 172360 MOV R2,172360(R1) ; KERNEL D PAR
|
||||
429 142226 010361 172200 MOV R3,172200(R1) ; SUPER I PDR
|
||||
430 142232 010261 172240 MOV R2,172240(R1) ; SUPER I PAR
|
||||
431 142236 010361 172220 MOV R3,172220(R1) ; SUPER D PDR
|
||||
432 142242 010261 172260 MOV R2,172260(R1) ; SUPER D PAR
|
||||
433 142246 010361 177600 MOV R3,177600(R1) ; USER I PDR
|
||||
434 142252 010261 177640 MOV R2,177640(R1) ; USER I PAR
|
||||
435 142256 010361 177620 MOV R3,177620(R1) ; USER D PDR
|
||||
436 142262 010361 177660 MOV R3,177660(R1) ; USER D PAR
|
||||
437 142266 062702 000200 ADD #200,R2
|
||||
438 142272 062701 000002 ADD #2,R1
|
||||
439 142276 077035 SOB R0,1$
|
||||
440 142300 052737 176000 172376 BIS #176000,@#172376 ; KERNEL D POINTS TO I/O SPACE
|
||||
441 142306 052737 176000 172276 BIS #176000,@#172276 ; SUPER D POINTS TO I/O SPACE
|
||||
442 142314 052737 176000 177676 BIS #176000,@#177676 ; USER D POINTS TO I/O SPACE
|
||||
443 142322 012737 000077 172516 MOV #77,@#MMR3 ; 77 FOR 22 BIT
|
||||
444 142330 012737 000001 177572 MOV #1,@#MMR0
|
||||
445
|
||||
446 142336 012737 001700 172244 MOV #1700,@#172244 ; BASE SUPER I (PAR 2) #40000 AT #170000
|
||||
447 142344 012737 001700 172264 MOV #1700,@#172264 ; BASE SUPER D (PAR 2) #40000 AT #170000
|
||||
448 142352 012737 010000 177776 MOV #010000,@#177776 ; SET PM TO SUPER
|
||||
449
|
||||
450 142360 012703 040200 MOV #40200,R3 ; SUPER CODE ADDRESS
|
||||
451 142364 012702 142412 MOV #SUPERS,R2 ; ADDRESS SUPER CODE
|
||||
452 142370 012246 10$: MOV (R2)+,-(SP)
|
||||
453 142372 006623 MTPI (R3)+
|
||||
454 142374 020227 142656 CMP R2,#SUPERE
|
||||
455 142400 103773 BLO 10$
|
||||
456
|
||||
457 142402 012767 040200 140120' MOV #40200,LGHTON ; CHANGE IDLE TASK
|
||||
458 142410 000207 RTS PC
|
||||
459
|
||||
460 ;
|
||||
461 ; TO BE COPIED TO SUPER #40200 AT PHYSICAL #170000
|
||||
462 ; #40000 TO #40200 FOR WAIT & JMP INSTRUCTIONS
|
||||
463 ;
|
||||
464 SUPERS:
|
||||
465 142412 012700 000037 MOV #37,R0 ; LOAD PATTERN
|
||||
466 142416 012701 174000 MOV #174000,R1
|
||||
467 142422 032737 000001 177570 BIT #1,@#177570
|
||||
468 142430 001414 BEQ 10$
|
||||
469 142432 012700 007417 MOV #7417,R0
|
||||
470 142436 010001 MOV R0,R1
|
||||
471 142440 005101 COM R1
|
||||
472 142442 032737 000002 177570 BIT #2,@#177570
|
||||
473 142450 001404 BEQ 10$
|
||||
474 142452 012700 036163 MOV #36163,R0
|
||||
475 142456 012701 037000 MOV #37000,R1
|
||||
476 142462 010102 10$: MOV R1,R2
|
||||
477 142464 162702 000002 SUB #2,R2
|
||||
478 142470 042702 000001 BIC #1,R2 ; WAIT ADDRESS
|
||||
479 142474 010203 MOV R2,R3
|
||||
480 142476 042703 177701 BIC #177701,R3 ; ADDRESS OFFSET
|
||||
481 142502 012763 000001 040000 MOV #0000001,40000(R3) ; WRITE WAIT
|
||||
482 142510 062703 000002 ADD #2,R3
|
||||
483 142514 012763 000113 040000 MOV #0000113,40000(R3) ; WRITE JMP (R3)
|
||||
484
|
||||
485 142522 010204 MOV R2,R4
|
||||
486 142524 072427 177772 ASH #-6,R4
|
||||
487 142530 042704 177600 BIC #177600,R4
|
||||
488 142534 012705 001700 MOV #1700,R5
|
||||
489 142540 160405 SUB R4,R5 ; PAR ADDRESS BASE FOR WAIT
|
||||
490 142542 010204 MOV R2,R4
|
||||
491 142544 072427 177764 ASH #-12.,R4
|
||||
492 142550 042704 177761 BIC #177761,R4 ; PAR SELECT OFFSET
|
||||
493 142554 010564 172240 MOV R5,172240(R4) ; SUPER I SPACE
|
||||
494
|
||||
495 142560 010103 MOV R1,R3
|
||||
496 142562 072327 177764 ASH #-12.,R3
|
||||
497 142566 042703 177761 BIC #177761,R3 ; PAR SELECT OFFSET
|
||||
498 142572 020304 CMP R3,R4 ; SAME PAR
|
||||
499 142574 001412 BEQ 30$
|
||||
500 142576 010104 MOV R1,R4
|
||||
501 142600 072427 177772 ASH #-6,R4
|
||||
502 142604 042704 177600 BIC #177600,R4
|
||||
503 142610 012705 001700 MOV #1700,R5
|
||||
504 142614 160405 SUB R4,R5 ; PAR ADDRESS BASE FOR JMP
|
||||
505 142616 010563 172240 MOV R5,172240(R3) ; SUPER I SPACE
|
||||
506 30$:
|
||||
507 142622 012704 000003 MOV #3,R4
|
||||
508 142626 063704 177570 ADD @#177570,R4
|
||||
509 142632 012703 000002 MOV #2,R3
|
||||
510 142636 060703 ADD PC,R3
|
||||
511 142640 000112 40$: JMP (R2)
|
||||
512 142642 077402 SOB R4,40$
|
||||
513 142644 010002 MOV R0,R2
|
||||
514 142646 006002 ROR R2 ; ROTATE PATTERN
|
||||
515 142650 006101 ROL R1
|
||||
516 142652 006000 ROR R0
|
||||
517 142654 000702 BR 10$
|
||||
518 SUPERE:
|
||||
519
|
||||
520 BOOT:
|
||||
521 142656 005003 CLR R3 ; UNIT
|
||||
522 142660 112201 1$: MOVB (R2)+,R1
|
||||
523 142662 001545 BEQ BOOTRK ; DEFAULT DEVICE IS RK0
|
||||
524 142664 120127 000040 CMPB R1,#40
|
||||
525 142670 001773 BEQ 1$
|
||||
526 142672 120127 000122 CMPB R1,#'R
|
||||
527 142676 001405 BEQ 5$
|
||||
528
|
||||
529 142700 012700 141175 MOV #BADBOO,R0
|
||||
530 142704 004767 140150' JSR PC,PRINT
|
||||
531 142710 000207 RTS PC
|
||||
532
|
||||
533 142712 112201 5$: MOVB (R2)+,R1 ; HOPEFULLY K, L OR P
|
||||
534 142714 112200 7$: MOVB (R2)+,R0 ; DIGIT
|
||||
535 142716 001416 BEQ 9$
|
||||
536 142720 120027 000040 CMPB R0,#40
|
||||
537 142724 001413 BEQ 9$
|
||||
538 142726 120027 000067 CMPB R0,#'7
|
||||
539 142732 003031 BGT 11$
|
||||
540 142734 162700 000060 SUB #'0,R0
|
||||
541 142740 002426 BLT 11$
|
||||
542 142742 006303 ASL R3
|
||||
543 142744 006303 ASL R3
|
||||
544 142746 006303 ASL R3
|
||||
545 142750 050003 BIS R0,R3 ; PUT DIGIT INTO UNIT
|
||||
546 142752 000760 BR 7$
|
||||
547 142754 005002 9$: CLR R2
|
||||
548 142756 012722 000137 MOV #137,(R2)+ ; STORE "JMP @#140000" INSTRUCTION AT ADDRESS 0
|
||||
549 142762 012722 140000 MOV #START,(R2)+
|
||||
550 142766 012722 140000 MOV #START,(R2)+ ; STORE #140000 IN VECTOR 4, IN CASE OF TRAP TO 4
|
||||
551 142772 005022 CLR (R2)+
|
||||
552 142774 120127 000113 CMPB R1,#'K
|
||||
553 143000 001476 BEQ BOOTRK
|
||||
554 143002 120127 000114 CMPB R1,#'L
|
||||
555 143006 001410 BEQ BOOTRL
|
||||
556 143010 120127 000120 CMPB R1,#'P
|
||||
557 143014 001517 BEQ BOOTRP
|
||||
558
|
||||
559 143016 012700 141114 11$: MOV #UNKMSG,R0
|
||||
560 143022 004767 140150' JSR PC,PRINT
|
||||
561 143026 000207 RTS PC
|
||||
562
|
||||
563 174400 RLCS=174400
|
||||
564 BOOTRL:
|
||||
565 143030 000005 RESET
|
||||
566 143032 000303 SWAB R3 ; UNIT NUMBER
|
||||
567 143034 012701 174400 MOV #RLCS,R1 ; CSR
|
||||
568 143040 012761 000013 000004 MOV #13,4(R1) ; CLR ERR
|
||||
569 143046 052703 000004 BIS #4,R3 ; UNIT+GSTAT
|
||||
570 143052 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
571 143054 105711 TSTB (R1) ; WAIT
|
||||
572 143056 100376 BPL .-2
|
||||
573 143060 105003 CLRB R3
|
||||
574 143062 052703 000010 BIS #10,R3 ; UNIT+RDHDR
|
||||
575 143066 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
576 143070 105711 TSTB (R1) ; WAIT
|
||||
577 143072 100376 BPL .-2
|
||||
578 143074 016102 000006 MOV 6(R1),R2 ; GET HDR
|
||||
579 143100 042702 000077 BIC #77,R2 ; CLR SECTOR
|
||||
580 143104 005202 INC R2 ; MAGIC BIT
|
||||
581 143106 010261 000004 MOV R2,4(R1) ; SEEK TO 0
|
||||
582 143112 105003 CLRB R3
|
||||
583 143114 052703 000006 BIS #6,R3 ; UNIT+SEEK
|
||||
584 143120 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
585 143122 105711 TSTB (R1) ; WAIT
|
||||
586 143124 100376 BPL .-2
|
||||
587 143126 005061 000002 CLR 2(R1) ; CLR BA
|
||||
588 143132 005061 000004 CLR 4(R1) ; CLR DA
|
||||
589 143136 012761 177000 000006 MOV #-512.,6(R1) ; SET WC
|
||||
590 143144 105003 CLRB R3
|
||||
591 143146 052703 000014 BIS #14,R3 ; UNIT+READ
|
||||
592 143152 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
593 143154 105711 TSTB (R1) ; WAIT
|
||||
594 143156 100376 BPL .-2
|
||||
595 143160 042711 000377 BIC #377,(R1)
|
||||
596 143164 005002 CLR R2
|
||||
597 143166 005003 CLR R3
|
||||
598 143170 005004 CLR R4
|
||||
599 143172 005005 CLR R5
|
||||
600 143174 005007 CLR PC
|
||||
601
|
||||
602 177412 RKDA=177412
|
||||
603 000005 READGO=5
|
||||
604 BOOTRK:
|
||||
605 143176 000005 RESET
|
||||
606 143200 000303 SWAB R3 ; UNIT NUMBER
|
||||
607 143202 006303 ASL R3
|
||||
608 143204 006303 ASL R3
|
||||
609 143206 006303 ASL R3
|
||||
610 143210 006303 ASL R3
|
||||
611 143212 006303 ASL R3
|
||||
612 143214 012701 177412 MOV #RKDA,R1 ; CSR
|
||||
613 143220 010311 MOV R3,(R1) ; LOAD DA
|
||||
614 143222 005041 CLR -(R1) ; CLEAR BA
|
||||
615 143224 012741 177000 MOV #-256.*2,-(R1) ; LOAD WC
|
||||
616 143230 012741 000005 MOV #READGO,-(R1) ; READ & GO
|
||||
617 143234 005002 CLR R2
|
||||
618 143236 005003 CLR R3
|
||||
619 143240 005004 CLR R4
|
||||
620 143242 005005 CLR R5
|
||||
621 143244 105711 TSTB (R1)
|
||||
622 143246 100376 BPL .-2
|
||||
623 143250 105011 CLRB (R1)
|
||||
624 143252 005007 CLR PC
|
||||
625
|
||||
626 176700 RPCSR=0176700
|
||||
627 BOOTRP:
|
||||
628 143254 000005 RESET
|
||||
629 143256 012701 176700 MOV #RPCSR, R1
|
||||
630 143262 012761 000040 000010 MOV #0000040, 10(R1) ; RESET
|
||||
631 143270 010361 000010 MOV R3, 10(R1) ; SET UNIT
|
||||
632 143274 012711 000021 MOV #0000021, (R1) ; PACK ACK
|
||||
633 143300 012761 010000 000032 MOV #0010000, 32(R1) ; 16B MODE
|
||||
634 143306 012761 177000 000002 MOV #-512., 2(R1) ; SET WC
|
||||
635 143314 005061 000004 CLR 4(R1) ; CLR BA
|
||||
636 143320 005061 000006 CLR 6(R1) ; CLR DA
|
||||
637 143324 005061 000034 CLR 34(R1) ; CLR CYL
|
||||
638 143330 012711 000071 MOV #0000071, (R1) ; READ
|
||||
639 143334 105711 TSTB (R1) ; WAIT
|
||||
640 143336 100376 BPL .-2
|
||||
641 143340 105011 CLRB (R1)
|
||||
642 143342 010300 MOV R3,R0
|
||||
643 143344 005007 CLR PC
|
||||
644
|
||||
645 .END START
|
||||
645
|
||||
|
|
|
|||
|
|
@ -33,232 +33,407 @@ The **BOOTMON.mac** source code is shown below.
|
|||
KW11LKS = 177546
|
||||
KW11VEC = 100
|
||||
|
||||
.ASECT
|
||||
.=140000
|
||||
.ASECT
|
||||
.=140000
|
||||
START: RESET
|
||||
CLR @#PSW
|
||||
MOV #START,SP
|
||||
CLR @#DL11XCSR ; CLEAR THE XCSR
|
||||
MOV #BANNER,R0
|
||||
JSR PC,PRINT
|
||||
MOV #CLKAST,@#KW11VEC
|
||||
MOV #340,@#KW11VEC+2
|
||||
BIS #100,@#KW11LKS ; SET CLOCK TICKING
|
||||
CLR @#PSW
|
||||
MOV #START,SP
|
||||
CLR @#DL11XCSR ; CLEAR THE XCSR
|
||||
MOV #BANNER,R0
|
||||
JSR PC,PRINT
|
||||
MOV #CLKAST,@#KW11VEC
|
||||
MOV #340,@#KW11VEC+2
|
||||
BIS #100,@#KW11LKS ; SET CLOCK TICKING
|
||||
|
||||
MOV #PROMPT,R0
|
||||
JSR PC,PRINT
|
||||
SUB #256,SP
|
||||
MOV SP,R0
|
||||
JSR PC,INPUT
|
||||
CLR R0
|
||||
MOV #PROMPT,R0
|
||||
JSR PC,PRINT
|
||||
SUB #256,SP
|
||||
MOV SP,R0
|
||||
JSR PC,INPUT
|
||||
CLR R0
|
||||
1$: WAIT
|
||||
INC R0
|
||||
TST LGHTON
|
||||
BEQ 1$
|
||||
MOV #054000,-(SP) ; SUPER PRIORITY 0 ALT REG
|
||||
MOV LGHTON,-(SP) ; CALL SUPER LOOP START
|
||||
RTI
|
||||
INC R0
|
||||
TST LGHTON
|
||||
BEQ 1$
|
||||
MOV #054000,-(SP) ; SUPER PRIORITY 0 ALT REG
|
||||
MOV LGHTON,-(SP) ; CALL SUPER LOOP START
|
||||
RTI
|
||||
|
||||
LGHTON: .WORD 0
|
||||
CLKTIC: .WORD 0
|
||||
|
||||
CLKAST:
|
||||
INC CLKTIC
|
||||
RTI
|
||||
INC CLKTIC
|
||||
RTI
|
||||
|
||||
ONECHR:
|
||||
TSTB @#DL11XCSR
|
||||
BPL ONECHR
|
||||
MOVB R0,@#177566
|
||||
RTS PC
|
||||
TSTB @#DL11XCSR
|
||||
BPL ONECHR
|
||||
MOVB R0,@#177566
|
||||
RTS PC
|
||||
|
||||
PRTPTR: .WORD 0
|
||||
|
||||
PRINT:
|
||||
BITB #100,@#DL11XCSR
|
||||
BNE PRINT
|
||||
MOV R0,PRTPTR
|
||||
MOV #PRTAST,@#DL11VEC
|
||||
MOV #200,@#DL11VEC+2
|
||||
BISB #100,@#DL11XCSR
|
||||
RTS PC
|
||||
BITB #100,@#DL11XCSR
|
||||
BNE PRINT
|
||||
MOV R0,PRTPTR
|
||||
MOV #PRTAST,@#DL11VEC
|
||||
MOV #200,@#DL11VEC+2
|
||||
BISB #100,@#DL11XCSR
|
||||
RTS PC
|
||||
|
||||
PRTAST:
|
||||
TSTB @PRTPTR
|
||||
BEQ 2$
|
||||
MOVB @PRTPTR,@#177566
|
||||
INC PRTPTR
|
||||
RTI
|
||||
TSTB @PRTPTR
|
||||
BEQ 2$
|
||||
MOVB @PRTPTR,@#177566
|
||||
INC PRTPTR
|
||||
RTI
|
||||
2$: CLRB @#177564
|
||||
RTI
|
||||
RTI
|
||||
|
||||
BUFFER: .WORD 0 ; INPUT BUFFER POINTER
|
||||
LENGTH: .WORD 0 ; INPUT BUFFER LENGTH
|
||||
|
||||
INPUT:
|
||||
MOV R0,BUFFER
|
||||
CLR LENGTH
|
||||
MOV #INPAST,@#60
|
||||
MOV #200,@#62
|
||||
BISB #100,@#177560
|
||||
RTS PC
|
||||
MOV R0,BUFFER
|
||||
CLR LENGTH
|
||||
MOV #INPAST,@#60
|
||||
MOV #200,@#62
|
||||
BISB #100,@#177560
|
||||
RTS PC
|
||||
|
||||
INPAST:
|
||||
MOV R0,-(SP)
|
||||
MOVB @#177562,R0
|
||||
CMPB R0,#15
|
||||
BEQ 7$ ; CARRIAGE RETURN
|
||||
CMPB R0,#127.
|
||||
BEQ 2$ ; <DEL>
|
||||
CMPB R0,#10
|
||||
BNE 4$ ; BACK SPACE
|
||||
MOV R0,-(SP)
|
||||
MOVB @#177562,R0
|
||||
CMPB R0,#15
|
||||
BEQ 7$ ; CARRIAGE RETURN
|
||||
CMPB R0,#127.
|
||||
BEQ 2$ ; <DEL>
|
||||
CMPB R0,#10
|
||||
BNE 4$ ; BACK SPACE
|
||||
2$: TST LENGTH ; DATA IN BUFFER?
|
||||
BEQ 3$
|
||||
DEC LENGTH ; LENGTH
|
||||
MOV #DEL,R0
|
||||
JSR PC,PRINT
|
||||
BEQ 3$
|
||||
DEC LENGTH ; LENGTH
|
||||
MOV #DEL,R0
|
||||
JSR PC,PRINT
|
||||
3$: BR 9$
|
||||
4$: CMPB R0,#40
|
||||
BLT 9$ ; BELOW SPACE
|
||||
CMPB R0,#177
|
||||
BGE 9$ ; SKIP STUFF TOO BIG
|
||||
JSR PC,ONECHR ; ECHO CHAR
|
||||
CMPB R0,#172
|
||||
BGT 5$ ; ABOVE Z
|
||||
CMPB R0,#141
|
||||
BLT 5$ ; BELOW A
|
||||
BICB #40,R0 ; CONVERT TO UPPER CASE
|
||||
BLT 9$ ; BELOW SPACE
|
||||
CMPB R0,#177
|
||||
BGE 9$ ; SKIP STUFF TOO BIG
|
||||
JSR PC,ONECHR ; ECHO CHAR
|
||||
CMPB R0,#172
|
||||
BGT 5$ ; ABOVE Z
|
||||
CMPB R0,#141
|
||||
BLT 5$ ; BELOW A
|
||||
BICB #40,R0 ; CONVERT TO UPPER CASE
|
||||
5$: CMP LENGTH,#254
|
||||
BGE 9$
|
||||
MOVB R0,-(SP)
|
||||
MOV BUFFER,R0
|
||||
ADD LENGTH,R0
|
||||
MOVB (SP)+,(R0)
|
||||
INC LENGTH
|
||||
BR 9$
|
||||
BGE 9$
|
||||
MOVB R0,-(SP)
|
||||
MOV BUFFER,R0
|
||||
ADD LENGTH,R0
|
||||
MOVB (SP)+,(R0)
|
||||
INC LENGTH
|
||||
BR 9$
|
||||
|
||||
7$: MOV BUFFER,R0
|
||||
ADD LENGTH,R0
|
||||
CLRB (R0)
|
||||
MOV #CMD,@#240 ; CALL CMD AT PRIORITY 2
|
||||
MOV #100,@#242
|
||||
MOV #2000,@#177772
|
||||
ADD LENGTH,R0
|
||||
CLRB (R0)
|
||||
MOV #CMD,@#240 ; CALL CMD AT PRIORITY 2
|
||||
MOV #100,@#242
|
||||
MOV #2000,@#177772
|
||||
9$: MOV (SP)+,R0
|
||||
RTI
|
||||
RTI
|
||||
|
||||
CMD:
|
||||
CLR @#177772 ; NO MORE PIR CALLS
|
||||
MOV R0,-(SP)
|
||||
MOV R1,-(SP)
|
||||
MOV R2,-(SP)
|
||||
MOV R3,-(SP)
|
||||
MOV R4,-(SP)
|
||||
MOV #EOL,R0
|
||||
JSR PC,PRINT
|
||||
CLR @#177772 ; NO MORE PIR CALLS
|
||||
MOV R0,-(SP)
|
||||
MOV R1,-(SP)
|
||||
MOV R2,-(SP)
|
||||
MOV R3,-(SP)
|
||||
MOV R4,-(SP)
|
||||
MOV #EOL,R0
|
||||
JSR PC,PRINT
|
||||
1$: BITB #100,@#177564
|
||||
BNE 1$
|
||||
CLR R4
|
||||
MOV #CMDLST,R3 ; CMD LIST
|
||||
BNE 1$
|
||||
CLR R4
|
||||
MOV #CMDLST,R3 ; CMD LIST
|
||||
3$: MOVB (R3)+,R0
|
||||
BEQ 13$
|
||||
MOV BUFFER,R2 ; USER CMD
|
||||
BEQ 13$
|
||||
MOV BUFFER,R2 ; USER CMD
|
||||
4$: MOVB (R2)+,R1
|
||||
BEQ 15$ ; NULL COMMAND?
|
||||
CMPB R1,#40
|
||||
BEQ 4$ ; SKIP SPACE
|
||||
BEQ 15$ ; NULL COMMAND?
|
||||
CMPB R1,#40
|
||||
BEQ 4$ ; SKIP SPACE
|
||||
5$: CMPB R0,R1
|
||||
BNE 7$
|
||||
MOVB (R3)+,R0
|
||||
BEQ 9$
|
||||
MOVB (R2)+,R1
|
||||
BEQ 9$
|
||||
CMPB R1,#40
|
||||
BNE 5$
|
||||
BR 9$
|
||||
BNE 7$
|
||||
MOVB (R3)+,R0
|
||||
BEQ 9$
|
||||
MOVB (R2)+,R1
|
||||
BEQ 9$
|
||||
CMPB R1,#40
|
||||
BNE 5$
|
||||
BR 9$
|
||||
7$: MOVB (R3)+,R0
|
||||
BNE 7$
|
||||
INC R4
|
||||
BR 3$
|
||||
BNE 7$
|
||||
INC R4
|
||||
BR 3$
|
||||
9$: ASL R4
|
||||
JSR PC,@CMDTBL(R4) ; EXECUTE
|
||||
BR 15$
|
||||
JSR PC,@CMDTBL(R4) ; EXECUTE
|
||||
BR 15$
|
||||
|
||||
13$: MOV #UNKMSG,R0
|
||||
JSR PC,PRINT
|
||||
JSR PC,PRINT
|
||||
|
||||
15$: CLR LENGTH
|
||||
MOV #PROMPT,R0
|
||||
JSR PC,PRINT
|
||||
MOV (SP)+,R4
|
||||
MOV (SP)+,R3
|
||||
MOV (SP)+,R2
|
||||
MOV (SP)+,R1
|
||||
MOV (SP)+,R0
|
||||
RTI
|
||||
MOV #PROMPT,R0
|
||||
JSR PC,PRINT
|
||||
MOV (SP)+,R4
|
||||
MOV (SP)+,R3
|
||||
MOV (SP)+,R2
|
||||
MOV (SP)+,R1
|
||||
MOV (SP)+,R0
|
||||
RTI
|
||||
|
||||
|
||||
CMDTBL: .WORD BOOT,HALT,TEST,LIGHTS,HELP
|
||||
HLPMSG: .ASCIZ 'COMMANDS ARE BOOT, HALT, LIGHTS, TEST AND HELP'<15><12>'BOOT DEVICES ARE RK? RL? OR RP?'<15><12>
|
||||
CMDTBL: .WORD BOOT,HALT,TEST,DIAG,LIGHTS,HELP
|
||||
HLPMSG: .ASCIZ 'COMMANDS ARE BOOT, HALT, TEST, DIAG, LIGHTS AND HELP'<15><12>'BOOT DEVICES ARE RK? RL? OR RP?'<15><12>
|
||||
EOL: .BYTE 15,12,0
|
||||
DEL: .BYTE 10,40,10,0
|
||||
CMDLST: .ASCIZ 'BOOT'
|
||||
.ASCIZ 'HALT'
|
||||
.ASCIZ 'TEST'
|
||||
.ASCIZ 'LIGHTS'
|
||||
.ASCIZ 'HELP'
|
||||
.BYTE 0
|
||||
.ASCIZ 'HALT'
|
||||
.ASCIZ 'TEST'
|
||||
.ASCIZ 'DIAG'
|
||||
.ASCIZ 'LIGHTS'
|
||||
.ASCIZ 'HELP'
|
||||
.BYTE 0
|
||||
UNKMSG: .ASCIZ 'UNKNOWN COMMAND'<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>
|
||||
LOOMSG: .ASCIZ ' ITERATIONS'<12><15>
|
||||
|
||||
.EVEN
|
||||
.EVEN
|
||||
|
||||
HELP:
|
||||
MOV #HLPMSG,R0
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
MOV #HLPMSG,R0
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
|
||||
HALT:
|
||||
HALT
|
||||
MOV #EOL,R0
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
HALT
|
||||
MOV #EOL,R0
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
|
||||
TEST:
|
||||
CLR CLKTIC
|
||||
CLR CLKTIC
|
||||
|
||||
MOV #15000,R5
|
||||
MOV #15000,R5
|
||||
10$: MOV R5,@#177570 ; DISPLAY
|
||||
MOV R5,R4
|
||||
ASR R4
|
||||
MOV R5,R4
|
||||
ASR R4
|
||||
15$: CLR R0
|
||||
MOV R5,R1
|
||||
DIV R4,R0
|
||||
MOV R0,R2
|
||||
MUL R4,R2
|
||||
ADD R3,R1
|
||||
CMP R1,R5
|
||||
BEQ 20$
|
||||
HALT
|
||||
MOV R5,R1
|
||||
DIV R4,R0
|
||||
MOV R0,R2
|
||||
MUL R4,R2
|
||||
ADD R3,R1
|
||||
CMP R1,R5
|
||||
BEQ 20$
|
||||
HALT
|
||||
20$: SOB R4,15$
|
||||
SOB R5,10$
|
||||
SOB R5,10$
|
||||
|
||||
MOV #PERMSG+5,R0
|
||||
MOV CLKTIC,R3
|
||||
MOV #PERMSG+5,R0
|
||||
MOV CLKTIC,R3
|
||||
|
||||
25$: CLR R2
|
||||
DIV #10,R2
|
||||
ADD #'0,R3
|
||||
MOVB R3,-(R0)
|
||||
MOV R2,R3
|
||||
BNE 25$
|
||||
DIV #10,R2
|
||||
ADD #'0,R3
|
||||
MOVB R3,-(R0)
|
||||
MOV R2,R3
|
||||
BNE 25$
|
||||
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
|
||||
LOOCNT: .WORD 0
|
||||
|
||||
DIAG:
|
||||
CLR LOOCNT
|
||||
CLR CLKTIC
|
||||
DIAGLP:
|
||||
CLR R5
|
||||
BMI L1
|
||||
BVS L1
|
||||
BHI L1
|
||||
BLT L1
|
||||
BLOS L2
|
||||
L1: HALT
|
||||
|
||||
L2: DEC R5
|
||||
BPL L3
|
||||
BEQ L3
|
||||
BGE L3
|
||||
BLE L4
|
||||
L3: HALT
|
||||
|
||||
L4: ROR R5
|
||||
BVC L5
|
||||
BCC L5
|
||||
BNE L6
|
||||
L5: HALT
|
||||
|
||||
L6: MOVB #17,@#177776
|
||||
BPL L7
|
||||
BVC L7
|
||||
BLT L7
|
||||
BHI L7
|
||||
BMI L8
|
||||
L7: HALT
|
||||
|
||||
L8: MOV #77777,R3
|
||||
ADD #77777,R3
|
||||
CMPB @#177776,#5
|
||||
BNE L9
|
||||
HALT
|
||||
|
||||
L9: MOVB #1700,R4
|
||||
BPL L10
|
||||
CMP R4,#177700
|
||||
BEQ L11
|
||||
L10: HALT
|
||||
|
||||
L11: CLRB R4
|
||||
CMP R4,#177400
|
||||
BEQ L12
|
||||
HALT
|
||||
|
||||
L12: MOV #125252,R5
|
||||
MOV R5,R0
|
||||
MOV R0,R1
|
||||
MOV R1,R2
|
||||
MOV R2,R3
|
||||
MOV R3,R4
|
||||
MOV R4,R5
|
||||
SUB R5,R1
|
||||
BLT NODIAG
|
||||
BEQ L13
|
||||
NODIAG: HALT
|
||||
|
||||
L13: ROL R2
|
||||
BCC L14
|
||||
BLT L15
|
||||
L14: HALT
|
||||
|
||||
L15: ADD R2,R3
|
||||
INC R3
|
||||
COM R3
|
||||
ADD R3,R1
|
||||
BCS L16
|
||||
BLE L17
|
||||
L16: HALT
|
||||
|
||||
L17: ROR R4
|
||||
BIS R4,R3
|
||||
ADD R5,R3
|
||||
INC R3
|
||||
BCS L18
|
||||
DEC R1
|
||||
BLT L19
|
||||
L18: HALT
|
||||
|
||||
L19: COM R0
|
||||
BLOS L20
|
||||
HALT
|
||||
|
||||
L20: BIC R0,R1
|
||||
ADD R1,R1
|
||||
BGT L21
|
||||
BLE L22
|
||||
L21: HALT
|
||||
|
||||
L22: SWAB R1
|
||||
CMP R1,#052125
|
||||
BNE L23
|
||||
BIT R4,R5
|
||||
BGT L23
|
||||
COM R5
|
||||
BNE L24
|
||||
L23: HALT
|
||||
|
||||
L24: MOVB #177401,R0
|
||||
BPL L26
|
||||
L25: HALT
|
||||
|
||||
L26: SOB R0,L25
|
||||
CLR R1
|
||||
L27: INC R1
|
||||
SOB R0,L27
|
||||
TST R0
|
||||
BNE L28
|
||||
TST R1
|
||||
BEQ L29
|
||||
L28: HALT
|
||||
|
||||
L29: MOV #N1,PC
|
||||
HALT
|
||||
|
||||
N1: TST (PC)+
|
||||
HALT
|
||||
|
||||
N2: MOV #N3,-(SP)
|
||||
RTS PC
|
||||
HALT
|
||||
|
||||
N3: CLR -(SP)
|
||||
MOV #N4,-(SP)
|
||||
RTI
|
||||
HALT
|
||||
|
||||
N4: JMP @#N5
|
||||
HALT
|
||||
|
||||
N5: MOV #3,R5
|
||||
CLR @#6
|
||||
MOV #N6,@#4
|
||||
TST -(R5)
|
||||
HALT
|
||||
N6: ADD #4,SP
|
||||
|
||||
CLR R0
|
||||
MOV #7777,R1
|
||||
N7: MOV R0,R2
|
||||
ADD #5,R2
|
||||
CMP (R0)+,-5(R2)
|
||||
BEQ N8
|
||||
HALT
|
||||
D1: .WORD 0
|
||||
|
||||
N8: SOB R1,N7
|
||||
|
||||
INC LOOCNT
|
||||
BCC 10$
|
||||
HALT
|
||||
10$: CMP CLKTIC,#2200
|
||||
BHI 20$
|
||||
JMP DIAGLP
|
||||
20$: MOV #LOOMSG+5,R0
|
||||
MOV LOOCNT,R3
|
||||
|
||||
25$: CLR R2
|
||||
DIV #10,R2
|
||||
ADD #'0,R3
|
||||
MOVB R3,-(R0)
|
||||
MOV R2,R3
|
||||
BNE 25$
|
||||
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
|
||||
MMR0=177572
|
||||
MMR1=177574
|
||||
|
|
@ -266,228 +441,228 @@ The **BOOTMON.mac** source code is shown below.
|
|||
MMR3=172516
|
||||
|
||||
LIGHTS:
|
||||
MOV #77406,R3 ; DEFAULT PDR
|
||||
CLR R2
|
||||
CLR R1
|
||||
MOV #8.,R0
|
||||
MOV #77406,R3 ; DEFAULT PDR
|
||||
CLR R2
|
||||
CLR R1
|
||||
MOV #8.,R0
|
||||
1$: MOV R3,172300(R1) ; KERNEL I PDR
|
||||
MOV R2,172340(R1) ; KERNEL I PAR
|
||||
MOV R3,172320(R1) ; KERNEL D PDR
|
||||
MOV R2,172360(R1) ; KERNEL D PAR
|
||||
MOV R3,172200(R1) ; SUPER I PDR
|
||||
MOV R2,172240(R1) ; SUPER I PAR
|
||||
MOV R3,172220(R1) ; SUPER D PDR
|
||||
MOV R2,172260(R1) ; SUPER D PAR
|
||||
MOV R3,177600(R1) ; USER I PDR
|
||||
MOV R2,177640(R1) ; USER I PAR
|
||||
MOV R3,177620(R1) ; USER D PDR
|
||||
MOV R3,177660(R1) ; USER D PAR
|
||||
ADD #200,R2
|
||||
ADD #2,R1
|
||||
SOB R0,1$
|
||||
BIS #176000,@#172376 ; KERNEL D POINTS TO I/O SPACE
|
||||
BIS #176000,@#172276 ; SUPER D POINTS TO I/O SPACE
|
||||
BIS #176000,@#177676 ; USER D POINTS TO I/O SPACE
|
||||
MOV #77,@#MMR3 ; 77 FOR 22 BIT
|
||||
MOV #1,@#MMR0
|
||||
MOV R2,172340(R1) ; KERNEL I PAR
|
||||
MOV R3,172320(R1) ; KERNEL D PDR
|
||||
MOV R2,172360(R1) ; KERNEL D PAR
|
||||
MOV R3,172200(R1) ; SUPER I PDR
|
||||
MOV R2,172240(R1) ; SUPER I PAR
|
||||
MOV R3,172220(R1) ; SUPER D PDR
|
||||
MOV R2,172260(R1) ; SUPER D PAR
|
||||
MOV R3,177600(R1) ; USER I PDR
|
||||
MOV R2,177640(R1) ; USER I PAR
|
||||
MOV R3,177620(R1) ; USER D PDR
|
||||
MOV R3,177660(R1) ; USER D PAR
|
||||
ADD #200,R2
|
||||
ADD #2,R1
|
||||
SOB R0,1$
|
||||
BIS #176000,@#172376 ; KERNEL D POINTS TO I/O SPACE
|
||||
BIS #176000,@#172276 ; SUPER D POINTS TO I/O SPACE
|
||||
BIS #176000,@#177676 ; USER D POINTS TO I/O SPACE
|
||||
MOV #77,@#MMR3 ; 77 FOR 22 BIT
|
||||
MOV #1,@#MMR0
|
||||
|
||||
MOV #1700,@#172244 ; BASE SUPER I (PAR 2) #40000 AT #170000
|
||||
MOV #1700,@#172264 ; BASE SUPER D (PAR 2) #40000 AT #170000
|
||||
MOV #010000,@#177776 ; SET PM TO SUPER
|
||||
MOV #1700,@#172244 ; BASE SUPER I (PAR 2) #40000 AT #170000
|
||||
MOV #1700,@#172264 ; BASE SUPER D (PAR 2) #40000 AT #170000
|
||||
MOV #010000,@#177776 ; SET PM TO SUPER
|
||||
|
||||
MOV #40200,R3 ; SUPER CODE ADDRESS
|
||||
MOV #SUPERS,R2 ; ADDRESS SUPER CODE
|
||||
MOV #40200,R3 ; SUPER CODE ADDRESS
|
||||
MOV #SUPERS,R2 ; ADDRESS SUPER CODE
|
||||
10$: MOV (R2)+,-(SP)
|
||||
MTPI (R3)+
|
||||
CMP R2,#SUPERE
|
||||
BLO 10$
|
||||
MTPI (R3)+
|
||||
CMP R2,#SUPERE
|
||||
BLO 10$
|
||||
|
||||
MOV #40200,LGHTON ; CHANGE IDLE TASK
|
||||
RTS PC
|
||||
MOV #40200,LGHTON ; CHANGE IDLE TASK
|
||||
RTS PC
|
||||
|
||||
;
|
||||
; TO BE COPIED TO SUPER #40200 AT PHYSICAL #170000
|
||||
; #40000 TO #40200 FOR WAIT & JMP INSTRUCTIONS
|
||||
;
|
||||
SUPERS:
|
||||
MOV #37,R0 ; LOAD PATTERN
|
||||
MOV #174000,R1
|
||||
BIT #1,@#177570
|
||||
BEQ 10$
|
||||
MOV #7417,R0
|
||||
MOV R0,R1
|
||||
COM R1
|
||||
BIT #2,@#177570
|
||||
BEQ 10$
|
||||
MOV #36163,R0
|
||||
MOV #37000,R1
|
||||
MOV #37,R0 ; LOAD PATTERN
|
||||
MOV #174000,R1
|
||||
BIT #1,@#177570
|
||||
BEQ 10$
|
||||
MOV #7417,R0
|
||||
MOV R0,R1
|
||||
COM R1
|
||||
BIT #2,@#177570
|
||||
BEQ 10$
|
||||
MOV #36163,R0
|
||||
MOV #37000,R1
|
||||
10$: MOV R1,R2
|
||||
SUB #2,R2
|
||||
BIC #1,R2 ; WAIT ADDRESS
|
||||
MOV R2,R3
|
||||
BIC #177701,R3 ; ADDRESS OFFSET
|
||||
MOV #0000001,40000(R3) ; WRITE WAIT
|
||||
ADD #2,R3
|
||||
MOV #0000113,40000(R3) ; WRITE JMP (R3)
|
||||
SUB #2,R2
|
||||
BIC #1,R2 ; WAIT ADDRESS
|
||||
MOV R2,R3
|
||||
BIC #177701,R3 ; ADDRESS OFFSET
|
||||
MOV #0000001,40000(R3) ; WRITE WAIT
|
||||
ADD #2,R3
|
||||
MOV #0000113,40000(R3) ; WRITE JMP (R3)
|
||||
|
||||
MOV R2,R4
|
||||
ASH #-6,R4
|
||||
BIC #177600,R4
|
||||
MOV #1700,R5
|
||||
SUB R4,R5 ; PAR ADDRESS BASE FOR WAIT
|
||||
MOV R2,R4
|
||||
ASH #-12.,R4
|
||||
BIC #177761,R4 ; PAR SELECT OFFSET
|
||||
MOV R5,172240(R4) ; SUPER I SPACE
|
||||
MOV R2,R4
|
||||
ASH #-6,R4
|
||||
BIC #177600,R4
|
||||
MOV #1700,R5
|
||||
SUB R4,R5 ; PAR ADDRESS BASE FOR WAIT
|
||||
MOV R2,R4
|
||||
ASH #-12.,R4
|
||||
BIC #177761,R4 ; PAR SELECT OFFSET
|
||||
MOV R5,172240(R4) ; SUPER I SPACE
|
||||
|
||||
MOV R1,R3
|
||||
ASH #-12.,R3
|
||||
BIC #177761,R3 ; PAR SELECT OFFSET
|
||||
CMP R3,R4 ; SAME PAR
|
||||
BEQ 30$
|
||||
MOV R1,R4
|
||||
ASH #-6,R4
|
||||
BIC #177600,R4
|
||||
MOV #1700,R5
|
||||
SUB R4,R5 ; PAR ADDRESS BASE FOR JMP
|
||||
MOV R5,172240(R3) ; SUPER I SPACE
|
||||
MOV R1,R3
|
||||
ASH #-12.,R3
|
||||
BIC #177761,R3 ; PAR SELECT OFFSET
|
||||
CMP R3,R4 ; SAME PAR
|
||||
BEQ 30$
|
||||
MOV R1,R4
|
||||
ASH #-6,R4
|
||||
BIC #177600,R4
|
||||
MOV #1700,R5
|
||||
SUB R4,R5 ; PAR ADDRESS BASE FOR JMP
|
||||
MOV R5,172240(R3) ; SUPER I SPACE
|
||||
30$:
|
||||
MOV #3,R4
|
||||
ADD @#177570,R4
|
||||
MOV #2,R3
|
||||
ADD PC,R3
|
||||
MOV #3,R4
|
||||
ADD @#177570,R4
|
||||
MOV #2,R3
|
||||
ADD PC,R3
|
||||
40$: JMP (R2)
|
||||
SOB R4,40$
|
||||
MOV R0,R2
|
||||
ROR R2 ; ROTATE PATTERN
|
||||
ROL R1
|
||||
ROR R0
|
||||
BR 10$
|
||||
SOB R4,40$
|
||||
MOV R0,R2
|
||||
ROR R2 ; ROTATE PATTERN
|
||||
ROL R1
|
||||
ROR R0
|
||||
BR 10$
|
||||
SUPERE:
|
||||
|
||||
BOOT:
|
||||
CLR R3 ; UNIT
|
||||
CLR R3 ; UNIT
|
||||
1$: MOVB (R2)+,R1
|
||||
BEQ BOOTRK ; DEFAULT DEVICE IS RK0
|
||||
CMPB R1,#40
|
||||
BEQ 1$
|
||||
CMPB R1,#'R
|
||||
BEQ 5$
|
||||
BEQ BOOTRK ; DEFAULT DEVICE IS RK0
|
||||
CMPB R1,#40
|
||||
BEQ 1$
|
||||
CMPB R1,#'R
|
||||
BEQ 5$
|
||||
|
||||
MOV #BADBOO,R0
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
MOV #BADBOO,R0
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
|
||||
5$: MOVB (R2)+,R1 ; HOPEFULLY K, L OR P
|
||||
7$: MOVB (R2)+,R0 ; DIGIT
|
||||
BEQ 9$
|
||||
CMPB R0,#40
|
||||
BEQ 9$
|
||||
CMPB R0,#'7
|
||||
BGT 11$
|
||||
SUB #'0,R0
|
||||
BLT 11$
|
||||
ASL R3
|
||||
ASL R3
|
||||
ASL R3
|
||||
BIS R0,R3 ; PUT DIGIT INTO UNIT
|
||||
BR 7$
|
||||
BEQ 9$
|
||||
CMPB R0,#40
|
||||
BEQ 9$
|
||||
CMPB R0,#'7
|
||||
BGT 11$
|
||||
SUB #'0,R0
|
||||
BLT 11$
|
||||
ASL R3
|
||||
ASL R3
|
||||
ASL R3
|
||||
BIS R0,R3 ; PUT DIGIT INTO UNIT
|
||||
BR 7$
|
||||
9$: CLR R2
|
||||
MOV #137,(R2)+ ; STORE "JMP @#140000" INSTRUCTION AT ADDRESS 0
|
||||
MOV #START,(R2)+
|
||||
MOV #START,(R2)+ ; STORE #140000 IN VECTOR 4, IN CASE OF TRAP TO 4
|
||||
CLR (R2)+
|
||||
CMPB R1,#'K
|
||||
BEQ BOOTRK
|
||||
CMPB R1,#'L
|
||||
BEQ BOOTRL
|
||||
CMPB R1,#'P
|
||||
BEQ BOOTRP
|
||||
MOV #137,(R2)+ ; STORE "JMP @#140000" INSTRUCTION AT ADDRESS 0
|
||||
MOV #START,(R2)+
|
||||
MOV #START,(R2)+ ; STORE #140000 IN VECTOR 4, IN CASE OF TRAP TO 4
|
||||
CLR (R2)+
|
||||
CMPB R1,#'K
|
||||
BEQ BOOTRK
|
||||
CMPB R1,#'L
|
||||
BEQ BOOTRL
|
||||
CMPB R1,#'P
|
||||
BEQ BOOTRP
|
||||
|
||||
11$: MOV #UNKMSG,R0
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
|
||||
RLCS=174400
|
||||
BOOTRL:
|
||||
RESET
|
||||
SWAB R3 ; UNIT NUMBER
|
||||
MOV #RLCS,R1 ; CSR
|
||||
MOV #13,4(R1) ; CLR ERR
|
||||
BIS #4,R3 ; UNIT+GSTAT
|
||||
MOV R3,(R1) ; ISSUE CMD
|
||||
TSTB (R1) ; WAIT
|
||||
BPL .-2
|
||||
CLRB R3
|
||||
BIS #10,R3 ; UNIT+RDHDR
|
||||
MOV R3,(R1) ; ISSUE CMD
|
||||
TSTB (R1) ; WAIT
|
||||
BPL .-2
|
||||
MOV 6(R1),R2 ; GET HDR
|
||||
BIC #77,R2 ; CLR SECTOR
|
||||
INC R2 ; MAGIC BIT
|
||||
MOV R2,4(R1) ; SEEK TO 0
|
||||
CLRB R3
|
||||
BIS #6,R3 ; UNIT+SEEK
|
||||
MOV R3,(R1) ; ISSUE CMD
|
||||
TSTB (R1) ; WAIT
|
||||
BPL .-2
|
||||
CLR 2(R1) ; CLR BA
|
||||
CLR 4(R1) ; CLR DA
|
||||
MOV #-512.,6(R1) ; SET WC
|
||||
CLRB R3
|
||||
BIS #14,R3 ; UNIT+READ
|
||||
MOV R3,(R1) ; ISSUE CMD
|
||||
TSTB (R1) ; WAIT
|
||||
BPL .-2
|
||||
BIC #377,(R1)
|
||||
CLR R2
|
||||
CLR R3
|
||||
CLR R4
|
||||
CLR R5
|
||||
CLR PC
|
||||
RESET
|
||||
SWAB R3 ; UNIT NUMBER
|
||||
MOV #RLCS,R1 ; CSR
|
||||
MOV #13,4(R1) ; CLR ERR
|
||||
BIS #4,R3 ; UNIT+GSTAT
|
||||
MOV R3,(R1) ; ISSUE CMD
|
||||
TSTB (R1) ; WAIT
|
||||
BPL .-2
|
||||
CLRB R3
|
||||
BIS #10,R3 ; UNIT+RDHDR
|
||||
MOV R3,(R1) ; ISSUE CMD
|
||||
TSTB (R1) ; WAIT
|
||||
BPL .-2
|
||||
MOV 6(R1),R2 ; GET HDR
|
||||
BIC #77,R2 ; CLR SECTOR
|
||||
INC R2 ; MAGIC BIT
|
||||
MOV R2,4(R1) ; SEEK TO 0
|
||||
CLRB R3
|
||||
BIS #6,R3 ; UNIT+SEEK
|
||||
MOV R3,(R1) ; ISSUE CMD
|
||||
TSTB (R1) ; WAIT
|
||||
BPL .-2
|
||||
CLR 2(R1) ; CLR BA
|
||||
CLR 4(R1) ; CLR DA
|
||||
MOV #-512.,6(R1) ; SET WC
|
||||
CLRB R3
|
||||
BIS #14,R3 ; UNIT+READ
|
||||
MOV R3,(R1) ; ISSUE CMD
|
||||
TSTB (R1) ; WAIT
|
||||
BPL .-2
|
||||
BIC #377,(R1)
|
||||
CLR R2
|
||||
CLR R3
|
||||
CLR R4
|
||||
CLR R5
|
||||
CLR PC
|
||||
|
||||
RKDA=177412
|
||||
READGO=5
|
||||
BOOTRK:
|
||||
RESET
|
||||
SWAB R3 ; UNIT NUMBER
|
||||
ASL R3
|
||||
ASL R3
|
||||
ASL R3
|
||||
ASL R3
|
||||
ASL R3
|
||||
MOV #RKDA,R1 ; CSR
|
||||
MOV R3,(R1) ; LOAD DA
|
||||
CLR -(R1) ; CLEAR BA
|
||||
MOV #-256.*2,-(R1) ; LOAD WC
|
||||
MOV #READGO,-(R1) ; READ & GO
|
||||
CLR R2
|
||||
CLR R3
|
||||
CLR R4
|
||||
CLR R5
|
||||
TSTB (R1)
|
||||
BPL .-2
|
||||
CLRB (R1)
|
||||
CLR PC
|
||||
RESET
|
||||
SWAB R3 ; UNIT NUMBER
|
||||
ASL R3
|
||||
ASL R3
|
||||
ASL R3
|
||||
ASL R3
|
||||
ASL R3
|
||||
MOV #RKDA,R1 ; CSR
|
||||
MOV R3,(R1) ; LOAD DA
|
||||
CLR -(R1) ; CLEAR BA
|
||||
MOV #-256.*2,-(R1) ; LOAD WC
|
||||
MOV #READGO,-(R1) ; READ & GO
|
||||
CLR R2
|
||||
CLR R3
|
||||
CLR R4
|
||||
CLR R5
|
||||
TSTB (R1)
|
||||
BPL .-2
|
||||
CLRB (R1)
|
||||
CLR PC
|
||||
|
||||
RPCSR=0176700
|
||||
BOOTRP:
|
||||
RESET
|
||||
MOV #RPCSR, R1
|
||||
MOV #0000040, 10(R1) ; RESET
|
||||
MOV R3, 10(R1) ; SET UNIT
|
||||
MOV #0000021, (R1) ; PACK ACK
|
||||
MOV #0010000, 32(R1) ; 16B MODE
|
||||
MOV #-512., 2(R1) ; SET WC
|
||||
CLR 4(R1) ; CLR BA
|
||||
CLR 6(R1) ; CLR DA
|
||||
CLR 34(R1) ; CLR CYL
|
||||
MOV #0000071, (R1) ; READ
|
||||
TSTB (R1) ; WAIT
|
||||
BPL .-2
|
||||
CLRB (R1)
|
||||
MOV R3,R0
|
||||
CLR PC
|
||||
RESET
|
||||
MOV #RPCSR, R1
|
||||
MOV #0000040, 10(R1) ; RESET
|
||||
MOV R3, 10(R1) ; SET UNIT
|
||||
MOV #0000021, (R1) ; PACK ACK
|
||||
MOV #0010000, 32(R1) ; 16B MODE
|
||||
MOV #-512., 2(R1) ; SET WC
|
||||
CLR 4(R1) ; CLR BA
|
||||
CLR 6(R1) ; CLR DA
|
||||
CLR 34(R1) ; CLR CYL
|
||||
MOV #0000071, (R1) ; READ
|
||||
TSTB (R1) ; WAIT
|
||||
BPL .-2
|
||||
CLRB (R1)
|
||||
MOV R3,R0
|
||||
CLR PC
|
||||
|
||||
.END START
|
||||
.END START
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ BOOTMON.txt: BOOTMON.mac
|
|||
macro11 BOOTMON.mac -l BOOTMON.txt
|
||||
|
||||
BOOTMON.json: BOOTMON.txt
|
||||
node ../../../../modules/filedump/bin/filedump --file=BOOTMON.txt --format=octal --output=BOOTMON.json --overwrite
|
||||
node ../../../../modules/filedump/bin/filedump --file=BOOTMON.txt --format=octal --output=BOOTMON.json --load=0xC000 --exec=0xC000 --overwrite
|
||||
|
||||
BOOTMON.md: BOOTMON.mac
|
||||
tabify -8 -d BOOTMON.mac > BOOTMON.md
|
||||
|
|
|
|||
|
|
@ -254,8 +254,8 @@ CPUStatePDP11.prototype.resetMMU = function()
|
|||
this.mmuLastMode = 0;
|
||||
this.mmuMask = 0x3ffff;
|
||||
|
||||
this.lastAI = 0; // last auto-incs and/or auto-decs; this gets propagated to MMR1
|
||||
this.lastPC = 0; // last PC at the time of getOpcode(); this get propagated to MMR2
|
||||
this.lastAI = 0; // last auto-incs and/or auto-decs; this is propagated to MMR1 as appropriate
|
||||
this.lastPC = 0; // last PC at the time of getOpcode(); this is propagated to MMR2 as appropriate
|
||||
|
||||
this.resetTriggers();
|
||||
|
||||
|
|
@ -327,6 +327,15 @@ CPUStatePDP11.prototype.setMMR0 = function(newMMR0)
|
|||
{
|
||||
newMMR0 &= 0xf381;
|
||||
if (this.regMMR0 != newMMR0) {
|
||||
/*
|
||||
* If updates to MMR1 and MMR2 are being shut off (ie, MMR0.ABORT bits are transitioning from clear to set),
|
||||
* then do one final sync with their real-time counterparts (lastAI and lastPC).
|
||||
*/
|
||||
if (!(this.regMMR0 & PDP11.MMR0.ABORT) && (newMMR0 & PDP11.MMR0.ABORT)) {
|
||||
this.assert(!(this.lastAI & ~0xffff));
|
||||
this.regMMR1 = this.lastAI & 0xffff;
|
||||
this.regMMR2 = this.lastPC;
|
||||
}
|
||||
this.regMMR0 = newMMR0;
|
||||
this.mmuLastMode = (newMMR0 >> 5) & 3;
|
||||
this.mmuLastPage = (newMMR0 >> 1) & 0xf;
|
||||
|
|
@ -352,7 +361,12 @@ CPUStatePDP11.prototype.setMMR0 = function(newMMR0)
|
|||
*/
|
||||
CPUStatePDP11.prototype.getMMR1 = function()
|
||||
{
|
||||
/*
|
||||
* If updates to MMR1 have not been shut off (ie, MMR0.ABORT bits are clear),
|
||||
* then we are always allowed to sync MMR1 with it real-time counterpart (lastAI).
|
||||
*/
|
||||
if (!(this.regMMR0 & PDP11.MMR0.ABORT)) {
|
||||
this.assert(!(this.lastAI & ~0xffff));
|
||||
this.regMMR1 = this.lastAI & 0xffff;
|
||||
}
|
||||
var result = this.regMMR1;
|
||||
|
|
@ -370,6 +384,10 @@ CPUStatePDP11.prototype.getMMR1 = function()
|
|||
*/
|
||||
CPUStatePDP11.prototype.getMMR2 = function()
|
||||
{
|
||||
/*
|
||||
* If updates to MMR2 have not been shut off (ie, MMR0.ABORT bits are clear),
|
||||
* then we are always allowed to sync MMR2 with it real-time counterpart (lastPC).
|
||||
*/
|
||||
if (!(this.regMMR0 & PDP11.MMR0.ABORT)) {
|
||||
this.regMMR2 = this.lastPC;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -559,7 +559,7 @@ if (DEBUGGER) {
|
|||
var fCompleted = false;
|
||||
if (!dbg.isBusy(true)) {
|
||||
dbg.setBusy(true);
|
||||
fCompleted = dbg.stepCPU(fRepeat? 1 : 0);
|
||||
fCompleted = dbg.stepCPU(fRepeat? 1 : 0, null);
|
||||
dbg.setBusy(false);
|
||||
}
|
||||
return fCompleted;
|
||||
|
|
@ -1317,7 +1317,7 @@ if (DEBUGGER) {
|
|||
*
|
||||
* @this {DebuggerPDP11}
|
||||
* @param {number} nCycles (0 for one instruction without checking breakpoints)
|
||||
* @param {boolean} [fRegs] is true to display registers after step (default is false)
|
||||
* @param {boolean|null} [fRegs] is true to display registers after step (default is false; use null for previous setting)
|
||||
* @param {boolean} [fUpdateDisplays] is false to disable Computer display updates (default is true)
|
||||
* @return {boolean}
|
||||
*/
|
||||
|
|
@ -1325,6 +1325,10 @@ if (DEBUGGER) {
|
|||
{
|
||||
if (!this.checkCPU()) return false;
|
||||
|
||||
if (fRegs === null) {
|
||||
fRegs = (!this.sTraceCmdPrev || this.sTraceCmdPrev == "tr");
|
||||
}
|
||||
|
||||
this.nCycles = 0;
|
||||
|
||||
if (!nCycles) {
|
||||
|
|
@ -2773,12 +2777,12 @@ if (DEBUGGER) {
|
|||
{
|
||||
if (sAddr == '?') {
|
||||
this.println("breakpoint commands:");
|
||||
this.println("\tbp [a]\tset exec breakpoint at addr [a]");
|
||||
this.println("\tbr [a]\tset read breakpoint at addr [a]");
|
||||
this.println("\tbw [a]\tset write breakpoint at addr [a]");
|
||||
this.println("\tbc [a]\tclear breakpoint at addr [a]");
|
||||
this.println("\tbp [#]\tset exec breakpoint at addr #");
|
||||
this.println("\tbr [#]\tset read breakpoint at addr #");
|
||||
this.println("\tbw [#]\tset write breakpoint at addr #");
|
||||
this.println("\tbc [#]\tclear breakpoint at addr #");
|
||||
this.println("\tbl\tlist all breakpoints");
|
||||
this.println("\tbn [n]\tbreak after [n] instruction(s)");
|
||||
this.println("\tbn [#]\tbreak after # instruction(s)");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -3681,6 +3685,15 @@ if (DEBUGGER) {
|
|||
*/
|
||||
DebuggerPDP11.prototype.doTrace = function(sCmd, sCount)
|
||||
{
|
||||
if (sCount == '?') {
|
||||
this.println("trace commands:");
|
||||
this.println("\tt [#]\ttrace # instructions");
|
||||
this.println("\ttr [#]\ttrace # instructions with register updates");
|
||||
this.println("\ttc [#]\ttrace # cycles");
|
||||
this.println("note: bn [#] to break after # instructions is much faster");
|
||||
return;
|
||||
}
|
||||
|
||||
var dbg = this;
|
||||
var fRegs = (sCmd != "t");
|
||||
var nCount = this.parseValue(sCount, null, true) || 1;
|
||||
|
|
@ -3689,6 +3702,7 @@ if (DEBUGGER) {
|
|||
nCycles = nCount;
|
||||
nCount = 1;
|
||||
}
|
||||
this.sTraceCmdPrev = sCmd;
|
||||
web.onCountRepeat(
|
||||
nCount,
|
||||
function onCountStep() {
|
||||
|
|
|
|||
|
|
@ -364,11 +364,11 @@ var PDP11 = {
|
|||
* is enabled, the top 5 bits of an address select one of the 31 mapping registers, and the bottom 13 bits
|
||||
* are then added to the contents of the selected mapping register.
|
||||
*
|
||||
* ES6 ALERT: By using octal constants, this is the first place I'm dipping my toe into ECMAScript 6 waters.
|
||||
* If you're loading this raw source code into your browser, then by now (2016) you're almost certainly using
|
||||
* an ES6-aware browser. Everyone else should be using code compiled by Google's Closure Compiler, which
|
||||
* we configure to produce code that's backward-compatible with ES5 (for example, octal constants are
|
||||
* converted to decimal values).
|
||||
* ES6 ALERT: By using octal constants, I'm finally dipping my toe into ES6 (aka ECMAScript 2015) waters.
|
||||
* You'll even see a few binary constants below, too. If you're loading this raw source code into your browser,
|
||||
* then by now (2016) you're almost certainly using an ES6-aware browser. Production sites should be using code
|
||||
* compiled by Google's Closure Compiler, which we configure to produce code that's backward-compatible with ES5
|
||||
* (for example, all binary, octal, and hex constants are converted to decimal values).
|
||||
*
|
||||
* For more details: https://github.com/google/closure-compiler/wiki/ECMAScript6
|
||||
*/
|
||||
|
|
@ -498,22 +498,22 @@ var PDP11 = {
|
|||
UDPAR6: 0o177674, // User D Page Address Register 6
|
||||
UDPAR7: 0o177676, // User D Page Address Register 7
|
||||
|
||||
R0SET0: 0o177700,
|
||||
R1SET0: 0o177701,
|
||||
R2SET0: 0o177702,
|
||||
R3SET0: 0o177703,
|
||||
R4SET0: 0o177704,
|
||||
R5SET0: 0o177705,
|
||||
R6KERNEL: 0o177706,
|
||||
R7KERNEL: 0o177707,
|
||||
R0SET1: 0o177710,
|
||||
R1SET1: 0o177711,
|
||||
R2SET1: 0o177712,
|
||||
R3SET1: 0o177713,
|
||||
R4SET1: 0o177714,
|
||||
R5SET1: 0o177715,
|
||||
R6SUPER: 0o177716,
|
||||
R6USER: 0o177717,
|
||||
R0SET0: 0o177700, //
|
||||
R1SET0: 0o177701, //
|
||||
R2SET0: 0o177702, //
|
||||
R3SET0: 0o177703, //
|
||||
R4SET0: 0o177704, //
|
||||
R5SET0: 0o177705, //
|
||||
R6KERNEL: 0o177706, //
|
||||
R7KERNEL: 0o177707, //
|
||||
R0SET1: 0o177710, //
|
||||
R1SET1: 0o177711, //
|
||||
R2SET1: 0o177712, //
|
||||
R3SET1: 0o177713, //
|
||||
R4SET1: 0o177714, //
|
||||
R5SET1: 0o177715, //
|
||||
R6SUPER: 0o177716, //
|
||||
R6USER: 0o177717, //
|
||||
|
||||
/*
|
||||
* This next group of registers is largely ignored; all accesses are routed to regsControl[],
|
||||
|
|
|
|||
|
|
@ -655,7 +655,7 @@ PanelPDP11.prototype.processContinue = function(value, index)
|
|||
var dbg = this.dbg;
|
||||
if (dbg && !dbg.isBusy(true)) {
|
||||
dbg.setBusy(true);
|
||||
dbg.stepCPU(0);
|
||||
dbg.stepCPU(0, null);
|
||||
dbg.setBusy(false);
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
Loading…
Reference in a new issue