diff --git a/programs/develop/golang/Makefile b/programs/develop/golang/Makefile deleted file mode 100644 index 02fc082ca0..0000000000 --- a/programs/develop/golang/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -PROGRAM=example -SOURCES=syscalls.o colors.go.o colors.gox os.go.o os.gox $(PROGRAM).go.o -LIBOBJ=os.go.o syscalls.o colors.go.o -GOFLAGS = -m32 -c -nostdlib -nostdinc -fno-stack-protector -fno-split-stack -static -fno-leading-underscore -fno-common -fno-pie -g -I. -GO = gccgo -GCC = gcc -ASFLAGS= -g -f elf32 -F dwarf -NASM= nasm $(ASFLAGS) -OBJCOPY=objcopy - -LDFLAGS=-n -T static.lds -m elf_i386 --no-ld-generated-unwind-info - - -all: $(SOURCES) link -clean: - rm -f *.o *.gox $(PROGRAM).kex -link: - ld $(LDFLAGS) -o $(PROGRAM).kex $(SOURCES) - $(OBJCOPY) $(PROGRAM).kex -O binary -%.gox: %.go.o - $(OBJCOPY) -j .go_export $< $@ -%.go.o: %.go - $(GO) $(GOFLAGS) -o $@ -c $< -%.o: %.s - $(NASM) $< diff --git a/programs/develop/golang/colors.go b/programs/develop/golang/colors.go deleted file mode 100644 index f08f455e48..0000000000 --- a/programs/develop/golang/colors.go +++ /dev/null @@ -1,20 +0,0 @@ -package colors - -const( - Black = 0x000000 - Gray = 0x808080 - Silver = 0xc0c0c0 - White = 0xffffff - Fuchsia = 0xff00ff - Purple = 0x800080 - Red = 0xff0000 - Maroon = 0x800000 - Yellow = 0xffff00 - Olive = 0x808000 - Lime = 0x00ff00 - Green = 0x008000 - Aqua = 0x00ffff - Teal = 0x008080 - Blue = 0x0000ff - Navy =0x000080 -) diff --git a/programs/develop/golang/example.go b/programs/develop/golang/example.go deleted file mode 100644 index e361359bd1..0000000000 --- a/programs/develop/golang/example.go +++ /dev/null @@ -1,75 +0,0 @@ -package kernel - -import "os" -import "colors" - -const ( - Btn1=2; - Btn2=3; - BtnExit=1; -) - -type Button struct { // structure gui button - label string - x int - y int - id int -} - -func NewButton() Button { - object := Button{"Text",0,0,Btn1} // default data - return object -} - -func (button *Button) make() { - os.CreateButton(button.x, button.y, len(button.label)*15, 30, button.id, colors.Blue); - os.WriteText(button.x,button.y, 0x11000000 | colors.White, button.label) -} - -func RedrawAll(bar_pos int){ - os.Redraw(1) - os.Window(500,250,420,200, "Example GoLang") - os.DrawLine(32, 80, 150, 80, colors.Green) - os.DrawBar(bar_pos, 90, 100, 30, colors.Red); - - b1 := NewButton() - b1.label = " <- " - b1.x = 32 - b1.y = 128 - b1.id = Btn1 - b1.make() - - b2 := NewButton() - b2.label = " -> " - b2.x = 310 - b2.y = 128 - b2.id = Btn2 - b2.make() -} - -func Main() { - var pos = 160; - //time := os.GetTime() - //os.DebugOutStr("Time: ") - //os.DebugOutHex(time) - for true { - switch os.Event() { - case os.EVENT_REDRAW: - RedrawAll(pos) - break - case os.EVENT_BUTTON: - switch os.GetButtonID() { - case Btn1: - pos-=32 - RedrawAll(pos) - break - case Btn2: - pos+=32 - RedrawAll(pos); - break - case BtnExit: - os.Exit() - } - } - } -} diff --git a/programs/develop/golang/os.go b/programs/develop/golang/os.go deleted file mode 100644 index 13339d2de8..0000000000 --- a/programs/develop/golang/os.go +++ /dev/null @@ -1,34 +0,0 @@ -package os - -const ( - EVENT_NONE = 0 /* Event queue is empty */ - EVENT_REDRAW = 1 /* Window and window elements should be redrawn */ - EVENT_KEY = 2 /* A key on the keyboard was pressed */ - EVENT_BUTTON = 3 /* A button was clicked with the mouse */ - EVENT_DESKTOP = 5 /* Desktop redraw finished */ - EVENT_MOUSE = 6 /* Mouse activity (movement, button press) was detected */ - EVENT_IPC = 7 /* Interprocess communication notify */ - EVENT_NETWORK = 8 /* Network event */ - EVENT_DEBUG = 9 /* Debug subsystem event */ - EVENT_IRQBEGIN = 16 -) - -func Sleep(uint32) -func GetTime()(time uint32) -func Event()(int) -func GetButtonID()(id int) -func CreateButton(x int, y int, xsize int, ysize int, id int, color uint32) -func Exit() -func Redraw(int) -func Window(y int, x int, w int,h int, title string) -func WriteText(x int ,y int , color uint32, text string) -func WriteText2(int ,int ,int, uint32,uint32) -func DrawLine(x1 int, y1 int, x2 int, y2 int, color uint32)(uint32) -func DrawBar(x int, y int, xsize int, ysize int, color uint32) -func DebugOutHex(uint32) -func DebugOutChar(byte) -func DebugOutStr(string) - -func Pointer2byteSlice(ptr uint32) *[]byte __asm__("__unsafe_get_addr") - -//func Pointer2uint32(ptr interface{}) uint32 __asm__("__unsafe_get_addr") \ No newline at end of file diff --git a/programs/develop/golang/run.bat b/programs/develop/golang/run.bat deleted file mode 100644 index 541920a4d4..0000000000 --- a/programs/develop/golang/run.bat +++ /dev/null @@ -1 +0,0 @@ -qemu-system-i386 -fda C:\Users\rgimad\Documents\Programming_projects\KOS_IMAGES\latest_kolibri.img -boot a -m 512 -usbdevice tablet -drive file=fat:rw:. \ No newline at end of file diff --git a/programs/develop/golang/static.lds b/programs/develop/golang/static.lds deleted file mode 100644 index 3a63b5031d..0000000000 --- a/programs/develop/golang/static.lds +++ /dev/null @@ -1,31 +0,0 @@ -SECTIONS -{ - . = 0x00000; - .text : - { - LONG(0x554e454D); - LONG(0x31305445); - LONG(1); - LONG(go.kernel.Load); - LONG(__end); - LONG(0x10000); - LONG(0x10000); - LONG(0); - LONG(0); - *(.text) - } - .eh_frame : { - *(.eh_frame) - } - .group : { - *(.group) - } - .data : { - *(.data) - } - .rodata : { - *(.rodata) - *(.rodata.*) - } - __end = .; -} diff --git a/programs/develop/golang/syscalls.s b/programs/develop/golang/syscalls.s deleted file mode 100755 index 66444797f2..0000000000 --- a/programs/develop/golang/syscalls.s +++ /dev/null @@ -1,327 +0,0 @@ - -SECTION .text - -global go.os.Sleep -global go.os.Event -global go.os.GetButtonID -global go.os.CreateButton -global go.os.Exit -global go.os.Redraw -global go.os.Window -global go.os.WriteText -global go.os.GetTime -global go.os.DrawLine -global go.os.DrawBar -global go.os.DebugOutHex -global go.os.DebugOutChar -global go.os.DebugOutStr -global go.os.WriteText2 - -global runtime.memequal32..f -runtime.memequal32..f: - ret - -global runtime.memequal8..f -runtime.memequal8..f: - ret - -global runtime.memequal -runtime.memequal: - ret - -global go.os.SetByteString -go.os.SetByteString: - push ebp - mov ebp, esp - mov eax, [ebp+8] - mov ebx, [ebp+12] - mov ecx, [ebp+16] - mov dh, [ebp+20] - mov byte[eax+ecx], dh - mov esp, ebp - pop ebp - ret - -global __go_runtime_error -global __go_register_gc_roots -global __unsafe_get_addr - -__unsafe_get_addr: - push ebp - mov ebp, esp - mov eax, [ebp+8] - mov esp, ebp - pop ebp - ret - -__go_register_gc_roots: -__go_runtime_error: - ret - -global runtime.writeBarrier -global runtime.gcWriteBarrier -runtime.writeBarrier: - mov eax, [esp+8] - mov ebx, [esp+12] - mov dword[eax], ebx - ret - -global runtime.strequal..f -runtime.strequal..f: - mov eax,[esp+8] - mov ebx,[esp+16] - mov ecx,0 - strcmp_loop: - mov byte dl,[eax+ecx] - mov byte dh,[ebx+ecx] - inc ecx - cmp dl,0 - je strcmp_end_0 - cmp byte dl,dh - je strcmp_loop - jl strcmp_end_1 - jg strcmp_end_2 - strcmp_end_0: - cmp dh,0 - jne strcmp_end_1 - xor ecx,ecx - ret - strcmp_end_1: - mov ecx,1 - ret - strcmp_end_2: - mov ecx,-1 - ret - -runtime.gcWriteBarrier: - mov eax, [esp+8] - mov ebx, [esp+12] - mov dword[eax], ebx - ret - -global runtime.goPanicIndex -runtime.goPanicIndex: - ret - -global runtime.registerGCRoots -runtime.registerGCRoots: - ret - -global memcmp -memcmp: - push ebp - mov ebp,esp - mov esi, [ebp+8] ; Move first pointer to esi - mov edi, [ebp+12] ; Move second pointer to edi - mov ecx, [ebp+16] ; Move length to ecx - - cld ; Clear DF, the direction flag, so comparisons happen - ; at increasing addresses - cmp ecx, ecx ; Special case: If length parameter to memcmp is - ; zero, don't compare any bytes. - repe cmpsb ; Compare bytes at DS:ESI and ES:EDI, setting flags - ; Repeat this while equal ZF is set - setz al - mov esp,ebp - pop ebp - ret - - -go.os.Sleep: - push ebp - mov ebp,esp - mov eax, 5 - mov ebx, [ebp+8] - int 0x40 - mov esp,ebp - pop ebp - ret - - -go.os.Event: - mov eax, 10 - int 0x40 - ret - -go.os.GetButtonID: - mov eax,17 - int 0x40 - test al,al - jnz .no_button - shr eax,8 - ret -.no_button: - xor eax,eax - dec eax - ret - -go.os.Exit: - mov eax, -1 - int 0x40 - ret - -go.os.Redraw: - push ebp - mov ebp,esp - mov eax, 12 - mov ebx, [ebp+8] - int 0x40 - mov esp,ebp - pop ebp - ret - -go.os.Window: - push ebp - mov ebp,esp - mov ebx, [ebp+8] - shl ebx, 16 - or ebx, [ebp+16] - mov ecx, [ebp+12] - shl ecx, 16 - or ecx, [ebp+20] - mov edx, 0x14 - shl edx, 24 - or edx, 0xFFFFFF - mov esi, 0x808899ff - mov edi, [ebp+24] - xor eax, eax - int 0x40 - mov esp,ebp - pop ebp - ret - -go.os.WriteText: - push ebp - mov ebp,esp - mov eax,4 - mov ebx,[ebp+8] - shl ebx,16 - mov bx,[ebp+12] - mov ecx,[ebp+16] - mov edx,[ebp+20] - mov esi,[ebp+24] - int 0x40 - mov esp,ebp - pop ebp - ret - -go.os.WriteText2: - push ebp - mov ebp,esp - mov eax,47 - mov ebx,[ebp+8] - shl ebx,16 - mov ecx,[ebp+12] - mov edx,[ebp+20] - shl edx,16 - add edx, [ebp+24] - mov esi,[ebp+28] - int 0x40 - mov esp,ebp - pop ebp - ret - -go.os.DrawLine: - push ebp - mov ebp,esp - mov ebx,[ebp+8] - shl ebx,16 - mov bx,[ebp+16] - mov ecx,[ebp+12] - shl ecx,16 - mov cx,[ebp+20] - mov edx,[ebp+24] - mov eax,38 - int 0x40 - mov esp,ebp - pop ebp - ret - -go.os.DrawBar: - push ebp - mov ebp,esp - mov eax,13 - mov ebx,[ebp+8] - shl ebx,16 - mov bx,[ebp+16] - mov ecx,[ebp+12] - shl ecx,16 - mov cx,[ebp+20] - mov edx,[ebp+24] - int 0x40 - mov esp,ebp - pop ebp - ret - -go.os.GetTime: - mov eax, 3 - int 0x40 - ret - -go.os.DebugOutHex: - mov eax, [esp+4] - mov edx, 8 - .new_char: - rol eax, 4 - movzx ecx, al - and cl, 0x0f - mov cl, [__hexdigits + ecx] - pushad - mov eax, 63 - mov ebx, 1 - int 0x40 - popad - dec edx - jnz .new_char - ret - -go.os.DebugOutChar: - mov al, [esp+4] - pushf - pushad - mov cl,al - mov eax,63 - mov ebx,1 - int 0x40 - popad - popf - ret - -go.os.DebugOutStr: - mov edx,[esp+4] - mov eax,63 - mov ebx,1 - m2: - mov cl, [edx] - test cl,cl - jz m1 - int 40h - inc edx - jmp m2 - m1: - ret - -go.os.CreateButton: - push ebp - mov ebp,esp - mov eax, 8 - mov ebx, [ebp+8] - shl ebx, 16 - mov bx, [ebp+16] - mov ecx, [ebp+12] - shl ecx, 16 - mov cx, [ebp+20] - mov edx, [ebp+24] - mov esi, [ebp+28] - int 0x40 - mov esp,ebp - pop ebp - ret - -SECTION .data -__hexdigits: - db '0123456789ABCDEF' - -__test: - dd __hexdigits - dd 15 \ No newline at end of file