я не знал, то есть - это терминальные окошки, но там видимо совсем другая схема взаимодействий нежели в современных GUI само собой. Эх! Говорил мне @form - осваивай RSX )))
Вид для печати
я не знал, то есть - это терминальные окошки, но там видимо совсем другая схема взаимодействий нежели в современных GUI само собой. Эх! Говорил мне @form - осваивай RSX )))
Моя идея утилитки вместо DIR была проста, Прочитать блоки каталога как есть и отправить в КЦГД. И увсё.
Ну можно ещё немного оптимизировать - пустые сектора каталога не отправлять.
Объём и скорость работы - явно быстрее штатного DIR будет.
Графический интерфейс под КЦГД? Да легко :) Ну может и не легко, но вкорячили бы... Что-то в стиле Windows 1.0 :)
В КЦГД даже мышка есть :) В реальности не было конечно, только интерфейс :( Но помечтать-то можно ;) И я программ таких не знаю, кои её использовали.
Места в памяти мало, но то, что конфигурация всегда постоянная у КЦГД задачу упрощает.
Весь прикол в том, что тогда в Windows мало кто работал, большая часть народа в DOS. Подсмотреть сильно чаще Нортона могли.
Расцвет Windows пошёл на 90-е годы начиная с версии 3.11. Когда 386 в массы пошли.
Хотя тогда Windows была далеко не единственной графической оболочкой.
Был, например, забытый GEM. Там запускалась известная Ventura.
MIM вышел в свет (я познакомился с ним в 86 году) примерно на полтора-два года раньше, чем NC и многие идеи файлового менеджера в нём реализованы. Основное отличие NC - два окна и если работать с файлами - это действительно удобней, чем в MIM-е. Но MIM позиционировался в первую очередь как среда редактирования и/или разработке - и здесь он не уступает и местами превосходит NC. В своё время, когда работал на СМ1420, я познакомил несколько человек отдела (в первую очередь тех, кто занимался разработкой) с MIM-ом - результат был одинаков - практически всегда человек входил в систему, вызывал MIM и дальше выходил из него только что бы выйти из системы :)
- - - Добавлено - - -
Сильно сомневаюсь - скорость обмена слишком маленькая
MIM под RSX-11 - ВЕЩЬ :) Мечта пользователя и администратора в действии ;)
К сожалению под RT-11 он ... :(
Вопрос стоит не в том, что медленно обмен идёт... Проблема скорее в малом объёме свободной памяти в КЦГД и в малой производительности графической системы :(. Отсутствует рисование векторов и аппаратное копирование блочной графики. :(
Но это преодолимо жёсткой экономией памяти или записи графического менеджера в ПЗУ.
На мой взгляд, тот автор вполне, с минимальными издержками, переписать свой коммандер в проводник а ля Windows ;)
Достаточно было бы немного изменить отображение на экране. А так добавить часы, блокнот и пару игрушек и вот оно ;)
Вполне мог и поддержку мыши организовать. :) Только для работы с мышью - нужна была сама мышь :(
Весь фокус для ДВК в том, что КЦГД надо рассматривать, не как чисто терминал, а как второй процессор в системе и задачи нужно правильно делить на выполняемое на ЦП и выполняемое на процессоре КЦГД. Так, чтобы минимум обмена был между ними. Это для большинства сложнее, чем писать на одном процессоре ...
Интересно, существовала ли графическая среда под P/OS??? Мыши вполне в PRO-серию вполне втыкались, даже мышь от мелкомягких ;)
Список из нескольких штук видел ...
Правда не знаю какой софт и как их пользовал. Видеоадаптер там вектора вполне рисует.
Под RT-11 у меня только как заготовка - в той версии, которая у меня есть. Технически, можно попробовать допилить, но много вопросов по поводу команды Выполнить - то, что в RSX решается на раз-два, в RT, в силу её однозадачности (речь про фоновое, а не оперативные задания) - требует изворотов. Хотя я и от функций редактора под RT не откажусь - часто бывает нужным по быстрому отредактировать, а имеющиеся редакторы - уровень не очень впечатляют, что бы я на них время согласился потратить. Да и привычка к действиям в MIM-е - оказывается и через десяток лет пальцами вспомнилась на раз два :)
А теперь на вскидку вопрос - а что делать с перекрывающимися графическим окнами? А если окно пользователь схватил мышкой и тащит?
Отрисовка векторов - это хорошо для векторной графики. А окошки - это, в первую очередь, битмап графика. И основная операция там - копирование прямоугольников - как между основной и графический памятью (и тут КЦГД просядет), так и между участками графической памяти (тут немного получше, но опять же - как быть с перекрытием окон)
Кстати, с перекрытием окон в Windows всё достаточно тупо - в нужные окна посылается запрос на перерисовку. И если так же тупо в лоб делать на КЦГД - ну вы поняли, да, кто будет узким местом системы? ;)
- - - Добавлено - - -
По картинкам больше выглядит как оконная, но совсем не факт что графическая среда. Нарисованное можно и символами (в том числе - псевдографикой) нарисовать
Вот прям такой, как на картинках выше?
https://ru.wikipedia.org/wiki/Window...screenshot.png
Или всё таки с выводом графики?
Да.
DOSSHELL который позже появился был сделан в этом стиле.
Могу дистриб дать побаловаться :)
Насчёт МIM в RT-11, надо его либо в XM, выполнение внешних программ по образу и подобию VBGEXE... Либо в TSX-11. В мониторах без расширенной памяти, в принципе тоже можно, но будут тормоза :( В RT-11 есть возможность передать управление другой программе или командному файлу.
В TSX-11 разделяемый был редактор USED(под РАФОС-TS). Но в чистой RT-11 он успеха не снискал. Самым популярным в RT-11 был ЕDIK(мог с 8 бит кодировкой текст, рус/лат переключал по ^N без ^O) Хотя с ним тоже проблем хватало(большие файлы неудобно). Большая проблема была с русским, так чтобы большие и малые буквы были. При только больших русских и маленьких проблем было менее.
Если тащишь окно мышкой, то программа на ЦП получит информацию об этом, только тогда, когда перетаскивание завершится :) или вообще не получит ;)
Заниматься этим будет оконный менеджер на процессоре в КЦГД :)
Единственное место, на этих картинках, где я увидел графику - электронные таблицы, там графическое окно для диаграммы. Всё остальное текстовый режим. Окна делает эмулятор P/OS.
VBGEXE накладный вариант, сделан чтобы запускать изначально неприспособленные к XM программы.
Специально написанные под XM программы удобнее и экономичнее, их можно запускать параллельно BG (ну VBGEXE конечно тоже можно).
- - - Добавлено - - -
На PC.
Входил в комплект DOS V5.0 и позже.
- - - Добавлено - - -
Это к любителям прошки.
Я его ненавистник :)
- - - Добавлено - - -
Не вижу там ничего такого чего не было бы тут например. Все то же - легко делается псевдографикой.
К слову, NU для DOSа начиная с версии 6 рисовали и посерьезнее вещи в чистой псевдографике :)
Тут важно не возможность как таковая (уж это у меня проблем не вызывает), а восстановление среды MIM-а после её окончания. В том числе - редактируемого файла. То, что под RSX вообще не вызывает проблем.
Конкретный пример. У нас отрисовано на КЦГД два окна, которые по размеру - ну путь будет две трети от размера экрана. Первое под вторым - часть первого окна видна, часть скрыта под вторым. Я перетаскиваю второю - открываются новые части первого - откуда мой код будет брать содержимое открывающихся областей первого окна? Из буфера? Где этот буфер? В памяти ЦП - см про скорость обмена. В памяти КЦГД - вспоминаем, что окно размеров 800*240*1 - это примерно 23 кб (вроде не ошибся), а памяти в КЦГД (не видео) - 32 кб. И? Где будем хранить скрытое?
- - - Добавлено - - -
Речь идёт про графическую оболочку на Pro.
- - - Добавлено - - -
То есть ответа на вопрос - была ли графическая оболочка под Pro - по прежнему нет
Часы наверху, иконки внизу - не, не видно?
Иконки - даже не смешно - они точно такие же в NU и DOSSHELL которые работают в чистой текстовой моде.
А что до часов - открою по секрету - они там именно фрагментами нарисованы, а не расчитаны по формуле окружности и вырисованы точками ;)
В то время чисто графические приложения вроде граф редакторов - была привилегия доса.
Если хранить по тупому bit to bit Конечно памяти не хватит... Ещё там память занята под вектора и таблицей адресов строк ;(
Но если применить очумелые ручки ;)
На P/OS могло быть графическое отдельное окошко, но формировала его программа, не система .
Боюсь, там придётся делать очень очумелыми ручками...
Учитывая, что там напрямую (или почти напрямую) проге доступна видеопамять - понятно, что программа могла хоть чёрта лысого изобразить. Но по программе-программной оболочке типа Windows - ответа так и нет.
Сомневаюсь что там была оболочка в понимании некоего унифицированного интерфейса через который можно было универсально рисовать окошки. Скорее всего если такое есть, то реализовано через разделяемую библиотеку и регион видеопамяти, а там - каждая прога воротит сама что хочет.
Ну а для ускорения перемещения окна можно поучиться у тех же мелкомягких ;)
Там до сих пор есть галочка в разделе быстродействия что-то вроде - "перемещать окна не показывая содержимое"
Файловый менеджер по типу эксплорера нарисовать - проблем не вижу. :)
На одном процессоре это проще...
Действительно можно сделать библиотеки для таких дел. Наделать приложений.
А если это будет ещё Pro-380 на J-11 ;)
Но вопрос в том, было ли такое или нет ???
Хотя было бы прикольно типа:"MS Windows for DEC PRO" ;)
Вообще-то были X-windows для UNIX... Может быть в эту сторону порыть???
Я просто не компетентен в этом вопросе :(
Перемещать то как раз без проблем - но вот восстанавливать открывшееся...
На Pro прямой доступ к видеопамяти и прилично - оперативной :)
Тоже не скажу, хотя исходники есть. Ещё бы посмотреть на X-windows на старых компах. Оно, кстати, реализовано на принципах - клиент-серверный подход и не важно - работают ли клиентская часть и серверная на одном компе или на разных компах в сети. Да, ещё один прикол - у них реверсные понятия сервера и клиента - сервер - этот то, кто занимается отрисовкой (работает на компе пользователя), клиент - тот, кто заказывает отрисовку (и он будет работать на том компе, где запущено приложение, использующее X Windows для отрисовки графики) :)
Ну окно восстановить как - над этом и надо мозгом поработать :)
Исходные данные если сохранены, то в принципе отрисовать окно - проблем нет.
И ещё, в КЦГД видеопамяти на два экрана, на сколько я помню.
В принципе есть чересстрочный режим(тогда памяти на один экран), но у меня в таком режиме на мониторе картинка дрожала :(
Разбавим тему немного, а то ушла она от темы :)
Я тут упоминал про Y2K патч на лету.
Как перевезу свое барахло - может на досуге допилю, а пока немного теории о патчах налету - вдруг кому пригодится.
Идея состоит в том, чтобы как только система прочитала к примеру KMON (или его оверлей), тут же его подправить. Но в принципе данную процедуру можно применить вообще к чему угодно (предотвратить возможный SQUEEZE системного диска довольно легко - надо только следить чтобы 7 бит по смещению 300 от начала RMON был всегда установлен).
На самом деле все довольно просто: из смещения RMON+270 ($QCOMP) сохраняем старое значение в драйвере, подставляем точку входа в драйвер.
В результате по завершению любого I/O управление будет получать наш драйвер, а в @R4 при этом будет находиться адрес элемента очереди драйвера.
Как добыть из элемента очереди блок, адрес буфера, количество прочитанных слов - думаю понятно. Количество слов скорее всего не понадобится вовсе: все запуски программ/подгрузки оверлеев читают сразу все что нужно в память и мы вполне можем на это положиться.
Однако надо отсечь посторонний ввод-вывод, а это сделать тоже просто: в элементе очереди драйвера по смещению -2 находится адрес слова состояния канала (CSW). Если этот адрес совпадает с RMON+244 ($SYSCH) - мы имеем перед собой системный I/O - именно по этому каналу грузится KMON, его оверлеи и сам KMON использует этот канал.
Все что нам остается - убедиться что читается нужный блок по системному каналу, достать адрес буфера и подправить в нем содержимое, после чего отправить I/O на завершение системой (по сохраненному ранее адресу).
Определить начальный блок загруженного монитора тоже легко: достаем его имя из смещений 406/410 RMON ($MONAM), открываем файл на канале 0 (для простоты), по смещению 6 от начала RMON получаем начальный блок на системном диске.
По смещению 42 файла монитора лежит базовый адрес KMON (внутри файла).
По смещению 4736 - размер KMON (корневой сегмент)+USR+RMON.
Примерно так :)
такой драйвер не выход ИМХО:
во первых он сожрёт памяти кусок - а самое важное отличие старых мониторов от 5.7 и даже от 5.4 - это лёгкость.
Допустим мы победим на ругань по системной команде DATE, подсуним DIR нужный, а остальной софт?
Я просто к тому, что поддержка требуется целой группе приложений , то есть всему окружению - рабочая среда.
Вот к примеру ADOSSJ - ни за что не кушает утилиты PIP, DUP и даже DIR - от других систем ? Там полностью Русифицированная RT-11, но даты старше 99 не держит, или моя любимая MFP - на все даты современные пишет -??-88
Обидно!!! ))) Но сам факт описанной тобой возможности - не перестаёт быть как вполне рабочий вариант.
Код:→ ЛAТ
RT-11SJ (S) V05.00
Bpeмя Дaтa
00:00:13 24-Нoя-2020, Bтopник
LD7>DATE
?KMON-F-Invalid date
LD7>
насколько я понял, у ANDOS таки есть API, но чтение-запись произвольного места в файле надо лепить самому, включя обход цепочки кластеров в FAT?
Как бы да, и этого зачаточного АПИ было вполне достаточно для 90% задач.
Верно.
А для этого есть какое-никакое АПИ.
Если нужно, вот пример, как я это сделал Вложение 80707. Там исходник отдельно, и исходник в составе реальной проги, как пример использования. Главный недостаток - почти нет комментариев, из-за чего мне теперь даже самому непонятно, что там сделано и как работает. Потому что писалось это на самой БКшке, и у меня были проблемы со свободными дискетами. Компилировалось на ней же, а там было ещё и с ОЗУ не очень, поэтому, чем меньше комментариев, тем больше полезного кода можно было поместить в исходник.
Продолжаю изучать API на БК:
API Монитора (ROM BIOS):
БК11 похож на БК10 по номерам EMT, но способ вызова некоторых из них отличается (20, 34...)
БК11М не похож на оба, вместо EMT можно обращаться по CALL.
Управление режимами терминала (подчеркивание итп) везде разное -- в БК10 одиночные символы с кодами 2xx, в БК11 -- с кодами 0xx, в БК11М -- напоминает VT52.
Терминал БК11(м) умеет 80 символов в строке, в дополнение к 32 и 64.
Перевод строки в БК10 -- достаточно 012 (LF), в БК11(м) -- нужно 015 012 (CR LF).
Возврат в Монитор -- БК10: RTS PC, БК11: EMT 0, БК11М: EMT 1.
API оболочки ANDOS (не самой ANDOS) сделан через резервные команды 107xxx, 007xxx и 070xxx, а также IOT.
API самых ранних контроллеров альтпро (только IDE) -- https://forum.pk-fpga.ru/viewtopic.php?f=39&t=5401 и ПК БК 5/95
API = ячейки памяти 17xxxx и вызовы 1600xx
API управления памятью контроллеров альтпро -- https://forum.pk-fpga.ru/viewtopic.php?f=39&t=5410 (тексты ALTBIOS1.EDP ... ALTBIOS3.EDP) и https://forum.maxiol.com/index.php?showtopic=5563
Рассказано про RAM-BIOS; инсталлятор RAM-BIOS есть на диске Воланда в M:\LastNovakDo
p.s. пожалуй, дальше в форуме БК...
Стер пыль с забытого эксперимента (настолько, что аж исходники плеера потерялись), закодировал часть видео Giorgio Moroder -- Racer (https://www.youtube.com/watch?v=YT0k99hCY5I), чтобы влезло на дискету.
https://zx-pk.ru/attachment.php?atta...0&d=1734460500
Работает в emustudio и ukncbtl; реала нет, чтобы проверить.
Вложение 81719
Вложение 81720
Явно не дружит с таблицей строк:
https://i.ibb.co/K0XDKqn/PXL-20241217-185846339-MP.jpg
Получается предварительно вручную нужно подготовить экран и цвета, с теми что по умолчанию не смотрится:
(там жёлтые буквы на синем фоне, камера исказила цвета)
https://i.ibb.co/Vj8pLkB/PXL-20241217-190014127.jpg
Первая дискета - http://archive.pdp-11.org.ru/ukdwk_a...xed/system.dsk
После старта:
Код:ASSIGN MZ1 DK
CLRL
RUN XDCPLY