home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
files
/
music
/
songdump
/
ppause.s
next >
Wrap
Text File
|
1987-05-23
|
1KB
|
60 lines
*
*
* p_pause( (long)timeout ); - uses RTX if there, otherwises uses
* 200Hz system timer to emulate it
*
*
.text
.globl _p_pause
_p_pause:
pea 0 * go into supervisor mode
move.w #$20,-(sp) * Super(0)
trap #1 * enter GEMDOS
addq.l #6,sp * restore stack
tst.b $94 * check RTX vector
bne no_rtx * no, emulate
move.l d0,-(sp) * set SSP back
move.w #$20,-(sp) * Super(savessp)
trap #1 * enter GEMDOS
addq.l #6,sp * restore stack
*
* OK, now do RTX call
*
move.l 4(sp),-(sp) * timeout
move.w #$c,-(sp) * p_pause
trap #5 * enter RTX
addq.l #6,sp
cmp.l #-1,d0 in system but not installed
beq sup_no
rts
sup_no: * reenter supervisor
pea 0 * go into supervisor mode
move.w #$20,-(sp) * Super(0)
trap #1 * enter GEMDOS
addq.l #6,sp * restore stack
*
* emulate
*
no_rtx:
move.l 4(sp),d1 millisecond delay
addq.l #3,d1 round
divu #5,d1 change into tic count
ext.l d1 extend result
add.l $4ba,d1 raw timer tic
wait1 cmp.l $4ba,d1 wait until timer catches up
bhi wait1
move.l d0,-(sp) * set SSP back
move.w #$20,-(sp) * Super(savessp)
trap #1 * enter GEMDOS
addq.l #6,sp * restore stack
clr.l d0
rts
.end