Msx 2 with an S100 may be the FS 5500
Thanks PingPong, will check that combination out and report back. Give me a day or two.
Manuel, I assumed I could not run openMSX on a non-MSX machine. Currently the only hardware that is MSX on this S100 system is the V9938 chip. I can run CPM however. Does open-MSX run in any CPM box?
openMSX is a sw emulator that emulate the MSX System and run on most platforms. To give you the registers values, i've used this precious piece of sw.
- I've downloaded this emulator from the site openMsg.Org targeted for my O.S.
- I've downloaded the original BIOS ROM file images (dumped from real hw) and i've setup openMSX to use those images
- I've started the openMSX emulator, on my PC. The emulated MSX on boot loads the BASIC interpreter from the ROM images.
- I've typed at the command prompt: SCREEN 0: WIDTH80
- The basic interpreter switched to text2 vdp mode
- I've hit F10 key on PC keyboard, the openMSX console was displayed.
- On the console i've typed: vdpregs
- The entire VDP Register set was displayed
- I've reported you the values.
But this will not test V9938 hardware. I'm having a problem getting the software (initilization) to set the hardware (v9938 chip) so it displays correctly.
John, you still have this problem of duplicated information on the screen?
go down to the basics . If you runs the msx basic 1.0, with 32k ram . Include if you don't have the msx sloting system implemented but a 8255 present , and vdp int signal to z80 irq . It must work
Unfortunately the "VDP int signal to Z80 irq" is not connected. Does not seem to be required for 40 chars/line. Is it for 80.
Unfortunately the "VDP int signal to Z80 irq" is not connected. Does not seem to be required for 40 chars/line. Is it for 80.
no, you see, it is a way for the bios to count up time!, if it is not connected, the bootup MSX message or logo will hung or stay forever.
is requested some 50 or 60hz IRQ for the z80, without that, the bios can't read the keyboard, joystick ports, play music, etc, also is required for a MOTOR OFF countdown (if the floppy expansion is available). Aditionally, MSX games or software uses it for outputing the modifications for the next game frame synching with VBLANK video sygnal, so glitches will not be present. Also is more bandwidth on VBLANK that on image raster, so game graphics don't gets corrupt if it is outputed during VBLANK.
But for MSX-BASIC any IRQ signal about 50 or 60hz pulse will be fine, it will works include if it don't comes from vdp.
about trying to use just the msx basic 1.0, is because it is the more simpler, you needs have present a 8255 compatible on I/O A8h-ABh, because without that, the slotting routines can hung and maybe the keyboard read routine will hung too if not present, but is not necessary to have wired the slotting system.
BIOS will change the A8 output register without effect, but that will no make that it hungs.
The configuration is MSXBASIC 1.0 (32K ROM) from 0-7FFFh , and RAM from 8000-FFFFh, that is all that it needs.
Then as a second test stage, you can build the keyboard matrix, and start programming some BASIC listing, to switch to screen2, draw some lines, boxes, to see if screen2 works ok.
when checked ok that, you are making sure that the 9938 chips works ok, because atp you don't know if is a hardware problem or a software problem, and that is what you needs to clear first!.
All the above is fine, and will be included on the MSX "support board". We are partitioning our efforts here. I''m just working on the V9938 video chip (on its own board) nothing else.
What I'm trying to find out is what are the values that must be placed in an isolated V8839 chip registers to see 80X24 text on the screen. Any computer, any board will do.
In particular the single digit registers.
Where in RAM the character table must be placed and where in RAM the start of the actual screen display resides.
I think what PingPong provided a few days back may be what I need. Will not have access the hardware for a few more days unfortunately.
for screen 0 , width 80 is:
for x=0 to 7: print hex$(vdp(x)):next
REG 0: 04h
REG 1: 70h
REG 2: 03h
REG 3: 27h
REG 4: 02h
REG 5: 36h
REG 6: 07h
REG 7: F1h (colours).
for x=9 to 23: print hex$(vdp(x)):next
(as BASIC uses VDP(8) as for read the status register it has a gap). so (vdp(9) returns the vdp register 8 and that way.
REG 8: 08h
REG 9: 02h
REG 10: 0
REG 11: 0
REG 12: 0
REG 13: 0
REG 14: 0
REG 15: 0
REG 16: 0Fh
REG 17: 0
REG 18: 0
REG 19: 0
REG 20: 0
REG 21: 3Bh
REG 22: 05h
and that is all.
