Difference between revisions of "Port"

From veswiki
Jump to: navigation, search
(19 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'''<br>
+
==  Port 0 ==
0 TIME console button
+
0 TIME console button<br>
1 MODE console button
+
1 MODE console button<br>
2 HOLD console button
+
2 HOLD console button<br>
 
3 START console button<br>
 
3 START console button<br>
4 - not connected - <br>
+
4 ''- not connected -'' <br>
5 ARM (to 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 Right controller right<br>
 +
1 Right controller left<br>
 +
2 Right controller back<br>
 +
3 Right controller forward<br>
 +
4 Right controller counter clockwise<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>
 +
 
 +
<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>
 +
 
 +
 
 +
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.