From 952c5c128f9efaea89d41d882c4ea3ade7df4591 Mon Sep 17 00:00:00 2001 From: zakk Date: Fri, 26 Aug 2005 04:48:05 +0000 Subject: Itsa me, quake3io! git-svn-id: svn://svn.icculus.org/quake3/trunk@2 edf5b092-35ff-0310-97b2-ce42778d08ea --- lcc/x86/win32/tst/struct.sbk | 453 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 453 insertions(+) create mode 100755 lcc/x86/win32/tst/struct.sbk (limited to 'lcc/x86/win32/tst/struct.sbk') diff --git a/lcc/x86/win32/tst/struct.sbk b/lcc/x86/win32/tst/struct.sbk new file mode 100755 index 0000000..09775a9 --- /dev/null +++ b/lcc/x86/win32/tst/struct.sbk @@ -0,0 +1,453 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +public _addpoint +_TEXT segment +_addpoint: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (32)[ebp] +add dword ptr (24)[ebp],edi +mov edi,dword ptr (36)[ebp] +add dword ptr (28)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea esi,(24)[ebp] +mov ecx,8 +rep movsb +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _canonrect +_canonrect: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,32 +mov edi,dword ptr (32)[ebp] +cmp dword ptr (24)[ebp],edi +jge L10 +mov edi,dword ptr (24)[ebp] +mov dword ptr (-20)[ebp],edi +jmp L11 +L10: +mov edi,dword ptr (32)[ebp] +mov dword ptr (-20)[ebp],edi +L11: +mov edi,dword ptr (-20)[ebp] +mov dword ptr (-16)[ebp],edi +mov edi,dword ptr (36)[ebp] +cmp dword ptr (28)[ebp],edi +jge L20 +mov edi,dword ptr (28)[ebp] +mov dword ptr (-24)[ebp],edi +jmp L21 +L20: +mov edi,dword ptr (36)[ebp] +mov dword ptr (-24)[ebp],edi +L21: +mov edi,dword ptr (-24)[ebp] +mov dword ptr (-12)[ebp],edi +mov edi,dword ptr (32)[ebp] +cmp dword ptr (24)[ebp],edi +jle L26 +mov edi,dword ptr (24)[ebp] +mov dword ptr (-28)[ebp],edi +jmp L27 +L26: +mov edi,dword ptr (32)[ebp] +mov dword ptr (-28)[ebp],edi +L27: +mov edi,dword ptr (-28)[ebp] +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr (36)[ebp] +cmp dword ptr (28)[ebp],edi +jle L37 +mov edi,dword ptr (28)[ebp] +mov dword ptr (-32)[ebp],edi +jmp L38 +L37: +mov edi,dword ptr (36)[ebp] +mov dword ptr (-32)[ebp],edi +L38: +mov edi,dword ptr (-32)[ebp] +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea esi,(-16)[ebp] +mov ecx,16 +rep movsb +L5: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _makepoint +_makepoint: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +mov edi,dword ptr (24)[ebp] +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr (28)[ebp] +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea esi,(-8)[ebp] +mov ecx,8 +rep movsb +L39: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _makerect +_makerect: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,16 +lea edi,(-16)[ebp] +lea esi,(24)[ebp] +mov ecx,8 +rep movsb +lea edi,(-8)[ebp] +lea esi,(32)[ebp] +mov ecx,8 +rep movsb +lea esi,(-16)[ebp] +sub esp,16 +mov edi,esp +mov ecx,16 +rep movsb +mov edi,dword ptr (20)[ebp] +push edi +call _canonrect +add esp,20 +L42: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _ptinrect +_ptinrect: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov edi,dword ptr (20)[ebp] +cmp edi,dword ptr (28)[ebp] +jl L53 +cmp edi,dword ptr (36)[ebp] +jge L53 +mov edi,dword ptr (32)[ebp] +cmp dword ptr (24)[ebp],edi +jl L53 +mov edi,dword ptr (40)[ebp] +cmp dword ptr (24)[ebp],edi +jge L53 +mov dword ptr (-4)[ebp],1 +jmp L54 +L53: +mov dword ptr (-4)[ebp],0 +L54: +mov eax,dword ptr (-4)[ebp] +L45: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +public _y +align 4 +_y label byte +db 97 +db 98 +db 0 +db 1 dup (0) +public _odd +_DATA ends +_TEXT segment +_odd: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +lea edi,(-4)[ebp] +lea esi,(20)[ebp] +mov ecx,4 +rep movsb +lea edi,(-4)[ebp] +push edi +lea edi,(L56) +push edi +call _printf +add esp,8 +mov eax,0 +L55: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_TEXT segment +align 4 +L58 label byte +dd 0 +dd 0 +align 4 +L59 label byte +dd 320 +dd 320 +align 4 +L60 label byte +dd -1 +dd -1 +dd 1 +dd 1 +dd 20 +dd 300 +dd 500 +dd 400 +public _main +_TEXT ends +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,108 +lea edi,(-68)[ebp] +lea esi,(L58) +mov ecx,8 +rep movsb +lea edi,(-76)[ebp] +lea esi,(L59) +mov ecx,8 +rep movsb +lea edi,(-36)[ebp] +lea esi,(L60) +mov ecx,32 +rep movsb +push -10 +push -10 +lea edi,(-84)[ebp] +push edi +call _makepoint +add esp,12 +lea esi,(-84)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +lea esi,(-76)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +lea edi,(-92)[ebp] +push edi +call _addpoint +add esp,20 +push 10 +push 10 +lea edi,(-100)[ebp] +push edi +call _makepoint +add esp,12 +lea esi,(-100)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +lea esi,(-68)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +lea edi,(-108)[ebp] +push edi +call _addpoint +add esp,20 +lea esi,(-108)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +lea esi,(-92)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +lea edi,(-52)[ebp] +push edi +call _makerect +add esp,20 +mov dword ptr (-4)[ebp],0 +jmp L64 +L61: +mov edi,dword ptr (-4)[ebp] +lea edi,[edi*8] +mov esi,dword ptr (-32)[ebp][edi] +push esi +mov edi,dword ptr (-36)[ebp][edi] +push edi +lea edi,(-60)[ebp] +push edi +call _makepoint +add esp,12 +mov edi,dword ptr (-56)[ebp] +push edi +mov edi,dword ptr (-4)[ebp] +mov edi,dword ptr (-36)[ebp][edi*8] +push edi +lea edi,(L65) +push edi +call _printf +add esp,12 +lea esi,(-52)[ebp] +sub esp,16 +mov edi,esp +mov ecx,16 +rep movsb +lea esi,(-60)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +call _ptinrect +add esp,24 +cmp eax,0 +jne L68 +lea edi,(L70) +push edi +call _printf +add esp,4 +L68: +mov edi,dword ptr (-40)[ebp] +push edi +mov edi,dword ptr (-44)[ebp] +push edi +mov edi,dword ptr (-48)[ebp] +push edi +mov edi,dword ptr (-52)[ebp] +push edi +lea edi,(L71) +push edi +call _printf +add esp,20 +L62: +inc dword ptr (-4)[ebp] +L64: +mov edi,dword ptr (-4)[ebp] +cmp edi,4 +jb L61 +lea esi,(_y) +sub esp,4 +mov edi,esp +mov ecx,4 +rep movsb +call _odd +add esp,4 +push 0 +call _exit +add esp,4 +mov eax,0 +L57: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _exit:near +_TEXT segment +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +_TEXT segment +align 1 +L71 label byte +db 119 +db 105 +db 116 +db 104 +db 105 +db 110 +db 32 +db 91 +db 37 +db 100 +db 44 +db 37 +db 100 +db 59 +db 32 +db 37 +db 100 +db 44 +db 37 +db 100 +db 93 +db 10 +db 0 +align 1 +L70 label byte +db 110 +db 111 +db 116 +db 32 +db 0 +align 1 +L65 label byte +db 40 +db 37 +db 100 +db 44 +db 37 +db 100 +db 41 +db 32 +db 105 +db 115 +db 32 +db 0 +align 1 +L56 label byte +db 37 +db 115 +db 10 +db 0 +_TEXT ends +end -- cgit v1.2.3