PDA

Просмотр полной версии : ASC CP/M (живая)



Barmaley_m
11.06.2014, 22:20
Многие на форуме уже слышали о существовании ASC CP/M, то есть версии CP/M, адаптированной для ZX Spectrum Андреем Сендецким (ASC) и Александром Шафиром (ASH), Днепропетровск.

ASC CP/M примечательна тем, что имеет относительно низкие требования к аппаратным переделкам. Необходимо только добавить 16Кб памяти по адресам 0000-3FFF, и открыть порты Beta-Disk, в минимальной конфигурации. Дополнительные видеорежимы не требуются, все работает на стандартном экране.

Также ASC CP/M, на мой взгляд, эффективно реализует потенциал возможностей компьютера, делая работу с CP/M приложениями удобной и приятной. Система сослужила мне хорошую службу в 1994-1997гг, когда Spectrum был моим основным и единственным рабочим компьютером. Написание и отладка программ, редактирование текстов - все это под CP/M делалось значительно эффективнее, чем под TR-DOS или IS-DOS с доступным на то время софтом.

После некоторых плясок с бубном мне удалось восстановить образ диска ASC CP/M с утилитами в формате .td0, который может быть запущен под модифицированным эмулятором Unreal, реализующим схему LSY-256. Под этой конфигурацией я работал в 1994-96гг.

Диск cpm256.td0 является загрузочным, т.е. CP/M стартует с него. Для корректной работы загрузчика и драйвера дисков CP/M необходимо включить эмуляцию задержек ВГ93. На диске содержатся утилиты, которые ASC поставлял в составе своей дистрибуции CP/M. В дистрибуцию входил еще один диск "DOCS" с документацией. Так как перевод файлов в образы формата ASC CP/M сопряжен с некоторыми трудностями, а документацию можно читать и на PC, то публикую просто файлы с этого диска в отдельном архиве.

Привожу также базовую информацию, необходимую для работы с ASC CP/M.

1) Логические дисководы. В ASC CP/M логические диски не соответствуют физическим дисководам напрямую. Принято следующее соглашение:

A: - RAM-disk. Под него задействована вся расширенная память, к которой CP/M-приложения не имеют доступа. В силу специфики CP/M именно "A:" предпочтительно использовать под рам-диск.

B: - дисковод 0 в оригинальном формате ASC CP/M (5 секторов на дорожке по 1Кб каждый)

C: - дисковод 0 в неизвестном мне формате (какой-то другой распространенный формат CP/M)

D: - дисковод 0 в формате CP/M ATM (16 секторов на дорожке по 256б каждый). Удобно использовать для перегонки файлов в CP/M ATM и обратно. Также можно использовать образы дисков в формате .trd. Недостаток - мало места на диске (640Кб вместо ~800Кб)

E: - дисковод 1 в формате AMS. Использовался ASC для подготовки дисков ASC Music Show (AMS). Можно подключить образ AMS1 или AMS2, которые я публиковал ранее на форуме, и просмотреть их содержимое.

F: - дисковод 1 в оригинальном формате ASC CP/M

G: - ???
H: - ???

---
2) Клавиатура. По моей просьбе ASC дал мне исходник своего драйвера клавиатуры (azkeyb.mac), на основе которого я сделал драйвер клавиатуры "Орель БК-08" под CP/M (mzkeyb.mac), который ASC впоследствии встроил в билд системы. Драйвер использует дополнительные возможности клавиатуры "Орель БК-08", которые сносно эмулируются прилагаемой версией Unreal. Большинство клавиш срабатывают как интуитивно задумано. Полное описание возможностей и режимов azkeyb и mzkeyb находится в прилагаемых фалах.

---
3) Утилиты. В дистрибуции имелось несколько необычных, оригинальных или переименованных утилит, краткое описание которых привожу здесь.

azfor.com - форматирование дисков в формате ASC CP/M. Если запустить эту утилиту под Unreal - то можно получить работающий образ диска в формате .td0 (спасибо, Alone, за большой труд!)

b.com - бейсик-80

copy.com - копировщик файлов by Alexander Shafir, который позволяет копировать файлы, имея только один дисковод. Обычно под CP/M такое невозможно, и CP/M-системы обычно имели по два дисковода.

d.com - вывод каталога и свободного места на диске

fcopy.com - быстрое копирование файлов на диск A: by Alexander Shafir. Предназначена, главным образом, для загрузки на RAM-диск нужных для работы файлов при старте CP/M, так как при старте CP/M сразу же вызывается команда fcopy *.* 1. В CP/M файлы имеют 8 пользовательских атрибутов, по которым можно задать для fcopy файлы, которые следует скопировать. Так, например, команда по умолчанию копирует все файлы с установленным атрибутом 1. Установить атрибуты можно с помощью P.COM. fcopy старается минимизировать число перемещений головки по диску, чтобы ускорить копирование.

l.com - компоновщик фирмы Digital Research. ASC и я использовали именно его для своих проектов.

lzcom.com - упаковщик исполняемых файлов под CP/M by ASC & A. Shafir. При работе требует много памяти, поэтому обращается мимо стандартных средств CP/M к расширенной памяти. Уничтожает содержимое RAM-диска. Распаковщик же упакованных файлов не используют никаких нестандартных средств, поэтому такие файлы запускаются в любой CP/M-системе.

m.com - ассемблер M80. Данная версия была модифицирована ASH чтобы директива DEFB пропускала символы с установленным битом 7, т.е. русские буквы и псевдографику.

p.com - Power

s.com - Submit

t.com - "ASH Dysplay Demo". Простая программка, отправляющая все введенные с клавиатуры коды на экран. Полезна для изучения возможностей драйверов клавиатуры и экрана.

v.com - VEdit. Очень мощный редактор. Требует некоторого времени на изучение консольных команд и комбинаций клавиш, но уж когда изучить - то работать становится песней.

w.com - тоже VEdit, но для режима 64 символов в строке.

zs.com - программа для загрузки образов ПЗУ для эмуляции в конфигурации расширения 256К by Alexander Shafir. Так как моя схема была несовместимой с шафировской, то эту программу так и не довелось использовать.

movcpm.com - моя утилита для воспроизводства загрузочных дисков ASC CP/M. В качестве аргумента принимает имя файла с образом системы. Имеются два таких образа: cpm256.sys - конфигурация LSY-256 с драйвером клавиатуры "Орель БК-08"; и cpm144.sys - оригинальная конфигурация с 144К памяти и клавиатурой ZX Spectrum +2, которой ASC пользовался сам.

trdos.com - копирование файлов CP/M <-> TR-DOS

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

Надеюсь, будет интересно! Если появятся вопросы - задавайте.

Djoni
12.06.2014, 17:02
А можно поподробней рассказать про компьютер LSY-256 архитектура ,порты управления памятью и пзу.

Диски ASC CP/M читаются под CP/M Profi , нужно выполнить команду в консоли для дисковода A:

> O A:4
Каталог дискет ASC находится на 4 цилиндре.

Беглый просмотр показал что программы работают под Profi :)

Утилита ZX Disk Studio почему та ругается на образы дискет созданные
модифицированным эмулятором Unreal.

В архиве правленый образ cpm256.fdi и cpm256.PRO для просмотра утилитой ATM CP/M Explorer.

https://yadi.sk/d/xIMabGT5TBZkF

Barmaley_m
12.06.2014, 18:27
А можно поподробней рассказать про компьютер LSY-256 архитектура ,порты управления памятью и пзу.
Схема и описание опубликованы на форуме здесь (http://zx.pk.ru/showpost.php?p=175798&postcount=74). Дополнительная информация имеется тут (http://zx.pk.ru/showthread.php?p=214209&#post214209), тут (http://zx.pk.ru/showthread.php?p=175798#post175798), тут (http://zx.pk.ru/showpost.php?p=213928&postcount=104), тут (http://zx.pk.ru/showpost.php?p=213928&postcount=104) и тут (http://zx.pk.ru/showpost.php?p=214024&postcount=109). Если лень читать, вот кратко основные сведения:
- базовая схема - "Орель БК-08". Расширенная клавиатура, кнопка NMI и все остальные известные особенности этого клона.
- 256К ОЗУ, из которых 128К подключены по стандартной схеме. Дополнительные 128К отображаются по адресам C000-FFFF; некоторые из дополнительных страниц доступны в качестве теневого ОЗУ либо эмуляции ПЗУ по адресам 0000-3FFF.
- один порт расширения с адресом 7Bh, в нем имеется 4 бита:
bit 0 - DV0 (выбор одной из двух страниц теневого ОЗУ)
bit 1 - BLKROM (блокировка ПЗУ и включение теневого ОЗУ либо эмуляции ПЗУ)
bit 3 - EMUL (включение режима эмуляции ПЗУ, также включение стандартных прошивок ПЗУ либо LSY-Setup)
bit 4 - PA3 (старший бит номера страниц по адресам C000-FFFF)
- реализовано чтение из порта 7FFD
- порты контроллера дисковода всегда открыты для доступа из любой программы

Djoni
12.06.2014, 20:16
Схема и описание опубликованы на форуме здесь (http://zx.pk.ru/showpost.php?p=175798&postcount=74). Дополнительная информация имеется тут (http://zx.pk.ru/showthread.php?p=214209&#post214209), тут (http://zx.pk.ru/showthread.php?p=175798#post175798), тут (http://zx.pk.ru/showpost.php?p=213928&postcount=104), тут (http://zx.pk.ru/showpost.php?p=213928&postcount=104) и тут (http://zx.pk.ru/showpost.php?p=214024&postcount=109). Если лень читать, вот кратко основные сведения:
- базовая схема - "Орель БК-08". Расширенная клавиатура, кнопка NMI и все остальные известные особенности этого клона.
- 256К ОЗУ, из которых 128К подключены по стандартной схеме. Дополнительные 128К отображаются по адресам C000-FFFF; некоторые из дополнительных страниц доступны в качестве теневого ОЗУ либо эмуляции ПЗУ по адресам 0000-3FFF.
- один порт расширения с адресом 7Bh, в нем имеется 4 бита:
bit 0 - DV0 (выбор одной из двух страниц теневого ОЗУ)
bit 1 - BLKROM (блокировка ПЗУ и включение теневого ОЗУ либо эмуляции ПЗУ)
bit 3 - EMUL (включение режима эмуляции ПЗУ, также включение стандартных прошивок ПЗУ либо LSY-Setup)
bit 4 - PA3 (старший бит номера страниц по адресам C000-FFFF)
- реализовано чтение из порта 7FFD
- порты контроллера дисковода всегда открыты для доступа из любой программы

Спасибо,буду изучать :)

kasper
20.08.2014, 00:38
А какие номера страниц теневого озу втыкать на 0-3fff?

---------- Post added at 23:38 ---------- Previous post was at 23:33 ----------

Интересный феномен, пол часа листал форум, ничего в упор не видел... Только задал вопрос и сразу все само собой нашлось.

Vadim
20.08.2014, 10:00
Система эта заработает на Орель-08 с BDI? Или на BDI нужно будет делать изменения для доступа к портам?

kasper
20.08.2014, 20:10
на BDI нужно открыть порты, чтобы были видны не только в TRDOS. У меня контроллер дисковода на ПЛИСЕ, поэтому решилось(решается))) все квартусом и бластером.

kasper
21.08.2014, 23:36
Сделал реализацию LSY-256 архитектуры на ПЛИС (за исключением эмуляции ПЗУ). Загружается CPM, первый писк, потом второй, появляется табличка из двух половинок. И все. Нижняя часть таблицы, где в эмуляторе параметры дисководов выводятся - пустая. При нажатии на кнопки - слышны шелчки... Куда копать? Что этой CPM не нравится?

---------- Post added at 22:36 ---------- Previous post was at 22:33 ----------

Последнее значение в порту 7B - 226, 11100010b. Судя по описанию не должна эмуляция использоваться... Подскажите если кто знает!

kasper
22.08.2014, 19:00
Я все сделал, правильно но ничего не работает(((. Перестает загружаться в том месте где в эмуляторе очень шустро начинают перебираться дорожки... Может дело в контроллере дисковода? Или криво написан драйвер диска в cpm.

Barmaley_m
24.08.2014, 16:46
А порты BDI у тебя открытые? Kempston Joystick (порт 1F) отключен? Если используется базовая плата "Орель БК-08" - то там необходимо отключить Kempston, удалив микросхему DD1 (К155ЛН6).

Драйвер дисков там не очень прямой, раз в эмуляторе работает только при эмуляции задержек, но достаточно прямой, чтобы работать на реале с дисководом или в эмуляторе с задержками. Значение в порту 7B вроде правильное. Эмуляция ПЗУ в CP/M не используется. Так как затык именно при обращении к диску - то скорее всего проблема именно в портах ВГ93.

---------- Post added at 15:46 ---------- Previous post was at 15:44 ----------


Система эта заработает на Орель-08 с BDI? Или на BDI нужно будет делать изменения для доступа к портам?
И на BDI нужно делать изменения, и память расширять по схеме LSY-256. Можно, конечно, запустить CPM144, у нее меньше требований по переделкам, однако при этом не будут работать расширенные клавиши "Орели".

kasper
28.08.2014, 14:38
Запустил наконец-то CPM. Глюки с загрузкой происходили из-за неполной дешифрации портов ВГ93 (по одному биту, при работе в TRDOS это не имело значения). И соответственно OUT (#7B),XX писало в регистр ВГ93. Контроллер на ПЛИС от solegstar.