CBM prg Studio 3.0.0: Probleme

CBM prg Studio
Fehler & Probleme beim CBM prg Studio 3.0.0

Auch nach dem Update auf 3.0.0 gibt es einige Probleme. Sofern mir diese bekannt sind, werde ich sie hier nach und nach auflisten.

Mittlerweile ist ‚CBM prg Studio 3.1.0 (BETA)‚ erschienen. Daher habe ich Korrekturen ab BETA 3.1.0 grün hervorgehoben!

 

13.06.2014:
Wieder mal ist (leider) Seb fündig geworden 😉 .
Die Addition von Labeln bei Y-indizierter-Addressierung sta/lda label+1,Y führt zu einer Fehlermeldung. Mit dem X-Register geht es.
Bei 3.1.0 behoben.

 

27.05.2014:
Mir sind eben zwei weitere Probleme aufgefallen, die ich auch schon an Arthur weitergeleitet habe.

1.) Das Debuggen mit VICE klappt nicht mehr so, wie in der letzten 3.0.0 BETA. Habt ihr ‚To VICE dump‘ und ‚Use VICE debugger‘ aktiviert und startet das Debuggen, dann öffnet sich zwar VICE und die Label und Breakpoints wurden geladen aber leider fehlt das Programm.
Korrektur ab 3.1.0 BETA – Dieses Problem trat auf, wenn ihr unter Optionen -> Emulator Control -> Autolaunch .prg Name etwas eingetragen hattet. Dann wurde fürs Debuggen der falsche Programmname genommen.

2.) Addiert ihr etwas auf sich wiederholende Cheap-Label, dann wird die Adresse evtl. falsch berechnet.

main
 ldx #0
@loop           ;(^1)
 dex
 bne @loop
lb1
 ldx #4
 ldy #0
@loop           ;(^2)
 sta $0400,Y
 dey
 bne @loop
           
 inc @loop+2    ;Basis -> (^1) wird also falsch berechnet
 inc @loop      ;Basis -> (^2) ist korrekt

 dex
 bne @loop
 rts

Korrektur ab 3.1.0 BETA – Nun kann man wieder mit einem Cheap-Label rechnen.

 

22.05.2014:
Das folgende Problem wurde per Kommentar von Seb gemeldet. Danke für den Hinweis.

Der Assembler des CBM prg Studio wurde in einem bisher unerwähnten Punkt geändert! Leider führt dies dazu, dass es bei einigen Sourcen auf meiner Seite zu Fehlern kommt, wenn die Programme mit 3.0.0 erstellt werden. Das CBM prg Studio hat sich in diesem Punkt bisher übrigens noch nie richtig verhalten (zumindest seit 2.5.3, dies ist die älteste mir vorliegende Version).

Verhalten bis zur Version 2.8.0:

 lda 'a'   ;das BYTE für das Zeichen 'a' in den Akku laden
 lda #'a'  ;führte zu einem Fehler!

 

Nur bei 2.9.0 waren beide Schreibweisen möglich (der Assembler verhielt sich aber trotzdem falsch!):

 lda #'a'  ;das BYTE für das Zeichen 'a' in den Akku laden
 lda 'a'   ;verhält sich identisch zu #'a' (was aber eigentlich falsch ist!!)

 

Seit 3.0.0 kommt es nun wieder zu einem Fehler, nur umgekehrt:

 lda #'a'  ;das BYTE für das Zeichen 'a' in den Akku laden
 lda 'a'   ;führt zu einem Fehler!

 

Korrekt wäre folgendes Verhalten:

 lda #'a'  ;das BYTE für das Zeichen 'a' in den Akku laden
 lda 'a'   ;lädt das BYTE, das durch die Adresse von 'a' bestimmt wird


Ihr könnt also aktuell schon, statt lda ‚a‘, das eigentlich richtige lda #‘a‘ verwenden.

Arthur ist sich des Problems bewußt, sobald er den Fehler behoben hat, werde ich die Sourcen auf der Seite anpassen und auf die Verwendung der dann korrigierten Version hinweisen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Protected by WP Anti Spam