Hi -
I'm making some progress with my "IWMless" project but to proceed I'd need some hints about what the Apple IIc actually does with the IWM, other the "default" configuration it has on power up (basically, in this configuration, the IWM has much the same behaviour as the DISK II controller, but with a few subtle differences regarding disk write operations and the write protect sense).
But where I'm stuck right now is the yet open question which other configurations of the IWM does the Apple IIc use ?
I don't think it will use all the 16 different configurations possible without considering the motor timer bit and the test bit, otherwise the IWM would have 64 configurations.
So the question to you out there is: did anyone of you analyze the code of the various Apple IIc firmware ROMs to find out what it may (or may not) do with the IWM ?
I simply don't have the time right now for looking through disassemly listings. I found one file said to contain Apple IIc firmware source code file on the web, but its seems to be garbled or some compressed format unknown to me. I also found this disassembly based work:
https://github.com/baldengineer/Apple-IIc-ROM-Disassembly
... but so far it did not help to answer my question, which IWM configurations are being used with the Apple IIc. Note that these are not necessarily present in the firmware ROMs. They (or at least some of them) might be invoked by the PRODOS. Since I have neither PRODOS, nor any "SmartPort" device, nor any functional Apple IIc right now, I'm somehow stuck.
Maybe some reader can enlighten me about this topic, or point to sources of information which could be useful.
Any hint is much appreciated !
- Uncle Bernie
P.S.: as far as I seem to understand the IWM after nearly one year of on-and-off reverse engineering work, some of its configurations are not useful at all (even Apple documentations says if the ASYNC mode is used, always use the LATCH mode, too, because otherwise it won't work properly), and some of the weirder behaviour I have seen may only be needed for applications in a 68000 based system - the way they have implemented the 'handshake' via MSB in ASYNC read mode - at least to me - looks as if they anticipated some 68000 bus error events where the 68000 tries to repeat a memory (or peripheral) read cycle, and the proper state of the MSB must still be there. I think all these presumably 68000 related complications can be dispensed with in a 6502 based system. And, of course, I also want to throw out all the modes and configurations the Apple IIc never uses. This will help to make the logic fit into the small ispLSI1016 CPLD I'm using in the IWMless module. I do have a few larger ispLSI devices, but these won't fit mechanically. So for what I have at hand, the ispLSI1016 was the best choice. I'm quite sure that the original DISK II controller can fit into it, but anything "more" than that may get tight. Hence, the desire to strip my IWM RTL down to what the Apple IIc really needs.
Yet another open question of course is have important the support of "SmartPort" devices is for the Apple IIc. I've seen the opinion that almost nobody has them. Because all the legacy Apple II software came on 5.25" floppy disks . . . so most Apple IIc owners did only use the "dumb" 5.25" floppy disk drives, and nothing "smart".
Maybe it was not that important back in the day, but it has become very important in the last 5 years with all the new devices like wDrive, FujiNet, etc.