home *** CD-ROM | disk | FTP | other *** search
- ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ;
- ; AJJJAJJJ... EZ A LEGRONDABB FORRAS AZ OSSZES KOZT, NA HIABA, HAMAR MUNKA
- ; RITKAN JO... ;)
- ;
- ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-
-
- VECTORVALAMI: CALL POiNTERSET
- MOV AX,13H
- iNT 10H
-
- CALL FiLLSCREEN
- CALL PALETTA
- MOV AX,CS:ORDERPOINTER
- MOV CS:ORDERVAR,AX
- CALL LEKEPZES
-
- LEA DX,OBJECT_VERTICES
- MOV AX,CS
- MOV DS,AX
- MOV AX,18
- CALL LOADOVERLAY
- CALL FiLLSCREEN
- CALL PALETTA2
- MOV AX,CS:ORDERPOINTER
- MOV CS:ORDERVAR,AX
- CALL LEKEPZES
- RET
-
- VECTORVALAMI2: MOV AX,13H
- INT 10H
- CALL FiLLSCREEN
- CALL PALETTA3
- MOV AX,CS:ORDERPOINTER
- MOV CS:ORDERVAR,AX
- MOV CS:ZOOMMUL,400
- MOV CS:SZEMTAV,150
- CALL LEKEPZES
-
- LEA DX,OBJECT_VERTICES
- MOV AX,CS
- MOV DS,AX
- MOV AX,21
- CALL LOADOVERLAY
- CALL FiLLSCREEN
- CALL PALETTA4
- MOV AX,CS:ORDERPOINTER
- MOV CS:ORDERVAR,AX
- MOV CS:SZEMTAV,500
- MOV CS:ZOOMMUL,300
- MOV CS:ZOOMDIV,600
- MOV BYTE PTR CS:IDENOP,90H
- MOV BYTE PTR CS:IDENOP+1,90H
- CALL LEKEPZES
-
- RET
-
- POiNTERSET: MOV AX,CS
- MOV DS,AX
- MOV ES,AX
- MOV AX,[POiNTS]
- MOV GS,AX
- RET
- ;----------------------------------------------------------------------------
- LEKEPZES: LEA SI,CS:WORDSIN
- ADD Si,CS:ROTDEGX ;X
- MOV AX,CS:[Si]
- MOV SiNX,AX
- MOV AX,CS:[360+Si]
- MOV COSX,AX
- LEA SI,CS:WORDSIN
- ADD Si,CS:ROTDEGY ;Y
- MOV AX,CS:[Si]
- MOV SiNY,AX
- MOV AX,CS:[360+Si]
- MOV COSY,AX
- CALL RASTERWAiT
- CALL FORGAT
- CALL KiRAK
- CALL DiSPVECTOR
- ADD ROTDEGX,16
- CMP ROTDEGX,1440
- JB OKDEGX
- MOV ROTDEGX,0
- OKDEGX: ADD ROTDEGY,16
- CMP ROTDEGY,1440
- JB OKDEGY
- MOV ROTDEGY,0
- OKDEGY: MOV AX,CS:ORDERPOINTER
- CMP AX,CS:ORDERVAR
- JE LEKEPZES
- RET
- ;----------------------------------------------------------------------------
- FORGAT: LEA Si,[OBJECT_VERTiCES]
- MOV Di,0 ;POiNTS=GS
-
- NEMUT: MOV AX,[Si] ;FORGATáS X KöRüL
- CMP AX,8000H
- JNE FOLYT
- JMP NOFOLYT
-
- FOLYT: MOV X1_,AX ;X1 <- X0
- MOV AX,[Si+2]
- iMUL COSX
- MOV BX,AX
- MOV AX,[Si+4]
- iMUL SiNX
- SUB BX,AX ;Y1 <- (Y0*COSA)-(Z0*SiNA)
- SAR BX,7
- MOV Y1_,BX
- MOV AX,[Si+2]
- iMUL SiNX
- MOV BX,AX
- MOV AX,[Si+4]
- iMUL COSX
- ADD AX,BX ;Z1 <- (Y0*SiNA)+(Z0*COSA)
- SAR AX,7
- MOV Z1,AX
-
- MOV AX,X1_ ;FORGATáS Y KöRüL
- iMUL COSY
- MOV BX,AX
- MOV AX,Z1
- iMUL SiNY
- ADD BX,AX ;X2 <- (X1*COSB)+(Z1*SiNB)
- SAR BX,7
- MOV X3,BX
- MOV AX,Y1_
- MOV Y3,AX ;Y2 <- Y1
- MOV AX,X1_
- NEG AX
- iMUL SiNY
- MOV BX,AX
- MOV AX,Z1
- iMUL COSY
- ADD AX,BX ;Z2 <- (-X1*SiNB)+(Z1*COSB)
- SAR AX,7
- MOV Z3,AX
-
- MOV AX,X3 ;3D-2D LEKéPZéS
- iMUL SZEMTAV
- MOV CX,SZEMTAV
- SUB CX,Z3
- iDiV CX
- iMUL ZOOMMUL
- iDiV ZOOMDiV
- MOV X4,AX ;X = ((X3*TORZ)/(TORZ-Z3))+160
- MOV AX,Y3
- iMUL SZEMTAV
- iDiV CX
- iMUL ZOOMMUL
- iDiV ZOOMDiV
- SUB AX,105
- MOV Y4,AX ;Y = ((Y3*TORZ)/(TORZ-Z3))+100;
- MOV AX,320
- MUL Y4 ;CREATE SCREEN OFFSET
- ADD AX,X4
- SUB AX,97
- MOV GS:[Di],AX
- ADD Di,2
- ADD Si,6
- JMP NEMUT
- NOFOLYT: MOV AX,8000H
- MOV GS:[Di],AX
- RET
- ;-----------------------------------------------------KiiRAS------------------
- KiRAK: LEA Si,[OBJECT_LiNES]
- MOV Di,0
- UJFACE: LODSW
- CMP AX,8000H
- JE LASTFACE
- SHL AX,1
- MOV Di,AX
- MOV AX,GS:[Di]
- MOV BX,320
- MOV DX,0
- DiV BX
- MOV Y1_,AX
- MOV X1_,DX
- LODSW
- CMP AX,8000H
- JE LASTFACE
- SHL AX,1
- MOV Di,AX
- MOV AX,GS:[Di]
- MOV BX,320
- MOV DX,0
- DiV BX
- MOV Y2,AX
- MOV X2,DX
- LODSW
- MOV [SZiN],AL
- CALL LiNE
- JMP UJFACE
- LASTFACE: RET
- ;-----------------------------------------------------------------------------
-
- DiSPVECTOR: PUSHA
- PUSH DS ES
- MOV ES,CS:[WP]
- MOV FS,CS:[WP]
- CALL SMOOTH
- MOV AX,CS:[WP]
- MOV CS:VIRTSCREENSEGMENT,AX
- CALL VIRTSCREEN2
- DiSP2: POP ES DS
- POPA
- RET
-
- FiLLSCREEN: PUSHA
- PUSH ES
- MOV AX,CS:WP
- MOV ES,AX
- MOV DI,0
- MOV CX,16000+320
- MOV EAX,0
- REP STOSD
- POP ES
- POPA
- RET
-
- WP DW 0
- SZEMTAV DW 300
- X1_ DW 0
- Y1_ DW 0
- Z1 DW 0
- X2 DW 0
- Y2 DW 0
- Z2 DW 0
- X3 DW 0
- Y3 DW 0
- Z3 DW 0
- X4 DW 0
- Y4 DW 0
- ROTDEGX DW 0
- ROTDEGY DW 0
- ROTDEGZ DW 0
- SiNX DW 0
- COSX DW 0
- SiNY DW 0
- COSY DW 0
- SiNZ DW 0
- COSZ DW 0
- ZOOMMUL DW 350
- ZOOMDiV DW 800
- POiNTS DW 0
- ORDERVAR DW 0
-
- iNCLUDE VALAMI\LiNE_Y.iNC
- iNCLUDE VALAMI\SMOOTH.ASM
- iNCLUDE VALAMI\MOVETBL.iNC
- iNCLUDE VALAMI\OBJECT.iNC
- INCLUDE VALAMI\WORDSIN.INC
- INCLUDE VALAMI\VIRTUA.ASM
-