
Сообщение от
Error404
Просто эти механизмы должны быть Ордосе (или другой ОС). Не монитора это дело - знать про то как я буду использовать ОЗУ, которым он сам ну никак не управляет.
Идейно согласен. Но изначально Орион начинался с М1 и работы с стиле РК86. Драйвера уже появились тогда, и конфликты нужно было как-то разруливать.
Кстати, этот самый RamTOP не с РК86/Спеца ли присутствует в Мониторе?

Сообщение от
Error404
Соответственно ОС отличающийся от Ордоса (с другой концепцией, хотя и работающей через что-то мониторовское), помощи от этих п.п. никакой, только трата байтов в ценных 2к Монитора.
Авторы выбрали концепцию "запихивания" ОС в 2 Кб. При таких жёстких условиях на счету каждый божий байт
А в Мониторе как раз дофига свободного места... )))

Сообщение от
Error404
Собственно, подход "стека", уровней "нарезки" ПО от простого к сложному, от физики/аппаратуры к математическим абстракциям (как например вируализация памяти) - основа разработки всех ОС. Я это подсмотрел еще в детстве (ДВК с ее RT11)
Это всё прекрасно, но в случае Ориона избыточно, имхо. Универсализация и глобализация - это здорово, но они требуют ресурсов, а Орион это не писи. Собственно, как и Синклер (там вообще в ПЗУ Бейсик! Лол
)
Тут важно вовремя остановиться с наворотами, чтобы они не убили весь смысл ОС на Орионе.
Разнообразия основного железа (ввод/вывод) не планировалось. "Навески" всякой экзотики всё равно не в BIOS'е поддержаны, а в соотв. ПО пользователя, так что аппаратные абстракции особо и не нужны. Любая универсализация/глобализация отрицательно сказывается на объёме кода и скорости, а это крайне важный момент с ресурсами Ориона, имхо.

Сообщение от
Error404
Не, он оригинальный.
Ковырял без малого год назад, с тех пор много байт утекло, в голове уже подробности не вспомню... Но помню, что сперва сексился с М3 на О-128, а потом все те же грабли увидел в Мониторе на ПРО'шке, из чего сделал для себя нехитрый вывод.
Кстати, мы говорим об одном и том же Мониторе "ПРО" - который появляется в F800..FFFFh в режиме "Orion-128" ?

Сообщение от
Error404
хотя правильно было бы оствить как есть для совместимости, а новое дописывать после "штатных" п\п).
Да!

Сообщение от
Error404
В M3 кстати не стали писать отсебятину вместо RAMTOP как в ПРО, точка входа есть на своем месте, просто там для экономии места и хоть какой-то совместимости get_RAMTOP возвращает константу, а set_RAMTOP ничего не делает, что дает возможность это обойти при известной ловкости (проверить через get_RAMTOP записалось ли новое значение при set_RAMTOP).
Опять же, видимо в разных версиях по-разному. Или у меня уже перепутались Мониторы М3 от О-128 и ПРО'шный...

Сообщение от
Error404
Причем что забавно - эта п.п. записи байта из-за того что page_in + page_out кодируются в одном байте (по нибблам) позволяет адресовать через нее максимум 512кб ОЗУ (я могу понять когда аппаратно что-то не реализовано, но когда на ровном месте таки урезки по части ПО, мне не понятно - обычно наооборот "на будущее" оставляют для входных параметров подпрограмм резерв по битам/адресам/страницам).
Так вроде более 512 Кб ОЗУ и не планировалось. В любом случае, сабж явно для работы с графикой, а она в 0-ой и 1-ой страницах. А в случае с "ПРО" можно втыкать ОЗУ окнами - там вообще без разницы..
ЗЫ кстати ниббл кодирует 16 страниц, т.е. "метр" ОЗУ 

Сообщение от
Error404
И я долго искал как в Режиме-128 опросить отдельно статус CTRL и/или SHITF. В доке есть несколько вариантов через разные новые п.п, в коде - нет ни одного (те п.п. есть, но дико сырые или урезанные).

Может конечно плохо искал, но то что описано даже прошагал в эмуляторе (насколько терпения хватило).
На "ПРО" я делаю так:
Код:
IN 1AH
ANI 40H
JZ ...нажат CTRL
Код:
IN 1AH
ANI 20H
JZ ...нажат SHIFT
На О-128 "IN 1AH" заменить на "LDA 0F402H" (кстати, на ПРО так тоже прокатит, но на целый байт длиннее
).