Make the Apple IIe Option Card software 32bit compatible?

Oct 15, 2021
168
216
43
I have no doubt that this would be no small feat. But what would be required to try and bring this software into the 32bit RAM addressing era?


lc2e_control.gif
 
  • Like
Reactions: JDW

Nixontheknight

Tinkerer
Nov 3, 2021
130
22
18
I think the only thing preventing it is the RAM on the iie card itself, where half is used by the Mac side, and half is used for the iie card itself. But it would require a disassembly of the code, or a complete rewrite of the program from scratch
 
Oct 15, 2021
168
216
43
I think the only thing preventing it is the RAM on the iie card itself, where half is used by the Mac side, and half is used for the iie card itself. But it would require a disassembly of the code, or a complete rewrite of the program from scratch

Is my understanding correct that the Option Card has 256K and half goes to the IIe for system RAM and the other half goes to the Mac which copies the IIe ROM code into it?

How does 24bit addressing factor into that?
 

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
I don't know - it's a research project, unless Apple were to put it in the public domain. I don't know anything about this card.

Here are some basic assumptions and speculation:
It was an LC PDS card, so the main thing would be to figure out the address space for the card and command (control/status) interface. So, you would start an on actual system and probe the card with the Slot Manager to see what sRsrcs it had, etc. There might be some value there. You could also spy on all the Slot Manager commands and just watch it when using the panel to see what transactions were taking place.

The IIe panel may be a loop-back-poke design -- it pokes stuff on the card and then the card controls mac host peripherals via PDS as though they were Apple II devices. I don't know. Thankfully, I never had to use an LC for any great length of time. :D

But...what's the goal? To make the software work on newer systems on an LC with a card installed...or to emulate a IIe on the Mac and control it with (some kind of) panel (and make the panel work on a newer machine)?

Honestly, you could probably just ignore the panel and quickly rewrite it from scratch as a dialog, then just make it do what you want via whatever emulation modules you bolt on to it. There are already Mac IIe emulators out there and it's only a 16K ROM. The magic would be in understanding how to interface with hardware data i/o and grabbing the events and doing the right thing when in "IIe" mode.

So, if it were me, I would toss the software and just rewrite it, then look into/repurpose/create a software emulator, then add peripherals (or soft equivalents). Have fun!

Here is the card:
PDSEmuCard.png
 
  • Like
Reactions: JDW

Nixontheknight

Tinkerer
Nov 3, 2021
130
22
18
I don't know - it's a research project, unless Apple were to put it in the public domain. I don't know anything about this card.

Here are some basic assumptions and speculation:
It was an LC PDS card, so the main thing would be to figure out the address space for the card and command (control/status) interface. So, you would start an on actual system and probe the card with the Slot Manager to see what sRsrcs it had, etc. There might be some value there. You could also spy on all the Slot Manager commands and just watch it when using the panel to see what transactions were taking place.

The IIe panel may be a loop-back-poke design -- it pokes stuff on the card and then the card controls mac host peripherals via PDS as though they were Apple II devices. I don't know. Thankfully, I never had to use an LC for any great length of time. :D

But...what's the goal? To make the software work on newer systems on an LC with a card installed...or to emulate a IIe on the Mac and control it with (some kind of) panel (and make the panel work on a newer machine)?

Honestly, you could probably just ignore the panel and quickly rewrite it from scratch as a dialog, then just make it do what you want via whatever emulation modules you bolt on to it. There are already Mac IIe emulators out there and it's only a 16K ROM. The magic would be in understanding how to interface with hardware data i/o and grabbing the events and doing the right thing when in "IIe" mode.

So, if it were me, I would toss the software and just rewrite it, then look into/repurpose/create a software emulator, then add peripherals (or soft equivalents). Have fun!

Here is the card:
View attachment 8305
I think the goal might be to be able to use this card on Mac OS versions that require 32-bit addressing, and even to be able to use it on PowerPC machines that have an LC PDS slot (like the 6200 series)
 

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
The card is probably not that useful on newer machines...and in order to use it, you would have to virtualize the hardware environment if it internally expects 24-bit addressing. Also, it might be difficult for it to control host machine peripheral interfaces. It looks like something fun for its originally-intended machine, however...and it would probably be useful to do some PDS/Slot Manager debugging to see how it works for the purposes of reversing it.
 
  • Like
Reactions: retr01

Nixontheknight

Tinkerer
Nov 3, 2021
130
22
18
The card is probably not that useful on newer machines...and in order to use it, you would have to virtualize the hardware environment if it internally expects 24-bit addressing. Also, it might be difficult for it to control host machine peripheral interfaces. It looks like something fun for its originally-intended machine, however...and it would probably be useful to do some PDS/Slot Manager debugging to see how it works for the purposes of reversing it.
the LC PDS slot is 24-bit anyway, so how would it be able to tell the difference?
 

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
IIRC, the LC is both 24- and 32-bit addressing capable (and the VideoSpigot LC did both...but don't quote me). Devices that expect to be able to access 32-bit addressing (either to write to their own space or the host) have to make _SwapMMUMode calls if they are a 24/32-bit switching device (like video cards, for example, depending on environment). There can be problems when the device and the host don't agree about addressing modes. I think the OP is asking about using what is probably a 24-bit card as a native 32-bit device. So, speculatively, it would need to be re-engineered or virtualized somehow, since the card isn't going to know about the foreign environment of a native 32-bit system (not to mention its peripherals). But, my other point is that it's just a 16K IIe ROM and there are pre-existing emulators, so the LC IIe card is easy to replace. And, it's best use is probably in the original, compatible machine(s).
 

Nixontheknight

Tinkerer
Nov 3, 2021
130
22
18
IIRC, the LC is both 24- and 32-bit addressing capable (and the VideoSpigot LC did both...but don't quote me). Devices that expect to be able to access 32-bit addressing (either to write to their own space or the host) have to make _SwapMMUMode calls if they are a 24/32-bit switching device (like video cards, for example, depending on environment). There can be problems when the device and the host don't agree about addressing modes. I think the OP is asking about using what is probably a 24-bit card as a native 32-bit device. So, speculatively, it would need to be re-engineered or virtualized somehow, since the card isn't going to know about the foreign environment of a native 32-bit system (not to mention its peripherals). But, my other point is that it's just a 16K IIe ROM and there are pre-existing emulators, so the LC IIe card is easy to replace. And, it's best use is probably in the original, compatible machine(s).
so maybe the SwapMMUMode calls are the key to making the iie card work with 32-bit addressing enabled, at least on 68k machines
 

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
Well....probably not -- because you can't re-do the card firmware and it's black box -- anyway, a research project. If someone *really* wanted to take on the card in full 32-bit mode, they could make a PDS interface board that replicated the LC slot, managed the host in 32-bit mode and the card in 24-bit mode, or whatever it might need and provided a custom command interface for the rewritten panel software. But, it seems like a huge effort for not much return. It would far easier to just make a USB IIe on an STM or similar micro board -- or even Pi/Arduino, etc. But, it's fun on the LC. Hasn't someone already made a IIe emulator on a mini-board? Yep - looks like there are Pi projects. So, enjoy the card in an LC and figure out how to spy on it and spend the effort on rewriting the GUI so that it can talk to a modern emulator. Make a dialog and put in a bunch of usb driver calls. It's just speculation...but could be fun...for someone. :D
 
Last edited:

Patrick

Tinkerer
Oct 26, 2021
434
1
224
43
for me, i had it in some LC4XX box. and it had a ton of memory.

so i could either have ton of memory OR be able to run the IIe card. but not both.

but yeah. seems like it would take somebody a lot of effort and have a lot of knowledge to be able to make it 32bit compatible.
 
  • Like
Reactions: BFEXTU
Oct 15, 2021
168
216
43
for me, i had it in some LC4XX box. and it had a ton of memory.

so i could either have ton of memory OR be able to run the IIe card. but not both.

but yeah. seems like it would take somebody a lot of effort and have a lot of knowledge to be able to make it 32bit compatible.

I think it would be worth the effort because it opens up use of the card on so many new machines.

I am no programmer… but up I’m sure the task isn’t Herculean.
 
  • Like
Reactions: Patrick

retr01

Senior Tinkerer
Jun 6, 2022
2,473
1
796
113
Utah, USA
retr01.com
@BFEXTU, I just thought of something. The engine in the Mode32 INIT by Connectix for the SE/30, Mac II, and IIx patched up, so full 32-bit addressing was possible because of the 32-bit hardware. In retrospect, make a patch that will enable a complete 32-bit Mac hardware to address 24-bits when a 24-bit card like the IIe emulator is detected. Build it in an INIT and a switch panel CDEV to enable/disable 24-bit addressing. :sneaky:

 

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
I don't know. We don't know anything about the card internals, it is a PDS card and, internally, we don't know how it is managing its addressing. One possibility might be to virtualize the PDS slot. The other way might be to forget the whole thing and just use a IIe software emulator that runs on anything.
 
Oct 15, 2021
168
216
43
for me, i had it in some LC4XX box. and it had a ton of memory.

so i could either have ton of memory OR be able to run the IIe card. but not both.

but yeah. seems like it would take somebody a lot of effort and have a lot of knowledge to be able to make it 32bit compatible.

I’m all in on creating a bounty to have someone do it. I wonder you’d even organize something like that?
 

JDW

Administrator
Staff member
Founder
Sep 2, 2021
1,582
1,378
113
53
Japan
youtube.com
I acquired a IIe card and cables a couple months ago. I intend to use it in my CC Mystic and make a video about it, especially because it will involve recapping it too. I still haven't even tried using the thing because I've not had the time. But this topic about 32-bit compatibility has me intrigued. It would be outstanding if it could become reality, rather than just a pipe dream.
 
Oct 15, 2021
168
216
43
I acquired a IIe card and cables a couple months ago. I intend to use it in my CC Mystic and make a video about it, especially because it will involve recapping it too. I still haven't even tried using the thing because I've not had the time. But this topic about 32-bit compatibility has me intrigued. It would be outstanding if it could become reality, rather than just a pipe dream.
So how much are you kicking in on the bounty? ;)