Программирование на Ассемблере
;Флаг (для EXIT_AMIGA)
qu:
move.l ExecBase,A6
lea talkio,A1
jsr AbortIO(A6) ;прерываем вывод move.l conhandle(PC),D1
move.l dosbase(PC),A6
jsr Close(A6) ;закрываем окно move.l dosbase(PC),A1
move.l ExecBase,A6
jsr CloseLib(A6) ;закрываем dos.library lea nwrrep(PC),A1
jsr RemPort(A6) ;удаляем порт ввода/вывода
lea talkio(PC),A1
jsr CloseDev(A6) ;закрываем narrator.device
move.l tranbase(PC),A1
jsr CloseLib(A6) ;закрываем translator.library EXIT_AMIGA ;только для AssemPro openfile: ;открываем файл
move.l A1,D1
move.l D0,D2
move.l dosbase(PC),A6
jsr Open(A6)
tst.l D0
rts pmsg: ;печать сообщения по (D0)
movem.l D0-D7/A0-A6,-(SP)
move.l D0,A0
move.l A0,D2
moveq #0,D3
mess1:
tst.b (A0)+
beq.s mess2
addq.l #1,D3
bra.s mess1 ;вычисляем длину
mess2:
move.l conhandle(PC),D1
move.l dosbase(PC),A6
jsr Write(A6) ;печатаем строку
movem.l (SP)+,D0-D7/A0-A6
rts pcrlf:
move #10,D0
bsr pchar
move #13,D0
pchar: ;вывод символа по коду в D0
movem.l D0-D7/A0-A6,-(SP)
move.l conhandle(PC),D1
pch1:
lea chbuff(PC),A1
move.b D0,(A1)
move.l A1,D2
moveq.l #1,D3
|