home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_200 / 223_02 / delay.mac < prev    next >
Text File  |  1989-02-23  |  896b  |  38 lines

  1. ;
  2. ;    delay(n)
  3. ;     int n;
  4. ;    
  5. ;    n = number of milliseconds to delay
  6. ;
  7. DELAY::    
  8.     POP    H        ; Return address
  9.     POP    D        ; Delay Value
  10.     PUSH    D        ; Restore Stack
  11.     PUSH    H        ;
  12. DELAY1:                ;#   51  (overhead) 12.5 usec.
  13.     LXI     B,123        ;#   10
  14.     CALL     DELAY2        ;# 3963  (17 + 10 + (123 X 32))
  15.     DCX     D        ;#    5
  16.     MOV     A,D        ;#    5
  17.     ORA    E        ;#    4
  18.     JNZ     DELAY1        ;#   10
  19.     RET            ;--------
  20.                 ;  3997 cycles @ 250 nanosec per
  21.                 ;    ---------------------------
  22.             ;         0.99925 milliseconds 
  23. ;
  24. ;
  25. ; Delay Loop set for 10 usec. per count based on 4 MHz clock
  26. ;
  27. DELAY2:
  28.     DCX B        ;#   5
  29.     ORA A        ;#   4  
  30.     ORA A        ;#   4
  31.     MOV A,B        ;#   5
  32.     ORA C        ;#   4
  33.     JNZ DELAY2    ;#  10
  34.     RET         ;#  
  35.             ;#------
  36.             ;#  32 cycles @ 250 nanosec per = 12.5 usec.
  37.     END
  38.