MSX Dos and BASIC Disk for MegaRam512?

By UPKkzn

Supporter (4)

UPKkzn さんの画像

13-03-2022, 23:42

Hi All,

My first posting here, and perhaps a naiive question. I got Sakhr AX-170 which is an MSX 1, to do BASIC coding with my kids. I have purchased both CASDuino board and a MegaRam512 cartridge. I wanted to be able to have a working BASIC that actually can be saved to something.

Now, CASduino only plays, so one can develop on an emulator, and transfer the .cas file , but not other way around.

MegaRam512 came with a flash card that has Nextor Dos and Nextor Basic (I think). If exit from SofaRun, and types "basic" thats where one ends up, at least. And the BASIC would csave into the flash card like its a disk. Unfortunately, the Nextor basic does not work correctly on Sakhr, no sprites are displayed, and memory gets corrupted (i.e. random code sometimes appears in basic after cload). . Games do run fine with SR, just Nextir Basic does not work.

Is there a way to make a good combination of MSX Dos and MSX Disk Basic, on a flash card, so that it was working on the Sakhr ax170 computer? How to do about (i.e.m any way to give it a BASIC ROM which are abundant?).

Thank you very much in advance!


By Parn

Paladin (781)

Parn さんの画像

14-03-2022, 02:31

You are mentioning CSAVE and CLOAD while using your card reader, but those commands are for use with the cassette interface. So in order to dispel any potential confusion, do you mean SAVE and LOAD or BSAVE and BLOAD instead?

Also, I'd like to know what you mean by "no sprites are displayed". How did you test this?

Plus, if you're loading stuff from the cassette interface while you're in Nextor BASIC some memory corruption wouldn't be completely unexpected, since there's much less available memory if you have some kind of disk interface attached to your MSX.

Finally, in order to better help you, it would be useful to know the exact card reader cartridge you're using. Does it have a label on it? What's written on it? What's shown while booting?

Just occurred to me that the MSX Wiki mentions the AX-170 can be booted in both Arabic and International modes. Have you tested both modes? Are you having the same issues in both modes?

By UPKkzn

Supporter (4)

UPKkzn さんの画像

14-03-2022, 13:54

Right, I actually use SAVE /LOAD for disk Basic and CLOAD for Cassette /CASduino. And apologies for typos as well.

I ran a small Basic program that creates and moves a sprite (just bouncing in the screens box) and traces the ( x,y ) it visited with a PSET . On both the WebMSX and the native Basic 1.01 it works, on Nextor only the points are seen but no sprite.

I boot Sakhr in no-Arabic, to get to the cartridge. The Wiki was very helpful indeed, thats where I learned about pushung Ctrl while booting .

The cartridge is MegaRam512. White transoarent plastic, from somewhere in Brazil.It has two SD cars slots and two switches, both are set to the rightmost position.


By Parn

Paladin (781)

Parn さんの画像

14-03-2022, 18:00

Quite intriguing. By your description, I'd say you're using an SD Mapper MegaRAM 512kB cartridge or some variant. I truly think these cartridges have a branding problem, since most people don't call it by its full name, and it even causes some confusion (here in Brazil a lot of people call it just "mapper", which can make things really confusing when troubleshooting). For example, there are indeed MegaRAM cartridges, but they are very different from yours since they don't have card readers or BIOS extensions (except in the case of MegaRAMDisks, which are MegaRAMs with RAMdisk functionality).

But I digress. I think it is most bizarre that sprites don't work in Nextor BASIC. Even if it were the culprit, I can't imagine how Nextor BASIC (which is just DISK-BASIC 2.0) would cause problems with sprites. Memory corruption makes me think of faulty RAM, but if your AX-170 had faulty RAM it wouldn't work correctly without the SDMMR plugged in, and if the SDMMR had bad RAM then you wouldn't have much success running SofaRun.

Anyway, at this point I'd try running some memory diagnostics like TESTRAM or MEMTEST to see if they report some issue.

By UPKkzn

Supporter (4)

UPKkzn さんの画像

14-03-2022, 22:09

Could be that the Nextor Basic does not like MSX1 or Toshiba Engine? It says "MSX2" all over the place.

So, I did create a small FAT 12 partition on a clean SD card, made it bootable, and used dd to copy an MSX-DOS 1.8 dsk file to it. I see only and msdos.sys on the partition. The system boots to it, as a disk A:, when the card is inserted into the SD Mapper Megaram. I do not see any basic interpreter around; but "basic" and "call system" work on it, back and forth. Does it pick the builtin Basic? Is there a way to give it another ROM with a newer or different language Basic?

Will have go test the memory.

By Parn

Paladin (781)

Parn さんの画像

15-03-2022, 01:32

Please forgive me if I'm being too verbose, but I'm not sure how much you know about this subject, so I'd rather err on the side of caution. And please note everything I say about DOS2 applies to Nextor, unless specified otherwise.

First, what we call Nextor is a special version of MSX-DOS 2.0, with some improvements by Nestor Soriano, also known as Konamiman, who has access to the original source code, and some contributions from other people. Thus, Nextor BASIC is just MSX-BASIC with Disk-BASIC 2.0 extensions, basically (pun not intended). These extensions are used to enable disk access in MSX-BASIC and usually don't interfere with existing commands. Also, Nextor is widely used in a variety of different machines, but it's possible there are some incompatibilities with more uncommon machines.

Regarding BASIC, when you type BASIC in a MSX-DOS environment (be it DOS1 or DOS2) you just invoke the MSX-BASIC interpreter in ROM, no matter whether you are on an MSX1 or on a MSXturboR. MSX-BASIC is pretty advanced itself, so I'm not aware of other BASIC interpreters for MSX, but in theory you could run a CP/M-based interpreter, as long as it doesn't try to do any direct hardware access. I'm not aware of anyone trying this, since there wouldn't be much advantage to it.

There are many differences between DOS1 and DOS2, but the most important ones, in my humble opinion, are memory mapper management and support to subdirectories. Since it needs a memory mapper to run, and the MSX1 BIOS doesn't know how to initialize it, DOS2 was originally restricted to MSX2 and higher, but it was modified to run in any MSX1 machine as long as it has a self-initializing memory mapper (which any recent FPGA or CPLD-based multifunction cartridge would have). The SDMMR is such a cartridge. DOS2 reserves some memory segments for itself, so if you don't have enough memory it will just load DOS1 instead.

Multifunction cartridges like the SDMMR include an internal slot expander, since it has a few different built-in devices which need to occupy more than one physical slot. As such, this kind of cartridge will only offer full functionality in a non-expanded slot. If you plug it into an expanded slot, it may not work at all, or just one of the functionalities will be available. Fortunately this isn't a problem in most MSX machines, which usually have two unexpanded external slots. Your AX-170 is an exception, though: the MSX Wiki says its second slot is expanded.

I hope you testing the memory brings some light to this issue. I'm really curious about this. And I'm sorry for the wall of text. I hope it was at least of some use. Smile

By UPKkzn

Supporter (4)

UPKkzn さんの画像

15-03-2022, 04:35

Thanks for the answers! The businness of the "slots" is indeed new to me. And loading of things into MSX in general.

Both memory tests came fine, did not find anything.

So back to the original question:

the SD MegaRam does load Nextor Basic instead of, or on top of, the builtin Basic somehow. The Nextor Basic 2.10 , for all its good qualities, for all its being "just" Basic 2.0 , seems broken, at least for the given MSX1 hardware (which btw does not seem to be particularly nonstandard MSX1 as far as I can tell by reading this website; anyone tried Nextor Basic on any MSX1?).

Is there a way to somehow grab another Basic, more vanilla one, from some ROM or whatever, and make SD Mapper to use it instead?

By Manuel

Ascended (18781)

Manuel さんの画像

15-03-2022, 07:54

As Parn said, Nextor BASIC is the normal BASIC with a different Disk BASIC extension. Only disk routines are part of it. Not sprite routines.

By sdsnatcher73

Prophet (3216)

sdsnatcher73 さんの画像

15-03-2022, 10:45

Try booting your MSX with the SDMMR in MegaRAM mode, your computer will then use the internal RAM. If your sprite issues are resolved it’s possible the RAM on the SDMMR you have is defective.