home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / GRAPHICS / FADERS.ZIP / FADEPRC.ASM < prev    next >
Encoding:
Assembly Source File  |  1995-08-25  |  4.0 KB  |  151 lines

  1. P286                                    ; Uses 286 instructions
  2. jumps                                   ; Let TASM handle out-of-range jumps
  3.  
  4.         DOSSEG                  
  5.         .MODEL  medium
  6.  
  7.         PUBLIC  FADEIN
  8.     PUBLIC  FADEOUT
  9.  
  10.         .CODE
  11. pal_buf db 768 dup(0)   ;Tijdelijke buffer      
  12. palette db 0,0,0,0,0,42,0,42,0,0,42,42,42,0,0,42,0,42,42,42,0,42,42,42,0,0,21,0,0,63,0,42
  13.     db 21,0,42,63,42,0,21,42,0,63,42,42,21,42,42,63,0,21,0,0,21,42,0,63,0,0,63,42,42,21,0,42
  14.     db 21,42,42,63,0,42,63,42,0,21,21,0,21,63,0,63,21,0,63,63,42,21,21,42,21,63,42,63,21,42,63,63
  15.     db 21,0,0,21,0,42,21,42,0,21,42,42,63,0,0,63,0,42,63,42,0,63,42,42,21,0,21,21,0,63,21,42,21
  16.     db 21,42,63,63,0,21,63,0,63,63,42,21,63,42,63,21,21,0,21,21,42,21,63,0,21,63,42,63,21,0,63
  17.     db 21,42,63,63,0,63,63,42,21,21,21,21,21,63,21,63,21,21,63,63,63,21,21,63,21,63,63,63,21,63
  18.     db 63,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  19.     db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  20.     db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  21.     db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  22.     db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  23.     db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  24.     db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  25.     db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  26.     db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  27.     db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  28.     db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  29.     db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  30.     db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  31.  
  32. ;include palette.inc     ;Palette waarden
  33.  
  34. fade_in    proc
  35.            mov bx,0
  36. @@fade1:   mov al,[palette+bx]
  37.            mov dl,[pal_buf+bx]
  38.            sub al,dl
  39.            cmp al,0
  40.            je no_inc
  41.            cmp al,1
  42.            je @@f1
  43.            inc [pal_buf+bx]
  44. @@f1:
  45.            inc [pal_buf+bx]
  46. no_inc:    inc bx
  47.            cmp bx,768
  48.            jne @@fade1
  49.            ret
  50. endp       fade_in
  51.  
  52. fade_out   proc
  53.            mov bx,0
  54. @@fade2:   cmp [pal_buf+bx],0
  55.            je no_dec
  56.            cmp [pal_buf+bx],1
  57.            je @@f2
  58.            dec [pal_buf+bx]
  59. @@f2:      dec [pal_buf+bx]        
  60. no_dec:    inc bx
  61.            cmp bx,768
  62.            jne @@fade2
  63.            ret
  64. endp       fade_out
  65.  
  66. write_palette proc   ;Write Palette to Video-Port
  67.         mov dx, 03DAh              
  68.     v1:
  69.         in    al, dx
  70.         test   al,08h
  71.         jnz    v1
  72.     v2:
  73.         in     al, dx
  74.         test   al,08h
  75.         jz     v2
  76.  
  77.         mov dx,3c8h
  78.         mov ax,seg pal_buf
  79.         mov ds,ax
  80.         mov si,offset pal_buf
  81.         mov cx,768
  82.         xor al,al
  83.         out dx,al
  84.         inc dx
  85.         rep outsb
  86.         ret
  87. endp            write_palette
  88.  
  89.  
  90. FADEIN PROC FAR
  91.  
  92.                call write_palette  ;Total blackness 4 fade-in
  93.                mov bp,31       ;Fade-in-loop
  94. fade_in_loop:  call fade_in
  95.                call write_palette
  96.                dec bp
  97.                jnz fade_in_loop
  98.  
  99. RET
  100. ENDP
  101.  
  102. FADEOUT PROC  FAR
  103.         mov ax,seg palette
  104.         mov ds,ax      
  105.         mov si,offset palette
  106.  
  107.         mov ax,seg pal_buf
  108.         mov es,ax
  109.         mov di,offset pal_buf
  110.  
  111.         mov cx,384    
  112.         rep movsw        
  113.  
  114.                 mov bp,31       ;Fade-out-loop
  115. fade_out_loop:  call fade_out
  116.                 call write_palette
  117.                 dec bp
  118.                 jnz fade_out_loop
  119. ret             ; try to erase this and see what happends
  120.         
  121. ENDP
  122.  
  123.         END
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.         
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.