OS-DOS, Орион -128, работа в OS DOS V3.00 CP/M-80

OS DOS V3.00 Орион Сервис, описание дисковой системы, работа в CP/M-80

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

На 11.07.2021 последней версией OR DOS является релиз 4.03 от 1993г , прошивки ниже ORDOC написана написана Сафроновым и Сугоняко и остается до настоящего времени, описание будет позже. Все журналы "Радио"  с упоминанием Ориона

Стандарты ПО, адресов и портов

  CP/M-80 "Авторская, Орион Софт" OS DOS V2.41 схема контроллера

Дискеты должны быть отформатированы в OS DOS (CP/M-80) программой FORMAT.COM и на дискету записана система OS DOS V3.00  программой SYS.COM или SG300.COM

Основные принципы работы с cp/m v2.2 ( bios v3.00 )

Внимание ! Запрещается коммерческое использование ос без  согласия разработчика. Авторские права на ос cp/m v2.2  ( bios v3.00 ) принадлежат пмп "Орион-Сервис".  Адрес ПМП "Орион-Сервис" (для корреспонденции): 140061, Московская обл. г. Лыткарино, а/я 18 "Орион-сервис" телефон: (095) 359-73-56

OS DOS V3.00 Отличительные особенности bios v3.00.

OS-DOS, Орион -128, работа в OS DOS V3.00 CP/M-80

bios v3.00 был разработан на основе предыдущих версий с учетом всех замечаний и обнаруженных недостатков.  Характерными особенностями bios v3.00 являются:

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

А теперь немного подробнее об описанных преимуществах.

Внутренние команды.

Начиная с версии bios v3.00, реализуется возможность использования внутренних команд bios, вводимых через клавишу  {f1} ( f1-команды ), что позволяет более гибко управлять  вашим компьютером. Вход в режим исполнения f1-команд осуществляется нажатием на клавишу {f1}. В левом верхнем углу экрана появится надпись "cmd>" ( сокращение от "command" - "команда" ). Это промпт режима внутренних команд. рядом с ним будет мигать курсор. ввод непосредственной команды осуществляется нажатием на соответствующую клавишу. Для возврата кода самой клавиши {f1} необходимо нажать ее повторно после появления промпта режима внутренних команд.

Режим поддерживает 7 f1-команд:

1. включение/выключение цвета - клавиша {c}.
Пользователей, привыкших работать с цветным экраном, порадует возможность включения цвета при работе с описываемой  версией системы ( напомним, что все предыдущие версии были монохромными ). Однако, при включении цвета необходимо соблюдать некоторую осторожность. Если вы работаете в цветном режиме с какой-то программой и цвет экрана неожиданно портится, в этом нет ничего страшного: введите команду {f1}+{c} ( цвет выключится ) и продолжайте работу. Изменение цвета связано с тем, что в цветном режиме включен экран "ориона", располагающийся с адреса 8000h, а некоторые программы используют эту область для своей работы. По этой же причине опасно запускать драйвера, работающие в области 8000h-0afffh в нулевой странице, не выключив предварительно цвет. К таким драйверам относятся программы koi8, rl80, rus80, lat80 и другие, использующие собственную программу вывода символов на экран. При работе в монохромном режиме никаких ограничений на запуск программ нет.
Если, находясь в монохромном режиме, вы решили включить цветной режим, сделать это лучше, когда на экране выведен промпт cp/m. однако включить цвет можно и, работая в какой-либо программе. но в этом случае вы должны быть уверены, что программа не использует для своей работы область 8000h-0afffh.
Вышеописанные правила, хотя и кажутся трудными, на самом деле просты. Вы быстро поймете когда можно включать цвет, а когда нельзя, поработав некоторое время с описываемой версией
cp/m.

2. эмуляция кодировки кои8 - клавиша {k}.
Многие cp/m-программы для "ориона" были перенесены с компьютера "корвет". Так как на "корвете" применяется кодировка кои8 ( на "орионе" - кои7 ), работа с этими программами без загрузки дополнительного драйвера затруднена. Использование внутренней f1-команды "k" позволяет работать с указанными программами без загрузки дополнительных драйверов. При этом латинские и русские строчные буквы отображаются, соответственно, латинскими и русскими прописными буквами. Повторный ввод команды "к" позволяет отключить эмуляцию.

3. обслуживание управляющих кодов компьютера "robotron-1715" - клавиша {r}.
Еще большее число программ было перенесено на "орион" с  компьютера "robotron-1715". оказалось, что все они используют в качестве управляющих кодов ( очистка экрана, установка курсора и т.п. ), коды, которые в большинстве случаев отличаются от кодов, применяемых на "орионе". Эта проблема  решалась также с помощью загрузки дополнительных драйверов. Применение команды "r" подключает внутреннюю подпрограмму, обслуживающую управляющие коды компьютера "robotron-1715", что позволяет обойтись без загрузки дополнительных драйверов. Отключение режима - повторный ввод команды "r".

4. форма курсора - клавиша {u}.
Описываемая версия bios позволяет выбрать такую форму  курсора, которая вам больше нравится. каждый ввод f1-команды "u" изменяет форму курсора. Выбранная форма сохраняется до "холодной" загрузки ос или до очередного ввода команды "u".

5. выход по "горячему" старту ос - клавиша {q}.
Иногда случается ситуация ( в основном при заруске новых программ ), когда вы не знаете как вернуться в операционную систему, а нажатие {f4} или {ус}/{c} не помогает. В этом  случае ввод f1-команды "q" позволит завершить работу с программой без нажатия клавиши {сброс}.

6. выход в "монитор" - клавиша {m}.
Конечно, выйдти в "монитор" можно и просто, нажав клавишу {сброс}. Но для того, чтобы продолжить работу с  ordos, вам необходимо будет отформатировать диск b: ordos. Чтобы не делать столько лишних операций, воспользуйтесь f1-командой "m" и диск b: ordos будет отформатирован автоматически.

7. служебная строка - клавиша {l}.
С помощью f1-команды "l" можно как включить, так и отключить служебную строку, если она мешает. Служебная строка располагается в первой строке экрана и
содержит информацию о включенных режимах:

col - цветной режим,
rbt - обслуживание кодов "robotron-1715",
кои - эмуляция кои8,
рус - русские буквы,
lat - латинские буквы.

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

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

вывод курсора на экран.

Скорее всего вы уже заметили после загрузки cp/m, что  форма курсора стала другой. По мнению автора мигающий прямоугольный курсор быстрее найти на экране и с ним удобнее работать. Однако, если вы предпочитаете другую форму курсора,  воспользуйтесь f1-командой "u" для ее выбора.  В ранних версиях во многих программах, работающих под управлением cp/m, старый курсор просто исчезал и появлялся только в момент нажатия на клавишу. Естественно, это свойство значительно усложняло работу с этими программами. Интересное решение этой проблемы, начиная с версии bios v2.60, сохраняет курсор на экране всегда. Правда, в некоторых программах курсор перестает мигать, но в любом случае показывает  местоположение будущего символа. Отметим, что новый принцип получения курсора не снижает скорость вывода информации на экран.

ввод с клавиатуры.

Серьезные программы в cp/m во время выполнения промежуточных действий опрашивают через bios клавиатуру. Это позволяет не ждать окончания обработки этих действий, а  сразу же вводить дополнительные команды или выполнять другие операции, связанные с вводом информации с клавиатуры. Для того, чтобы вводимая информация не пропала, а была в дальнейшем обработана, в bios был организован буфер для вводимых кодов. Очень редко, однако встречается случай, когда буфер переполняется. тогда подпрограмма ввода символа с клавиатуры выдает предупредительный сигнал и ввод информации блокируется. в этом случае вам необходимо сделать небольшую паузу при вводе информации, пока программа, в которой вы
работаете, не обработает хотя бы часть символов из буфера.
Переключение алфавитов осуществляется как клавишей {рус/лат}, так и {стр} ( клавиша стирания экрана ). Хотя это является излишеством для клавиатуры рк-86, для клавиатуры мс7007 использование клавиши {стр} для переключения алфавитов в некоторых программах может оказаться полезным. Однако в
этом случае в программу не возвращается код клавиши {стр}.
Если это необходимо, нажмите клавишу {f1} для выхода в командный режим, а затем клавишу {стр}.

Чтение-запись на дискету.

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

Драйвер печати.

Драйвер печати, встроенный в bios, работает в режиме параллельной передачи данных ( centronics, ирпр, ирпр-м ). Такой формат выбран потому, что с ним работает большинство,
как отечественных, так и зарубежных принтеров. если для
печати в операционной системе ordos вы пользовались  программой "print-master" с драйвером "lpt", работающим в параллельном формате, то никаких изменений вам вносить не придется. Для тех, кто будет изменять соединение с принтером напоминаем:
- данные и управляющие сигналы подаются на порт 3
( адрес 0f600h );
- распайка порта 3:

данные d0 ... d7 - порт а ( pa0 ... pa7 )
строб strobe - порт c ( pc7 )
готов busy - порт c ( pc3 )

В операционной системе есть управляющая клавиша ctrl-p ( ус/p или упр/p ), нажатие на которую позволяет выдать на  печать всю информацию, выводимую на экран. таким образом  можно распечатать любой файл или директорий. Повторное нажатие ctrl-p отключает печать. разумеется, в cp/m существует большое количество программ, осуществляющих форматированный ( с отступами, с разбиениями на страницы и т.д. ) и неформатируемый вывод на печать.

Работа с дисководами.

Так как и с.-петербургский контроллер, и контроллер мп "орион-сервис" допускают работу с 4 дисководами, было бы не разумно ограничиваться возможностью использования только двух. поэтому, начиная с версии bios v2.60, предусмотрена работа с 4 дисководами. Описываемая версия bios v3.00 позволяет работать только с тремя из них ( a: - c: ) и квазидиском ( е: ). Однако, если вы не хотите ненужных зависаний, не пытайтесь обратиться к дисководу, Который не подключен.
Начальная установка характеристик дисководов в bios:

- дисковод a: 80 дорожек, время перемещения 30 мс
- дисковод b: 80 дорожек, время перемещения 30 мс
- дисковод c: 40 дорожек, время перемещения 30 мс

Для изменения характеристик дисководов и генерации системы с новыми характеристиками воспользуйтесь программой sg.com ( см. ниже ).

Работа с квазидиском.

Если вы расширили озу "ориона" до 256 кбайт, то, применяя описываемую версию bios, вы получаете возможность работы с квазидиском. квазидиск носит имя e:, под него используется расширенное озу 2-ой и 3-ей страниц об'емом 120 кбайт. Работа с ним совершенно не отличается от работы с обычным дисководом.
Преимущества, которые дает квазидиск, очевидны: это и появление дополнительного дискового устойства, и уменьшение износа дисководов, и возможность копирования файлов тем пользователям, которые имеют только один дисковод, и более быстрый доступ к данным, а также некоторые другие. Недостаток один - после выключения или пропадания питания вся информация, находящаяся на квазидиске, теряется. Перед работой с квазидиском необходимо отинициализировать его. это делается с помощью транзитной команды inite ( файл inite.com ). При запуске программы без параметров она выведет информацию о ключах, указываемых в команде при запуске. для инициализации диска e: запустите эту команду с ключем "f":

a>inite f

Ответьте "y" на запрос подтверждения ваших действий и вы можете использовать диск е: по своему усмотрению. Кроме этого bios дает возможность назначить квазидиску имя a: и скопировать на него часть ос cp/m, загружаемую при "горячем" старте системы. дисковод, выбирающийся под именем a: получит имя e:. что это дает ? операция "горячего" старта ос выполняется гораздо быстрее, существенно ускоряется работа с пакетными файлами, облегчается работа программ, создающих файл $$$.sub. При назначении квазидиску имени a: удобнее становится пользоваться запуском команд из графической оболочки ос cp/m "bridge panels".

Для переназначения имен и копирования части системы на квазидиск используется команда "inite" с ключем "s" или "sf", если нужно провести еще и форматирование. обычно ключ "sf" применяется в самом начале работы. если вы вышли из ос cp/m, а затем снова загрузили ее, квазидиск опять будет выбираться, как диск e:. чтобы получить доступ к информации, записанной на него ранее и переназначить имена дисков, используйте команду "inite" с ключем "s". Будьте внимательны ! использование ключа "f" в команде приводит к пропаданию информации, записанной на квазидиск.

Автозапуск при "холодном" старте.

Если при начальной загрузке системы вам приходится постоянно запускать некоторые программы ( различные драйверы клавиатуры, экрана, дисководов, квазидисков и т.п. ), либо  выполнять одну и туже последовательность команд cp/m, то  проще всего занести их в командный файл, названный profile.sub, и тогда они будут выполняться автоматически  каждый раз при "холодном" старте системы. На этой дискете должен быть файл profile.sub. выполните команду - type profile.sub и посмотрите каким образом этот файл может быть написан.
Для того, чтобы воспользоваться пакетным запуском файлов, необходимо выполнить следующие несложные требования:

- дискета, на которой находится файл profile.sub не
 должна быть защищена от записи;
- помимо файла profile.sub на дискете должна
 присутствовать программа submit.com

Указанные требования справедливы только для версий bios ниже v3.00. начиная с версии bios v3.00, на дискете может находиться только файл profile.sub (без программы submit.com) и она может быть защищена от записи. Если вы хотите прервать выполнение командного файла, нажмите любую клавишу.

По всем вопросам пишите нам по адресу: 140061, Московская обл. г.Лыткарино, а/я 18 ПМП "Орион-Сервис" или звоните по телефону в москве: (095) 359-73-56

Далее следует описание основных команд и программ cp/m.

1.Редактирование и управление выводом

{вк} конец ввода строки
{влево} стирание последнего символа. курсор влево
{ус}/{u} стереть строку
{ус}/{x} стереть строку
{ус}/{r} повторить ввод текушей командной строки
{ус}/{b} конец строки (с продолжением на следующей)
{ус}/{z} конец ввода с консоли (для pip и ed)
{ус}/{p} копировать весь дальнейший вывод на консоль на
печатующее устройство
{ус}/{s} временная приостановка вывода на консоль
{ус}/{c} "горячий" старт ( перезагрузка bdos и ccp )

2.
Список допустимых физических устройств

con: системная консоль
ptr: ввод с п/л
run: вывод на п/л
lst: печатаюшее устройство
tty: телетайп (медленная консоль)
crt: дисплей (быстрая консоль)
uc1: консоль,заданная пользователем
prt: быстрый ввод с п/л
ur1: ввод1,определенный пользователем
ur2: ввод2,определенный пользоватглем
ptp: быстрый вывод на п/л
up1: перфоратор 1,определенный пользователем
up2: перфоратор 2,определенный пользователем
lpt: ацпу
ul1: устройство 1 вывода текста,определенное
пользователем

3.
Допустимые назначения логических устройств на физические.

con: = tty: crt: bat: uc1:
rdr: = tty: ptr: ur1: ur2:
pun: = tty: ptr: up1: up2:
lst: = tty: crt: lpt: ul1:

4.знаки,запрешенные в именах

< > . , ; : = ? * { }

5.типы файлов

asm исходный файл для ассемблера asm
prn файл для печати листинга
hex файл шестнадцатиричных машинных кодов
bas исходный файл для компилятора cbasic
int промежуточный файл для интерпритатора crun
com командный файл ccp
pl1 исходный файл для pl/1
rel перемещаемый модуль
tex tex форматированный источник
bak вспомогательный файл для ed
for исходный файл для компилятора f(ortran)80
cob исходный файл для компилятора cobol
dat файл данных для фортрана
sym символический файл для sid
ord файл ordos, подготовленный программой "lord"
$$$ временный файл

6.
Резидентные команды

6.1 era {x:} afn стирание файлов с диска
6.2. dir {x:} {afn} вывод каталога диска или
ряда файлов
6.3. ren {x:} ufn1 = ufn2 имя файла ufn2 заменяется
на имя ufn1
6.4. save n {x:} ufn запись из tpa n страниц по
256 байт, начиная с адреса
100h в файл с именем ufn
6.5. type {x:} ufn печать файла ufn в кодах
ascii
6.6. user n установка номера
пользователя

7.
Транзитные команды

7.1. stat

команда сообщения
stat d: r/w, space: nnnk
d: r/o, space: nnnk
stat d: bytes remaining on x: nnnk
stat {d:} afn{*} {size} recs byts ext d:filename.typ
rrrr bbb ee d:pppppppp.sss
rrrr - количество 128-байтных записей
bbb - количество килобайт (bbb = rrrr*128/1024)
ee - количество екстентов по 16k (ee=bbb/16)
d - имя диска,содержашего данный файл
pppppppp.sss - основное и вспомогательное имя файла

stat d:dsk: d: drive characteristics
65536: 128 byte record capacity
8192: kilobyte drive capacity
128: 32 byte directory capacity
0: checked directory entries
1024: records/extent
128: records/block
58: sectors/track
2: reserved tracks

stat val: temp r/0 disk: d:=r/o (диск только
для чтения)
печать списка всех set indicator: d:filename.typ $r/о $r/w
допустимых назначений $sys $dir (установить
логических устройств индикатор)
на физическиe disk status: dsk: d:dsk (статус диска)
user status: usr: (статус пользователя)
iobyte assign: (список возможных
назначений)

stat d:=r/o перевести диск в режим "только чтение"
до очередного "горячего" старта.
stat dev: печать текуших назначений
stat id1=pd1,id2=pd2,...,idn=pdn -
изменение назначений логических и
физических устройств, где idn-лог.устр.
pdn-физ.устр.

7.2. asm

Вызов двухпроходного ассемблера и трансляция файла с  заданным именем.
вызов команды:
asm имя файла (1)
asm имя файла.p1p2p3 (2)

в любом случае файл должен иметь тип asm.

p1 - диск,содержаший исходный текст
р2 - диск, на корый будет записываться hex файл
(если p2=z,то hex файл не создается)
p3 - диск,на который будет записываться prn файл,
т.е. файл с листингом (если p3=x,то листинг выводится на консоль;если p3=z,то prn файл не создается)

Программа состоит из последовательности строк вида:

номер метка операция операнд;
примечания

типы меток: идентификатор или
идентификатор:

идентификатор состоит из букв и цифр и начинается с буквы, длина идентификатора не должна превышать 16 знаков.
 Знак * игнорируется.

типы констант:
b двоичнщя константа
q восьмеричная константа
d десятичная константа
h шестнадцатиричная константа

Строковые константы представляют собой набор знаков ascii, заключенный в апострофы.

Зарезервированные имена: имена всех регистров,имена машинных инструкций и директив ассемблера.

Арифметические и логические операторы:

a+b беззнаковое сложение a и b
a-b беззнаковое вычитание b из a
+b унарный плюс
-b унарный минус
a*b беззнаковое умножение a на b
a/b беззнаковое деление a на b
a mod b остаток от деления a на b
not b логическая инверсия b
a and b логическое "и"
a or b логическое "или"
a xor b логическое "исключаюшее или"
a shl b сдвиг а влево на в битов,
дополнение нулями
a shr b сдвиг а вправо на в битов,
дополнение нулями

приоритет операторов
* / mod shl shr - + not and or xor

директивы ассемблера

org установить значение счетчика адреса
end конец программы,
может присутствовать стартовый адрес
equ числовое "приравнять"
set числовое "установить"
if начало условного ассемблирования
endif конец условного ассемблирования
db задать байт данных
dw задать слово данных
ds отвести область памяти

Список инструкций совпадает со списком инструкций  микропроцессора intel 8080 ( к580вм80 ), сообшения об ошибках:

d ошибка в данных:
элемент данных не может быть помещен
в указанную область памяти
e неверное выражение:
выражение неверно образовано и не
может быть вычислено в процессе ассемблирования
l неверная метка:
метка не может появиться в данном
контексте (может быть двойное определение)
n не реализовано:
возможности,которые будут присутствовать в следующих версиях asm
o переполнение:
очень сложное выражение
p ошибка фазы:
метка получает разные значения при двух
последовательных проходах по программе
r регистровая ошибка:
значение заданное в качестве регистра,
не соответствует коду инструкции
v ошибка значения:
операнд,
вычисленный в выражении, не верно образован

source file present файл заданный в команде
 asm, не существует на диске
no directory space каталог диска заполнен
source file name error неверно задано имя файла asm
source file read error ошибка при чтении
исходного файла
output file write error ошибка при записи выходного файла
cannot close file выходной файл не может
быть закрыт

7.3. load {x:} ufn

чтение файла с заданным именем в hex-формате и создание файла в com-формате.

7.4. pip

(1) pip
(2) pip командная строка

формат (1) позволяет выполнить несколько командных
 строк, вводимых после *. выход из pip по cr (сразу после *).
формат командной строки:

приемник = источник #1, ... , источник #n

допустимые виды сокрашений:

pip x:=afn копировать на x все файлы afn с активизированного диска
pip x:=y:afn копировать на x все afn файлы с y
pip ufn=y: эквивалентно pip ufn=y:ufn
pip x:ufn=y: эквивалентно x:ufn=y:ufn

дополнительные имена устройств:

nul: вывод 40 нулей в коде ascii
eof: вывод конца файла (ctrl-z)
inp: специальное устройство ввода. вызов:
call 103h,данные в 109h
out: специальное устройство вывода. вызов:
call 106h,данные в регистре c
prn: вывод на lst:с номерацией строк,с табуляцией
по каждой восьмой колонке, с установкой страницы после каждых 60 строк

параметры pip,заключаемые в квадратные скобки:

b режим передачи блоками
dn стирание символов после n-го (для узкой печати)
e эхо операций передачи
f определение форматов передачи
gn ввод файла пользователя с номером n (0 - 15)
h передача шестнадцатиричных данных с проверкой
i игнорирование 00 при передаче (одновременно
влечет h)
l перекодирование верхнего регистра в нижний
n нумерация строк (если n2,то включаются ведушие
нули и устанавливается табуляция)
o передача об'ектного файла
pn перевод страницы после каждых n строк
qs z прекратить передачу после строки s
r чтение системного файла
ss z начать передачу со строки s
tn табуляция в каждой n-ой колонке
u перекодирование нижнего регистра в верхний
v проверка правильности кодирования
w перезапись файла с индикатором r/o без вывода
запроса на консоль
z сбросить в 0 бит четности

7.5. ed {x:} ufn {y:}

инициализируется командой:

ed имя файла . тип файла

строка символов оканчивается <cr lf>

cp - указатель символа в буфере
команды:

na добавление n строк в буфер из редактируемого
файла(если n=#,то заполнение всего буфера)
+-b перемешение cp в начало или в конец буфера
+-nc перемешение cp по буферу на n символов вперед,
если ''+'' и назад,если''-'' (cr и lf воспринимаются как два отдельных символа)
+-nd стирает n символов перед cp ,если ''+'' и за
cp,если ''-'' e конец редактирования,закрытие файлов
nf c1c поиск строки по образцу(c1c2...ck),cp передвигается за последним символом cp,
если сравнение произошло,ишется n-ое вхождение образца в буфере.
h окончание редактирования,закрытие и повторное
открытие отредактированного файла в качестве исходного для ed.
i c1c2...ck
ввод строк символов с консоли (каждая строка
оканчивается cr lf) до ctrl+z
ni c1c2...ck <ctrl+z> d1d2...dn <ctrl+z> e1e2...eq <ctrl+z)
команда сопоставления ишет n раз ближайшее
вхождение образца (c1c2...ck),затем за ck вводится последовательность символов (d1d2...dn) и стираются все символы от dn до образца (е1е2
...eq).
+-nk стирание n строк исходного текста в буфере.если
cp находится не в начале строки,то сохраняются символы перед cp, если '+' и после cp, если '-'
+-nl перемешает cp по строкам,если n=0,то в начало
текушей строки; если n не равно 0,to в начало текушей строки,а затем на n строк вниз (''+'') или вверх (''-'').
nm c1c2...ck
макрокоманда (c1c2 и т.д. команды ed),выполняет
строку команд n раз или если n=0/1,до ошибочного условия.
+-nn c1c2...ck
поиск n-го вхождения образца аналогично f,
но поиск происходит по всему исходному файлу.
О ввостановление исходного файла,перезапуск ed и действия предыдуших команд анулируются.
+-np пересылка и печать страницы.
q выход из e без изменения исходного файла.
r f1f2...fn
чтение библиотечного файла в буфер в процессе
редактирования (f1f2...fn файла тип lib).
ns c1c2...ck (ctrl+z) d1d2...dh
подстановка второго образца вместо первого осушествляется n раз (аналогична f c1c2...ck i
d1d2...dh).
+-nt печать строки:
если n=0,то начало текушей строки до cp;
если n=1,то конец текушей строки после cp;
если n>1,то текушая строка и n-1 строк за ней
(''+'') или перед ней (''-'').
+-u перевод из нижнего регистра в вверхний (+u) и
омена(-u).
nz
+-n перемещает cp вверх или вниз на n строк и печатает одну строку (эквивалентно +-nlt).

7.6. установка системы на другие дискеты.

Производится вызовом программы sg.com. при запуске программа выведет информацию об авторском праве,  характеристики дисководов, указанные в данном файле sg.com, дату последней модификации, диск, на который будет записываться система. снизу выведется подсказка о клавишах,  которыми можно пользоваться.
Сверху находятся четыре команды, одна из которых выделена инверсно. перемещение указателя по ним - клавиша  {таб}, выбор - {вк}.
список команд:

- generate - запись системы на диск, указанный как "destination drive".
- change - изменить параметры системы. смена параметров осуществляется клавишей {вк}, переход к следующему - {таб}.
Нажав на клавишу {ар2}, вы вернетесь в начальный режим.
- save - записать измененные параметры в файл sg.com. файл sg.com записывается на текущий дисковод.
- quit - закончить работу с sg.com и вернуться в
cp/m. кроме того в cp/m можно вернуться в любой момент,  нажав клавишу {f4}.

Генератор системы версии v1.3 позволяет задать характеристики для 3-х дисководов и сгенерить систему на дисковод, имя которого указано в строке "destination disk". Если ранее с помощью команды "inite" было произведено переназначение имен ( квазидиск получил имя a:, а дисковод, выбиравшийся ранее как а: - имя e: ), то для того, чтобы сгенерить систему на дисковод, выбиравшийся ранее под именем а:, необходимо указать его новое имя, то есть e:. несколько слов о параметрах дисководов.
Программа позволяет установить число дорожек дисковода и время перемещения головки.

- число дорожек может быть 40 или 80;
- время перемещения может быть 6, 12, 20 или 30 мс.

Большинство дисководов работают вполне надежно при 6 мс ( 5305, 5311, 5313, 5323, "teac" ). однако для некоторых дисководов приходится эту постоянную увеличивать ( 5321 и т.п. ). Попробуйте подобрать оптимальное время перемещения  для своих дисководов. используя программу sg.com, это будет совсем несложно.

7.7. sumbit ufn par1...parn

Создание на активизированном диске файла типа $$$.sub  для дальнейшей работы в пакетном режиме. Файл ufn должен  иметь расширение .sub

7.8. dump ufn

Печать на системной консоли содержимого системного файла в шестнадцатиричном виде.

7.9. ddt

ddt загружается вместо ccp
форматы команд:

ddt
ddt имя файла.hex
ddt имя файла.com

Управляюшие символы:

rubout стирание последнего введенного символа
ctrl-u стирание введеной строки
ctrl-c перезагрузка cp/m

Команды:
as выдача ассемблерной мнемоники с операндами,
s-стартовый адрес
d вывод содержимого памяти в шестнадцатиричных кодах, начиная с данного адреса; выводится 16 строк.
ds вывод содержимого памяти,начиная с адреса s
ds,f вывод содепжимого памяти,начиная с адреса s
и кончая f.
fs,f,c заполнить область памяти,начиная с адреса s
и кончая адресом f шестнадцатиричной константой c.
g начать выполнение программы с текущ.
Адреса
gs начать выполнение программы с адреса s.
gs,b начать выполнение программы с адресаs и остановиться по адресу b.
gs,b,c здесь заданы две точки остановки: b и c.
g,b начать выполнение программы с текушего адреса
с остановкой по адресу b.
g, начать выполнение программы с текушего адреса
с остановкой по адресу b или c.
i имя файла занести в управляюший блок файла заданное имя
и файла.
i имя файла.
Тип файла занести в управляюший блок файла заданное имя и тип файла.
l распечатать 12 строк дезассемблированных машинных кодов,начиная с текушего адреса.
ls распечатать 12 строк,начиная с адреса s.
ls,f распечатать строки дезассемблирования,
начин с адреса s и кончая адресом f.
ms,f,d переслать в область памяти,начинаюшуюся с адреса s и кончаюшуюся адресом f,область памяти
начинаюшуюся с адреса d.
r{b} считать с диска файл с заданным в fcb именем
(см. команду i) в tpa; b-необязательный адрес смешения.
ss исследовать(и возможно заменить) область памяти,начиная с адреса s.
t трассировать один шаг программы.
tn трассировать n шагов программы.
x вывести на консоль содержимое всех регистров.
xr вывести на консоль (и возможно изменить содержимое регистра r.

8. сообшения об ошибках bdos

bad sector ошибка при чтении/записи.
select неверная адресация дисковода (буква вне диапазона a-d).
read only данная дискета командой stat назначена
'только для чтения'.

Использованы материалы А. Кузнецова ( С.-Петербург ) текст подготовлен 20.11.92 ( М. Бриджиди ) и отредактирован 25.11.92 ( Г. Рогов ) "Орион-Сервис" (c) 1992

 

Работа в CP/M-80 программы и железо

Подробнее будет на www.orion128.ru

 

Куплю платы, наборы микросхем 2716, 2732, 2764, 27128, 27256, 27512, 27c010, 27c801 на Орион-128, КР565РУ5В, КР565ру7В, к565ру5г AU, к565ру7г Au в позолоте, куплю микросхемы фирмы NEC, Intel, Oki

 

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

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