|
Язык C для
Ориона 128 для CP/M-80
Программное обеспечение для
CP/M-80 среда разработки программ язык программирования
С
Скачать руководство
Компилятор C -
https://www.bdsoft.com/resources/bdsc.html
- BDS C: An 8080/Z80
C Compiler BDS C: an 8080/Z80 C compiler written by Leor Zolman and now
in the Public Domain - available for download here
(ссылка на первоисточник)
Компилятор Языка С -
Компилятор_языка_Си_для_микроЭВМ_Хендрикс_Д_z_lib_org.pdf
- скачать книгу Хендрикса в PDF
CP/M-80 программы от
ERROR404
Образы позже.....
https://github.com/serge-404
- проги описаны тут, образы можно скачать непосредственно у С. Акимова
по ссылкам
https://github.com/serge-404/HI-TECH-C-V3.09
Complete package of HI-TECH C V3.09 CP/M freeware
C-compiler (except lib sources). It is the best Z80 native CP/M ANSII C
compiler. CP/M emulator (cpm.exe, rccp.cpm from K.Murakami sensei) and
GNU make - also included.
Скачать образ
https://github.com/serge-404/HI-TECH-C-V3.09?ysclid=lfp0jdp253337096019
Полный пакет бесплатного C-компилятора HI-TECH C
V3.09 CP/M (кроме исходников lib).Это лучший нативный компилятор Z80 для
CP/M ANSII C. Эмулятор CP/M (cpm.exe, rccp.cpm from K .Murakami sensei)
и GNU make - также включены.
Скачать образ
https://github.com/serge-404/U.Z.I.X.
UZIX is a UNIX Implementation for MSX (initially) and for Orion-128/PRO
(this repo)
Инструментарий.
Для компиляции используется единственный по сею пору нормальный
компилятор C для Z80 - HitеchC v3.09 образца 1987года: нативный CP/M
компилятор, при желании всю сборку можно провести на самом Орионе. .
В дополнение к нему чтобы комфортно разрабатывать под РС использую:
файловый эмулятор CP/M под винду cpm.exe - он умеет возвращать винде код
завершения HitechC, что нужно для make.
GNU make для автоматизации (пакетной) сборки проекта. Или аналог.
ProgrammersNotepad, где в проекте UZIX.pnproj (фактически -
структурированном списке файлов) описал используемые файлы. На кнопку F8
можно настроить сборку по make (Tools->Options->Tools->Scheme C/C++ ->
Add). Но чаще после внесения всех правок в PN, я просто запускаю make
под cmd.
Для компиляции драйвера IDE/SD использую пакет макроассемблера M80/L80
от Микрософт, тоже 80-х годов прошлого столетия - поныне лучший
макроассемблер для Z80/8080.
Комплект компилятора в сборе (без ProgrammersNotepad): https://github.com/serge-404/HI-TECH-C-V3.09
На каталог куда вы распакуете файлы компилятора должны быть настроены
переменные окружения PATH и CPMPATH
Концепция. Ядро UZIX - это обычная CP/M-задача, которая будет "крутить"
UNIX-процессы в расширенном ОЗУ. Архитектура будет такая:

В блоке общего ОЗУ COMMON размещаются части, которые должны быть общими
у ядра и процессов (udata, стеки, некоторые переменные) и подпрограммы
для межстраничного копирования, межстраничного JP/CALL/RET, вектор IM2 и
начальный обработчик прерывания. Там же сидят порты (1к), и 2к ROM F800
в принципе ненужного для uzix, съедая 3к драгоценного ОЗУ, но так уж
устроен Орион.
Ядро пока 29кб. Пишу для Орионовского клона CP/M АльтаирДОС с TPA до 58
кб, т.е. хватит места и TCP/IP впилить, и поддержку ФС FAT.
В страницах процессов сразу "из коробки" есть недоэмулятор CP/M:
эмулируется CP/M консоль (ввод-вывод на экран/с клавиатуры) - BDOS
функции 1..12, BIOS функции 2..4, остальные функции BDOS (дисковые
в-основном) возвращают FF-нет файла. Т.е. будет работать любое
корректное ПО CP/M не лезущее в диски, например ASCII-игры, программы
типа "hello world" и т.п. В планах полный эмулятор CP/M, уже внешний -
загружаемый.
В качестве дисков используется IDE/SD через CP/M-овский драйвер "сырого
доступа" IDEBDOS, схема MBR-партиций (поддерживаются только 4 основные
партиции на двух физических приводах - итого 8 (fd0..fd7) партиций, плюс
fd8..fd9 - целые "сырые" диски (от LBA0=MBR до LBAmax)), номер партиции
передается в утилиты (проверяемая/копируемая/где создается FS) и в ядро
(root-партиция, остальные через mount) как параметр командной строки.
Из общего архива исходников собирается и ядро (idebdos.com, uzix.com) и
утилиты (набор BD.COM, FSCK.COM, MKFS.COM, UCP.COM; или отдельно
fdisk.com). Сборка проходит за 15 секунд. Собирается так:
правим мakefile - изменяем так: "DEFINES = -DORI_UTIL", или так: "DEFINES
= -DORI_UZIX", или так: "DEFINES = -DORI_FDISK", в зависимости от того
утилиты, ядро или fdisk компилируются соответственно.
запускаем cmd, переходим (cd) в каталог где лежат исходники
cmd> make clean & REM удаляем объектники - их всегда(!) надо
пересобирать
cmd> make kernel & REM или "make utils" или "make fdisk.com" - смотря
что в DEFINES
Скачать образ
https://github.com/serge-404/CPM32
Это эмулятор операционной системы CP / M. Появляется как гибридная вилка
проектов Keiji Murakami (часть эмулятора CPM) и Mockba the Borg (часть
эмулятора Z80) с некоторыми исправлениями для поддержки подмножества
кодов управления экраном ORION-128 VT52. Скомпилировано с BCB5. (Windows)
и gcc (Linux).
Проблема с getch() в Windows: клавиша DEL используется вместо BACKSPACE
(и BACKSPACE действует как LEFT) из-за особенностей обработки кодов
cmd.exe 08h/7Fh.
Use "./cpm -?" for short help:
$ ./cpm -?
CPM -- CP/M-80 program EXEcutor for LINUX V0.5
Copyright (C) 2004-2012 by K.Murakami
Usage: CPM [-hxapdCkr][-w[0-9]] command arg1 arg2 ...
-h .. return HI-TECH C exit code
-x .. return ERROR if A:$$$.SUB deleted
-a .. select A: (program directry)
-p .. pause before exit
-d .. disable auto drive assign
-C .. args to uppercase
-o .. orion128 ROM F800 mode (+allow exec RKO,ORD)
-8 .. do not KOI8 conversion
-r .. do Robotron-1715 escapes
-k .. do Kaypro(adm3a) escapes
-w[0-9] .. wait on console status check (9:max)
Environment variables:
CPMPATH - default CP/M binaries dir
ORDPATH - default ORDOS binaries dir (Orion-128 mode)
Скачать образ
https://github.com/serge-404/AltairDOS
CP/M 80 V2.2 (w/extensions) clone for Orion-128 and Orion-PRO homebrew
8-bit computer
Скачать образ
https://github.com/serge-404/OriZEmu
Вашему вниманию представляется программа Orion/Z emulator. Это эмулятор
домашнего компьютера Орион-128, описанного в журнале Радио N1 за 1990г.,
и модифицированного при помощи Z80 Card II (ленинградский вариант
установки Z80 в Орион), а также модификацию Орион-ПРО (Orion-Power).
Технические характеристики эмулируемого компьютера:
процессор Z80 2.5 МГц (турбо: 3.5/5/7/10/20 MГц), режимы Z80
Орион-Сервис, Z80 Card II, Orion-PRO
память (ОЗУ) - 128..4096кб,
клавиатура - РК86, МС7007 Ленинград (совместимо с РК), МС7007
Москва(авторская),
ROM-BIOS - страндартный (128/ПРО), содержится во внешнем файле,
ROM-DISK - страндартный, содержится во внешнем файле, + расширенный
режим (16 страниц по 64к, переключаемые битами D0..D3 порта 0FEh для
Ориона-128 и расширенный до 2Mб маппер страниц порта 09h для ПЗУ ROM2
Ориона-ПРО)
КНГМД - эмуляция 1818ВГ93, 2 привода (ODI-файлы), порты
F700..7003/F710..F713/F720/F714, эмулируется режим HD (ODI-диски более
800к),
ЧАСЫ (RTC) - эмуляция 512ВИ1 на порту F760/F761 (BlackCat inc.),
50h..51h (Орион-ПРО)
муз.процессор- эмуляция AY-3-8910 на портах BFFD/FFFD, 3Eh..3Fh (Орион-ПРО)
IDE (HDD) - эмуляция контролера IDE на 580вв55 (порт F500/F600),
56h..5Fh (Орион-ПРО)
SD-card - Эмулируются только SDC карты (non-SDHC, объемом до 1Gb).
Аппаратно эмулируются 2 варианта:
совместимо по схеме с n8vem (port F762): http://n8vem-sbc.pbworks.com/browse/#view=ViewFolder¶m=N8VEM%20Schematics
совместимо по схеме с MSX MMC-drive V1 (port F762, F763): http://msx.retro8bits.com/sd-mmc-drive.html
последовательный порт (RS-232) - порты F764,F765 (схема на AtTiny2313).
Ethernet - эмулируются NE2K-устройства, в железе на примере RTL8019AS -
порты F770..F77F, F780..F7FF
Принтер - эмуляция 2-х схем принтера CENTRONICS (порт F600)
Минимальные требования к PC:
Celeron 400Мгц / 64М RAM / 2M HDD free / Windows 9x, 2000, XP, Vista, W7
Запуск эмулятора
Программа не требует установки, работает из текущего каталога куда будет
распакована, настройки хранятся в файле, одноименном исполняемому, но с
расширением INI.
При запуске эмулятора можно передать параметры: имена файлов. Если это
файл-снапшот, то он будет загружен; если это файл-образ_диска, то он
будет установлен как образ диска "A". Второй параметр командной строки
предполагается как образ диска "B". Также при запуске эмулятора можно
передать параметры - имена файлов *.BRU, *.ORD, *.RKO. Эти файлы обычно
содержат ORDOS-код. Эмулятор загружает их в RAM-диск "В" (ОЗУ второй
страницы) так как они перечислены в командной строке (один за одним пока
хватает места в ОЗУ второй страницы).
Можно, к примеру, создать в Windows ассоциации OrionZEm.exe с файлами ".ori",
".odi" и открывать такие файлы прямо из Проводника Windows по двойному
щелчку. В этом случае все пути в файле настроек эмулятора (OrionZEm.ini)
должны быть полными (формат вида "от текущего каталога: .\dir1\dir2\file"
всего вероятнее не будет работать, т.к. текущий каталог при таком
запуске уже скорее всего не является каталогом эмулятора).
ВНИМАНИЕ:
- если OrionZEm.exe запущен с параметрами, то автоматическое
восстановление автоснапшота из AutoSnap.ori не вызывается,
т.к. оно перекроет переданные параметры своими.
- при загрузке снапшоты восстаналивают полное состояние эмулятора
(т.е. включая файловые буфера ОС в памяти Ориона), но они не
восстанавливают содержимое файлов образов дисков/HDD (это не
дело эмулятора). Поэтому если между записью снапшота и его
восстановлением содержимое файлов образов поменялось, то
возможны неувязки при записи в эти файлы программами Ориона
(например, в CP/M)! Это не ошибка эмулятора!
На порту F600 кроме эмуляции IDE-контроллера добавлена эмуляция
произвольных внешних устройств. Модели устройств хранятся в подключаемых
модулях (плагинах) - специализированных dll, подключающихся "на лету"
(без дополнительного конфигурирования эмулятора - просто копируя dll в
каталог эмулятора, что не отменяет необходимости конфигурирования самих
плагинов - у каждого плагина могут быть внутренние настройки - жмите "Configure
plugin" на закладке "port F600" эмулятора). В настройках эмулятора один
из плагинов (одно устройство на порт F600) выбирается из списка.
В плагине F600prn.dll реализован эмулятор принтера (печать в файл или на
реальный принтер) для двух наиболее часто использовавшихся на Орионе
вариантов схем подключения принтера с интерфейсом CENTRONICS. Печать
тестировалась на лазерном принтере под Windows XP. В эмуляторе для
тестирования применялась АСРМ 1.53 с драйвером LPR.COM А.Грачева (Centronix,
A0..A7 - data, C7 - strobe, C3 - ready=/busy).
Утилиты
В составе эмулятора распространяется утилита HddUtil.exe, с помощью
которой под Windows NT, 2000, XP, Vista можно создать посекторный образ
HDD (как целиком, так и логическго раздела - партиции) в файле.
Аналогично работает утилита DiskUtil.exe, создающая ODI-образы дискет.
Запустите HddUtil.exe (или DiskUtil.exe) без параметров - программа
покажет список своих ключей.
Образы HDD/дисков затем можно просмотреть и изменить их содержимое при
помощи ODI.WCX и OHI-WCX - архиваторных плагинов для файловых оболочек
TotalCommander / DoubleCommander / FarManager.\
В общих чертах про ODI-"диски" и OHI-"диски".
Первое с чего нужно начать, это сопоставить виртуальным (эмулируемым
программой OrionZEm) дисководам файлы-образы дискет. Это делается при
помощи двух кнопок в панели инструментов эмулятора (в верхней части
окна): на одной кнопке написано "А" - тут по нажатию в выпадающем меню
можно выбрать файл-образ для дисковода А (floppy 0) или очистить привод
- "извлечь дискету". Аналогично по кнопке "B" для дисковода В (floppy
1).
Образ диска с приводом сопоставлен (теперь он подсвечивается как hint на
соответствующей кнопке дисковода панели инструментов), теперь нужно с
него загрузиться. Если используется загрузка из ОРДОС (Монитор
вываливается в Ордос), то нужно пользоваться загрузчиком DOS$ для CPM
фирмы Орион-Софт (они называли их OSDOS v 2.4, 3.6) или загрузчиками
BOOT$, MBOOT$ для прочих вариантов орионовских CPM.
Ньюанс: поведение Ориона по включению/сбросу зависит от того, какой тип
Монитора (базовой программы - загрузчика в ПЗУ F800) использован:
некоторые из них загружают с RomDisk-а ORDOS, некоторые сразу загружают
CP/M с дисковода "А". Набор разных Мониторов и небольшое их описание
лежит в подкаталоге .\ROM\ архива эмулятора. Файл Монитора указывается в
настройках эмулятора.
Можно использовать Монитор (ROM-BOIS F800) такой, чтобы он по включению
питания или RESET сразу грузился с дисковода А, без Ордос (будет грузить
все версии орионовских CPM кроме упомянутых OSDOS). Для этого в окне
настроек на закладке ROM нужно выбрать имя файла Монитора содержащего в
суффиксе имени файла символ "D". Также нужно учитывать тип клавиатуры и
выбирать соответствующий тип Монитора (в имени будут суффиксы "RK" или "MS").
Пример: M35zrkd.bin - Монитор версии 3.5, работает только на Z80,
клавиатура RK-86, встроен загрузчик с дисковода.
Незагрузочные диски обычно могут быть 2х вариантов:
Диски с исполняемыми файлами (программами или играми) под CP/М -
классическую операционную систему 8-битных ПК, заточенную под работу с
дисководами. Такие файлы имеют расширение COM (как в MS-DOS) и могут
запускаться непосредственно из коммандного режима CP/M (набрав имя
файла) или из графической программы-оболочки типа NortonCommander или
BridgePanels.
Диски с программами или играми под ORDOS - оригинальную систему,
расчитанную на работу с Rom-Disk (ПЗУ) и квазидисками (ОЗУ). Обычно это
диски с файловой системой CP/M, содержащие файлы с расширением ORD или
BRU. Эти файлы нельзя непосредственно запустить из CP/M, их нужно
скопировать на "квазидиск", а затем уже запускать под ОС ORDOS. Для
копирования файлов BRU с дисков CP/M на "квазизиск" в ОЗУ можно
воспользоваться программой ATLAS, расположенной в ROM-Диске эмулятора .\ROM\romdisk1.bin
(его нужно указать как файл ROM-диска в настройках эмулятора). ATLAS в
псевдографическом режиме выбирает с дискеты CP/M файлы .BRU (.ORD не
понимает - их нужно под CP/M переименовывать в *.BRU) и копирует их на
квазидиски ORDOS, а уже под ORDOS в командном режиме или оболочке NC с
этими файлами можно работать.
OHI-"диски" это диски с образами HDD (CFcard,SDcard). На Орионе я решил
делать так: винт разбивается на стандартные MBR-партиции - как в Windows/MSDOS.
Поддерживается 4 стандартных master-партиции. И разбитый так винт можно
подключать как к PC с виндой (винда работает со своей FAT-партицией,
плюс утилитами можно сдампить в OHI-образ и обратно), так и к Ориону,
который живет (грузится) в своей CP/M партиции и может монтировать
другие CP/M партиции этого или второго винта.
Варианты загрузки с IDE (CF,SD) на Орионе:
при помощи ПЗУ F800 (один из: M35ZMSH.BIN, M35ZRKH.BIN, M36ZMSH.BIN,
M36ZRKH.BIN,...). ПЗУ при включении питания вместо ORDOS сразу грузит
MBR-сектор с master-IDE в ОЗУ по адресу 1:0000 (т.е. с начала второй
физической страницы памяти) и передает туда управление. M35* работают с
IDE с портoм 0F500h, M36* с портoм 0F600h. Суффикс RK обозначает
прошивку для клавиатуры RK-86, MS - для клавиатуры МС7007 по
лениградской схеме.
Вариант загрузки из ORDOS. ПЗУ F800 при этом может быть любым. ПЗУ F800
грузит ORDOS и передает ей управление. Под ORDOS используйте утилиту
MBOOT$.ord (ее можно прошить в ROM-DISK), которая использует загрузчик,
полностью аналогичный Мониторам, но корректирующий в загружаемом с
IDE-F600 коде MBR-загрузчика и BOOT-сектора CPM все вызовы адреса 0F834h
(это подпрограмма чтения с IDE 512б сектора в Мониторах М3*H.BIN) на
вызов своей подпрограммы, которая читает с HDD соответственно схеме
подключения, выбранной в меню программы MBOOT. Дальнейшая загрузка
происходит так, как написан MBR (в настоящее время он позволяет
грузиться по выбору с любого из 4-х primary разделов master-HDD, где
есть загрузочный образ CPM. Выводится меню - список меток_дисков [offset
+20h] соотвествующих разделов). MBR (а далее и BOOT-сектор раздела)
используют п/п 0F834h (или п\п предоставляемую MBOOT$.ord). После
начальной загрузки CP/M работает уже собственным BIOS, не через Монитор
или MBOOT.
Эмуляция RS-232
В Версии 1.06 добавлен режим эмуляции последовательного порта (RS-232),
порты F764,F765. Эмулятор осуществляет ввод\вывод в реально существующий
в РС СОМ-порт. Поэтому есть 2 варианта использования этого режима: в
настройках эмулятора выбрать реальный СОМ-порт и подключить к нему некое
устройство, либо создать в Windows пару виртуальных СОМ-портов на
нульмодемном соединении (я для этого использую бесплатную утилиту
com0com, но есть и платные аналоги), на одном конце повесить эмулятор
(выбрать порт CNCB0), а на другом (CNCA0) -
эмулятор устройства или программу терминал.
Соответствие некоторых спецкнопок в эмуляторе (RK = PC):
УСТ = Home
ПС = End
СТР = Ins
ЗБ = BackSpace
AP2 = Esc
F1..F5 = F1..F5
Ctrl+G = Del
Ctrl+R = PgUp
Ctrl+C = PgDown
РусLat = F8=F9=Scroll (смотря как настроено в настройках
эмулятора на закладке "keyboard")
C учетом "TurboPascal-style"-расширителя (включается в настройках
эмулятора на закладке "keyboard") добавляются PC-комбинации Ctrl+кнопка
для курсорных и фукциональных кнопок, которые транслируются Ориону в
"CTRL-Q-кнопка"-сочетания. За соответствием клавиш этого режима (если
кому-то нужно) - добро пожаловать в исходники (mod8255.pas).
Скачать образ
Купить платы, наборы микросхем на Орион-128, КР565РУ5В,
КР565ру7В, к565ру5г AU, к565ру7г Au
в позолоте, куплю микросхемы
Полезные и интересные статьи
На предыдущую страницу
На главную страницу На следующую
страницу
|
|