git-svn-id: https://spexeah.com:8443/svn/Asuro@530 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
@@ -389,6 +389,7 @@ begin
|
||||
outb($1F5, LBA shr 16);
|
||||
outb($1F7, $20); //read command
|
||||
|
||||
|
||||
for i:=0 to sectorCount do begin
|
||||
|
||||
//poll status
|
||||
@@ -403,11 +404,11 @@ begin
|
||||
end;
|
||||
|
||||
for ii:=0 to 127 do begin //read data
|
||||
Puint32(buffer + ((i * 512) + (ii * 32) DIV 32))^ := uint32(inw($1F0)); //wrong
|
||||
for iii:=0 to 1000 do if(ii = iii) then begin end;
|
||||
Puint32(buffer + ((i * 512) + (ii * 32) DIV 32))^ := uint32(inw($1F0));
|
||||
while true do if (inw($1f7) and (1 shl 7)) = 0 then break; //Wait until drive not busy
|
||||
if ii <> 127 then begin
|
||||
Puint32(buffer + ((i * 512) + (ii * 32) DIV 32))^ := ((uint32(inw($1F0)) shl 16) or Puint32(buffer + ((i * 512) + (ii * 32) DIV 32))^); //wrong
|
||||
for iii:=0 to 1000 do if(ii = iii) then begin end
|
||||
while true do if (inw($1f7) and (1 shl 7)) = 0 then break; //Wait until drive not busy
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
+216
-18
File diff suppressed because it is too large
Load Diff
@@ -46,6 +46,7 @@ type
|
||||
PFileSystem = ^TFilesystem;
|
||||
|
||||
TStorage_Volume = record
|
||||
device : PStorage_device;
|
||||
sectorStart : uint32;
|
||||
sectorSize : uint32;
|
||||
freeSectors : uint32;
|
||||
@@ -133,7 +134,7 @@ begin
|
||||
drive := stringToInt(getParam(1, params));
|
||||
console.writeintln(drive); // works
|
||||
if stringEquals(getParam(2, params), 'fat32') then begin
|
||||
PFilesystem(LL_Get(filesystems, 0))^.createCallback((PStorage_Device(LL_Get(storageDevices, drive))), 100000, 1, @spc); //todo check fs
|
||||
PFilesystem(LL_Get(filesystems, 0))^.createCallback((PStorage_Device(LL_Get(storageDevices, drive))), 1000000, 1, spc); //todo check fs
|
||||
console.writestring('Drive ');
|
||||
//console.writeint(drive); // page faults
|
||||
console.writestringln(' formatted.');
|
||||
|
||||
Reference in New Issue
Block a user