Bryan Parkoff wrote: >Bill, >> Bryan doesn't maybe realize that if you: >> >> LDX #$60 >> LDA $C080,X ; actual address being loaded is $C0E0 > Well, I already realize that. $C0F0-C0FF is for slot 7. $C0D0-$C0DF is >for slot 5. It is why we are told to use LDX $#50, $#60, or $#70 so IWM can >be mapped to one of 7 slots properly. We are advised not to use LDA $C0x0 >because if we move controller card from slot 6 to slot 7, we can change from >LDA $#60 to LDA $#70. We don't have to change from $C0E0-C0EF to >$C0F0-C0FF. It would be easier for us to select slot number rather than >mapping the I/O address. Does it make sense? > If you try to use LDY instead of LDX and LDA $C08x,Y instead of LDA >$C08x,X, it will work either. It is not important. So, what exactly was your point? Of course the slot architecture is designed to be versatile and clean. That's part of the genius of the Apple II. It provided: 1) a 16-byte "device select" address space for each slot (intended primarily for card control), 2) a 256-byte "I/O select" address space for each slot except slot 0 (intended primarily for control firmware), and 3) a 2048-byte "I/O strobe" address space for all slots to share, together with a protocol for sharing, 4) fully decoded slot-specific "device select", "I/O select", and "I/O strobe" signals. This was a very insightful design that encouraged "plug and play" I/O cards incorporating device specific drivers, allowing bootable devices to be designed without changing the computer or its ROM (after the Autostart revision). Pretty clean and forward looking for its time, I'd say. And we have Steve Wozniak and Allen Baum to thank for this beautiful piece of engineering. -michael Check out amazing quality sound for 8-bit Apples on my Home page: http://members.aol.com/MJMahon/