1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-03 06:29:36 +00:00

fixed Sleep behavior (now truly works)

git-svn-id: svn://svn.cc65.org/cc65/trunk@2335 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
izydorst 2003-08-15 22:20:45 +00:00
parent c40519859a
commit 9c444a4947

View File

@ -1,8 +1,8 @@
;
; Maciej 'YTM/Alliance' Witkowiak
; Maciej 'YTM/Elysium' Witkowiak
;
; 30.10.99
; 30.10.99, 15.8.2003
;
; void Sleep (int jiffies);
@ -12,9 +12,26 @@
.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
sta r0L ; store data
stx r0H
jmp Sleep
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