──────────────────────────────────────────
(c) Disabler/Omega Hackers Group
NeOS v1.0
О глюках и не только...
Для тех, кто не знает NeOS - это новая
операционная система, которая, в отличии
от IS-DOS, работая полностью через
драйвера, не тормозит! Итак, с вами
Disabler, и я поведаю то, что смог узнать
за неделю работы с NeOS.
NeOS прошивается в пзу вместо Basic 128
или, при наличии Cashe16k, можно в него,
но прийдется поставить дополнительно две
микрухи, для эмуляции пзу (схема ниже).
После нажатия Reset вы попадете в меню
NeOS, где есть следующие пункты:
NeOS v1.0
Tr-Dos 128
Tr-Dos 48
128 Basic
48 Basic
Первый пункт - вход в NeOS, если в
дисководе будет диск, и его принадлежность
к какой-либо дисковой системе будет
определена, на нем NeOS будет искать файл:
"neosboot.cnp". Если файл будет найден, то
он автоматически загрузится и выполнится.
Остальные пункты не являются чем-то
новым, за исключением того, что при выборе
128 Basic, вы оказываетесь в обычном 48om
Basic'е с открытым портом #7FFD.
Внешне NeOS немного напоминает Must Die
Operation System (Ms-Dos), а вообще первое
впечатление очень приятное.
Ну а теперь, как положенно, немного о
глюках:
- Приведу маленький пример
последовательности действий:
1.Вхожу в NeOS
2.load sts6_2.c; загружаю STS6.2
3.exit; выхожу из NeOS
4.Вхожу в NeOS
Эффект - автозагрузка и запуск sts6_2.c
- В самом NeOS есть встроенный драйвер для
работы с is-dos'ом, но при этом авторы не
учли один момент: буффер для дисковых
операций = 512байт, с адреса #5B00; с
адреса #5D00 распологаются различные
переменные; при чтении сектора с is-dos
диска (кстати его длинна = 1024байта)
происходит затирание переменных, и как
следствие (в лучшем случае) сброс.
- Не читаются файлы длинной <= 256байт.
Вернее они читаются в буфер, но не
перебрасываются в память.
- По команде "Ram" не переключается
память (Ram всегда = 7).
- На пзу с бэйсиком 91-го года, иногда
не срабатывает выход в бэйсик.
- Если перейти на несуществующий диск,
например "Drive D", система немного виснет
совсем.:)
А вообще, несмотря на все это NeOS мне
очень понравилась, и я буду рад всячески
поддерживать авторов, в смысле написания
программ под NeOS.
Да, чуть не забыл нарисовать схемку.
Суть ее заключается в том, что Cashe
включается/выключается не при чтении из
портов #FB/#7B, а сбросом/установкой бита
#04 порта #7FFD (бит переключекия пзу).
15┌───┬────┬───┐
┌──■DE │к555│ │
┴ 1│ │ │ │
\Select\─────────┤A/B│кп11│ │4
┌───┐ 2├───┤ │ Y0├─\new_d\
\bit4_fd\─┤=1 ■──┤A0 │ │ │
├───┤ 5│ │ │ │
\sel_fd\──┤=1 ■──┤A1 │ │ │7
└───┘ 3├───┤ │ Y1├─\new_c\
\old_d\──────────┤B0 │ │ │
6│ │ │ │
\old_c\──────────┤B1 │ │ │
└───┴────┴───┘
Что от куда брать и куда подавать?
Все довольно просто! Данная доработка
расчитана расчитана на схему от В.М.Г. для
подключения Cashe.
Select - переключение режима включения
и выключения cashe, +5 - стандартное,
земля - эмуляция пзу, с basic 128.
bit4_fd - можно взять с 27ой ноги пзу,
если у вас две пзу, одна с tr-dos, а
творая собственно с бэйсиками, или выхода
12 микросхемы TM9 (обычно именно она
используется в качестве порта #FD).
sel_fd - нога 9 той-же ТМ9.
old_d, old_c. Отрезать от ТМ2 на схеме
cashe ноги 2 и 3 соответственно. То, что
раньше шло на них, и есть сигналы old.
new_d, new_c. После отрезания от ног
TM2 сами обрубки ног и будут этими
сигналами.
Еще замечу, что сигналы bit4_fd и
sel_fd необходимо инвертировать, при
помощи, например, ЛН1.
Вот, пожалуй, и все, что я могу сказать
по данному вопросу. Кстати, если у кого
есть soft под NeOS, обращайтесь по адресам
редакции.