
;
; Maciej 'YTM/Elysium' Witkowiak
;
; 30.10.99, 15.8.2003

;
; void Sleep (int jiffies);
;

	    .export _Sleep

	    .include "../inc/jumptab.inc"
	    .include "../inc/geossym.inc"
	    .importzp ptr1
	    .importzp tmp1

_SleepExit:
	    jsr Sleep			; call Sleep
	    ldx tmp1
	    txs				; restore stack pointer
	    jmp (ptr1)			; when timeouts control will reach here

_Sleep:
	    sta r0L			; store data
	    stx r0H
	    pla
	    sta ptr1
	    pla
	    sta ptr1+1			; preserve return address
	    inc ptr1
	    bne @L0
	    inc ptr1+1			; fix return address
@L0:	    tsx
	    stx tmp1			; preserve stack pointer
	    jsr _SleepExit		; call Sleep
	    jmp MainLoop		; immediate return here - go to idle loop
