Difference between revisions of "Port"
(18 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | The VES has four usable 8-bit data ports in the console, port 0 and 1 that are in the 3850 CPU and port 4 and 5 on one of the 3851 Program Storage Units. | + | The VES has four usable 8-bit data ports in the console, port 0 and 1 that are in the 3850 CPU and port 4 and 5 on one of the 3851 Program Storage Units. These I/O:s are hooked to specific functions as shown in the table below. |
<br> | <br> | ||
<br> | <br> | ||
− | + | == Port 0 == | |
0 TIME console button<br> | 0 TIME console button<br> | ||
1 MODE console button<br> | 1 MODE console button<br> | ||
2 HOLD console button<br> | 2 HOLD console button<br> | ||
3 START console button<br> | 3 START console button<br> | ||
− | 4 - not connected - <br> | + | 4 ''- not connected -'' <br> |
− | 5 | + | 5 RAM WRT - A pulse here executes a write to Video RAM.<br> |
− | 6 Enable | + | 6 Enable data from controllers (1 equals enable), also needs pulse to write to Video RAM.<br> |
− | 7 - not connected - <br> | + | 7 ''- not connected -'' <br> |
<br> | <br> | ||
− | + | ||
− | 0 <br> | + | == Port 1 == |
− | 1 <br> | + | 0 Right controller right<br> |
− | 2 <br> | + | 1 Right controller left<br> |
− | 3 <br> | + | 2 Right controller back<br> |
− | 4 <br> | + | 3 Right controller forward<br> |
− | 5 <br> | + | 4 Right controller counter clockwise<br> |
− | 6 <br> | + | 5 Right controller clockwise<br> |
+ | 6 Right controller pull<br> | ||
+ | 7 Right controller push<br> | ||
+ | <br> | ||
+ | |||
+ | Two bits have a second function, they decide the color of a plotted pixel:<br> | ||
+ | |||
+ | 6 Write Data0, Indicates that valid data is present for both VRAM ODD0 and EVEN0<br> | ||
+ | 7 Write Data1, Indicates that valid data is present for both VRAM ODD1 and EVEN1<br> | ||
+ | |||
+ | == Port 4 == | ||
+ | |||
+ | Port 4 has double duties and serve left controller <br> | ||
+ | as well as horizontal video position.<br> | ||
+ | |||
+ | 0 Left controller right<br> | ||
+ | 1 Left controller left<br> | ||
+ | 2 Left controller back<br> | ||
+ | 3 Left controller forward<br> | ||
+ | 4 Left controller counter clockwise<br> | ||
+ | 5 Left controller clockwise<br> | ||
+ | 6 Left controller pull<br> | ||
+ | 7 Left controller push<br> | ||
+ | |||
+ | Also: | ||
+ | |||
+ | 0 Video Select <br> | ||
+ | 1 Video Horizontal A<br> | ||
+ | 2 Video Horizontal B<br> | ||
+ | 3 Video Horizontal C<br> | ||
+ | 4 Video Horizontal D<br> | ||
+ | 5 Video Horizontal E<br> | ||
+ | 6 Video Horizontal F<br> | ||
7 <br> | 7 <br> | ||
+ | |||
+ | <br> | ||
+ | |||
+ | == Port 5 == | ||
+ | |||
+ | Port 5 serves the vertical video position and also sound. | ||
+ | |||
+ | 0 Video Vertical A<br> | ||
+ | 1 Video Vertical B<br> | ||
+ | 2 Video Vertical C<br> | ||
+ | 3 Video Vertical D<br> | ||
+ | 4 Video Vertical E<br> | ||
+ | 5 Video Vertical F<br> | ||
+ | 6 Tone AN (beep sound)<br> | ||
+ | 7 Tone BN (beep sound)<br> | ||
<br> | <br> | ||
+ | |||
+ | |||
+ | When looking at the [[Opcode|opcodes]] we'll see that using the two ports on the CPU requires half the CPU time compared to using Port 4 and 5 on the PSU, this means that you can fetch right hand controller data two cycles faster than from left one. |
Revision as of 15:40, 1 September 2016
The VES has four usable 8-bit data ports in the console, port 0 and 1 that are in the 3850 CPU and port 4 and 5 on one of the 3851 Program Storage Units. These I/O:s are hooked to specific functions as shown in the table below.
Port 0
0 TIME console button
1 MODE console button
2 HOLD console button
3 START console button
4 - not connected -
5 RAM WRT - A pulse here executes a write to Video RAM.
6 Enable data from controllers (1 equals enable), also needs pulse to write to Video RAM.
7 - not connected -
Port 1
0 Right controller right
1 Right controller left
2 Right controller back
3 Right controller forward
4 Right controller counter clockwise
5 Right controller clockwise
6 Right controller pull
7 Right controller push
Two bits have a second function, they decide the color of a plotted pixel:
6 Write Data0, Indicates that valid data is present for both VRAM ODD0 and EVEN0
7 Write Data1, Indicates that valid data is present for both VRAM ODD1 and EVEN1
Port 4
Port 4 has double duties and serve left controller
as well as horizontal video position.
0 Left controller right
1 Left controller left
2 Left controller back
3 Left controller forward
4 Left controller counter clockwise
5 Left controller clockwise
6 Left controller pull
7 Left controller push
Also:
0 Video Select
1 Video Horizontal A
2 Video Horizontal B
3 Video Horizontal C
4 Video Horizontal D
5 Video Horizontal E
6 Video Horizontal F
7
Port 5
Port 5 serves the vertical video position and also sound.
0 Video Vertical A
1 Video Vertical B
2 Video Vertical C
3 Video Vertical D
4 Video Vertical E
5 Video Vertical F
6 Tone AN (beep sound)
7 Tone BN (beep sound)
When looking at the opcodes we'll see that using the two ports on the CPU requires half the CPU time compared to using Port 4 and 5 on the PSU, this means that you can fetch right hand controller data two cycles faster than from left one.