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 | Schreibe einen Kommentar

Ausgegraben: Star Spores

Auch wenn es sich nicht um Zeiträume von Jahrtausenden handelt, für die Computertechnologie entspricht ein Blick rund 35 Jahre zurück in die Vergangenheit der Betrachtung der antiken Hochkulturen durch einen Archäologen. [Die viel zu oft herbeizitierte Steinzeit möchte ich hier ausdrücklich nicht bemühen, die sei den mechanischen Rechenmaschinen vorbehalten.] Und so wie der Archäologe alte Siedlungsspuren sucht und dabei griechische Stelen oder Reste römischer Wehrtürme freilegt, so macht sich der Computer-Archäologe auf die Suche nach verlorener Software.

PET-Game: Astro-Rescue
Astro-Rescue: Mit der Rettungskapsel müssen Minenarbeiter zurück zur Orbitalstation gebracht werden. Ein Meteoritensturm läßt das zu einem lebensgefährlichen Unterfangen werden. Gesteuert wird mit [<] und [>] (auf dem PC im Emulator: [Ende] und [PgDn]). Die aus beiden Richtungen anfliegenden Meteoriten können abgeschossen werden. Die Feuertaste ist [Space].

Eine besondere Ausgrabung dieser Art verdanken wir Mr. Nop. Er erinnerte sich an drei Spiele aus dem Jahr 1982 für den Commodore PET, geschrieben von Jim Summers. Diese zeichneten sich durch, für die damalige Zeit durchaus respektable, visuelle Effekte aus. Doch nur zwei davon (Astro-Rescue und Slime) waren im Netz verfügbar. Star Spores hingegen blieb unauffindbar. Im Rahmen der Ermittlungen führte Mr. Nop mit dem Software-Autoren ein lesenswertes Interview (nachzulesen auf Commodore128.org); doch selbst dieser verfügte nicht mehr über den Programmcode.

PET-Game: Slime
Slime: Weltraumschleim breitet sich aus. Man hat keine Chance, doch die muss man nutzen. Gesteuert wird über den Ziffernblock (Num-Pad), geschossen mit [Space]. Mit [Q] und [W] kann man sein Schiff gegen bzw. mit dem Uhrzeigersinn drehen, um eine bessere Schußposition zu erreichen.

Letztlich führten die intensiven Nachforschungen dann doch noch zu einem Erfolg. Steve Gray offenbarte sich als Besitzer einer Originaldiskette und stellte die fehlende Programmdatei zur Verfügung. Die von Mr. Nop erzeugte Compilation mit allen drei Programmen von Jim Summers ist im Forum auf Commodore128.org oder hier herunterladbar. Alle drei Programme laufen auf den Systemen CBM 3001 bzw. 4001 Series (der Original PET wird nicht unterstützt). Damit konnte eine weitere Lücke in der Softwaredokumentation für CBM-Rechner geschlossen werden.

PET-Game: Star Spores
Star Spores: Alien-Angriff! Die Basis wird mit einer Doppelrohrkanone verteidigt. Gesteuert wird diese mit [<] und [>] (auf dem PC im Emulator: [Ende] und [PgDn]); gefeuert wird mit [Space]. Die Animation der Trümmerstücke beim Zerbersten der Doppelrohrkanone ist eine Effekt, wie er damals in dieser Perfektion nur selten geboten wurde.

Nachtrag (21.02.2013):
Das Disk-Image (s.o.) wurde überarbeitet. Es enthält jetzt ein Startprogramm.

Veröffentlicht unter CBM, Soft | Schreibe 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 | Schreibe 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 | Schreibe einen Kommentar

Commodore Free #67

Heute erschien die erste Commodore Free im Jahr 2013, die Ausgabe #67. Damit fiel auch der offizielle Startschuß zur One-Liners Competition. Wer allerdings auf eine klarere Definition der Regeln des bereits im Forum auf commodore128.org angekündigten Wettbewerbs gehofft hatte, hoffte vergebens. Man nutze daher einfach den gegebenen Interpretationsspielraum und mache das beste daraus.

Das Magazin berichtet wie immer viel Informatives aus der Commodore-Welt (siehe unten) und liefert dazu auch einige neue Spiele auf Tape. Fazit: Wie immer lesenswert!

Commodore Free Logo

Aus dem Inhalt von Heft 66:

  • Editorial
  • Commodore Free E-Cover Tape #3
  • NEWS
    • 2013 C64-Retroinvaders Calendar
    • Arc64 V2.3 Released
    • MiniMig and Arm Controller Back
    • New Articles on Obligement
    • Flimsoft News Update
    • SuperCPU Emulator Software
    • 4K Game Secret Tunnel
    • PDXCUG.org Meeting
    • VFLI – VIC-20
    • Ask Me Up for AmigaOS 4
    • AmigaOS 4.1 Update 6 Released
    • „World Without A Sky“
    • WinUAE V2.5.0 Released
    • New Assembly Programming Blog
    • Avalanche for the PET Released
  • Review: Avalanche for the PET
  • Readers Comments – Magazine Ideas
  • One-Liners Competition
  • Homebrewing Computers in the 21st Century
  • Book Review: Terrible Nerd
  • Review: Subhunter (Cartridge)
Veröffentlicht unter Compo, Mags | Schreibe 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 | Schreibe einen Kommentar

HomeCon XX (Terminplanung 2013)

Am 19. Januar, also schon morgen, findet wieder eine HomeCon statt.

HomeCon-Logo Halloween

Anmeldung wie immer unter: http://homecon.net/index.php/anmeldung
Detailinformationen zur Veranstaltung gibt es im HomeCon-Board des Forum64.

Termin der 20. HomeCon:
Samstag, den 19.01.2013 ab 10:00 Uhr
Alte Schule Grossauheim
Taubengasse 3 (Eingang Haggasse)
63457 Hanau-Grossauheim

Weitere Termine sind: 9. März und 11.+12. Mai, 10. August, 28. September, 30. November 2013.

Veröffentlicht unter Events | Schreibe einen Kommentar

Oil’s Well (PET/CBM)

Mr. NOP hat heute im Commodore PET Alive! Forum ein neues PET Spiel veröffentlicht. Wie er selber meint: wohl 20 Jahre zu spät, um große Verbreitung zu finden. Das Spiel heißt OIL’S WELL und kann im Forum heruntergeladen werden (Anmeldung erforderlich). Das Spielprinzip ist bekannt, man bohrt sich in die Erde und muss dabei das Öl (kleine Punkte) fördern. Seltsame Kreaturen im Untergrund stören dabei. Trifft man sie mit dem Bohrkopf, werden sie zerstört, doch beißen sie in das Kabel, muss man die Bohrung abbrechen. Wurde alles Öl gefördert kommt der nächste Level. Das Spiel ist komplett in Assembler geschrieben und es existieren Versionen für den PET 2001, den CBM 3032 und den CBM 4032.

Oil’s Well Bohrung
Tief unter der Erde gibt es seltsame Kreaturen …

Da ich ein fauler Mensch bin, habe ich zum Testen das Originaldiskimage mit der Maus in den VICE-Emulator gezogen. Das erste Programm von der Disk startete automatisch und stürzte ab. Kein Wunder, habe ich doch standardmäßig den CBM 4032 eingestellt und das erste Programm ist für den PET 2001. Das schrie geradezu nach einer automatischen Systemerkennung und einem Einsatz für meinen CBM Checker. Es hat mich den halben Sonntag gekostet, das umzusetzen.

Oil’s Well Startprogramm
Das Startprogramm basiert auf dem CBM Checker

Das neue Startprogramm (bitte jetzt keine unflätigen Kommentare zu meinen begrenzten Fähigkeiten als Art-Designer) prüft nun den Rechnertyp und lädt die korrekte Programmversion nach. Als Dreingabe habe ich das Programm „CBM4032 ANY HZ“ von Wolfgang Guenther eingebaut und daher kann man Oil’s Well jetzt auch auf einem echten CBM 8032 spielen (die Emulation in VICE funktioniert diesbezüglich immer noch nicht richtig). Die neue Programmdiskette kann man direkt hier runterladen.

Veröffentlicht unter CBM, Soft | 3 Kommentare

NAV: File-Browser für C64

Das Research Center for Advanced Commodore Study (dahinter verbirgt sich das Blog von Alan Reed) präsentierte vor zwei Tagen NAV, einen File-Browser für den C64, der speziell zur Navigation auf Geräten mit modernen Speichermedien wie SD-Karten konzipiert wurde. Neben Geräten wie dem uIEC und SD2IEC werden auch das IDE64 und natürlich echte Commodore-Laufwerke unterstützt. Der folgende Text ist eine sinngemäße Übersetzung von Alans Originalpostings.


Ich freue mich, NAV präsentieren zu können, einen neuen File-Browser für den C64. NAV kann mit einer Maus in Port 1, einem Joystick in Port 2, oder mit der Tastatur gesteuert werden. NAV arbeitet mit bis zu fünf Laufwerken und wurde mit folgenden Laufwerkstypen getestet: 1541, 1571, 1581, uIEC, IDE64

Jeder Laufwerkstyp hat sein eigenes spezifisches Icon.

Mit einfachem Mausklick blättert man durch Inhaltsverzeichnisse und Laufwerke. Geräte wie das uIEC, die Gigabytes an Software enthalten können, nach bestimmten Daten zu durchsuchen, kann nervtötend und sehr frustrierend sein. NAV erlaubt das einfache Arbeiten mit D64/D71/D81/DNP/M2I-Disk-Images, echten Commodore Disketten und dem IDE64. Und das mit bis zu 5 Laufwerken gleichzeitig!

Zum Browsen einfach auf das Laufwerk-Icon klicken!

Ein Druck auf die @-Taste läßt die Kommandozeile erscheinen, die genau wie das gute alte DOS Wedge funktioniert. Es wurden jedoch ein paar zusätzliche Kommandos implementiert. Mit „@HELP“ kann man sich die komplette Liste der Kommandos anzeigen lassen.

NAV findet man auf CommodoreServer.com unter ‚Public Disks‚, im Verzeichnis ‚Utilities/Disk Tools‚. Man kann es aber auch HIER herunterladen.


Posted By: HowlinAl in Blog Research Center for Advanced Commodore Study
Published: Thursday, January 10, 2013

Nachtrag (29.01.2012):
Inzwischen ist auf CommodoreServer die Version 9.2 erhältlich.
Alternativer Download vom Nightfall Blog.

Nachtrag (06.11.2013):
Die Version 9.6 (vom Februar 2013) scheint die bisher letzte zu sein.

Veröffentlicht unter C64, Soft | 17 Kommentare

Einzeiler (update)

Auf Commodore128.org wurden gestern Neuigkeiten zur “One Liners Competition” veröffentlicht. Leider wurde dabei das ursprüngliche Posting gelöscht, so dass der Link in meinem ersten Blog-Beitrag zu diesem Thema ungültig wurde. Der offizielle Start der Competition wird voraussichtlich in der nächsten Ausgabe der Commodore Free bekannt gegeben. Einsendeschluß für Beiträge soll Freitag, 8. März sein.

Die erlaubte Programmzeilenlänge ist nicht auf die von den jeweiligen Bildschirmeditoren direkt unterstützte Länge von 80 bzw. 160 Zeichen begrenzt; tricksen ist durchaus zulässig. In den Speicher gepokter und mit SYS gestarteter Maschinencode wird ebenfalls akzeptiert, reine Assemblerprogramme jedoch nicht. Beispiele kann man sich auf der jetzt als Diskimage veröffentlichten Beispieldiskette ansehen, die ich der Einfachheit halber hier als gezipptes File bereitstelle.

Muster vom Cover des Buchs: “10 PRINT CHR$(205.5+RND(1)); : GOTO 10″

Veröffentlicht unter C128, C64, CBM, Compo | Schreibe einen Kommentar