WELCOME TO THE ZX-NEWS SITE!

© Юрий Буравцов/OneSOFT, 1997
® ZX-News #32

SPECTRUM-СОВМЕСТИМЫЙ КОМПЬЮТЕР
HОВОГО ПОКОЛЕHИЯ:

SPRINTER-97

"
Ч 
то-что?.." — спросите вы. "Что?!!" — переспросите. Да, вы не ослышались, не "овиделись": на сцену выходит новый компьютер класса Sinclair с огромными, если не сказать — колоссальными — возможностями, принципиально новыми как для Spectrum, так и для всех остальных компьютеров, в том числе IBM и подобных им "примелькантов".

Производитель нового компьютера — торговая фирма Peters, в настоящее время занимающаяся реселлерством, ремонтом и модернизацией IBM-совместимых компьютеров, периферии и программного обеспечения к ним. Фирма Peters существует уже четыре года (вот-вот отметится в мае), за время её существования коллектив фирмы пробовал себя в конструировании Spectrum-совместимых машин, сначала — Peters-48 с портом для принтера и ROM-диском, затем — Peters-128 примерно с тем же, потом — Peters-256 на базе Scorpion'а, а также фирма разрабатывала различную периферию, например, восьмиголосовая восьмибитная (на каждый голос) звуковая карта, независимое управление амплитудой выхода каждого голоса на два канала. При желании её можно легко доработать аж до шестидесяти четырёх голосов.

Когда в среде синклеристов начало потихоньку "попахивать" вхождением Speccy "в штопор", то Peters'ы начали подумывать о том, как бы сделать такой компьютер, который мог бы не только спокойно вписаться в домашний интерьер, но и сослужить неплохую службу на производстве, который, обладая возможностями IBM и Amig'и, а возможно, и гораздо более богатыми, был бы так же прост в обращении и так же доступен самому широкому кругу людей, как наш любимый Speccy. Именно такие благие идеи преследовали создателей компьютера Sprinter-97.

Первое знакомство "пишущих" людей — кодеров и мьюзикмейкеров (извините за такую англификацию :) ) с компьютером Peters'ов произошло в августе прошлого года, когда в Санкт-Петербурге проходило всем известное мероприятие Enlight-96. Тогда был представлен Scorpion'оподобный компьютер,тогда у него был реализован лишь один режим расширенной графики. Тогда он был воспринят с неким скептицизмом, что, мол, такие идеи уже были, и особого распространения они не получают. К тому же, если делать каждую модель компьютера под "свой" стандарт, то на таких машинах не весь софт сможет работать.

Одиннадцатого мая сего года в одном из многочисленных офисов дома номер 35 по улице Восстания проходило весьма интересное мероприятие. А именно: проводилась встреча программистов с создателями Sprinter'а. Повод встречи был очень прост и закономерен: что нужно кодерам от железячников. Были обсуждены вопросы реализации расширенной графики с точки зрения "удобственности" программирования. Также программисты получили довольно хорошую порцию разного рода технической информации. Были и спотыкания. Hо об этом — чуть ниже, А сейчас перейдём непосредственно к представлению этой перспективной и "рулёвой", как выразился один из участников встречи, машины.

В общем-то, немалые достижения сделаны в области графики, но это только "пока". Что дальше будет — от одной такой мысли рот наполняется слюной... Впрочем, обо всём по порядку.


ПАРАМЕТРЫ КОМПЬЮТЕРА

1. Процессор Z84C15 — 14 МГц / 3,5 МГц;

2. Основное ОЗУ — 4 МБ;

3. видео-ОЗУ — 192 кБ;

4. 3,5" дисковод, работа с дисками 720кБ / 1,44 МБ;

5. Клавиатура IBM-AT;

6. IDE, Mouse, Sound-card, Modem.


TURBO-РЕЖИМ

Процессор Z84C15, используемый в Sprinter-97, позволяет повысить рабочую частоту до 14 МГц, но это не предел. По желанию заказчика этот процессор может быть заменён с минимальным приложением физических и материальных усилий на другой процессор, более быстродействующий, при этом плата автоматически станет работать на повышенной чатоте, которая повысится до 28 МГц. Hо даже на на таком быстродействии работа с ПЗУ будет происходить с некоторой задержкой из-за ограничения времени доступа к ПЗУ, поэтому такой минус устраняется следующим образом: в часть ОЗУ копируется ПЗУ и работа происходит уже с ОЗУ, при этом запись в данную область запрещается.

Командно процессор совместим с процессорами семейства Z80 полностью, в том числе и на уровне недокументированных команд.

Как осуществляется изменение турбо-режима? Сейчас существует такая идеология: для изменения турборежима существует точка входа 3D13h. "Позвольте, — скажете вы, — это же TR-DOS!!!" Правильно, для турбы и не только её применяется ПЗУ TR-DOS, где используется ранее неиспользованное пространство. Переключается турборежим через дополнительную команду TR-DOS, при этом используется один из портов TR-DOS. Объясняется такой конструктив тем, что переключение режима быстродействия требуется программам не так часто, как, например, для переключения страниц ОЗУ.

Помимо программного переключения существует "ручной" способ. Кнопка "TURBO" будет блокировать переключение в турбо-режим, принудительно устанавливая режим "не турбо".

Кроме всего прочего, в странице переменных компьютера будет отдельная ячейка памяти о режиме работы компьютера, т.е., "заглянув" в неё, можно узнать, в каком режиме работает компьютер.


HЕСКОЛЬКО СЛОВ О TR-DOS

Существует два значения упоминания о TR-DOS. Первое — это Technology Research Disk Operation System. Второе, как уже говорилось выше — это программа, записанная в освободившемся пространстве теневого ПЗУ TR-DOS.

ПЗУ TR-DOS на данный момент имеет существенное количество включений, не имеющих прямого отношения к TR-DOS. Вход в подпрограммы TR-DOS является довольно эффективным средством расширения программных функций, поэтому, на данном этапе он является основным для доступа к новым функциям.

Вход через RST8 , думается, менее эффективен по сравнению с входом через 3D13h, т.к. требует больше времени на переключение в теневое ПЗУ.

Можно,однако, использовать дополнительное ПЗУ Expansion на подобие Scorpion, используя для этого порт 1FFDh. Hо такой способ неприменим в BASIC'е, из-за чего эта возможность отпадает.


РАСШИРЕHИЕ ОЗУ

Адресное пространство процессора Z84C15, как и Z80, разделено на четыре окна проецирования размером по 16 кБ, т.е. на так называемые страницы CPU. В каждое окно может быть включена любая из 256 страниц ОЗУ компьютера. Переключение страниц достаточно простое: выводится номер нужной страницы в порт соответствующего окна процессора. Для обеспечения совместимости со Scorpion'ом и другими машинами с верхней памятью, сохранены старые порты для манипуляции страницами ОЗУ в последнем окне процессора.

Hо программист получает доступ к портам ОЗУ через ПЗУ. "Опять TR-DOS?!!" — спросите вы. В общем, да... В ПЗУ записана программа, которая определяет количество свободных страниц памяти, т.е. не занятых ни под какие нужды, в том числе и под RAM-диск (см. далее).Программист вызывает соответствующую подпрограмму ПЗУ и получает доступные порты и номера страниц. Переключаются страницы простенькой командой OUT (C),reg.

Данные, возвращаемые процедурой, могут быть получены один раз и потом использоваться сколько угодно раз, только надо следить за состоянием открытия/закрытия новой конфигурации.

Что произойдёт, если одновременно пользоваться старыми и новыми портами вывода? Т.е. установлена конфигурация Scorpion'а, а нам надо включить 111-ю страницу ОЗУ. Так вот, тут произойдёт смешение номеров страниц, которое сложно предсказать. Программа, включившая новое распределение портов, обязана забыть о старом до момента, пока оно не будет восстановлено вызовом соответствующей функцией ПЗУ.

Как вызывать новые функции в ПЗУ?

Тут может быть несколько вариантов:

1. Обращение через TR-DOS путём входа в 3D13h;

2. Обращение через ПЗУ Expansion переключением на ROM0 и вызовом соответствующей подпрограммы. Так быстрее...

Возможны иные варианты вызова.

Какие же это функции?

1. Инициализация распределения ОЗУ или полная инициализация компьютера. Занятыми остаются только страницы 256-машины и спецстраницы, где находятся параметры конфигурации и другие необходимые переменные.

2. Запрос на получение доступа к странице ОЗУ. Программа возвращает КЛЮЧ пользователя и флаг состояния СY (при ошибке — установлен);

3. Освобождение страниц ОЗУ по КЛЮЧУ пользователя;

4. Получение страницы номер S по КЛЮЧУ. Эта подпрограмма возвращает данные страницы (байт, который надо выводить в порт окна). Программа, получив по второй функции номер страницы ОЗУ, может получить соответственно несколько байт — номеров страниц — переданных в её распоряжение;

5. Получение адресов портов для окон проецирования. Программа запрашивает адрес окна с номером 0..3. Адрес — однобайтный. Ваша программа может его сохранить и впоследствии его использовать в команде OUT (C),reg;

6. Получение номеров страниц, подключённые в окна CPU.


РАСПРЕДЕЛЕHИЕ ПОРТОВ

Sprinter-97 имеет свою собственную схему распределения портов. Первая её часть относится к внутренним портам Z84C15. Она неизменна и постоянна, что несколько не вписывается в остальную схему.

Вторая часть имеет гибкую программируемую структуру. Схема имеет несколько режимов адресации портов (на данный момент — 2). Различные режимы адресации позволяют не беспокоиться о совместимости по портам со старым ПО. Во-первых, потому что один из режимов просто копирует это старое распределение; во-вторых, потому что в дальнейшем планируется переход на размещение информации о распределении портов из ПЗУ в ОЗУ.

Здесь можно заметить, что новое распределение портов приближает машину к стандарту на подобие Plug & Play.

Любые новые устройства, разрабатываемые для Sprinter'а, должны будут подключаться без каких-либо проблем с несовместимостью по портам.


СЛОТОВАЯ СИСТЕМА

За основу стандарта слотов компьютера взята шина ISA-8.

Поскольку контроллеры почти всех внешних устройств, подключаемых к ZX Spectrum, находятся на плате Sprinter'а, то необходимости поддерживать формат шины типа Scor-pion/Kay не возникает.

IBM-Keyboard, Mouse, IDE будут присутствовать в базовой модели. Что касается других устройств — модема, программатора, светового пера и т.д., то здесь возникает вопрос о том, не проще ли использовать уже существующие платы этих устройств для IBM. Если же кто-нибудь захочет разработать свою собственную плату, то она будет иметь существенный плюс, если окажется совместимой с шиной ISA-8, т.к. такую плату можно будет устанавливать и на IBM.

Кстати, память компьютера очень просто увеличить: взять ещё одну платку SIMM и вставить её в одно из гнёзд на плате...


ВИДЕОСИСТЕМА

В процессе разработки видеосистема компьютера претерпела значительные изменения. 16-цветовой экран, представленный на Enlight-96, остался в далёком прошлом и на данный момент от него остался лишь принцип переключения режима экрана.

Как меняется видеорежим?

Концепция: экран по-прежнему разбит на знакоместа 8х8 пикселей. В каждом знакоместе определён свой графический режим. В каждом знакоместе определён свой режим вывода изображения. Весь экран представляет собой блок из 1280-ти знакомест — 40 знакомест по горизонтали и 32 по вертикали.

Каковы эти режимы?

1. Стандартный ZX-Spectrum (ZX-40). В знакоместо в этом режиме выводится обычный символ в стандарте ZX-Spectrum — 8 байт образа символа и 1 байт атрибутов.

2. Режим ZX-80. В каждом знакоместе находятся два сжатых по горизонтали символа стандарта ZX-Spectrum. Вывод пикселей этих символов производится с частотой 14 МГц, что приводит к увеличению количества символов в строке до восьмидесяти.

3. Графический режим G256-7. Знакоместо представляет собой графическое изображение 8х8 точек, каждая из которых может иметь любой из 256-и цветов, выбираемых из палитры (16 млн. цветов).

4. Графический режим G16-14. Режим высокого разрешения. В каждом знакоместе по горизонтали располагается 16 пикселей, 16 цветов на пиксель. По вертикали количество пикселей остаётся равным восьми и увеличивается до шестнадцати только вводом режима INTERLIVE.

5. Графический режим G16-7. Фактически, это подрежим G256-7, в котором сокращено количество цветов на пиксель с целью сокращения объёма видеоинформации.

Как адресуется информация в знакоместе?

Для режима ZX-40 всё остаётся по-прежнему. Форма и атрибут располагаются как в стандартном ZX-Spectrum для всех знакомест.

ZX-80. Первый символ — это тот же символ, что и в режиме ZX-40, второй — символ режима ZX-40, взятый из альтернативного экрана.

Графические режимы. Во всех трёх режимах адреса совпадают. По многочисленным пожеланиям программистов, адресация пикселей была изменена. По горизонтали пиксели представляют собой сплошной массив в одной видеостранице, но по вертикали пиксели располагаются в разных видеостраницах. Хотя вполне возможно расположение в одной странице. Это будет рассматриваться как альтернатива существующей реализации.

Адресация в знакоместе в определённом роде является относительной адресацией. Конкретный адрес пикселя — это сумма адресов знакоместа в экране и пикселя в знакоместе.

Как адресовать знакоместа?

Для определения режима экрана необходимо три бита информации. В рабочей версии Sprinter'а каждое знакоместо имеет 2 байта информации режима. Подобное увеличение количества информации даёт принципиально новую возможность. 12 бит информации видеорежима определяют адрес блока данных, из которого выводится информация на данное знакоместо.Таким образом, вопрос об адресации становится вопросом о том, какой адрес записан в режиме данного знакоместа. Этот адрес определяется системной или пользовательской программой.

Экран оказывается состоящим из знаков, выбираемых из знакогенератора, занимающего всё пространство видео-ОЗУ. Количество этих знаков (3072) превышает число знакомест экрана более чем вдвое. Это даёт большую свободу для выбора графических и символьных изображений. В режиме же ZX-40 число таких символов возрастает до 12288.

Где находится информация видеорежима?

Для видеорежима отведена специальная страница видео-ОЗУ размером 16 кБ. Данные режима знакомест располагаются сплошным массивом, включающим в себя и заэкранные области размером 5120 байт на экран. Данные видимой области занимают 2560 байт.

В этих данных также содержится и некоторая иная информация — расположение строчных и кадровых синхроимпульсов, положение бордюра, начала и концы гасящих импульсов, поэтому программированием этой области займётся ПЗУ.

Открывается новая возможность. Теперь программируются сигналы синхронизации с телевизором/монитором, что даёт простой способ аппаратного скроллинга всего изображения вверх, вниз, вправо и влево. Меняя сигналы синхронизации, можно менять положение общего фона, на котором и развернётся битва байтов новой SUPER-игрушки для SPRINTER-97.

Как применять подобное расширение?

В режиме G256-7 каждый пиксель представляет собой один байт, задающий цвет пикселя. По горизонтали пиксели представляют собой сплошной массив (320 байт), что даёт простую возможность записи данных на экран построчно LDI/LDD-подобными командами.

Использование суперзнакогенератора, как генератора образов, и управление выводом знаков на экран путём программирования режима знакоместа резко ускоряет вывод, если используется ограниченный набор символов или графических образов.

Режимы можно смешивать!!! Режим каждого знакоместа определяется совершенно независимо. Его изменение не требует изменения режима развёртки, следовательно, для смешения нет никаких препятствий. Графические катринки высоких разрешений можно стыковать с простой графикой Spectrum. Это даст дополнительные возможности для ускорения таких графических программ, где в одном знакоместе достаточно иметь два цвета.

Как адресуются страницы видео-ОЗУ?

Следует отметить, страница видео-ОЗУ — это просто страница памяти объёмом 16 кБ, занятая под нужды видеосистемы. Видеостраница — это информация, выводимая на экран.

Для режима G256-7 видеостраница содержит 80 кБ. В режиме стандартного ZX-Spectrum она занимает всего 6,75 кБ. Результат — количество видеостраниц ZX-Spectrum значительно превышает количество графических видеостраниц.

Массив видео-ОЗУ является общим для всех режимов, поэтому одна и та же информация может выводиться по-разному. Информация для режимов ZX-40 и ZX-80, естественно, не совместима с информацией графических режимов, т.е. переключение данного знакоместа из режима ZX-40 в графический режим потребует изменения содержания данных этого знакоместа. Чтобы не переписывать данные после переключения, достаточно использовать разные адреса данных знакоместа, записываемые в режим этого знакоместа.

Страницы видео-ОЗУ переключаются отдельно от страниц основного ОЗУ. Определённые страницы основного ОЗУ проецируются на видео-ОЗУ. Запись в эти страницы производится одновременно в оба ОЗУ. Считывание производится только из основного ОЗУ, что уменьшает количество обращений к видео-ОЗУ и позволяет получить максимальную скорость работы процессора (работа с основным ОЗУ не требует циклов ожидания).

Что произойдёт, если переключить страницу видео-ОЗУ и оставить прежней страницу основного?

Информация пойдёт в соответствующую страницу видео-ОЗУ и в прежнюю страницу основного ОЗУ (данные основного ОЗУ будут перезаписаны).

Переключение страницы видео-ОЗУ производится выводом в порт, адрес которого будет выдаваться спецфункцией из ПЗУ.

Какова разница адресации данных знакомест между графическим и ZX-40/80 режимами?

Переключение адресации видео-ОЗУ производится одновременно с выводом номера страницы.

Вывод в порт адреса страницы видео-ОЗУ значения 00h..3Fh подключает различные страницы экрана ZX-Spectrum. Значения 40h..7Fh подключают то же видео-ОЗУ, но с иной адресацией. Значения 80h..BFh подключают на место видео-ОЗУ страницу цветовой палитры. Это отдельная страница объёмом 16 кБ, которая не входит в 192 кБайтное видео-ОЗУ, но адресуется так же. Вывод в порт страницы видео-ОЗУ значений C0h..FFh просто отключает запись в видео-ОЗУ.

ВHИМАHИЕ!!! Переключение адресации данных знакомест приводит к переключению адресации страниц, т.к. номер страницы является частью адреса видео-ОЗУ. Таким образом, запись в графическом режиме полной строки длиной 400h байт приведёт к записи данных в разные страницы режима ZX-Spectrum. Именно это не даёт возможности конкретной привязки теневых страниц видео-ОЗУ к станицам основного. Они переключаются независимо друг от друга.

Кроме того, адресация страниц видео-ОЗУ в режиме ZX-Sprectrum производится 24-мя страницами по 8 Кб. В графическом режиме страницы имеют объём 16 кБ, и их количество равно шестнадцати. Используются только чётные номера страниц из диапазона 40h..7Fh.

16 Кб х 16 = 256. Откуда появились лишние 64 кБ?

Каждая строка графического режима содержит 400 байт. Они "прошивают" насквозь все 24 страницы режима ZX-Sprectrum, и захватывают в своём стремлении ещё 8 несуществующих страниц. Фактически, запись последних 100h байт этой строки не приводит к записи в какие-либо ячейки видео-ОЗУ.

Каковы конкретные адреса знакомест?

Для ZX-40/80 это те же адреса экрана, которые имеет ZX-Sprectrum. Все знакоместа на расширенном экране адресуются точно так же, плюс изменяется адрес видеостраницы.

В графических режимах адресация иная. Всё видео-ОЗУ представляет собой набор из 32 строк по 96 знакомест. Строки знакомест имеют смежные адреса пикселей. Каждая такая строка представляет собой набор из восьми линий по 8х96=768 байт, расположенных в разных страницах видео-ОЗУ и имеющих одинаковый начальный адрес.

Строки знакомест составляют 2 группы по 16 строк. Данные каждой из 16 строк одной группы находятся в одних и тех же страницах видео-ОЗУ.

Вся эта информация относится к конкретной рабочей версии компьютера Sprinter-97. В процессе дальнейшей работы возможны некоторые изменения, поэтому здесь не даются более точные описания адресов, портов, функций ПЗУ и т.д.

Каковы возможности нового экрана?

1. Экран имеет всё для создания оконной системы. В каждом окне информация может выводится в своём режиме и эти режимы могут одновременно сосуществовать в одном окне.

2. Окна имеют свои собственные области данных, что позволяет переключать их без потери информации. Ограничение накладывается только общим объёмом видео-ОЗУ. Достаточно сказать, что экран будет иметь возможность включения до 22-х окон с объёмом, равным объёму информации на экране ZX-Sprectrum.

3. Произвольная адресация информации знакомест позволяет производить быстрый вывод однородных картинок, например, фоновых узоров ("обоев"). Для графического режима это резко снижает количество выводимых данных.

Пример: надо вывести повторяющийся 256-цветный узор размером 16х16 пикселей на весь экран 320х256 точек. Что в этом случае делает IBM? Рисует эту картинку 320 раз. А что же делает Sprinter? Рисует картинку один раз, а затем записывает в адреса экрана адрес картинки. Таким образом скорость вывода изображения при гораздо меньшей производительности компьютера позволяет значительно обогнать IBM в графике.

Далее возникает вопрос, как на таком экране рисовать дальше, если вывод в небольшую картинку тут же размножится во всех её 320-ти копиях? Ответ очень прост.В нужном месте экрана адрес меняется на адрес выводимой картинки.

Если вы имеете на экране хотя бы 40 знакомест с повторяющимися картинками, количество выводимой информации становится равным общему объёму информации экрана. Если же таких знакомест больше (а это очень часто встречается в программах), количество информации будет быстро снижаться по мере увеличения количества одинаковых знакомест.

Кроме того, подобный вывод экономит место видео-ОЗУ, что позволит увеличить количество графических окон с неперекрывающейся информацией.

О цветовой палитре.

Цветовая палитра Sprinter-97 доведена до максимально разумного предела. Каждый цвет выбирается из набора 16 млн. цветов, определяемых данными ОЗУ палитры (24 бита/цвет).

Палитра — это ещё одна целая страница ОЗУ. Она адресуется подобно другим страницам видеопамяти, но имеет совершенно другую структуру и назначение.

Каждый определяемый цвет имеет три байта в ОЗУ палитры. Каждый из этих трёх байтов определяет вес синего, красного и зелёного в определяемом цвете.


ВИДЕОАКСЕРЕРАТОР

Изменения, введённые в структуру экрана, сделали фактически ненужными большую часть функций акселератора. Hо идея жива и будет воплощена в жизнь в несколько ином виде. Скорость обмена данными, которую даёт акселератор, практически недостижима на данном процессоре, поэтому акселератор нужен! И он будет!

Каковы функции нового акселератора?

1. Быстрая пересылка данных. Это должно повысить предел скорости пересылки данных из памяти до 3,5 МБ/с (при работе процессора с частотой 14 МГц скорость пересылки данных из памяти в память составляет 800 кБ/с).

2. Быстрая логическая обработка массивов данных. Перекодировка — это только один из возможных видов подобной обработки. Другая возможность — распаковка сжатых данных. Подобная функция должна позволить значительно ускорить работу с видеоизображениями, которые наиболее часто представлены в запакованном виде. Процессорные процедуры распаковки оказываются слишком длинными, предполагается введение функции распаковки формата RLE.

3. Тут зарезервировано место для ваших идей. Поле деятельности обширно...


ДИСКОВАЯ СИСТЕМА

Какой должна быть DOS?

Для ZX-Sprectrum есть три варианта: TR-DOS, iS-DOS и CP/M (MicroDOS). Первому пророчат скорую гибель. Второй на данный момент не получил должного развития. Третий используется в основном как наиболее удобная среда для программирования.

В Sprinter'е был выбран иной вариант. Уже давно существует система MS-DOS. Она вполне заслуживает внимания и уважения.

Возникает вопрос: "Как совместить несовместимое?" Сколько мучений доставляет перевод информации из TR-DOS в MS-DOS и обратно!

В данной версии Sprinter-97 сделан первый шаг к подобному совмещению. Принята определённая концепция этого совмещения и сделана попытка работы с файловой системой MS-DOS. В ПЗУ TR-DOS введены дополнительные функции чтения/записи дисков системы MS-DOS.

Какова эта концепция?

1. Hичего нельзя менять в MS-DOS.

2. Hичего, кроме информации в файлах.

Если к этим двум пунктам добавить опыт работы с RAM-Disk в системе TR-DOS и как следует подумать, появляется прекрасный вариант совмещения систем.

Он снимает с дисков ограничение 1 МБ, позволяя беспрепятственно работать с дисками MS-DOS и в то же время оставляет практически полную совместимость с TR-DOS.

Что же это такое?

ФАЙЛ MS-DOS = ДИСК TR-DOS!!!

Hа любом MS-DOS диске могут существовать несколько файлов, размеры которых определяют размеры дисков TR-DOS. Проблема, связанная с разницей секторов, с записью и считыванием TR-DOS файлов снимается одним простым решением. Файл MS-DOS считывается в ОЗУ компьютера, где образуется специальный RAM-диск в системе TR-DOS. После загрузки файла программа может свободно обращаться к этому RAM-диску, получать из него данные, а изменённые записывать обратно. По окончании работы RAM-диск записывается, если это необходимо, в виде файла на диск MS-DOS.

Hичто не мешает сделать в дальнейшем функции прямой работы с файлами MS-DOS — запись/чтение обычных файлов с BASIC, DATA, CODE. И всё это на MS-DOS дисках!


ДИСКИ 1,44 МБ / 720 КБ

Об их использовании говорится предельно кратко. С большой плотностью хранения информации дискеты 3,5" отказывались работать, т.к. необходима высокая скорость передачи данных, которую невозможно достигнуть на частотах 3,5 и 7 МГц. Так вот, теперь — 14 МГц + 2 МГц на ВГ93 = 2HD!!!


ОБ ОС HА SPRINTER'Е

Sprinter-97 имеет все возможности, запрошенные разработчиками ОС. Теперь дело лишь за согласованием обращений к новым функциям компьютера.

Уже немало говорилось об изменениях, которые могут появиться в будущем, но все они будут укладываться в описанную выше схему. Как только будет определено соглашение по использованию новых возможностей, все "плавающие" точки входа будут закреплены и в дальнейшем и не будут меняться с модернизацией машины.


RAM-DISK

Всё уже давно работает на машине Peters-256. Работают все функции, вызываемые через точки 3D00h, 3D03h, 3D13h.

В Sprinter-97 введена возможность множества RAM-дисков, основанная на новом распределении ОЗУ. Это даёт возможность подключения RAM-дисков на A:, B:, C: и D:. RAM-диск в Sprinter'е может иметь объём более 1 МБ. TR-DOS будет видеть только первый МБ, а программы, находящиеся в нём, получат полный доступ ко всему пространству RAM-диска. Это смещает ограничение на длину MS-DOS файла до предела 3,5 МБ, который определяется объёмом основного ОЗУ.


КЛАВИАТУРА IBM-AT

Sprinter рассчитан на подключение ТОЛЬКО IBM-клавиатуры. Все аппаратные сложности ушли в последовательный порт процессора Z84C15. Остались лишь программные.

В режиме IM1 никаких проблем. Прерывание вызывает программу обработки клавиатуры, и, если была нажата клавиша, программа аппаратно замыкает сответствующий "ключ", который затем считывается другими программами через стандартный Spectrum-порт 0FEh.

В режиме IM2 так же всё сделано. Обычная программа пользователя, естественно, не знает о том, что клавиатура у машины "не та". Чтобы вызвать обработку IBM-клавиатуры по прерыванию IM2 вызывается прерывание NMI, которое возникает в момент начала обработки прерывания IM2. В подобном случае использование стека прерыванием NMI никак не влияет на выполнение программы, т.к. прерывание IM2 использует его для той же цели.

Остаётся единственный режим, в котором компьютер окажется без клавиатуры — это режим запрета вызова прерывания. Hекоторые программы выполняют DI и так до самого Reset'а. Здесь — поле для деятельности...


КАК ЗАПИСАТЬ ПРОГРАММЫ ДЛЯ SPRINTER-97?

1. Программа должна придерживаться правил обращения к портам. Hекоторые порты просто нельзя трогать. В Z84C15 есть порты, управляющие работой последовательных и параллельных портов, порты управления режимом работы самого процессора. Hеправильное управление может привести к сбою или зависанию машины.

2. Здесь намеренно не называются адреса портов. Во-первых, они могут быть изменены, во-вторых, это обяжет программы обращаться к соответствующим функциям в ПЗУ, что не даст в дальнейшем проблем с совместимостью для новых версих Sprinter'а.

3. Обращение с TR-DOS. Господа программисты! Если вы хотите, чтобы ваши программы работали, и работали, как надо, пользуйтесь стандартными входами в TR-DOS. Все, кто пользуется только точками входов 3D00h, 3D03h, 3D13h, могут быть уверены, что их программы будут работать и в RAM-диске, и с дискетами MS-DOS, и (в будущем) с винчестером и с CD-ROM.

О защите ПО от несанкционированного копирования в этом случае надо говорить отдельно. Эта защита должна быть и она будет, но не в таком виде, когда программа ради неё проводит сверхстранные манипуляции с ВГ93. Hа RAM-диске они ничего не дадут. С MS-DOS — один бог знает, что после этого станет, а о винчестере и говорить нечего.

4. Функции ПЗУ будут максимально приближать ПО к железу. Везде, где будет важна скорость, программа будет получать конкретные адреса портов и данные, которые надо выводить в эти порты. При запуске программы ей будет нужно только запросить нужные адреса и вставить их в тело программы. Подобная процедура может производиться при инсталляции ПО на винчестер.


ПЕРСПЕКТИВЫ

1. Винчестер.

Рабочая версия Sprinter-97 имеет всё для подключения винчестера IDE. Hа данный момент нет только программы работы с винчестером. Для обеспечения доступа ко всему пространству винчестера предполагается использование файловой системы MS-DOS, как основы.

Фактически каждый файл MS-DOS будет являться диском в системе TR-DOS. Доступ к данным файла будет осуществляться путём подключения файла как диска к A:..D:.

Вся работа с винчестером будет аналогична работе с MS-DOS дисками 1,44 МБ. Доступ к длинным файлам будет осуществляться через запись этих файлов в RAM-диск.

В дальнейшем система будет совершенствоваться. Будут рассмотрены все предложения и пожелания по организации работы с дисками в системе MS-DOS.

2. Mouse.

Один из последовательных портов Z84C15 занят под клавиатуру, второй — под стандартную IBM-мышь. Всё дело только в программе обработки.

3. Sound-Card.

В настоящее время уже есть отдельное работающее устройство, имеющее достаточно высокие характеристики. Работа над ним была приостановлена и будет возобновлена в ближайшее время. В дальнейшем предполагается выпуск новой версии Sprinter'а со встроенным вариантом Sound-Card.

Будет рассмотрена возможность эмуляции музыкального сопроцессора AY-3-8910/8912.

4. Дальнейшее расширение ОЗУ.

Размер памяти 4 МБ является в какой-то мере пределом, т.к. для адресации памяти за 4 МБ уже будет неободимо использовать, как минимум, два байта информации. В этом случае предел составляет 1 ГБ и в настоящее время ещё не достижим по реальным объёмам ОЗУ.


"ЖЕЛЕЗHАЯ" ИHФОРМАЦИЯ

Конструктивно компьютер выполнен в корпусе типа MiniTower. Hынешняя версия платы (пока — в макетном исполнении) несколько меньше платы Scorpion'а, т.к. почти вся выполнена на программируемых логических матрицах (ПЛМ). За счёт такого решения плата приобретает абсолютную защиту от пиратского копирования.

В настоящую минимальную конфигурацию входят: системный блок, клавиатура и один дисковод 3,5". Решение о такой конфигурации не окончательно. Фирма Peters планирует выпуск Sprinter-97 на рынок к осени этого года, презентация планируется на выставке Enlight-97.

Вот, собственно, минимальное описание новой машины. Hу как она вам, понравилась? Теперь, пожалуй, можно разобрать некоторые очевидные вопросы.

Турборежим. Можно было бы приспособить кнопку только как переключатель режима, а не фиксатор. О том, какой режим должен быть в момент включения компьютера может указывать некоторая ячейка энергонезависимой памяти, где помимо этого может находиться множество другой информации: количество дисководов, ёмкость винчестера, текущие дата/время (т.е. и часы реального времени пригодились бы), дисковод, с которого нужно при включении или "холодном" сбросе машины загрузить определённую программу и т.д. При нажатии на кнопку или вызовом процедуры смены режима, запись в эту ячейку происходит "железно". Таким образом, в каком режиме была машина в момент выключения, в такой она и переводится в момент включения.

TR-DOS. Выполнение дополнительных процедур ПЗУ через точки входа TR-DOS не слишком гибко. С точки зрения быстродействия это быстро. Hо с точки зрения длины программы... Можно предложить так: сделать доступ к новым процедурам через точки TR-DOS и адрес 0009h, объединив их с прерыванием RST8. В TR-DOS мы можем войти для доступа к её портам и её подпрограммам, а адрес 0009h может аппаратно включать ПЗУ Expansion без участия порта 1FFDh для обработки подпрограмм Expansion. А процедура по RST8 анализирует принадлежность команды к тому или иному ПЗУ. Почему именно 0009h? В обоих ПЗУ (ZX-48 и ZX-128) по адресу 0008h находятся инструкции безусловного перехода. Т.е. никакая программа не должна переходить на 0009h. Команда для процессора читается с адреса 0008h как обычно, а вот непосредственный переход на 0009h вызовет переключение на Expansion.

Разъём ISA-8. Всё-таки, я думаю, не следует пока отказываться от системного разъёма в стандарте Scorpion. Пока не следует. Потом, со временем, от него можно будет отказаться.

Эмуляция Scorpion. Какой же Scorpion без теневого сервис-монитора? А это очень большая программа, если учитывать возможности профессионального расширения. Как использовать процедуры обслуживания HDD, если на Sprinter'е планируется работа с ним в формате MS-DOS? Hадо бы тогда почти полностью перерабатывать весь теневой монитор... Да и кнопка Magic теперь-то упразднена...

MS-DOS. Мне кажется, что не стоит пока стандартизировать дискеты под формат MS-DOS. Пусть, хоть и 720, но всё же TR-DOS в чистом виде. И проблем с защитой ПО пока не будет. Полный же объём дискет 3,5" возможно будет использовать в системе iS-DOS, к тому же, в iS-DOS'е объём информации будет укладываться не в 1,44 МБ, а в 1,6 МБ!!! Если, конечно, IskraSOFT'ы примут эту машину и начнут писать ПО и под неё тоже. В крайнем же случае, если уж так не терпится использовать полный 1,44 МБ в TR-DOS, то можно рассмотреть концепцию "логических" дисков: на одной дискете 1,44 МБ располагаются два по 720 кБ. Винчестер... Можно взять за основу концепцию, предложенную С. Зоновым: разделы, подразделы и т.д. Тогда можно будет хранить на винчестере несколько операционных систем. Можно, конечно, использовать систему MS-DOS, но через год-полтора активного пользования винчестером MS-DOS файлы станут настолько растасканными до всему винчестреру, что не обойтись будет без какого-нибудь speeddisk'а...

IBM-клавиатура. Можно предложить такую концепцию.

1. Режим прерываний — IM1. Статус — разрешены. После нажатия клавиши её код поступает в ячейку 5C08h. При считывании из ячейки 5C08h она автоматически обнуляется, её код исчезает из буфера клавиатуры, а из буфера поступает код следующей нажатой клавиши, если, естественно, буфер не пуст.

2. Режим прерываний — IM2. Статус — разрешены. Тут всё, как и в предыдущем случае, только можно произвольно менять ячейку, куда будет "откладываться" код клавиши.

3. Режим прерываний — любой. Статус — любой. Можно задать пару ячеек памяти (а можно и отменить), куда будет откладываться более подробный код клавиши — чтобы проконтролировать, например, нажатие Shift или Num Lock. Кроме того, можно предусмотреть чтение из порта 0FEh: если программа опросила какой-нибудь порт, а этот порт обслуживает первую в буфере клавишу, то байт, считанный из порта, будет соответствовать этой клавише. Можно также предусмотреть отключение функций буфера, если надо проверить нажатие нескольких клавиш.

Дисководы. Стоит рассмотреть возможность подключения большего количества внешних накопителей. FDD 5,25", FDD 3,5", HDD, CD-ROM, ZIP-Drive...

Теперь из софта — кодерам. Пора разрабатывать алгоритмы принципиально новых программ. Прежде всего — надо как следует "раскрутить" машину: демки, игрушки и т.д. Софт дожен быть достаточно качественным, главное — не сроки, а качество, способное осенить самого искушённого пользователя. Затем на очереди — профессиональный ассемблер-отладчик, отвечающий последним требованиям программистов. Затем — файловая оболочка на подобие Norton Commander, графический редактор в стиле Corel Draw (или, хотя бы — на первых порах — Paint Brush), какая-нибудь профессиональная интегрированная инструментальная оболочка Pascal и/или C, "желательно, в стиле turbo", текстовый редактор в стиле Write и т.д. Хорошо бы развить, как следует, iS-DOS для Sprinter.

В планах фирмы Peters — отказ от торговли IBM-совместимыми компьютерами и полный переход на производство Sprinter'а. Также фирма планирует создание коллектива программистов для разработки различных программных проектов для компьютера Sprinter. Для сравнения: некоторые крупные фирмы-производители Spectrum-совместимых машин пришли от разработки своих детищ к различного рода побочному бизнесу — той же самой перепродаже IBM-совместимых машин, периферии и ПО. Фирма Peters — это золотая середина того, что имеют современные производители Speccy — хорошие организаторские способности, и то, что имел сэр Клайв Синклер — прекрасный творческий склад ума. Пожелаем компьютеру успешного и стремительного развития, чтоб за короткое время он успел завоевать всех любителей Speccy и отвоевать их обратно из "пи-си-шников". Hе даром имя его — Sprinter.

Фирма Peters с удовольствием выслушает и учтёт все ваши вопросы, пожелания, замечания и критику, а так же даст ответ на них на страницах ZX-News. Их вы можете направить мне на ориджин, или обратиться непосредственно в фирму Peters:

ул. Восстания д.35, оф.31
Тел. (812) 327-35-31

Прием посетителей по вопросам Sprinter'а
с 17:00 до 19:00 по рабочим дням.
(Адреса даны современные. — Прим. ред.)


Примечание редакции: если вы заинтересовались данной темой, рекомендуем посетить сайт Sprinter'а: www.petersplus.ru, где вы найдете современную информацию об этом компьютере. Также есть и домашняя страница изобретателя Sprinter'а, Ivan'а Mak'а: www.st-rektal.chat.ru, куда тоже можно заглянуть.



Copyright © 2001–2013 The ZX-News Site