[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]