Running PUT9000 under NEXTOR

Página 3/4
1 | 2 | | 4

Por sd_snatcher

Prophet (3675)

Imagen del sd_snatcher

12-09-2018, 00:12

msd wrote:

Yes , this one complain i had by the name changes nestor introduced. But perhaps this name is stored somewhere

Humm. How did it decide between MSXDOS.SYS and MSXDOS2.SYS then? Can't be same heuristics just be expanded?

Por msd

Paragon (1532)

Imagen del msd

12-09-2018, 12:14

That can be checked with dos version , well that can perhaps also be done with Nestor , but that does mean old software doesn’t work with never versions.

Por sd_snatcher

Prophet (3675)

Imagen del sd_snatcher

12-09-2018, 14:16

I see your point. It's not an easy decision. ASCII themselves had to do it once, since MSX-DOS1 programs that do this also won't run on MSX-DOS2.

But, OTOH, it's the only way to allow a single disk to be booted with both versions of the operating system, thus covering machines that have either DiskROMs.

Maybe one elegant solution would be to rename MSX-DOS.SYS to MSX-DOS1.SYS, and create a new "MSX-DOS.SYS" whose task is to decide which .SYS file it will load based on the diskROM version available. This would solve the two backward compatibility problems (DOS1->DOS2 and DOS2->Nextor). I'll suggest that to Konamiman.

Por erikmaas

Expert (70)

Imagen del erikmaas

13-09-2018, 00:49

For now I added patching for Nextor 2.1 alpha2 in the way it was done for the other DOS versions.
Here is the result put9000_13092018.zip
It might work.... or not...

You can find the code on Bitbucket (put9000)
I have created a project to cross compile on Ubuntu and added make targets to launch into openMSX with both MSX-DOS2.31 and NEXTOR.

I tried to use the CHPUT hook and to allocate TPA. But struggled too much with relocating the small piece of code to go from the CHPUT hook into an allocated page. I need to look at this again later.

Por msd

Paragon (1532)

Imagen del msd

13-09-2018, 10:29

@erikmaas: I can send you complete code to reload msxdos2.sys.

Por erikmaas

Expert (70)

Imagen del erikmaas

13-09-2018, 11:10

To reload MSX-DOS is not what I stuggled with. Writing some code that needs to be relocated is.
Nevertheless if you have something that is usable, I would be happy to use that.

While attempting to change the loader I did too many things at the same time:

  • Use H.CHPUT instead of the MSX-DOS patch
  • Add calls to ENASLT, since now it is clear I cannot assume RAM from the primary mapper is already there
  • Allocate space from TPA
  • Make the code that was fixed to 0x3f00 relocatable

This became quite a mess yesterday evening.
So, I will re-attempt with smaller steps.

Por PlainSpooky

Resident (53)

Imagen del PlainSpooky

17-09-2018, 04:38

Oh! Nice!

Por PlainSpooky

Resident (53)

Imagen del PlainSpooky

20-09-2018, 04:46

erikmaas wrote:

To reload MSX-DOS is not what I stuggled with....

The source code of jANSI is available on MSX Info pages and would be interesting take a look on it, perhaps it can contains some idea that can be used.

Por erikmaas

Expert (70)

Imagen del erikmaas

20-09-2018, 08:40

jANSI is a Memman TSR if I remember correct. I found a few attempts in my archive to make put9000 a TSR as well. But I apparently was not satisfied with that back then. Likely this was performance related or I did not like Memman too much.

I will fix it, but I need to find some time.

Por ducasp

Paladin (712)

Imagen del ducasp

16-08-2019, 17:03

Hi erik,

Testing PUT9000 with my telnet client, it seems it is not updating the cursor position ram variables:

0xF3DC - Current Line
0xF3DD - Current Row

This is important for Telnet terminals, for two reasons:

1 - Lots of BBSs use Cursor Down and Cursor Right 255 positions (which should be acceptable, you just move until the end), then print bs and any character and finally \x1b[6n to ask current cursor position. At this point my software gets current line and current row, that was not updated, and as result BBSs will think screen is less than 80x25...

2 - Syncrhonet BBSs also use this on a few modules, like the ones print messages / avatars, get the current cursor position and then position what they want to print based on that (maybe this is because those modules are external, go figure) and if a proper cursor position is not given, it will either see it is where it should not and not print (print a message error instead) or print it on the wrong position...

Also I'm getting artifacts using a V9990 on my OCM, pardon the bad quality of the image, but I do not have a 15Khz monitor handy and my capture card sucks:

P.s.: I've checked this on a 15KHz vga monitor a few days ago and the artifacts were there. I've tested both Chibi Akumas v9990 version as well as Life On Earth and also both show no artifacts on the same system, so I'm kind of thinking it is not an issue because I'm using a v9990 on an OCM system. :)

Anyway, thanks for the driver, just telling what I've found out. :)

Página 3/4
1 | 2 | | 4