KrNews #08
05 марта 1999

Auto HDD - Как определить наличие винчестера.

<b>Auto HDD</b> - Как определить наличие винчестера.
_

   Как определить наличие винчестера
_

  Мы обнаружили этот материал в  FIDO, в
эхе  ZX.SPECTRUM.  Материал  полезный, а
доступ в FIDO имеется далеко не у всех.
  Материал данной статьи использован при
написании загрузчика для этого номера.

 -------------------------------cut---

--- LaraCroft 3.80 + турбонаддув T 3144A
* Origin: ...Altering The Future...
                        (2:5020/689.100)

─ FIDO Echos (2:5063/47.11) ────────────
                         ─ ZX.SPECTRUM ─
Msg  : 3028 of 3160
From : Valerij Kozhevnikoff
                          2:5020/689.100
                     Чет 28 янв 99 22:36
To   : Alex Letaev   Суб 30 янв 99 23:42
Subj : BestView 2.6 на подходе
─

--------------------------------cut-----

  Вобщем,  расскажу маленько про скорпо-
вый винт. Порты находятся в трдосе и для
их  чтения  в пзу трдоса по адресу #3FF3
имеются  команды

              IN A,(C)
              RET

 Если порт #FFBE содержит не #FF, значит
винт есть. Биты 6 и 7 порта #7FBA указы-
вают на статус устройств A и B соответс-
твенно. Если бит установлен, значит уст-
ройство является виртуальным дисководом,
и лазить к нему надо строго по #3D13.

  Ага, а вот тут оно:

======== import file detect ============

  Вот тут немножко инфы всякой.

  Определение  наличия  винта  и статуса
дисков.

  Все   нижесказанное   справедливо  для
контроллеров  SMUC  версий с 1.1 до 1.3.
Код версии ПЗУ - 96 и выше.
  Версия контроллера 1. 3 признана окон-
чательной.  А версия 1.0 это бета и глю-
кодромъ, и в широкую продажу не поступа-
ла.
  К  слову,  под  порты от 1.0  заточена
прошивка  с кодом 95. А по фирменной до-
кументации, с жестким диском может рабо-
тать ПЗУ с кодом не ниже 96.

  Содержимое  порта #7FBA в пространстве
в/в trdos позволяет быстро узнать статус
устройств A и B. По сути своей этот порт
является ячейкой памяти на два бита.
  Предназначен для того, чтобы никуда не
лазя  быстро  узнать что где, и как куда
обращаться.  Доступен как на запись, так
и на чтение.
  При  любом  (ручном  либо программном)
подключении/отключении  образов трдосных
дискет, теневик всегда приводит значение
этого  порта,  в соответствие с изменив-
шимся статусом устройств.
  Читает его обычно уже сама trdos, ког-
да  ей  оно надо.  Биты 6 и 7 определяют
статус для A и B соответственно.
  Если бит установлен, значит устройство
подключено  к драйверу жесткого диска, и
образ  дискеты доступен через #3D13 либо
через RST 8.
  Если  бит  сброшен,  значит устройство
является реальным дисководом, и доступно
стандартными для дисководов средствами.
  Все  остальные  биты в настоящее время
не  используются, и всегда должны быть в
единице.

  Диски  C  и  D не могут быть реальными
дисководами -контроллер такого не под-
держивает.  #  оговорка: хоть изначально
плата Скорпиона и не поддерживает диско-
воды  C и D, но при желании и умении они
могут быть подключены, что следует иметь
ввиду.

; проверка  скорповости и наличия винта
; на  выходе: флаг C=1 - нет винта

CHECKHD  DI
         LD A,(#0008)
         CP #C3
         JR  NZ,NO_HDD; сие  не  скорп
         LD BC,#1FFD
         LD A,#02
         OUT (C),A    ; вкл. теневик
         LD A,(#00F1) ; взяли код версии
         LD E,#00
         OUT (C),E    ; выкл. теневик
         CP 96
         JR C,NO_HDD  ; ПЗУ старое
         LD BC,#FFBE
         CALL RD_DOS
         CP #FF
         JR Z,NO_HDD  ; рег.сост.пуст
         XOR A
         RET          ; винт есть
NO_HDD   SCF
         RET ; винта нет

; --------------------------------------
; сама  проверка  дисковода
; в переменной DRIVE должен лежать
; номер 0...3
; на выходе: флаг C=1 - реальный драйв

DRIVE  EQU #5CF6 ; номер драйва
TEST   LD A,(DRIVE)
       AND #3
       CP #2
       JR NC,OK_HDD ; C и D всегда
                    ; на винте
       RRA
       JR C,TEST_B
TEST_A LD BC,#7FBA  ; проверяем A
       CALL RD_DOS
       BIT 6,A
       JR NZ,OK_HDD ; A на винте
       SCF
       RET          ; А на дискете

TEST_B LD BC,#7FBA  ; проверяем B
       CALL RD_DOS
       BIT 7,A
       JR NZ,OK_HDD ; B на винте
       SCF
       RET          ; B на дискете

OK_HDD OR A         ; девайс на винте
       RET

RD_DOS LD HL,#3FF3
       PUSH HL
       JP #3D2F


  WBR, Jason.





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

INTRO - Создание К. Синклером компьютера ZX-2000.

INTRO - Прикол в WINDOWS'95.

AMIGA - Платформы... Я приобрел A1200 !!! Первые впечатления.

AY-VS/M - Как различать сопроцессоры AY и YM.

AY-VS/M - Выходная часть подключения AY 3-8910 или YM2149F к АТМ-TURBO2.

Мозаика - Телефонный ретранслятор: поток сознания спектрумистов.

FREAKS - как звонить бесплатно по межгороду через модем.

TNT - Разные бомбы, ловушки и другие принадлежности юного террориста.

Playing - О игре 12 ТАЙНЫХ КНИГ-МИССИЯ.

TWILIGHT - Описание игры: TWILIGHT SHADOW of ISLAND.

История - Микропроцессоры (продолжение).

Анкета - Нужно ли полиграфическое издание на SPECCY?

CHEAT - CHEAT к играм: FISHER, ВИННИ ПУХ, KLADEMINER, KOLOBOK ZOOM-2, THE HUNDRED,ЧЕРНЫЙ ВОРОН2,СКРЫТАЯ ЧАСТЬ ИГРЫ 12 ТАЙНЫХ КНИГ.

Auto HDD - Как определить наличие винчестера.

Ferrum! - Искатель скрытой проводки на базе цифрового мультиметра.

HANGER - Исповедь палача.

Письма - О положении дел со Speccy в Ставрополе.

Авторы - Об авторах.

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


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

Похожие статьи:
Scene - Demoscene rebel.
Юмор - "Штирлиц - русский SysOp" (глава 10 и заключение).
Стихи - "Интерлюдия".
Тайны Micro Windows - и нюанcы програmmирования.
Книга - Тайники ZX-Spectrum: Системные переменные Бейсика.

В этот день...   1 февраля