git-svn-id: https://spexeah.com:8443/svn/Asuro@530 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c

This commit is contained in:
aaron
2018-04-15 05:00:59 +00:00
parent 798219e46a
commit b7523db308
4 changed files with 223 additions and 25 deletions
+4 -3
View File
@@ -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;
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -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.');
+1 -3
View File
@@ -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;