Error404
поправил шелл по части cr lf.
Цитата:
И тут же наступил на еще одну мину: часть текста (одиночные символы) я выводил через BIOS (т.к. поначалу была мысль все сделать через BIOS), и оказалось, что BIOS код 0Ah как перевод строки не воспринимает, а выводит "рожицу".
да. биос на спринтере это прям совсем низкий уровень. никакого управления кареткой/курсором тут нет. всё, что ему не дашь, он всё будет воспринимать как символ для вывода. для управления курсором нужно управлять координатами вывода (если через биос печатать). т.е. через биос получить координату, изменить координату и/или печать в координатах.
Цитата:
системы выдает страницы от больших номеров к меньшим.
это обусловлено тем, что у нас есть типа режима всяких там спектрумов, а там память вся крутится снизу. чтобы не было разных затираний, когда то давно сделали распределение памяти в DSS сверху вниз.
Цитата:
Насколько я понял, станицы F0..FF - это кэш.
на самом деле страницы резервируются через БИОС. не подлежат выдачи страницы 0xFF, 0xFE, 0xFD и кажется 0xFC. всё остальное могло бы выдаваться, но - дос тоже занимает 4 страницы (1 страница сама дос и 3 страницы под разные таблицы, кэши и прочая петрушка), 1 страница - шелл. если более ничего не загружено, то остальное выдаётся. Опять же - НО... не выдаются страницы 0x50 - 0x5f (экранная область), страницы 0x00 - 0x1f, 0x41 - 0x47 - резерв под режим Спектрума. Страница 0x40 - вообще смерти подобно выдавать её - страница дешифратора!!!
Однако, страницы резервированные под спектрум можно снять с резерва через утилиту memhack. она снимает с них резерв в биосе. остальное нельзя трогать физически. Страницы 0xFF и 0xFE - принадлежат БИОСу (переменные, кэши и прочая петрушка).
Цитата:
"быструю память" получит тот процесс, который резервирует первым.
системно, быстрая память не резервируется и не выдаётся вообще. просто потому, что её сложнее контролировать. порт быстрой памяти не доступен на чтение и любая программа легко может сама взять любую из 4х страниц этой быстрой памяти. примерно так же обстоит ситуация и с памятью ISA. её в общем-то нет, до тех пор, пока не вставишь ISA-RAM карточку. но это отдельная тема.
Цитата:
Т.к. требовать у системы конкретные страницы - нельзя, можно только просить (как тут уже кто-то схохмил).
ну политика забирания у системы тех страниц, какие хочется в целом не допустима. может быть ситуация при которой 2 процесса попросят одну и туже страницу. и что тогда делать? поэтому страницы выдаются вот так. в БИОСЕ есть так называемая RAT (Ram Allocation Table), по аналогии с FAT. Разница в том, что FAT даёт кластера снизу вверх (образно говоря, или слева на право), а наш RAT наоборот, сверху вниз (справа на лево).
Потому, какая там будет у тебя страница на момент запроса - а фиг его знает...
Цитата:
зеленым по черному, "окрашиваясь в те цвета, в которые оно себя окрасило"(с)
похоже у тебя какая-то старая сборка шелла. этот баг был пофикшен.
Цитата:
Почему так же не сделано для BDOS (rst 10h)? Это архиудобно, КМК.
надо над этим подумать. быть может вкарячу в следующей глобальной версии.
Цитата:
А что здесь такое "Level" ?
Process ID проще говоря.
Цитата:
А "File handle for preloader" означает ли что большой (очень) EXE-файл шеллом будет загружен не до конца (а насколько не до конца?) и некий встроенный в файл загрузчик его должен сам дозагрузить?
строго говоря - шелл вообще ничего не загружает, если только это не BAT файл. ЕХЕшники передаются в DSS, в функцию 40h. вот она уже грузит. ПО факту - 48кб это предел линейной загрузки. Если ЕХЕшник большой, то да - внутри должен быть самозагрузчик. примером такой программы является инсталяха игры TITD (файл под мегабайт размером) или Flex Navigator, который без перепаковки Дмитрием имеет размер 85кб.
- - - Добавлено - - -
проверил щас more и type. нет, работают.
прикину сюда.