mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-29 00:31:52 +00:00
64 lines
902 B
ArmAsm
64 lines
902 B
ArmAsm
;===========================
|
|
; Check Apple II model
|
|
;===========================
|
|
; this is mostly for IIc support
|
|
; as it does interrupts differently
|
|
|
|
; ' ' ($20) = Apple II
|
|
; '+' ($2B) = Apple II+
|
|
; 'E' ($45) = Apple IIe
|
|
; 'C' ($43) = Apple IIc
|
|
; 'G' ($47) = Apple IIgs
|
|
|
|
|
|
detect_appleii_model:
|
|
lda #' '
|
|
|
|
ldx $FBB3
|
|
; II is $38
|
|
; J-plus is $C9
|
|
; II+ is $EA (so is III)
|
|
; IIe and newer is $06
|
|
|
|
cpx #$38
|
|
beq done_apple_detect
|
|
|
|
lda #'+'
|
|
cpx #$EA
|
|
beq done_apple_detect
|
|
|
|
; TODO: check for J-plus or III?
|
|
|
|
cpx #$06
|
|
bne done_apple_detect
|
|
|
|
apple_iie_or_newer:
|
|
|
|
|
|
|
|
ldx $FBC0 ; $EA on a IIe
|
|
; $E0 on a IIe enhanced
|
|
; $00 on a IIc/IIc+
|
|
|
|
; $FE1F = $60, IIgs
|
|
|
|
beq apple_iic
|
|
|
|
lda #'E'
|
|
cpx #$EA
|
|
beq done_apple_detect
|
|
cpx #$E0
|
|
beq done_apple_detect
|
|
|
|
; assume GS?
|
|
|
|
lda #'G'
|
|
bne done_apple_detect
|
|
|
|
apple_iic:
|
|
lda #'C'
|
|
|
|
done_apple_detect:
|
|
sta APPLEII_MODEL
|
|
rts
|