Jake Speed escribió:... porque si, por ejemplo, tenemos que A es o deberia ser un monigote con forma humana, yo pulso GRAF, pulso A, y solo obtengo una bonita A mayuscula. ¿Los graficos venian en la cinta de microhobby, quizas, o como demonios los conseguiais?
Lo haces bien. Los gráficos se almacenan en un área de la memoria, y hasta que no la cambia el programa guarda las primeras 21 letras. Si tecleas bien el programa, lo ejecutas y pulsas BREAK descubrirás que todas las "notas gráficas" han cambiado mágicamente a lo que muestra la revista.
Jake Speed escribió:También hay palabras que vienen "subrayadas" en negrita, o sea no subrayadas sino inmersas en una raya negra, y lo jodío es que hay mucho código así, y no tengo ni idea de como se hace...

Esa es la segunda versión de las notas gráficas. Para no dejarte los ojos, decidieron que todos los subrayados se introduzcan desde el modo gráfico.
Ten en cuenta, además, que el 48k tiene 21 UDG, pero el 128k solo 19. Si en un listado te encuentras con que tienes que usar la T o la U desde modo gráfico, mejor teclea esas líneas en modo 48k y ejecuta el programa desde modo 48k.
Jake Speed escribió:-Aunque la mayoria de instrucciones, sentencias, bucles, etc, ya las entiendo y domino porque programo en C, hay comandos del Spectrum que me tienen maravillado. DATA, por ejemplo. Te viene DATA seguido de un montón de números. ¿Para que demonios sirve? ¿Esos numeros que son, direcciones de memoria?
Para nada y para todo. DATA está íntimamente relacionado con RESTORE y READ, y son definiciones de datos. Cuando tu usas READ A (por ejemplo), metes un número de una línea DATA. Cuando vuelves a hacer READ, lees el siguiente... y así hasta que se te acaben los números (o cadenas, puedes hacer READ A$).
RESTORE cambia el puntero de READ a la línea que indiques. Por ejemplo, RESTORE 7000 haría que READ lea el siguiente número en una línea DATA a partir de la 7000.
Jake Speed escribió:Es que, mirando algunos juegos que lo incluyen, me maravilla y me aterra, ¿como sabia la gente lo que tenia que poner?
Porque son sus datos. Si tu quisieras guardar los días de los meses, podrías hacer DATA 31,28,31... a grandes rasgos, los DATA son las constantes de los programas.
Jake Speed escribió: Tres cuartos de lo mismo con POKE, que si, lo tengo bien usado para meter mis trucos en el Abu Simbel

pero no entiendo de donde salen. ¿Son bugs de los programas, aprovechables por terceros que los descubren? ¿Estuvieron ahi siempre, los dejaron sus creadores?
No, y no. Imagina que haces en C un juego de naves. Cuando tu nave choca, harías una instrucción del tipo vidas=vidas-1, vidas --... ese tipo de cosas. En ensamblador del Spectrum, eso sería algo del estilo
Si yo machacho la instrucción "dec a" (que decrementa el valor de a), cuando te maten el ordenador no te quitará la vida y nunca llegarás al GAME OVER. En síntesis, lo que hacen los POKEs de la Microhobby: cambian instrucciones del programa para que "olvide" descontar vidas, o te ponga x vidas al inicio del programa, o esas cosas.
Jake Speed escribió:Sobre todo... Código máquina. Uno de mis grandes retos en el futuro es aprender codigo máquina en el Spectrum. Creo que es ideal aprender codigo maquina, ensamblador o como le digan, en una computadora de 8 bytes, donde realmente puedes saber y controlar de los procesos de la máquina, cosa que en un PC moderno con terabytes de espacio, gigas de RAM, miles de procesos abiertos... no considero ni posible.
El c/m se usaba porque, como habrás descubierto, el BASIC del Spectrum es leeeeento. En un PC, no se programa directamente así porque es un coñazo... y muchos compiladores de C generan código máquina más rápido que lo que hacen los programadores medios.
Jake Speed escribió:Pero no entiendo "como" se programaba en codigo maquina. O sea, ¿se programa en el mismo ""IDE"" donde se programa BASIC? Me suena, por cosas dispersas que he leido, que primero se metian instrucciones en BASIC y luego ya escribias en codigo máquina, ¿es asi? No hace falta ningun programa mas... ¿o si? Me interesa mucho saberlo, aunque no me pondré con Codigo maquina hasta que domine BASIC, que aún me falta.
Un Spectrum a pelo no tiene ningún ensamblador integrado (un ensamblador es el equivalente de un compilador de C... le metes por un lado instrucciones en ensamblador y por otro lado escupe el código máquina). Tendrías que descargar uno y aprender a usarlo (Microhobby tenía alguno). A día de hoy, no es buena idea seguir ese camino. En c/m tienes el control total de la máquina... y eso significa que es un camino lleno de reseteos (si te equivocas, y créeme que todo el mundo lo hace).
A finales de la vida útil del Spectrum, las casas de software usaban entornos de desarrollo en PC, que les permitían general el código en un PC (más rápido) y poder hacer el burro sin problemas (porque si el Spectrum se colgaba siempre tenían todo el código bien guardadito en el PC).
Hoy en día tenemos emuladores con ensamblador (personalmente me encanta ZX Spin para esas cosas), que te permitirán hacer tus pinitos con el ensamblador del Spectrum sin que te den ganas de tirarlo por la ventana (lo que pasa cuando llevas toda la tarde programando y logras bloquear el Spectrum sin haber guardado primero). Yo creo que este es el camino a seguir si vas a programar en Spectrum: hacerlo en un emulador y, cuando lo tengas ya terminado y sin bugs, lo grabas en cinta desde el PC y se lo sueltas a la máquina real.
Una alternativa bastante popular, si el ensamblador se te atraganta, es usar un compilador de BASIC. Te convierte el BASIC a c/m (con lo que se ejecuta más rápido) y no tienes que aprender demasiadas cosas nuevas.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start...