WUDSN und Atari800MacX: Warum hier Absturz?
von skriegel » Sa 1. Aug 2009, 23:34Der Betreff klingt irgendwie doof, aber mir fällt gerade nix besseres ein. Also:
Ich habe folgendes kleines Beispielprogramm aus Peter Finzels Assemblerbuch (Danke, YellowMan):
Das habe ich in WUDSN wie folgt eingegeben:
Wenn ich das nun kompiliere und ausführe (Shift+Cmd+0) dann öffnet sich Atari800MacX zwar, führt aber die Befehle nicht aus und bringt eine Fehlermeldung (Bild anklicken für volle Größe):
Ändere ich nun die Startadresse auf $1000 verhält es sich etwas anders: Das Programm wird ausgeführt, stürzt dann aber nach wenigen Sekunden genau so ab:
Wieso ist das so? Wieso Ausführung bei $1000, aber nicht bei $a800? Wieso überhaupt der Absturz?
Und nicht vergessen: Bin immer noch blutiger Assembler-Anfänger.
Edit: Es spielt übrigens keine Rolle, welchen Rechner (OS B 48k, 600XL, 800XL, 576XL etc.) ich im Atari800MacX einstelle, es ist immer das gleiche.
Ich habe folgendes kleines Beispielprogramm aus Peter Finzels Assemblerbuch (Danke, YellowMan):
- Code: Alles auswählen
*
* Drei Farbregister laden
*
color1 = $2c5
color2 = $2c6
color4 = $2c8
*
org $a800
ldx #$0a ; hellgrau
ldy #$00 ; schwarz
lda #$a8 ; hellgruen
sta color4 ; Rahmen
stx color1 ; Schrift
sty color2 ; Hintergrund
brk
Das habe ich in WUDSN wie folgt eingegeben:
- Code: Alles auswählen
; Drei Farbregister laden
color1 = $2c5
color2 = $2c6
color4 = $2c8
*=$a800
ldx #$0a ; hellgrau
ldy #$00 ; schwarz
lda #$a8 ; hellgruen
sta color4 ; Rahmen
stx color1 ; Schrift
sty color2 ; Hintergrund
brk
Wenn ich das nun kompiliere und ausführe (Shift+Cmd+0) dann öffnet sich Atari800MacX zwar, führt aber die Befehle nicht aus und bringt eine Fehlermeldung (Bild anklicken für volle Größe):

Ändere ich nun die Startadresse auf $1000 verhält es sich etwas anders: Das Programm wird ausgeführt, stürzt dann aber nach wenigen Sekunden genau so ab:

Wieso ist das so? Wieso Ausführung bei $1000, aber nicht bei $a800? Wieso überhaupt der Absturz?
Und nicht vergessen: Bin immer noch blutiger Assembler-Anfänger.

Edit: Es spielt übrigens keine Rolle, welchen Rechner (OS B 48k, 600XL, 800XL, 576XL etc.) ich im Atari800MacX einstelle, es ist immer das gleiche.