Autor Thema: Omikron Compiler bitblt  (Gelesen 8529 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline gh-baden

  • Benutzer
  • Beiträge: 1.976
OFF: Omikron Compiler bitblt
« Antwort #20 am: Sa 15.01.2022, 03:20:09 »
Noch was anderes, weiß jemand wie man bei Hatari  unter Linux das "=" (Gleich) Zeichen mit PC Tastatur eingibt?

Welches Tastaturmapping hat deine Linux-Installation? Welches TOS mit welchem »Locale« nutzt du in Hatari?
Wider dem Signaturspam!

Offline mcknopf

  • Benutzer
  • Beiträge: 39
Re: Omikron Compiler bitblt
« Antwort #21 am: Sa 15.01.2022, 08:00:46 »
Hallo, Tastaturmapping standard Deutsch unter Ubuntu, TOS 2.06 deutsch oder TOS 4.04 englisch - hab bei beiden bislang vergeblich das = Zeichen gesucht. Alternativ habe ich auch Aranym installiert, aber da reagiert Omikron 3.6 leider nicht auf Tastatureingaben oder Anklicken des Menüs, was auch nicht hilft.

Offline czietz

  • Benutzer
  • Beiträge: 3.587
Re: [OT] Omikron Compiler bitblt
« Antwort #22 am: Sa 15.01.2022, 11:11:21 »
Und was hast Du in Hatari als "Keyboard Mapping" (https://hatari.tuxfamily.org/doc/manual.html#The_Keyboard_Dialog) eingestellt? Ich bevorzuge in so einer Situation (deutsches TOS und deutsche Tastatur auf dem Host-Rechner) die Einstellung "Scancode".

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: Omikron Compiler bitblt
« Antwort #23 am: Sa 15.01.2022, 11:19:46 »
Hatari emuliert auch das Falcon NV RAM.

Will man das deutsche Tastaturlayout haben, sollte man das dort auch entsprechend einstellen.
And remember: Beethoven wrote his first symphony in C

Offline mcknopf

  • Benutzer
  • Beiträge: 39
Re: Omikron Compiler bitblt
« Antwort #24 am: Sa 15.01.2022, 13:02:43 »
Hatari Keyboard Mapping habe ich schon Symbolic und Scancode ausprobiert und deutsches TOS (2.06) und Falcon TOS (4.04) haben ja beides auch nicht Erfolg gebracht, tendenziell arbeite ich eher mit ersteren, da der STE eher orginalgetreu von der Geschwindigkeit her emuliert wird auch wenn ich bei realer Hardware lieber den Falcon zum Arbeiten nutze.

Offline czietz

  • Benutzer
  • Beiträge: 3.587
Re: [OT] Omikron Compiler bitblt
« Antwort #25 am: Sa 15.01.2022, 13:12:42 »
Okay, starte Hatari doch mal mit der u.s. Option vom Terminal (Konsole, Kommandozeile, wie auch immer Du es nennen magst) aus, sodass Du die Traceausgabe auch siehst:

hatari --trace keymap

Was wird ausgegeben, wenn Du "=" eingeben willst, also Shift+0 drückst?

Zum Vergleich, bei mir:
key down: sym=1073742053 scan=229 mod=0x2 name='Right Shift'
key map: sym=0x400000e5 to ST-scan=0x36
key down: sym=48 scan=39 mod=0x2 name='0'
key map: sym=0x30 to ST-scan=0x0b
key up: sym=48 scan=39 mod=0x2 name='0'
key up: sym=1073742053 scan=229 mod=0x0 name='Right Shift'

Oh, und von welcher Hatari-Version reden wir eigentlich?

Offline mcknopf

  • Benutzer
  • Beiträge: 39
Re: Omikron Compiler bitblt
« Antwort #26 am: Sa 15.01.2022, 13:42:34 »
Hatari ist bei mir auf dem neuesten Stand, ich kann jetzt nicht schauen, da nicht zuhause, erst heute Abend, aber auswendig weiß ich, dass es das ")" Zeichen ist (was eigentlich auf Shift+9 sein sollte)

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.250
Re: Omikron Compiler bitblt
« Antwort #27 am: Sa 15.01.2022, 14:07:40 »
Das sieht dann nach einer englischen Tastaturbelegung (vom TOS her) aus. Bei Falcon-Emulation liegt es vermutlich an den NVRAM-Einstellungen. Warum das bei deutschem TOS 2.06 allerdings auch so sein soll, ist mir schleierhaft.

Schwierigkeiten hatte ich bei mir mit Hatari haupsächlich mit den '[' und ']', weil die auf einer deuschen PC-Tastatur eigentlich auf Alt-8 bzw Alt-9 liegen, bei einer Atari-Tastatur aber auf ö bzw. ä.

Bei der aktuellen snapshot-version von Hatari ist das Keymapping nochmal erweitert worden, sodaß man da jetzt mehr Möglichkeiten haben sollte. Habe ich mir aber noch nicht genau angeschaut.

Für mich war jedenfalls immer wichtig, daß ich sowohl auf dem Host als auch in der Emulation die gleichen Zeichen bekomme, und nicht immer umdenken muss. Das funktioniert natürlich nur wenn man bei einer deutschen Tastatur auch ein deutsches TOS benutzt, sonst wirds echt komisch.

Für die Atari-Scancodes gibt es auch eine Übersicht unter http://tho-otto.de/keyboards/

guest4334

  • Gast
Re: Omikron Compiler bitblt
« Antwort #28 am: Sa 15.01.2022, 14:41:13 »
mcknopf

Das = Zeichen geht bei mir
auf meinen Notebook mit
den Tasten pause und 0
=0

sowohl unter Linux als auch mit den Hatari
mit den QED Texteditor und GFA Basic getestet.

Zeichentabelle in Qed
=
DEZ 061
HEX 0x3D

In GFA Basic drückt man einfach
die ALT Taste und den CODE 061
ALT 061
so hat man das = Zeichen

PRINT CHR$(61)

Mit Omikron Basic kenne ich mich nicht aus.
hatte früher nur mit GFA Basic programmiert.

Getestet mit EMUTOS Betriebssystem Deutsch
aber so weit ich mal gelesen habe
läuft Omikron nicht mit Emutos

Na ja viellecht kann man das Omikron Listing ja in den QED Texteditor laden
soweit man das Listing als ASC Text abspeichern kann
und das Zeichen = mit der Zeichentabelle in QED ins Omikron Listing eifügen.

Liebe Grüße von Siegfried

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.250
Re: Omikron Compiler bitblt
« Antwort #29 am: Sa 15.01.2022, 15:32:58 »
Alternativ habe ich auch Aranym installiert, aber da reagiert Omikron 3.6 leider nicht auf Tastatureingaben oder Anklicken des Menüs, was auch nicht hilft.

Vermutlich aus dem gleichen Grund warum es unter EmuTOS nicht läuft. Omikron greift auf diverse, undokumentierte System-Variablen zu anstatt die vorhanden Funktionen zu benutzen.

Offline mcknopf

  • Benutzer
  • Beiträge: 39
Re: Omikron Compiler bitblt
« Antwort #30 am: Mo 24.01.2022, 19:33:33 »
Hallo,
das mit dem = Zeichen habe ich inzwischen hin bekommen, der Tipp mit dem Scancode hat es doch gebracht, hab offenbar einfach eine Taste nicht noch mal ausprobiert gehabt, die es dann aber war (bei mir die " ' " Taste).
Zurück zu bitblt. Ich habe damit, wie bereits gesagt, Finescrolling realisiert, man kann mit dem bitblt Befehl vom 32 Pixel Bereich auch je 1-32 Pixel von rechts oder von oben vom Grafikblockspeicher auf den Bildschirm kopieren, aber von links oder von unten habe ich noch nicht hin bekommen.

Der Code dazu:
for sc=0 to 31 <- insgesamt 32 Durchläufe=32 Pixel scrollen
bitblt 33,32,192,168 to 32,32,192,168 <- Scrolling von links nach rechts
for yc=32 to 168 step 32
bitblt feld to 192-sc,yc,sc+1,32
next yc
next sc

das funktioniert gut, aber ist es auch möglich aus den Blockspeicher (hier "feld") von rechts nach links in den Bildschirmspeicher zu kopieren? Von links nach rechts ist es ja möglich z.B. nur eine Spalte zu kopieren, also von einem 32x32 Pixel großem Block per bitblt feld to 0,0,1,32 kopiert die erste Spalte von links auf den Bildschirm, aber ist es auch möglich z.B. nur die 32. Spalte des Blocks zu kopieren und falls ja, wie? Bisher habe ich es mit einem Trick hin bekommen, indem ich den ganzen 32x32 Pixel Block in den Statusbereich des Bildschirms (wo z.B. Score, Level angezeigt werden) kopiere und von dort dann halt z.B. die 32. Spalte in den Spielfeldbereich des Bildschirms, aber das sieht natürlich doof aus, wenn da immer im Statusbereich Grafikblöcke durchlaufen.

Vielleicht hat einer einer eine Idee?

Offline czietz

  • Benutzer
  • Beiträge: 3.587
Re: Omikron Compiler bitblt
« Antwort #31 am: Mo 24.01.2022, 20:33:36 »
das mit dem = Zeichen habe ich inzwischen hin bekommen, der Tipp mit dem Scancode hat es doch gebracht, hab offenbar einfach eine Taste nicht noch mal ausprobiert gehabt, die es dann aber war (bei mir die " ' " Taste).

Das sieht immer noch danach aus, dass Du irgendwas (Host, Atari, ...) auf US-Layout konfiguriert hast. Leider hast Du die Ausgabe von hatari --trace keymap ja weiterhin nicht gepostet.

Offline czietz

  • Benutzer
  • Beiträge: 3.587
Re: Omikron Compiler bitblt
« Antwort #32 am: Mo 24.01.2022, 20:48:01 »
aber ist es auch möglich z.B. nur die 32. Spalte des Blocks zu kopieren und falls ja, wie?
[...]
Vielleicht hat einer einer eine Idee?

Soweit ich das in Hatari sehe, ist das nicht möglich, da Omikron Basic die Bitblt-Startkoordinaten innerhalb Deines Datenblocks immer fest auf (0,0) setzt. Workaround, auf Kosten von deutlich mehr Speicherverbrauch: Lege jede Spalte in ein eigene Datenfeld; dann kannst Du natürlich jede Spalte einzeln "blitten".

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.250
Re: Omikron Compiler bitblt
« Antwort #33 am: Di 25.01.2022, 10:02:15 »
Alternativ (da Omikron ja offensichtlich vro_cpyfm bei bitblt verwendet), vro_cpyfm selber aufrufen, statt die eingebaute bitblt Funktion. Dafür brauchst du (mindestens) das interne VDI-Handle, das Omikron benutzt. Ich gehe mal davon aus, daß man da irgendwie dran kommt.

Offline Atari060

  • Benutzer
  • Beiträge: 2.330
  • Atari !!!
Re: Omikron Compiler bitblt
« Antwort #34 am: Mo 07.02.2022, 12:47:41 »
Hallo,
das mit dem = Zeichen habe ich inzwischen hin bekommen, der Tipp mit dem Scancode hat es doch gebracht, hab offenbar einfach eine Taste nicht noch mal ausprobiert gehabt, die es dann aber war (bei mir die " ' " Taste).
Zurück zu bitblt. Ich habe damit, wie bereits gesagt, Finescrolling realisiert, man kann mit dem bitblt Befehl vom 32 Pixel Bereich auch je 1-32 Pixel von rechts oder von oben vom Grafikblockspeicher auf den Bildschirm kopieren, aber von links oder von unten habe ich noch nicht hin bekommen.

Der Code dazu:
for sc=0 to 31 <- insgesamt 32 Durchläufe=32 Pixel scrollen
bitblt 33,32,192,168 to 32,32,192,168 <- Scrolling von links nach rechts
for yc=32 to 168 step 32
bitblt feld to 192-sc,yc,sc+1,32
next yc
next sc

das funktioniert gut, aber ist es auch möglich aus den Blockspeicher (hier "feld") von rechts nach links in den Bildschirmspeicher zu kopieren? Von links nach rechts ist es ja möglich z.B. nur eine Spalte zu kopieren, also von einem 32x32 Pixel großem Block per bitblt feld to 0,0,1,32 kopiert die erste Spalte von links auf den Bildschirm, aber ist es auch möglich z.B. nur die 32. Spalte des Blocks zu kopieren und falls ja, wie? Bisher habe ich es mit einem Trick hin bekommen, indem ich den ganzen 32x32 Pixel Block in den Statusbereich des Bildschirms (wo z.B. Score, Level angezeigt werden) kopiere und von dort dann halt z.B. die 32. Spalte in den Spielfeldbereich des Bildschirms, aber das sieht natürlich doof aus, wenn da immer im Statusbereich Grafikblöcke durchlaufen.

Vielleicht hat einer einer eine Idee?

Ich verstehe jetzt nicht genau was das Problem ist. Du kannst Sachen ja auch ausserhalb des sichtbaren Bildschirmes blitten und zurück holen. Habe ich beim Scrolling von Endless Summer Surfing so gemacht und in anderen Projekten auch horizontal. Natürlich kannst Du auch Objekte (Sprites, ganzen Hintergrund, etc.) auch als Datei dem Programm hinzufügen.

LG

Chris
Atari Falcon060