Zeichensatz ändern TurboBasic XL Beispiellisting?


Zeichensatz ändern TurboBasic XL Beispiellisting?

von donnerkuh » Mi 30. Apr 2014, 20:50
Guten Abend. Ich nutze die Zeit wo meine Frau GZSZ schaut zum Programmieren :o und versuche gerade dafür alle Wissensquellen anzuzapfen. Einige Dinge wiederholen sich ja bei der Spieleprogrammierung ständig, soweit ich mich an damals erinnere. Eine Sache ist das umformen von Zeichen aus dem Zeichensatz, um diese zum Aufbau eines Hintergrunds zu nutzen. Ich habe es bisher nicht geschafft, hierfür ein Beispiellisting zu finden. Kennt/Hat jemand so eins (am besten mit REM-Anmerkungen ohne ende).

Wie kopiere ich die Zeichen in den Ram? Wie entscheide ich, welches Zeichen ich umforme, und wie bestimme ich die neue "Bauform"? Das Bild kann man dann ja sicher über Read/Data/Print-Schleifen aufbauen (?). Wieviel Farben kann ich dann nutzen (ok, das hängt dann sicher vom Grafikmodus ab, finde ich dann schon selbst raus :D ).

Meine Absicht ist nicht, dass andere mir mein Problem fertig programmieren, allerdings wären so ein paar Beispiellistings, die irgendwo im Internet rumschweben und für Routineteile eines Programms als Vorbild dienen super hilfreich, gerade beim Einstieg.

Ein Tip für einen guten Link kann auch schon helfen.

Re: Zeichensatz ändern TurboBasic XL Beispiellisting?

von Bunsen » Do 1. Mai 2014, 17:29
Mir fällt da auf Anhieb das Game Designer's Kit von Kemal Eczan ein. Gab es als Heft mit Disketten. Keine Ahnung, ob man es leicht im Internet findet ... Auf jeden Fall hat er Sachen wie Zeichensatzumdefinierung, PM-Grafik und Veränderung der Display List ganz gut beschrieben und erklärt.

Re: Zeichensatz ändern TurboBasic XL Beispiellisting?

von Irgendwer » Do 1. Mai 2014, 20:36
donnerkuh hat geschrieben:Ein Tip für einen guten Link kann auch schon helfen.


Ich empfehle dir das Buch: http://www.abbuc.de/abbuc/shop/literatur/trickkiste
Auf Seite 62 wird auf Deine Zeichensatzfragen eingegangen - zwar für Basic, gilt aber auch für Turbo-Basic.

Wenn Du aber einfach 'so' ein Beispiel (mit engl. Erklärung) möchtest:
http://www.newbreedsoftware.com/atari/n ... /minidash/

Dreh- und Angelpunkt ist Register 756. Dort wird die Speicherseite angegeben, auf welcher der aktuelle Zeichensatz zu finden ist. Achtung! Zeichensätze dürfen nur auf 1k Grenzen beginnen, daher muß der Wert in 756 immer glatt durch 4 teilbar sein.

Grüße
Irgendwer

Re: Zeichensatz ändern TurboBasic XL Beispiellisting?

von donnerkuh » Do 1. Mai 2014, 20:51
Danke für die Quellen, jetzt kann es nur noch an mir selbst scheitern. Der Gamedesigner's Workshop ist schon ne gute Sache, da auch noch alles verständlich erklärt wird. Ich kann dann so richtig in die Probierphase übergehen. :D:D:D

Re: Zeichensatz ändern TurboBasic XL Beispiellisting?

von Bunsen » Do 1. Mai 2014, 21:26
Ah, gut, hast du ihn gefunden?

Re: Zeichensatz ändern TurboBasic XL Beispiellisting?

von pps » Fr 2. Mai 2014, 08:50
Einen Zeichensatz kann man in Turbobasic einfach mittels BLOAD laden. Allerdings muss dafür die Datei etwas verändert werden. Am Anfang muss der binär header davor. Die Arbeit lohnt sich aber, da das Laden schneller geht, als über GET und eine Schleife. Ausserdem ist der Font so auch gleich da im Speicher, wo man ihn haben möchte.
Dann nur noch den geladenen Zeichensatz aktivieren mittels POKE und alles ist gut.

Re: Zeichensatz ändern TurboBasic XL Beispiellisting?

von atarixle » Fr 2. Mai 2014, 12:56
Dann lädt man ihn doch lieber mit BGET ...

Code: Alles auswählen
10 OPEN #%1,4,%0,"D:FONT.FNT"
20 BGET #%1,152*256,1024:REM Der Atari-Zeichensatz ist immer 1024 Bytes groß .. in diesem Falle lade ich ihn einfach ab Adresse 38912 (152*256)
30 CLOSE #%1
40 POKE 756,152:REM Da wir den Zeichensatz an 152*256 geladen haben, kann man ihn nun mit diesem Befehl einschalten.


Man sollte einen Zeichensatz eigentlich in einem vom Betriebssystem genannten freien Speicherbereich laden und diesen Speicher dann schützen. Allerdings bringt das einen nur durcheinander. Die freie Adresse, die das Betriebssystem ausspuckt, ist unter Turbo-BASIC sowieso immer 152*256.

Re: Zeichensatz ändern TurboBasic XL Beispiellisting?

von donnerkuh » Fr 2. Mai 2014, 22:45
Alles super bis hierhin. Ich generiere gerade eine Welt über einen angepassten Zeichensatz im Grafikmodus 2. Eine Frage hätte ich aber noch: Sind die Farben der Zeichen dann fest definiert, oder kann ich die 4 Farben aus einem größeren Pool auswählen und noch nach eigenen Wünschen anpassen ? Habe da nichts gefunden, aber da kann ich doch sicher was "zurechtPOKEn"?

Re: Zeichensatz ändern TurboBasic XL Beispiellisting?

von pps » Sa 3. Mai 2014, 11:22
donnerkuh hat geschrieben:Alles super bis hierhin. Ich generiere gerade eine Welt über einen angepassten Zeichensatz im Grafikmodus 2. Eine Frage hätte ich aber noch: Sind die Farben der Zeichen dann fest definiert, oder kann ich die 4 Farben aus einem größeren Pool auswählen und noch nach eigenen Wünschen anpassen ? Habe da nichts gefunden, aber da kann ich doch sicher was "zurechtPOKEn"?

Wenn ich das so lese, kommt mir eine Frage in den Sinn:
Kennst Du schon das ATARI Profibuch? Das ist genau die Lektüre, die man benötigt, wenn man in die Tiefen unseres kleinen Rechners tauchen möchte. Das Standardwerk für uns Deutsch Sprechende. Eine pdf Ausgabe hat der ABBUC uns 2011 beschert: http://www.abbuc.de/news-feeds-component/245-profibuch-2011

Nun zu Deiner Frage:
Du kannst jeder der Farben in GR.2 natürlich eine gewünschte Farbe geben. 128 Stufen hast Du dabei zur Auswahl (nur jede 2. der 256 Abstufungen machen hier eine neue Farbe). Die passenden Register sind dabei (dezimal) 708-712, wobei 712 der Hintergrund ist und 711 bei GR.1, 2, 12 oder 13 die dort erreichbare 5. Farbe ist (Buchstaben invers klein).

708, 709 und 710 sind z.B. bei GR.15 für die Farben zuständig. 711 gibt es dort nicht.

Bei GR.0 und Gr.8 ist 712 der äußere Rand und über 710 und 709 regelt man Helligkeit und Grundfarbe des Zeichenbereiches.

Re: Zeichensatz ändern TurboBasic XL Beispiellisting?

von Bunsen » Sa 3. Mai 2014, 12:09
Eine Weltkarte mit einem umdefinierten Zeichensatz zu malen finde ich umständlich.
Ich würde die Pixel einzeln mit Plot und Drawto (in Turbo Basic gibt's noch weitere nette Grafikbefehle wie Circle und Fill) setzen. In Graphics 10 hast du dafür 9 Farben zur Verfügung. Nachteil: Player können auf der Karte nicht mehr herumfahren. Da böte sich dann ein umdefiniertes Zeichen an, dass in TB bequem mit dem TEXT-Befehl bewegt werden könnte (flackert allerdings ein bisschen).

Re: Zeichensatz ändern TurboBasic XL Beispiellisting?

von synthpopalooza » Fr 11. Jul 2014, 19:38
Some other tricks:

If you want to do text in Hi-res graphics, try this:

Go to Graphics 15 (or 15+16), POKE 87,8 ... then use the TEXT command

The text is printed up using the Antic 4 setup ... 4 colors per character using bit pairs!

This same trick will also work in the GTIA modes too. Register 87 fools the Atari into thinking it's in a different Graphics mode.


And to get real fancy, you can poke into the GTIA register to enable the GTIA in text modes .. 64 for mode 9, 128 for mode 10, and 192 for mode 11.

If you do this in Graphics 0 you get 16 colors per character in a 2x8 grid

If you do this in Graphics 1 and 2 you get a 4x8 grid like in Antic 4, 3 to 4 colors per grid out of 7 to 10 colors.

If you do this in Graphics 13 you get a low resolution GTIA text mode with 14 colors per character, and some colors will be different when you inverse the character.