axpbox icon indicating copy to clipboard operation
axpbox copied to clipboard

Complete S3 graphic adapter to work with OpenVMS

Open lenticularis39 opened this issue 4 years ago • 3 comments

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

lenticularis39 avatar Nov 15 '20 18:11 lenticularis39

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.

TheFausap avatar Dec 02 '20 23:12 TheFausap

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.

fsword7 avatar Dec 02 '20 23:12 fsword7

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

Pawlicker avatar Oct 09 '21 16:10 Pawlicker