OR DOS V6.10 программы на Орион ПРО

ОРДОС для ОРИОН ПРО V6.10 описание пакета

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

Состав пакета ORDOS V6.10

ORDOS 6.10 на Орионе ПРО скачать ордос и программы

 

CCP.TX  Список директив процессора команд ORDOS Ver 6.10

DRV.TX  Система загрузки драйверов для ORDOS6

FUNC.TX  Функции операционной системы ORDOS Ver 6.10

DEMO.AS * MIFVI SMOLENSK (C) 2001 *

CCP.TX  Список директив процессора команд ORDOS Ver 6.10

Команды процессора состоят из однобуквенного названия команды за которым вводится обязательный разделительный пробел. За пробелом следуют необходимые параметры директивы. Перед командой можно вводить имя диска для изменения текущего диска одновременно с командой. Ввод строки оканчивается <ВК>.
Редактирование при вводе: клавиши <- и <ЗБ>.

NAME - запуск командного файла NAME.COM и NAME$ из текущего каталога.
- файлы с другими расширениями только загружаются.
- если имя NAME является именем каталога, то происходит переход на каталог NAME.
NAME1\NAME2\ ... \NAME
- запуск файла NAME с указанием пути поиска.
- допустимое им в командной строке .. (две точки), это переход на вышестоящий каталог.
- если путь начинается со \ (слэш), то поиск ведётся с корневого каталога, если нет то с текущего.
\ (один слэш)
- переход на корневой каталог <F2> - сброс (смена дискеты).

одновременно происходит сброс на диск временных модифицированных буферов каталога и FAT на диск если не было смены диска.
<F4> - теплый рестарт ССР.
D<ВК> - вывести текущий каталог диска в виде:
<имя расширение> <адрес посадки> <размер файла>
L NAME - загрузить файл в ОЗУ.
запуск командных файлов не происходит.
S NAME <NADR>,<KADR> - сохраить область ОЗУ в файле с именем NAME.
E NAME - удалить файл NAME после подтвеждения клавишей <Y>.
R NAMENEW NAME - переименовать файл NAME в NAMENEW.
C N:[путь к КАТ] NAME - копировать файл NAME на диск N: в каталог КАТ.
A NAME xxxxH - изменить адрес посадки файла NAME.
P NAME - прочитать байт атрибутов файла
P NAME xxH - записать байт атрибутов файла
О NAME - создать в текущем каталоге подкаталог NAME.
F - форматирование квазидиска.

Конфигурация дисков по умолчанию при холодном старте.

есть винчестер нет винчестера
A: - ROM page 0 A: ROM page 0
B: - RAM page 1 B: RAM page 1
C: - RAM page 2 C: RAM page 2
D: - RAM page 3 D: RAM page 3
E: - HDD 1-й лог.диск E: закрыт
F: - HDD 2-й лог.диск F: закрыт
G: - HDD 3-й лог.диск (RAM page 6) G: RAM page 6
H: - FDD 0 (HDD 4-й лог.диск) H: FDD 0
I: - FDD 1 I: FDD 1

DRV.TX  Система загрузки драйверов для ORDOS6

Система позволяет производить загрузку драйверов в процессе холодного старта ОС. Это позволяет использовать в составе новой ORDOS различные внешние устройства, не входящие в состав базовой конфигурации.

Для загрузки драйвера следует в файле CONFIG.SYS разместить следующую строку:
[D:]NAME.DRV где [D:] - необязательное имя диска, а NAME.DRV - файл драйвера с расширением DRV. Перед именем файла можно использовать путь поиска к файлу. Поиск по путям, заданным
по системной команде PATH, не доступен.
Пример написания файла смотри в файле DEMO.AS. Адрес посадки файла 0000Н, в процессе инициализации тело драйвера переносится по адресам, динамически вычисляемым системой обработки файла CONFIG.SYS. Таким образом, объектный код драйвера должен быть перемещаемым. Для ORDOS6 выбран способ настраиваемого перемещения. Для этого желательно использовать команды процессора, использующие относительную адресацию. Абсолютные адреса вычисляют по правилу, которое приведено в примере драйвера.

Для доступа из инициализации и тела драйвера к ресурсам ДОС и BIOS можно использовать вектора:
1. монитора с адресами 0F8... , кроме векторов дисплея и ввода символа с клавиатуры
2. вектора BIOS по следующим адресам:
- 0EFFDH - вывести символ на экран вх: С-выводимый символ
- 0EFFAH - вывести на экран сообщение
вх: HL-адрес сообщения, конец байт 00Н
- 0EFF7H - ввести символ с клавиатуры
вых: С-введённый символ
- 0EFF4H - читать адрес первой свободной ячейки памяти доступной для загрузки драйвера
вых: HL-адрес памяти
- 0EFF1H - занять память для драйвера
вх: HL-необходимо памяти в байтах
вых: Z=0 - необходимый объём памяти выделен HL-базовый адрес загрузки драйвера
Z=/=0 - нет необходимого объёма памяти
- 0EFEEH - запрос свободной памяти
вых: HL-свободно памяти в байтах
- 0EFEBH - выполнить ДОС функцию
вх: C-номер функции
- 0EFE9H - получить адрес ДОС функции
вх: С-номер функции
вых: HL-адрес функции

Для доступа к ресурсам ДОС драйверам доступны следующие ячейки и буфера системной страницы:

C000H-C01FH
- адреса таблиц параметров логических дисков. Расположено 16 двухбайтовых адресов для дисков А - Р. Если диск не инициализирован то адрес нулевой.

C020H-C09FH
- 8 16-байтных динамически распределяемых таблиц текущего состояния логических дисков

C0A0H-C15FH
- 6 32-байтных таблиц параметров логического диска MSDOS типа

состав таблицы параметров логического диска MSDOS:
+0 - 1байт тип диска (байт устройства)
+1 - 2байта адрес вектора чтения сектора
+4 - 2байта адрес вектора записи сектора
+5 - 3байта первый сектор логического диска
+8 - 3байта макс номер сектора на диске
+B - 1байт число секторов на кластер
+С - 2байта макс номер кластера диска
+Е - 1байт номер сектора первой FAT
+F - 1байт число секторов одной FAT
+10 - 2байта номер первого сектора каталога
+12 - 2байта номер первого сектора данных
+14 - 2байта весовой коэффициент пересчета поверхностей
+16 - 3байта весовой коэффициент пересчета цилиндров
+19 - 1байт чисто секторов корневого каталога
+1А - 6байт резерв

C160H-C1AFH
- 5 16-байтных таблиц параметров логического диска ORDOS типа состав таблицы параметров логического диска ORDOS:
+0 - 1байт тип диска
+1 - 2байта адрес вектора чтения байта с диска
+3 - 2байта адрес вектора записи байта на диск
+5 - 1байт идентификатор начального адреса диска
для внутренних квазидисков страница ОЗУ диска
+6 - 3байта макс размер диска в байтах
+7 - 8байт резерв

C1B0H-C1CFH
- рабочий буфер записи каталога. Только для MSDOS дисков. 32 байта.

C1D0H-C21FH
- буфер имени для поиска в дос странице. 64 байта.

FUNC.TX  Функции операционной системы ORDOS Ver 6.10

Все функции при успешном завершении работы возвращают флаг Z=0 и A=ххН - код возврата, при ошибке Z=1 и A=xxH - код ошибки.

Примечание: функции N1-23 аналогичны соответствующим функциям ORDOS версий 4.1 и ниже, далее при описании указаны только отличия, характерные для ORDOS версии 6.10.

1. 0BFFDH - теплый старт системы.

2. 0BFFAH - чтение файла с диска.
вых: A=0 - найден, A=80-8FH - код файла
80Н - *.COM , *.$ - исполняемый
81Н - *.EXE - исполняемый Windows
может быть более 64 Кб
82Н - *.BRU - стандартный BRU
8EH - *.DRV - файл драйвера устройства
8FH - *.BAT - командный файл
83Н - 8DH - резерв

3. 0BFF7H - запись файла на диск.

4. 0BFF4H - закрыть последовательный файл.

5. 0BFF1H - открыть последовательный файл.

6. 0BFEEH - удалить файл.

7. 0BFEBH - переименовать файл.

8. 0BFE8H - вывод каталога в буфер.
вх: HL - адрес буфера
вых: A - количество файлов в текущем каталоге

9. 0BFE5H - поиск файла по ст. ORDOS4, имя до 8 символов.
вых: A=0 - нет файла
A=FFH - файл найден
HL - адрес оглавления (ORDOS)
для (MSDOS) адрес в системной странице

10. 0BFE2H - запись стоп байта, для msdos дисков блокировано.

11. 0BFDFH - запись байта в диск, для msdos блокировано.
вх: A - байт HL - адрес

12. 0BFDCH - чтение байта с диска, для msdos блокировано.
вх: HL - адрес
вых: A - байт

13. 0BFD9H - чтение имени текущего диска.
вых: A - имя (A-P)

14. 0BFD6H - определение текущего диска.
вх: A - имя установленного диска
при ошибке имя текущего диска не изменяется

15. 0BFD3H - чтение адреса буфера имени файла.
вых: HL - адрес

16. 0BFD0H - запись адреса буфера имени файла.
вх: HL - адрес
эту функцию следует выполнять перед всеми функциями
оперирующими с именами файлов

16. 0BFCDH - чтение адресов размещения файла.
вых: (ordos) HL - начало файла на диске
DE - конец файла на диске
вых: (msdos) HL - начальный кластер файла
DE - не определено
(выполнять после функции поиска файла)

17. 0BFCAH - запись Н/К адресов блока ОЗУ.
вх: HL - начало блока
DE - конец блока

18. 0BFC7H - чтение атрибутов файла.
вых: HL - адрес посадки файла
DE - длина файла
BC - (ordos) адрес оглавления
- (msdos) адрес оглавления в системной
странице
(выполнять после поиска файла)

19. 0BFC4H - запись максимального размера квазидиска.
вх: HL - максимальная граница
для msdos дисков блокировано

20. 0BFC1H - чтение максимального размера диска.
вых: HL - максимальный размер
(для msdos дисков размер в кластерах)

21. 0BFBEH - изменение адреса посадки файла.
вх: HL - новый адрес посадки
вых: HL - старый адрес посадки

22. 0BFBBH - номер версии ДОС (двоично-десятичный формат)
вых: A - номер версии (61Н)
Z=0 компьютер Орион-ПРО
z=1 компьютер Орион-128

23. 0BFB8H - конечный адрес программ на диске.
вых: HL - адрес стоп байта
для msdos дисков номер первого свободного кластера

24. 0BFB5H - поиск файла по ст. ORDOS6 имя до 8+3 символов.
вых: HL - адрес посадки файла
A - код файла
00Н - файл найден
80-9FH - для зарезервированных расширений поиск ведётся во всех каталогах, заданных командами PATH, пока файл не будет найден. Если файл не найден, то остаётся текущий каталог.

25. 0BFB2H - вызов расширенных функций ORDOS6.
вх: С - номер функции 2-7FH
остальные регистры для передачи параметров

26. 0BFAFH - последовательное чтение из файла
вых: Z=0 - успешно A - символ
Z=1 - ошибка или конец файла A=23H
HL - адрес посадки (только при открытии)
DE - осталось байт в файле
по исчерпании всего файла он автоматически закрывается

27. 0BFADH - закрыть последовательное чтение из файла

28. 0BFAAH - читать сектор с диска (только для мsdos дисков).
вх: BC - цилиндр
D - сектор Е - поверхность
HL - адрес буфера
А - количество читаемых секторов

29. 0BFA7H - записать сектор на диск (только для msdos дисков).
вх: BC - цилиндр
D - сектор Е - поверхность
HL - адрес буфера
А - количество читаемых секторов

**************************************************************

РАСШИРЕННЫЕ ФУНКЦИИ ORDOS Ver 6.00 ВЕКТОР 25 (0BFB2H) основных функций

1. С=2Н - копировать файл
командная строка в буфере имени файла
N: [путь куда копировать] Name
где N имя диска приемника
Name имя копируемого файла, находящегося на
текущем диске и каталоге

2. С=3Н - читать байт атрибутов файла
вх: имя файла в буфере имени
вых: А - байт атрибутов

3. С=4Н - записать байт атрибутов файла
вх: имя файла в буфере имени
А - новый байт атрибутов
вых: А - старый байт атрибутов

4. С=5Н - поиск файла в текущем каталоге ДОС. Заданные пути
поиска игнорируются.

5. С=6Н - возврат к каталогу который был перед предыдущим
выполнением функции 26.

6. С=7Н - дос поиск. предназначен для поиска файлов из драйвера.
может вызываться только из дос страницы. имя искомого
файла должно быть предварительно размещено в буфере
имени дос страницы.

7. C=0EH - читать каталог в буфер 0 стр. по стандарту msdos.
вх: HL - адрес буфера
Z=0 - сначала Z=1 - прододжить
В - по сколько записей каталога за один раз

8. C=0FH - читать сектор каталога в буфер ДОС (только msdos).
вх: Z=1 - сначала каталога
Z=0 - следующий сектор каталога
вых: адрес буфера в дос странице ст.б (IX+0CH)
мл.б 00Н

9. С=10Н - читать адрес буфера пути текущего каталога.
вых: A - указатель наполнения A=0 - буфер пуст
HL - адрес в дос странице

10. С=1DH - запрос свободного места (для msdos дисков).
вх: Z=0 - запрос непрерывной области на диске
В - реобходимый размер зоны в кластерах
Z=1 - сколько свободно на диске вообще
DE - свободно на диске кластеров

11. С=1EH - создать подкаталог (для msdos дисков).

12. С=1FH - зп/чт системное дата/время
вх: В=0 - читать время
В=1 - читать дату
В=2 - установить время
В=3 - установить дату
HL - новое время/дата
вых: HL - системное время/дата
примечание: HL содержит время дату в формате msdos
время биты: 15-11 - часы
10-5 - минуты
4-0 - секунды
дата биты: 15-9 - год
8-5 - месяц
4-0 - число

13. С=29Н - найти следующее оглавление файла (для ordos дисков).
вых: в служебных ячейках системы

14. С=2AH - читать слово из квазидиска
вх: HL - адрес на диске
вых: DE - прочитанное слово

15. С=2BH - проверка на стоп байт для ordos дисков
вх: HL - адрес оглавления
вых: Z=0 A=0 - не стоп байт
Z=1 A=0FFH - стоп байт

16. С=2CH - найти следующий файл (только msdos).
вых: HL - адрес записи в странице дос
A - байт атрибутов файла

17. С=2DH - найти первый файл (только msdos).
HL - адрес записи в странице дос
A - байт атрибутов файла

18. C=2EH - служебная функция системы.

19. C=2FH - служебная функция системы.

20. C=30H - инициализация BIOS при холодном старте системы.

21. C=31H - сброс диска и его служебных буферов.

22. С=32Н - запрос о смене дискеты в дисководе.
вых: Z=0 - смены диска не было
Z=1 A=8 - диск сменён
A=7 - диск отсутствует

23. С=33Н - чтение содержимого элемента FAT.
вх: DE - номер элемента FAT
вых: DE - содержимое элемннта FAT
A - флаг содержимого A=0 - свободен
A=0FFH - конец файла
A=0FEH - занят

24. С=34Н - читать кластер в 0 страницу.
вх: HL - адрес буфера
DE - номер кластера
A - число кластеров

25. С=35Н - записать кластер из 0 страницы.
вх: HL - адрес буфера
DE - номер кластера
A - число кластеров

26. С=36Н - читать сектор с диска (LBA).
вх: HL - адрес буфера
B-DE - линейный номер сектора
A - число секторов

27. С=37Н - записать сектор на диск (LBA).
вх: HL - адрес буфера
B-DE - линейный адрес сектора
A - число секторов

28. С=38Н - чтение параметра секторов/кластер.
вых: A - параметр

29. С=39Н - пересчёт номера кластера в CHS.
вх: DE - номер кластера
A - число кластеров
вых: BC - цилиндр
D - сектор E - поверхность
A - число секторов

30. С=3AH - пересчёт линейного номера сектора в CHS.
вх: B-DE - номер сектора
вых: BC - цилиндр
D - сектор Е - поверхность

31. С=3BH - чтение размера диска в кластерах
вых: HL - размер диска в кластерах

32. С=3CH - записать элемент FAT
вх: DE - номер элемента FAT
HL - информация для записи

33. С=3DH - читать байт дискового устройства
вых: А - байт устройства
биты: 7 =0 - 16 бит FAT
=1 - 12 бит FAT
6 =1 - виртуальный msdos
5 =1 - квазидиск структуры ORDOS4
4 =0/1 - физический номер диска IDE
3-2 - резерв
1-0 - номер однотипного физического
устройства

34. С=3EH - служебная функция системы

35. С=3FH - пересчет номера кластера в номер сектора LBA
вх: A - число кластеров (можно игнорировать)
DE - номер кластера
вых: A - число секторов
C-DE - номер сектора LBA

**************************************************************

КОДЫ ОШИБОК ORDOS 6.10

00H - успешное завершение функции
01Н - файл или каталог не найден
02Н - повторный файл или каталог
03Н - мало места на диске
04Н - R/O только чтение
05Н - ошибка чтения (КС файла)
06Н - ошибка записи
07Н - устройство не готово или не инициализировано
08Н - диск сменён
09Н - каталог содержит файлы, удалить нельзя
...
0EH - нет необходимой свободной зоны на диске
0FH - переполнение буфера пути поиска
10H - параметр функции вне допустимого диапазона
11H - конец каталога (по количеству секторов)
12Н - найден каталог Z=0
13Н - ошибка чтения содержимого элемента FAT
14H - ошибка при чтении сектора FAT
15H - ошибка размещения файла
16Н - конец FAT (по количеству секторов)
17Н - ошибка открытия/закрытия таблицы состояния диска
20Н - ошибка при записи сектора FAT
21Н - ошибка записи элемента FAT
22H - ошибка доступа к FAT
23Н - конец файла (функция последовательного чтения файла)
30Н - недопустимый номер сектора
31Н - недопустимый номер кластера
E5H - найдена стертая запись каталога
F7H - попытка стирания плохого кластера
FFH - функция не реализована или недопустима для данного типа диска

DEMO.AS * MIFVI SMOLENSK (C) 2001 *

;************************************
;* testowyj primer napisaniq *
;* zagruvaemogo drajwera dlq ORDOS6 *
;* DEMO.DRV *
;* ispolnqetsq w stranice dos *
;* adres starta 0000H *
;************************************

;wektory funkcij obsluviwaniq drajwera
ADRFN:EQU 0EFE8H ;polu~itx adres funkcii dos
; ; wh: C - nomer funkcii
; ; wyh: HL - adres
CALLF:EQU 0EFEBH ;wypolnitx funkci` dos
; ; wh: C - nomer funkcii
FRMEM:EQU 0EFEEH ;polu~itx razmer swobodnoj
; ;pamqti drajwerow
; ; wyh: HL - swobodno bajt
SVMEM:EQU 0EFF1H ;zanqtx pamqtx dlq drajwera
; ; wh: HL - razmer pamqti
; ; wyh Z=0 OK
; ; Z=1 nedostato~no pamqti
RDMEM:EQU 0EFF4H ;~itatx adres perwogo swob.bajta
; ; wyh: HL - adres
KBRDL:EQU 0EFF7H ;wwesti simwol s klawiatury
; ; wyh: C - wwedennyj simwol
MSGL:EQU 0EFFAH ;wywesti soob}enie na |kran
; ; wh: HL - adres soob}eniq
SIMBL:EQU 0EFFDH ;wywesti simwol na |kran
; ; wh: A - simwol
;movno ispolxzowatx wse podprogrammy monitora
;krome wywoda na |kran i wwesti simwol s klawiatury
;
ORG 0000H ;adres starta inicializacii
LD HL,TITUL
CALL MSGL ;wywod neobqzatelxnogo soob}eniq
CALL RDMEM ;adres perwogo swobodnogo bajta
CALL NEXLH ;wywesti na |kran
LD A,'H'
CALL SIMBL
LD HL,DRVEND-DRVBEG ;ob'em drajwera
CALL SVMEM ;zanqtx pamqtx dlq drajwera
JR NZ,NOMEM ;nedostato~no pamqti
LD (ORGMEM+1),HL ;sohr.adres zagruzki drajwera
PUSH HL
LD HL,MSG1
CALL MSGL
POP HL
PUSH HL
CALL NEXLH
LD A,'H'
CALL SIMBL
POP DE
;
;korrekciq adresow perehodow
LD HL,LABL1
ADD HL,DE
LD (ADRV+ALABL1+1),HL
;
LD HL,EXIT
ADD HL,DE
LD (ADRV+ALABL2+1),HL
;
;
;perenos drajwera w rabo~u` oblastx
LD HL,ADRV
ORGMEM:LD DE,0
LD BC,DRVEND-DRVBEG
LDIR
;
;RET ;zdesx movno wozwrat w dos
;
;demo wyzow wwoda s klawiatury
;prqmo iz zagruvennogo drajwera
LD HL,(ORGMEM+1)
JP (HL) ;perehod na na~alo drajwera
;
NOMEM:CALL KBRDL
RET
;
;telo drajwera
ADRV:EQU $
PHASE 0000H
DRVBEG:LD HL,MSG2
CALL MSGL
ALABL1:CALL LABL1
ALABL2:JP EXIT
;
LABL1:CALL KBRDL
LD A,C
CP 1BH
RET Z
CALL SIMBL
JR LABL1
;
EXIT:LD C,2
CALL ADRFN ;polu~itx adres funkcii
PUSH HL
LD HL,MSG3
CALL MSGL
POP HL
CALL NEXLH ;wywesti na |kran
LD A,'H'
CALL SIMBL
;
;demo wyzow funkcii
LD C,3DH
CALL CALLF ;polu~itx bajt ustrjstwa
PUSH AF
LD HL,MSG4
CALL MSGL
POP AF
CALL NEXL
;
LD HL,MSG5
CALL MSGL
CALL KBRDL
;
RET ;wozwrat w dos posle demonstracii
;
DRVEND:
DEPHASE
;
NEXLH:LD A,H
CALL NEXL
LD A,L
CALL NEXL
RET
NEXL:PUSH AF
RRCA
RRCA
RRCA
RRCA
CALL AS1
POP AF
AS1:AND 0FH
CP 0AH
JP M,AS2
ADD A,7
AS2:ADD A,30H
TV20:PUSH BC
LD C,A
CALL SIMBL
POP BC
AS3:RET
;
;tekstowye soob}eniq
TITUL:DB 1FH,0AH,7,' demonstraciq zagruzki drajwera'
DB 0DH,0AH,' dlq ORDOS6 ORION-PRO'
DB 0DH,0AH,0AH,' perwyj swobodnyj adres: ',0
MSG1:DB 0DH,0AH,' adres zagruzki drajwera: ',0
MSG2:DB 0DH,0AH,' drajwer inicializirowan.',0
MSG3:DB 0DH,0AH,' adres funkcii C=2 rawen: ',0
MSG4:DB 0DH,0AH,' bajt ustrojstwa: ',0
MSG5:DB 0DH,0AH,' zagruzka drajwera zawer{ena.',0
END

 

Продолжение про OR DOS V6.10

 

Купить платы, наборы микросхем на Орион-128, КР565РУ5В, КР565ру7В, к565ру5г AU, к565ру7г Au в позолоте, куплю микросхемы, Z80, микропроцессоры и микроконтроллеры

 

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

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