¡Buuuueno! Siguiendo con las Hovercards del firmware y tras la sugerencia de @Devlin, ¡me he puesto manos a la obra y he implementado hovercards similares para las palabras clave de BASIC!
Debido a su similitud con el lenguaje natural, he tenido que limitarlas solo a los bloques de código:
10 MODE 1: BORDER 0: CLS
20 INK 0, 0: INK 1, 26: INK 2, 6
30 ENV 1, 5, 1, 5: SOUND 1, 239, 50, 12, 1
40 ORIGIN 320, 200: DEG
50 FOR a = 0 TO 345 STEP 15
60 CALL &BD19: REM Sync to vertical flyback
70 DRAWR 100 * COS(a), 80 * SIN(a), 1
80 MOVER -100 * COS(a), -80 * SIN(a)
90 NEXT a
100 LOCATE 1, 24: PRINT "Press any key to reset palette...";
110 CALL &BB18: REM Wait for keypress
120 CALL &BC02: REM Reset inks to defaults
¡Ta-chán!
Sin embargo, para que esto funcionara, también tuve que asegurarme de que solo actúe en los bloques de código BASIC. Y aunque he intentado que el sistema del foro identifique automáticamente el código BASIC en texto preformateado, esto no siempre funciona (tendré que arreglarlo en algún momento). Así que asegúrate de elegir BASIC al introducir un programa en este lenguaje:
Y eso es todo.
¡Cualquier comentario es más que bienvenido!
PD: Esto ha sido mucho más fácil de hacer de lo que pensaba en un principio, ya que el trabajo con el analizador del firmware y los bloques de código BASIC ya estaba hecho. Dicho esto, el mayor obstáculo fue extraer los comandos de BASIC de la propia wiki, debido a la protección antibots ![]()
PD2: Fuentes utilizadas para elaborar el resumen de BASIC:
- Locomotive BASIC Reference Manual: (Utilizado para la sintaxis exacta de las sentencias, corchetes de parámetros y diferencias entre versiones (BASIC 1.0 vs. 1.1).
- AMSDOS Firmware & Reference Manual (Soft 158): Utilizado para los 13 comandos nativos de disco de extensión del sistema residente (|), cambio de unidad y parámetros de sintaxis.
- CPCWiki Locomotive BASIC Category: documentación y tablas de tokens de ROM utilizadas para verificar comandos en casos límite (como
COPYCHR$yWINDOW SWAP) e interacciones de registros de hardware.
…todo se metió en Gemini, que generó el JSON necesario para el analizador.
