SecondReality/PLZPART/MAIN.ASM
2017-09-24 01:45:36 +02:00

634 lines
No EOL
11 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.386p
ifndef ??version
?debug macro
endm
publicdll macro name
public name
endm
endif
?debug V 300h
?debug S "MAIN.C"
?debug C E9C789EC1A064D41494E2E43
?debug C E94019CA1815473A5C42435C494E434C5544455C535444494F2E48
?debug C E94019CA1815473A5C42435C494E434C5544455C5F444546532E48
?debug C E94019CA1816473A5C42435C494E434C5544455C5F4E46494C452E+
?debug C 48
?debug C E94019CA1815473A5C42435C494E434C5544455C5F4E554C4C2E48
?debug C E94019CA1814473A5C42435C494E434C5544455C4D4154482E48
?debug C E94019CA1815473A5C42435C494E434C5544455C434F4E494F2E48
?debug C E94019CA1813473A5C42435C494E434C5544455C444F532E48
?debug C E93587EB1A102E2E5C545745414B5C545745414B2E48
MAIN_TEXT segment byte public use16 'CODE'
MAIN_TEXT ends
DGROUP group _DATA,_BSS
assume cs:MAIN_TEXT,ds:DGROUP
_DATA segment word public use16 'DATA'
d@ label byte
d@w label word
_DATA ends
_BSS segment word public use16 'BSS'
b@ label byte
b@w label word
_BSS ends
_DATA segment word public use16 'DATA'
_vmem label dword
db 0
db 0
db 0
db 160
?debug C E947A5DC1A08505441552E505245
_ptau label byte
db 0
db 1
db 1
db 1
db 1
db 1
db 2
db 2
db 3
db 3
db 4
db 5
db 6
db 7
db 8
db 9
db 10
db 11
db 12
db 13
db 14
db 16
db 17
db 18
db 20
db 21
db 23
db 24
db 25
db 27
db 28
db 30
db 31
db 33
db 35
db 36
db 38
db 39
db 40
db 42
db 43
db 45
db 46
db 47
db 49
db 50
db 51
db 52
db 53
db 54
db 55
db 56
db 57
db 58
db 59
db 60
db 60
db 61
db 61
db 62
db 62
db 62
db 62
db 62
db 63
db 62
db 62
db 62
db 62
db 62
db 61
db 61
db 60
db 60
db 59
db 58
db 57
db 56
db 55
db 54
db 53
db 52
db 51
db 50
db 49
db 47
db 46
db 45
db 43
db 42
db 40
db 39
db 38
db 36
db 35
db 33
db 32
db 30
db 28
db 27
db 25
db 24
db 23
db 21
db 20
db 18
db 17
db 16
db 14
db 13
db 12
db 11
db 10
db 9
db 8
db 7
db 6
db 5
db 4
db 3
db 3
db 2
db 2
db 1
db 1
db 1
db 1
db 1
db 1
db 127 dup (0)
_l1 label word
db 144
db 1
_l2 label word
db 44
db 1
_l3 label word
db 32
db 3
_l4 label word
db 100
db 0
_k1 label word
db 244
db 1
_k2 label word
db 44
db 1
_k3 label word
db 132
db 3
_k4 label word
db 158
db 2
_m1 label word
db 244
db 1
_m2 label word
db 200
db 0
_m3 label word
db 144
db 1
_m4 label word
db 132
db 3
_n1 label word
db 188
db 2
_n2 label word
db 244
db 1
_n3 label word
db 132
db 3
_n4 label word
db 214
db 1
_DATA ends
MAIN_TEXT segment byte public use16 'CODE'
?debug C E801064D41494E2E43C789EC1A
?debug L 42
assume cs:MAIN_TEXT
_main proc far
?debug B
push bp
mov bp,sp
sub sp,22
push si
push di
?debug B
?debug L 45
mov dword ptr [bp-4],large 0
mov dword ptr [bp-8],large 0
?debug L 46
mov word ptr [bp-10],0
?debug L 48
call far ptr _init_plz
?debug L 50
mov ax,seg _frame_count
mov es,ax
mov word ptr es:_frame_count,0
jmp @1@1066
@1@58:
?debug L 53
mov ax,seg _frame_count
mov es,ax
movsx eax,word ptr es:_frame_count
add dword ptr [bp-4],eax
inc dword ptr [bp-8]
?debug L 54
cmp word ptr [bp-10],37
jne short @1@114
push large 000140014h
push large 000140000h
call far ptr _tw_setrgbpalette
add sp,8
@1@114:
?debug L 56
mov dx, 3c4h
?debug L 57
mov ax, 0a02h
?debug L 58
out dx, ax
?debug L 60
push word ptr DGROUP:_k4
push word ptr DGROUP:_k3
push word ptr DGROUP:_k2
push word ptr DGROUP:_k1
call far ptr _setplzparas
add sp,8
?debug L 61
xor si,si
mov word ptr [bp-16],00000A000h
@1@254:
?debug L 62
push word ptr [bp-16]
push si
call far ptr _plzline
add sp,4
?debug L 61
add word ptr [bp-16],12
add si,2
cmp si,350
jl short @1@254
?debug L 63
push word ptr DGROUP:_l4
push word ptr DGROUP:_l3
push word ptr DGROUP:_l2
push word ptr DGROUP:_l1
call far ptr _setplzparas
add sp,8
?debug L 64
mov si,1
mov word ptr [bp-18],00000A006h
jmp short @1@506
@1@422:
?debug L 65
push word ptr [bp-18]
push si
call far ptr _plzline
add sp,4
?debug L 64
add word ptr [bp-18],12
add si,2
@1@506:
cmp si,350
jl short @1@422
?debug L 68
mov dx, 3c4h
?debug L 69
mov ax, 0502h
?debug L 70
out dx, ax
?debug L 72
push word ptr DGROUP:_k4
push word ptr DGROUP:_k3
push word ptr DGROUP:_k2
push word ptr DGROUP:_k1
call far ptr _setplzparas
add sp,8
?debug L 73
mov si,1
mov word ptr [bp-20],00000A006h
jmp short @1@758
@1@674:
?debug L 74
push word ptr [bp-20]
push si
call far ptr _plzline
add sp,4
?debug L 73
add word ptr [bp-20],12
add si,2
@1@758:
cmp si,350
jl short @1@674
?debug L 75
push word ptr DGROUP:_l4
push word ptr DGROUP:_l3
push word ptr DGROUP:_l2
push word ptr DGROUP:_l1
call far ptr _setplzparas
add sp,8
?debug L 76
xor si,si
mov word ptr [bp-22],00000A000h
@1@842:
?debug L 77
push word ptr [bp-22]
push si
call far ptr _plzline
add sp,4
?debug L 76
add word ptr [bp-22],12
add si,2
cmp si,350
jl short @1@842
?debug L 79
cmp word ptr [bp-10],37
jne short @1@1010
push large 0
push large 0
call far ptr _tw_setrgbpalette
add sp,8
@1@1010:
?debug L 83
call far ptr _kbhit
or ax,ax
je short @1@1066
call far ptr _getch
mov word ptr [bp-10],ax
@1@1066:
?debug L 51
cmp word ptr [bp-10],27
je short @@4
jmp @1@58
@@4:
?debug L 85
call far ptr _close_copper
?debug L 86
call far ptr _tw_closegraph
?debug L 88
mov eax,dword ptr [bp-4]
mov dword ptr [bp-14],eax
fild dword ptr [bp-14]
mov eax,dword ptr [bp-8]
mov dword ptr [bp-14],eax
fild dword ptr [bp-14]
fdiv
sub sp,8
fstp qword ptr [bp-34]
push ds
push offset DGROUP:s@
fwait
call far ptr _printf
add sp,12
?debug L 89
pop di
pop si
leave
ret
?debug C E60263680402F6FF0005636F756E740602F8FF00+
?debug C 0374696D0602FCFF00017904080192007B010406+
?debug C 00
?debug E
?debug E
_main endp
?debug L 91
assume cs:MAIN_TEXT
_init_plz proc far
?debug B
push bp
mov bp,sp
sub sp,2
push si
?debug B
?debug L 141
call far ptr _tw_opengraph
?debug L 142
push -17536
call far ptr _tw_setstart
add sp,2
?debug L 144
mov dx, 3d4h
?debug L 145
mov ax, 4009h
?debug L 146
out dx, ax
?debug L 147
mov ax, 3013h
?debug L 148
out dx, ax
?debug L 149
mov ax, a018h
?debug L 150
out dx, ax
?debug L 151
mov ax, 0f07h
?debug L 152
out dx, ax
?debug L 155
call far ptr _init_copper
?debug L 158
mov word ptr [bp-2],0
@2@338:
mov al,byte ptr DGROUP:_ptau
cbw
mov si,ax
push ax
push ax
mov bx,word ptr [bp-2]
mov al,byte ptr DGROUP:_ptau[bx]
cbw
push ax
push bx
call far ptr _tw_setrgbpalette
add sp,8
inc word ptr [bp-2]
cmp word ptr [bp-2],64
jl short @2@338
?debug L 159
mov word ptr [bp-2],0
@2@450:
mov bx,word ptr [bp-2]
mov al,byte ptr DGROUP:_ptau[bx]
cbw
push ax
mov al,byte ptr DGROUP:_ptau
cbw
push ax
mov bx,63
sub bx,word ptr [bp-2]
mov al,byte ptr DGROUP:_ptau[bx]
cbw
push ax
mov ax,word ptr [bp-2]
add ax,64
push ax
call far ptr _tw_setrgbpalette
add sp,8
inc word ptr [bp-2]
cmp word ptr [bp-2],64
jl short @2@450
?debug L 160
mov word ptr [bp-2],0
@2@562:
mov bx,63
sub bx,word ptr [bp-2]
mov al,byte ptr DGROUP:_ptau[bx]
cbw
push ax
mov bx,word ptr [bp-2]
mov al,byte ptr DGROUP:_ptau[bx]
cbw
push ax
mov al,byte ptr DGROUP:_ptau
cbw
push ax
mov ax,word ptr [bp-2]
add ax,128
push ax
call far ptr _tw_setrgbpalette
add sp,8
inc word ptr [bp-2]
cmp word ptr [bp-2],64
jl short @2@562
?debug L 161
mov word ptr [bp-2],0
@2@674:
mov bx,word ptr [bp-2]
mov al,byte ptr DGROUP:_ptau[bx]
cbw
push ax
mov al,byte ptr DGROUP:_ptau+63
cbw
push ax
mov al,byte ptr DGROUP:_ptau[bx]
cbw
push ax
mov ax,word ptr [bp-2]
add ax,192
push ax
call far ptr _tw_setrgbpalette
add sp,8
inc word ptr [bp-2]
cmp word ptr [bp-2],64
jl short @2@674
?debug L 185
pop si
leave
ret
?debug C E601610402FEFF00
?debug E
?debug E
_init_plz endp
?debug C E9
?debug C FA15000000
MAIN_TEXT ends
_DATA segment word public use16 'DATA'
s@ label byte
db '%le'
db 10
db 0
_DATA ends
MAIN_TEXT segment byte public use16 'CODE'
MAIN_TEXT ends
public _init_plz
public _main
public _n4
public _n3
public _n2
public _n1
public _m4
public _m3
public _m2
public _m1
public _k4
public _k3
public _k2
public _k1
public _l4
public _l3
public _l2
public _l1
public _ptau
public _vmem
extrn _setplzparas:far
extrn _plzline:far
extrn _frame_count:word
extrn _close_copper:far
extrn _init_copper:far
extrn _tw_setstart:far
extrn _tw_setrgbpalette:far
extrn _tw_closegraph:far
extrn _tw_opengraph:far
extrn _kbhit:far
extrn _getch:far
extrn _printf:far
_s@ equ s@
?debug C EA010C
?debug C E31800000023040400
?debug C EC095F696E69745F706C7A181800
?debug C E31900000023040400
?debug C EC055F6D61696E191800
?debug C EC035F6E34040000
?debug C EC035F6E33040000
?debug C EC035F6E32040000
?debug C EC035F6E31040000
?debug C EC035F6D34040000
?debug C EC035F6D33040000
?debug C EC035F6D32040000
?debug C EC035F6D31040000
?debug C EC035F6B34040000
?debug C EC035F6B33040000
?debug C EC035F6B32040000
?debug C EC035F6B31040000
?debug C EC035F6C34040000
?debug C EC035F6C33040000
?debug C EC035F6C32040000
?debug C EC035F6C31040000
?debug C E31A0000011A02
?debug C EC055F707461751A0000
?debug C E31C0052001A04
?debug C E31B000400161C00
?debug C EC055F766D656D1B0000
?debug C E31D00000023040400
?debug C EB0C5F736574706C7A70617261731D00
?debug C E31E00000023040400
?debug C EB085F706C7A6C696E651E00
?debug C EB0C5F6672616D655F636F756E740400
?debug C E31F00000023040400
?debug C EB0D5F636C6F73655F636F707065721F00
?debug C E32000000023040400
?debug C EB0C5F696E69745F636F707065722000
?debug C E32100000023010400
?debug C EB0C5F74775F73657473746172742100
?debug C E32200000023010400
?debug C EB115F74775F73657472676270616C6574746522+
?debug C 00
?debug C E32300000023010400
?debug C EB0E5F74775F636C6F736567726170682300
?debug C E32400000023010400
?debug C EB0D5F74775F6F70656E67726170682400
?debug C E32500000023040400
?debug C EB065F6B626869742500
?debug C E32600000023040400
?debug C EB065F67657463682600
?debug C E32700000023040401
?debug C EB075F7072696E74662700
?debug C E60666706F735F740606000673697A655F740A06+
?debug C 00
end