[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Apple II Pi



David Schmenk <dschmenk@gmail.com> wrote:
> On Friday, 24 May 2013 11:30:14 UTC-7, Michael J. Mahon  wrote:
>> David Schmenk <dschmenk@gmail.com> wrote:
>> 
>>> On Thursday, 23 May 2013 17:58:45 UTC-7, Michael J. Mahon  wrote:
>> 
>>>> David Schmenk <dschmenk@gmail.com> wrote:
>> 
>>>> 
>> 
>>>>> This weeks project:
>> 
>>>> 
>> 
>>>>> 
>> 
>>>> 
>> 
>>>>> http://youtu.be/Kx_ggKHWaxA
>> 
>>>> 
>> 
>>>> 
>> 
>>>> 
>> 
>>>> Dave,
>> 
>>>> 
>> 
>>>> 
>> 
>>>> 
>> 
>>>> You can probably use the RPi GPIO pins to eliminate the need for a serial
>> 
>>>> 
>> 
>>>> link...  It shouldn't take more than an octal transceiver connected between
>> 
>>>> 
>> 
>>>> the RPi and the Apple bus--controlled by the Apple bus. 
>> 
>>>> 
>> 
>>>> 
>> 
>>>> 
>> 
>>>> -michael - NadaNet 3.1 and AppleCrate II: http://home.comcast.net/~mjmahon
>> 
>>> 
>> 
>>> 
>> 
>>> The RPi GPIO pins really aren't as powerful as you might think.  The
>> 
>>> choice by the Raspberry Pi foundation as to which pins to bring out to
>> 
>>> the header, was, um, a little odd.  
>> 
>> 
>> 
>> That's too bad--I find it hard to imagine that there wouldn't be at least
>> 
>> an 8-bit port there, plus a couple of lines for handshaking/interrupts. 
>> 
>> 
>> 
>> I wonder what part of GPIO they misunderstood?  Or maybe it's a limitation
>> 
>> of the Broadcom part...
>> 
>> 
>> 
>>> Once I gave in to using the serial interface as the communication channel
>> 
>>> and using the 6502 to do the dirty work, it actually made things much
>> 
>>> easier.  For one, it's pretty hard to service interrupts for the Apple
>> 
>>> Mouse remotely.  As I'm running the serial link at 115K and the
>> 
>>> communication traffic is pretty light, performance isn't much of an
>> 
>>> issue.  I would like to add the ability to read and write Apple II memory
>> 
>>> from the RPi, as well as call code on the Apple II - kind of like a retro Arduino.  
>> 
>> 
>> 
>> The first three commands/transactions I implemented for NadaNet, back in
>> 
>> the beginning, were peek, poke, and call. ;-). I figured if necessary I
>> 
>> could build anything else out of those!
>> 
>> 
>> 
>>> My thoughts on the IIe expansion card are to use a 6551 (same as the
>> 
>>> SuperSerial Card) but derive it's baud rate clock from the RPi's GPIO
>> 
>>> general purpose clock pin (thus saving a crystal).  Also connecting one
>> 
>>> of the GPIO pins to the 6502 RESET line would allow the RPI to reboot the
>> 
>>> Apple II if it hung.  Then we could play with the Apple II's I/O bus from Linux.
>> 
>> 
>> 
>> Just out of curiosity, if GPIO can't control a transceiver, how do you
>> 
>> manage to interact with the Apple bus?
>> 
>> 
>> 
>> -michael - NadaNet 3.1 and AppleCrate II: http://home.comcast.net/~mjmahon
> 
> Michael-
> 
> It's not that the GPIO's couldn't interact with an octal latch, it's just
> that they're kind of spread all over.  Some pins are assigned to certain
> function that can be re-assigned, but not neatly.  At least as far as I
> could detect.  Aside from some common block functions like serial ports,
> I2C, SPI, PWM, and CLKS, you get control of one bit per address.  So by
> using the serial port functionality that is burned into the default Linux
> distribution, I don't have to do much work for things like blocking I/O. 
> I can also write the code in user space without resorting to kernel
> drivers.  I figure simple operations like general clocks and reset lines
> would be appropriate for some other GPIO pins that are available.
> 
> All the R/W interaction with the Apple bus will be through client/server
> protocol between the ARM and 6502. It involves much hand waving and
> speculation, at the moment.  But the basic proof-of-concept seems to bear
> out the feasibility of this approach.  It does end up looking quite a bit
> like a network protocol.  Since the 6502 is the slowest part of the
> communications channel, I make it the initiator of the transactions.  I
> also don't use interrupts on the 6551 so as to not interfere with the mouse interrupts.
> 
> In the end, it kind of kind of blurs the line between emulation and
> enhancement.  Does running some code on the Apple qualify the RPi as an
> Apple II accelerator?
> 
> Dave...

Thanks, I see now what you mean. 

I'm still amazed that the RPi chip (apparently) is so unlike a
general-purpose microcontroller that it doesn't have a single-address 8-bit
port. ;-( I suppose that's what happens when you re-purpose a phone
processor!

-michael - NadaNet 3.1 and AppleCrate II: http://home.comcast.net/~mjmahon