013:programas-microhobby

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
013:programas-microhobby [d/m/Y H:i] – [Editext (I)] miguel013:programas-microhobby [d/m/Y H:i] (actual) – [Editext (I)] miguel
Línea 8: Línea 8:
  
 -- //Jesús Alonso Rodríguez// -- //Jesús Alonso Rodríguez//
 +
 +Spectrum 48 K
 +
 +  * [[http://www.worldofspectrum.org/infoseekid.cgi?id=0016462|Ficha en WOS.]]
 +  * [[http://kyenter.speccy.org/principl.php?accion=listar&revista=13|Ficha en K y Enter.]]
  
 //Una de las aplicaciones más interesantes de los ordenadores domésticos es el tratamiento de textos; y si hay un ordenador especialmente poco idóneo para esta aplicación, es sin duda el Spectrum; el teclado es lento, trabaja con sólo 32 columnas, y por si fuera poco, el BASIC interpretado es un lenguaje demasiado lento para las tareas que ha de llevar a cabo un editor de textos.// //Una de las aplicaciones más interesantes de los ordenadores domésticos es el tratamiento de textos; y si hay un ordenador especialmente poco idóneo para esta aplicación, es sin duda el Spectrum; el teclado es lento, trabaja con sólo 32 columnas, y por si fuera poco, el BASIC interpretado es un lenguaje demasiado lento para las tareas que ha de llevar a cabo un editor de textos.//
Línea 14: Línea 19:
  
 === Composición del programa === === Composición del programa ===
- 
-{{ :013:editext_03.jpg?250|}} 
  
 El programa tiene dos partes fundamentales; la primera es un editor de página en curso o página cero, que incorpora una serie de facilidades tales como tabulación, párrafo adentrado, borrado de caracteres, ajuste automático de línea, caracteres españoles, acentuado de vocales, etc. El programa tiene dos partes fundamentales; la primera es un editor de página en curso o página cero, que incorpora una serie de facilidades tales como tabulación, párrafo adentrado, borrado de caracteres, ajuste automático de línea, caracteres españoles, acentuado de vocales, etc.
  
 La segunda parte del programa la componen una serie de rutinas que permiten almacenar en memoria hasta 21 páginas de texto, leer las páginas almacenadas, pasarlas a impresora, o almacenarlas en cintas de cassette. Para todo esto se utilizan cinco rutinas en código máquina; la primera no es preciso comentarla ya que es ampliamente conocida por todos los usuarios del Spectrum; de las restantes se acompaña el listado assembler con un gran número de comentarios que permitirán al lector entender su funcionamiento. La segunda parte del programa la componen una serie de rutinas que permiten almacenar en memoria hasta 21 páginas de texto, leer las páginas almacenadas, pasarlas a impresora, o almacenarlas en cintas de cassette. Para todo esto se utilizan cinco rutinas en código máquina; la primera no es preciso comentarla ya que es ampliamente conocida por todos los usuarios del Spectrum; de las restantes se acompaña el listado assembler con un gran número de comentarios que permitirán al lector entender su funcionamiento.
 +
 +{{ :013:editext_03.jpg?250|}}
  
 El manejo del Editor no es complicado, después de la «carátula» aparece una página de instrucciones que recuerda los distintos comandos del editor de página en curso, aunque es más sencillo colocar sobre el teclado una plantilla como la que se adjunta. Las instrucciones están escritas sobre la página cero, por lo que se borran al utilizar el editor; no obstante, si desea guardarlas, siempre puede transferir la página en curso a la página 21 utilizando la opción 2 (observe la velocidad con que realiza la transferencia, 20 milisegundos); por lo demás, programa tiene la buena costumbre de indicar lo que va haciendo y pedir los datos que necesite. El manejo del Editor no es complicado, después de la «carátula» aparece una página de instrucciones que recuerda los distintos comandos del editor de página en curso, aunque es más sencillo colocar sobre el teclado una plantilla como la que se adjunta. Las instrucciones están escritas sobre la página cero, por lo que se borran al utilizar el editor; no obstante, si desea guardarlas, siempre puede transferir la página en curso a la página 21 utilizando la opción 2 (observe la velocidad con que realiza la transferencia, 20 milisegundos); por lo demás, programa tiene la buena costumbre de indicar lo que va haciendo y pedir los datos que necesite.
Línea 26: Línea 31:
  
 Al situarse el teclado en modo extendido aparece la palabra EXT en el ángulo inferior derecho de la pantalla; en este modo puede usarse el fabulador, el párrafo adentrado, el final de página, y las vocales acentuadas. Al situarse el teclado en modo extendido aparece la palabra EXT en el ángulo inferior derecho de la pantalla; en este modo puede usarse el fabulador, el párrafo adentrado, el final de página, y las vocales acentuadas.
 +
 +{{ :013:editext_02.jpg?250|Mapa de memoria del EDITEXT.}}
  
 === Manejo del tabulador === === Manejo del tabulador ===
Línea 41: Línea 48:
 Con el fin de aprovechar al máximo la memoria hemos omitido las sentencias REM, por lo que se adjunta un mapa de las distintas rutinas sobre el programa en BASIC, así como un mapa total de distribución de la memoria. Con el fin de aprovechar al máximo la memoria hemos omitido las sentencias REM, por lo que se adjunta un mapa de las distintas rutinas sobre el programa en BASIC, así como un mapa total de distribución de la memoria.
  
-RUTINA PARA IMPRIMIR LA PAGINA CERO EN PANTALLA +==== Campos de energía ==== 
-NOMBRE: C.M. (1.a parte). LONGITUD: 90 Bytes. + 
-ENTRADASNinguna. DIRECCION DE ARRANQUE32595 d+{{ :013:camposdeenergia.jpg|}} 
-SALIDAS: Texto de Pág. cero DIRECCION DE INICIO: 32589 d. + 
-a pantalla. TIEMPO DE EJECUCION: 1 seg. Código +--- //Francisco Lorca Salas (Paul Stanley)// 
-Direcc. Máquina Listado Assembler +
-32589 62/13 010 LB7 LD A,0D ;Carga Código ENTER +
-32591 215 020 RST10 ;Haz nueva línea +
-32592 35 030 INC HL ¡Incrementa puntero +
-32593 24,8 040 JR LB1 ¡Salta a LB1 32595 62,2 050 LD A,2 ¡Abre canal 32597 205,1,22 060 CALL1601 ¡número 2 32600 33,194,133 070 LD HL.85C2 ¡Inicializa puntero 32603 62,194 080 LB1 LD A,194 ¡Direcciona 32605 50,54,92 090 LD (5C36),A ¡primer +
-32608 62,126 100 LD A,126 ¡juego de +
-32610 50,55,92 110 LD (5C37),A ¡caracteres +
-32613 126 120 LD A,(HL) ¡Carga carácter +
-32614 254,255 130 CP FF ¡Si es 255 32616 40,60 140 JR Z,LB6 ¡salta a LB6 +
-32618 126 150 LD A,(HL) ¡Carga carácter +
-32619 254,13 160 CP 0D ¡Si es 13 32621 40,222 170 JR Z,LB7 ¡salta a LB7 +
-32623 126 180 LD A,(HL) ¡Carga carácter +
-32624 246,0 190 OR 0 ¡Si es cero 32626 40,42 200 JR Z,LB4 ¡salta a LB4 +
-32628 215 210 LB2 RST 10 ¡Imprime carácter +
-32629 62,8 220 LD A,8 ¡Retrocede +
-32631 215 230 RST 10 ¡cursor +
-32632 35 240 INC HL ¡Incrementa puntero +
-32633 62,129 250 LD A,129 ¡Direcciona segundo 32635 50,55,92 260 LD (5C37) ¡juego de caracteres +
-32638 126 270 LD A,(HL) ¡Carga carácter +
-32639 254,255 280 CP FF ¡Si es 255 32641 40,35 290 JR Z,LB6 ¡salta a LB6 +
-32643 126 300 LD A,(HL) ¡Carga carácter +
-32644 254,13 310 CP 0D ¡Si es 13 32646 40,197 320 JR Z,LB7 ¡salta a LB7 +
-32648 126 330 LD A,(HL) ¡Carga carácter +
-32649 246,0 340 OR 0 ¡Si es cero 32651 40,21 350 JR Z,LB5 ¡salta a LB5 +
-32653 215 360 LB3 RST 10 ¡Imprime carácter +
-32654 35 370 INC HL ¡Incrementa puntero +
-32655 229 380 PUSH HL ¡Guarda puntero +
-32656 33,66,139 390 LD HL.8B42 ¡Carga tope puntero +
-32659 193 400 POP BC ¡Carga puntero +
-32660 55 410 SCF ¡Acarreo a uno +
-32661 63 420 CCF ¡Acarrero a cero +
-32662 237,66 430 SBS HL,BC ¡Si es fin de pág. 32664 40,12 440 JR Z,LB6 ¡salta a LB6 +
-32666 197 450 PUSH BC ¡Restituye +
-32667 225 460 POP HL ¡puntero +
-32668 24,189 470 JR LB1 ¡Salta a LB1 32670 62,32 480 LB4 LD A,20 ¡Carga espacio 32672 24,210 490 JR LB2 ¡Salta a LB2 32674 62,32 500 LB5 LD A,20 ¡Carga espacio 32676 24,231 510 JR LB3 ¡Salta a LB3 32678 201 520 LB6 RET ¡Retorna +
-RUTINA PARA TRANSFERIR LA PAGINA CERO A CUALQUIER PAGINA DE ALMACENAMIENTO +
-NOMBRE: C.M. (2.a parte) +
-ENTRADAS: En las direcciones 32680 y 32681 se introduce la dirección de la página de destino (cuando se carga, estos valores quedan inicializados para tomar como destino la página uno). SALIDAS: La página cero es transferida a la página de destino. LONGITUD: 12 Bytes DIRECCION DE ARRANQUE: 32679 DIRECCION DE INICIO: 32679 TIEMPO DE EJECUCION: 20 miliseg. Código +
-Direcc. Máquina Listado Assembler +
-32679 17,66,139 010 LD DE,8B42 ¡Carga destino 32682 33,194,133 020 LD HL.85C2 ¡Carga origen 32685 1,128,5 030 LD BC,0580 ¡Carga longitud 32688 237,176 040 LDIR ¡Transfiere incrementa +
-y repite +
-32690 201 050 RET ¡Retorna y repite +
-Mapa de memoria del EDITEXT. +
-CAMPOS DE ENERGIA +
-Francisco LORCA SALAS+
 Spectrum 48 K Spectrum 48 K
-Para ubicarnos en una central nuclear no hace falta contar con una gran imaginación aunque, en este proarama que veremos a continuación, se encuentre en cualquier espacio interestelar.+ 
 +  * [[http://www.worldofspectrum.org/infoseekid.cgi?id=0018763|Ficha en WOS.]] 
 +  * [[http://kyenter.speccy.org/principl.php?accion=listar&revista=13|Ficha en K y Enter.]] 
 + 
 +//Para ubicarnos en una central nuclear no hace falta contar con una gran imaginación aunque, en este programa que veremos a continuación, se encuentre en cualquier espacio interestelar.// 
 Así pues, situémonos en esa central nuclear en donde nosotros seremos el guarda. Nuestra misión será la de procurar que los pequeños escapes que se producen, no salgan de las cuatro torres representadas en la pantalla. Si no lo conseguimos, iremos perdiendo un poco de energía con cada escape y, si éste es muy grande, perderemos una vida. Así pues, situémonos en esa central nuclear en donde nosotros seremos el guarda. Nuestra misión será la de procurar que los pequeños escapes que se producen, no salgan de las cuatro torres representadas en la pantalla. Si no lo conseguimos, iremos perdiendo un poco de energía con cada escape y, si éste es muy grande, perderemos una vida.
-A pesar de que disponemos de siete vi- + 
-das, las iremos perdiendo, también, cada vez que pulsemos fuego (0) fuera de los extremos rectangulares de la torre o si, en ese momento, no hay ningún escape en ella.+A pesar de que disponemos de siete vidas, las iremos perdiendo, también, cada vez que pulsemos fuego (0) fuera de los extremos rectangulares de la torre o si, en ese momento, no hay ningún escape en ella. 
 La partida finaliza cuando se pierden las siete vidas de que disponemos. Para jugar, existen tres controles: arriba; «1» ó «7»; abajo: «2» ó «6»; fuego: «0». La partida finaliza cuando se pierden las siete vidas de que disponemos. Para jugar, existen tres controles: arriba; «1» ó «7»; abajo: «2» ó «6»; fuego: «0».
  • 013/programas-microhobby.1292103996.txt.gz
  • Última modificación: d/m/Y H:i
  • por miguel