/programs/develop/examples/cpuspeed/trunk/cpuspeed.asm |
---|
38,7 → 38,7 |
mov [edi],dl |
sub edi,1 |
loop newnum |
red: |
call draw_window ; at first, draw the window |
still: |
55,10 → 55,6 |
jmp still |
red: ; redraw |
call draw_window |
jmp still |
key: ; key |
mov eax,2 ; just read it and ignore |
int 0x40 |
70,7 → 66,7 |
cmp ah,1 ; button id=1 ? |
jnz still |
mov eax,-1 ; close this program |
or eax,-1 ; close this program |
int 0x40 |
96,38 → 92,17 |
mov ebx,100*65536+200 ; [x start] *65536 + [x size] |
mov ecx,100*65536+65 ; [y start] *65536 + [y size] |
mov edx,[sc.work] ; color of work area RRGGBB,8->color glide |
mov esi,[sc.grab] ; color of grab bar RRGGBB,8->color |
or esi,0x80000000 |
mov edi,[sc.frame] ; color of frames RRGGBB |
or edx,0x33000000 ; color of grab bar RRGGBB,8->color |
mov edi,header ; WINDOW LABEL |
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,[sc.grab_text] ; color of text RRGGBB |
or ecx,0x10000000 |
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,(200-17)*65536+12 ; [x start] *65536 + [x size] |
mov ecx,5*65536+12 ; [y start] *65536 + [y size] |
mov edx,1 ; button id |
mov esi,[sc.grab_button] ; button color RRGGBB |
int 0x40 |
mov ebx,25*65536+35 ; draw info text with function 4 |
mov ebx,20*65536+14 ; draw info text with function 4 |
mov ecx,[sc.work_text] |
mov edx,text |
mov esi,40 |
newline: |
mov esi,24 |
mov eax,4 |
int 0x40 |
add ebx,10 |
add edx,40 |
cmp [edx],byte 'x' |
jnz newline |
mov eax,12 ; function 12:tell os about windowdraw |
mov ebx,2 ; 2, end of draw |
141,11 → 116,8 |
text: |
db 'CPU RUNNING AT MHZ ' |
db 'x' ; <- END MARKER, DONT DELETE |
labelt: |
db 'CPU SPEED' |
labellen: |
header db 'CPU SPEED',0 |
I_END: |
/programs/develop/examples/example/trunk/example.asm |
---|
103,43 → 103,24 |
; ð |
; mov eax,0 ; äãªæ¨ï 0 : ®¯à¥¤¥«¨âì ¨ ®âà¨á®¢ âì ®ª® |
; mov ebx,200*65536+200 ; [x áâ àâ] *65536 + [x à §¬¥à] |
; mov ecx,200*65536+100 ; [y áâ àâ] *65536 + [y à §¬¥à] |
; mov edx,0x02aabbcc ; 梥â à ¡®ç¥© ®¡« á⨠RRGGBB,8->color gl |
; mov esi,0x805080d0 ; 梥⠯®«®áë § £®«®¢ª RRGGBB,8->color gl |
; mov edi,0x005080d0 ; 梥â à ¬ª¨ RRGGBB |
; mov ecx,200*65536+50 ; [y áâ àâ] *65536 + [y à §¬¥à] |
; mov edx,0x33aabbcc ; 梥â à ¡®ç¥© ®¡« á⨠RRGGBB,8->color gl |
; mov edi,header ; |
; int 0x40 |
mcall 0, <200,200>, <200,50>, 0x02AABBCC, 0x805080D0, 0x005080D0 |
mcall 0, <200,200>, <200,50>, 0x33AABBCC,,header |
; |
; mov eax,4 ; äãªæ¨ï 4 : ¯¨á âì ¢ ®ª¥ ⥪áâ |
; mov ebx,8*65536+8 ; [x] *65536 + [y] |
; mov ecx,0x10ddeeff ; èà¨äâ 1 ¨ 梥â ( 0xF0RRGGBB ) |
; mov edx,header ; ¤à¥á áâப¨ |
; mov esi,header.size ; ¨ ¥ñ ¤«¨ |
; int 0x40 |
mcall 4, <8,8>, 0x10DDEEFF, header, header.size |
; mov eax,4 |
; mov ebx,8 shl 16 + 30 |
; mov ebx,3 shl 16 + 8 |
; mov ecx,0 |
; mov edx,message |
; mov esi,message.size |
; int 0x40 |
mcall 4, <8, 30>, 0, message, message.size |
mcall 4, <3, 8>, 0, message, message.size |
; |
; mov eax,8 ; äãªæ¨ï 8 : ®¯à¥¤¥«¨âì ¨ à¨á®¢ âì ª®¯ªã |
; mov ebx,(200-19)*65536+12 ; [x áâ àâ] *65536 + [x à §¬¥à] |
; mov ecx,5*65536+12 ; [y áâ àâ] *65536 + [y à §¬¥à] |
; mov edx,1 ; ¨¤¥â¨ä¨ª â®à ª®¯ª¨ - 1 |
; mov esi,0x6688dd ; 梥⠪®¯ª¨ RRGGBB |
; int 0x40 |
mcall 8, <200-19, 12>, <5, 12>, 1, 0x6688DD |
mcall 12, 2 ; äãªæ¨ï 12: á®®¡é¨âì ®¡ ®âà¨á®¢ª¥ ®ª |
; 2, § ª®ç¨«¨ à¨á®¢ âì |
/programs/develop/h2d2b/trunk/h2d2b.asm |
---|
1,3 → 1,6 |
;; hex2dec2bin 0.2 by Alexei Ershov ;; |
;; 16.11.2006 ;; |
use32 ; âêëþ÷èòü 32-áèòíûé ðåæèì àññåìáëåðà |
org 0x0 ; àäðåñàöèÿ ñ íóëÿ |
10,8 → 13,7 |
dd 0x0 ; àäðåñ áóôåðà äëÿ ïàðàìåòðîâ (íå èñïîëüçóåòñÿ) |
dd 0x0 ; çàðåçåðâèðîâàíî |
include 'lang.inc' |
include 'macros.inc' ; ìàêðîñû îáëåã÷àþò æèçíü àññåìáëåðùèêîâ! |
include 'MACROS.INC' ; ìàêðîñû îáëåã÷àþò æèçíü àññåìáëåðùèêîâ! |
START: |
109,8 → 111,13 |
jmp next_digit |
.done: |
mov [num], eax |
mov [num], eax ; ñîõðàíÿåì ââåäåííîå ÷èñëî |
xor eax, eax |
mov al, ' ' |
mov edi, string1 |
mov [index], edi |
mov ecx, string1_end-string1 |
rep stosb ; ñòèðàåì ââåäåííóþ ñòðîêó |
jmp red |
;--------------------------------------------------------------------- |
118,48 → 125,66 |
button: |
mcall 17 ; 17 - ïîëó÷èòü èäåíòèôèêàòîð íàæàòîé êíîïêè |
cmp ah, 1 ; åñëè ÍÅ íàæàòà êíîïêà ñ íîìåðîì 1, |
jne still ; âåðíóòüñÿ |
jne @f |
mcall -1 |
@@: |
cmp ah, 2 |
jne @f |
shl [num], 1 |
jmp red |
@@: |
cmp ah, 3 |
jne @f |
shr [num], 1 |
jmp red |
@@: |
cmp ah, 4 |
jne still |
sar [num], 1 |
jmp red |
.exit: |
mcall -1 ; èíà÷å êîíåö ïðîãðàììû |
;------------------------------------------------ |
draw_window: |
;------------------------------------------------ |
mcall 12, 1 |
mcall 0, 200*65536+300, 200*65536+120, 0x02AABBCC, 0x805080D0, 0x005080D0 |
mcall 4, 8*65536+8, 0x10DDEEFF, header, header_e - header |
mcall , 15*65536+100, 0, numstr, 7 |
mcall , 15*65536+72, , hexstr, 4 |
mcall , 15*65536+44, , decstr, |
mcall , 15*65536+30, , binstr, |
mcall , 15*65536+58, ,sdecstr, 10 |
mcall 0, 200*65536+300, 200*65536+175, 0x13AABBCC,,header |
mcall 8, 15 *65536+ 38, 90*65536+ 15, 2, 0x6688DD ; êíîïêà shl |
mcall , ,110*65536+ 15, , ; êíîïêà sal |
mcall , (300-53)*65536+ 38, 90*65536+ 15, 3, ; êíîïêà shr |
mcall , ,110*65536+ 15, 4, ; êíîïêà sar |
mcall 8, (300-19)*65536+ 12, 5*65536+ 12, 1, 0x6688DD |
mcall 4, 15*65536+30, 0x80000000, binstr, |
mcall , 15*65536+44, , decstr, |
mcall , 15*65536+58, ,sdecstr, |
mcall , 15*65536+72, , hexstr, |
mcall , 15*65536+150, , numstr, |
mcall , 25*65536+93,0x10000000,shlstr,3 |
mcall , (300-43)*65536+93, , shrstr, |
mcall , 25*65536+113, , salstr, |
mcall , (300-43)*65536+113, , sarstr, |
mov ecx, [num] |
mcall 47, 8*65536+256,,240*65536+72,0 ; 16-íàÿ |
mcall , 10*65536, ,228*65536+44, ; 10-íàÿ |
mcall , 8*65536+512,,240*65536+30, ; 2-íàÿ |
ror ecx, 8 |
mcall , 8*65536+512,,(240-56)*65536+30, |
mcall , ,,(240-56)*65536+30, |
ror ecx, 8 |
mcall , 8*65536+512,,(240-56*2)*65536+30, |
mcall , ,,(240-56*2)*65536+30, |
ror ecx, 8 |
mcall , 8*65536+512,,(240-56*3)*65536+30, |
mcall , ,,(240-56*3)*65536+30, |
ror ecx, 8 |
mov byte [minus], '+' |
mov [minus], '+' |
jnc @f |
mov byte [minus], '-' |
mov [minus], '-' |
neg ecx |
@@: |
mcall , 10*65536,,228*65536+58, ; 10-íàÿ ñî çíàêîì |
mcall 4, 222*65536+58, 0, minus, 1 |
mcall 38, 15*65536+300-15, 137*65536+137, 0x006688DD |
call Draw_String |
mcall 12, 2 ; ôóíêöèÿ 12: ñîîáùèòü ÎÑ îá îòðèñîâêå îêíà |
ret |
167,18 → 192,9 |
;------------------------------------------------- |
Draw_String: |
;------------------------------------------------- |
mov eax, 13 |
mov ebx, 60*65536+ 6*33 |
mov ecx, 100*65536+ 9 |
mov edx, 0x02AABBCC |
int 0x40 |
mov eax,4 |
mov ebx,60*65536+100 |
mov ecx,0xA40473 |
mov edx,string1 |
mov esi,33 |
int 0x40 |
mcall 4, 60*65536+150, 0x40A40473, \ |
string1,string1_end-string1,0x00AABBCC |
ret |
;------------------------------------------------- |
223,13 → 239,16 |
num dd 0 |
header db 'hex2dec2bin' |
header_e: |
header db 'hex2dec2bin 0.2',0 |
minus db '-' |
numstr db 'Number:' |
hexstr db 'hex:' |
binstr db 'bin:' |
decstr db 'dec:' |
sdecstr db 'signed dec:' |
numstr db 'Number:',0 |
hexstr db 'hex:',0 |
binstr db 'bin:',0 |
decstr db 'dec:',0 |
sdecstr db 'signed dec:',0 |
shlstr db 'shl' |
salstr db 'sal' |
shrstr db 'shr' |
sarstr db 'sar' |
I_END: ; ìåòêà êîíöà ïðîãðàììû |
/programs/develop/keyascii/trunk/keyascii.asm |
---|
18,7 → 18,7 |
include 'macros.inc' |
START: ; start of execution |
red: |
call draw_window |
still: |
35,10 → 35,6 |
jmp still |
red: ; redraw |
call draw_window |
jmp still |
key: ; key |
mov eax,2 ; just read it and ignore |
int 0x40 |
53,7 → 49,7 |
cmp ah,1 ; button id=1 ? |
jne noclose |
mov eax,-1 ; close this program |
or eax,-1 ; close this program |
int 0x40 |
noclose: |
78,20 → 74,14 |
mov eax,0 ; function 0 : define and draw window |
mov ebx,100*65536+270 ; [x start] *65536 + [x size] |
mov ecx,100*65536+80 ; [y start] *65536 + [y size] |
mov edx,0x83ffffff ; color of work area RRGGBB,8->color gl |
mov esi,0x805080d0 ; color of grab bar RRGGBB,8->color gl |
mov edi,0x005080d0 ; color of frames RRGGBB |
mov edx,0x33ffffff ; color of work area RRGGBB,8->color gl |
mov edi,header |
int 0x40 |
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 |
xor ecx,0xFFFFFF |
xor ecx,ecx |
mov esi,4 |
add ebx,23 |
mov ebx,8*65536+8 |
mov edx,tdec |
int 0x40 |
add ebx,23 |
101,7 → 91,7 |
mov ecx,[keyid] |
mov eax,47 |
mov ebx,3*65536 |
mov edx,40*65536+31 |
mov edx,40*65536+8 |
mov esi,0x224466 |
int 0x40 |
add edx,23 |
119,9 → 109,7 |
tdec: db 'DEC:' |
thex: db 'HEX:' |
labelt: |
db 'KEYBOARD ASCIICODES-PRESS ANY KEY' |
labellen:dd 0 |
header db 'KEYBOARD ASCIICODES-PRESS ANY KEY',0 |
keyid:db 0 |
I_END: |
/programs/develop/scancode/trunk/scancode.asm |
---|
30,7 → 30,7 |
mov ecx,1 ; base keymap |
mov edx,keymap |
int 0x40 |
red: |
call draw_window |
still: |
48,11 → 48,6 |
jmp still |
red: ; redraw |
call draw_window |
jmp still |
key: ; key |
mov eax,2 ; just read it and ignore |
int 0x40 |
167,24 → 162,13 |
mov ebx, 100*65536+200 ; [x start] *65536 + [x size] |
mov ecx, 100*65536+275 ; [y start] *65536 + [y size] |
mov edx, [sc.work] ; color of work area RRGGBB,8->color gl |
or edx, 0x03000000 |
mov esi, [sc.grab] ; color of grab bar RRGGBB,8->color gl |
or esi, 0x80000000 |
mov edi, [sc.frame] ; color of frames RRGGBB |
or edx, 0x33000000 |
mov edi, header ; WINDOW LABEL |
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, [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 |
mov eax, 4 |
mov ebx, 20*65536+35 |
mov ecx, 0 |
mov ebx, 15*65536+10 |
xor ecx, ecx |
mov edx, text |
mov esi, text.len |
int 0x40 |
202,7 → 186,7 |
mov eax,47 |
mov ebx,6*65536 |
mov edx,20*65536+60 |
mov edx,15*65536+35 |
mov edi,0 |
mov esi,0 |
newscan: |
211,7 → 195,7 |
shl ecx,16 |
add ecx,10 |
mov eax,13 ; filled rectangle |
mov ebx,20*65536+160 |
mov ebx,15*65536+160 |
mov edx,[sc.work] |
int 0x40 |
popa |
307,17 → 291,13 |
db ' ' |
.len = $ - text |
header: |
db ' ' |
.len = $ - header |
header db ' ',0 |
else |
text: |
db 'READING RAW SCANCODE DATA' |
.len = $ - text |
header: |
db 'KEYBOARD SCANCODES' |
.len = $ - header |
header db 'KEYBOARD SCANCODES',0 |
end if |
ext db 0x0 |