Nextor 2.1 released

by konamiman on 01-08-2020, 09:29
Topic: Software
Languages:

It’s been a while since the Nextor 2.1 branch made its first baby steps and also since an updated version was released, but all good things deserve waiting and here’s finally it: the final release of Nextor 2.1.0, ready to be flashed in your favorite device (or configured in your favorite emulator).

Here’s the list of the main changes from the Beta 2 version:

  • A new _GETCLUS function call allows to retrieve information about a cluster from a FAT12 or FAT16 drive, such as the FAT sector and position where the entry is located, and the relevant first data sector number. This information may be useful for tools that do low-level drive manipulation such as disk defragmenters/optimizers.
  • EMUFILE.COM now uses _GETCLUS to make sure that all the disk image files to emulate are stored across consecutive sectors. Also, a new CONCLUS.COM tool will give you the same information without having to start a disk emulation session.
  • Added a new boot key: pressing “N” at boot time disables all the Nextor kernels present. The NEXBOOT.COM tool is updated as well to support this.
  • Added UNAPI RAM Helper compatible mapper support routines for accessing mapped RAM by specifying both a segment number and a slot number. The UNAPI discovery procedure is implemented too for these, this means that applications that need these routines to run (e.g. InterNestor Lite) can now be started without having to install anything beforehand.
  • A bunch of bugs have been fixed.

Note that for CONCLUS.COM and the new EMUFILE.COM to work, NEXTOR.SYS needs to be upgraded to the new v2.11, so be sure to download it as well.

Relevant link: Nextor 2.1 release in GitHub

Comments (36)

By konamiman

Paragon (1083)

konamiman's picture

01-08-2020, 09:35

I want to thank everyone who submitted bug reports and enhancements suggestions in GitHub, most of the fixed bugs are a direct consequence of those. Especially Eugeny Brychkov, who has been especially pedantic - and very rightfully so! Smile

By Manuel

Ascended (16831)

Manuel's picture

01-08-2020, 09:46

Great job!

Can you tell more about the sunrise IDE emulation issues, so that they can be fixed?

By lintweaker

Champion (287)

lintweaker's picture

01-08-2020, 10:16

Nice work!

By karloch

Prophet (2090)

karloch's picture

01-08-2020, 10:17

Thank you Konamiman for this new release!

By konamiman

Paragon (1083)

konamiman's picture

01-08-2020, 12:59

Manuel wrote:

Can you tell more about the sunrise IDE emulation issues, so that they can be fixed?

There are two drivers:

  • v0.1.5 is an improvement of the experimental driver I originally wrote, made by Piter Punk. This is the one that the ROM labeled as "for emulators" uses.
  • v0.1.7 is is an improvement of v0.1.5 made by FRS.

The problems:

  1. v0.1.7 doesn't recognize the master device in emulators (or in blueMSX at least), v0.1.5 does; that's the reason why I am publishing two drivers in the first place.
  2. In Carnivore2 some CF cards work only when using driver v0.1.5, some other cards work only when using driver v0.1.7.

And that's what I can tell you. I know nothing about IDE hardware, the little I learned in order to be able to develop the original driver 10-ish years ago I forgot long since.

By Grauw

Ascended (9267)

Grauw's picture

01-08-2020, 14:24

Congratulations! And thank you!

By gdx

Prophet (3664)

gdx's picture

01-08-2020, 15:58

Where is the source code for the CF/IDE drivers?

By sd_snatcher

Prophet (3325)

sd_snatcher's picture

01-08-2020, 17:07

Thank you for your continued efforts to improve Nextor! Big smile

By konamiman

Paragon (1083)

konamiman's picture

01-08-2020, 17:26

By konamiman

Paragon (1083)

konamiman's picture

01-08-2020, 20:31

Hi all Nextor fans and especially driver developers, please take a look at this: https://msx.org/forum/msx-talk/development/my-plans-for-next...

By Aquijacks

Champion (285)

Aquijacks's picture

02-08-2020, 10:25

Perfect !!!
Thanks.

By erpirao

Paragon (1067)

erpirao's picture

02-08-2020, 13:03

flashjacks: update
mgfsd 1 slot: update
mgfsd 2 slots: update
c2: not update
gr8net: not update
sunrise ide: not update

By usuario_msx2

Paladin (746)

usuario_msx2's picture

02-08-2020, 15:37

Mega-scsi driver ....??

By konamiman

Paragon (1083)

konamiman's picture

02-08-2020, 15:56

erpirao wrote:

flashjacks: update
mgfsd 1 slot: update
mgfsd 2 slots: update
c2: not update
gr8net: not update
sunrise ide: not update

Excuse me...? Question

By Alexey

Guardian (2851)

Alexey's picture

02-08-2020, 21:29

Good job, Nestor!

By Latok

msx guru (3777)

Latok's picture

03-08-2020, 00:11

How do I flash the new Nextor ROM again in Mega Flash Rom SCC SD? Using OPFXSD.COM?

By Latok

msx guru (3777)

Latok's picture

03-08-2020, 00:20

Ah yes, with the /I option and importantly, boot it from another device! So I am going to copy msxdos2.sys, command2.com, opfxsd.com and the kernel ROM file to a diskette and boot it from there....

By Eugeny_Brychkov

Paragon (1166)

Eugeny_Brychkov's picture

03-08-2020, 21:39

Thank you Nestor for good words. I am very happy that we have solved tough problems, and now I can proceed continuing development of GR8STORM for DOS2!

By ToriHino

Hero (557)

ToriHino's picture

03-08-2020, 22:27

Latok wrote:

Ah yes, with the /I option and importantly, boot it from another device! So I am going to copy msxdos2.sys, command2.com, opfxsd.com and the kernel ROM file to a diskette and boot it from there....

You can also just put the rom file on an empty SD card, hold the cursor up key during boot and use F4 to install the new kernel.

By Latok

msx guru (3777)

Latok's picture

03-08-2020, 22:40

Why on an empty sd card?

By konamiman

Paragon (1083)

konamiman's picture

04-08-2020, 09:53

Latok wrote:

Why on an empty sd card?

I guess it's for the way the MFRSD recovery ROM works. It scans the physical sectors of the SD card searching for the header of the file, bypassing any partition/filesystem structure existing in the card; thus if you had an old kernel ROM file in the card and just copy the new one to the card, the recovery ROM will still find the old one first and thus flash that one.

What I usually do is to have the kernel file in the SD card with a generic name, like KERNEL.ROM, and copy over any new version giving it the same name.

By konamiman

Paragon (1083)

konamiman's picture

04-08-2020, 09:55

Latok wrote:

So I am going to copy msxdos2.sys, command2.com, opfxsd.com and the kernel ROM file to a diskette and boot it from there....

It's NEXTOR.SYS Smile

MSXDOS2.SYS will work too (it will allow you to boot and load COMMAND2.COM) but you won't be able to use the Nextor-specific tools.

By Latok

msx guru (3777)

Latok's picture

04-08-2020, 20:52

But I booted with R key down to bypass SD.... I thought it would just start regular boot sequence from diskette and nextor won't be recognized. That's why I copied msxdos2.sys to diskette and not nextor.sys.

Anyway, the update was a success today Smile

By Latok

msx guru (3777)

Latok's picture

04-08-2020, 20:55

konamiman wrote:
Latok wrote:

Why on an empty sd card?

I guess it's for the way the MFRSD recovery ROM works. It scans the physical sectors of the SD card searching for the header of the file, bypassing any partition/filesystem structure existing in the card; thus if you had an old kernel ROM file in the card and just copy the new one to the card, the recovery ROM will still find the old one first and thus flash that one.

What I usually do is to have the kernel file in the SD card with a generic name, like KERNEL.ROM, and copy over any new version giving it the same name.

So if you use this way of updating, booting with CURSOR UP pressed and then F4, you have to use the recovery ROM version with the word RECOVERY in its filename?

By ToriHino

Hero (557)

ToriHino's picture

04-08-2020, 23:45

Yes, that's right.

By karloch

Prophet (2090)

karloch's picture

05-08-2020, 04:07

I always use the MFR recovery mode for upgrading the NEXTOR kernel, it is quite easy and you don't need other mass storage device.

By gdx

Prophet (3664)

gdx's picture

05-08-2020, 15:21

Is recovery mode conceivable for other devices in standard?

By karloch

Prophet (2090)

karloch's picture

05-08-2020, 17:11

Recovery mode is a MFR feature, not a NEXTOR one, so the upgrade options are device-dependent.

By ducasp

Champion (347)

ducasp's picture

05-08-2020, 21:02

gdx wrote:

Is recovery mode conceivable for other devices in standard?

OCM's using KDL firmware do pretty much the same thing, you can have the first file in the SD being the BIOS of the whole system (it is a large file containing all ROMs, including Nextor), so, if there is such file as the first file in the SD Card, it will load all BIOS/ROMs from there, otherwise, it will use whatever was pre-programmed in the FPGA firmware. Whenever updating something I just create a new SDBIOS and copy it over using TFTP on my SM-X. Smile

By DarkSchneider

Paladin (938)

DarkSchneider's picture

10-08-2020, 11:43

By S0urceror

Expert (126)

S0urceror's picture

18-08-2020, 23:20

Has anyone tried to build the Nextor themselves?

With compile.bat I am able to create Nextor-2.1.0.base.dat but the subsequent MKNEXROM commands in compile.bat fail with: A driver file has been specified, but the base file appears to have a driver already.

There are no other error messages in the build output and it does create the base.dat but apparently not a right one.

When I download Nestor's version from here it works.

Please let me know what your experiences are?

P.S. I build on Windows 10 and have a build environment that managed to build the previous beta so I don't know what's different now.

By konamiman

Paragon (1083)

konamiman's picture

19-08-2020, 13:58

That's really weird as the compile.bat you use is the exact same I do use Question Has the base file you get generated a size of 112K?

By Manuel

Ascended (16831)

Manuel's picture

19-08-2020, 22:50

konamiman wrote:
Manuel wrote:

Can you tell more about the sunrise IDE emulation issues, so that they can be fixed?

There are two drivers:

  • v0.1.5 is an improvement of the experimental driver I originally wrote, made by Piter Punk. This is the one that the ROM labeled as "for emulators" uses.
  • v0.1.7 is is an improvement of v0.1.5 made by FRS.

The problems:

  1. v0.1.7 doesn't recognize the master device in emulators (or in blueMSX at least), v0.1.5 does; that's the reason why I am publishing two drivers in the first place.
  2. In Carnivore2 some CF cards work only when using driver v0.1.5, some other cards work only when using driver v0.1.7.

And that's what I can tell you. I know nothing about IDE hardware, the little I learned in order to be able to develop the original driver 10-ish years ago I forgot long since.

As I wrote here: https://www.msx.org/forum/msx-talk/openmsx/nextor-openmsx?pa... I didn't have any issues using the 0.1.7 in openMSX 16.0-rc1. But for some reason the 2nd partition on the slave device isn't "seen" by Nextor, i.e. there is no drive letter for it. Any idea why?

By S0urceror

Expert (126)

S0urceror's picture

20-08-2020, 13:03

konamiman wrote:

Has the base file you get generated a size of 112K?

Yes it has.

I just did a complete new clone from GitHub and tried again with the same result. I tracked it down to the fact that the DV_BANK variable stays 0x00 on position 0xFE in the base file. DV_BANK should be 0x07.

Somehow this version does not link right on my setup. Compilation gives no errors. The L80 command spits out 123 undefined globals. The old beta does build correctly without these errors.

Any clue?

By sdsnatcher73

Paragon (1083)

sdsnatcher73's picture

20-08-2020, 17:42

Manuel wrote:

As I wrote here: https://www.msx.org/forum/msx-talk/openmsx/nextor-openmsx?pa... I didn't have any issues using the 0.1.7 in openMSX 16.0-rc1. But for some reason the 2nd partition on the slave device isn't "seen" by Nextor, i.e. there is no drive letter for it. Any idea why?

Nextor not mounting anything other than the first partition is how it is implemented. An enhancement request to change this behavior exists.

By S0urceror

Expert (126)

S0urceror's picture

20-08-2020, 23:35

Found the issue.

If you git clone the repository on a Mac and compile it in a Windows VM then sometime M80 says %No END statement.
The reason it does that is because that it cannot find CR/LF pairs in the file.

Somehow GitHub converts everything to Unix style files at check in. With only LF (0x0A) to mark the end of lines. When you check it out on Mac this is kept the same. On Windows it converts it back to CR/LF. Only the latter is compatible with the M80 assembler.