mirror of
https://github.com/cc65/cc65.git
synced 2024-11-16 02:10:52 +00:00
166a4b25f7
Also publish detect_iigs(), set_iigs_speed() and get_iigs_speed(). Refactor to only store one ostype variable.
47 lines
1.1 KiB
ArmAsm
47 lines
1.1 KiB
ArmAsm
;
|
|
; Oliver Schmidt, 2020-06-14
|
|
;
|
|
; void waitvsync (void);
|
|
;
|
|
.ifdef __APPLE2ENH__
|
|
|
|
.export _waitvsync
|
|
.import ostype
|
|
|
|
.include "apple2.inc"
|
|
|
|
_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
|
|
|
|
.endif ; __APPLE2ENH__
|