; void Sleep (int jiffies);
- .importzp ptr1
- .importzp tmp1
- .export _Sleep
+ .importzp ptr1
+ .importzp tmp1
+ .export _Sleep
- .include "jumptab.inc"
- .include "geossym.inc"
+ .include "jumptab.inc"
+ .include "geossym.inc"
_SleepExit:
- jsr Sleep ; call Sleep
- ldx tmp1
- txs ; restore stack pointer
- jmp (ptr1) ; when timeouts control will reach here
+ 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
+ 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