|
Форум - "Спускаясь с небес".
|
(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, и бедный
музыкальный процессор может "откликаться" в цикле подтверждения
прерывания, при этом создавая проблем еще больше.
Я сознательно не называю авторов схемы, им ведь наверняка непритно читать
про себя в журнале, да еще в таком тоне. Вот и мне было неприяно и читать,
и писать этот ответ. Интересно, а О.Литвинову приятно?
Давайте добрее относиться друг к другу, не приклеивать ярлыков,
и внимательнее относиться к публикуемым материалам.
СОДЕРЖАНИЕ:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Форум-Игры - В разделе рассмотрены: Burry, McGuian World Champion, Sword&Sorcery, Marsport, Master of Magic, Colony, Firelord, Tai-Pan, The Spectre, Rebel Star, Dr.What, Rescue, Vatman, Iron Man, Seymour at the Movies, Wild West Seymour Adventures, Venturama, Livingstone 2, Total Eclipse 2, Dizzy 6, Elite, Street Hassle.
-
Перекресток - В разделе рассмотрены: Mysterious Adventure N11, Temple of Terror, Witch Cauldron, Smok Wawelski, ID, Eric the Viking, Golden Apple, Famous Five, Emerald Island,Magnetic Moon 1, Shadows of Mordor, Quest Adventure, Sam Spoon, Snowball, Slain the King, Lancelot, MindFighter, The Legend of Apache Gold, Звёздное Наследие, Return to Eden.
-
-
-
-
-
-
-
-
|
|