mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-16 08:05:31 +00:00
81 lines
1.6 KiB
ArmAsm
81 lines
1.6 KiB
ArmAsm
;====================
|
|
; Hardware Detect
|
|
; called for disk1 and disk2
|
|
|
|
; simplified version that just detects model and mockingboard
|
|
; for the fake BIOS we do a bit more, but we do rely
|
|
; on this being run first
|
|
|
|
hardware_detect:
|
|
|
|
;=======================
|
|
; Hardware Detect Model
|
|
;=======================
|
|
; Yes Michaelangel007 I will eventually update linux_logo 6502
|
|
|
|
jsr detect_appleii_model
|
|
|
|
lda APPLEII_MODEL
|
|
cmp #'g'
|
|
bne not_iigs
|
|
|
|
is_a_iigs:
|
|
|
|
; enable 1MHz mode
|
|
; see hw.accel.a in 4cade
|
|
setspeed:
|
|
lda CYAREG
|
|
and #$7f
|
|
sta CYAREG
|
|
|
|
; gr/text page2 handling broken on early IIgs models
|
|
; this enables the workaround
|
|
|
|
jsr ROM_TEXT2COPY ; set alternate display mode on IIgs
|
|
|
|
|
|
; set background color to black instead of blue
|
|
lda NEWVIDEO
|
|
and #%00011111 ; bit 7 = 0 -> IIgs Apple II-compat video modes
|
|
; bit 6 = 0 -> IIgs 128K memory map same as IIe
|
|
; bit 5 = 0 -> IIgs DHGR is color, not mono
|
|
; bits 0-4 unchanged
|
|
sta NEWVIDEO
|
|
lda #$F0
|
|
sta TBCOLOR ; white text on black background
|
|
lda #$00
|
|
sta CLOCKCTL ; black border
|
|
sta CLOCKCTL ; set twice for VidHD
|
|
|
|
; gs always swaps in RAM
|
|
lda #<gs_interrupt_handler
|
|
sta $3FE
|
|
lda #>gs_interrupt_handler
|
|
sta $3FF
|
|
|
|
not_iigs:
|
|
|
|
|
|
;======================
|
|
; detect mockingboard
|
|
|
|
lda #0
|
|
sta SOUND_STATUS
|
|
|
|
;PT3_ENABLE_APPLE_IIC = 1 ; we set this earlier
|
|
|
|
jsr mockingboard_detect
|
|
bcc mockingboard_notfound
|
|
|
|
mockingboard_found:
|
|
|
|
lda SOUND_STATUS
|
|
ora #SOUND_MOCKINGBOARD
|
|
sta SOUND_STATUS
|
|
|
|
mockingboard_notfound:
|
|
|
|
rts
|
|
|
|
.include "pt3_lib_mockingboard.inc"
|