Logo: Geos Online Print Archiv
G.O.P.A. - Geos Online Print Archiv
26.04.2024 Archiv  #  Recherche  #  Links  #  Kontakt  #  Gästebuch  #  Impressum

Index
Register
Login

Die Anzeige des Archivs erfolgt grafisch. Ändern

MegaAssembler

Autor: Ulrich Schultze; Autoreninfo anzeigen

Nachdem der MegaAssembler nun schon einige Monate auf dem Markt ist, finden sich die ersten Schwächen und Fehler des Programms wie auch des Buches.

Das Hauptproblem des Assemblers war, daß er nicht mit dem geoDebugger zusammenarbeitete. Durch das Patchprogramm (s. GUP 10), welches in der GeoThek erhältlich ist, wurde dieser Mißstand nun beseitigt. Nach erfolgreicher Behandlung des Assemblers mit dem Patchprogramm erzeugt dieser nun "USR"-Dateien, die mit dem Debugger untersucht werden können.

Nun zu den Fehlern des Buches, die bis jetzt gefunden wurden: Für den C128 wurde eine Routine nicht erwähnt. Sie nennt sich "SetNewMode" ($c2dd) und ist für den Wechsel der Bildschirmmodi verantwortlich. Beim Aufruf prüft SetNewMode Bit 7 der Speicherstelle "graphMode" und stellt daraufhin den Rechnermodus gemäß der vorgefundenen Information ein, d. h., es wird auf den anderen Bildschirm umgeschaltet, es wird der jeweils andere Systemzeichensatz zur Verfügung gestellt und der Rechner wird in den 1MHz- (bei 40-Zeichen) bzw. 2MHz- (bei 80-Zeichen) -Modus versetzt.
Man stellt also den gewünschten Modus in graphMode ein und ruft SetNewMode auf. Ein Wechsel in den jeweils anderen Modus würde also folgendermaßen programmiert:

   lda   graphMode
   eor   #$80           ; Bit 7 umdrehen
   sta   graphMode
   jsr   SetNewMode     ; Modus wechseln

Nach dem Aufruf von SetNewMode muß die Bildschirmmaske wieder für den entsprechenden Modus neu aufgebaut werden. Die Definitionen für graphMode und SetNewMode sind in der Textdatei "Sym128.erg" vorhanden.
Diese Routine aber sollte, wenn überhaupt, nur verwendet werden, wenn sie eine wirklich sinnvolle Funktion erfüllt. Das ist nur dann gegeben, wenn das Programm im 40- und 80-Zeichen-Modus abläuft. Nähere Informationen dazu sind in der Serie "geosNorm" zu lesen.

Drei Druckfehler sind auf der Seite 234 bei der Routine GraphicsString ($c136) zu finden. Die Label zu den Befehlen PENXDELTA, PENYDELTA und PENXYDELTA sind falsch. Richtig müßten sie lauten: PEN_X_DELTA, PEN_Y_DELTA und PEN_XY_DELTA.

Erstaunlich ist, daß mein Name seit über vier Monaten in der GUP als Spezialist für Assembler steht. Seitdem habe ich aber keine Zuschriften bekommen. Entweder sind alle Geosprogrammierer wunschlos glücklich oder schreibfaul. Deswegen kann ich hier auch nicht auf spezielle Probleme eingehen, da mir keine bekannt geworden sind.

 

Ulrich Schultze
(siehe Autoreninfo)

 

 

 




Dieser Artikel ist Bestandteil von:

Ausgabe 11

! - - - - - M I C R O F I L M - - - - - ! | Editorial | Logo - Wettbewerb | Die Spezialisten | Druckerecke | GeoBasic ist da ! | GEOS LQ | GEOS PROFESSIONELL - Neue Software für GEOS ! | GEOS - CP - Uhr | GEOS - Ringordner | Graphiken | Zeichensätze | Hardware-Info | Der Vidio - Digitizer | DTP: Praktikum im Angebot / Titelseite | Druckertip Commodore MPS 1000 | MegaAssembler | Die geoNorm | Die GeoThek | Mitgliederlisten | Hinweise zum Clubtreffen: | Nachbestellungen der GUP


Kurzlink hierhin: http://geos-printarchiv.de/984


Letzte Änderung am 01.11.2019