|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
moonray
Anmeldungsdatum: 13.10.2007 Beiträge: 3
|
Verfasst am: 13.10.2007, 15:11 Titel: eigene Grafikzeichen in QBasic definieren - wie? |
|
|
Hi zusammen.
Wie kann ich in QBasic 1.1 eigene 8x8 Zeichen definieren, deren Bitmuster ich in DATA-Zeilen ablegen möchte oder in einer BMP? Will sie in Screen 7 verwenden. Kann ich den Zeichenvorrat diverser Grakas ändern oder nicht? Das Betriebssystem realisiert sowas ja auch über die Codetabellen.
Habe z.Z. Windows 98SE, xp und DOS-Modus ab 6.22. Möchte ein altes KC87/85/4/Z1013 Spiel "TATUM" für den PC adaptieren. PUT und GET würde ich ungern verwenden wg. Programmieraufwand. Möchte auch nicht unbedingt auf BLITZBASIC umsteigen, nur wenn gar nix anderes geht.
P.S. Es hätte oben nur QBasic heißen dürfen. 1.1 ist wohl QuickBasic, bin da missverstanden worden. _________________ Sprechen Sie BASIC?
Zuletzt bearbeitet von moonray am 15.10.2007, 22:56, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 13.10.2007, 16:13 Titel: |
|
|
So geht's mit 16-Zeilen-Fonts... mit 8 Zeilen hab ich sowas nie getestet, aber es sollte ähnlich gehen (Weniger DATA-Blöcke?)
Code: |
'$INCLUDE: 'qb.bi'
DIM Reg AS RegTypeX
DIM Feld AS STRING * 16
CLS
PRINT "Original ASCII-Zeichen 200: ";
COLOR 14: PRINT STRING$(50, 200)
COLOR 7
PRINT
PRINT "Bitte Taste drcken"
SLEEP
PRINT
PRINT "ASCII-Zeichen 200 nach der Umstellung..."
PRINT
PRINT "Bitte Taste drcken"
'---> Daten fr ein Zeichen auslesen (Jedes Grafikzeichen enth„lt 16 Zeilen)
DEF SEG = VARSEG(Feld)
FOR I = 0 TO 15
READ Wert
POKE VARPTR(Feld) + I, Wert
NEXT
DEF SEG
Reg.ax = &H1100
Reg.bx = &H1000
Reg.cx = 1
Reg.dx = 200 '---> ASCII - Wert des zu setzenden Zeichens
Reg.es = VARSEG(Feld)
Reg.bp = VARPTR(Feld)
INTERRUPTX &H10, Reg, Reg
SLEEP
'---> Reset des Video-BIOS
Reg.ax = &H3
INTERRUPTX &H10, Reg, Reg
PRINT "nach Reset: "; STRING$(50, 200);
END
'---> Daten fr ein Zeichen mit 16 Zeilen
'---> als Beispiel ein (c) - Zeichen
DATA 0,0,24,36,90,165,161,161,165,90,36,24,0,0,0,0
|
Etwas komplexer, aber dafür komfortabler geht's mit selbst erstellten font-dateien, da ich das folgende beispiel allerdings nicht selbst geschrieben haben, kann ich dir auch nicht erklären, wie so eine FNT-Datei aussieht.. dürfte aber den DATA-Zeilen ähnlich sein:
http://saga-games.ath.cx/stuff/systemfont.zip
Achja, ein Hinweis noch: Das Ganze funktioniert natürlich unter Windows nur im Vollbildmodus. Im Fenstermodus wird eine Windows-Schrift verwendet... Aber da Grafikscreens wie der SCREEN 7 eh nicht im Fenstermodus laufen, wird das dich nicht kümmern _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2509 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
|
moonray
Anmeldungsdatum: 13.10.2007 Beiträge: 3
|
Verfasst am: 15.10.2007, 22:21 Titel: |
|
|
P-E-R-F-E-K-T. Klar, man muss nur die richtige Methode kennen, der Rest ist dann ein Kinderspiel. Sobald ich wieder am Rechner bin (hab morgen viel draußen, also offline zu tun) nehme ich mir das mal zur Brust. Ich kann Euch gar nicht genug danken, zumal es so schnell ging.
Am KC 85 habe ich heute früh bis Nachmittag mal die KC 87/Z1013-Fonts in ein Programm vom KC87 eingebaut - elende Tipperei. Aber es hat sich grafisch gelohnt, kann jetzt eine geile Bordell-Simulation zocken, fast 20 Jahre alt. Es gibt auch eine Methode, direkt Hex-Zahlen in DATA zu verwenden. Der KC muß dann nur mehr rechnen, er braucht so 30 sek für 128 Grafikzeichen.
möchte Euch den Kern nicht vorenthalten:
DATA FC,E3,81,20,10,0F,00,08,15,47,11...
READ B$:REM B$-weil es Bytes sind, A=Adresse
H=ASC(LEFT$(B$,1))-48:IF H>9 THEN H=H-7
selbiges für L= mit RIGHT$...
POKE A,H*16+L
Eigentlich war sie von Prof. Dr. Horst Voelz für kleinere MCs vorgesehen.
In QBasic geht das mit VAL("&H"+B$) natürlich viel eleganter.
>http://saga-games.ath.cx/stuff/systemfont.zip
dieses Beispiel gefällt mir am besten, weil es direkt für QBasic geschrieben wurde. Ich werde es wahrscheinlich mit der DATA-Zeilen-Lösung kombinieren. Die Codetabelle ist direkt ein Binärfile, als Hex-Dump ähnlich den DATAs.
Schaut mal in meinen Screenshots und dem Daunlaud auf gottjoker.de oder gerritsoft.de was ich so in TP7.0 vergoren habe...
-------------------------
...der Programmierer ist ein Tool, das Kaffee in Code konvertiert...
Zuletzt bearbeitet von moonray am 15.10.2007, 22:57, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
|
csde_rats
Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 15.10.2007, 22:43 Titel: |
|
|
moonray hat Folgendes geschrieben: | ...der Programmierer ist ein Tool, das Kaffee in Code konvertiert... |
Das ist ganz stark Baujahrsabhängig:
Bei der neuen Generation (zu der ich auch zähle) wird mit einer Effizienz von 99,5 % Butterkekse + Cola Light in einwandfreien FreeBasic Code umgewandelt.
(0,5 % werden als Wärme abgeführt, denn wo sich Zahnräder drehen ) _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
|
moonray
Anmeldungsdatum: 13.10.2007 Beiträge: 3
|
Verfasst am: 15.10.2007, 22:49 Titel: |
|
|
Naja, der Spruch ist halt original genau so. Ich konvertiere z.B. Vita-Cola-Zuckerfrei + Schnittchen in TP7.0-Quellcode + Urin. _________________ Sprechen Sie BASIC? |
|
Nach oben |
|
|
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 16.10.2007, 00:31 Titel: |
|
|
csde_rats hat Folgendes geschrieben: | moonray hat Folgendes geschrieben: | ...der Programmierer ist ein Tool, das Kaffee in Code konvertiert... |
Das ist ganz stark Baujahrsabhängig:
Bei der neuen Generation (zu der ich auch zähle) wird mit einer Effizienz von 99,5 % Butterkekse + Cola Light in einwandfreien FreeBasic Code umgewandelt.
(0,5 % werden als Wärme abgeführt, denn wo sich Zahnräder drehen ) |
PMedia Build 1991.02.26
Input:
60% Wasser, an besonderen Tagen mit Zuckerzusatz, und 40% Süßes / Essbares.
Output:
Wenig, aber normale Ausscheidung, einwandfreier, jedoch zu 80% unfertiger Quelltext in den Sprachen PHP, XProfan, QBasic, FreeBASIC. Wenn doch fertig, dann gespickt mit Sicherheitslücken etc. Weiterer Output ist dummes Geschwätz und scheinbar fachliches, defakto aber nicht vorhandenes Wissen. |
|
Nach oben |
|
|
Eisbaer
Anmeldungsdatum: 16.10.2004 Beiträge: 354 Wohnort: Deutschland,Bayern
|
Verfasst am: 23.01.2008, 20:28 Titel: The Game |
|
|
moonray hat Folgendes geschrieben: |
Am KC 85 habe ich heute früh bis Nachmittag mal die KC 87/Z1013-Fonts in ein Programm vom KC87 eingebaut - elende Tipperei. Aber es hat sich grafisch gelohnt, kann jetzt eine geile Bordell-Simulation zocken, fast 20 Jahre alt. Es gibt auch eine Methode, direkt Hex-Zahlen in DATA zu verwenden. Der KC muß dann nur mehr rechnen, er braucht so 30 sek für 128 Grafikzeichen.
|
Klingt ja nach Richtig altem Game, wie heißt das Spiel denn ?
Kannste das mal mailen ?
Grüße
Eisbaer _________________ Eigene Webseite:
http://www.eisbaer-studios.de |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|