ZX-Ревю 1996 №7-8 1995 г.

Форум - "Спускаясь с небес".


(c) A. Ларченко "Спускаясь с небес".

     В ZX РЕВЮ 96/4-5, в разделе Форум, О.Литвинов "нашел"
две ошибки в нашей книге "ZX Spectrum & TR-DOS для пользователей и
программистов" (издательство "ПИТЕР"). Скажу сразу, опечаток в книге значительно 
больше. Говорю это с грустью, потому что сам очень не люблю "натыкаться" на 
ошибки в чужих книгах. Однако, я не могу вспомнить ни одной серьезной публикации 
без них.  И происходит это вовсе не от "болезни", диагноз которой так быстро, 
видимо как "опытный врач", вывел Литвинов, а совсем по иным причинам.
     Теперь по существу дела. Ниже приведен исходный текст начала подпрограммы
позиционирования драйвера, кусок которого, так раскритиковал О.Литвинов. Как 
видно из текста, этот кусок относится к работе с 40-дорожечной дискетой, 
работающей на 80-дорожечном дисководе. Так и хочется сказать: 
"врачу - исцелися сам".

F86B          MPOSIT:
F86B  D5        PUSH    DE
F86C  CD F802   CALL    CH_DRV    ;реально выбрать диск для операции
F86F  D1        POP     DE
F870  CD F7B7   CALL    SYSREG    ;--> Akk код для системного р-ра BetaDisk
F873  CD F7A5   CALL    DISADR    ;--> (hl) код спецификации дискеты
F876  5E        LD      E,(HL)    ;поместить код в E
F877  CD F7AA   CALL    DRVADR    ;--> (hl) код спецификации дисковода
F87A  CB 6B     BIT     5,E       ;установлен для 80-дорожечных дискет
F87C  28 08     JR      Z,DIS_40  ;дискета на 40 дорожек
F87E  CB 76     BIT     6,(HL)    ;установлен для 80-дорожечных дисководов
F880  20 13     JR      NZ,DIS_80 ;да, это 80-дор. дискета на 80-дор. дисководе
        ;ошибка -- дискету на 80 дорожек нельзя прочитать на 40-дор. дисководе
F882          DISERR:
F882  3E 08     LD      A,8       ;код ошибки -- несоответсвие типов
F884  18 5B     JR      BIOSER    ;завершение работы
F886          DIS_40:
F886  CB 76     BIT     6,(HL)    ;установлен для 80-дорожечных дисководов
F888  28 0B     JR      Z,DIS_80  ;дисковод и диск на 40 дорожек
                                  ; следовательно физ. == лог.
        ;40-дорожечная дискета работает на 80-дорожечном дисководе
        ; для правильного позиционирования необходимо делать два шага
        ; головки для одной дорожки
F88A  CB 22     SLA     D         ;физ. = лог*2 (что бы "попасть" на дорожку)
F88C  CB 7B     BIT     7,E       ;установлен для двухсторонней дискеты
F88E  28 05     JR      Z,DIS_80  ;диск односторонний -- закончили вычисления
        ;40-дор. диск на 80-дор. дисководе еще и двухсторонний
F890  CB 4A     BIT     1,D
F892  28 01     JR      Z,DIS_80
F894  15        DEC     D         ; коррекция на "две" дорожки
F895          DIS_80:
F895  CB 7B     BIT     7,E       ;установлен для двухсторонней дискеты
F897  28 11     JR      Z,DISONE  ;дискета односторонняя -- лог. == физ.
F899  CB 7E     BIT     7,(HL)    ;установлен для двухстороннего дисковода
F89B  28 E5     JR      Z,DISERR  ;ошибка: "нехватает головки"
F89D  CB 3A     SRL     D         ;для двух сторон -- физ. == лог./2
        ;в CY получается остаток -- номер стороны
F89F  21 FDE7   LD      HL,BFLAG  ;сохранить номер стороны в сл. флаге
F8A2  CB E6     SET     4,(HL)    ;вот тут действительно ошибка,
        ; приводящая к неоправданным задержкам времени выполнения,
        ; и эту команду лучше "забить" 0 (это внесено в ПО Scorpion'а)
F8A4  30 04     JR      NC,DISONE
F8A6  CB A6     RES     4,(HL)    ;сюда, соответственно, тоже 0
F8A8  CB A7     RES     4,A       ;установить вторую головку (в сист. р-ре)
F8AA          DISONE:

     Хочется заметить, что прежде, чем указывать на ошибки (да еще и "ставить" 
диагноз") неплохо бы внимательнее разобраться что к чему.
     Далее, О.Литвинов указывает на "разночтения" в названии и выборе
магнитных головок. И вот тут он совершенно прав (ах, правда "опять" не
во всем). Действительно на странице 202 вверху перепутаны местами значения
двух управляющих разрядов. Это D4 (управление головкой) и D6 (выбор
плотности записи). Для работы в режиме MFM этот разряд должен быть
сброшен. Разряд D4 определяет номер магнитной головки. Установленный, он
выбирает нижнюю или единственную на одностороннем дисководе (я не
поленился и разобрал один такой музейный экспонат - "нижнюю") магнитную
головку. Сброс разряда D4 приводит к выбору первой или верхней магнитной
головки.
     По чьей вине в книгу "прокрались" ошибки? К сожалению, тут вина и авторов
и издательства. Помню, что на "вычитку" оригинал-макета (260 страниц) нам
было предоставлено ТРИ часа - на следующий день макет уходил в
типографию. Кстати, у книги не было технического редактора, только
"художественный". А "вычитку" мы делали уже после того, как книга
поступила в продажу. Вот список некоторых (наверное, не всех) опечаток,
допущеных "общими усилиями".
     На стр. 79 в последнем абзаце не указано, что при работе пользовательских 
функций в 3 банке процессора устанавливается нулеввая страница ОЗУ (RAM0).
     На стр. 97 и 98 неправильно показаны диаграммы для команд OUTI, OTIR,
OUTD и OTDR. Кстати, случай анекдотичный. В предыдущих изданиях только две
диаграммы были неправильными, на них и было указано редакции. И вот что
получилось.
     На стр. 183 из таблицы 11 (Байт настройки на дискету) при верстке куда-то
исчезли номера сторон:
 #16 - 80-дорожечная, двухсторонняя;
 #17 - 40-дорожечная, двухсторонняя;
 #18 - 80-дорожечная, односторонняя;
 #19 - 40-дорожечная, односторонняя.
     На стр. 189 строка листинга с номером 1170, завершающая конец примера
должна выглядеть:
 1170   end
     На стр. 190 в последнем абзаце изменен на обратный порядок
проведения тестов дисковода.
     На стр. 211 неправильно указан адрес подпрограммы записи сектора для
TR-DOS версии 5.03.  Должно быть: "Подпрограмма чтения расположена по
адресу 16341 (16331), а подпрограмма записи -- по адресу 16314 (16304)."
     Да, очень хотелось бы, что бы ошибок в изданиях было как можно меньше, и
мы, как авторы, стараемся делать для этого все от нас зависящее. И призываем 
вас, наши читатели, сообщать обо всех встретившихся ошибках.
     И еще одно, уже не относящееся к "техническим" ошибкам. В последнее время
все чаще на страницах многих компьютерных изданий (и ZX РЕВЮ тут, к
сожалению, не исключение) стало появляться довольно много публикаций с
"идеологическими" ошибками. Вот пример, в том же 4-5 номере на
стр. 83 приведена схема "установки порта FD", якобы "вылечивающая"
компьютер Scorpion. Однако, авторы пытаются лечить "больного", а не
"болезнь", да еще и "знахарскими" методами (вот, ведь, как "заразна"
"медицинская" терминология О.Литвинова). Не вдаваясь в подробности (см.
статью о доработке для совместимости с компьютером Scorpion ZS 256 в этом
номере журнала) отмечу лишь, что в схему не заведен сигнал M1, и бедный
музыкальный процессор может "откликаться" в цикле подтверждения
прерывания, при этом создавая проблем еще больше.
     Я сознательно не называю авторов схемы, им ведь наверняка непритно читать
про себя в журнале, да еще в таком тоне. Вот и мне было неприяно и читать,
и писать этот ответ. Интересно, а О.Литвинову приятно?
     Давайте добрее относиться друг к другу, не приклеивать ярлыков,
и внимательнее относиться к публикуемым материалам.



СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



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

Похожие статьи:
Обьявления - секреты прохождения игры НЛО 2: Дьяволы бездны.
Warp Designer v1 - Описание Warp Designer v1.0 (конструктор искажений).
Смайлик - подборка смешных анекдотов.
Открытые письма Nemo №6.254
От редакции

В этот день...   19 апреля