home *** CD-ROM | disk | FTP | other *** search
- ; By Megaduo / Grif
-
- .286
- .model large
- .stack 170h
- .data
- valt db 0
- pdx dw 0
- pdi dw 0
- vegetomb db 80 dup(0,1,3,7)
- elejetomb db 80 dup(14,12,8,0)
- ;vegetomb2 db 80 dup(1,3,7,15)
- ;elejetomb2 db 80 dup(15,14,12,8)
-
- xtomb db 4 dup (0)
- db 4 dup (1)
- db 4 dup (2)
- db 4 dup (3)
- db 4 dup (4)
- db 4 dup (5)
- db 4 dup (6)
- db 4 dup (7)
- db 4 dup (8)
- db 4 dup (9)
- db 4 dup (10)
- db 4 dup (11)
- db 4 dup (12)
- db 4 dup (13)
- db 4 dup (14)
- db 4 dup (15)
- db 4 dup (16)
- db 4 dup (17)
- db 4 dup (18)
- db 4 dup (19)
- db 4 dup (20)
- db 4 dup (21)
- db 4 dup (22)
- db 4 dup (23)
- db 4 dup (24)
- db 4 dup (25)
- db 4 dup (26)
- db 4 dup (27)
- db 4 dup (28)
- db 4 dup (29)
- db 4 dup (30)
- db 4 dup (31)
- db 4 dup (32)
- db 4 dup (33)
- db 4 dup (34)
- db 4 dup (35)
- db 4 dup (36)
- db 4 dup (37)
- db 4 dup (38)
- db 4 dup (39)
- db 4 dup (40)
- db 4 dup (41)
- db 4 dup (42)
- db 4 dup (43)
- db 4 dup (44)
- db 4 dup (45)
- db 4 dup (46)
- db 4 dup (47)
- db 4 dup (48)
- db 4 dup (49)
- db 4 dup (50)
- db 4 dup (51)
- db 4 dup (52)
- db 4 dup (53)
- db 4 dup (54)
- db 4 dup (55)
- db 4 dup (56)
- db 4 dup (57)
- db 4 dup (58)
- db 4 dup (59)
- db 4 dup (60)
- db 4 dup (61)
- db 4 dup (62)
- db 4 dup (63)
- db 4 dup (64)
- db 4 dup (65)
- db 4 dup (66)
- db 4 dup (67)
- db 4 dup (68)
- db 4 dup (69)
- db 4 dup (70)
- db 4 dup (71)
- db 4 dup (72)
- db 4 dup (73)
- db 4 dup (74)
- db 4 dup (75)
- db 4 dup (76)
- db 4 dup (77)
- db 4 dup (78)
- db 4 dup (79)
- db 4 dup (80)
-
-
- kozepx dw 160
- kozepy dw 100
- lap dw 0
- kozeledes dw 450
- ttmut dw 0,0
- tdb dw 1,1
- torlt dw 1200 dup (2,2)
- szin db 0
- xkul dw 0
- ykul dw 0
- fyt dw 1200 dup (0)
- tv dw 0
- kezdety dw 600
- vegy dw -10
- v dw 0
- vx1 dw 0
- vx2 dw 0
- vy1 dw 0
- vy2 dw 0
- kix dw 10 dup (0)
- kiy dw 10 dup (0)
- sin dw 0,2,4,7,9,11,13,16,18,20,22,24,27,29,31,33,35,37,40,42
- dw 44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,73,75,77,79,81
- dw 82,84,86,87,89,91,92,94,95,97,98,99,101,102,104,105,106,107,109,110
- dw 111,112,113,114,115,116,117,118,119,119,120,121,122,122,123,124,124,125,125,126
- dw 126,126,127,127,127,128,128,128,128,128,128,128,128,128,128,128,127,127,127,126
- dw 126,126,125,125,124,124,123,122,122,121,120,119,119,118,117,116,115,114,113,112
- dw 111,110,109,107,106,105,104,102,101,99,98,97,95,94,92,91,89,87,86,84
- dw 82,81,79,77,75,73,72,70,68,66,64,62,60,58,56,54,52,50,48,46
- dw 44,42,40,37,35,33,31,29,27,24,22,20,18,16,13,11,9,7,4,2
- dw 0,-2,-4,-7,-9,-11,-13,-16,-18,-20,-22,-24,-27,-29,-31,-33,-35,-37,-40,-42
- dw -44,-46,-48,-50,-52,-54,-56,-58,-60,-62,-64,-66,-68,-70,-72,-73,-75,-77,-79,-81
- dw -82,-84,-86,-87,-89,-91,-92,-94,-95,-97,-98,-99,-101,-102,-104,-105,-106,-107,-109,-110
- dw -111,-112,-113,-114,-115,-116,-117,-118,-119,-119,-120,-121,-122,-122,-123,-124,-124,-125,-125,-126
- dw -126,-126,-127,-127,-127,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-127,-127,-127,-126
- dw -126,-126,-125,-125,-124,-124,-123,-122,-122,-121,-120,-119,-119,-118,-117,-116,-115,-114,-113,-112
- dw -111,-110,-109,-107,-106,-105,-104,-102,-101,-99,-98,-97,-95,-94,-92,-91,-89,-87,-86,-84
- dw -82,-81,-79,-77,-75,-73,-72,-70,-68,-66,-64,-62,-60,-58,-56,-54,-52,-50,-48,-46
- dw -44,-42,-40,-37,-35,-33,-31,-29,-27,-24,-22,-20,-18,-16,-13,-11,-9,-7,-4,-2
-
- cos dw 128,128,128,128,128,128,127,127,127,126,126,126,125,125,124,124,123,122,122,121
- dw 120,119,119,118,117,116,115,114,113,112,111,110,109,107,106,105,104,102,101,99
- dw 98,97,95,94,92,91,89,87,86,84,82,81,79,77,75,73,72,70,68,66
- dw 64,62,60,58,56,54,52,50,48,46,44,42,40,37,35,33,31,29,27,24
- dw 22,20,18,16,13,11,9,7,4,2,0,-2,-4,-7,-9,-11,-13,-16,-18,-20
- dw -22,-24,-27,-29,-31,-33,-35,-37,-40,-42,-44,-46,-48,-50,-52,-54,-56,-58,-60,-62
- dw -64,-66,-68,-70,-72,-73,-75,-77,-79,-81,-82,-84,-86,-87,-89,-91,-92,-94,-95,-97
- dw -98,-99,-101,-102,-104,-105,-106,-107,-109,-110,-111,-112,-113,-114,-115,-116,-117,-118,-119,-119
- dw -120,-121,-122,-122,-123,-124,-124,-125,-125,-126,-126,-126,-127,-127,-127,-128,-128,-128,-128,-128
- dw -128,-128,-128,-128,-128,-128,-127,-127,-127,-126,-126,-126,-125,-125,-124,-124,-123,-122,-122,-121
- dw -120,-119,-119,-118,-117,-116,-115,-114,-113,-112,-111,-110,-109,-107,-106,-105,-104,-102,-101,-99
- dw -98,-97,-95,-94,-92,-91,-89,-87,-86,-84,-82,-81,-79,-77,-75,-73,-72,-70,-68,-66
- dw -64,-62,-60,-58,-56,-54,-52,-50,-48,-46,-44,-42,-40,-37,-35,-33,-31,-29,-27,-24
- dw -22,-20,-18,-16,-13,-11,-9,-7,-4,-2,0,2,4,7,9,11,13,16,18,20
- dw 22,24,27,29,31,33,35,37,40,42,44,46,48,50,52,54,56,58,60,62
- dw 64,66,68,70,72,73,75,77,79,81,82,84,86,87,89,91,92,94,95,97
- dw 98,99,101,102,104,105,106,107,109,110,111,112,113,114,115,116,117,118,119,119
- dw 120,121,122,122,123,124,124,125,125,126,126,126,127,127,127,128,128,128,128,128
-
-
- xtt dw -128, 128,-128, 128,-128, 128,-128, 128
- ytt dw -128,-128, 128, 128,-128,-128, 128, 128
- ztt dw -128,-128,-128,-128, 128, 128, 128, 128
- xt dw 10 dup (0)
- yt dw 10 dup (0)
- zt dw 10 dup (0)
- x dw 0
- y dw 0
- z dw 0
- x1 dw 0
- y1 dw 0
- z1 dw 0
- x2 dw 0
- y2 dw 0
- z2 dw 0
- a dw 0
- b dw 0
- g dw 0
- zz dw 0
- xy dw 0
- ; R G B
- szint db 16 dup (0)
- szintbl1 db 40,50,40,00,00,50,00
- szintbl2 db 40,50,00,00,40,00,00
- szintbl3 db 40,00,40,30,40,00,60
- .code
- mov ax,@data
- mov ds,ax
- mov ax,0a000h
- mov es,ax
- mov ax,12h
- int 10h
- mov ax,13h
- int 10h
- mov dx,3c4h
- mov ax,0604h
- out dx,ax
- mov dx,3d4h
- mov ax,0014h
- out dx,ax
- mov ax,0e317h
- out dx,ax
-
- mov bl,1
- xor si,si
- mov cx,64
- mov ah,64
- szinbe: mov dx,3c8h
- mov al,bl
- out dx,al
- mov dx,3c9h
-
- mov al,ah
- out dx,al
- xor al,al
- out dx,al
- mov al,ah
- out dx,al
- dec ah
- inc bl
- loop szinbe
- cli
-
- push es
- mov ax,0a000h
- mov es,ax
- xor di,di
- xor ax,ax
- mov cx,8000h
- rep stosw
- pop es
-
- mov fyt[0],180
- mov fyt[2],150
-
- eleje:
- ;{kepvalt!}
- mov lap,0
- mov cx,8000h
- mov bx,0a000h
- mov ax,es
- cmp ax,0a000h
- jne lessz0
- mov bx,0a800h
- xor cx,cx
- mov lap,1
- lessz0: mov es,bx
- mov dx,3d4h ;set offset
- mov al,0ch
- mov ah,ch
- out dx,ax
- mov dx,3d4h
- mov al,0dh
- mov ah,cl
- out dx,ax
- ;-------------------------
- ak:
- mov dx,3dah
- rafs: in ax,dx
- and al,8
- jnz rafs
- rasf: in ax,dx
- and al,8
- jz rasf
- ;-------------------------
- mov dx,3c8h
- mov al,0
- out dx,al
- mov dx,3c9h
- mov al,20
- out dx,al
- out dx,al
- out dx,al
-
- mov bp,lap
- mov si,bp
- mov ax,2400
- mul si
- mov si,ax
- rol bp,1
-
- mov dx,3c4h
- mov al,2
- mov ah,0fh
- out dx,ax
-
- mov cx,ds:[tdb+bp]
- xor al,al
- inc cx
- tci: push cx
- mov di,ds:[torlt+si]
- mov cx,ds:[torlt+si+2]
- inc cx
- add si,4
- rep stosb
- pop cx
- loop tci
-
-
- mov ds:[tdb+bp],0
- mov ds:[ttmut+bp],0
- cmp lap,0
- je lap0
- mov ds:[ttmut+bp],2400
- lap0:
-
-
- call e
- call k
- call h
- ;----------------------
-
- mov ax,kiy[2*2] ;ax:=kiy[2]-kiy[1]
- sub ax,kiy[1*2]
- push ax
- mov ax,kix[0*2] ;ax:=kix[0]-kix[1]
- sub ax,kix[1*2]
- pop bx ; *
- imul bx
- push ax
-
- mov ax,kiy[0*2] ;ax:=kiy[0]-kiy[1]
- sub ax,kiy[1*2]
- push ax
-
- mov ax,kix[2*2] ;kix[2]-kix[1]
- sub ax,kix[1*2]
- pop bx
- imul bx ;*
- pop bx
- sub bx,ax
- js l1
- jmp l2
- l1:
- mov al,szint[1]
- mov szin,al
- mov ax,kix[0]
- mov vx1,ax
- mov ax,kiy[0]
- mov vy1,ax
- mov ax,kix[2*2]
- mov vx2,ax
- mov ax,kiy[2*2]
- mov vy2,ax
- call von
-
- mov ax,kix[2*2]
- mov vx1,ax
- mov ax,kiy[2*2]
- mov vy1,ax
- mov ax,kix[3*2]
- mov vx2,ax
- mov ax,kiy[3*2]
- mov vy2,ax
- call von
-
- mov ax,kix[3*2]
- mov vx1,ax
- mov ax,kiy[3*2]
- mov vy1,ax
- mov ax,kix[1*2]
- mov vx2,ax
- mov ax,kiy[1*2]
- mov vy2,ax
- call von
-
- mov ax,kix[1*2]
- mov vx1,ax
- mov ax,kiy[1*2]
- mov vy1,ax
- mov ax,kix[0*2]
- mov vx2,ax
- mov ax,kiy[0*2]
- mov vy2,ax
- call von
- call fill
-
- l2:
- mov ax,kiy[3*2] ;ax:=kiy[2]-kiy[1]
- sub ax,kiy[5*2]
- push ax
- mov ax,kix[1*2] ;ax:=kix[0]-kix[1]
- sub ax,kix[5*2]
- pop bx ; *
- imul bx
- push ax
-
- mov ax,kiy[1*2] ;ax:=kiy[0]-kiy[1]
- sub ax,kiy[5*2]
- push ax
-
- mov ax,kix[3*2] ;kix[2]-kix[1]
- sub ax,kix[5*2]
- pop bx
- imul bx ;*
- pop bx
- sub bx,ax
- js la2
- jmp l3
- la2:
- mov al,szint[2]
- mov szin,al
- mov ax,kix[1*2]
- mov vx1,ax
- mov ax,kiy[1*2]
- mov vy1,ax
- mov ax,kix[5*2]
- mov vx2,ax
- mov ax,kiy[5*2]
- mov vy2,ax
- call von
-
- mov ax,kix[5*2]
- mov vx1,ax
- mov ax,kiy[5*2]
- mov vy1,ax
- mov ax,kix[7*2]
- mov vx2,ax
- mov ax,kiy[7*2]
- mov vy2,ax
- call von
-
- mov ax,kix[7*2]
- mov vx1,ax
- mov ax,kiy[7*2]
- mov vy1,ax
- mov ax,kix[3*2]
- mov vx2,ax
- mov ax,kiy[3*2]
- mov vy2,ax
- call von
-
- mov ax,kix[3*2]
- mov vx1,ax
- mov ax,kiy[3*2]
- mov vy1,ax
- mov ax,kix[1*2]
- mov vx2,ax
- mov ax,kiy[1*2]
- mov vy2,ax
- call von
- call fill
-
- l3:
- mov ax,kiy[4*2] ;ax:=kiy[2]-kiy[1]
- sub ax,kiy[7*2]
- push ax
- mov ax,kix[6*2] ;ax:=kix[0]-kix[1]
- sub ax,kix[7*2]
- pop bx ; *
- imul bx
- push ax
-
- mov ax,kiy[6*2] ;ax:=kiy[0]-kiy[1]
- sub ax,kiy[7*2]
- push ax
-
- mov ax,kix[4*2] ;kix[2]-kix[1]
- sub ax,kix[7*2]
- pop bx
- imul bx ;*
- pop bx
- sub bx,ax
- js la3
- jmp l4
- la3:
- mov al,szint[3]
- mov szin,al
- mov ax,kix[6*2]
- mov vx1,ax
- mov ax,kiy[6*2]
- mov vy1,ax
- mov ax,kix[4*2]
- mov vx2,ax
- mov ax,kiy[4*2]
- mov vy2,ax
- call von
-
- mov ax,kix[4*2]
- mov vx1,ax
- mov ax,kiy[4*2]
- mov vy1,ax
- mov ax,kix[5*2]
- mov vx2,ax
- mov ax,kiy[5*2]
- mov vy2,ax
- call von
-
- mov ax,kix[5*2]
- mov vx1,ax
- mov ax,kiy[5*2]
- mov vy1,ax
- mov ax,kix[7*2]
- mov vx2,ax
- mov ax,kiy[7*2]
- mov vy2,ax
- call von
-
- mov ax,kix[7*2]
- mov vx1,ax
- mov ax,kiy[7*2]
- mov vy1,ax
- mov ax,kix[6*2]
- mov vx2,ax
- mov ax,kiy[6*2]
- mov vy2,ax
- call von
- call fill
- l4:
- mov ax,kiy[0*2] ;ax:=kiy[2]-kiy[1]
- sub ax,kiy[5*2]
- push ax
- mov ax,kix[4*2] ;ax:=kix[0]-kix[1]
- sub ax,kix[5*2]
- pop bx ; *
- imul bx
- push ax
-
- mov ax,kiy[4*2] ;ax:=kiy[0]-kiy[1]
- sub ax,kiy[5*2]
- push ax
-
- mov ax,kix[0*2] ;kix[2]-kix[1]
- sub ax,kix[5*2]
- pop bx
- imul bx ;*
- pop bx
- sub bx,ax
- js la4
- jmp l5
- la4:
- mov al,szint[4]
- mov szin,al
- mov ax,kix[4*2]
- mov vx1,ax
- mov ax,kiy[4*2]
- mov vy1,ax
- mov ax,kix[0*2]
- mov vx2,ax
- mov ax,kiy[0*2]
- mov vy2,ax
- call von
-
- mov ax,kix[0*2]
- mov vx1,ax
- mov ax,kiy[0*2]
- mov vy1,ax
- mov ax,kix[1*2]
- mov vx2,ax
- mov ax,kiy[1*2]
- mov vy2,ax
- call von
-
- mov ax,kix[1*2]
- mov vx1,ax
- mov ax,kiy[1*2]
- mov vy1,ax
- mov ax,kix[5*2]
- mov vx2,ax
- mov ax,kiy[5*2]
- mov vy2,ax
- call von
-
- mov ax,kix[5*2]
- mov vx1,ax
- mov ax,kiy[5*2]
- mov vy1,ax
- mov ax,kix[4*2]
- mov vx2,ax
- mov ax,kiy[4*2]
- mov vy2,ax
- call von
- call fill
-
- l5:
- mov ax,kiy[6*2] ;ax:=kiy[2]-kiy[1]
- sub ax,kiy[0*2]
- push ax
- mov ax,kix[4*2] ;ax:=kix[0]-kix[1]
- sub ax,kix[0*2]
- pop bx ; *
- imul bx
- push ax
-
- mov ax,kiy[4*2] ;ax:=kiy[0]-kiy[1]
- sub ax,kiy[0*2]
- push ax
-
- mov ax,kix[6*2] ;kix[2]-kix[1]
- sub ax,kix[0*2]
- pop bx
- imul bx ;*
- pop bx
- sub bx,ax
- js la5
- jmp l6
- la5:
- mov al,szint[5]
- mov szin,al
- mov ax,kix[4*2]
- mov vx1,ax
- mov ax,kiy[4*2]
- mov vy1,ax
- mov ax,kix[0*2]
- mov vx2,ax
- mov ax,kiy[0*2]
- mov vy2,ax
- call von
-
- mov ax,kix[0*2]
- mov vx1,ax
- mov ax,kiy[0*2]
- mov vy1,ax
- mov ax,kix[2*2]
- mov vx2,ax
- mov ax,kiy[2*2]
- mov vy2,ax
- call von
-
- mov ax,kix[2*2]
- mov vx1,ax
- mov ax,kiy[2*2]
- mov vy1,ax
- mov ax,kix[6*2]
- mov vx2,ax
- mov ax,kiy[6*2]
- mov vy2,ax
- call von
-
- mov ax,kix[6*2]
- mov vx1,ax
- mov ax,kiy[6*2]
- mov vy1,ax
- mov ax,kix[4*2]
- mov vx2,ax
- mov ax,kiy[4*2]
- mov vy2,ax
- call von
- call fill
- l6:
- mov ax,kiy[6*2] ;ax:=kiy[2]-kiy[1]
- sub ax,kiy[3*2]
- push ax
- mov ax,kix[2*2] ;ax:=kix[0]-kix[1]
- sub ax,kix[3*2]
- pop bx ; *
- imul bx
- push ax
-
- mov ax,kiy[2*2] ;ax:=kiy[0]-kiy[1]
- sub ax,kiy[3*2]
- push ax
-
- mov ax,kix[6*2] ;kix[2]-kix[1]
- sub ax,kix[3*2]
- pop bx
- imul bx ;*
- pop bx
- sub bx,ax
- js la6
- jmp l7
- la6:
- mov al,szint[6]
- mov szin,al
- mov ax,kix[2*2]
- mov vx1,ax
- mov ax,kiy[2*2]
- mov vy1,ax
- mov ax,kix[6*2]
- mov vx2,ax
- mov ax,kiy[6*2]
- mov vy2,ax
- call von
-
- mov ax,kix[6*2]
- mov vx1,ax
- mov ax,kiy[6*2]
- mov vy1,ax
- mov ax,kix[7*2]
- mov vx2,ax
- mov ax,kiy[7*2]
- mov vy2,ax
- call von
-
- mov ax,kix[7*2]
- mov vx1,ax
- mov ax,kiy[7*2]
- mov vy1,ax
- mov ax,kix[3*2]
- mov vx2,ax
- mov ax,kiy[3*2]
- mov vy2,ax
- call von
-
- mov ax,kix[3*2]
- mov vx1,ax
- mov ax,kiy[3*2]
- mov vy1,ax
- mov ax,kix[2*2]
- mov vx2,ax
- mov ax,kiy[2*2]
- mov vy2,ax
- call von
- call fill
- l7:
-
-
- mov dx,3c8h
- mov al,0
- out dx,al
- mov dx,3c9h
- mov al,0
- out dx,al
- out dx,al
- out dx,al
- add a,4
- cmp a,720
- jne ata1
- mov a,0
- ata1:
- add b,2
- cmp b,720
- jne atb1
- mov b,0
- atb1:
- add g,6
- cmp g,720
- jne atg1
- mov g,0
- atg1:
-
- billf:
- mov dx,60h
- in al,dx
- cmp al,1
- jne nende
- jmp vege
-
- nende: cmp al,39h
- je billf
- cmp al,12
- jne ntav
- cmp kozeledes,2000
- jnb ntav
- add kozeledes,5
- ntav: cmp al,13
- jne nkoz
- cmp kozeledes,310
- jna nkoz
- sub kozeledes,5
- nkoz:
-
- cmp al,'H'
- jne nfel
- inc fyt[0]
- nfel: cmp al,'P'
- jne nle
- dec fyt[0]
- nle:
- cmp al,'M'
- jne njobb
- inc fyt[2]
- njobb:
- cmp al,'K'
- jne njobb2
- dec fyt[2]
- njobb2:
- jmp eleje
-
-
- vege:
- sti
- mov ah,0
- mov al,3h
- int 10h
-
- mov ah,4ch
- mov al,0
- int 21h
- jmp ende
- ;proc!!!!!!
- e: mov cx,8
- xor si,si
- init: mov ax,xtt[si]
- mov xt[si],ax
-
- mov ax,ytt[si]
- mov yt[si],ax
-
- mov ax,ztt[si]
- mov zt[si],ax
- add si,2
- loop init
- ret
-
- k: mov cx,8
- xor si,si
- jcikl: mov ax,xt[si]
- mov x,ax
- mov ax,yt[si]
- mov y,ax
- mov ax,zt[si]
- mov z,ax
- ;--------x1----------
- mov di,a
- mov ax,y
- imul sin[di]
- push ax
- mov ax,x
- imul cos[di]
- pop bx
- add bx,ax
- sar bx,7
- mov x1,bx
- ;--------y1----------
- mov ax,y
- imul cos[di]
- push ax
- mov ax,x
- imul sin[di]
- pop bx
- sub bx,ax
- sar bx,7
- mov y1,bx
-
- ;--------x2----------
- mov di,b
- mov ax,x1
- imul cos[di]
- push ax
- mov ax,z
- imul sin[di]
- pop bx
- sub bx,ax
- sar bx,7
- mov x2,bx
- ;--------z1----------
- mov ax,z
- imul cos[di]
- push ax
- mov ax,x1
- imul sin[di]
- pop bx
- add bx,ax
- sar bx,7
- mov z1,bx
- ;--------y2----------
- mov di,g
- mov ax,z1
- imul sin[di]
- push ax
- mov ax,y1
- imul cos[di]
- pop bx
- add bx,ax
- sar bx,7
- mov y2,bx
- ;--------z2----------
- mov ax,z1
- imul cos[di]
- push ax
- mov ax,y1
- imul sin[di]
- pop bx
- sub bx,ax
- sar bx,7
- mov z2,bx
- ;--------------------------------------------------------
- mov ax,x2
- mov xt[si],ax
- mov ax,y2
- mov yt[si],ax
- mov ax,z2
- mov zt[si],ax
- ;----------------------------
- add si,2
- dec cx
- jz ki
- jmp jcikl
- ki:
- mov ax,zt[0*2]
- add ax,zt[3*2]
- shr ax,2
- mov szint[1],al
-
- mov ax,zt[1*2]
- add ax,zt[7*2]
- shr ax,2
- mov szint[2],al
-
- mov ax,zt[6*2]
- add ax,zt[5*2]
- shr ax,2
- mov szint[3],al
-
- mov ax,zt[4*2]
- add ax,zt[1*2]
- shr ax,2
- mov szint[4],al
-
- mov ax,zt[4*2]
- add ax,zt[2*2]
- shr ax,2
- mov szint[5],al
-
- mov ax,zt[2*2]
- add ax,zt[7*2]
- shr ax,2
- mov szint[6],al
- ret
-
-
- h: mov cx,8
- xor si,si
- percikl: mov ax,xt[si]
- mov bx,100
- imul bx
- mov bx,zt[si]
- add bx,kozeledes
- idiv bx
- mov kix[si],ax
-
- mov ax,yt[si]
- mov bx,100
- imul bx
- mov bx,zt[si]
- add bx,kozeledes
- idiv bx
- mov kiy[si],ax
-
- add si,2
- loop percikl
- ret
-
- von: mov ax,kozepx
- add vx1,ax
- add vx2,ax
- mov ax,kozepy
- add vy1,ax
- add vy2,ax
- mov tv,0
- mov ax,vy1
- cmp ax,vy2
- jl ncs
- mov tv,2
- mov ax,vy2
- xchg vy1,ax
- mov vy2,ax
-
- mov ax,vx2
- xchg vx1,ax
- mov vx2,ax
-
- ncs:
- mov ax,vy1
- cmp kezdety,ax
- jl kjo ;kezdet beallitasa
- mov kezdety,ax
- kjo: ;veg beallitasa
- mov ax,vy2
- cmp vegy,ax
- jg vjo
- mov vegy,ax
- vjo:
- mov ax,vy2
- sub ax,vy1
- mov ykul,ax
- mov ax,vx2
- cmp vx1,ax
- jb ke
- mov ax,vx1
- sub ax,vx2
- mov xkul,ax
- jmp dontes
- ke: mov ax,vx2
- sub ax,vx1
- mov xkul,ax
-
- dontes: mov ax,ykul
- cmp xkul,ax
- jb hn
- mov ax,vx2
- cmp vx1,ax
- jbe egyhiv
-
- jmp ketto
-
- hn: mov ax,vx2
- cmp vx1,ax
- jbe haromhiv
- jmp negy
-
- egyhiv: jmp egy
-
- haromhiv: jmp harom
- ;----------------------------
- egy: ;di=y dx=x
- mov ax,xkul
- shr ax,1
- mov v,ax
-
- mov di,vy1
- shl di,2
-
- mov dx,vx1
- mov cx,xkul
- mov bx,tv
- inc cx
- egy1:
- mov fyt[di+bx],dx
- mov ax,ykul
- add v,ax
- mov ax,xkul
- cmp v,ax
- jb at1
- sub v,ax
- add di,4
- at1: inc dx
- loop egy1
- ret
-
- ketto:
- mov ax,ykul
- shr ax,1
- mov v,ax
- mov di,vy1
- shl di,2
-
- ; mov di,4
- ; mul di
- ; mov di,ax
- mov dx,vx1
- mov cx,xkul
- inc cx
- mov bx,tv
- ketto1:
- mov fyt[di+bx],dx
- mov ax,ykul
- add v,ax
- mov ax,xkul
- cmp v,ax
- jb at2
- sub v,ax
- add di,4
- at2: dec dx
- loop ketto1
- ret
-
- harom:
- mov ax,xkul
- shr ax,1
- mov v,ax
- mov di,vy1
- shl di,2
-
- ; mov di,4
- ; mul di
- ; mov di,ax
- mov dx,vx1
- mov cx,ykul
- mov bx,tv
- inc cx
- harom1:
- mov fyt[di+bx],dx
- mov ax,xkul
- add v,ax
- mov ax,ykul
- cmp v,ax
- jb at3
- sub v,ax
- inc dx
- at3: add di,4
- loop harom1
- ret
-
- negy:
- mov ax,Ykul
- shr ax,1
- mov v,ax
- mov di,vy1
- shl di,2
- ; mov di,4
- ; mul di
- ; mov di,ax
- mov dx,vx1
- mov cx,ykul
- mov bx,tv
- inc cx
- negy1:
- mov fyt[di+bx],dx
- mov ax,xkul
- add v,ax
- mov ax,ykul
- cmp v,ax
- jb at4
- sub v,ax
- dec dx
- at4: add di,4
- loop negy1
- ret
-
-
-
-
- fill: pusha
- sub szin,185
- ; mov szin,2
- mov bx,kezdety
- mov ax,80
- mul bx
- mov dx,ax
-
- mov si,kezdety
- shl si,2
- mov cx,vegy
- sub cx,kezdety
- mov bx,ds:[ttmut+bp] ;bp-ben az aktualislap
- ; inc cx
- ; mov cx,1
- ; xor si,si
- ; mov dx,100*80
- yc:
- ; mov fyt[0+si],100
- ; mov fyt[2+si],101
-
- push cx
-
- mov ax,fyt[2+si]
- sub ax,fyt[0+si]
- jns elojel
- mov ax,fyt[0+si]
- xchg fyt[2+si],ax
- mov fyt[0+si],ax
- elojel:
- inc fyt[2+si]
-
- mov cx,fyt[2+si]
- shr cx,2
- mov ax,fyt[0+si]
- shr ax,2
- sub cx,ax
-
-
- mov valt,0
- cmp cx,0
- jg okay2
- mov valt,1
- ; push bx
- ; mov bx,0
- ; jmp kina
- okay2:
-
- mov di,fyt[0+si]
- shr di,2
- add di,dx
-
- mov pdi,di
- push cx
- mov pdx,dx
- mov dx,3c4h
- mov al,2
- mov ah,0fh
- out dx,ax
- mov torlt[bx],di
- mov torlt[bx+2],cx
- add bx,4
- inc ds:[tdb+bp] ;bp-ben a lapvaltas
- dec cx
- cmp cx,0
- jle nemko2
- inc di
- mov al,szin
- rep stosb
- nemko2:
- pop cx
- ; di tol kell rakni az elejet!
-
- mov di,fyt[0+si]
- mov ah,elejetomb[di]
- mov di,fyt[2+si]
- mov al,vegetomb[di]
- cmp valt,0
- je v1
- and ah,al
- v1: cmp ah,0
- je nemeleje2
- mov dx,3c4h
- mov al,2
- out dx,ax
- mov di,pdi
- mov al,szin
- mov es:[di],al
- nemeleje2:
-
- mov di,fyt[2+si]
- mov ah,vegetomb[di]
- mov di,fyt[0+si]
- mov al,elejetomb[di]
- cmp valt,0
- je v0
- and ah,al
- v0: cmp ah,0
- je elejetki2
- mov dx,3c4h
- mov al,2
- out dx,ax
- mov di,pdi
- add di,cx
- mov al,szin
- mov es:[di],al
- mov dx,pdx
-
- elejetki2:
- mov dx,pdx
-
- atneg:
- add dx,80
- pop cx
- add si,4
- dec cx
- jz kyc
- jmp yc
- kyc:
- mov ds:[ttmut+bp],bx ;bp-ben a lapvaltas
- popa
- mov kezdety,2000
- mov vegy,-10
- ret
- ende:
-
-
-
-
- end
-