[an error occurred while processing this directive]
*---------------------------------------*
* СТАНДАРТНЫЙ МОДУЛЬ УСТАНОВКИ ДРАЙВЕРА *
* версия 05.08.94. *
*---------------------------------------*
SETDR JSR IOSAVE сохранить регистры
LDX #¤4C установить код JMP
STX VEKTDRV в ¤3F5
LDX BEGDRIVE+1 начало обработки
LDY BEGDRIVE
DO ATRIBDR&:00100000
TXA
JSR CONTRIN да, установиться в системе
ELSE
JSR CONTRIN1 активизироваться
FIN
DO ATRIBDR&:01000000
JSR SETINIT
JMP SETDR2
SETINIT JMP (INITDR)
FIN
DO ATRIBDR&:00001000
SETDR2 JSR OUTHELP есть, вывести ее
FIN
JMP IOREST восстановить вектора и выйти
*------------------------------------------*
* Установка драйвера в систему "Диспетчер" *
*------------------------------------------*
; установить драйвер в систему и активизировать
; на входе A,Y - адрес обработчика драйвера
DO ATRIBDR&:00100000
CONTRIN TAX
JSR CONTCK
BCS CONTRIN1
TXA
JSR INSET
BCC CONTRIN2
LDY ALIN+1
INY
BEQ CONDIAL
LDY PROMPT
CPY #¤5D
BEQ CONDIAL
JMP SYSERR
CONDIAL LDX#0
LDA CONERR,X
PHA
ORA#¤80
JSR COUT
INX
PLA
BPL CONDIAL+2
JMP (PWARM)
CONTRIN2 RTS
CONERR DFB ¤0D,¤1D,¤07,¤0D,¤1D
ASC "ошибка"
DFB ¤20
ASC "установки"
DFB ¤0D,¤1D,¤8D
FIN
CONTRIN1 TXA
STA VEKTDRV+2
STY VEKTDRV+1
RTS
; проверить наличие диспетчера в системе
; (по точкам входа)
DO ATRIBDR&:00100000
CONTCK STA ¤C083
STA ¤C177
LDA INSET
EOR INEXIT
CLC
ADC INWORK
CMP #CONTROLL
BNE CONTCK1
CLC есть диспетчер
DFB @44
CONTCK1 SEC его нет
RTS
FIN
*---------------------------*
* ВЫВЕСТИ ЗАСТАВКУ ДРАЙВЕРА *
*---------------------------*
; адрес заставки должен лежать в 3-4 атрибутах
; драйвера
; заставка не длиннее 255 байт, последний байт 0
DO ATRIBDR&:00001000
OUTHELP LDX ALIN+1
INX
BEQ OUTHELP0
LDX PROMPT
CPX #'}
BNE OUTHELP3
OUTHELP0 LDA #¤8D
JSR COUT1
LDA TEXTHELP+1
LDY TEXTHELP
STA OUTHELP1+2
STY OUTHELP1+1
LDX #0
OUTHELP1 LDA ¤1000,X
BEQ OUTHELP3
CMP #¤8D
BEQ OUTHELP2
JSR ¤FC0E
INX
BNE OUTHELP1
OUTHELP3 RTS
OUTHELP2 JSR COUT1
INX
BNE OUTHELP1
FIN
.ст Раздел I:Приложение 3
[an error occurred while processing this directive]