← Documents Documentation/input/devices/amijoy.rst GitHub 원문 ↗

Linux 6.18.37 · Input

Amiga joysticks

Amiga 컨트롤러 핀 배열과 Denise JOY·Paula POT 레지스터의 비트·카운터 동작을 설명합니다.

Source pathDocumentation/input/devices/amijoy.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

amijoy.rst:1-272

Amiga 컨트롤러 인터페이스는 같은 9핀 포트에서 디지털 조이스틱, quadrature 마우스, 아날로그 조이스틱과 라이트펜을 지원합니다. Denise의 JOY 레지스터는 마우스 카운터와 조이스틱 방향을 공유하고, Paula의 POT 레지스터는 potentiometer 카운터와 4비트 양방향 I/O 핀을 공유합니다.

문서 개요
항목내용
SourceDocumentation/input/devices/amijoy.rst
분량272 source lines
PinoutsParallel extension, digital, mouse, analog, lightpen
DeniseJOY0DAT, JOY1DAT, JOYTEST
PaulaPOT0DAT, POT1DAT, POTGO, POTINP

원문 분량과 주요 하드웨어 인터페이스를 요약합니다.

Amiga 입력 판독
장치 유형에 맞는 9핀 또는 병렬 포트 배선디지털 방향·버튼 또는 quadrature/pot 신호 수집Denise JOY 또는 Paula POT 카운터 갱신카운터 하위 비트로 조이스틱 방향 판정Pot 카운터와 공유 I/O 방향·데이터 제어좌표·방향·버튼 상태를 입력 이벤트로 변환

커넥터 신호가 레지스터와 Linux 입력 의미로 변환되는 흐름입니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 ===============
2 Amiga joysticks
3 ===============
4
5 Pinouts
6 =======
7
8 Amiga 4-joystick parallel port extension
9 ----------------------------------------
10
11 Parallel port pins:
12
13 ===== ======== ==== ==========
14 Pin Meaning Pin Meaning
15 ===== ======== ==== ==========
16 2 Up1 6 Up2
17 3 Down1 7 Down2
18 4 Left1 8 Left2
19 5 Right1 9 Right2
20 13 Fire1 11 Fire2
21 19 Gnd1 18 Gnd2
22 ===== ======== ==== ==========
23
24 Amiga digital joystick
25 ----------------------
26
27 === ============
28 Pin Meaning
29 === ============
30 1 Up
31 2 Down
32 3 Left
33 4 Right
34 5 n/c
35 6 Fire button
36 7 +5V (50mA)
37 8 Gnd
38 9 Thumb button
39 === ============
40
41 Amiga mouse
42 -----------
43
44 === ============
45 Pin Meaning
46 === ============
47 1 V-pulse
48 2 H-pulse
49 3 VQ-pulse
50 4 HQ-pulse
51 5 Middle button
52 6 Left button
53 7 +5V (50mA)
54 8 Gnd
55 9 Right button
56 === ============
57
58 Amiga analog joystick
59 ---------------------
60
61 === ==============
62 Pin Meaning
63 === ==============
64 1 Top button
65 2 Top2 button
66 3 Trigger button
67 4 Thumb button
68 5 Analog X
69 6 n/c
70 7 +5V (50mA)
71 8 Gnd
72 9 Analog Y
73 === ==============
74
75 Amiga lightpen
76 --------------
77
78 === =============
79 Pin Meaning
80 === =============
81 1 n/c
82 2 n/c
83 3 n/c
84 4 n/c
85 5 Touch button
86 6 /Beamtrigger
87 7 +5V (50mA)
88 8 Gnd
89 9 Stylus button
90 === =============
91
92 Register addresses
93 ==================
94
95 JOY0DAT/JOY1DAT
96 ---------------
97
98 ======== === ==== ==== ====== ===========================================
99 NAME rev ADDR type chip Description
100 ======== === ==== ==== ====== ===========================================
101 JOY0DAT 00A R Denise Joystick-mouse 0 data (left vert., horiz.)
102 JOY1DAT 00C R Denise Joystick-mouse 1 data (right vert., horiz.)
103 ======== === ==== ==== ====== ===========================================
104
105 These addresses each read a 16 bit register. These in turn
106 are loaded from the MDAT serial stream and are clocked in on
107 the rising edge of SCLK. MLD output is used to parallel load
108 the external parallel-to-serial converter. This in turn is
109 loaded with the 4 quadrature inputs from each of two game
110 controller ports (8 total) plus 8 miscellaneous control bits
111 which are new for LISA and can be read in upper 8 bits of
112 LISAID.
113
114 Register bits are as follows:
115
116 - Mouse counter usage (pins 1,3 =Yclock, pins 2,4 =Xclock)
117
118 ======== === === === === === === === === ====== === === === === === === ===
119 BIT# 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
120 ======== === === === === === === === === ====== === === === === === === ===
121 JOY0DAT Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 X7 X6 X5 X4 X3 X2 X1 X0
122 JOY1DAT Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 X7 X6 X5 X4 X3 X2 X1 X0
123 ======== === === === === === === === === ====== === === === === === === ===
124
125 0=LEFT CONTROLLER PAIR, 1=RIGHT CONTROLLER PAIR.
126 (4 counters total). The bit usage for both left and right
127 addresses is shown below. Each 6 bit counter (Y7-Y2,X7-X2) is
128 clocked by 2 of the signals input from the mouse serial
129 stream. Starting with first bit received:
130
131 +--------+----------+-----------------------------------------+
132 | Serial | Bit Name | Description |
133 +========+==========+=========================================+
134 | 0 | M0H | JOY0DAT Horizontal Clock |
135 +--------+----------+-----------------------------------------+
136 | 1 | M0HQ | JOY0DAT Horizontal Clock (quadrature) |
137 +--------+----------+-----------------------------------------+
138 | 2 | M0V | JOY0DAT Vertical Clock |
139 +--------+----------+-----------------------------------------+
140 | 3 | M0VQ | JOY0DAT Vertical Clock (quadrature) |
141 +--------+----------+-----------------------------------------+
142 | 4 | M1V | JOY1DAT Horizontal Clock |
143 +--------+----------+-----------------------------------------+
144 | 5 | M1VQ | JOY1DAT Horizontal Clock (quadrature) |
145 +--------+----------+-----------------------------------------+
146 | 6 | M1V | JOY1DAT Vertical Clock |
147 +--------+----------+-----------------------------------------+
148 | 7 | M1VQ | JOY1DAT Vertical Clock (quadrature) |
149 +--------+----------+-----------------------------------------+
150
151 Bits 1 and 0 of each counter (Y1-Y0,X1-X0) may be
152 read to determine the state of the related input signal pair.
153 This allows these pins to double as joystick switch inputs.
154 Joystick switch closures can be deciphered as follows:
155
156 +------------+------+---------------------------------+
157 | Directions | Pin# | Counter bits |
158 +============+======+=================================+
159 | Forward | 1 | Y1 xor Y0 (BIT#09 xor BIT#08) |
160 +------------+------+---------------------------------+
161 | Left | 3 | Y1 |
162 +------------+------+---------------------------------+
163 | Back | 2 | X1 xor X0 (BIT#01 xor BIT#00) |
164 +------------+------+---------------------------------+
165 | Right | 4 | X1 |
166 +------------+------+---------------------------------+
167
168 JOYTEST
169 -------
170
171 ======== === ==== ==== ====== =================================================
172 NAME rev ADDR type chip Description
173 ======== === ==== ==== ====== =================================================
174 JOYTEST 036 W Denise Write to all 4 joystick-mouse counters at once.
175 ======== === ==== ==== ====== =================================================
176
177 Mouse counter write test data:
178
179 ========= === === === === === === === === ====== === === === === === === ===
180 BIT# 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
181 ========= === === === === === === === === ====== === === === === === === ===
182 JOYxDAT Y7 Y6 Y5 Y4 Y3 Y2 xx xx X7 X6 X5 X4 X3 X2 xx xx
183 JOYxDAT Y7 Y6 Y5 Y4 Y3 Y2 xx xx X7 X6 X5 X4 X3 X2 xx xx
184 ========= === === === === === === === === ====== === === === === === === ===
185
186 POT0DAT/POT1DAT
187 ---------------
188
189 ======= === ==== ==== ====== ===========================================
190 NAME rev ADDR type chip Description
191 ======= === ==== ==== ====== ===========================================
192 POT0DAT h 012 R Paula Pot counter data left pair (vert., horiz.)
193 POT1DAT h 014 R Paula Pot counter data right pair (vert., horiz.)
194 ======= === ==== ==== ====== ===========================================
195
196 These addresses each read a pair of 8 bit pot counters.
197 (4 counters total). The bit assignment for both
198 addresses is shown below. The counters are stopped by signals
199 from 2 controller connectors (left-right) with 2 pins each.
200
201 ====== === === === === === === === === ====== === === === === === === ===
202 BIT# 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
203 ====== === === === === === === === === ====== === === === === === === ===
204 RIGHT Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 X7 X6 X5 X4 X3 X2 X1 X0
205 LEFT Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 X7 X6 X5 X4 X3 X2 X1 X0
206 ====== === === === === === === === === ====== === === === === === === ===
207
208 +--------------------------+-------+
209 | CONNECTORS | PAULA |
210 +-------+------+-----+-----+-------+
211 | Loc. | Dir. | Sym | pin | pin |
212 +=======+======+=====+=====+=======+
213 | RIGHT | Y | RX | 9 | 33 |
214 +-------+------+-----+-----+-------+
215 | RIGHT | X | RX | 5 | 32 |
216 +-------+------+-----+-----+-------+
217 | LEFT | Y | LY | 9 | 36 |
218 +-------+------+-----+-----+-------+
219 | LEFT | X | LX | 5 | 35 |
220 +-------+------+-----+-----+-------+
221
222 With normal (NTSC or PAL) horiz. line rate, the pots will
223 give a full scale (FF) reading with about 500k ohm in one
224 frame time. With proportionally faster horiz. line times,
225 the counters will count proportionally faster.
226 This should be noted when doing variable beam displays.
227
228 POTGO
229 -----
230
231 ====== === ==== ==== ====== ================================================
232 NAME rev ADDR type chip Description
233 ====== === ==== ==== ====== ================================================
234 POTGO 034 W Paula Pot port (4 bit) bi-direction and data, and pot
235 counter start.
236 ====== === ==== ==== ====== ================================================
237
238 POTINP
239 ------
240
241 ====== === ==== ==== ====== ================================================
242 NAME rev ADDR type chip Description
243 ====== === ==== ==== ====== ================================================
244 POTINP 016 R Paula Pot pin data read
245 ====== === ==== ==== ====== ================================================
246
247 This register controls a 4 bit bi-direction I/O port
248 that shares the same 4 pins as the 4 pot counters above.
249
250 +-------+----------+----------------------------------------------+
251 | BIT# | FUNCTION | DESCRIPTION |
252 +=======+==========+==============================================+
253 | 15 | OUTRY | Output enable for Paula pin 33 |
254 +-------+----------+----------------------------------------------+
255 | 14 | DATRY | I/O data Paula pin 33 |
256 +-------+----------+----------------------------------------------+
257 | 13 | OUTRX | Output enable for Paula pin 32 |
258 +-------+----------+----------------------------------------------+
259 | 12 | DATRX | I/O data Paula pin 32 |
260 +-------+----------+----------------------------------------------+
261 | 11 | OUTLY | Out put enable for Paula pin 36 |
262 +-------+----------+----------------------------------------------+
263 | 10 | DATLY | I/O data Paula pin 36 |
264 +-------+----------+----------------------------------------------+
265 | 09 | OUTLX | Output enable for Paula pin 35 |
266 +-------+----------+----------------------------------------------+
267 | 08 | DATLX | I/O data Paula pin 35 |
268 +-------+----------+----------------------------------------------+
269 | 07-01 | X | Not used |
270 +-------+----------+----------------------------------------------+
271 | 00 | START | Start pots (dump capacitors, start counters) |
272 +-------+----------+----------------------------------------------+
273

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Amiga 4조이스틱 병렬 포트 확장

1-23

Amiga 4조이스틱 병렬 포트 확장은 병렬 포트의 신호 핀을 두 조이스틱의 상·하·좌·우 및 Fire 입력으로 나누고, 각 조이스틱에 별도 접지를 제공합니다.

4조이스틱 병렬 포트 확장 핀
조이스틱방향·버튼병렬 포트 핀
1Up12
1Down13
1Left14
1Right15
1Fire113
1Gnd119
2Up26
2Down27
2Left28
2Right29
2Fire211
2Gnd218

원문의 좌우 핀 쌍을 조이스틱 번호별 신호로 다시 배열했습니다.

병렬 포트 입력 분리
조이스틱 1 방향을 핀 2~5에 연결조이스틱 2 방향을 핀 6~9에 연결Fire1은 핀 13, Fire2는 핀 11에 연결Gnd1은 핀 19, Gnd2는 핀 18에 연결각 스위치 폐쇄를 해당 병렬 입력으로 판독

한 병렬 포트에서 두 추가 조이스틱의 스위치 상태를 읽는 배선 구조입니다.

===============
Amiga joysticks
===============

Pinouts
=======

Amiga 4-joystick parallel port extension
----------------------------------------

Parallel port pins:

=====  ======== ====   ==========
Pin    Meaning  Pin    Meaning
=====  ======== ====   ==========
 2     Up1         6     Up2
 3     Down1         7     Down2
 4     Left1         8     Left2
 5     Right1         9     Right2
13     Fire1        11     Fire2
19     Gnd1        18     Gnd2
=====  ======== ====   ==========

Amiga 디지털 조이스틱 핀 배열

24-40

Amiga 디지털 조이스틱은 9핀 커넥터에서 네 방향 스위치, Fire 버튼, Thumb 버튼, +5V 전원과 접지를 제공합니다. 핀 5는 연결하지 않습니다.

Amiga 디지털 조이스틱
의미
1Up
2Down
3Left
4Right
5n/c
6Fire button
7+5V (50mA)
8Gnd
9Thumb button

9핀 커넥터의 방향·버튼·전원 신호입니다.

디지털 조이스틱 신호군
핀 1~4에서 네 방향 스위치 판독핀 6에서 Fire 버튼 판독핀 9에서 Thumb 버튼 판독핀 7의 +5V 50mA와 핀 8 접지 사용핀 5는 미연결 유지

커넥터 핀을 입력과 전원 역할로 구분합니다.

Amiga digital joystick
----------------------

=== ============
Pin Meaning
=== ============
1   Up
2   Down
3   Left
4   Right
5   n/c
6   Fire button
7   +5V (50mA)
8   Gnd
9   Thumb button
=== ============

Amiga 마우스 핀 배열

41-57

Amiga 마우스는 수직·수평 이동을 위한 두 쌍의 quadrature 펄스와 세 버튼, +5V 전원 및 접지를 9핀 커넥터로 전달합니다.

Amiga 마우스
의미
1V-pulse
2H-pulse
3VQ-pulse
4HQ-pulse
5Middle button
6Left button
7+5V (50mA)
8Gnd
9Right button

이동 펄스와 버튼을 커넥터 핀에 대응시킵니다.

마우스 quadrature 쌍
기본Quadrature
VerticalPin 1 V-pulsePin 3 VQ-pulse
HorizontalPin 2 H-pulsePin 4 HQ-pulse

각 축의 기본 펄스와 위상차 펄스를 묶습니다.

Amiga mouse
-----------

=== ============
Pin Meaning
=== ============
1   V-pulse
2   H-pulse
3   VQ-pulse
4   HQ-pulse
5   Middle button
6   Left button
7   +5V (50mA)
8   Gnd
9   Right button
=== ============

Amiga 아날로그 조이스틱 핀 배열

58-74

Amiga 아날로그 조이스틱은 네 버튼과 Analog X·Y 입력을 제공합니다. 핀 6은 연결하지 않고 핀 7과 8은 각각 +5V와 접지입니다.

Amiga 아날로그 조이스틱
의미
1Top button
2Top2 button
3Trigger button
4Thumb button
5Analog X
6n/c
7+5V (50mA)
8Gnd
9Analog Y

버튼·아날로그 축·전원 핀을 보존합니다.

아날로그 조이스틱 입력
핀 1~4에서 네 버튼 상태 판독핀 5에서 Analog X 측정핀 9에서 Analog Y 측정핀 7·8로 5V 전원과 접지 제공핀 6은 미연결 유지

디지털 버튼과 potentiometer 축을 분리해 읽는 구조입니다.

Amiga analog joystick
---------------------

=== ==============
Pin Meaning
=== ==============
1   Top button
2   Top2 button
3   Trigger button
4   Thumb button
5   Analog X
6   n/c
7   +5V (50mA)
8   Gnd
9   Analog Y
=== ==============

Amiga 라이트펜 핀 배열과 레지스터 개요

75-94

Amiga 라이트펜은 Touch 버튼, active-low `/Beamtrigger`, Stylus 버튼을 사용합니다. 핀 1~4는 연결하지 않고 핀 7·8은 +5V와 접지입니다.

Amiga 라이트펜
의미
1n/c
2n/c
3n/c
4n/c
5Touch button
6/Beamtrigger
7+5V (50mA)
8Gnd
9Stylus button

라이트펜의 9핀 신호 배치입니다.

Amiga 컨트롤러 레지스터 묶음
레지스터기능
JOY0DAT/JOY1DATDenise조이스틱·마우스 좌우 포트 데이터
JOYTESTDenise네 조이스틱·마우스 카운터 동시 기록
POT0DAT/POT1DATPaula좌우 potentiometer 카운터
POTGOPaulaPot 포트 방향·데이터와 카운터 시작
POTINPPaulaPot 핀 데이터 읽기

뒤에서 설명하는 Denise·Paula 레지스터의 기능을 미리 구분합니다.

Amiga lightpen
--------------

=== =============
Pin Meaning
=== =============
1   n/c
2   n/c
3   n/c
4   n/c
5   Touch button
6   /Beamtrigger
7   +5V (50mA)
8   Gnd
9   Stylus button
=== =============

Register addresses
==================

JOY0DAT·JOY1DAT 카운터와 방향 판정

95-167

`JOY0DAT`은 주소 `00A`에서 왼쪽 세로·가로 조이스틱/마우스 데이터를 읽고, `JOY1DAT`은 주소 `00C`에서 오른쪽 데이터를 읽는 Denise 16비트 레지스터입니다.

각 레지스터는 MDAT 직렬 스트림에서 적재되고 SCLK 상승 에지에 맞춰 시프트됩니다. MLD 출력은 외부 parallel-to-serial 변환기를 병렬 적재합니다. 변환기는 두 게임 컨트롤러 포트의 quadrature 입력 8개와 LISA용 기타 제어 비트 8개를 받으며, 후자는 `LISAID` 상위 8비트에서 읽을 수 있습니다.

JOY 데이터 레지스터
이름주소접근설명
JOY0DAT00ARDenise왼쪽 vertical·horizontal 데이터
JOY1DAT00CRDenise오른쪽 vertical·horizontal 데이터

주소, 접근 방향, 칩과 포트 위치입니다.

JOY0DAT·JOY1DAT 비트
레지스터Bits 15..8Bits 7..0
JOY0DATY7 Y6 Y5 Y4 Y3 Y2 Y1 Y0X7 X6 X5 X4 X3 X2 X1 X0
JOY1DATY7 Y6 Y5 Y4 Y3 Y2 Y1 Y0X7 X6 X5 X4 X3 X2 X1 X0

두 레지스터 모두 상위 바이트는 Y, 하위 바이트는 X 카운터입니다.

선택 값 0은 왼쪽 컨트롤러 쌍, 1은 오른쪽 컨트롤러 쌍을 뜻해 총 네 카운터가 있습니다. 각 6비트 카운터 `Y7-Y2`와 `X7-X2`는 마우스 직렬 스트림의 신호 두 개로 클록됩니다.

MDAT 직렬 스트림 입력
직렬 비트이름설명
0M0HJOY0DAT Horizontal Clock
1M0HQJOY0DAT Horizontal Clock (quadrature)
2M0VJOY0DAT Vertical Clock
3M0VQJOY0DAT Vertical Clock (quadrature)
4M1VJOY1DAT Horizontal Clock
5M1VQJOY1DAT Horizontal Clock (quadrature)
6M1VJOY1DAT Vertical Clock
7M1VQJOY1DAT Vertical Clock (quadrature)

첫 수신 비트부터 각 JOY 레지스터의 quadrature 클록에 대응합니다. 원문은 비트 4와 6의 이름을 모두 M1V 계열로 표기하므로 그대로 보존합니다.

각 카운터의 하위 비트 `Y1-Y0`과 `X1-X0`을 읽으면 대응 입력 신호 쌍의 상태를 알 수 있어 같은 핀을 조이스틱 스위치 입력으로도 사용할 수 있습니다.

JOYxDAT 조이스틱 방향 판정
방향카운터 비트
Forward1Y1 xor Y0 (BIT#09 xor BIT#08)
Left3Y1
Back2X1 xor X0 (BIT#01 xor BIT#00)
Right4X1

핀별 카운터 하위 비트 조합으로 스위치 폐쇄를 해석합니다.

JOYxDAT 입력 복원
MLD로 외부 변환기 병렬 입력 적재MDAT 비트 0~7을 SCLK 상승 에지에 시프트Quadrature 쌍으로 X·Y 6비트 카운터 갱신마우스는 상위 카운터 비트로 이동량 계산조이스틱은 X1:X0·Y1:Y0 조합으로 방향 판정

MDAT 직렬 신호에서 마우스 카운터 또는 조이스틱 방향을 얻는 흐름입니다.

JOY0DAT/JOY1DAT
---------------

======== === ==== ==== ====== ===========================================
NAME     rev ADDR type chip   Description
======== === ==== ==== ====== ===========================================
JOY0DAT      00A   R   Denise Joystick-mouse 0 data (left vert., horiz.)
JOY1DAT      00C   R   Denise Joystick-mouse 1 data (right vert., horiz.)
======== === ==== ==== ====== ===========================================

        These addresses each read a 16 bit register. These in turn
        are loaded from the MDAT serial stream and are clocked in on
        the rising edge of SCLK. MLD output is used to parallel load
        the external parallel-to-serial converter. This in turn is
        loaded with the 4 quadrature inputs from each of two game
        controller ports (8 total) plus 8 miscellaneous control bits
        which are new for LISA and can be read in upper 8 bits of
        LISAID.

        Register bits are as follows:

        - Mouse counter usage (pins 1,3 =Yclock, pins 2,4 =Xclock)

======== === === === === === === === === ====== === === === === === === ===
    BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
======== === === === === === === === === ====== === === === === === === ===
JOY0DAT   Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0
JOY1DAT   Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0
======== === === === === === === === === ====== === === === === === === ===

        0=LEFT CONTROLLER PAIR, 1=RIGHT CONTROLLER PAIR.
        (4 counters total). The bit usage for both left and right
        addresses is shown below. Each 6 bit counter (Y7-Y2,X7-X2) is
        clocked by 2 of the signals input from the mouse serial
        stream. Starting with first bit received:

         +--------+----------+-----------------------------------------+
         | Serial | Bit Name | Description                             |
         +========+==========+=========================================+
         |   0    | M0H      | JOY0DAT Horizontal Clock                |
         +--------+----------+-----------------------------------------+
         |   1    | M0HQ     | JOY0DAT Horizontal Clock (quadrature)   |
         +--------+----------+-----------------------------------------+
         |   2    | M0V      | JOY0DAT Vertical Clock                  |
         +--------+----------+-----------------------------------------+
         |   3    | M0VQ     | JOY0DAT Vertical Clock  (quadrature)    |
         +--------+----------+-----------------------------------------+
         |   4    | M1V      | JOY1DAT Horizontal Clock                |
         +--------+----------+-----------------------------------------+
         |   5    | M1VQ     | JOY1DAT Horizontal Clock (quadrature)   |
         +--------+----------+-----------------------------------------+
         |   6    | M1V      | JOY1DAT Vertical Clock                  |
         +--------+----------+-----------------------------------------+
         |   7    | M1VQ     | JOY1DAT Vertical Clock (quadrature)     |
         +--------+----------+-----------------------------------------+

         Bits 1 and 0 of each counter (Y1-Y0,X1-X0) may be
         read to determine the state of the related input signal pair.
         This allows these pins to double as joystick switch inputs.
         Joystick switch closures can be deciphered as follows:

         +------------+------+---------------------------------+
         | Directions | Pin# | Counter bits                    |
         +============+======+=================================+
         | Forward    |  1   | Y1 xor Y0 (BIT#09 xor BIT#08)   |
         +------------+------+---------------------------------+
         | Left       |  3   | Y1                              |
         +------------+------+---------------------------------+
         | Back       |  2   | X1 xor X0 (BIT#01 xor BIT#00)   |
         +------------+------+---------------------------------+
         | Right      |  4   | X1                              |
         +------------+------+---------------------------------+

JOYTEST 카운터 쓰기

168-185

`JOYTEST`는 주소 `036`의 Denise 쓰기 레지스터로, 네 조이스틱·마우스 카운터를 한 번에 기록합니다.

기록 데이터에서는 각 X·Y 카운터의 상위 6비트 `Y7-Y2`, `X7-X2`를 제공합니다. 하위 두 비트는 `xx`로 표시됩니다. 원문 표는 같은 `JOYxDAT` 행을 두 번 제시하며 번역에서도 이를 보존합니다.

JOYTEST 레지스터
이름주소접근설명
JOYTEST036WDenise네 조이스틱·마우스 카운터 동시 기록

레지스터 주소와 기록 가능한 카운터 비트입니다.

JOYTEST 기록 비트
원문 행Bits 15..8Bits 7..0
JOYxDAT 1Y7 Y6 Y5 Y4 Y3 Y2 xx xxX7 X6 X5 X4 X3 X2 xx xx
JOYxDAT 2Y7 Y6 Y5 Y4 Y3 Y2 xx xxX7 X6 X5 X4 X3 X2 xx xx

상위 바이트는 Y 카운터, 하위 바이트는 X 카운터입니다.

JOYTEST
-------

========  === ==== ==== ====== =================================================
NAME      rev ADDR type chip    Description
========  === ==== ==== ====== =================================================
JOYTEST       036   W   Denise  Write to all 4  joystick-mouse counters at once.
========  === ==== ==== ====== =================================================

                  Mouse counter write test data:

========= === === === === === === === === ====== === === === === === === ===
     BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
========= === === === === === === === === ====== === === === === === === ===
  JOYxDAT  Y7  Y6  Y5  Y4  Y3  Y2  xx  xx     X7  X6  X5  X4  X3  X2  xx  xx
  JOYxDAT  Y7  Y6  Y5  Y4  Y3  Y2  xx  xx     X7  X6  X5  X4  X3  X2  xx  xx
========= === === === === === === === === ====== === === === === === === ===

POT0DAT·POT1DAT 카운터와 커넥터

186-227

`POT0DAT`은 주소 `012`에서 왼쪽 potentiometer 카운터 쌍을, `POT1DAT`은 주소 `014`에서 오른쪽 쌍을 읽는 Paula 레지스터입니다. 둘 다 revision h에 해당합니다.

각 주소는 8비트 pot 카운터 두 개를 읽으므로 전체 카운터는 네 개입니다. 좌·우 컨트롤러 커넥터마다 X·Y 핀 하나씩이 카운터를 정지시킵니다.

POT 데이터 레지스터
이름Rev주소접근설명
POT0DATh012RPaula왼쪽 vertical·horizontal pot counter
POT1DATh014RPaula오른쪽 vertical·horizontal pot counter

좌우 포트의 주소와 카운터 쌍입니다.

POTxDAT 비트
포트Bits 15..8Bits 7..0
RIGHTY7 Y6 Y5 Y4 Y3 Y2 Y1 Y0X7 X6 X5 X4 X3 X2 X1 X0
LEFTY7 Y6 Y5 Y4 Y3 Y2 Y1 Y0X7 X6 X5 X4 X3 X2 X1 X0

두 레지스터 모두 Y 카운터와 X 카운터를 8비트씩 배치합니다.

컨트롤러 커넥터와 Paula 핀
위치방향심볼커넥터 핀Paula 핀
RIGHTYRX933
RIGHTXRX532
LEFTYLY936
LEFTXLX535

좌우 X·Y 입력을 커넥터 핀과 Paula 패키지 핀에 대응시킵니다.

일반 NTSC 또는 PAL 수평 라인 속도에서는 약 500kΩ이 한 프레임 시간에 full scale `FF` 값을 만듭니다. 수평 라인 시간이 비례해서 빨라지면 카운터도 그만큼 빨리 세므로 variable beam display에서는 이 점을 고려해야 합니다.

Pot 카운터 측정
좌우 커넥터의 X·Y potentiometer 연결카운터 시작과 커패시터 방전저항·수평 라인 속도에 따라 카운터 증가각 입력 핀이 대응 카운터 정지POT0DAT 또는 POT1DAT에서 X·Y 8비트 값 읽기

커패시터 방전부터 8비트 X·Y 값 판독까지의 개념적 흐름입니다.

POT0DAT/POT1DAT
---------------

======= === ==== ==== ====== ===========================================
NAME    rev ADDR type chip   Description
======= === ==== ==== ====== ===========================================
POT0DAT  h  012   R   Paula  Pot counter data left pair (vert., horiz.)
POT1DAT  h  014   R   Paula  Pot counter data right pair (vert., horiz.)
======= === ==== ==== ====== ===========================================

        These addresses each read a pair of 8 bit pot counters.
        (4 counters total). The bit assignment for both
        addresses is shown below. The counters are stopped by signals
        from 2 controller connectors (left-right) with 2 pins each.

====== === === === === === === === === ====== === === === === === === ===
  BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
====== === === === === === === === === ====== === === === === === === ===
 RIGHT  Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0
  LEFT  Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0
====== === === === === === === === === ====== === === === === === === ===

         +--------------------------+-------+
         | CONNECTORS               | PAULA |
         +-------+------+-----+-----+-------+
         | Loc.  | Dir. | Sym | pin | pin   |
         +=======+======+=====+=====+=======+
         | RIGHT | Y    | RX  | 9   | 33    |
         +-------+------+-----+-----+-------+
         | RIGHT | X    | RX  | 5   | 32    |
         +-------+------+-----+-----+-------+
         | LEFT  | Y    | LY  | 9   | 36    |
         +-------+------+-----+-----+-------+
         | LEFT  | X    | LX  | 5   | 35    |
         +-------+------+-----+-----+-------+

         With normal (NTSC or PAL) horiz. line rate, the pots will
         give a full scale (FF) reading with about 500k ohm in one
         frame time. With proportionally faster horiz. line times,
         the counters will count proportionally faster.
         This should be noted when doing variable beam displays.

POTGO 양방향 포트와 카운터 시작

228-237

`POTGO`는 주소 `034`의 Paula 쓰기 레지스터입니다. 네 pot 핀의 양방향 설정과 데이터 출력을 제어하고 pot 카운터를 시작합니다.

POTGO 레지스터
이름주소접근기능
POTGO034WPaula4비트 pot 포트 방향·데이터 및 pot counter 시작

원문 레지스터 설명을 구조화합니다.

POTGO 동작
네 pot 핀의 입출력 방향 선택출력으로 쓸 핀의 데이터 값 설정START 동작으로 커패시터 방전Pot 카운터 측정 시작

공유 핀을 출력 또는 카운터 입력으로 준비하는 역할입니다.

POTGO
-----

====== === ==== ==== ====== ================================================
NAME   rev ADDR type chip   Description
====== === ==== ==== ====== ================================================
POTGO      034   W   Paula  Pot port (4 bit) bi-direction and data, and pot
                            counter start.
====== === ==== ==== ====== ================================================

POTINP 공유 핀 데이터와 POTGO 비트

238-272

`POTINP`은 주소 `016`의 Paula 읽기 레지스터로 pot 핀 데이터를 읽습니다. 관련 제어 레지스터는 위의 네 pot 카운터와 같은 핀을 공유하는 4비트 양방향 I/O 포트를 제어합니다.

POTINP 레지스터
이름주소접근기능
POTINP016RPaulaPot pin data read

Pot 핀 입력 판독 레지스터의 속성입니다.

POTGO/POTINP 공유 I/O 비트
비트기능설명
15OUTRYOutput enable for Paula pin 33
14DATRYI/O data Paula pin 33
13OUTRXOutput enable for Paula pin 32
12DATRXI/O data Paula pin 32
11OUTLYOutput enable for Paula pin 36
10DATLYI/O data Paula pin 36
09OUTLXOutput enable for Paula pin 35
08DATLXI/O data Paula pin 35
07-01XNot used
00STARTStart pots: dump capacitors and start counters

상위 바이트의 출력 enable·데이터 쌍과 START 비트를 보존합니다.

공유 pot 핀 제어
OUTRY/OUTRX/OUTLY/OUTLX로 각 핀 방향 선택출력 핀은 대응 DATRY/DATRX/DATLY/DATLX 설정입력 핀은 POTINP에서 상태 판독Bit 0 START로 커패시터 방전과 카운터 시작사용하지 않는 bits 7..1은 무시

출력 enable·데이터와 카운터 시작을 함께 사용하는 절차입니다.

POTINP
------

====== === ==== ==== ====== ================================================
NAME   rev ADDR type chip   Description
====== === ==== ==== ====== ================================================
POTINP     016   R   Paula  Pot pin data read
====== === ==== ==== ====== ================================================

        This register controls a 4 bit bi-direction I/O port
        that shares the same 4 pins as the 4 pot counters above.

         +-------+----------+----------------------------------------------+
         | BIT#  | FUNCTION | DESCRIPTION                                  |
         +=======+==========+==============================================+
         | 15    | OUTRY    | Output enable for Paula pin 33               |
         +-------+----------+----------------------------------------------+
         | 14    | DATRY    | I/O data Paula pin 33                        |
         +-------+----------+----------------------------------------------+
         | 13    | OUTRX    | Output enable for Paula pin 32               |
         +-------+----------+----------------------------------------------+
         | 12    | DATRX    | I/O data Paula pin 32                        |
         +-------+----------+----------------------------------------------+
         | 11    | OUTLY    | Out put enable for Paula pin 36              |
         +-------+----------+----------------------------------------------+
         | 10    | DATLY    | I/O data Paula pin 36                        |
         +-------+----------+----------------------------------------------+
         | 09    | OUTLX    | Output enable for Paula pin 35               |
         +-------+----------+----------------------------------------------+
         | 08    | DATLX    | I/O data  Paula pin 35                       |
         +-------+----------+----------------------------------------------+
         | 07-01 |   X      | Not used                                     |
         +-------+----------+----------------------------------------------+
         | 00    | START    | Start pots (dump capacitors, start counters) |
         +-------+----------+----------------------------------------------+