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 >
Wrap
Text File
|
1989-02-23
|
896b
|
38 lines
;
; delay(n)
; int n;
;
; n = number of milliseconds to delay
;
DELAY::
POP H ; Return address
POP D ; Delay Value
PUSH D ; Restore Stack
PUSH H ;
DELAY1: ;# 51 (overhead) 12.5 usec.
LXI B,123 ;# 10
CALL DELAY2 ;# 3963 (17 + 10 + (123 X 32))
DCX D ;# 5
MOV A,D ;# 5
ORA E ;# 4
JNZ DELAY1 ;# 10
RET ;--------
; 3997 cycles @ 250 nanosec per
; ---------------------------
; 0.99925 milliseconds
;
;
; Delay Loop set for 10 usec. per count based on 4 MHz clock
;
DELAY2:
DCX B ;# 5
ORA A ;# 4
ORA A ;# 4
MOV A,B ;# 5
ORA C ;# 4
JNZ DELAY2 ;# 10
RET ;#
;#------
;# 32 cycles @ 250 nanosec per = 12.5 usec.
END