📂 Документ: orion128-soft-ordos-chr_clean.html


 

CHR$ - Загрузчик программ РК 86, Орион-128

Позволяет загружать программы РК 86 в память Ориона-128

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

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

ЗАГРУЗЧИК ПРОГРАММ ПРК "РАДИО-86РК"

Программа "CHANGER - RK86" (файл "CHR$"), как и ранее опубликованные программы, инструментальное средство операционной системы "ORDOS" или очередная загружаемая команда. Она необходима для того, чтобы облегчить процесс считывания программ, хранящихся на магнитной ленте, записанных МОНИТОРОМ "Радио-86РК" или редактором "МИКРОН" [1], [2]. Это же относится и к программам, записанным МОНИТОРОМ ПРК "Орион-128".

Конечно, программы можно считывать директивой "I" МОНИТОРа, а затем уже, зная начальный и конечный адреса и находясь в ОС "ORDOS" с помощью директивы "S" создавать файлы. Однако такую методику невозможно применить к файлам, записанным редактором "МИКРОН", в котором использован совершенно другой формат записи на ленту.

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

CHR$ загрузчик программ РК86 в Орион 128

Коды программы приведены в табл.1, а контрольные суммы блоков - в табл.2. Как занести программу в ROM-диск или квазидиск, мы уже рассказывали [3].

ТАБЛИЦА 2

0000 - 00FF 72F0
0100 - 01FF E81B
0200 - 02FF 2F21
0300 - 03FF 9A1A
0400 - 048F 31EC

Напомним, что при установке программы в ROM-диск необходимо набирать всю программу из табл.1. Как "пристыковать" программу в ROM-диске, вы тоже уже знаете. Если файл "СНR" будет храниться на магнитной ленте, то в квазидиск программу заносят директивой "S", но опускают при этом первую строчку таблицы (т. е. его размещение происходит начиная с адреса 0010Н). Не забудьте изменить адрес старта. При запуске файл "CHR$" размещается и работает в области загружаемых команд с адреса 0В000Н.

В МОНИТОРе "М128" есть директива "FILE ADDRES", с помощью которой можно изменять адрес старта программы. Напомним, ее синтаксис для нашего случая: B:CHR B000 [ВК].

Если вы еще не располагаете для работы программой "M128$", то изменить адрес старта можно подпрограммой, приведенной в [3], в табл.3. Однако при этом следует помнить, что программа "CHR$" в квазидиске должна располагаться первой (убедитесь в этом по каталогу диска "В").

Итак, программа находится на диске и вы ее запустили. На экране возникает изображение, приведенное на рис.1 (без нижней строчки). При появлении сигнала фонограммы нажмите клавишу ВК. Если произойдет безошибочное считывание программы, записанной МОНИТОРОМ, загрузчик выведет справочную информацию (рис.2) и вопрос "файл? - ВК..." (т. е. занести считанную информацию в квазидиск?). При положительном решении нажмите клавишу [ВК], в этом случае рядом будет выведено текущее временное имя файла, которое загрузчик автоматически присваивает при занесении считанной программы в квазидиск. Далее последует приглашение к продолжению считывания следующей программы. Если вы согласны, нажмите любую символьную клавишу. Для выхода в "ORDOS" нажмите клавишу F4. Если считанную программу нет необходимости заносить в квазидиск, нажмите (вместо ВК) любую другую символьную клавишу. Автоматически формируемое имя файла состоит из двух символов "FL" и двузначного десятичного числа. Начальное значение "00". При каждой загрузке файла численное значение увеличивается на единицу.

Если считываемый файл записан текстовым редактором "МИКРОН" (начало фонограммы имеет характерное двухтоновое звучание, то имя файла (но не более 16 символов) выводится на экран дисплея (нижняя строчка на рис.1). По окончании считывания выводится справочная информация (рис.3). Она несколько отличается от приведенной ранее на рис.2. Дело в том, что начальный адрес этих файлов всегда 2100Н. Изменить его можно в ячейках 01FBH, 01FCH (по табл. 1). А вот размер файла (т. е. его длина) может быть разным. Именно этот параметр загрузчик и выводит. Далее программа предлагает пользователю выполнить уже знакомые действия.

Если файл считался с ошибкой, выводится сообщение, приведенное на рис.4. Нажмите любую клавишу - загрузчик вернется в исходное состояние и можно повторить считывание.

Загрузчик может автоматически определить константу считывания, если при запуске на считывание программы вы нажмете вместо клавиши [ВК] клавишу [ПС]. Текущее значение константы выводится в справочном сообщении.

В заключение следует заметить, что безошибочно считанная программа, написанная для ПРК "Радио-86РК", не обязательно будет работать на ПРК "Орион-128". Все зависит от того, насколько она переносима и корректна. Корректные программы, т. е. программы, обращающиеся к системным ресурсам компьютера через таблицы стандартных входов, поддерживая общепринятое соглашение обмена, будут выполняться на ПРК "Орион-128". К сожалению, таких программ не так много. Чаще всего программисты не выполняют это соглашение и для достижения определенных целей максимально используют аппаратные особенности компьютеров (в таких программах есть обращения к портам ввода-вывода, экранной области памяти, а также используются подпрограммы МОНИТОРа, не определенные во входной таблице, и их служебные ячейки памяти). Это в полной мере относится и к большей части программ, опубликованных в журнале.

Поэтому говорить о переносимости программного обеспечения можно, только учитывая схемотехническое построение и различия в программной структуре компьютеров "Радио-86РК" и "Орион-128".

В. СУГОНЯКО, В. САФРОНОВ Московская обл.

ЛИТЕРАТУРА

1. Д. Горшков, Г. Зеленко, Ю. Озеров, С. Попов. Персональный радиолюбительский компьютер "Радио-86РК".- Радио, 1986, № 7, с. 26.
2. В. Барчуков. Г. Зеленко, Е. Фадеев. Редактор и ассемблер для "Радио-86РК".- Радио, 1987, № 7, с. 22.
3. В. Сугоняко, В. Сафронов. Инструментальный монитор.- Радио, 1990, № 10, с. 44.

Журнал Радио №11 1990 г.

Коды программы: (Возможны ошибки). Прошивку без ошибок можно скачать здесь...

0000   31 80 A8 21 D9 B0 22 D8 F3 3E 42 CD D6 BF 21 9A   *1..!.."..>B...!.*
0010   D3 01 88 0B CD B9 B3 31 80 A8 21 9A D3 01 80 0B   *.......1..!.....*
0020   CD B9 B3 21 1A 0A CD 3C F8 21 C7 B2 CD 18 F8 21   *...!...<.!.....!*
0030   17 0B CD 3C F8 21 D6 B2 CD 18 F8 21 17 0C CD 3C   *...<.!.....!...<*
0040   F8 21 EC B2 CD 18 F8 CD 03 F8 FE 03 CA 5E B1 FE   *.!...........^..*
0050   0D CA 7C B0 FE 0A C2 47 B0 21 00 00 06 40 CD 8B   *..Э....G.!...@..*
0060   B2 16 FF CD 8B B2 7A 07 07 85 6F D2 6F B0 24 05   *......З...О.О.$.*
0070   C2 61 B0 7D E6 C0 B4 07 07 32 DB F3 AF 32 89 B4   *.А.Щ.....2...2..*
0080   06 02 3E FF CD 06 F8 FE E6 C2 8D B0 05 67 CD 0A   *..>..........Г..*
0090   B2 FE E6 C2 9A B0 05 CA 75 B1 6F 22 7C B4 EB CD   *........У.О"Э...*
00A0   7E B2 22 80 B4 EB 01 00 00 C5 3E 08 CD 06 F8 02   *Ч.".......>.....*
00B0   CD BB B2 03 23 C2 AA B0 0B 50 59 60 69 23 22 7E   *....#....PYЮИ#"Ч*
00C0   B4 3E FF CD 80 B2 44 4D 22 82 B4 E1 C5 CD 2A F8   *.>....DM".....*.*
00D0   D1 60 69 CD BB B2 CA F6 B0 3E FF 32 89 B4 21 19   *.ЮИ......>.2..!.*
00E0   13 CD 3C F8 21 8F B3 CD 18 F8 21 19 14 CD 3C F8   *..<.!.....!...<.*
00F0   21 A4 B3 CD 18 F8 21 19 0E CD 3C F8 21 02 B3 CD   *!.....!...<.!...*
0100   18 F8 2A 7C B4 CD AE B2 21 19 0F CD 3C F8 21 11   *..*Э....!...<.!.*
0110   B3 CD 18 F8 2A 80 B4 CD AE B2 21 19 10 CD 3C F8   *....*.....!...<.*
0120   21 20 B3 CD 18 F8 2A 82 B4 CD AE B2 21 19 11 CD   *! ....*.....!...*
0130   3C F8 21 2F B3 CD 18 F8 3A DB F3 CD 97 B2 3A 89   *<.!/....:.....:.*
0140   B4 A7 C2 6A B1 21 18 13 CD 3C F8 21 40 B3 CD 18   *...Й.!...<.!@...*
0150   F8 CD 03 F8 FE 0D CA 0F B2 FE 03 C2 17 B0 21 40   *..............!@*
0160   60 22 DA F3 C3 FD BF CD 18 F8 CD 03 F8 FE 03 C2   *Ю"..............*
0170   17 B0 C3 5E B1 CD 0A B2 FE E6 CA 75 B1 21 80 A8   *...^.......У.!..*
0180   CD 0A B2 77 B7 CA 8C B1 23 C3 80 B1 21 90 A8 36   *...В....#...!..6*
0190   00 21 19 14 CD 3C F8 21 80 A8 CD 18 F8 CD FF B1   *.!...<.!........*
01A0   21 00 00 EB 21 C1 FF 39 09 EB CD BB B2 DA B5 B1   *!...!..9........*
01B0   36 FF C3 D9 B0 E5 CD 0A B2 47 70 04 23 C2 B6 B1   *6........GП.#...*
01C0   2B 22 7E B4 22 80 B4 3E 08 CD 01 B2 E1 C5 01 00   *+"Ч."..>........*
01D0   00 7E B7 FA E0 B1 81 4F 3E 00 88 47 23 C3 D1 B1   *.Ч.....O>..G#...*
01E0   E1 50 59 CD BB B2 EB 22 82 B4 21 00 21 22 7C B4   *.PY...."..!.!"Э.*
01F0   C2 D9 B0 21 19 0F CD 3C F8 21 69 B3 C3 11 B1 3E   *...!...<.!И....>*
0200   FF CD 06 F8 4F CD 0A B2 47 C9 3E 08 C3 06 F8 21   *....O...G.>....!*
0210   C1 B2 CD D0 BF CD E5 BF A7 CA 34 B2 3A C4 B2 3C   *..........4.:..<*
0220   FE 3A C2 2E B2 3A C3 B2 3C 32 C3 B2 3E 30 32 C4   *.:...:..<2..>02.*
0230   B2 C3 0F B2 2A 7E B4 EB 21 00 00 CD CA BF CD F7   *....*Ч..!.......*
0240   BF FE 03 C2 52 B2 21 18 13 CD 3C F8 21 78 B3 C3   *....R.!...<.!Ь..*
0250   67 B1 2A 7C B4 CD BE BF CD B6 B2 21 28 13 CD 3C   *Г.*Э.......!(..<*
0260   F8 21 C1 B2 CD 18 F8 21 18 14 CD 3C F8 21 52 B3   *.!.....!...<.!R.*
0270   CD 18 F8 CD 03 F8 FE 03 CA 5E B1 C3 17 B0 3E 08   *.........^....>.*
0280   CD 06 F8 67 3E 08 CD 06 F8 6F C9 14 3A 02 F4 E6   *...Г>....О..:...*
0290   10 BB CA 8B B2 5F C9 F5 0F 0F 0F 0F CD A0 B2 F1   *....._..........*
02A0   E6 0F FE 0A FA A9 B2 C6 07 C6 30 C3 0F F8 7C CD   *..........0...Э.*
02B0   97 B2 7D CD 97 B2 3E 20 C3 0F F8 7C BA C0 7D BB   *..Щ...> ...Э..Щ.*
02C0   C9 46 4C 30 30 20 00 43 48 41 4E 47 45 52 20 2D   *.FL00 .CHANGER -*
02D0   20 52 4B 38 36 00 77 6B 6C 60 7E 69 74 65 20 20   * RK86.ВКЛЮЧИТЕ  *
02E0   6D 61 67 6E 69 74 6F 66 6F 6E 2C 00 6E 61 76 6D   *МАГНИТОФОН,.НАЖМ*
02F0   69 74 65 20 5B 70 73 5D 20 69 6C 69 20 5B 77 6B   *ИТЕ [ПС] ИЛИ [ВК*
0300   5D 00 6E 61 7E 2E 61 64 72 65 73 20 20 20 20 20   *].НАЧ.АДРЕС     *
0310   00 6B 6F 6E 65 7E 2E 61 64 72 65 73 20 20 20 00   *.КОНЕЧ.АДРЕС   .*
0320   6B 6F 6E 74 72 2E 73 75 6D 6D 61 20 20 20 00 6B   *КОНТР.СУММА   .К*
0330   6F 6E 73 74 2E 7E 74 65 6E 69 71 20 20 20 20 00   *ОНСТ.ЧТЕНИЯ    .*
0340   66 61 6A 6C 20 3F 20 2D 20 5B 77 6B 5D 2E 2E 2E   *ФАЙЛ ? - [ВК]...*
0350   20 00 7F 20 70 72 6F 64 6F 6C 76 69 74 78 3F 20   * . ПРОДОЛЖИТЬ? *
0360   2D 20 5B 20 20 5D 20 7F 00 72 61 7A 6D 65 72 20   *- [  ] .РАЗМЕР *
0370   66 61 6A 6C 61 20 20 00 7F 20 20 20 20 20 6D 61   *ФАЙЛА  .     МА*
0380   6C 6F 20 64 69 73 6B 61 20 20 20 20 20 7F 00 7F   *ЛО ДИСКА     .*
0390   20 20 20 20 20 20 6F 7B 69 62 6B 61 20 20 20 20   *      ОШИБКА    *
03A0   20 20 7F 00 70 6F 77 74 6F 72 69 74 78 3F 20 2D   *  .ПОВТОРИТЬ? -*
03B0   20 5B 20 20 20 5D 00 00 00 E5 D5 C5 79 32 EE B3   * [   ]......Ы2..*
03C0   3E 01 32 88 B4 E5 7C 80 6F 22 86 B4 E1 01 01 80   *>.2...Э.О"......*
03D0   11 00 00 AF 78 17 47 AF 79 1F 4F 7A 37 17 57 7B   *....Ь.G.Ы.OЗ7.WШ*
03E0   37 1F 5F F5 CD 17 B4 2D 3A 88 B4 3C 3C FE 8F D2   *7._....-:..<<...*
03F0   12 B4 32 88 B4 CD 68 B4 F1 D2 D3 B3 3A 86 B4 3C   *..2...Х.....:..<*
0400   32 86 B4 25 7C 32 87 B4 01 80 01 11 80 01 AF C3   *2..%Э2..........*
0410   E3 B3 F1 C1 D1 E1 C9 7A B6 77 2C D5 3A 88 B4 5F   *.......З.В,.:.._*
0420   7A 2F A6 B0 77 2C 1D C2 20 B4 7A B6 77 D1 3A 86   *З/..В,.. .З.В.:.*
0430   B4 24 BC CA 3F B4 2D 36 00 2C 36 FF C3 31 B4 7B   *.$..?.-6.,6..1.Ш*
0440   B6 77 2D D5 3A 88 B4 57 7B 2F A6 B1 77 2D 15 C2   *.В-.:..WШ/..В-..*
0450   48 B4 D1 7B B6 77 3A 87 B4 25 BC CA 67 B4 2C 36   *H..Ш.В:..%..Г.,6*
0460   00 2D 36 FF C3 59 B4 C9 E5 C5 06 E0 21 00 00 2B   *.-6..Y......!..+*
0470   7C BD C2 6F B4 05 C2 6C B4 C1 E1 C9 00 00 00 00   *Э..О...Л........*

 

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

Все версии ORDOS

Все программы ORDOS

    

 

 

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

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