home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol021 / delay.src < prev    next >
Encoding:
Text File  |  1984-04-29  |  925 b   |  77 lines

  1. ; Procedure DELAY(timer:integer);
  2. ; { call delay with timer = number seconds * 10 }
  3. ; {  DELAY(10);    will give about 1 second delay }
  4. ; {  DELAY(5);    will give about 1/2 second delay }
  5. ; CONST    factor = 172;
  6. ; var    ix,jx : integer;
  7. ; begin
  8. ;
  9.     NAME    DELAY
  10. ;
  11.     ENTRY    DELAY
  12. ;
  13. DELAY:    ENTR    D,2,4
  14. ;   for ix:=1 to factor do
  15.     MOV    0(IX),A
  16.     MVI    -1(IX),1
  17.     PUSH    IX
  18.     LXI    H,172
  19.     XTHL
  20. L153
  21.     MOV    D,M
  22.     DCX    H
  23.     MOV    E,M
  24.     XTHL
  25.     PUSH    H
  26.     GE    D,0
  27.     JNC    L154
  28. ;     for jx:=1 to timer do {dummy};
  29.     MOV    -2(IX),A
  30.     MVI    -3(IX),1
  31.     PUSH    IX
  32.     POP    H
  33.     DCX    H
  34.     DCX    H
  35.     PUSH    H
  36.     MOV    L,8(IX)
  37.     MOV    H,9(IX)
  38.     XTHL
  39. L169
  40.     MOV    D,M
  41.     DCX    H
  42.     MOV    E,M
  43.     XTHL
  44.     PUSH    H
  45.     GE    D,0
  46.     JNC    L170
  47.     CTRL
  48.     POP    H
  49.     XTHL
  50.     INR    M
  51.     INX    H
  52.     JRNZ    L177
  53.     INR    M
  54.     JV    L178
  55. L177
  56.     JMP    L169
  57. L170
  58.     POP    D
  59. L178
  60.     POP    D
  61.     CTRL
  62.     POP    H
  63.     XTHL
  64.     INR    M
  65.     INX    H
  66.     JRNZ    L179
  67.     INR    M
  68.     JV    L180
  69. L179
  70.     JMP    L153
  71. L154
  72.     POP    D
  73. L180
  74.     POP    D
  75. ; end{of delay};
  76.     EXIT    D,2
  77.