Building A/UX Device Drivers

mietek

New Tinkerer
Sep 21, 2022
3
1
1
I realized that the book is separate. Sorry. I did find this GitHub where a person is trying to find all documentation for A/UX:

This person is me. Just like the OP, I am especially interested in information about building A/UX device drivers.
I found some A/UX Development docs today (loose-leaf version) and the 1.0b development tools disk. Probably enough for someone to do some damage.
Please let me know if there is any way I can help with the preservation of these documents.
 
Last edited:

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
Some progress -- I got an external CD-ROM drive to rip the disk .iso. Also, since my original post, I have been thinking about old video boards and Spectrum/24 Series III v1.1 should work well under A/UX. In addition, Spectrum/24 PDQ should also work. And, given the changes that went into those 2 boards, it is likely that later boards probably work. However, earlier boards/ROMs probably do not. They have high odds of hanging at VideoReset when A/UX launches, may not properly support depth changes, and/or may not preserve the startup PRAM configuration.

It is possible that the Spectrum/8 Series III v1.3 ROM might also work, since it also came later and should have included relevant changes/fixes for A/UX. See this post: Spectrum/8 Series III ROMs
 
Last edited:

mietek

New Tinkerer
Sep 21, 2022
3
1
1
Some progress -- I got an external CD-ROM drive to rip the disk .iso.
That’s great. Could you please say if your development documents include “A/UX Device Drivers Kit” and/or “Building A/UX Device Drivers”?
 

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
auxcompilerref.pngauxtoolscd.png

Here are 2 of the manuals, plus the 1.0b tools CD from 1991 (for A/UX 2.0). I just opened a shrink-wrapped disk that is 30 years old! :D

I was able to extract the A/UX Developer Tools 1.0b1 CD .iso via Nero on Windows. It mounts under SheepShaver as a .toast, albeit without desktop comments, etc. it appears to contain: MPW 3.2, MacsBug 6.2, ResEdit and A/UX System Calls (prob v2.0) support files. Not sure if this image exists anywhere else, so maybe it will be useful for people who want to try to build apps under A/UX 2.0. I think v2.0 was current during 1991. A/UX 3.0 wasn't until 1992-ish.

ps. As I mentioned in an earlier post, I may have an A/UX driver reference somewhere, but I haven't found all of my old books yet. Some things are in storage. So...it's theoretically possible that I have the device drivers book, but I have no idea where it is at the moment.
pps. It's kind of funny that I just read a brand new, shrink-wrapped unicorn disk from 1991 on a Windows 11 machine via an external USB CDROM drive to generate a .iso image that loaded on an emulator running on top of a software copy of a ROM from a 30-year-old machine on a dead 68k OS. It's so hipster retro. :D

Disclaimer: I do not claim any rights to any software or documentation in this post. To the best of my knowledge and understanding, these titles were discontinued by Apple long ago and are now abandonware. They do not appear to exist anywhere else and have significant historical value. If they are in violation of any applicable laws, please contact TinkerDifferent for removal per DMCA or other copyright provisions.
 

Attachments

  • AUXDevTools1.0b1-1991.zip
    15.6 MB · Views: 113
  • AUXDevelopmentTools-1991.pdf
    3.7 MB · Views: 138
Last edited:

retr01

Senior Tinkerer
Jun 6, 2022
2,473
1
793
113
Utah, USA
retr01.com
Mmm cool! What about a dual boot thing to use BlueSCSI and choose which way to go; System 7 or AU/X and have fun on the SE/30 or a Mac II? :)
 

robin-fo

Tinkerer
Feb 17, 2022
98
50
18
Switzerland
Mmm cool! What about a dual boot thing to use BlueSCSI and choose which way to go; System 7 or AU/X and have fun on the SE/30 or a Mac II? :)
I can confirm A/UX already works with BlueSCSI and Macintosh II series computers like the SE/30. A/UX‘s complicated startup procedure is due to the fact that the Macintosh ROM was not intended to load anything else than a Macintosh System file on a HFS volume. The A/UX kernel however is on an Unix volume. To load the UNIX kernel without a MacOS based bootloader, you would need to either
- Add support for the A/UX file system and kernel loading to the ROM (or maybe the disk driver partition?)
- Do it like early Mac OS X version and add a dummy System Folder to the disk. You would need a small HFS volume for this which holds the kernel and dummy System Folder.

Luckily, none of this relates to A/UX kernel drivers.

Check the Shoebill source code on how to load the kernel without first loading the ROM.
 
  • Like
Reactions: retr01

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
I scanned it at 300dpi/JPEG - seems to be OK. The printed quality is good. Trying to increase the resolution or make it lossless just makes the file laggy and doesn't really seem to add any major usability benefit. The raw scans were about 100mb of scan data that optimized down to 3.8mb after enhancement and OCR. See the above post for the file(s).
 
Last edited:
  • Like
Reactions: robin-fo

retr01

Senior Tinkerer
Jun 6, 2022
2,473
1
793
113
Utah, USA
retr01.com
Do it like early Mac OS X version and add a dummy System Folder to the disk. You would need a small HFS volume for this which holds the kernel and dummy System Folder.

Yep. Put each OS on separate volumes. With @Kay K.M.Mods' new SMC ROM SIMM, the ROM can be programmed in assembly from C to bring up a bootloader like this on my Mac Mini G4. This is an example; I would see two HDD icons rather than a CD/DVD icon.

fig107.jpg
 

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
I am now working on the A/UX 2.0 ANSI C Compiler doc, but it might be worth noting that it bears some similarity to the later (1992) reorganized/updated A/UX 3.0 version that you can find on bitsavers:
A/UX 3.0 Programming Languages and Tools Volume 1 - 1992

A/UX 2.0 might have historical value, but in terms of usability and machine compatibility (including '040 support), A/UX 3.0 is more mature and System 7-like. I guess it depends on your goal. It's fun to walk the retro path and see how things changed over time.

From the perspective of video board development, Early A/UX releases (1.0, 2.0) helped ensure that peripheral manufacturers could resolve implementation issues that prevented full A/UX compatibility. Specifically, A/UX makes calls to Video Reset (which the MacOS does not). So, if there were problems with 3rd-party vendor video driver spec support (such as implementation of the Video Reset control call), then A/UX would typically hang with a gray screen on startup. There were potentially other things that could have been an issue, but they were easy enough to resolve using the lowmem global hardware config flags (HwCfgFlags/word) to detect the A/UX environment ($200 bit at address $b22 = A/UX). This trick was also useful for application developers.

For reference, see the following:

HwCfgFlags.png


From:
A/UX Toolbox: Macintosh ROM Interface, p. 3-19