скачал - почитаю
---------- Post added at 16:30 ---------- Previous post was at 15:56 ----------
насчет быстро делать проги - это получится для тех, которые с фиксированного адреса будут грузиться и запускаться (т.е. с #C000 и 0) - а для тех, которые с флагом основной код в нижней памяти - надо таблицу адресов составлять и потом метки по всему исходнику - тяжко вручную - и исходник становиться нечитаемый - хотя вот AlCo - вроде говорил, что можно автоматизировать
вот ещё подумал, функции создать окно и удалить окно не нужны
пусть при вызове "показать окно на экране" графсистема сама создает себе окно, а при вызове "убрать окно с экрана" она сама и будет удалять его из своих таблиц
ну ладно, если прога захочет сама сыпать байты на экран - то будет использовать функцию getscr - и дальше сама
---------- Post added at 16:40 ---------- Previous post was at 16:30 ----------
а для варианта,который мы рассматриваем, что окно на весь экран, функция убрать с экрана тоже не нужна, прога показала свое основное окно, потом показала дополнительное окно настроек,
а когда его надо закрыть, она просто вызывает функцию показать основное окно (при этом во всех 3-х операциях фон под окном не сохраняется, граф система тратит минимум ресурсов - похоже это и имел ввиду дигриз)
А насчет CS+SS+цифры - то его вместе с CS+SS использовать, типа
если нажал CS+SS и секунду не жмешь цифру - тогда появляется окно выбора
Еще вот может стоит оставить верхнюю строку под импровизированную панель задач совмещенную с заголовком - типа как в Ubuntu 9.04 NetBook Remix - там тоже каждое окно на весь экран и вверху строка типа того что я сказал - слева кнопка выхода на рабочий стол - она сворачивает текущее окно а правее вместо имен задач только их иконки маленькие и еще правее заголовок окна но не до конца строки а в правом углу часы и EN/RU
---------- Post added at 16:48 ---------- Previous post was at 16:40 ----------
и еще можно можно в таблицу окна,в заголовок добавить 3 бита, а функция показать окно на экране будет их проверять и если они установлены будет дополнительно
1бит=1 сразу печатать текст в заголовке - который там же и будет лежать
2бит=1 сразу печатать дополнительный текст внутри окна (адрес текста тут же в таблице)
3 бит=1 сразу печатать один или несколько спрайтов из таблицы спрайтов, её адрес прилагается, в ней кол-во спрайта, и координаты для каждого, и его номер из набора, и адрес набора
Ну и в конце сделать финт ушами и в заголовке самой прораммы указать спец бит - если установлен, то ядро перед запуском программы проверяет заголовок проги и передаёт графсистеме адрес окна и графсистема сразу показывает это окно на экране - а прога при это не делает ни одного лишнего телодвижения,
ну а потом уже прога будет выводить в окно что-то дополнительно и тогда конечно будет вызывать эти функции по отдельности (печать текста в заголовке, внутри окна, печать спрайта)
Для запуска CPM-прог uzix-прог (это ERROR404 предлагал) надо наверно организовать отдельный формат исполняемых файлов(можно с расширением .NIX) - ядро будет перед их запуском сначала освобождать нижнюю память, оставляя там только некоторые свои компоненты (например не более 4К) и далее подключать страницу озу или кэш в с адреса 0 и туда уже загружать такую прогу
ей будет предлагаться 44 кБ и позже она сможет получить ещё 16 кБ (или меньше) в отдельной странице памяти - токо она про страницы ничего не будет знать - просто сделает запрос получить память
при этом паралленльно с ней смогут работать те проги, которые сидят в страницах
(а те которые били в нижней памяти - конечно буду остановлены)
---------- Post added at 17:17 ---------- Previous post was at 16:48 ----------
Способ удаленного использования страниц - чтобы прога их не переключала, можно во всех функциях добавить аргумент номер страницы,
и тогда прога загружает из файла по адресу/номеру страницы,потом вызывает функцию печатать текст/спрайты и номер страницы и графсистема печатает ихз другой страницы
удаленный вызов подпрограмм из другой страницы
надо спец вызов но попроще, указать номер страницы (абстрактное число полученное от системы) а система сама установить стэк внутри той страницы например на адрес 0 т.е. в конце
и запустит код с адреса #C000 (не надо передавать лишний аргумент ввиде 2-х байтного адреса), и тот код возьмет номер функции и параметры из всех регистров
Не для всех программ такой способ подойдет, но для достаточно большого количества (навскидку для половины прог)






правда было бы лучше по образу и подобию alt+tab делать, т.е. жмем cs+ss, появляется окошко со списком прог, затем, если держать ss ИЛИ cs, то окно будет висеть, а нажимая вторую кнопку (cs или ss) - будет перемещение по списку на следующую прогу. или по нажатию ss+cs вылезет окно с прогами, а потом курсорными кнопками выбрать нужную прогу и нажать ентер.
Ответить с цитированием