/programs/develop/golang/example.go |
---|
File deleted |
/programs/develop/golang/Makefile |
---|
1,4 → 1,4 |
PROGRAM=example |
PROGRAM=main |
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= -nostdlib -nostdinc -fno-stack-protector -fno-split-stack -static -m32 -g -I. |
/programs/develop/golang/main.go |
---|
0,0 → 1,51 |
package kernel |
import "os" |
import "colors" |
const ( |
Btn1=2; |
Btn2=3; |
BtnExit=1; |
) |
func RedrawAll(bar_pos int){ |
btn_txt1:=" <- " |
btn_txt2:=" -> " |
str:="I love KolibriOS" |
title:="Test Golang" |
os.Redraw(1) |
os.Window(500,250,420,200, title) |
os.WriteText(32,32, 0x11000000 | colors.Green,str, 10) |
os.DrawLine(32, 80, 150, 80, colors.Green) |
os.CreateButton(32, 128, 80, 30, Btn1, colors.Blue); |
os.CreateButton(300, 128, 80, 30, Btn2, colors.Blue); |
os.WriteText(32,128, 0x11000000 | colors.White,btn_txt1, 10) |
os.WriteText(320,128, 0x11000000 | colors.White,btn_txt2, 10) |
} |
func Load() { |
time := os.GetTime() |
os.DebugOutStr("Time: ") |
os.DebugOutHex(time) |
var pos=32; |
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() |
} |
} |
} |
} |
/programs/develop/golang/int40.s |
---|
0,0 → 1,86 |
SECTION .text |
[GLOBAL __start] |
extern go.kernel.Load |
global go.os.Sleep |
global go.os.Event |
global go.os.Button |
global go.os.Exit |
global go.os.Redraw |
global go.os.Window |
__start: |
call go.kernel.Load |
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: |
push ebp |
mov ebp,esp |
mov eax, 10 |
int 0x40 |
mov esp,ebp |
pop ebp |
ret |
go.os.Button: |
push ebp |
mov ebp,esp |
mov eax, 17 |
int 0x40 |
mov esp,ebp |
pop ebp |
ret |
go.os.Exit: |
push ebp |
mov ebp,esp |
mov eax, -1 |
int 0x40 |
mov esp,ebp |
pop ebp |
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 |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |