Using peripheral connector I/O SELECT or DEVICE SELECT

4 posts / 0 new
Last post
Offline
Last seen: 1 year 8 months ago
Joined: Jul 16 2006 - 17:30
Using peripheral connector I/O SELECT or DEVICE SELECT

Greetings fellow nerds!

I am working on an FPGA-based peripheral card for Apple II (currently tested in a IIe). This board in its current state works as expected but I wanted to add some I/O control to turn on and off features, so I decided that the DEVICE SELECT signal was the best choice. However it seems like I cannot activate the DEVICE SELECT signal!

As I understand, the DEVICE SELECT signal is activated when referencing an address between C0n0 and C0nF, where n is the slot number + 8. My card is in slot 3, so that would mean address C0B0 to C0BF. I tried jumping into monitor (CALL -151) and then referencing C0B0, C0A0, C0C0, etc. Nothing seems to activate the DEVICE SELECT signal. I even modified the FPGA firmware to react to any falling edge on the DEVICE SELECT signal (i.e. regardless of the Apple clock signal), but that doesn't work either. Why?!

Also noted that the I/O SELECT signal has a similar behavior. The disk drive card seems to use both signals: http://www.applelogic.org/files/APPLEDIISCH.pdf

Any reason why? What is the difference?

Cheers
Jakob

speedyG's picture
Offline
Last seen: 6 hours 54 min ago
Joined: Nov 16 2011 - 07:45
Re: Using peripheral connector I/O SELECT or DEVICE SELECT

Hello Jacksel,
i am to lazy to explain .... take a view to the Applesoft program in my page:
http://www.appleii-box.de/appleboxJonasSoundCard2.htm

at the discussed card i switch between the modes by using the slotadressing of the
I/Oselect and determining the slot and then adding a codebyte to switch the modes of the card. To zou onle the math and peek commands with the basedefinition of the slots will be interesting...
i guess that will solve your problem....
speedyG

resman's picture
Offline
Last seen: 8 hours 18 min ago
Joined: Feb 9 2006 - 12:41
Re: Using peripheral connector I/O SELECT or DEVICE SELECT

Jakob-

you are understanding the /DEVICE_SELECT line correctly - it is pulled low for access to the 16 byte slot specific address space between C0n0 and C0nF ( n = slot + 8 ). It is already qualified by the 6502 clock, so it, R/W, and A0..A3 should be all you need for decode. Double check you have the right pin on the bus interface. The /IO_SELECT goes low for the 256 slot specific address space CsXX (s = slot). That address space is usually used by a small ROM, but can also be used for I/O on ROMless designs (the signal names are confusing in this regard). Note that on a IIe, /IO_SELECT is inhibited on slot 3 if an 80 column card is in the AUX slot - use a different slot. Hope that gets you going,

Dave...

Offline
Last seen: 1 year 8 months ago
Joined: Jul 16 2006 - 17:30
Re: Using peripheral connector I/O SELECT or DEVICE SELECT

Hi Dave
Thanks for the input. Actually, I was using slot 3 initially, and didn't get DEVICE SELECT nor IO SELECT working. I then realized that slot 3 was different from the other slots and moved to slot 4, and eventually I was able to capture the IO SELECT status properly. I am running the FPGA at 50 MHz and have a process for capturing the bus signal values at different points in each Apple II bus cycle. I had to adjust the timing a little to make it work. There were probably some coding bugs involved too.

My next project should probably be an Apple II bus logic analyzer... Wink

Log in or register to post comments