forked from KolibriOS/kolibrios
all skinned demos now use 0 function to draw header, most of them use client relative drawing
git-svn-id: svn://kolibrios.org@316 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
71974025fe
commit
f2647d013c
@ -49,7 +49,7 @@ still:
|
|||||||
; cmp eax,3 ; button in buffer ?
|
; cmp eax,3 ; button in buffer ?
|
||||||
jz button
|
jz button
|
||||||
|
|
||||||
fps 280,8,cl_White,cl_Black
|
fps 230,8,cl_White,cl_Black
|
||||||
|
|
||||||
main_loop:
|
main_loop:
|
||||||
|
|
||||||
@ -104,14 +104,8 @@ draw_window:
|
|||||||
mov eax,0 ;Draw window
|
mov eax,0 ;Draw window
|
||||||
mov ebx,100*65536+(SCREEN_X+9) ;x start*65536+x size
|
mov ebx,100*65536+(SCREEN_X+9) ;x start*65536+x size
|
||||||
mov ecx,100*65536+(SCREEN_Y+26) ;y start*65536+y size
|
mov ecx,100*65536+(SCREEN_Y+26) ;y start*65536+y size
|
||||||
mov edx,0x03000000 ;0x03 use skinned window
|
mov edx,0x13000000 ;0x03 use skinned window
|
||||||
int 0x40
|
mov edi,header
|
||||||
|
|
||||||
mov eax,4 ;Out Text
|
|
||||||
mov ebx,8*65536+8 ;x start*65536+y start
|
|
||||||
mov ecx,0x00ffffff ;color White
|
|
||||||
mov edx,head_label
|
|
||||||
mov esi,hl_end-head_label
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov eax,12 ;End
|
mov eax,12 ;End
|
||||||
@ -119,9 +113,7 @@ draw_window:
|
|||||||
int 0x40
|
int 0x40
|
||||||
ret
|
ret
|
||||||
|
|
||||||
head_label: db "3D TEST SAMPLE FOR MENUETOS"
|
header db '3D TEST SAMPLE FOR MENUETOS',0
|
||||||
hl_end:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; Draw faces procedure
|
; Draw faces procedure
|
||||||
|
@ -13,8 +13,8 @@ use32
|
|||||||
dd 0x01
|
dd 0x01
|
||||||
dd START
|
dd START
|
||||||
dd I_END
|
dd I_END
|
||||||
dd 0x100000
|
dd 0x1000
|
||||||
dd 0x7fff0
|
dd 0x1000
|
||||||
dd 0x0 , 0x0
|
dd 0x0 , 0x0
|
||||||
|
|
||||||
include "lang.inc"
|
include "lang.inc"
|
||||||
@ -22,7 +22,7 @@ include "macros.inc"
|
|||||||
|
|
||||||
|
|
||||||
START:
|
START:
|
||||||
|
red:
|
||||||
call drawwindow
|
call drawwindow
|
||||||
|
|
||||||
still:
|
still:
|
||||||
@ -41,18 +41,14 @@ still:
|
|||||||
call drawclock
|
call drawclock
|
||||||
|
|
||||||
jmp still
|
jmp still
|
||||||
|
|
||||||
red: ; redraw
|
|
||||||
call drawwindow
|
|
||||||
jmp still
|
|
||||||
|
|
||||||
button:
|
button:
|
||||||
mov eax,17 ; get id
|
mov al,17 ; get id
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
cmp ah,1 ; button id=1 ?
|
cmp ah,1 ; button id=1 ?
|
||||||
jne noclose
|
jne noclose
|
||||||
mov eax,-1 ; close this program
|
or eax,-1 ; close this program
|
||||||
int 0x40
|
int 0x40
|
||||||
noclose:
|
noclose:
|
||||||
|
|
||||||
@ -77,7 +73,7 @@ dgtomem:
|
|||||||
mov ebx,74*65536+10
|
mov ebx,74*65536+10
|
||||||
mov edi,dg1
|
mov edi,dg1
|
||||||
digitlp:
|
digitlp:
|
||||||
mov ecx,30*65536+10
|
mov ecx,10*65536+10
|
||||||
xor esi,esi
|
xor esi,esi
|
||||||
plotlp:
|
plotlp:
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
@ -122,36 +118,21 @@ drawwindow:
|
|||||||
mov ebx,1 ; start redraw
|
mov ebx,1 ; start redraw
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov eax,0 ; window
|
xor eax,eax ; window
|
||||||
mov ebx,100*65536+100
|
mov ebx,100*65536+107
|
||||||
mov ecx,100*65536+100
|
mov ecx,100*65536+105
|
||||||
mov edx,0x83400088
|
mov edx,0x33400088
|
||||||
mov esi,0x805080d0
|
mov edi,header
|
||||||
mov edi,0x000000ff
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
call drawclock
|
call drawclock
|
||||||
|
|
||||||
mov eax,4 ; text
|
|
||||||
mov ebx,8*65536+8
|
|
||||||
mov ecx,0x10ddeeff
|
|
||||||
mov edx,title
|
|
||||||
mov esi,titlend-title
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
|
|
||||||
mov eax,12
|
mov eax,12
|
||||||
mov ebx,2 ; end redraw
|
mov ebx,2 ; end redraw
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
header db 'BCD Clock',0
|
||||||
|
I_END:
|
||||||
title:
|
dg1: db ?
|
||||||
db 'BCD Clock'
|
|
||||||
titlend:
|
|
||||||
|
|
||||||
dg1: db ?
|
|
||||||
|
|
||||||
I_END:
|
|
@ -64,7 +64,7 @@ use32
|
|||||||
dd START
|
dd START
|
||||||
dd I_END
|
dd I_END
|
||||||
dd 0x100000
|
dd 0x100000
|
||||||
dd 0x0cfff0
|
dd 0x100000
|
||||||
dd 0x0
|
dd 0x0
|
||||||
not1strun dd 0x0
|
not1strun dd 0x0
|
||||||
|
|
||||||
@ -223,12 +223,19 @@ key:
|
|||||||
jmp still
|
jmp still
|
||||||
|
|
||||||
draw_window:
|
draw_window:
|
||||||
|
|
||||||
|
mov eax,48
|
||||||
|
mov ebx,3
|
||||||
|
mov ecx,sc
|
||||||
|
mov edx,sizeof.system_colors
|
||||||
|
int 0x40
|
||||||
|
|
||||||
mov eax,12
|
mov eax,12
|
||||||
mov ebx,1
|
mov ebx,1
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov ebx,10*65536+_X*2
|
mov ebx,10*65536+_X*2+30
|
||||||
mov ecx,100*65536+_Y*2
|
mov ecx,100*65536+_Y*2
|
||||||
mov edx,0x03261212
|
mov edx,0x03261212
|
||||||
mov esi,0x805080d0
|
mov esi,0x805080d0
|
||||||
@ -237,7 +244,8 @@ draw_window:
|
|||||||
|
|
||||||
mov eax,4
|
mov eax,4
|
||||||
mov ebx,8*65536+8
|
mov ebx,8*65536+8
|
||||||
mov ecx,0x10ddeeff
|
mov ecx,[sc.grab_text]
|
||||||
|
or ecx,0x10000000
|
||||||
mov edx,title
|
mov edx,title
|
||||||
mov esi,title_end-title
|
mov esi,title_end-title
|
||||||
cmp [help],2
|
cmp [help],2
|
||||||
@ -439,5 +447,5 @@ freetest BGIfree ?,?,?,?,?,?,?,?,?
|
|||||||
help db ?
|
help db ?
|
||||||
pinfo:
|
pinfo:
|
||||||
times 1024 db ?
|
times 1024 db ?
|
||||||
rb 10000 ; reserve, unless process info will corrupt our fonts (why?)
|
sc system_colors
|
||||||
I_END:
|
I_END:
|
||||||
|
@ -148,15 +148,8 @@ draw_window:
|
|||||||
mov eax,0 ; DRAW WINDOW
|
mov eax,0 ; DRAW WINDOW
|
||||||
mov ebx,1*65536+200 ; [x start] *65536 + [x size]
|
mov ebx,1*65536+200 ; [x start] *65536 + [x size]
|
||||||
mov ecx,200*65536+240 ; [y start] *65536 + [y size]
|
mov ecx,200*65536+240 ; [y start] *65536 + [y size]
|
||||||
mov edx,0x03000000 ; work area color (type II)
|
mov edx,0x13000000 ; work area color (type II)
|
||||||
mov esi,0x82a0a0a0 ; grab bar color (w/glide)
|
mov edi,header ; frame color
|
||||||
mov edi,0x82bbbbbb ; frame color
|
|
||||||
int 0x40
|
|
||||||
mov eax,4 ; WINDOW LABEL
|
|
||||||
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
|
|
||||||
mov ecx,0xeeeeee ; color of text (white)
|
|
||||||
mov edx,prog_name ; pointer to header
|
|
||||||
mov esi,namelen-prog_name ; text length
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
call palette ; display color palette
|
call palette ; display color palette
|
||||||
@ -325,9 +318,7 @@ h2: mov ebx,4*65536+192 ; y and width
|
|||||||
; ********** DATA DEFINITIONS AREA ***********
|
; ********** DATA DEFINITIONS AREA ***********
|
||||||
; *********************************************
|
; *********************************************
|
||||||
|
|
||||||
prog_name:
|
header db 'COLOR REFERENCE H>HELP',0
|
||||||
db 'COLOR REFERENCE H>HELP'
|
|
||||||
namelen:
|
|
||||||
|
|
||||||
picks:
|
picks:
|
||||||
dd 31,2 ; selected top/bot colors
|
dd 31,2 ; selected top/bot colors
|
||||||
|
@ -79,16 +79,8 @@ draw_window:
|
|||||||
mov eax,0 ; function 0 : define and draw window
|
mov eax,0 ; function 0 : define and draw window
|
||||||
mov ebx,100*65536+200 ; [x start] *65536 + [x size]
|
mov ebx,100*65536+200 ; [x start] *65536 + [x size]
|
||||||
mov ecx,100*65536+200 ; [y start] *65536 + [y size]
|
mov ecx,100*65536+200 ; [y start] *65536 + [y size]
|
||||||
mov edx,0x03ffffff ; color of work area RRGGBB,8->color gl
|
mov edx,0x13ffffff ; color of work area RRGGBB,8->color gl
|
||||||
mov esi,0x806688cc
|
mov edi,header ; WINDOW LABEL
|
||||||
mov edi,0x006688cc
|
|
||||||
int 0x40
|
|
||||||
; WINDOW LABEL
|
|
||||||
mov eax,4 ; function 4 : write text to window
|
|
||||||
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
|
|
||||||
mov ecx,0x00ddeeff ; color of text RRGGBB
|
|
||||||
mov edx,labelt ; pointer to text beginning
|
|
||||||
mov esi,labellen-labelt ; text length
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
call draw_slider_info
|
call draw_slider_info
|
||||||
@ -382,10 +374,5 @@ ret
|
|||||||
;**************************************************
|
;**************************************************
|
||||||
|
|
||||||
; DATA AREA
|
; DATA AREA
|
||||||
labelt: db 'Color Slider'
|
header db 'Color Slider',0
|
||||||
labellen:
|
I_END:
|
||||||
I_END:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -9,6 +9,8 @@
|
|||||||
; Willow - greatly srinked code size by using GIF texture and FPU to calculate sine table
|
; Willow - greatly srinked code size by using GIF texture and FPU to calculate sine table
|
||||||
;
|
;
|
||||||
; !!!! Don't use GIF.INC in your apps - it's modified for FREE3D !!!!
|
; !!!! Don't use GIF.INC in your apps - it's modified for FREE3D !!!!
|
||||||
|
;
|
||||||
|
; Heavyiron - new 0-function of drawing window from kolibri (do not work correctly with menuet)
|
||||||
|
|
||||||
TEX_SIZE equ 64*64*4
|
TEX_SIZE equ 64*64*4
|
||||||
ceil = sinus+16*1024
|
ceil = sinus+16*1024
|
||||||
@ -29,8 +31,8 @@ use32
|
|||||||
dd 0x01 ; header version
|
dd 0x01 ; header version
|
||||||
dd START ; start of code
|
dd START ; start of code
|
||||||
dd I_END ; size of image
|
dd I_END ; size of image
|
||||||
dd APP_MEM;0x300000 ; memory for app
|
dd APP_MEM;0x100000 ; memory for app
|
||||||
dd APP_MEM;0x300000 ; esp
|
dd APP_MEM;0x100000 ; esp
|
||||||
dd 0x0 , 0x0 ; I_Param , I_Icon
|
dd 0x0 , 0x0 ; I_Param , I_Icon
|
||||||
include 'lang.inc'
|
include 'lang.inc'
|
||||||
include 'macros.inc'
|
include 'macros.inc'
|
||||||
@ -307,28 +309,10 @@ draw_window:
|
|||||||
mov eax,0 ; function 0 : define and draw window
|
mov eax,0 ; function 0 : define and draw window
|
||||||
mov ebx,50*65536+649 ; [x start] *65536 + [x size]
|
mov ebx,50*65536+649 ; [x start] *65536 + [x size]
|
||||||
mov ecx,50*65536+504 ; [y start] *65536 + [y size]
|
mov ecx,50*65536+504 ; [y start] *65536 + [y size]
|
||||||
mov edx,0x02ffffff ; color of work area RRGGBB,8->color gl
|
mov edx,0x33ffffff ; color of work area RRGGBB,8->color gl
|
||||||
mov esi,0x80777777 ; color of grab bar RRGGBB,8->color gl
|
mov edi,header
|
||||||
mov edi,0x00777777 ; color of frames RRGGBB
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
; WINDOW LABEL
|
|
||||||
mov eax,4 ; function 4 : write text to window
|
|
||||||
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
|
|
||||||
mov ecx,0x00ddeeff ; color of text RRGGBB
|
|
||||||
mov edx,labelt ; pointer to text beginning
|
|
||||||
mov esi,labellen-labelt ; text length
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
; CLOSE BUTTON
|
|
||||||
mov eax,8 ; function 8 : define and draw button
|
|
||||||
mov ebx,(649-19)*65536+12 ; [x start] *65536 + [x size]
|
|
||||||
mov ecx,5*65536+12 ; [y start] *65536 + [y size]
|
|
||||||
mov edx,1 ; button id
|
|
||||||
mov esi,0x777777 ; button color RRGGBB
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
|
|
||||||
mov eax,12 ; function 12:tell os about windowdraw
|
mov eax,12 ; function 12:tell os about windowdraw
|
||||||
mov ebx,2 ; 2, end of draw
|
mov ebx,2 ; 2, end of draw
|
||||||
int 0x40
|
int 0x40
|
||||||
@ -826,7 +810,7 @@ speedup:
|
|||||||
mov eax,7
|
mov eax,7
|
||||||
mov ebx,0x80000
|
mov ebx,0x80000
|
||||||
mov ecx,640*65536+480
|
mov ecx,640*65536+480
|
||||||
mov edx,5*65536+20
|
xor edx,edx
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
ret
|
ret
|
||||||
@ -1007,10 +991,8 @@ dd 0x0001FFFF ; initial player position * 0xFFFF
|
|||||||
vpy:
|
vpy:
|
||||||
dd 0x0001FFFF
|
dd 0x0001FFFF
|
||||||
|
|
||||||
labelt:
|
header db 'FISHEYE RAYCASTING ENGINE ETC. FREE3D',0
|
||||||
db 'FISHEYE RAYCASTING ENGINE ETC. FREE3D'
|
|
||||||
|
|
||||||
labellen:
|
|
||||||
sindegree dd 0.0
|
sindegree dd 0.0
|
||||||
sininc dd 0.0017453292519943295769236907684886
|
sininc dd 0.0017453292519943295769236907684886
|
||||||
sindiv dd 6553.5
|
sindiv dd 6553.5
|
||||||
|
@ -38,7 +38,7 @@ CODE
|
|||||||
mov eax,7
|
mov eax,7
|
||||||
mov ebx,virtual_screen_32
|
mov ebx,virtual_screen_32
|
||||||
mov ecx,(WND_SIZE_X shl 16)+WND_SIZE_Y
|
mov ecx,(WND_SIZE_X shl 16)+WND_SIZE_Y
|
||||||
mov edx,(5 shl 16)+23
|
xor edx,edx
|
||||||
int 0x40
|
int 0x40
|
||||||
jmp .event_loop
|
jmp .event_loop
|
||||||
|
|
||||||
@ -50,20 +50,14 @@ CODE
|
|||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov ebx,(100 shl 16)+(WND_SIZE_X+9)
|
mov ebx,(100 shl 16)+(WND_SIZE_X+9)
|
||||||
mov ecx,(100 shl 16)+(WND_SIZE_Y+28)
|
mov ecx,(100 shl 16)+(WND_SIZE_Y+28)
|
||||||
mov edx,0x03000000
|
mov edx,0x33000000
|
||||||
|
mov edi,header
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov eax,7
|
mov eax,7
|
||||||
mov ebx,virtual_screen_32
|
mov ebx,virtual_screen_32
|
||||||
mov ecx,(WND_SIZE_X shl 16)+WND_SIZE_Y
|
mov ecx,(WND_SIZE_X shl 16)+WND_SIZE_Y
|
||||||
mov edx,(5 shl 16)+23
|
xor edx,edx
|
||||||
int 0x40
|
|
||||||
|
|
||||||
mov eax,4
|
|
||||||
mov ebx,0x00060006
|
|
||||||
mov ecx,0x10ffffff
|
|
||||||
mov edx,window_title
|
|
||||||
mov esi,window_title_len
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov eax,12
|
mov eax,12
|
||||||
@ -166,9 +160,7 @@ DATA
|
|||||||
delta_angle dd 0.0245436926066 ; pi/128
|
delta_angle dd 0.0245436926066 ; pi/128
|
||||||
scale_sin dd 128.0
|
scale_sin dd 128.0
|
||||||
|
|
||||||
window_title:
|
header db 'MoveBack',0
|
||||||
db 'MoveBack'
|
|
||||||
window_title_len = $ - window_title
|
|
||||||
|
|
||||||
UDATA
|
UDATA
|
||||||
ver_counter dd ?
|
ver_counter dd ?
|
||||||
|
@ -31,7 +31,7 @@ CODE
|
|||||||
mov al,7
|
mov al,7
|
||||||
mov ebx,virtual_screen_32
|
mov ebx,virtual_screen_32
|
||||||
mov ecx,(WND_SIZE_X shl 16)+WND_SIZE_Y
|
mov ecx,(WND_SIZE_X shl 16)+WND_SIZE_Y
|
||||||
mov edx,(4 shl 16)+24
|
xor edx,edx
|
||||||
int 0x40
|
int 0x40
|
||||||
call rotate_pal
|
call rotate_pal
|
||||||
jmp .event_loop
|
jmp .event_loop
|
||||||
@ -45,21 +45,15 @@ CODE
|
|||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov ebx,(100 shl 16)+(WND_SIZE_X+8)
|
mov ebx,(100 shl 16)+(WND_SIZE_X+8)
|
||||||
mov ecx,(100 shl 16)+(WND_SIZE_Y+28)
|
mov ecx,(100 shl 16)+(WND_SIZE_Y+25)
|
||||||
mov edx,0x03000000
|
mov edx,0x33000000
|
||||||
|
mov edi,header
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov al,7
|
mov al,7
|
||||||
mov ebx,virtual_screen_32
|
mov ebx,virtual_screen_32
|
||||||
mov ecx,(WND_SIZE_X shl 16)+WND_SIZE_Y
|
mov ecx,(WND_SIZE_X shl 16)+WND_SIZE_Y
|
||||||
mov edx,(4 shl 16)+24
|
xor edx,edx
|
||||||
int 0x40
|
|
||||||
|
|
||||||
mov al,4
|
|
||||||
mov ebx,0x00060006
|
|
||||||
mov ecx,0x10ffffff
|
|
||||||
mov edx,window_title
|
|
||||||
mov esi,window_title_len
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
pop eax
|
pop eax
|
||||||
@ -167,9 +161,7 @@ include "graph8.inc"
|
|||||||
DATA
|
DATA
|
||||||
_multiplier dd 63.5
|
_multiplier dd 63.5
|
||||||
|
|
||||||
window_title:
|
header db 'Plasma',0
|
||||||
db 'Plasma'
|
|
||||||
window_title_len = $ - window_title
|
|
||||||
|
|
||||||
UDATA
|
UDATA
|
||||||
_fpom32 rd 1
|
_fpom32 rd 1
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
;
|
;
|
||||||
; TIMER
|
; TIMER (show how much system works)
|
||||||
;
|
;
|
||||||
; Compile with flat assembler
|
; Compile with flat assembler
|
||||||
;
|
;
|
||||||
@ -53,11 +53,6 @@ still:
|
|||||||
; *********************************************
|
; *********************************************
|
||||||
|
|
||||||
draw_clock:
|
draw_clock:
|
||||||
mov eax, 13 ; clear area
|
|
||||||
mov ebx, 10*65536+55
|
|
||||||
mov ecx, 30*65536+10
|
|
||||||
mov edx, [sc.work]
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
mov eax, 26 ; get system counter
|
mov eax, 26 ; get system counter
|
||||||
mov ebx, 9
|
mov ebx, 9
|
||||||
@ -84,9 +79,10 @@ draw_clock:
|
|||||||
|
|
||||||
mov eax,47 ; HH
|
mov eax,47 ; HH
|
||||||
mov esi,[sc.work_text]
|
mov esi,[sc.work_text]
|
||||||
or esi,0x10000000
|
or esi,0x50000000
|
||||||
|
mov edi,[sc.work]
|
||||||
mov ebx,0x00020000
|
mov ebx,0x00020000
|
||||||
mov edx,10*65536+30
|
mov edx,15*65536+5
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
pop eax ; MM
|
pop eax ; MM
|
||||||
@ -122,30 +118,12 @@ draw_window:
|
|||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
; DRAW WINDOW
|
; DRAW WINDOW
|
||||||
mov eax,0 ; function 0 : define and draw window
|
xor eax,eax ; function 0 : define and draw window
|
||||||
mov ebx,100*65536+75 ; [x start] *65536 + [x size]
|
mov ebx,100*65536+100 ; [x start] *65536 + [x size]
|
||||||
mov ecx,100*65536+45 ; [y start] *65536 + [y size]
|
mov ecx,100*65536+40 ; [y start] *65536 + [y size]
|
||||||
mov edx,[sc.work] ; color of work area RRGGBB,8->color gl
|
mov edx,[sc.work] ; color of work area RRGGBB,8->color gl
|
||||||
mov esi,[sc.grab] ; color of grab bar RRGGBB,8->color gl
|
or edx,0x33000000
|
||||||
or esi,0x80000000
|
mov edi,header
|
||||||
mov edi,[sc.frame] ; color of frames RRGGBB
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
; WINDOW LABEL
|
|
||||||
mov eax,4 ; function 4 : write text to window
|
|
||||||
mov ebx,6*65536+7 ; [x start] *65536 + [y start]
|
|
||||||
mov ecx,[sc.grab_text] ; font 1 & color ( 0xF0RRGGBB )
|
|
||||||
or ecx,0x10000000
|
|
||||||
mov edx,header ; pointer to text beginning
|
|
||||||
mov esi,header.len ; text length
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
; CLOSE BUTTON
|
|
||||||
mov eax,8 ; function 8 : define and draw button
|
|
||||||
mov ebx,(75-16)*65536+12 ; [x start] *65536 + [x size]
|
|
||||||
mov ecx,4*65536+12 ; [y start] *65536 + [y size]
|
|
||||||
mov edx,1 ; button id
|
|
||||||
mov esi,[sc.grab_button] ; button color RRGGBB
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
call draw_clock
|
call draw_clock
|
||||||
@ -160,13 +138,9 @@ draw_window:
|
|||||||
; DATA AREA
|
; DATA AREA
|
||||||
|
|
||||||
if lang eq ru
|
if lang eq ru
|
||||||
header:
|
header db '’€‰Œ…<C592>',0
|
||||||
db '’€‰Œ…<C592>'
|
|
||||||
.len = $ - header
|
|
||||||
else
|
else
|
||||||
header:
|
header db 'TIMER',0
|
||||||
db 'TIMER'
|
|
||||||
.len = $ - header
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,7 +24,9 @@ START: ; start of execution
|
|||||||
mov [procinfo.x_size], 200
|
mov [procinfo.x_size], 200
|
||||||
mov [procinfo.y_start], 80
|
mov [procinfo.y_start], 80
|
||||||
mov [procinfo.y_size], 300
|
mov [procinfo.y_size], 300
|
||||||
|
call draw_window
|
||||||
|
red:
|
||||||
|
call get_transparent
|
||||||
call draw_window ; at first, draw the window
|
call draw_window ; at first, draw the window
|
||||||
|
|
||||||
still:
|
still:
|
||||||
@ -38,26 +40,20 @@ still:
|
|||||||
je key
|
je key
|
||||||
cmp eax,3 ; button in buffer ?
|
cmp eax,3 ; button in buffer ?
|
||||||
je button
|
je button
|
||||||
|
|
||||||
jmp still
|
|
||||||
|
|
||||||
red: ; redraw
|
|
||||||
call get_transparent
|
|
||||||
call draw_window
|
|
||||||
jmp still
|
jmp still
|
||||||
|
|
||||||
key: ; key
|
key: ; key
|
||||||
mov eax,2 ; just read it and ignore
|
mov al,2 ; just read it and ignore
|
||||||
int 0x40
|
int 0x40
|
||||||
jmp still
|
jmp still
|
||||||
|
|
||||||
button: ; button
|
button: ; button
|
||||||
mov eax,17 ; get id
|
mov al,17 ; get id
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
cmp ah,1 ; button id=1 ?
|
cmp ah,1 ; button id=1 ?
|
||||||
jne noclose
|
jne noclose
|
||||||
mov eax,-1 ; close this program
|
or eax,-1 ; close this program
|
||||||
int 0x40
|
int 0x40
|
||||||
noclose:
|
noclose:
|
||||||
|
|
||||||
@ -75,29 +71,19 @@ draw_window:
|
|||||||
mov ebx,1 ; 1, start of draw
|
mov ebx,1 ; 1, start of draw
|
||||||
int 0x40
|
int 0x40
|
||||||
; DRAW WINDOW
|
; DRAW WINDOW
|
||||||
mov eax,0 ; function 0 : define and draw window
|
xor eax,eax ; function 0 : define and draw window
|
||||||
mov ebx,[procinfo.x_start]
|
mov ebx,[procinfo.x_start]
|
||||||
shl ebx,16
|
shl ebx,16
|
||||||
add ebx,[procinfo.x_size]
|
add ebx,[procinfo.x_size]
|
||||||
dec ebx
|
|
||||||
mov ecx,[procinfo.y_start]
|
mov ecx,[procinfo.y_start]
|
||||||
shl ecx,16
|
shl ecx,16
|
||||||
add ecx,[procinfo.y_size]
|
add ecx,[procinfo.y_size]
|
||||||
dec ecx
|
mov edx,0x33000000 ; color of work area RRGGBB,8->color gl
|
||||||
mov edx,0x03000000 ; color of work area RRGGBB,8->color gl
|
mov edi,header ; WINDOW LABEL
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
call draw_transparent
|
call draw_transparent
|
||||||
; WINDOW LABEL
|
|
||||||
mov eax,4 ; function 4 : write text to window
|
|
||||||
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
|
|
||||||
mov ecx,0x10ddeeff ; color of text RRGGBB
|
|
||||||
mov edx,labelt ; pointer to text beginning
|
|
||||||
mov esi,labellen-labelt ; text length
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
; call draw_transparent
|
|
||||||
|
|
||||||
mov eax,12 ; function 12:tell os about windowdraw
|
mov eax,12 ; function 12:tell os about windowdraw
|
||||||
mov ebx,2 ; 2, end of draw
|
mov ebx,2 ; 2, end of draw
|
||||||
int 0x40
|
int 0x40
|
||||||
@ -116,7 +102,7 @@ draw_transparent:
|
|||||||
mov ecx,[procinfo.x_size]
|
mov ecx,[procinfo.x_size]
|
||||||
shl ecx,16
|
shl ecx,16
|
||||||
add ecx,[procinfo.y_size]
|
add ecx,[procinfo.y_size]
|
||||||
mov edx,4*65536+22
|
xor edx,edx
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
popa
|
popa
|
||||||
@ -131,10 +117,6 @@ get_transparent:
|
|||||||
mov ebx,I_END
|
mov ebx,I_END
|
||||||
mov ecx,-1
|
mov ecx,-1
|
||||||
int 0x40
|
int 0x40
|
||||||
; mov eax,[I_END+34]
|
|
||||||
; mov [x_start],eax
|
|
||||||
; mov eax,[I_END+38]
|
|
||||||
; mov [y_start],eax
|
|
||||||
|
|
||||||
mov eax,14
|
mov eax,14
|
||||||
int 0x40
|
int 0x40
|
||||||
@ -168,8 +150,6 @@ get_transparent:
|
|||||||
mov eax,35
|
mov eax,35
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
; shr eax,1
|
|
||||||
; and eax,0x7f7f7f
|
|
||||||
or eax, 0x4e4e4e
|
or eax, 0x4e4e4e
|
||||||
|
|
||||||
mov ebx,[esp+4]
|
mov ebx,[esp+4]
|
||||||
@ -213,9 +193,7 @@ y_end dd 0
|
|||||||
|
|
||||||
scx dd 640
|
scx dd 640
|
||||||
|
|
||||||
labelt:
|
header db 'Transparent',0
|
||||||
db 'EXAMPLE APPLICATION'
|
|
||||||
labellen:
|
|
||||||
|
|
||||||
I_END:
|
I_END:
|
||||||
procinfo process_information
|
procinfo process_information
|
||||||
|
@ -87,7 +87,7 @@ draw_window:
|
|||||||
xor eax,eax ;Draw window
|
xor eax,eax ;Draw window
|
||||||
mov ebx,100*65536+(SCREEN_X+9) ;x start*65536+x size
|
mov ebx,100*65536+(SCREEN_X+9) ;x start*65536+x size
|
||||||
mov ecx,100*65536+(SCREEN_Y+26) ;y start*65536+y size
|
mov ecx,100*65536+(SCREEN_Y+26) ;y start*65536+y size
|
||||||
mov edx,0x13000000 ;0x33 use skinned window
|
mov edx,0x13000000 ;0x13 use skinned window
|
||||||
mov edi,header
|
mov edi,header
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
; Menuet port by VT
|
; Menuet port by VT
|
||||||
|
|
||||||
|
appname equ 'TUBE - FPU'
|
||||||
|
|
||||||
use32
|
use32
|
||||||
org 0x0
|
org 0x0
|
||||||
|
|
||||||
@ -13,7 +15,7 @@ use32
|
|||||||
dd START
|
dd START
|
||||||
dd I_END
|
dd I_END
|
||||||
dd 0x40000
|
dd 0x40000
|
||||||
dd 0x3ff00
|
dd 0x40000
|
||||||
dd 0,0
|
dd 0,0
|
||||||
|
|
||||||
include 'macros.inc'
|
include 'macros.inc'
|
||||||
@ -47,7 +49,7 @@ still:
|
|||||||
cmp eax,0
|
cmp eax,0
|
||||||
je still
|
je still
|
||||||
|
|
||||||
mov eax,-1
|
or eax,-1
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
|
|
||||||
@ -175,7 +177,7 @@ display_image:
|
|||||||
|
|
||||||
mov eax,7
|
mov eax,7
|
||||||
mov ecx,320*65536+160
|
mov ecx,320*65536+160
|
||||||
mov edx,10*65536+27
|
xor edx,edx
|
||||||
mov ebx,0x10000
|
mov ebx,0x10000
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
@ -192,19 +194,11 @@ draw_window:
|
|||||||
mov ebx,1
|
mov ebx,1
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov eax,0
|
xor eax,eax
|
||||||
mov ebx,100*65536+339
|
mov ebx,100*65536+329
|
||||||
mov ecx,100*65536+198
|
mov ecx,100*65536+186
|
||||||
mov edx,0x03225588
|
mov edx,0x33000000
|
||||||
mov esi,0x0
|
mov edi,header
|
||||||
mov esi,0x0
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
mov eax,4
|
|
||||||
mov ebx,8*65536+8
|
|
||||||
mov ecx,0xffffff
|
|
||||||
mov edx,labeltext
|
|
||||||
mov esi,19
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov eax,12
|
mov eax,12
|
||||||
@ -214,7 +208,7 @@ draw_window:
|
|||||||
popa
|
popa
|
||||||
ret
|
ret
|
||||||
|
|
||||||
labeltext db 'TUBE.ASM - with FPU'
|
header db appname,0
|
||||||
|
|
||||||
db 41,0,0xC3,0x3C
|
db 41,0,0xC3,0x3C
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user