git-svn-id: https://spexeah.com:8443/svn/Asuro@665 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
parent
cac366e78c
commit
2c10fa3231
Binary file not shown.
BIN
lib/E1000.ppu
BIN
lib/E1000.ppu
Binary file not shown.
BIN
lib/arp.ppu
BIN
lib/arp.ppu
Binary file not shown.
BIN
lib/asuro.ppu
BIN
lib/asuro.ppu
Binary file not shown.
BIN
lib/console.ppu
BIN
lib/console.ppu
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
lib/libpsystem.a
BIN
lib/libpsystem.a
Binary file not shown.
BIN
lib/lists.ppu
BIN
lib/lists.ppu
Binary file not shown.
BIN
lib/mouse.ppu
BIN
lib/mouse.ppu
Binary file not shown.
BIN
lib/strings.ppu
BIN
lib/strings.ppu
Binary file not shown.
BIN
lib/terminal.ppu
BIN
lib/terminal.ppu
Binary file not shown.
BIN
lib/tracer.ppu
BIN
lib/tracer.ppu
Binary file not shown.
@ -3,20 +3,20 @@ unit asuro;
|
||||
interface
|
||||
|
||||
const
|
||||
VERSION = '1.0.1-663ia';
|
||||
VERSION = '1.0.1-664ia';
|
||||
VERSION_MAJOR = '1';
|
||||
VERSION_MINOR = '0';
|
||||
VERSION_SUB = '1';
|
||||
REVISION = '663';
|
||||
REVISION = '664';
|
||||
RELEASE = 'ia';
|
||||
LINE_COUNT = 26954;
|
||||
LINE_COUNT = 26991;
|
||||
FILE_COUNT = 83;
|
||||
DRIVER_COUNT = 28;
|
||||
FPC_VERSION = '2.6.4';
|
||||
NASM_VERSION = '2.10.09';
|
||||
MAKE_VERSION = '3.81';
|
||||
COMPILE_DATE = '05/05/18';
|
||||
COMPILE_TIME = '22:04:28';
|
||||
COMPILE_TIME = '22:33:57';
|
||||
|
||||
implementation
|
||||
|
||||
|
@ -5,7 +5,8 @@ interface
|
||||
uses
|
||||
console,
|
||||
lmemorymanager,
|
||||
util;
|
||||
util,
|
||||
strings;
|
||||
|
||||
type
|
||||
{ Managed Linked List }
|
||||
@ -33,6 +34,7 @@ function LL_Size(LinkedList : PLinkedListBase) : uint32;
|
||||
function LL_Insert(LinkedList : PLinkedListBase; idx : uint32) : Void;
|
||||
function LL_Get(LinkedList : PLinkedListBase; idx : uint32) : Void;
|
||||
procedure LL_Free(LinkedList : PLinkedListBase);
|
||||
function LL_FromString(str : pchar; delimter : char) : PLinkedListBase;
|
||||
procedure LL_TEST();
|
||||
|
||||
implementation
|
||||
@ -192,6 +194,39 @@ begin
|
||||
kfree(void(LinkedList));
|
||||
end;
|
||||
|
||||
{function LL_FromString(str : pchar; delimter : char) : PLinkedListBase; //todo implment function for freeing pointer lists
|
||||
var
|
||||
list : PLinkedListBase;
|
||||
i : uint32 = 0;
|
||||
out_str : pchar;
|
||||
elm : puint32;
|
||||
head : pchar;
|
||||
base : pchar;
|
||||
size : uint32;
|
||||
null_delim : boolean;
|
||||
|
||||
begin
|
||||
list := LL_New(sizeof(uint32));
|
||||
stringToLL:= list;
|
||||
|
||||
head:= str;
|
||||
base:= head;
|
||||
null_delim:= false;
|
||||
while not null_delim do begin
|
||||
i:=0;
|
||||
while (head[i] <> delimter) and (head[i] <> char(0)) do begin
|
||||
inc(i);
|
||||
end;
|
||||
if head[i] = char(0) then null_delim:= true;
|
||||
size:= (uint32(@head[i]) - uint32(base)) + 1;
|
||||
out_str:= stringNew(size);
|
||||
memset(uint32(out_str), 0, size);
|
||||
memcpy(uint32(base), uint32(out_str), size-1);
|
||||
elm:= puint32(LL_Add(list));
|
||||
elm
|
||||
end;
|
||||
end;}
|
||||
|
||||
procedure LL_Test();
|
||||
var
|
||||
i : uint32;
|
||||
@ -238,4 +273,39 @@ begin
|
||||
LL_Free(LList);
|
||||
end;
|
||||
|
||||
function LL_FromString(str : pchar; delimter : char) : PLinkedListBase; //todo implment function for freeing pointer lists
|
||||
var
|
||||
list : PLinkedListBase;
|
||||
i : uint32 = 0;
|
||||
out_str : pchar;
|
||||
elm : puint32;
|
||||
head : pchar;
|
||||
tail : pchar;
|
||||
size : uint32;
|
||||
null_delim : boolean;
|
||||
|
||||
begin
|
||||
list := LL_New(sizeof(uint32));
|
||||
LL_FromString:= list;
|
||||
|
||||
head:= str;
|
||||
tail:= head;
|
||||
|
||||
null_delim:= false;
|
||||
while not null_delim do begin
|
||||
if (head^ = delimter) or (head^ = char(0)) then begin
|
||||
if head^ = char(0) then null_delim:= true;
|
||||
size:= uint32(head) - uint32(tail);
|
||||
if size > 0 then begin
|
||||
elm:= puint32(LL_Add(list));
|
||||
out_str:= stringNew(size + 1); //maybe
|
||||
memcpy(uint32(tail), uint32(out_str), size);
|
||||
elm^:= uint32(out_str);
|
||||
end;
|
||||
tail:= head+1;
|
||||
end;
|
||||
inc(head);
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
@ -13,8 +13,7 @@ interface
|
||||
|
||||
uses
|
||||
util,
|
||||
lmemorymanager,
|
||||
lists;
|
||||
lmemorymanager;
|
||||
|
||||
function stringToUpper(str : pchar) : pchar;
|
||||
function stringToLower(str : pchar) : pchar;
|
||||
@ -27,7 +26,6 @@ function stringContains(str : pchar; sub : pchar) : boolean;
|
||||
function stringToInt(str : pchar) : uint32;
|
||||
function intToString(i : uint32) : pchar;
|
||||
function boolToString(b : boolean; ext : boolean) : pchar;
|
||||
function stringToLL(str : pchar; delimter : char) : PLinkedListBase;
|
||||
|
||||
implementation
|
||||
|
||||
@ -178,40 +176,4 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function stringToLL(str : pchar; delimter : char) : PLinkedListBase; //todo implment function for freeing pointer lists
|
||||
var
|
||||
list : PLinkedListBase;
|
||||
i : uint32 = 0;
|
||||
out_str : pchar;
|
||||
elm : puint32;
|
||||
head : pchar;
|
||||
tail : pchar;
|
||||
size : uint32;
|
||||
null_delim : boolean;
|
||||
|
||||
begin
|
||||
list := LL_New(sizeof(uint32));
|
||||
stringToLL:= list;
|
||||
|
||||
head:= str;
|
||||
tail:= head;
|
||||
|
||||
null_delim:= false;
|
||||
while not null_delim do begin
|
||||
if (head^ = delimter) or (head^ = char(0)) then begin
|
||||
if head^ = char(0) then null_delim:= true;
|
||||
size:= uint32(head) - uint32(tail);
|
||||
if size > 0 then begin
|
||||
elm:= puint32(LL_Add(list));
|
||||
out_str:= stringNew(size + 1); //maybe
|
||||
memcpy(uint32(tail), uint32(out_str), size);
|
||||
elm^:= uint32(out_str);
|
||||
end;
|
||||
tail:= head+1;
|
||||
end else begin
|
||||
end;
|
||||
inc(head);
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
@ -92,6 +92,7 @@ var
|
||||
atmp : puint32;
|
||||
test : puint8;
|
||||
fb : puint16;
|
||||
l : PLinkedListBase;
|
||||
|
||||
begin
|
||||
{ Store Multiboot info }
|
||||
@ -211,6 +212,10 @@ begin
|
||||
|
||||
tracer.push_trace('kmain.END');
|
||||
|
||||
l:= LL_FromString('/./hhhhhhh/', '/');
|
||||
writestringln(pchar(puint32(LL_Get(l, 0)^)));
|
||||
writestringln(pchar(puint32(LL_Get(l, 1)^)));
|
||||
|
||||
while true do begin
|
||||
console.redrawWindows;
|
||||
end;
|
||||
|
Loading…
x
Reference in New Issue
Block a user