Add a paravirtualized framebuffer for the Quadra 800 #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a NuBus-flavored paravirtualized framebuffer, complete with a declaration ROM and QuickDraw driver. It also adds support for unplugging the DAFB framebuffer.
-M q800,fb=none
unplugs the "monitor" from the DAFB, making the Mac headless.-M q800,fb=qemu
unplugs the DAFB and adds anubus-qfb
configured by the-g
option.Regardless of the value of
fb
, additional framebuffers can be added with-device nubus-qfb
. Width, height, and depth can be specified per-card, e.g.-device nubus-qfb,width=960,height=600,depth=16
. Since the Quadra 800 has three NuBus slots, three paravirtualized monitors can be added. If the DAFB is utilized, a fourth monitor is possible.Advantages of the paravirtualized framebuffer:
The QuickDraw driver was written to function with any version of the System Software that is compatible with the Quadra 800. It was tested with System 7.0.1, MacOS 8.1, and A/UX 3.1.1. All features of the driver work in all tested configurations, though getting multiple monitors working on A/UX takes a little bit of song and dance. All specified requirements for QuickDraw drivers are met, with one exception. If Slot Manager 2 or 32-bit QuickDraw are missing from the ROM,
nubus-qfb
can't be used as the startup screen. The Quadra 800 ROM has both, so this will only be a problem if we add older Mac machines later, notably Macintosh II variants.The source code to the driver and the declaration ROM can be found here, under a liberal license.