cursos:basic:carga_y_grabacion

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
cursos:basic:carga_y_grabacion [20-03-2009 18:14] sromerocursos:basic:carga_y_grabacion [20-03-2009 18:18] (actual) sromero
Línea 27: Línea 27:
 ===== Grabación y carga en cinta ===== ===== Grabación y carga en cinta =====
  
-    * **Grabación**.\\ Simplemente, una vez introducido el programa, tecleamos [**SAVE "prueba"**] y pulsamos **[ENTER]**, el Spectrum nos mostrará el siguiente mensaje: **[Start tape, then press any key]**, hacemos lo que dice el mismo, pulsamos rec y play en la grabadora y pulsamos cualquier tecla. En unos segundos tendremos grabado el programa en cinta (recordad que el comando SAVE se teclea tal cual en los modelos de 128K, pero que se introduce pulsando la tecla 's' en los modelos 48K).\\ Otra opción es indicarle que el programa se autoejecute una vez cargado, sin necesidad de teclear [**RUN**] para que comience a funcionar, esto lo conseguimos simplemente de la siguiente manera: [**SAVE "prueba" LINE 10**]. Con esto conseguimos que al cargar el programa se comience a ejecutar por la línea 10. Lógicamente podemos cambiar el número de línea, o poner [LINE 0] para que arranque por la primera línea que encuentre de programa, independientemente del número que tenga. Este valor debe estar comprendido entre 0 y 9999, ya que este último valor es el perteneciente a la última línea que podemos introducir normalmente en un programa BASIC.+    * **Grabación**.\\ Simplemente, una vez introducido el programa, tecleamos [**SAVE "prueba"**] y pulsamos [**ENTER**], el Spectrum nos mostrará el siguiente mensaje: [**Start tape, then press any key**], hacemos lo que dice el mismo, pulsamos rec y play en la grabadora y pulsamos cualquier tecla. En unos segundos tendremos grabado el programa en cinta (recordad que el comando SAVE se teclea tal cual en los modelos de 128K, pero que se introduce pulsando la tecla 's' en los modelos 48K).\\ Otra opción es indicarle que el programa se autoejecute una vez cargado, sin necesidad de teclear [**RUN**] para que comience a funcionar, esto lo conseguimos simplemente de la siguiente manera: [**SAVE "prueba" LINE 10**]. Con esto conseguimos que al cargar el programa se comience a ejecutar por la línea 10. Lógicamente podemos cambiar el número de línea, o poner [**LINE 0**] para que arranque por la primera línea que encuentre de programa, independientemente del número que tenga. Este valor debe estar comprendido entre 0 y 9999, ya que este último valor es el perteneciente a la última línea que podemos introducir normalmente en un programa BASIC.
  
     * **Verificación**.\\ Rebobinamos la cinta al comienzo de la grabación, tecleamos [**VERIFY "prueba"**] y pulsamos [**ENTER**] y play en el cassette. Si todo va bien, nos devolverá en mensaje de conformidad, y en caso de que falle, el famoso error de carga, con lo cual tendríamos que retomar el punto anterior y volver a grabar el programa de nuevo. Por supuesto, tendremos que tener el programa que hemos grabado en memoria todavía y sin modificar, ya que de otra forma generaría un error de carga por no corresponderse el programa en memoria con lo grabado en cinta. Para introducir VERIFY en modo comando se utiliza la tecla 'R' estando en modo extended. Es decir, pulsamos Caps+Symbol y luego Caps+R.     * **Verificación**.\\ Rebobinamos la cinta al comienzo de la grabación, tecleamos [**VERIFY "prueba"**] y pulsamos [**ENTER**] y play en el cassette. Si todo va bien, nos devolverá en mensaje de conformidad, y en caso de que falle, el famoso error de carga, con lo cual tendríamos que retomar el punto anterior y volver a grabar el programa de nuevo. Por supuesto, tendremos que tener el programa que hemos grabado en memoria todavía y sin modificar, ya que de otra forma generaría un error de carga por no corresponderse el programa en memoria con lo grabado en cinta. Para introducir VERIFY en modo comando se utiliza la tecla 'R' estando en modo extended. Es decir, pulsamos Caps+Symbol y luego Caps+R.
Línea 52: Línea 52:
 Con lo cual vemos que, como la línea 5 no estaba en memoria, se incluye sin machacar nada, pero la 20, que está tanto en memoria como en la cinta, es sustituida por la grabada en cinta. Con lo cual vemos que, como la línea 5 no estaba en memoria, se incluye sin machacar nada, pero la 20, que está tanto en memoria como en la cinta, es sustituida por la grabada en cinta.
  
-Con [MERGE] también podemos evitar que los programas grabados con la opción [LINE XXXX] se ejecuten al cargar, si teniendo la memoria sin nada, hacemos [MERGE "programa"] al finalizar la carga de el mismo, nos devolverá el control sin empezar a correr el programa. Útil si no queremos estar pendiente de cuando termine para pulsar [BREAK]. Por supuesto, si tenemos algo en memoria funcionará con las propiedades del comando, mezclando y sustituyendo líneas y nos devolverá el control.+Con [**MERGE**] también podemos evitar que los programas grabados con la opción [**LINE XXXX**] se ejecuten al cargar, si teniendo la memoria sin nada, hacemos [**MERGE "programa"**] al finalizar la carga de el mismo, nos devolverá el control sin empezar a correr el programa. Útil si no queremos estar pendiente de cuando termine para pulsar [**BREAK**]. Por supuesto, si tenemos algo en memoria funcionará con las propiedades del comando, mezclando y sustituyendo líneas y nos devolverá el control.
  
 NOTA: Estos comandos tienen más opciones, entre ellas guardar programas o datos como bytes, arrays, etc. Cuestiones que explicaremos si llega el momento de utilizarlos. Por el momento con estas explicaciones nos va a valer para ir creando nuestro juego. NOTA: Estos comandos tienen más opciones, entre ellas guardar programas o datos como bytes, arrays, etc. Cuestiones que explicaremos si llega el momento de utilizarlos. Por el momento con estas explicaciones nos va a valer para ir creando nuestro juego.
  
 \\  \\ 
 +
 ===== Grabación y carga en disco en un Spectrum +3 ===== ===== Grabación y carga en disco en un Spectrum +3 =====
  
Línea 63: Línea 64:
 Por defecto el +3 manda la salida y entrada de datos de los comandos comentados a la disquetera, "**a:**". Esto se puede modificar muy fácilmente. Si queremos usar la cinta en lugar de la disquetera, tecleamos [**LOAD "t:" + ENTER**], el ordenador nos responderá con un mensaje de conformidad y a partir de este momento, cada vez que utilicemos un comando de carga se dirigirá a la cinta de cassette, y si lo que necesitamos es grabar en cinta, hacemos lo mismo pero con el comando [**SAVE "t:" + ENTER**]. En el momento que queramos volver a orientar el envío de datos al disco, ponemos los mismos comandos anteriores, pero cambiando la letra que corresponda a la unidad deseada, [a:] para la disquetera del +3, [b:] si tenemos una segunda disquetera externa, como la de 3 1/2, [t:] para la cinta de cassette. Por defecto el +3 manda la salida y entrada de datos de los comandos comentados a la disquetera, "**a:**". Esto se puede modificar muy fácilmente. Si queremos usar la cinta en lugar de la disquetera, tecleamos [**LOAD "t:" + ENTER**], el ordenador nos responderá con un mensaje de conformidad y a partir de este momento, cada vez que utilicemos un comando de carga se dirigirá a la cinta de cassette, y si lo que necesitamos es grabar en cinta, hacemos lo mismo pero con el comando [**SAVE "t:" + ENTER**]. En el momento que queramos volver a orientar el envío de datos al disco, ponemos los mismos comandos anteriores, pero cambiando la letra que corresponda a la unidad deseada, [a:] para la disquetera del +3, [b:] si tenemos una segunda disquetera externa, como la de 3 1/2, [t:] para la cinta de cassette.
  
-Los nombres de los programas, como comentábamos antes, pueden poseer una terminación que los identifique unos de otros. Es decir, podemos poner [**SAVE "programa.bas"**] para un programa en BASIC, [**SAVE "programa.bin" code 30000,4000**] para un bloque de bytes o [**SAVE "pantalla.scr" SCREEN$] para las pantallas de presentación. La única norma que tenemos que seguir es respetar el límite de 8+3 caracteres por nombre, estilo MS-DOS.+Los nombres de los programas, como comentábamos antes, pueden poseer una terminación que los identifique unos de otros. Es decir, podemos poner [**SAVE "programa.bas"**] para un programa en BASIC, [**SAVE "programa.bin" code 30000,4000**] para un bloque de bytes o [**SAVE "pantalla.scr" SCREEN$**] para las pantallas de presentación. La única norma que tenemos que seguir es respetar el límite de 8+3 caracteres por nombre, estilo MS-DOS.
  
-Una opción que tenemos es, dando el nombre adecuado, hacer que un programa se cargue solo con la opción [LOADER] del menú del +3. Para esto debemos grabar el programa como [SAVE "DISK" LINE XXXX], siendo line opcional, como explicamos al comienzo del artículo. Este programa lo podemos usar como menú de acceso a los demás archivos, o cualquier utilidad que se nos ocurra.+Una opción que tenemos es, dando el nombre adecuado, hacer que un programa se cargue solo con la opción [**LOADER**] del menú del +3. Para esto debemos grabar el programa como [**SAVE "DISK" LINE XXXX**], siendo line opcional, como explicamos al comienzo del artículo. Este programa lo podemos usar como menú de acceso a los demás archivos, o cualquier utilidad que se nos ocurra.
  
 Tenemos más comandos para utilizar en el +3 y la unidad de disco. Tenemos más comandos para utilizar en el +3 y la unidad de disco.
  
-    * Formateo de los discos: Antes de utilizar un disco, deberemos darle un formato. Esto se consigue con el comando [FORMAT]. Un disco sin formato no es legible para el sistema operativo, por lo cual deberemos dárselo nosotros, tarea muy sencilla que se consigue tecleando [FORMAT "A:" + ENTER], esperamos unos segundos y repetimos el proceso con la otra cara del disco. Hay que ser muy cuidadosos con el uso de este comando, ya que al utilizarlo perderemos el contenido de la cara del disco al que lo apliquemos+    * **Formateo de los discos**:\\ Antes de utilizar un disco, deberemos darle un formato. Esto se consigue con el comando [**FORMAT**]. Un disco sin formato no es legible para el sistema operativo, por lo cual deberemos dárselo nosotros, tarea muy sencilla que se consigue tecleando [**FORMAT "A:" + ENTER**], esperamos unos segundos y repetimos el proceso con la otra cara del disco. Hay que ser muy cuidadosos con el uso de este comando, ya que al utilizarlo perderemos el contenido de la cara del disco al que lo apliquemos.
-    * Listado de los archivos contenidos en un disco: El comando [CAT + ENTER] nos saca un listado de los archivos que tenemos en el disco, ordenados alfabéticamente. +
-    * Borrado de ficheros: Con el comando [ERASE "programa.bas"] borraremos del disco el archivo nombrado, sin posibilidad de recuperarlo, por lo cual hay que tener mucha prudencia en su uso.+
  
-UTILIZACIÓN DE BAS2TAP+    * **Listado de los archivos contenidos en un disco**:\\ El comando [**CAT + ENTER**] nos saca un listado de los archivos que tenemos en el disco, ordenados alfabéticamente. 
 + 
 +    * **Borrado de ficheros**:\\ Con el comando [**ERASE "programa.bas"**] borraremos del disco el archivo nombrado, sin posibilidad de recuperarlo, por lo cual hay que tener mucha prudencia en su uso. 
 + 
 +\\  
 +===== Utilización de BAS2TAP =====
  
 BAS2TAP es un programa creado por Martijn van der Heide, conocido por ser el responsable de la web World of Spectrum, que nos va a permitir escribir un programa BASIC en un editor de texto, sobre PC por ejemplo, y crear un archivo TAP que se pueda cargar en el emulador que usemos habitualmente, e incluso pasarlos a cinta con los programas destinados al efecto y cargarlo en un Spectrum real. BAS2TAP está disponible para plataformas Linux, PC/MS-DOS, Amiga y Mac OS X. El autor de este artículo lo ha probado en Linux y MS-DOS con un resultado optimo en ambos casos, en las otras dos plataformas no ha sido posible por no disponer de las máquinas. BAS2TAP es un programa creado por Martijn van der Heide, conocido por ser el responsable de la web World of Spectrum, que nos va a permitir escribir un programa BASIC en un editor de texto, sobre PC por ejemplo, y crear un archivo TAP que se pueda cargar en el emulador que usemos habitualmente, e incluso pasarlos a cinta con los programas destinados al efecto y cargarlo en un Spectrum real. BAS2TAP está disponible para plataformas Linux, PC/MS-DOS, Amiga y Mac OS X. El autor de este artículo lo ha probado en Linux y MS-DOS con un resultado optimo en ambos casos, en las otras dos plataformas no ha sido posible por no disponer de las máquinas.
Línea 79: Línea 83:
 Las ventajas de programar utilizando este sistema son evidentes y no las vamos a enumerar todas, pero solo con decir que vamos a evitar los tiempos de carga y grabación en el Spectrum, y que los resultados van a ser inmediatos sobre el emulador, creo que pocas justificaciones más necesitamos. Las ventajas de programar utilizando este sistema son evidentes y no las vamos a enumerar todas, pero solo con decir que vamos a evitar los tiempos de carga y grabación en el Spectrum, y que los resultados van a ser inmediatos sobre el emulador, creo que pocas justificaciones más necesitamos.
  
-Una vez descargado el programa de su web, lo descomprimimos en una carpeta y queda listo para su uso. En el archivo [bas2tap.doc] que acompaña a la distribución encontramos las instrucciones y otros datos útiles, aquí vamos a explicar someramente lo que nos hace falta saber.+Una vez descargado el programa de su web, lo descomprimimos en una carpeta y queda listo para su uso. En el archivo [**bas2tap.doc**] que acompaña a la distribución encontramos las instrucciones y otros datos útiles, aquí vamos a explicar someramente lo que nos hace falta saber.
  
-    * Vamos a comenzar a programar: abrimos nuestro editor de textos favorito, vim para Linux, Bloc de Notas en Windows, etc. e introducimos el PROGRAMA 1 que utilizamos antes, por ejemplo. Los comandos BASIC del Spectrum debemos teclearlos en mayúsculas, o al ejecutar el BAS2TAP nos generará una serie de errores, que podemos evitar pasando un parámetro que luego comentaremos, a la hora de ejecutarlo. También podemos dejar líneas en blanco entra las escritas de código para clarificar el mismo, aunque esto genera una serie de alertas (warnings) a la hora de crear el archivo .TAP, no tiene mayor importancia.+    * Vamos a comenzar a programar: abrimos nuestro editor de textos favorito, vim para Linux, Bloc de Notas en Windows, etc. e introducimos el PROGRAMA 1 que utilizamos antes, por ejemplo. Los comandos BASIC del Spectrum debemos teclearlos en mayúsculas, o al ejecutar el BAS2TAP nos generará una serie de errores, que podemos evitar pasando un parámetro que luego comentaremos, a la hora de ejecutarlo. También podemos dejar líneas en blanco entra las escritas de código para clarificar el mismo, aunque esto genera una serie de alertas (warnings) a la hora de crear el archivo .TAP, no tiene mayor importancia.\\ \\ Una vez tengamos el programa BASIC preparado salvamos el archivo .txt con el nombre que deseemos, a ser posible en formato 8+3, por ejemplo: "programa.txt" y lo alojamos en la carpeta donde tengamos descomprimido el BAS2TAP.
  
-      Una vez tengamos el programa BASIC preparado salvamos el archivo .txt con el nombre que deseemosa ser posible en formato 8+3, por ejemplo"programa.txt" y lo alojamos en la carpeta donde tengamos descomprimido el BAS2TAP.+    * El siguiente paso es generar el archivo .TAP que cargaremos en el emulador. BAS2TAP hay que utilizarlo desde consola de texto, tanto si estamos en Linux como en Windows, ya que para este último S.O. no hay versión y corre bajo MS-DOS.\\ \\ Tecleamos [**bas2tap programa.txt**] y, siempre que no tengamos errores de sintaxis en el listado, nos creará un archivo programa.tap en pocos segundos.\\ \\ Otra opción que le podemos poner es [**-c**] con lo que ignorará si tenemos los comandos escritos en mayúsculas o minúsculas. [**bas2tap -c programa.txt**].\\ \\ También podemos poner el nombre del archivo tapdiferente al txt de entrada[**bas2tap programa.txt minero.tap**], con lo cual generará un archivo minero.tap.\\ \\ En caso de que dejemos líneas en blanco entre el código BASIC para poder verlo con más claridad, nos generará alertas al crear el tap, podemos decirle al programa que no nos las muestre con [**bas2tap -w programa.txt**].
  
-    El siguiente paso es generar el archivo .TAP que cargaremos en el emulador. BAS2TAP hay que utilizarlo desde consola de textotanto si estamos en Linux como en Windows, ya que para este último S.O. no hay versión y corre bajo MS-DOS.+   Y, por último, si queremos que el tap, se autoarranque al cargarlo en el emulador, igual que con la opción LINE del BASIC en el Spectrum: [**bas2tap -aXX programa.txt**] donde XX es la línea por la que queremos que se ejecute el programa.
  
-      Tecleamos [bas2tap programa.txt] y, siempre que no tengamos errores de sintaxis en el listado, nos creará un archivo programa.tap en pocos segundos.+ Por supuesto esta utilidad tiene más opciones que podemos utilizar, y que tenemos descritas en el archivo bas2tap.doc que acompaña a la distribución del mismo. Pero con estos simples pasos aquí reflejados son suficientes para empezar a trabajar con este buen programa de Martijn van der Heide.
  
-      Otra opción que le podemos poner es [-c] con lo que ignorará si tenemos los comandos escritos en mayúsculas o minúsculas. [bas2tap -c programa.txt] +\\ 
- +
-      También podemos poner el nombre del archivo tap, diferente al txt de entrada: [bas2tap programa.txt minero.tap], con lo cual generará un archivo minero.tap. +
- +
-      En caso de que dejemos líneas en blanco entre el código BASIC para poder verlo con más claridad, nos generará alertas al crear el tap, podemos decirle al programa que no nos las muestre con [bas2tap -w programa.txt]. +
- +
-      Y, por último, si queremos que el tap, se autoarranque al cargarlo en el emulador, igual que con la opción LINE del BASIC en el Spectrum: [bas2tap -aXX programa.txt] donde XX es la línea por la que queremos que se ejecute el programa. +
- +
-Por supuesto esta utilidad tiene más opciones que podemos utilizar, y que tenemos descritas en el archivo bas2tap.doc que acompaña a la distribución del mismo. Pero con estos simples pasos aquí reflejados son suficientes para empezar a trabajar con este buen programa de Martijn van der Heide.+
  
-CONCLUSIONES+===== Conclusiones =====
  
 En esta entrega nos hemos limitado a ver unos conceptos básicos que necesitaremos utilizar cada vez que queramos programar, como es el almacenamiento de nuestro código en un soporte permanente, ya que la memoria RAM de nuestro Spectrum se borra en cuanto deja de recibir corriente eléctrica. El mes que viene empezaremos a crear de cero nuestro primer juego, e iremos ampliándolo poco a poco y metiendo opciones y efectos que lo hagan más atractivo. En esta entrega nos hemos limitado a ver unos conceptos básicos que necesitaremos utilizar cada vez que queramos programar, como es el almacenamiento de nuestro código en un soporte permanente, ya que la memoria RAM de nuestro Spectrum se borra en cuanto deja de recibir corriente eléctrica. El mes que viene empezaremos a crear de cero nuestro primer juego, e iremos ampliándolo poco a poco y metiendo opciones y efectos que lo hagan más atractivo.
  • cursos/basic/carga_y_grabacion.1237572878.txt.gz
  • Última modificación: 20-03-2009 18:14
  • por sromero