Тут по соседству CityIceЕ рассказывает об ассемблере для Специалиста...
А работал кто с М80? Такие вот фишки у меня были в своё время. Типа, защита от пионеров.)
Код:;----------------------- ; Вывод текстовой константы ; call: DspStr ; dbs. <string>,< > ;сообщение, > 1-го символа ; inp: PC - указатель на сообщение (D7=1 - конец) ; HL - адрес вывода в видео-буфере ; outp: PC - адрес конца сообщения+1 ; HL - адрес конца вывода в видео-буфере+1 ; regs: AF DspStr: ex de,hl ex (sp),hl ;получим адрес сообщения - сохраним DE ex de,hl DspMsg ex de,hl ex (sp),hl ;изменим адрес возврата - восстановим DE ex de,hl ret Где макро DspMsg реально: ;----------------------- ; Отобразим сообщение ; inp: DE - указатель на сообщение ; (бит 7 = 1 - признак конца сообщения) ; HL - адрес вывода в видео-буфере ; outp: DE - указатель на конец сообщения + 1 ; HL - адрес конца вывода в видео-буфере + 1 ; regs: AF DspMsg: ld a,(de) inc de xor BXlt bit 7,a res 7,a ld (hl),a inc hl ret nz jr DspMsg При этом ; Без признака конца текста DBS MACRO str IRPC x,<str> db '&x&' xor BXlt ENDM ENDM ; С признаком конца текста DBS. MACRO str,stre IRPC x,<str> db '&x&' xor BXlt ENDM db '&stre&' or 128 xor BXlt ENDM ; Кодирование текстовых сообщений BXlt equ 0a5h WXlt equ 031h ;для перекодировки адресов в таблице




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
