mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-11 05:29:38 +00:00
doubledouble: working on detection
This commit is contained in:
parent
6a74f2e9a8
commit
d23220cfb0
|
@ -23,7 +23,8 @@ DOUBLE: double.o
|
||||||
ld65 -o DOUBLE double.o -C $(LINKERSCRIPTS)/apple2_1000.inc
|
ld65 -o DOUBLE double.o -C $(LINKERSCRIPTS)/apple2_1000.inc
|
||||||
|
|
||||||
double.o: double.s \
|
double.o: double.s \
|
||||||
zp.inc
|
zp.inc hardware.inc pt3_lib_mockingboard_detect.s \
|
||||||
|
pt3_lib_mockingboard_setup.s pt3_lib_detect_model.s
|
||||||
ca65 -o double.o double.s -l double.lst
|
ca65 -o double.o double.s -l double.lst
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
|
@ -5,10 +5,55 @@
|
||||||
.include "zp.inc"
|
.include "zp.inc"
|
||||||
.include "hardware.inc"
|
.include "hardware.inc"
|
||||||
|
|
||||||
|
|
||||||
|
double:
|
||||||
|
|
||||||
|
;================================
|
||||||
|
; detect model
|
||||||
|
;================================
|
||||||
|
|
||||||
|
jsr detect_appleii_model
|
||||||
|
|
||||||
|
|
||||||
|
;===================
|
||||||
|
; machine workarounds
|
||||||
|
;===================
|
||||||
|
; mostly IIgs
|
||||||
|
;===================
|
||||||
|
; thanks to 4am who provided this code from Total Replay
|
||||||
|
|
||||||
|
lda ROM_MACHINEID
|
||||||
|
cmp #$06
|
||||||
|
bne not_a_iigs
|
||||||
|
sec
|
||||||
|
jsr $FE1F ; check for IIgs
|
||||||
|
bcs not_a_iigs
|
||||||
|
|
||||||
|
; gr/text page2 handling broken on early IIgs models
|
||||||
|
; this enables the workaround
|
||||||
|
|
||||||
|
jsr ROM_TEXT2COPY ; set alternate display mode on IIgs
|
||||||
|
cli ; enable VBL interrupts
|
||||||
|
|
||||||
|
|
||||||
|
; also 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
|
||||||
|
|
||||||
|
not_a_iigs:
|
||||||
|
|
||||||
;================================
|
;================================
|
||||||
; Clear screen and setup graphics
|
; Clear screen and setup graphics
|
||||||
;================================
|
;================================
|
||||||
double:
|
|
||||||
|
|
||||||
jsr SETGR ; set lo-res 40x40 mode
|
jsr SETGR ; set lo-res 40x40 mode
|
||||||
|
|
||||||
|
@ -277,3 +322,8 @@ line_loop_it:
|
||||||
bne line_loop_it
|
bne line_loop_it
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
.include "pt3_lib_detect_model.s"
|
||||||
|
; .include "pt3_lib_mockingboard_setup.s"
|
||||||
|
; .include "pt3_lib_mockingboard_detect.s"
|
||||||
|
|
|
@ -5,6 +5,10 @@ EIGHTYSTORE = $C001
|
||||||
CLR80COL = $C00C
|
CLR80COL = $C00C
|
||||||
SET80COL = $C00D
|
SET80COL = $C00D
|
||||||
|
|
||||||
|
TBCOLOR = $C022 ; IIgs text foreground / background colors
|
||||||
|
CLOCKCTL = $C034 ; bits 0-3 are IIgs border color
|
||||||
|
NEWVIDEO = $C029 ; IIgs graphics modes
|
||||||
|
|
||||||
SET_GR = $C050
|
SET_GR = $C050
|
||||||
SET_TEXT= $C051
|
SET_TEXT= $C051
|
||||||
FULLGR = $C052
|
FULLGR = $C052
|
||||||
|
@ -26,3 +30,5 @@ HPOSN = $F411
|
||||||
HPLOT0 = $F457 ; plot at (Y,X), (A)
|
HPLOT0 = $F457 ; plot at (Y,X), (A)
|
||||||
HGLIN = $F53A ; line to (X,A),(Y)
|
HGLIN = $F53A ; line to (X,A),(Y)
|
||||||
|
|
||||||
|
ROM_TEXT2COPY = $F962 ; iigs
|
||||||
|
ROM_MACHINEID = $FBB3 ; iigs
|
||||||
|
|
|
@ -3,8 +3,13 @@ GBASL = $26
|
||||||
GBASH = $27
|
GBASH = $27
|
||||||
V2 = $2D
|
V2 = $2D
|
||||||
|
|
||||||
|
APPLEII_MODEL = $8B
|
||||||
|
|
||||||
HGRPAGE = $E6
|
HGRPAGE = $E6
|
||||||
|
|
||||||
YPOS = $FE
|
MB_VALUE = $F5
|
||||||
TCOLOR = $FF
|
MB_ADDR_L = $F6
|
||||||
|
MB_ADDR_H = $F7
|
||||||
|
YPOS = $FE
|
||||||
|
TCOLOR = $FF
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user