Difference between revisions of "Port"

From veswiki
Jump to: navigation, search
(Port 4)
(19 intermediate revisions by the same user not shown)
Line 8: Line 8:
 
3 START console button<br>
 
3 START console button<br>
 
4 ''- not connected -'' <br>
 
4 ''- not connected -'' <br>
5 ARM (sound/graphics)<br>
+
5 RAM WRT - A pulse here executes a write to Video RAM.<br>
6 Enable in-signal from controllers <br>
+
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>
 +
 
==  Port 1  ==
 
==  Port 1  ==
0 <br>
+
0 Right controller right<br>
1 <br>
+
1 Right controller left<br>
2 <br>
+
2 Right controller back<br>
3 <br>
+
3 Right controller forward<br>
4 <br>
+
4 Right controller counter clockwise<br>
5 <br>
+
5 Right controller clockwise<br>
6 <br>
+
6 Right controller pull<br>
7 <br>
+
7 Right controller push<br>
 
<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  ==
0 <br>
+
 
1 <br>
+
Port 4 has double duties and serve left controller <br>
2 <br>
+
as well as horizontal video position (X-coordinate).<br>
3 <br>
+
 
4 <br>
+
0 Left controller right<br>
5 <br>
+
1 Left controller left<br>
6 <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>
 
<br>
 +
 
==  Port 5  ==
 
==  Port 5  ==
 +
 +
Port 5 serves the vertical video position (Y-coordinate) and also sound.
 +
 
0 Video Vertical A<br>
 
0 Video Vertical A<br>
 
1 Video Vertical B<br>
 
1 Video Vertical B<br>
Line 42: Line 69:
 
7 Tone BN (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 18:19, 2 February 2020

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 (X-coordinate).

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 (Y-coordinate) 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.