[zxspectrum] Re: routinetta in assembler

  • From: Mario Prato <mario.prato@xxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Tue, 17 Jan 2006 14:47:55 +0100

grazie della furia, ti spiego meglio il problema.... :)
dunque, sto cercando di far funzionare una interfaccina per leggere le SD card sullo spectrum e le routines a basso livello funzionano bene con un'unica limitazione dovuta alle schede stesse, posso leggere un settore cioe' 512 byte alla volta... l'indirizzo del settore e' formato da 32 bit e dovrebbe indirizzare il singolo byte della scheda, ma siccome leggo 512 byte alla volta, questa variabile devo incrementarla di 512 per ciascun settore. Parlando di numeri il primo settore lo trovo a $00000000, il secondo a $00000200 e cosi' via...
in pratica il byte meno significativo e' sempre 0, mentre i restanti 24 bit contengono il numero del settore shiftato di 1 una posizione a sinistra..
questa routine mi serve perche' vorrei fare in modo di caricare i file .Tap dalla SD e sommando la lunghezza di ogni blocco, conoscere esattamente la posizione di ogni singolo file e usare una specie di browser per scegliere quale file caricare... insomma e' piu' semplice di quanto non sembri ma sono bloccato su questa storia... :(





At 17/01/2006, you wrote:
Se ho capito bene, volevi questo:

LD HL, var16
LD IX, var32

LD A, (IX+0)
LD D, (IX+1)
LD C, (IX+2)

RR C
RR D
RRA
RR C
RR D
RRA

LD E, A
ADD HL, DE

LD (var16), HL


(scusate la fretta e furia: ho il terrore che qualcuno trovi un bug nel mio listatino di cui sopra) :-)


Il giorno 17-gen-2006, alle ore 14:04, Mario Prato ha scritto:

compitino per casa, devo sommare una variabile a 16 bit contenuta
in un registro (HL o DE) ad un'altra variabile contenuta in 4
locazioni di memoria consecutive puntate dal un altro registro,
questa variabile di 4 byte pero' e' shiftata di 2 bit a sinistra,
cioe' i 2 bit meno significativi sono sempre a 0...
chi mi da una mano? :)


-- alf



Other related posts: