Home

 

Facts

 

Archiv

 

Develop

 

Links

 

Site info

 

  [Disclaimer]

Development for STE

[Composing]

Tracker on STE

[1][2]

Chipsound

 

[Painting]  

Dpaint course  

16 colours thoughts

 

[Programming]

STE Documentation

[1][2][3][4][5][6]

Special STE Tricks

Devkit for PC owners

 

STE documentation


6. Advanced Joystick, Paddle and Lightpen ports

Registers:

  Fire-Buttons for 4 Joysticks:

    $FFFF9200  - - - -  - - - -  - - - -  X X X X

This address features the fire buttons of 4 joysticks that can be connected to these ports. Bit 0 represents joystick 0, bit 1 joystick 2, bit 2 joystick 1 and bit 3 joystick 3. This register is "low active", meaning that a "0" implies "active" (button pressed) and a "1" means "inactive" (button not pressed).

  Joysticks:

    $FFFF9202  X X X X  X X X X  X X X X  X X X X

Read this address to get the directions of 4 digital joysticks connected. The lowest 4 bits (0-3) represent joystick 0, the middle low 4 bits (4-7) represent joystick 2, the next 4 bits (8-11) joystick 1 and the highest 4 bits (12-15) joystick 3. The lowest bit encodes "right", the next bit "left", the next bit means "down" and the highest bit "up". This whole register is low-active as well.  

  Paddles:

    $FFFF9210  - - - -  - - - -  X X X X  X X X X  Paddle 0 X

    $FFFF9212  - - - -  - - - -  X X X X  X X X X  Paddle 0 Y

    $FFFF9214  - - - -  - - - -  X X X X  X X X X  Paddle 1 X

    $FFFF9216  - - - -  - - - -  X X X X  X X X X  Paddle 1 Y

The advanced joystick ports allow analogue devices such as paddles. Two paddles usually connect to one port, meaning the connection of 4 paddles are possible. Instead of "paddle X/Y coordinate", you might also read this as "paddle 1/2 coordinate". The fire buttons of each paddle can be read at the same address as for the joysticks, $FFFF9200.

     Lightpen:

    $FFFF9220  - - - -  - - X X  X X X X  X X X X  X-Position

    $FFFF9222  - - - -  - - X X  X X X X  X X X X  Y-Position

Connection of a light-pen is only possible at port 0. It has a precision of 4 pixels in ST Low, 8 pixels in ST Mid and 16 pixels in ST High resolution (horizontally). Vertically, the light-pen is pixel-perfect. The values read in this register always refer to ST Low. For usage in midres, you need to multiply by 2, for usage in hires, you need to multiply by 4.

These interfaces allow a lot of connections. What do you need to watch out for ?

? Can't read out these registers. Why ?

! In contrast to any joystick/mouse/keyboard function on the ordinary ST, these interfaces are _not_ being maintained and supervised by the IKBD subsystem of the ST keyboard but are directly accessible by hardware. You need to be in supervisor mode to access these registers.

? The paddles i have from my good old 800XL can't be connected since the plug doesn't fit. Can i connect and use them on the ordinary joystick port of the ST ?

! No, unfortunately, the IKBD does not have the hardware that is necessary to drive paddles. Paddles are very "dumb" devices that need quite a bit of hardware logic to work in a "digital" environment. You will need to built yourself an adapter.

? I want to build myself a 4-player adapter so i can connect 4 joysticks to these ports. What pins do i need to connect ?

! The hardware layout of each of these joystick ports is (seen from the outside of each connector):

    _______________________________  1 - Joystick 0 "up"

    \   5   4    3    2    1      /  2 - Joystick 0 "down"

     \     10   9    8    7   6  /   3 - Joystick 0 "left"

      \ 15  14   13  12   11    /    4 - Joystick 0 "right"

   \_______________________/     5 - Paddle 0 Y coord

     6 - Joystick 0 "fire"          11 - Joystick 2 "up"

     7 - VCC                        12 - Joystick 2 "down"

     8 - NC                         13 - Joystick 2 "left"

     9 - Mass                       14 - Joystick 2 "right"

    10 - Joystick 2 "fire"          15 - Paddle 0 X coord

The ordinary 9 pin socket for an ordinary digital joystick look like this:

     ___________________           1 - Up     5 - reserved

     \  1  2  3  4  5  /           2 - Down   6 - fire

      \  6  7   8  9  /            3 - Left   7 - +5V

       \_____________/             4 - Right  8 - Mass

                       (9 is officially unused, might be 2nd "fire")

This should be sufficient to build an adapter.

? Which models have the extended joystick ports ? Is it sensible to use them at all ?

! Depends on what you are planning to do. Only the 1040 STE and the Falcon have these additional ports. Neither the Mega STE nor the TT have these. Games/Programs that can only use joysticks/paddles connected to these ports cannot be played on Mega STE/TT computers.

? How can i write a program that uses paddle controllers for the Mega STE and TT then ?

! You cannot. Both these computers lack the logic required to drive paddle controllers.

? But isn't the mouse a paddle controller, too ?

! No, surprisingly, it is not. The mouse is using an internal logic to convert "analogue" movement into digital impulses, similar to rapidly moving a joystick in a direction and letting it go again. The mouse is, unlike a paddle, not being read "by position", but like a joystick "by movement". For games however, you might use the mouse as a paddle. GEM programs can use an AES routine to read mouse position, otherwise you can use the IKBD to read the mouse.

? My light pen doesn't work at all.

! The light pen is only supported on connector 0. Connector 1 cannot be used to drive a light pen.

? I want to connect jaguar powerpads, which can connect directly to the advanced joystick ports. How do i read those ?

! The directional pad and the 3 action buttons can be read relatively easily. The D-pad represents one joystick connected to the port, the 3 fire buttons and the Option button the other joystick. The Pause-Button is the firebutton of one joystick. Reading the numerical pad of the powerpad is more difficult however.

 

7. Hardware related questions

Here come some typical questions and answers concerning the 1040 STE's hardware, not seen by the programmer but for upgrades and installations.

? I want to upgrade my STE to 4 MB. What shall i do ?

! The 1040 STE uses 30 pin SIMMs and the 1040 STE is not really picky about the SIMMs you use. By using 4 x 1 MB SIMM you will achieve 4 MB in total.

? I only have 2 1 MB SIMMs. Can i use them ?

! All 4 SIMM-slots (2 banks) need to be filled by SIMMs, otherwise the STE won't boot at all. You might try to replace 2 of the SIMMs in your 1040 STE to have either 2.5 MB (2 x 256KB + 2 x 1 MB) or 3 MB (2 x 512 KB + 2 x 1 MB), but unfortunately, both only work with restrictions: There is a program that "reserves 1.5 MB" while booting which are exactly those 1.5MB that a 2.5 MB STE lacks to the 4 MB. The STE then "believes" to have 4 MB with 1.5 MB permanently used. This is not a wise choice however since it will require you to always run this program. Most games will crash.

? I want to upgrade my STE to TOS 2.06. Do i need a TOS-card ?

! No, you don't. The 1040 STE has 2 EPROM-sockets for 2 128KB EPROMs, exactly the size of TOS 2.0x. Simply purchase the TOS-ROMs, open your 1040 STE and replace chip by chip. They are marked "E" for "Even" and "O" for "Odd". Make sure the "O" chip you take out is replaced by the "O" chip of your TOS 2.06. The same goes for the "E" chips. TOS-cards were only necessary for ST computers that had 6 x 32 KB EPROMs and could not handle 2 x 128KB.

? Is it possible to have an internal IDE harddisk in the 1040 STE ?

! Yes, it definetly is. There is room for a and installed by my software. Yet my STE can't boot from it.

! A common problem. To boot from an IDE device, you need TOS 2.06 in your STE. Otherwise, you will need a boot-disk that features your harddisk driver.

? Help! I just removed my IDE interface and now my 1040 STE doesn't work anymore at all, i only get a black screen!

! The pins of the socket and the 68000 have been bent a little when you had the IDE interface mounted. Now that you removed it, the pins of the socket do not connect 100% anymore to the pins of your CPU. Now all you need is patience and a needle. Open the STE, carefully pull out the CPU by using the needle as a lever. Now carefully bent the pins on the socket towards the middle. Do not push them hard since they break relatively easily. When done with this, carefully bent the pins of the 68000 a little to the outside. Then push the CPU in gently and try to switch on your STE.

 

<Previous> [1][2][3][4][5][6] <Next>

 

This site has no commercial intention. It is dedicated to the old Atari computers and has nothing to do with the new Atari-Label owned by Infogrames!

Last update 12.07.06