WebMSX and SVI-738 X'press -- correct Machine setting?

صفحة 1/2
| 2

بواسطة PSi

Supporter (13)

صورة PSi

07-09-2021, 10:20

Hi!

Sorry for posting possibly already handled matter, but I could not find a search function from the forum. This is my first post, so sorry for possibly breaking possible rules Sad

Does the WebMSX support SVI-738 X'press VPOKE commands under width80 using MSX-BASIC? I've tried my old code from 1988 and it works ok using default settings but the VPOKE commands go into character symbol section instead of screen map section of the VRAM (or whatever it is called).

/pekka

Login أوregister لوضع تعليقاتك

بواسطة NYYRIKKI

Enlighted (6067)

صورة NYYRIKKI

07-09-2021, 18:40

WebMSX supports just handful of machines and those are generic MSX setups that don't always have any real life references. Usually this is not a problem, but SVI-738 is kind of a special machine as it has MSX1 ROMs, but MSX2 VDP and that is what goes wrong now.

Due to MSX1 ROMs SVI-738 does not have 80-column support out of the box, so it must use some external program to support that... Either done by you or someone else... MSX1 ROMs are not aware of MSX2 VDP features, so not all registers are initialized same way as on MSX2. This means that on MSX1 emulation your program can't work as the VDP is wrong and on MSX2 emulation your program may work wrong if there are differences on how the 80-column display is implemented or there are ie. some uninitialized registers...

In this case it sounds to me like the 80-column program you have used has just initialized the VRAM addresses differently than how MSX2 initializes them by default. If you want to dig deeper in to this subject, check out ie. BASIC-command called BASE... It might be that your 80-column extension program don't obey the BASE-command directives.

If you have a program that works on your real machine, but not now on this emulator and you don't care so much to fix it rather than just see it running again, then changing emulator is likely the most easy solution. OpenMSX is currently most accurate emulator out there and can emulate ie. SVI-738 exactly. It has loads of other features as well, but unfortunately I must say that user-friendliness is not among the best features although it comes with launcher called Catapult. You will need to get original SVI-738 ROMs to your hands, but due to copyright issues that part is something we can't really help on this forum... Should not be too hard though.

بواسطة PSi

Supporter (13)

صورة PSi

07-09-2021, 20:51

Thanks, NYYRIKKI. Examining the BASE(n) command's behaviour revelaed that I have to reduce the VPOKE's 1st argument by 4096 to hit the screen instead of the character symbol tables Smile All is well now!

The code was operating this system:

https://taprk.org/eng/general/cmri.html

/pekka

بواسطة NYYRIKKI

Enlighted (6067)

صورة NYYRIKKI

07-09-2021, 21:40

Oh, wow!

I remember I stumbled in to this article something like 15 years ago and I found it very fascinating! It seems that this project has needed a lot of dedication from lot of people. To be honest, it would be really nice to take a peek at the code at some point if you feel like you want to share it. The hardware part seems to be already very nicely documented. I believe showing such code publicly might even inspire people to do their own little retro projects.

I've been also doing some little experiments such as writing background task for MSX-BASIC to drive 8 servo motors using printer port data lines or doing RS-232 or PS/2 communication trough joystick port. I don't always know where the motivation to do such things pop up from, but I've been definitely inspired by this article among others.

بواسطة NYYRIKKI

Enlighted (6067)

صورة NYYRIKKI

07-09-2021, 22:06

Actually it seems that my memory does not serve me well... On this page there is this PDF that has the source... It just sounds like you have some advanced version as this source seems to be for 40-column display.

بواسطة Manuel

Ascended (19467)

صورة Manuel

07-09-2021, 23:43

As NYYRIKKI said, please do not modify your code to work around an emulator issue... it's the emulator that needs to be fixed, if that code is known to work on real hardware.

بواسطة NYYRIKKI

Enlighted (6067)

صورة NYYRIKKI

08-09-2021, 02:08

Manuel wrote:

As NYYRIKKI said, please do not modify your code to work around an emulator issue... it's the emulator that needs to be fixed, if that code is known to work on real hardware.

Well, I didn't mean to put it quite like that... Generally my opinion is actually that if the program contains some simple bug that prevents it from running in more than one exact model, it is likely worth fixing the bug... How ever I do recognize that in this kind of special case where the whole HW setup is more or less custom artwork with custom software, it might be more reasonable to rename bug as "not MSX compatible feature of design", preserve the program as is and just select emulator that will emulate the exactly correct model.

بواسطة PSi

Supporter (13)

صورة PSi

08-09-2021, 07:57

NYYRIKKI: The code had 40 char width and 80 char width versions, the screen photo was of a 40 char version but the programme "C-MRI111.BAS" was a 80 char version. I assume the club monitor was actually a TV set and the image wasn't that good in 80 char mode. It is, after all over 30 years ago! The code on the TaPRK site is the is the code I've tried to make work on WebMSX, and now succeded. I have only two verions of the C/MRI copied from DD1 floppies into PC hard drive. I have two X'press computers, but neither of those seem to have working floppy drive, or the floppies have gone bad. I have an external drive somewhere and I must try if that might still work. I do have plans of publishing the BAS files (although the code is not quite suitable for family viewing).

Manuel: I presently have no method of running the original software on my X'press. It is of little fun to me or anybody else if it cannot be played by WebMSX emulator either. I could not make it work on openMSX, so this was a good workarond, and I'm grateful for NYYRIKKI's comments of getting it running again. Modifying my one-off BAS programme to work on one emulator is much simpler and safer task than poking the WebMSX emulator, no? I only needed to modify 3 lines of code.

/pekka

بواسطة sdsnatcher73

Prophet (3954)

صورة sdsnatcher73

08-09-2021, 08:25

Well I would say in this case it does not have to be or, it can be either (if you know what I mean). Your 3 lines changed probably fixed an issue in the program to make it work on more MSX computers besides the SVI738, great. Manuel and the rest of the openMSX team can still evaluate the original code which worked/works on a real SVI738 (and we can probably find people to test it on real HW somehow). Makes openMSX be more true to real HW, also great!

بواسطة Manuel

Ascended (19467)

صورة Manuel

08-09-2021, 09:28

I'd definitely like to know what the problem was running it in openMSX. Please let me know.

بواسطة NYYRIKKI

Enlighted (6067)

صورة NYYRIKKI

08-09-2021, 11:35

Ok, I did notice that there was a mention that lot of code was also done on assembler, but at least that part seems to be still missing from the pages. Was that version also done by you?

The disk drives on SVI-738 are standard Shugart type DD drives, so replacing the drive is not very hard. The original drives tend to run pretty hot and are not the most reliable. (If you find 2DD drive, even better.) You most likely need longer floppy cable though as the connector is upside down compared to many other drives and also the screw holes are not on standard locations, so new drive might be hard to mount physically.

If you want super easy way to publish your program, copy/paste the source to https://msxpen.com/ and hit Share... You will get URL to your running program.

صفحة 1/2
| 2