mirror of
https://github.com/ksherlock/host-fst.git
synced 2024-09-27 11:57:49 +00:00
add atinit code.
This commit is contained in:
parent
524fa1a94b
commit
e9f00fac8c
17
Makefile
17
Makefile
@ -6,7 +6,7 @@ ASMFLAGS=-case on -l
|
|||||||
LDFLAGS=
|
LDFLAGS=
|
||||||
|
|
||||||
|
|
||||||
all : host.driver boot.driver host.fst boot.sys
|
all : host.driver boot.driver host.fst boot.sys atinit
|
||||||
|
|
||||||
host.fst : host.fst.o
|
host.fst : host.fst.o
|
||||||
$(LD) -t \$$BD -at \$$0000 $< -o $@
|
$(LD) -t \$$BD -at \$$0000 $< -o $@
|
||||||
@ -34,12 +34,23 @@ boot: boot.o
|
|||||||
$(LD) $< -o $@
|
$(LD) $< -o $@
|
||||||
|
|
||||||
boot.sys: boot
|
boot.sys: boot
|
||||||
mpw makebiniigs -p $< -o $@ -t \$$FF
|
mpw makebiniigs -p -s -t \$$FF $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
atinit: atinit.omf
|
||||||
|
mpw makebiniigs -p -s -t \$$e2 $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
atinit.omf: atinit.o
|
||||||
|
$(LD) -x $^ -o $@
|
||||||
|
|
||||||
|
|
||||||
.PHONY : clean
|
.PHONY : clean
|
||||||
clean :
|
clean :
|
||||||
$(RM) -- host.fst host.driver boot.driver boot.sys boot *.o
|
$(RM) -- host.fst host.driver boot.driver boot.sys boot atinit atinit.omf *.o
|
||||||
|
|
||||||
%.o : %.aii
|
%.o : %.aii
|
||||||
$(ASM) $(ASMFLAGS) $< -o $@
|
$(ASM) $(ASMFLAGS) $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
106
atinit.aii
Normal file
106
atinit.aii
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
|
||||||
|
|
||||||
|
CheckMach equ $fe1f ;Monitor Routine to check machine type
|
||||||
|
mli equ $bf00
|
||||||
|
KVersion equ $bfff
|
||||||
|
|
||||||
|
head_call equ $fb
|
||||||
|
tail_call equ $fc
|
||||||
|
|
||||||
|
;code equ $d7a9 ; end of IIgs clock driver.
|
||||||
|
code equ $c0f0 ; slot 7 devsel.
|
||||||
|
|
||||||
|
|
||||||
|
macro
|
||||||
|
&lab wdm &arg
|
||||||
|
&lab dc.b $42, &arg
|
||||||
|
endm
|
||||||
|
|
||||||
|
Macro
|
||||||
|
_ON_LINE ¶ms
|
||||||
|
jsr $BF00
|
||||||
|
dc.b $C5
|
||||||
|
dc.w ¶ms
|
||||||
|
MEnd
|
||||||
|
|
||||||
|
MACHINE M65C02
|
||||||
|
LONGA OFF
|
||||||
|
LONGI OFF
|
||||||
|
|
||||||
|
main proc ORG $2000
|
||||||
|
|
||||||
|
lda $c061 ; check open apple button
|
||||||
|
bmi exit
|
||||||
|
lda KVersion
|
||||||
|
cmp #24 ; check for ProDOS 2.4+
|
||||||
|
blt exit
|
||||||
|
sec
|
||||||
|
jsr CheckMach
|
||||||
|
bcs exit
|
||||||
|
|
||||||
|
sei
|
||||||
|
lda mli+1
|
||||||
|
sta pro_ent+1
|
||||||
|
sta mli_address
|
||||||
|
lda mli+2
|
||||||
|
sta pro_ent+2
|
||||||
|
sta mli_address+1
|
||||||
|
jsr fakemli
|
||||||
|
dc.b $99
|
||||||
|
dc.w dcb
|
||||||
|
|
||||||
|
ldx #stub_end-stub_begin
|
||||||
|
@loop
|
||||||
|
lda stub_begin,x
|
||||||
|
sta code,x
|
||||||
|
dex
|
||||||
|
bpl @loop
|
||||||
|
|
||||||
|
lda #<code
|
||||||
|
sta mli+1
|
||||||
|
lda #code>>8
|
||||||
|
sta mli+2
|
||||||
|
|
||||||
|
exit
|
||||||
|
cli
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
dcb dc.b 4 ; pcount
|
||||||
|
dc.b 1 ; version
|
||||||
|
mli_address dc.w $0000 ; mli address
|
||||||
|
dc.w code+dcb_ent-stub_begin ; patch address
|
||||||
|
mli_slot dc.b $80
|
||||||
|
|
||||||
|
fakemli
|
||||||
|
sec
|
||||||
|
wdm head_call
|
||||||
|
; if this drops through, no gs+ support.
|
||||||
|
|
||||||
|
pla
|
||||||
|
bra exit
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; this code is relocated to $d7a9, after the IIgs clock driver.
|
||||||
|
;
|
||||||
|
stub_begin
|
||||||
|
wdm head_call
|
||||||
|
pro_ent jsr $0000
|
||||||
|
dcb_ent dc.b $0
|
||||||
|
dc.w $0000
|
||||||
|
wdm tail_call
|
||||||
|
rts
|
||||||
|
stub_end
|
||||||
|
if (stub_end-stub_begin)>22 then
|
||||||
|
aerror 'stub code overflow'
|
||||||
|
endif
|
||||||
|
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user