home *** CD-ROM | disk | FTP | other *** search
/ CD-X 1 / cdx_01.iso / demodisc / cyberdan / intrance / anm / anim.asm next >
Encoding:
Assembly Source File  |  1995-03-09  |  4.9 KB  |  174 lines

  1. .MODEL SMALL
  2. .386
  3. .STACK
  4. .CODE
  5.  
  6.                 SCREEN  DW 0
  7.                 SWITCH  MACRO
  8.                 MOV     DX,3D4H
  9.                 MOV     AL,0CH
  10.                 MOV     AH,BYTE PTR CS:[SCREEN+1]
  11.                 OUT     DX,AX
  12.                 MOV     AL,0DH
  13.                 MOV     AH,BYTE PTR CS:[SCREEN+0]
  14.                 OUT     DX,AX
  15.                 XOR     CS:[SCREEN],8000H/4
  16.                 MOV     AX,ES
  17.                 XOR     AX,0800H
  18.                 MOV     ES,AX
  19.                 ENDM
  20.  
  21.                 EXTRN   ANIM_KEP:WORD
  22.         PUBLIC    ANIM
  23.                 KEPKOCK DW 0
  24.                 ANMPUFF DW 0
  25.         KEP    DW 0
  26.                 LOOPOK  DW 0
  27.                 PINGP   DW 0
  28.                 KEPSZAM DW 0
  29. ;------------------------------------------------------------------------------
  30. ANIM:           POP     EAX
  31.                 POP     CS:LOOPOK              ; MEGNEZZUK LOOPOLVA VAN -E
  32.                 POP     CS:PINGP
  33.                 POP     CS:KEPSZAM
  34.                 PUSH    EAX
  35.                 MOV     DX,3D4H                ; SWITCH TO 320X100X256C
  36.         MOV    AL,9
  37.         OUT    DX,AL
  38.         INC    DX
  39.         MOV    AL,3
  40.         OUT    DX,AL
  41.  
  42.                 MOV     AX,CS:[ANIM_KEP]       ; THE UNCOMPRESSED 32 PICCY
  43.                 ADD     AX,2000
  44.                 MOV     CS:[ANMPUFF],AX
  45.         MOV    DS,AX
  46.         MOV    AX,0A000H
  47.         MOV    ES,AX
  48.  
  49.                 CALL    PALETTA
  50.  
  51.                 CALL    INIT8
  52.                 MOV     CX,CS:LOOPOK
  53. PLAYANILOOP:    PUSH    CX DS
  54.                 MOV     AX,CS:KEPSZAM
  55.                 MOV     CS:KEPKOCK,AX
  56. PLAYANI:    CMP    CS:[FRAMES],50
  57.         JB    PLAYANI
  58.         CALL    RASTERWAIT2
  59.         MOV    CS:[FRAMES],0
  60.                 CALL    KEPKIRAK
  61.         SWITCH
  62.                 MOV     AX,DS
  63.                 ADD     AX,4000/16
  64.                 MOV     DS,AX
  65.                 CMP     CS:[KEPKOCK],0
  66.                 JE      ENDE1
  67.                 DEC     CS:[KEPKOCK]
  68.         JMP     PLAYANI
  69. ENDE1:          MOV     BX,DS
  70.                 POP     DS CX
  71.                 LOOP    PLAYANILOOP
  72. ENDE:           CMP     CS:PINGP,1
  73.                 JNE     ENDEND
  74.                 MOV     DS,BX
  75. PLAYANILOOP2:   MOV     AX,CS:KEPSZAM     ;EZ A RESZ CSAK A PINGPONGHOZ KELL
  76.                 MOV     CS:KEPKOCK,AX
  77. PLAYANI2:       CMP     CS:[FRAMES],50
  78.                 JB      PLAYANI2
  79.                 CALL    RASTERWAIT2
  80.                 MOV     CS:[FRAMES],0
  81.                 CALL    KEPKIRAK
  82.                 SWITCH
  83.                 MOV     AX,DS
  84.                 SUB     AX,4000/16
  85.                 MOV     DS,AX
  86.                 CMP     CS:[KEPKOCK],0
  87.                 JE      ENDEND
  88.                 DEC     CS:[KEPKOCK]
  89.                 JMP     PLAYANI2
  90. ENDEND:         CALL    DEINIT8
  91.         RETF
  92.  
  93. KEPKIRAK:       PUSHA
  94.                 PUSH    DS
  95.                 PUSH    ES
  96.                 MOV     AX,CS:[ANIM_KEP]
  97.         MOV    ES,AX
  98.                 XOR     SI,SI
  99.         XOR    DI,DI    
  100.         MOV    CX,50
  101. EGYKEP:         PUSH    CX
  102.         MOV    CX,2
  103. EGYNEGYES:      PUSH    CX
  104.         MOV    CX,80
  105. EGYSOR:         PUSH    CX
  106.         LODSB    
  107.         MOV    AH,AL
  108.         MOV    CX,2
  109.         REP    STOSW
  110.         POP    CX
  111.         LOOP    EGYSOR
  112.         SUB    SI,80
  113.         POP     CX
  114.         LOOP    EGYNEGYES
  115.         ADD    SI,80
  116.         POP    CX
  117.         LOOP    EGYKEP
  118.                 CALL    SMOOTH
  119.         POP    ES
  120.                 MOV     SI,3200
  121.                 MOV     DI,3200
  122.                 MOV     DS,CS:[ANIM_KEP]
  123.                 MOV     CX,8000-1600
  124.                 REP     MOVSD
  125.                 POP     DS
  126.                 POPA
  127.                 RET
  128. ;------------------------------------------------------------------------------
  129. RASTERWAiT2:    PUSH    DX
  130.             PUSH    AX
  131.             MOV     DX,3DAH
  132. RASTERW1:    iN     AL,DX
  133.             AND     AL,8
  134.             JE     RASTERW1
  135.         POP     AX
  136.             POP     DX
  137.             RET
  138. ;------------------------------------------------------------------------------
  139. PALETTA:        MOV     DX,3C8H
  140.         MOV    AL,1
  141.                 OUT     DX,AL
  142.                 XOR     BX,BX
  143.                 INC     DX
  144.                 MOV     CX,64
  145. PALINC:         MOV     AL,BL
  146.                 SHR     AL,1
  147.                 OUT     DX,AL
  148.                 OUT     DX,AL
  149.                 MOV     AL,BL
  150.                 OUT     DX,AL
  151.         INC    BX
  152.                 LOOP    PALINC
  153.                 RET
  154. ;------------------------------------------------------------------------------
  155. SMOOTH:         MOV     SI,3200
  156. SMOO:           MOV     AH,0
  157.                 MOV     BH,0
  158.                 MOV     AL,BYTE PTR ES:[SI-1]
  159.                 MOV     BL,BYTE PTR ES:[SI+1]
  160.                 ADD     AX,BX
  161.                 MOV     BL,BYTE PTR ES:[SI-320]
  162.                 ADD     AX,BX
  163.                 MOV     BL,BYTE PTR ES:[SI+320]
  164.                 ADD     AX,BX
  165.                 SHR     AX,2
  166.                 MOV     BYTE PTR ES:[SI],AL
  167.                 INC     SI
  168.                 CMP     SI,32000-3200
  169.                 JBE     SMOO
  170.                 RET
  171. ;------------------------------------------------------------------------------
  172. INCLUDE     \LANGUAGE\ASM\ROUTINES\IRQ2.INC
  173. END
  174.