-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathabout.txt
57 lines (45 loc) · 2.91 KB
/
about.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
UZIX для ОРИОН-128 (Z80, >512к RAM)
Для компиляции использовался PublicDomain HitechC v3.09 (1987г.) и такой эмулятор
CP/M под Windows: http://www.vector.co.jp/soft/win95/util/se378130.html
Он умеет возвращать Windows код завершения CP/M-овского HitechC v3.09, что нужно
для make (использую GNU make под винду от каких-то юниксовых портированных утилит).
Среды как таковой я не делал, просто использую ProgrammersNotepad, где в проекте
(фактически - списке файлов: UZIX.pnproj) описал используемые файлы, и на кнопку
F8 настроил сборку по make (Tools->Options->Tools->Scheme C/C++ -> Add)
Но чаще после внесения всех правок в PN просто запускаю make под cmd.
На каталог компилятора hitechC (http://rusfolder.com/42633718) должны быть настроены
пути в переменных окружения PATH и CPMPATH.
Компиляция ядра и утилит:
1. правим мakefile - изменяем так: "DEFINES = -DORI_UTIL", или так: "DEFINES = -DORI_UZIX", или так: "DEFINES = -DORI_FDISK",
в зависимости от того утилиты, ядро или fdisk компилируются соответственно.
2. запускаем cmd, переходим (cd) в каталог где лежат исходники
3. cmd> make clean & REM удаляем объектники - их всегда(!) надо пересобирать
4. cmd> make kernel & REM или "make utils" или "make fdisk.com" - смотря что в DEFINES
[B]Концепция.[/B]
Ядро - обычная CP/M-задача (используется Альтаир-ДОС м 3.05r или выше http://zx-pk.ru/showthread.php?t=18451),
которая "выполняет" UNIX-процессы в расширенном ОЗУ. Архитектура такая:
CP/M 64k bank Subsequent 64k banks
FFFF +------------+ +------------+
Common | Common | | Common |+
F000 +------------+ +------------+|+
| CP/M | | |+|+
+------------+ | Process ||+|
Banked | Kernel | | Code |||+
| Code | | & Data ||||
| | | ||||
0100 +------------+ +------------+|||
| Reserved | | Reserved |+||
0000 +------------+ +------------+|+|
+------------+|+
+------------+|
Ядро пока 29кб. У АльтаирДОС TPA до 58 кб, т.е. хватит места и TCP/IP впилить, и поддержку ФС FAT.
В страницах процессов сразу "из коробки" есть недоэмулятор CP/M: эмулируется CP/M консоль
(ввод-вывод на экран/с клавиатуры через stdin/stdout) - BDOS функции 1..12, BIOS функции 2..4,
остальные функции BDOS (дисковые в-основном) возвращают FF-нет файла. Т.е. будет работать любое
корректное ПО CP/M не лезущее в диски, например ASCII-игры. :)
В планах полный эмулятор CP/M, уже внешний - загружаемый.
В качестве дисков используется IDE/SD через CP/M-овский драйвер "сырого доступа" IDEBDOS,
схема MBR-партиций (поддерживаются только 4 основные партиции на двух физических приводах -
итого 8 (fd0..fd7) партиций, плюс fd8..fd9 - целые "сырые" диски (от LBA0=MBR до LBAmax)),
номер партиции передается в утилиты (проверяемая/копируемая/где создается FS) и в ядро
(root-партиция, остальные через mount) как параметр командной строки.