Both sides previous revision Previous revision Next revision | Previous revision |
blog:pc98_devtools [2020/08/14 16:01] – [The Real Problem Is...] john | blog:pc98_devtools [2020/08/22 09:34] (current) – [Makefiles & Compiling] john |
---|
* https://github.com/techfury90/pc98stuff - Sample C code for interacting with the hardware/graphics | * https://github.com/techfury90/pc98stuff - Sample C code for interacting with the hardware/graphics |
* https://github.com/PC-98/devwiki - Short wiki about potential development tools for PC-98 | * https://github.com/PC-98/devwiki - Short wiki about potential development tools for PC-98 |
| * http://darudarudan.syuriken.jp/kai/pc9821.htm - Some short examples of interacting with PC-98 hardware, in Japanese |
| * https://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=102975&page=all - Discussion about implementing PEGC packed-pixel support for PC-98 within MAME |
| |
==== Graphics Hardware Differences ==== | ==== Graphics Hardware Differences ==== |
You also need to distribute with your application the DJGPP go32-v2.exe DOS extender, and a DPMI server, of which for the PC-9821 there are relatively few. Apart from the fact that [[https://virtuallyfun.com/wordpress/2016/06/21/ms-dos-5-0-dpmi/|there is one distributed along with PC-98 MS-DOS 5.00]]//!!!// | You also need to distribute with your application the DJGPP go32-v2.exe DOS extender, and a DPMI server, of which for the PC-9821 there are relatively few. Apart from the fact that [[https://virtuallyfun.com/wordpress/2016/06/21/ms-dos-5-0-dpmi/|there is one distributed along with PC-98 MS-DOS 5.00]]//!!!// |
| |
* {{ :blog:pc98_dpmi_extender.zip |go32-v2.exe & dpmi32.exe}} | * <del>go32-v2.exe & MS-DOS 5.00 dpmi32.exe</del> |
| * {{ :blog:go32_dpmi.zip|go32-v2.exe & MS-DOS 6.22 dpmi.exe}} |
| |
You can of course optimise for //-mcpu=i586// and //-mcpu=pentium//, but they're a subset of the PC-9821 range. If you want your code to run on PC-9801 to PC-9821, your only real option is //-mcpu=i386//, though you may want to run two passes of your application to produce (for example) a generic 386 binary and one tuned for Pentium. | You can of course optimise for //-mcpu=i586// and //-mcpu=pentium//, but they're a subset of the PC-9821 range. If you want your code to run on PC-9801 to PC-9821, your only real option is //-mcpu=i386//, though you may want to run two passes of your application to produce (for example) a generic 386 binary and one tuned for Pentium. |
===== Troubleshooting on Real Hardware ====== | ===== Troubleshooting on Real Hardware ====== |
| |
First of all, **DPMI32.exe** (from the PC-98 DOS 5.00 disks) and **go32-v2.exe** (which we built from the patched sources, above) work on real PC-9821 hardware, just as they do within the NekoProject II Kai emulator, as long as you have a VCPI service running (either EMM386, VEMM486 or similar), the result is the same. | First of all, <del>**DPMI32.exe** (from the PC-98 DOS 5.00 disks)</del> **DPMI.EXE** (from the MS-DOS 6.22 distribution) and **go32-v2.exe** (which we built from the patched sources, above) work on real PC-9821 hardware, just as they do within the NekoProject II Kai emulator, as long as you have a VCPI service running (either EMM386, VEMM486 or similar), the result is the same. |
| |
So boot with typical memory managers in place: | So boot with typical memory managers in place: |
| |
Note that this version also includes renamed libreadline.a (libread.a), libstdc++ (libc++.a) and libhistory (libhist.a) libraries, as the defaults supplied with DJGPP are over the 8+3 filename length of non-Windows 95 systems. | Note that this version also includes renamed libreadline.a (libread.a), libstdc++ (libc++.a) and libhistory (libhist.a) libraries, as the defaults supplied with DJGPP are over the 8+3 filename length of non-Windows 95 systems. |
| |
| ===== Next Steps ===== |
| |
| Go forth, create code for another obsolete computer platform, and be merry! |
| |
| Or, alternatively, [[:blog:pc98_devcode|have a look at my set of real-world programming examples for the NEC PC-9821 and its graphics hardware]]. |