Impulse #02
31 декабря 1997

Программистам - Корректная обработка дисковых ошибок, возникающих при обращении к TR-DOS через #3D13.

<b>Программистам</b> - Корректная обработка дисковых ошибок, возникающих при обращении к TR-DOS через #3D13.


   Следующая подпрограмма, кото-
рую я  рассмотрю  в этой статье-
это  корректная обработка диско-
вых ошибок.

   Данная   процедура   довольно
проста  и особых комментариев не
требует.  Обращаться к ней нужно
также, как и к #3D13, единствен-
ное, что тут нужно сказать - это
то,  что  она  изменяет значения
системных переменных #5C3D/#5C3E
(23613/23614), 23746(#5CC2), ве-
ктор прерываний I, регистр IY, и
устанавливает  режим  прерываний
IM 1,  так что при необходимости
Вы  можете  перед вызовом проце-
дуры  эти значения  запоминать и
восстанавливать их на выходе.

   Отличие  данной  процедуры от
#3D13 заключается в том,  что на
выходе  из нее при возникновении
ошибки в аккамулятор будет запи-
сана  единица  (как правило, для
чтения  это ошибка DISK ERROR, а
для  записи  READ ONLY), если же
обращение  к диску прошло успеш-
но, в аккамуляторе будет 0.

   Если   в  дисковод  не  будет
вставлена  дискета,  то никакого
выхода  из процедуры не произой-
дет, пока  дисковод  не дождется
хотя бы какого-нибудь диска.

   А теперь можете  ознакомиться
с описанной выше процедурой:


DISK    DI
        LD      (RHL+1),HL
        LD      (RDE+1),DE
        LD      (RBC+1),BC
        LD      (RGA+1),A
        IM      1
        LD      A,#3F
        LD      I,A
        LD      (ZABA+1),SP
MOLOKO  LD      HL,ZABA
        PUSH    HL
        LD      (23613),SP
        LD      A,195
        LD      HL,REAL_SF
        LD      (23746),A
        LD      (23747),HL
        LD      HL,0
        LD      (23823),HL
        LD      IY,23610
        LD      (IY+0),255
RHL     LD      HL,0
RDE     LD      DE,0
RBC     LD      BC,0
RGA     LD      A,0
        CALL    #3D13
        XOR     A
LER2    DI
        LD      SP,(ZABA+1)
        RET
ZABA    LD      SP,0
        JR      MOLOKO
REAL_SF EX      (SP),HL
        PUSH    HL
        PUSH    DE
        PUSH    AF
        EX      DE,HL
        OR      A
        LD      HL,3435
        SBC     HL,DE
        JR      Z,E1
        OR      A
        LD      HL,8020
        SBC     HL,DE
        JR      Z,E2
        POP     AF
        POP     DE
        POP     HL
        EX      (SP),HL
        RET
E1      LD      A,1
        JR      LER2
E2      POP     AF
        POP     DE
        POP     HL
        EX      (SP),HL
        INC     SP
        INC     SP
        SCF
        RET

             * * *

  P.S. Вот, такие вот, дела.



Другие статьи номера:

Вступление - Новая оболочка у газеты.

Графики BBS - Графики работы BBS.

Бутылка канифоли - Контроллер BZ128 для компютер "Байт".

Программистам - Быстрая процедура вычерчивания окружности.

Программистам - Ускоренный Decruncher к паковщику Data-Squeezer v4.x.

Программистам - Корректная обработка дисковых ошибок, возникающих при обращении к TR-DOS через #3D13.

Сюжет - Новелла к игре "Криминальное аббтство" (La abadia).

AMIGA4EVER - Об Амижной сцене.

Рассказ - Рассказ "Новые приключения Винни Пуха" (глава 3,4).

Реклама - Реклама и объявления.

Заключение - Заключение.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Рost Scriрtuм - Если ктo-тo грoмкo плачет - дoвыёбывался значит.
Demoscene - состав и контакты литовской группы zERo.
Разное - RUSH I_S_P_A.
Балдежник - Щас скажу.
Дискуссия - Speccy или PC ?!

В этот день...   21 ноября