Skip to content
Snippets Groups Projects
Commit 5e533d7d authored by Thierno souleymane Bah's avatar Thierno souleymane Bah
Browse files

feat(write sector prog implemented)

parent 34881d68
No related branches found
No related tags found
No related merge requests found
......@@ -13,7 +13,7 @@ LIBS = -L$(LIBDIR) -lhardware
###------------------------------
### Main targets
###------------------------------------------------------------
BINARIES= mkhd display_sector format_sector
BINARIES= mkhd display_sector format_sector write_sector
all: $(BINARIES) $(OBJECTS)
......@@ -30,6 +30,7 @@ all: $(BINARIES) $(OBJECTS)
mkhd: mkhd.o
display_sector: display_sector.o drive.o
format_sector: format_sector.o drive.o
write_sector: write_sector.o drive.o
###------------------------------
### Misc.
......
......@@ -4,9 +4,6 @@
#include "hardware.h"
#include "drive.h"
/* Paramètres de la simulation */
#define HDA_FILENAME "vdiskA.bin" /* nom du fichier de stockage du disque simulé */
static void
empty_it()
{
......
#include <stdio.h>
#include <stdlib.h>
#include "hardware.h"
#include "drive.h"
static void
empty_it()
{
return;
}
void write_sector(int cylinder, int sector, unsigned char *buf)
{
int i;
seek(cylinder, sector);
for (i = 0; i < HDA_SECTORSIZE; i++)
MASTERBUFFER[i] = buf[i];
_out(HDA_DATAREGS, 0);
_out(HDA_DATAREGS + 1, 1);
_out(HDA_CMDREG, CMD_WRITE);
_sleep(HDA_IRQ);
}
int main(int argc, char const *argv[])
{
unsigned int i;
if (argc != 4)
{
fprintf(stderr, "Usage: %s <cylinder> <sector> <data>\n", argv[0]);
exit(EXIT_FAILURE);
}
/* init hardware */
if (init_hardware("hwconfig.ini") == 0)
{
fprintf(stderr, "Error in hardware initialization\n");
exit(EXIT_FAILURE);
}
/* Interreupt handlers */
for (i = 0; i < 16; i++)
IRQVECTOR[i] = empty_it;
/* Allows all IT */
_mask(1);
write_sector(atoi(argv[1]), atoi(argv[2]), (unsigned char *)argv[3]);
/* and exit! */
exit(EXIT_SUCCESS);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment