home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Magazin 1997 January / CD_01_97.ISO / game / settimer.asm < prev    next >
Assembly Source File  |  1993-11-20  |  1KB  |  78 lines

  1. data segment word public
  2. assume ds:data
  3.      ;extrn  frametime:dword
  4.      ;extrn frametimeb:dword
  5. data ends
  6.  
  7. code segment byte public
  8. assume cs:code
  9. .386
  10.  frametime  DW  ?
  11.  frametimeb DW ?
  12.  
  13.  waitborder PROC NEAR
  14.     push    ax
  15.     push    dx
  16.     mov     dx,3dah
  17. wbr1:   in      al,dx
  18.     test    al,8
  19.     jnz     wbr1
  20. wbr2:   in      al,dx
  21.     test    al,8
  22.     jz      wbr2
  23.     pop     dx
  24.     pop     ax
  25.     ret
  26. waitborder ENDP
  27.  
  28. settimer PROC near
  29. public settimer
  30. ;       cli
  31. ;       xor     ax,ax
  32. ;       mov     es,ax
  33. ;       mov     ax,es:[INTER*4]
  34. ;       mov     WORD PTR cs:oldint8,ax
  35. ;       mov     ax,es:[INTER*4+2]
  36. ;       mov     WORD PTR cs:oldint8[2],ax
  37. ;       mov     ax,OFFSET intti8
  38. ;       mov     es:[INTER*4],ax
  39. ;       mov     es:[INTER*4+2],cs
  40. ;       sti
  41.     call    waitborder
  42.     ;reset ints now!
  43.     mov     al,36h
  44.     out     43h,al
  45.     mov     al,0
  46.     out     40h,al
  47.     mov     al,0
  48.     out     40h,al
  49.     call    waitborder
  50.     xor     al,al
  51.     out     43h,al
  52.     in      al,40h
  53.     mov     ah,al
  54.     in      al,40h
  55.     xchg    al,ah
  56.     neg     ax
  57.     shr     ax,1
  58.     mov     cs:frametime,ax
  59.     mov     dx,ax
  60.     mov     al,ah
  61.     xor     ah,ah
  62.     sub     dx,ax
  63. ;        shl     dx,1     ;kaksin kertaistetaan eli menee 2:n frameen
  64.     mov     cs:frametimeb,dx
  65.     mov     al,36h
  66.     out     43h,al
  67.     mov     al,dl
  68.     out     40h,al
  69.     mov     al,dh
  70.     out     40h,al
  71.     ret
  72. settimer ENDP
  73.  
  74. code    ENDS
  75.     END
  76.  
  77.  
  78.