Magic Disk 64

home to index to html: MD8903-TIPS_+_TRICKS-2.1.html
Anhand der Briefe, die wir täglich von unseren Lesern
bekommen, stellen wir manchmal Probleme fest, die bei
verschiedenen Lesern gleichermaßen  auftreten.  Eines
dieser Probleme ist: "Wie kann ich erstellte Zeichen-
sätze in eigene Programme einbauen?"                 
Dieses Problem wollen wir in dieser Ausgabe  ausführ-
lich behandeln.                                      
Grundsätzlich gibt es zwei Arten  von  Zeichensätzen:
Einfarbige (das sind die  normalen  Zeichensätze  mit
einer Zeichenfarbe und einer Hintergrundfarbe,  wobei
man die Zeichenfarbe  über  Steuerzeichen  einstellen
kann) und Multicolorzeichensätze. Während bei einfar-
bigen Zeichen jedes Zeichen nur eine Vorder- und eine
Hintergrundfarbe annehmen kann, lassen sich  bei  den
Multicolorzeichen immer vier Farben pro Zeichen  pro-
grammieren (drei Zeichenfarben und eine  Hintergrund-
farbe). Die Hintergrundfarbe ist  bei  allen  Zeichen
gleich - es ist die Farbe, die sich mit POKE 53281,xx
einstellen läßt, also die  normale  Bildschirmhinter-
grundfarbe.                                          
Zunächst wollen wir erklären,  wie  man  Zeichensätze
überhaupt einladen und aktivieren kann.              
Der Normale Commodore-Zeichensatz  befindet  sich  im
ROM und kann dort nicht verändert werden. Wir  müssen
uns also einen anderen Platz für  unsere  Aktivitäten
suchen; irgendwo im RAM. Dabei müssen  wir  beachten,
daß der Zeichensatz nicht mit dem Basicprogramm  kol-
lidiert - ein irreparabler Datensalat wäre die fatale
Folge!                                               
Die niedrigste Stelle, an der  sich  ein  Zeichensatz
befinden kann, ist $2000  oder  dezimal  8192.  Dahin
wollen wir unseren Zeichensatz auch laden.  Wie  geht
das?                                                 
Nun, Leser der "ersten Stunde", d.h. Leser der aller-
ersten Magic Disk-Ausgabe vom Dezember 1987  erinnern
sich vielleicht noch an ein Programm  mit  dem  Namen
"UNI-LOAD/SAVE",  das  wir  damals  veröffentlichten.
Keine Angst wenn Sie diese  Ausgabe  nicht  besitzen,
das Programm befindet sich auch in dieser Ausgabe.   
UNI-LOAD/SAVE ist ein Programm, mit dem man bestimmte
Speicherbereiche abSAVEn kann. Außerdem kann man  be-
reits  abgespeicherte  Programme  an  ganz  bestimmte
Stellen im Speicher laden. Dazu  laden  Sie  zunächst
das Ladeprogramm, und zwar nicht aus  dem  Game-Menü,
sondern "von Hand":                                  
LOAD"UNI-LOAD/SAVE",8,1                              
Nach dem Laden tippen Sie unbedingt NEW ein. Und  zum
Schluß folgt noch ein SYS850, um das Programm  einzu-
schalten. Sie haben jetzt neben  den  normalen  LOAD-
und SAVE-Funktionen, die nach  wie  vor  wie  gewohnt
funktionieren die erweiterten Funktionen zur Hand:   
LOAD"NAME",8,1,Startadresse                          
SAVE"NAME",8,1,Startadresse,Endadresse               
Für Start- und  Endadresse  setzen  Sie  jeweils  die
erste und letzte Adresse  des  abzusavenden  Bereichs
ein; beim Laden nur die Startadresse, also wohin  das
Programm geladen werden soll.                        
Besitzer eines Commodore 128 im 128er-Modus haben  es
hier übrigens viel leichter. Genau  diese  Funktionen
übernehmen da nämlich die Befehle BLOAD und BSAVE.   
Dies sei aber nur am  Rande  bemerkt.  Im  64er-Modus
stehen leider auch beim C128 diese Befehle nicht  zur
Verfügung und man  muß  sich  mit  der  beschriebenen
Methode begnügen.                                    
Wollen wir z.B. einen Zeichensatz nach 8192  (=$2000)
laden, so geben wir ein:                             
LOAD"ZEICHENSATZ",8,1,8192                           
Nun müssen  wir  noch  den  Basic-Anfang  hochsetzen,
damit ein Basicprogramm nicht den geladenen  Zeichen-
satz überschreibt. Den  Basicanfang  legen  wir  nach
$3000 oder dezimal 12288. So haben wir bei 8192 sogar
Platz für zwei Zeichensätze:                         
POKE43,1:POKE44,48:POKE12288,0:NEW                   
Jetzt können wir ein Basicprogramm schreiben, daß den
Zeichensatz garantiert nicht mehr "belästigt".       
So weit so gut. Von "Hand" geht das alles  sehr  ein-
fach. Wollen wir aber diese Schritte  in  einem  Pro-
gramm zusammenfassen, so stoßen wir  auf  große  Pro-
bleme: Erstens wird nach einem im Programm ausgeführ-
ten LOAD-Befehl anschließend ein RUN  ausgeführt  und
zweitens wird unser Programm spätestens nach den NEW-
Befehl gelöscht.                                     
Man bedient sich deswegen eines Tricks. Ein  Programm
schreibt die oben angegebene Befehlsfolge als  Print-
text auf den Bildschirm. Dann wird der Tastaturpuffer
mit einigen CHR$(13) gefüllt, was  soviel  heißt  wie
RETURN. Wenn dann das Programm  beendet  wird,  führt
der Computer nun  im  Direktmodus  diese  geprinteten
Zeilen aus und erledigt die Arbeit, die in einem Pro-
gramm nicht möglich wäre.                            
Zugegeben, das ganze klingt nicht eben  einfach.  Wir
haben deswegen für  Sie  ein  kleines  "Ladeprogramm"
geschrieben, daß Sie unter dem Namen "LADER" von  der
Rückseite der Magic Disk laden können. Wenn Sie  die-
ses Programm vor Ihre eigenen Programme hängen, haben
Sie alle Probleme beseitigt.                         
Das Programm "LADER" lädt zunächst einen  Zeichensatz
"ZEICHENSATZ" und danach Ihr  Basicprogramm  mit  dem
Namen "HAUPTPROGRAMM". Dieses  wird  dann  durch  RUN
gestartet. Falls Ihnen die  Namen  "ZEICHENSATZ"  und
"HAUPTPROGRAMM" nicht gefallen,  so  können  Sie  sie
natürlich ändern, und zwar in den ersten beiden  Pro-
grammzeilen vom "LADER".  Setzen  Sie  einfach  Namen
Ihrer Wahl ein. Natürlich müssen diese entsprechenden
Programmnamen sich auch auf der Diskette befinden!   
Schreiben Sie zunächst Ihr Basicprogramm wie  gewohnt
und speichern Sie es dann auf  Diskette  unter  einem
beliebigen Namen ab. Nun laden Sie  "LADER"  von  der
Magic Disk, geben LIST ein und verbessern  gegebenen-
falls die  Namen  "ZEICHENSATZ"  und  "HAUPTPROGRAMM"
durch die von Ihnen gewählten  Namen.  Nun  speichern
Sie den LADER wieder  auf  Diskete  ab.  Zum  Starten
Ihres Programms starten Sie künftig nur noch das Pro-
gramm "LADER".                                       
Nun aber schnell zurück zum Zeichensatzproblem.      
Den Zeichensatz haben Sie nun geladen,  er  steht  ab
Speicherzelle 8192. Um ihn einzuschalten,  geben  Sie
folgenden Befehl ein:                                
POKE53272,25                                         
Haben Sie noch einen  zweiten  Zeichensatz  ab  $2800
(dez 10240) geladen, so können  Sie  diesen  entweder
durch:                                               
POKE53272,27                                         
aktivieren oder einfacher durch  Drücken  der  SHIFT-
und COMMODORE-Taste. Der  gleiche  Vorgang  also  wie
beim Umschalten von Grafik- auf  Kleinschriftzeichen-
satz im normalen Betrieb.                            
Den normalen Zeichensatz erreichen Sie übrigens durch
POKE53272,21.                                        
Ein durch POKE53272,25 oder POKE53272,27  eingeschal-
teter Zeichensatz ist zunächst  einfarbig,  d.h.  nur
eine Farbe pro Zeichen ist möglich. Jetzt gibt es oft
das Problem, mehrfarbige Zeichen  darzustellen.  Aber
auch hier gibt es wieder zwei Möglichkeiten:         
Erste Möglichkeit: Man kann einen Zeichensatz erstel-
len, der nur aus 64 Zeichen besteht. Diese haben dann
die Bildschirmcodes 0 bis 63. Diese Zeichen kann  man
dann auf  vier  verschiedenen  Hintergrundfarben  er-
scheinen lassen. Normalerweise ist die  Hintergrurnd-
farbe ja über den ganzen Bildschirm gleich.          
Diese vier Hintergrundfarben erreichen Sie durch:    
POKE 53265,PEEK (53265) OR 2↑6                       
Vor diesem Befehl löschen Sie  bitte  den  Bildschirm
mit SHIFT HOME und setzen den  Cursor  einige  Zeilen
nach unten (durch  Drücken  von  RETURN  oder  CURSOR
DOWN). Nun tippen Sie noch folgende Zeile:           
FOR I=0 TO 255 : POKE I+1024,I : NEXT                
Es erscheinen nun alle  255  Zeichen  auf  dem  Bild-
schirm. Nun stellen Sie mit dem  beschriebenen  POKE-
Befehl die Betriebsart mit vier Hintergründen ein.   
Die Wirkung brauche ich Ihnen nicht  zu  beschreiben,
da sie eindeutig zu sehen ist. Die  Hintergrundfarben
können Sie nun durch bePOKEn der Speicherzellen 53281
bis 53284 verändern. Einsetzen können Sie Werte von 0
bis 15.                                              
Zweite Möglichkeit: Man kann neben den  vier  Hinter-
grundfarben auch Zeichen erscheinen lassen,  die  aus
vier Farben  bestehen.  Bei  der  eben  beschriebenen
Methode hatte ja jedes Zeichen wieder nur eine  Farbe
und eine Hintergrundfarbe. Mit dem  Programm  "MULTI-
CHANGE" aus Ausgabe 12/88 können Sie solche  Zeichen-
sätze entwerfen.                                     
Zum Einschalten eines  solchen  Zeichensatzes  -  das
vorherige Laden ist natürlich auch hier vorausgesetzt
- geben Sie folgenden Befehl ein:                    
POKE 53270,PEEK (53270) OR 2↑4                       
...und schon sind die Zeichen echt vierfarbig. Zurück
zu einfarbigen Zeichen gelangen Sie durch:           
POKE 53270,200                                       
Die vier Farben können Sie genauso einstellen wie    
schon bei der ersten Möglichkeit beschrieben: In den 
Speicherzellen 53281 bis 53284.                      
Wir wünschen Ihnen viel Spaß beim Experimentieren mit
Zeichensätzen. Zum Test befindet sich auf  der  Rück-
seite der Magic Disk außerdem noch  ein  Zeichensatz,
damit Sie gleich "loslegen"  können.  Und  zu  Demon-
strationszwecken dürfen Sie gleich  einmal  das  Pro-
gramm "LADER" starten.                               
Valid HTML 4.0 Transitional Valid CSS!