Autor Thema: GFA-Basic 3.0 Befehlssequenz  (Gelesen 7404 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Joggy

  • Benutzer
  • Beiträge: 41
  • Atari ST - mein und fein!
GFA-Basic 3.0 Befehlssequenz
« am: Fr 02.05.2014, 17:34:16 »
Hallo zusammen,
ich bin zur Zeit dabei, auf dem ST ein Programm in GFA-Basic 3.0 zu schreiben. Eine der Funktionen soll sein, den Bildschirm bei Programmstart zu invertieren - soll heißen, im High-Res-Mod die Farben zu tauschen.
Vor ungefähr hundert Jahren hab' ich sowas schon einmal gemacht, jetzt bekomme ich es aber nicht mehr hin, weil ich schon ewig nix mehr auf dem ST programmiert habe.
Mit "DEFFILL 1,1,1" und "PBOX 0,0,400,640" geht es, aber genauso will ich es nicht machen.
Mir schwebt da eher ne Lösung vor, wie sie das Kontrollfeld ausführt.
Weiß da irgendjemand eine Lösung?  :-\
Ich bin unter der Email Joa.Geu@gmx.de zu erreichen, oder natürlich hier im Forum  :)
Gruß,
Joachim Geupel
Atari MegaSTe, Atari 1040STe, Mega2ST mit 4MB, Atari 130XE, Atari800XL, Atari 600XL, Sinclair Spectrum 48, Sinclair 128+2a, Philips MSX, Sharp MZ821...

Burkhard Mankel

  • Gast
Re: GFA-Basic 3.0 Befehlssequenz
« Antwort #1 am: Sa 03.05.2014, 08:44:20 »
zB über die VT 52 Sequenz:
? {esc}p                        ! beginn invert
? {esc}q                        ! end invert
{esc} ist das Symbol, das Du erhelst, wenn Du zweimal die [ESC] Taste drückst!

edit: Tut mir leid - falscher Ideengang! Das invertiert nur Text, hab' leider nicht d'ran gedacht! Wenn Du damit den Bildschirm invertieren willst müßtest Du einen haufen {Spaces} einsetzen - was für 'ne Speicherverschwendung - aber wenn jemand solche Sequenzen für den Bilschirm kennt ...?
« Letzte Änderung: Sa 03.05.2014, 08:58:50 von Burkhard Mankel »

Offline simonsunnyboy

  • Benutzer
  • Beiträge: 1.808
  • Rock'n'Roll is the thing - Jerry Lee is the king!
Re: GFA-Basic 3.0 Befehlssequenz
« Antwort #2 am: Sa 03.05.2014, 10:14:45 »
Wenn du den ganzen Bildschirm farblich invertieren möchtest, ohne immer die Invertierung selber zeichnen zu müssen, dann reicht es, die Farbpalette mit SETCOLOR umzustellen, irgendeine Kombination schaltet auf "weiß-auf-schwarz" am SM124, ich weiss nur nicht mehr welche. Programmiere seit 15 Jahren nicht mehr für ST-HIGH....

Probier mal "SETCOLOR 0,0" am Programmanfang, SETCOLOR 0,1 müsste dich wieder auf normal zurückbringen.
Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Burkhard Mankel

  • Gast
Re: GFA-Basic 3.0 Befehlssequenz
« Antwort #3 am: Sa 03.05.2014, 10:17:13 »
Habe es eben durchprobiert, indem ich in einer For/Next Schleife alle Zeichen des Atari Zeichensatzes probierte! Die Ansi (VT52) ist keine wirkliche Lösung: Es gibt aber meineswissens dann auch gar nichts. Außerdem habe ich die Befele vertauscht:"{esc}q" = Beginn und "{esc}p" = End Invert. Sie müssen in Gänsefüßchen stehen!
Da mir nichts anderes einfällt, folgender Tipp, falls Du Text benötigst:
?"{esc}E;{esc}q";                 ! Clear Screen and invert text
FOR x=1 TO 1999                   ! 80x25 Zeichen pro Screen-1, da sonst untere Zeile wieder weiß
  ? " ";                          ! so nur unteres rechtes Zeichen weiß
NEXT x
? AT(x,y),"{Text}"                ! positionierter Text
...
?"";
~INP(2)                           ! Warten auf Taste
...
?"{esc}p"                 
END
Wichtig: Vor Programmende Invertierung wieder aufheben, da sonst nach Programmende gaze Texte invertiert werden!


Offline Joggy

  • Benutzer
  • Beiträge: 41
  • Atari ST - mein und fein!
Re: GFA-Basic 3.0 Befehlssequenz
« Antwort #4 am: Sa 03.05.2014, 10:31:03 »
Danke für die Auskunft!
Ich hab mir das Profibuch von 1988 gekauft - allerdings vergessen, das ich es hatte.
Ich bin heute Nacht auf die Suche gegangen und hab es tatsächlich gefunden...
Dort steht drin, mit welchem XBIOS-Befehl auf die Farbpalette zugegriffen werden kann.
Nachdem mein ST sich mehrfach geweigert hat, irgendwas zu tun (man sollte nicht im Supervisor-Modus rumspielen) hab ich es herausbekommen.
Der Befehl lautet :
         void XBIOS(7,0,0)           !  Invers
         void XBIOS(7,0,1)           !  Normal

xyz%=XBIOS(7,register%,farbe%)  ist das Setzen oder Abfragen der Farbpalette.
Im SW-Modus sind das natürlich nur zwei Farben, d,h. '0' für schwarz, '1' für weiß.
Wird bei 'farbe%' der Wert -1 eingegeben, steht in der Rückantwort der Farbwert.
Das ist allerdings ne 5-stellige Zahl.

So funktioniert das:
VOID XBIOS(7,0,0)         ! Invertieren
PRINT " Invers"
PRINT XBIOS(7,0,-1)   ! Ausgabe des Registerinhalts
PAUSE 100
PRINT
VOID XBIOS(7,0,1)         ! Zurückschalten
PRINT " Normal"
PRINT XBIOS(7,0,-1)   ! Nochmal Ausgebe des Registerinhalts
PAUSE 100

Das hat mich nicht schlafen lassen.
Ich bin deswegen heute Morgen um 4 Uhr aufgestanden und hab weiter probiert... ;)
Jetzt funktioniert's...

Aber vielleicht weißt du ne Lösung, wie man die Bildwiederholfrequenz in GFA-Basic
im Farbmodus von 50Hz auf 60Hz umschalten kann.

Im Profibuch steht auf Seite 194
'Int $000448     1096   palmode'
'legt die Fernsehnorm fest.'
'Null:      NTSC-Modus (60Hz)
'sonst:   PAL-Modus (50Hz)

Vielleicht lässt sich ein 'normler ST' also meiner,
im MED- oder LOW-Modus an einem handelsüblichen TFT-Monitor betreiben.  8)
Die Teile können im Normalfall nämlich 60Hz.
Das müsste sich eigentlich in GFA-Basic 'POKEn' lassen. Aber wie?
Hab ich noch nie gemacht.

Nochmal: DANKE!!!  :D :D
Gruß, Joachim  ;)
(Atari ST - mein und fein !)

Atari MegaSTe, Atari 1040STe, Mega2ST mit 4MB, Atari 130XE, Atari800XL, Atari 600XL, Sinclair Spectrum 48, Sinclair 128+2a, Philips MSX, Sharp MZ821...

Offline Joggy

  • Benutzer
  • Beiträge: 41
  • Atari ST - mein und fein!
Re: GFA-Basic 3.0 Befehlssequenz
« Antwort #5 am: Sa 03.05.2014, 10:42:31 »
Hallo nochmal!
Warum einfach, wenn's auch schwierig geht.
Die einfache Version ist 'SETCOLOR".
Wie von Simonsunnyboy beschrieben.
Setcolor 0,0 invertiert
Setcolor 0,1 schaltet zurück.
Die Zahlen ohne Klammer, sonst ist's ne zweidimensionale Feldvariable  :D
Danke nochmal!
Gruß,
Joggy
Atari MegaSTe, Atari 1040STe, Mega2ST mit 4MB, Atari 130XE, Atari800XL, Atari 600XL, Sinclair Spectrum 48, Sinclair 128+2a, Philips MSX, Sharp MZ821...

Burkhard Mankel

  • Gast
Re: GFA-Basic 3.0 Befehlssequenz
« Antwort #6 am: Sa 03.05.2014, 10:43:17 »
Vielleicht lässt sich ein 'normler ST' also meiner,
im MED- oder LOW-Modus an einem handelsüblichen TFT-Monitor betreiben.  8)
Die Teile können im Normalfall nämlich 60Hz.
Das müsste sich eigentlich in GFA-Basic 'POKEn' lassen. Aber wie?
Hab ich noch nie gemacht.

Nochmal: DANKE!!!  :D :D
Gruß, Joachim  ;)
(Atari ST - mein und fein !)
Das funzt leider idR nicht, es sei denn, Du findest einen, der in der Zeilenfrequenz bei etwa 15 kHz beginnt - die liegt iA bei VGA TFT's nämlich bei 31 kHz!

So läßt sich nur die Monochrom-Auflösung adaptieren!

Da ich - bevor Du die Lösung postete - meinen Tipp noch im Emu testete und möchte ich der Allgemeinheit meine Ergebnisse nicht vorenthalten: