PDA

View Full Version : [asm]int 13h


mastoo
28-09-2006, 22:55
chi sa spiegarmi come utilizzare l'interrupt del bios int 13h per scrivere sul harddisk
INT 13 - DISK - WRITE DISK SECTOR(S)
AH = 03h
AL = numero di settori da leggere (deve essere diverso da zero)
CH = otto bit inferiori del numero del cilindro
CL = numero settore 1-63 (bits 0-5)
due bit superiori del cilindro (bits 6-7, solo hard disk)
DH = numero heads
DL = numero drive (bit 7 settato per hard disk)
ES:BX -> buffer dati
Return: CF settato se presente un errore
CF non settato e non si sono verificati errori
AH = stato (guarda #00234)
AL = numeor di settori trasferiti (valido solo se CF settato per alcuni BIOSes)

perche io non riesco a scrivere su un cilindro diverso da 0
cioe se metto cilindro 1 non scrive nulla sull hd

poi come posso recuperare i parametri CHS del hd

grazie

71104
28-09-2006, 23:05
boh, i parametri che hai riportato risultano esattamente coś anche a me, a parte ovviamente il fatto che in AL ci devi mettere il numero di settori da scrivere, non da leggere.

mi viene il dubbio che tu abbia scritto male il codice per mettere la parte alta del numero del cilindro in CL... per sicurezza fai una cosa, se non devi scrivere su chissà quale cilindro lascia perdere i bit alti di CL, fai come se il numero del cilindro stesse solo in CH.

DanieleC88
29-09-2006, 15:37
Forse metti male i bit del cilindro, divisi in CL e CH. Posta il codice con cui li imposti.

Per la conversione LBA -> CHS ci vuole un po' piu' di lavoro. :(

ciao ;)

71104
29-09-2006, 18:13
Per la conversione LBA -> CHS ci vuole un po' piu' di lavoro. :( ma che strano deja vu :asd:

DanieleC88
01-10-2006, 09:52
ma che strano deja vu :asd:
C'ho ancora il mal di testa. :cry: