
Сообщение от
Oleg N. Cher
Я к тому, что вот: сделали ex (sp),hl - положили значение hl в стек, а тут прерывание приходит и его портит. Потом мы его восстанавливаем уже некорректным... Я согласен, такое бывает редко. Но метко. Криво как-то написано. Нет? Я что-то не так понял?
Код:
void beep(char semitone, char len) __naked
{ semitone, len;
__asm
pop af
pop bc
; ex (sp),hl
push bc
push af
push ix
ld a,b
ld b,#0
push bc
; ld a,l
call 11560
ld a,#100
call 11560
rst 40
.db 5, 56
pop bc
ld a,c
and a
jp m,1$
call 11560
jp 1016
1$: neg
call 11560
rst 40
.db 27,56
call 1016
pop ix
ret
__endasm;
}
выделенные ЖЫРНЫМ строки имеют вначале символ ;
что означает комментарий