GXDE (GraphX Desktop Environment)

Всевозможные операционные системы от CP/M до Vista

Re: GXDE (GraphX Desktop Environment)

Сообщение SteveZeleniy » 01 фев 2017, 18:13

Да,я тоже заметил,что мы оба теперь опытные даунгрейдеры. :D
Будет неплохо сделать читалку HTML.Можно будет начать.
Опять же:главная проблема GXDE-тормоза.Они остались.Они затаились внутри исходника и выходят наружу после каждого запуска... :)
Последний раз редактировалось SteveZeleniy 30 сен 2023, 23:40, всего редактировалось 2 раз(а).
Аватара пользователя
SteveZeleniy
Мастер Даунгрейда
 
Сообщения: 281
Зарегистрирован: 26 янв 2017, 18:42
Откуда: Ну мало ли мест в мире....
Железо: Барахло 2000-ного где-то года

Re: GXDE (GraphX Desktop Environment)

Сообщение Computershik » 01 фев 2017, 18:15

Очень интересно, лагает ли она на реальном железе...

Хотелось бы, чтобы данная задача (поддержка Сети) стала приоритетной)
Последний раз редактировалось Computershik 30 сен 2023, 23:40, всего редактировалось 2 раз(а).
Computershik
Мастер Даунгрейда
 
Сообщения: 179
Зарегистрирован: 19 апр 2016, 23:38
Откуда: от того же верблюда, что и SteveZeleniy

Re: GXDE (GraphX Desktop Environment)

Сообщение SteveZeleniy » 01 фев 2017, 18:17

Очень интересно, лагает ли она на реальном железе...

Я думаю,нет.Это в DosBox самоделки сильно тормозят.Попробую с загрузочной флешки MS-DOS 8.0.Но очень быстро работать все равно не будет,это точно.
Последний раз редактировалось SteveZeleniy 30 сен 2023, 23:40, всего редактировалось 2 раз(а).
Аватара пользователя
SteveZeleniy
Мастер Даунгрейда
 
Сообщения: 281
Зарегистрирован: 26 янв 2017, 18:42
Откуда: Ну мало ли мест в мире....
Железо: Барахло 2000-ного где-то года

Re: GXDE (GraphX Desktop Environment)

Сообщение SteveZeleniy » 01 фев 2017, 18:21

Хотелось бы, чтобы данная задача (поддержка Сети) стала приоритетной)

А зачем?Сейчас все пользуются сетью Wi-Fi и 4G(второе уже для Android и IOS больше актуально).Нет такого безумца,который бы рискнул сделать поддержку сети Wi-Fi для DOS.Поддержка старой аппаратуры для выхода в Сеть-это еще куда ни шло.Но сгодится только для виртуалок....
Последний раз редактировалось SteveZeleniy 30 сен 2023, 23:40, всего редактировалось 5 раз(а).
Аватара пользователя
SteveZeleniy
Мастер Даунгрейда
 
Сообщения: 281
Зарегистрирован: 26 янв 2017, 18:42
Откуда: Ну мало ли мест в мире....
Железо: Барахло 2000-ного где-то года

Re: GXDE (GraphX Desktop Environment)

Сообщение SteveZeleniy » 01 фев 2017, 22:51

На опытах с компилятором Turbo C++ я понял способ создания многозадачности(о которой раньше только мечтал.Все-таки ОСей я никогда не делал :) ).Расскажу его позднее.Я не совсем понял по комментариям на странице GXDE,так перемещаются объекты теперь или нет?(Не хочется копаться в исходнике в поисках ответа)Если нет,то я готов рассказать и способ создания перемещаемых объектов.
Последний раз редактировалось SteveZeleniy 30 сен 2023, 23:40, всего редактировалось 3 раз(а).
Аватара пользователя
SteveZeleniy
Мастер Даунгрейда
 
Сообщения: 281
Зарегистрирован: 26 янв 2017, 18:42
Откуда: Ну мало ли мест в мире....
Железо: Барахло 2000-ного где-то года

Re: GXDE (GraphX Desktop Environment)

Сообщение Computershik » 02 фев 2017, 14:14

Насчёт поддержки сети:
с чего вы взяли, что я предлагаю писать драйвера? :mrgreen: У нас же ОБОЛОЧКА под MS-DOS, а под тот же NE1000, эмулируемый SVN-версиями Dosbox и подсоединяемый к Сети через WinPCap-драйвер, есть com-драйвера. Правда, настраивать их - сущее мучение)
SteveZeleniy писал(а):Если нет,то я готов рассказать и способ создания перемещаемых объектов.

Эм, там, скажем так, окна двигаются путем сохранения буфера jpg под ними, но качество портится при движении если фон не однотонный. Конечно, можно было бы bmp-буфер сделать, но Отец что-то намудрил, и при сохранении картинок и их последующем открытии искажаются некоторые цвета...
Есть еще bitblip (на ассемблере), но не представляю, что с ним делать, т.к. не удается скрыть белый сдвиг слева (если двигать картинку вправо)...
Последний раз редактировалось Computershik 30 сен 2023, 23:40, всего редактировалось 2 раз(а).
Computershik
Мастер Даунгрейда
 
Сообщения: 179
Зарегистрирован: 19 апр 2016, 23:38
Откуда: от того же верблюда, что и SteveZeleniy

Re: GXDE (GraphX Desktop Environment):Многозадачность!!!!

Сообщение SteveZeleniy » 02 фев 2017, 21:02

:idea: :idea: :idea: !
Условная многозадачность будет заключаться в следующем:
Во-первых,для каждой функции должна быть своя переменная типа boolean и символизирующая состояние(запущен или нет).Это вроде уже есть.(частично),нужно для всего.
Во-вторых,убрать из функции progs_menu строки repeat и until progs_opened=false
убрать строку getmouseevent; после первого end;
и переместить эти строки
Код: Выделить всё
if (pointerthere(pmnx, pmny, pmnx+150, pmny-250)) and (event.buttons=1) then begin
openvlc:=true;
{msgbox(180, 180, 490, 150, 'normal', 'message', 'For GXDE updates, visit www.old-dos.ru',
     'Information'); }
     hidemouse;
     loadjpeg(pmnx, pmny-250, 'pmnbuf.jpg', 1);
     {loadjpeg(mnx, mny-250, 'mnbuf.jpg', 1);}
     showmouse;
     progs_opened:=false;
     menu_opened:=false;
end;

if {(not ((mx>=mnx) and (mx<=mnx+60) and (my>=mny-90) and (my<=mny))) and (button_pressed(0))}
(not (pointerthere(pmnx, pmny-90, pmnx+60, pmny))) and (event.buttons=1)
then begin
{setfillstyle(1, 3);}
hidemouse;
{bar(mnx, mny, mnx+150, mny-250);}
loadjpeg(pmnx, pmny-250, 'pmnbuf.jpg', 1);
showmouse;
progs_opened:=false;
i:=1;
end;

в главный цикл(главным мы будем называть цикл,который не дает программе завершится до условий выхода)
И притом к if ам добавить следующее условие:and progs_opened=true
Это первые шаги.Продолжение через 2-3 поста. :D
Последний раз редактировалось SteveZeleniy 30 сен 2023, 23:40, всего редактировалось 3 раз(а).
Аватара пользователя
SteveZeleniy
Мастер Даунгрейда
 
Сообщения: 281
Зарегистрирован: 26 янв 2017, 18:42
Откуда: Ну мало ли мест в мире....
Железо: Барахло 2000-ного где-то года

Re: GXDE (GraphX Desktop Environment)

Сообщение Computershik » 02 фев 2017, 21:32

И вот еще проблемка:
вот код msgbox, где все кнопки анимированные.
Код: Выделить всё
procedure msgbox(xm, ym, ww, wh: word; ws, wty: string; wtext: string; wti: string);
var msb_closed: boolean;
    sc, i: integer;
    ch: char;
     var Button1, ButtonX: Tbutton;
     s: integer;
     label g;
     var reget: boolean;
begin
     s:=0;
     {loadpng(0,0,'icons\winter.png');}
     with
     Button1 do begin
          Bx:=xm+ (ww div 2) -17;
          By:=ym+wh-40;
          Bw:=34;
          Bh:=14;
          Bcolor.red:=150;
          Bcolor.green:=150;
          Bcolor.blue:=150;
          Btextcolor.red:=0;
          Btextcolor.green:=0;
          Btextcolor.blue:=0;
          Btext:='OK';
          Baction:=1;
          Bredraw:=true;
     end;
     with
     ButtonX do begin     {xm+ww-13, ym+3, xm+ww-3, ym+13}
          Bx:=xm+ww-13;
          By:=ym+3;
          Bw:=10;
          Bh:=10;
          Bcolor.red:=150;
          Bcolor.green:=150;
          Bcolor.blue:=150;
          Btextcolor.red:=0;
          Btextcolor.green:=0;
          Btextcolor.blue:=0;
          Btext:='x';
          Baction:=1;
          Bredraw:=true;
     end;
     {UIButtonPressed(Button1):=false;}
     i:=1;
     msb_closed:=false;
     showmouse;
     {hidemouse;}
     savejpeg(xm, ym, xm+ww, ym+wh+5, 'buf.jpg', 100);
     {getmouseevent;}
     reget:=true;
     repeat

     if (not (msb_closed) and (i=1)) then begin
    { if reget=true then begin
     {savebmp(xm, ym, xm+4, ym+wh, 'buf.bmp');}
     {savepict(xm,ym, xm+4, ym+4, 'buf.txt');}
{     GetMem(pp, Imagesize(xm,ym,xm+4,ym+wh));}
     {getimage(xm, ym, xm+4, ym+wh, PP);}
    { reget:=false;
     goto g;
     end;}
     setfillstyle(1, rgb(255, 255, 255));
     bar(xm, ym, xm+ww, ym+wh);
     rectangle(xm, ym, xm+ww, ym+wh);
     setfillstyle(1, rgb(0, 0, 255));
     bar(xm+1, ym+1, xm+ww-1, ym+15);
     setcolor(rgb(0,0,0));
     outtextxy(xm+5, ym+5, wti);
     setcolor(0);
     outtextxy(xm+95, ym+wh div 2, wtext);
     loadpng(xm+15, ym+wh div 2-20, 'icons\info1.png');

     {setfillstyle(1, rgb(150, 150, 150));
     bar(xm+ (ww div 2) -17, ym+wh-40, xm+(ww div 2)+17, ym+wh-26);
     outtextxy(xm+(ww div 2)-10, ym+wh-38, 'OK');}
  {   setfillstyle(1,7);
     bar(xm+ww-13, ym+3, xm+ww-3, ym+13);
     line(xm+ww-10, ym+6, xm+ww-6, ym+10);
     line(xm+ww-10, ym+10, xm+ww-6, ym+6); [X]}
     {savejpeg(xm, ym, xm+ww, ym+wh, 'buf2.jpg', 100);}

     {showmouse;}
     i:=i+1;
{    g: }
     end;
     if Button1.Bredraw=true then begin
     hidemouse;
     setcolor(0);
     UIDrawButton(Button1);
     showmouse;
     Button1.Bredraw:=false;
     end;
     if ButtonX.Bredraw=true then begin
     hidemouse;
     setcolor(0);
     UIDrawButton(ButtonX);
     showmouse;
     ButtonX.Bredraw:=false;
     end;
     {Button1.Bredraw:=false;}
     getmouseevent;
     if UIButtonPressed(Button1)=true then
     begin
         {setcolor(mitte);}
         with button1 do
         begin
         hidemouse;
         setlinestyle(DottedLn, 0, NormWidth);
         rectangle(Bx+1,By+1,Bx+Bw-1, By+Bh-1);
         showmouse;
         end;
         Button1.Bredraw:=true;
         msb_closed:=true;
       {  delay(3000);}
     end;
     if UIButtonPressed(ButtonX)=true then
     begin
         {setcolor(mitte);}
         with ButtonX do
         begin
         hidemouse;
         setlinestyle(DottedLn, 0, NormWidth);
         rectangle(Bx+1,By+1,Bx+Bw-1, By+Bh-1);
         showmouse;
         end;
         ButtonX.Bredraw:=true;
         msb_closed:=true;
       {  delay(3000);}
     end;
    { if keypressed then begin
     ch:=readkey;
     {msb_closed:=true;}

   {  bitblit(xm, ym, xm+ww, ym+wh, xm+4, ym);
     {showpict(xm, ym, 'buf.txt');}
     {bitblit(xm-4, ym, xm, ym+wh, xm, ym);}
     {putimage(xm, ym, pp);}
     {loadbmp(xm, ym, 'buf.bmp');}
  {   reget:=true;
     if ch=#13 then msb_closed:=true;
     xm:=xm+4;
     s:=s+1;
     end;
     {assign(f, 'act.txt');
     reset(f);
     read(f, tact);
     close(f);
     val(tact, action, err);}
     if (Button1.Bpressed=true) or (ButtonX.bPressed=true) then msb_closed:=true;

     until msb_closed=true;
     if msb_closed=true then
     loadjpeg(xm, ym, 'buf.jpg',1);
end;

на loadjpeg вылетает на division by zero
crt не виноват, delay тоже :oops:
что за?
Последний раз редактировалось Computershik 30 сен 2023, 23:40, всего редактировалось 1 раз.
Computershik
Мастер Даунгрейда
 
Сообщения: 179
Зарегистрирован: 19 апр 2016, 23:38
Откуда: от того же верблюда, что и SteveZeleniy

Re: GXDE (GraphX Desktop Environment)

Сообщение SteveZeleniy » 02 фев 2017, 21:45

Тээкс... Попробовал загрузить другую картинку('icons\comp.png')-пошло на ура.Очевидно,вся проблема в png-шке winter.png.Видимо,при попытке прочтения сей png-шки происходит ошибка.Или,может,при выводе на экран.Отладка могла бы сказать многое...... :)
Хотя,конечно,
Меньше знаешь-крепче спишь
Русская пословица
Последний раз редактировалось SteveZeleniy 30 сен 2023, 23:40, всего редактировалось 5 раз(а).
Аватара пользователя
SteveZeleniy
Мастер Даунгрейда
 
Сообщения: 281
Зарегистрирован: 26 янв 2017, 18:42
Откуда: Ну мало ли мест в мире....
Железо: Барахло 2000-ного где-то года

Re: GXDE (GraphX Desktop Environment)

Сообщение SteveZeleniy » 02 фев 2017, 22:20

Мне кажется,что основной приоритет должны иметь задачи оптимизации GXDE и многозадачности,а потом уже и Сети.
Последний раз редактировалось SteveZeleniy 30 сен 2023, 23:40, всего редактировалось 1 раз.
Аватара пользователя
SteveZeleniy
Мастер Даунгрейда
 
Сообщения: 281
Зарегистрирован: 26 янв 2017, 18:42
Откуда: Ну мало ли мест в мире....
Железо: Барахло 2000-ного где-то года

Re: GXDE (GraphX Desktop Environment)

Сообщение SteveZeleniy » 02 фев 2017, 22:29

Третий шаг к многозадачности(а их еще много :) )
Из всех процедур и функций(кроме главной) убрать repeat и until(если они не нужны для выполнения функции(например,для файлового менеджера(repeat until не найдет все файлы)) и все if ы переместить в Главный цикл с добавлением условия and (дальше переменная процесса) =true и в очистку экрана переместить в конец условия завершения процесса
Ну,вот теперь(если Вы сделали все правильно) GXDE многооконная и многозадачная оболочка.Потом надо будет добавить обновление экрана с последующей проверкой запущенных задач(перерисовывать открытые окна),возможность скрывать и показывать окна и еще много чего.Но об этом позже. :D
Последний раз редактировалось SteveZeleniy 30 сен 2023, 23:40, всего редактировалось 2 раз(а).
Аватара пользователя
SteveZeleniy
Мастер Даунгрейда
 
Сообщения: 281
Зарегистрирован: 26 янв 2017, 18:42
Откуда: Ну мало ли мест в мире....
Железо: Барахло 2000-ного где-то года

Re: GXDE (GraphX Desktop Environment)

Сообщение Computershik » 03 фев 2017, 07:48

к msgbox-у:
вылетает именно на одной из последних строчек (там, где loadjpeg). Закомментировал - работает.
loadpng вообще-то и так закомментирован был, так что он тут 100% ни при чем. :mrgreen:

Насчёт многозадачности:
не могли бы вы скинуть переделанный исходник, а то я могу чего-нибудь натворить :)
Последний раз редактировалось Computershik 30 сен 2023, 23:40, всего редактировалось 2 раз(а).
Computershik
Мастер Даунгрейда
 
Сообщения: 179
Зарегистрирован: 19 апр 2016, 23:38
Откуда: от того же верблюда, что и SteveZeleniy

Re: GXDE (GraphX Desktop Environment)

Сообщение SteveZeleniy » 03 фев 2017, 12:06

Так.. значит,я ошибся?Попробую еще разобраться.Насчет исходников многозадачности.Увы,пока скидывать нечего :) .Но скоро сделаю. (ведь этот способ я опробовал не в GXDE а в Vint 98 http://old-dos.ru/dl.php?id=15413) :) и напрасно боитесь,что что-нибудь не так сделаете :D .Просто надо бэкап сделать перед экспериментом :D
Я сделал msgbox работающим в фоновом режиме,но я там уже намудрил такого, что Пришлось переделывать. :mrgreen:
После переделывания:http://old-dos.ru/index.php?page=screen&do=show&id=7639
Но все равно с натяжкой робит и пока только msgbox,да и то пришлось пожертвовать перемещаемостью. :mrgreen:
Последний раз редактировалось SteveZeleniy 30 сен 2023, 23:40, всего редактировалось 9 раз(а).
Аватара пользователя
SteveZeleniy
Мастер Даунгрейда
 
Сообщения: 281
Зарегистрирован: 26 янв 2017, 18:42
Откуда: Ну мало ли мест в мире....
Железо: Барахло 2000-ного где-то года

Re: GXDE (GraphX Desktop Environment)

Сообщение SteveZeleniy » 03 фев 2017, 13:28

Еще надо бы добавить возможность создания скринов по нажатию PrintScreen .При модулях,которые использовались для savejpeg и loadjpeg,это будет легко,а то надоело уже в ИксУбунте выделять область экрана для нормального скрина.
Последний раз редактировалось SteveZeleniy 30 сен 2023, 23:40, всего редактировалось 2 раз(а).
Аватара пользователя
SteveZeleniy
Мастер Даунгрейда
 
Сообщения: 281
Зарегистрирован: 26 янв 2017, 18:42
Откуда: Ну мало ли мест в мире....
Железо: Барахло 2000-ного где-то года

Re: GXDE (GraphX Desktop Environment)

Сообщение Computershik » 03 фев 2017, 22:02

Вот здесь очень много полезных исходников на паскале (и не только)
http://ishodniki.ru/list/pascal/
Последний раз редактировалось Computershik 30 сен 2023, 23:40, всего редактировалось 1 раз.
Computershik
Мастер Даунгрейда
 
Сообщения: 179
Зарегистрирован: 19 апр 2016, 23:38
Откуда: от того же верблюда, что и SteveZeleniy

Пред.След.

Вернуться в Операционные системы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17