Previous Thread
Next Thread
Print Thread
Page 24 of 41 1 2 22 23 24 25 26 40 41
Joined: May 2012
Posts: 568
Likes: 10
S
Senior Member
OP Online Content
Senior Member
S
Joined: May 2012
Posts: 568
Likes: 10
More progress. Added a PC11-type paper tape reader, reused a bit of code from SIMH (console terminal stuff, EIS insns emulation etc.) and now I can run paper-tape software -- for now, it's mostly tests.

ROM CPU tests and 2 of LSI-11 CPU tests (VKAA -- basic instructions, VKAB -- EIS) are passing. FIS test is failing, but this CPU has no hardware FIS support and it's emulated in ROM; unsure if real CPU passes these or not.

[Linked Image from img-fotki.yandex.ru]
MESS: МС1201.02 WIP - MAINDEC-11-DVKAA test passing

[Linked Image from img-fotki.yandex.ru]
MESS: МС1201.02 WIP - MAINDEC-11-DVKAB test passing

[Linked Image from img-fotki.yandex.ru]
MESS: МС1201.02 WIP - MAINDEC-11-DVKAC test failing

Joined: May 2012
Posts: 568
Likes: 10
S
Senior Member
OP Online Content
Senior Member
S
Joined: May 2012
Posts: 568
Likes: 10
With a bit of fakery (RESET insn does nothing in the current core), VKAH system exerciser is passing too:

[Linked Image from img-fotki.yandex.ru]
MESS: МС1201.02 WIP - MAINDEC-11-DVKAH test passing

and RT-11 (FTMON is reworked XXDP that runs under it) is also booting (with a bit of debugger magic for now):

[Linked Image from img-fotki.yandex.ru]
MESS: МС1201.02 WIP - FTMON running tests from virtual disk

Joined: May 2012
Posts: 568
Likes: 10
S
Senior Member
OP Online Content
Senior Member
S
Joined: May 2012
Posts: 568
Likes: 10
Two MESS instances talking to each other. This is actually how the real life setup was -- dvk_ksm is self-contained board with no data connection to the bus, so it has to be physically plugged in into host board via null-modem cable.

[Linked Image from img-fotki.yandex.ru]
MESS: emulated dvk_ksm talking to МС1201.02 WIP - FTMON

[Linked Image from img-fotki.yandex.ru]
MESS: emulated dvk_ksm talking to МС1201.02 WIP - FTMON running terminal test

Joined: Feb 2008
Posts: 326
M
Senior Member
Offline
Senior Member
M
Joined: Feb 2008
Posts: 326
nice work there. we should move into more work for pdp11 series.

Joined: May 2012
Posts: 568
Likes: 10
S
Senior Member
OP Online Content
Senior Member
S
Joined: May 2012
Posts: 568
Likes: 10
pdp11 world is mostly octal, so it would be useful to switch various parts of the code into octal mode (disassembler, trace logs, debugger etc.).

Also, triggering a bus error from default unmapped memory handler would be useful too.

(I've worked around both of these but obviously those hacks can't go in as is)

Joined: May 2012
Posts: 568
Likes: 10
S
Senior Member
OP Online Content
Senior Member
S
Joined: May 2012
Posts: 568
Likes: 10
Using set_input_line from unmapped memory handler to trigger a bus error in the CPU isn't good enough -- it's async and bus errors can happen at insn fetch time. Worked around this for now (moved bus error tracking to machine from cpu) and some more tests are passing.

Also, DIV emulation code from SIMH apparently isn't quite right (this is a test specifically written to exercise emulation of 1801VM2):

[Linked Image from img-fotki.yandex.ru]

Joined: Apr 2004
Posts: 1,563
Likes: 12
J
Very Senior Member
Offline
Very Senior Member
J
Joined: Apr 2004
Posts: 1,563
Likes: 12
Originally Posted by shattered
Using set_input_line from unmapped memory handler to trigger a bus error in the CPU isn't good enough -- it's async and bus errors can happen at insn fetch time. Worked around this for now (moved bus error tracking to machine from cpu) and some more tests are passing.


I ran into a similar problem while working on the gameboy driver. It should eventually be fixed once a cpu core becomes sub-cycle accurate. I worked around this by making the execute_set_input method public and calling that directly as well from the driver code.

It is still a hack but at least it prevents code duplication.

Joined: Jan 2011
Posts: 266
Likes: 4
Senior Member
Offline
Senior Member
Joined: Jan 2011
Posts: 266
Likes: 4
Originally Posted by shattered
Using set_input_line from unmapped memory handler to trigger a bus error in the CPU isn't good enough -- it's async and bus errors can happen at insn fetch time. Worked around this for now (moved bus error tracking to machine from cpu) and some more tests are passing.

Also, DIV emulation code from SIMH apparently isn't quite right (this is a test specifically written to exercise emulation of 1801VM2):

[Linked Image from img-fotki.yandex.ru]


if that is true, you should let bob supnik know (bob
at supnik.org)

Joined: May 2012
Posts: 568
Likes: 10
S
Senior Member
OP Online Content
Senior Member
S
Joined: May 2012
Posts: 568
Likes: 10
That's unverified for now.

Source code for tests 791401 (equivalent of VKAA) and 791404 (VKAH ??) -- https://github.com/nzeemin/bkbtl-doc/tree/master/Tests

C implementation of 1801VM1 core (converted from reverse-engineered Verilog model) -- http://zx-pk.ru/attachment.php?attachmentid=53262&d=1440679095

Joined: May 2012
Posts: 568
Likes: 10
S
Senior Member
OP Online Content
Senior Member
S
Joined: May 2012
Posts: 568
Likes: 10
z80daisy.cpp is a nice approximation of Qbus interrupt chain, and so some more tests are passing (f.e. VKAH, it does RESET right at the start). It does not support slot devices, though.

Lots more work to do, but here's what genuine RT-11 5.3 thinks of this emulator atm:

[Linked Image from img-fotki.yandex.ru]

Last edited by shattered; 07/01/16 09:09 PM.
Page 24 of 41 1 2 22 23 24 25 26 40 41

Link Copied to Clipboard
Who's Online Now
2 members (Kale, 1 invisible), 233 guests, and 1 robot.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,320
Posts121,923
Members5,074
Most Online1,283
Dec 21st, 2022
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Forum hosted by www.retrogamesformac.com