home *** CD-ROM | disk | FTP | other *** search
- .MODEL SMALL
- .386
- .STACK
- .CODE
-
- SCREEN DW 0
- SWITCH MACRO
- MOV DX,3D4H
- MOV AL,0CH
- MOV AH,BYTE PTR CS:[SCREEN+1]
- OUT DX,AX
- MOV AL,0DH
- MOV AH,BYTE PTR CS:[SCREEN+0]
- OUT DX,AX
- XOR CS:[SCREEN],8000H/4
- MOV AX,ES
- XOR AX,0800H
- MOV ES,AX
- ENDM
-
- EXTRN ANIM_KEP:WORD
- PUBLIC ANIM
- KEPKOCK DW 0
- ANMPUFF DW 0
- KEP DW 0
- LOOPOK DW 0
- PINGP DW 0
- KEPSZAM DW 0
- ;------------------------------------------------------------------------------
- ANIM: POP EAX
- POP CS:LOOPOK ; MEGNEZZUK LOOPOLVA VAN -E
- POP CS:PINGP
- POP CS:KEPSZAM
- PUSH EAX
- MOV DX,3D4H ; SWITCH TO 320X100X256C
- MOV AL,9
- OUT DX,AL
- INC DX
- MOV AL,3
- OUT DX,AL
-
- MOV AX,CS:[ANIM_KEP] ; THE UNCOMPRESSED 32 PICCY
- ADD AX,2000
- MOV CS:[ANMPUFF],AX
- MOV DS,AX
- MOV AX,0A000H
- MOV ES,AX
-
- CALL PALETTA
-
- CALL INIT8
- MOV CX,CS:LOOPOK
- PLAYANILOOP: PUSH CX DS
- MOV AX,CS:KEPSZAM
- MOV CS:KEPKOCK,AX
- PLAYANI: CMP CS:[FRAMES],50
- JB PLAYANI
- CALL RASTERWAIT2
- MOV CS:[FRAMES],0
- CALL KEPKIRAK
- SWITCH
- MOV AX,DS
- ADD AX,4000/16
- MOV DS,AX
- CMP CS:[KEPKOCK],0
- JE ENDE1
- DEC CS:[KEPKOCK]
- JMP PLAYANI
- ENDE1: MOV BX,DS
- POP DS CX
- LOOP PLAYANILOOP
- ENDE: CMP CS:PINGP,1
- JNE ENDEND
- MOV DS,BX
- PLAYANILOOP2: MOV AX,CS:KEPSZAM ;EZ A RESZ CSAK A PINGPONGHOZ KELL
- MOV CS:KEPKOCK,AX
- PLAYANI2: CMP CS:[FRAMES],50
- JB PLAYANI2
- CALL RASTERWAIT2
- MOV CS:[FRAMES],0
- CALL KEPKIRAK
- SWITCH
- MOV AX,DS
- SUB AX,4000/16
- MOV DS,AX
- CMP CS:[KEPKOCK],0
- JE ENDEND
- DEC CS:[KEPKOCK]
- JMP PLAYANI2
- ENDEND: CALL DEINIT8
- RETF
-
- KEPKIRAK: PUSHA
- PUSH DS
- PUSH ES
- MOV AX,CS:[ANIM_KEP]
- MOV ES,AX
- XOR SI,SI
- XOR DI,DI
- MOV CX,50
- EGYKEP: PUSH CX
- MOV CX,2
- EGYNEGYES: PUSH CX
- MOV CX,80
- EGYSOR: PUSH CX
- LODSB
- MOV AH,AL
- MOV CX,2
- REP STOSW
- POP CX
- LOOP EGYSOR
- SUB SI,80
- POP CX
- LOOP EGYNEGYES
- ADD SI,80
- POP CX
- LOOP EGYKEP
- CALL SMOOTH
- POP ES
- MOV SI,3200
- MOV DI,3200
- MOV DS,CS:[ANIM_KEP]
- MOV CX,8000-1600
- REP MOVSD
- POP DS
- POPA
- RET
- ;------------------------------------------------------------------------------
- RASTERWAiT2: PUSH DX
- PUSH AX
- MOV DX,3DAH
- RASTERW1: iN AL,DX
- AND AL,8
- JE RASTERW1
- POP AX
- POP DX
- RET
- ;------------------------------------------------------------------------------
- PALETTA: MOV DX,3C8H
- MOV AL,1
- OUT DX,AL
- XOR BX,BX
- INC DX
- MOV CX,64
- PALINC: MOV AL,BL
- SHR AL,1
- OUT DX,AL
- OUT DX,AL
- MOV AL,BL
- OUT DX,AL
- INC BX
- LOOP PALINC
- RET
- ;------------------------------------------------------------------------------
- SMOOTH: MOV SI,3200
- SMOO: MOV AH,0
- MOV BH,0
- MOV AL,BYTE PTR ES:[SI-1]
- MOV BL,BYTE PTR ES:[SI+1]
- ADD AX,BX
- MOV BL,BYTE PTR ES:[SI-320]
- ADD AX,BX
- MOV BL,BYTE PTR ES:[SI+320]
- ADD AX,BX
- SHR AX,2
- MOV BYTE PTR ES:[SI],AL
- INC SI
- CMP SI,32000-3200
- JBE SMOO
- RET
- ;------------------------------------------------------------------------------
- INCLUDE \LANGUAGE\ASM\ROUTINES\IRQ2.INC
- END
-