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.", то многие вопросы, вероят- но, отпали бы сами собой.
Другие статьи номера:
Похожие статьи:
В этот день... 14 декабря