Resaltado de sintaxis Z80
El lexer personalizado usado para bloques z80 en este sitio esta inspirado en la gramatica de:
- Proyecto: Imanolea/z80asm-vscode
- Archivo de referencia:
syntaxes/z80-asm.tmLanguage - Licencia: MIT
- Copyright: (c) 2016 Imanol Barriuso
La implementacion adaptada para Rouge/Jekyll esta en:
cpc-asm-notes/_plugins/z80_lexer.rb
Bloques de prueba del lexer
Estos ejemplos sirven para validar y demostrar cómo el resaltado identifica comentarios, etiquetas, directivas, registros, constantes y modos de direccionamiento.
1. Programa corto con firmware y flujo basico
; Demo basica: imprime un texto y termina
org $1200
start:
ld hl, mensaje
loop:
ld a, (hl)
or a
jr z, done
call $BB5A
inc hl
jr loop
done:
ret
mensaje:
db "HOLA Z80", 0
2. Constantes, directivas y cadenas
BASE_PORT equ #F4
MASK_BIT equ %00000100
table:
defb 10, 20, 30
defw $4000, 0x7FFF
defm "CPC", 'A'
defs 4
setup:
ld a, 3
out (BASE_PORT), a
and MASK_BIT
ret nz
ret
3. Instrucciones CB/ED, indice IX/IY y condiciones
ld ix, $8000
ld iy, $8100
ld b, 8
scan:
bit 0, (ix)
jr nz, has_data
inc ix
djnz scan
ret
has_data:
set 7, (iy)
res 1, (iy)
rlc a
sbc a, a
ret c
ret