C 64
Tips & Tricks
5/84, S. 86-87

Tips und Tricks für Commodore 64

Bei diesen Tips geht es hauptsächlich um eine schöne optische Aufbereitung von Text auf dem Bildschirm.

Wer schon mal ein Programm geschrieben hat, legt sicher auch Wert auf sein Copyright. Dieses Programm lenkt die Aufmerksamkeit des Betrachters auf den Copyright-Vermerk!

Nun näheres zur Grafik: Der Computer umrahmt das Geschriebene fünf mal, so daß auf dem Bildschirm später — um das Geschriebene herum — ein Rahmen entsteht.
Nun einige Erklärungen zum Programm:
Zeile 10:
Rahmen- und Hintergrundfarbe einstellen
Zeile 90:
Bildschirm löschen
Zeile 10000:
POKE I,81 bedeutet, daß auf dem Bildschirm das Zeichen mit dem Bildschirmcode 81 (Bällchen) ausgegeben wird. Dieses Zeichen kann beliebig verändert werden (siehe im Handbuch Seite 133).
Zeile 10000:
POKE I+54272,2, wobei die 2 die Farbe angibt.
Zeile 20000:
PRINT"⟨BLU⟩⟨HOME⟩⟨2*CRSR DOWN⟨⟩6*CRSR RIGHT⟩...."
Zeile 20010:
PRINT "⟨7*CRSR RIGHT⟩⟨CRSR DOWN⟩...."
Zeile 20020/30/40:
PRINT "⟨7*CRSR RIGHT⟩....”
Zeile 20050:
siehe Zeile 20010.

10 poke53280,2:poke53281,14
90 print"{clr}"
100 a1=983:b1=1024
110 a2=1024:b2=2064
120 a3=2063:b3=2023
130 a4=2023:b4=983
200 for j=1 to 5
210 a1=a1+41:b1=b1+39
220 for i=a1 to b1:gosub 10000:nexti
230 a2=a2+39:b2=b2-41
240 for i=a2 to b2 step 40:gosub 10000:next i
250 a3=a3-41:b3=b3-39
260 for i=a3 to b3 step -1:gosub 10000:next i
270 a4=a4-39:b4=b4+41
280 for i=a4 to b4 step -40:gosub 10000:next i
900 next j
910 goto 20000
10000 poke i,81:poke i+54272,2
10010 return
20000 print"{blu}{home}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}{rght}copyright by:"
20010 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{down}volker muecke"
20020 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}im hag 32"
20030 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}5180 eschweiler
20040 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}tel.:02403/4230
20050 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{down}november 1983
25000 poke 198,0:wait 198,1

Verschiedene POKES

Tastaturfunktionen:
POKE 650,255:
Ab jetzt haben alle Tasten eine REPEAT-Funktion, das heißt Dauerfunktion.
POKE 650,0:
Rücksetzung in den Normalzustand
POKE 650,127:
Dauerfunktion der Cursortasten ausschalten.
POKE 657,128:
Dieser Befehl macht die Umschaltung von der Tastatur her auf Groß- und Kleinschreibung unmöglich.
POKE 788,49:
Dieser Befehl hebt die Wirkung der STOP-Taste auf!
POKE 649,0:
Hierbei gibt der Computer die gedrückten Tasten beziehungsweise deren Zeichen nicht auf dem Bildschirm aus.
POKE 649,10:
Rücksetzung normal:

Weitere POKES:

POKE 40,1: POKE 41,8: POKE 2048,0: NEW (RETURN)
LOAD (RETURN)
Mit Hilfe dieser Befehle, die im Direktmodus eingegeben werden müssen, kann man ein C-64 Programm von einer Kassette in einem, CBM-Computer laden.
POKE 792,34: POKE 793,253: wirkt wie ein RESET beim Drücken der Restore-Taste
PRINT PEEK(43) + PEEK(44)*256: Mit dieser Befehlszeile, erfährt man die aktuelle Startadresse Basic. Wenn man die Startadresse verändern will, so muß man nur die Speicherzellen 43 und 44 ändern.
10 POKE 198,0:WAIT 198,1: Warten auf eine gedrückte Taste.

Verschiedene PEEKS:

PRINT PEEK (203): Gibt an, welche Taste gedrückt wurde und zwar im Charactermodus (siehe Tabelle im Handbuch), wobei 64 bedeutet, daß keine Taste gedrückt wurde.
PRINT PEEK (57): Dieser Befehl zeigt nach einer Programmunterbrechung an, an welcher Zeilennummer das Programm gestoppt wurde.
PRINT PEEK (152): Gibt die Anzahl der geöffneten Dateien bekannt.
PRINT PEEK (182): Dieser Befehl gibt die Anzahl der Zeichenlesefehler aus.

Verschiedenes:

PRINT CHR$ (14): Umschaltung auf Groß- und Kleinschrift
PRINT CHR$ (142): Rücksetzung normal
SYS 65511: Dieser Befehl schließt alle zu diesem Zeitpunkt offenen Files.

Wörter werfen

Das nachfolgende Programm habe ich »Wörter werfen« genannt, Es schreibt zuerst in die erste Zeile den Text (immer nur 1 Zeile) und wirft ihn dann buchstabenweise den »Bildschirm hinunter«, so daß der Text dann im unteren Drittel des Bildschirms ist, der dann wiederum, diesmal aber als Ganzes nach oben wandert.

Dabei kommen verschiedene Farbkombinationen zur Geltung: Zuerst ist der Satz rot, dann blau und im letzten Statdium grün. Dieses Programm eignet sich wegen seiner schönen Trickgrafik sehr gut für Programmbeschreibungen und ähnliches.

Der Text wird ab Zeile 30 in DATAs eingetragen. Die FOR-NEXT-Schleife in Zeile 160 muß auf die Anzahl der DATAs eingestellt sein (siehe Beispiel). Dabei bitte die Dimensionierung in Zeile 30 nicht vergessen! Eingabehilfen (zu Sonderzeichen):
Zeile 100:
A$(8) = "⟨RVS ON⟩ Volker Mücke ⟨RVS OFF⟩"
Zeile l80:
PRINT "⟨CLR⟩⟨RED⟩"...
Zeile 240:
B$="24*⟨CRSR DOWN⟩"
Zeile 250:
PRINT "⟨HOME⟩"..."⟨BLU⟩⟨40*Space⟩⟨2*CRSR UP⟩"
Zeile 260:
PRINT "⟨CLR⟩⟨40*Space⟩"

(Volker Mücke)
1 rem"         copyright by:
2 rem
3 rem"                   volker muecke
4 :
5 :
10 bs=1024:f=55296
20 poke 53280,1:poke53281,1
30 dima$(9):a$(0)="demoprogramm :"
40 a$(1)="das programm wirft die woerter buchsta-"
50 a$(2)="benweise auf den bildschirm."
60 a$(3)="text kann in den zeilen ab 40 eingege-"
70 a$(4)="ben werden.":a$(5)="anzahl der zeilen in zeile 30"
80 a$(6)="dimensionieren !!!
90 a$(7)="c o p y r i g h t   b y:"
100 a$(8)=" {rvon} v o l k e r     m u e c k e {rvof}"
110 a$(9)=" november 1983"
160 forii=0to9:a$=a$(ii)
170 a=int((40-len(a$))/2)
180 print"{clr}{red}"tab(a)a$
190 fori=bs+atobs+a+len(a$)
200 x=peek(i)
210 forn=i+40toi+40*15step40
220 poken,x:poken-bs+f,6:poken-40,32
230 nextn,i
240 b$="{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"
245 fork=16to1step-1
250 print"{home}";left$(b$,k);"{grn}
260 forj=1to2:nextj:print"{clr}                                          "
280 forj=1to3
290 nextj,k,ii
300 goto160

Trick 175

Das folgende Programm habe ich Trick 17 genannt. Es erweist sich besonders beim Gestalten von Anleitungen sehr hilfreich.

Das Programm schreibt die Wörter buchstabenweise auf den Bildschirm, das heißt, der Computer schreibt wie man liest, Buchstabe für Buchstabe und druckt nicht den ganzen Text auf einmal auf den Bildschirm.

Hier aber noch einige Erklärungen zum Umgang mit diesem Programm:

In den Zeilen ab 200, finden Sie in der Variablen AN, die Anzahl der Zeilen wieder, die Sie auf eine Bildschirmseite haben wollen. Sie können diese Variable beliebig verändern, sie sollte aber nicht größer als 10 sein, da sonst der Bildschirm »überläuft«.

In den Zeilen ab 380 definieren Sie die einzelnen Zeichen mit Hilfe von DATAs. Die Anzahl der Datas soll gleich der Summe der Werte für AN sein, das heißt in diesem Fall ist die Summe von AN=10 und wir haben auch 10 DATAs. Wollen Sie eine Leerzeile ausgeben, so können Sie einfach — wie im Programm — zwei Anführungszeichen hintereinander setzen.

Auch alle Cursorzeichen, das heißt ⟨CRSR DOWN⟩...⟨RVS ON⟩ etc. können benutzt werden.

150 printchr$(14):rem" Kleinschrift
160 print"{clr}":rem" Bildschirm loeschen
170 ifs1=1thenk1=0:goto530
180 :
190 :
200 an=7:gosub260:gosub460:gosub490:print"{clr}"
210 an=3:gosub260:gosub460:gosub490:print"{clr}"
220 :
230 :
240 restore:run
250 end
260 fori=1toan:reada$
270 forj=1tolen(a$):b$=mid$(a$,j,1):printb$;:gosub320
280 nextj:print:print:nexti
290 return
300 :
310 rem"{$a0}Pieps-Ton
320 si=54272:fl=si:fh=si+1:tl=si+2:th=si+3:w=si+4:a=si+5:h=si+6:l=si+24
330 pokel,15:pokea,21:pokeh,0:poketh,8:poketl,0:pokefh,14:pokefl,162:pokew,17
340 forsd=1to150:nextsd
350 pokew,0
360 return
370 :
380 rem" Eintragungen in Data's
390 data" V o l k e r   M u e c k e",""
400 data"{$a0}Im Hag 32",""
410 data" 5810 Eschweiler",""
420 data" Tel.:02403/4230"
430 data"{down}{down}{down}{down}{down}{down}{down}Viel Spass wuenscht:","","  (gez.)  Volker Muecke"
440 :
450 rem" Zeischleife
460 fork=1to3000:nextk:return
470 :
480 rem" Gewehrschuss
490 si=54272:fl=si:fh=si+1:tl=si+2:th=si+3:w=si+4:a=si+5:h=si+6:l=si+24
500 forx=15to0step-1
510 pokel,x:pokea,15:pokeh,0:pokefh,40:pokefl,200:pokew,129
520 next
530 pokew,0:pokea,0
540 return
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →