mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-12-22 14:30:29 +00:00
98f457ebec
for GNO v2.0.6). I've not checked, but it's unlikely that this is POSIX compliant.
175 lines
2.2 KiB
NASM
175 lines
2.2 KiB
NASM
* Modified sleep routine based on sleep in libgno
|
|
|
|
* It was necesary to disassemble this routine and reassemble it so that
|
|
* date.asm can use its private variables. It needs to do this to make
|
|
* date abort when it is in the middle of a sleep()
|
|
|
|
* Phillip Vandry, May 1993
|
|
|
|
case on
|
|
|
|
sleep start
|
|
tsc
|
|
sec
|
|
sbc #$0014
|
|
tcs
|
|
phd
|
|
tcd
|
|
ldx $07
|
|
phx
|
|
tsx
|
|
stx $07
|
|
pea sleephandler|-16
|
|
pea sleephandler
|
|
pea 14
|
|
jsl signal
|
|
tay
|
|
lda $07
|
|
tcs
|
|
pla
|
|
sta $07
|
|
tya
|
|
phx
|
|
pha
|
|
lda $01,s
|
|
sta $0d
|
|
lda $03,s
|
|
sta $0f
|
|
pla
|
|
pla
|
|
ldx $07
|
|
phx
|
|
tsx
|
|
stx $07
|
|
pea $0000
|
|
pea $2000
|
|
jsl sigblock
|
|
tay
|
|
lda $07
|
|
tcs
|
|
pla
|
|
sta $07
|
|
tya
|
|
phx
|
|
pha
|
|
lda $01,s
|
|
sta $11
|
|
lda $03,s
|
|
sta $13
|
|
pla
|
|
pla
|
|
lda #$0000
|
|
sta ringring
|
|
ldx $07
|
|
phx
|
|
tsx
|
|
stx $07
|
|
lda $18
|
|
ldx #$0000
|
|
phx
|
|
pha
|
|
jsl alarm
|
|
tay
|
|
lda $07
|
|
tcs
|
|
pla
|
|
sta $07
|
|
tya
|
|
checkrr anop
|
|
lda ringring
|
|
tax
|
|
beq theeor
|
|
lda #$0001
|
|
theeor eor #$0001
|
|
bne nojump
|
|
brl afterbrl
|
|
nojump ldx $07
|
|
phx
|
|
tsx
|
|
stx $07
|
|
pei $13
|
|
pei $11
|
|
pla
|
|
and #$dfff
|
|
pha
|
|
jsl sigpause
|
|
tay
|
|
lda $07
|
|
tcs
|
|
pla
|
|
sta $07
|
|
tya
|
|
brl checkrr
|
|
afterbrl ldx $07
|
|
phx
|
|
tsx
|
|
stx $07
|
|
ldx $0f
|
|
lda $0d
|
|
phx
|
|
pha
|
|
lda #$000e
|
|
pha
|
|
jsl signal
|
|
tay
|
|
lda $07
|
|
tcs
|
|
pla
|
|
sta $07
|
|
tya
|
|
ldx $07
|
|
phx
|
|
tsx
|
|
stx $07
|
|
ldx $13
|
|
lda $11
|
|
phx
|
|
pha
|
|
jsl sigsetmask
|
|
tay
|
|
lda $07
|
|
tcs
|
|
pla
|
|
sta $07
|
|
tya
|
|
lda $16
|
|
sta $18
|
|
lda $15
|
|
sta $17
|
|
ldy $05
|
|
pld
|
|
tsc
|
|
clc
|
|
adc #$0016
|
|
tcs
|
|
tya
|
|
rtl
|
|
end
|
|
|
|
sleephandler start
|
|
tsc
|
|
sec
|
|
sbc #$0006
|
|
tcs
|
|
phd
|
|
tcd
|
|
lda #$0001
|
|
sta ringring
|
|
lda $08
|
|
sta $0c
|
|
lda $07
|
|
sta $0b
|
|
pld
|
|
tsc
|
|
clc
|
|
adc #$000a
|
|
tcs
|
|
rtl
|
|
end
|
|
|
|
ringring data
|
|
ds 2
|
|
end
|
|
|
|
case off
|