Re: Meet the 65F02 - a 65C02 at 100 MHz
Posted: Sat Jul 04, 2020 5:25 pm
@cjs: Thank you for the details about usage of the extended memory in the Apple II. I guess I have only ever used my language card for UCSD Pascal, which may be a special case. To support switching back and forth between RAM and ROM, I guess my best bet, in view of the limited 64k block RAM I have in the FPGA, is a compromise: Upon startup, read in (and accelerate) the ROM; allow it to be overwritten and used as RAM once the language card gets enabled; and then revert to un-accelerated mode in that address space whenever the ROM gets switched back in.
For the more advanced Apple //e and //c, I am firmly with Ed: That's out of scope for me, just like the BBC Master. Too much hassle and an awkward solution; and the result would be less than convincing since I could only accelerate a fraction of the available host memory.
Besides technical reasons, personal preferences and nostalgia come into play too, to be honest. The Apple II plus was my first computer -- I still have it, and did my initial tests of the 65F02 on that very machine. And UCSD Pascal was dear to my heart as my first "real" programming language, so I would like to support it. But by the time the Apple //e came out, I had moved on to 68000 systems, so that generation of machines does not mean as much to me.
Supporting a much larger, off-chip RAM would be neat, but I don't think I can accommodate it in the 40-pin DIP footprint. Even if I find room for the chip, bringing out approx. 30 additional address/data/control lines from the FPGA seems impossible:
The design rules of the affordable PCB houses (like Aisler, OSH Park, and the various Chinese fabs) allow for one trace between BGA pads, or one via in the middle of a square of pads, for this 0.8mm pitch BGA. With the narrow PCB, one can essentially only bring out traces towards the short sides of the PCB, and those are pretty crowded already. There's limited room for more vias to other layers, since the decoupling caps block the bottom layer below the FPGA.
I'm attaching a view of the top and bottom layer (without the pours) to give a better idea. Blind vias seem like the only way to bring out significantly more traces, and none of the cheap PCB places support those.
For the more advanced Apple //e and //c, I am firmly with Ed: That's out of scope for me, just like the BBC Master. Too much hassle and an awkward solution; and the result would be less than convincing since I could only accelerate a fraction of the available host memory.
Besides technical reasons, personal preferences and nostalgia come into play too, to be honest. The Apple II plus was my first computer -- I still have it, and did my initial tests of the 65F02 on that very machine. And UCSD Pascal was dear to my heart as my first "real" programming language, so I would like to support it. But by the time the Apple //e came out, I had moved on to 68000 systems, so that generation of machines does not mean as much to me.
Supporting a much larger, off-chip RAM would be neat, but I don't think I can accommodate it in the 40-pin DIP footprint. Even if I find room for the chip, bringing out approx. 30 additional address/data/control lines from the FPGA seems impossible:
The design rules of the affordable PCB houses (like Aisler, OSH Park, and the various Chinese fabs) allow for one trace between BGA pads, or one via in the middle of a square of pads, for this 0.8mm pitch BGA. With the narrow PCB, one can essentially only bring out traces towards the short sides of the PCB, and those are pretty crowded already. There's limited room for more vias to other layers, since the decoupling caps block the bottom layer below the FPGA.
I'm attaching a view of the top and bottom layer (without the pours) to give a better idea. Blind vias seem like the only way to bring out significantly more traces, and none of the cheap PCB places support those.