Frage deutsch
~~~~~~~~~~~~~~
Wie kann ich die ASCII-Sonderzeichen 0-31 auf den Bildschirm ausgeben?
 

Question English
~~~~~~~~~~~~~~
How can I print the special ASCII characters 0-31 on the screen?
 

Antwort
~~~~~~~
[ von Pawel Kazakow
http://www.pkworld.de , 1999 ]
 
Da diese Befehle zum Teil Steuerzeichen sind, ist die Bildschirmausgabe mit PRINT oder WRITE nicht möglich.
 
Will man z.B. das Zeichen mit dem ASCII-Code 007 mit PRINT CHR$(7) auf den Bildschirm ausgeben, so ertönt nur ein kurzes Piepsen, da dieses ASCII-Zeichen das Steuerzeichen "Bell" darstellt (die "Glocke" vom guten alten Fernschreiber) . Eine Auflistung der ASCII-Steuerzeichen findest Du unter ->
ASCII im LEXIKON.
 
Abhilfe schaffen meine Subs EPRINT und EPRINT2. Sie verwenden POKE, um die Zeichen direkt in den Grafikpuffer zu Schreiben.
 
'****************************************************************
' EPRINT.BAS = Anzeige von ASCII-Steuerzeichen auf dem Bildschirm
' ==========
' (c) Pawel, 1999
'****************************************************************
DECLARE SUB EPRINT (xp$, x, y, fc, hc, b)
DECLARE SUB EPRINT2 (zch, x, y, fc, hc, b)
'
EPRINT "Text", x, y, VordergrundFarbe, HGFarbe, Blinkend
EPRINT2 ASCII, x, y, VordergrundFarbe, HGFarbe, Blinkend
' Blinkend ist hierbei eine boolsche Zahl (0/1)
' EPRINT2 zeigt nur ein einzelnes Zeichen, EPRINT eine
' ganze Zeichenkette.
CLS
'*** Demonstration . . . ***
EPRINT "*** EPRINT und EPRINT2 ***", 21, 3, 5, 0, 0
FOR i = 1 TO 31
EPRINT2 i, 22 + i, 5, i, 1, 0
NEXT i
'*** ... fertig ***
'
SUB EPRINT (xp$, x, y, fc, hc, b)
IF xp$ = "" THEN GOTO endsub
xpos = 160 * (y - 1) + (x - 2) * 2 'Rechne Koordinaten um
c = fc + (hc * 16) + (b * 128) 'Berechne Farbcode
DEF SEG = &HB800
FOR i = 1 TO LEN(xp$)
xp = ASC(MID$(xp$, i, 1))
POKE xpos + i * 2, xp
POKE xpos + i * 2 + 1, c
NEXT i
endsub:
END SUB
'
SUB EPRINT2 (zch, x, y, fc, hc, b)
IF zch <= 0 THEN GOTO endsub2
xpos = 160 * (y - 1) + (x - 2) * 2
c = fc + (hc * 16) + (b * 128)
DEF SEG = &HB800
POKE xpos + i * 2, zch
POKE xpos + i * 2 + 1, c
endsub2:
END SUB
 
Das obige Programm steht im Verzeichnis Progs\ zur Verfügung sowie online unter www.antonis.de/faq/progs/eprint.bas .

[ The QBasic-MonsterFAQ --- Start Page: www.antonis.de/faq ]