Rev 942 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
swapimer
di
ld de,0x0038
ld hl,oldimer
ld bc,3
swapimer0
ld a,(de)
ldi ;[oldimer] -> [0x0038]
dec hl
ld (hl),a ;[0x0038] -> [oldimer]
inc hl
jp pe,swapimer0
ei
ret
oldimer
jp on_int ;╨╖╨░╨╝╨╡╨╜╨╕╤В╤Б╤П ╨╜╨░ ╨║╨╛╨┤ ╨╕╨╖ 0x0038
jp 0x0038+3
on_int
;restore stack with de
EX DE,HL
EX (SP),HL ;de="hl", ╨▓ ╤Б╤В╨╡╨║╨╡ "de"
LD (on_int_jp),HL
;EX DE,HL
;POP DE
LD (on_int_sp),SP
LD SP,INTSTACK
push af
push bc
push de ;"hl"
exx
ex af,af' ;'
push af
push bc
push de
push hl
push ix
push iy
ld hl,_palChange
xor a
cp (hl)
ld (hl),a
jp z,int_nochangepal
ld de,(_palBright)
ld a,d
add a,high palBrightTable
ld b,a
ld lx,e
ld hl,_palette
ld de,CURPAL
dup 16
ld a,(hl)
add a,lx
ld c,a
ld a,(bc)
ld (de),a
inc de
ld (de),a
inc de
inc l
edup
ld a,(_borderCol)
ld e,a
OS_SETBORDER
ld de,CURPAL
OS_SETPAL
int_nochangepal
call oldimer
GET_KEY
ld a,c ;╨║╨╜╨╛╨┐╨║╨░ ╨▒╨╡╨╖ ╤Г╤З╤С╤В╨░ ╤П╨╖╤Л╨║╨░
or a
jr z,$+5
ld (curkey),a
;CALL .. ;╨▓╨░╤И ╨╛╨▒╤А╨░╨▒╨╛╤В╤З╨╕╨║ ╨┐╤А╨╡╤А╤Л╨▓╨░╨╜╨╕╨╣
ld a,(curpg16k) ;ok
push af
ld a,(curpg32klow) ;ok
push af
ld a,(curpg32khigh) ;ok
push af
ld a,SND_PAGE
call setpg4000
ld a,(musicPage)
or a
jr z,.noMusic
call setpg8000
ld bc,#fffd
ifdef TFM
ld a,%11111000 ;╨▓╤В╨╛╤А╨╛╨╣ ╤З╨╕╨┐ Turbo FM
else
ld a,#fe ;╨▓╤В╨╛╤А╨╛╨╣ ╤З╨╕╨┐ Turbo Sound
endif
;╨╡╤Б╨╗╨╕ Turbo Sound ╨╜╨╡╤В, ╨╖╨▓╤Г╨║╨╕ ╨╕ ╨╝╤Г╨╖╤Л╨║╨░
out (c),a ;╨╕╨│╤А╨░╤О╤В ╨╜╨░ ╨╛╨┤╨╜╨╛╨╝ ╤З╨╕╨┐╨╡, ╨╕╨╜╨░╤З╨╡ ╨╜╨░ ╤А╨░╨╖╨╜╤Л╤Е
ifdef TFM
ld a,(TURBOFMON)
or a
call nz,PT3_FRAME
else
call PT3_FRAME
endif
ifdef TFM
;jr .sfx ;wrong TS detection on TFM?
else
ld a,(turboSound)
or a
jr z,.sfx
endif
.noMusic
ifdef TFM
;ld a,(TURBOFMON)
;or a
;call nz,PT3_MUTE ;reset_ay
ld a,1
call reset_ay_ay
else
ld a,1
call reset_ay
endif
.sfx
ifdef TFM
ld bc,#fffd
ld a,%11111001 ;1-╨╣ ╤З╨╕╨┐ Turbo FM
;ld a,%11111011 ;1-╨╣ ╤З╨╕╨┐ Turbo FM, no wait sync
out (c),a
else
ld bc,#fffd ;╨┐╨╡╤А╨▓╤Л╨╣ ╤З╨╕╨┐
out (c),b
endif
call AFX_FRAME
pop af
SETPG32KHIGH
pop af
SETPG32KLOW
pop af
SETPG16K
pop iy
pop ix
pop hl
pop de
pop bc
pop af
ex af,af' ;'
exx
pop hl
pop bc
pop af
on_int_sp=$+1
ld sp,0
pop de
EI
on_int_jp=$+1
jp 0