У меня получилось так:

Исходный Оберон:

Код:
MODULE ASCII; (*$MAIN*)
IMPORT Console;
VAR
	n: SHORTINT;
BEGIN
	FOR n := 32 TO 127 DO Console.WriteCh(CHR(n)) END;
END ASCII.
Скомпилировалось в:

Код:
_main_start::
_main:
	push	ix
;ASCII.c:20: ASCII_n = 32;
	ld	hl,#_ASCII_n + 0
	ld	(hl), #0x20
;ASCII.c:22: ASCII__for__1 = (ASCII__for__1 - ASCII_n) + 1;
	ld	hl,#_ASCII__for__1 + 0
	ld	(hl), #0x60
;ASCII.c:23: do {
00101$:
;ASCII.c:24: Console_WriteCh((CHAR)ASCII_n);
	ld	a,(#_ASCII_n + 0)
	push	af
	inc	sp
	call	_Console_WriteCh_ROM
	inc	sp
;ASCII.c:25: ASCII_n += 1;
	ld	hl, #_ASCII_n+0
	inc	(hl)
;ASCII.c:26: ASCII__for__1 -= 1;
	ld	hl, #_ASCII__for__1+0
	dec	(hl)
;ASCII.c:27: } while (!(ASCII__for__1 == 0));
	ld	a,(#_ASCII__for__1 + 0)
	or	a, a
	jr	NZ,00101$
;ASCII.c:28: __FINI;
	ld	hl,#0x0000
	pop	ix
	ret
_main_end::
Немножечко "догнал" опцией --oldralloc, немножечко можно попробовать реализацией FOR от Saferoll (впрочем, прироста именно в этом случае не даёт). Немножечко отказом от OUTPUT_COMPACT в пользу OUTPUT_ROM. Итоговая TAP'ка весит 198 байт.

Цитата Сообщение от Andrew771 Посмотреть сообщение
И что за строки типа .area _CODE?
Директива секции кода, встроенная в SDCC-асм.

Цитата Сообщение от Andrew771 Посмотреть сообщение
ну и смысл всё это использовать?
Сделай лучше. Потихоньку.

Цитата Сообщение от Kakos_nonos Посмотреть сообщение
(или модулу, она мне как-то больше приглянулас)
Чем планируем транслировать Модулу в код Z80?