Teclado para ZX-Uno
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Teclado para ZX-Uno
Queda muy chulo. Yo también tengo las pegatinas del teclado AV pero antes me tengo que comprar otro teclado porque el que tengo no es exclusivo para el ZX-Uno. Bueno, voy a ver si te implemento el VHDL para que puedas trastear con él. Las teclas duplicadas del teclado numérico (cursores, joystick, pause) no necesitaban pegatinas.
- TallerSeverino
- Amstrad PC 1640
- Mensajes: 519
- Registrado: 12 Abr 2013, 09:55
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Nintendo NES/Clónica
- Primera consola: Nintendo NES/Clónica
- Ubicación: Cádiz
- Gracias dadas: 17 veces
- Gracias recibidas: 17 veces
Re: Teclado para ZX-Uno
He cortado primero en vertical todos los trazos (incluyendo el que ha pasado por el centro del "delete"
), usando una regla, luego, usando la regla como "soporte" he empezado con las verticales el "espacio", con la regla y presionando la zona donde va avanzando el cutter, van saliendo por filas y es más sencillo seguir el patrón, y a la vez las otras quedan aún ancladas al papel. Uhm, explicado así parece más complicado de la cuenta, pero no.
Una imagen vale más que mil palabras:

Lo del boli era para tapar la marca del teclado, y de paso he apuntado las combinaciones para reset "soft" y "hard".
Un saludo!

Una imagen vale más que mil palabras:

Lo del boli era para tapar la marca del teclado, y de paso he apuntado las combinaciones para reset "soft" y "hard".
Un saludo!
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Teclado para ZX-Uno
Ya he terminado el teclado AV. Cada vez que McLeod saque una nueva revisión tenemos que recompilar con este archivo ps2k.vhd. Tendrías que machacar el antiguo ps2k.vhd.
-- Actualizado 01 May 2014, 01:11 --
Por cierto el mapeado del joystick kempston funciona perfectamente, incluso con 3 teclas simultáneas (arriba+derecha+disparo, por ejemplo)
-- Actualizado 01 May 2014, 01:18 --
Y otra cosa más. Después de muchos intentos no consigo hacer funcionar el pokeador (pulsando NMI en esta ROM) bajo el ZX-Uno. Estoy casi seguro de que es porque se lanzan 2 NMIs muy seguidas, ya que el código anula el efecto de una segunda NMI si han pasado algunos ciclos. Mañana intentaré probarlo en un Spectrum real.
Código: Seleccionar todo
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity ps2k is port (
clk : in std_logic;
ps2clk : in std_logic;
ps2data : in std_logic;
rows : in std_logic_vector(7 downto 0);
cols : out std_logic_vector(4 downto 0);
joy : out std_logic_vector(4 downto 0);
scancode: out std_logic_vector(7 downto 0);
rst : out std_logic;
nmi : out std_logic;
mrst : out std_logic);
end ps2k;
architecture behavioral of ps2k is
type key_matrix is array (7 downto 0) of std_logic_vector(4 downto 0);
signal keys : key_matrix;
signal pressed : std_logic;
signal isalt : std_logic;
signal lastclk : std_logic_vector(4 downto 0);
signal bit_count : unsigned (3 downto 0);
signal shiftreg : std_logic_vector(8 downto 0);
signal parity : std_logic;
begin
process (clk)
begin
if rising_edge(clk) then
rst <= '1';
nmi <= '1';
mrst <= '1';
lastclk <= lastclk(3 downto 0) & ps2clk;
if lastclk="11100" and ps2clk='0' then -- detector de flanco de bajada de PS2CLK
if bit_count=0 then
parity <= '0';
if ps2data='0' then
bit_count <= bit_count + 1;
end if;
else
if bit_count<10 then
bit_count <= bit_count + 1;
shiftreg <= ps2data & shiftreg(8 downto 1);
parity <= parity xor ps2data;
elsif ps2data='1' then
bit_count <= (others => '0');
if parity = '1' then -- nueva pulsacion completa en shiftreg.
pressed <= '1';
scancode <= shiftreg(7 downto 0);
case shiftreg(7 downto 0) is
when X"f0" => pressed <= '0';
when X"12" |
X"59" => keys(0)(0) <= pressed; -- Left or Right shift (CAPS SHIFT)
when X"1a" => keys(0)(1) <= pressed; -- Z
when X"22" => keys(0)(2) <= pressed; -- X
when X"21" => keys(0)(3) <= pressed; -- C
when X"2a" => keys(0)(4) <= pressed; -- V
when X"1c" => keys(1)(0) <= pressed; -- A
when X"1b" => keys(1)(1) <= pressed; -- S
when X"23" => keys(1)(2) <= pressed; -- D
when X"2b" => keys(1)(3) <= pressed; -- F
when X"34" => keys(1)(4) <= pressed; -- G
when X"15" => keys(2)(0) <= pressed; -- Q
when X"1d" => keys(2)(1) <= pressed; -- W
when X"24" => keys(2)(2) <= pressed; -- E
when X"2d" => keys(2)(3) <= pressed; -- R
when X"2c" => keys(2)(4) <= pressed; -- T
when X"16" => keys(3)(0) <= pressed; -- 1
when X"1e" => keys(3)(1) <= pressed; -- 2
when X"26" => keys(3)(2) <= pressed; -- 3
when X"25" => keys(3)(3) <= pressed; -- 4
when X"2e" => keys(3)(4) <= pressed; -- 5
when X"45" => keys(4)(0) <= pressed; -- 0
when X"46" => keys(4)(1) <= pressed; -- 9
when X"3e" => keys(4)(2) <= pressed; -- 8
when X"3d" => keys(4)(3) <= pressed; -- 7
when X"36" => keys(4)(4) <= pressed; -- 6
when X"4d" => keys(5)(0) <= pressed; -- P
when X"44" => keys(5)(1) <= pressed; -- O
when X"43" => keys(5)(2) <= pressed; -- I
when X"3c" => keys(5)(3) <= pressed; -- U
when X"35" => keys(5)(4) <= pressed; -- Y
when X"5a" => keys(6)(0) <= pressed; -- ENTER
when X"4b" => keys(6)(1) <= pressed; -- L
when X"42" => keys(6)(2) <= pressed; -- K
when X"3b" => keys(6)(3) <= pressed; -- J
when X"33" => keys(6)(4) <= pressed; -- H
when X"29" => keys(7)(0) <= pressed; -- SPACE
when X"14" => keys(7)(1) <= pressed; -- CTRL (Symbol Shift)
when X"3a" => keys(7)(2) <= pressed; -- M
when X"31" => keys(7)(3) <= pressed; -- N
when X"32" => keys(7)(4) <= pressed; -- B
when X"76" => keys(0)(0) <= pressed; -- Break (Caps Space)
keys(7)(0) <= pressed;
when X"0e" |
X"06" => keys(0)(0) <= pressed; -- Edit (Caps 1)
keys(3)(0) <= pressed;
when X"4e" |
X"09" => keys(0)(0) <= pressed; -- Graph (Caps 9)
keys(4)(1) <= pressed;
when X"66" => keys(0)(0) <= pressed; -- Backspace (Caps 0)
keys(4)(0) <= pressed;
if keys(7)(1)='1' and isalt='1' then
mrst <= '0'; -- Master Reset
end if;
when X"0d" => keys(0)(0) <= pressed; -- Extend
keys(7)(1) <= pressed;
when X"54" => keys(0)(0) <= pressed; -- True Video (Caps 3)
keys(3)(2) <= pressed;
when X"5b" => keys(0)(0) <= pressed; -- Inv. Video (Caps 4)
keys(3)(3) <= pressed;
when X"58" => keys(0)(0) <= pressed; -- Caps lock (Caps 2)
keys(3)(1) <= pressed;
when X"6b" => keys(0)(0) <= pressed; -- Left (Caps 5)
keys(3)(4) <= pressed;
when X"72" => keys(0)(0) <= pressed; -- Down (Caps 6)
keys(4)(4) <= pressed;
when X"75" => keys(0)(0) <= pressed; -- Up (Caps 7)
keys(4)(3) <= pressed;
when X"74" => keys(0)(0) <= pressed; -- Right (Caps 8)
keys(4)(2) <= pressed;
when X"55" => keys(7)(1) <= pressed; -- = (Symb L)
keys(6)(1) <= pressed;
when X"4a" => keys(7)(1) <= pressed; -- / (Symb V)
keys(0)(4) <= pressed;
when X"7c" => keys(7)(1) <= pressed; -- * (Symb B)
keys(7)(4) <= pressed;
when X"7b" => keys(7)(1) <= pressed; -- - (Symb J)
keys(6)(3) <= pressed;
when X"79" => keys(7)(1) <= pressed; -- + (Symb K)
keys(6)(2) <= pressed;
when X"4c" => keys(7)(1) <= pressed; -- ; (Symb O)
keys(5)(1) <= pressed;
when X"52" => keys(7)(1) <= pressed; -- " (Symb P)
keys(5)(0) <= pressed;
when X"41" => keys(7)(1) <= pressed; -- , (Symb N)
keys(7)(3) <= pressed;
when X"49" => keys(7)(1) <= pressed; -- , (Symb M)
keys(7)(2) <= pressed;
when X"71" => joy(1) <= pressed; -- Joy Left
if keys(7)(1)='1' and isalt='1' then
rst <= '0'; -- Reset
end if;
when X"69" => joy(2) <= pressed; -- Joy Down
when X"6c" => joy(3) <= pressed; -- Joy Up
when X"7a" => joy(0) <= pressed; -- Joy Right
when X"11" => joy(4) <= pressed; -- Joy Fire
isalt <= pressed;
when X"03" => if keys(7)(1)='1' and isalt='1' then
nmi <= '0'; -- NMI
end if;
when others=> null;
end case;
end if;
else
bit_count <= (others => '0');
end if;
end if;
end if;
end if;
end process;
process (keys, rows)
variable tmp: std_logic;
begin
for i in 0 to 4 loop
tmp:= '0';
for j in 0 to 7 loop
tmp:= tmp or (keys(j)(i) and not rows(j));
end loop;
cols(i) <= not tmp;
end loop;
end process;
end architecture;
-- Actualizado 01 May 2014, 01:11 --
Por cierto el mapeado del joystick kempston funciona perfectamente, incluso con 3 teclas simultáneas (arriba+derecha+disparo, por ejemplo)
-- Actualizado 01 May 2014, 01:18 --
Y otra cosa más. Después de muchos intentos no consigo hacer funcionar el pokeador (pulsando NMI en esta ROM) bajo el ZX-Uno. Estoy casi seguro de que es porque se lanzan 2 NMIs muy seguidas, ya que el código anula el efecto de una segunda NMI si han pasado algunos ciclos. Mañana intentaré probarlo en un Spectrum real.
- Adjuntos
-
- leches.zip
- (13 KiB) Descargado 466 veces
- Hark0
- Amiga 1200
- Mensajes: 1695
- Registrado: 11 Jul 2012, 23:44
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: (Otro)
- Primera consola: (Otro)
- Ubicación: Cornellà de Llobregat - Barcelona
- Contactar:
Re: Teclado para ZX-Uno
¿las dos teclas (en/es) que estaban pendientes las has ubicado/usado finalmente?
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Teclado para ZX-Uno
Hark0 escribió:¿las dos teclas (en/es) que estaban pendientes las has ubicado/usado finalmente?
No. Las dos teclas que faltan son ~ y Pause. Es McLeod el que tiene que decidir dónde ubicarlas. La pausa todavía no está implementada en el ZX-Uno.
- TallerSeverino
- Amstrad PC 1640
- Mensajes: 519
- Registrado: 12 Abr 2013, 09:55
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Nintendo NES/Clónica
- Primera consola: Nintendo NES/Clónica
- Ubicación: Cádiz
- Gracias dadas: 17 veces
- Gracias recibidas: 17 veces
Re: Teclado para ZX-Uno
antoniovillena escribió:Queda muy chulo. Yo también tengo las pegatinas del teclado AV pero antes me tengo que comprar otro teclado porque el que tengo no es exclusivo para el ZX-Uno. Bueno, voy a ver si te implemento el VHDL para que puedas trastear con él. Las teclas duplicadas del teclado numérico (cursores, joystick, pause) no necesitaban pegatinas.
Pues entonces las "despego" pero como estaba en el layout por eso las he puesto.
Falta aclarar qué hacen exactamente las teclas a la derecha del espacio, Alt-gr, la de "windows" y la de opciones (esa con la ventana dibujada).
Esta tarde lo pruebo.
Un saludo.
Ah, ¿habéis notado que el led de power del zxuno parece un faro antiniebla? habría que subir esa resistencia que es de 220ohm a no se, 330 o 470, probaré con dos valores.
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Teclado para ZX-Uno
AltGr (en el teclado AV) es el disparo del Joystick (hace lo mismo que Alt), viendo la foto veo que tienes bien la pegatina. En los teclados McLeod AltGr es GRAPH (Caps Shift+9).
Las dos teclas windows y la de opciones no hacen nada ni tenemos previsto que lo hagan. Esas pegatinas por ahora son más un adorno que otra cosa. Si en un futuro se nos ocurre algo, pues ahí están.
Sí, los leds brillan demasiado. Tendríamos que ver cómo brillan en el segundo prototipo con la caja puesta, en este segundo prototipo sí que coincidirán los leds con la caja. Pero sí, seguramente seguirán siendo muy brillantes.
Las dos teclas windows y la de opciones no hacen nada ni tenemos previsto que lo hagan. Esas pegatinas por ahora son más un adorno que otra cosa. Si en un futuro se nos ocurre algo, pues ahí están.
Sí, los leds brillan demasiado. Tendríamos que ver cómo brillan en el segundo prototipo con la caja puesta, en este segundo prototipo sí que coincidirán los leds con la caja. Pero sí, seguramente seguirán siendo muy brillantes.
-
- Commodore 128
- Mensajes: 121
- Registrado: 22 Feb 2013, 18:58
- Sistema Favorito: Spectrum +2
- primer_sistema: Spectrum 16Kb/48Kb
- Primera consola: TV Games/Pong Clone
Re: Teclado para ZX-Uno
Hola.
Los led son tan brillantes que los tapo con un trozo de papel y celo cuando programo via jtag
y tengo que tener la tapa quitada.
Aunque aumentemos la resistencia me parece que nos va a dar igual.
[editado]
En cuanto al diseño "me lo imprimo yo mismo" ¿Cualquier copisteria/imprenta puede hacer este trabajo?...o sea yo llevo
un pincho usb y les paso el pdf y con eso ¿ya tienen lo necesario para hacer las pegatinas?
...para solo dos copias esto saldrá caro ¿no?
saludos
Julio.
Los led son tan brillantes que los tapo con un trozo de papel y celo cuando programo via jtag
y tengo que tener la tapa quitada.
Aunque aumentemos la resistencia me parece que nos va a dar igual.
[editado]
En cuanto al diseño "me lo imprimo yo mismo" ¿Cualquier copisteria/imprenta puede hacer este trabajo?...o sea yo llevo
un pincho usb y les paso el pdf y con eso ¿ya tienen lo necesario para hacer las pegatinas?
...para solo dos copias esto saldrá caro ¿no?
saludos
Julio.
- TallerSeverino
- Amstrad PC 1640
- Mensajes: 519
- Registrado: 12 Abr 2013, 09:55
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Nintendo NES/Clónica
- Primera consola: Nintendo NES/Clónica
- Ubicación: Cádiz
- Gracias dadas: 17 veces
- Gracias recibidas: 17 veces
Re: Teclado para ZX-Uno
JULIO escribió:Hola.
Los led son tan brillantes que los tapo con un trozo de papel y celo cuando programo via jtag
y tengo que tener la tapa quitada.
Aunque aumentemos la resistencia me parece que nos va a dar igual.
[editado]
En cuanto al diseño "me lo imprimo yo mismo" ¿Cualquier copisteria/imprenta puede hacer este trabajo?...o sea yo llevo
un pincho usb y les paso el pdf y con eso ¿ya tienen lo necesario para hacer las pegatinas?
...para solo dos copias esto saldrá caro ¿no?
saludos
Julio.
Hola Julio, si subimos el valor de la resistencia baja la intensidad del led, es que sin caja es como dije un antiniebla, no se en caja cómo quedará, voy a probar con 470 ohms que debe dar la mitad de intensidad más o menos.
Respecto al pdf yo como tengo una monocromo de láser me llevé el documento a la papelería/copistería y les dije que me imprimieran la página 4 creo recordar, en una pegatina a4 y en formato horizontal, que depende, siempre puedes probar primero a imprimirlo en blanco y negro para probar y después que te lo hagan en pegatina, dependiendo de dónde vayas te van a cobrar más o menos, a mi me salio por menos de 1€, pero estamos hablando de una prueba en papel, lo que más cuesta es el papel de pegatina, lo demás es una copia a color a4. Y creo recordar algo así como 60 céntimos, y luego como es una pegatina muy normalita es muy fácil de despegar cuando lleguen los definitivos.
Un saludo.
- Hark0
- Amiga 1200
- Mensajes: 1695
- Registrado: 11 Jul 2012, 23:44
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: (Otro)
- Primera consola: (Otro)
- Ubicación: Cornellà de Llobregat - Barcelona
- Contactar:
Re: Teclado para ZX-Uno
En mi empresa, copia a4 color 40 ct.... si es adhesivo papel normal, pon unos 80 ct, si lo quieres en adhesivo papel NO removible, NO transparente (es blanco como todos pero cubre lo que hay debajo, muy chungo de quitar), pon 1 Eur.
Las etiquetas que se han hecho en serigrafia, no las ha hecho mi empresa, las ha hecho uana empresa del barrio... de mi amiguete Luis...
Ahora mismo a 4€ porque estamos haciendo (hemos hecho mejor dicho), solo 4... cuando haya una tirada más grande, seguro que me lo ajusta un poco más.
De momento, si vais probando en papel (los que teneis el zxuno funcionando) y veis que va bien y no falta nada... pasamos a fabricar las ue faltan... pero yo esperaria a ver si Mcleod implementa esas 2, ó Antonio encuentra algún fallo/mejor distribución o lo que sea...

Las etiquetas que se han hecho en serigrafia, no las ha hecho mi empresa, las ha hecho uana empresa del barrio... de mi amiguete Luis...

De momento, si vais probando en papel (los que teneis el zxuno funcionando) y veis que va bien y no falta nada... pasamos a fabricar las ue faltan... pero yo esperaria a ver si Mcleod implementa esas 2, ó Antonio encuentra algún fallo/mejor distribución o lo que sea...

http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 11 invitados