Цитата Сообщение от andrews Посмотреть сообщение
Покажите, пожалуйста, как?
Я в сях не шарю, тем более не копал в нюансы ZDS2. Накидал прогу на асме с комментариями. Жми Esc для выхода, Enter не обрабатывается.

Код:
    .assume adl=1       ; ez80 ADL memory mode
    .org $40000         ; Старт программы

    jp start_here       ; переход на начало кода

    .align 64           ; заголовок программы MOS
    .db "MOS",0,1     


start_here:
            
    push af             ; сохранить все регистры - зачем?
    push bc
    push de
    push ix
    push iy

; ------------------
; поехали

; печать текста
    ld hl, string       ; HL=адрес строки в памяти
    ld bc,0             ; BC=длина строки, или если BC=0, то ограничитель строки - байт 0
    ld a,0              ; A=ограничитель
    rst.lil $18         ; Вызов MOS API

startp:
    ld a, $08           ; 0x08: mos_sysvars Возвращает IXU=указатель системных переменных
    rst.lil $08         ; RST 08h: Выполнить команду MOS

getkey:
    ld a, (ix + $05)    ; получить код ASCII
    or a
    jr z,getkey			;0 - не нажата клавиша
    cp 27
    jr z, EXIT_HERE     ; Если нажата Esc, то выход
	ld (ix+5),0			; моя отсебятина - записать 0 в переменную
	rst.lil 10h			; печать символа с кодом
    jr startp			; переход на начало

; ------------------
; Выход из программы
EXIT_HERE:
    pop iy              ; Восстановить все регистры
    pop ix
    pop de
    pop bc
    pop af
    ld hl,0             ; возвращаемое значени 0 - нет ошибок
    ret                 

; ------------------

string:
    .db "Hello Agon World\r\n",0
- - - Добавлено - - -

Кстати, заявлено, что у этого эмуля есть отладчик. Только не разберусь с брякпойнтами. Может, не так пишу?

- - - Добавлено - - -

ага, отладчику надо добавлять $ для шестнадцатиричных чисел.