Difference between revisions of "Port"

From veswiki
Jump to: navigation, search
m
(CPU port 0)
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
If you came looking for Channel F II (and compatibles) joystick port pinout this is it:<br>
+
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>
 +
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 which is worth noting if you need to maximize speed.
 
<br>
 
<br>
Standard 9 pin D-SUB connector<br>
 
1: counter-clockwise<br>
 
2: clockwise<br>
 
3: pull up<br>
 
4: push down<br>
 
5: right<br>
 
6: forward<br>
 
7: back<br>
 
8: left<br>
 
9: common<br>
 
 
<br>
 
<br>
<br>
+
==  CPU port 0  ==
But this page is really about the data ports in the F8 processor system...<br>
 
<br>
 
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>
 
==  Port 0  ==
 
 
0 TIME console button<br>
 
0 TIME console button<br>
 
1 MODE console button<br>
 
1 MODE console button<br>
Line 25: Line 10:
 
4 ''- not connected -'' <br>
 
4 ''- not connected -'' <br>
 
5 RAM WRT - A pulse here executes a write to Video RAM.<br>
 
5 RAM WRT - A pulse here executes a write to Video RAM.<br>
6 Enable data from controllers (1 equals enable), also needs pulse to write to Video RAM.<br>
+
6 Enable data from controllers, set to 1 while write to Video RAM.<br>
 
7 ''- not connected -'' <br>
 
7 ''- not connected -'' <br>
 
<br>
 
<br>
  
==  Port 1  ==
+
==  CPU port 1  ==
 
0 Right controller right<br>
 
0 Right controller right<br>
 
1 Right controller left<br>
 
1 Right controller left<br>
Line 45: Line 30:
 
7 Write Data1, Indicates that valid data is present for both VRAM ODD1 and EVEN1<br>
 
7 Write Data1, Indicates that valid data is present for both VRAM ODD1 and EVEN1<br>
  
==  Port 4  ==
+
==  PSU port 4  ==
  
 
Port 4 has double duties and serve left controller <br>
 
Port 4 has double duties and serve left controller <br>
as well as horizontal video position.<br>
+
as well as horizontal video position (X-coordinate).<br>
  
 
0 Left controller right<br>
 
0 Left controller right<br>
Line 72: Line 57:
 
<br>
 
<br>
  
==  Port 5  ==
+
==  PSU port 5  ==
  
Port 5 serves the vertical video position and also sound.
+
Port 5 serves the vertical video position (Y-coordinate) and also sound.
  
 
0 Video Vertical A<br>
 
0 Video Vertical A<br>
Line 85: Line 70:
 
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.
 

Latest revision as of 14:15, 27 March 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.
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 which is worth noting if you need to maximize speed.

CPU 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, set to 1 while write to Video RAM.
7 - not connected -

CPU 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

PSU 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


PSU 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)