OS DOS V2.30 Орион-128, CP/M-80, описание BDOS

Орион Софт OS-DOS V2.30

Продаю платы и наборы микросхем, куплю микросхемы Купить программы, микросхемы, готовые блоки запчастей ПК Орион-128

Все версии CP/M-80

Все версии ORDOS

Все программы ORDOS

CMP/80 авторская cpm/80 2.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. "ОРИОНСОФТ"

    

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

 

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

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