Программирование на Ассемблере
;ошибка lea consolname(PC),A1 ;описание окна
move.l #mode_old,D0
bsr.s openfile ;открываем консоль
beq.s error ;ошибка
move.l D0,conhandle rts pmsg: ;печать сообщения по (D0)
movem.l d0-d7/a0-a6,-(SP)
move.l D0,A0
move.l A0,D2
moveq #0,D3
ploop: ;цикл вычисления длины строки
tst.b (A0)+
beq.s pmsg2
addq.l #1,D3
bra.s ploop
pmsg2:
move.l conhandle(PC),D1
move.l dosbase(PC),A6
jsr Write(A6) ;вывод в окно
movem.l (SP)+,d0-d7/a0-a6
rts pcrlf: ;вывод спецсимволов LF и CR
move #10,D0
bsr pchar
move #13,D0
pchar: ;вывод символа по коду в D0
movem.l d0-d7/a0-a6,-(SP)
move.l conhandle(PC),D1
pch1:
lea outline(PC),A1
move.b d0,(A1)
move.l A1,D2
move.l #1,D3 ;выводим только 1 символ
move.l dosbase(PC),A6
jsr Write(A6)
movem.l (SP)+,d0-d7/a0-a6
rts getchr: ;ввод символа с клавиатуры
move.l conhandle(PC),D1
lea inbuff(PC),A1 ;буфер ввода
move.l A1,D2
move.l dosbase(PC),A6
jsr Read(A6)
move.l #inbuff,D0 ;возвращаем адрес строки
rts
error: move.l dosbase,A6 ;обработчик ошибок DOS
jsr IoErr(A6)
error1:
move.l D0,D5 ;для EXIT_AMIGA
|