VOGONS


First post, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie

It seems that at one time, there were technical manuals available on the web https://web.archive.org/web/19970301075524/ht … p/tech_man.html but they seem to be long gone. Googling for the information is fruitless.

I'm interested in documents covering all the BIOS calls, I/O ports, etc. things that both a programmer and emulator developer would want to write code to the hardware, which is also very sparse and hard to find.

If anyone has any links or files they can post to provide this information, please post it here. No spam.

I apologize for the timing of this post, but this is not an April Fools joke. Thank you.

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 1 of 16, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

MAMEDev probably has some things, I can check around for you.

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 3 of 16, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

... or crazyc can beat me to it. Good one, crazyc 😉

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 4 of 16, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie

Excellent! I hope this shows up on Google search for anyone else interested in PC-98 I/O ports and hardware.

Now to see if I can figure out enough Japanese to read that documentation... 😀

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 5 of 16, by crazyc

User metadata
Rank Member
Rank
Member

I learned more than anyone rational would want to know about that machine while working on the mess emulation. If you have any questions, just ask. BTW google translate does a marginally understandable job on the undocumented_mem files.

Reply 6 of 16, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie
crazyc wrote:

I learned more than anyone rational would want to know about that machine while working on the mess emulation. If you have any questions, just ask. BTW google translate does a marginally understandable job on the undocumented_mem files.

I appreciate it. I'm putting in the framework now for DOSLIB to compile versions of it's libraries for PC-98 systems. I understand some of the hardware (like the PIT timer and IDE) is sort of the same interface, just moved around to different I/O ports, spaced two I/O ports apart for some reason and interleaved even/odd numbers between devices. Weird.

The intent is for DOSLIB to open up cross-development to PC-98 systems the same way DOSLIB opens up IBM PC/XT/AT cross-development now. I will be writing code to run in PC-98 emulation, and hopefully, run on actual PC-98 hardware.

https://github.com/joncampbell123/doslib

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 7 of 16, by crazyc

User metadata
Rank Member
Rank
Member

I understand some of the hardware (like the PIT timer and IDE) is sort of the same interface, just moved around to different I/O ports, spaced two I/O ports apart for some reason and interleaved even/odd numbers between devices. Weird.

There is a sane reason to interleave the devices like that. Even the original pc9801 had an 8086 so it has 16 data lines which is a pain to use with 8bit devices. That way they could use A0 as a chip select and route D0-7 to one device and D8-15 to the other.

Reply 8 of 16, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie
crazyc wrote:

I understand some of the hardware (like the PIT timer and IDE) is sort of the same interface, just moved around to different I/O ports, spaced two I/O ports apart for some reason and interleaved even/odd numbers between devices. Weird.

There is a sane reason to interleave the devices like that. Even the original pc9801 had an 8086 so it has 16 data lines which is a pain to use with 8bit devices. That way they could use A0 as a chip select and route D0-7 to one device and D8-15 to the other.

So what happens if you do a 16-bit I/O write, do you talk to two chips at once? Or does it still decode A0 as chip select and let the chip take in all 16 bits? Or... is that undefined behavior?

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 9 of 16, by crazyc

User metadata
Rank Member
Rank
Member

I've never used an actual machine but probably the high chip uses ~BHE for it's select and the low uses ~A0.

Reply 10 of 16, by SA1988

User metadata
Rank Member
Rank
Member

crazyc, a quick question, why does NT 4.0 here suffer from the BSOD 0x7b (second parameter is 0xc0000034) in general? is it related to the DMA or the IDE code? (not on MAME as it's already solved)

And btw, I'm using this fork of NP21 and win2000 PC98 works there, but not NT 4.0 or 3.5x: https://sites.google.com/site/np21win/home

Reply 11 of 16, by crazyc

User metadata
Rank Member
Rank
Member

Does np21w have PCI IDE emulation? If not than it wouldn't be DMA as PC98 ISA (acutally CBUS but the differences aren't important) IDE, like the AT, lacks any useful DMA support. The problem might not even be IDE though, could be a CPU emulation issue.

Reply 12 of 16, by SA1988

User metadata
Rank Member
Rank
Member

well, I can post a screenshot and yes and no, PCI is partially supported on np21w, though not for IDE.
np21w, like the standard mainline one, has a defective FPU, but I don't think it's the problem.

Reply 13 of 16, by crazyc

User metadata
Rank Member
Rank
Member

If you post a screenshot, I can tell you if there's anything obviously wrong but not anything deeper.

Reply 14 of 16, by SA1988

User metadata
Rank Member
Rank
Member

nvm, got NT 3.51 working on Neko Project 21/W (this fork) through the use of the PC9821 BIOS and ITF and PC9821CX2 ide bios.

Reply 15 of 16, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie

I know I haven't spoken in this topic for awhile but I just finished adding basic PC-98 emulation to DOSBox-X.

In the latest commit (not the latest Win32 binary) you can set machine=pc98 to enable it.

You will also need ANEX86.BMP for the character ROM to display the full character set.

So far I can run:

Edge
DGA
Tetris (PC-98 verson)
Pacman (PC-98 version)
Rude Breaker

and of course:

Touhou Project (2 through 5).

Github issue tracker for this progress:

https://github.com/joncampbell123/dosbox-x/issues/106

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 16 of 16, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie

I just finished adding more PC-98 emulation. I've decided to start releasing Windows binaries again, though Linux will still be my primary dev target.

I also borrowed the FM synthesis emulation from Neko Project II and ported it to DOSBox-X, so your favorite games should have some music and sound effects. MIDI emulation was adapted as well, so you can use your Windows MIDI device or Linux with Fluidsynth to hear it if the game uses MIDI playback.

Enjoy.

https://github.com/joncampbell123/dosbox-x/commits/master

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.