Página 1 de 2

AY-3-8500 на ZX-Uno

Publicado: 10 Oct 2019, 12:48
por azesmbog
Для общего сведения
http://www.pong-story.com/gi8500.htm
https://en.wikipedia.org/wiki/AY-3-8500
Декапинг и по-транзисторная схема в HDL
https://nerdstuffbycole.blogspot.com/20 ... art-1.html
Идеальный вариант для повторения в UNO - телевизионный выход.
Для UNO-vga не пойдет, если только скандаблер сделать.
Это то, что смог запустить я:
Imagen
Во-первых - почему то двоится набранный результат, возможно потому что нет биток.
Ну и во вторых - я так и не понял, как подключить биты управления для игроков :((
А так да, клавиатуру PS/2 я задействовал, сброс F12 с нее сделал, можно сделать переключение режимов, но без бит - дальнейшее не имеет смысла.
Если кого то заинтересует этот проект - исходниками поделюсь, вернее моими переделками, а вот почему криво работает - это надо разбираться или автора спрашивать, я не специалист в HDL

Re: AY-3-8500 на ZX-Uno

Publicado: 10 Oct 2019, 15:21
por mcleod_ideafix
OOOOOOOOOOOOOOOOOOOOH!!!! This is so cool!
I can´t see any HDL description, though :(

Found it!
https://gitlab.com/TheProgrammerIncarna ... es/ay38500

Re: AY-3-8500 на ZX-Uno

Publicado: 10 Oct 2019, 17:07
por azesmbog
del

Re: AY-3-8500 на ZX-Uno

Publicado: 10 Oct 2019, 22:38
por Kyp
Vaya, no quería decir nada hasta terminarlo, pero tengo un diseño casi terminado. La implementación me la he inventado basándome en mis observaciones y la poca información que viene en el datasheet sobre los timings. Estaba probando unos encoders rotatorios para las palas porque por teclado no es lo mismo. A ver si lo termino y lo subo.

Re: AY-3-8500 на ZX-Uno

Publicado: 11 Oct 2019, 03:01
por mcleod_ideafix
Tranqui! Tengo demasiados frentes abiertos como para meterme ahora en el AY-3-8500. Me interesa, eso sí, la info que se ha puesto aquí del decapado y la implementación que se ha hecho partiendo de la netlist de transistores. Lo que pasa es que dicha implementación es... como si cogieras un programa en código máquina y lo "decompilases" a C. O sea, lo que leo es Verilog, pero es un amasijo de ecuaciones y relojes locales complicado de sintetizar.
Prefiero esperarme a ver qué tal ha salido el tuyo :)

Re: AY-3-8500 на ZX-Uno

Publicado: 11 Oct 2019, 03:06
por mcleod_ideafix
Kyp escribió:
10 Oct 2019, 22:38
Estaba probando unos encoders rotatorios para las palas porque por teclado no es lo mismo. A ver si lo termino y lo subo.
Probablemente no te den suficiente resolución. Una solución que se me ocurre es usar dos ratones (el puerto PS/2 admite dos dispositivos, y nada impide que ambos puedan ser ratones)

Otra opción es usar potenciómetros, pero actuando sobre un temporizador (quizás con un 555) que iría todo conectado al puerto de joystick.

Usando encoders rotatorios se me ocurre usar los Driving Controller del Atari 2600, que podrías conectar directamente al puerto de joystick del ZXUNO. Usa codificación Gray y si mal no recuerdo, la resolución es de 22,5 grados (4 bits)

Re: AY-3-8500 на ZX-Uno

Publicado: 11 Oct 2019, 23:47
por Kyp
mcleod_ideafix escribió:
11 Oct 2019, 03:01
Lo que pasa es que dicha implementación es... como si cogieras un programa en código máquina y lo "decompilases" a C. O sea, lo que leo es Verilog, pero es un amasijo de ecuaciones y relojes locales complicado de sintetizar.
Prefiero esperarme a ver qué tal ha salido el tuyo :)
Uff, si. Menudo lio de ecuaciones. Mi implementación es muuuucho más clara :D

Re: AY-3-8500 на ZX-Uno

Publicado: 31 Ene 2020, 13:30
por azesmbog
ImagenImagen
ImagenImagen
ImagenImagen

-- Keyboard inputs:
--
-- R, F12 : Reset
-- W/S : Player 1 up/down
-- UP/DOWN : Player 2 up/down
-- SPACE : Serve Ball
-- V : Toggle Manual Serve
-- C : Toggle Paddle Size
-- X : Toggle Ball Speed
-- Z : Toggle Ball Angle
--
-- Game Select Buttons:
-- F11 : Tennis, Soccer, Handicap, Squash, Practice, Rifle 1, Rifle 2

-- F10 : Color Select Buttons
--
-- Joystick support not yet implemented. (может когда нибудь, лень :) А надо ли вообще?
--
-- Alt-Ctrl-Bcsp - Global Reset (можно и просто BcSp :)

TV выход тоже не особо сложно сделать, но повторю вопрос - надо ли ?? Так то TV должно работать без проблем, но тогда надо прилепить переключатель TV\VGA, а тоже лень %:)))))))

ах да, все исходники у автора проекта
https://nerdstuffbycole.blogspot.com/

Re: AY-3-8500 на ZX-Uno

Publicado: 31 Ene 2020, 17:57
por mcleod_ideafix
I can just say COOOOOOOOOL! This was my first home videogame I saw on my TV.
Curious about how you implemented original analog controls. May I suggest to use two PS/2 mice, one for each player? (the PS/2 connector of the ZXUNO allows for two PS/2 devices. It's up to the FPGA to determine which kind of device they must be, so no problem for the two of them implementing the same kind of device.

Re: AY-3-8500 на ZX-Uno

Publicado: 01 Feb 2020, 15:53
por avlixa
Hola, estoy implementando el mismo core para ZXDOS,
Mcleod, el control es sencillo si miras el manual es un circuito RC que se pone a cero con cada sincronismo vertical y según el valor de la resistencia se carga más o menos rápido generando diferente posición de la paleta. Solo es cuestión de guardar la posición en un registro y realizar el cambio de 0 a 1 según la posición.