[27.01.2006] !Supported MeOS functions: !67 - window move & resize (resize worked incorrectly) +Supported x86 instructions: ++ - no time to enumerate, added MMX instructions (by Madis Kalme) [04.05.2005] +Supported MeOS functions: +39 - get background info [27.04.2005] +Supported x86 instructions: !83h - add/or/adc/sbb/and/sub/xor/cmp r/m16,imm8 [25.03.2005] !EFLAGS (AF is 4th bit, was 3rd) [24.03.2005] !Memory initialization [02.03.2005] !FINALLY GOT THREADS TO WORK PROPERLY!!! !Some fixes to UI !Fixed & improved memory protection (push/pop r32) !Fix to file name/path decoding (func 6,58) [23.02.2005] !Fixed skin drawing (width of left.bmp & oper.bmp) [23.02.2005] !EFLAGS +WIN/DOS CP filenames conversion +Supported MeOS functions: +0 - bit 24 in esi (disable move) +8 - bit 29 in edx (disable NOT-rectangle) +50 - free-form windows (shape & scale) !58 - file system (subf 0) [18.02.2005] !Titlebar draw fixup (title height with styles 0/2) [17.02.2005] !Fixed Russian keyboard layout +Basic memory protection (e.g. mov [-1],eax) *Still problems with threads support +Supported MeOS functions: !58 - file system (subf 0) [23.01.2005] !Bug in keyboard handling (double-backspace, thanks to Ivan Poddubny) +Supported x86 instructions: +0Fh:6Eh - movd mm,r/m32 +0Fh:6Fh - movq mm,mm/m64 +0Fh:72h - psrld/psrad/pslld mm,imm8 +0Fh:73h - psrlq/psllq mm,imm8 +0Fh:7Eh - movd r/m32,mm +0Fh:7Fh - movq mm/m64,mm +0Fh:A2h - cpuid +0Fh:FAh - psubd mm,mm/m64 +0Fh:FEh - paddd mm,mm/m64 [13.11.2004] +Window resizing with mouse +Supported MeOS functions: +67 - window move & resize [13.09.2004] +Supported MeOS functions: !7 - put image (alignament) !9 - process info (window width & height) [11.09.2004] !Bug in m16 address calculation [09.09.2004] +Supported x86 instructions: +0Fh:BCh - bsf r32,r/m32 & r16,r/m16 +0Fh:BCh - bsr r32,r/m32 & r16,r/m16 [06.09.2004] +Supported MeOS functions: +58 - file system (subf 16) [05.09.2004] +Supported MeOS functions: +58 - file system (subf 1) [03.09.2004] !Fixed long-life bugs (since 19.07.2004) +Supported MeOS functions: !8 - fixed bug (moving bricks in 15 game) [16.08.2004] +Supported x86 instructions: !F6h - not r/m8 [28.07.2004] +Supported x87 instructions: !DAh:00h..BFh - fild/fisttp/fist/fistp m32int & fld/fstp m80 [22.07.2004] +Supported MeOS functions: !64 - memory resize [20.07.2004] +Supported MeOS functions: +58 - file system (subf 0) *directory reading* [15.07.2004] !Bug in all MeOS functions emulation +Supported x86 instructions: F0h - lock prefix 0Fh:C0h - xadd r/m8,r8 0Fh:C1h - xadd r/m32,r32 & r/m16,r16 [04.07.2004] +Supported MeOS functions: 51 - create thread (very buggy, test with extreme care) [01.07.2004] +RAM parameter in INI file +Supported MeOS functions: 29 - get system date +Supported x86 instructions: 3Eh - ds prefix !C2h - retn imm16 !C3h - retn !E8h - call rel32 !FFh - calln r/m32 [30.06.2004] !Many bugs fixed again +CButton parameter in INI file +Supported x86 instructions: !0Fh:B6h - movzx r32,r/m8 !0Fh:BEh - movsx r32,r/m8 26h - es prefix !70h..7Fh - jcc rel8 8Eh - mov Sreg,r/m16 !A4h - movsb !A5h - movsd & movsw !A6h - cmpsb !A7h - cmpsd & cmpsw !AAh - stosb !ABh - stosd & stosw !ACh - lodsb !ADh - lodsd & lodsw !AEh - scasb !AFh - scasd & scasw [29.06.2004] +All x87 (D8h..DFh) instructions supported +Supported MeOS functions: 4 - draw text (char2.mt) +Supported x86 instructions: 06h - push es 07h - pop es 0Eh - push cs 16h - push ss 17h - pop ss 1Eh - push ds 1Fh - pop ds 9Eh - sahf 9Fh - lahf [27.06.2004] +Speed improvements +Supported x86 instructions: 0Fh:A3h - bt r/m32,r32 & r/m16,r16 0Fh:A4h - shld r/m32,r32,imm8 & r/m16,r16,imm8 0Fh:A5h - shld r/m32,r32,cl & r/m16,r16,cl 0Fh:ABh - bts r/m32,r32 & r/m16,r16 0Fh:ACh - shrd r/m32,r32,imm8 & r/m16,r16,imm8 0Fh:ADh - shrd r/m32,r32,cl & r/m16,r16,cl 0Fh:B3h - btr r/m32,r32 & r/m16,r16 0Fh:BBh - btc r/m32,r32 & r/m16,r16 +Supported x87 instructions: 9Bh - fwait DBh:00h..BFh - fild/fisttp/fist/fistp m32int & fld/fstp m80 DBh:C0h..FFh - fcmovnb/fcmovne/fcmovnbe/fcmivnu/fucomi/fcomi st0,stN & fnclex & fninit [24.06.2004] +Supported MeOS functions: 58 - file system (subf 0) *without directory reading* 63 - debug board +Supported x86 instructions: 8Ch - mov r/m16,Sreg [23.06.2004] +Stub for functions 19,20,21,31,32,33,34,50,51,55,56,57,59,60 +Supported MeOS functions: 5 - delay ebx/100 sec 64 - memory resize [22.06.2004] !Flags +Stub for functions 15,63 +Supported MeOS functions: !3 - get system time +Supported x86 instructions: CCh - int3 E0h - loopnz rel8 E1h - loopz rel8 [19.06.2004] +Supported x86 instructions: 0Fh:31h - rdtsc [18.06.2004] +Supported MeOS functions: 16 - devices properties (subf 5&9) [16.06.2004] +Supported MeOS functions: 6 - read file from floppy +Supported x86 instructions: D7h - xlatb [15.06.2004] !Many bugs fixed but still getting some troubles +Supported x86 instructions: 0Fh:C8h..CFh - bswap r/m32 69h - imul r32,r/m32,imm32 & r16,r/m16,imm16 C2h - retn imm16 !FFh - calln r/m32 [13.06.2004] !Bug in all instructions using r/m8 +Supported MeOS functions: 2 - get pressed key +Supported x86 instructions: 0Fh:BAh - bt/bts/btr/btc r/m32,imm8 C8h - enter imm16,imm8 C9h - leave 9Ch - pushfd 9Dh - popfd !ABh - stosd & stosw !F6h - test r/m8,imm8 !F7h - test r/m32,imm32 & test r/m16,imm16 !FFh - push r/m32 & r/m16 [11.06.2004] +Supported x86 instructions: 0Fh:80h..8Fh - jcc rel32 & rel16 0Fh:AFh - imul r32,r/m32 & r16,r/m16 0Fh:B6h - movzx r32,r/m8 0Fh:B7h - movzx r32,r/m16 0Fh:BEh - movsx r32,r/m8 0Fh:BFh - movsx r32,r/m16 6Bh - imul r32,r/m32,imm8 & r16,r/m16,imm8 8Dh - lea r32,m & r16,m E3h - jecxz rel8 & jcxz rel8 [10.06.2004] +Supported MeOS functions: 3 - get system time 7 - put image +Supported x86 instructions: 02h - add r8,r/m8 0Ah - or r8,r/m8 12h - adc r8,r/m8 1Ah - sbb r8,r/m8 22h - and r8,r/m8 2Ah - sub r8,r/m8 32h - xor r8,r/m8 3Ah - cmp r8,r/m8 8Fh - pop r/m32 & r/m16 [09.06.2004] +Supported MeOS functions: 18 - system service (subf 5) +Supported x86 instructions: 08h - or r/m8,r8 10h - adc r/m8,r8 18h - sbb r/m8,r8 20h - and r/m8,r8 28h - sub r/m8,r8 30h - xor r/m8,r8 38h - cmp r/m8,r8 90h - xchg eax,eax (nop) 84h - test r/m8,r8 85h - test r/m32,r32 & r/m16,r16 84h - xchg r/m8,r8 85h - xchg r/m32,r32 & r/m16,r16 A4h - movsb A5h - movsd & movsw A6h - cmpsb A7h - cmpsd & cmpsw A8h - test al,imm8 A9h - test eax,imm32 & ax,imm16 AAh - stosb ABh - stosd & stosw ACh - lodsb ADh - lodsd & lodsw AEh - scasb AFh - scasd & scasw F2h - repne (repnz) F3h - repe (rep,repz) [07.06.2004] +Supported MeOS functions: 40 - set event mask +Supported x86 instructions: 00h - add r/m8,r8 98h - cbw & cwde 99h - cdq & cwd !A0h - mov al,moffs8 !A1h - mov eax,moffs32 & ax,moffs16 !A2h - mov moffs8,al !A3h - mov moffs32,eax & moffs16,ax C0h - rol/ror/rcl/rcr/shl/shr/sal/sar r/m8,imm8 D0h - rol/ror/rcl/rcr/shl/shr/sal/sar r/m8,1 D1h - rol/ror/rcl/rcr/shl/shr/sal/sar r/m32,1 & r/m16,1 D2h - rol/ror/rcl/rcr/shl/shr/sal/sar r/m8,cl D3h - rol/ror/rcl/rcr/shl/shr/sal/sar r/m32,1 & r/m16,cl E2h - loop rel8 [06.06.2004] +INI file for options +System colors !Style 2 for {0} (wrong frame colors) +Supported MeOS functions: *1 - negative half-byte indicator (mistake in sysfuncs.txt?) 48 - get/set window properties +Supported x86 instructions: 68h - push imm32 & imm16 6Ah - push imm8 C6h - mov r/m8,imm8 C7h - mov r/m32,imm32 & r/m16,imm16 F6h - not/neg/mul/imul/div/idiv r/m8 !F7h - mul/imul/div/idiv r/m32 & r/m16 F8h - clc F9h - stc FAh - cli FBh - sti FCh - cld FDh - std [05.06.2004] +Supported MeOS functions: 23 - wait for event with timeout +Supported x86 instructions: 04h - add al,imm8 05h - add eax,imm32 & ax,imm16 0Ch - or al,imm8 0Dh - or eax,imm32 & ax,imm16 14h - adc al,imm8 15h - adc eax,imm32 & ax,imm16 1Ch - sbb al,imm8 1Dh - sbb eax,imm32 & ax,imm16 24h - and al,imm8 25h - and eax,imm32 & ax,imm16 2Ch - sub al,imm8 2Dh - sub eax,imm32 & ax,imm16 34h - xor al,imm8 35h - xor eax,imm32 & ax,imm16 3Ch - cmp al,imm8 3Dh - cmp eax,imm32 & ax,imm16 !50h..57h - push r32 & r16 !58h..5Fh - pop r32 & r16 88h - mov r/m8,r8 8Ah - mov r8,r/m8 A0h - mov al,moffs8 A1h - mov eax,moffs32 & ax,moffs16 A2h - mov moffs8,al A3h - mov moffs32,eax & moffs16,ax !C1h - rol/ror/rcl/rcr/shl/shr/sal/sar r/m32,imm8 & r/m16,imm8 F7h - not/neg r/m32 & r/m16 [03.06.2004] +Styles 0 & 1 for {0} (eah, it's transparent!) +Old headers ('MENUET00') support +Supported MeOS functions: 47 - draw number +Supported x86 instructions: 01h - add r/m32,r32 & r/m16,r16 03h - add r32,r/m32 & r16,r/m16 09h - or r/m32,r32 & r/m16,r16 0Bh - or r32,r/m32 & r16,r/m16 11h - adc r/m32,r32 & r/m16,r16 13h - adc r32,r/m32 & r16,r/m16 19h - sbb r/m32,r32 & r/m16,r16 1Bh - sbb r32,r/m32 & r16,r/m16 21h - and r/m32,r32 & r/m16,r16 23h - and r32,r/m32 & r16,r/m16 29h - sub r/m32,r32 & r/m16,r16 2Bh - sub r32,r/m32 & r16,r/m16 31h - xor r/m32,r32 & r/m16,r16 33h - xor r32,r/m32 & r16,r/m16 39h - cmp r/m32,r32 & r/m16,r16 3Bh - cmp r32,r/m32 & r16,r/m16 40h..47h - inc r32 & r/m16,r16 48h..4Fh - dec r32 & r16,r/m16 50h..57h - push r32 58h..5Fh - pop r32 !80h - add/or/adc/sbb/and/sub/xor/cmp r/m8,imm8 81h - add/or/adc/sbb/and/sub/xor/cmp r/m32,imm32 !83h - add/or/adc/sbb/and/sub/xor/cmp r/m32,imm8 89h - mov r/m32,r32 & r/m16,r16 !8Bh - mov r32,r/m32 & r16,r/m16 B0h..B7h - mov r/m8,imm8 !B8h..BFh - mov r32,imm32 & r16,imm16 FEh - inc/dec r/m8 FFh - inc/dec r/m32 [02.06.2004] +Drawing outside {12} +Supported MeOS functions: !8 - gradient buttons !10 - draw bar w|w/o gradient 14 - get screen dimensions 35 - get pixel 37 - get mouse info [01.06.2004] !Jcc instructions [70h-7Fh] +Supported MeOS functions: 1 - put pixel 11 - check for event immediately +Supported x86 instructions: !8Bh - mov r32,r/m32 [29.05.2004] +MeOS app filename as command line parameter (w|w/o quotes) +Style 2 for {0} (normal & inverted) +Supported MeOS functions: 8 - define/delete button [28.05.2004] +Supported MeOS functions: 4 - draw text (char.mt) 17 - get pressed button ID [27.05.2004] First FASM version available. +Supported MeOS functions: -1 - close application 0 - define and draw window (style 3 only) 10 - wait for event 12 - begin/end draw 13 - draw bar 38 - draw line +Supported x86 instructions: 3Ch - cmp al,imm8 60h - pushad 61h - popad 70h..7Fh - jcc rel8 80h - cmp r8,imm8 83h - add/or/adc/sbb/and/sub/xor/cmp eax,imm8 (without flags) 8Bh - mov r32,r32 B8h..BFh - mov r32,imm32 C1h - shl/shr r32,imm8 C3h - retn CDh - int imm8 (only 0x40) E8h - call rel32 E9h - jmp rel32 EBh - jmp rel8