Dump IO poort in BlueMSX

Page 1/2
| 2

By edoz

Prophet (2172)

edoz's picture

27-06-2017, 15:08

Hi, does anyone know if it is possible in BlueMSX to dump the data from a specific IO port to a file? So you can see what data was send to the IO port? And maybe, other way around, that you can send data to an IO port (Maybe some data from a output file or so)

Login or register to post comments

By ARTRAG

Enlighted (6244)

ARTRAG's picture

27-06-2017, 19:23

Maybe openmsx, not bluemsx afaik

By Manuel

Ascended (15750)

Manuel's picture

27-06-2017, 21:32

You can do it in openMSX with a custom script. Let me know if you're interested.
For feeding the port from file content you have to think how fast the data should be offered. If this is possible at all, I'd have to check.

See https://www.msx.org/forum/msx-talk/openmsx/fake-io-port-usin... for some options :)

By igal

Master (211)

igal's picture

27-06-2017, 21:23

A few years ago, I had thought of storing on a media the I / O state of the VDP color bus.
The idea was:
I play a movie (DVD) on an msx with compositing like the NMS8280
10 COPY SCREEN0: ON STOP GOSUB 20: STOP ON: GOTO10
20 END

At the same time, I save the status of the "COLOR BUS" of the VDP and save the status of the color bus.

Last step, I inject into the color bus of the VDP, the previously saved state on CF, DSK or other.

Ultimately, the VDP should replay the image that was viewed when playing the DVD simply by injecting the I / O port status of the color bus.

Unfortunately, I never found an answer:
How do I save the status of the VDP COLOR BUS on a media? Eek!

By M2X_E1

Rookie (21)

M2X_E1's picture

29-08-2018, 21:51

I'm interested in outputting the port data, particularly repeated logs where the output changes.
Having difficulty setting up ROM in the openMSX at the moment, tried renaming roms, putting in the normal folder, etc.. will get there eventually.

On the subject of BlueMSX, I note that there is a view of the ports but none of these seem to change when writing output in assembly, do I have to enable port writing in msx using assembly?

Regards

By Manuel

Ascended (15750)

Manuel's picture

29-08-2018, 21:58

M2X_E1: openMSX looks at file content, not names. Just get the nice zip file on http://www.msxarchive.nl/pub/msx/emulator/openMSX/

The setup guide tells you where to put the ROMs: http://openmsx.org/manual/setup.html#installrom

By M2X_E1

Rookie (21)

M2X_E1's picture

29-08-2018, 22:35

Manuel wrote:

M2X_E1: openMSX looks at file content, not names. Just get the nice zip file on http://www.msxarchive.nl/pub/msx/emulator/openMSX/

The setup guide tells you where to put the ROMs: http://openmsx.org/manual/setup.html#installrom

Wow that worked a treat immediately, thanks Manuel :)
I've also got the openMSX debugger, cant see any option for viewing the io ports, though there is a hint of something under the view->add debuggable viewer (called MapperIO but is ghosted out).

Still some tinkering and figuring out to do, will try to focus my efforts on the software once I get the hw project out of the way.

Regards

By Manuel

Ascended (15750)

Manuel's picture

29-08-2018, 22:50

There is no debuggable that "shows" I/O ports. The ports are only a connection between the CPU and a device. There's no way to 'view' a port. Only what is read and what would be written to a port. But that cannot be put in a simple 'debuggable'.

What exactly do you want to achieve?

By M2X_E1

Rookie (21)

M2X_E1's picture

29-08-2018, 23:15

Hi Manuel,
I'm really looking to check that my program is actually writing to the output ports.
I've discovered that I can select debuggable hex view: ioports once the emulator is running. However all of the ports appear to remain 0xff despite the code out (c),a
I plan on logging the changes to the ports to make sure that my program is sending the correct output at the correct times.

Regards

By Manuel

Ascended (15750)

Manuel's picture

29-08-2018, 23:38

Better use I/O watchpoints for that...

By NYYRIKKI

Enlighted (5382)

NYYRIKKI's picture

30-08-2018, 07:12

igal wrote:

A few years ago, I had thought of storing on a media the I / O state of the VDP color bus.
The idea was:
I play a movie (DVD) on an msx with compositing like the NMS8280
10 COPY SCREEN0: ON STOP GOSUB 20: STOP ON: GOTO10
20 END

At the same time, I save the status of the "COLOR BUS" of the VDP and save the status of the color bus.

Last step, I inject into the color bus of the VDP, the previously saved state on CF, DSK or other.

Ultimately, the VDP should replay the image that was viewed when playing the DVD simply by injecting the I / O port status of the color bus.

Unfortunately, I never found an answer:
How do I save the status of the VDP COLOR BUS on a media? Eek!

Storing DVD idea is nice, but on MSX without external hardware you have very limited possibility to drive / record the color bus since you always need to access it through VDP... How ever you are lucky because there exists special hardware that is meant exactly for storing the color bus information as a dump. Good thing is also that these devices today are not expensive, they are relatively easy to get and they will store the information to a magnetic tape media a bit similar to MSX cassette, but just bigger. For more information, please Google for: VHS

If you want to drive the color bus directly from CPU instead the main problems will be that the timing is very critical (you need to write cycle accurate code) and the X-resolution even with MSX maximum speed will be pretty bad... If 16-colors is enough I think you should be able to get something like 8x240 resolution... If you want to drive the color bus with 512 colors then the resolution will drop to something like 3x240... If you want to drive some mass storage device at the same time you need to write cycle accurate driver for your storage device. You may also need to reduce Y-resolution to get enough time to handle that...

Page 1/2
| 2