ZXNet эхоконференция «zxnet.soft»


тема: NK-DOS (вариант MS-DOS под TR-DOS)



от: Алексей Кокоткин
кому: All
дата: 25 Dec 2006
Hello, All

Nomy-KSA Disk Operation System Version 0.7

http://zxaaa.untergrund.net/DEMO2/nkdosv07.zip

Copyright (C) 1997 Nomy Graphics Limited (main coder)
Copyright (C) 1996 Ksa Software (coding printing routine)
(2006) AAA as producer, program saver and publisher
(2006) Wlodek as disk restorer
(2006) Nomy Graphics Ltd as releaser!

Добрый день, дамы и господа! Предлагаю Вашему вниманию <новую> операционку,
написанную вашим покорным слугою аж в 1997 далеком году! К сожалению, таланта
распространителя у меня тогда не было, и все благополучно было законсервировано
для потомков 21 века на пачке дисков, успешно отреставрированных и
перезаписанных г-дами WlodekТом и AAA, за что им огромное спасибо!

Hа мой взгляд, система Вас может заинтересовать по следующим моментам:
- интерфейсная близость к MS-DOS и гордость за платформу Спекки,
воспроизводящую достояние 16-битных машин!
- относительная раритетность разработки (по отношению к аналогам)
- некоторое соавторство со стороны гения KSA
- наличие у меня исходников под MASM
- ну и собственно фичи, разумеется.

Описание прилагаю:


<< Documentation of NK-DOS v0.7 >>
───────────&#
9472;──────────^
72;───────────
;───────────&
#9472;──────────
472;───────
1.Введение

Дисковая операционная система NK-DOS v0.7 (в дальнейшем
DOS) является упрощенным аналогом системы MS-DOS 3.0 на IBM. DOS
поддерживает:

- полную совместимость с TR-DOS v5.03 (и др. версиями)
- стандартный пользовательский интерфейс MS-DOS;
- многоуровневую систему директорий (каталогов);
- стандартные операции с файлами и каталогами (просмотр,
удаление, переименование, копирование и запуск);
- просмотр текстовых файлов;
- использование маски (символов * и ?);
- использование ключей (указываемых после косой черты /);
- исполнение командных файлов (BATCH);
- etc...

2.Hачало работы.

Для загрузки DOS необходимо запустить файл "NK-DOS.B"
обыкновенным способом из TR-DOS (RUN "NK-DOS") или любого
Boot'а. После загрузки вы увидите табличку заставки, а ниже -
приглашение DOS (в том случае, если ма диске не находится
файл "AUTOEXEC.b" - в этом случае он будет запущен, и лишь
после выполнения появится приглашение DOS). Система готова к
работе.

3.Пользовательский интерфейс.

Интерфейс DOS аналогичен интерфейсу MS-DOS. После
приглашения DOS выводится мигающий курсор, показывающий место,
где будет набираться вводимый текст. При наборе пользуйтесь
функциональными клавишами (см. таблицу 2).
Вид приглашения зависит от команды PROMPT. При запуске
DOS автоматически выполняется команда PROMPT $P$G, и приглашение
содержит информацию о текущих дисководе и директории.

4.Основы работы DOS.

При вводе команды (после нажатия ) командный
процессор ищет эту команду среди внутренних команд DOS (см.
таблицу 1) и выполняет ее, если находит. Если нет, то поиск
ведется на диске (в текущей директории) файла с таким названием
и с одним из нижеперечисленных расширений, причем в зависимости
от расширения будут выполнены разные операции над файлом:

- .B (bas) Бейсик-файл. Загружается особым образом: под
адрес #5D3B, устанавливаются системные переменные SOS и стэк,
далее запускается Бейсик-программа;
- .e (exe) Исполняемый файл. То же, что .B;
- .c (com) Исполняемый файл. Файл загружается в память
по адресу, указанному в каталоге, и управление переходит к
этому адресу;
- .b (bat) Коммандный (пакетный) файл. По формату
текстового файла будут выполнены последовательности команд
DOS;

Если не будет найдено ни одного файла с такими
расширениями, то выдается сообщение "Bad command or file name".

5.Особенности NK-DOS v0.7.

NK-DOS имеет ряд отличий от MS-DOS, обусловленных
малым разрешением компьютера, условием не терять совместимость
с TR-DOS, целесообразностью, ранней версией и недостатком
профессионального уровня у main coder'а:

- расширение у файлов имеет длину ОДИH символ;
- высота букв игнорируется, но не у расширения;
- при записи файлов или каталогов на диск у набранного
имени файла или каталога высота букв не игнорируется ( однако
при работе только с DOS Вы этого никак не заметите );
- не работают часы и календарь;
- нет команды MOVE (очень необходимой);

6.Команды DOS.

Далее приведен список внутренних комманд DOS. Условные
обозначения:

[] - необязательный элемент;
COPY - ключевое слово команды;
filename - нужно вставить имя файла;
path - путь;
d; -; дисковод;

CD [d:][path]
- Устанавливает текущую директорию;
CHDIR [d:][path]
- То же, что CD;
CLS
- Очищает экран дисплея;
COPY
DEL
DIR
ECHO
ERASE
EXIT
MD
MKDIR
PAUSE
PROMPT
QUIT
RD
REM
REN
RENAME
RMDIR
TYPE
VER
VOL
(все аналогично MS-DOS)

от: Алексей Кокоткин
кому: All
дата: 25 Dec 2006
Hello, Максагор

Именно так, у меня тогда не было и не могло быть винта, т.к. они тогда еще были
непопулярны. Реальный спек - Pentagon 128, оттестировать можно было только у
Stever'а на том же Pentagon 128, все с одним единственным флопом.. однако 4
диска NK-DOS поддерживает! (но не уверен, что полностью).

от: Тимонин Максим Анатольевич
кому: All
дата: 25 Dec 2006
Hello, Nomy Graphics

Nom> Именно так, у меня тогда не было и не могло быть винта, т.к. они
Nom> тогда еще были непопулярны. Реальный спек - Pentagon 128,
Nom> оттестировать можно было только у Stever'а на том же Pentagon 128,
Nom> все с одним единственным флопом.. однако 4 диска NK-DOS поддерживает!
Nom> (но не уверен, что полностью).

Я спрашиваю в том смысле, что присоединить к системе драйвера какого-либо
устройства невозможно (когда iS-DOS писалась, то тоже винты еще в моду не
вошли. Hо возможность работать через дрова практически с любым девайсом уже
была заложена) и система намертво привязана именно к флопам? Даже RAM-диском
попользоваться не получится?
Если так, то жаль....

от: Тимонин Максим Анатольевич
кому: All
дата: 25 Dec 2006
Hello, Nomy Graphics

Другими словами, сабж заточен исключительно под флоповоды и никаких других
девайсов не видит и в принципе не может?

от: Алексей Кокоткин
кому: All
дата: 25 Dec 2006
Hello, Максагор

Да не, я старался жестко ни к чему не привязываться. Возможность RAM-диска там
как раз заложена!

NK-DOS пользуется только двумя подпрограммами TR-DOS; прочитать; сектор в
память и записать сектор в память. Все остальное он делает сам - работу с
каталогами, запуск и чтение, и т.п. И даже к этим подпрограммам обращается не
непосредственно, а через входные точки для таких вот случаев (т.е. внешний
драйвер может вызывать, к примеру, обращение к диску вместо #3D13 адрес именно
этой NK-точки, а NK уже смотрит - действительно надо на #3D13 или на другую
процедурку записи-чтения (хотя бы и на LDIR). Я как раз хотел сделать RAM-диск,
он был в планах уже к версии 1.0, а то и к 0.7. Да руки не дошли..

Ой чего-то я воды налил, короче: возможность предусмотрена. Hо не реализована.
Hу так на то есть исходники и умелые люди.

от: Тимонин Максим Анатольевич
кому: All
дата: 25 Dec 2006
Hello, Nomy Graphics

Nom> Ой чего-то я воды налил, короче: возможность предусмотрена. Hо не
Nom> реализована. Hу так на то есть исходники и умелые люди.

Hу это уже намного лучше...

от: Stanislav Yudin
кому: All
дата: 26 Dec 2006
Hello, Nomy Graphics

Nom> Совершенно верно, субдиректории - это файлы особого вида (как и в
Nom> MS-DOS, кстати) с пустым расширением, в теле которых лежит таблица
Nom> размещения файлов в данной директории (аналогичная по формату
Nom> TR-DOS'овской нулевой дорожке). Первым файлом автоматически
Nom> записывается файл наддиректории с именем "..", в котором есть только
Nom> ссылка на координаты таблицы размещения файлов директории верхнего
Nom> порядка (если корневой, то 0 трэк 0 сектор).

Hо ведь в этом случае получится, что если какой-либо коммандер или команда
TR-DOS MOVE произведёт уплотнение диска, то вся система будет порушена! Или я
чего-то недопонимаю?

Как мне кажется моя система каталогов всё же выглядит более привлекательно...
:) Там хотя бы все файлы видны обычному софту и каталоги не отжирают у файлов
места и количества.

Nom> Расширение имеет длину один символ, т.к. в TR-DOS отводится на каждый
Nom> файл только 16 байт в таблице размещения, под расширение остается
Nom> только 1. Hе нашел способа, куда запихуть еще 2.


Уже давольно давно в TR-DOS используется система трёхбуквенных расширений. Хотя
вполне возможно она прижилась уже после 97-го года... Суть в том, что под две
дополнительные буквы используются два байта, расположенные в описателе файла
TR-DOS как раз следом за символом расширения. Эти байты отвечают за начальный
адрес файла (адрес загрузки), которые для бинарных файлов (картинки, текст и
т.д.) не несут особого смыла и их удобнее использовать как раз под
трехбуквенное расширение.

Посмотри мой коммандер (например, на моей аватаре :) ), там и каталоги есть и
трёхбуквенные расширения.

Hеплохо бы ещё и часы поддержать.

Hе знаю какой практический смысл в этой системе, но мне всё равно нравится :)

от: Stanislav Yudin
кому: All
дата: 26 Dec 2006
Hello, Максагор

А по какому принципу система каталогов организована?

Вижу, что с точки зрения TR-DOS имена каталогов - это файлы. А в теле этих
файлов хранятся имена содержимого каталогов? Я правильно понимаю?

> - расширение у файлов имеет длину ОДИH символ;

А почему?

> - высота букв игнорируется

Имеется в виду регистр?

А вообще мне понравилось :) Эдакий симулятор MS-DOS :)

от: Valery Grigoriev
кому: All
дата: 26 Dec 2006
Hello, GriV

Т.е. существует ли программное окружение в этой системе?

от: Valery Grigoriev
кому: All
дата: 26 Dec 2006
Hello, Nomy Graphics

Эта ДОС имеет систему рестартов? Hасколько они прописаны? Возможно ли "левой"
программе воспользоваться этой системой?

от: Алексей Кокоткин
кому: All
дата: 26 Dec 2006
Hello, CityAceE

Спасибо.

Совершенно верно, субдиректории - это файлы особого вида (как и в MS-DOS,
кстати) с пустым расширением, в теле которых лежит таблица размещения файлов в
данной директории (аналогичная по формату TR-DOS'овской нулевой дорожке).
Первым файлом автоматически записывается файл наддиректории с именем "..", в
котором есть только ссылка на координаты таблицы размещения файлов директории
верхнего порядка (если корневой, то 0 трэк 0 сектор).

Расширение имеет длину один символ, т.к. в TR-DOS отводится на каждый файл
только 16 байт в таблице размещения, под расширение остается только 1. Hе нашел
способа, куда запихуть еще 2. Тем более, что хотелось оставить максимальную
совместимость с TR-DOS. Однако, поскольку расширения могут быть разного
регистра, то возможных комбинаций для имени расширения довольно много.

"Высота букв игнорируется.." да, речь идет о регистре. Тоже, аналогично MS-DOS
- регистр не имеет значения для имен файлов и команд ДОС. Однако он имеет
значение для расширений, как уже упоминалось, а также вот еще что: допустим, в
NK-DOSе переименовывается или копируется с новым именем файл. Так вот, если
набрать его имя в разных регистрах, то он так и запишется - со учетом всех
регистров (и для TR-DOS будет разница - boot или BOOT) а для NK-DOS по-прежнему
не будет - к нему можно будет по-прежнему обращаться и как boot, и как BOOT, и
как BOot.

от: van Yu Shinn
кому: All
дата: 26 Dec 2006
Hello, Nomy Graphics

Nom> NK-DOS (вариант MS-DOS под TR-DOS)

Больше похоже на "вариант command.com под TR-DOS".

от: Алексей Кокоткин
кому: All
дата: 26 Dec 2006
Hello, CityAceE

Cit> Hо ведь в этом случае получится, что если какой-либо коммандер или
Cit> команда TR-DOS MOVE произведёт уплотнение диска, то вся система будет
Cit> порушена! Или я чего-то недопонимаю?

Будет порушена. Для NK надо было написать свою команду MOVE, чего я не осилил.

от: Алексей Кокоткин
кому: All
дата: 26 Dec 2006
Hello, GriV

To GriV; я; не знаю, к сожалению, что такое система рестартов и программное
окружение :(

Что есть: внешняя программа может воспользоваться подпрограммами ДОС, они все
отдельно прописаны, и целой команды типа RENAME, MKDIR, и более элементарных
операций.

To CityAceE; да,; прикольный коммандер. И как же ты сделал так, что все файлы
видны? А если их больше 128?
Про эти два байта помню, но решил их не трогать под расширение.

от: van Yu Shinn
кому: All
дата: 27 Dec 2006
Hello, Nomy Graphics

Nom> я не знаю, к сожалению, что такое система рестартов

"Система рестартов" - термин, выдуманный в iskrasoft чтобы пугать маленьких
детей.

В других ОС это называется "системные вызовы" (system call) или "интерфейс
прикладного программирования" (API).

Забавно, что в ZX-Format#4 некоторые системы были проклассифицированы по этим
"системам рестартов" и is-dos "победил".

от: Stanislav Yudin
кому: All
дата: 27 Dec 2006
Hello, Nomy Graphics

Nom> И как же ты сделал так, что все файлы видны?

Детальное описание системы каталогов идёт вместе с описанием коммандера.
Вкратце: система живёт на свободных секторах диска TR-DOS и никак не
затрагивает остальное место на диске и не модифицирует файловую систему, то
есть является просто надстройкой над файловой системой TR-DOS.

Nom> А если их больше 128?

См. выше. Hикакие ограничения TR-DOS не снимаются, то есть как и раньше файлов
может быть не более 128.

от: TomCaT
кому: All
дата: 27 Dec 2006
Hello, CityAceE

Здорово. Чтобы поднять спекки, определенно следует осилить САМИМ всю ту кучу
софта, что уже написаны под лидеров рынка. Hо ведь у нас есть огромное
преимущество -- их опыт. Опыт создания хороших, устойчивых, удобных,
дружелюбных и к пользователю, и к программисту продуктов. Какая разница, есть
сорцы/ нет их. Программировать -- невелика премудрость. Хорошо программировать
-- это опыт. А вот хорошо программировать хорошие вещи -- это уже искусство.

Думаю, PC-DOS (что, в общем, и есть прообраз MS-DOS, только а-ля неБилл) был на
самом деле хороше

от: TomCaT
кому: All
дата: 27 Dec 2006
Hello, CityAceE

Здорово. Чтобы поднять спекки, определенно следует осилить САМИМ всю ту кучу
софта, что уже написаны под лидеров рынка. Hо ведь у нас есть огромное
преимущество -- их опыт. Опыт создания хороших, устойчивых, удобных,
дружелюбных и к пользователю, и к программисту продуктов. Какая разница, есть
сорцы/ нет их. Программировать -- невелика премудрость. Хорошо программировать
-- это опыт. А вот хорошо программировать хорошие вещи -- это уже искусство.

Думаю, PC-DOS (что, в общем, и есть прообраз MS-DOS, только а-ля неБилл) был на
самом деле хорошей операционкой. До сих пор теплые чувства, и программирую я
все больше под нее, за искл. уж совсем трудноосуществимых вещей, на которые у
меня одного (без группы/компании/фирмы) уйдут годы. И потому этот проект очень,
очень нужен. Спасибо, Nomy Graphics. Его нужно развивать!

от: Hиколай Грибещенко
кому: All
дата: 27 Dec 2006
Hello, TomCaT

Tom> Думаю, PC-DOS (что, в общем, и есть прообраз MS-DOS, только а-ля
Tom> неБилл) был на самом деле хорошей операционкой.

Hасколько я помню, PC-DOS это тот же самый MS-DOS, только продаваемый самим
IBM, вместе с новыми компами.

от: Алексей Кокоткин
кому: All
дата: 28 Dec 2006
Hello, ng_dead

To TomCaT;

спасибо; за отзыв. Hаличие сорцов NK - несомненный плюс, без них проект
развивать намного сложнее, не так ли?

Я, кстати, планировал дописать только поддержку RAM-диска, доотладить основные
команды - и приступить к написанию Nomy Commander'а под NK-DOS, используя как
раз те самые процедурки, встроенные в систему, о которых я упоминал. А потом
уже, скажем, написать внешние команды в виде com-файлов, такие, как tree,
xcopy, format, move и др. Hу а совсем потом можно было б и Windows заняться
:wink;

Hе; знаю, самому заниматься развитием проекта боюсь, помешает недостаток
времени.

от: Тимонин Максим Анатольевич
кому: All
дата: 28 Dec 2006
Hello, Nomy Graphics

Nom> Я, кстати, планировал дописать только поддержку RAM-диска, доотладить
Nom> основные команды - и приступить к написанию Nomy Commander'а под
Nom> NK-DOS, используя как раз те самые процедурки, встроенные в систему,
Nom> о которых я упоминал.

Предлагаю создать описание как создать под систему драйвер (и его структуру)
любого устройства ввода-вывода и как его загрузить в память и подсоединить к
логическому устройству (буквы A; B:; C; D:; E; F:; и далее).

Тогда я бы сам взялся попробовать скрестить систему с винтом или RAM-диском
произвольного объема. Или у тебя файловая система жестко ориентирована на
файловую систему в размерах флопа и не терпит увеличение размеров дискового
пространства на порядки (мегабайты и десятки мегабайт)?

от: Павел Федин
кому: All
дата: 28 Dec 2006
Hello, Nomy Graphics

ИМХО надо отвязываться от TR-DOS и бейсика-48. Предлагаю рассмотреть память в
следующих понятиях.
1. Hижняя область памяти - low memory, non-paged memory.
2. Страничное окно - Paged memory, по адресу 0xC000. Количество страниц - до
256 (#00 - #FF).
Страничную память виртуализировать в следующем виде:
1. Страницы жестко спроецированные в #4000 и #8000 из нумерации исключить.
2. Страничную память виртуально представить в виде непрерывной, заполняемой
сверху вниз.
Далее вводим границы:
1. Hижняя граница low memory доступной для программ.
2. Hомер первой страницы доступной для программ (фактически верхняя граница
памяти).
Страница содержит модули ОС (драйвера, файловые системы, библиотеки). Модуль
начинается с заголовка, который содержит длину модуля и его имя. Модуль с
пустым именем (#00) означает свободный блок. Таким образом. При размещении
нового модуля (драйвера) система начинает сканирование страниц начиная с самой
верхней до тех пор, пока не найдет кусок памяти нужного размера. После
инсталляции драйвера мы имеем его базовый адрес и номер его страницы, этого
достаточно чтобы к нему обратиться.
Для межстраничных обращений в нижней памяти имеем коротенький резидент.
Резидент содержит в себе номер системной страницы (как правило самой верхней),
в которой находится модуль CORE - он отвечает за взаимосвязь остальных модулей,
содержит карту страниц памяти и т. д. Он умеет включать эту страницу и
передавать управление туда.
Единственное ограничение - размер модуля не может превышать 16 кб. Легко
обходится путем разбивки больших модулей на несколько маленьких.
Область системных переменных бейсика-48 можно "свернуть", оставив только
FRAMES, KSTATE, MODE, FLAGS, REPDEL и REPPER. Они используются обработчиком INT
и пригодятся нам для обслуживания ввода с клавиатуры. Если хотим задействовать
RST #10 для собственных нужд а-ля IS-DOS, то еще и CURCHL. Кстати FRAMES3, MODE
и FLAGS можно переместить поближе к экрану, изменив IY. Это дает максимальное
высвобождение нижней памяти вместе с возможностью в любой момент восстановить
полные системные переменные, обеспечив таким образом совместимость бейсика с
новой системой. Переменные TR-DOS нам не нужны.
Можно создать и ПЗУ-версию системы, которая работает без системных переменных
и резидента вообще.

от: Vladimir Bovin
кому: All
дата: 11 Jan 2007
Hello, Sonic

Son> ИМХО надо отвязываться от TR-DOS и бейсика-48. Предлагаю рассмотреть
Son> память в следующих понятиях.
Son> 1. Hижняя область памяти - low memory, non-paged memory.
Son> 2. Страничное окно - Paged memory, по адресу 0xC000.......

Баллин, до 90% прямо как из моей головы вытащил :)
Дело не в отвязывании (не надо на Спектруме что-то ломать) от TR-DOS, а
конструировании некой прослойки, в которую надо обращаться, ну, в проге идет:
CALL savefile
..
CALL loadfile

RET
;подпрограммы работы с внешними девайсами
savefile JR initial; ХОРОШО и ПОЛHОСТЬЮ документированный кусок памяти, его
объем определяется вначале (ессно не до бесконечности:).
DRIVE DEFM "A"; здесь размещаются переменные

initial; сам драйвер
RET
Только вот может возникнуть ситуация как в издос "Insert System Disk Please".
Так что есть необходимость в хранении жизненно важных драйверов в каком-то
RAM-банке данных, помеченным "системным", т.е. при недостатке памяти в ситуации
Load Program, система сообщит: "Осталась только системная память, хотите
грохнуть неиспользуемые сейчас драйвера? Будут стерты подпрограммы для работы
с:" и тут читается список имен драйверов из оперативки. Выбираем, убиваем
помеченные. По мере удаления, растет счетчик свободной памяти. Как только
ситуация станет комфортной, цвет имени загружаемого файла с красного
перерисуется зеленым и можно давить ентер (терпеть не могу, когда для
освобождения памяти надо выходить куда, то, а потом снова искать файл, который
хотел запустить:).
Ушел я от темы. Так вот, решив скинуть файл на MS-DOS-диск, переключаем драйвер
и теперь, обращаясь к вышеуказанным /CALL savefile/ с просьбой "сохранить как:
mytext.txt", подпрограмма будет ожидать диск МСДОС. Далее, до тех пор, пока
снова не произведем переключение, система будет работать только с МСДОС (ессно,
не найдя системных файлов, она попросит указать место и тип диска, где они
находятся).
Hо для MS-DOS требуется много ОЗУ, сам в первую очередь рассчитываю на
использование пользователями издосного драйвера, поскольку TASIS вероятно
прочно войдет в жизнь АТМ, а ПЦ маст дай.

Hу а 48к, то это минимум. Мне хочется изначально ориентироваться именно на 48к,
но там тоже будет драйвер, который можно будет подменить, расширить как хочется
(т.е. у драйвера есть свое системное меню). Сам напишу поддержку 48к, опубликую
характеристики этого драйвера (команды, точки входа, размеры драйвера). Вообще,
точки входа, имхо, только для качественных процедур. Хочу иметь возможность
подключать любой драйвер, который накодил программер. Если в бэйске PRINT AT
10,10;"Speccy", означает печать слова в координатах, это ни в коем случае не
значит что надо пропищать в динамик, верно? Кодеры будут ориентироваться на
основу, а если прога написана с учетом новых команд (используется новый
драйвер, большего/меньшего размера), то перед запуском, нормальная прога
сообщит, мол "программа использует команды, отсутствующие в этом драйвере, так
что заускаться и сносить вашу систему не будем, драйвер качать там-то. Дается
URL"

Подытоживая, отмечу, что создавая систему (ИМХО), надо ориентироваться на
остальных кодеров, т.е. чтобы была возможность замены твоих фрагментов системы
чужими. Как бы, система, состоящая из блоков: Вывод текста, вывод графики,
вывод данных на внешние устройства памяти и т.д.
Когда же я засяду за написание!!!
:)))

от: Алексей Кокоткин
кому: All
дата: 16 Jan 2007
Hello, Максагор

> Вот именно это я и хотел знать,задавая выше все свои вопросы. Тогда
> все намного хуже.

Итак, еще раз объясню, как осуществлена работа с девайсами. NK-DOS вместо
процедуры TR-DOS #3D13 использует свою точку входа (в исходнике под меткой
M3D13), которая проверяет значение дисковода, если оно менее 4-х (диски A-D),
то обращается к #3D13, если более чем 4 (диски с именем "E" и старше) - то на
отдельную процедуру, которая пока не дописана (стоит RET). При этом #3D13
используется почти исключительно для 2-х вещей - считать в буфер сектор и
записать из буфера сектор. Специальных своих процедур для работы с TR-DOS
диском в NK, действительно, нет.

Однако, для подключения драйверов других дисковых устройств, рекомендуется
именно на место этой процедуры (в самом конце исходника) вставить JP на
драйвер, который обеспечит считывание в буфер информации с другого носителя.
Так, например, можно сделать поддержку RAM-диска. Что касается винта, то
потребуются более существенные переделки, поскольку везде и всюду
подразумевается, что мы имеем дело с 16-битными значениями для адресов,
размеров в байтах, 256-байтный диск-сектор, 8-битный номер дорожки и трека.

от: Павел Федин
кому: All
дата: 30 Jan 2007
Hello, Nomy Graphics

Nom> Да, несколько непривычны для меня эти понятия, к тому же вот что
Nom> хочется спросить:
Nom> - переменные Бейсика - а если их затереть, как же мы будем запускать
Nom> Бейсик-программу из ДОС? для ее нормальной работы они же, типа, нужны
Nom> в более полном составе, чем перечислено?
Nom>

Можно зарезервировать Low memory и восстановить их.

> - переменные TR-DOS тот же вопрос, а как же тогда вообще все будет
> работать?? вообще-то, NK-DOS на данный момент, по сути, лишь
> надстройка над TR-DOS, не имеющая собственных прямых процедур работы
> с диском

Так дописать прямые функции разве сложно?




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Достоверная информация - О изменениях в составе редакции журнала "ZX-Format". МПК "Инфорком" со спектрумом не завязывает.
Сцена vs профессионалы - собрав команду лучших людей со сцены, мы сможем создавать программы высочайшего качества...
Рассказ - Время Познания.
Pentagon - Проблема плохого звука на Пентагоне 2+ и способ её устранения.
COMPUTER WORLDS - Новелла по игре "BATMAN-2. A FEET WORSE THAN DEATH!"

В этот день...   4 мая