ivagor, я вообще-то потрясён...я сам забыл о том, что я собирался такое делать и были намётаны какие-то поделки. Ты практически историографПрикинь моё изумление. Ведь это - последнее, что я налабал для Вектора "в своё время", до того, как всё забросил. Более чем 20 лет прошло!
Код, возможно, попал к Tim0xA c архивов S.E.S, с которым я лично так и не встретился, хотя он в гости звал, оба жили в Питере. S.E.S активно писал под Вектор когда я уже всё забросил. Был небольшой период в 93м, когда мы передавали друг другу код на дискетах через знакомых.
Я порылся в закромах и таки нашёл какие-то обрывки и рабочие примеры с выводом окна. Дата в файле windows.inc (хаха) - февраль 1994 года! Вообще-то назвать это "графической средой" будет глумлением над графическими средами.
Посмотрел сейчас на исходник. До сих пор приятно его читать. Помню, что цель была превратить асм в удобное для разработчика средство. Приведу клиентскую часть кода всего приложения здесь. Это-макроассемблер для m80. Всё компилится до сих пор!
И такая вот поделка выплёвывает 7 окон в графике на экран и тасует их like crazy. Конечно сейчас я бы смог ускорить вывод залитого прямоугольника ещё раза в 2-3, но и по тем временам совсем неплохо.Код:App_ver set 30H INCLUDE PPCLIB.INC INCLUDE WINDOWS.INC InitWindows DefWindow MyWin1,BPanel,5,5,21,20,LightGray DefWindow MyWin2,BPanel,2,2,28,28,Yellow DefWindow MyWin3,BPan3D,3,3,24,24,Green DefWindow MyWin4,BPanel,4,4,20,20,Red DefWindow MyWin5,BPan3D,5,5,16,16,Blue DefWindow MyWin6,BPan3D,6,6,12,12,White DefWindow MyWin7,BPanel,7,7,8,8,DarkGray DefWindow MyWin8,BPan3D,8,8,4,4,Black SetWindow MyWin1 CALL GETCH SetWindow MyWin2 SetWindow MyWin3 SetWindow MyWin4 SetWindow MyWin5 SetWindow MyWin6 SetWindow MyWin7 SetWindow MyWin8 CALL GETCH SetWindow MyWin7 SetWindow MyWin6 SetWindow MyWin5 SetWindow MyWin4 SetWindow MyWin3 SetWindow MyWin2 ExitWindows END
Видно, что бордюры окон рисуются спрайтами, но по "знакоместам", выровненным на границу байтов. Ну точь в точь, как в GEM
Что планировалось сделать - не упомню уже. Но явно видно, что есть "рабочий стол" с заливкой текстурой из файла marble.pak и окна рисуются поверх этого. Полагаю, навеяно третьими Виндами. На окнах - никаких контролов. Процедур обработки событий-никаких, message queues ещё нету. Видимо это планировалось, но сейчас уже и не упомню, как собирался делать. В текстовой оконной библиотеке wios для CP/M обошёлся без этого, в стиле трубо-вижн.
Приложу сырки. Вряд ли кто будет копаться в этом, но кто знает! Там же, в архиве - скомпилённое приложение и исходники оконной библиотеки. Всё это линкуется с PPCLib для низкоуровневых операций типа заливка плоскостей и т.п. (также, как и GEM использует VDI для вывода примитивов). Прикольно, что многие идеи - по наитию, я тогда понятия не имел о том, как делать "идеологически правильно".
А вообще мечта сделать какую-то оконную среду типа GEM для Вектора часто овладевала мной.





Прикинь моё изумление. Ведь это - последнее, что я налабал для Вектора "в своё время", до того, как всё забросил. Более чем 20 лет прошло!
.
Ответить с цитированием