Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
cursos:ensamblador:rutinas_rom [19-01-2024 17:04] – [Resumen de rutinas varias de la ROM] sromero | cursos: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 1142: | 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 (' | | $2da2 | FP_TO_BC | Extrae el valor de la parte superior de la pila (' | ||
| $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.\\ DE = duración_en_segundos * frecuencia\\ HL = (437500 / frecuencia) - 30.125\\ \\ Ejemplo: Nota " | + | | $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 " |
| $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 " |
+ | | $5c8f | ATTR_T | Es el valor de los " | ||
| $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). | |