mirror of
https://github.com/cc65/cc65.git
synced 2024-08-31 23:29:09 +00:00
61 lines
1.3 KiB
ArmAsm
61 lines
1.3 KiB
ArmAsm
|
;
|
||
|
; Oliver Schmidt, 2020-06-14
|
||
|
;
|
||
|
; void waitvsync (void);
|
||
|
;
|
||
|
.ifdef __APPLE2ENH__
|
||
|
|
||
|
.constructor initvsync
|
||
|
.export _waitvsync
|
||
|
.import _get_ostype
|
||
|
|
||
|
.include "apple2.inc"
|
||
|
|
||
|
.segment "ONCE"
|
||
|
|
||
|
initvsync:
|
||
|
jsr _get_ostype
|
||
|
sta ostype
|
||
|
rts
|
||
|
|
||
|
.code
|
||
|
|
||
|
_waitvsync:
|
||
|
bit ostype
|
||
|
bmi iigs ; $8x
|
||
|
bvs iic ; $4x
|
||
|
|
||
|
: bit RDVBLBAR
|
||
|
bpl :- ; Blanking
|
||
|
: bit RDVBLBAR
|
||
|
bmi :- ; Drawing
|
||
|
rts
|
||
|
|
||
|
; Apple IIgs TechNote #40, VBL Signal
|
||
|
iigs: bit RDVBLBAR
|
||
|
bmi iigs ; Blanking
|
||
|
: bit RDVBLBAR
|
||
|
bpl :- ; Drawing
|
||
|
rts
|
||
|
|
||
|
; Apple IIc TechNote #9, Detecting VBL
|
||
|
iic: sei
|
||
|
sta IOUDISOFF
|
||
|
lda RDVBLMSK
|
||
|
bit ENVBL
|
||
|
bit PTRIG ; Reset VBL interrupt flag
|
||
|
: bit RDVBLBAR
|
||
|
bpl :-
|
||
|
asl
|
||
|
bcs :+ ; VBL interrupts were already enabled
|
||
|
bit DISVBL
|
||
|
: sta IOUDISON ; IIc Tech Ref Man: The firmware normally leaves IOUDIS on.
|
||
|
cli
|
||
|
rts
|
||
|
|
||
|
.segment "INIT"
|
||
|
|
||
|
ostype: .res 1
|
||
|
|
||
|
.endif ; __APPLE2ENH__
|