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.');
|
||||
|
||||
@@ -201,16 +201,14 @@ begin
|
||||
if (head^ = delimter) or (head^ = char(0)) then begin
|
||||
if head^ = char(0) then null_delim:= true;
|
||||
size:= uint32(head) - uint32(tail);
|
||||
console.writeintln(size);
|
||||
if size > 0 then begin
|
||||
elm:= puint32(LL_Add(list));
|
||||
out_str:= stringNew(size);
|
||||
out_str:= stringNew(size + 1); //maybe
|
||||
memcpy(uint32(tail), uint32(out_str), size);
|
||||
elm^:= uint32(out_str);
|
||||
end;
|
||||
tail:= head+1;
|
||||
end else begin
|
||||
console.writecharln(head^);
|
||||
end;
|
||||
inc(head);
|
||||
end;
|
||||
|
||||
Reference in New Issue
Block a user