flat assembler
Message board for the users of flat assembler.

Index > Tutorials and Examples > floor demo

Goto page 1, 2  Next
Author
Thread Post new topic Reply to topic
avcaballero



Joined: 02 Feb 2004
Posts: 212
Location: Madrid - Spain
avcaballero 13 Apr 2013, 15:55
Hello there, long time I'm not here, but I can't get into this forum where I usually access from. Firstly I guessed that anyone was playing banning ips, but now I think it is ok: less time lost Wink... Well, a floor demo here... Yeah... See you up until two or three months Smile


Description:
Download
Filename: SueloWF04b.zip
Filesize: 2.02 KB
Downloaded: 988 Time(s)


_________________
Siempre aprendiendo
Post 13 Apr 2013, 15:55
View user's profile Send private message Visit poster's website Reply with quote
HaHaAnonymous



Joined: 02 Dec 2012
Posts: 1178
Location: Unknown
HaHaAnonymous 13 Apr 2013, 16:18
[ Post removed by author. ]


Last edited by HaHaAnonymous on 28 Feb 2015, 21:05; edited 1 time in total
Post 13 Apr 2013, 16:18
View user's profile Send private message Reply with quote
DOS386



Joined: 08 Dec 2006
Posts: 1905
DOS386 15 Apr 2013, 13:59
COOL ... but I can't RTFS (or is this the next disassembling challenge?) :-\
Post 15 Apr 2013, 13:59
View user's profile Send private message Reply with quote
baldr



Joined: 19 Mar 2008
Posts: 1651
baldr 15 Apr 2013, 15:30
DOS386,

It's (somewhat cryptic) example how not to use extended headers.

E.g. WinMain() unnecessarily establishes stack frame (it doesn't use neither parameters nor locals) and saves/restores ebx/esi/edi (they're not modified through its execution). It does some other weird stuff, like after GetMessage(): cmp eax, 1 / jb return_wParam_to_caller / jnz call_GetMessage_again. Looks innocent because hWnd, wMsgFilterMin and wMsgFilterMax are all zero, but with filter this may lead to dead loop when GetMessage() returns -1.

WndProc() saves/restores registers too, but they're tampered one call deeper. Some functions it calls indeed modify esi, but one of them apparently went paranoid: it saves not only those registers, but ecx & edx too, to be extra safe. Wink
Post 15 Apr 2013, 15:30
View user's profile Send private message Reply with quote
Walter



Joined: 26 Jan 2013
Posts: 156
Walter 15 Apr 2013, 18:27
Agree with HaHa, DOS386 and baldr!

Just as a starting point.

For those who prefer to assemble their
own source when presented with an EXAMPLE.

Code:
;***************** 
;* CeilFloor.asm * 
;***************** 

format pe gui 4.0 

include 'win32ax.inc' 

XLEN = 640 
YLEN = 400 
ELAPSE = 20 

struct RGBQUAD 
  rgbBlue     db ? 
  rgbGreen    db ? 
  rgbRed      db ? 
  rgbReserved db ? 
ends 

struct BITMAPINFO 
  bmiHeader BITMAPINFOHEADER 
  bmiColors RGBQUAD 
ends 

section '.data' data readable writeable 

strClass db 'CeilFloor', 0 
strTitle db 'Ceil&Floor Demo - (c) abreojosensamblador.net', 0 
strError db 'Bonkers!  I hate it when that happens.', 0 

wc WNDCLASS 0, WindowProc, 0, 0, 0, 0, 0, 0, 0, strClass 
bmi BITMAPINFO <28h, 280h, 0FFFFFE70h, 1, 20h, 0, 0, 0, 0, 0, 0>, <0, 0, 0, 0> 
msg MSG 
ps PAINTSTRUCT 

dwValue1 dd 0 
dwValue2 dd 0 

hDC1 dd ? 
hDC2 dd ? 
hDC3 dd ? 

hBitmap1 dd ? 

hGdiObject1 dd ? 
hGdiObject2 dd ? 
hGdiObject3 dd ? 

ppvBits dd ? 

byValue1 db ? 
byValue2 db ? 
byValue3 db ? 
byValue4 db ? 

TableH db 0x320 dup ? 
Table1 db 0x5a0 dup ? 
Table2 db 0x5a0 dup ? 
Table3 db 0x5a0 dup ? 
Table4 db 0x5a0 dup ? 

section '.code' code readable executable 

start: 
        invoke  GetModuleHandle, NULL 
        mov     [wc.hInstance], eax 
        mov     [wc.lpfnWndProc], WindowProc 
        mov     [wc.lpszClassName], strClass 

        invoke  GetStockObject, NULL 
        mov     [wc.hbrBackground], eax 

        stdcall CFProc0 
        invoke  ExitProcess, 0 


proc CFProc0 uses ebx esi edi 
        invoke  LoadIcon, NULL, IDI_APPLICATION 
        mov     [wc.hIcon], eax 

        invoke  LoadCursor, NULL, IDC_ARROW 
        mov     [wc.hCursor], eax 

        invoke  RegisterClass, wc 
        test    eax, eax 
        jz      CeilFloorError 

        invoke  CreateWindowEx, 0, strClass, strTitle, WS_VISIBLE or WS_SYSMENU or WS_HREDRAW, \
                                128, 128, 640, 400, 0, 0, [wc.hInstance], 0 
        test    eax, eax 
        jz      CeilFloorError 

CFProc001: 
        invoke  GetMessage, msg, NULL, 0, 0 
        cmp     eax, 1 
        jb      CeilFloorRet 
        jnz     CFProc001 

        invoke  TranslateMessage, msg 
        invoke  DispatchMessage, msg 

        jmp     CFProc001 

CeilFloorError: 
        invoke  MessageBox, NULL, strError, strTitle, MB_ICONHAND 

CeilFloorRet: 
        ret 
endp 


proc WindowProc uses ebx esi edi, hWnd, uMsg, wParam, lParam 
        mov     eax, [uMsg] 
        cmp     eax, WM_ERASEBKGND 
        jz      .OnEraseBkgnd 
        cmp     eax, WM_PAINT 
        jz      .OnPaint 
        cmp     eax, WM_DESTROY 
        jz      .OnDestroy 
        cmp     eax, WM_TIMER 
        jz      .OnTimer 
        cmp     eax, WM_CREATE 
        jz      .OnCreate 
        cmp     eax, WM_KEYFIRST 
        jz      .OnKeyFirst 

        invoke  DefWindowProc, [hWnd], [uMsg], [wParam], [lParam] 
        jmp     WindowProcExit 

.OnKeyFirst: 
        cmp     [wParam], VK_ESCAPE 
        jnz     WindowProcRet 
        jmp     .OnDestroy 

.OnCreate: 
        invoke  GetDC, [hWnd] 
        mov     [hDC1], eax 
        invoke  CreateCompatibleDC, [hDC1] 
        mov     [hDC2], eax 

        invoke  CreateDIBSection, [hDC1], bmi, 0, ppvBits, 0, 0 
        mov     [hGdiObject1], eax 

        invoke  SelectObject, [hDC2], [hGdiObject1] 
        mov     [hGdiObject3], eax 

        invoke  CreateCompatibleDC, [hDC1] 
        mov     [hDC3], eax 

        invoke  CreateCompatibleBitmap, [hDC1], XLEN, YLEN 
        mov     [hBitmap1], eax 

        invoke  SelectObject, [hDC3], [hBitmap1] 
        mov     [hGdiObject2], eax 

        stdcall CFProc1 
        stdcall CFProc2 
        stdcall CFProc4, [hWnd] 

        invoke  ReleaseDC,  [hWnd], [hDC1] 
        invoke  SetTimer, [hWnd], 1, ELAPSE, NULL 
        jmp     WindowProcRet 

.OnTimer: 
        invoke  InvalidateRect, [hWnd], NULL, FALSE 
        jmp     WindowProcRet 

.OnEraseBkgnd: 
        mov     eax, 1 
        jmp     WindowProcRet 

.OnPaint: 
        invoke  BeginPaint, [hWnd], ps 
        mov     [hDC1], eax 
        stdcall CFProc3 
        invoke  BitBlt, [hDC3], 0, 0, XLEN, YLEN, [hDC2], 0, 0, SRCCOPY 
        invoke  BitBlt, [hDC1], 0, 0, XLEN, YLEN, [hDC3], 0, 0, SRCCOPY 
        invoke  EndPaint, [hWnd], ps 
        jmp     WindowProcRet 

.OnDestroy: 
        invoke  KillTimer, [hWnd], 1 
        invoke  SelectObject, [hDC3], [hGdiObject2] 
        invoke  DeleteObject, [hBitmap1] 
        invoke  DeleteDC, [hDC3] 
        invoke  SelectObject, [hDC2], [hGdiObject3] 
        invoke  DeleteDC, [hDC2] 
        invoke  DeleteObject, [hGdiObject1] 
        invoke  DestroyWindow, [hWnd] 
        invoke  PostQuitMessage, 0 

WindowProcRet: 
        xor     eax, eax 

WindowProcExit: 
        ret 
endp 


proc CFProc1 
        mov     esi, 0 
        mov     ecx, 20h 

CFProc101: 
        mov     eax, 20h 
        sub     eax, ecx 
        mov     [byValue3 + esi], al 
        mov     [byValue2 + esi], al 
        mov     byte [byValue1 + esi], 28h 
        mov     byte [byValue4 + esi], 0 
        add     esi, 4 
        loop    CFProc101 
        ret 
endp 


proc CFProc2 
  locals 
    dwVar1 dd ? 
  endl 
        mov     esi, TableH 
        mov     [dwVar1], 2710h 
        mov     ecx, 0 
        fild    [dwVar1] 
        fld     st0 

CFProc201: 
        mov     eax, 0CAh 
        sub     eax, ecx 
        add     eax, 2 
        mov     [dwVar1], eax 
        fidiv   [dwVar1] 
        fstp    dword [esi] 
        wait 
        fld     st0 
        add     esi, 4 
        inc     ecx 
        cmp     ecx, 0C8h 
        jnz     CFProc201 
        ffree   st1 
        ffree   st0 
        fldpi 
        push    0B4h 
        fidiv   dword [esp] 
        pop     eax 
        fld     st0 
        mov     ecx, 0 

CFProc202: 
        mov     ebx, ecx 
        shl     ebx, 2 
        push    ecx 
        fimul   dword [esp] 
        pop     eax 
        fsincos 
        fst     dword [ebx + Table1] 
        wait 
        push    140h 
        fidiv   dword [esp] 
        fstp    dword [ebx + Table3] 
        wait 
        fst     dword [ebx + Table2] 
        wait 
        fidiv   dword [esp] 
        fstp    dword [ebx + Table4] 
        wait 
        pop     eax 
        fld     st0 
        inc     ecx 
        cmp     ecx, 168h 
        jnz     CFProc202 
        ffree   st1 
        ffree   st0 
        ret 
endp 


proc CFProc3 
  locals 
    dwVar1  dd ? 
    dwVar2  dd ? 
    dwVar3  dd ? 
    dwVar4 dd ? 
    dwVar5 dd ? 
    dwVar6 dd ? 
    dwVar7 dd ? 
    dwVar8 dd ? 
    dwVar9 dd ? 
  endl 
        mov     eax, 500h 
        mov     [dwVar1], eax 
        mov     eax, 0F9AFCh 
        mov     [dwVar2], eax 
        mov     ecx, 0FFFFFEC0h 

CFProc301: 
        mov     esi, dword [bmi.bmiColors.rgbBlue] 
        shl     esi, 2 
        push    ecx 
        fld     dword [esi + Table4] 
        fimul   dword [esp] 
        fld     dword [esi + Table1] 
        fsub    st0, st1 
        ffree   st1 
        fstp    [dwVar3] 
        wait 
        fld     dword [esi + Table3] 
        fimul   dword [esp] 
        fadd    dword [esi + Table2] 
        fstp    [dwVar4] 
        wait 
        pop     eax 
        mov     esi, ecx 
        shl     esi, 2 
        mov     eax, [dwVar1] 
        add     eax, esi 
        mov     [dwVar5], eax 
        mov     eax, [dwVar2] 
        add     eax, esi 
        mov     [dwVar6], eax 
        mov     [dwVar9], 0FFFFFF9Ch 
        mov     ebx, 0 

CFProc302: 
        mov     edi, ebx 
        shl     edi, 2 
        fld     dword [edi + TableH] 
        fmul    [dwVar3] 
        fiadd   [dwValue1] 
        fistp   [dwVar7] 
        wait 
        and     [dwVar7], 1Fh 
        fld     dword [edi + TableH] 
        fmul    [dwVar4] 
        fiadd   [dwValue2] 
        fistp   [dwVar8] 
        wait 
        mov     edi, [dwVar8] 
        and     edi, 1Fh 
        shl     edi, 5 
        add     edi, [dwVar7] 
        shl     edi, 2 
        mov     eax, [EdiTable + edi] 
        movzx   esi, al 
        sub     esi, [dwVar9] 
        jge     CFProc303 
        xor     esi, esi 

CFProc303: 
        movzx   edx, ah 
        sub     edx, [dwVar9] 
        jge     CFProc304 
        xor     edx, edx 

CFProc304: 
        shl     edx, 8 
        shr     eax, 10h 
        sub     eax, [dwVar9] 
        jge     CFProc305 
        xor     eax, eax 

CFProc305: 
        shl     eax, 10h 
        or      eax, edx 
        or      eax, esi 
        mov     edi, dword [ppvBits] 
        mov     esi, edi 
        add     edi, [dwVar5] 
        add     esi, [dwVar6] 
        mov     [edi], eax 
        mov     [edi+4], eax 
        mov     [esi], eax 
        mov     [esi+4], eax 
        add     [dwVar5], 0A00h 
        sub     [dwVar6], 0A00h 
        inc     [dwVar9] 
        inc     ebx 
        cmp     ebx, 0B4h 
        jnz     CFProc302 
        inc     ecx 
        cmp     ecx, 140h 
        jnz     CFProc301 
        add     [dwValue2], 2 
        add     [dwValue1], 2 
        mov     eax, dword [bmi.bmiColors.rgbBlue] 
        add     eax, 2 
        mov     ebx, 168h 
        xor     edx, edx 
        div     ebx 
        mov     dword [bmi.bmiColors.rgbBlue], edx 
        ret 
endp 


proc CFProc4 uses ebx ecx edx esi edi, hWnd 
  locals 
    dwVar1 dd ? 
    dwVar2 dd ? 
    dwVar3 dd ? 
    X     dd ? 
    Y     dd ? 
  endl 
        invoke  GetSystemMetrics, SM_CYCAPTION 
        mov     [dwVar1], eax 
        invoke  GetSystemMetrics, SM_CXFIXEDFRAME 
        mov     [dwVar3], eax 
        shl     [dwVar3], 1 
        invoke  GetSystemMetrics, SM_CYFIXEDFRAME 
        mov     [dwVar2], eax 
        invoke  GetSystemMetrics, SM_CXSCREEN 
        mov     ecx, XLEN 
        add     ecx, [dwVar3] 
        sub     eax, ecx 
        shr     eax, 1 
        mov     [X], eax 
        invoke  GetSystemMetrics, SM_CYSCREEN 
        mov     ecx, YLEN 
        add     ecx, [dwVar1] 
        add     ecx, [dwVar2] 
        sub     eax, ecx 
        mov     ecx, 3 
        sub     edx, edx 
        div     ecx 
        mov     [Y], eax 
        mov     ebx, XLEN 
        add     ebx, [dwVar3]  ; cx 
        mov     eax, YLEN 
        add     eax, [dwVar1] 
        add     eax, [dwVar2]  ; cy 
        invoke  SetWindowPos, [hWnd], HWND_TOP, [X], [Y], ebx, eax, SWP_NOZORDER 
        ret 
endp 

EdiTable: 

dd 0x0003A3A03, 0x0003F3F20, 0x0003F3F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F3F20
dd 0x0003F3F20, 0x000303F20, 0x000303F20, 0x0003F3F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F3F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00020003F, 0x000303F20, 0x00020003F, 0x00020003F, 0x00020003F, 0x000303F20, 0x000303F20
dd 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x00020003F, 0x00020003F, 0x00020003F, 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00020003F, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20, 0x00020003F
dd 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x00020003F, 0x00020003F
dd 0x00020003F, 0x00020003F, 0x000303F20, 0x00020003F, 0x00020003F, 0x00020003F, 0x000303F20, 0x000303F20
dd 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20, 0x00020003F
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00020003F, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20, 0x00020003F
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00020003F, 0x000303F20, 0x00020003F, 0x00020003F, 0x00020003F, 0x000303F20, 0x000303F20
dd 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20, 0x00020003F
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x00020003F, 0x00020003F, 0x00020003F, 0x000303F20, 0x00020003F, 0x00020003F, 0x00020003F, 0x000303F20
dd 0x00020003F, 0x00020003F, 0x00020003F, 0x00020003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x0003F003F
dd 0x0003F003F, 0x0003F003F, 0x0003F003F, 0x000303F20, 0x0003F003F, 0x0003F003F, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x0003F003F, 0x0003F003F, 0x0003F003F, 0x000303F20, 0x000303F20, 0x0003F003F, 0x0003F003F
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x0003F003F, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x0003F003F, 0x000303F20, 0x000303F20
dd 0x0003F003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x0003F003F
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x0003F003F, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20, 0x0003F003F, 0x000303F20, 0x000303F20
dd 0x0003F003F, 0x0003F003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20
dd 0x0003F003F, 0x000303F20, 0x0003F003F, 0x000303F20, 0x0003F003F, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x0003F003F
dd 0x0003F003F, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x0003F003F, 0x0003F003F, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20
dd 0x0003F003F, 0x000303F20, 0x0003F003F, 0x000303F20, 0x0003F003F, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x0003F003F, 0x0003F003F, 0x0003F003F, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20
dd 0x0003F003F, 0x000303F20, 0x0003F003F, 0x000303F20, 0x0003F003F, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20
dd 0x0003F003F, 0x0003F003F, 0x0003F003F, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20
dd 0x000303F20, 0x0003F003F, 0x000303F20, 0x000303F20, 0x0003F003F, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000200010, 0x000200010, 0x000200010, 0x000303F20, 0x000200010
dd 0x000200010, 0x000200010, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010, 0x000200010, 0x000200010, 0x000303F20, 0x000303F20
dd 0x000200010, 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010
dd 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20
dd 0x000303F20, 0x000200010, 0x000303F20, 0x000200010, 0x000200010, 0x000303F20, 0x000303F20, 0x000200010
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000200010, 0x000200010, 0x000200010, 0x000303F20, 0x000200010
dd 0x000200010, 0x000200010, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010
dd 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20
dd 0x000303F20, 0x000200010, 0x000303F20, 0x000200010, 0x000200010, 0x000303F20, 0x000200010, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010
dd 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20
dd 0x000303F20, 0x000200010, 0x000303F20, 0x000200010, 0x000200010, 0x000303F20, 0x000200010, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010
dd 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20
dd 0x000303F20, 0x000200010, 0x000200010, 0x000303F20, 0x000303F20, 0x000200010, 0x000200010, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000303F20, 0x000200010
dd 0x000200010, 0x000200010, 0x000303F20, 0x000200010, 0x000200010, 0x000200010, 0x000303F20, 0x000200010
dd 0x000200010, 0x000200010, 0x000303F20, 0x000200010, 0x000200010, 0x000200010, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20, 0x000200010, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x00000203F, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F3F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F3F20, 0x000303F20
dd 0x000303F20, 0x0003F3F20, 0x0003F3F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F3F20
dd 0x0003F3F20, 0x0003A3A03, 0x0003F3F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20
dd 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x000303F20, 0x0003F3F20
dd 0x0003A3A03, 0x000000000 

.end start 
    


4/29/2013 - Changed strTitle.


Last edited by Walter on 29 Apr 2013, 16:29; edited 1 time in total
Post 15 Apr 2013, 18:27
View user's profile Send private message Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6115
Location: Poland
MHajduk 15 Apr 2013, 19:19
Good work, Walter, very good. Smile

BTW, I wonder, have you used IDA to disassemble?
Post 15 Apr 2013, 19:19
View user's profile Send private message Visit poster's website Reply with quote
HaHaAnonymous



Joined: 02 Dec 2012
Posts: 1178
Location: Unknown
HaHaAnonymous 15 Apr 2013, 20:05
[ Post removed by author. ]


Last edited by HaHaAnonymous on 28 Feb 2015, 21:04; edited 1 time in total
Post 15 Apr 2013, 20:05
View user's profile Send private message Reply with quote
baldr



Joined: 19 Mar 2008
Posts: 1651
baldr 15 Apr 2013, 20:15
MHajduk,

I do. It's invaluable tool (though costly).

----8<----
Walter,

You're just awesome! I can't handle that code w/o urge to puke. Wink
Post 15 Apr 2013, 20:15
View user's profile Send private message Reply with quote
Walter



Joined: 26 Jan 2013
Posts: 156
Walter 15 Apr 2013, 20:22
@MHajduk

> have you used IDA to disassemble?

Wonder what gave that away?

Unoriginal variable names?
Bad label names?
But yes and yes, that tool is good.

What really should be here are examples
that have the quality of what you write!

That is, orginal code, good variable names
and comments. You can learn much from
example code.

@baldr

Just shows much of what you've pointed out already.

@HaHa

I like your definition of Example.

"It can't be considered an example without source.
Post 15 Apr 2013, 20:22
View user's profile Send private message Reply with quote
baldr



Joined: 19 Mar 2008
Posts: 1651
baldr 15 Apr 2013, 20:32
Walter wrote:
@HaHa

I like your definition of Example.

"It can't be considered an example without source.
Without proper comments it's just a source waiting for compilation. Not an example.
Post 15 Apr 2013, 20:32
View user's profile Send private message Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6115
Location: Poland
MHajduk 15 Apr 2013, 20:36
Walter wrote:
@MHajduk

> have you used IDA to disassemble?

Wonder what gave that away?

Unoriginal variable names?
Bad label names?
But yes and yes, that tool is good.
I made a few (successful) attempts to disassemble some codes posted here, on this forum (one of them was avcaballero's too, but not the presented above), so I got the overall style of the IDA's disassembly listings. Wink

Walter wrote:
What really should be here are examples
that have the quality of what you write!

That is, orginal code, good variable names
and comments. You can learn much from
example code.
Absolutely agree with you at that point. Smile
Post 15 Apr 2013, 20:36
View user's profile Send private message Visit poster's website Reply with quote
baldr



Joined: 19 Mar 2008
Posts: 1651
baldr 15 Apr 2013, 20:50
MHajduk,

RE requires hard teeth and strong butt to sit some time on. Wink
Post 15 Apr 2013, 20:50
View user's profile Send private message Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6115
Location: Poland
MHajduk 15 Apr 2013, 20:51
baldr wrote:
MHajduk,

RE requires hard teeth and strong butt to sit some time on. Wink
Yeah, that's true. Wink
Post 15 Apr 2013, 20:51
View user's profile Send private message Visit poster's website Reply with quote
HaHaAnonymous



Joined: 02 Dec 2012
Posts: 1178
Location: Unknown
HaHaAnonymous 15 Apr 2013, 21:22
[ Post removed by author. ]


Last edited by HaHaAnonymous on 28 Feb 2015, 21:04; edited 1 time in total
Post 15 Apr 2013, 21:22
View user's profile Send private message Reply with quote
avcaballero



Joined: 02 Feb 2004
Posts: 212
Location: Madrid - Spain
avcaballero 21 Apr 2013, 11:48
Walter, good work!, you have entered in the lamers club. I have noticed that you have deleted any copyright notice... I wonder if you know that it is an illegal activity, at least in my country, don't know in yours... Anyway, don't
worry, I will ask nothing of course, after all I was to release it on free, and nothing new under the sky.

Do you create anything or only work on hacking things?

I don't like persons that recover things compulsively, have a glance at them and throw to the bin... neither persons who don't credit... It is a matter of personal culture, I guess.

Well, I'm working on windows demo tutorial and, when finished, uploaded it to my own site as others that I did before; but looking guys as you, removed me the desire to share it.

Don't know what happens with this forum, but lately I can't get into here. In light of recent events, I think that would be best. I think that fasm is one of the best assemblers, other thing is people here...

Have a nice day fellows

PD. Surely I can't answer you because it is hard to me to get into here... Anyway any news from me I take care of take it to another site Wink
Post 21 Apr 2013, 11:48
View user's profile Send private message Visit poster's website Reply with quote
HaHaAnonymous



Joined: 02 Dec 2012
Posts: 1178
Location: Unknown
HaHaAnonymous 21 Apr 2013, 16:03
[ Post removed by author. ]


Last edited by HaHaAnonymous on 28 Feb 2015, 20:58; edited 1 time in total
Post 21 Apr 2013, 16:03
View user's profile Send private message Reply with quote
uart777



Joined: 17 Jan 2012
Posts: 369
uart777 22 Apr 2013, 07:11
avcaballero: Muy bien, Amigo! Smile Tiene el codigo?

Check out comrade's graphics examples: http://comrade.ownz.com/intros.html He's really good. I was inspired by him to create a website and share my code.

Have a good day.

PS: Previews of my latest project: http://sungod777.zxq.net/codeviewp.jpg Improved themes, dynamic font zoom, etc. R.I.P Stale-Lib. Deprecated by the power of Z77.
Post 22 Apr 2013, 07:11
View user's profile Send private message Reply with quote
uart777



Joined: 17 Jan 2012
Posts: 369
uart777 22 Apr 2013, 07:12
Walter:
Quote:
What really should be here are examples that have the quality of what you write!
Yeah, not just a little DOS example that uses the internal PC speaker. Not impressed. Not "original", nothing special. Practice what you preach. What avcaballero presented here is infinitely superior to anything your small mind could ever produce.
Post 22 Apr 2013, 07:12
View user's profile Send private message Reply with quote
HaHaAnonymous



Joined: 02 Dec 2012
Posts: 1178
Location: Unknown
HaHaAnonymous 22 Apr 2013, 15:34
[ Post removed by author. ]


Last edited by HaHaAnonymous on 28 Feb 2015, 20:57; edited 1 time in total
Post 22 Apr 2013, 15:34
View user's profile Send private message Reply with quote
DOS386



Joined: 08 Dec 2006
Posts: 1905
DOS386 28 Apr 2013, 15:05
It worx ... both the binary and the source ... despite they don't match Smile
Post 28 Apr 2013, 15:05
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.