2003-08-15 19:16:01 +00:00
|
|
|
|
|
|
|
;
|
2003-08-15 22:20:45 +00:00
|
|
|
; Maciej 'YTM/Elysium' Witkowiak
|
2003-08-15 19:16:01 +00:00
|
|
|
;
|
2003-08-15 22:20:45 +00:00
|
|
|
; 30.10.99, 15.8.2003
|
2003-08-15 19:16:01 +00:00
|
|
|
|
|
|
|
;
|
|
|
|
; void Sleep (int jiffies);
|
|
|
|
;
|
|
|
|
|
|
|
|
.export _Sleep
|
|
|
|
|
|
|
|
.include "../inc/jumptab.inc"
|
|
|
|
.include "../inc/geossym.inc"
|
2003-08-15 22:20:45 +00:00
|
|
|
.importzp ptr1
|
|
|
|
.importzp tmp1
|
|
|
|
|
|
|
|
_SleepExit:
|
|
|
|
jsr Sleep ; call Sleep
|
|
|
|
ldx tmp1
|
|
|
|
txs ; restore stack pointer
|
|
|
|
jmp (ptr1) ; when timeouts control will reach here
|
2003-08-15 19:16:01 +00:00
|
|
|
|
|
|
|
_Sleep:
|
2003-08-15 22:20:45 +00:00
|
|
|
sta r0L ; store data
|
2003-08-15 19:16:01 +00:00
|
|
|
stx r0H
|
2003-08-15 22:20:45 +00:00
|
|
|
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
|