Aprender a programar para Z80 desde cero y siendo mayor. Es posible?

Siento nostalgia de mi infancia /adolescencia en la que fui afortunado poseedor primero de un amstrad cpc y después de un Amiga. En esta ultima etapa tuve la suerte de moverme entre gente de la scene de amiga pero viéndolos de lejos, los admiraba y me veia incapaz de dar el primer paso para aprender a programar en ensamblador, que era el que te daba ese poder para hacer esas demos que te dejaban asombrados. Tuve la suerte de conocer a miembros ni más ni menos de Batman Group pero nunca me intenté involucrar al no tener ni idea. Solo los admiraba.

Ahora viendo que siguen en lo mas alto y encima le estan dando caña a los 8 bits (cpc) mas que al amiga (sin dejarlo de lado, claro), me gustaría aprender al menos a programar mi primer "hola mundo" en un z80, ya sea un spectrum, amstrad o msx.

Creeis que con 52 años que tengo ya sería posible? Que consejos me dais? (Tengo nociones de programar en Basic del año de la pera, jajajja)

Gracias de antemano
Querer es poder! Solo es proponérselo 👍



Saludos [beer]
Claro que es posible, solo es cuestión de ganas. También te digo, si lo haces por hobby y quieres ver resultados no te recomiendo meterte con ensamblador a lo campeón. Ya que vienes del CPC y además hiciste cosas en Basic, te recomiendo claramente la librería 8BP (8 bits de poder) para hacer tus cosillas en CPC:
https://8bitsdepoder.blogspot.com
Podrás seguir aprendiendo Basic pero con funciones mucho más rápidas.
En mi opinión no tiene nada de malo meterse en ensamblador, no es ninguna quimera, vamos, y no debes tenerle miedo a nada. Solo tienes que tener claros dos conceptos:

1- El ensamblador no es universal, cada cpu tiene su propio ensamblador, así que pegarte el curro de aprender asm de un motorola 68000 no te va a servir demasiado para emplear ensamblador en un 486 (salvo por el hecho en si de tener ya claro como funciona la programación a bajo nivel), por ejemplo, porque cada uno tiene su propia implementación de sus propios mapas de memoria (hexadecimal siempre es hexadecimal, pero como está fragmentada para cada uso siempre va a ser diferente), su propio comportamiento de sus registros, su propio juego de instrucciones con su funcionamiento particular por cuestiones de arquitectura, etc.

2- No empezar a aprender ensamblador hasta no hacerse un mapa mental de como está estructurada su programación (esto incluye la arquitectura del hardware concreto), de manera que una vez dibujada en tu cabeza su "forma", puedas situar todo lo que aprendas en su sitio concreto, y no de forma abstracta.
Gracias a todos por vuestro apoyo.

@Señor Ventura yo solo quiero aprender del z80 y ya es demasiado...
Lo que no se es por donde empezar.
Con permiso del resto de intervinientes del hilo.
Me gustaría con el permiso del Sr. que ha iniciado el hilo proponerle la que a mí juicio es una de las mejores formas de iniciarse con el amstrad y que me ha servido teniendo el mismo objetivo que el compañero.

Paso el link: https://profesorretroman.com/, está sería su pagina oficial con todo lo relacionado para el aprendizaje del ensamblador del Z80. Además de no dejar de recomendarle al compañero el canal de youtube con su mismo nombre.

Es de sobra muy conocido en la scene de amstrad y me resulta un tipo de 10 dando las explicaciones, claro y ameno. Por eso es profesor en la universidad de Alicante.

Esperando no haber molestado a los demás intervinientes, un Saludo!

cjv99!
cjv99 escribió:Con permiso del resto de intervinientes del hilo.
Me gustaría con el permiso del Sr. que ha iniciado el hilo proponerle la que a mí juicio es una de las mejores formas de iniciarse con el amstrad y que me ha servido teniendo el mismo objetivo que el compañero.

Paso el link: https://profesorretroman.com/, está sería su pagina oficial con todo lo relacionado para el aprendizaje del ensamblador del Z80. Además de no dejar de recomendarle al compañero el canal de youtube con su mismo nombre.

Es de sobra muy conocido en la scene de amstrad y me resulta un tipo de 10 dando las explicaciones, claro y ameno. Por eso es profesor en la universidad de Alicante.

Esperando no haber molestado a los demás intervinientes, un Saludo!

cjv99!


Muchas gracias. En cuanto llegue del trabajo le echo un vistazo.
La verdad es que yo también me lo he planteado, para programar en Megadrive. Pero con el poco tiempo que tengo libre me da un poco de pereza. A ver si algún día se anima un amigo y el se dedica más a la parte de programación y yo a los gráficos.

Suerte en el proceso de aprendizaje!
Si quereis programar en megadrive, aprended C, que hay buenos compiladores, y os servirá para todo tipo de sistemas, antiguos y modernos.
Señor Ventura escribió:Si quereis programar en megadrive, aprended C, que hay buenos compiladores, y os servirá para todo tipo de sistemas, antiguos y modernos.


Gracias por el consejo. En su día hice C++, pero tendría que recordar.
Claro que es posible, hay casos de gente mas mayor que tu que se han puesto a desarrollar un videojuego y lo han conseguido. Es cuestión de dedicarle tiempo y ser constante.

Como te han comentado, aprende C y sus conceptos (dices conocer Basic, entonces algunos te sonarán), una buena base te ayuda a dominar otros lenguajes más rápidamente.

Busca una plataforma con buena documentación y tutoriales (Megadrive y NES suelen tener bastante gente desarrollando), y empieza por un sencillo "Hello World" y vas subiendo (sprites, controles, etc.).

Suerte !
Gracias por todos vuestros consejos. Dos peeguntillas más. Es posible programar para z80 en un raspberry pi? Me tienta un pi 400 de segunda mano o hacerme uno con una pi zero 2w que están baratisimas en Amazon.
También me gustaría saber si es posible programar solo en ensamblador o hay que saber C si o si.
rafa-lito escribió:Gracias por todos vuestros consejos. Dos peeguntillas más. Es posible programar para z80 en un raspberry pi? Me tienta un pi 400 de segunda mano o hacerme uno con una pi zero 2w que están baratisimas en Amazon.
También me gustaría saber si es posible programar solo en ensamblador o hay que saber C si o si.


Es un ordenador sorprendentemente potente. No creo que tengas ningún problema usándolo para programar (la 400, la zero 2w por sus características físicas no creo que sea una máquina idónea para programar o similares, aunque poder se puede).
Es posible programar sólo en ensamblador, lo que pasa es que C es un lenguaje mucho más fácil que este y si eres principiante es mucho más accesible para comenzar y aprender.
@rafa-lito
Como te comentaban, el profesor retroman tiene mogollón de clases en youtube.
Si lo buscas en su canal de youtube, dale a listas, y ahí te aparecerán las clases ordenadas por años.
También tiene un curso de código máquina, para que lo hagas antes del ensamblador.
Y si tienes telegram, el profesor está en estos grupos:
cpctelera: https://t.me/cpctelera_asm
dez80: https://t.me/asmz80
Gracias dw nuevo a todos
@rafa-lito

Aplaudo tu decisión y actitud, especialmente en una sociedad donde, lamentablemente, cada vez es más común que la gente pierda el interés por aprender y prefiera soluciones fáciles.

Triste, pero cierto.
DJ Deu escribió:@rafa-lito

Aplaudo tu decisión y actitud, especialmente en una sociedad donde, lamentablemente, cada vez es más común que la gente pierda el interés por aprender y prefiera soluciones fáciles.

Triste, pero cierto.


Gracias. Pues si, es así
Una opción para ensamblador de Spectrum es el libro "Ensamblador para ZX Spectrum: ¿Hacemos un juego?", disponible también en formato físico.
Es actual y cubre todo lo básico desde 0
https://trastero.speccy.org/cosas/Libros/Ensamblador.htm
@aiguanachein gracias. Le echaré un vistazo
@MasterDan, la posibilidad de la pi zero 2w es que tengo entendido que rinde como una pi 3b. Hay mucha diferencia con la 400? Es que esta muy barata...
@rafa-lito No es un problema de rendimiento, más bien de comodidad. La 400 es una versión de la raspberry Pi 4 con teclado preparada para simplemente conectar a una pantalla y a la corriente y poder usarse como PC, con múltiples puertos USB, salida HDMI de video, etc.

La Zero es una versión muy reducida en tamaño, pensada más para ser un "cerebro" de proyectos que necesiten cálculo computacional que como ordenador de sobremesa. Le faltan puertos USB, salida HDMI normal, carcasa, etc. Se puede usar como PC? Si, pero tendrás que añadir adaptadores para poder conectarle teclado, ratón, conectarla a un HDMI normal, etc.
Acabo de acordarme que tengo en casa un netbook de aquellos con intel atom muerto de risa. Me podría servir? Tiene 2 gb de ram y esta como nuevo. Eso si tiene Windows 7 de 32bits instalado. Que me recomendáis que le instale. Algún Linux?
rafa-lito escribió:Acabo de acordarme que tengo en casa un netbook de aquellos con intel atom muerto de risa. Me podría servir? Tiene 2 gb de ram y esta como nuevo. Eso si tiene Windows 7 de 32bits instalado. Que me recomendáis que le instale. Algún Linux?


Hombre, si te vas a meter a programar en ensamblador vería hasta insultante que no te pongas como mínimo Linux.

Métele algo con un XFCE de entorno de ventanas o un Linux Mint.
DJ Deu escribió:
rafa-lito escribió:Acabo de acordarme que tengo en casa un netbook de aquellos con intel atom muerto de risa. Me podría servir? Tiene 2 gb de ram y esta como nuevo. Eso si tiene Windows 7 de 32bits instalado. Que me recomendáis que le instale. Algún Linux?


Hombre, si te vas a meter a programar en ensamblador vería hasta insultante que no te pongas como mínimo Linux.

Métele algo con un XFCE de entorno de ventanas o un Linux Mint.


Sin problema lo de instalarle un Linux, pero este ordenador me serviría. Tiene potencia similar a algun modelo de rasoberry?
También es cierto que tengo la steam deck y la podria utilizar sin problema para ello teniendo ya steam os y conectarla a un monitor... Pero me gustaría tener algo todo en uno similar a los ordenadores de 8 y 16 bits por eso en un principio me fije en la pi 400, porque un ordenador retro esta por las nubes... Aparte que creo que programar directamente en ellos tiene que ser engorroso
rafa-lito escribió:Acabo de acordarme que tengo en casa un netbook de aquellos con intel atom muerto de risa. Me podría servir? Tiene 2 gb de ram y esta como nuevo. Eso si tiene Windows 7 de 32bits instalado. Que me recomendáis que le instale. Algún Linux?


Para programar en ensamblador de Z80 hasta con un Pentium viejuno debería sobrar. Métele a ese netbook un Puppy Linux para que tire rápido, busca el ensamblador de Z80 que más te mole, un editor de texto que te sea cómodo y el emulador de la máquina para la que quieres desarrollar y a disfrutar.
@rafa-lito

Este tutorial siempre me ha parecido muy interesante para "empezar", aunque sea master system

https://www.smspower.org/Articles/CreateARacingGame

Y luego hay este clásico:

https://jonathan-cauldwell.itch.io/how-to-write-spectrum-games
kusfo79 escribió:@rafa-lito

Este tutorial siempre me ha parecido muy interesante para "empezar", aunque sea master system

https://www.smspower.org/Articles/CreateARacingGame

Y luego hay este clásico:

https://jonathan-cauldwell.itch.io/how-to-write-spectrum-games


Muchas gracias. Ahora que has nombrado a máster system y spectrum, tengo una pregunta. Si quisiera programar videojuegos en mi PC para luego probarlos en una consola u ordenador retro de 8 bits, cual es el sistema retro mas barato que se puede encontrar de segunda mano?
rafa-lito escribió:
kusfo79 escribió:@rafa-lito

Este tutorial siempre me ha parecido muy interesante para "empezar", aunque sea master system

https://www.smspower.org/Articles/CreateARacingGame

Y luego hay este clásico:

https://jonathan-cauldwell.itch.io/how-to-write-spectrum-games


Muchas gracias. Ahora que has nombrado a máster system y spectrum, tengo una pregunta. Si quisiera programar videojuegos en mi PC para luego probarlos en una consola u ordenador retro de 8 bits, cual es el sistema retro mas barato que se puede encontrar de segunda mano?


Diria que una Master II es de lo más barato que hay hoy en dia.
Cual seria el sistema retro menos complejo de programar si quisiera empezar desde el mas básico? Un zx80?

He leído que los ordenadores Acorn podías programar en ensamblador directamente en ellos. Es asi?

Se puede programar para ordenadores de 8 bits en lenguajes más modernos sacando todo el provecho de ellos como lo hace el ensamblador?
rafa-lito escribió:Cual seria el sistema retro menos complejo de programar si quisiera empezar desde el mas básico? Un zx80?


El z80 mas rápido, porque no te va a penalizar por una escasa optimización.

Una game boy color sería bastante satisfactoria.
Señor Ventura escribió:
rafa-lito escribió:Cual seria el sistema retro menos complejo de programar si quisiera empezar desde el mas básico? Un zx80?


El z80 mas rápido, porque no te va a penalizar por una escasa optimización.

Una game boy color sería bastante satisfactoria.


Totalmente de acuerdo, la GB/GBC en C con GBDK 2020 es muy motivadora. Si luego te ves con fuerzas, puedes pasarte al ensamblador.
Saludos!
OscarBraindeaD escribió:
Señor Ventura escribió:
rafa-lito escribió:Cual seria el sistema retro menos complejo de programar si quisiera empezar desde el mas básico? Un zx80?


El z80 mas rápido, porque no te va a penalizar por una escasa optimización.

Una game boy color sería bastante satisfactoria.


Totalmente de acuerdo, la GB/GBC en C con GBDK 2020 es muy motivadora. Si luego te ves con fuerzas, puedes pasarte al ensamblador.
Saludos!


Muchas gracias por el consejo. PD. Que opináis del batari basic, que sirve oara programar juegos de la Atari 2600?
30 respuestas