Empezando con código máquina
Publicado: Lun Oct 17, 2016 2:32 pm
Hola a todos, compañeros. Desde hace mucho, mucho tiempo, sueño con programar un juego para Spectrum
Después de mucho pensarlo, tomé varias decisiones. La primera, que el BASIC iba a ser, casi seguro, muy lento e insuficiente para la aventurilla que planeaba en mi cabeza. Así que tomaría la decisión de programarlo en código máquina, concretamente en Ensamblador si era posible. No tengo mucha idea de cómo se programaba en Ensamblador, pero todo es aprender.
La segunda y radical decisión que tomé fue que iba a programarlo en el Spectrum 128k +2B que tengo desde hace tiempo. Es decir, programar directamente sobre la máquina original, como se hacía antiguamente, sin emuladores, sin intermediarios que pasen por un PC, grabando y cargando los progresos desde cinta magnética, y finalmente pasando el programa final a tzx para distribuirlo.
Esto conlleva un problema lógico, pues muchos cursos y tutoriales (por no decir todos) que actualmente explican cómo programar juegos de Spectrum, se basan en emuladores, como PASMO, que a veces pueden incluir formas diferentes de hacer las cosas, rutinas y funciones nuevas que no creo que funcionaran en un Ensamblador antiguo que corriese sobre la máquina "original". De momento, mis fuentes de aprendizaje son estas:
El curso para Microhobby me parece que es excelente para convertirte en un Programador, con mayúsculas, pero quizás es demasiado técnico, denso o avanzado para alguien que, con muchas menos pretensiones, solo pretende hacer unos juegos en su máquina de la infancia. El otro libro es excelente en ese sentido, ya que lo explica TODO de cero, en un lenguaje asequible, y recurriendo muchas veces a ejemplos, metáforas... que te facilitan visualizar y comprender.
En fin... usaré para programar el Ensamblador GENS que incluía el Devpack de Hisoft. Ya lo cargué ayer, conseguido de WOS, en mi Spectum, y lo lancé, metiéndole varias rutinas de ejemplo copiadas, por ejemplo, el scroll lateral que incluía al principio el curso de Microhobby. El ensamblador es completísimo e intuitivo, y no he tenido demasiados problemas por ahí.
Me he ido familiarizando con la forma de cargar rutinas en direcciones de memoria y luego "llamar" las rutinas a esas direcciones con randimize usr, aunque aún me queda mucho por aprender acerca de la gestión de memoria, pero con muchas ganas e ilusión.
He ojeado el manual del Spectrum, e incluye un capítulo sobre ello, aunque lo que no he visto (quizás está, con otro nombre) es el "mapa de memoria", creo que es esencial para empezar en esto.
En fin, abro hilo para los que ya tenéis experiencia podáis aconsejarme algo, nuevos libros o tutoriales, rutinas útiles para practicar, consejos de veterano... tengo claro que el juego que realmente me ilusiona hacer (una especie de aventura gráfica primitiva) me llevará mucho tiempo, por lo que he decidido limitarme a programarlo "sobre el papel", y antes de tocar una tecla pienso programar juegos más sencillos para ir asimilando habilidades, en fin, juegos tipo 3 en raya o ahorcado, para estar bien seguro de que cuando empiece a programar realmente lo que quiero, ya voy con una mínima base.
Espero que alguien por aquí pueda compartir esta gran pasión
Después de mucho pensarlo, tomé varias decisiones. La primera, que el BASIC iba a ser, casi seguro, muy lento e insuficiente para la aventurilla que planeaba en mi cabeza. Así que tomaría la decisión de programarlo en código máquina, concretamente en Ensamblador si era posible. No tengo mucha idea de cómo se programaba en Ensamblador, pero todo es aprender.
La segunda y radical decisión que tomé fue que iba a programarlo en el Spectrum 128k +2B que tengo desde hace tiempo. Es decir, programar directamente sobre la máquina original, como se hacía antiguamente, sin emuladores, sin intermediarios que pasen por un PC, grabando y cargando los progresos desde cinta magnética, y finalmente pasando el programa final a tzx para distribuirlo.
Esto conlleva un problema lógico, pues muchos cursos y tutoriales (por no decir todos) que actualmente explican cómo programar juegos de Spectrum, se basan en emuladores, como PASMO, que a veces pueden incluir formas diferentes de hacer las cosas, rutinas y funciones nuevas que no creo que funcionaran en un Ensamblador antiguo que corriese sobre la máquina "original". De momento, mis fuentes de aprendizaje son estas:
El curso para Microhobby me parece que es excelente para convertirte en un Programador, con mayúsculas, pero quizás es demasiado técnico, denso o avanzado para alguien que, con muchas menos pretensiones, solo pretende hacer unos juegos en su máquina de la infancia. El otro libro es excelente en ese sentido, ya que lo explica TODO de cero, en un lenguaje asequible, y recurriendo muchas veces a ejemplos, metáforas... que te facilitan visualizar y comprender.
En fin... usaré para programar el Ensamblador GENS que incluía el Devpack de Hisoft. Ya lo cargué ayer, conseguido de WOS, en mi Spectum, y lo lancé, metiéndole varias rutinas de ejemplo copiadas, por ejemplo, el scroll lateral que incluía al principio el curso de Microhobby. El ensamblador es completísimo e intuitivo, y no he tenido demasiados problemas por ahí.
Me he ido familiarizando con la forma de cargar rutinas en direcciones de memoria y luego "llamar" las rutinas a esas direcciones con randimize usr, aunque aún me queda mucho por aprender acerca de la gestión de memoria, pero con muchas ganas e ilusión.
He ojeado el manual del Spectrum, e incluye un capítulo sobre ello, aunque lo que no he visto (quizás está, con otro nombre) es el "mapa de memoria", creo que es esencial para empezar en esto.
En fin, abro hilo para los que ya tenéis experiencia podáis aconsejarme algo, nuevos libros o tutoriales, rutinas útiles para practicar, consejos de veterano... tengo claro que el juego que realmente me ilusiona hacer (una especie de aventura gráfica primitiva) me llevará mucho tiempo, por lo que he decidido limitarme a programarlo "sobre el papel", y antes de tocar una tecla pienso programar juegos más sencillos para ir asimilando habilidades, en fin, juegos tipo 3 en raya o ahorcado, para estar bien seguro de que cuando empiece a programar realmente lo que quiero, ya voy con una mínima base.
Espero que alguien por aquí pueda compartir esta gran pasión