PET user port programming

From: Chris Wareham <>
Date: Wed, 10 May 2017 11:25:37 +0100 (BST)
Message-ID: <>

I've just signed up to the list as I'm currently writing a simple MIDI sequencer for my PET 4032. I'm using the cc65 compiler suite, but having difficulties finding information on user port programming and timing.

At the moment I have a home made circuit on a breadboard with an LED for each of the data pins on the user port. When I write a byte to the data register for port A the corresponding LEDs light up. The missing pieces of the jigsaw are how to do the timing so that bytes get written at the correct intervals and the handshaking so I know when each byte has been read. I'm guessing I do the timing by setting a timer and handling interrupts, but neither of my two PET programming books cover this.

MIDI messages consist of three bytes, but I've got my pseudo MIDI messages down to two bytes:

mnnnnnnn ccccvvvv


m is 1 for note on or 0 for note off
nnnnnnn is the note number 0-127
cccc is channel 0-15
vvvv is velocity 0-15

MIDI supports velocity values of 0-127, so I plan on shifting my 4 bit value to get a reasonable spread of velocities. I plan on using an Arduino to convert my pseudo MIDI messages into real ones. Hopefully I can then make an interface with a suitably programmed Atmega chip rather than a complete Arduino board.

Any advice will be most gratefully appreciated!



       Message was sent through the cbm-hackers mailing list
Received on 2017-05-10 11:01:48

Archive generated by hypermail 2.2.0.