continue messing with fat32
This commit is contained in:
@@ -19,15 +19,19 @@ OUTPUT = myos.bin
|
||||
all: $(OUTPUT)
|
||||
|
||||
create-image:
|
||||
#sudo umount /mnt
|
||||
#sudo losetup -D
|
||||
cp myos.bin grubshit/boot/
|
||||
#grub-mkrescue -o boot.iso grubshit
|
||||
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
|
||||
#parted boot.iso mklabel msdos mkpart primary ext4 2048s 100% set 1 boot on
|
||||
sudo losetup /dev/loop0 boot.iso
|
||||
sudo losetup /dev/loop1 boot.iso -o 1048576
|
||||
#sudo mkdosfs -F32 -f 2 /dev/loop1
|
||||
sudo mkfs.vfat -F 32 -f 2 /dev/loop1
|
||||
sudo mkdosfs -F32 -f 2 /dev/loop1
|
||||
#sudo mkfs.vfat -F 32 -f 2 /dev/loop1
|
||||
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 cp -r grubshit/boot/ /mnt/
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
KATYA_KRUTAYA
|
||||
@@ -163,7 +163,6 @@ void ata_poll()
|
||||
//x86 directions section
|
||||
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(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
|
||||
|
||||
@@ -1006,14 +1006,11 @@ static int follow_path(dir_t* dir, const char** path)
|
||||
{
|
||||
str++;
|
||||
len = subpath_len(str);
|
||||
printf("len: %X\n", len);
|
||||
if (len == 0)
|
||||
return FAT_ERR_PATH;
|
||||
printf("AYE\n");
|
||||
fat_t* fat = find_fat_volume(str, len);
|
||||
if (!fat)
|
||||
return FAT_ERR_PATH;
|
||||
printf("HEH\n");
|
||||
str += len;
|
||||
|
||||
dir->fat = fat;
|
||||
@@ -1022,14 +1019,11 @@ static int follow_path(dir_t* dir, const char** path)
|
||||
dir->sect = fat->root_sect;
|
||||
dir->idx = 0;
|
||||
}
|
||||
printf("HJUY!\n");
|
||||
|
||||
fat_t* fat = dir->fat;
|
||||
if (!fat)
|
||||
return FAT_ERR_PARAM;
|
||||
|
||||
printf("EBALO\n");
|
||||
|
||||
dir_rewind(fat, dir);
|
||||
|
||||
for (;;)
|
||||
|
||||
+11
-8
@@ -35,6 +35,7 @@ static int cat(const char* path)
|
||||
return cnt;
|
||||
|
||||
printf("%.*s\n", cnt, buf);
|
||||
printf("%s\n", buf);
|
||||
if (cnt < 512)
|
||||
break;
|
||||
}
|
||||
@@ -47,16 +48,12 @@ static int ls(const char* path)
|
||||
dir_t dir;
|
||||
dir_info_t info;
|
||||
|
||||
printf("\nListing items in %s:\n\n", path);
|
||||
|
||||
int err = fat_opendir(&dir, path);
|
||||
printf("opening %s\n", path);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
printf("reading dir...\n");
|
||||
|
||||
err = fat_readdir(&dir, &info);
|
||||
if (err == FAT_ERR_EOF)
|
||||
@@ -64,7 +61,7 @@ static int ls(const char* path)
|
||||
if (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.modified.hour, info.modified.min,
|
||||
info.namelen, info.name, info.attr & FAT_ATTR_DIR ? '/' : ' ');
|
||||
@@ -78,17 +75,22 @@ static int ls(const char* path)
|
||||
void file_fuckery()
|
||||
{
|
||||
int err;
|
||||
err = fat_mount(&ops, 0, &g_fat, "/");
|
||||
err = fat_mount(&ops, 0, &g_fat, "ebalo");
|
||||
|
||||
if(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);
|
||||
if(err)
|
||||
printf("ERROR! %X\n", err);
|
||||
|
||||
}
|
||||
|
||||
void apply_pic_masks()
|
||||
@@ -118,6 +120,7 @@ void kmain()
|
||||
disk_info info;
|
||||
get_disk_info(&info);
|
||||
printf("CYL HEAD SECT: %X %X %X\n", info.cylinders, info.heads, info.sectors);
|
||||
|
||||
file_fuckery();
|
||||
while(1)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user