Autore Topic: Aiuto stampa messaggio su video LIMITE 255  (Letto 1630 volte)

DaGoN

  • Neo-iscritto
  • *
  • Post: 5
  • Gioco Preferito: Zak McKracken
Aiuto stampa messaggio su video LIMITE 255
« il: 03 Aprile 2016, 18:04:03 »
Ciao a tutti,
un questito in asm su come stampare un messaggio lungo a video stile macchina da scrivere
Codice: [Seleziona]
[...]
                       LDX #$00
DISPMSG         LDA MSGTXT,X
                       STA $0428,X ; SKIPPA LA PRIMA LINEA $0400 + $28
                        JSR DELAY; ASPETTA UN PO'
                        INX
                        CPX #$FF; massima lunghezza possiblie
                        BNE DISPMSG
                        RTS

MSGTXT           TEXT "Ciao a tutti,                           "; 40 caratteri per riga
                       TEXT "Blah blah blah blah blah blah"
                       TEXT "Blah blah blah blah blah blah"
                       TEXT "Blah blah blah blah blah blah"
                       TEXT "Blah blah blah blah blah blah"
                       TEXT "Blah blah blah blah blah blah"
                       TEXT "Blah blah blah blah blah blah"
                       [N]


Una vaga idea la ho... ma spero ci sia un modo migliore  :'( :'(
« Ultima modifica: 03 Aprile 2016, 18:06:23 da DaGoN »

DaGoN

  • Neo-iscritto
  • *
  • Post: 5
  • Gioco Preferito: Zak McKracken
Re:Aiuto stampa messaggio su video LIMITE 255
« Risposta #1 il: 04 Aprile 2016, 14:38:27 »
Una soluzione sarebbe questa... però è una ripetizione del codice
Codice: [Seleziona]
                       LDX #$00
                       JSR DISPMSG
                       LDX #$00
                       JSR DISPMSG2
                       RTS
             
DISPMSG         LDA MSGTXT,X
                       STA $0428,X ; SKIPPA LA PRIMA LINEA $0400 + $28
                        JSR DELAY; ASPETTA UN PO'
                        INX
                        CPX #$F0; massima lunghezza possiblie
                        BNE DISPMSG
                        RTS

                       LDX #$00
DISPMSG2       LDA MSGTXT2,X
                       STA $0512,X ; $0428 + $F0 (LUNGEZZA 6 RIGHE)
                        JSR DELAY; ASPETTA UN PO'
                        INX
                        CPX #$F0; massima lunghezza possiblie
                        BNE DISPMSG
                        RTS

MSGTXT           TEXT "Ciao a tutti,                           "; 40 caratteri per riga
                       TEXT "Blah blah blah blah blah blah"
                       TEXT "Blah blah blah blah blah blah"
                       TEXT "Blah blah blah blah blah blah"
                       TEXT "Blah blah blah blah blah blah"
MSGTXT2         TEXT "Blah blah blah blah blah blah"; seconda porzione
                       TEXT "Blah blah blah blah blah blah"
                       [N]


Come potrei ottimizzare il codice senza fare il copia/incolla della prima routine n volte???
Il mio problema è che vorrei caricare nell'accumulator un cosa del tipo
LDA ($0428 + $F0), X

Thanks in adv,
DaGoN



tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 513
  • Gioco Preferito: Krakout
Re:Aiuto stampa messaggio su video LIMITE 255
« Risposta #2 il: 05 Aprile 2016, 00:29:54 »
Ciao, da non esperto mi sono voluto dilettare e ho escogitato questa soluzione. Per semplicità ho stabilito che uno zero finale faccia da terminatore alla stringa messaggio.

Codice: [Seleziona]
* = $1000 ; SYS 4096

LDX #$00

load LDA MSGTXT, X
BEQ end ; se il carattere è 0, fine
store STA $0428, X
;JSR DELAY
INX
BNE load ; ripete se X non è diventato 0 (overflow)

; X si è azzerato per overflow.
; Per avanzare di $100, incremento la parte alta degli indirizzi
; direttamente nel codice.
INC load + 2
INC store + 2

JMP load

end RTS

MSGTXT SCRU "Ciao a tutti,                           "
SCRU "blah blah blah blah blah blah           "
SCRU "blah blah blah blah blah blah           "
SCRU "blah blah blah blah blah blah           "
SCRU "blah blah blah blah blah blah           "
SCRU "blah blah blah blah blah blah           "
SCRU "blah blah blah blah blah blah           "
SCRU "blah blah blah blah blah test           "
SCRU "blah blah blah blah blah test           "
SCRU "blah blah blah blah blah test           "
SCRU "blah blah blah blah blah test           "
SCRU "blah blah blah blah blah test           "
DC.B 0
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?

DaGoN

  • Neo-iscritto
  • *
  • Post: 5
  • Gioco Preferito: Zak McKracken
Re:Aiuto stampa messaggio su video LIMITE 255
« Risposta #3 il: 06 Aprile 2016, 14:25:04 »
Grazie mille!!! Sto usando CBM Studio e la direttiva SCRU non esiste, ma dovrebbe andare bene anche TEXT.
Cerco di adattare il mio codice al tuo suggerimento.
Devo studiare meglio il modo di manipolare le Word... :) :)
Appena riesco nell'impresa posto tutto il codice del remake eheheh.

Grazie ancora,
DaGoN