Если компилер жив и если стиль работы над ним таков же - ошибки будут, куда деваться.

Скорость не страдает! Размер выигрывает! 185 байт, кто меньше?

Код:
_main_start::
_main:
;ASCII.c:20: ASCII_n = 96;
	ld	hl,#_ASCII_n + 0
	ld	(hl), #0x60
;ASCII.c:21: do {
00101$:
;ASCII.c:22: Console_WriteCh((CHAR)((96 - ASCII_n) + 32));
	ld	hl,#_ASCII_n
	ld	a,#0x80
	sub	a, (hl)
	push	af
	inc	sp
	call	_Console_WriteCh_ROM
	inc	sp
;ASCII.c:23: ASCII_n -= 1;
	ld	iy,#_ASCII_n
	dec	0 (iy)
;ASCII.c:24: } while (!(ASCII_n == 0));
	ld	a,(#_ASCII_n + 0)
	or	a, a
	jr	NZ,00101$
;ASCII.c:25: __FINI;
	ret
_main_end::
( что менял? добавил опцию --no-std-crt0, убрал в конце return 0 в пользу return; --oldralloc убрал тоже - не всегда помогает )

Итого: бинарь ASCII.bin = 47 байт. И это, заметьте, для тех, кто может не знать асма. Воистину: ZXDev - кладезь неисчерпаемых возможностей.