joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.63k stars 373 forks source link

Test program list/requests (2018 December to 2019 Febrary) #940

Closed joncampbell123 closed 3 years ago

joncampbell123 commented 5 years ago

Is your feature request related to a problem? Please describe. I'm going to slow development of DOSBox-X for a bit (leave it to bug fixes) and focus on developing DOS programs to run both within DOSBox-X and on real hardware as a way to validate that emulation is as accurate as possible.

You may remember in July 2018 when I wrote a program to run through the various INT 10h video modes to test that the modes acted as expected and that various basic tweaks to the VGA hardware acted as expected.

The idea is to do the same with other parts of the hardware, though not yet as comprehensive.

These test programs will exist for both IBM PC and NEC PC-98 platforms.

I have my own list to start with, anyone else here is welcome to suggest additional tests.

Some tests will be written to talk to hardware in the same manner as some games or programs are observed to do.

joncampbell123 commented 5 years ago

These tests will exist as executable DOS programs.

They will be written to run on real hardware and within DOSBox-X.

They will interact with a testing framework by returning pass or fail, ideally with output that can be written to a log file indicating what if anything went wrong.

If anyone wants to write or contribute test programs, they are welcome to do so.

Test cases not finished by the end of Feburary 2019 will be carried over to the next issue to be created for March 2019 to May 2019.

They will be expected to run:

Secondary testing, where the code may fail:

joncampbell123 commented 5 years ago

CPU test ideas, pure ASM code, to run just before BIOS POST at startup. Remember the function I added to load a blob of executable code in dosbox.conf just before BIOS POST?

Basic CPU tests listed above will be carefully confined to pre-boot environments since, if the instructions do not follow the basic behavior expected, neither will they behave properly when running through the C runtime of a typical EXE nor the DOS kernel.

joncampbell123 commented 5 years ago

Timer tests:

Timer, PC-98 BIOS functions INT 1Ch:

Timer test questions (not sure yet):

Reminder to self:

Specific programs to use while testing:

joncampbell123 commented 5 years ago

A20 gate: For each test the 64KB memory region at the 1MB barrier (FFFF:0000) will be compared against the bottom of memory (0000:0000) to determine A20 status

Less certain:

joncampbell123 commented 5 years ago

Mouse:

Test, not sure:

joncampbell123 commented 5 years ago

Interrupt controller:

Not sure:

joncampbell123 commented 5 years ago

Keyboard:

Not sure:

Real test cases:

joncampbell123 commented 5 years ago

Video:

Test ideas to try:

Hack ideas to try:

joncampbell123 commented 5 years ago

Video:

Questions:

Real test cases:

joncampbell123 commented 5 years ago

286+ reset vector tests:

General reset tests:

Real world test cases: