continue messing with fat32
This commit is contained in:
@@ -19,15 +19,19 @@ OUTPUT = myos.bin
|
|||||||
all: $(OUTPUT)
|
all: $(OUTPUT)
|
||||||
|
|
||||||
create-image:
|
create-image:
|
||||||
|
#sudo umount /mnt
|
||||||
|
#sudo losetup -D
|
||||||
cp myos.bin grubshit/boot/
|
cp myos.bin grubshit/boot/
|
||||||
#grub-mkrescue -o boot.iso grubshit
|
#grub-mkrescue -o boot.iso grubshit
|
||||||
dd if=/dev/zero of=boot.iso bs=1M count=256
|
dd if=/dev/zero of=boot.iso bs=1M count=256
|
||||||
fdisk boot.iso
|
parted boot.iso --script mklabel msdos
|
||||||
|
parted boot.iso --script mkpart primary fat32 1MiB 100%
|
||||||
#sudo mkdosfs -F 32 -I boot.iso
|
#sudo mkdosfs -F 32 -I boot.iso
|
||||||
|
#parted boot.iso mklabel msdos mkpart primary ext4 2048s 100% set 1 boot on
|
||||||
sudo losetup /dev/loop0 boot.iso
|
sudo losetup /dev/loop0 boot.iso
|
||||||
sudo losetup /dev/loop1 boot.iso -o 1048576
|
sudo losetup /dev/loop1 boot.iso -o 1048576
|
||||||
#sudo mkdosfs -F32 -f 2 /dev/loop1
|
sudo mkdosfs -F32 -f 2 /dev/loop1
|
||||||
sudo mkfs.vfat -F 32 -f 2 /dev/loop1
|
#sudo mkfs.vfat -F 32 -f 2 /dev/loop1
|
||||||
sudo mount /dev/loop1 /mnt
|
sudo mount /dev/loop1 /mnt
|
||||||
sudo grub-install --root-directory=/mnt --no-floppy --modules="normal part_msdos ext2 multiboot biosdisk" /dev/loop0 #there was biosdev also
|
sudo grub-install --root-directory=/mnt --no-floppy --modules="normal part_msdos ext2 multiboot biosdisk" /dev/loop0 #there was biosdev also
|
||||||
sudo cp -r grubshit/boot/ /mnt/
|
sudo cp -r grubshit/boot/ /mnt/
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
KATYA_KRUTAYA
|
||||||
@@ -163,7 +163,6 @@ void ata_poll()
|
|||||||
//x86 directions section
|
//x86 directions section
|
||||||
bool ata_read(uint8_t *buffer, uint32_t lba)
|
bool ata_read(uint8_t *buffer, uint32_t lba)
|
||||||
{
|
{
|
||||||
printf("ata_read: 0x%X\n", lba);
|
|
||||||
outb(0x1F6, 0xE0 | ((lba >> 24) & 0x0F));//E0 is for master, F0 is for slave
|
outb(0x1F6, 0xE0 | ((lba >> 24) & 0x0F));//E0 is for master, F0 is for slave
|
||||||
//outb(0x1F1, 0x00);//TODO: this is probably ignored so could be removed maybe?
|
//outb(0x1F1, 0x00);//TODO: this is probably ignored so could be removed maybe?
|
||||||
outb(0x1F2, 1);//1 is sector count, how many sectors are we reading
|
outb(0x1F2, 1);//1 is sector count, how many sectors are we reading
|
||||||
|
|||||||
@@ -1006,14 +1006,11 @@ static int follow_path(dir_t* dir, const char** path)
|
|||||||
{
|
{
|
||||||
str++;
|
str++;
|
||||||
len = subpath_len(str);
|
len = subpath_len(str);
|
||||||
printf("len: %X\n", len);
|
|
||||||
if (len == 0)
|
if (len == 0)
|
||||||
return FAT_ERR_PATH;
|
return FAT_ERR_PATH;
|
||||||
printf("AYE\n");
|
|
||||||
fat_t* fat = find_fat_volume(str, len);
|
fat_t* fat = find_fat_volume(str, len);
|
||||||
if (!fat)
|
if (!fat)
|
||||||
return FAT_ERR_PATH;
|
return FAT_ERR_PATH;
|
||||||
printf("HEH\n");
|
|
||||||
str += len;
|
str += len;
|
||||||
|
|
||||||
dir->fat = fat;
|
dir->fat = fat;
|
||||||
@@ -1022,14 +1019,11 @@ static int follow_path(dir_t* dir, const char** path)
|
|||||||
dir->sect = fat->root_sect;
|
dir->sect = fat->root_sect;
|
||||||
dir->idx = 0;
|
dir->idx = 0;
|
||||||
}
|
}
|
||||||
printf("HJUY!\n");
|
|
||||||
|
|
||||||
fat_t* fat = dir->fat;
|
fat_t* fat = dir->fat;
|
||||||
if (!fat)
|
if (!fat)
|
||||||
return FAT_ERR_PARAM;
|
return FAT_ERR_PARAM;
|
||||||
|
|
||||||
printf("EBALO\n");
|
|
||||||
|
|
||||||
dir_rewind(fat, dir);
|
dir_rewind(fat, dir);
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
|
|||||||
+11
-8
@@ -35,6 +35,7 @@ static int cat(const char* path)
|
|||||||
return cnt;
|
return cnt;
|
||||||
|
|
||||||
printf("%.*s\n", cnt, buf);
|
printf("%.*s\n", cnt, buf);
|
||||||
|
printf("%s\n", buf);
|
||||||
if (cnt < 512)
|
if (cnt < 512)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -47,16 +48,12 @@ static int ls(const char* path)
|
|||||||
dir_t dir;
|
dir_t dir;
|
||||||
dir_info_t info;
|
dir_info_t info;
|
||||||
|
|
||||||
printf("\nListing items in %s:\n\n", path);
|
|
||||||
|
|
||||||
int err = fat_opendir(&dir, path);
|
int err = fat_opendir(&dir, path);
|
||||||
printf("opening %s\n", path);
|
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
printf("reading dir...\n");
|
|
||||||
|
|
||||||
err = fat_readdir(&dir, &info);
|
err = fat_readdir(&dir, &info);
|
||||||
if (err == FAT_ERR_EOF)
|
if (err == FAT_ERR_EOF)
|
||||||
@@ -64,7 +61,7 @@ static int ls(const char* path)
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
printf("%X %s %d %d:%d %s%c\n",
|
printf("%X %s %x %x:%x %x %s%c\n",
|
||||||
info.size, months[info.modified.month], info.modified.day,
|
info.size, months[info.modified.month], info.modified.day,
|
||||||
info.modified.hour, info.modified.min,
|
info.modified.hour, info.modified.min,
|
||||||
info.namelen, info.name, info.attr & FAT_ATTR_DIR ? '/' : ' ');
|
info.namelen, info.name, info.attr & FAT_ATTR_DIR ? '/' : ' ');
|
||||||
@@ -78,17 +75,22 @@ static int ls(const char* path)
|
|||||||
void file_fuckery()
|
void file_fuckery()
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
err = fat_mount(&ops, 0, &g_fat, "/");
|
err = fat_mount(&ops, 0, &g_fat, "ebalo");
|
||||||
|
|
||||||
if(err)
|
if(err)
|
||||||
printf("KATYAKATYAKATYAKATYAKATYA: %X\n", err);
|
printf("KATYAKATYAKATYAKATYAKATYA: %X\n", err);
|
||||||
|
|
||||||
printf("%X\n", FAT_ERR_NOFAT);
|
printf("%X\n", err);
|
||||||
|
|
||||||
err = ls(".");
|
err = ls("/ebalo");
|
||||||
|
err = cat("/ebalo/boot/grub/grub.cfg");
|
||||||
|
err = fat_mkdir("/ebalo/pizdaa");
|
||||||
|
err = ls("/ebalo");
|
||||||
|
fat_umount(&g_fat);
|
||||||
//err = fat_fclose(&file);
|
//err = fat_fclose(&file);
|
||||||
if(err)
|
if(err)
|
||||||
printf("ERROR! %X\n", err);
|
printf("ERROR! %X\n", err);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void apply_pic_masks()
|
void apply_pic_masks()
|
||||||
@@ -118,6 +120,7 @@ void kmain()
|
|||||||
disk_info info;
|
disk_info info;
|
||||||
get_disk_info(&info);
|
get_disk_info(&info);
|
||||||
printf("CYL HEAD SECT: %X %X %X\n", info.cylinders, info.heads, info.sectors);
|
printf("CYL HEAD SECT: %X %X %X\n", info.cylinders, info.heads, info.sectors);
|
||||||
|
|
||||||
file_fuckery();
|
file_fuckery();
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user