Implemented memcpy and memset. Allows larger local variables.
This commit is contained in:
parent
f279852501
commit
8eef348eca
@ -65,9 +65,8 @@ proc terminalWrite*(data: string) =
|
|||||||
proc terminalWrite*(data: char) =
|
proc terminalWrite*(data: char) =
|
||||||
terminalWriteChar(data)
|
terminalWriteChar(data)
|
||||||
|
|
||||||
var parsedData: array[0..9, char]
|
|
||||||
|
|
||||||
proc terminalWrite*(data: SomeSignedInt) =
|
proc terminalWrite*(data: SomeSignedInt) =
|
||||||
|
var parsedData: array[0..9, char]
|
||||||
if(data == 0):
|
if(data == 0):
|
||||||
terminalWrite('0')
|
terminalWrite('0')
|
||||||
return
|
return
|
||||||
@ -86,6 +85,7 @@ proc terminalWrite*(data: SomeSignedInt) =
|
|||||||
terminalWrite(parsedData[i])
|
terminalWrite(parsedData[i])
|
||||||
|
|
||||||
proc terminalWrite*(data: SomeUnsignedInt) =
|
proc terminalWrite*(data: SomeUnsignedInt) =
|
||||||
|
var parsedData: array[0..9, char]
|
||||||
if(data == 0):
|
if(data == 0):
|
||||||
terminalWrite('0')
|
terminalWrite('0')
|
||||||
return
|
return
|
||||||
|
@ -3,6 +3,20 @@
|
|||||||
|
|
||||||
import tty, gdt, irq, serial
|
import tty, gdt, irq, serial
|
||||||
|
|
||||||
|
type
|
||||||
|
MemoryPointer{.unchecked.} = ptr array[0, char]
|
||||||
|
|
||||||
|
proc memcpy*(dest: ByteAddress, src: ByteAddress, count: int){.exportc.} =
|
||||||
|
var destMem = cast[MemoryPointer](dest)
|
||||||
|
var srcMem = cast[MemoryPointer](src)
|
||||||
|
for i in 0..count-1:
|
||||||
|
destMem[i] = srcMem[i]
|
||||||
|
|
||||||
|
proc memset*(dest: ByteAddress, value: char, count: int){.exportc.} =
|
||||||
|
var destMem = cast[MemoryPointer](dest)
|
||||||
|
for i in 0..count-1:
|
||||||
|
destMem[i] = value
|
||||||
|
|
||||||
proc kernelMain() {.exportc: "kernel_main"}=
|
proc kernelMain() {.exportc: "kernel_main"}=
|
||||||
serial.init()
|
serial.init()
|
||||||
serial.write("Booting OS\L")
|
serial.write("Booting OS\L")
|
||||||
|
Loading…
Reference in New Issue
Block a user