|
Open Letters
#04
21 октября 2000 |
|
Открытые письма Nemo №4.7

Здравствуйте уважаемая фирма Nemo!
Пишет вам программист со стажем.
1). Я хотел заказать у Вас PRICE LIST по
программному и аппаратному обеспечению.
2). Вышлите пожалуйста мне описания GE-
NERAC SOUND и GENERAL SOUND II если тако-
вое имеется.
Я сам повидал много моделей SPECTRUM
совместимых компьютеров и наконец приоб-
рел и Ваш KAY-1024. У меня сложилось оп-
ределенное мнение по поводу характеристик
данного клона. Ну для начала хорошие, на
мой взгляд, стороны KAY.
1. 1. МВ-ОЗУ это круто, но было бы лучше
поставить и МВ (или 8 Мb) ((жадность на-
верное)):
2. Очень хорошо отлаженный и синхронизи-
рованный TURBO REGIME 7.0. MHz.
3. TURBO контроллер НГМД
4. Полностью реализованный LPT порт.
5. Три слота под периферию (но лучше
больше: 5 -10).
6. Хорошо сбалансированный видеовыход
(очень удобно!).
7. Питание только от 5 V Б/П или батареи
(COOL).
8. Индикация обращения к BETA-TURBO и
TURBO режима (удобно).
9. RAM DISK (C:/) (необходимая вещь).
10. Прошим BOOT HDD и LPT-PRINTER в BA-
SIC 128 (нужно в наше время).
Ну, а теперь о недостатках, которые я
обнаружил в ходе эксплуатации Вашего
KAY'я и предложения по каждому пункту. Я
надеюсь Вы прислушаетесь к мнению ведуще-
го программиста в г. Братске. (Извините
за нескромность, но я еще и электрон-
щик-схемотехник самоучка).
1. Это касается портов конфигурации
#1FFD и #7FFD и системного #FD. Дело в
том, что при прямом обращении к порту #FD
LD A, #11 OUT (#FD), A происходит запись
в порт #1FFD, а должно в порт #7 FFD.
Из-за этого 30-45% программ не работает
вовсе. Я вижу три варианта устранения
данного недостатка:
1). Программное устранение:
1. короткую адресацию заменить на полную
# FD заменить на #FFD :
2. Команды типа LD A, #11 OUT (#FD), A
LD A, #51 OUT (#FD), A., но у этого спо-
соба есть один глобальный недостаток: де-
ло в том, что сейчас очень много разве-
лось компов типа PENTAGON 512 или PENTA-
GON 1024, которые используют 5, 6, 7 -
биты под расширенную память.
2). Аппаратная замена адреса дополни-
тельного порта конфигурации (#1FFD) хотя
бы на #DFFD, а лучше на #1FFA или на
что-нибудь подобное.
3). Сделать аппаратное отключение обра-
щения к дополнительному порту (что я и
сделал) или сделать программно-аппаратную
блокировку порта #1FFD как сделан порт
#7FFD BIT DS.
2. Еще один недостаток заключается в
очень неудобном управлении расширенной
памятью:
(порт #7FFD BIT D7
порт #1FFD BIT DS - поменять) Ошибка. см.
ниже.
порт #7FFD стр. ОЗУ в этой
D0 !D1 ! D2 ! D3 ! D4 ! D5 ! D6 ! D7 !
порт #7FFD стр. ОЗУ !экран! 128/! БЛ ! Аив! QG/ !
в 0-й сектор ! !TRDOS! ! ! !
#1FFD RAM/!Q8/ !TURBO!ROMS !БАНК ! а17! а18!STROBE!
ROM ! ! MODE! ! ОЗУ ! ! ! !
3. Ошибка схемотехников в порте клавиа-
туры #XX FE чтение BIT DS должен быть в
состоянии 1 а не 0 из-за этого не работа-
ет где-то 30% программ.
4. При чтении порта #FE IN A, (#FE)
должны читаться все ряды клавиатуры.
Где-то 40% программ проверяют нажатие на
любую клавишу именно так.
5. При чтении из порта #BFFD читается
#00 вместо #FF, в результате некоторые
программы делают вывод об отсутствии
AV-3-8910(12) с соответствующими последс-
твиями.
6. Контроллер ВЕТА-TURBO сразу же зани-
мает один слот (не выгодно). Я хотел вам
предложить сделать из контроллера BE-
TA-TURBO мультикарту в состав которой
входит (и это занимает лишь один слот):
1). BETA-TURBO-HD (диски с объемом 1ю44
МВ и 1б2 МВ).
2). Контроллер HDD (MASER/SLAVE) на 4-ре
HDD или CD-ROM.
3). Контроллер АТ/ХТ/PS/2 - клавиатуры.
4). Хотя бы 2-com порта 1 и 2-ой.
5) ISA слот или 2-я ISA слота для IBM
устройств (например модем USR SPORSTER).
Я даже купил бы такую мультикарту за
дополнительную цену. СОМ 1 работал бы как
KEM8STON MOUSE, а СОМ 2 как AY-MOUSE. Бы-
ло бы очень удобно для рядового USER'а.
7. Желательно увеличить TURBO до 10,5
MHz или 14 MHz. У меня, например, 280 Н
на PROFI PLUS Держал 21 MHz COOL.
8. Длительность INT не соответствует же-
лаемой 20 - 32 CYCLES и INT находится
между PENTAGON'овским и фирменным, что
особенно плохо сказывается на качестве
просмотра DEMO'K. Желательно было бы под-
тянуть INT к PENTAGON'овскому или, на ху-
дой конец, к фирменному.
9. 69000 тактов на INT - этого мало
(грубо). Желательно догнать PENTAGON -
это около 72000 тактов.
10. Проверьте шину данных в момент обра-
щения к TR-DOS. Она не стабильна, что
очень плохо.
11. Желательно расширить меню в BASIC
128:
TR-DOS 1024
TR-DOS 128
TR-DOS 48
BASIC 1024 + CALCULATOR
BASIC 128
BASIC 48
BODT HDD и еще что-нибудь полезное. Нап-
ример CMOS. И у меня возник к вам вопрос
по поводу кнопки MAGIK: Не могли бы Вы
прошить какой-нибудь сервис-монитор как
на SCORPIO'не или хотя бы написать как
перейти из ПЗУ TR-DOS (при нажатии на MA-
GIK) в ПЗУ EXPANSION: ROMS =1 и ПЗУ 128
????
Сколько я перепрошивал свою ПЗУ. Вы бы
только знали. И еще я разработал схему
программатора ПЗУ и УФ стиранием любой
емкости который подключается к LPT-KAY,
но данных по ПЗУ с емкостью больше 64 кВ
у меня нет, поэтому софт не адаптирован
под сверх большие микросхемы, если у Вас
есть подобная информация, я буду рад до-
вести дело до конца и отправить к Вам на
распространение (кстати, программатор не
обязательно должен быть подключен к LPT,
можно втыкать и в слот).
Ну вот, собственно, все что я хотел Вам
сказать. Если хотите, можете напечатать
мое письмо в открытых письмах, я против
не буду, а буду только рад, если кто-то
поддержит меня и захочет со мной перепи-
сываться или обмениваться SOFT'ом. Изви-
ните за ошибки, если они есть.
N.
665708 04.08.2000
Уважаемый N!
1. На мой взгляд правильно было бы не
"... программист со стажем", а кодер со
стажем. Программисты создают программные
продукты...
2. ПО не является профильной продукцией
(товарами), - поэтому в ОБЩЕМ прайсе все-
го НЕСКОЛЬКО ПОЗИЦИЙ. Это сопутствующий
товар.
3. В прилагаемый комплект рекламы входит
и лист-паспорт на СтS.
4. 8 МБ ОЗУ - это не жадность, а действие
стереотипа, что чем КРУЧЕ, тем лучше. Это
не всегда так, - а бывает и наоборот.
Рост технических характеристик не приво-
дит к автоматическому улучшения потреби-
тельских качеств. Как Вы себе представля-
ете работу с 8 - да, даже, и с 2 МБ ОЗУ?
Чтобы загрузить 2 МБ ОЗУ необходимо 3
дискеты, причем TRDOS не поддерживает та-
кой объем, - следовательно, необходима
ОС'6, т.к. при таких объемах информации
работа иначе, нежели чем со структурами-
файлов, невозможна. А если есть ОС'6, то
необходим винчестер, а если есть винчес-
тер, то и ОЗУ ТРЕБУЕТСЯ НЕ БОЛЕЕ СТА
ДВАДЦАТИ ВОСЬМИ КИЛОБАЙТ. Скорость работы
ОС'и - (обратите внимание: ОС'и! - а не
винчестера либо ОЗУ) - практически одина-
кова как с ОЗУ, так и с винтом, - быть
может, за исключением некоторых экзоти-
ческих приложений/задач. В KAY-1024 про-
дается не 1 МБ ОЗУ, а квазидисковод, реа-
лизованный на 1 МБ ОЗУ. Сам по себе 1 МБ
ОЗУ в Spectrum'e смысла не имеет. Это
РС-шный стереотип. Нужно меньше читать
РС-шной прессы и чаще думать головой.
Кроме того, это пожалуй, единственный
способ стыковки ОС'и с TRDOS-дисками, при
котором ОС'6 способна оперировать TRDOS
образами дисков (болванками). Причем ВОЗ-
МОЖНЫ ВСЕ ОПЕРАЦИИ ОС'и над ФАЙЛОМ (БОЛ-
ВАНКОЙ), - за исключением его запуска на
выполнение (передачу управления). При пе-
редаче управления ОС'6 игнорируется.
5. А почему не СТО слотов? - а именно 5 -
10? Почему у человека две ноги, а не три
и не четыре? Почему прогресс стоит на
месте и у человека не отрастают ноги, в
количестве большем, чем имеется? Почему у
легкового автомобиля ВСЕГДА четыре коле-
са, - и он является ЛИЧНЫМ, ИНДИВИДУАЛЬ-
НЫМ транспортом, а у грузовика ВСЕГДА
больше четырех колес, - и он НЕ ЯВЛЯЕТСЯ
ИНДИВИДУАЛЬНЫМ ТРАНСПОРТОМ? Компьютер РС
расшифровывается как "персональный комп-
ьютер", но он не является ни личным, ни
индивидуальным компьютером. Относительно
порта #FD - это PENTAGON'овский nonsense
(или дурь, в переводе с англ.). При таком
растранжиривании адресного пространства
шина, например, теряет смысл - сколько бы
там слотов не было. На практике любые
расширения PENTAGON'а так или иначе, -
приводят к появлению многочисленных тумб-
леров т.к. архитектура оказывается КОНФ-
ЛИКТНОЙ и взаимно противоречивой, - т.е.
нет ЕДИНОЙ архитектуры. Это ПОСЛЕДСТВИЯ
ДУРИ (теперь уже по-русски). Поэтому воз-
можно ТОЛЬКО ПРОГРАММНОЕ устранение.
Кстати, добавлю, на PENTAGON ПРАКТИЧЕСКИ
НЕВОЗМОЖНО УСТАНОВИТЬ винчестер, а следо-
вательно ОС'6 может функционировать толь-
ко в очень ущербном виде. Поэтому PENTA-
GON и используется для ДЕМО-мейкинга,
т.к. что-либо иное сделать на нем затруд-
нительно. Аппаратные доработки порта #FD
к желаемому эффекту не приведут, т.к.
кроме дури с #FD, в PENTAGON'е имеется
еще целый ряд глупостей, поэтому прог-
раммная совместимость увеличиться лишь
незначительно. Кроме того, есть и более
веское соображение. PENTAGON'ы сейчас уже
не выпускаются, - и, по сути, это антик-
вариат. Рано или поздно они выйдут из
эксплуатации. Причем тем быстрее, чем
больше "усовершенствований". Эксплуатация
таких компов стоит бешеных денег, поэтому
массовыми они быть не могут - это эксклю-
зив. Поэтому как-то учитывать PENTA-
GON'овскую дурь бесперспективно. В Питере
их уже почти не осталось - все на помой-
ках. То же ждет и прочие PENTAGON'ы в
ближайшем будущем, - независимо от того,
как я к ним отношусь и что я делаю, так
же как независимо и от того, как к ним
относятся их хозяева и что с ними делают.
"Что я и сделал" - т.е. установили тумб-
лер, - как видите, PENTAGON'овская дурь
заразительна. Поздравляю с окончанием га-
рантии.
6. "управление расширенной памятью". Рас-
ширенной памятью управлять НЕ НАДО, ею
надо ПОЛЬЗОВАТЬСЯ. Управлять ею должна
либо ОС, либо TRDOS, - как электронным
дисководом. Прямое кодирование программ в
пространстве 1 МБ бессмысленно настолько,
что граничит с идиотизмом. Кроме того,
"жесткая" привязка к аппаратуре, которая
неизбежна при написании программ под "же-
лезо" (а не под архитектуру!) - т.к. осу-
ществляется прямое обращение к аппарату-
ре, - делает НЕВОЗМОЖНЫМ дальнейшее раз-
витие аппаратуры. Все программы (или поч-
ти все), написанные таким образом, при
малейшем развитии аппаратуры (которое
ВСЕГДА связано с НЕКОТОРЫМИ изменениями
архитектуры) полетят в канаву. Вам это
надо? Сама постановка вопроса говорит о
том, что ВЫ НИКОГДА НЕ ПИСАЛИ ПРОГРАММЫ,
НО ТОЛЬКО КОДИРОВАЛИ. Если бы вы хоть раз
создали хотя бы одну программу, то сам
вопрос о таком использовании 1 МБ пока-
зался бы Вам абсурдным.
7. "Ошибка схемотехников". Это не ошибка
схемотехников. Это намеренно и сознатель-
но сделанная вещь. Для начала надо уяс-
нить, что:
7.1. Существуют фирменные программы, НАГ-
ЛО требующие 0 в этом разряде. Т.е. на
значение этого бита НЕТ ОГРАНИЧЕНИЙ даже
в фирменном прототипе. Более того, в не-
которых машинах этот бит задействован.
7.2. Порт, как ВНЕШНИЙ по отношению к
компьютеру стык, подразумевает ПРОИЗВОЛЬ-
НЫЕ, НЕПРЕДСКАЗЫЕМЫЕ изначально значения.
На то он и ПОРТ. Константы из порта счи-
тывают только идиоты. Если Вы посмотрите
ПРОФЕССИОНАЛЬНО сделанные программы, то
обнаружите, что неиспользуемые биты ВСЕГ-
ДА маскируются. Понятно, что ламер, дол-
бающийся об клавиатуру, может этого не
знать, - поэтому появляющаяся в результа-
те "программа" не является ориентиром и
слабо соответствует тому, что понимается
под программой. Из-за этих илиотов (и это
еще слабо сказано) уродуют машины. Это
следствие того, что ОДНА дурная голова
МНОГИМ рукам покоя не дает. Так поврежде-
ние в голове приводит к повреждению маши-
ны.
7.3. В перспективе, возможно, этот бит
порта - как и прочие незадействованные, -
тожет быть использован ПО ПРЯМОМУ НАЗНА-
ЧЕНИЮ, т.е. там будет не заглушка ("0"
либо "1"), а СИГНАЛ. Поэтому считывание
константы "0" оттуда так же ущербно, как
и считывание "1". Проблема в том, что пи-
шут ламеры, - соответствующий и резуль-
тат. Дело не в бобине, просто раздолбай
сидит в кабине. Вот он написал командоч-
ку, - и проверил, - ага, идет. А то что
она через пол часа начнет глючить на его
же компьютере, - ему и невдомек. Потому
что он пишет под железо, а не под архи-
тектуру. Что же касается 30% совместимос-
ти - то совет: не пользуйтесь ламерским
шкодингом - и не будет этого процента.
8. Все ряды клавиатуры прочитаются в слу-
чае, если на старшем байте шины адреса
при чтении из порта #FE окажутся все 0.
9. Если программа тестирует наличие AY в
KAY'e, - то она его обычно находит (см.,
например, дистрибутивный копировщик XLC).
Если же она его не находит, то это Дефект
программиста, ее писавшего. (опять же
вопрос - а программист ли писал?). Невоз-
можно учесть ВСЕ ЛАМЕРСКИЕ ДУРИ, - да и
не нужно, - зачем культивировать глу-
пость?.
10. По поводу 6.1 - 6.5 без комментариев,
- иначе будет обидно. Единственно замечу,
что существуют реальные ограничения, о
существовании которых Вы, похоже, даже не
догадываетесь. Поэтому Вам не рекоменду-
ется рассуждать на эту тему.
11. Физическая тактовая частота не всегда
отражает реальное быстродействие. Публика
пока не научилась использовать даже 7
MHz. Да и как она научится, если 90% си-
дят на рухляди, в которой и 3,5 MHz рабо-
тает с грехом пополам. Если парк машин 7
МГц составлял бы хотя бы 50% - об этом
можно было бы подумать. Бесполезно делать
капитальный ремонт в квартире, которая
находится в доме, который сто лет без ка-
питального ремонта.
10. Длительность INT'a - 2 маш команды
(EI) либо 3 маш. команды (DI). Т.е. INT
(его длительность) измеряется в машинных
командах, а не в макросекундах (либо цик-
лах). Поэтому его длительность одинакова
в TURBO/NORMAL, что очень важно. Т.е. та-
кой способ реализации INT'a можно расс-
матривать как специфику TURBO-машин -
иначе софт начнет глючить. Кроме того INT
синхронизирован с процессором. Т.е. он
всегда, везде и во всех KAY'ях одинаков,
чего нельзя сказать о формирователях
INT'а на RC-цепях. Кроме того, похоже, Вы
перепутали понятие такта и цикла. Что ка-
сается DEMO, то это произведения, очень
жестко "привязанные" к аппаратуре. Поэто-
му программная совместимость между клона-
ми ВСЕГДА мала, - это нормально, иначе
просто быть не может. Демка учитывает
специфику видеопроцессора, а специфика
видеопроцессора - это его отклонение от
видеостандарта TV. PENTAGON наиболее
"кривой" в этом смысле клон.
11. "... Догнать PENTAGON..." невозможно,
т.к. для этого необходимо изуродовать ар-
хитектуру, - т.е. сделать ее через жопу,
как это и сделано в PENTAGON'e. В PENTA-
GON'e 320 строк (должно быть, по стандар-
ту, 312/313), поэтому INT'ы следуют там
не через 50 mS, а через 640/625=1,024 х
50 mS = 51,2 mS, что входит в вопиющее
противоречие уже не с телестандартом, а с
системой СИ. Вроде бы мелочь, тем не ме-
нее:
1). Процессор AY будет искажать музыку -
ЭТО НЕУСТРАНИМО, ЭТО ДИАГНОЗ, имя которо-
му - PENTAGON.
2). Подключение видеокодеров PAL/SECAM
если и возможно, то с изрядными проблема-
ми, - да и не на всех телевизорах.
3). Программы реального времени, зацеп-
ленные за INT, будут работать в нереаль-
ном времени. Например, для реализации ча-
сов в программе потребуется программная
"заплата" на это срамное место в виде
коррекции 3/125, т.к. дробь несократима,
то каждые 125 кадров (а это 50 mS x 125 =
6,25 сек.) необходимо делать коррекцию
0,15 сек., - что, в ряде случаев, недо-
пустимо. Т.е. часы будут "дергаться" каж-
дую седьмую секунду на одну седьмую се-
кунды. Теперь: (69830/69840) х 1.024 =
71506/71506 - это грубо. Для более точно-
го определения необходимо учесть ошибку
самого KAY'я. В полном коде у KAY'я 312 х
2 = 624, т.е. ошибка 1 = 312+313 625 625
(71506/71516)х645/624=71630/71620 - это
точно. Именно столько и есть этих самых
тактов в PENTAGON'е. Мораль отсюда тако-
ва, что скорости работы машин ОДИНАКОВЫ,
- но различны способы их измерения, - а
именно, интервалы между INT'ами. Ну и что
будем догонять?
12. Что Вы понимаете под "нестабильность
шины данных"?.Ваша интенция похожа на
прогноз погоды или на астрологический
прогноз. Если имеется в виду, что при об-
ращении к TRDOS'у в одном цикле ДВАЖДЫ
меняются данные, - так это во всех Spect-
rum-машинах так. Это особенность входа в
TRDOS. В момент входа "дробится" машинный
цикл, и данные меняются непосредственно
перед чтением первого байта команды из
ПЗУ TRDOS'a. Если машина в турбо-режиме и
ПЗУ имеет время доступа более чем 150 nS,
то возможны глюки. Вероятно, Вы с ними и
столкнулись, когда переписывали ПЗУ, -
время доступа оказалось больше, - напри-
мер 200 nS. Можно было бы сделать и здесь
все синхронно, - но на мой взгляд, это
привело бы к неоправданному условжнению
схемы. Проще ставить "быстрые" ПЗУ, -
благо их в избытке, - так что незачем
огород городить.
13. Не думаю, что следует расширять меню.
Прежде всего, исходя из общих соображе-
ний. Все указанные Вами опции не нужны,
если программа написана корректно и есть
опция HDD boot. А вот уж в опции HDD boot
- т.е. при входе в операционную систему,
- меню имеет размер КАТАЛОГА. "Еще
что-нибудь полезное..." должно быть ТАМ,
а не в НАЧАЛЬНОМ МЕНЮ.
14. Что касается сервис-монитора. Пробле-
ма в концепции теневого обеспечения. Те
варианты концепций, что были, - не подхо-
дят. По сути, основное назначение имеюще-
гося теневого обеспечения - это взлом.
Хотелось бы что-нибудь более позитивное,
созидательное. Т.е. обеспечение не во-
ровства, - а создания программ. т.е. те-
невое обеспечение должно быть другим. А
это уже идеология систем, - для кодеров
вещь интеллектуально недоступная. Тут ну-
жен программист.
15. Проблема создания программатора,
опять же, не схемотехническая, а прог-
раммная. И нужна именно программа как
ПРОДУКТ, а не код. В ней должны быть: ба-
за по кристаллам, база по прошивкам, раз-
витая система хелпов, вводная и общая ин-
формация по ПЗУ, - т.к. многие вообще не
понимают, что это такое. Все это можно
сделать только под ОС'6ю, т.к. это должна
быть единая среда. Дополнительная инфор-
мация у меня есть, но вряд ли Вы будете
рады. Дело в том, что оперирование с про-
шивками "сверх больших схем" НЕВОЗМОЖНО
без ОС'и, - т.к. такая прошивка превышает
размер TRDOS-диска. Т.е. она НЕ ОПЕРА-
БЕЛЬНА в TRDOS'е. Представьте себе, нап-
ример, операцию сравнения двух прошивок
для кристалла 27080 (это 1 МБ ПЗУ). Прог-
рамматор не надо втыкать в слот, т.к. для
этого требуется развирать компьютер. Для
"сараев", которые сейчас весьма распрост-
ранены, это рискованная операция, - а
иногда и смертельная.
(с) Nemo
P.S. Все, что здесь обсуждалось, неоднок-
ратно уже упоминалось в предыдущих пись-
мах. Если бы Вы внимательно ознакомились
с "Op. Let.", то многие вопросы, вероят-
но, отпали бы сами собой.
Другие статьи номера:
Похожие статьи:
В этот день... 16 ноября