The Quake III Arena sources as originally released under the GPL license on August 20, 2005.
This commit is contained in:
commit
dbe4ddb103
1409 changed files with 806066 additions and 0 deletions
451
lcc/x86/win32/tst/wf1.sbk
Normal file
451
lcc/x86/win32/tst/wf1.sbk
Normal file
|
@ -0,0 +1,451 @@
|
|||
.486
|
||||
.model flat
|
||||
extrn __fltused:near
|
||||
extrn __ftol:near
|
||||
public _main
|
||||
_TEXT segment
|
||||
_main:
|
||||
push ebx
|
||||
push esi
|
||||
push edi
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
sub esp,24
|
||||
mov dword ptr (-24)[ebp],0
|
||||
mov dword ptr (_next),0
|
||||
jmp L3
|
||||
L2:
|
||||
lea edi,(-24)[ebp]
|
||||
push edi
|
||||
lea edi,(-20)[ebp]
|
||||
push edi
|
||||
call _lookup
|
||||
add esp,8
|
||||
inc dword ptr [eax]
|
||||
L3:
|
||||
lea edi,(-20)[ebp]
|
||||
push edi
|
||||
call _getword
|
||||
add esp,4
|
||||
cmp eax,0
|
||||
jne L2
|
||||
mov edi,dword ptr (-24)[ebp]
|
||||
push edi
|
||||
call _tprint
|
||||
add esp,4
|
||||
mov eax,0
|
||||
L1:
|
||||
mov esp,ebp
|
||||
pop ebp
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
ret
|
||||
public _err
|
||||
_err:
|
||||
push ebx
|
||||
push esi
|
||||
push edi
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
push edi
|
||||
lea edi,(L6)
|
||||
push edi
|
||||
call _printf
|
||||
add esp,8
|
||||
push 1
|
||||
call _exit
|
||||
add esp,4
|
||||
mov eax,0
|
||||
L5:
|
||||
mov esp,ebp
|
||||
pop ebp
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
ret
|
||||
public _getword
|
||||
_getword:
|
||||
push ebx
|
||||
push esi
|
||||
push edi
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
sub esp,8
|
||||
L8:
|
||||
L9:
|
||||
call _getchar
|
||||
add esp,0
|
||||
mov dword ptr (-4)[ebp],eax
|
||||
cmp eax,-1
|
||||
je L11
|
||||
mov edi,dword ptr (-4)[ebp]
|
||||
push edi
|
||||
call _isletter
|
||||
add esp,4
|
||||
cmp eax,0
|
||||
je L8
|
||||
L11:
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
mov dword ptr (-8)[ebp],edi
|
||||
jmp L15
|
||||
L12:
|
||||
mov edi,dword ptr (-8)[ebp]
|
||||
lea esi,(1)[edi]
|
||||
mov dword ptr (-8)[ebp],esi
|
||||
mov esi,dword ptr (-4)[ebp]
|
||||
mov ebx,esi
|
||||
mov byte ptr [edi],bl
|
||||
L13:
|
||||
call _getchar
|
||||
add esp,0
|
||||
mov dword ptr (-4)[ebp],eax
|
||||
L15:
|
||||
mov edi,dword ptr (-4)[ebp]
|
||||
push edi
|
||||
call _isletter
|
||||
add esp,4
|
||||
mov dword ptr (-4)[ebp],eax
|
||||
cmp eax,0
|
||||
jne L12
|
||||
mov edi,dword ptr (-8)[ebp]
|
||||
mov byte ptr [edi],0
|
||||
mov edi,dword ptr (-8)[ebp]
|
||||
mov esi,dword ptr (20)[ebp]
|
||||
cmp edi,esi
|
||||
jbe L16
|
||||
mov eax,1
|
||||
jmp L7
|
||||
L16:
|
||||
mov eax,0
|
||||
L7:
|
||||
mov esp,ebp
|
||||
pop ebp
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
ret
|
||||
public _isletter
|
||||
_isletter:
|
||||
push ebx
|
||||
push esi
|
||||
push edi
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
cmp edi,65
|
||||
jl L19
|
||||
cmp edi,90
|
||||
jg L19
|
||||
add dword ptr (20)[ebp],32
|
||||
L19:
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
cmp edi,97
|
||||
jl L21
|
||||
cmp edi,122
|
||||
jg L21
|
||||
mov eax,dword ptr (20)[ebp]
|
||||
jmp L18
|
||||
L21:
|
||||
mov eax,0
|
||||
L18:
|
||||
mov esp,ebp
|
||||
pop ebp
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
ret
|
||||
public _lookup
|
||||
_lookup:
|
||||
push ebx
|
||||
push esi
|
||||
push edi
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
sub esp,4
|
||||
mov edi,dword ptr (24)[ebp]
|
||||
mov edi,dword ptr [edi]
|
||||
cmp edi,0
|
||||
je L24
|
||||
mov edi,dword ptr (24)[ebp]
|
||||
mov edi,dword ptr [edi]
|
||||
mov edi,dword ptr (12)[edi]
|
||||
push edi
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
push edi
|
||||
call _strcmp
|
||||
add esp,8
|
||||
mov dword ptr (-4)[ebp],eax
|
||||
cmp dword ptr (-4)[ebp],0
|
||||
jge L26
|
||||
mov edi,dword ptr (24)[ebp]
|
||||
mov edi,dword ptr [edi]
|
||||
lea edi,(4)[edi]
|
||||
push edi
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
push edi
|
||||
call _lookup
|
||||
add esp,8
|
||||
mov edi,eax
|
||||
jmp L23
|
||||
L26:
|
||||
cmp dword ptr (-4)[ebp],0
|
||||
jle L28
|
||||
mov edi,dword ptr (24)[ebp]
|
||||
mov edi,dword ptr [edi]
|
||||
lea edi,(8)[edi]
|
||||
push edi
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
push edi
|
||||
call _lookup
|
||||
add esp,8
|
||||
mov edi,eax
|
||||
jmp L23
|
||||
L28:
|
||||
mov edi,dword ptr (24)[ebp]
|
||||
mov eax,dword ptr [edi]
|
||||
jmp L23
|
||||
L24:
|
||||
cmp dword ptr (_next),2000
|
||||
jl L30
|
||||
lea edi,(L32)
|
||||
push edi
|
||||
call _err
|
||||
add esp,4
|
||||
L30:
|
||||
mov edi,dword ptr (_next)
|
||||
sal edi,4
|
||||
mov dword ptr (_words)[edi],0
|
||||
mov edi,dword ptr (_next)
|
||||
sal edi,4
|
||||
mov dword ptr (_words+8)[edi],0
|
||||
mov dword ptr (_words+4)[edi],0
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
push edi
|
||||
call _strlen
|
||||
add esp,4
|
||||
lea edi,(1)[eax]
|
||||
push edi
|
||||
call _malloc
|
||||
add esp,4
|
||||
mov esi,dword ptr (_next)
|
||||
sal esi,4
|
||||
mov dword ptr (_words+12)[esi],eax
|
||||
mov edi,dword ptr (_next)
|
||||
sal edi,4
|
||||
mov edi,dword ptr (_words+12)[edi]
|
||||
cmp edi,0
|
||||
jne L36
|
||||
lea edi,(L39)
|
||||
push edi
|
||||
call _err
|
||||
add esp,4
|
||||
L36:
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
push edi
|
||||
mov edi,dword ptr (_next)
|
||||
sal edi,4
|
||||
mov edi,dword ptr (_words+12)[edi]
|
||||
push edi
|
||||
call _strcpy
|
||||
add esp,8
|
||||
mov edi,dword ptr (_next)
|
||||
lea esi,(1)[edi]
|
||||
mov dword ptr (_next),esi
|
||||
sal edi,4
|
||||
lea edi,(_words)[edi]
|
||||
mov esi,dword ptr (24)[ebp]
|
||||
mov dword ptr [esi],edi
|
||||
mov eax,edi
|
||||
L23:
|
||||
mov esp,ebp
|
||||
pop ebp
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
ret
|
||||
public _tprint
|
||||
_tprint:
|
||||
push ebx
|
||||
push esi
|
||||
push edi
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
cmp edi,0
|
||||
je L42
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
mov edi,dword ptr (4)[edi]
|
||||
push edi
|
||||
call _tprint
|
||||
add esp,4
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
mov esi,dword ptr (12)[edi]
|
||||
push esi
|
||||
mov edi,dword ptr [edi]
|
||||
push edi
|
||||
lea edi,(L44)
|
||||
push edi
|
||||
call _printf
|
||||
add esp,12
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
mov edi,dword ptr (8)[edi]
|
||||
push edi
|
||||
call _tprint
|
||||
add esp,4
|
||||
L42:
|
||||
mov eax,0
|
||||
L41:
|
||||
mov esp,ebp
|
||||
pop ebp
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
ret
|
||||
public _strcmp
|
||||
_strcmp:
|
||||
push ebx
|
||||
push esi
|
||||
push edi
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
jmp L47
|
||||
L46:
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
lea esi,(1)[edi]
|
||||
mov dword ptr (20)[ebp],esi
|
||||
movsx edi,byte ptr [edi]
|
||||
cmp edi,0
|
||||
jne L49
|
||||
mov eax,0
|
||||
jmp L45
|
||||
L49:
|
||||
inc dword ptr (24)[ebp]
|
||||
L47:
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
movsx edi,byte ptr [edi]
|
||||
mov esi,dword ptr (24)[ebp]
|
||||
movsx esi,byte ptr [esi]
|
||||
cmp edi,esi
|
||||
je L46
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
movsx edi,byte ptr [edi]
|
||||
cmp edi,0
|
||||
jne L51
|
||||
mov eax,-1
|
||||
jmp L45
|
||||
L51:
|
||||
mov edi,dword ptr (24)[ebp]
|
||||
movsx edi,byte ptr [edi]
|
||||
cmp edi,0
|
||||
jne L53
|
||||
mov eax,1
|
||||
jmp L45
|
||||
L53:
|
||||
mov edi,dword ptr (20)[ebp]
|
||||
movsx edi,byte ptr [edi]
|
||||
mov esi,dword ptr (24)[ebp]
|
||||
movsx esi,byte ptr [esi]
|
||||
mov eax,edi
|
||||
sub eax,esi
|
||||
L45:
|
||||
mov esp,ebp
|
||||
pop ebp
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
ret
|
||||
_TEXT ends
|
||||
extrn _strcpy:near
|
||||
_TEXT segment
|
||||
_TEXT ends
|
||||
extrn _strlen:near
|
||||
_TEXT segment
|
||||
_TEXT ends
|
||||
extrn _malloc:near
|
||||
_TEXT segment
|
||||
_TEXT ends
|
||||
extrn _getchar:near
|
||||
_TEXT segment
|
||||
_TEXT ends
|
||||
extrn _exit:near
|
||||
_TEXT segment
|
||||
_TEXT ends
|
||||
extrn _printf:near
|
||||
_TEXT segment
|
||||
_TEXT ends
|
||||
_DATA segment
|
||||
public _next
|
||||
align 4
|
||||
_next label byte
|
||||
db 4 dup (0)
|
||||
public _words
|
||||
align 4
|
||||
_words label byte
|
||||
db 32000 dup (0)
|
||||
_DATA ends
|
||||
_TEXT segment
|
||||
align 1
|
||||
L44 label byte
|
||||
db 37
|
||||
db 100
|
||||
db 9
|
||||
db 37
|
||||
db 115
|
||||
db 10
|
||||
db 0
|
||||
align 1
|
||||
L39 label byte
|
||||
db 111
|
||||
db 117
|
||||
db 116
|
||||
db 32
|
||||
db 111
|
||||
db 102
|
||||
db 32
|
||||
db 119
|
||||
db 111
|
||||
db 114
|
||||
db 100
|
||||
db 32
|
||||
db 115
|
||||
db 116
|
||||
db 111
|
||||
db 114
|
||||
db 97
|
||||
db 103
|
||||
db 101
|
||||
db 0
|
||||
align 1
|
||||
L32 label byte
|
||||
db 111
|
||||
db 117
|
||||
db 116
|
||||
db 32
|
||||
db 111
|
||||
db 102
|
||||
db 32
|
||||
db 110
|
||||
db 111
|
||||
db 100
|
||||
db 101
|
||||
db 32
|
||||
db 115
|
||||
db 116
|
||||
db 111
|
||||
db 114
|
||||
db 97
|
||||
db 103
|
||||
db 101
|
||||
db 0
|
||||
align 1
|
||||
L6 label byte
|
||||
db 63
|
||||
db 32
|
||||
db 37
|
||||
db 115
|
||||
db 10
|
||||
db 0
|
||||
_TEXT ends
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue