;---INT 19------------------------------------------------ 
;Программа загрузки системы 
;     Если устройство А - дискетта 5 1/4", то загрузка возможна 
;     Дорожка 0, сектор 1считываются по адресу BOOT(0:7C00) 
;     и на него передается управление. 
;     Если дискетта отсутствует или произошла аппаратная ошибка, 
;     то управление передается в точку CASSETE-BASIC. 
; 
; Если загрузка идет с дискетты, то бит 0=1 для порта 60H 
;---------------------------------------------------------- 
        ASSUME CS:CODE,DS:DATA 
BOOT_STRAP     PROC    NEAR 
 
      STI                      ;Разрешить прерывание 
      MOV      AX,DATA         ;Установка аресации данных 
      MOV      DS,AX 
      MOV      AX,EQUIP_FLAG   ;Получить состояние переключателей 
      TEST     AL,1H           ;Выделить состояние переключателя IPL 
      JZ       H3              ;Перейти на вход CASSETTE BASIC 
 
;-------------Система загружается с дискетты 
                             ;CX-счетчик повторов 
      MOV       AX,0 
      MOV       DS,AX 
 
 
      MOV       CX,4         ;Установить счетчик повторов 
H1: 
      PUSH      CX           ;Сохранить счетчик повторов 
      MOV       DX,0         ;Устройство 0, головка 0 
      MOV       AH,0         ;Сброс НГМД 
      INT       13H          ;Ввод/вывод дискетты 
      JC        H2           ;Если ошибка, повторить 
      MOV       AH,2         ;Чтение одного сектора 
      MOV       BX,0         ;По фдресу BOOT 
      MOV       ES,BX 
      MOV       BX,OFFSET BOOT_LOCN 
      MOV       DX,0         ;Устройство 0, головка 0 
      MOV       CX,1         ;Сектор 1, дорожка 0 
      MOV       AL,1         ;Считывание сектора 
      INT       13H 
H2:   POP       CX           ;Восстановить счетчик повторов 
      JNC       H4           ;Установить CF при ошибке чтения 
      LOOP      H1           ;На повтор 
 
;---------Загрузка с дискетты невозможна 
 
H3: 
      IRET 
 
;---------Загрузка завершилась успешно 
 
H4: 
      JMP       BOOT_LOCN    ;Передача управления системе 
 
BOOT_STRAP   ENDP 
 
