forked from KolibriOS/kolibrios
* pic4, rdsave, cpuid: size optimization
* @ss: decrease used memory & time requirements, size optimization * @panel: if there is only one window, Alt+[Shift+]Tab activates it * jpegview: IPC service to unpack JPEG data for other apps * chess: bmp-file is now inlined * @ss, chess moved to more appropriate place in file structure git-svn-id: svn://kolibrios.org@532 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
58a419e855
commit
827172f6c0
Binary file not shown.
Before Width: | Height: | Size: 6.6 KiB |
@ -33,7 +33,7 @@
|
||||
PARAMS = memsize - 1024
|
||||
|
||||
appname equ 'Jpegview '
|
||||
version equ '0.15'
|
||||
version equ '0.16'
|
||||
|
||||
use32
|
||||
|
||||
@ -132,6 +132,8 @@ check_parameters:
|
||||
cmp [PARAMS+2], byte "L"
|
||||
je boot_set_background
|
||||
@@:
|
||||
cmp byte [PARAMS], 1
|
||||
jz ipc_service
|
||||
mov edi, name_string ; clear string with file name
|
||||
mov al, 0
|
||||
mov ecx, 100
|
||||
@ -250,6 +252,110 @@ set_as_bgr2:
|
||||
|
||||
;******************************************************************************
|
||||
|
||||
ipc_service:
|
||||
mcall 68, 11
|
||||
mov esi, PARAMS+1
|
||||
xor eax, eax
|
||||
xor ecx, ecx
|
||||
@@:
|
||||
lodsb
|
||||
test al, al
|
||||
jz @f
|
||||
lea ecx, [ecx*5]
|
||||
lea ecx, [ecx*2+eax-'0']
|
||||
jmp @b
|
||||
@@:
|
||||
add ecx, 16
|
||||
mov edx, ecx
|
||||
mcall 68, 12
|
||||
test eax, eax
|
||||
jnz @f
|
||||
.exit:
|
||||
mcall -1
|
||||
@@:
|
||||
mov ecx, eax
|
||||
and dword [ecx], 0
|
||||
mov dword [ecx+4], 8
|
||||
mov [ipc_mem], ecx
|
||||
mcall 60, 1
|
||||
mcall 40, 1 shl 6
|
||||
mcall 23, 500 ; wait up to 5 seconds for IPC message
|
||||
test eax, eax
|
||||
jz .exit
|
||||
; we got message with JPEG data, now decode it
|
||||
mov eax, [ecx+12]
|
||||
mov [ipc_mem_size], eax
|
||||
; init JPEG decoder
|
||||
mov ecx,memsize-fin-stack_size ; size
|
||||
mov edi,fin ; pointer
|
||||
call add_mem ; mark memory from fin to 0x100000-1024 as free
|
||||
call colorprecalc ; calculate colors
|
||||
; hook file functions
|
||||
mov ecx, 4
|
||||
call malloc
|
||||
and dword [edi], 0
|
||||
lea eax, [edi-file_handler.position]
|
||||
mov byte [read], 0xE9
|
||||
mov dword [read+1], read_from_mem - (read+5)
|
||||
; decode
|
||||
call jpeg_info
|
||||
mov dword [jpeg_st],ebp
|
||||
test ebp,ebp
|
||||
jz .end
|
||||
|
||||
mov eax, [ebp + x_size]
|
||||
mul dword [ebp + y_size]
|
||||
lea eax, [eax*3+8]
|
||||
mov ecx, eax
|
||||
mcall 68, 12
|
||||
test eax, eax
|
||||
jz .end
|
||||
mov [ipc_mem_out], eax
|
||||
mov ebx, [ebp + x_size]
|
||||
mov [eax], ebx
|
||||
mov ebx, [ebp + y_size]
|
||||
mov [eax+4], ebx
|
||||
|
||||
mov dword [ebp+draw_ptr],put_chunk_to_mem
|
||||
call jpeg_display
|
||||
|
||||
; IPC response
|
||||
mov esi, [ebp + x_size]
|
||||
imul esi, [ebp + y_size]
|
||||
lea esi, [esi*3+8]
|
||||
mov edx, [ipc_mem_out]
|
||||
.response:
|
||||
mov ecx, [ipc_mem]
|
||||
mov ecx, [ecx+8]
|
||||
mcall 60,2
|
||||
|
||||
jmp close_program ; close the program right now
|
||||
|
||||
.end:
|
||||
mov esi, 8
|
||||
mov edx, x_pointer ; points to 2 null dwords
|
||||
jmp .response
|
||||
|
||||
read_from_mem:
|
||||
; in: eax=handle, ecx=size, edi=pointer to buffer
|
||||
; out: ecx=number of read bytes, buffer filled
|
||||
pushad
|
||||
mov esi, [ipc_mem]
|
||||
add esi, 16
|
||||
add esi, [eax+file_handler.position]
|
||||
add ecx, [eax+file_handler.position]
|
||||
cmp ecx, [ipc_mem_size]
|
||||
jb @f
|
||||
mov ecx, [ipc_mem_size]
|
||||
@@:
|
||||
sub ecx, [eax+file_handler.position]
|
||||
add [eax+file_handler.position], ecx
|
||||
rep movsb
|
||||
popad
|
||||
ret
|
||||
|
||||
;******************************************************************************
|
||||
|
||||
put_chunk_to_bgr:
|
||||
pushad
|
||||
|
||||
@ -285,6 +391,32 @@ put_chunk_to_bgr:
|
||||
|
||||
;******************************************************************************
|
||||
|
||||
put_chunk_to_mem:
|
||||
; in: (eax,ebx) = start coordinates of chunk
|
||||
; (ecx,edx) = sizes of chunk
|
||||
; edi -> chunk data
|
||||
push esi edi edx
|
||||
mov esi, edi
|
||||
mov edi, ebx
|
||||
imul edi, [ebp + x_size]
|
||||
add edi, eax
|
||||
lea edi, [edi*3+8]
|
||||
add edi, [ipc_mem_out]
|
||||
@@:
|
||||
push ecx edi
|
||||
lea ecx, [ecx*3]
|
||||
rep movsb
|
||||
pop edi ecx
|
||||
add edi, [ebp + x_size]
|
||||
add edi, [ebp + x_size]
|
||||
add edi, [ebp + x_size]
|
||||
dec edx
|
||||
jnz @b
|
||||
pop edx edi esi
|
||||
ret
|
||||
|
||||
;******************************************************************************
|
||||
|
||||
|
||||
|
||||
; *********************************************
|
||||
@ -597,8 +729,11 @@ iniciomemoria:
|
||||
dd -(iniciomemoria+4),-(iniciomemoria+4),(iniciomemoria+4),.l1,0
|
||||
.l1 dd 0
|
||||
|
||||
fin:
|
||||
I_END:
|
||||
sc system_colors
|
||||
ipc_mem dd ?
|
||||
ipc_mem_size dd ?
|
||||
ipc_mem_out dd ?
|
||||
fileattr: rb 40
|
||||
dirinfo: rb 32+304
|
||||
fin:
|
||||
|
@ -59,43 +59,20 @@ still:
|
||||
|
||||
cmp ah,101
|
||||
jnz nochange
|
||||
mov al,byte [usecard]
|
||||
cld
|
||||
inc al
|
||||
and al,3
|
||||
cmp al,0
|
||||
jnz nozer
|
||||
mov al,1
|
||||
nozer:
|
||||
mov byte [usecard],al
|
||||
xor byte [usecard], 3 ; 1 <-> 2
|
||||
|
||||
call drawusedcard
|
||||
|
||||
nochange:
|
||||
|
||||
cmp byte [usecard],byte 1
|
||||
jz usesb16
|
||||
|
||||
cmp byte [usecard],byte 2
|
||||
jnz nousesb16II
|
||||
jmp usesb16II
|
||||
nousesb16II:
|
||||
|
||||
cmp byte [usecard],byte 3
|
||||
jnz nousewss
|
||||
jmp usewss
|
||||
nousewss:
|
||||
|
||||
|
||||
jnz usesb16II
|
||||
|
||||
; SOUND BLASTER 16
|
||||
|
||||
|
||||
usesb16:
|
||||
|
||||
|
||||
cld
|
||||
|
||||
mov al,20
|
||||
cmp ah,al
|
||||
jge nomain
|
||||
@ -235,85 +212,6 @@ still:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
; WINDOWS SOUND SYSTEM
|
||||
|
||||
usewss:
|
||||
|
||||
cld
|
||||
|
||||
mov al,20
|
||||
cmp ah,al
|
||||
jge wnomain
|
||||
|
||||
mov ecx,255
|
||||
cmp ah,12
|
||||
jnz wnomain12
|
||||
mov ecx,200
|
||||
wnomain12:
|
||||
cmp ah,13
|
||||
jnz wnomain13
|
||||
mov ecx,150
|
||||
wnomain13:
|
||||
cmp ah,14
|
||||
jnz wnomain14
|
||||
mov ecx,70
|
||||
wnomain14:
|
||||
cmp ah,15
|
||||
jnz wnomain15
|
||||
mov ecx,0
|
||||
wnomain15:
|
||||
|
||||
mov eax,27
|
||||
mov ebx,1
|
||||
mcall
|
||||
|
||||
jmp still
|
||||
|
||||
wnomain:
|
||||
|
||||
mov al,30
|
||||
cmp ah,al
|
||||
jge wnocd
|
||||
|
||||
mov ecx,255
|
||||
|
||||
cmp ah,22
|
||||
jnz wnocd12
|
||||
mov ecx,200
|
||||
wnocd12:
|
||||
cmp ah,23
|
||||
jnz wnocd13
|
||||
mov ecx,150
|
||||
wnocd13:
|
||||
cmp ah,24
|
||||
jnz wnocd14
|
||||
mov ecx,70
|
||||
wnocd14:
|
||||
cmp ah,25
|
||||
jnz wnocd15
|
||||
mov ecx,0
|
||||
wnocd15:
|
||||
|
||||
mov eax,27
|
||||
mov ebx,2
|
||||
mcall
|
||||
|
||||
jmp still
|
||||
|
||||
wnocd:
|
||||
|
||||
|
||||
jmp still
|
||||
|
||||
|
||||
|
||||
|
||||
; *********************************************
|
||||
; ******* WINDOW DEFINITIONS AND DRAW ********
|
||||
; *********************************************
|
||||
@ -335,49 +233,38 @@ draw_window:
|
||||
|
||||
|
||||
mov edx,16 ; button id
|
||||
mov ebx,10*65536
|
||||
mov ebx,10*65536+22
|
||||
|
||||
newbut:
|
||||
|
||||
push edx
|
||||
push ebx
|
||||
|
||||
mov esi,[bcolor]
|
||||
|
||||
mov eax,8 ; function 8 : define and draw button
|
||||
mov bx,22 ; [x start] *65536 + [x size]
|
||||
mov ecx,35*65536+8 ; [y start] *65536 + [y size]
|
||||
dec edx
|
||||
mcall
|
||||
mov bx,22 ; [x start] *65536 + [x size]
|
||||
mov ecx,45*65536+8 ; [y start] *65536 + [y size]
|
||||
dec edx
|
||||
mcall
|
||||
mov bx,22 ; [x start] *65536 + [x size]
|
||||
mov ecx,55*65536+8 ; [y start] *65536 + [y size]
|
||||
dec edx
|
||||
mcall
|
||||
mov bx,22 ; [x start] *65536 + [x size]
|
||||
mov ecx,65*65536+8 ; [y start] *65536 + [y size]
|
||||
dec edx
|
||||
mcall
|
||||
mov bx,22 ; [x start] *65536 + [x size]
|
||||
mov ecx,75*65536+8 ; [y start] *65536 + [y size]
|
||||
dec edx
|
||||
mcall
|
||||
|
||||
pop ebx
|
||||
pop edx
|
||||
|
||||
add ebx,30*65536
|
||||
add edx,10
|
||||
|
||||
cmp edx,16+6*10
|
||||
jz butdone
|
||||
|
||||
jmp newbut
|
||||
|
||||
butdone:
|
||||
jnz newbut
|
||||
|
||||
|
||||
mov eax,4 ; function 4 : write text to window
|
||||
@ -413,21 +300,12 @@ drawusedcard:
|
||||
mov edx,[bcolor]
|
||||
mcall
|
||||
|
||||
mov eax,[usecard]
|
||||
mov edx,c3
|
||||
|
||||
cmp al,1
|
||||
jnz nosbc
|
||||
mov edx,c1
|
||||
nosbc:
|
||||
cmp al,2
|
||||
|
||||
cmp [usecard],2
|
||||
jnz nosbcII
|
||||
mov edx,c2
|
||||
nosbcII:
|
||||
cmp al,3
|
||||
jnz nowssc
|
||||
mov edx,c3
|
||||
nowssc:
|
||||
|
||||
mov eax,4
|
||||
mov ebx,14*65536+123
|
||||
@ -453,14 +331,10 @@ text:
|
||||
|
||||
c1 db 'SOUND BLASTER 16 - MIXER I '
|
||||
c2 db 'SOUND BLASTER 16 - MIXER II '
|
||||
c3 db 'WINDOWS SOUND SYSTEM '
|
||||
|
||||
|
||||
usecard dd 0x1
|
||||
usecard db 0x1
|
||||
|
||||
title db 'MIXER',0
|
||||
|
||||
I_END:
|
||||
|
||||
|
||||
|
||||
|
@ -13,6 +13,7 @@
|
||||
|
||||
include 'lang.inc'
|
||||
include '..\..\..\macros.inc'
|
||||
purge mov ; decrease kpack'ed size
|
||||
|
||||
START:
|
||||
mov eax,48
|
||||
@ -21,7 +22,9 @@ START:
|
||||
mov edx,sizeof.system_colors
|
||||
mcall
|
||||
|
||||
call check_parameters
|
||||
cmp dword [I_Param], 'BOOT'
|
||||
jz OnBoot
|
||||
|
||||
call draw_window
|
||||
|
||||
call load_texture
|
||||
@ -53,69 +56,54 @@ still:
|
||||
|
||||
shr eax,8
|
||||
|
||||
cmp eax,101 ; tiled
|
||||
cmp al,101 ; tiled
|
||||
jne no101
|
||||
mov ecx,1
|
||||
setbgrmode:
|
||||
mov eax,15
|
||||
mov ebx,4
|
||||
mov ecx,1
|
||||
mcall
|
||||
mov eax,15
|
||||
mov ebx,3
|
||||
dec ebx
|
||||
mcall
|
||||
jmp still
|
||||
no101:
|
||||
|
||||
cmp eax,102 ; stretch
|
||||
jne no102
|
||||
mov eax,15
|
||||
mov ebx,4
|
||||
mov ecx, 2
|
||||
mcall
|
||||
mov eax,15
|
||||
mov ebx,3
|
||||
mcall
|
||||
jmp still
|
||||
cmp al, 102
|
||||
jz setbgrmode
|
||||
no102:
|
||||
|
||||
cmp eax,1 ; end program
|
||||
cmp al,1 ; end program
|
||||
jnz no_end
|
||||
or eax,-1
|
||||
mcall
|
||||
no_end:
|
||||
|
||||
cmp eax,11
|
||||
cmp al,11
|
||||
jz bg
|
||||
cmp eax,12
|
||||
cmp al,12
|
||||
jz bg
|
||||
cmp eax,13
|
||||
cmp al,13
|
||||
jz bg
|
||||
|
||||
cmp eax,121
|
||||
cmp al,121
|
||||
jb no_bg_select
|
||||
cmp eax,133
|
||||
jg no_bg_select
|
||||
sub eax,121
|
||||
shl eax,2
|
||||
add eax,arrays
|
||||
mov eax,[eax]
|
||||
cmp al,133
|
||||
ja no_bg_select
|
||||
mov eax,[arrays + (eax-121)*4]
|
||||
mov [usearray],eax
|
||||
call load_texture
|
||||
call draw_image
|
||||
jmp still
|
||||
no_bg_select:
|
||||
|
||||
cmp eax,14+20
|
||||
cmp al,14+20
|
||||
jge bg4
|
||||
|
||||
jmp bg2
|
||||
|
||||
|
||||
check_parameters:
|
||||
|
||||
cmp [I_Param],dword 'BOOT'
|
||||
je @f
|
||||
ret
|
||||
@@:
|
||||
OnBoot:
|
||||
|
||||
call load_texture
|
||||
|
||||
@ -125,7 +113,6 @@ check_parameters:
|
||||
mov edx,256
|
||||
mcall
|
||||
|
||||
mov eax,15
|
||||
mov ebx,5
|
||||
mov ecx,0x40000 ; <<< 0x40000 for blue, 0x40000+1 for red,
|
||||
; <<< 0x40000+2 for green background at boot
|
||||
@ -133,13 +120,11 @@ check_parameters:
|
||||
mov esi,256*3*256
|
||||
mcall
|
||||
|
||||
mov eax,15
|
||||
mov ebx,4
|
||||
dec ebx
|
||||
mov ecx,2
|
||||
mcall
|
||||
|
||||
mov eax,15
|
||||
mov ebx,3
|
||||
dec ebx
|
||||
mcall
|
||||
|
||||
mov eax,-1
|
||||
@ -178,13 +163,13 @@ bg:
|
||||
|
||||
mov edi,0x40000
|
||||
|
||||
cmp eax,12
|
||||
cmp al,12
|
||||
jnz bb1
|
||||
mov edi,0x40000+1
|
||||
inc edi
|
||||
bb1:
|
||||
cmp eax,13
|
||||
cmp al,13
|
||||
jnz bb2
|
||||
mov edi,0x40000+2
|
||||
inc edi
|
||||
bb2:
|
||||
|
||||
mov eax,15
|
||||
@ -193,14 +178,12 @@ bg:
|
||||
mov edx,256
|
||||
mcall
|
||||
|
||||
mov eax,15
|
||||
mov ebx,5
|
||||
mov ecx,edi
|
||||
mov edx,0
|
||||
mov esi,256*256*3
|
||||
mcall
|
||||
|
||||
mov eax,15
|
||||
mov ebx,3
|
||||
mcall
|
||||
|
||||
@ -210,33 +193,12 @@ bg:
|
||||
; colored background
|
||||
|
||||
bg2:
|
||||
|
||||
push eax
|
||||
|
||||
mov edi, eax
|
||||
mcall 15,4,1
|
||||
|
||||
mov eax,15
|
||||
mov ebx,1
|
||||
mov ecx,1
|
||||
mov edx,1
|
||||
mcall
|
||||
|
||||
pop eax
|
||||
sub eax,14
|
||||
imul eax,3
|
||||
|
||||
mov ecx,fill
|
||||
add ecx,eax
|
||||
|
||||
mov eax,15
|
||||
mov ebx,5
|
||||
xor edx,edx
|
||||
mov esi,3*1*1
|
||||
mcall
|
||||
|
||||
mov eax,15
|
||||
mov ebx,3
|
||||
mcall
|
||||
mcall ,1,,1
|
||||
lea ecx, [(edi-14)*3+fill]
|
||||
mcall ,5,,0,3*1*1
|
||||
mcall ,3
|
||||
|
||||
jmp still
|
||||
|
||||
@ -245,9 +207,8 @@ bg2:
|
||||
|
||||
bg4:
|
||||
|
||||
sub eax,14+20
|
||||
shl eax,3
|
||||
add eax,shape
|
||||
add eax,shape - (14+20)*8
|
||||
mov ecx,[eax+0]
|
||||
mov edx,[eax+4]
|
||||
|
||||
@ -255,7 +216,6 @@ bg4:
|
||||
mov ebx,1
|
||||
mcall
|
||||
|
||||
mov eax,15
|
||||
mov ebx,3
|
||||
mcall
|
||||
|
||||
@ -275,17 +235,17 @@ bg4:
|
||||
|
||||
gentexture:
|
||||
|
||||
mov ecx,0 ; ycounter
|
||||
mov edi,0 ; pixel counter
|
||||
xor ecx,ecx ; ycounter
|
||||
xor edi,edi ; pixel counter
|
||||
|
||||
mov ebp,[usearray]
|
||||
|
||||
ylup:
|
||||
mov ebx,0
|
||||
xor ebx,ebx
|
||||
|
||||
xlup:
|
||||
push edi
|
||||
mov edi, 0
|
||||
xor edi, edi
|
||||
mov esi, 512000000 ; abnormous initial value :)
|
||||
|
||||
pixlup:
|
||||
|
@ -20,19 +20,6 @@ use32
|
||||
include 'lang.inc'
|
||||
include '..\..\..\macros.inc'
|
||||
|
||||
;file_info:
|
||||
;
|
||||
; dd 0,0,-1,0x4000,0x20000
|
||||
; db '/rd/1/chess.bmp',0
|
||||
|
||||
file_info:
|
||||
dd 0
|
||||
dd 0
|
||||
dd 0
|
||||
dd -1
|
||||
dd 0x4000
|
||||
db '/rd/1/network/chess.bmp',0
|
||||
|
||||
pawn_color:
|
||||
|
||||
dd 0x000000
|
||||
@ -61,11 +48,7 @@ text equ texts+80*32*4
|
||||
|
||||
START: ; start of execution
|
||||
|
||||
mov eax,70
|
||||
mov ebx,file_info
|
||||
mcall
|
||||
|
||||
mov esi,0x4000+22*3+4+24*2
|
||||
mov esi,chess_bmp
|
||||
mov edi,0x10000+18*3
|
||||
|
||||
mov ebx,0
|
||||
@ -1309,16 +1292,10 @@ chess_board:
|
||||
|
||||
times 80*20 db 0
|
||||
|
||||
chess_bmp:
|
||||
file 'chess.bmp':22*3+4+24*2
|
||||
|
||||
board_old:
|
||||
|
||||
|
||||
I_END:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -19,14 +19,13 @@ inc eax
|
||||
cpuid
|
||||
|
||||
cnnn0:
|
||||
cmp bl, 00h
|
||||
ja rr
|
||||
je cnnn1
|
||||
test bl, bl
|
||||
jz cnnn1
|
||||
|
||||
rr:
|
||||
mov byte [brand], bl ;
|
||||
Text 60,250,0x00000000,abrand00, abrand00len-abrand00
|
||||
jmp B000
|
||||
ret
|
||||
;jmp comppp
|
||||
|
||||
cnnn1:
|
||||
@ -34,245 +33,222 @@ cnnn1:
|
||||
mov eax, 0x80000001 ; CPUID ext. function 0x80000001
|
||||
cpuid
|
||||
|
||||
cmp ebx, 0
|
||||
test ebx, ebx
|
||||
je Bi00
|
||||
mov word [brand], bx ;
|
||||
mov [brand], ebx ;
|
||||
|
||||
comppp:
|
||||
cmp [brand], 400h
|
||||
jl res1
|
||||
cmp [brand], 500h
|
||||
jl res2
|
||||
jae res3
|
||||
cmp byte [brand+1], 4
|
||||
jb res1
|
||||
jz res2
|
||||
ja res3
|
||||
|
||||
|
||||
res1:
|
||||
Text 60,250,0x00000000,abrand0, abrand0len-abrand0
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
res2:
|
||||
Text 60,250,0x00000000,abrand1, abrand1len-abrand1
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
res3:
|
||||
Text 60,250,0x00000000,abrand2, abrand2len-abrand2
|
||||
jmp B000
|
||||
ret
|
||||
;;;;;;;;;;;;;;;;;;;;; intel brand
|
||||
intel_br:
|
||||
xor eax,eax
|
||||
inc eax
|
||||
cpuid
|
||||
movzx ebx, bl
|
||||
mov [brand], ebx
|
||||
cmp0:
|
||||
cmp bl, 00h
|
||||
test ebx, ebx
|
||||
je Bi00
|
||||
|
||||
cmp1:
|
||||
cmp bl, 01h
|
||||
dec ebx
|
||||
je Bi01
|
||||
|
||||
cmp2:
|
||||
cmp bl, 02h
|
||||
dec ebx
|
||||
je Bi02
|
||||
|
||||
cmp3:
|
||||
cmp bl, 03h
|
||||
dec ebx
|
||||
je Bi03
|
||||
|
||||
cmp4:
|
||||
cmp bl, 04h
|
||||
dec ebx
|
||||
je Bi04
|
||||
|
||||
cmp6:
|
||||
cmp bl, 06h
|
||||
dec ebx
|
||||
dec ebx
|
||||
je Bi06
|
||||
|
||||
cmp7:
|
||||
cmp bl, 07h
|
||||
dec ebx
|
||||
je Bi07
|
||||
|
||||
cmp8:
|
||||
cmp bl, 08h
|
||||
dec ebx
|
||||
je Bi08
|
||||
|
||||
cmp9:
|
||||
cmp bl, 09h
|
||||
dec ebx
|
||||
je Bi09
|
||||
|
||||
cmpA:
|
||||
cmp bl, 0Ah
|
||||
dec ebx
|
||||
je Bi0A
|
||||
|
||||
cmpB:
|
||||
cmp bl, 0Bh
|
||||
dec ebx
|
||||
je Bi0B
|
||||
|
||||
cmpC:
|
||||
cmp bl, 0Ch
|
||||
dec ebx
|
||||
je Bi0C
|
||||
|
||||
cmpE:
|
||||
cmp bl, 0Eh
|
||||
dec ebx
|
||||
dec ebx
|
||||
je Bi0E
|
||||
|
||||
cmpF:
|
||||
cmp bl, 0Fh
|
||||
dec ebx
|
||||
je Bi0F
|
||||
|
||||
cmp11:
|
||||
cmp bl, 11h
|
||||
dec ebx
|
||||
dec ebx
|
||||
je Bi11
|
||||
|
||||
cmp12:
|
||||
cmp bl, 12h
|
||||
dec ebx
|
||||
je Bi12
|
||||
|
||||
cmp13:
|
||||
cmp bl, 13h
|
||||
dec ebx
|
||||
je Bi13
|
||||
|
||||
cmp14:
|
||||
cmp bl, 14h
|
||||
dec ebx
|
||||
je Bi14
|
||||
|
||||
cmp15:
|
||||
cmp bl, 15h
|
||||
dec ebx
|
||||
je Bi15
|
||||
|
||||
cmp16:
|
||||
cmp bl, 16h
|
||||
dec ebx
|
||||
je Bi16
|
||||
|
||||
cmp17:
|
||||
cmp bl, 17h
|
||||
dec ebx
|
||||
je Bi17
|
||||
|
||||
jne Bi00
|
||||
|
||||
;------------------
|
||||
Bi00:
|
||||
mov byte [brand], bl ;00h
|
||||
Text 60,250,0x00000000,brand0, brand0len-brand0
|
||||
;Number 270,180,1*256,2,dword [brand],0x000000 was in v. 1.11
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi01:
|
||||
mov [brand], 01h
|
||||
Text 60,250,0x00000000,brand01, brand01len-brand01
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi02:
|
||||
mov [brand], 02h
|
||||
Text 60,250,0x00000000,brand02, brand02len-brand02
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi03:
|
||||
mov [brand], 03h
|
||||
|
||||
cmp [m], 8
|
||||
je E3
|
||||
Text 60,250,0x00000000,brand03, brand03len-brand03
|
||||
jmp B000
|
||||
ret
|
||||
E3:
|
||||
Text 60,250,0x00000000,brand03d, brand03dlen-brand03d
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi04:
|
||||
mov [brand], 04h
|
||||
Text 60,250,0x00000000,brand04, brand04len-brand04
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi06:
|
||||
mov [brand], 06h
|
||||
Text 60,250,0x00000000,brand06, brand06len-brand06
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi07:
|
||||
mov [brand], 07h
|
||||
Text 60,250,0x00000000,brand07, brand07len-brand07
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi08:
|
||||
mov [brand], 08h
|
||||
Text 60,250,0x00000000,brand08, brand08len-brand08
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi09:
|
||||
mov [brand], 09h
|
||||
Text 60,250,0x00000000,brand09, brand09len-brand09
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi0A:
|
||||
mov [brand], 0Ah
|
||||
Text 60,250,0x00000000,brand0A, brand0Alen-brand0A
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi0B:
|
||||
mov [brand], 0Bh
|
||||
|
||||
cmp [m], 13
|
||||
jl Eb
|
||||
Text 60,250,0x00000000,brand0B, brand0Blen-brand0B
|
||||
jmp B000
|
||||
ret
|
||||
Eb:
|
||||
Text 60,250,0x00000000,brand0Bd, brand0Bdlen-brand0Bd
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi0C:
|
||||
mov [brand], 0Ch
|
||||
Text 60,250,0x00000000,brand0C, brand0Clen-brand0C
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi0E:
|
||||
mov [brand], 0Eh
|
||||
|
||||
cmp [m], 13
|
||||
jl Ed
|
||||
Text 60,250,0x00000000,brand0E, brand0Elen-brand0E
|
||||
jmp B000
|
||||
ret
|
||||
Ed:
|
||||
Text 60,250,0x00000000,brand0Ed, brand0Edlen-brand0Ed
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi0F:
|
||||
mov [brand], 0Fh
|
||||
Text 60,250,0x00000000,brand0F, brand0Flen-brand0F
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi11:
|
||||
mov [brand], 11h
|
||||
Text 60,250,0x00000000,brand11, brand11len-brand11
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi12:
|
||||
mov [brand], 12h
|
||||
Text 60,250,0x00000000,brand12, brand12len-brand12
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi13:
|
||||
mov [brand], 13h
|
||||
Text 60,250,0x00000000,brand13, brand13len-brand13
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi14:
|
||||
mov [brand], 14h
|
||||
Text 60,250,0x00000000,brand14, brand14len-brand14
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi15:
|
||||
mov [brand], 15h
|
||||
Text 60,250,0x00000000,brand15, brand15len-brand15
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi16:
|
||||
mov [brand], 16h
|
||||
Text 60,250,0x00000000,brand16, brand16len-brand16
|
||||
jmp B000
|
||||
ret
|
||||
|
||||
Bi17:
|
||||
mov [brand], 17h
|
||||
Text 60,250,0x00000000,brand17, brand17len-brand17
|
||||
jmp B000
|
||||
|
||||
B000:
|
||||
|
||||
ret
|
@ -1,5 +1,14 @@
|
||||
; Decoding cache L1,L2,L3 for Intel
|
||||
|
||||
decodecache32:
|
||||
call decodecache
|
||||
|
||||
decodecache24:
|
||||
shr eax, 8
|
||||
call decodecache
|
||||
shr eax, 8
|
||||
call decodecache
|
||||
shr eax, 8
|
||||
|
||||
decodecache:
|
||||
|
||||
@ -61,256 +70,207 @@ je kk10
|
||||
comp11:
|
||||
cmp al, 0Ah
|
||||
je kk11
|
||||
je Ld8
|
||||
|
||||
comp12:
|
||||
cmp al, 66h
|
||||
je kk12
|
||||
je Ld8
|
||||
|
||||
comp13:
|
||||
cmp al, 0Ch
|
||||
je kk13
|
||||
je Ld16
|
||||
|
||||
comp14:
|
||||
cmp al, 10h
|
||||
je kk14
|
||||
je Ld16
|
||||
|
||||
comp15:
|
||||
cmp al, 67h
|
||||
je kk15
|
||||
je Ld16
|
||||
|
||||
comp16:
|
||||
cmp al, 2Ch
|
||||
je kk16
|
||||
je Ld32
|
||||
|
||||
comp17:
|
||||
cmp al, 68h
|
||||
je kk17
|
||||
je Ld32
|
||||
|
||||
;-------L2
|
||||
comp18:
|
||||
cmp al, 39h
|
||||
je kk18
|
||||
je L128
|
||||
|
||||
comp19:
|
||||
cmp al, 3Bh
|
||||
je kk19
|
||||
je L128
|
||||
|
||||
comp20:
|
||||
cmp al, 79h
|
||||
je kk20
|
||||
je L128
|
||||
|
||||
comp21:
|
||||
cmp al, 81h
|
||||
je kk21
|
||||
je L128
|
||||
|
||||
comp22:
|
||||
cmp al, 3Ch
|
||||
je kk22
|
||||
je L256
|
||||
|
||||
comp23:
|
||||
cmp al, 7Ah
|
||||
je kk23
|
||||
je L256
|
||||
|
||||
comp24:
|
||||
cmp al, 7Eh
|
||||
je kk24
|
||||
je L256
|
||||
|
||||
comp25:
|
||||
cmp al, 82h
|
||||
je kk25
|
||||
je L256
|
||||
|
||||
comp26:
|
||||
cmp al, 7Bh
|
||||
je kk26
|
||||
je L512
|
||||
|
||||
comp27:
|
||||
cmp al, 83h
|
||||
je kk27
|
||||
je L512
|
||||
|
||||
comp28:
|
||||
cmp al, 86h
|
||||
je kk28
|
||||
je L512
|
||||
|
||||
comp29:
|
||||
cmp al, 7Ch
|
||||
je kk29
|
||||
je L1024
|
||||
|
||||
comp30:
|
||||
cmp al, 84h
|
||||
je kk30
|
||||
je L1024
|
||||
|
||||
comp31:
|
||||
cmp al, 87h
|
||||
je kk31
|
||||
je L1024
|
||||
|
||||
comp32:
|
||||
cmp al, 85h
|
||||
je kk32
|
||||
je L2048
|
||||
|
||||
;-----L1 Trace instr
|
||||
|
||||
comp33:
|
||||
cmp al, 70h
|
||||
je kk33
|
||||
je Li12
|
||||
|
||||
comp34:
|
||||
cmp al, 71h
|
||||
je kk34
|
||||
je Li16
|
||||
|
||||
comp35:
|
||||
cmp al, 72h
|
||||
je kk35
|
||||
je Li32
|
||||
|
||||
;----New codes
|
||||
|
||||
comp36:
|
||||
cmp al, 60h
|
||||
je kk36
|
||||
je Ld16
|
||||
|
||||
comp37:
|
||||
cmp al, 78h
|
||||
je kk37
|
||||
je L1024
|
||||
|
||||
comp38:
|
||||
cmp al, 7Dh
|
||||
je kk38
|
||||
je L2048
|
||||
|
||||
;---- L3
|
||||
comp39:
|
||||
cmp al, 22h
|
||||
je kk39
|
||||
je L305
|
||||
|
||||
comp40:
|
||||
cmp al, 23h
|
||||
je kk40
|
||||
je L31
|
||||
|
||||
comp41:
|
||||
cmp al, 25h
|
||||
je kk41
|
||||
je L32
|
||||
|
||||
comp42:
|
||||
cmp al, 29h
|
||||
je kk42
|
||||
je L34
|
||||
|
||||
comp43:
|
||||
cmp al, 88h
|
||||
je kk43
|
||||
je L32
|
||||
|
||||
comp44:
|
||||
cmp al, 89h
|
||||
je kk44
|
||||
je L34
|
||||
|
||||
comp45:
|
||||
cmp al, 8Ah
|
||||
je kk45
|
||||
je L38
|
||||
|
||||
comp46:
|
||||
cmp al, 8Dh
|
||||
je kk46
|
||||
je L34
|
||||
|
||||
;============= v. 2.04
|
||||
comp47:
|
||||
cmp al, 73h
|
||||
je kk47
|
||||
je Li64
|
||||
|
||||
comp48:
|
||||
cmp al, 1Ah
|
||||
je kk48
|
||||
je L96
|
||||
|
||||
comp49:
|
||||
cmp al, 3Ah
|
||||
je kk49
|
||||
je L192
|
||||
|
||||
comp50:
|
||||
cmp al, 3Dh
|
||||
je kk50
|
||||
je L384
|
||||
|
||||
comp51:
|
||||
cmp al, 3Eh
|
||||
je kk51
|
||||
je L512
|
||||
|
||||
comp52:
|
||||
cmp al, 7Fh
|
||||
je kk52
|
||||
je L512
|
||||
|
||||
comp53:
|
||||
cmp al, 46h
|
||||
je kk53
|
||||
je L34
|
||||
|
||||
comp54:
|
||||
cmp al, 47h
|
||||
je kk54
|
||||
je L38
|
||||
|
||||
comp55:
|
||||
cmp al, 49h
|
||||
je kk55
|
||||
je L34
|
||||
|
||||
comp56:
|
||||
cmp al, 4Ah
|
||||
je kk56
|
||||
je L36
|
||||
|
||||
comp57:
|
||||
cmp al, 4Bh
|
||||
je kk57
|
||||
je L38
|
||||
|
||||
comp58:
|
||||
cmp al, 4Ch
|
||||
je kk58
|
||||
je L312
|
||||
|
||||
comp59:
|
||||
cmp al, 4Dh
|
||||
je kk59
|
||||
je L316
|
||||
|
||||
jne L000
|
||||
ret
|
||||
;------------------
|
||||
|
||||
kk1:
|
||||
@ -708,7 +668,7 @@ jmp L000
|
||||
|
||||
L316:
|
||||
mov [L3], 16384
|
||||
jmp L000
|
||||
;jmp L000
|
||||
|
||||
|
||||
|
||||
|
@ -2,15 +2,11 @@
|
||||
|
||||
macro Window xStart,yStart,xSize,ySize,bColor,gColor,fColor
|
||||
{
|
||||
mov ebx,xStart
|
||||
shl ebx,16
|
||||
add ebx,xSize
|
||||
mov ecx,yStart
|
||||
shl ecx,16
|
||||
add ecx,ySize
|
||||
mov edx,bColor
|
||||
mov esi,gColor
|
||||
mov edi,fColor
|
||||
__mov ebx,xStart,xSize
|
||||
__mov ecx,yStart,ySize
|
||||
__mov edx,bColor
|
||||
__mov esi,gColor
|
||||
__mov edi,fColor
|
||||
xor eax,eax
|
||||
mcall
|
||||
}
|
||||
@ -19,12 +15,10 @@ macro Window xStart,yStart,xSize,ySize,bColor,gColor,fColor
|
||||
;WriteTextToWindow
|
||||
macro Text xStart,yStart,rgbColor,pText,nTextLen
|
||||
{
|
||||
mov ebx,xStart
|
||||
shl ebx,16
|
||||
add ebx,yStart
|
||||
mov ecx,rgbColor
|
||||
mov edx,pText
|
||||
mov esi,nTextLen
|
||||
__mov ebx,xStart,yStart
|
||||
__mov ecx,rgbColor
|
||||
__mov edx,pText
|
||||
__mov esi,nTextLen
|
||||
mov eax,4
|
||||
mcall
|
||||
}
|
||||
@ -32,55 +26,38 @@ macro Text xStart,yStart,rgbColor,pText,nTextLen
|
||||
;DisplayNumber
|
||||
macro Number xStart,yStart,nPrintType,noOfDigits,Data,rgbColor
|
||||
{
|
||||
|
||||
mov edx,xStart
|
||||
shl edx,16
|
||||
add edx,yStart
|
||||
mov ebx,noOfDigits
|
||||
shl ebx,16
|
||||
or ebx,nPrintType
|
||||
mov ecx,Data
|
||||
mov esi,rgbColor
|
||||
__mov edx,xStart,yStart
|
||||
__mov ebx,noOfDigits,nPrintType
|
||||
__mov ecx,Data
|
||||
__mov esi,rgbColor
|
||||
mov eax,47
|
||||
mcall
|
||||
}
|
||||
|
||||
macro DrawLine xStart,xEnd,yStart,yEnd,rgbColor
|
||||
{
|
||||
mov ebx,xStart
|
||||
shl ebx,16
|
||||
add ebx,xEnd
|
||||
mov ecx,yStart
|
||||
shl ecx,16
|
||||
add ecx, yEnd
|
||||
mov edx,rgbColor
|
||||
__mov ebx,xStart,xEnd
|
||||
__mov ecx,yStart,yEnd
|
||||
__mov edx,rgbColor
|
||||
mov eax,38
|
||||
mcall
|
||||
}
|
||||
|
||||
macro PutImage xPos,yPos,xImage,yImage,pImage
|
||||
{
|
||||
mov ecx,xImage
|
||||
shl ecx,16
|
||||
add ecx, yImage
|
||||
mov edx,xPos
|
||||
shl edx,16
|
||||
add edx,yPos
|
||||
mov ebx,pImage
|
||||
__mov ecx,xImage,yImage
|
||||
__mov edx,xPos,yPos
|
||||
__mov ebx,pImage
|
||||
mov eax,7
|
||||
mcall
|
||||
}
|
||||
|
||||
macro Button xStart,yStart,xSize,ySize,nID,rgbColor
|
||||
{
|
||||
mov ebx,xStart
|
||||
shl ebx,16
|
||||
add ebx,xSize
|
||||
mov ecx,yStart
|
||||
shl ecx,16
|
||||
add ecx,ySize
|
||||
mov edx,nID
|
||||
mov esi,rgbColor
|
||||
__mov ebx,xStart,xSize
|
||||
__mov ecx,yStart,ySize
|
||||
__mov edx,nID
|
||||
__mov esi,rgbColor
|
||||
mov eax,8
|
||||
mcall
|
||||
}
|
||||
|
@ -68,6 +68,30 @@ CMPL_FLAG equ 0002h ; core multi-processing legacy mode 1
|
||||
SVM_FLAG equ 0004h ; secure virtual machine 2
|
||||
MOVCR8_FLAG equ 0010h ;AltMovCr8 4
|
||||
|
||||
;//////////////////////////////////////////////
|
||||
decode_sse3: ; is SS3 supported
|
||||
xor eax, eax
|
||||
inc eax
|
||||
cpuid
|
||||
test ecx, 1
|
||||
setnz [sse3sup]
|
||||
mov eax, sse3+6
|
||||
|
||||
write_yes_no:
|
||||
mov dword [eax], 'no'
|
||||
jz @f
|
||||
mov dword [eax], 'yes'
|
||||
@@:
|
||||
ret
|
||||
|
||||
show_next_bit:
|
||||
shr edx, 1
|
||||
write_yes_no_cf:
|
||||
mov dword [eax], 'no'
|
||||
jnc @f
|
||||
mov dword [eax], 'yes'
|
||||
@@:
|
||||
ret
|
||||
|
||||
;decoding standard features
|
||||
|
||||
@ -77,668 +101,230 @@ decode_standard_features:
|
||||
inc eax
|
||||
cpuid
|
||||
|
||||
Test0:
|
||||
test edx, FPU_FLAG
|
||||
jnz Test0e
|
||||
mov eax, FPU+6
|
||||
call show_next_bit
|
||||
|
||||
mov dword [FPU+6], $6F6E
|
||||
jmp Test1
|
||||
mov eax, VME+7
|
||||
call show_next_bit
|
||||
|
||||
Test0e:
|
||||
mov dword [FPU+6], $736579
|
||||
mov eax, DE+7
|
||||
call show_next_bit
|
||||
|
||||
;;;;;;
|
||||
Test1:
|
||||
test edx, VME_FLAG
|
||||
jnz Test1e
|
||||
mov eax, PSE+8
|
||||
call show_next_bit
|
||||
|
||||
mov dword [VME+ 7], $6F6E
|
||||
jmp Test2
|
||||
mov eax, TSC+6
|
||||
call show_next_bit
|
||||
|
||||
Test1e:
|
||||
mov dword [VME+ 7], $736579
|
||||
mov eax, MSR+7
|
||||
call show_next_bit
|
||||
|
||||
;;;;;;
|
||||
Test2:
|
||||
test edx, DE_FLAG
|
||||
jnz Test2e
|
||||
mov eax, PAE+7
|
||||
call show_next_bit
|
||||
|
||||
mov dword [DE+ 7], $6F6E
|
||||
jmp Test3
|
||||
mov eax, MCE+8
|
||||
call show_next_bit
|
||||
|
||||
Test2e:
|
||||
mov dword [DE+ 7], $736579
|
||||
;;;;;;
|
||||
mov eax, CX8+6
|
||||
call show_next_bit
|
||||
|
||||
Test3:
|
||||
test edx, PSE_FLAG
|
||||
jnz Test3e
|
||||
mov eax, APIC+7
|
||||
call show_next_bit
|
||||
|
||||
mov dword [PSE+ 8], $6F6E
|
||||
jmp Test4
|
||||
shr edx, 1 ; skip reserved bit
|
||||
|
||||
Test3e:
|
||||
mov dword [PSE+ 8], $736579
|
||||
mov eax, SEP+8
|
||||
call show_next_bit
|
||||
|
||||
;;;;
|
||||
Test4:
|
||||
test edx, TSC_FLAG
|
||||
jnz Test4e
|
||||
mov eax, MTRR+6
|
||||
call show_next_bit
|
||||
|
||||
mov dword [TSC+ 6], $6F6E
|
||||
jmp Test5
|
||||
mov eax, PGE+7
|
||||
call show_next_bit
|
||||
|
||||
Test4e:
|
||||
mov dword [TSC+ 6], $736579
|
||||
mov eax, MCA+7
|
||||
call show_next_bit
|
||||
|
||||
;;;;
|
||||
Test5:
|
||||
test edx, MSR_FLAG
|
||||
jnz Test5e
|
||||
mov eax, CMOV+8
|
||||
call show_next_bit
|
||||
|
||||
mov dword [MSR+ 7], $6F6E
|
||||
jmp Test6
|
||||
mov eax, PAT+6
|
||||
call show_next_bit
|
||||
|
||||
Test5e:
|
||||
mov dword [MSR+ 7], $736579
|
||||
mov eax, PSE36+7
|
||||
call show_next_bit
|
||||
|
||||
;;;;
|
||||
Test6:
|
||||
test edx, PAE_FLAG
|
||||
jnz Test6e
|
||||
mov eax, PSNUM+7
|
||||
call show_next_bit
|
||||
|
||||
mov dword [PAE+ 7], $6F6E
|
||||
jmp Test7
|
||||
mov eax, CLFLUSHn+8
|
||||
call show_next_bit
|
||||
|
||||
Test6e:
|
||||
mov dword [PAE+ 7], $736579
|
||||
shr edx, 1 ; skip reserved bit
|
||||
|
||||
;;;;
|
||||
Test7:
|
||||
test edx, MCE_FLAG
|
||||
jnz Test7e
|
||||
mov eax, DTS+7
|
||||
call show_next_bit
|
||||
|
||||
mov dword [MCE+ 8], $6F6E
|
||||
jmp Test8
|
||||
mov eax, ACPI+7
|
||||
call show_next_bit
|
||||
|
||||
Test7e:
|
||||
mov dword [MCE+ 8], $736579
|
||||
mov eax, MMX+8
|
||||
call show_next_bit
|
||||
mov eax, [eax]
|
||||
mov [MMXs+7], eax
|
||||
|
||||
;;;;
|
||||
Test8:
|
||||
test edx, CX8_FLAG
|
||||
jnz Test8e
|
||||
mov eax, FXSR+6
|
||||
call show_next_bit
|
||||
|
||||
mov dword [CX8+ 6], $6F6E
|
||||
jmp Test9
|
||||
mov eax, SSE+7
|
||||
call show_next_bit
|
||||
|
||||
Test8e:
|
||||
mov dword [CX8+ 6], $736579
|
||||
;;;;
|
||||
mov eax, SSE2+7
|
||||
call show_next_bit
|
||||
|
||||
Test9:
|
||||
test edx, APIC_FLAG
|
||||
jnz Test9e
|
||||
mov eax, SSn+8
|
||||
call show_next_bit
|
||||
|
||||
mov dword [APIC+ 7], $6F6E
|
||||
jmp Test11
|
||||
|
||||
Test9e:
|
||||
mov dword [APIC+ 7], $736579
|
||||
;;;;;
|
||||
|
||||
Test11:
|
||||
test edx, SEP_FLAG
|
||||
jnz Test11e
|
||||
|
||||
mov dword [SEP+ 8], $6F6E
|
||||
jmp Test12
|
||||
|
||||
Test11e:
|
||||
mov dword [SEP+ 8], $736579
|
||||
;;;;
|
||||
|
||||
Test12:
|
||||
test edx, MTRR_FLAG
|
||||
jnz Test12e
|
||||
|
||||
mov dword [MTRR+ 6], $6F6E
|
||||
jmp Test13
|
||||
|
||||
Test12e:
|
||||
mov dword [MTRR+ 6], $736579
|
||||
;;;;
|
||||
|
||||
Test13:
|
||||
test edx, PGE_FLAG
|
||||
jnz Test13e
|
||||
|
||||
mov dword [PGE+ 7], $6F6E
|
||||
jmp Test14
|
||||
|
||||
Test13e:
|
||||
mov dword [PGE+ 7], $736579
|
||||
;;;;;
|
||||
|
||||
Test14:
|
||||
test edx, MCA_FLAG
|
||||
jnz Test14e
|
||||
|
||||
mov dword [MCA+ 7], $6F6E
|
||||
jmp Test15
|
||||
|
||||
Test14e:
|
||||
mov dword [MCA+ 7], $736579
|
||||
;;;;
|
||||
|
||||
Test15:
|
||||
test edx, CMOV_FLAG
|
||||
jnz Test15e
|
||||
|
||||
mov dword [CMOV+ 8], $6F6E
|
||||
jmp Test16
|
||||
|
||||
Test15e:
|
||||
mov dword [CMOV+ 8], $736579
|
||||
;;;;
|
||||
|
||||
Test16:
|
||||
test edx, PAT_FLAG
|
||||
jnz Test16e
|
||||
|
||||
mov dword [PAT+ 6], $6F6E
|
||||
jmp Test17
|
||||
|
||||
Test16e:
|
||||
mov dword [PAT+ 6], $736579
|
||||
;;;;
|
||||
|
||||
Test17:
|
||||
test edx, PSE36_FLAG
|
||||
jnz Test17e
|
||||
|
||||
mov dword [PSE36+ 7], $6F6E
|
||||
jmp Test18
|
||||
|
||||
Test17e:
|
||||
mov dword [PSE36+ 7], $736579
|
||||
;;;;
|
||||
|
||||
Test18:
|
||||
test edx, PSNUM_FLAG
|
||||
jnz Test18e
|
||||
|
||||
mov dword [PSNUM+ 7], $6F6E
|
||||
jmp Test19
|
||||
|
||||
Test18e:
|
||||
mov dword [PSNUM+ 7], $736579
|
||||
;;;;
|
||||
|
||||
Test19:
|
||||
test edx, CLFLUSH_FLAG
|
||||
jnz Test19e
|
||||
|
||||
mov dword [CLFLUSHn + 8], $6F6E
|
||||
jmp Test21
|
||||
|
||||
Test19e:
|
||||
mov dword [CLFLUSHn + 8], $736579
|
||||
;;;;
|
||||
|
||||
Test21:
|
||||
test edx, DTS_FLAG
|
||||
jnz Test21e
|
||||
|
||||
mov dword [DTS+ 7], $6F6E
|
||||
jmp Test22
|
||||
|
||||
Test21e:
|
||||
mov dword [DTS+ 7], $736579
|
||||
;;;;
|
||||
|
||||
Test22:
|
||||
test edx, ACPI_FLAG
|
||||
jnz Test22e
|
||||
|
||||
mov dword [ACPI+ 7], $6F6E
|
||||
jmp Test23
|
||||
|
||||
Test22e:
|
||||
mov dword [ACPI+ 7], $736579
|
||||
;;;;;
|
||||
|
||||
Test23:
|
||||
test edx, MMX_FLAG
|
||||
jnz Test23e
|
||||
|
||||
mov dword [MMX+ 8], $6F6E
|
||||
mov dword [MMXs+ 7], $6F6E
|
||||
jmp Test24
|
||||
|
||||
Test23e:
|
||||
mov dword [MMX+ 8], $736579
|
||||
mov dword [MMXs+ 7], $736579
|
||||
;;;;;
|
||||
|
||||
Test24:
|
||||
test edx, FXSR_FLAG
|
||||
jnz Test24e
|
||||
|
||||
mov dword [FXSR+ 6], $6F6E
|
||||
jmp Test25
|
||||
|
||||
Test24e:
|
||||
mov dword [FXSR+ 6], $736579
|
||||
;;;;;
|
||||
|
||||
Test25:
|
||||
test edx, SSE_FLAG
|
||||
jnz Test25e
|
||||
|
||||
mov dword [SSE+ 7], $6F6E
|
||||
jmp Test26
|
||||
|
||||
Test25e:
|
||||
mov dword [SSE+ 7], $736579
|
||||
|
||||
;;;;
|
||||
Test26:
|
||||
test edx, SSE2_FLAG
|
||||
jnz Test26e
|
||||
|
||||
mov dword [SSE2+ 7], $6F6E
|
||||
jmp Test27
|
||||
|
||||
Test26e:
|
||||
mov dword [SSE2+ 7], $736579
|
||||
|
||||
;;;;
|
||||
|
||||
Test27:
|
||||
test edx, SS_FLAG
|
||||
jnz Test27e
|
||||
|
||||
mov dword [SSn+ 8], $6F6E
|
||||
jmp Test29;28
|
||||
|
||||
Test27e:
|
||||
mov dword [SSn+ 8], $736579
|
||||
|
||||
;;;;
|
||||
|
||||
;Test28:
|
||||
shr edx, 1
|
||||
; mov eax, HTT+8
|
||||
; test edx, HTT_FLAG
|
||||
;jnz Test28e
|
||||
;
|
||||
;mov dword [HTT+ 8], $6F6E
|
||||
;jmp Test29
|
||||
;
|
||||
;Test28e:
|
||||
;mov dword [HTT+ 8], $736579
|
||||
; call write_yes_no
|
||||
|
||||
;;;;
|
||||
mov eax, TM+7
|
||||
call show_next_bit
|
||||
|
||||
Test29:
|
||||
test edx, TM_FLAG
|
||||
jnz Test29e
|
||||
mov eax, IA64+7
|
||||
call show_next_bit
|
||||
|
||||
mov dword [TM+ 7], $6F6E
|
||||
jmp Test30
|
||||
|
||||
Test29e:
|
||||
mov dword [TM+ 7], $736579
|
||||
|
||||
;;;;
|
||||
|
||||
Test30:
|
||||
test edx, IA64_FLAG
|
||||
jnz Test30e
|
||||
|
||||
mov dword [IA64+ 7], $6F6E
|
||||
jmp Test31
|
||||
|
||||
Test30e:
|
||||
mov dword [IA64+ 7], $736579
|
||||
|
||||
;;;;
|
||||
Test31:
|
||||
test edx, PBE_FLAG
|
||||
jnz Test31e
|
||||
|
||||
mov dword [PBE+ 8], $6F6E
|
||||
jmp Standart_out
|
||||
|
||||
Test31e:
|
||||
mov dword [PBE+ 8], $736579
|
||||
|
||||
Standart_out:
|
||||
mov eax, PBE+8
|
||||
call show_next_bit
|
||||
|
||||
ret
|
||||
;//////////////////////////////////////////////
|
||||
decode_sse3: ; is SS3 supported
|
||||
xor eax,eax
|
||||
inc eax
|
||||
cpuid
|
||||
test ecx, $1 ; Test bit 1
|
||||
jnz .EX; SSE3 technology is supported
|
||||
jz .EXN
|
||||
|
||||
.EX:
|
||||
mov dword [sse3+ 6], $736579
|
||||
mov [sse3sup], 1
|
||||
jmp exitter
|
||||
.EXN:
|
||||
mov dword [sse3+ 6], $6F6E
|
||||
mov [sse3sup],0
|
||||
|
||||
exitter:
|
||||
|
||||
ret
|
||||
;//////////////////////////////////////////////
|
||||
decode_extended_features:
|
||||
xor eax,eax
|
||||
inc eax
|
||||
cpuid
|
||||
Tes1:
|
||||
; is called immediately after decode_standard_features
|
||||
; xor eax, eax
|
||||
; inc eax
|
||||
; cpuid
|
||||
|
||||
mov eax, SS3+8
|
||||
test ecx, SSE3_FLAG
|
||||
jnz Tes1e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [SS3+ 8], $6F6E
|
||||
jmp Tes2
|
||||
|
||||
Tes1e:
|
||||
mov dword [SS3+ 8], $736579
|
||||
|
||||
|
||||
Tes2:
|
||||
mov eax, MON+8
|
||||
test ecx, MON_FLAG
|
||||
jnz Tes2e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [MON+ 8], $6F6E
|
||||
jmp Tes3
|
||||
|
||||
Tes2e:
|
||||
mov dword [MON+ 8], $736579
|
||||
|
||||
|
||||
Tes3:
|
||||
mov eax, DS_CPL+8
|
||||
test ecx, DS_CPL_FLAG
|
||||
jnz Tes3e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [DS_CPL+ 8], $6F6E
|
||||
jmp Tes4
|
||||
|
||||
Tes3e:
|
||||
mov dword [DS_CPL+ 8], $736579
|
||||
|
||||
Tes4:
|
||||
mov eax, EST+8
|
||||
test ecx, EST_FLAG
|
||||
jnz Tes4e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [EST+ 8], $6F6E
|
||||
jmp Tes5
|
||||
|
||||
Tes4e:
|
||||
mov dword [EST+ 8], $736579
|
||||
|
||||
|
||||
Tes5:
|
||||
mov eax, TM2+8
|
||||
test ecx, TM2_FLAG
|
||||
jnz Tes5e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [TM2+ 8], $6F6E
|
||||
jmp Tes6
|
||||
|
||||
Tes5e:
|
||||
mov dword [TM2+ 8], $736579
|
||||
|
||||
|
||||
Tes6:
|
||||
mov eax, CNXT_ID+12
|
||||
test ecx, CNXT_ID_FLAG
|
||||
jnz Tes6e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [CNXT_ID+ 12], $6F6E
|
||||
jmp Tes7
|
||||
|
||||
Tes6e:
|
||||
mov dword [CNXT_ID+ 12], $736579
|
||||
|
||||
|
||||
Tes7:
|
||||
mov eax, CX16+12
|
||||
test ecx, CX16_FLAG
|
||||
jnz Tes7e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [CX16+ 12], $6F6E
|
||||
jmp Tes8
|
||||
|
||||
Tes7e:
|
||||
mov dword [CX16+ 12], $736579
|
||||
|
||||
|
||||
Tes8:
|
||||
mov eax, ETPRD+12
|
||||
test ecx, ETPRD_FLAG
|
||||
jnz Tes8e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [ETPRD+ 12], $6F6E
|
||||
jmp Tes9
|
||||
|
||||
Tes8e:
|
||||
mov dword [ETPRD+ 12], $736579
|
||||
|
||||
Tes9:
|
||||
mov eax, VMX+8
|
||||
test ecx, VMX_FLAG
|
||||
jnz Tes9e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [VMX+ 8], $6F6E
|
||||
jmp Tes10
|
||||
|
||||
Tes9e:
|
||||
mov dword [VMX+ 8], $736579
|
||||
|
||||
Tes10:
|
||||
mov eax, SSSE3+12
|
||||
test ecx, SSSE3_FLAG
|
||||
jnz Tes10e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [SSSE3+ 12], $6F6E
|
||||
jmp Tes11
|
||||
|
||||
Tes10e:
|
||||
mov dword [SSSE3+ 12], $736579
|
||||
|
||||
Tes11:
|
||||
mov eax, DCA+8
|
||||
test ecx, DCA_FLAG
|
||||
jnz Tes11e
|
||||
|
||||
mov dword [DCA+ 8], $6F6E
|
||||
jmp Tes12
|
||||
|
||||
Tes11e:
|
||||
mov dword [DCA+ 8], $736579
|
||||
|
||||
Tes12:
|
||||
|
||||
|
||||
call write_yes_no
|
||||
@@:
|
||||
ret
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
decode_extended:
|
||||
xor eax, eax
|
||||
mov eax, $80000000
|
||||
cpuid
|
||||
mov [extc], eax ; max number of calls
|
||||
test eax, eax
|
||||
jns @b
|
||||
|
||||
test eax, 80000000h
|
||||
jnz gooodd
|
||||
|
||||
jmp baaad
|
||||
|
||||
baaad:
|
||||
|
||||
|
||||
jmp Tez13
|
||||
|
||||
gooodd:
|
||||
xor eax, eax
|
||||
mov eax, $80000001 ;// Setup extended function 8000_0001h
|
||||
cpuid
|
||||
|
||||
Tez1:
|
||||
mov eax, MP+8
|
||||
test edx, MP_FLAG
|
||||
jnz Tez1e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [MP+8], $6F6E
|
||||
jmp Tez2
|
||||
|
||||
Tez1e:
|
||||
mov dword [MP+ 8], $736579
|
||||
|
||||
Tez2:
|
||||
mov eax, NX+8
|
||||
test edx, NX_FLAG
|
||||
jnz Tez2e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [NX+ 8], $6F6E
|
||||
jmp Tez4
|
||||
;jmp Tez3 we do detection in another place, because of Cyrix specific MMX+ detection
|
||||
|
||||
Tez2e:
|
||||
mov dword [NX+ 8], $736579
|
||||
|
||||
;Tez3:
|
||||
; mov eax, MMXPi+8
|
||||
; test edx, MMXPi_FLAG
|
||||
;jnz Tez3e
|
||||
; call write_yes_no
|
||||
|
||||
;mov dword [MMXPi+ 8], $6F6E
|
||||
;jmp Tez4
|
||||
|
||||
|
||||
;Tez3e:
|
||||
;mov dword [MMXPi+ 8], $736579
|
||||
|
||||
Tez4:
|
||||
mov eax, MMXn+8
|
||||
test edx, MMXn_FLAG
|
||||
jnz Tez4e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [MMXn+ 8], $6F6E
|
||||
jmp Tez5
|
||||
|
||||
Tez4e:
|
||||
mov dword [MMXn+ 8], $736579
|
||||
|
||||
Tez5:
|
||||
mov eax, FXSRn+8
|
||||
test edx, FXSRn_FLAG
|
||||
jnz Tez5e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [FXSRn+ 8], $6F6E
|
||||
jmp Tez6
|
||||
|
||||
Tez5e:
|
||||
mov dword [FXSRn+ 8], $736579
|
||||
|
||||
Tez6:
|
||||
mov eax, FFXSR+12
|
||||
test edx, FFXSR_FLAG
|
||||
jnz Tez6e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [FFXSR+ 12], $6F6E
|
||||
jmp Tez7
|
||||
|
||||
Tez6e:
|
||||
mov dword [FFXSR+ 12], $736579
|
||||
|
||||
Tez7:
|
||||
mov eax, TSCP+12
|
||||
test edx, TSCP_FLAG
|
||||
jnz Tez7e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [TSCP+ 12], $6F6E
|
||||
jmp Tez8
|
||||
|
||||
Tez7e:
|
||||
mov dword [TSCP+ 12], $736579
|
||||
|
||||
|
||||
Tez8:
|
||||
mov eax, LM+12
|
||||
test edx, LM_FLAG
|
||||
jnz Tez8e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [LM+ 12], $6F6E
|
||||
jmp Tez9
|
||||
|
||||
Tez8e:
|
||||
mov dword [LM+ 12], $736579
|
||||
|
||||
Tez9:
|
||||
mov eax, DNo+12
|
||||
test edx, DNo_FLAG
|
||||
jnz Tez9e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [DNo+ 12], $6F6E
|
||||
jmp Tez10
|
||||
|
||||
Tez9e:
|
||||
mov dword [DNo+ 12], $736579
|
||||
|
||||
|
||||
Tez10:
|
||||
mov eax, DN+12
|
||||
test edx, DN_FLAG
|
||||
jnz Tez10e
|
||||
|
||||
mov dword [DN+ 12], $6F6E
|
||||
jmp Tez11
|
||||
|
||||
Tez10e:
|
||||
mov dword [DN+ 12], $736579
|
||||
call write_yes_no
|
||||
|
||||
;Intel
|
||||
|
||||
Tez11:
|
||||
mov eax, SYS+12
|
||||
test edx, SYS_FLAG
|
||||
jnz Tez11e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [SYS+ 12], $6F6E
|
||||
jmp Tez12
|
||||
|
||||
Tez11e:
|
||||
mov dword [SYS+ 12], $736579
|
||||
|
||||
|
||||
Tez12:
|
||||
mov eax, LAF+12
|
||||
test ecx, LAHF_FLAG
|
||||
jnz Tez12e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [LAF+ 12], $6F6E
|
||||
jmp Tez13
|
||||
|
||||
Tez12e:
|
||||
mov dword [LAF+ 12], $736579
|
||||
|
||||
Tez13:
|
||||
mov eax, CMPL+12
|
||||
test ecx, CMPL_FLAG
|
||||
jnz Tez13e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [CMPL+ 12], $6F6E
|
||||
jmp Tez14
|
||||
|
||||
Tez13e:
|
||||
mov dword [CMPL+ 12], $736579
|
||||
|
||||
Tez14:
|
||||
mov eax, SVM+8
|
||||
test ecx, SVM_FLAG
|
||||
jnz Tez14e
|
||||
call write_yes_no
|
||||
|
||||
mov dword [SVM+ 8], $6F6E
|
||||
jmp Tez15
|
||||
|
||||
Tez14e:
|
||||
mov dword [SVM+ 8], $736579
|
||||
|
||||
Tez15:
|
||||
mov eax, MCR8+12
|
||||
test ecx, MOVCR8_FLAG
|
||||
jnz Tez15e
|
||||
|
||||
mov dword [MCR8+ 12], $6F6E
|
||||
jmp Tez16
|
||||
|
||||
Tez15e:
|
||||
mov dword [MCR8+ 12], $736579
|
||||
|
||||
Tez16:
|
||||
call write_yes_no
|
||||
|
||||
ret
|
@ -4,9 +4,9 @@ gif_hash_offset = gif_hash_area
|
||||
macro gif2img gifsrc,imgsrc
|
||||
{
|
||||
local hasharea, ReadGIF, nextblock,_null
|
||||
local globalColor, img_count, cur_info, img_start
|
||||
local codesize, compsize, bit_count, CC, EOI, Palette
|
||||
local block_ofs, table_ptr, gifmacend
|
||||
;local globalColor, img_count, cur_info, img_start
|
||||
;local codesize, compsize, bit_count, CC, EOI, Palette
|
||||
;local block_ofs, table_ptr, gifmacend
|
||||
local no_gc, block_skip, no_comm, noextblock, uselocal
|
||||
local setPal, filltable, reinit, cycle, zadd, noinc
|
||||
local notintable, er, zend, nxt, continue, ex, Gif_skipmap
|
||||
@ -29,7 +29,7 @@ end if
|
||||
end if
|
||||
|
||||
call ReadGIF
|
||||
jmp gifmacend
|
||||
ret
|
||||
|
||||
if defined gif_hash_offset
|
||||
else
|
||||
@ -46,7 +46,7 @@ ReadGIF:
|
||||
mov [img_count],eax
|
||||
inc eax
|
||||
cmp dword[esi],'GIF8'
|
||||
jne er ; signature
|
||||
jne ex ; signature
|
||||
mov ecx,[esi+0xa]
|
||||
inc eax
|
||||
add esi,0xd
|
||||
@ -81,7 +81,7 @@ no_comm:
|
||||
jmp block_skip
|
||||
noextblock:
|
||||
cmp byte[edi],0x2c ; image beginning
|
||||
jne er
|
||||
jne ex
|
||||
inc [img_count]
|
||||
inc edi
|
||||
mov esi,[cur_info]
|
||||
@ -137,7 +137,6 @@ filltable:
|
||||
inc eax
|
||||
loop filltable
|
||||
pop edi
|
||||
mov [img_start],edi
|
||||
reinit:
|
||||
mov edx,[EOI]
|
||||
inc edx
|
||||
@ -180,9 +179,6 @@ notintable:
|
||||
call Gif_output
|
||||
pop ebx eax
|
||||
jmp zadd
|
||||
er:
|
||||
pop edi
|
||||
jmp ex
|
||||
zend:
|
||||
; mov eax,[.cur_info] ; skip offset to next frame
|
||||
; mov [eax],edi
|
||||
@ -197,8 +193,6 @@ nxt:
|
||||
continue:
|
||||
; cmp byte[edi],0x3b ;read next frame
|
||||
; jne nextblock
|
||||
xor eax,eax
|
||||
stosd
|
||||
mov ecx,[img_count]
|
||||
ex:
|
||||
pop edi esi
|
||||
@ -283,18 +277,6 @@ loop2:
|
||||
pop edx eax esi
|
||||
ret
|
||||
|
||||
globalColor dd 1
|
||||
img_count dd 1
|
||||
cur_info dd 1 ; image table pointer
|
||||
img_start dd 1
|
||||
codesize dd 1
|
||||
compsize dd 1
|
||||
bit_count dd 1
|
||||
CC dd 1
|
||||
EOI dd 1
|
||||
Palette dd 1
|
||||
block_ofs dd 1
|
||||
table_ptr dd 1
|
||||
|
||||
gifmacend:
|
||||
}
|
||||
|
@ -1,29 +1,20 @@
|
||||
amd:
|
||||
file 'amd.gif' ;include gif file
|
||||
rb 50 ;50 bytes temp back zone
|
||||
|
||||
cyrix:
|
||||
file 'cyrix.gif' ;include gif file
|
||||
rb 50 ;50 bytes temp back zone
|
||||
|
||||
idt:
|
||||
file 'idt.gif' ;include gif file
|
||||
rb 50 ;50 bytes temp back zone
|
||||
|
||||
intel:
|
||||
file 'intel.gif' ;include gif file
|
||||
rb 50 ;50 bytes temp back zone
|
||||
|
||||
transmeta:
|
||||
file 'transmet.gif' ;include gif file
|
||||
rb 50 ;50 bytes temp back zone
|
||||
|
||||
via:
|
||||
file 'via.gif' ;include gif file
|
||||
rb 50 ;50 bytes temp back zone
|
||||
|
||||
knopka:
|
||||
file 'knopka.gif' ;include gif file
|
||||
rb 50 ;50 bytes temp back zone
|
||||
|
||||
|
||||
|
@ -596,9 +596,3 @@ module:
|
||||
;p=1042128803351525332193283695592003066548124262686459610611886292768993621049491
|
||||
;q=1273712981880077616387281148672409277231717442781838063285512054053473668300963
|
||||
;n=1327372985619988354987062708438042005329282516404896732667039640816200186465366322016844458439816997285872910403676793109807015096535910981266920474905959833
|
||||
|
||||
num1 rd 40
|
||||
num2 rd 40
|
||||
num3 rd 40
|
||||
iter rd 1
|
||||
openkey rd 1
|
@ -172,8 +172,8 @@ alt_tab_pressed:
|
||||
mov eax, 9
|
||||
jb .fill
|
||||
mov [alt_tab_list_size], edx
|
||||
cmp edx, 2
|
||||
jb begin_1.ret
|
||||
test edx, edx
|
||||
jz begin_1.ret
|
||||
mcall 66,4,0,0 ; «®¢¨¬ ¬®¬¥â ®â¯ã᪠¨ï ¢á¥å ã¯à ¢«ïîé¨å ª« ¢¨è
|
||||
test eax, eax
|
||||
jnz begin_1.ret
|
||||
|
@ -25,8 +25,10 @@ version equ '1.2'
|
||||
dd 0x0 ; ¤à¥á ¡ãä¥à ¤«ï ¯ à ¬¥â஢ (¥ ¨á¯®«ì§ã¥âáï)
|
||||
dd 0x0 ; § १¥à¢¨à®¢ ®
|
||||
|
||||
include '..\..\..\develop\examples\editbox\trunk\editbox.inc'
|
||||
include '..\..\develop\editbox\editbox.inc'
|
||||
use_edit_box procinfo,22,5
|
||||
al equ eax ; \ decrease kpack'ed size
|
||||
purge mov ; /
|
||||
|
||||
;---------------------------------------------------------------------
|
||||
;--- <20>€—€‹Ž <20><>Žƒ<C5BD>€ŒŒ› ----------------------------------------------
|
||||
@ -44,9 +46,7 @@ red: ;
|
||||
;---------------------------------------------------------------------
|
||||
|
||||
still:
|
||||
push 10
|
||||
pop eax
|
||||
mcall
|
||||
mcall 10
|
||||
|
||||
dec eax ; ¯¥à¥à¨á®¢ âì ®ª®?
|
||||
jz red ; ¥á«¨ ¤ - ¬¥âªã red
|
||||
@ -56,7 +56,7 @@ still:
|
||||
jz button
|
||||
|
||||
mouse:
|
||||
mouse_edit_boxes editbox,editbox_end
|
||||
mouse_edit_box editbox
|
||||
jmp still
|
||||
|
||||
button:
|
||||
@ -69,38 +69,26 @@ button:
|
||||
mcall
|
||||
|
||||
noclose:
|
||||
push eax
|
||||
call clear_err
|
||||
pop eax
|
||||
push 16
|
||||
xor ebx, ebx
|
||||
inc ebx ; 16.1 = save to /FD/1
|
||||
cmp ah, 2
|
||||
jne path_2
|
||||
call clear_err
|
||||
mov al,16
|
||||
mov ebx,1
|
||||
mcall
|
||||
call check_for_error
|
||||
jmp still
|
||||
path_2:
|
||||
je doit
|
||||
inc ebx ; 16.2 = save to /FD/2
|
||||
cmp ah, 3
|
||||
jne path_3
|
||||
call clear_err
|
||||
mov al,16
|
||||
mov ebx,2
|
||||
mcall
|
||||
call check_for_error
|
||||
jmp still
|
||||
path_3:
|
||||
cmp ah,4
|
||||
jne path_4
|
||||
call clear_err
|
||||
mov al,18
|
||||
mov ebx,6
|
||||
je doit
|
||||
pop ebx
|
||||
push 18
|
||||
mov bl, 6 ; 18.6 = save to specified folder
|
||||
mov ecx, path3
|
||||
mcall
|
||||
call check_for_error
|
||||
jmp still
|
||||
path_4:
|
||||
call clear_err
|
||||
mov eax,18
|
||||
mov ebx,6
|
||||
cmp ah, 4
|
||||
je doit
|
||||
mov ecx, path4
|
||||
doit:
|
||||
pop eax
|
||||
mcall
|
||||
call check_for_error
|
||||
jmp still
|
||||
@ -108,56 +96,39 @@ noclose:
|
||||
key:
|
||||
mov al,2
|
||||
mcall
|
||||
key_edit_boxes editbox,editbox_end
|
||||
key_edit_box editbox
|
||||
jmp still
|
||||
|
||||
|
||||
check_for_error: ;Ž¡à ¡®â稪 ®è¨¡®ª
|
||||
cmp eax,0
|
||||
jne err1
|
||||
mov ecx, [sc.work_text]
|
||||
mov edx, ok
|
||||
jmp print
|
||||
err1:
|
||||
cmp eax,1
|
||||
jne err3
|
||||
test eax, eax
|
||||
jz print
|
||||
mov ecx, 0xdd2222
|
||||
mov edx,error11
|
||||
jmp print
|
||||
err3:
|
||||
cmp eax,3
|
||||
jne err5
|
||||
mov ecx,0xdd2222
|
||||
mov edx,error3
|
||||
jmp print
|
||||
err5:
|
||||
cmp eax,5
|
||||
jne err8
|
||||
mov ecx,0xdd2222
|
||||
mov edx,error5
|
||||
jmp print
|
||||
err8:
|
||||
cmp eax,8
|
||||
jne err9
|
||||
mov ecx,0xdd2222
|
||||
mov edx,error8
|
||||
jmp print
|
||||
err9:
|
||||
cmp eax,9
|
||||
jne err10
|
||||
mov ecx,0xdd2222
|
||||
mov edx,error9
|
||||
jmp print
|
||||
err10:
|
||||
cmp eax,10
|
||||
jne err11
|
||||
mov ecx,0xdd2222
|
||||
mov edx,error10
|
||||
jmp print
|
||||
err11:
|
||||
mov ecx,0xdd2222
|
||||
mov edx,error11
|
||||
jmp print
|
||||
add edx, error3 - ok
|
||||
dec eax
|
||||
dec eax
|
||||
jz print
|
||||
add edx, error5 - error3
|
||||
dec eax
|
||||
dec eax
|
||||
jz print
|
||||
add edx, error8 - error5
|
||||
dec eax
|
||||
dec eax
|
||||
dec eax
|
||||
jz print
|
||||
add edx, error9 - error8
|
||||
dec eax
|
||||
jz print
|
||||
add edx, error10 - error9
|
||||
dec eax
|
||||
jz print
|
||||
add edx, error11 - error10
|
||||
dec eax
|
||||
jz print
|
||||
add edx, aUnknownError - error11
|
||||
|
||||
print:
|
||||
mov eax,4 ; ¤¯¨á¨
|
||||
@ -167,7 +138,7 @@ err10:
|
||||
ret
|
||||
|
||||
clear_err:
|
||||
mov al,13
|
||||
mov eax,13
|
||||
mov ebx,15 shl 16 + 240
|
||||
mov ecx,145 shl 16 +15
|
||||
mov edx,[sc.work]
|
||||
@ -199,7 +170,7 @@ draw_window:
|
||||
mov edi,title ; ‡€ƒŽ‹Ž‚ŽŠ ŽŠ<C5BD>€
|
||||
mcall
|
||||
|
||||
draw_edit_boxes editbox,editbox_end,use_f9,procinfo ;à¨á®¢ ¨¥ edit box'®¢
|
||||
draw_edit_box editbox,use_f9,procinfo ;à¨á®¢ ¨¥ edit box'®¢
|
||||
|
||||
mov al,13 ;®âà¨á®¢ª ⥥© ª®¯®ª
|
||||
mov ebx,194 shl 16 + 60
|
||||
@ -306,6 +277,7 @@ error8 db '
|
||||
error9 db '’ ¡«¨æ FAT à §àãè¥ ',0
|
||||
error10 db '„®áâ㯠§ ¯à¥é¥',0
|
||||
error11 db 'Žè¨¡ª ãáâனá⢠',0
|
||||
aUnknownError db '<27>¥¨§¢¥áâ ï ®è¨¡ª ',0
|
||||
|
||||
else
|
||||
save db ' Save',0
|
||||
@ -319,6 +291,7 @@ error8 db 'Disk is full',0
|
||||
error9 db 'FAT table corrupted',0
|
||||
error10 db 'Access denied',0
|
||||
error11 db 'Device error',0
|
||||
aUnknownError db 'Unknown error',0
|
||||
|
||||
end if
|
||||
|
||||
|
@ -5,115 +5,80 @@
|
||||
use32
|
||||
org 0x0
|
||||
|
||||
used_memory = 0x10000
|
||||
|
||||
db 'MENUET01' ; 8 byte id
|
||||
dd 0x01 ; header version
|
||||
dd START ; start of code
|
||||
dd I_END ; size of image
|
||||
dd 0x40000 ; memory for app (256 Kb)
|
||||
dd 0x40000 ; esp
|
||||
dd used_memory ; memory for app
|
||||
dd used_memory ; esp
|
||||
dd 0x0 , 0x0 ; I_Param , I_Icon
|
||||
|
||||
include 'lang.inc'
|
||||
include '..\..\..\macros.inc'
|
||||
purge mov ; decrease kpack'ed size
|
||||
|
||||
;include 'debug.inc'
|
||||
|
||||
START:
|
||||
mov eax,14
|
||||
mcall
|
||||
and eax,0xFFFF0000
|
||||
mov [top_right_corner],eax
|
||||
|
||||
mov eax,40 ; ãáâ ®¢¨âì ¬ áªã ᮡë⨩
|
||||
mov ebx,110010b ; ॠ£¨à㥬 ª« ¢¨ âãàã, ¬ëèì, ®âà¨á®¢ªã ä®
|
||||
mcall
|
||||
|
||||
mov eax,14 ; ¯®«ã稬 à §¬¥àë íªà
|
||||
bgr_changed:
|
||||
|
||||
mov eax,14
|
||||
mcall
|
||||
mov [y_max], ax
|
||||
shr eax, 16
|
||||
mov [x_max], ax
|
||||
shl eax, 16
|
||||
mov [top_right_corner], eax
|
||||
|
||||
event: ; ®¡à ¡®â稪 ᮡë⨩ (¢á¥å)
|
||||
mov eax,26
|
||||
mov ebx,9
|
||||
mcall ; ¯®«ãç¨âì ¢à¥¬ï á¨á⥬ë
|
||||
; mov eax,3
|
||||
; mcall
|
||||
mov [evtime],eax ; § ¯®¬¨âì ¥£®
|
||||
mov eax,37
|
||||
mov ebx,2
|
||||
mcall
|
||||
cmp eax,3 ; ¯à®¤®«¦¨¬, ¥á«¨ ¦ â á।ïï ª®¯ª ¬ëè¨
|
||||
jne still
|
||||
mov eax,37 ; ¯à®¢¥à¨¬ ª®®à¤¨ âë
|
||||
mov ebx,0
|
||||
mcall
|
||||
still:
|
||||
movzx ebx, [time]
|
||||
imul ebx, 60*100
|
||||
mcall 23 ; ¦¤ñ¬ ᮡëâ¨ï ¢ â¥ç¥¨¥ [time] ¬¨ãâ
|
||||
test eax, eax
|
||||
jz create_ss_thread
|
||||
cmp al, 2 ; key in buffer?
|
||||
jz key
|
||||
cmp al, 5 ; background redraw?
|
||||
jz bgr_changed
|
||||
; mouse event
|
||||
mcall 37,2 ; ¯à®¢¥à¨¬ ª®¯ª¨
|
||||
and al, 3
|
||||
cmp al, 3 ; ¦ âë ®¡¥ ª®¯ª¨ ¬ëè¨?
|
||||
jnz still
|
||||
mcall 37,0 ; ¯à®¢¥à¨¬ ª®®à¤¨ âë
|
||||
cmp [top_right_corner], eax
|
||||
je create_setup ; ᮧ¤ ñ¬ ®ª® áâனª¨, ¥á«¨ ¬ëèì ¢ ¢¥à奬 ¯à ¢®¬
|
||||
; 㣫ã íªà
|
||||
|
||||
|
||||
|
||||
still: ; ®á®¢®© 横« ¯à®£à ¬¬ë
|
||||
|
||||
mov eax,23 ; ¦¤ñ¬ ᮡëâ¨ï ¢ â¥ç¥¨¥ 1 ᥪã¤ë
|
||||
mov ebx,100
|
||||
mcall
|
||||
|
||||
bt dword [params],0 ; ssaver works?
|
||||
jc event
|
||||
bt dword [params],1 ; setup works?
|
||||
jc event
|
||||
|
||||
cmp eax,2 ; key in buffer ?
|
||||
je event
|
||||
cmp eax,5
|
||||
je event
|
||||
cmp eax,6
|
||||
je event
|
||||
|
||||
mov eax,26
|
||||
mov ebx,9
|
||||
mcall
|
||||
sub eax,[evtime]
|
||||
xor edx,edx
|
||||
mov ebx,60*100 ; ¯®¤¥«¨¬ 60*100, ¯®«ã稬 ¢à¥¬ï ¢ ¬¨ãâ å
|
||||
div ebx
|
||||
cmp al,[time]
|
||||
jb still
|
||||
|
||||
; current_time-evtime/100/60 = ¢à¥¬ï ¢ ¬¨ãâ å á ¯à®è«®£® ᮡëâ¨ï
|
||||
jnz still
|
||||
create_setup:
|
||||
test [params], 2
|
||||
jnz still ; ®ª® áâ஥ª 㦥 ᮧ¤ ®
|
||||
mcall 51,1,sthread,used_memory-0x1000
|
||||
or [params], 2
|
||||
jmp still
|
||||
key:
|
||||
mcall ; eax = 2
|
||||
jmp still
|
||||
|
||||
create_ss_thread:
|
||||
test [params], 3
|
||||
jnz still
|
||||
call create_ss
|
||||
jmp still
|
||||
|
||||
|
||||
|
||||
create_setup:
|
||||
bt dword [params],1
|
||||
jc still
|
||||
mov eax,51
|
||||
mov ebx,1
|
||||
mov ecx,sthread
|
||||
mov edx,0x3F000
|
||||
mcall
|
||||
bts dword [params],1
|
||||
jmp still
|
||||
|
||||
create_ss:
|
||||
mov eax,51
|
||||
mov ebx,1
|
||||
mov ecx,thread
|
||||
mov edx,0x3E000
|
||||
mcall
|
||||
bts dword [params],0
|
||||
mcall 51,1,thread,used_memory-0x2000
|
||||
or [params], 1
|
||||
ret
|
||||
|
||||
thread:
|
||||
mov eax,5
|
||||
mov ebx,eax
|
||||
mcall
|
||||
; mov eax,5
|
||||
; mov ebx,eax
|
||||
; mcall
|
||||
mov eax,40
|
||||
mov ebx,100010b
|
||||
mcall
|
||||
@ -133,22 +98,20 @@ still: ;
|
||||
jmp drawsswin
|
||||
asminit: ; for "assembler"
|
||||
mov dword [delay],25
|
||||
mov eax,58
|
||||
mov eax,70
|
||||
mov ebx,fileinfo
|
||||
mcall
|
||||
mov [filesize], ebx
|
||||
asminit1:
|
||||
mov eax,data_from_file
|
||||
mov [stringstart],eax
|
||||
mov [stringstart],data_from_file
|
||||
mov dword [stringlen],1
|
||||
newpage:
|
||||
mov word [stringpos],10
|
||||
|
||||
drawsswin:
|
||||
xor eax,eax
|
||||
mov ebx,eax
|
||||
mov ecx,eax
|
||||
mov bx,[x_max]
|
||||
mov cx,[y_max]
|
||||
movzx ebx,[x_max]
|
||||
movzx ecx,[y_max]
|
||||
inc ebx
|
||||
inc ecx
|
||||
mov edx,0x01000000
|
||||
@ -160,10 +123,8 @@ still: ;
|
||||
mov eax,23
|
||||
mov ebx,[delay]
|
||||
mcall
|
||||
cmp eax,2
|
||||
je thr_end
|
||||
cmp eax,6
|
||||
je thr_end
|
||||
test eax,eax
|
||||
jnz thr_end
|
||||
cmp dword [type],0
|
||||
je tstill
|
||||
cmp dword [type],24
|
||||
@ -171,11 +132,7 @@ still: ;
|
||||
call draw_line
|
||||
jmp tstill
|
||||
thr_end:
|
||||
btr dword [params],0
|
||||
mov eax,26
|
||||
mov ebx,9
|
||||
mcall
|
||||
mov [evtime],eax
|
||||
and [params], not 1
|
||||
or eax,-1
|
||||
mcall
|
||||
|
||||
@ -183,12 +140,15 @@ still: ;
|
||||
mov edi,[stringstart]
|
||||
add edi,[stringlen]
|
||||
dec edi
|
||||
mov eax,edi
|
||||
sub eax,data_from_file
|
||||
cmp eax,10450
|
||||
lea eax,[edi-data_from_file]
|
||||
cmp eax,[filesize]
|
||||
ja asminit1
|
||||
cmp word [edi],0x0a0d
|
||||
je addstring
|
||||
cmp byte [edi],0x0a
|
||||
jne noaddstring
|
||||
dec edi
|
||||
addstring:
|
||||
add word [stringpos],10
|
||||
add edi,2
|
||||
mov [stringstart],edi
|
||||
@ -211,11 +171,8 @@ still: ;
|
||||
jmp tstill
|
||||
|
||||
draw_line:
|
||||
|
||||
xor esi,esi
|
||||
xor edi,edi
|
||||
mov si,[x_max]
|
||||
mov di,[y_max]
|
||||
movzx esi,[x_max]
|
||||
movzx edi,[y_max]
|
||||
|
||||
mov eax,[addx1]
|
||||
add [lx1],eax
|
||||
@ -294,13 +251,12 @@ sstill:
|
||||
mov eax,10 ; wait here for event
|
||||
mcall
|
||||
|
||||
cmp eax,1 ; redraw request ?
|
||||
dec eax ; redraw request ?
|
||||
je sthread
|
||||
cmp eax,2 ; key in buffer ?
|
||||
je sstill
|
||||
cmp eax,3 ; button in buffer ?
|
||||
je sbutton
|
||||
|
||||
dec eax ; key in buffer ?
|
||||
jne sbutton
|
||||
mov al,2
|
||||
mcall
|
||||
jmp sstill
|
||||
|
||||
sbutton: ; button
|
||||
@ -310,20 +266,20 @@ sstill:
|
||||
cmp ah,1 ; button id=1 ?
|
||||
jne snoclose
|
||||
|
||||
btr dword [params],1
|
||||
and [params], not 2
|
||||
mov eax,-1 ; close this program
|
||||
mcall
|
||||
snoclose:
|
||||
cmp ah,7
|
||||
jne nosetfl
|
||||
btc dword [params],0
|
||||
xor [params], 1
|
||||
call drawflag
|
||||
call drawtype
|
||||
call drawtime
|
||||
jmp sstill
|
||||
nosetfl:
|
||||
bt dword [params],0
|
||||
jc sstill
|
||||
test [params], 1
|
||||
jnz sstill
|
||||
cmp ah,2
|
||||
jne notypedown
|
||||
mov eax,[type]
|
||||
@ -345,7 +301,7 @@ sstill:
|
||||
mov al,[time]
|
||||
cmp al,1
|
||||
jbe sstill
|
||||
dec al
|
||||
dec eax
|
||||
; das
|
||||
jmp timeupdn
|
||||
notimedown:
|
||||
@ -354,17 +310,16 @@ sstill:
|
||||
mov al,[time]
|
||||
cmp al,59 ; 0x59
|
||||
jae sstill
|
||||
inc al
|
||||
inc eax
|
||||
; daa
|
||||
jmp timeupdn
|
||||
notimeup:
|
||||
cmp ah,6
|
||||
jne noshow
|
||||
mov eax,5
|
||||
mov ebx,150
|
||||
mov ebx,10;150
|
||||
mcall
|
||||
call create_ss
|
||||
jmp sstill
|
||||
noshow:
|
||||
jmp sstill
|
||||
|
||||
@ -397,7 +352,7 @@ sdraw_window:
|
||||
mov edi,title
|
||||
mcall
|
||||
|
||||
mov eax,8
|
||||
mov al,8
|
||||
mov ebx,47*65536+10
|
||||
mov ecx,31*65536+10
|
||||
mov edx,2
|
||||
@ -420,19 +375,16 @@ sdraw_window:
|
||||
inc edx
|
||||
mcall
|
||||
|
||||
mov eax,4 ; function 4 : write text to window
|
||||
mov al,4 ; function 4 : write text to window
|
||||
mov ebx,15*65536+33 ; [x start] *65536 + [y start]
|
||||
mov ecx,0xffffff
|
||||
mov ecx,0x80ffffff
|
||||
mov edx,setuptext
|
||||
mov esi,9
|
||||
mcall
|
||||
add ebx,15
|
||||
add edx,esi
|
||||
mov esi,30
|
||||
add edx,10
|
||||
mcall
|
||||
mov ebx,169*65536+32
|
||||
mov edx,buttext
|
||||
mov esi,4
|
||||
mcall
|
||||
|
||||
call drawtype
|
||||
@ -450,12 +402,12 @@ drawtype:
|
||||
mov ebx,80*65536+75
|
||||
mov ecx,30*65536+12
|
||||
mov edx,0xffffff
|
||||
bt dword [params],0
|
||||
jnc noblue
|
||||
test [params], 1
|
||||
jz noblue
|
||||
mov edx,0x4e00e7
|
||||
noblue:
|
||||
mcall
|
||||
mov eax,4
|
||||
mov al,4
|
||||
mov ebx,82*65536+32
|
||||
xor ecx,ecx
|
||||
mov edx,typetext
|
||||
@ -469,12 +421,12 @@ drawtime:
|
||||
mov ebx,80*65536+15
|
||||
mov ecx,45*65536+12
|
||||
mov edx,0xffffff
|
||||
bt dword [params],0
|
||||
jnc noblue1
|
||||
test [params], 1
|
||||
jz noblue1
|
||||
mov edx,0x4e00e7
|
||||
noblue1:
|
||||
mcall
|
||||
mov eax,47
|
||||
mov al,47
|
||||
mov edx,82*65536+47
|
||||
xor esi,esi
|
||||
movzx ecx,byte [time]
|
||||
@ -489,7 +441,7 @@ drawflag:
|
||||
mov edx,7
|
||||
mov esi,0xe0e0e0
|
||||
mcall
|
||||
mov eax,4
|
||||
mov al,4
|
||||
mov ebx,153*65536+47
|
||||
xor ecx,ecx
|
||||
mov esi,1
|
||||
@ -502,10 +454,11 @@ drawflag:
|
||||
ret
|
||||
|
||||
; DATA AREA
|
||||
buttext db 'SHOW'
|
||||
buttext db 'SHOW',0
|
||||
flag db 'V '
|
||||
title db 'SCREENSAVER SETUP',0
|
||||
setuptext db 'TYPE: < >TIME: < > MINUTES NEVER'
|
||||
setuptext db 'TYPE: < >',0
|
||||
db 'TIME: < > MINUTES NEVER',0
|
||||
typetext db 'BLACK SCREENCOLOR LINES ASSEMBLER '
|
||||
type dd 12
|
||||
time db 15 ; ¢à¥¬ï ¤® § ¯ã᪠§ áâ ¢ª¨ ¢ ¬¨ãâ å
|
||||
@ -527,11 +480,12 @@ stringlen dd 1
|
||||
stringstart dd 0
|
||||
stringpos dw 10
|
||||
|
||||
params dd 0 ;if bit 0 set-ssaver works if bit 1 set-setup works
|
||||
params db 0 ;if bit 0 set-ssaver works if bit 1 set-setup works
|
||||
|
||||
fileinfo:
|
||||
dd 0,0,21,data_from_file,work_area
|
||||
db '/RD/1/SS.ASM',0
|
||||
; used_memory-0x3000-data_from_file = ~50 Kb with current settings
|
||||
dd 0,0,0,used_memory-0x3000-data_from_file,data_from_file
|
||||
db '/RD/1/NETWORK/PPP.ASM',0
|
||||
|
||||
I_END:
|
||||
|
||||
@ -539,11 +493,9 @@ I_END:
|
||||
; UNINITIALIZED DATA:
|
||||
|
||||
lcolor dd ?
|
||||
evtime dd ? ; ¢à¥¬ï ¯à¥¤ë¤ã饣® ᮡëâ¨ï
|
||||
x_max dw ? ; à §¬¥àë íªà
|
||||
y_max dw ?
|
||||
|
||||
top_right_corner dd ?
|
||||
work_area:
|
||||
rb 0x10000
|
||||
filesize dd ?
|
||||
data_from_file:
|
Loading…
Reference in New Issue
Block a user