Espresso 0.0.1a

This commit is contained in:
2025-06-17 15:50:07 -05:00
parent eeea3b2d86
commit fca025a9bf
24 changed files with 1080 additions and 600 deletions

View File

@ -1,35 +1,38 @@
#include <stdio.h>
#include <drivers/pit.h>
#include <port_io.h>
#include <drivers/ide.h>
static void io_delay() {
for (int32_t i = 0; i < 1000; i++) {
outb(0x80, 0);
static int32_t ide_wait(uint16_t io, int32_t check_drq)
{
for (int32_t i = 0; i < 5000; i++)
{
uint8_t status = inb(io + ATA_REG_STATUS);
if (!(status & ATA_SR_BSY))
{
if (!check_drq || (status & ATA_SR_DRQ))
{
return 0;
}
}
pit_sleep(4);
}
return 1;
}
static int32_t ide_wait(uint16_t io, int32_t check_drq) {
for (int32_t i = 0; i < 5000; i++) {
uint8_t status = inb(io + ATA_REG_STATUS);
if (!(status & ATA_SR_BSY)) {
if (!check_drq || (status & ATA_SR_DRQ))
return 0;
}
io_delay(1);
static int32_t ide_wait_ready(uint16_t io)
{
for (int32_t i = 0; i < 100000; i++)
{
uint8_t status = inb(io + ATA_REG_STATUS);
if (!(status & ATA_SR_BSY))
{
return 0;
}
return 1;
}
static int32_t ide_wait_ready(uint16_t io) {
for (int32_t i = 0; i < 100000; i++) {
uint8_t status = inb(io + ATA_REG_STATUS);
if (!(status & ATA_SR_BSY)) return 0;
}
return 1;
}
return 1;
}