Vai al contenuto
Il server del mese è
Visita la nostra nuova lista server!

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

Pava

Comando Dat

Recommended Posts

Ciao Nerdini :asd:

Vorrei capire a cosa serve il comando DAT, tipo :

dat 0,1,19,19,19,19,8,9,11,12,15,16,2,3,4,5,6,7,4,10,13,14,17,18

Come si usa? E come richiamo le variabili?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

DAT trasforma gli elementi che scrivi tra le virgole in word e li scrive nella ram in ordine

es: dat 0, 2, 0x40, 0, 0xffff

0000 0002 0040 ffff

se invece di un numero scrivi una stringa di testo scrive in ogni word un carattere senza formattazione

es: dat "abc",0

0061 0062 0063 0000

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Per richiamarlo devi mettere :label prima del dat e usare:

:label DAT "Ciao", 0

SET A, 0 ;Carattere che vuoi prendere. 0 è il primo

SET [0x8000], [label+A] ;stampo nello schermo

Questo stamperà nello schemo "C"

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Per richiamarlo devi mettere :label prima del dat e usare:

:label "Ciao", 0

SET A, 0 ;Carattere che vuoi prendere. 0 è il primo

SET [0x8000], [label+A] ;stampo nello schermo

Questo stamperà nello schemo "C"


Assembler error: Invalid opcode ("CIAO")
[/CODE]

?.?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Wops, scusate...

E' :label DAT "Ciao", 0, non :label "Ciao", 0 :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Wops, scusate...

E' :label DAT "Ciao", 0, non :label "Ciao", 0 :P

Ok, ma non stampa niente :/ come faccio a verificare se veramente me lo stampa???

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Wops, scusate...

E' :label DAT "Ciao", 0, non :label "Ciao", 0 :P

Ok, ma non stampa niente :/ come faccio a verificare se veramente me lo stampa???

Ah ecco :asd: Comunque anche a me non stampa :sisi:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Scusate... Io dimentico pezzi di codice, ma pure voi ci potreste arrivare da soli ._.


:label DAT "Ciao", 0
SET A, 0 ;Carattere che vuoi prendere. 0 è il primo
SET B, [label+A]
ADD B, 0xF000
SET [0x8000], B ;stampo nello schermo
:end SET PC, end
[/CODE]

Se volete che stampa tutta la stringa:

[CODE]

:label DAT "Ciao", 0 ; quello che voglio stampare

SET A, 0x0000 ; serve per contare i caratteri letti
SET I, 0x8000 ; serve per vedere dove sta il puntatore dello schermo

:printloop
SET B, [label+A] ; prendo il carattere
IFE B, 0 ;se è 0
SET PC, end ; la sequenza è finita, passa alla fine
ADD B, 0xF000 ; aggiungo il colore
SET [I], B ; stampo nello schermo
ADD A, 1 ; incremento il puntatore
ADD I, 1 ; incremento il puntatore
SET PC, printloop ; prossimo carattere
:end SET PC, end

[/CODE]

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Scusate... Io dimentico pezzi di codice, ma pure voi ci potreste arrivare da soli ._.


:label DAT "Ciao", 0
SET A, 0 ;Carattere che vuoi prendere. 0 è il primo
SET B, [label+A]
ADD B, 0xF000
SET [0x8000], B ;stampo nello schermo
:end SET PC, end
[/CODE]

Se volete che stampa tutta la stringa:

[CODE]

:label DAT "Ciao", 0 ; quello che voglio stampare

SET A, 0x0000 ; serve per contare i caratteri letti
SET I, 0x8000 ; serve per vedere dove sta il puntatore dello schermo

:printloop
SET B, [label+A] ; prendo il carattere
IFE B, 0 ;se è 0
SET PC, end ; la sequenza è finita, passa alla fine
ADD B, 0xF000 ; aggiungo il colore
SET [I], B ; stampo nello schermo
ADD A, 1 ; incremento il puntatore
ADD I, 1 ; incremento il puntatore
SET PC, printloop ; prossimo carattere
:end SET PC, end

[/CODE]

Io ho iniziato a capirlo qualche ore fa, pensi che ci arrivo? :lol:

Grazie comunque!

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ma la funzione :end SET PC, end a che serve???

Loop infinito, almeno il testo non scompare.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Loop infinito, almeno il testo non scompare.

E se vorrei farlo ad intermittenza?

(Okai, ti stiamo leggermente stancando, quindi eviterò di scassarti ulteriormente, andrò da faaabio :asd:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

E se vorrei farlo ad intermittenza?

(Okai, ti stiamo leggermente stancando, quindi eviterò di scassarti ulteriormente, andrò da faaabio :asd:)

Che vuol dire? D:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Piccola guida con i DAT

http://0x10co.de/tblzv


;Fatto da pava per minecraftitalia.it
;potete liberamente usarlo per i vostri programmi

set a, 0 ;contatore
set x, 10 ;numero di lettere
sub x, 1 ;tolto uno xke si calcola anche lo 0
:label dat "Ciao", " prova", 0 ;creo la parola "ciao"
set b, [label+a] ;setto b come la lettera di contatore A
bor b, 0xf000 ;setto b, come l'or tra la lettera e il colore 0xf000(bianco). questo serve per aggiungerci il colore.
set [0x8000+a], b ;setto la cella 0x8000+A con il corrispettivo carattere (label+a)
ifn a, x ;se A supera X ([0,1,2,3] quindi 4 lettere) smette di aumentare il carattere
add a, 1 ;aumento A di uno
ife a, x ;se A è uguale a x, killa il programma
brk
set pc, label ; nuovo giro, nuova corsa
[/CODE]

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Piccola guida con i DAT

http://0x10co.de/tblzv


;Fatto da pava per minecraftitalia.it
;potete liberamente usarlo per i vostri programmi

set a, 0 ;contatore
set x, 10 ;numero di lettere
sub x, 1 ;tolto uno xke si calcola anche lo 0
:label dat "Ciao", " prova", 0 ;creo la parola "ciao"
set b, [label+a] ;setto b come la lettera di contatore A
bor b, 0xf000 ;setto b, come l'or tra la lettera e il colore 0xf000(bianco). questo serve per aggiungerci il colore.
set [0x8000+a], b ;setto la cella 0x8000+A con il corrispettivo carattere (label+a)
ifn a, x ;se A supera X ([0,1,2,3] quindi 4 lettere) smette di aumentare il carattere
add a, 1 ;aumento A di uno
ife a, x ;se A è uguale a x, killa il programma
brk
set pc, label ; nuovo giro, nuova corsa
[/CODE]

Se per esempio aggiungo un altro Dat del tipo:

[CODE]
:label DAT "a","tutti", 0
[/CODE]

I valori rimangono uguali? Tranne ovviamente il primo SET x, 10 che sarà: SET x, 6. Giusto?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Se per esempio aggiungo un altro Dat del tipo:


:label DAT "a","tutti", 0
[/CODE]

I valori rimangono uguali? Tranne ovviamente il primo SET x, 10 che sarà: SET x, 6. Giusto?

:sisi:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

:sisi:

Oh perfetto! Sto un pò imparando adesso XD

Per caso, sai rispondere alla domanda precedente? Quella prima del tuo post? :fermosi:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Oh perfetto! Sto un pò imparando adesso XD

Per caso, sai rispondere alla domanda precedente? Quella prima del tuo post? :fermosi:

Non penso si possa fare

edit : :D

Forse sò farlo. Ora ci provo e ti dico.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Non penso si possa fare

edit : :D

Forse sò farlo. Ora ci provo e ti dico.

Ahaha :D Ottimo! Grazie!

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Oh perfetto! Sto un pò imparando adesso XD

Per caso, sai rispondere alla domanda precedente? Quella prima del tuo post? :fermosi:

Invece di mettere "ADD B, 0xF000" metti "ADD B, 0xF080"

Non ti sto a spiegare perché altrimenti facciamo notte.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Invece di mettere "ADD B, 0xF000" metti "ADD B, 0xF080"

Non ti sto a spiegare perché altrimenti facciamo notte.

Grazie :lol:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Invece di mettere "ADD B, 0xF000" metti "ADD B, 0xF080"

Non ti sto a spiegare perché altrimenti facciamo notte.

D: E io che pirla stavo facendo il lampeggio con

-metti carattere

-cancella

-riinizia

D:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

×
×
  • Crea Nuovo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.