#include #include #include #include #include "hardware.h" #include "hdd.h" static void emptyIT() { return; } static void hddIT() { printf("IT!\n"); return; } uint16_t tailleSec() { _out(HDA_CMDREG, CMD_DSKINFO); uint16_t sec; sec = _in(HDA_DATAREGS+4) << 8; sec |= _in(HDA_DATAREGS+5); return sec; } void dump_sector(uint16_t secteur, uint16_t piste) { printf("SEEK : %d, %d\n", secteur, piste); _out(HDA_DATAREGS, (piste >> 8) & 0xFF); _out(HDA_DATAREGS+1, piste & 0xFF); _out(HDA_DATAREGS+2, (secteur >> 8) & 0xFF); _out(HDA_DATAREGS+3, secteur & 0xFF); _out(HDA_CMDREG, CMD_SEEK); printf("attente\n"); _sleep(HDA_IRQ); printf("Retour :\n"); uint8_t data = _in(HDA_DATAREGS); printf("%d\n", data); /* Lire un secteur */ _out(HDA_DATAREGS, 1); _out(HDA_CMDREG, CMD_READ); _sleep(HDA_IRQ); int tSec = tailleSec(); int i; for(i=0;i