Программирование на Ассемблере
0
jsr OpenLib(A6) ;открываем dos.library
move.l D0,dosbase
beq error1 ;ошибка! нет dos.library??? lea diskio(PC),A1
move.l #diskrep,14(A1) ;порт ввода/вывода
moveq #0,D0 ;номер устройства
moveq #0,D1 ;флаги
lea trddevice(PC),A0 ;имя \"trackdisk.device\"
jsr OpenDevice(A6) ;открываем trackdisk
tst.l D0 ;ошибка?
bne error2 ;да! странно... bp:
lea consolname(PC),A1
move.l #mode_old,D0
bsr.s openfile ;открываем окно (консоль)
beq error3 ;ошибка!
move.l D0,conhandle ;сохраняем идентификатор rts test:
bsr.s accdisk ;работаем с trackdisk bsr.s getchr ;ждем нажатия клавиши
bra.s qu ;выход qu:
move.l ExecBase,A6
lea diskio(PC),A1 ;загружаем адрес I/O-структуры
move #9,28(A1) ;команда MOTOR
move.l #0,36(A1) ;выключить мотор
jsr SendIO(A6) move.l conhandle(PC),D1
move.l dosbase(PC),A6
jsr Close(A6) ;закрываем консоль
error3:
lea diskio(PC),A1
move.l 32(A1),D7
jsr CloseDevice(A6) ;закрываем trackdisk.device
error2:
move.l dosbase(PC),A1
move.l ExecBase,A6
jsr CloseLib(A6) ;закрываем dos.library
error1:
EXIT_AMIGA
openfile: ;открыть файл
move.l A1,D1
move.l D0,D2
|