home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / progmisc / hellsrc.zip / END.M < prev    next >
Text File  |  1993-10-19  |  3KB  |  106 lines

  1. endpalptr       dd      ?               ; ptr to end pic pal
  2. endretrace      dw      0               ; retrace flag and counter
  3.  
  4. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  5. ; Put end piccy to screen and wait a little
  6. ; Out:
  7. ;   EAX,EBX,ECX,EDX,ESI,EDI - ?
  8. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  9. _end:
  10.         mov v86r_ax,12h                 ; 640x480x16 mode
  11.         mov al,10h
  12.         int 33h
  13.         mov dx,3dah
  14.         in al,dx
  15.         test al,8
  16.         jz short $-3
  17.         mov dx,3c0h
  18.         xor ah,ah
  19. endl2:
  20.         mov al,ah
  21.         out dx,al
  22.         jmp short $+2
  23.         out dx,al
  24.         inc ah
  25.         cmp ah,10h
  26.         jb endl2
  27.         mov al,20h
  28.         out dx,al
  29.         call _vrtset
  30.  
  31.         mov esi,_clearpalptr            ; clear palette
  32.         mov ecx,10h
  33.         xor al,al
  34.         call _setcpal
  35.  
  36.         mov eax,'endp'                  ; load up end piccy and pal
  37.         call _loaddata
  38.         mov edi,_vidptr0
  39.         mov esi,eax
  40.         mov dx,3ceh
  41.         @outw 0ff08h
  42.         mov dl,0c4h
  43.         @outb 2
  44.         inc edx
  45.         mov ebx,480
  46. endl0:
  47.         mov al,1
  48. endl0l0:
  49.         out dx,al
  50.         mov ecx,20
  51.         rep movsd
  52.         sub edi,80
  53.         shl al,1
  54.         and al,0fh
  55.         jnz endl0l0
  56.         add edi,80
  57.         dec ebx
  58.         jnz endl0
  59.  
  60.         mov edi,_cpalptr                ; slide to piccy pal
  61.         call endr0
  62.  
  63.         mov _vrtrout,offset endir1      ; wait a little or for a key
  64.         mov _kbhit,0
  65. endl1:
  66.         cmp _kbhit,0
  67.         jne short endl1d
  68.         cmp endretrace,70*10
  69.         jb endl1
  70. endl1d:
  71.  
  72.         mov esi,_clearpalptr            ; slide to black and exit
  73.  
  74. ;═════════════════════════════════════════════════════════════════════════════
  75. endr0:                                  ; slide to a color palette
  76.         mov _vrtrout,offset endir0
  77.         mov ecx,30h
  78.         mov bl,1
  79. endr0l0:
  80.         cmp endretrace,0
  81.         je endr0l0
  82.         mov endretrace,0
  83.         call _slidebytes
  84.         jnc endr0l0
  85.         ret
  86.  
  87. ;═════════════════════════════════════════════════════════════════════════════
  88. endir1:                                 ; just a simple timer
  89.         inc endretrace
  90.         ret
  91.  
  92. ;═════════════════════════════════════════════════════════════════════════════
  93. endir0:                                 ; retrace palette setting routine
  94.         cld
  95.         push ecx esi
  96.         mov dx,3c8h
  97.         @outb 0
  98.         mov esi,_cpalptr
  99.         inc edx
  100.         mov ecx,30h
  101.         rep outsb
  102.         mov endretrace,1
  103.         pop esi ecx
  104.         ret
  105.  
  106.