Emulator in Python...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Die "Schleifenvariante" ist es. Hab ich auch eingebaut: https://github.com/jedie/DragonPy/commi ... b1cdb75960

Wobei mir die aktuelle Implementierung nicht so richtig gefällt. Aber tut's erstmal...

Ich bin jetzt eh an den Punk wo ich an der Peripherie arbeiten muß und das wird schwieriger, weil es weniger Dokumentation darüber gibt, als über die 6809 CPU.

Zum Glück ist das aber nicht viel. Die Hauptkomponenten sind hier aufgeführt: http://www.6809.org.uk/dragon/hardware.shtml

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hab mir überlegt, das ist erst mal kleiner Anfangen will, was die Peripherie anbelangt.

Ich werde mal versuchen das ROM von http://searle.hostei.com/grant/6809/Simple6809.html zu starten. Dann brauche ich nur eine virtuelle RS232 Schnittstelle.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

So, ich hab ein wenig aufgeräumt und angefangen Simple6809 zu unterstützten, mit: https://github.com/jedie/DragonPy/commi ... a03c5d7a9c

Vielleicht bin ich aber schon viel weiter als ich dachte. Denn es passiert was, im Text-Screen-RAM!
Das läuft dann in einer Schleife:

Code: Alles auswählen

$ba7e read pc byte: $e7 from $ba7e
$ba7e	STB	INDEXED instruction_ST8	| $ba7e: $ba79-$ba85 - Clears text screen with value in B (CoCo $a92a)
$ba7f read pc byte: $80 from $ba7f
$ba80 addressing 'indexed' with postbyte: $80 == 10000000
$ba80 indexed addressing mode ea=$401 	| $401: $400-$5ff - Default Text screen
$ba80 get 'indexed' byte: ea = $401 m = $60
$401 instruction_ST8 kwargs: ea=$401 m=$60 opcode=$e7 operand=<B (8-Bit):96>
$ba80 ST8 store value $60 from B at $401 	| $401: $400-$5ff - Default Text screen
 **** TODO: write $60 '`' to text screen address $401
 **** write $60 to $401 - mem info:
      $60: $5c-$61 - Floating Point Accumulator Num 2
      $401: $400-$5ff - Default Text screen
-------------------------------------------------------------------------------
$ba80 read pc byte: $8c from $ba80
$ba80	CMPX	IMMEDIATE instruction_CMP16	| $ba80: $ba79-$ba85 - Clears text screen with value in B (CoCo $a92a)
$ba81 read pc word: $05ff from $ba81
$ba81 addressing 'immediate word' value: $5ff
$ba81 instruction_CMP16 kwargs: ea=$ba81 m=$5ff opcode=$8c operand=<X (8-Bit):1024>
$ba83 CMP16 X $400 - $5ff = $-1ff
-------------------------------------------------------------------------------
$ba83 read pc byte: $23 from $ba83
$ba83	BLS	RELATIVE instruction_BLS	| $ba83: $ba79-$ba85 - Clears text screen with value in B (CoCo $a92a)
$ba84 read pc byte: $f9 from $ba84
$ba85 addressing 'relative' ea = $ba85 + -7 = $ba7e 	| $ba7e: $ba79-$ba85 - Clears text screen with value in B (CoCo $a92a)
$ba85 get 'relative' byte: ea = $ba7e m = $e7
$ba7e instruction_BLS kwargs: ea=$ba7e m=$e7 opcode=$23
$ba85 BLS branch to $ba7e, because C|Z==0 	| $ba7e: $ba79-$ba85 - Clears text screen with value in B (CoCo $a92a)
-------------------------------------------------------------------------------
$ba7e read pc byte: $e7 from $ba7e
$ba7e	STB	INDEXED instruction_ST8	| $ba7e: $ba79-$ba85 - Clears text screen with value in B (CoCo $a92a)
$ba7f read pc byte: $80 from $ba7f
$ba80 addressing 'indexed' with postbyte: $80 == 10000000
$ba80 indexed addressing mode ea=$401 	| $401: $400-$5ff - Default Text screen
$ba80 get 'indexed' byte: ea = $401 m = $60
$401 instruction_ST8 kwargs: ea=$401 m=$60 opcode=$e7 operand=<B (8-Bit):96>
$ba80 ST8 store value $60 from B at $401 	| $401: $400-$5ff - Default Text screen
 **** TODO: write $60 '`' to text screen address $401
 **** write $60 to $401 - mem info:
      $60: $5c-$61 - Floating Point Accumulator Num 2
      $401: $400-$5ff - Default Text screen
Wobei $60 '`' ein Leerzeichen ist :wink:

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

So, alles aufgeteilt: https://github.com/jedie/DragonPy/compa ... ...4fd0e4b

Startbar dann so:
DragonPy$ ./DragonPy_CLI.py --cfg Simple6809Cfg --verbosity=5
btw.:
DragonPy$ ./DragonPy_CLI.py --cfg Dragon32Cfg --verbosity=5
Für das Simple6809 ROM fehlen aber noch ein paar Opcodes ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hm. Brache nochmal eine Idee:

Bei der Instruktion "COM".

Beim Simple6809 ROM kommt das zustande:
COM $ff

Implementiert hab ich es als ergebnis = ~m
Also:

Code: Alles auswählen

~$ff = $-100
Was natürlich nicht richtig ist.
Allerdings finde ich auch bei XRoar code keine hinweise darauf, das eine maskierung stattfindet.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hat sich erledigt. unsigned fehlt: https://github.com/jedie/DragonPy/commi ... df8bf6d2e9 :lol:

Rausgefunden durch ein kleines BASIC Test Programm:

Code: Alles auswählen

10 SA=&H5000				' VALUE STORAGE ADDRESS
20 LA=&H4000				' LOAD / EXECUTE ADDRESS
25 PRINT "POKE MACHINE CODE TO: $";HEX$(LA)
30 PA = LA					' START ADDRESS FOR POKE
50 READ HB$					' HEX CONSTANTS
60 IF HB$="END" THEN 100
70 POKE PA,VAL("&H"+HB$)	' POKE VALUE INTO MEMORY
80 PA = PA + 1				' INCREMENT POKE ADDRESS
90 GOTO 50
100 PRINT "LOADED, END ADDRESS IS: $"; HEX$(PA-1)
110 PRINT
120 INPUT "INPUT A START VALUE: $";A$
130 A = VAL("&H"+A$)
140 POKE SA,A ' SET START VALUE
150 PRINT "START VALUE FROM $";HEX$(SA);": $";HEX$(PEEK(SA))
160 EXEC LA
170 PRINT "VALUE FROM $";HEX$(SA);": $";HEX$(PEEK(SA))
180 GOTO 110
1000 ' MACHINE CODE IN HEX
1030 DATA B6,50,00		' LDA $5000
1040 DATA 43			' COMA
1050 DATA B7,50,00		' STA $5000
1060 DATA 39			' RTS
10000 DATA END
Zuletzt geändert von Anonymous am Montag 7. Oktober 2013, 19:57, insgesamt 1-mal geändert.
Grund: BASIC-Dialekt zu 'locobasic' geändert,

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

@jens: Ich war mal so unverschämt in Deinem Beitrag herum zu pfuschen. Locobasic ist im Gegensatz zu VisualBasic auch aus der 8-Bit-Ära und die Syntaxhervorhebung dafür kennt Zeilennummern und den DATA-Befehl, und auch die üblichen Funktionen die BASICs zu der Zeit hatten. :-)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Danke, muß ich mir merken...


Noch mal zurück zu den CC Registern. Kann ich es mir nicht einfacher machen und alle Rechenoperationen unsigned machen. Dann in den CC Registern das machen (wobei r das unsigned Ergebnis ist):
self.N = 1 if 127 < r < 256 else 0 # Negative
self.Z = 1 if r == 0 else 0 # Zerro
self.C = 1 if r == 256 or r == -1 else 0 # Carry
self.V = 1 if r > 255 or r <0 else 0

Beispiel "Negative" das mache ich z.Z. so:

Code: Alles auswählen

self.N = 1 if signed8(r) < 0 else 0
Aber die extra Umwandlung kann ich mir nach der obigen Idee sparen.

Wobei mir nicht klar ist, wie man das beim Half-Carry machen kann.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
funkheld
User
Beiträge: 258
Registriert: Sonntag 31. Oktober 2010, 09:26

Jup, das lässt sich ja gut lesen.
Kannst du schon eine kleine Kostprobe hier reinstellen vom Emulator ?

Danke.
Gruss
BlackJack

@funkheld: jens hat doch schon mehrfach Links zu Github gepostet.
funkheld
User
Beiträge: 258
Registriert: Sonntag 31. Oktober 2010, 09:26

Jup, danke.
Wo finde ich die links vom Sourcercode ?

Danke.
Gruss
funkheld
User
Beiträge: 258
Registriert: Sonntag 31. Oktober 2010, 09:26

Ja danke. Wunderbar.

Ich habe hier etwas gefunden um ihn glaube ich mit Python zu starten, ist das richtig ?
http://archive.worldofdragon.org/phpBB3 ... 8&start=40

Wenn ja, wo packe diese ganzen Programme hin die dort im Archiv sind, damit sie beim Starten gefunden werden?
Gibt es irgendwo ein Auflistung welche zusätzlichen Py ich noch brauche, die eingebunden werden ?

Danke.
Gruss
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Das ist der passende Nachbarthread in Englisch...
funkheld hat geschrieben:Wenn ja, wo packe diese ganzen Programme hin die dort im Archiv sind, damit sie beim Starten gefunden werden?
Gibt es irgendwo ein Auflistung welche zusätzlichen Py ich noch brauche, die eingebunden werden ?
Hm?
Also mein Emulator kann eh noch nicht wirklich BASIC/MaschinenCode Programme ausführen. Das ist es noch viel zu früh.

Wenn du einen funktionierenden Dragon/CoCo Emulator willst, nimm XRoar: http://www.6809.org.uk/dragon/xroar.shtml

Ansonsten bist du wie alle anderen auch gern eingeladen, an DragonPy mit zu helfen ;)


Btw. ich arbeite gerade an einem Grundlegenden Bugfix: z.Z. unterscheide ich nicht, ob eine Instruktion ein Byte oder ein Word vom Speicher braucht. An dieser Unterscheidung arbeite ich gerade...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
funkheld
User
Beiträge: 258
Registriert: Sonntag 31. Oktober 2010, 09:26

Hallo, danke für die Info.

Warum hast du den Dragon ausgewählt ? Ist doch ein relativ einsamer Computer in der 8Bitwelt.
Ist es ein besonderer Computer der sich für ein Softwareexperiement eignet oder ....

Danke.
Gruss
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Reine Nostalgie, weil es mein erster Computer war.

Stimmt schon, der hatte außerhalb von UK keine große Verbreitung. Deswegen kann man ihn heute noch *neu* und unbenutzt für $45 aus den USA kaufen (Senden auch nach Deutschland, kostet allerdings $90), ich glaube das dürfte der einzige Homecomputer aus den 80zigern sein, den man noch heute neu kaufen kann.
Nähere Info's dazu: http://archive.worldofdragon.org/phpBB3 ... 531&p=8810

Bei DragonPy kann man verschiedene Konfigurationen erstellen. Also könnte man Prinzipiell alle 6809 basierenden Systeme emulieren. Wäre auch denkbar, das man die Modularität weiter treibt und auch die CPU "austauschbar" zu machen. Ich hatte damit bei https://github.com/jedie/PyEmulator angefangen. Aber dann doch noch mal neu mit DragonPy angefangen.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

jens hat geschrieben:Btw. ich arbeite gerade an einem Grundlegenden Bugfix: z.Z. unterscheide ich nicht, ob eine Instruktion ein Byte oder ein Word vom Speicher braucht. An dieser Unterscheidung arbeite ich gerade...
So, nun sollte es so sein das ea/m in byte/word richtig übergeben werden:

Neues "Daten Python Skript" erzeugt -> https://github.com/jedie/DragonPy/commi ... a7b0cea194

Und das dann umgesetzt -> https://github.com/jedie/DragonPy/commi ... 8f6baac6f1

Nun muß ich mal mehr unittests schreiben um das zu überprüfen ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Simple6809 ROM scheint langsam zu starten... Der RAM Test scheint zu funktionieren, kurz danach scheint es aber fehlerhaft zu sein:

Code: Alles auswählen

$ ./DragonPy_CLI.py --cfg Simple6809Cfg --verbosity=30 --area_debug=5:db80-ffff
logger name: DragonPy

DragonPy - Dragon 32 emulator in Python None
-------------------------------------------------------------------------------

set log level to: 20
Activate area debug: Set debug level to 5 from $db80 to $ffff
Startup CPU with: /usr/bin/python cpu6809.py --bus_socket_host=127.0.0.1 --bus_socket_port=51355 --cfg Simple6809Cfg --verbosity=30 --area_debug=5:db80-ffff
logger name: DragonPy

DragonPy - Dragon 32 emulator in Python None
-------------------------------------------------------------------------------

set log level to: 20
Activate area debug: Set debug level to 5 from $db80 to $ffff
Connect to internal socket bus I/O ('127.0.0.1', 51355)
CPU started
reading outside memory area (PC:$db6c): $7fff
reading outside memory area (PC:$db6f): $7fff
writing outside memory area (PC:$db6f): $7fff
reading outside memory area (PC:$db71): $7fff
Activate area debug at $db80
$db7f 30 LEAX	 register:<X (16-Bit):$7ffd> ea:$7f35    | None
$0021 9F STX	 register:<X (16-Bit):$7f35> ea:$21 m:$0 | None
$db86 1F TFR	 ea:$db86 m:$14                          | None
$db88 8E LDX	 register:<X (16-Bit):$7f35> ea:$db88 m:$dbce | None
$db8b CE LDU	 register:<U (16-Bit):$0000> ea:$db8b m:$76 | None
$db8e C6 LDB	 register:<B (8-Bit):$00> ea:$db8e m:$12 | None
$db8f BD JSR	 ea:$dcae                                | None
$dbcf A6 LDA	 register:<A (8-Bit):$ff> ea:$dbcf m:$40 | None
...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich hätte schon vor länger Zeit wissen sollen, das man XRoar mit -trace starten kann und dann schöne Debug Ausgaben erzeugt werden.

Ich hab in DragonPy nun bei --verbosity=20 eine recht ähnliche Ausgabe gemacht. So kann man gut vergleichen:

xraor:

Code: Alles auswählen

fffe| b3b4        [RESET]                     
b3b4| 318ce4      LEAY    -$1c,PCR            cc=50 a=00 b=00 dp=00 x=0000 y=b39b u=0000 s=0000
b3b7| 7e8000      JMP     $8000               cc=50 a=00 b=00 dp=00 x=0000 y=b39b u=0000 s=0000
8000| 7ebb40      JMP     $bb40               cc=50 a=00 b=00 dp=00 x=0000 y=b39b u=0000 s=0000
bb40| cc0034      LDD     #$0034              cc=50 a=00 b=34 dp=00 x=0000 y=b39b u=0000 s=0000
bb43| 8eff00      LDX     #$ff00              cc=58 a=00 b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
bb46| a701        STA     1,X                 cc=54 a=00 b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
bb48| a703        STA     3,X                 cc=54 a=00 b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
bb4a| a784        STA     ,X                  cc=54 a=00 b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
bb4c| 43          COMA                        cc=59 a=ff b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
bb4d| a702        STA     2,X                 cc=59 a=ff b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
bb4f| e701        STB     1,X                 cc=51 a=ff b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
bb51| e703        STB     3,X                 cc=51 a=ff b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
bb53| 8eff20      LDX     #$ff20              cc=59 a=ff b=34 dp=00 x=ff20 y=b39b u=0000 s=0000
bb56| 6f01        CLR     1,X                 cc=54 a=ff b=34 dp=00 x=ff20 y=b39b u=0000 s=0000
bb58| 6f03        CLR     3,X                 cc=54 a=ff b=34 dp=00 x=ff20 y=b39b u=0000 s=0000
bb5a| 4a          DECA                        cc=58 a=fe b=34 dp=00 x=ff20 y=b39b u=0000 s=0000
...
DragonPy:

Code: Alles auswählen

$b3b4 31   LEAY    register:Y=0000 ea:$b39b           | cc=50 a=00 b=00 dp=00 x=0000 y=b39b u=0000 s=0000
$b3b7 7E   JMP     ea:$8000                           | cc=50 a=00 b=00 dp=00 x=0000 y=b39b u=0000 s=0000
$8000 7E   JMP     ea:$bb40                           | cc=50 a=00 b=00 dp=00 x=0000 y=b39b u=0000 s=0000
$bb41 CC   LDD     register:D=0000 ea:$bb41 m:$34     | cc=50 a=00 b=34 dp=00 x=0000 y=b39b u=0000 s=0000
$bb44 8E   LDX     register:X=0000 ea:$bb44 m:$ff00   | cc=58 a=00 b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
$ff01 A7   STA     register:A=00 ea:$ff01 m:$b3       | cc=50 a=00 b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
$ff03 A7   STA     register:A=00 ea:$ff03 m:$35       | cc=50 a=00 b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
$ff00 A7   STA     register:A=00 ea:$ff00 m:$0        | cc=54 a=00 b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
$bb4c 43   COMA    register:A=00                      | cc=59 a=ff b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
$ff02 A7   STA     register:A=ff ea:$ff02 m:$0        | cc=51 a=ff b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
$ff01 E7   STB     register:B=34 ea:$ff01 m:$b3       | cc=51 a=ff b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
$ff03 E7   STB     register:B=34 ea:$ff03 m:$35       | cc=51 a=ff b=34 dp=00 x=ff00 y=b39b u=0000 s=0000
$bb54 8E   LDX     register:X=ff00 ea:$bb54 m:$ff20   | cc=59 a=ff b=34 dp=00 x=ff20 y=b39b u=0000 s=0000
$ff21 6F   CLR     ea:$ff21 m:$34                     | cc=54 a=ff b=34 dp=00 x=ff20 y=b39b u=0000 s=0000
$ff23 6F   CLR     ea:$ff23 m:$37                     | cc=54 a=ff b=34 dp=00 x=ff20 y=b39b u=0000 s=0000
$bb5a 4A   DECA    register:A=ff                      | cc=58 a=fe b=34 dp=00 x=ff20 y=b39b u=0000 s=0000
...
Und wir sehen, das die CC Register noch einige Bugs haben...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Die Trace function ist wirklich hilfreich. Hab mit https://github.com/jedie/DragonPy/commi ... 4e6a057a78 eine vergleichsfunktion gehackt.

Es wird Zeile für Zeile, Opcode für Opcode verglichen. So findet man sehr schnell Fehlerhafte verarbeitung. Eine Bugs konnte ich so schon fixen.

Ausgabe sieht dann so aus:

Code: Alles auswählen

fffe| b3b4        [RESET]
b3b4| 31   LEAY   Y=0000 ea:b39b              cc=50 a=00 b=00 dp=00 x=0000 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
b3b7| 7e   JMP    ea:8000                     cc=50 a=00 b=00 dp=00 x=0000 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
8000| 7e   JMP    ea:bb40                     cc=50 a=00 b=00 dp=00 x=0000 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb40| cc   LDD    D=0000 ea:bb41 m:34         cc=50 a=00 b=34 dp=00 x=0000 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb43| 8e   LDX    X=0000 ea:bb44 m:ff00       cc=58 a=00 b=34 dp=00 x=ff00 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=1 Z=0 V=0 C=0
bb46| a7   STA    A=00 ea:ff01 m:b3           cc=54 a=00 b=34 dp=00 x=ff00 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb48| a7   STA    A=00 ea:ff03 m:35           cc=54 a=00 b=34 dp=00 x=ff00 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb4a| a7   STA    A=00 ea:ff00 m:0            cc=54 a=00 b=34 dp=00 x=ff00 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb4c| 43   COMA   A=00                        cc=59 a=ff b=34 dp=00 x=ff00 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=1 Z=0 V=0 C=1
bb4d| a7   STA    A=ff ea:ff02 m:0            cc=59 a=ff b=34 dp=00 x=ff00 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=1 Z=0 V=0 C=1
bb4f| e7   STB    B=34 ea:ff01 m:b3           cc=51 a=ff b=34 dp=00 x=ff00 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=1
bb51| e7   STB    B=34 ea:ff03 m:35           cc=51 a=ff b=34 dp=00 x=ff00 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=1
bb53| 8e   LDX    X=ff00 ea:bb54 m:ff20       cc=59 a=ff b=34 dp=00 x=ff20 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=1 Z=0 V=0 C=1
bb56| 6f   CLR    ea:ff21 m:34                cc=54 a=ff b=34 dp=00 x=ff20 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb58| 6f   CLR    ea:ff23 m:37                cc=54 a=ff b=34 dp=00 x=ff20 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb5a| 4a   DECA   A=ff                        cc=58 a=fe b=34 dp=00 x=ff20 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=1 Z=0 V=0 C=0
bb5b| a7   STA    A=fe ea:ff20 m:1            cc=58 a=fe b=34 dp=00 x=ff20 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=1 Z=0 V=0 C=0
bb5d| 86   LDA    A=fe ea:bb5e m:f8           cc=58 a=f8 b=34 dp=00 x=ff20 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=1 Z=0 V=0 C=0
bb5f| a7   STA    A=f8 ea:ff22 m:0            cc=58 a=f8 b=34 dp=00 x=ff20 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=1 Z=0 V=0 C=0
bb61| e7   STB    B=34 ea:ff21 m:34           cc=50 a=f8 b=34 dp=00 x=ff20 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb63| e7   STB    B=34 ea:ff23 m:37           cc=50 a=f8 b=34 dp=00 x=ff20 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb65| 6f   CLR    ea:ff20 m:1                 cc=54 a=f8 b=34 dp=00 x=ff20 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb67| 6f   CLR    ea:ff22 m:0                 cc=54 a=f8 b=34 dp=00 x=ff20 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb69| a6   LDA    A=f8 ea:ff22 m:0            cc=54 a=00 b=34 dp=00 x=ff20 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb6b| 8e   LDX    X=ff20 ea:bb6c m:ffc0       cc=58 a=00 b=34 dp=00 x=ffc0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=1 Z=0 V=0 C=0
bb6e| c6   LDB    B=34 ea:bb6f m:10           cc=50 a=00 b=10 dp=00 x=ffc0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffc0 m:7e           cc=54 a=00 b=10 dp=00 x=ffc2 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=10                        cc=50 a=00 b=0f dp=00 x=ffc2 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=0f dp=00 x=ffc2 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffc2 m:7e           cc=54 a=00 b=0f dp=00 x=ffc4 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=0f                        cc=50 a=00 b=0e dp=00 x=ffc4 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=0e dp=00 x=ffc4 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffc4 m:7e           cc=54 a=00 b=0e dp=00 x=ffc6 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=0e                        cc=50 a=00 b=0d dp=00 x=ffc6 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=0d dp=00 x=ffc6 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffc6 m:7e           cc=54 a=00 b=0d dp=00 x=ffc8 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=0d                        cc=50 a=00 b=0c dp=00 x=ffc8 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=0c dp=00 x=ffc8 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffc8 m:7e           cc=54 a=00 b=0c dp=00 x=ffca y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=0c                        cc=50 a=00 b=0b dp=00 x=ffca y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=0b dp=00 x=ffca y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffca m:7e           cc=54 a=00 b=0b dp=00 x=ffcc y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=0b                        cc=50 a=00 b=0a dp=00 x=ffcc y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=0a dp=00 x=ffcc y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffcc m:7e           cc=54 a=00 b=0a dp=00 x=ffce y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=0a                        cc=50 a=00 b=09 dp=00 x=ffce y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=09 dp=00 x=ffce y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffce m:7e           cc=54 a=00 b=09 dp=00 x=ffd0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=09                        cc=50 a=00 b=08 dp=00 x=ffd0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=08 dp=00 x=ffd0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffd0 m:7e           cc=54 a=00 b=08 dp=00 x=ffd2 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=08                        cc=50 a=00 b=07 dp=00 x=ffd2 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=07 dp=00 x=ffd2 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffd2 m:7e           cc=54 a=00 b=07 dp=00 x=ffd4 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=07                        cc=50 a=00 b=06 dp=00 x=ffd4 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=06 dp=00 x=ffd4 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffd4 m:7e           cc=54 a=00 b=06 dp=00 x=ffd6 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=06                        cc=50 a=00 b=05 dp=00 x=ffd6 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=05 dp=00 x=ffd6 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffd6 m:7e           cc=54 a=00 b=05 dp=00 x=ffd8 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=05                        cc=50 a=00 b=04 dp=00 x=ffd8 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=04 dp=00 x=ffd8 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffd8 m:7e           cc=54 a=00 b=04 dp=00 x=ffda y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=04                        cc=50 a=00 b=03 dp=00 x=ffda y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=03 dp=00 x=ffda y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffda m:7e           cc=54 a=00 b=03 dp=00 x=ffdc y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=03                        cc=50 a=00 b=02 dp=00 x=ffdc y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=02 dp=00 x=ffdc y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffdc m:7e           cc=54 a=00 b=02 dp=00 x=ffde y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=02                        cc=50 a=00 b=01 dp=00 x=ffde y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=50 a=00 b=01 dp=00 x=ffde y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
bb70| a7   STA    A=00 ea:ffde m:7e           cc=54 a=00 b=01 dp=00 x=ffe0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb72| 5a   DECB   B=01                        cc=54 a=00 b=00 dp=00 x=ffe0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb73| 26   BNE    ea:bb70 m:a7                cc=54 a=00 b=00 dp=00 x=ffe0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb75| f7   STB    B=00 ea:ffc9 m:7e           cc=54 a=00 b=00 dp=00 x=ffe0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb78| 85   BITA   A=00 ea:bb79 m:4            cc=54 a=00 b=00 dp=00 x=ffe0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb7a| 27   BEQ    ea:bb81 m:f7                cc=54 a=00 b=00 dp=00 x=ffe0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb81| f7   STB    B=00 ea:ffdd m:7e           cc=54 a=00 b=00 dp=00 x=ffe0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb84| 1f   TFR    ea:bb85 m:9b                cc=54 a=00 b=00 dp=00 x=ffe0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
bb86| 1f   TFR    ea:bb87 m:25                cc=54 a=00 b=00 dp=00 x=ffe0 y=b39b u=0000 s=0000 | CC: E=0 F=1 H=0 I=1 N=0 Z=1 V=0 C=0
b39c| 10ce LDS    S=0000 ea:b39d m:3d7        cc=50 a=00 b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
trace: b39b| 10ce03d7    LDS     #$03d7              cc=50 a=00 b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7
own..: b39c| 10ce LDS    S=0000 ea:b39d m:3d7        cc=50 a=00 b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
address ('b39c' != 'b39b') not the same as trace reference!

b39b| 10   PAGE1+                             cc=50 a=00 b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
b39f| 86   LDA    A=00 ea:b3a0 m:37           cc=50 a=37 b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
b3a1| b7   STA    A=37 ea:ff23 m:37           cc=50 a=37 b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
b3a4| 96   LDA    A=37 ea:71 m:71             cc=50 a=71 b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
trace: b3a4| 9671        LDA     <$71                cc=58 a=ff b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7
own..: b3a4| 96   LDA    A=37 ea:71 m:71             cc=50 a=71 b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
registers ('cc=50 a=71 b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7' != 'cc=58 a=ff b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7') not the same as trace reference!

b3a6| 81   CMPA   A=71 ea:b3a7 m:55           cc=50 a=71 b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
trace: b3a6| 8155        CMPA    #$55                cc=58 a=ff b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7
own..: b3a6| 81   CMPA   A=71 ea:b3a7 m:55           cc=50 a=71 b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7 | CC: E=0 F=1 H=0 I=1 N=0 Z=0 V=0 C=0
registers ('cc=50 a=71 b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7' != 'cc=58 a=ff b=00 dp=00 x=ffe0 y=b39b u=0000 s=03d7') not the same as trace reference!

...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten