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