1

I want to build a legacy product (Mockingboard for the Apple IIe). I have built one on a breadboard using vintage parts. I believe I can replace the audio chip (AY-3-8912) with a propeller.

But, I can't seem to find an alternative to the 6522 VIA IC. http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_43254_-1

Granted, it appears these are still made. Maybe because nothing easily replaces them?

Anyway, is there a more modern alternative? Something that is surface mount or just a smaller package?

The project I want to make would be very small quantities but the board space is minimal and these chips are ginormagantuan.

Thanks

cbmeeks
  • 1,190
  • 2
  • 13
  • 27
  • Use a CPLD configured with the 6522 functionality. – Leon Heller Mar 19 '15 at 18:12
  • I like that idea. Especially since I've been wanting to get into CPLD and FPGA. Would a GAL be good enough for something like this? Do you have a recommendation on a CPLD board/chip? Thanks – cbmeeks Mar 19 '15 at 18:24
  • I wouldn't bother with a GAL, they are obsolete and rather limited. Have a look at the small Altera devices. – Leon Heller Mar 19 '15 at 18:38
  • 3
    65C22 is available in 44 pin PLCC. Mouser have 750 in stock (part# 955-W65C22S6TPLG-14). – Bruce Abbott Mar 19 '15 at 19:01
  • Awesome! I didn't see that. I searched for 6522 and didn't find anything. I did notice that is 14Mhz. I'm assuming it can be clocked down to 1Mhz but I will read the datasheet to see. Feel free to post this as an answer because that is what I was looking for. No worries of it being obsolete anytime this year or two. :-) Oh, I even see that you can get a low voltage too (< 5) which works better with my Propeller. Sweeet! – cbmeeks Mar 19 '15 at 19:16

1 Answers1

1

I would suggest that you might be able to use an ARM to emulate the entire Mockingboard with an ARM running a very tight loop, especially if you know which features of the board software will be relying upon. It would likely be necessary to write everything in assembly language, but some ARM7-TDMI chips can run more than 64 cycles for each 6502 bus cycle. While perfect emulation of the chips in question might not be possible within those time constraints, it should be possible to come close enough to satisfy Apple II software that wants to talk to the Mockingboard.

BTW, the propeller may be a good choice for tone generation, but an ARM7-TDMI could do pretty well also. Code to emulate three voices would be:

; Assume R8 points to voice information; R1 will be the total amplitude of all voices
; R9 points to a table of volume values
    ldrm   r8,{r4,r5,r6} ; Load info for three voices
; Code for each voice:
    adds   r4,#0x80000 ; Upper 13 bits are phase
    addcs  r4,r4,asl #19 ; Bottom 13 bits are frequency
    eorcs  r4,#0x02000 ; Bit 13 is square wave
    and    r0,r4,#0x0003C000 ; Extract volume
    ldrbs  r0,[r9,r4 lsr #14] ; Square wave into carry
    addcs  r1,r0
; Repeat above six instructions for R5 and R6.  Then...
    strmia r8,{r4,r5,r6}
; One may repeat the above sequence for as many groups of three voices as desired,
; at a cost of 33 cycles per group (about half a microsecond at 70MHz).
supercat
  • 45,939
  • 2
  • 84
  • 143
  • I thought about using a microcontroller. My current plan is to use the 6522 VIA that @Bruce Abbot found that comes in a 44pin PLCC. The 6522 is a vintage chip but it appears to be in production. So no fears there. The problem, I think, with emulation is that the Mockingboard I want to clone actually had TWO 6522's and TWO AY-3-89x0's on them. Giving 6 channels. I don't think a single uC could handle that. Maybe the propeller can with its 8 cogs. But I think the 6522 would be too hard to emulate x 2. Plus, I want 100% compatibility. So looks like 6522 + propeller will do. – cbmeeks Mar 20 '15 at 14:45
  • That's nice but it isn't just about emulating three voices. It's about implementing the specs of the AY-3-89X0 which has things like envelope control. This has been done to a very high degree for the propeller. Not sure if it has been done for AVR (not that it couldn't). – cbmeeks Mar 20 '15 at 20:14