forked from KolibriOS/kolibrios
scc examples
git-svn-id: svn://kolibrios.org@719 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
/********* C library *********/
|
||||
|
||||
get_event()
|
||||
{
|
||||
#asm
|
||||
mov eax,10
|
||||
int 0x40
|
||||
#endasm
|
||||
}
|
||||
|
||||
get_key()
|
||||
{
|
||||
#asm
|
||||
mov eax,2
|
||||
int 0x40
|
||||
and eax,0x0000ff00
|
||||
shr eax,8
|
||||
#endasm
|
||||
}
|
||||
|
||||
get_button()
|
||||
{
|
||||
#asm
|
||||
mov eax,17
|
||||
int 0x40
|
||||
shr eax,8
|
||||
#endasm
|
||||
}
|
||||
|
||||
begin_draw()
|
||||
{
|
||||
#asm
|
||||
mov ebx,1
|
||||
mov eax,12
|
||||
int 0x40
|
||||
#endasm
|
||||
}
|
||||
|
||||
end_draw()
|
||||
{
|
||||
#asm
|
||||
mov ebx,2
|
||||
mov eax,12
|
||||
int 0x40
|
||||
#endasm
|
||||
}
|
||||
|
||||
window(x1,y1,w,h,c_area,c_grab,c_fram)
|
||||
int x1,y1,w,h; /* esp +32 +28 +24 +20 */
|
||||
int c_area,c_grab,c_fram; /* esp +16 +12 +8 */
|
||||
{
|
||||
#asm
|
||||
; color of frames
|
||||
mov edi,[esp+8]
|
||||
|
||||
; color of grab bar bit 8->color gl
|
||||
mov esi,[esp+12]
|
||||
|
||||
; color of work area bit 8-> color gl
|
||||
mov edx,[esp+16]
|
||||
|
||||
;left / width
|
||||
mov ebx,[esp+32]
|
||||
shl ebx,16
|
||||
mov bx,[esp+24]
|
||||
;top / height
|
||||
mov ecx,[esp+28]
|
||||
shl ecx,16
|
||||
mov cx,[esp+20]
|
||||
|
||||
;execute
|
||||
mov eax,0
|
||||
int 0x40
|
||||
#endasm
|
||||
}
|
||||
|
||||
label(x,y,color,p_string)
|
||||
int x,y,color; /* esp +20 +16 +12 */
|
||||
char *p_string; /* esp +8 */
|
||||
{
|
||||
#asm
|
||||
mov ebx,[esp+20]
|
||||
shl ebx,16
|
||||
mov bx,[esp+16]
|
||||
mov ecx,[esp+12]
|
||||
mov edx,[esp+8]
|
||||
|
||||
;find text lenght
|
||||
xor esi,esi
|
||||
.next:
|
||||
cmp byte [edx+esi],0
|
||||
jz .good
|
||||
inc esi
|
||||
jmp .next
|
||||
.good:
|
||||
|
||||
mov eax,4
|
||||
int 0x40
|
||||
#endasm
|
||||
}
|
||||
|
||||
// Button + Text
|
||||
buttonT(x1,y1,w,h,color,id,p_string, str_color)
|
||||
int x1,y1,w,h; /* esp +28 +24 +20 +16 */
|
||||
int color,id;
|
||||
char *p_string;
|
||||
int str_color;
|
||||
|
||||
{
|
||||
button(x1,y1,w,h,color,id);
|
||||
label(x1+4,y1+2,str_color,p_string);
|
||||
}
|
||||
|
||||
button(x1,y1,w,h,color,id)
|
||||
int x1,y1,w,h; /* esp +28 +24 +20 +16 */
|
||||
int color,id; /* esp +12 +8 */
|
||||
{
|
||||
#asm
|
||||
;left / width
|
||||
mov ebx,[esp+28]
|
||||
shl ebx,16
|
||||
mov bx,[esp+20]
|
||||
;top / height
|
||||
mov ecx,[esp+24]
|
||||
shl ecx,16
|
||||
mov cx,[esp+16]
|
||||
|
||||
mov edx,[esp+8]
|
||||
mov esi,[esp+12]
|
||||
|
||||
mov eax,8
|
||||
int 0x40
|
||||
#endasm
|
||||
}
|
||||
|
||||
s_quit()
|
||||
{
|
||||
#asm
|
||||
mov eax,-1
|
||||
int 0x40
|
||||
#endasm
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
s_get_event()
|
||||
s_get_key()
|
||||
s_get_button()
|
||||
s_begin_draw()
|
||||
s_end_draw()
|
||||
s_draw_window(x1,y1,w,h,c_area,c_grab,c_fram)
|
||||
s_print_text(x,y,color,p_string)
|
||||
s_draw_button(x1,y1,w,h,color,id)
|
||||
s_quit()
|
||||
|
||||
*/
|
||||
|
||||
/*****************************/
|
||||
Reference in New Issue
Block a user