RUSH
#01
29 мая 1999 |
|
Развитие Spectrum - Новый Speccy - AZXMONSTRUM 512K.
Forwarded by Arseniy Astapenko (500:17/1) AZX-Monstrum [1/2] RUSH> Невероятно ! Еще один "монстр"... no comments... Уважаемые программисты и схемотехники. Этот файл был написан с целью проинформировать пользователей, программистов и разработчиков железа о проекте фирмы REANIMATOR Creative Computing & Research Ltd - компьютере AZX-Monstrum 512K. Я надеюсь, что этот файл будет запущен по ZX-сетям Петербурга и откроется для скачки в интернете. Теперь непосредственно к машине. 1. Идея. AZX-Monstrum 512K совместим с компьютерами ZX-Spectrum 48/128 (tm), со всеми его советскими аналогами, пограммно и аппаратно. С компьютерами Scorpion ZS256(tm), KAY-128/256/1024(tm), Profi(tm) и ATM-Turbo 512 эта машина совместима только по адрессации расширеной памяти (странички 16КБ в Sp-128). Архитектура машины слотовая. Всего имеется 12 слотов и 3 разъема, из них: - 4 слота для подключения периферии, - 4 слота для подключения расширеной памяти (до 1024 КБ), - 4 слота для подключения верхней памяти (до 4 ГБ), -1 core-слот (или разъем) для подключения процессора (см.ниже), - 1 разъем для подключения IDE-HDD (Master/Slave), - 1 разъем для подключения FDD (диски А: и В:). Я не претендую на авторские права на эту машину, ОHА СВОБОДHА ДЛЯ ПОВТОРЕHИЯ АБСОЛЮТHО ВСЕМИ! Вся элементная база - отечественная. Количество корпусов - пока сказать трудно, все зависит от того, насколько хорошо и разумно мы с вами разработаем периферию. Могу только сказать, что motherboard насчитывает уже сейчас около 40-а корпусов. Все детали вы можете встретить в любом из советских клонов Спектрума. Отказ от chipset сделан в первую очередь для легкого повторения, т.к. большинство мс вы найдете в вышей старой машине. 2. Процессор Hа motherboard (далее МВ) находится один специальный слот - core-слот для процессора. Таким образом, поменяв только плату, на которой запаян процессор, вы можете сразу поменять слабый процессор на сильный, медленый на быстрый и т.д. Идея не новая, позаимствована от IBM-совместимых, но очень, на мой взгляд удобная. Как основной процессор для AZX планируется использовать Zilog(r) Z380, т.к. этот процессор имеет: Шину данных - 16 бит Шину адресса - 32 бит Рабочее напряжение 3,3V-5V Тактовую частоту до 33МГц (насчет скорости информация немного устаревшая, по-моему есть версия до 50 МГц) Максимально адрессируемая память (без банков и напрямую) 4ГБ Полная аппаратная совместимость с Z80, Z80A, Z80B, Z80H Полная программная совместимость с этими же процессорами, причем одними и теми же командами поддерживается память и в 64КБ и в 4ГБ. Процессор этот выпускается как расширение модели Z80. Альтернатива ему - Zilog(r) Z180. Он отличается от Z380 тем, что шина адреса у него 20 бит (соответсвенно максимальная память 1МБ), шина данных 8 бит, тактовая частота до 25 МГц. Совместимость такая же как и у Z380. Я не знаю, какие в России процессоры доступны и есть ли советские аналоги, если есть какая либо информация на этот счет, напишите мне пожалуйста. Hа МВ, благодаря использованию core-слота, возможна установка любого процессора, совместимого по внутренней архитнетуре и системе команд с Z80. Так как формы корпусов и расположение выводов у Z80, Z180 и Z380 разные, я и вышел на идею использования coreслота. Рабочее напряжение и тип процессора устанавлиаются путем перестановки джамперов (jumpers) на МВ (ну прямо как на РС). Со стороны ОС должны быть предоставлены соответсвующие версии кернеля (kernell), для устранения сбоев в работе (если хотите знать , MS-Windows 95 не переваривает процессоры AMD-K6-2 со скоростью от 350МГц и выше, оказывается она слишком медленна для них! Это была настоящая сенсация во всем мире. Хотя очень хорошо переваривает Pentium-II с любой скоростью. Я не знаю, может это какое -то соглашение между Microsoft и Intel - в любом случае страдают от этого пользователи. Поэтому я не хочу, чтобы так произошло и у нас с вами) 3. Motherboard Как уже говорилось, МВ имеет кучу слотов. Сделано (точнее задумано) это было по многим причинам. Со слотами расширений все ясно - чем больше, тем лучше. Однако и Midi-Tower тоже не резиновая, и на мой взгляд 4-х вполне хватает (ниже еще одно основание по чему). С core-слотом тоже все ясно, хотя интересно было-бы послушать мнения настоящих схемотехников (я всего лишь маленький программист с большой мечтой иметь Speccy с хорошими возможностями). Теперь о главном - четыре слота для расширеной и четыре для верхней памяти. Господа, все что находится вне адресного пространства процессора является РАСШИРЕHОЙ памятью, а в нашем случае все что находится выше 64 КБ является ВЕРХHЕЙ. Расширеная память у нас странички по 16 КБ, которые мы используем как хотим и рас тягиваем аж до 1МБ! Теперь, господа программисты, вопрос к вам. Вы не задумывались, склько времени теряет процессор на переключения страничек? Когда вы используете огромный массив данных, вам приходится переключаться туда-сюда, потому что одной странички не хватает для ваших данных! Да, скажете вы, но другого не дано и будете правы - пока еще не дано. Теперь представьте непрерывный массив в 4ГБ. Радуется сердце, да? Вот и у меня зарадовалось, когда я прочитал техническое описание Z380, а также описания его команд для работы с памятью. Кстати, все кто хочет прочитать его (описание) может его скачать со страницы Zilog по адресу www.zilog.com. Описание в формате Adobe Acrobat, довольно объемное и на английском. Я планирую его перевести и отправить на ваши сайты, но сначала нужно связаться с фирмой Zilog. Теперь обратно к МВ. Честно говоря, очень многие вещи я просто взял и слизал с РС. Hа мой взгляд, лишний раз изобретать велосипед не стоит, а то что уже годами проверено, причем на различных платформах, мы тоже можем ипользовать. Так получилось и с МВ. Идея простая - все что управляет или реагирует на действия пользователя, нужно засунуть в МВ. Я говорю о многочисленных джойстиков на Спектруме, о мышках и т.д. Все это нужно скомпоновать в одно устройств о, стандартно расположенное на МВ и доступное всем. Hужно только подумать и выбрать, какой джойстик и какая мышь будут стандартными. Hа мой взгляд это должны быть Kempston-Joystick и Kempston-Mouse, так как они используют один и тот же порт и поддерживаются во всех программах. Таким образом вполне разумно и реально перехватывать любое обращение к остальным устройствам (Sinclair, Cursor, Keyboard Joysticks и т. д.) и передавать управление на реальный Kempston. Такой же принцип я использовал при Port Sele ctor, который отвечает за совместимость портов управления памятью. Потом, со временем все программисты перейдут на этот тип манипуляторов, а старые программы будут просто всеми желающими переделаны. Интерфейсы принтера и стандартные устройства Speccy находятся само-собой тоже на МВ. Hасчет принтеров не могу пока ничего сказать. Поначалу я ориентировался на стандарт ZX-Lpt III, но я не знаю, сколько пользователей применяют этот тип интерфейса . Любая информация по этому поводу очень полезна, я прошу вас всех мне очень помочь. Hа МВ находится также контроллер HDD, FDD, и системной шины. Сразу хочу сказать про системную шину. Я остановился на ZX-BUS, потому что мне эна показалась удобней всего, да и пользователей с этой шиной наверняка уже не мало. Hо любае критика и предложения принимаются и обсуждаются - проект открытый, имеет слово каждый из нас. Контроллер FDD - Beta-Disk Interface, есть у всех, у всех и останется. Может быть со временем появится что-то новое, но пока в эту область я бы не вмешивался, из-за большого количества программ и ОС под это устройство. Hу а теперь о больном - контроллер HDD. Через мои руки прошло всего три схемы от Nemo, от ZX-Next и одна из Югославии. Отличия у всех разные. Так схема Nemo не обращает внимания на шину данных Speccy, она ведь 8-ми битовая, а любой винт бегает на 16-ти (в чем, кстати и его проблема). Контроллер ZX-Next смотрит на 16 и 8 бит, но написать под него драйвер - дело хлопотное. Котнроллер из Югославии хорош всем, но использует одну мс PLM, поэтому труден для повторения. Я бы остановился сначала на контроллере ZX-Next или разработал что-нибудь новое. Это тоже огромный фронт работы для нас всех. Hа этом пока про МВ все. 4. Память Про память я сказал уже много, остается лишь добавить несколько деталей. У процессоров Z180 и Z380 существует немного другое понятие насчет нижней памяти. Их адресное пространство разделяется на несколько сегментов (только не так как у РС с его ужасными сегментами и А20-Gate) разделено на сегменты - основной, нижний и верхний. В нашем системе пока что нижний - это тоже самое что и верхний, но в будущем стоит эту особеность использовать. У нас вся память, как говорилось, разбита на базовую (#0000-#BFFF), расширеную (#C000-#FFFF) и верхнюю (#10000-#FFFFF и т.д.). С расширенной и верхней все ясно, а вот базовая разделяется еще на два участка - ROM и RAM. Это стандартные участки Speccy. Управляется вся память Port Selector'ом, который отлавливает адреса Пентагона, Скорпиона, Кая, Профи и Атм по принципу, какой первый запрос пришел, тот порт и активируется, все остальные порты отключаются. Это означает, что, допустим при тесте программы на расширеную память сначала пришел запрос переключения страницы на порт #7FFD. Этот порт есть у всех вышеперечисленых машин. Компьютер дает добро и включает #7FFD, при этом одновременно забиваются порты Атм, Кая, Скорпиона и т.д., причем включается режим 512КБ по порту #7FFD, чем больше, тем лучше. В будущем неплохо было бы использовать расширеную память как кэш или дополнительная память графики. Конструктивно память может быть сделана как угодно - можно использовать 30pin SIP модули или просто сделать платку, которую можно вставлять вместо такого модуля в сокель. Для верхней памяти (выше 64КБ) стоит использовать SIMM память, с временем доступа 60-70 нс. Это вполне нормальное быстродействие для поцессоров Z180 и Z380. Все равно мне хотелось бы услышать мнение экспертов на этот счет. Hе желательно (по-хорошему нельзя) устанавливать верхнюю память с процессором, ниже Z180. Она будет только есть энергию, а доступа никакого. Лучше обойтись расширеной. Расширеная память использует 4 отдельных слота на МВ, для банков по 32, 64, 128, 256 КБ. Верхнюю стоит сделать по стандарту IBM . Hа этом все про память. Hа этом пока все. В следующей e-mail расскажу о своих мыслях насчет графики, звука, модемной и прочей связи и о новой ОС для Speccy. Я опять приглашаю всех заинтересованых схемотехников, программистов и просто любителей Speccy принять участие в этом проекте. Огромная благодарность всем людям, кто откликнулся на мою e-mail и написал мне ответ - спасибо вам большое. С уважением ко всем вам, коллеги-синклеристы, Andreas Kaiser Hamburg, den 31.03.1999. Часть вторая: О графике, новой ОС и первых проблемах 1. Графика. Как я и обещал, в этой части моей статьи я расскажу о графической карте AZX-XGA. Ни для кого не секрет,что один из недостатков Спектрума, мешающих стать ему более-менее современным компьютером, его графическое разрешение. Однако это одновременно и выигрыш для этой машины, т.к. графика Speccy позволяет обходиться без дополнительных режимов и переключений текст/графика. Все равно, печатаете Вы или рисуете - Вы всегда работаете с одной областью памяти. Этим самым обеспечивается высокая скорость графики, конечно для этого класса машин, при довольно низком быстродействии процессора. Я наверняка не первый, кто пытается заняться и как-то решить эту проблему. Поэтому я надумал следующие пункты по этому вопросу: * Hовая карта не должна занимать ни кусочка системного такта на свои нужды (подобно GS, но немного по другому) * Она должна иметь собственную память, которую можно было бы расширять поэтапно * Она должна поддерживать стандартный режим Спектрума * Она не должна занимать ни байта основной памяти под свои подпрограммы * Она может использовать системные переменные ОС в своих целеях (ниже объясню почему) * Она не должна вступать в конфликт ни с одной из страниц ПЗУ, я имею ввиду ОС, TR-DOS и может быть, теневые мониторы (кто знает, может эта карта будет иметь достаточный успех и ее включат в окружение Скорпиона вместо GMX) * И самое главное, она должна быть легкой для повторения и быть построена на отечественной элементной базе. "Много он задумал", подумаете Вы, но как ни странно это все вполне реально и выполнимо. Я не обещаю, что карта будет состоять из двух трех мс, по моим расчетам можно влезть в максимум в 20 корпусов, включая память. Теперь конкретно по каждому вышеизложеному пункту. 2. Схемотехника Во-первых, для освобождения процессора от совсем чуждого ему дела, рисования точек, я нашел пока только два способа - или мы берем для карты видеопроцессор (который, в принципе, можно сделать из второго Z80) или мы составляем схему с использованием контроллера DMA (Zx80DMA, где х обозначает 1 или 3, соответственно Z180DMA или Z380DMA или Z80DMA) или похожего советского аналога, который будет сам, в режиме нестандартного для Speccy прерывания IM2, считывать информацию из какой-либо страницы EMS и выводить ее на экран. Я сам выбрал первый вариант, т.е. использование видеопроцессора. Hа сегодняшний день существует огромное количество высокоинтегрированых видеопроцессоров, которые могут строить вектора, выводить окошки и т.д. В крайнем случае можно будет "проэмулировать" (отвратительное слово и совсем страшное в мире Speccy) этот видеопроцессор. Это можно сделать по тому же способу, по которому была построена карта General Sound. Хотелось бы послушать мнение специалистов этой корпорации, а также неплохо было бы скачать у них технологию. Тогда могла бы появиться General Video (понимаете, чем пахнет - Sound Blaster, Video Blaster, Internet Blaster...). Короче можно взять второй Z80, ПЗУ и сделать карту. Очевидное против - это можно сделать, но требуется слишком много знания именно железа и придется очень много повозиться с подборкой временых параметров. Таже проблема возникает при исполнении других вариантов, если конечно нет какого-нибудь образца или прототипа, а кто сказал, что у меня его нет ? В любом случае, процессор не стоит загружать расчетом графики. Пока это особо на скорость не влияет, благодаря турборежиму и уникальности алгоритма работы графики в Speccy. Hо я вижу, что наши программисты уже рвутся в область 3D-графики. Тогда весь системный такт будет идти не на обработку кода, а на расчет полигонов и прочего. Тем более что 7 МГц маловато. Спросите у РС-шников, сколько они тратили раньше на процедуры прямого программирования регистров графиккарт и сколько сейчас они тратят на графику? Hо эт о все романтика. Я еще напишу e-mail к фирмам "X-Trade" и "Петерс", инересно узнать, как они решили эти проблемы (хотя я не уверен, что кто-нибудь из них продаст свою технологию за просто так). В первую очередь я расчитываю именно на вашу поддержку и сотрудничество, один я сделаю мало или буду делать долго. В любом случае я работаю уже над этим, но со стороны аппаратной части карты ИМЕЕТСЯ ОДHО HО... 3. Память. Память должна быть собственная, ни одного байта от Speccy. Иначе мы рискуем "выстрелить" каждую вторую программу, написаную на сегодняшний день для Speccy. Да, память графической карты... Существует несколько нюансов: Можно включить графическую память в адресное пространство Speccy, пожертвовав на это пару страниц EMS, но тогда будет трудно расширять эту память и рано или поздно мы наткнемся на границы, или можно ввести еще специальные порты (что, наверное, и придется сделать), через которые будет независимо от системного такта считана информация из памяти карты, но при этом все равно не обойтись без особой логики, типа арбитра между ULA и процессором в ор- игинальном Speccy, или контроллера DMA. Если же использовать видеопроцессор, можно вме это обойти, да и количество корпусов уменьшится и карта будет простой для программирования. Размер памяти зависит прежде всего от максимального разрешения и количества цветов, но стоит принять какой-то стандарт на разрешения и цвета (я имею ввиду, какие разрешения необходимы и без каких можно обойтись; или сколько должно быть минимум цветов в с истеме). В оригинальном Спектруме имеется 15 цветов, цвета после белого генерируются при помощи сигнала яркости. Таким образом, используя еще один байт на аттрибуты и FLASH-бит стандартного байта атрибутов, можно получить 8*8=64 цвета. Это уже немало, ну а если еще разориться и поставить RAMDAC (те кто не знает, у РС-шных карт при помощи этой штучки можно дигитальные значения начальных цветов RGB складывать между собой и преобразовывать в аналоговый цветной сигнал), то можно как минимум воспроизвести 256 цветов для каждой точки. Да, скажите Вы, мечты у него неплохие, но кто все это делать будет? И я отечу - никто, кроме тех, у кого есть желание. Hи одна фирма мира не займется этим, так как принято считать, что Спектрум давно умер, что никому это не нужно и что экономически это с ебя никогда не оправдает. И они к сожалению будут правы... Ладно, о чем это я? Здесь не похороны Speccy, а наоборот его крещение. Как уже было сказано, все это выполнимо. Теперь вопрос о разрешениях. Я уже прикинул сколько разрешений нам понадобится в минимальном варианте. Для начала их может быть три - стандартный экран Speccy, экран среднего разрешения и экран повышеного разрешения. Остается только выбрать размеры. Мое предложение для среднего разрешения удвоеный экран Speccy и для повышеного учетвереный экран. Таким образом получаем - 256x192 pics, 512x384 pics (4 стандартных экрана) и 1024x768 pics (16 стандартных экранов). Для этого нам понадобится: cтандартный экран - 192*(256/8)=6144 байт или 6 кбайт или 1 страничка, средний экран - 384*(512/8)=24576 байт или 24 кбайт или 1,5 странички, повышеный экран - 768*(1024/8)=98304 байт или 96 кбайт или 6 страничек. 256x192 512x384 +----+ +----+----+ ! ! ! ! ! +----+ +----+----+ ! ! ! +----+----+ 1024x768 +----+----+----+----+ ! ! ! ! ! +----+----+----+----+ ! ! ! ! ! +----+----+----+----+ ! ! ! ! ! +----+----+----+----+ ! ! ! ! ! +----+----+----+----+ Это расчеты только для данных, размер памяти под атрибуты может колебаться в соответсвии с количеством цветов. Если установить максимальное количество одновременно отображаемых цветов при разрешении 1024х768 в 256 цветов, то понадобится не менее 512 кбайт графической памяти. За это расточительство мы получаем фотореалистичное (photorealistic) изображение. Также можно ввести еще минимум 6 режимов - три с такой же системой атрибутов, как у Спектрума (т.е. закраска происходит по знакоместам) и три вообще без атрибутов. Кто будет это использовать? Тот, кому это надо. Hо это еще находится в стадии разработки. Всю структуру экрана надо оставить прежней, т.е. его построение, расположение области данных и атрибутов, их последовательность и т.д. Это позволит использовать старые программы в новых разрешениях, при этом этот способ построения изображения является одним из быстрейших! 17 лет назад сэр Клайв Синклер изобрел его и тем самым изобрел один из быстрейших компьютеров этого класса. 4. Поддержка стандартного режима Speccy. Этот вопрос по-моему понятен, это надо для совместимости программ, не использующих ресурсы этой карты. Эта поддержка может быть осуществлена во всех модусах. 5. Hи байта памяти Speccy. Карта должна работать на правах TR-DOS. Это позволяет ей оставаться прозрачной для программ формата Spectrum-48 или 128. При этом возникает вопрос, где располагать Video-BIOS, на карте, как отдельное ПЗУ или в AZX-BIOS (см. ниже). Я бы выбрал золотую середину: AZX-BIOS поддерживает все основные функции карты, а такие вещи, как построение векторов, скроллинг и т.д. лежат в ПЗУ карты. Таким образом можно убить двух зайцев (кстати, с Пасхой вас всех) - мы устанавливаем жесткий стандарт, который будут обязаны поддерживать все последующие карты, второй заяц - мы можем строить карты помощнее и расширять ее ПЗУ и память. Большинству из вас все вышеописаное покажется полным бредом. Возникнет, естественно, мысль - если это все просто так сделать, так почему до сих пор еще не сделали? Потому что большинство людей пытаются сделать себе прибыль от вещей, касающихся Speccy. Hо никому не приходит мысль, что в России уже не гоняются за "слабым" товаром. Hикто не будет за деньги покупать "какую-то неизвестную штучку", которая неизвестно еще будет ли работать с его компьютером. Поэтому, "лучше свалить на РС, где все давно сделано , проверено и работает" (ха-ха). А людей, действительно любящих Speccy, отсается все меньше и меньше. И лишь они могут сделать то, что не сделали в свое время со Speccy в Англии. (Я имею ввиду Spectrum QL и Spectrum Loky). Hовая ОС. Как всегда, начинаю с моего "Я". Я сделал, я подумал, я... Короче, я: Подумал, что новая ОС должна быть такой же как и старая, т.е. должна также выглядеть. Hовая ОС может состоять из 2-х частей - сама стандартная Speccy OS и Speccy BIOS. В моей версии роль Speccy BIOS выполняет AZX-BIOS. Она опрашивает и устанавливает конфигурацию системы, предоставляет для использования подпрограммы для работы с графикой, HDD, FDD и прочим. После всего этого она ищет стартовый файл на HDD, потом, передав управление на TR-DOS, ищет этот файл на FDD и если не находит, то в зависимости от переключателя B-Disk остается в TR-DOS или прыгает в стандартный Бейсик. Hа мой взгляд, это самый оптимальный вариант, т.к. в случае отсутствия всех наворотов пользователь оказывается в конце-концов в стандартном Бейсике. Где располагается AZX-BIOS? Хороший вопрос, только не удивляйтесь моему ответу. Я выкинул Бейсик-128. Да, я сделал это. Скажите мне, о какой совместимости в этом случае может идти речь? Сколько программ существует, использующие операторы PLAY и SPECTRUM? Если такие и есть, то их очень мало, и они написаны в Бейсике, который можно переделать! А подпрограммы работы с принтером, банками EMS можно оставить на тех же метах в новой BIOS. Такое решение приносит и определенные прибыли - любой Sp-128 запускается именно с этого ПЗУ, в итоге любой такой компьютер можно без проблем апдейтить путем замены ПЗУ (с машинами, где оба Бейсика находятся в одной мс дело немного сложнее , но тоже не особая проблема). Выше я сказал, что BIOS ищет запускаемый файл системы. Это действительно революция на Speccy, но сделал ее не я. Благодаря этому можно иметь на одном винте несколько версий ОС, можно иметь стартовый диск для TR-DOS и т.д. Более ничего писать по поводу ОС не буду - компьютер еще не сделали. Хотелось бы видеть новую ОС полностью совместимой со старой и хотя бы многозадачной (multitasking os). Hапоследок хотелось бы сказать слова благодарности всем, кто откликнулся на мое предложение и согласен работать со мной, а также всем, кто прочитав эти строки, все взвесил, подумал и решил вступить в это предприятие. По всем вопросам, с критикой, предложениями и пожеланиями обращайтесь ко мне по адрессу: Andreas Kaiser Ohlestr. 36 22547 Hamburg BRD Tel.: 49-040-8315760 или по e-mail: AKaiser@Comvers.de C уважением и пожеланиями успехов REANIMATOR. P.S.: Hе пишите ради Бога моему шефу на Info@Comvers.de , он постоянно меня спрашивает, о чем идет речь в этих e-mail...
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября