mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-16 07:29:29 +00:00
fake_bios: detect language card
This commit is contained in:
parent
5b6cb448eb
commit
1ead39db6e
|
@ -26,7 +26,7 @@ FAKE_BIOS: fake_bios.o
|
||||||
fake_bios.o: fake_bios.s \
|
fake_bios.o: fake_bios.s \
|
||||||
hgr_clear_screen.s \
|
hgr_clear_screen.s \
|
||||||
font_console_1x8.s fonts/a2_cga_thin.inc \
|
font_console_1x8.s fonts/a2_cga_thin.inc \
|
||||||
pt3_lib_detect_model.s \
|
pt3_lib_detect_model.s lc_detect.s \
|
||||||
zx02_optim.s graphics/a2_energy.hgr.zx02
|
zx02_optim.s graphics/a2_energy.hgr.zx02
|
||||||
ca65 -o fake_bios.o fake_bios.s -l fake_bios.lst
|
ca65 -o fake_bios.o fake_bios.s -l fake_bios.lst
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,9 @@ bios_test:
|
||||||
|
|
||||||
jsr build_tables
|
jsr build_tables
|
||||||
|
|
||||||
;===================
|
;=======================
|
||||||
; Hardware Detect
|
; Hardware Detect Model
|
||||||
;===================
|
;=======================
|
||||||
|
|
||||||
jsr detect_appleii_model
|
jsr detect_appleii_model
|
||||||
|
|
||||||
|
@ -52,6 +52,31 @@ not_iigs:
|
||||||
lda APPLEII_MODEL
|
lda APPLEII_MODEL
|
||||||
sta model_patch_1+8 ; patch to ' ' '+' 'e' 'c' or 'g'
|
sta model_patch_1+8 ; patch to ' ' '+' 'e' 'c' or 'g'
|
||||||
|
|
||||||
|
;=======================
|
||||||
|
; Hardware Detect RAM
|
||||||
|
;=======================
|
||||||
|
|
||||||
|
lda #48 ; FIXME: detect less on earlier models?
|
||||||
|
sta TOTAL_RAM
|
||||||
|
|
||||||
|
jsr detect_language_card
|
||||||
|
bcs ram_no_lc
|
||||||
|
ram_yes_lc:
|
||||||
|
; carry clear here
|
||||||
|
lda #16
|
||||||
|
adc TOTAL_RAM
|
||||||
|
sta TOTAL_RAM
|
||||||
|
|
||||||
|
; update text string
|
||||||
|
lda #'1'
|
||||||
|
sta lang_card_patch+34
|
||||||
|
lda #'6'
|
||||||
|
sta lang_card_patch+35
|
||||||
|
|
||||||
|
|
||||||
|
ram_no_lc:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;===================
|
;===================
|
||||||
; Load graphics
|
; Load graphics
|
||||||
|
@ -91,7 +116,7 @@ not_iigs:
|
||||||
;=========================
|
;=========================
|
||||||
; do fake memory count
|
; do fake memory count
|
||||||
|
|
||||||
lda #128
|
lda TOTAL_RAM
|
||||||
sta MEMCOUNT
|
sta MEMCOUNT
|
||||||
memcount_loop:
|
memcount_loop:
|
||||||
lda KEYPRESS ; 4
|
lda KEYPRESS ; 4
|
||||||
|
@ -102,7 +127,7 @@ memcount_loop:
|
||||||
|
|
||||||
jsr increment_memory
|
jsr increment_memory
|
||||||
dec MEMCOUNT
|
dec MEMCOUNT
|
||||||
bpl memcount_loop
|
bne memcount_loop
|
||||||
|
|
||||||
done_memcount:
|
done_memcount:
|
||||||
|
|
||||||
|
@ -238,9 +263,11 @@ bios_message_2:
|
||||||
.byte $1E,$1E,$1E,$1E,$1E,$1E,$1E,$1E
|
.byte $1E,$1E,$1E,$1E,$1E,$1E,$1E,$1E
|
||||||
.byte $1E,$1E,$1E,$1E,$1E,$1E
|
.byte $1E,$1E,$1E,$1E,$1E,$1E
|
||||||
.byte $1C, 13,0
|
.byte $1C, 13,0
|
||||||
.byte $1F," CPU Type: 65C02 ",$14," Base Memory: 48K ",$1F,13,0 ; 16
|
.byte $1F," CPU Type: 6502 ",$14," Base Memory: 48K ",$1F,13,0 ; 16
|
||||||
.byte $1F," Co-Proc: NONE ",$14," Lang Card: 16K ",$1F,13,0 ; 24
|
lang_card_patch: ; +34
|
||||||
.byte $1F," Clock: 1.023MHz ",$14," AUX Memory: 64K ",$1F,13,0 ; 32
|
.byte $1F," Co-Proc: NONE ",$14," Lang Card: 0K ",$1F,13,0 ; 24
|
||||||
|
aux_mem_patch: ; +34
|
||||||
|
.byte $1F," Clock: 1.023MHz ",$14," AUX Memory: 0K ",$1F,13,0 ; 32
|
||||||
|
|
||||||
.byte $19 ; 40
|
.byte $19 ; 40
|
||||||
.byte $1E,$1E,$1E,$1E,$1E,$1E,$1E,$1E
|
.byte $1E,$1E,$1E,$1E,$1E,$1E,$1E,$1E
|
||||||
|
@ -562,3 +589,4 @@ early_out:
|
||||||
.include "hgr_clear_screen.s"
|
.include "hgr_clear_screen.s"
|
||||||
|
|
||||||
.include "pt3_lib_detect_model.s"
|
.include "pt3_lib_detect_model.s"
|
||||||
|
.include "lc_detect.s"
|
||||||
|
|
40
graphics/hgr/fake_bios/lc_detect.s
Normal file
40
graphics/hgr/fake_bios/lc_detect.s
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
; Code from TotalReplay by 4am and qkumba
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; Has64K
|
||||||
|
; Checks whether computer has functioning language card (64K)
|
||||||
|
;
|
||||||
|
; in: none
|
||||||
|
; out: C clear if 64K detected
|
||||||
|
; C set if 64K not detected
|
||||||
|
; all other flags and registers clobbered
|
||||||
|
; ROM in memory (not LC RAM bank)
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
detect_language_card:
|
||||||
|
|
||||||
|
; enable language card
|
||||||
|
; READ_RAM1_WRITE_RAM1
|
||||||
|
|
||||||
|
bit $C08B
|
||||||
|
bit $C08B
|
||||||
|
|
||||||
|
lda #$AA ; test #1 for $D0 page
|
||||||
|
sta $D000
|
||||||
|
eor $D000
|
||||||
|
bne no_lc
|
||||||
|
lsr $D000 ; test #2 for $D0 page
|
||||||
|
lda #$55
|
||||||
|
eor $D000
|
||||||
|
bne no_lc
|
||||||
|
clc
|
||||||
|
bcc done_detect
|
||||||
|
|
||||||
|
no_lc:
|
||||||
|
sec
|
||||||
|
|
||||||
|
done_detect:
|
||||||
|
; READ_ROM_NO_WRITE
|
||||||
|
bit $C08A
|
||||||
|
|
||||||
|
rts
|
Loading…
Reference in New Issue
Block a user