OS DOS V2.30 Орион-128, CP/M-80, описание BDOS
Орион Софт OS-DOS V2.30
Продаю платы и наборы микросхем, куплю микросхемы
OS DOS от Орион СОФТ, CP/M-80, дискеты 3,5 и 5,25 дюйма - 720 к, эмулятор Готек
Авторский контроллер НГМД. Мы собираем именно такой и на нем работаем. Читайте про пакет Атлас. Также дискеты можно работать из ORDOS с пакетом программ Атлас. Атлас понимает формат файлов BRU.
Дискеты должны быть отформатированы в OS DOS (CP/M-80) программой FORMAT.COM
OrionSoft - Disk Operating System "OS-DOS" Версия V2.30, 1992г
Cистемные вызовы bdos и файловая структура операционной системы OrionSoft - dos (os-dos) (c) 1992 OrionSoft
Блок управления файлом
(fcb) это массив данных длиной в
36 байт, описывающий файл в каталоге.
Структура fcb:
00 01 02 08 09 0a 0b 0c 0d 0e 0f 10 1f 20 21 22 23
------------------------------------------------------------
!dr!f1!f2!...!f8!t1!t2!t3!ex!s1!s2!rc!d0!...!dn!cr!r0!r1!r2!
------------------------------------------------------------
00 01 02 08 09 10 11 12 13 14 15 16 31 32 33 34 35
dr - код дисковода 0-16 (0-по.умолч.;1-a;2-b...16-b)
f1-f8 - имя файла в коде ascii со старшим разрядом=0
t1-t3 - тип файла в коде ascii со старшим разрядом=0
ex - номер участка (установить=0)
s1,s2 - системные байты (установить=0)
rc - системный байт (установить=0)
d0-dn - системные байты (не трогать)
cr - номер текущей записи (установить=0)
r0,r1,r2 - служебные байты для системы (не трогать)
при запросе доступа к файлу заполнение младших 16 байтов
fcb и инициализация поля "cr" возлагается на программиста.
Описание системных вызовов:
0 (c=00) - сброс системы (горячий рестарт системы)
1 (c=01) - ввод с клавиатуры в регистр а
2 (c=02) - вывод на терминал из регистра e
3 (c=03) - ввод с фотосчитывателя в регистр a
4 (c=04) - вывод на перфоратор из регистра е
5 (c=05) - вывод на ацпу из регистра e
6 (c=06) - прямой ввод/вывод на тeрминал
e=0ffh - ввод в ак либо символа, либо 00
e=ascii символ - вывод
7 (c=07) - чтение байта управления вводом/выводом в ak
8 (c=08) - установка байта ввода/вывода из регистра e
9 (c=09) - вывод строки на терминал
de - адрес первого символа строки
$ - символ конца строки (не печатается)
10(c=0a) - ввод строки с клавиатуры в буфер строки
de - адрес буфера строки
вк - признак конца при вводе строки
структура буфера строки
de: +0 +1 +2 +3 +4 +5 +6 +7 ... +254(max)
----------------------------------
!mx!ns!c1!c2!c3!c4!c5!c6! ... !??!
----------------------------------
mx - максимальное число символов в буфере
ns - число фактически считанных символов
c1..- символы
11(c=0b) - опрос состояния клавиатуры в ак
ak=00 - не активна, ак=0ffh - активна
12(c=0c) - получение номера версии os-dos в hl
h=0 - os-dos (сp/m) , h=11 - mp/m
l=20...2f - ver 2.0 ... 2.15
13(c=0d) - сброс дисковой системы
14(c=0e) - выбор диска по содержимому регистра e
0-a,1-b,2-c,.....,15-p
15(c=0f) - открытие файла
вход : de - адрес fcb файла
выход: ak - код каталога (0-3) или 0ffh ,если
указанный файл на диске отсутствует
16(c=10) - закрытие файла
вход : de - адрес fcb файла
выход: ак - код каталога (0-3) или 0ffh , если
указанный файл отсутствует на диске
17(c=11) - поиск первого - поиск файла в каталоге диска
вход : de - адрес fcb
выход: ак - код каталога
по текущему адресу пдп заносится запись, содержащая
точку входа каталога
18(c=12) - поиск следующего - то же что и 17 но с текущего
положения в каталоге
19(c=13) - стирание файла
вход : de - адрес fcb
выход: ак - koд каталога (0-3) или 0ffh-если неt
20(c=14) - последовательное чтение
вход : de - адрес fcb, файл должен быть открыт
адрес пдп, номер сек.и номер дорожки должен быть
установлены заранее
выход: ак=0 если норма и ак<>0 если конец файла
21(c=15) - последовательная запись
вход : то же, что и в 20
выход: ак=0 если норма и ak<>0 если диск полон
22(c=16) - создание файла
вход : de - адрес fcb
выход: ак - код каталога (1-3),если норма и
ак=0ffh , если диск полон
23(c=17) - переименование файла
24(c=18) - получение вектора регистрации в системе
25(c=19) - получение активного диска
26(c=1a) - установка адреса пдп из de
27(c=1b) - получение адреса размещения в hl
28(c=1c) - защита диска от записи
29(c=1d) - получение вектора "только чтение" в hl
30(c=1e) - установка атрибутов файла
31(c=1f) - получение адреса блока параметров диска в hl
32(c=20) - установка/получение кода пользователя
33(c=21) - чтение в произвольном порядке
34(c=22) - запись в произвольном порядке
35(c=23) - вычисление размера файла
36(c=24) - установка произвольной записи
Типичный пример вызова системной функции :
bdos:equ 5 ; адрес входа в bdos
;
mvi c,9 ; код вызова "печать строки"
lxi d,adres ; в de адрес строки в озу
call bdos ; вызов системы
В. СУГОНЯКО 142440 Московская обл. п.Обухово, а/я 13. "ОРИОНСОФТ"
На предыдущую страницу На главную страницу На следующую страницу