diff --git a/Asuro.iso b/Asuro.iso index bcee89bd..35a709e7 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/lib/isr44.ppu b/lib/isr44.ppu new file mode 100644 index 00000000..0b7ab532 Binary files /dev/null and b/lib/isr44.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index d35881f2..2eec537e 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 77a953c2..da5df31a 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 029a72af..20c958e9 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu new file mode 100644 index 00000000..507f7f45 Binary files /dev/null and b/lib/terminal.ppu differ diff --git a/src/strings.pas b/src/strings.pas new file mode 100644 index 00000000..c1cf3db6 --- /dev/null +++ b/src/strings.pas @@ -0,0 +1,92 @@ +unit strings; + +interface + +uses + system, + util; + +function stringToUpper(str : pchar) : pchar; +function stringToLower(str : pchar) : pchar; +function stringEquals(str1, str2 : pchar) : boolean; +function stringCopy(str : pchar) : pchar; +function stringNew(size : uint32) : pchar; +function stringSize(str : pchar) : uint32; +function stringConcat(str1, str2 : pchar) : pchar; +function stringContains(str : pchar; sub : pchar) : boolean; + +implementation + +function stringToUpper(str : pchar) : pchar; +begin + +end; + +function stringToLower(str : pchar) : pchar; +begin + +end; + +function stringEquals(str1, str2 : pchar) : boolean; +var + i : uint32; + +begin + stringEquals:= true; + if stringSize(str1) <> stringSize(str2) then begin + stringEquals:= false; + exit; + end else begin + for i:=0 to stringSize(str1)-1 do begin + if str1[i] <> str2[i] then begin + stringEquals:= false; + exit; + end; + end; + end; +end; + +function stringCopy(str : pchar) : pchar; +var + result : pchar; + size : uint32; + +begin + size:= stringSize(str); + result:= stringNew(size); + memcpy(str, result, size); +end; + +function stringNew(size : uint32) : pchar; +var + result : pchar; + +begin + result:= pchar(kalloc(size + 1)); + memset(uint32(result), 0, size + 1); + stringNew:= result; +end; + +function stringSize(str : pchar) : uint32; +var + i : uint32; + +begin + i:=0; + while byte(str[i]) <> 0 do begin + inc(i); + end; + stringSize:=i; +end; + +function stringConcat(str1, str2 : pchar) : pchar; +begin + +end; + +function stringContains(str : pchar; sub : pchar) : boolean; +begin + +end; + +end. \ No newline at end of file