lenticularis39 / axpbox

AXPbox Alpha emulator
GNU General Public License v2.0
165 stars 16 forks source link

Complete S3 graphic adapter to work with OpenVMS #33

Open lenticularis39 opened 3 years ago

lenticularis39 commented 3 years ago

The S3 graphic adapter is either incomplete or buggy - OpenVMS only gets to the operator console (see screenshot below) and to a black screen after resolution change.

OpenVMS operator console

TheFausap commented 3 years ago

I am not able to proceed in the OpenVMS boot-startup sequence at all. I got a crash with this error:

Exception in CPU thread: Not implemented: io read: invalid CRTC register 0x36   
: /home/fausap/axpbox/src/S3Trio64.cpp, line 2832.
Emulator Failure: Threading error: CPU thread has died: /home/fausap/axpbox/src/AlphaCPU.cpp, line 517
Stop threads: cpu0 srl0 srl1 ide0 ide1 s3 sym nic ali kbd
Freeing memory in use by system...
pci0.15(ali_ide).disk0.0(file): Closing file.

Maybe this can be useful to track down the issue.

fsword7 commented 3 years ago

I have the same problem but used different BIOS image. With 86c764x2.bin file, it crashed with not imeplemented message below:

Exception in CPU thread: Not implemented: Unhandled port 3c3 write: /home/sword7/axpbox/src/src/S3Trio64.cpp, line 900. Emulator Failure: Threading error: CPU thread has died: /home/sword7/axpbox/src/src/AlphaCPU.cpp, line 517 Stop threads: cpu0 srl0 sym s3 ali kbd nic Freeing memory in use by system... pci0.1(sym53c810).disk0.0(file): Closing file. pci0.1(sym53c810).disk0.1(file): Closing file.

Pawlicker commented 2 years ago

Same problem with Tru64 4.0f and 5.1b (the error is the exact same), using the latest VGABIOS file and 1.1.0:

DMA-I-RESET: DMA 0 reset.DMA-I-RESET: DMA 1 reset.dma: command register 0 written with 10 dma: command register 1 written with 10 Exception in CPU thread: Not implemented: io read: invalid CRTC register 0x2f
: /home/lain/Downloads/axpbox-1.1.0/src/S3Trio64.cpp, line 2834. Emulator Failure: Threading error: CPU thread has died: /home/lain/Downloads/axpbox-1.1.0/src/AlphaCPU.cpp, line 520 Stop threads: cpu0 srl0 srl1 ide0 ide1 s3 nic sym ali kbd Freeing memory in use by system... CPacketQueue(rx_queue): highwater=2, lost=0

For reference as well, the S3 documentation has a list of registers: http://www.bitsavers.org/components/s3/DB014-B_Trio32_Trio64_Graphics_Accelerators_Mar1995.pdf

It also mentions this book which has a S3 and Cirrus specific programming chapter: https://archive.org/details/programmersguidetotheegavgaandsupervgacardsbyrichardf.ferraro19943rdedition/page/n1337/mode/2up