Bürgersteige klappt man vielleicht im Monsterland hoch.
Hier bevorzugen wir $1337
- lda $dc00
sta $0400
bne -
![]()
Bürgersteige klappt man vielleicht im Monsterland hoch.
Hier bevorzugen wir $1337
- lda $dc00
sta $0400
bne -
![]()
müsse es nicht *=$0815 sein ![]()
Nicht schlimm. Ich dachte ich bin noch nicht richtig wach und habe krampfhaft versucht den Unterschied zu finden.
Ich hoffe Skar1984 versteht den Code und kann ihn für sich adaptieren 😊
Entweder bin ich zu müde aber ich zähle nur 20 Bytes und inwiefern unterscheiden sich deine Bytes von meinen oben ?
Kein Problem. Wenn Fragen auftauchen einfach hier reinstellen. Es gibt immer jemand der einem weiterhelfen wird 😊
Hier dein Code, ich habe meine mal drin gelassen.
*=$0801
!byte $10,$08,$c2,$07,$9e,$32,$30,$36,$31,$00,$00,$00
loop
ldy #7
lda $dc00
sta $02
-
lsr $02
lda #$30/2
rol
sta $0428,y
dey
bpl -
ldy #$07
lda #%00000001
sta $02 ; TEMP
smallLoop
lda $02 ; Lade Temp
and $dc00
bne null
lda #$30
sta $0400,y
asl $02 ; verschiebe das Bit um eins nach links
dey
bmi loop
jmp smallLoop
null
sta $1000
lda #$31
sta $0400,y
asl $02 ; verschiebe das Bit um eins nach links
dey
bmi loop
jmp smallLoop
Alles anzeigen
Der Unterschied ist jetzt, das in der Speicherzelle $02 das abzufragende Bit steht und nach jedem Durchgang um eins nach links verschoben wird.
Jetzt macht dein Code dasselbe wie meiner.
Achso, der war von dir.
Was bei dir nicht funktionieren kann ist der Teil mit dem Akkumulator und dem verbinden mit $dc00.
Du fängst mit %00000001 and und machst darauf ein AND $DC00, danach verzweigst du in ein Null oder Eins setzen und speicherst dabei den Akku in $1000.
Wenn du de Joystick hoch drückst ist Bit 0 gelöscht und dein AND $dc00 ergibt eine 0. Deshalb wird auch bei dir dann ein "00000000" ausgegeben, denn sobald eine 0 erkannt wird ist der Akku ($1000) immer 0 und jeder AND $dc00 erzeugt eine 0.
Ich bau dir mal deinen Code etwas um so das er wie von dir gewollt funktioniert.
Ich finde den Code irgendwie komisch. Kann auf den ersten Blick nicht erkennen was dir da vermittelt werden soll.
Versuche doch mal folgendes:
*=$0801
!byte $10,$08,$c2,$07,$9e,$32,$30,$36,$31,$00,$00,$00
loop
ldy #7
lda $dc00
sta $02
-
lsr $02
lda #$30/2
rol
sta $0428,y
dey
bpl -
bmi loop
Alles anzeigen
Das ist eine kleine Schleife die dir die Bits in $dc00 in der zweiten Zeile ausgibt.
Die Reihenfolge ist von Bit 7 (links) bis Bit 0 (rechts)
Du wirst dann erkennen, das jeder Richtung und dem Button ein Bit zugeordnet ist.
Bitte melde dich an, um diesen Link zu sehen. bekommst du eine Erklärung zum Register $dc00.
Bitte melde dich an, um diesen Link zu sehen. eine kleine Einweisung