C 64
17 Utilities

17 Super-Utilities für den C64

Wollen Sie Ihre Basic-Programme schneller und kürzer machen? Wollen Sie Betriebssystem oder Zeichensatz Ihres C64 ändern? Dieses Maschinenprogramm löst Ihre Probleme.

Das Programm entstand durch Zusammenfügen der in der praktischen Arbeit am häufigsten gebrauchten Maschinensprache-Routinen zu einem einzigen großen Utility-Paket.

Die beiden Bereiche Optimierung von Basic-Programmen und Zeichen-Definition stehen im Mittelpunkt. Nach ordnungsgemäßem Laden kann man ein Menü mit »sys 49152« aufrufen (Bild 1), in dem alle Unterprogramme mit Namen und SYS-Adresse genannt werden.

Nun zu den Programmen selbst:
Space-Killer (sys 49155): Hinter diesem martialisch anmutenden Aufruf verbirgt sich nichts anderes als eine Maschinen-Routine, welche überflüssige Spaces aus einem Basic-Programm entfernt.

Nach dem »sys 49155«-Aufruf erscheint in der oberen Bildschirmecke ein farbiges Symbol als Versicherung, daß alles in Ordnung ist, denn die Routine kann durchaus bis zu 1/4 Stunde laufen, wenn viele Spaces zu entfernen sind und das Programm entsprechend lang ist.
Space-Expander (sys 49158): Es erscheint auf den ersten Blick befremdend, etwas einzufügen, was man eben erst entfernt hatte. Doch die Aufgabe liegt auf der Hand: zwischen jeden Basic-Befehl ein Space einzufügen, um das Druckbild sauber und ansprechend zu gestalten.
REM-Killer (sys49161): erklärt sich selbst. Erwähnenswert ist die Geschwindigkeit, mit der die Routine läuft. 20 kByte-Programme werden in etwa 10-30 Sekunden »gesäubert«.
Zeilen löschen (sys 49164): Hiermit werden ganze Zeilenbereiche gelöscht. Beispiel: »sys 49164,1000,1999« entfernt alle Basic-Zeilen mit den Nummern von 1000 bis 1999 einschließlich. Mit Druck auf dieRETURN-Taste ist der Befehl schon ausgeführt.
Text suchen (sys 49167,"Suchtext"): Sucht eine Zeichenkette »Suchtext« im Basic-Programm und gibt die gefundenen Zeilennummern aus.
Eine Besonderheit ist das Jokerzeichen »?«: Hier wird jedes Zeichen akzeptiert, es darf allerdings nicht an erster Stelle im Suchtext stehen.
Colon-Maker (sys 49170): Ersetzt jedes Space am Anfang einer Basic-Zeile durch einen Doppelpunkt»:«.
Space-Maker (sys 49173): Ersetzt jeden Doppelpunkt am Anfang einer Basic-Zeile durch ein Space » «. Beide Routinen dienen als Strukturhilfen. Da alle der Zeilennummer unmittelbar folgenden Spaces überlesen werden, muß man erst einen »neutralen« Doppelpunkt setzen, diesen dann später durch ein Space ersetzen.
Package (sys 49179): Hier ist die Notlösung für jeden, der einfach mehr Platz braucht und das Basic-Programm garantiert nicht mehr korrigieren muß. »Package« schmilzt nämlich benachbarte Zeilen zusammen, so daß bei jeder Verschmelzung vier Bytes freiwerden (Ein Null-Byte, Zwei Bytes der Koppeladresse plus Zwei Bytes der Zeilennummer, abzüglich ein Byte für den nun erforderlichen Doppelpunkt als Trennelement). Das braucht seine Zeit, weil einige Aspekte kontrolliert werden müssen, zum Beispiel ob die zu verschmelzende Zeile angesprungen wird, dann muß sie mit ihrer Zeilennummer präsent bleiben, sonst gibt’s Ärger mit dem Interpreter, der sich dann mit »undef’d statement« beschwert. Für die Verschmelzungstiefe gibt es leider eine unnatürliche Grenze: Mehr als 255 Bytes darf eine Zeile nicht lang sein, sonst kann der Interpreter die Zeilen nicht mehr binden und findet hinter einer solchen »Megazeile« keine Zeilennummer mehr.
Um Basic-Programme auf ein Minimum zu komprimieren, empfiehlt sich folgender Weg:

Für spätere Änderungsarbeiten wird man sich natürlich ein »augenfreundliches« Original verwahren, am besten benutzt man von allen Basic-Programmen zwei Versionen: Eine originale zur Dokumentation, Korrektur, Ausdruck und eine komprimierte mit minimalen Platzansprüchen und schneller Ausführung.
CPU-Register ein (sys 49182): Zeigt fortwährend die Register des Mikroprozessors in den beiden oberen Bildschirmzeilen an.
Außerdem werden der IRQ-, NMI- und der BRK-Vektor sowie der Programmcounter angezeigt. Im Status-Register bedeutet »*« ein gesetztes Bit, ».« ein gelöschtes.
CPU-Register aus (sys 49185): Schaltet die Anzeige wieder ab.
Basic-Ende setzen (sys 49188): setzt das Basic-Ende genau hinter das im Speicher befindliche Programm. Normalerweise erledigt das der Interpreter; wenn aber absolut geladen wurde, zum Beispiel in den $c-Block hinein, dann steht der Programm-Ende-Zeiger ebenfalls im $c-Block, und Eingabeversuche werden mit »out of memory«-Fehlermeldungen abgewehrt.
Dump (sys 49191): Gibt alle definierten Variablen unter Angabe des Namens und des aktuellen Inhalts aus.
Mit der Shift-Taste kann die Ausgabe angehalten, mit der Commodore-Taste vorzeitig abgebrochen werden.
ROM kopieren (sys 49194): Kopiert Interpreter- und Kernal-ROM in das darunter liegende RAM. Es gibt zwar viele veröffentlichte Programme zu diesem Thema, doch macht die Geschwindigkeit dieser Stilblüten auf Dauer aggressiv.
Zeichensatz RAM Die letzten vier Routinen befassen sich mit dem Zeichensatz:
(sys 49197): Verlegt den Zeichensatz nach $7000 und den Bildschirm nach $6c00. Die Absicht ist klar: im RAM kann der Zeichensatz leicht verändert werden.
Zeichensatz ändern (sys 49200): Setzt voraus, daß vorher durch »sys 49197« der Zeichensatz verlegt wurde, sonst funktioniert’s nicht. Es wird eine Zeichen-Änderungsroutine aktiviert, die einfach zu bedienen ist. Man fährt einfach mit dem Cursor über das zu ändernde Zeichen, drückt RETURN, und schon guckt man wie durch eine Lupe in die Punkte-Matrix des Zeichens hinein. Auch hier kann man sich wieder frei mit dem Cursor bewegen, natürlich nur innerhalb des Zeichens. Will man einen Punkt löschen, drückt man die Space-Taste, zum Setzen gibt man ein Sternchen »*« ein. RETURN führt wieder in das Menü zurück.
Zeichensatz speichern (sys 49203, "filename", gerätenummer)
Speichert den aktuellen Zeichensatz unter Angabe des Filenamens (der wie bei »SAVE« dem SYS-Befehl in Anführungsstrichen folgen muß), eines Kommas und der Gerätenummer entweder auf der Floppy oder dem Kassettenrecorder ab. Damit nicht jedesmal wieder bei Null begonnen werden muß, kann man einen Zeichensatz durch den Basic-Befehl:
»load "filename", gerätenummer,1«
absolut, das heißt von $7000 bis $7fff laden.
Die verbogenen Basic-Zeigerwerden danach mit »sys 49188« wieder gerade gerichtet.
Zeichensatz ROM (sys 49206): Schaltet den Zeichensatz wieder ins ROM $d000 zurück. Der Bildschirm wird wieder nach $400 verlegt.

Grundsätzliches zur Eingabe

Maschinenprogramme sind extrem empfindlich, was Fehler anbetrifft. Einfache Prüfsummen decken sich ausgleichende Fehler nicht auf. Wird beispielsweise eine »1« und eine »2« vertauscht, so stimmt die Prüfsumme zwar, das Programm ist aber wahrscheinlich nicht lauffähig. Aus diesem Grund habe ich die Prüfsummen gespalten, »pg« für gerade Bytes und »pu« für ungerade. Zwar sind auch jetzt noch Fehlermaskierungen möglich, aber extrem unwahrscheinlich.

Noch eine Unart erregt manches Ärgernis:
Viele Autoren veröffentlichen Basic-Lader, und geben dann nach etwa 4000 harten (das heißt unformatierten) Dezimal-Bytes eine (also eine einzige) Prüfsumme an, so ziemlich weit in den Hunderttausendern, die auf Anhieb nur selten übereinstimmt. Es wollen dann 4000 Bytes überprüft werden! Ich halte es für besser, nach einem kleineren Abschnitt, etwa einer »Page« (256 Bytes) eine Zwischenprüfung zu fahren und bei Unstimmigkeiten sofort mit einem Hinweis zu unterbrechen.

In meinem Programm werden den Datenbytes die Angabe der Seite, dann die gerade und letztlich die ungerade Prüfsumme vorangestellt. Wenn Sie das berücksichtigen, können Sie nach Herzenslust ändern und erweitern, ein Maschinensprachemonitor und Assemblerkenntnisse vorausgesetzt.

Probieren Sie mal einige Routinen aus

Wenn Sie das Programm genauso wie abgebildet im Speicher stehen haben, so können Sie durch »sys 49161« die Eliminierung aller REMs erzielen. Die Routine startet mit der Meldung »20779 Bytes PRG-Laenge« und endet nach 22 Sekunden mit »20019 Bytes PRG-Laenge«. 760 Bytes haben Sie gewonnen oder verloren, wie man’s nimmt.

Doch Vorsicht! Wenn Zeilen mit einem REM beginnen, wird die ganze Zeile entfernt. Sprünge zu dieser Zeile werden nicht berücksichtigt. Wenn das Programm mit der Fehlermeldung »undef’d statement« unterbricht, korrigieren Sie einfach den Sprungbefehl durch die Zeile, welcher der entfernten unmittelbar folgt.

Wenn Sie allerdings schon vorher überblicken, welche Zeilen »fällig« sein werden, können Sie durch zum Beispiel »sys 49167,"2000"« alle Zeilen mit dem Wortlaut "2000" ausfindig machen und korrigieren.

»sys 49155« kommt nach etwa 13 Minuten mit »17828 Bytes PRG-Laenge« zurück. Diese lange Zeit rührt davon her, daß nach jedem eliminiertem Space alle Programmzeilen wieder gekoppelt werden müssen, bei einemG ewinn von 2191 Bytes bedeutet das 2191 mal koppeln, und das Verschieben selbst braucht natürlich auch noch ein paar Millisekunden. Dann sind schnell, ehe man sich versieht, einige Minuten verflossen.

»sys 49179« als Package-Befehl bringt Ihnen nach 9 Minuten weitere 2095 Bytes Speicherplatzgewinn. Nach diesem 3-Stufen-Plan haben Sie insgesamt 5046 Bytes, die für die Funktion des Programms entbehrlich sind, entfernt. Durch den Platzgewinn werden Ihre Programme übrigens schneller, da erstens die Strings mehr Platz haben und seltener aufgeräumt werden müssen und zweitens weniger Zeilenübergänge stattfinden.

Ich möchte nochmals betonen, daß sich derartige »Rumpfpakete« ausschließlich für den RUN-Modus eignen. Listen, Korrigieren und so weiter sollte immer an einem »gesunden« Programm stattfinden.

(Johannes Mockenhaupt / ev)
sys49155: Space-Killer
sys49158: Space-Expander
sys49161: REM-Killer
sys49164: Zeilen löschen
sys49167: Text suchen
sys49170: Colon-Maker
sys49173: Space-Maker
sys49179: Package
sys49182: CPU-Register ein
sys49185: CPU-Register aus
sys49188: BASIC-Ende setzen
sys49191: Variablen dumpen
sys49194: ROM=> RAM
sys49197: Zeichensatz nach $7000
sys49200: Zeichensatz ändern
sys49203: Zeichensatz speichern
sys49206: Zeichensatz, alt
Bild 1: Mit folgendem Text meldet sich das Menü nach »sys 49152«
100 rem   ************************
110 rem   *                      *
120 rem " * Johannes Mockenhaupt *
130 rem   *                      *
140 rem " *  K\ln, August 1984   *
150 rem   *                      *
160 rem   *                      *
170 rem " *  Hilfsroutinen f]r:  *
180 rem   *                      *
190 rem " *    Commodore C'64    *
200 rem   *                      *
210 rem   ************************
220 :
230 print "{clr}Die Daten werden seitenweise
240 print "{down}gepoked und kontrolliert.{down}
250 n=12*2^12:         rem " $c000
260 : for j=0 to 15
270 :    read a$,pg,pu:rem " Pr]fsummen
280 :        print "Seite "a$":";
290 :          for i=0 to 127
300 :             read a,b
310 :                pg=pg-a:pu=pu-b
320 :                poke n,a:poke n+1,b
330 :             n=n+2
340 :          next i
350 :    if pg=0 and pu=0 then  370
360 :       print "{rvon}DATA-Fehler{rvof}!":stop
370 :    print "in Ordnung
380 : next j
390 :
400 print "{clr}Alle Pruefsummen stimmen, durch
410 print "{down}Wahl der Geraetenummer (1 oder 8)
420 print "{down}koennen Sie den $c-Block direkt als
430 print "{down}Maschinen-PRG absolut speichern.
440 print "{down}Keine Eingabe: Ende.
450 input "{down}{down}Geraetenummer: ";gn
460 if gn<>1 and gn<>8 then 480
470 sys 53138 "hilfsrout. exe",gn
480 print "{down}Mit 'sys 49152' bekommen Sie ein Menue.
1000 data c0,12017,12700:rem $c000-c0ff
1010 :
1020 data 76, 57,192, 76, 71,194, 76, 14
1030 data195, 76,210,195, 76, 96,196, 76
1040 data232,196, 76, 97,197, 76,101,197
1050 data 76,148,197, 76,192,199, 76, 66
1060 data201, 76, 48,202, 76, 88,194, 76
1070 data 57,202, 76, 22,203, 76,109,203
1080 data 76, 17,204, 76, 90,207, 76, 26
1090 data207, 32, 14,194,160,  0,169, 94
1100 data162,192,133,251,134,252,177,251
1110 data208, 10,169, 14, 32, 22,231,169
1120 data  8, 76, 22,231, 32,210,255,200
1130 data208,236,230,252,208,232, 83, 89
1140 data 83, 52, 57, 49, 53, 53, 58, 32
1150 data211, 80, 65, 67, 69, 45,203, 73
1160 data 76, 76, 69, 82, 13, 83, 89, 83
1170 data 52, 57, 49, 53, 56, 58, 32,211
1180 data 80, 65, 67, 69, 45,197, 88, 80
1190 data 65, 78, 68, 69, 82, 13, 83, 89
1200 data 83, 52, 57, 49, 54, 49, 58, 32
1210 data210,197,205, 45,203, 73, 76, 76
1220 data 69, 82, 13, 83, 89, 83, 52, 57
1230 data 49, 54, 52, 58, 32,218, 69, 73
1240 data 76, 69, 78, 32, 76, 79, 69, 83
1250 data 67, 72, 69, 78, 13, 83, 89, 83
1260 data 52, 57, 49, 54, 55, 58, 32,212
1270 data 69, 88, 84, 32, 83, 85, 67, 72
1280 data 69, 78, 13, 83, 89, 83, 52, 57
1290 data 49, 55, 48, 58, 32,195, 79, 76
1300 data 79, 78, 45,205, 65, 75, 69, 82
1310 data 13, 83, 89, 83, 52, 57, 49, 55
1320 data 51, 58, 32,211, 80, 65, 67, 69
1330 data 45,205, 65, 75, 69, 82, 13, 83
1340 :
1350 :
1360 data c1,9851,9900:rem $c100-c1ff
1370 :
1380 data 89, 83, 52, 57, 49, 55, 57, 58
1390 data 32, 80, 65, 67, 75, 65, 71, 69
1400 data 13, 83, 89, 83, 52, 57, 49, 56
1410 data 50, 58, 32,195,208,213, 45,210
1420 data 69, 71, 73, 83, 84, 69, 82, 32
1430 data 69, 73, 78, 13, 83, 89, 83, 52
1440 data 57, 49, 56, 53, 58, 32,195,208
1450 data213, 45,210, 69, 71, 73, 83, 84
1460 data 69, 82, 32, 65, 85, 83, 13, 83
1470 data 89, 83, 52, 57, 49, 56, 56, 58
1480 data 32,194,193,211,201,195, 45,197
1490 data 78, 68, 69, 32, 83, 69, 84, 90
1500 data 69, 78, 13, 83, 89, 83, 52, 57
1510 data 49, 57, 49, 58, 32,214, 65, 82
1520 data 73, 65, 66, 76, 69, 78, 32, 68
1530 data 85, 77, 80, 69, 78, 13, 83, 89
1540 data 83, 52, 57, 49, 57, 52, 58, 32
1550 data210,207,205, 32, 61, 62, 32,210
1560 data193,205, 13, 83, 89, 83, 52, 57
1570 data 49, 57, 55, 58, 32,218, 69, 73
1580 data 67, 72, 69, 78, 83, 65, 84, 90
1590 data 32, 78, 65, 67, 72, 32, 36, 55
1600 data 48, 48, 48, 13, 83, 89, 83, 52
1610 data 57, 50, 48, 48, 58, 32,218, 69
1620 data 73, 67, 72, 69, 78, 83, 65, 84
1630 data 90, 32, 65, 69, 78, 68, 69, 82
1640 data 78, 13, 83, 89, 83, 52, 57, 50
1650 data 48, 51, 58, 32,218, 69, 73, 67
1660 data 72, 69, 78, 83, 65, 84, 90, 32
1670 data 83, 80, 69, 73, 67, 72, 69, 82
1680 data 78, 13, 83, 89, 83, 52, 57, 50
1690 data 48, 54, 58, 32,218, 69, 73, 67
1700 :
1710 :
1720 data c2,17103,16952:rem $c200-c2ff
1730 :
1740 data 72, 69, 78, 83, 65, 84, 90, 44
1750 data 32, 65, 76, 84, 13,  0,169, 13
1760 data 76,210,255, 32, 14,194,141,  0
1770 data  4, 56,165, 45,229, 43,170,165
1780 data 46,229, 44, 32,205,189,162,  0
1790 data189, 52,194,208,  1, 96, 32,210
1800 data255,232,208,244, 32,194, 89, 84
1810 data 69, 83, 32,208,210,199, 45,204
1820 data 65, 69, 78, 71, 69, 13,  0, 32
1830 data 19,194,166, 43,165, 44,134,251
1840 data133,252,160,  1,177,251,208, 41
1850 data 32, 51,165,166, 43,165, 44,134
1860 data 45,133, 46,160,  0,177, 45,170
1870 data200,177, 45,208,242,165, 45, 24
1880 data105,  2,133, 45,144,  2,230, 46
1890 data 32, 96,166, 32, 19,194, 76,123
1900 data227,160,  3,200,177,251,240, 90
1910 data201, 34,208,  9,200,177,251,240
1920 data 81,201, 34,208,247,201, 32,208
1930 data234,166,251,165,252,134,141,133
1940 data142, 24,152,101,251,133,251,144
1950 data  2,230,252,160,  0,200,177,251
1960 data240,  4,201, 32,240,247, 24,152
1970 data101,251,133,253,165,252,105,  0
1980 data133,254,160,  0,177,253,145,251
1990 data200,208,249,230,252,230,254,165
2000 data 46,197,254,176,239,238,  0,216
2010 data 32, 51,165,166,141,165,142, 76
2020 data 78,194,160,  0,177,251,170,200
2030 data177,251, 76, 78,194,170,192,  5
2040 data176,  3, 76, 36,195,136,169, 32
2050 data209,251,240,  4,200, 76,117,195
2060 :
2070 :
2080 data c3,20694,18471:rem $c300-c3ff
2090 :
2100 data200,138, 76, 88,195,169,199, 72
2110 data169, 60, 72, 76,115,  0, 32, 19
2120 data194,166, 43,165, 44,134,251,133
2130 data252,160,  1,177,251,208,  3, 76
2140 data 88,194,160,  3,200,177,251,208
2150 data  3, 76,199,195,201, 34,208,  9
2160 data200,177,251,240,244,201, 34,208
2170 data247,170, 16,232,201,163,240,228
2180 data201,166,240,224,201,164,240,165
2190 data201,167,240,161,201,169,240,157
2200 data201,175,240,153,201,176,240,149
2210 data201,180,176, 12,201,170,144,  8
2220 data201,175,240,  4,201,176,208,188
2230 data200,177,251,240, 90,201, 58,240
2240 data179,201, 32,240,175,166,251,165
2250 data252,134,141,133,142, 24,136,152
2260 data101,251,133,251,144,  2,230,252
2270 data 24,166, 56,202,202,134,254,134
2280 data 37,165,251,133, 36,105,  1,133
2290 data253,144,  2,230,254,160,255,177
2300 data 36,145,253,136,208,249,177, 36
2310 data145,253,198, 37,198,254,165, 37
2320 data197,252,176,233,160,  1,169, 32
2330 data145,251,238,  0,216, 32, 51,165
2340 data166,141,165,142, 76, 21,195,160
2350 data  0,177,251,170,200,177,251, 76
2360 data 21,195, 32, 19,194, 32, 51,165
2370 data166, 43,165, 44,134,251,133,252
2380 data160,  1,177,251,208,  3, 76, 88
2390 data194,160,  3,200,177,251,240, 54
2400 data201, 34,208,  9,200,177,251,240
2410 data 45,201, 34,208,247,201,143,208
2420 :
2430 :
2440 data c4,20508,20440:rem $c400-c4ff
2450 :
2460 data234,192,  5,176, 44,160,  0,177
2470 data251,133,253,200,177,251,133,254
2480 data160,  0,177,253,145,251,200,208
2490 data249,230,252,230,254,165, 46,197
2500 data254,176,239, 76,213,195,160,  0
2510 data177,251,170,200,177,251, 76,220
2520 data195,132,141,160,  0,177,251,133
2530 data253,200,177,251,133,254,164,141
2540 data192,  5,144,204,136,177,251,201
2550 data 58,240,245,201, 32,240,241,200
2560 data169,  0,145,251, 56,152,101,251
2570 data133,251,144,180,230,252,176,176
2580 data 32,223,196,132,253,133,254, 32
2590 data223,196,132,141,133,142, 32, 19
2600 data194,166, 43,165, 44,134,251,133
2610 data252,160,  0,177,251,170,200,177
2620 data251,240, 89,208,  6,160,  1,177
2630 data251,208,234,160,  3,177,251,197
2640 data254,144,242,208,  7,136,177,251
2650 data197,253,144,233,166,251,165,252
2660 data134,139,133,140,160,  0,177,139
2670 data170,200,177,139,208,  8,240, 25
2680 data160,  1,177,139,208,234,160,  3
2690 data177,139,197,142,144,242,208,  9
2700 data136,177,139,197,141,144,233,240
2710 data231,160,  0,177,139,145,251,200
2720 data208,249,230,252,230,140,165, 46
2730 data197,140,176,239, 76, 88,194, 32
2740 data253,174, 32,138,173, 76,247,183
2750 data 32,253,174,162,  0, 32,115,  0
2760 data240, 10, 72,104,157, 16,  2,232
2770 data224, 48,144,241,169,  0,157, 16
2780 :
2790 :
2800 data c5,17505,17163:rem $c500-c5ff
2810 :
2820 data  2,166, 43,165, 44,134,251,133
2830 data252,160,  1,177,251,208, 13,104
2840 data 72, 96,160,  0,177,251,170,200
2850 data177,251,208,233,160,  3,200,177
2860 data251,240,239,205, 16,  2,208,246
2870 data 24,152,132,141,101,251,133,253
2880 data165,252,105,  0,133,254,160,  0
2890 data200,185, 16,  2,240, 17,201, 63
2900 data240,246,177,253, 72,104,217, 16
2910 data  2,240,237,164,141,208,207,160
2920 data  2,177,251,170,200,177,251, 32
2930 data205,189,169, 13, 32,210,255,208
2940 data177,169, 32,208,  2,169, 58,133
2950 data253,166, 43,165, 44,134,251,133
2960 data252,160,  1,177,251,208,  3, 76
2970 data 88,194,160,  4,177,251,197,253
2980 data208,  4, 73, 26,145,251,160,  0
2990 data177,251,170,200,177,251, 76,109
3000 data197, 76, 88,194, 32, 19,194, 32
3010 data  5,195,134, 65,133, 66, 32,158
3020 data199, 32,147,199,134, 59,133, 60
3030 data228, 65,229, 66,176,  3, 76, 72
3040 data178, 32,147,199,134, 63,133, 64
3050 data160,  1,177, 67,240,211,169,127
3060 data133, 21,133, 20, 32,  5,195, 32
3070 data142,166,176, 47,160,  0,177,139
3080 data170,200,177,251,240,187, 72,200
3090 data165, 59,145, 34,200,165, 60,177
3100 data 36,134, 67,104,133, 68,165, 59
3110 data 24,101, 63,133, 59,165, 60,101
3120 data 64,133, 60,144,215,230,122,208
3130 data  2,230,123,160,  0,177,122,208
3140 :
3150 :
3160 data c6,13653,16163:rem $c600-c6ff
3170 :
3180 data 19,160,  2,177,122,240,197,165
3190 data122, 24,105,  5,133,122,144,235
3200 data230,123,176,231,201, 34,208, 11
3210 data 32,115,  0,201,  0,240,226,201
3220 data 34,208,245,201,137,240, 23,201
3230 data138,240, 19,201,141,240, 15,201
3240 data167,240, 11,201,203,208,190, 32
3250 data115,  0,201,164,208,191,238,  0
3260 data216, 32,115,  0,176,183,132, 20
3270 data132, 21,144, 49,170,165, 21,133
3280 data 34,201, 25,176,168,165, 20, 10
3290 data 69, 34, 10,165, 34,101, 20,133
3300 data 20,165, 34,101, 21,133, 21,  6
3310 data 20,133, 21,138,101, 20,133, 20
3320 data144,  2,230, 21,200,177,122,201
3330 data 32,240,249,201, 58,165, 20,197
3340 data 65,165, 21,229, 66,144, 72,132
3350 data206, 32, 60,199, 56,162,144, 32
3360 data 73,188, 32,221,189,160,255,200
3370 data185,  0,  1,208,250,165,122,166
3380 data123,133, 95,134, 96, 56,152,229
3390 data206, 48, 38,240,106,133,206,165
3400 data 45,133, 90, 24,101,206,133, 88
3410 data165, 46,133, 91,105,  0,133, 89
3420 data197, 56,144,  6,165, 88,197, 55
3430 data176,109, 32,191,163,240, 72,144
3440 data 90, 73,255,168,200,162,  0,165
3450 data 95,197, 45,165, 96,229, 46,176
3460 data 54,147, 17, 17, 17, 17, 33, 33
3470 data203, 80, 73, 66, 79, 79, 70, 84
3480 data 33,206, 80, 68, 76, 70, 79, 73
3490 data 66, 86, 81, 85, 13, 17, 68, 33
3500 :
3510 :
3520 data c7,15307,15592:rem $c700-c7ff
3530 :
3540 data 50, 58, 57, 53, 33,204, 80, 70
3550 data 77, 79, 17, 29, 29, 13,  0,230
3560 data 95,208,196,230, 96,208,192,160
3570 data  0,185,  0,  1,240,  5,145,122
3580 data200,208,246, 32,158,199, 32,115
3590 data  0,144,251,160,  0,201, 44,208
3600 data  2,169,137,170, 76,255,197,162
3610 data 16, 76, 58,164,  2,160,  0,185
3620 data225,198,240, 24, 72, 41,127,201
3630 data 32,144,  6,104,233,  1, 76, 82
3640 data199,104, 32,210,255,200,208,231
3650 data133, 34,134, 35,160,  2,132,211
3660 data 32,123,164,177, 34,197, 20,200
3670 data177, 34,229, 21,176, 81,160,  0
3680 data177, 34,170,200,177, 34,134, 34
3690 data133, 35,177, 34,240, 65,165, 99
3700 data101, 63,133, 99,165, 98,101, 64
3710 data133, 98,176,  4,201,252,144,204
3720 data 76, 72,178, 32,253,174, 32,107
3730 data169,166, 20,165, 21, 96, 32, 51
3740 data165, 24,165, 34,105,  2,133, 45
3750 data165, 35,105,  0,133, 46,165, 65
3760 data166, 66,133, 20,134, 21, 32, 19
3770 data166,165, 95,133, 67,134, 68, 96
3780 data 32, 19,194,166, 43,165, 44,134
3790 data251,133,252,238,  0,216,138, 24
3800 data105,  3,133,247,165,252,105,  0
3810 data133,248,160,  1,177,251,208,  3
3820 data 76, 88,194,160,  0,132,  2,230
3830 data247,208,  2,230,248,177,247,240
3840 data 55,201, 34,208, 29,230,  2,230
3850 data247,208,  2,230,248,177,247,240
3860 :
3870 :
3880 data c8,17613,21819:rem $c800-c8ff
3890 :
3900 data 39,201, 34,240,224,208,240,160
3910 data  0,177,251,170,200,177,251, 76
3920 data199,199,201,137,240,241,201,138
3930 data240,237,201,142,240,233,201,143
3940 data240,229,201,167,208,191,240,223
3950 data160,  0,177,251,133,253,200,177
3960 data251,133,254,200,177,253,133,249
3970 data200,177,253,133,250, 56,160,  0
3980 data177,253,229,251,200,177,253,229
3990 data252,208,188,166, 43,165, 44,134
4000 data247,133,248,160,  1,177,247,208
4010 data  3, 76,183,200, 24,165,247,105
4020 data  3,133,122,165,248,105,  0,133
4030 data123,160,  0,230,122,208,  2,230
4040 data123,177,122,240, 55,201, 34,208
4050 data 14,230,122,208,  2,230,123,177
4060 data122,240, 41,201, 34,208,242,201
4070 data137,240, 12,201,138,240,  8,201
4080 data141,240,  4,201,167,208,212, 32
4090 data115,  0, 32,107,169,165, 21,197
4100 data250,208,198,165, 20,197,249,208
4110 data192, 76,  7,200,160,  0,177,247
4120 data170,200,177,247, 76, 79,200,238
4130 data  0,  4,160,  0, 24,165,253,105
4140 data255,133,139,165,254,105,255,133
4150 data140,165,  2,240,  4,169, 34, 16
4160 data  2,169, 58,145,139,200,201, 34
4170 data240,247, 24,165,253,105,  4,133
4180 data 36,165,254,105,  0,133, 37,230
4190 data139,208,  2,230,140,164,  2,240
4200 data  4,198,  2,240,242,177, 36,145
4210 data139,200,208,249,230,140,230, 37
4220 :
4230 :
4240 data c9,13954,13099:rem $c900-c9ff
4250 :
4260 data165, 46,197, 37,176,239,165,251
4270 data105,  4,133,139,165,252,105,  0
4280 data133,140,177,139,240, 10,230,139
4290 data208,248,230,140,208,244,240,242
4300 data160,  0, 24,165,139,105,  1,145
4310 data251,200,165,140,105,  0,145,251
4320 data200,177,139,208,  3, 76, 88,194
4330 data 32, 51,165,166,251,165,252, 76
4340 data199,199,173, 20,  3,172, 21,  3
4350 data141, 13,202,140, 14,202,169, 91
4360 data160,201,120,141, 20,  3,140, 21
4370 data  3, 88, 96,160,  0,185,123,201
4380 data240, 66, 41, 63,153,  0,  4,169
4390 data 99,153, 80,  4,173,134,  2,153
4400 data  0,216,153, 40,216,153, 80,216
4410 data200,208,226, 73, 82, 81, 32, 32
4420 data 66, 82, 75, 32, 32, 78, 77, 73
4430 data 32, 32, 32, 80, 67, 32, 32, 83
4440 data 86, 32, 66, 68, 73, 90, 67, 32
4450 data 65, 67, 32, 88, 82, 32, 89, 82
4460 data 32, 83, 80,  0,173, 14,202, 32
4470 data 22,202,173, 13,202, 32, 22,202
4480 data173, 23,  3, 32, 15,202,173, 22
4490 data  3, 32, 22,202,173, 25,  3, 32
4500 data 15,202,173, 24,  3, 32, 22,202
4510 data189,  6,  1, 32, 15,202,189,  5
4520 data  1, 32, 22,202,169, 32, 32, 43
4530 data202,169,  8,133,164,189,  4,  1
4540 data133,165,  6,165,144,  4,169, 42
4550 data208,  2,169, 46, 32, 43,202,198
4560 data164,208,239,189,  3,  1, 32, 15
4570 data202,189,  2,  1, 32, 15,202,189
4580 :
4590 :
4600 data ca,16040,17390:rem $ca00-caff
4610 :
4620 data  1,  1, 32, 15,202,138, 24,105
4630 data  6, 32, 15,202, 76, 49,234, 72
4640 data169, 32, 32, 43,202,104, 72, 74
4650 data 74, 74, 74, 32, 31,202,104, 41
4660 data 15,201, 10,144,  4,233,  9,208
4670 data  2,  9, 48,153,  0,  4,200, 96
4680 data173, 13,202,172, 14,202, 76, 82
4690 data201,166, 45,165, 46,134,251,133
4700 data252, 56,165,251,229, 47,165,252
4710 data229, 48,176, 85,160,  0,132,211
4720 data177,251,133,253, 41,127,170,200
4730 data177,251,133,254, 41,127,168, 32
4740 data236,202,165,253,  5,254, 48, 58
4750 data162,  0, 32,246,202, 24,165,251
4760 data105,  2,133, 34,165,252,105,  0
4770 data133, 35, 32,166,187, 32,221,189
4780 data 32, 30,171,169, 13, 32,210,255
4790 data173,141,  2,240,  8,201,  1,240
4800 data247,201,  2,240, 12, 24,165,251
4810 data105,  7,170,165,252,105,  0,144
4820 data156, 96,165,253, 48, 42,162, 36
4830 data160, 61, 32,236,202,169, 34, 32
4840 data210,255,160,  4,177,251,133,254
4850 data136,177,251,133,253,136,177,251
4860 data133,141,160,  0,196,141,176,187
4870 data177,253, 32,210,255,200,208,244
4880 data165,254, 16,180,162, 37, 32,246
4890 data202, 24,165,251,105,  2,133,100
4900 data165,252,105,  0,133,101, 32, 97
4910 data175, 76,125,202,138,240,  3, 32
4920 data210,255,152, 76,210,255,160, 61
4930 data208,242,194,193,211,201,195, 32
4940 :
4950 :
4960 data cb,16618,16505:rem $cb00-cbff
4970 :
4980 data 43, 32,203,197,210,206,193,204
4990 data 32, 74, 69, 84, 90, 84, 32, 73
5000 data 77, 32,210,193,205,  0,160,  0
5010 data169,160,132,251,133,252,169,224
5020 data132,253,133,254,162, 32,177,251
5030 data145,251,177,253,145,253,200,208
5040 data245,230,252,230,254,202,208,238
5050 data185,250,202,240,  6, 32,210,255
5060 data200,208,245, 96,208,210,199, 45
5070 data203, 79, 76, 76, 73, 83, 73, 79
5080 data 78, 44, 32,193, 69, 78, 68, 69
5090 data 82, 85, 78, 71, 32, 78, 73, 67
5100 data 72, 84, 32, 77, 79, 69, 71, 76
5110 data 73, 67, 72, 33,  0,169,108,160
5120 data  0,197, 46,176, 11,185, 68,203
5130 data240,201, 32,210,255,200,208,245
5140 data132, 55,197, 56,176,  2,133, 56
5150 data162, 16,169,208,132,251,133,252
5160 data169,112,132,253,133,254,173, 14
5170 data220, 41,254,141, 14,220,165,  1
5180 data 41,251,133,  1,177,251,145,253
5190 data200,208,249,230,252,230,254,202
5200 data208,242,165,  1,  9,  4,133,  1
5210 data173, 14,220,  9,  1,141, 14,220
5220 data173,  0,221, 41,252,  9,  2,141
5230 data  0,221,169,188,141, 24,208,169
5240 data108,141,136,  2,185,223,203,240
5250 data 53, 32,210,255,200,208,245,147
5260 data 17, 17, 17, 14, 36, 54, 67, 48
5270 data 48, 58,194, 73, 76, 68, 83, 67
5280 data 72, 73, 82, 77, 13, 17, 36, 55
5290 data 48, 48, 48, 58,218, 69, 73, 67
5300 :
5310 :
5320 data cc,12980,12282:rem $cc00-ccff
5330 :
5340 data 72, 69, 78, 71, 69, 78, 69, 82
5350 data 65, 84, 79, 82, 13,  0, 76, 88
5360 data194,169,147, 32,210,255,160,  0
5370 data185, 38,204,208,  3, 76,166,204
5380 data 32,210,255,200,208,242, 19, 17
5390 data 17, 17, 77, 73, 84, 32, 18,195
5400 data213,210,211,207,210,146, 32, 32
5410 data 32,218, 69, 73, 67, 72, 69, 78
5420 data 32, 69, 73, 78, 83, 84, 69, 76
5430 data 76, 69, 78, 44, 13, 77, 73, 84
5440 data 32, 18,210,197,212,213,210,206
5450 data146, 32, 32, 32, 87, 65, 69, 72
5460 data 76, 69, 78, 46, 13, 29, 29, 29
5470 data 29, 18, 70, 55,146, 58, 32, 32
5480 data 32, 32, 32, 32,218, 69, 73, 67
5490 data 72, 69, 78, 83, 65, 84, 90, 13
5500 data 29, 29, 29, 29, 18,210,213,206
5510 data 47,211,212,207,208,146, 58,193
5520 data 66, 66, 82, 85, 67, 72, 46, 17
5530 data 13, 29, 29, 29, 29, 29, 29, 29
5540 data 29, 29, 29, 29, 29,  0,168,132
5550 data141,152,201, 32,176,  4,169, 32
5560 data208,  7,170, 16,  4,201,160,144
5570 data245, 32,210,255,230,141,165,141
5580 data 41, 15,208,  9,169, 13, 32,210
5590 data255,169, 11,133,211,200,208,217
5600 data185,219,204,240, 27, 32,210,255
5610 data200,208,245, 19, 17, 17, 17, 17
5620 data 17, 17, 17, 17, 29, 29, 29, 29
5630 data 29, 29, 29, 29, 29, 29, 29,  0
5640 data133,251,169,  0,133,252, 32, 65
5650 data207,201, 29,208, 37,230,252,230
5660 :
5670 :
5680 data cd,16915,17377:rem $cd00-cdff
5690 :
5700 data211,166,252,224, 16,144,239,198
5710 data211,198,252,164,251,192, 15,176
5720 data229,230,251,169, 13, 32,210,255
5730 data169,  0,133,252,  9, 11,133,211
5740 data208,208,201, 19,208,  4,160,  0
5750 data240,166,201,157,208, 10,166,252
5760 data240,196,198,252,198,211,208,190
5770 data201, 17,208, 13,164,251,192, 15
5780 data176,180, 32,210,255,230,251,208
5790 data173,201,145,208, 11,164,251,240
5800 data165, 32,210,255,198,251,208,158
5810 data201,  3,208,  3, 76, 88,194,201
5820 data 13,240, 15,201,136,208,  8,173
5830 data 24,208, 73,  2,141, 24,208, 76
5840 data246,204,165,252,164,251,240,235
5850 data 24,105, 16,136,208,250, 72, 41
5860 data128,133,253,104, 41,127,201, 32
5870 data144,217,201, 64,144,  2, 41, 63
5880 data164,253,240,  2,  9, 64,133,251
5890 data173, 24,208, 41,  7, 74,  9, 14
5900 data133,252,  6,251, 38,252,  6,251
5910 data 38,252,  6,251, 38,252,169,  7
5920 data133,141,160,  0,185,194,205,208
5930 data  3, 76, 56,206, 32,210,255,200
5940 data208,242, 19, 17, 17, 17, 17, 17
5950 data 17, 17, 17, 17, 17, 17, 17, 29
5960 data 29, 29, 29, 29, 29, 29, 29, 29
5970 data 29, 29, 29, 29, 29,176,192,192
5980 data192,192,192,192,192,192,174, 17
5990 data157,221, 17,157,221, 17,157,221
6000 data 17,157,221, 17,157,221, 17,157
6010 data221, 17,157,221, 17,157,221, 17
6020 :
6030 :
6040 data ce,19121,18216:rem $ce00-ceff
6050 :
6060 data157,221,157,157,157,157,157,157
6070 data157,157,157,157,173,192,192,192
6080 data192,192,192,192,192,189,157,157
6090 data157,157,157,157,157,157,157,145
6100 data157,221,145,157,221,145,157,221
6110 data145,157,221,145,157,221,145,157
6120 data221,145,157,221,145,157,221,  0
6130 data165,141, 73,  7,168,177,251,133
6140 data142,169, 15,133,211,160,  8,169
6150 data 32,  6,142,144,  2,  9, 10, 32
6160 data210,255,136,208,242,169, 13, 32
6170 data210,255,198,141, 16,218,185,105
6180 data206,240, 36, 32,210,255,200,208
6190 data245, 19, 17, 17, 17, 17, 17, 17
6200 data 17, 17, 17, 17, 17, 17, 17, 29
6210 data 29, 29, 29, 29, 29, 29, 29, 29
6220 data 29, 29, 29, 29, 29, 29,  0,133
6230 data248,133,247, 32, 65,207,201, 29
6240 data208, 13,166,247,224,  7,176,243
6250 data230,247, 32,210,255,208,236,201
6260 data157,208, 11,166,247,240,228,198
6270 data247, 32,210,255,208,221,201, 17
6280 data208, 13,164,248,192,  7,176,211
6290 data 32,210,255,230,248,208,204,201
6300 data145,208, 11,164,248,240,196,198
6310 data248, 32,210,255,208,189,201, 32
6320 data240, 11,201, 42,240, 43,201, 13
6330 data208,177, 76, 22,204,166,247,224
6340 data  8,176,243, 32,210,255,169,128
6350 data166,247,240,  2, 74,202,208,252
6360 data 73,255,133,253,164,248,177,251
6370 data 37,253,145,251,230,247, 76,139
6380 :
6390 :
6400 data cf,11190,11261:rem $cf00-cfa6
6410 :
6420 data206,166,247,224,  8,176,214, 32
6430 data210,255,169,128,166,247,240,  2
6440 data 74,202,208,252,164,248, 17,251
6450 data208,224,169,  4,160,151,141,136
6460 data  2,140,  0,221, 32, 91,255,169
6470 data  5, 32,210,255,169,  8, 32,210
6480 data255,169, 14, 32,210,255,169, 11
6490 data141, 32,208,141, 33,208, 76, 88
6500 data194, 70,204, 70,207, 32,228,255
6510 data240,247, 72,230,204,164,211,177
6520 data209, 41,127,145,209,104, 96, 32
6530 data253,174, 32,212,225,162,  1,160
6540 data128,134,185,202,134,141,169,112
6550 data133,142,169,141, 76,216,255, 32
6560 data 32,202, 79, 72, 65, 78, 78, 69
6570 data 83, 32,205, 79, 67, 75, 69, 78
6580 data 72, 65, 85, 80, 84, 32, 32,203
6590 data 79, 69, 76, 78, 67, 32, 49, 57
6600 data 56, 52, 32,212,225,162,  1,134
6610 data185,202,134,142,160,208,169,192
6620 data133,143,169,142, 76,216,255
6630 :
6640 rem " Die folgenden Kommata sind
6650 rem " 'Nullen', welche die Poke-
6660 rem " Schleife auf 256 Bytes er-
6670 rem " gaenzen.
6680 :
6690 data,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
6700 data,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
6710 data,,,,,,,,,,,,,,,,,,,,,,,,
Listing »Super-Utilities«
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →