home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #6 / amigaacscoverdisc1998-061998.iso / games / descent / source / bios / t.asm < prev    next >
Assembly Source File  |  1998-06-08  |  5KB  |  54 lines

  1. ;THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  2. ;SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
  3. ;END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  4. ;ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  5. ;IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  6. ;SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  7. ;FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  8. ;CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
  9. ;AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
  10. ;COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  11.     xor     ax, ax          ; Send
  12.     cli                     ; Disable interrupts while using timer
  13.     out     043h, al                                                                                                               
  14.     in      al, 040h                                                                                                
  15.     in      al, 040h                                                                                                                                
  16.     sti                                                                                                                                             
  17.     push    ax                                                                                                                      
  18.     mov     ax, [n_milliseconds]
  19.     mov     bx, 37                                                                                                                                                                                  
  20.     imul    bx                                                                                                                      
  21.     mov     si, dx                                                                                                                                                                                  
  22.     mov     di, ax                                                                                                                                                                                  
  23.     mov     cl, 3                                                                                                                                                                                           
  24.     shr     di, cl                                                                                                                                                                                  
  25.     shr     si, cl                    
  26.     mov     cl, 13                                                                                                                                                                                  
  27.     shl     dx, cl                                                                                                                                                                                  
  28.     or      di, dx                                                          
  29.     xor     cx, cx                                  
  30.     xor     bx, bx                                                                                                                                                                                  
  31.     pop     ax                                                              
  32. MsTimerLoop:    
  33.     mov     dx, ax                                                                                  
  34.     xor     ax, ax                                                                                          
  35.     cli 
  36.     out     043h, al                                                                                        
  37.     in      al, 040h                                                                
  38.     in      al, 040h                                                                        
  39.     sti                                                                                     
  40.     cmp     ax, dx                                                                  
  41.     jbe     MsNoWrap                                                                                                                                                                                        
  42.     add     dx, 256                                 
  43. MsNoWrap:       
  44.     sub     dx, ax                                  
  45.     add     bx, dx                                  
  46.     adc     cx, 0                                           
  47.     cmp     cx, si                                  
  48.     ja      MsDone                                  
  49.     jb      MsTimerLoop                                                                                                                                                                             
  50.     cmp     bx, di                                                                                                                                                                                  
  51.     jb      MsTimerLoop                                                                                                                                                                             
  52. MsDone: ret
  53.  
  54.