MSX DIAGNOSTICS - API Reference
Documentación técnica para desarrolladores (Open Source)
FUNCTION_MAIN
Punto de entrada principal del programa después del arranque. Inicializa el motor, el sistema, muestra la bienvenida y lanza el menú principal.
FUNCTION_EXIT
Rutina de salida de emergencia. Limpia pantalla, muestra mensaje de reinicio y ejecuta un reinicio por software (CHKRAM).
FUNCTION_SYSTEM_START
Orquestador de arranque. Ejecuta POST, detecta configuración de memoria, VDP, inicializa teclado y variables de estado.
FUNCTION_SYSTEM_POST
Power On Self Test visual y sonoro. Hace parpadear el LED de CAPS y emite pitidos para confirmar actividad de CPU.
FUNCTION_SYSTEM_RESET_KEYBOARD_MATRIX
Limpia las variables de estado del teclado lógico (SYSKEY_*).
FUNCTION_SYSTEM_SET_KEY_NAMES_TABLE
Detecta la región del MSX (BIOS $002C) y selecciona la tabla de nombres de teclas adecuada.
FUNCTION_SYSTEM_HID_READ
Lee Teclado y Joysticks y unifica la entrada en variables lógicas abstractas.
FUNCTION_SYSTEM_SCREEN0_CHARSET
Carga un set de caracteres personalizado para el modo SCREEN 0 en la VRAM.
FUNCTION_WELCOME
Muestra la pantalla de título/logo, espera temporizador o pulsación de tecla para continuar.
FUNCTION_MEMORY_GET_CONFIG
Función maestra. Llama secuencialmente a la detección de Slots y luego a la detección de RAM.
FUNCTION_MEMORY_GET_SLOT_LAYOUT
Recorre los 4 slots primarios para detectar si están expandidos (lectura $FCC1).
FUNCTION_MEMORY_GET_MEMORY_LAYOUT
Recorre Slots (0-3) y Subslots (0-3) llamando a la detección de RAM para cada combinación.
FUNCION_MEMORY_GET_SLOT_RAM
Busca RAM en el slot actual. Verifica páginas 0-2 (sin mapper) y página 3. Si encuentra 64KB, busca Mapper.
FUNCION_MEMORY_GET_RAM_IN_MAPPER
Detecta Memory Mapper escribiendo en puerto $FC y verificando aislamiento de segmentos.
FUNCTION_MEMORY_COUNTER_ADD_4KB
Suma 4KB a los contadores globales y locales de RAM detectada.
FUNCTION_VDP_INDENTIFY_VDP_TYPE
Identifica el modelo de VDP (TMS9918, V9938, V9958) y la frecuencia (50/60Hz) mediante manipulación de registros y conteo de ciclos.
SFX_FUNCTION_PLAY_PING
Emite un sonido agudo (Ping) manipulando directamente el PSG.
SFX_FUNCTION_PLAY_PONG
Emite un sonido grave (Pong) manipulando directamente el PSG.
SFX_FUNCTION_UPDATE
Controla el desvanecimiento (fade-out) del sonido actual del canal A.
SFX_FUNCTION_CLOSE
Silencia inmediatamente el canal A del PSG.
FUNCTION_MEMORY_REPORTS_PRINT_RAM_REPORT
Genera y muestra en pantalla el informe detallado de la RAM detectada.
FUNCTION_MEMORY_REPORTS_PRINT_RAM_LAYOUT
Itera sobre las estructuras de datos de memoria para dibujar la parrilla de Slots/Subslots en pantalla.
FUNCTION_SCREEN[0-3]_TEST_MENU
Muestra el menú previo de instrucciones para cada test de vídeo.
FUNCTION_SCREEN[0-3]_TEST_RUN
Ejecuta el test visual correspondiente. Llena la pantalla de caracteres/patrones y permite cambiar colores/bordes.
FUNCTION_SCREEN2_TEST_LOAD_IMAGE
Carga una de las imágenes de fondo RLE predefinidas según el índice proporcionado.
FUNCTION_SCREEN3_TEST_CHANGE_PATTERN
Cambia el patrón de tiles en el modo multicolor (Screen 3).
FUNCTION_SPRITES_TEST_RUN
Bucle principal del test de sprites. Gestiona modos de movimiento y rebote.
FUNCTION_SPRITES_TEST_CREATE
Inicializa 32 sprites en posiciones de rejilla con colores incrementales.
FUNCTION_SPRITES_TEST_MOVE
Calcula la física de movimiento y rebote para los 32 sprites.
FUNCTION_KEYBOARD_TEST_RUN
Muestra la matriz de teclas y resalta las pulsaciones en tiempo real.
FUNCTION_JOYSTICK_TEST_RUN
Muestra el estado de los dos puertos de joystick usando sprites.
FUNCTION_PSG_TEST_RUN
Interfaz para manipular canales, frecuencia, volumen y ruido del PSG manualmente.
FUNCTION_MIXED_MODE_TEST_RUN
Configura la VDP para mostrar el "Modo Mixto" (no documentado), que mezcla atributos de diferentes modos gráficos.
FUNCTION_MONITOR_COLOR_TEST_RUN
Muestra colores sólidos (RGB/BW) y un ciclo de colores automático para calibrar monitores.
FUNCTION_SYSTEM_INFO
Pantalla de resumen del sistema: Modelo MSX, VRAM, VDP, Slots y Reloj RTC (si existe).
NGN_START
Rutina de inicialización global de la librería N'gine.
NGN_WAIT_FOR_START_UP_INTERRUPTS
Pausa la ejecución durante unos segundos al inicio para permitir que el hardware se estabilice.
NGN_SYSTEM_FD9A_PATCH_ON
Instala un hook en $FD9A para filtrar interrupciones que no sean de V-Blank.
NGN_SYSTEM_RANDOM_NUMBER
Generador pseudoaleatorio simple.
NGN_SCREEN_SET_MODE_[0-3]
Configura el VDP en el modo especificado, borra VRAM y establece colores.
UPDATE_SCREEN_VDP
Aplica configuraciones base a los registros 0 y 1 del VDP.
NGN_SPRITE_MODE_[8x8/16x16]
Cambia el tamaño y magnificación global de los sprites en el registro 1 del VDP.
NGN_SPRITE_RESET
Borra todos los sprites de la pantalla y reinicia la Shadow RAM.
NGN_SPRITE_CREATE
Define un sprite en la Shadow RAM.
NGN_SPRITE_UPDATE
Vuelca los atributos de sprites de RAM (NGN_SPRITE_XX) a VRAM.
NGN_SPRITE_POSITION
Mueve un sprite existente.
NGN_SPRITE_COLOR
Cambia el color de un sprite existente.
NGN_BACKGROUND_CREATE
Carga una imagen completa (Tiles+Color+Names) sin comprimir a VRAM.
NGN_BACKGROUND_CREATE_RLE
Carga una imagen completa descomprimiendo RLE al vuelo.
NGN_TEXT_PRINT
Imprime una cadena ASCII terminada en 0.
NGN_TEXT_PRINT_BCD
Imprime un número BCD de 3 bytes (0-99999).
NGN_TEXT_PRINT_INTEGER
Imprime un entero de 16 bits (hex) como decimal.
NGN_TEXT_POSITION
Mueve el cursor de texto (Wrapper de POSIT).
NGN_TEXT_CLS
Borra la pantalla.
NGN_TEXT_COLOR
Establece color de texto y fondo.
NGN_KEYBOARD_READ
Escanea la matriz de teclado completa via PPI. Actualiza array NGN_KEY_x.
NGN_PSG_COMMAND
Escribe un comando en un registro específico del PSG.
NGN_PSG_INIT
Reinicia el PSG a valores por defecto (Silencio).
NGN_PSG_READ_JOY[1-2]
Lee el estado del Joystick conectado al puerto 1 o 2.
NGN_BCD_ADD
Suma dos números BCD de 3 bytes.
NGN_BCD_SUB
Resta dos números BCD de 3 bytes.
NGN_RLE_DECOMPRESS
Descomprime datos RLE desde una dirección origen a un buffer de destino.