Upload
This commit is contained in:
commit
43352ff262
1291 changed files with 220976 additions and 0 deletions
250
DOTS/ASM.ASM
Normal file
250
DOTS/ASM.ASM
Normal file
|
|
@ -0,0 +1,250 @@
|
|||
include clink.inc
|
||||
code SEGMENT para public 'CODE'
|
||||
ASSUME cs:code
|
||||
|
||||
.386
|
||||
|
||||
MAXDOTS equ 1024
|
||||
|
||||
BOTTOM equ 8000
|
||||
|
||||
public _gravitybottom
|
||||
_gravitybottom dw BOTTOM
|
||||
|
||||
public _bpmin,_bpmax
|
||||
_bpmin dw 30000
|
||||
_bpmax dw -30000
|
||||
|
||||
public _gravity
|
||||
_gravity dw 0
|
||||
|
||||
public _dotnum
|
||||
_dotnum dw 0
|
||||
|
||||
public _gravityd
|
||||
_gravityd dw 16
|
||||
|
||||
dw -1280
|
||||
dw -960
|
||||
dw -640
|
||||
dw -320
|
||||
public _rows
|
||||
_rows dw 200 dup(0)
|
||||
|
||||
public _dot
|
||||
_dot LABEL WORD
|
||||
dot dw MAXDOTS dup(0,0,0,0,0,0,0,0) ;x,y,z,oldposshadow,oldpos,-,-,-
|
||||
|
||||
public _rotsin,_rotcos
|
||||
_rotsin dw 0
|
||||
_rotcos dw 0
|
||||
|
||||
public _bgpic
|
||||
_bgpic dw 0,0
|
||||
|
||||
public _depthtable1,_depthtable2,_depthtable3,_depthtable4
|
||||
_depthtable1 dd 128 dup(0)
|
||||
_depthtable2 dd 128 dup(0)
|
||||
_depthtable3 dd 128 dup(0)
|
||||
_depthtable4 dd 128 dup(0)
|
||||
|
||||
public _drawdots
|
||||
_drawdots PROC FAR
|
||||
CBEG
|
||||
mov ax,0a000h
|
||||
mov es,ax
|
||||
mov ax,cs
|
||||
mov ds,ax
|
||||
mov fs,cs:_bgpic[2]
|
||||
mov cx,cs:_dotnum
|
||||
mov si,OFFSET dot
|
||||
@@1: push cx
|
||||
|
||||
mov ax,ds:[si+0] ;X
|
||||
imul ds:_rotsin
|
||||
mov ax,ax
|
||||
mov cx,dx
|
||||
mov ax,ds:[si+4] ;Z
|
||||
imul ds:_rotcos
|
||||
sub ax,bx
|
||||
sub dx,cx
|
||||
mov bp,dx
|
||||
add bp,9000
|
||||
|
||||
mov ax,ds:[si+0] ;X
|
||||
imul ds:_rotcos
|
||||
mov bx,ax
|
||||
mov cx,dx
|
||||
mov ax,ds:[si+4] ;Z
|
||||
imul ds:_rotsin
|
||||
add ax,bx
|
||||
adc dx,cx
|
||||
shrd ax,dx,8
|
||||
sar dx,8
|
||||
|
||||
mov bx,ax
|
||||
mov cx,dx
|
||||
shrd ax,dx,3
|
||||
sar dx,3
|
||||
add ax,bx
|
||||
adc dx,cx
|
||||
|
||||
idiv bp
|
||||
add ax,160
|
||||
push ax
|
||||
cmp ax,319
|
||||
ja @@2
|
||||
|
||||
;shadow
|
||||
|
||||
xor ax,ax
|
||||
mov dx,8
|
||||
idiv bp
|
||||
add ax,100
|
||||
cmp ax,199
|
||||
ja @@2
|
||||
mov bx,ax
|
||||
shl bx,1
|
||||
mov bx,ds:_rows[bx]
|
||||
pop ax
|
||||
add bx,ax
|
||||
push ax
|
||||
|
||||
mov di,ds:[si+6]
|
||||
mov ax,fs:[di]
|
||||
mov es:[di],ax
|
||||
mov ax,87+87*256
|
||||
mov word ptr es:[bx],ax
|
||||
mov ds:[si+6],bx
|
||||
|
||||
;ball
|
||||
|
||||
mov ax,ds:_gravity
|
||||
add ds:[si+14],ax
|
||||
mov ax,ds:[si+2] ;Y
|
||||
add ax,ds:[si+14]
|
||||
cmp ax,ds:_gravitybottom
|
||||
jl @@4
|
||||
push ax
|
||||
mov ax,ds:[si+14]
|
||||
neg ax
|
||||
imul cs:_gravityd
|
||||
sar ax,4
|
||||
mov ds:[si+14],ax
|
||||
pop ax
|
||||
add ax,ds:[si+14]
|
||||
@@4: mov ds:[si+2],ax
|
||||
cwd
|
||||
shld dx,ax,6
|
||||
shl ax,6
|
||||
idiv bp
|
||||
add ax,100
|
||||
cmp ax,199
|
||||
ja @@3
|
||||
mov bx,ax
|
||||
shl bx,1
|
||||
mov bx,ds:_rows[bx]
|
||||
pop ax
|
||||
add bx,ax
|
||||
|
||||
mov di,ds:[si+8]
|
||||
mov eax,fs:[di]
|
||||
mov es:[di],eax
|
||||
add di,320
|
||||
mov eax,fs:[di]
|
||||
mov es:[di],eax
|
||||
add di,320
|
||||
mov eax,fs:[di]
|
||||
mov es:[di],eax
|
||||
; add di,320
|
||||
; mov eax,fs:[di]
|
||||
; mov es:[di],eax
|
||||
shr bp,6
|
||||
and bp,not 3
|
||||
|
||||
cmp bp,cs:_bpmin
|
||||
jge @@t1
|
||||
mov cs:_bpmin,bp
|
||||
@@t1: cmp bp,cs:_bpmax
|
||||
jle @@t2
|
||||
mov cs:_bpmax,bp
|
||||
@@t2:
|
||||
mov ax,word ptr ds:_depthtable1[bp]
|
||||
mov word ptr es:[bx+1],ax
|
||||
mov eax,ds:_depthtable2[bp]
|
||||
mov dword ptr es:[bx+320],eax
|
||||
mov ax,word ptr ds:_depthtable3[bp]
|
||||
mov word ptr es:[bx+641],ax
|
||||
mov ds:[si+8],bx
|
||||
|
||||
@@z: pop cx
|
||||
add si,16
|
||||
loop @@1
|
||||
@@0: CEND
|
||||
|
||||
@@2: mov di,ds:[si+8]
|
||||
mov eax,fs:[di]
|
||||
mov es:[di],eax
|
||||
add di,320
|
||||
mov eax,fs:[di]
|
||||
mov es:[di],eax
|
||||
add di,320
|
||||
mov eax,fs:[di]
|
||||
mov es:[di],eax
|
||||
mov di,ds:[si+6]
|
||||
mov ds:[si+6],ax
|
||||
mov ax,fs:[di]
|
||||
mov es:[di],ax
|
||||
pop bx
|
||||
pop cx
|
||||
add si,16
|
||||
loop @@1
|
||||
jmp @@0
|
||||
@@3: mov di,ds:[si+8]
|
||||
mov eax,fs:[di]
|
||||
mov es:[di],eax
|
||||
add di,320
|
||||
mov eax,fs:[di]
|
||||
mov es:[di],eax
|
||||
add di,320
|
||||
mov eax,fs:[di]
|
||||
mov es:[di],eax
|
||||
pop bx
|
||||
pop cx
|
||||
add si,16
|
||||
loop @@1
|
||||
jmp @@0
|
||||
_drawdots ENDP
|
||||
|
||||
PUBLIC _setpalette
|
||||
_setpalette PROC FAR
|
||||
push bp
|
||||
mov bp,sp
|
||||
push si
|
||||
push di
|
||||
push ds
|
||||
mov si,[bp+6]
|
||||
mov ds,[bp+8]
|
||||
mov dx,3c8h
|
||||
mov al,0
|
||||
out dx,al
|
||||
inc dx
|
||||
mov cx,768
|
||||
rep outsb
|
||||
pop ds
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
ret
|
||||
_setpalette ENDP
|
||||
|
||||
_face LABEL WORD
|
||||
public _face
|
||||
include face.inc
|
||||
dw 30000,30000,30000
|
||||
|
||||
PUBLIC _sin1024
|
||||
include sin1024.inc
|
||||
|
||||
code ENDS
|
||||
END
|
||||
Loading…
Reference in a new issue