cursos:z88dk:contenidos

Diferencias

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

Enlace a la vista de comparación

Próxima revisión
Revisión previa
Última revisiónAmbos lados, revisión siguiente
cursos:z88dk:contenidos [09-08-2007 11:26] – creado sromerocursos:z88dk:contenidos [24-02-2020 19:16] falvarez
Línea 1: Línea 1:
 +Publicado originalmente en [[https://magazinezx.speccy.org/06/z88dk.html|MagazineZX número 6]]
 +
 +====== Introducción a Z88DK (II) ======
  
 ===== Contenidos de Z88DK ===== ===== Contenidos de Z88DK =====
  
-No, en esta ocasión no va mos a hablar de qué contiene cada directorio de la instalación de z88dk, o cuál es la función de cada uno de los ejecutables. Vamos a intentar enumerar qué es lo que nos proporciona z88dk a nivel de código, es decir, a nivel de librería. Esto es necesario porque la documentación es bastante pobre en lo que respecta a la descripción de las funciones que podemos utilizar, o de los archivos .h y su contenido. De hecho, este punto no se explica en absoluto, por lo que en un primer momento somos incapaces de determinar las posibilidades que se nos ofrecen.+No, en esta ocasión no vamos a hablar de qué contiene cada directorio de la instalación de z88dk, o cuál es la función de cada uno de los ejecutables. Vamos a intentar enumerar qué es lo que nos proporciona z88dk a nivel de código, es decir, a nivel de librería. Esto es necesario porque la documentación es bastante pobre en lo que respecta a la descripción de las funciones que podemos utilizar, o de los archivos .h y su contenido. De hecho, este punto no se explica en absoluto, por lo que en un primer momento somos incapaces de determinar las posibilidades que se nos ofrecen.
  
  Sin duda alguna, el lugar donde más información encontraremos sobre las funciones disponibles es en los archivos de cabecera (archivos .h). Ya se comentó en la anterior entrega que no era la intención de esta serie de artículos el explicar los entresijos del lenguaje C, pues hay en la red tutoriales muy buenos sobre el tema, y además no acabaríamos nunca. Baste con decir que los archivos de cabecera nos proporcionan los prototipos de las funciones (nombre y parámetros) y la definición de las variables que la librería pone a nuestra disposición. Deberemos incluir en nuestro código los archivos de cabecera que contengan las funciones que queramos utilizar para que durante el proceso de compilación se enlace con la parte de la librería adecuada.  Sin duda alguna, el lugar donde más información encontraremos sobre las funciones disponibles es en los archivos de cabecera (archivos .h). Ya se comentó en la anterior entrega que no era la intención de esta serie de artículos el explicar los entresijos del lenguaje C, pues hay en la red tutoriales muy buenos sobre el tema, y además no acabaríamos nunca. Baste con decir que los archivos de cabecera nos proporcionan los prototipos de las funciones (nombre y parámetros) y la definición de las variables que la librería pone a nuestra disposición. Deberemos incluir en nuestro código los archivos de cabecera que contengan las funciones que queramos utilizar para que durante el proceso de compilación se enlace con la parte de la librería adecuada.
Línea 21: Línea 24:
     * **string.h**: equivalente al string.h del lenguaje C estándar. Contiene métodos para crear cadenas, concatenarlas, estimar su longitud, compararlas, obtener posiciones de caracteres dentro de cadenas, obtener tokens, etc. Es curioso resaltar que también se incluye el archivo strings.h, el cual tan solo contiene un #include . El autor del presente texto supone que la causa será mantener la compatibilidad con programas realizados con versiones anteriores de la librería.     * **string.h**: equivalente al string.h del lenguaje C estándar. Contiene métodos para crear cadenas, concatenarlas, estimar su longitud, compararlas, obtener posiciones de caracteres dentro de cadenas, obtener tokens, etc. Es curioso resaltar que también se incluye el archivo strings.h, el cual tan solo contiene un #include . El autor del presente texto supone que la causa será mantener la compatibilidad con programas realizados con versiones anteriores de la librería.
  
-      Uno de los sencillos ejemplos que acompañan a z88dk. El texto en acción. +{{ cursos:z88dk:z88dk2_1.png |Uno de los sencillos ejemplos que acompañan a z88dk. El texto en acción.}} 
-      Uno de los sencillos ejemplos que acompañan a z88dk. El texto en acción.+
  
     * **ctype.h**: funciones para el manejo de carácteres. Permiten comprobar si un carácter es un ASCII, es un carácter de control, es numérico, es alfanumérico, es imprimible, está en mayúsculas o minúsculas, etc. También se permite pasar un carácter a mayúsculas o minúsculas.     * **ctype.h**: funciones para el manejo de carácteres. Permiten comprobar si un carácter es un ASCII, es un carácter de control, es numérico, es alfanumérico, es imprimible, está en mayúsculas o minúsculas, etc. También se permite pasar un carácter a mayúsculas o minúsculas.
Línea 31: Línea 34:
     * **graphics.h**: rutinas gráficas básicas; dibujo de líneas, círculos, cajas, puntos, rellenar figuras, borrar puntos, borrado de la pantalla (o un área de la misma). Se permite tambien el empleo de XOR con puntos. El XOR es una operación lógica que devuelve 1 si los dos operandos son distintos. Se suele utilizar en gráficos para realizar mascaras, o para dibujar y borrar sprites. Al final del fichero hay unas funciones no utilizables por el Spectrum, como por ejemplo una para crear ventanas. Como se puede observar, la mayoría de las rutinas gráficas de graphics.h se refieren al dibujo de primitivas, lo cual se puede realizar sin ningún problema en BASIC, por lo que en un principio parece bastante limitado.     * **graphics.h**: rutinas gráficas básicas; dibujo de líneas, círculos, cajas, puntos, rellenar figuras, borrar puntos, borrado de la pantalla (o un área de la misma). Se permite tambien el empleo de XOR con puntos. El XOR es una operación lógica que devuelve 1 si los dos operandos son distintos. Se suele utilizar en gráficos para realizar mascaras, o para dibujar y borrar sprites. Al final del fichero hay unas funciones no utilizables por el Spectrum, como por ejemplo una para crear ventanas. Como se puede observar, la mayoría de las rutinas gráficas de graphics.h se refieren al dibujo de primitivas, lo cual se puede realizar sin ningún problema en BASIC, por lo que en un principio parece bastante limitado.
  
-      Desde sencillas rutinas gráficas que podríamos crear con el BASIC gracias a graphics.h... +{{ cursos:z88dk:z88dk2_3.png |Desde sencillas rutinas gráficas que podríamos crear con el BASIC gracias a graphics.h...}} 
-      Desde sencillas rutinas gráficas que podríamos crear con el BASIC gracias a graphics.h...+
  
     * **sound.h**: rutinas para sonido de 1 bit, es decir, nada de polifonías. Esto, una vez más (como en el caso de graphics.h) es bastante limitado. Se puede producir un sonido durante un tiempo determinado, ya sea indicando periodo o frecuencia. También se pueden hacer sonar notas sucesivas mediante una función que acepta como parámetro una cadena, que represente la melodía.     * **sound.h**: rutinas para sonido de 1 bit, es decir, nada de polifonías. Esto, una vez más (como en el caso de graphics.h) es bastante limitado. Se puede producir un sonido durante un tiempo determinado, ya sea indicando periodo o frecuencia. También se pueden hacer sonar notas sucesivas mediante una función que acepta como parámetro una cadena, que represente la melodía.
     * **games.h**: funciones interesantes, si lo que deseamos con z88dk es crear juegos. Contiene funciones para el manejo de sprites (obtener un sprite de la pantalla - función no terminada, dibujar un sprite de tamaño variable en la pantalla, funciones para joysticks, y definición de constantes referidas a operaciones lógicas con los sprites). Las variables que representan a los sprites se almacenan como punteros a void, es decir, como punteros a una dirección de memoria en los que no se especifica el formato. Ya veremos cual es dicho formato en próximos artículos. Lo que queda claro es que quizás el apoyo para la realización de juegos es algo pobre. No hay nada referente a scroll, no hay nada referente a colisiones, etc.     * **games.h**: funciones interesantes, si lo que deseamos con z88dk es crear juegos. Contiene funciones para el manejo de sprites (obtener un sprite de la pantalla - función no terminada, dibujar un sprite de tamaño variable en la pantalla, funciones para joysticks, y definición de constantes referidas a operaciones lógicas con los sprites). Las variables que representan a los sprites se almacenan como punteros a void, es decir, como punteros a una dirección de memoria en los que no se especifica el formato. Ya veremos cual es dicho formato en próximos artículos. Lo que queda claro es que quizás el apoyo para la realización de juegos es algo pobre. No hay nada referente a scroll, no hay nada referente a colisiones, etc.
  
-      ... hasta cosas más complicadas, e incluso sprites, gracias a games.h. +{{ cursos:z88dk:z88dk2_2.png |... hasta cosas más complicadas, e incluso sprites, gracias a games.h.}} 
-      ... hasta cosas más complicadas, e incluso sprites, gracias a games.h.+
  
     * **rs232.h**: para el manejo del interfaz serie. El spectrum dispone de uno de estos. Aplicaciones de esto las podemos encontrar en internet, como la conexión mediante RS232 entre un Sinclair QL y un Spectrum o el terminal Spectrum que en su día intento llevar a cabo Santiago Romero.     * **rs232.h**: para el manejo del interfaz serie. El spectrum dispone de uno de estos. Aplicaciones de esto las podemos encontrar en internet, como la conexión mediante RS232 entre un Sinclair QL y un Spectrum o el terminal Spectrum que en su día intento llevar a cabo Santiago Romero.
  • cursos/z88dk/contenidos.txt
  • Última modificación: 24-02-2020 19:23
  • por falvarez