Retro El reto del Spectrum: ¡Semana 6!

Bueno, segunda semana y segundo reto cumplido :atope

El programa, como ya dije, es el de cálculo de Biorritmos del Microhobby nº 1; lo empecé ayer y, tras cargar en cinta el programa incompleto por no tener tiempo para acabarlo, lo he completado hoy. Funciona perfectamente y no me ha dado ningún problema al "compilar" :ok

2015-08-09%2009.18.03_zpswvuh9xyz.jpg


2015-08-09%2011.02.45_zpssp6gxmbg.jpg


Una vez terminado, el programa te debe pedir la fecha de nacimiento y calcular tus días "críticos y semicriticos"; lo cierto es que es una chorrada, pero muy útil para aprender a programar.

2015-08-09%2010.59.04_zpsaktug9qt.jpg


2015-08-09%2010.59.10_zpsuoxuj4qi.jpg


2015-08-09%2010.59.14_zpsdgkyo4ci.jpg


Como veis no tengo ningún día crítico, menos mal porque estaba a punto de salir corriendo a urgencias como me diera alguno :garrulo

Fuera coñas... altamente satisfactorio, ya que como digo, no me ha arrojado un solo error al compilar. Supongo que "algo" tiene que ver que lleve toda la semana haciendo los ejercicios del curso BASIC de Microhobby (llevo leidas las primeras 60 páginas, con sus correspondientes ejercicios).

Pese a la satisfacción y relativa facilidad... hay una cosa que me fríe. Las variables en BASIC, y como se (mal)utilizan. Estoy acostumbrado a usar variables en C, donde debes declararlas limpiamente al principio del programa, con nombres sencillos y COMPRENSIBLES. COMPRENSIBLES, leñe :doh Por ejemplo, si quiero programar un termometro que me mida la temperatura de mi casa, podría ser algo así la declaración:

int casa;
float temperatura;


En cambio en BASIC, las variables no es necesario declararlas previo uso, y lo que mas me mata: suelen ser conjuntos de dos o tres dígitos, muchas veces mezclan números y letras (sobre todo en programas grandes) y desgraciadamente, solo el programador sabía EXACTAMENTE que significan. Aunque a veces puedes, por lógica, dilucidarlo, otras no hay quien lo entienda. Eso hace muy dificil que analices un programa para entender qué hace; porque si, igual es verdad que dm = dm +1, o que dt = INT (dt /2) pero si no sé que son dm o dt, se dificulta mucho aprender a manejar variables y entender su utilización a lo largo de un programa.


La semana que viene, puesto que el reto de esta semana ha sido relativamente fácil, me enfrento a algo más complejo: el programa más largo y ambicioso que contenía el número 1 de la revista Microhobby: Microcopi. Un programa para realizar copias de seguridad.

2015-08-09%2011.14.12_zpsvjtepxfj.jpg


Lo más "retador" de este programa es que, tras la rutina inicial, hay que copiar un laaaaaaaaaaaaaaaaaaaaargo listado de "DATAs" que, según he entendido, al compilar, generan código máquina.

2015-08-09%2011.14.25_zpsvmcom36e.jpg


2015-08-09%2011.14.40_zpsk2xwmo6e.jpg


Preparémonos para los sudores frios :L

Y no penséis que el "reto" me tiene absorbido! De vez en cuando aún tengo tiempo para hacer, ejem, cosas productivas y útiles para la sociedad, como cuidar mi disciplina religiosa :roto2 o preocuparme por la seguridad ciudadana.

2015-08-02%2018.00.51_zpsownsg5qs.jpg



2015-08-02%2020.09.15_zpsiaqvzcqk.jpg


La semana que viene más! :birra
 
Y de esas revistas, no os acordais de los dibujos de portada de un tal Sr. Ponce con sus famosos jeroglíficos? P11


Enviado desde mi ZX-81 with Tapatalk for vintage computers
 
Y los que vivíais en Valencia, ¿no os acordáis de una tienda llamada Ocio ZX?


Enviado desde mi ZX-81 with Tapatalk for vintage computers
 
Y de esas revistas, no os acordais de los dibujos de portada de un tal Sr. Ponce con sus famosos jeroglíficos? P11


Enviado desde mi ZX-81 with Tapatalk for vintage computers

Jose María Ponce, sí... era el dibujante de muchísimas portadas de Microhobby. Desgraciadamente, murió a principios de este año. Era un cachondeo, pues el tío ponía su firma en la portada, muchas veces tan integrada y escondida en el dibujo, que nadie lo encontraba. Muchas cartas de lectores eran para preguntar donde estaba la firma de Ponce en tal o cual número, pues no la encontraban. He leído sobre él en el libro de 8 quilates.
 
En uno de los primeros podcast de El Mundo del Spectrum le hicieron una entrevista hace tiempo en la que relata cómo fue aquella época y de dónde sacaba las ideas para las portadas, muy disfrutable. Era un grande.
 
Aunque he estado de vacaciones, no he descuidado del todo el reto... aunque ya puedo decir que, de momento, el Reto 3 ha sido un fracaso :notok

Quizá os acordéis, era el programa Microcopi del numero 1 de MH; llevaba un programa pequeño, programa 1, y un larguísimo listado de Datas como programa 2. En fin, estos:

2015-08-09%2011.14.25_zpsvmcom36e.jpg



2015-08-09%2011.14.40_zpsk2xwmo6e.jpg


Ya leyendo las instrucciones, estas no especifican del todo bien como cargar el programa. Las instrucciones son escribir el programa 1 y guardarlo como Microcopi; después teclear el programa 2 y luego, run; entonces se graba en cinta el código máquina que genera, pero debe grabarse después del programa 1, o eso he entendido; sin embargo no hay forma humana, CREO de grabar el codigo maquina despues del programa 1 cuando el programa que graba el codigo maquina es el programa 2... uy, o yo me he "liao" o la revista se ha liao :cuniao En cualquier caso, este es el resultado:

Si ejecuto el programa 1 (el breve)

2015-08-25%2023.03.46_zpspqraoc3q.jpg


Si ejecuto el segundo programa, se me queda la pantalla en blanco durante un rato, y finalmente me aparece un mensaje para darle a la cinta y a ENTER: si lo hago, "algo" se graba, imagino que el código máquina, pero ese algo no se puede luego llamar con load""

2015-08-25%2021.07.27_zpsblpkpzdl.jpg


2015-08-26%2017.51.54_zpskl87pkwl.jpg


En cualquier caso, grabado queda, y en el futuro quizás lo vuelva a intentar poner en marcha, si le saco alguna explicación a cómo ejecutarlo. Mientras tanto, aquí queda constancia del currele, seis errores en la introducción de los Data (por fortuna el programa lleva incorporada una pequeña rutina que te avisa del error e incluso de en qué linea esta):

PROGRAMA 1:

2015-08-22%2011.00.27_zpsphi2lg1o.jpg


PROGRAMA 2:

2015-08-25%2023.06.50_zpsijis0k6x.jpg


2015-08-26%2017.45.36_zpsijfqo7pm.jpg



En fin... me jode sobre todo porque es el primer programa que tecleo que incluye código máquina y lo quería niquelado, pero no lo olvido ni mucho menos, intentaré cogerlo por banda cuando sepa exactamente como va. Mientras tanto, para la semana que viene, el reto consistirá en el último ejercicio que me queda por hacer del número 1 de Microhobby´:

carac1_zpsmcwnjwvz.jpg


carac2_zpsehk6vvmk.jpg


carac3_zpsp3m0fahf.jpg


Hasta el sábado que viene :ok

Maldito Microcop#@~€ :mcallo
 
Has probado a usar el basic del 48k?

Recuerdo que a veces el modo 128k daba problemas de compatibilidad.

Lo probé, y ni aún así tiró, pero gracias :ok

Después de un tiempo de adaptación post vacacional, vuelvo al reto. El último que me marqué no lo pude cumplir, ya que a mitad de código había carácteres borrosos, supongo que por el paso del tiempo o por el escaneo poco preciso, así que no lo pude terminar.
Por descansar un poco de la Microhobby, el próximo reto consistirá en escribir el código de un jueguecito que viene al final del manual del Spectrum: "Rebotes". No hay fotos en el manual, pero supongo que será el típico Pong. Creo que en un par de días lo habré escrito, no es muy extenso.
 
¡Terminado! Se trata del típico juego con una pelotita que va rompiendo un muro si le das con una pala... no ha sido nada dificil, salvo algún error al escribir variables raras. Se compiló a la primera, salvo que la pelotita no funcionaba, ya que me había equivocado al poner un signo en la rutina que mueve la pelota. Después de eso... como la seda

100_7221_zpsim2yb3vg.jpg


100_7222_zpsn7d50fmh.jpg



100_7227_zpsv2uoqrd9.jpg


100_7226_zpsdxpy246o.jpg


100_7229_zpscp0puu5j.jpg




Terminado este, me pongo con otro más extenso... el juego "Andromeda" del Microhobby nº 2.

100_7230_zpsss5gogmp.jpg


100_7231_zpskm6rvcwk.jpg


Me doy de tiempo hasta el domingo, siete días, creo que sobrará, aunque son ya bastantes columnas de código :babas
 
Bueno, pues, una semana más... reto acabado. :atope:agradable Finiquitado el Andromeda, resulta ser una especie de Space Invaders cutre, con un mecanismo bastante sencillito, dos teclas para mover, y una para disparar, tres vidas disponibles, y registro de puntuación y de mejor puntuación.

100_7245_zps6seucrw4.jpg


100_7239_zpsejowyogm.jpg



100_7241_zpsbi6hzkow.jpg


100_7243_zpsozfcr962.jpg


100_7244_zpsfnvrwiwv.jpg


El juego tiene un par de animaciones (cuando te cargas una flecha, los enemigos, o cuando tu propia nave se destruye y palmas una vida) y los "BEEP" dan la adecuada sensación de esquizofrenia homicida que nos remite a las bandas sonoras de juegos de la época :garrulo
Lo he compilado sin un solo error importante, y el único fallo que le veo es que las balas que no dan en el blanco se quedan "pegadas" al techo, como vosotros mismos podéis ver en las capturas. No sé si ha sido un fallo mío o si viene así "de serie" en el código de la revista.

La semana que viene, prepararé como reto otro juego del número 3 de Microhobby, titulado "La aventura de la pirámide" compuesto de cinco largas columnas de código. ¿Será un clon del amado Abu Simbel? :pensativo

100_7246_zps7ls7ulx5.jpg


100_7247_zps41hoc7ng.jpg


100_7249_zps41d72tlp.jpg



Este es el aspecto que, según MH, tendrá el juego acabado. El domingo que viene estableceré odiosas comparaciones :mparto

100_7248_zpsqgwazggf.jpg



:hola
 
Gracias Tozzi ;) aunque por ahora "no es para tanto". El BASIC lo he tocado toda mi vida, lo más difícil es adaptarme a las diferencias entre el BASIC de Windows y el del Spectrum. Sobre todo estoy intentando controlar las coordenadas para dibujar, porque por ahora mis combinaciones plot y draw solo engendran auténticos abortos de "Excede el margen" :juas

Cuando empiece con código máquina (que he visto que en pocos números de Microhobby ya hay juegos con C/M) ahí si que se me agarrotará el esfinter, porque del tema, ni idea.
 
Bueno, pues, escrito fatigosamente el código de "Aventura en la pirámide" de un tal David Bradley, resulta imposible de ejecutar debido a un carácter borroso que no distingo. Concretamente ubicado en la última línea de la línea 130:

... at z+5,F + ¿¿??;"EF"

He mirado en la sección Consultorio de los siguientes cinco números por si alguien preguntaba, pero no he visto nada. Lo gracioso es que SÍ he visto que alguien preguntaba por el programa Microcopi (el que yo no supe ejecutar) porque resultaba confuso; desde la revista expicaban todos los pasos, así que no hay mal que por bien no venga; de momento no puedo ejecutar Aventura en la piramide, pero a ver si me quito la espinita de Microcopi...
 
Bueno, el hecho de que este último reto no haya podido ejecutarse no significa que no haya existido, y menos después de las horas invertidas en teclear (este es el programa más largo hecho hasta ahora) así que aquí tenéis los "datos" habituales...

100_7254_zps8vjqv9zw.jpg


100_7255_zpsmd9yl3la.jpg


Y aquí las "pantallas" que llega a cargar antes de colgarse:

100_7259_zpsrinivu1k.jpg


100_7256_zps71blw5qj.jpg


100_7257_zpsrhibdcup.jpg



En fin... encontré el código original (el juego es inglés) en la página WOS, pero desde la caída que tuvieron, muchos archivos no enlazan, y ese es uno de ellos, así que supongo que estaré un tiempo sin poder resolverlo.

Para la semana que viene, el reto será otro programa del número 3 de Microhobby, "Un día en las carreras".


100_7260_zpsvauym1z3.jpg


100_7261_zpsi2excdyx.jpg


100_7262_zpsxldxqtrs.jpg


También comentar que desde que me regalaron el Spectrum, hace ya un año, he estado usando una sola cinta de casette, que tenía por casa. Y desde entonces he estado buscando otras. Me he pateado todos los comercios chinos, todo a cien, y tiendas de objetos varios que os podáis imaginar; y nunca encontré ni una sola miserable cinta. Todos los propietarios se me quedaban mirando en plan "¿pero eso aún existe?" y algunos de los más jovencillos tenía yo que explicarles de qué coñe les estaba hablando.

Hasta que la semana pasada, me dio por pasarme por una antiquísima tienda de electrónica que lleva décadas abierta, y... voila!

100_7252_zpsqfcajf1m.jpg


100_7253_zpstoxnglbg.jpg


Doce cintas de 60 dan para grabar muchas Spectrumadas, espero.

:hola:hola
 
Bueno, pues, escrito fatigosamente el código de "Aventura en la pirámide" de un tal David Bradley, resulta imposible de ejecutar debido a un carácter borroso que no distingo. Concretamente ubicado en la última línea de la línea 130:

... at z+5,F + ¿¿??;"EF"

He mirado en la sección Consultorio de los siguientes cinco números por si alguien preguntaba, pero no he visto nada. Lo gracioso es que SÍ he visto que alguien preguntaba por el programa Microcopi (el que yo no supe ejecutar) porque resultaba confuso; desde la revista expicaban todos los pasos, así que no hay mal que por bien no venga; de momento no puedo ejecutar Aventura en la piramide, pero a ver si me quito la espinita de Microcopi...
El símbolo desconocido es un 1. Tengo el programa ya tecleado y lo he podido comprobar. Ya me cuentas ;)

Enviado desde mi ZX Spectrum +
 
Bueno, pues, escrito fatigosamente el código de "Aventura en la pirámide" de un tal David Bradley, resulta imposible de ejecutar debido a un carácter borroso que no distingo. Concretamente ubicado en la última línea de la línea 130:

... at z+5,F + ¿¿??;"EF"

He mirado en la sección Consultorio de los siguientes cinco números por si alguien preguntaba, pero no he visto nada. Lo gracioso es que SÍ he visto que alguien preguntaba por el programa Microcopi (el que yo no supe ejecutar) porque resultaba confuso; desde la revista expicaban todos los pasos, así que no hay mal que por bien no venga; de momento no puedo ejecutar Aventura en la piramide, pero a ver si me quito la espinita de Microcopi...
El símbolo desconocido es un 1. Tengo el programa ya tecleado y lo he podido comprobar. Ya me cuentas ;)

Enviado desde mi ZX Spectrum +

No había tenido tiempo de probarlo hasta ahora....

¡Y funciona, muchas gracias!

:palmas:palmas:palmas

El juego ya es operativo. Puedo jugar, apuntarme puntos, todas las mecánicas están funcionando. Solo hay un problema, y es que los gráficos no andan. O sea, la piramide está ahí, pero formada por letras. igual, todos los elementos gráficos son letras, no como se muestra en la imagen de la Microhobby. Seguire buscando donde está el fallo y revisando, aunque sospecho donde pueda estar. En cierta línea de comando te pide que introduzcas barras (/) y barras invertidas (\) peeero no he encontrado la forma de poner las barras invertidas :sudor
Probé con print chr$ 92, sin resultados. También miré en el manual que traía el Spectrum, en el apartado del teclado, y no lo encontré. ¿Alguien me podría decir como demonios conseguir que salga ese símbolo en concreto? :)
 
Para sacar el simbolo \ tienes que hacer esto:

E (for extended) mode is used for obtaining further characters, mostly tokens. It occurs after both shift keys are pressed together, and lasts for one key depression only. In this mode, a letter gives one character or token (shown in green above it) if unshifted, and another (shown in red below it) if pressed with either shift. A digit key gives a token if pressed with SYMBOL SHIFT; otherwise it gives a colour control sequence.

Es decir en modo 48K, apretar CAPS SHIFT + SYMBOL SHIFT para entrar en el modo Extendido (veras que te cambiara el cursor con esa letra E) y luego volver a pulsar CAPS SHIFT y le tecla D... et voila... facil... :mparto

Lo acabo de probar en el emulador y tira.

 
Lo he intentado, y, aunque sí me pasa a modo Extendido, al pulsar CAPS SHIFT y la tecla D obtengo una bonita Ñ... seguiré intentandolo :ok. He terminado el juego de "Dia en las carreras" pero tiene cosas por pulir así que lo publicaré mañana.
 
Aunque el post ya es antiguo y probablemente el compañero Henry ya esté ocupado con otras cosas, por si no es así, no te calientes la cabeza, en este blog estamos preservando (bueno, estoy, que practicamente me he quedado solo), todos los listados de la revista microhobby , basic y codigo maquina, escritos a mano, y con unas horas de trabajo por listado, ardua tarea pero todo sea por su preservacion:
Proyecto BASIC ZX
 
Y por cierto, nada hay como aprender a escribir (listar) en modo 48 ks, merece muchisimo la pena aprender los Tokens del teclado, que aun siendo un poco lioso al principio, cuando le coges el truco y los memorizas, programas super rapido y los listados se hacen mucho mas cortos y llevaderos
 
El sábado pasado tuve que ir a Valladolid. Como tenía que hacer tiempo y para entretener al niño fuimos al museo de la ciencia que tenía en ese momento una exposición sobre la historia de la informática.

Allí había ordenadores de todo tipo y año, y entre ellos:




Y además había un amstrad para poder escribir código. Le puse a mi niño un "Hola Mundo" con goto 10 para que se repitiera indefinidamente. Se le quedó una cara...

Una delicia poder volver a aquellos tiempos
 
Arriba Pie