Commodore 64 > Programmazione, Grafica e Musica
Scelta di una stringa
theway:
Ciao ,salve a tutti sono nuovo in questo forum e sembra piuttosto interessante!
Vorrei chiedervi un aiuto in quanto ho iniziato da poco a riprendere la programmazione
in Assembly per C64, sogno che nutro da quando era adolescente.
Sto usando KickAssembler: ho una lista di testi :
txt:
1 .text "ti trovi nella stanza 01 -"
2 .text "ti trovi nella stanza 02 -"
3 .text "ti trovi nella stanza 03 -"
e per sceglierne uno vorrei usare lo stesso metodo che si usa con con i .byte
Scelta:
ldx #00
completeT:
lda txt, x
sta $0400, x
inx
cpx #21
bne complete
rts
in questo modo riesco a stampare una stringa ma se volessi scegliere la 2 o la 3 non riesco:
ldy #$00
choice:
lda txt
sta txt, y
rts
cosa sbaglio? ::)
eregil:
Non capisco bene come immaginavi che dovesse funzionare, ma a occhio (e a parte qualche errore di digitazione) direi che hai definito un solo puntatore (etichetta) alla prima stringa, invece ti serve una tabella di puntatori (o di offset) ed eventualmente un modo diverso di delimitare le stringhe ovvero determinare l'ultimo carattere.
Nei tuoi post per delimitare il codice usa i tag {code} ... {/code} (con le quadre anziché le graffe).
theway:
Grazie per la risposta.
Hai per caso qualche esempio per la "tabella di puntatori"? O "delimitare le stringhe"
mssmsoft:
Questo è quello che propone copilot (browser Microsoft Edge)
--- Codice: --- .org $0801
.byte $0b, $08, $00, $00, $9e, $32, $30, $36, $31, $00, $00, $00
Start:
lda #$00
sta StringIndex
NextString:
lda StringArray, x
beq EndOfArray
jsr PrintString
inx
jmp NextString
EndOfArray:
rts
PrintString:
ldy #$00
PrintChar:
lda (StringArray), y
beq EndOfString
jsr $ffd2 ; CHROUT routine to print character
iny
jmp PrintChar
EndOfString:
rts
StringArray:
.byte "Stringa1", 0
.byte "Stringa2", 0
.byte "Stringa3", 0
.byte 0 ; Terminatore dell'array
StringIndex:
.byte 0
--- Termina codice ---
Io non l'ho provato :biggrin:
theway:
Grazie mille! Mi e' piu' o meno tutto chiaro tranne lo stringindex finale.. ???
Navigazione
[0] Indice dei post
Vai alla versione completa