Building A/UX Device Drivers

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
Historically, APDA(Log) was external to Apple and came into being in the early-mid '80s as a resource for technical info. Apple eventually acquired them and centralized developer resources in the late '80s, along with creating MacDTS - Developer Tech Support...and the MacDTS Tech Notes to help further clarify technical issues for developers, including the famous Tech Note #31! :D

I remember seeing the first APDALog when I began focusing on Mac in the Mid-'80s. The APDA catalogue I have on hand is from February 1992, just after the release of QuickTime 1.0. QuickTime was released in December of 1991. I remember because, instead of being on vacation with family over the holidays, I was working around the clock writing a VDIG that had to be done by the time QuickTime shipped. 🤬 I think I might have an Apple II Guide from APDA somewhere.
 

retr01

Senior Tinkerer
Jun 6, 2022
2,473
1
796
113
Utah, USA
retr01.com
Apple (and most tech companies) was well known for its haphazard status especially back then when it would jump from there to over there and things happened last minute. I think it's less today with better project management standards.

It is great meeting folks like you who experienced being involved and working, directly or indirectly for Apple, back in the day. I look forward to learning more from you. 🙂

That is one of the reasons why I love Tinker Different!
 
  • Like
Reactions: BFEXTU

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
Meh - I found the Apple II Guide. It is a very high level user guide - not too useful unless you want to find out how to pick up ProDOS in a bar and have weird Apple II babies.
 
  • Haha
Reactions: retr01

retr01

Senior Tinkerer
Jun 6, 2022
2,473
1
796
113
Utah, USA
retr01.com
Does the guide apply to all Apple II series including the IIGS? I wonder about guides for the IIGS toolbox and other things like the game port on the IIGS logic board? I have a thread going on about the IIGS game port.
 

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
I just skimmed it - it was very high-level. It is from Fall of 1990 and opens with a letter from Woz and some historical perspective. The back 3rd is a resource directory / listing. There is a section on "understanding technical information," including high-level blurbs about the OS, etc. There is brief mention of DOS, ProDOS and the IIgs. There is a sales/service/support section. There is a section on communications/networking. The whole thing is very marketing-focused and is, as it says, a guide for Apple II users. The historical stuff is interesting and there may be some info gems in the resource directory that have been lost to time, but it is by no means a technical reference.
 

retr01

Senior Tinkerer
Jun 6, 2022
2,473
1
796
113
Utah, USA
retr01.com
Wow, this is amazing! Thank you, @BFEXTU!

What were programming languages, besides assembly, critical back then on the Mac? I know nowadays it's Swift but back in the day? I seem to recall but can't remember?
 

robin-fo

Tinkerer
Feb 17, 2022
100
51
28
Switzerland
I previous assembled a collection of A/UX install media and reference documentation.

Try here:


😉
Many thanks! I‘ll check it when back from the holidays (can‘t read an ISO on the iPhone…😃)
 
  • Like
Reactions: BFEXTU

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
For me, the evolution of Mac programming languages and use depended on the purpose, but it generally tracked the use and growth in language development over time as the personal computer took over. Initially, Pascal was very common and shipped with the early Macs -- MacPascal was the evolution from LisaPascal in the very early '80s. I may still have a copy of MacPascal somewhere. Then, it was followed by LightSpeed/THINK, TurboPascal, MPW, etc. Pascal was also available for the Apple II (very early, pre-'80s). But, the genius of the Apple II was Apple Basic and being able to drop into a command prompt at any time. There was also MacBASIC that appeared in the '80s (but I never really used it).

My first non-Apple Pascal compiler was Borland TurboPascal.

68K assembly was a requirement to do anything at the hardware level or to do hardware engineering (used it all the time, and then some). Initially, 68K was relatively easy and became more advanced with the appearance of the '020, '030 and '040 processors (managing interrupts, patching bus error vectors, etc.). I really loved 68K assembly.

Coming from Apple II, many early Mac developers understood 6502 assembly and also probably had crossover x86, Z80 experience and were familiar with MS-DOS and CP/M. There was a CP/M card for the Apple II in the early days.

At the hardware level, you had to be somewhat micro assembly agnostic -- but micros are all very conceptually similar and Motorola was a common platform, HC05, HC11, 6805, etc. For example, a peripheral device might be in HC11 and if you were working on low-level code in the Power Manager of the PowerBook Duo, you might be writing in 6805 assembly. The early high-level language compilers for embedded were somewhat primitive. It was mostly assembly for embedded work.

Generally speaking, C eventually became the mainstay across all levels, growing into C++ at the high level by around 1995-6-ish. However, there were other hardware development tools including Forth -- such as Mach2 and MacForth -- for probing hardware addresses, board bring-up, etc. that stretched back into the '80s and were critical for Mac developers (and researchers). Plus, Forth is cool - a stack-based language that lives in between high-level and assembly. I had to use it during board bring-up.

Also, I seem to recall direct PCI programming and low-level interrogation on later Macs via FCode. And, as you would expect -- there were many other languages that paralleled academia - Lisp (especially - very cool), Smalltalk, Fortran, etc.

There were specialty languages and MANY communications protocols to master -- the language of Data I/O. Notably, with the rise of Adobe, WYSIWYG and high-resolution imaging, came Postscript -- another early win for Apple -- but not used for general programming. However, it allowed for high-resolution definition and synchronization between the Mac (PageMaker) and Apple's early LaserWriter (mid-80s), giving rise to Desktop Publishing.

From my perspective, one of the best things Apple did to help all new programmers was to create HyperCard and HyperTalk. HyperTalk was very Pascal-like and called back to the early days of MacPascal but with greater ease-of-use and immediacy (interpreted) -- no need for a compiler or IDE (but eventually, there was a compiler/run-time). On the heavy metal side, MPW was the core IDE and had many extensions, capabilities and significant build complexity (my favorite). Other IDEs appeared over time -- the LightSpeed tools evolving into THINK tools and also the appearance of Metrowerks CodeWarrior (another personal cross-platform favorite), that was acquired by Motorola for their processor ecosystem. MPW was great and my standard IDE for a long time, but it was pricey and eventually lost out to CodeWarrior (and time-sharing with VisualStudio on the PC).

Finally, for the Mac, in order to be an effective developer, you had to understand Mac resources, resource files, resource programming and ResEdit. There was a dedicated book for ResEdit. I really loved ResEdit. Before I could program, I was a RedEdit hacker and prankster.

For debugging and disassembly, the primary tools were MacsBug and TMON -- again -- various dedicated books for Macsbug from Apple and a number of 3rd-party resources. Both tools were highly extensible with add-ons, data structure templates, symbols, etc. I used to love Macsbug on 68K processors. And, TMON was great. For disassembly, there was a program called MacNosy by Steve Jasik -- another very useful tool.

To summarize, coming from parallel exposure to early Macs and Apple II/IIc/IIgs then on to hardcore Mac-only, my dev language path was as follows:

High-Level
(BASIC) --> PASCAL ---> C ---------> C++
(HyperTalk for certain user docs because it was fun and useful)
---------------------------------------------------------------------
Mid-Level (glue for high-level integration)
------------------- 68K ASSEMBLY ------------> (always present/required) - HAL
Low-Level (glue for low-level integration)
---------------------------------------------------------------------
Device-Level (Metal and Minimalism)
--MICRO ASSEMBLY + C --------------->

But...mostly C and assembly.

For development today, It's still C/C++ and assembly, unless you're doing web, then it could be anything, with the specific addition of C# and Java as possible embedded cross-overs. C# is increasing in relevance with the rise of IoT, but it's still mostly C and assembly.

I hope the above provides a good overview of what it was like to grow through the evolution of various development tools on the Mac (and otherwise).

Mod: This reply seems off-topic vs. OP, so maybe move to a new thread, as needed.
 
Last edited:

robin-fo

Tinkerer
Feb 17, 2022
100
51
28
Switzerland
I really loved ResEdit. Before I could program, I was a RedEdit hacker and prankster.
Back when I was in elementary school (maybe in 2006 or so), I used ResEdit to „create“ my custom „version“ of ClarisWorks 4.0. I simply changed PICT, icon and string resources… It was great fun!
At this time, I only had a working IIvx and a dead IIsi. Today the IIsi is revived, the IIvx dead and I have an increasing fleet of Macs from 1986 to 2021…
I‘m also professional Embedded Software Developer today, but haven‘t done much coding on the vintage Macs yet.
 
  • Like
Reactions: retr01

retr01

Senior Tinkerer
Jun 6, 2022
2,473
1
796
113
Utah, USA
retr01.com
Back when I was in elementary school (maybe in 2006 or so), I used ResEdit to „create“ my custom „version“ of ClarisWorks 4.0. I simply changed PICT, icon and string resources… It was great fun!

Cool.

At this time, I only had a working IIvx and a dead IIsi. Today the IIsi is revived, the IIvx dead and I have an increasing fleet of Macs from 1986 to 2021…

Can you please look at @jajan547's thread about the dying IIvi and IIvx?


I‘m also professional Embedded Software Developer today, but haven‘t done much coding on the vintage Macs yet.

Cool. Does embedded software development relate to web development's front-end and back-end parts?
 

Drake

TinkerDifferent Board Vice-President 2023
Staff member
Sep 23, 2021
447
783
93

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
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. n.b. A/UX requires a video card that correctly implements the Video Reset control/slot call, since A/UX calls it during the startup process (and is probably the only thing that does). Nothing on the MacOS side used to call it. So, when launching A/UX, if it always hangs at startup with a gray screen, try a different video card or motherboard video to see if it fixes the problem. For example, some early SuperMac boards with original ROMs (original Spectrum/8 and Spectrum/24 boards/ROMs) did not work with A/UX. But, later boards (and those early boards with updated ROMs) should work. I also found a document for partitioning for A/UX on a DataFrame, but it could also serve as a reference for any drive.
 
Last edited:
  • Like
Reactions: mietek and robin-fo

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
I will work on converting these materials. I need to get a double-sided document scanner.
 

retr01

Senior Tinkerer
Jun 6, 2022
2,473
1
796
113
Utah, USA
retr01.com
@BFEXTU, I have a double-sided scanner. I am adept with Photoshop, Acrobat, etc. I scanned and cleaned up documents for a few years and have gained a lot of experience with digitization. I will be happy to help out. :)