[#1] Otwarcie ekrany w trybie DblPal z BlitzBasica
Witam,

Czy wie ktoś z Szanownych Forowiczów, czy i jak można otworzyć okno w BlitzBasicu (tym pierwotnym 2.1) ekran systemowy w trybie DblPal. Podobno można otworzyć każdy tryb systemowy, ale w podręczniku nie ma wystarczających informacji. Wiem, że tryb jest bardzo wolny, ale chciałem sobie potestować możliwości wyświetlania w większej rozdzielczości bez interlacu.
[#2] Re: Otwarcie ekrany w trybie DblPal z BlitzBasica

@Reborn, post #1

Co prawda nie znam się na BlitzBasicu ale wiem że można tam korzystać z funkcji systemowych. Można więc otworzyć każdy ekran jak się zna jego DisplayID (aka ModeID). Używasz OpenScreenTagList z tagiem SA_DisplayID,id_trybu_DblPal

Ostatnia aktualizacja: 26.03.2023 22:21:22 przez pisklak
[#3] Re: Otwarcie ekrany w trybie DblPal z BlitzBasica

@Reborn, post #1

Ogólnie Blitz Basic używa Interlaced.

Nie wiem jak jest z DblPAL, ale sprawdzałem wczoraj pierwszy raz z RTG UaeGfx. Powiem tak, że zwykły Blitz Basic 2.1 otworzył okno TEDa w swoich rozmiarach więc 3/4 ekranu było nie do użycia. Następnie go wywaliłem i zainstalowałem Ultimate Blitz Basic 2.1 CD którego używam na codzień. Po kilku opcjach edytor wyglądał już tak:
]

Jedynie "Compile and run" trwa wolno pod RTG.

Chyba że chodzi o otwarcie ekranu podczas programowania?

Ostatnia aktualizacja: 26.03.2023 22:25:37 przez tukinem
[#4] Re: Otwarcie ekrany w trybie DblPal z BlitzBasica

@tukinem, post #3

A to ja chyba źle zrozumiałem sens zapytania autora wątku... Przepraszam. Ale jakby co to programy w stylu ModePro może pomogą..

Ostatnia aktualizacja: 26.03.2023 22:41:31 przez pisklak
[#5] Re: Otwarcie ekrany w trybie DblPal z BlitzBasica

@pisklak, post #4

Albo ja już sam nie wiem teraz...
[#6] Re: Otwarcie ekrany w trybie DblPal z BlitzBasica

@pisklak, post #2

Chodziło mi o otwarcie Screena i później okien komendami do dalszego pisania programu, który działa w DblPal (nie do uruchamiania edytora w tym trybie) - sorki za nieprecyzyjne pytanie .

Dzięki, Pisklak! Spróbuje twojej sugestii bo to powinno być rozwiązaniem.
[#7] Re: Otwarcie ekrany w trybie DblPal z BlitzBasica

@Reborn, post #6

Ekran Intuition otwierasz komendą Screen. Niestety tam jest tylko opcja Lores/Hires/Super Hires i dodatkowo opcja Interlaced.

Możesz użyć systemowej komendy otwierającej ekran, ale jest jeszcze opcja w Ultimate Blitz, gdzie używasz najpierw NScreenInit (#liczba ekranow) i NScreen. To nowa wersja instrukcji screen i w niej używasz właśnie systemowych tagów przy otwieraniu ekranu, więc możliwe że ta instrukcja potrafi otworzyć taki ekran. Analogicznie później wpisujesz NWindowInit i NWindow do otwarcia okna.

Ostatnia aktualizacja: 27.03.2023 11:07:31 przez tukinem
[wyróżniony] [#8] Re: Otwarcie ekrany w trybie DblPal z BlitzBasica

@Reborn, post #1

Czesc,

jesli chcesz systemowo tak jak pisklak wspomnial to mozesz skompilowac to co wkleilem ponizej.
Program najpierw pokaze okno wyboru ekranu a po zatwierdzeniu takowy otworzy ... i zamknie.

Od razu pare informacji:
- jest tam uzyte vwait (blitza) by uproscic calosc - wiec ekran sie zamknie sam po chwili
- zeby otworzyc dblpal to musisz miec oczywiscie uruchomiony sterownik dbl pal w monitors...
- byc moze nie zamykam jakis tam systemowych zasowbow w tym listingu .. ale pisalem to na szybko - wiec jesli po zakonczeniu programu bedzie Ci brakowalo troche pamieci znaczy ze zapomnialem czegos zamknac
-nie wiem czy potrezbne jest DrawInfo - jest w strukturze screenmode requestera wiec dlatego odczytuje VisualInfo a potem DrawInfo

NAJWAZNIEJSZE
w blitzu (wersja 2) musisz dodac do kompilatora sciezke do biblitek (.res), albo to bedzie all.res, amigalibs.res. amigalibsii.res

w zaleznosci ktorej uzyjesz niektore FileType beda sie roznic
np: dla all.res masz .Screen ale dla amigalibsii.res bedzie to ._Screen... >> i wiele innych temu podobnych

chyba lepiej uzywac amiblitz +all.res (u mniie na blitzu 2 all.res wiesza kompa wiec uzylem amigalibsii.res)

WBStartup
NoCli

scrname$="my screen"

  *scr._Screen            =0
*scrwb._Screen            =0
  *smr.ScreenModeRequester=0
   *di.DrawInfo           =0
   *vi.l                  =0

Dim tagi.TagItem(20)
Dim pens.w(11)
    pens(0)=-1


*ibase._IntuitionBase=IntuitionBase
*lock.l=LockIBase_(0)
*scrwb=*ibase\FirstScreen

While *scrwb
  If (*scrwb\Flags)&#SCREENTYPE=#WBENCHSCREEN Then Pop While:Goto __foundwb
  *scrwb=*scrwb\NextScreen
Wend
End



.__foundwb:
UnlockIBase_(*lock)
*vi=GetVisualInfoA_(*scrwb,0)
If *vi
  *di=GetScreenDrawInfo_(*scrwb)
  If *di

    i.w=0
    USEPATH tagi(i)

    ;window control
    \ti_Tag=#ASLSM_Screen         ,*scrwb          :i+1

    ;initial settings
    \ti_Tag=#ASLSM_InitialLeftEdge     ,0                  :i+1
    \ti_Tag=#ASLSM_InitialTopEdge      ,*scrwb\BarHeight+1 :i+1
    \ti_Tag=#ASLSM_InitialWidth        ,*scrwb\Width/2     :i+1
    \ti_Tag=#ASLSM_InitialHeight       ,*scrwb\Height*0.75 :i+1
    \ti_Tag=#ASLSM_InitialDisplayID    ,displayid.l        :i+1
    \ti_Tag=#ASLSM_InitialDisplayDepth ,*di\dri_Depth      :i+1
    \ti_Tag=#ASLSM_InitialDisplayWidth ,*scrwb\Width       :i+1
    \ti_Tag=#ASLSM_InitialDisplayHeight,*scrwb\Height      :i+1

    ;options
    \ti_Tag=#ASLSM_DoWidth        ,True             :i+1
    \ti_Tag=#ASLSM_DoHeight       ,True             :i+1
    \ti_Tag=#ASLSM_DoDepth        ,True             :i+1
    \ti_Tag=#ASLSM_DoOverscanType ,True             :i+1
    \ti_Tag=#ASLSM_DoAutoScroll   ,False            :i+1

    \ti_Tag=#TAG_DONE             ,False

    *smr=AllocAslRequest_(#ASL_ScreenModeRequest,&tagi(0));\ti_Tag)


    ;jesli chce ustawic cos specjalnego to dopisuje ponizej:
    tagi(0)\ti_Tag=#TAG_DONE,False

    If AslRequest_(*smr,&tagi(0))
      displayid      =*smr\sm_DisplayID
      displaydepth.w =*smr\sm_DisplayDepth
      displaywidth.w =*smr\sm_DisplayWidth
      displayheight.w=*smr\sm_DisplayHeight
    EndIf

    FreeAslRequest_(*smr)




    i=0
    If displayid=#INVALID_ID
      \ti_Tag = #SA_LikeWorkbench,True          :i+1
    Else
      \ti_Tag = #SA_Pens         ,&pens(0)      :i+1
      \ti_Tag = #SA_DisplayID    ,displayid     :i+1
      \ti_Tag = #SA_Depth        ,displaydepth  :i+1
    EndIf

    \ti_Tag = #SA_Type           ,#PUBLICSCREEN :i+1
    \ti_Tag = #SA_PubName        ,&scrname$     :i+1
    \ti_Tag = #SA_SharePens      ,True          :i+1
    ;\ti_Tag = #SA_SysFont        ,1             :i+1  ;to nie jest -1 (true) !!!
    \ti_Tag = #SA_Title          ,0             :i+1
    \ti_Tag = #TAG_DONE          ,False

    *scr=OpenScreenTagList_(0,&tagi(0))

    If *scr
      suc.l=PubScreenStatus_(*scr,0) ;publiczny to PRIVATE wiec daje PUBLIC
      ScreenToFront_(*scr)
      VWait 100
      CloseScreen_(*scr)
    EndIf

    suc.l=FreeScreenDrawInfo_(*scrwb,*di)
  EndIf

  FreeVisualInfo_(*vi)
EndIf

End



Ostatnia aktualizacja: 27.03.2023 20:16:27 przez pch
1
[#9] Re: Otwarcie ekrany w trybie DblPal z BlitzBasica

@pch, post #8

No i to się nazywa odpowiedź OK
Ja używam zazwyczaj LockPubScreen do "obczajenia Workbencha"
szeroki uśmiech
[#10] Re: Otwarcie ekrany w trybie DblPal z BlitzBasica

@pch, post #8

Dzięki, Pch! Mega odpowiedź! Przetrawię i popróbuje w wolnej chwili. Dzięki również Tukinem. Ogólnie widzie, ze jeszcze sporo muszę doczytać.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem