Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Pegasus pads converter on the Commodore 64 (C64)

Status
Not open for further replies.

Vermes

Advanced Member level 4
Joined
Aug 2, 2011
Messages
1,163
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,316
Activity points
22,318


It is a design of converter allowing to use joysticks from the Pegasus console on a popular computer Commodore 64 (C64). The device is based on microcontroller Atmega8.

Commodore 64:



C64 Joystick is a simple device, connected by DB9 port. Such a controller can consist of five buttons (4 directions and fire) and two analog buttons which can operate in a certain range (potentiometers). Schematic of the controller:



Pegasus Joystick:



Pegasus Joysticks have 4 direction button and four buttons (Start, Select, A, B). Sometimes there are also additional two buttons (Turbo-A, Turbo-B) which pressed give the effect of fast pressing and releasing A and B buttons. Those controllers can also be connected via DB9 port.

Difference between those two types of joysticks is that the one of Pegasus does not have each button connected to different cable as it is in the C64. Except the ground and supply, it has three lines: STROBE, CLOCK and DATA.



To read the state of buttons, you have to trigger the rising edge on the STROBE. Then you can start reading the buttons states – trigger the rising edge for each of them on the CLOCK, and then read the state from the DATA line. Another edges on the CLOCK line read the states of the buttons in the following order: UP, DOWN, LEFT, RIGHT, SHIFT, START, A, B. In the controller there is an additional chip 4021 (8-bit shift register), which is responsible for the above protocol decoding.

Joystick of Pegasus can be easily processed for C64, by soldering the buttons directly for it (except the cirucit). But it is more fun to adapt it without processing the inside.

Program implementation:
Microcontroller implements the following sequences in the loop:
  • reads all the buttons from the first and the second Pegasus controller
  • sets the state of the corresponding buttons on the inputs of PORT1 and PORT2 from C64 (button A is the FIRE)

Technical implementation:
The device consists of microcontroller Atmega8 and 4 ports – two connected to C64 and two, to which the Pegasus controllers would be connected. The whole (microcontroller and Pegasus joysticks) is powered from the ports of C64 controllers:



The PCB with the system was designed in Eagle so that it is as small as possible. Spacing of sockets was chosen so as to place it directly in C64 (a suitable distance between the sockets). 10-pin connector is the ISP, used for programming the microcontroller without the need for removing.



Pictures:



Link to original thread (useful attachment) - Konwerter padów od Pegasusa pod Commodore 64 (C64)
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top