jf4@bonnie.UUCP (John Fourney) (08/15/84)
x I am working on some hardware and software to control an analog synthesizer using the c64. I want to build a monophonic sequencer that records what I'm playing on the synth and stores and replays the sequence. I want this thing to work in real-time, so that when I go from the record to the play mode, it automatically starts to play the sequence. Also, I want to have the sequencer synchronized to a drum machine. What I have come up with so far follows. I can read the status of the drum machine, which puts out a trigger for each "event", by using one of the joystick ports. The only memory-mapped address I know is joystick B's, which is $DC00. So I can hook up the drum machine to one of the joystick bits, and then when I read (I'll be using machine language) from this address, one of the bits will correspond to the status of the drum machine. The drum machine trigger is a transition from +5 to ground. Similarly, I can find out what's happening with the synth by using another memory-mapped address. The control voltage from the synth will be digitized (6 bits) from an a/d converter. I want to use the same address to write data back through a d/a converter to the synth. Does anyone know if there is an address I can use without going inside the machine, or building my own address selector? Could someone with the anatomy book post the memory-mapped addresses and what each controls? Also, what is the best way to hook into the data bus? I need bits D0-D7 from one of the ports. Does anyone have experience (sources, names, etc.) in connectors needed for the ports, especially the 44-pin communications interface? I would like to know what experience people have in writing in machine language. What type of assemblers can you recommend? I am planning on using this with a Moog synth, but it will be applicable to quite a few others. Anyone else interested in this? Any ideas or suggestions? thanks, John (201) 386-4300 (work) (201) 678-3256 (home)
slag@charm.UUCP (Peter Rosenthal) (08/15/84)
byte the bug The two joystick ports of the commodore 64 are both bidirectional parallel ports with bit selectable data direction. You should be able to program one of the ports as an output port and use it to control a d to a converter. By the way, another way of detecting the drum signal would be to put it on an interrupt line, the same way that the joystick trigger button interrupts the cpu. This will cut the requirement for continued polling of the drum line. This would allow you to increase the sampling frequency on your d to a or a to d converters.