Are there any alternatives to the 6522

alternativesvintage

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

Best Answer

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).