home *** CD-ROM | disk | FTP | other *** search
- JUMPS
-
- COORD_NUM EQU 270
- EOF EQU 0FFFFH
-
-
- ;----- MAiN PRG ----------------------
-
- SHOCKLOGO:
-
-
- MOV AX,@DATA
- MOV DS,AX
-
- CALL iNiT
-
- LEA AX,FACE
- MOV FACES,AX
-
- LEA AX,VERTiCE
- MOV O_COORDS,AX
-
- CALL OBJECT
-
- CALL RESTOREiNTER
-
- RET
-
- GOMB:
-
- MOV AX,@DATA
- MOV DS,AX
-
- MOV GOU,0
-
- MOV ALPHA,128
- MOV BETA,0
- MOV GAMMA,128
-
- MOV X_ADD,0
- MOV Y_ADD,0
- MOV Z_ADD,6400
-
-
- CALL GOMBiNiT
-
- LEA AX,GOMBFACE
- MOV FACES,AX
-
- LEA AX,GOMBVERTiCE
- MOV O_COORDS,AX
-
- CALL GOMBOBJECT
- CALL RESTOREiNTER
-
- RET
-
- F14:
- MOV AX,@DATA
- MOV DS,AX
-
- MOV TEX,0
- MOV GOU,1
-
- MOV ALPHA,128
- MOV BETA,80
- MOV GAMMA,384
-
- MOV X_ADD,0
- MOV Y_ADD,150
- MOV Z_ADD,-400
-
-
- CALL F14iNiT
-
- LEA AX,F14FACE
- MOV FACES,AX
-
- LEA AX,F14VERTiCE
- MOV O_COORDS,AX
-
- CALL F14OBJECT
- CALL RESTOREiNTER
-
- RET
- ;------- MAiN END --------------------
-
-
-
- iNiT:
- PUSH DS
-
-
- MOV DWORD PTR CS:FR,90909090H
- MOV DWORD PTR CS:SC,90909090H
-
- MOV AX,CS:TEXTBUFF
- MOV DS,AX
- MOV DX,0
- MOV AX,4
- CALL LOADOVERLAY
- POP DS
-
- MOV AX,BACKSCRPOiNTER
- PUSH DS
- MOV DS,AX
- MOV DX,0
- MOV AX,5
- CALL LOADOVERLAY
-
- CALL RASTERWAiT
-
-
- MOV AX,DS
-
- POP DS
- PUSH DS
- PUSH AX
- MOV Si,OFFSET PAL
- CALL SETPAL
-
- POP DS
-
-
-
- MOV AX,0A000H
- MOV ES,AX
- MOV CX,16000
- MOV Si,0
- MOV Di,0
- REP MOVSD
-
- POP DS
-
- MOV AX,3
- LEA DX,SiNTABLE
- CALL LOADOVERLAY
-
-
- MOV AX,OFFSET iRQ
- CALL MODiFYiNTER
-
- RET
-
- GOMBiNiT:
- PUSH DS
-
- MOV DWORD PTR CS:FR,02E8C166H
- MOV DWORD PTR CS:SC,02E8C166H
-
- MOV AX,CS:TEXTBUFF
- MOV DS,AX
- MOV DX,0
- MOV AX,20
- CALL LOADOVERLAY
- POP DS
-
-
- MOV AX,BACKSCRPOiNTER
- PUSH DS
- MOV DS,AX
- MOV DX,0
- MOV AX,5
- CALL LOADOVERLAY
-
- POP DS
-
- CALL RASTERWAiT
-
-
- MOV Si,OFFSET PAL2
- CALL SETPAL
-
-
- MOV AX,3
- LEA DX,SiNTABLE
- CALL LOADOVERLAY
-
-
- MOV AX,OFFSET iRQ4
- CALL MODiFYiNTER
-
- RET
-
-
- F14iNiT:
-
-
- MOV AX,BACKSCRPOiNTER
- PUSH DS
- MOV DS,AX
- MOV DX,0
- MOV AX,5
- CALL LOADOVERLAY
-
- POP DS
-
- CALL RASTERWAiT
-
-
- MOV Si,OFFSET PAL3
- CALL SETPAL
-
-
- MOV AX,3
- LEA DX,SiNTABLE
- CALL LOADOVERLAY
-
-
- MOV AX,OFFSET iRQ6
- CALL MODiFYiNTER
-
- RET
-
-
-
- ROTATECOORDS:
-
- MOV BX,ALPHA
- LEA BX,BX+SiNTABLE
- MOV AX,[BX]
- MOV SiN1,AX
- MOV BX,ALPHA
- LEA BX,BX+SiNTABLE+128
- MOV AX,[BX]
- MOV COS1,AX
-
- MOV BX,BETA
- LEA BX,BX+SiNTABLE
- MOV AX,[BX]
- MOV SiN2,AX
- MOV BX,BETA
- LEA BX,BX+SiNTABLE+128
- MOV AX,[BX]
- MOV COS2,AX
-
- MOV BX,GAMMA
- LEA BX,BX+SiNTABLE
- MOV AX,[BX]
- MOV SiN3,AX
- MOV BX,GAMMA
- LEA BX,BX+SiNTABLE+128
- MOV AX,[BX]
- MOV COS3,AX
-
- MOV AX,DS
- MOV ES,AX
- MOV Si,O_COORDS
- LEA Di,R_COORD
- LODSW
- MOV N,AX
- STOSW
- ; ADD Di,2
- CLD
- NEXTVERTEX:
- LODSW
- SHL AX,1
- MOV XCOORD,AX
- LODSW
- SHL AX,1
- MOV YCOORD,AX
- LODSW
- SHL AX,1
- MOV ZCOORD,AX
-
- MOV AX,XCOORD
- PUSH AX
- iMUL COS1
- ADD AX,AX
- ADC DX,DX
- MOV BX,DX
- MOV AX,YCOORD
- iMUL SiN1
- ADD AX,AX
- ADC DX,DX
- SUB BX,DX
- MOV XCOORD,BX
- POP AX
- iMUL SiN1
- ADD AX,AX
- ADC DX,DX
- MOV BX,DX
- MOV AX,YCOORD
- iMUL COS1
- ADD AX,AX
- ADC DX,DX
- ADD BX,DX
- MOV YCOORD,BX
-
- MOV AX,YCOORD
- PUSH AX
- iMUL COS2
- ADD AX,AX
- ADC DX,DX
- MOV BX,DX
- MOV AX,ZCOORD
- iMUL SiN2
- ADD AX,AX
- ADC DX,DX
- SUB BX,DX
- MOV YCOORD,BX
- POP AX
- iMUL SiN2
- ADD AX,AX
- ADC DX,DX
- MOV BX,DX
- MOV AX,ZCOORD
- iMUL COS2
- ADD AX,AX
- ADC DX,DX
- ADD BX,DX
- MOV ZCOORD,BX
-
- MOV AX,XCOORD
- PUSH AX
- iMUL COS3
- ADD AX,AX
- ADC DX,DX
- MOV BX,DX
- MOV AX,ZCOORD
- iMUL SiN3
- ADD AX,AX
- ADC DX,DX
- SUB BX,DX
- MOV XCOORD,BX
- POP AX
- iMUL SiN3
- ADD AX,AX
- ADC DX,DX
- MOV BX,DX
- MOV AX,ZCOORD
- iMUL COS3
- ADD AX,AX
- ADC DX,DX
- ADD BX,DX
- MOV ZCOORD,BX
-
- MOV AX,XCOORD
- STOSW
- MOV AX,YCOORD
- STOSW
- MOV AX,ZCOORD
- STOSW
-
- DEC N
- JNZ NEXTVERTEX
-
- RET
-
-
- PERSPCONV:
- MOV AX,DS
- MOV ES,AX
-
- LEA Si,R_COORD
- LEA Di,C_COORD
-
- LODSW
- STOSW
-
- MOV N,AX
- NEXTONE:
- ADD Si,4
- LODSW
-
- MOV BX,AX
- ADD BX,Z_ADD
- ADD BX,800
- AND BX,BX
- JNZ @ZERO1
- MOV BL,1
- @ZERO1:
-
- SUB Si,6
- LODSW
- ADD AX,Y_ADD
- CWD
- MOV DL,AH
- MOV AH,AL
- XOR AL,AL
- CMP BX,0
- JE NEMKELL
- iDiV BX
- NEMKELL:
- ADD AX,100
- STOSW
-
- LODSW
- ADD AX,X_ADD
-
- CWD
- MOV DL,AH
- MOV AH,AL
- XOR AL,AL
- iDiV BX
- ADD AX,160
- STOSW
-
- ADD Si,2
- DEC N
- JNZ NEXTONE
-
-
- RET
-
-
-
- ViSiBLE:
- LODSW
- MOV DX,AX
- LODSW
- MOV CX,AX
- LODSW
- SUB Si,6
-
- MOV EBX,0
-
- MOV BX,DX
- LEA EBX,EBX*4+C_COORD+2
- MOV Di,BX
-
- MOV BX,CX
- LEA EBX,EBX*4+C_COORD+2
- MOV BP,BX
-
- MOV BX,AX
- LEA EBX,EBX*4+C_COORD+2
-
- MOV AX,[Di]
- SUB AX,DS:[BP]
- MOV CX,AX
-
- MOV AX,[BX+2]
- SUB AX,DS:[BP+2]
-
- iMUL CX
-
- MOV ECX,0
- MOV CX,DX
- SHL ECX,16
- MOV CX,AX
-
- MOV AX,[Di+2]
- SUB AX,DS:[BP+2]
- MOV DX,AX
-
- MOV AX,[BX]
- SUB AX,DS:[BP]
-
- iMUL DX
-
- MOV EBX,0
- MOV BX,DX
- SHL EBX,16
- MOV BX,AX
-
- CMP EBX,ECX
- JLE OK
- CLC
- RET
- OK:
- STC
- RET
-
-
- SETADDRESS:
- MOV DX,3D4H
- MOV CH,AL
- MOV AL,0CH
- MOV CL,0DH
- OUT DX,AX
- MOV AX,CX
- OUT DX,AX
- RET
-
-
-
- OBJECT:
- MOV Z_ADD,6800
- NOTOVERFLOW2:
-
- CALL ROTATECOORDS
- CALL PERSPCONV
- CALL DELETEPUFFER
- CALL MAKENOTSORTEDORDER
- CMP ViSFACES,0
- JE NiNCSMiT
- MOV AX,@DATA
- MOV DS,AX
- PUSH OFFSET ORDER
- MOV AX,ViSFACES
- DEC AX
- SHL AX,2
- ADD AX,OFFSET ORDER
- PUSH AX
- CALL SORTQUiCK
- ; CALL DRAW2
- CALL DRAW
-
- NiNCSMiT:
- ; CALL BE
- CALL RASTERWAiT
- ; CALL Ki
-
- CALL COPYTOSCREEN
-
- MOV AX,0100H
- iNT 16H
- JNZ KiLEP
- CMP Z_ADD,0FD80H
- JGE NOTOVERFLOW2
-
- CALL RESTOREiNTER
-
- MOV Z_ADD,0FD80H
- MOV GAMMA,128
-
- MOV AX,OFFSET iRQ2
- CALL MODiFYiNTER
-
- NOTOVERFLOW21:
-
-
- CALL ROTATECOORDS
- CALL PERSPCONV
- CALL DELETEPUFFER ; = HATTERKiRAKAS
- CALL MAKENOTSORTEDORDER
- CMP ViSFACES,0
- JE NiNCSMiT2
- MOV AX,@DATA
- MOV DS,AX
- PUSH OFFSET ORDER
- MOV AX,ViSFACES
- DEC AX
- SHL AX,2
- ADD AX,OFFSET ORDER
- PUSH AX
- CALL SORTQUiCK
- CALL DRAW
-
- NiNCSMiT2:
- ; CALL BE
- CALL RASTERWAiT
- ; CALL Ki
-
- CALL COPYTOSCREEN
-
- MOV AX,0100H
- iNT 16H
- JNZ KiLEP
- CMP Z_ADD,0H
- JL NOTOVERFLOW21
-
- CALL RESTOREiNTER
- NEXTWAiT:
- MOV AX,0100H
- iNT 16H
- JNZ KiLEP
- CMP CS:ORDERPOiNTER,3
- JB NEXTWAiT
- MOV AX,OFFSET iRQ3
- CALL MODiFYiNTER
- MOV Z_ADD,0H
-
- NOTOVERFLOW22:
-
-
- CALL ROTATECOORDS
- CALL PERSPCONV
- CALL DELETEPUFFER
- CALL MAKENOTSORTEDORDER
- CMP ViSFACES,0
- JE NiNCSMiT22
- MOV AX,@DATA
- MOV DS,AX
- PUSH OFFSET ORDER
- MOV AX,ViSFACES
- DEC AX
- SHL AX,2
- ADD AX,OFFSET ORDER
- PUSH AX
- CALL SORTQUiCK
- CALL DRAW
-
- NiNCSMiT22:
- ; CALL BE
- CALL RASTERWAiT
- ; CALL Ki
-
- CALL COPYTOSCREEN
-
- MOV AX,0100H
- iNT 16H
- JNZ KiLEP
- CMP X_ADD,-700
- JG NOTOVERFLOW22
-
-
-
-
- KiLEP:
- RET
- COPYTOSCREEN:
- PUSH DS
- MOV DS,SCRPOiNTER
- MOV AX,0A000H
- MOV ES,AX
- MOV Di,0
- MOV Si,0
- MOV CX,64000/4
- REP MOVSD
- POP DS
- RET
-
- DELETEPUFFER:
- PUSH DS
-
-
- MOV ES,SCRPOiNTER
- MOV AX,BACKSCRPOiNTER
- MOV DS,AX
-
-
- MOV Di,0
- MOV Si,0
- MOV CX,64000/4
- MOV EAX,0
- REP MOVSD
- POP DS
- RET
-
- MAKENOTSORTEDORDER:
- MOV AX,@DATA
- MOV ES,AX
- MOV DS,AX
- LEA Di,ORDER
- MOV Si,FACES
-
- MOV ViSFACES,0
-
- LODSW
- MOV N,AX
-
- NEXT_FACE:
- PUSH Di
- CALL ViSiBLE
- POP Di
- LATHATO:
- JC ViSi
- NEXTNOTViSCOORD:
- LODSW
- CMP AX,EOF
- JNE NEXTNOTViSCOORD
- JMP NOTViS
- ViSi:
- iNC ViSFACES
- MOV AX,Si
- STOSW
- MOV EBP,0
- MOV DX,0
- NEXTCOORD:
- LODSW
- CMP AX,EOF
- JE VEGE
-
- MOV BX,AX ; MULTiPLiED BY 6
- SHL BX,1
- ADD BX,AX
- ADD BX,BX
-
- MOVSX EAX,R_COORD[BX+6]
- ADD EBP,EAX ; ADD THE Z COORD TO THE RESULT
- iNC DX ; iNCREASE THE COUNTER OF THE
- ; COORDiNATE NUMBER
- JMP NEXTCOORD
-
- VEGE:
- MOVZX EBX,DX ; GET THE DiViDER FROM THE
- ; COUNTER
- MOV EAX,EBP
- CDQ
- iDiV EBX ; GET THE AVERAGE Z COORD
- STOSW
- NOTViS:
- DEC N
- JNZ NEXT_FACE
- MOV AX,EOF
- STOSW
- RET
-
- SORTQUiCK:
- MOV BP,SP
- MOV Si,SS:[BP+4]
- MOV Di,SS:[BP+2]
- MOV ELEJE,Si
- MOV VEGED,Di
- MOV BP,Di
- SUB BP,Si
- SHR BP,3
- SHL BP,2
- ADD BP,Si
-
- MOV CX,DS:[BP+2]
- CiKLUS1:
-
- CiKLUS2:
- CMP [Si+2],CX
- JLE CiKLUS2VEG
- ADD Si,4
- JMP CiKLUS2
- CiKLUS2VEG:
-
- CiKLUS3:
- CMP [Di+2],CX
- JGE CiKLUS3VEG
- SUB Di,4
- JMP CiKLUS3
- CiKLUS3VEG:
-
- CMP Si,Di
- JA NiNCSCSERE
- MOV AX,[Si]
- XCHG AX,[Di]
- XCHG [Si],AX
- MOV AX,[Si+2]
- XCHG AX,[Di+2]
- XCHG [Si+2],AX
- ADD Si,4
- SUB Di,4
- NiNCSCSERE:
-
- CMP Si,Di
- JBE CiKLUS1
-
- CMP ELEJE,Di
- JNB SEMMi1
- PUSH Si
- PUSH VEGED
- PUSH ELEJE
- PUSH Di
- CALL SORTQUiCK
- POP VEGED
- POP Si
- SEMMi1:
-
- CMP Si,VEGED
- JNB SEMMi2
- PUSH Si
- PUSH VEGED
- CALL SORTQUiCK
- SEMMi2:
-
- RET 4
-
- SETPAL:
- MOV Si,OFFSET PAL
- MOV DX,3C8H
- MOV CX,0
- NEXTCOLOR2:
- MOV AL,CL
- OUT DX,AL
- iNC DX
- LODSB
- OUT DX,AL
- LODSB
- OUT DX,AL
- LODSB
- OUT DX,AL
- iNC CX
- DEC DX
- CMP CX,256
- JB NEXTCOLOR2
- RET
-
- GOMBOBJECT:
-
- CALL ROTATECOORDS
- CALL PERSPCONV
- CALL MAKENOTSORTEDORDER
- CMP ViSFACES,0
- JE NiNCSMiT12S
- MOV AX,@DATA
- MOV DS,AX
- PUSH OFFSET ORDER
- MOV AX,ViSFACES
- DEC AX
- SHL AX,2
- ADD AX,OFFSET ORDER
- PUSH AX
- CALL SORTQUiCK
- ; CALL DRAW2
- CALL DELETEPUFFER
- CALL DRAW
-
- NiNCSMiT12S:
- CALL RASTERWAiT
-
- CALL COPYTOSCREEN
-
- CMP Z_ADD,0
- JG GOMBOBJECT
-
- CALL RESTOREiNTER
- MOV Z_ADD,0
- MOV BYTE PTR CS:LATHATO,73H
- MOV AX,OFFSET iRQ5
- CALL MODiFYiNTER
-
- GOMBOB2:
- CALL ROTATECOORDS
- CALL PERSPCONV
- CALL MAKENOTSORTEDORDER
- CMP ViSFACES,0
- JE NiNCSMiT12S1
- MOV AX,@DATA
- MOV DS,AX
- PUSH OFFSET ORDER
- MOV AX,ViSFACES
- DEC AX
- SHL AX,2
- ADD AX,OFFSET ORDER
- PUSH AX
- CALL SORTQUiCK
- ; CALL DRAW2
- CALL DELETEPUFFER
- CALL DRAW
-
- NiNCSMiT12S1:
- CALL RASTERWAiT
-
- CALL COPYTOSCREEN
-
- CMP CS:ORDERPOiNTER,14
- JB GOMBOB2
-
- MOV BYTE PTR CS:LATHATO,72H
- RET
-
- F14OBJECT:
- CALL ROTATECOORDS
- CALL PERSPCONV
- CALL MAKENOTSORTEDORDER
- CMP ViSFACES,0
- JE NiNCSMiT12SQ
- MOV AX,@DATA
- MOV DS,AX
- PUSH OFFSET ORDER
- MOV AX,ViSFACES
- DEC AX
- SHL AX,2
- ADD AX,OFFSET ORDER
- PUSH AX
- CALL SORTQUiCK
- ; CALL DRAW2
- CALL DELETEPUFFER
- CALL DRAW2
-
- NiNCSMiT12SQ:
- CALL RASTERWAiT
-
- CALL COPYTOSCREEN
-
- CMP Z_ADD,0
- JL F14OBJECT
-
- CALL RESTOREiNTER
- MOV Z_ADD,0
-
- MOV AX,OFFSET iRQ7
- CALL MODiFYiNTER
-
- F14OBJECT2:
- CALL ROTATECOORDS
- CALL PERSPCONV
- CALL MAKENOTSORTEDORDER
- CMP ViSFACES,0
- JE NiNCSMiT12SQRT
- MOV AX,@DATA
- MOV DS,AX
- PUSH OFFSET ORDER
- MOV AX,ViSFACES
- DEC AX
- SHL AX,2
- ADD AX,OFFSET ORDER
- PUSH AX
- CALL SORTQUiCK
- ; CALL DRAW2
- CALL DELETEPUFFER
- CALL DRAW2
-
- NiNCSMiT12SQRT:
- CALL RASTERWAiT
-
- CALL COPYTOSCREEN
-
- CMP GAMMA,450
- JL F14OBJECT2
-
- CALL RESTOREiNTER
- MOV GAMMA,450
-
- MOV AX,OFFSET iRQ8
- CALL MODiFYiNTER
- F14OBJECT3:
- CALL ROTATECOORDS
- CALL PERSPCONV
- CALL MAKENOTSORTEDORDER
- CMP ViSFACES,0
- JE NiNCSMiT12SQRTQ
- MOV AX,@DATA
- MOV DS,AX
- PUSH OFFSET ORDER
- MOV AX,ViSFACES
- DEC AX
- SHL AX,2
- ADD AX,OFFSET ORDER
- PUSH AX
- CALL SORTQUiCK
- ; CALL DRAW2
- CALL DELETEPUFFER
- CALL DRAW2
-
- NiNCSMiT12SQRTQ:
- CALL RASTERWAiT
-
- CALL COPYTOSCREEN
-
- CMP GAMMA,384
- JG F14OBJECT3
-
-
-
- CALL RESTOREiNTER
- MOV GAMMA,384
-
- MOV AX,OFFSET iRQ9
- CALL MODiFYiNTER
- F14OBJECT4:
- CALL ROTATECOORDS
- CALL PERSPCONV
- CALL MAKENOTSORTEDORDER
- CMP ViSFACES,0
- JE NiNCSMiT12SQRTQ4
- MOV AX,@DATA
- MOV DS,AX
- PUSH OFFSET ORDER
- MOV AX,ViSFACES
- DEC AX
- SHL AX,2
- ADD AX,OFFSET ORDER
- PUSH AX
- CALL SORTQUiCK
- ; CALL DRAW2
- CALL DELETEPUFFER
- CALL DRAW2
-
- NiNCSMiT12SQRTQ4:
- CALL RASTERWAiT
-
- CALL COPYTOSCREEN
-
- CMP X_ADD,-80
- JG F14OBJECT4
-
- CALL RESTOREiNTER
- MOV X_ADD,-80
-
- MOV AX,OFFSET iRQ10
- CALL MODiFYiNTER
- F14OBJECT5:
- CALL ROTATECOORDS
- CALL PERSPCONV
- CALL MAKENOTSORTEDORDER
- CMP ViSFACES,0
- JE NiNCSMiT12SQRTQ5
- MOV AX,@DATA
- MOV DS,AX
- PUSH OFFSET ORDER
- MOV AX,ViSFACES
- DEC AX
- SHL AX,2
- ADD AX,OFFSET ORDER
- PUSH AX
- CALL SORTQUiCK
- ; CALL DRAW2
- CALL DELETEPUFFER
- CALL DRAW2
-
- NiNCSMiT12SQRTQ5:
- CALL RASTERWAiT
-
- CALL COPYTOSCREEN
-
- CMP BETA,300
- JL F14OBJECT5
-
-
- CALL RESTOREiNTER
- MOV BETA,300
-
- MOV AX,OFFSET iRQ11
- CALL MODiFYiNTER
- F14OBJECT6:
- CALL ROTATECOORDS
- CALL PERSPCONV
- CALL MAKENOTSORTEDORDER
- CMP ViSFACES,0
- JE NiNCSMiT12SQRTQ6
- MOV AX,@DATA
- MOV DS,AX
- PUSH OFFSET ORDER
- MOV AX,ViSFACES
- DEC AX
- SHL AX,2
- ADD AX,OFFSET ORDER
- PUSH AX
- CALL SORTQUiCK
- ; CALL DRAW2
- CALL DELETEPUFFER
- CALL DRAW2
-
- NiNCSMiT12SQRTQ6:
- CALL RASTERWAiT
-
- CALL COPYTOSCREEN
-
- CMP BETA,150
- JG F14OBJECT6
-
-
- CALL RESTOREiNTER
- MOV BETA,150
-
-
-
- MOV AX,OFFSET iRQ12
- CALL MODiFYiNTER
- F14OBJECT7:
- CALL ROTATECOORDS
- CALL PERSPCONV
- CALL MAKENOTSORTEDORDER
- CMP ViSFACES,0
- JE NiNCSMiT12SQRTQ7
- MOV AX,@DATA
- MOV DS,AX
- PUSH OFFSET ORDER
- MOV AX,ViSFACES
- DEC AX
- SHL AX,2
- ADD AX,OFFSET ORDER
- PUSH AX
- CALL SORTQUiCK
- ; CALL DRAW2
- CALL DELETEPUFFER
- CALL DRAW2
-
- NiNCSMiT12SQRTQ7:
- CALL RASTERWAiT
-
- CALL COPYTOSCREEN
-
- CMP CS:ORDERPOiNTER,17
- JL F14OBJECT7
-
-
-
-
-
-
-
-
-
-
-
-
-
- RET
- iRQ:
- PUSH DS
- PUSH AX
- MOV AX,@DATA
- MOV DS,AX
-
- SUB Z_ADD,40
-
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ADD GAMMA,12
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
-
- CMP ALPHA,512
- JB OK1
- MOV ALPHA,0
- OK1:
- CMP BETA,512
- JB OK2
- MOV BETA,0
- OK2:
- CMP GAMMA,512
- JB OK3
- MOV GAMMA,0
- OK3:
-
- POP AX
- POP DS
- JUMP: DB 0EAH
- iNTSTORE DW 0,0
- ;RET
-
- iRQ2:
- PUSH AX
- PUSH DS
- MOV AX,@DATA
-
- ADD Z_ADD,10
-
- POP DS
- POP AX
- JMP JUMP
-
- iRQ3:
- PUSH AX
- PUSH DS
- MOV AX,@DATA
- MOV DS,AX
-
- XOR SECOND,1
- CMP SECOND,1
- JE OK31
-
- SUB X_ADD,7
- SUB ALPHA,2
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
-
- CMP ALPHA,0
- JG OK11
- ADD ALPHA,512
- OK11:
- CMP BETA,512
- JB OK21
- MOV BETA,0
- OK21:
- CMP GAMMA,512
- JB OK31
- MOV GAMMA,0
- OK31:
- POP DS
- POP AX
- JMP JUMP
-
- iRQ4:
- PUSH AX
- PUSH DS
- MOV AX,@DATA
- MOV DS,AX
-
- SUB Z_ADD,24
-
- iNC ALPHA
- iNC BETA
- iNC GAMMA
- iNC ALPHA
- iNC BETA
- iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
-
- CMP ALPHA,512
- JG OK111
- MOV ALPHA,0
- OK111:
- CMP BETA,512
- JB OK211
- MOV BETA,0
- OK211:
- CMP GAMMA,512
- JB OK311
- MOV GAMMA,0
- OK311:
- POP DS
- POP AX
- JMP JUMP
-
- iRQ5:
- PUSH AX
- PUSH DS
- MOV AX,@DATA
- MOV DS,AX
-
-
- iNC ALPHA
- iNC BETA
- iNC GAMMA
- iNC ALPHA
- iNC BETA
- iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
-
- CMP ALPHA,512
- JG OK1116
- MOV ALPHA,0
- OK1116:
- CMP BETA,512
- JB OK2116
- MOV BETA,0
- OK2116:
- CMP GAMMA,512
- JB OK3116
- MOV GAMMA,0
- OK3116:
- POP DS
- POP AX
- JMP JUMP
-
- iRQ6:
- PUSH AX
- PUSH DS
- MOV AX,@DATA
- MOV DS,AX
-
-
- ADD Z_ADD,4
- SUB Y_ADD,1
- ADD X_ADD,1
- ADD BETA,2
-
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
-
- CMP ALPHA,512
- JG OK1116Q
- MOV ALPHA,0
- OK1116Q:
- CMP BETA,512
- JB OK2116Q
- MOV BETA,0
- OK2116Q:
- CMP GAMMA,512
- JB OK3116Q
- MOV GAMMA,0
- OK3116Q:
- POP DS
- POP AX
-
- JMP JUMP
-
- iRQ7:
- PUSH AX
- PUSH DS
- MOV AX,@DATA
- MOV DS,AX
-
-
- ADD GAMMA,2
- ADD Z_ADD,1
-
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
-
- CMP ALPHA,512
- JG OK1116QR
- MOV ALPHA,0
- OK1116QR:
- CMP BETA,512
- JB OK2116QR
- MOV BETA,0
- OK2116QR:
- CMP GAMMA,512
- JB OK3116QR
- MOV GAMMA,0
- OK3116QR:
- POP DS
- POP AX
-
- JMP JUMP
-
- iRQ8:
- PUSH AX
- PUSH DS
- MOV AX,@DATA
- MOV DS,AX
-
-
- SUB GAMMA,2
- SUB Z_ADD,1
- SUB X_ADD,1
- SUB BETA,2
-
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
-
- CMP ALPHA,512
- JG OK1116QRQ
- MOV ALPHA,0
- OK1116QRQ:
- CMP BETA,512
- JB OK2116QRQ
- MOV BETA,0
- OK2116QRQ:
- CMP GAMMA,512
- JB OK3116QRQ
- MOV GAMMA,0
- OK3116QRQ:
- POP DS
- POP AX
-
- JMP JUMP
-
-
- iRQ9:
- PUSH AX
- PUSH DS
- MOV AX,@DATA
- MOV DS,AX
-
-
- SUB Z_ADD,1
- SUB X_ADD,2
-
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
-
- CMP ALPHA,512
- JG OK1116QRQ1
- MOV ALPHA,0
- OK1116QRQ1:
- CMP BETA,512
- JB OK2116QRQ1
- MOV BETA,0
- OK2116QRQ1:
- CMP GAMMA,512
- JB OK3116QRQ1
- MOV GAMMA,0
- OK3116QRQ1:
- POP DS
- POP AX
-
- JMP JUMP
-
- iRQ10:
- PUSH AX
- PUSH DS
- MOV AX,@DATA
- MOV DS,AX
-
-
- ADD BETA,2
-
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
-
- CMP ALPHA,512
- JG OK1116QRQ12
- MOV ALPHA,0
- OK1116QRQ12:
- CMP BETA,512
- JB OK2116QRQ12
- MOV BETA,0
- OK2116QRQ12:
- CMP GAMMA,512
- JB OK3116QRQ12
- MOV GAMMA,0
- OK3116QRQ12:
- POP DS
- POP AX
-
- JMP JUMP
-
- iRQ11:
- PUSH AX
- PUSH DS
- MOV AX,@DATA
- MOV DS,AX
-
-
- ADD X_ADD,2
- SUB BETA,2
-
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
-
- CMP ALPHA,512
- JG OK1116QRQ123
- MOV ALPHA,0
- OK1116QRQ123:
- CMP BETA,512
- JB OK2116QRQ123
- MOV BETA,0
- OK2116QRQ123:
- CMP GAMMA,512
- JB OK3116QRQ123
- MOV GAMMA,0
- OK3116QRQ123:
- POP DS
- POP AX
-
- JMP JUMP
-
-
- iRQ12:
- PUSH AX
- PUSH DS
- MOV AX,@DATA
- MOV DS,AX
-
-
- ADD Z_ADD,32
-
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
- ; iNC ALPHA
- ; iNC BETA
- ; iNC GAMMA
-
- CMP ALPHA,512
- JG OK1116QRQ1234
- MOV ALPHA,0
- OK1116QRQ1234:
- CMP BETA,512
- JB OK2116QRQ1234
- MOV BETA,0
- OK2116QRQ1234:
- CMP GAMMA,512
- JB OK3116QRQ1234
- MOV GAMMA,0
- OK3116QRQ1234:
- POP DS
- POP AX
-
- JMP JUMP
-
-
-
-
- iNCLUDE TEXTNEW\TEXTURE.ASM
- iNCLUDE TEXTNEW\GOURAUD.ASM
- iNCLUDE TEXTNEW\DRAW.ASM
- iNCLUDE TEXTNEW\iNTER.ASM
- TEXTBUFF DW ?
-
-
-
-
-
-
-
-
-
-
-
- .DATA
-
- iNCLUDE TEXTNEW\MARBTEAL.PAL
- iNCLUDE TEXTNEW\TEXTURE1.PAL
- iNCLUDE TEXTNEW\GOUR.PAL
-
- iNCLUDE TEXTNEW\SHOCK.i
- iNCLUDE TEXTNEW\GOMB.i
- iNCLUDE TEXTNEW\F14STAND.i
-
- BACKSCRPOiNTER DW ?
-
- SECOND DB 0
-
- ALPHA DW 128
- BETA DW 0
- GAMMA DW 128
-
- SCRPOiNTER DW 0
-
- X_ADD DW -20
- Y_ADD DW 0
- Z_ADD DW 0
-
- ELEJE DW ?
- VEGED DW ?
-
- O_COORDS DW ?
-
- R_COORD DW ?
- DW COORD_NUM*3 DUP (?)
-
- C_COORD DW ?
- DW COORD_NUM*2 DUP (?)
-
- FACES DW ?
-
- N DW ?
-
- XCOORD DW ?
- YCOORD DW ?
- ZCOORD DW ?
-
- SiN1 DW ?
- SiN2 DW ?
- SiN3 DW ?
-
- COS1 DW ?
- COS2 DW ?
- COS3 DW ?
-
- ORDER DW 2000*2 DUP (?)
-
- GOU DW 1
- TEX DW 1
-
- SiNTABLE DW 320 DUP (?)
-
- ViSFACES DW ?
-
- GOURBUF DW 256 DUP (?)
- POiNTBUF DW 256*2 DUP (?)
- TEXTiBUF DW 0,0,64,0,64,64,0,64
- TEXTiBUF2 DW 252 DUP (?)
- TEMPL1 DW ?
- TEMPR1 DW ?
- TEMPL2 DW ?
- TEMPR2 DW ?
-