Hallo erstmal.
Ich habe hier im Forum schon eine ganze Weile mitgelesen
und mich nun endlich auch einmal angemeldet.
Ich versuche schon seit einer Weile mit eigener Software auf die Speicherkarte zuzugreifen,
habe bisher aber leider nur sehr mässigen Erfolg dabei.
ich habe es bisher erstmal nur mit dem lesen versucht.
Ich bin leider etwas zu blöde die speicherkartenspzifikationen zu verstehen,
und die Beispielsourcen von O.Achten auf icomp.de haben mich leider noch nicht weitergebracht.
mir sind einfach ein paar sachen noch nicht ganz klar.
hier ein codebeispiel, welches einfach nur stumpf block für block
von der karte in den bildschirmspeicher schaufeln soll:
(die routinen aus der * MMC64 Programming Guide * habe ich unverändert übernommen)
!to"mmctest.prg"
*=$1000
memptr = $10
mloop ;muss man vor jedem blockread initialisieren?
jsr .initmmc64
jsr .resetmmc64
jsr .initwaitmmc64
;mloop ;oder nur einmal?
lda #$00 ;immer alles schön in den bildschirmspeicher schreiben
sta memptr
lda #$04
sta memptr+1
jsr .blockreadcmd
jsr .blockread
;inc .blockrcmd+3 ; hier weiss ich nicht so recht weiter, muss ich die blockadresse immer um eins
;bne ninc ; raufzählen oder immer gleich um 512?
inc .blockrcmd+4 ; dadurch das das kommando rückwärts im speicher steht müsste das niedrigste byte vorne
inc .blockrcmd+4 ; stehen wie sich das ja auch gehört ;), was ist aber mit den bits, stehen die richtig rum oder
; muss ich die vertauschen?
bne ninc
inc .blockrcmd+5
bne ninc
inc .blockrcmd+6
ninc
lda .blockrcmd+6
sta $0400+(20*40)
lda .blockrcmd+5
sta $0400+1+(20*40)
lda .blockrcmd+4
sta $0400+2+(20*40)
lda .blockrcmd+3
sta $0400+3+(20*40)
jmp mloop
rts
wenn ich das programm laufen lasse kommt aber immer nur der klammeraffe auf den bildschirm, auch wenn
ich die adresse immer um 1 weiterzähle, und obwohl die karte pickepackevoll ist
muss ich das mmc irgendwo aktiv schalten damit die leseroutinen funktionieren?
was genau ist mit 32bit memory address to read für cmd17 gemeint? ist das die
Nummer des 512-byte blocks oder tatsächlich der anfang in einem 32bit-adressraum?
sind die einzelnen bits in den bytes richtigherum oder verkehrt herum?
wäre super wenn mir jemand auf die sprünge helfen könnte, ich bin am verzweifeln...
beste grüße, frickr