<< Вернуться к содержанию




1) О сети Ulan. Рассмотрим случай двух компьютеров с одинаковым номером станции.
Так вот, "второй" компьютер выдаст при загрузке "Номер станции ... уже используется"
только при условии, что "первый" компьютер уже выдал "Номер станции ... уже используется".

2) Вот как печатается номер станции при инициализации ROM Ulan:
        ldx     #...    ; 'Номер станции'
        int     $23
        ldaa    #$01
        int     $71
        ldx     $e6a1
        int     $24
На реальном Пълдине проверено, что ldaa #$01 - int $71 записывают в $e6a1 нуль,
а в $e6a2 - номер станции. Также следует заметить, что если при загрузке
Пълдина было выведено "Нет связи с сетью" или аналогичное сообщение об ошибке,
то ldaa #$01 - int $71 вообще не будут давать никакого результата.

3) Если запустить unidos.cmd из командной строки, то просто будет выведено
сообщение о номере версии (как при команде ver) того unidos, который сейчас
в памяти и всё, а замещения старого unidos новым НЕ будет!

4) На Пълдиновской сетевой плате, как известно, есть набор из 8 переключателей
для того, чтобы установить номер станции. Из них задействованы только 7. Таким
образом, можно установить номер станции от 0 до 127. Если установить номер 0,
то при загрузке Пълдина при инициализации ROM Ulan будет выведено: "Номер
станции 0 неправильный".

5) Как известно, байты $e645..$e647 на модели 601А, как говорится в руководстве,
предназначены для RS-232-C интерфейса. А вот на 601У - это самые обычные байты,
как будто обычная память.

6) Об области ввода-вывода принтера. Если нет платы принтера на компьютере Пълдин 601У,
то при просмотре байтов $e630..$e637 - все эти байты при каждом последующем просмотре
другие - значения беспорядочно меняются. Если же на Пълдин'е 601У есть плата принтера,
но принтер выключен, то $e634=$90, $e635=$00, $e636=$3c, а $e637= или $3c или $bc. Если
принтер включен, то $e634=$58, $e635=$00, $e636=$3c, а $e637=$3c (это значения, если
не горит лампочка "Линия", в независимости от того, есть ли бумага). Если же горит
лампочка "Линия", то адрес $e634 становится равным $50. Все эти данные получены с
помощью программы монитор. Также следует отметить, что если нажать Ctrl-пробел во время
инициализации ROM'ов, то если ещё не инициализировался ROM UniDOS kernel, то байты
$e634..$e637 будут нулями. А вот байты $e630..$e633 на модели 601/601У вообще всегда
неопределены, - просто, как следует из bios.asm и bios_a.asm - адреса $e630..$e633
используются на модели 601А, а адреса $e634..$e637 - на моделях 601 и 601У. Этот факт,
по-видимому, связан с тем, что на модели 601А контроллер принтера расположен на материнской
плате, а для моделей 601 и 601У - контроллер принтера это отдельная плата, вставляемая в
слот.

7) На плате контроллера сети Ulan используется микросхема СМ603. Контроллер Ulan использует
следующий довольно большой промежуток адресов в области ввода-вывода: $e6a0..$e6b1. Адреса
в промежутке $e6a0..$e6af все уникальные, а вот $e6b0 и $e6b1 дублируются:
$e6b0-$e6b2-...-$e6be и $e6b1-$e6b3-...$e6bf.

8) О переключателе страниц - адресе $e6f0 в области ввода-вывода. Какое бы число не
занести в эту ячейку памяти, такое и будет храниться там (но, разумеется, в окно
$c000-$dfff отображаться страница с тем номером, какие у занесённого в $e6f0 значения
младшие 4 бита).

9) Если записывать в область $c000-$dfff, то запись ВСЕГДА будет производиться в
RAM-память (т.е. в 7 страницу), в независимости от того, какая страница установлена
через переключатель $e6f0.

10) О странных свойствах адреса $e62a из области ввода-вывода. Если монитором в него
занести $17, то светодиод "ALLCAPS" будет гореть постоянно (ну, конечно, до тех пор,
пока в $e62a не занести $27 или $37, ... или не нажать клавишу RES), - при нажатии
клавиши CAPSLOCK регистр букв будет меняться как обычно нормально, а вот сам светодиод
будет включён непрерывно. А вот если в $e62a занести $27, то светодиод будет вести себя
ещё более загадочно - при нажатии клавиш он неярко включается и сразу же плавно гаснет
(это в режиме, если большие буквы отключены, а если включены - то, как обычно, светодиод
будет включён непрерывно). Чтобы просто нормально выключить светодиод "ALLCAPS" - в
$e62a надо занести $37, а чтобы включить - $3f.
Если перед командой в мониторе e62a=17 горел светодиод "ALLCAPS", то после e62a=17
он, как и упоминалось ранее, будет гореть непрерывно, но установятся малые буквы. После
последующих нажатий CAPSLOCK - регистр будет нормально переключаться, но светодиод всегда
будет гореть, как уже говорилось. Точно также, если светодиод горел до команды e62a=27
то он после этой команды выключится, и установятся малые буквы. А далее - в режиме малых букв
он будет при нажатии клавиш неярко включаться и быстро гаснуть, а если клавишей CAPSLOCK
включить большие буквы, то светодиод как обычно, будет гореть непрерывно.
Если в $e62a занести $1f или $2f, то поведение светодиода такое же, как и при $17/$27
соответственно, только с той разницей, что сразу после команды установятся большие
буквы и светодиод включится.
И ещё: в $e62a используются не все биты. Если в $e62a занести $47 или $5f, то после
просмотра $e62a монитором там окажется $07 или $0f соответственно.

11) Если в видеорегистр 1 или 6 занести значение, которое там было, то неиспользуемая
теперь часть экрана автоматически очищается сразу после изменения регистра. Это объясняется
тем, что если задали меньшее значение, то теперь электронный луч перестаёт попадать на
области вне заданных значений регистра.

12) О том, как выглядит курсор на Пълдине при различных значениях начальной и
конечной линии. Ниже указано значение начальной и конечной линии и приведён вид
курсора, то есть 8 линий (светящиеся обозначены +, а несветящиеся -):

   6 - 1            7 - 1             7 - 0            20 - 1  и  20 - 21
+++++++++++      +++++++++++      ++++++++++++            +++++++++++
+++++++++++      +++++++++++      ------------            +++++++++++
-----------      -----------      ------------            -----------
-----------      -----------      ------------            -----------
-----------      -----------      ------------            -----------
-----------      -----------      ------------            -----------
+++++++++++      -----------      ------------            -----------
+++++++++++      +++++++++++      ++++++++++++            -----------

13) О подключении принтера "Бултекст-200" к Пълдину и к двум различным 486.
Вот что выдаёт IBM'овская функция INT $17 при получении статуса принтера и
значение $e634 в случае подключения принтера к Пълдину:

                               | 486DX - 56 | 486DX - 33 | Пълдин (значение $e634)
----------------------------------------------------------------------------------
Принтер выключен               |     $c8    |    $10     |          $90
Принтер включен (*)            |     $90    |    $90     |          $58
Принтер включен + нажата линия |     $80    |    $80     |          $50
Принтер вообще не подключен    |     $c0    |    $30     | Значение не определено
----------------------------------------------------------------------------------

(*) - Примечание: Не важно, есть ли бумага или горит лампочка, что её нет,
- значения всегда получаются одинаковые.

14) Как известно, на реальном Пылдине в области ввода-вывода дублируются
следующие адреса:
       $e628 дублируется в $e62c, $e638, $e63c.
       $e629 дублируется в $e62d, $e639, $e63d.
       $e62a дублируется в $e62e, $e63a, $e63e.
       $e62b дублируется в $e62f, $e63b, $e63f.

Значения некоторых адресов ввода-вывода сразу после перезагрузки:
e628-e62f: ff 01 37 37 ff 01 37 37
e630-e637: меняются хаотически (или если подключен принтер - см. описание выше).
e638-e63f: ff 01 37 37 ff 01 37 37

15) Об адресе $e62b. После перезагрузки он равен $37. Если занести
монитором $3f, то там $3f и остаётся, видимого результата - нет.
Аналогично - далее:
заносим $bf - остаётся $3f - результата нет;
заносим $ff - остаётся $3f - результата нет;
заносим $37 - остаётся $37 - результата нет;
заносим $b7 - остаётся $37 - результата нет;
заносим $17 - остаётся $17 - отключается динамик;
заносим $27 - остаётся $27 - тоже отключается динамик, но в дальнейшем
при нажатии клавиши LAT/КИР будут слышны щелчки.
Заносим 0 или 1 или 3 или 6 - компьютер зависает.
Значения (первым указано, что заносим, а вторым - что остаётся в
адресе $e62b) 7 - 7, 5 - 5, $4f - $0f, $5f - $1f, $6f - $2f, $8f - $0f,
$9f - $1f, $af - $2f - все эти значения выключают динамик.
А вот $7f - $3f - включает динамик.