For 400, 800 (OS A)#

ADRHEXADRNAMEDescriptionshadowOS
54017$D301PORTB STICK2 STICK3 PTRIG4 PTRIG5 PTRIG6 PTRIG7 400/800

Read or write data from the control ports (joystick ports), depending on how the data direction is set (default: 0 "read/input"). To set the direction, set Bit 2 of PBCTL to "0" and define the direction by setting the bits of PORTB (0=read, 1=write) for each input/output line. Then set Bit 2 of PBCTL to "1" again.

Example:

PACTL=PACTL && %11111011 ;set Bit 2 to 0
PORTA=%11110000          ;set Port 2 to output/write, Port 1 is input/read
PACTL=PACTL %% %00000100 ;set Bit 2 to 1

BitFunctionDescriptionJoystick directionPaddletrigger
7PA7Joystick Port 4 Pin 4RightPaddle 8 PTRIG7
6PA6Joystick Port 4 Pin 3LeftPaddle 7 PTRIG6
5PA5Joystick Port 4 Pin 2Downnot used
4PA4Joystick Port 4 Pin 1Up not used
3PA3Joystick Port 3 Pin 4RightPaddle 6 PTRIG5
2PA2Joystick Port 3 Pin 3LeftPaddle 5 PTRIG4
1PA1Joystick Port 3 Pin 2Downnot used
0PA0Joystick Port 3 Pin 1Upnot used

Joystick direction sets Bit=0 when pushed in that direction

Paddletrigger Bit=0 when pressed

For 600XL, 800XL, 1200XL, 130XE#

ADRHEXADRNAMEDescriptionOS
54017$D301PORTB Memory Management XL/XE

1200XL

BitFunctionDescription
7$5000-$57FF0=Self test, 1=RAM
6not used
5not used
4not used
3LED20=off, 1=on
2LED10=off, 1=on
1not used
0$C000-$FFFF0=RAM, 1=OS-ROM

600XL/800XL

BitFunctionDescription
7$5000-$57FF0=Self test, 1=RAM
6not used
5not used
4not used
3not used
2not used
1$A000-$BFFF0=ATARI BASIC ROM, 1=RAM
0$C000-$FFFF0=RAM, 1=OS-ROM

130XE

BitFunctionDescription
7$5000-$57FF0=Self test, 1=RAM
6not used
5ANTIC0=ANTIC has access to extra RAM, 1=ANTIC has access to normal RAM
4CPU0=CPU has access to extra RAM, 1=CPU has access to normal RAM
3Bank selectsee below
2Bank selectsee below
1$A000-$BFFF0=ATARI BASIC ROM, 1=RAM
0$C000-$FFFF0=RAM, 1=OS-ROM

Bank select

Bit 2Bit 3Bank
00Bank 0
01Bank 1
10Bank 2
11Bank 3

see also: Controller topics

previous: PORTA

next: PACTL