-
Notifications
You must be signed in to change notification settings - Fork 2
/
_read_me.txt
236 lines (207 loc) · 12.6 KB
/
_read_me.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
```
//////////////////////////////////////////////////////////////////////////
// //
// Orion/Z (Orion-128 + Z80-CARD-II, ORION-Pro) emulator, version 1.08. //
// //
// //
// Author: Sergey A. <a-s-m@km.ru> //
// //
// Copyright (C)2006-2016 Sergey A. //
// //
// This program is free software; you can redistribute it and/or //
// modify it in any ways. //
// This program is distributed "AS IS" in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. //
// //
//////////////////////////////////////////////////////////////////////////
```
Вашему вниманию представляется программа 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х вариантов:
1. Диски с исполняемыми файлами (программами или играми) под CP/М -
классическую операционную систему 8-битных ПК, заточенную под
работу с дисководами. Такие файлы имеют расширение COM (как в
MS-DOS) и могут запускаться непосредственно из коммандного режима
CP/M (набрав имя файла) или из графической программы-оболочки
типа NortonCommander или BridgePanels.
2. Диски с программами или играми под 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).