📂 Документ: orion128-soft-cpm80-acpm-002_clean.html


 

ACP/M V2.05  N3 - краткая справка о "запись" (Records), Орион-128, CP/M-80

АCPM - Чистякова SP-Computer club

Продаю платы и наборы микросхем, куплю микросхемы

Все версии CP/M-80

Все версии ORDOS

 Авторский контроллер НГМД. Мы собираем именно такой и на нем работаем.  Читайте про пакет Атлас.

Организация файловой структуры CP/M и проблемы развития CP/M ОРИОНА, от Чистякова

ACP/M V2.05  N3 - краткая справка о "запись" (Records)

личных версий и "подверсий" ACP/M, то невозможно составить описание для каждой версии. Если номер подверсии Вашей версии DOS немного не совпадает, то сами, опытным путем разберитесь,что в Вашей версиий сделано иначе (добавлено, удалено, изменено). Я помещаю на дискеты описания разных подверсий и сам давно запутался в разных версиях (на всех моих 200 дискетах записаны десятки разных версий ACP/M). Так как в некоторые периоды приносят каждый день новую версию ACP/M, которая рассылается на дискетах по стране, то я не могу редактировать документацию для каждой очередной DOS. Даже описание работы функций пока невозможно сделать полностью - это в стадии производства. Если Вам не ясна работа какой-либо из новых ф-ций BDOS - возьмите отладчик и посмотрите... А кто не может или не хочет - тому это и не надо.

Краткая справка о ACP/M V2.05 "запись" (Records) N3

1. CCP - нестандартный (редакция 1.14 от 10.1995). Имеет следующие особенности: нет команды REN (отсутствует как класс). В команде ERA *.* ответ 'Y' надо давать в верхнем регистре. Доработаны редактор командной строки, команда TYPE и введена 1 дополнительная команда управления шрифтом (команда @). Командная строка имеет тимплет до 20 символов, перемещение курсорными клавишами "вправо/влево" (причем это работает и без драйвера). Клавиша <забой> работает правильно, но только с драйвером (идиот В. Сугоняко придумал использовать код "забоя" для управления инверсией, это-ж надо до такого додуматься...). Редактор строки имеет буфер на одну команду: клавиша <курсор вверх>. Команда TYPE при совместной работе с драйвером правильно распаковывает "табуляции" и не приводит к "заворачиванию" длинных строк. Команда DIR в отличие от CCP V1.11 не "дергает" дисковод A при каждой команде (чтобы проверить заменена дискета или нет, требуется перечитать BOOT-сектор дискеты, чтобы перенастроиться на формат, затем опять к каталогу). То есть, как и в древних версиях CP/M ОРИОНА при замене дискеты без CONTROL-C по команде DIR будет выдаваться "старый" каталог. Но... только для дисковода A. Для дисководов B и C по команде DIR без CONTROL-C будет выдаваться правильное, т.е новое содержимое дискеты. В отличие от неправильной выдачи имени в OS-DOS V3.60, в ACP/M V2.0X имена дискет выдаются для каждого из 5 приводов (а не одно общее имя для всех, как у В. Сугоняко). Но более подробную информацию о диске выдает только внешняя команда XDIR (не путать с фирменной программой не поддерживающей имена юзеров). Этот CCP в отличие от CCP других релизoв не осуществляет вывод часов (т.н. "псевдо-времени") в правом верхнем углу экрана (т.к это требует соответствующего BDOS). Зато данная версия CCP может быть использован независимо для любых других версий CP/M ОРИОНА (если соответственно "заглушить" обращения к ф.запроса имени диска в директиве DIR - такой функции в стандартном BDOS нет). Команда DIR обеспечивает вывод на 60 символов в строке, т.е устранен недостатoк CCP V1.12. В качестве недостатка можно считать, что CCP использует под буфер имен конец области знакогенератора F000-F2FF (16 байт). Поэтому две "русские" буквы в знакогенераторе "портятся". Для тех кто пользуется в CP/M драйвером консоли это не важно, а т.к все равно команды надо вводить латинскими буквами даже тем, кто запускает игры ОРИОНА (без драйвера) это не играет роли. Значительно большим недостатком является то обстоятельство, что данная версия CCP испольует для своей работы старшую половинку регистра IXh. Это обстоятельство уже не позволяет использовать эту половинку регистра IX для передачи параметров драйверам. Впрочем это не важно, т.к все версии BTOS ACP/M V2.0X активно используют эту половинку (также как и сам ROM-BIOS МОНИТОР-3 V3.00X). Из-за нехватки места не удавалось обойтись традиционными регистрами КР580 (а использование только одной 8-ми разрядной половинки индексного регистра с'экономило более 25 ячеек памяти). Естественно можно было бы "задействовать" регистр I.

Но только "папуасы" (типа В. Сугоняко) не понимают, что это аморально. Нельзя от собственной лени и из-за "фиктивной" экономии радиодеталей или трудов терять прерывания... В ОРИОНЕ-128. В базовой версии ОРИОНА на КР580 В. Сугоняко "сгубил" прерывания ради экономии пол-корпуса ИМС 155ТМ2, чтобы сделать звук EI/DI. Одновременно это лишило ОРИОН на Z80 возможности без ловушки на EI/DI, (которую первым реализовал Г. Рогов [ОРИОН-СЕРВИС] в 1992 году) иметь звук при использовании ПО от К580-ОРИОНА (т.к Z80 увы не имеет выхода INTE). Но теперь когда какой-нибудь малограмотный ПАПУАС потянет свои ЖИРНЫЕ ручонки к регистру I в Z80, стремясь облегчить себе процесс мышления при разработке ПО, то пусть этого НЕГОДЯЯ остановит, ожидающая его КАРА, в виде МОЩНОЙ ВОЛНЫ общественного презрения и проклятья потенциальных жертв его "творчества"... пусть этот узколобый програмист-любитель включит свою IBM PC (эту игрушку нынче не имеет только ленивый или экономный) и посмотрит на работу прерываний в действии. После этого, может быть ему удастся сообразить, что регистр I рассчитан для прерываний в Z80, а вовсе не для хранения промежуточных результатов работы его программы. Уже множество людей имеют устройства на прерываниях в ОРИОНЕ, -например аппаратные часы на 512ВИ1, которые начинают "отображаться" на экране сразу после включения компьютера (т.к 512ВИ1 энэргонезависим, а ПО прошито в ПЗУ F800) и поэтому часы сразу сбиваются, если вместо F8-FC в регистре I окажется другое число и компьютер зависает. ACP/M, как и CP/M не имеет команд EI DI и не использует регистр I, поэтому если прикладное ПО не будет портить регистр I, то прерывания могут использоваться драйверами. Однако гораздо лучше иметь поддержку прерываний в самой DOS, как это делается в Altair-DOS V3.00.

2. BDOS - совершенно стандартный для всех версий 2.04/05, т.е имеет все "люзы" для RSX-модулей DOS. На всякий случай сохранена и "эмуляция" вредительско-плагиаторской системы OS-DOS V3.60 ОРИОН-СОФТ. Функция 12 возвращает в регистре C число 36 (а в регистрах HL' естественно A204). К сожалению тут нет хороших процедур контроля на неизменность кода и для борьбы с вирусами.

3. BIOS - стандартный для всех релизов ACP/M V2.05. То есть все функции BIOS, как стандартные, так и дополнительные (см.руководство программиста к версиям 2.05 или описание функций ACP/M V2.10). Сохранены все "идиотические" вектора ACP/M в области F300 (чтобы сохранилась совместимость). Сохранены входы "доп.электронного диска" (диска Е). Но !!! И ЗАБУДХТЕ НАСМЕРТХ... нагло встраивать ВАШИ ГНУСНЫЕ ДРАЙВЕРА электронных дисков прямо в тело CP/M-BIOS. Это же надо до такой "наглости" додуматься - размещать СВОЙ КОД в СВЯЩЕННОМ ТЕЛЕ BIOS, где идет БИТВА за каждый байт... У Вас полно ОЗУ во всех 30 дополнительных страницах ОЗУ. А "наглые аделаидчики" (и кое-кто еще) сделали для ACP/M V1.50 драйвера внешнего караваевского электронного диска (1 Мб), которые как ГНУСНЫЕ ВИРУСЫ встраиваются прямо в ТЕЛО CP/M-BIOS (от этого они и могут работать только на ACP/M V1.53, а уже на версии 1.54 - "глюкаются"...). Тем кто "явился жертвой" от подобных разработок, надо сделать следующее. Все входы в Е-диск стандартизованы еще в марте 1992 года (для ACP/M) и с тех пор не изменялись. Электронный диск имеет входы DA83/86/89 (к тому-же в это "релизе" за счет больших упрощений я Вам отдал еще целых 23 ячейки [см.в области DA90] - а ведь в эти 23 ячейки я мог бы Вам сделать автоматический "стиратель" файлов с расширение BRU, чтобы облегчить Вам жизнь). Поэтому ACP/M любой версии предоставляет возможность даже тем "беднягам", которые мучаются без Электронный диска в 1 Мбайт (а очень трудно представить себе работу на ОРИОНЕ без Электронный диска в 512К-1Мб - это примерно как в "деревне без пулемета")... загрузить внешний драйвер Электронный диска "E". Жертвам подобных драйверов рекомендуется дизассемблировать этот свой УБОГИЙ драйвер и перетранслировать его в другую банку ОЗУ, как и любой другой внешний драйвер для ACP/M (обеспечив свой собственный вектор в области F000, учитывая, что ACP/M V2.04 занимает область F300-F3A0 под вектора, а ниже F3C0 стоит стек подпрограмм связи с драйверами, т.е Вам остается только F000-F2FF, учитывая что F2FF/F300 - это излюбленный вектор для прерываний в MODE 2). Диск D (т.е внешний Электронный диск 512К) есть во всех версиях ACP/M (начиная с ACP/M V1.54). Его поддержка сразу встроена в CP/M-BIOS и никакие драйвера не требуются... Но надо точно знать схему по которой выполнен Ваш Электронный диск. Имеется 4 версии плат Электронный диска SP-Computer Club-a (и несколько производных от него). Отличия схем буквально в "паре проводов", но они существенны... Так как наиболее массово распространены платы по схеме 1989 года (адреса A16-A18- биты порта C0,C1,C2) то в первую очередь распространяется именно такая версия DOS. Платы Караваева и платы версии 1995 не совместимы... с данной версией ACP/M. Версия ACP/M 2.04 с буквой E (/Е) имеeт Электронный диск из внешнего ОЗУ приводом А, а три дисковода - B, C, D (а второго Электронный диска в отличие от стандартной версии вообще нет).

Итого: краткий вывод. ACP/M 2.05 позволяет Вам загрузить свои драйвера, как это поддерживает DOS-BIOS. Но без RSX у Вас нет поддержки имен ПАМЯТИ, ИМЕН ДИСКОВ, ДАТ ФАЙЛОВ. Поэтому настоятельно рекомендую приобрести DOS-RSX V1.10. Но Вы можете сделать себе этот модуль сами, а также кучу драйверов - теперь это делать проще "пареной репы". К сожалению "убогая" архитектура ОРИОНА дает очень мало ОЗУ в области F000. При нехватке Вы можете наплющить себе место от BDOS (там еще осталось на "усушку" сотня ячеек, которые так и "отскакивают", как только Вы замените коды КР580 на Z80, но не имея листинга с подробными комментариями и описаниями, не рекомендую это делать... впрочем, когда Вы посмотрите на "стиль программирования" BDOS, Вы сразу вспомните, что это писалось в 1975 году, на редакторе ED, с телетайпом или теле-принтером в качестве консоли и отлаживалось заплатками в кодах). В SG205.COM BDOS располагается по адресам 54C0-62BF. Если же Вам лень этим заниматься, то рекомендую приобрести ACP/M V2.06-2.10, где эту работу за Вас сделали другие...

Рекомендую работать только в режиме букв 8*10 (черно-белый режим с большими буквами драйвер CNF V1.2 включает автоматически при загрузке, - впрочем переключением шрифта, как во всех версия выше 2.05 - это одна клавиша). При этом не портится зрение, а общее удовольствие от работы на компьютере увеличивается в сотни раз (уже по первым результатам от тиражирования V2.04 имеется масса благодарственных откликов от клиентов V2.04 за введение поддержки шрифтов в CCP - каждый кто поработал с ACP/M V2.04 теперь с отвращением смотрит на все старые версии, особенно после введения красивого шрифта в драйвере CNF - Color New Font V1.1). Для того, чтобы иметь возможность стартовать любые программы, т.е даже те, что не управляют цветной консолью сами, а рассчитаны на 80 символьный вывод, рекомендую в начало таких встраивать JMP на вирус включающий 80 символов (для это достаточно выкинуть на консль 3 кода: 1Bh 'Q' и 06h). Этот вирус легко "приляпать" к любой программе - 19 байт найдется даже внутри многих программ (особенно, если немного "подплющить" их заменой на JR-команды). После возврата в DOS, "умненький" CCP автоматически включит тот шрифт, который Вы использовали на момент старта этой программы). Например на дискете Вы найдете "грохнутый" POWER удобно выводящий каталог, с русским шрифтом и автоматически включающий 80-ти символьный экран, традиционный DS, сделанный еще в 1991 году, но до сих пор являющийся единственной полностью безглюковой работающей с файлами на любых дискетах оболочкой CP/M. Впрочем, если Вы приобретете новый цветной НОРТОН фирмы BLACK CAT (этот же автор недавно выпустил новейший АНТИ-OS-DOS вирус с подписью "МСТИТЕЛХ ORDOS-фанатам"), то Вы естественно сразу-же сотрете безцветные программы типа DS, LZX 1991 года. Надпись в заставке версий ACP/P 2.04/05 - "DD" говорит о том, что данная версия не поддерживает High-Density флопы. А если этого нет, то версия - "HD". Помните, что для записи имени диска надо использовать маленькую программку LABEL.COM, которая была сделана давно, но пригодна для записи имени диска и для ACP/M V2.05. Помните, что имя диска 14 символов (имя юзера 8 символов).

В ACP/M V2.10 надобности в программке LABEL.COM - уже нет. Для запуска игр надо грузиться с ACP/M без драйвера (драйвер не может цепляться к DOS а вынужден "цепляться" к клавиатуре, т.к неизвестно какая клавиатура конкретно (МС7007 по правильной схеме РАДИО 12.1991 или РК86), а для ввода псевдографики используются программные прерывания с клавиатуры (т.е УС/СС/КЛ) МОНИТОРА-3.

ACP/M V2.04/05 является коммерческим продуктом фирмы Altair-Soft и с осени 95 тиражируется по цене установленной каталогом (8 долларов).Рекомендуется использовать совместно с драйверами с "тонким" шрифтом 8*10, например 480CNF2 или 480CNF3 (480CNF есть в нескольких модификациях: новый шрифт 6*10, старый 8*10 или оба шрифта новые, шрифт 6*10 низкий, красивый, а шрифт 8*10 тонкий).

Готовится к выпуску версия драйвера 480CNF с поддержкой "микрошрифта" 96 с/с.

Чистяков Владимир, Санкт-Петербург, декабрь 1995

    

 

Полезные и интересные статьи

На предыдущую страницу  На главную страницу  На следующую страницу