Archiv der Kategorie: C128

C128 Handbuch: Korrekturliste

Anfang Dezember veröffentlichte Mac Bacon im Forum64 seine Korrekturen zum deutschen Handbuch für den C128. Ein kleiner Teil der Korrekturen aus einer älteren Liste war bereits in die iDoc-Version des Handbuchs eingeflossen, die auch Grundlage für meine (leider immer noch nicht vollständige) HTML-Version ist.

Bedienungshandbuch zum C128 (zwei Versionen)

Was zuerst aussah wie eine kleine Korrekturliste, entpuppte sich schnell als ein umfangreiches, sauber ausgearbeitetes Korrekturhandbuch zum Handbuch. Die aktuelle PDF-Version, in die auch noch zusätzliche Korrekturen aus dem C64-Wiki aufgenommen wurden, hat über 40 Seiten.

Meine erste Idee, die neuen Korrekturen „mal so nebenbei“ darauf abzuprüfen, ob die in meiner HTML-Version, in die ich ja auch noch meine eigenen Korrekturen hatte einfließen lassen, bereits berücksichtigt waren oder nicht, musste ich bei diesem Umfang schnell aufgeben. Bisher bin ich über Stichprobenprüfungen nicht hinaus gekommen. Vor allem reine Tipfehler waren bereits korrigiert. Komplexere Dinge oftmals nicht. Da wartet noch viel Arbeit.

Fazit: Das C128-Handbuch ist und bleibt eine schöne Hilfe für den Einsteiger und ein wertvolles Nachschlagewerk für den Fortgeschrittenen, aber man sollte zur Sicherheit auch immer Mac Bacons Korrekturbuch zu Rate ziehen.

Anmerkung: Da es mehrere Versionen des C128-Handbuchs gibt, kann es sein, dass der ein oder andere Tipfehler in einer späteren Auflage bereits berichtigt wurde. Die wirklichen „Klopfer“ wurden jedoch nie bereinigt. Insofern ist diese Korrekturliste ein unverzichtbarer Helfer im Fehlerdschungel.

Veröffentlicht unter C128 | Schreib einen Kommentar

Forum 128

Lange Jahre war für Freunde des C128 das Commodore 128 Alive-Forum auf commodore.org der zentrale Anlaufpunkt. Seit dem Frühjahr ist dieses Forum verschwunden und keiner kennt die Hintergründe. Mit diesem Forum ging auch ein ungeheuerer Wissenschatz (vermutlich unrettbar) verloren, der sich dort im Laufe der Jahre angesammelt hatte.

Forum Commodore 128

Einige Getreue aus diesem Forum haben nun ein neues Commodore 128-Forum als zentralen Anlaufpunkt für alle Fans des C128 gegründet und tragen dort „die Trümmer“ zusammen.

Veröffentlicht unter C128 | Schreib einen Kommentar

30 Jahre BTX

Am 1. September feierte BTX 30. Geburtstag. Besser gesagt, hätte es gefeiert, wenn es BTX noch gäbe. Doch der Onlinedienst der Deutschen Bundespost ist schon viele Jahre Vergangenheit und hat nie die Popularität erreicht, wie etwa das französische Pendant Minitel. Dabei war man bei Unter­zeichnung der erforderlichen Staatsverträge noch recht zuversichtlich (YouTube: Bericht über den Bildschirmtext (BTX) in der Tagesschau vom 18.03.1983).

Anders als Minitel in Frankreich scheiterte BTX (finanziell, nicht technisch) an den Postbürokraten, die die Nutzer mit horrenden Gebühren überzogen. Das hielt die Nutzerzahlen niedrig und die Kosten für den einzelnen hoch. Teure Endgeräte und spezifische (langsame) Modems (DBT-03) taten ihr übriges. Auch für den C64/C128 gab es erst nur eine (teure) Steckmodullösung, wie sie hier in den zwei nachfolgend verlinkten YouTube-Videos gezeigt wird.

BTX Werbung mit einem Alien

BTX Werbung von 1987 Erst in den Neunzigern lockerten sich die Zulassungsanforde­rungen. Mit dem Drews Interface und Softwaredecoder und einem C64/C128 war nun ein günstiger Zugang (wenn auch mit Abstrichen bei der Qualität der Darstellung) möglich. Später folgten Software­kennung und Modembetrieb mit höheren Datendurchsätzen (und aus BTX wurde Datex-J).

Bis Mitte der Neunziger gab es auch interessante Angebote für die Freunde des C64 und C128 im BTX. Man traf sich in der Brotkastencorner (BKC) z.B. unter *Matting# zum Austausch von Neuigkeiten (sozusagen die BTX-Variante des Forum64) oder beim C64-Club. Bei der 64er oder beim WDR Computer Club konnte man Telesoftware herunterladen (das war immerhin billiger als die sündhaft teuren 64er Heft-Disketten; jedenfalls solange, bis die 64er plötzlich nur noch aus einer Diskette bestand). Und Chats gab es ebenfalls! Im *Traumschiff#, der *Oase# oder im *Strandhotel#  traf sich jeden Mittwoch ein illustrer Kreis und dikutierte über Gott und die Welt. Ein großer Vorteil von BTX-Chats war die Möglichkeit weit zurück­zublättern. Ohne diese Option macht mir chatten keinen Spaß.

Technisch war BTX – für die damalige Zeit – eine gutes Onlinesystem. Der klar definierte Zugang machte das System auch relativ sicher. Jedenfalls sicherer als das Internet, wenn auch der CCC mit dem „Haspa-Hack“ für Furore sorgte. Die höhere Sicherheit war auch der Grund, warum trotz des Endes von BTX im Jahr 2001 die Online-Banking-Funktionen noch bis 2007 verfügbar waren.

Abschließend einige Pressestimmen zu 30 Jahre BTX:

Veröffentlicht unter Allgemein, C128, C64 | 8 Kommentare

Launcher: CBM FileBrowser 1.5

Anfang MärCommodore 128 (40 columns) [Bildquelle: NBLA000]z diesen Jahres hat NBLA000 die Version 1.5 von CBM FileBrowser fertiggestellt. Das Programm dient zum Suchen und Starten von Programmen von einem SD2IEC oder MMC2IEC, arbeitet aber auch mit echten Diskettenlaufwerken zusammen.

Weitergehende Dateimanagerfunktionen zum Kopieren oder Löschen von Dateien gibt es nicht. Dafür ist das Programm kompakt. Der Programmcode basiert auf sd2brwse, das von den Original-Autoren nicht mehr weiterentwickelt wird. Michael Kircher, bekannt u.a. durch Tool Basic, hat die Sortierroutine beigetragen und der C128-Code wurde von Hydrophilic erstellt.

Commodore 128 (80 columns) [Bildquelle: NBLA000]Damit ist auch die wesentlichste Neuerung gegenüber der Version 1.4 schon genannt: CBM FileBrowser  unterstützt jetzt nicht nur VC 20, C64, C64 DTV und C16/C116/Plus4 sondern auch den C128 mit 40- und 8o-Zeichen Bildschirm.

Das Tool verwendet Kernel-Routinen. Daher wird auf einem „nackten“ C128 ein SD2IEC mit der Geschwindigkeit einer 1541 angesprochen. Abhilfe schafft JiffyDOS, das vom SD2IEC unterstützt und daher dringend empfohlen wird. Alternativ kann man ein mit Hydrophilics Fast-Serial-Routinen gepatchtes SD2IEC verwenden oder SJLOAD128 (softwarebasiertes JiffyDOS) einsetzen.

Veröffentlicht unter C128, Soft | 2 Kommentare

QR-Code

Vor längerer Zeit ist mir mal ein C64-Programm zum Erzeugen von QR-Codes über den Weg gelaufen [CSDb]. Im Zuge der One Liners Competition wollte ich dieses Thema aufgreifen. Natürlich ist es nicht möglich einen QR-Code-Generator in einem Einzeiler zu programmieren, aber das Wiedergeben von QR-Codes schon. Eine QR „Grafik“ kann man sich im Internet generieren lassen (siehe Linkliste). Sie benötigt im Format 24 x 24 Pixel 576 Bits also mindestens 72 Bytes. Innerhalb von BASIC kodiert man sowas am einfachstem in einer Zeichenkette (String), da ein DATA-Befehl und Zahlenwerte zuviel Speicherplatz benötigen. Allerdings führt die Verwendung aller 8 Bits eines String-Zeichens zu nicht-druckbaren Zeichen einschließlich Null-Bytes (die in BASIC-Programmen höchst unpraktisch sind). Daher entschloss ich mich einen 6-Bit-Code auf Basis „normaler“ ASCII-Zeichen zu erstellen, was zu einem String von 96 Zeichen (4 für jede der 24 Zeilen) führte.

Zu meiner Schande muss ich gestehen, dass ich ein Tabellenkalkulationsprogramm verwendet habe, um die Originalbitmap des QR-Codes in den 6-Bit-codierten String umzurechnen. Da ich den Einzeiler letztlich aber sowieso mit einem Editor und PETCAT auf dem PC erstellt habe, war das kein Nachteil, konnte ich doch den „Bitmap String“ mit Copy & Paste einfügen.

QR-Code
Der QR-Code zeigt die URL meines Blogs

1 a$="_ybk_pkorawixj]wkkb]whtb]pjqra_zuk_@@ep@_owmjduaabx]mtkvuxeq_[h^w^bvajros^[
teftiqzu_t@bph\_[lj_phixywjx__wkwjwwjcqepjf]y_zua_":poke53280,1:poke53281,1:
print"{blk}{swuc}{clr}";
2 fori=0to24:printtab(14):forj=1to5:a=asc(mid$(a$,i*5+j,1)):b=16:fork=1to5:print
mid$("{rvon} {rvof}",2+((aandb)>0));:b=b/2:next:next:printleft$(chr$(13),1+(i=24));:
next:print"{home}blog.c128.net"

Der Quellcode des Zweizeilers für C128/C64 im PETCAT-Format

Links:
Basiswissen QR-Code: qrcode.wilkohartz.de
QR-Code Generatoren: qrcode-monkey.de qrcode-generator.de free-qr-code.net
Pixel-Art mit QR-Codes: qrpixel.com

Veröffentlicht unter C128, C64, Compo | Schreib einen Kommentar

Unterstützung für das LOAD-Magazin #2

Nach mehrwöchiger Unterbrechnung ist die Homepage des LOAD-Magazins seit zwei Tagen wieder online. So ein Providerwechsel ist also selbst heutzutage noch ein kompliziertes Unterfangen. Wie schon bei der Erstausgabe werden wieder Unterstützer zur Finanzierung des Projekts gesucht.

Meine Grafik für die „Unterstützer-Wand“ im Heft habe ich inzwischen fertiggestellt und eingereicht. Es ist eine leichte Modifikation der Grafik vom letzten Jahr. Ich sollte mir mal einen Grafiker leisten, der da was ordentliches pixelt …

pic_c128blog2013

Veröffentlicht unter C128, Mags | Schreib einen Kommentar

Welle:Erdball – Computerklang

Im aktuellen Videoclip „Computerklang“ der Band Welle:Erdball (Homepage) finden sich mehr oder weniger gut versteckte Szeneinfos. Zum einen ist da der Ausschnitt vom C128-Mainboard (siehe Bild unten) mit der zusätzlich eingefügten Info zum Tod von Jack Tramiel: „R.I.P. J.Tramiel 1928-2012“.

Welle: Erdball - Computerklang C128-Platine

Zum anderen gibt es im Abspann des Videos ein paar kreischende Piepstöne, die der Experte sofort als eine akustische Wiedergabe eines Programms auf Datasette erkennt. Wer sich die Mühe macht, die Töne wieder in ein C64-Programm zu verwandeln, kann nach der Ausführung eine Grußbotschaft lesen.

Das Video findet man, zusammen mit weiteren Infos und Diskussionsbeiträgen, im Forum64 oder auch direkt auf YouTube. Die zugehörige EP gibt es demnächst im Handel.

Veröffentlicht unter C128, C64, Music | Schreib einen Kommentar

C128 Handbuch: MMU

Nach einem Jahr gibt es endlich wieder etwas über ein (kleines) Update beim HTML-Handbuch für den C128 zu berichten. In den letzten Tagen habe ich den gesamten Anhang B: Speicherorganisation hochgeladen. Hier dreht sich letztlich alles um die MMU (Memory Management Unit) und ihre Register. Die Grafiken zum Anhang B wurden allesamt neu gezeichnet und liegen in hochauflösenden Versionen vor; die nachfolgend abgebildete Speicherbelegung auch als PDF.

Commodore 128 Speicherbelegung

Neben kleineren Updates in anderen Abschnitten wurden zudem die noch fehlenden Handbuchseiten zum VIC und SID fertiggestellt. Sie ergänzen die Beschreibungen zum VDC. Damit ist jetzt auch der Anhang E: Registerzuordnungen beim SID, VIC und VDC komplett.

Veröffentlicht unter C128 | Schreib einen Kommentar

Konfetti (OL)

Passend zum heutigen Rosenmontag, passend zur Tradition und passend zur aktuellen One-Liners-Compo präsentiert C128.Net: Konfetti OL. Dieses Programm ist nur auf einem Commodore 128 lauffähig, da es BASIC 7.0 Befehle und Eigenschaften nutzt.

Konfetti OL
Viele bunte, herabrieselnde Konfetti-Flocken (ASCII-Zeichensatz)

1 i$=chr$(19)+chr$(27)+"i":c=55296:color0,2:color4,2:graphic0,1:fori=1 to50:p=rnd(1)*800:poke1024+p,81:pokec+p,i:next:fori=0to256:printi$;:for j=1to3:p=rnd(1)*40:poke1024+p,81:pokec+p,i+jand255:next:i=iand255:next

Hier das Programm als Einzeiler

1 i$=chr$(19)+chr$(27)+"i":c=55296:color0,2:color4,2:graphic0,1: fori=1to50:p=rnd(1)*800:poke1024+p,81:pokec+p,i:next
2 fori=0to256:printi$;:forj=1to3:p=rnd(1)*40:poke1024+p,81: pokec+p,i+jand255:next:i=iand255:next

Und auch als Zweizeiler (zum direkten Einkopieren nach VICE)

Veröffentlicht unter C128, Soft | Schreib einen Kommentar

Tuning-Tips für den C128

Prolog

Mein letzte Beitrag in der Reihe Multiplattform-Programmierung, beschäftigte sich mit der eigentlich simplen Aussage „verwende anstatt FOR…NEXT lieber zeitgesteuerte Schleifen“. Das ganze artete dann aber zu einer Abhandlung über Geschwindigkeitsunterschiede bei Commodores 8-Bittern aus. Um mich nicht noch weiter zu verzetten, klammerte ich das Thema C128 mit 1,3 MHz, also die Möglichkeit im 40-Zeichenmodus im oberen und unteren Rahmen den Prozessor in den 2 MHz-Modus zu schalten, aus. Das erschien mir dann doch als etwas zu spezifisch und sollte später kurz in einem separaten Beitrag, zusammen mit anderen Möglichkeiten des „Tunig“ beim C128, abgehandelt werden.

Wider erwarten hat sich dieses Thema als noch komplexer erwiesen als vermutet und hat mich die letzten 14 Tage mit Recherche, Programmierung und Austesten beschäftigt. Und noch immer ist kein Ende in Sicht. Heute gibt es daher erstmal nur Vergleichsdaten zu den immer mal wieder empfohlenen Tuning-Methoden. Eine tiefergehende Analyse zum Thema „1,3 MHz“ wird später folgen.

Das Herz des Commodore 128: die CPU MOS 8502
Das Herz des Commodore 128: die CPU MOS 8502 (hier mit Anschlüssen zur SuperCPU)

Speed me up Scotty!

Als Nutzer eines Commodore 128 muss man es zähneknirschend akzeptieren, dass dieser Rechner im 40-Zeichen-Modus unter BASIC geschwindigkeitsmäßig gegen jeden C64 „abstinkt“. Da, wenn der VIC für die Bildschirmanzeige zuständig ist, nur eine Taktrate von 1 MHz gefahren werden kann. Die Gründe sind bekannt: Speicherbankumschaltung, komplexeres BASIC und komplexerer Interrupt für Grafik-, Sprite- und Audiofunktionen. All das fordert seinen Tribut und der ist mit „Taktzyklen“ zu bezahlen.

Um ein paar Prozent Geschwindigkeitssteigerung herauszukitzeln (oder auch nur ein paar Promille), gibt es drei mehr oder weniger allseits bekannte Tricks. Es handelt sich um einen sehr massiven und zwei kleinere Eingriffe in das Interrupt-Geschehen.

Ein paar Promille

Einen Hauch von Geschwindigkeitssteigerung erhält man, wenn man das Grafik-Flag manipuliert. Über die Speicherstelle $D8 (216) wird der jeweilige Grafikmodus definiert. Im Grunde mach der Befehl GRAPHIC nichts anderes, als hier einen, dem jeweils gewählten Grafikmodus entsprechenden Wert einzutragen. Die eigentliche Umschaltung zwischen Text- und Grafikmodus erfolgt dann in der Rastervergleichs-IRQ-Routine ($C194). Schreibt man nach der Wahl des gewünschten Grafikmodus mittels POKE216,255 den HEX-Wert $FF in den Speicher, wird ein Teil dieser Interruptroutine nicht ausgewertet.

Der Beschleunigungseffekt beträgt gut 0,4% oder eben 4 Promille. Wird der Befehl GRAPHIC erneut verwendet, überschreibt er diese Manipulation wieder. Man kann den Trick allerdings nicht mit einem Splitscreen-Grafikmodus (GRAPHIC 2 oder GRAPHIC 4) kombinieren, da der übersprungene Teil der Routine genau diese Funktion steuert.

Wenige Prozente

Etwas massiver und auch geringfügig lohnender ist die komplette Deaktivierung der Interruptsteuerroutine für Grafik und Ton ($A84D), auch BASIC-Interrupt genannt. Hier werden die Spritebewegungen gesteuert, Kollisionen und Photonengriffel (Light Pen) ausgewertet und die Befehle PLAY und SOUND abgearbeitet. Wer eigene SID-Abspielroutinen verwenden will, kommt um die Deaktivierung dieser Funktionen sowieso nicht herum. Das Abschalten erfolgt durch Löschen des zugehörigen Steuerbits (Bit 0) in der Speicherstelle $0A04 (2564). Da der Normalwert $C1 (193) ist, erledigt man das mit einem POKE2564,192.

Der Beschleunigungseffekt dieser Maßnahme beträgt etwa 2,7%. Es ist geradezu erschütternd! Die beiden Effekte sind gleichzeitig einsetzbar und summieren sich zu atemberaubenden 3,2%! Genug der Ironie. Wer wirkliche Beschleunigung sehen will, muss massiver werden.

Der Griff zum Hammer

Die in unserem Land wohl bekannteste Routine zur Beschleunigung findet sich im 64er-Sonderheft 22, Seite 51. Das Progrämmchen heißt „C128-FASTER“ und installiert einen Patch für die Interruptroutine, der im oberen und unteren Rahmenbereich des Bildschirms den 2 MHz-Modus aktiviert. Kleiner Nebeneffekt: durch die Veränderung der Interruptroutine sind Splitscreen-Grafikmodi nicht mehr möglich.

Der Beschleunigungseffekt durch“C128-FASTER“ beträgt 26%, was einer mittleren Taktrate von 1,35 MHz entspricht. Eine Kombination mit dem Promilletrick ist wirkungslos, da die Grafikmodeumschaltung in etwas abgespeckter Form jetzt Teil des Patchs geworden ist. Der Prozenttrick wirkt jedoch auch hier additiv. Der „Speedfaktor“ liegt dann bei fast 28%, was einer gefühlten Taktrate von 1,38 MHz entspricht.

Epilog

Tuning Methode Umsetzung Effekt Anmerkung
Raster-IRQ verkürzen POKE216,255 0,4 % Splitscreen-Grafik nicht mehr möglich
BASIC-Interrupt aus POKE2564,192 2,7 % Kein SPRITE, PLAY und SOUND
2 MHz im Rahmen an “C128-FASTER” 26 % Splitscreen-Grafik nicht mehr möglich

Mit der Beschleunigung im oberen und unteren Bildschirmrahmen auf 2 MHz erreicht der C128 unter BASIC (und im 40-Zeichen-Modus) eine Verarbeitungsgeschwindigkeit, die gerade mal so der des C64 entspricht. Allerdings ist nur BASIC so massiv von der Komplexität des C128 betroffen. Programme in Assembler, die eigene Interruptroutinen ein- und das BASIC-ROM ausblenden, können die Geschwindigkeitsvorteile des „1,3 MHz-Modus“ hingegen voll ausspielen.

Veröffentlicht unter C128, Soft | Schreib einen Kommentar