cursos:ensamblador:rutinas_rom

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:ensamblador:rutinas_rom [19-01-2024 11:56] – [Resumen de variables del sistema varias de la ROM] sromerocursos:ensamblador:rutinas_rom [21-01-2024 17:32] (actual) – [Resumen de variables del sistema varias de la ROM] sromero
Línea 1127: Línea 1127:
 | $0556 | LD-BYTES | Se utiliza para cargar datos desde cinta. La veremos en un capítulo dedicado a ella. | | $0556 | LD-BYTES | Se utiliza para cargar datos desde cinta. La veremos en un capítulo dedicado a ella. |
 | $0daf | CLS_ALL | Borra la pantalla con el atributo de ATTR_P, abre el canal de la pantalla y resetea las coordenadas del cursor. | | $0daf | CLS_ALL | Borra la pantalla con el atributo de ATTR_P, abre el canal de la pantalla y resetea las coordenadas del cursor. |
 +| $0dfe | SCROLLING | Desplaza la pantalla hacia arriba una línea, pero si afectar a la posición del curso actual. |
 +| $0e9e | LINE_ADDRESS | Si especificamos en A un número de línea (0-23), devuelve en HL la dirección del pixel (0,0) de esa línea en concreto en la VideoRAM (es decir, dónde empieza la línea, su primer carácter, en videomemoria). |
 | $15ef | PRINT_A | Rutina interna que usa rst $10 para imprimir el carácter ASCII en el registro A. | | $15ef | PRINT_A | Rutina interna que usa rst $10 para imprimir el carácter ASCII en el registro A. |
 | $1601 | CHAN-OPEN | Abre el canal de salida indicado en A.\\ 1 = las 2 líneas inferiores de la pantalla. \\ 2 = las 22 líneas de la parte superior | | $1601 | CHAN-OPEN | Abre el canal de salida indicado en A.\\ 1 = las 2 líneas inferiores de la pantalla. \\ 2 = las 22 líneas de la parte superior |
Línea 1134: Línea 1136:
 | $1e99 | UNSTACK-BC | Extrae de la parte superior de la pila de la calculadora BASIC el número presente y lo asigna a BC en el rango 0-65535. | | $1e99 | UNSTACK-BC | Extrae de la parte superior de la pila de la calculadora BASIC el número presente y lo asigna a BC en el rango 0-65535. |
 | $1f3d | PAUSE_1 | Pausar BC/50 segundos o hasta que se pulse una tecla.\\ Si se pulsó una tecla, nos encontraremos a 1 el bit 5 de la variable del sistema FLAGS ($5c3b). | | $1f3d | PAUSE_1 | Pausar BC/50 segundos o hasta que se pulse una tecla.\\ Si se pulsó una tecla, nos encontraremos a 1 el bit 5 de la variable del sistema FLAGS ($5c3b). |
 +| $1f54 | BREAK_KEY | Chequear si la tecla BREAK está pulsada. La rutina volverá con el Carry Flag a 0 si la tecla BREAK está siendo pulsada, y 0 si no lo está siendo (Esto comprueba si CAPS SHIFT y SPACE están siendo pulsadas simultáneamente). |
 | $2032 | PRINTSTACK | Extrae el valor de la parte superior de la pila de la calculadora y lo imprime en el canal actual. | | $2032 | PRINTSTACK | Extrae el valor de la parte superior de la pila de la calculadora y lo imprime en el canal actual. |
 | $203c | PR_STRING | Imprimir en pantalla la cadena apuntada por DE de BC caracteres de longitud. | | $203c | PR_STRING | Imprimir en pantalla la cadena apuntada por DE de BC caracteres de longitud. |
Línea 1141: Línea 1144:
 | $22b1 | PIXEL_ADDR2 | Punto interno de PIXEL_ADDR pero sin limitación para Y y con origen en la parte superior izquierda. | | $22b1 | PIXEL_ADDR2 | Punto interno de PIXEL_ADDR pero sin limitación para Y y con origen en la parte superior izquierda. |
 | $2cb3 | STACK-DE | Introduce en la parte superior de la pila de BASIC el valor del registro DE ("last value" = DE). | | $2cb3 | STACK-DE | Introduce en la parte superior de la pila de BASIC el valor del registro DE ("last value" = DE). |
-| $2d28 | STACK-A | Introduce en la parte superior de la pila de BASIC el valor del registro A ("last value" = BC). |+| $2d28 | STACK-A | Introduce en la parte superior de la pila de BASIC el valor del registro A ("last value" = A). |
 | $2d2b | STACK-BC | Introduce en la parte superior de la pila de BASIC el valor del registro BC ("last value" = BC). | | $2d2b | STACK-BC | Introduce en la parte superior de la pila de BASIC el valor del registro BC ("last value" = BC). |
 | $2da2 | FP_TO_BC | Extrae el valor de la parte superior de la pila ('last-value') en BC.\\ Si el valor es demasiado grande, se activa el Carry Flag.\\ Si es negativo, se activa el Zero Flag.\\ La parte baja del resultado se copia además en el registro A. | | $2da2 | FP_TO_BC | Extrae el valor de la parte superior de la pila ('last-value') en BC.\\ Si el valor es demasiado grande, se activa el Carry Flag.\\ Si es negativo, se activa el Zero Flag.\\ La parte baja del resultado se copia además en el registro A. |
 | $2de3 | PRINT_FP | Imprime por pantalla el valor (0-65535) presente la pila de la calculadora de BASIC ("last value"). | | $2de3 | PRINT_FP | Imprime por pantalla el valor (0-65535) presente la pila de la calculadora de BASIC ("last value"). |
 | $30a9 | HL=HL*DE | Calcula HL=HL*DE. Si el resultado excede 65535, el cálculo no será correcto. | | $30a9 | HL=HL*DE | Calcula HL=HL*DE. Si el resultado excede 65535, el cálculo no será correcto. |
-| $03b5 | BEEPER | Reproduce una nota de sonido de longitud DE (f*t) y pitch HL (T/4).\\ Ejemplo: DE=$0105 (INT(261.3*1)) y HL = $066a (6689/4-30.125). |+| $03b5 | BEEPER | Reproduce una nota de sonido de longitud DE (f*t) y pitch HL.\\ DE = duración_en_segundos * frecuencia\\ HL = (437500 frecuencia- 30.125\\ \\ Ejemplo: Nota "DO" (f=261.6durante 2 segundos => DE = $020b y HL = $066a.\\ \\ Consultar Anexo al final del libro sobre equivalencia de\\ notas, frecuencias y duraciones. |
 | $25f8 | S_RND | Rutina RND llamada por BASIC. | | $25f8 | S_RND | Rutina RND llamada por BASIC. |
- 
 \\  \\ 
 +
 +
 ===== Resumen de variables del sistema varias de la ROM ===== ===== Resumen de variables del sistema varias de la ROM =====
  
Línea 1157: Línea 1161:
 | $5c3b | FLAGS | Utilizada por BASIC para varias tareas. A nosotros nos puede interesar el bit 5:\\ bit 5- A 1 si una nueva tecla ha sido pulsada. | | $5c3b | FLAGS | Utilizada por BASIC para varias tareas. A nosotros nos puede interesar el bit 5:\\ bit 5- A 1 si una nueva tecla ha sido pulsada. |
 | $5c7d | COORDS (2 bytes) | Las coordenadas X,Y del último punto dibujado ($5c7d = X y 5C7E = Y) | | $5c7d | COORDS (2 bytes) | Las coordenadas X,Y del último punto dibujado ($5c7d = X y 5C7E = Y) |
-| $5c8d | ATTR_P | Almacena un byte de atributos (FLASH*128 + BRIGHT*64 + (PAPER*8) + INK) para CLS.\\ Su valor por defecto es $38 (tinta negra sobre blanco). |+| $5c8d | ATTR_P | Es el valor de "**Atributos Permanentes**" que se establece con las llamadas globales tipo ''INK X'' o ''PAPER X'' en BASIC.\\ Almacena un byte de atributos (FLASH*128 + BRIGHT*64 + (PAPER*8) + INK) para CLS.\\ Su valor por defecto es $38 (tinta negra sobre blanco). | 
 +| $5c8f | ATTR_T | Es el valor de los "**Atributos Temporales**" que se establecen cuando indicamos un INK/PAPER en una sentencia (por ejemplo en un ''PRINT''. Se aplican en la sentencia en curso, y después se vuelve a usar los "Permanentes". |
 | $5c05 | KSTATE5 | Contiene el valor 5 si se está pulsando alguna tecla en este momento, y distinto de 5 si no. | | $5c05 | KSTATE5 | Contiene el valor 5 si se está pulsando alguna tecla en este momento, y distinto de 5 si no. |
 | $5c36 | CHARS | Dirección (-256) de la fuente de letras a utilizar. Por defecto vale $3c00 (ubicación de la fuente estándar en la ROM). | | $5c36 | CHARS | Dirección (-256) de la fuente de letras a utilizar. Por defecto vale $3c00 (ubicación de la fuente estándar en la ROM). |
  • cursos/ensamblador/rutinas_rom.1705665393.txt.gz
  • Última modificación: 19-01-2024 11:56
  • por sromero