mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-09 07:29:32 +00:00
second: hook up fake bios
This commit is contained in:
parent
bf628eaa71
commit
e9f3645e52
|
@ -11,6 +11,7 @@ all: second_d1.dsk second_d2.dsk
|
||||||
second_d1.dsk: QBOOT QLOAD music.inc qload.inc \
|
second_d1.dsk: QBOOT QLOAD music.inc qload.inc \
|
||||||
MUSIC_INTRO \
|
MUSIC_INTRO \
|
||||||
MUSIC \
|
MUSIC \
|
||||||
|
./part00_boot/FAKE_BIOS \
|
||||||
./part01_intropan/INTRO \
|
./part01_intropan/INTRO \
|
||||||
./part04_chess_shapes/CHESS \
|
./part04_chess_shapes/CHESS \
|
||||||
./part05_dot_tunnel/TUNNEL \
|
./part05_dot_tunnel/TUNNEL \
|
||||||
|
@ -30,6 +31,7 @@ second_d1.dsk: QBOOT QLOAD music.inc qload.inc \
|
||||||
$(DOS33_RAW) second_d1.dsk 1 0 QLOAD 0 0
|
$(DOS33_RAW) second_d1.dsk 1 0 QLOAD 0 0
|
||||||
$(DOS33_RAW) second_d1.dsk 2 0 MUSIC_INTRO 0 0
|
$(DOS33_RAW) second_d1.dsk 2 0 MUSIC_INTRO 0 0
|
||||||
$(DOS33_RAW) second_d1.dsk 4 0 MUSIC 0 0
|
$(DOS33_RAW) second_d1.dsk 4 0 MUSIC 0 0
|
||||||
|
$(DOS33_RAW) second_d1.dsk 9 0 ./part00_boot/FAKE_BIOS 0 0
|
||||||
$(DOS33_RAW) second_d1.dsk 10 0 ./part01_intropan/INTRO 0 0
|
$(DOS33_RAW) second_d1.dsk 10 0 ./part01_intropan/INTRO 0 0
|
||||||
$(DOS33_RAW) second_d1.dsk 15 0 ./part04_chess_shapes/CHESS 0 0
|
$(DOS33_RAW) second_d1.dsk 15 0 ./part04_chess_shapes/CHESS 0 0
|
||||||
# $(DOS33_RAW) second_d1.dsk 16 0 ./part05_dot_tunnel/TUNNEL 0 0
|
# $(DOS33_RAW) second_d1.dsk 16 0 ./part05_dot_tunnel/TUNNEL 0 0
|
||||||
|
@ -46,6 +48,9 @@ second_d1.dsk: QBOOT QLOAD music.inc qload.inc \
|
||||||
|
|
||||||
####
|
####
|
||||||
|
|
||||||
|
part00_boot/FAKE_BIOS:
|
||||||
|
cd part00_boot && make
|
||||||
|
|
||||||
part01_intropan/INTRO:
|
part01_intropan/INTRO:
|
||||||
cd part01_intropan && make
|
cd part01_intropan && make
|
||||||
|
|
||||||
|
@ -319,6 +324,7 @@ generate_common.o: generate_common.c
|
||||||
clean:
|
clean:
|
||||||
rm -f *~ *.o *.lst HELLO SECOND QBOOT QLOAD MUSIC START
|
rm -f *~ *.o *.lst HELLO SECOND QBOOT QLOAD MUSIC START
|
||||||
rm -f qload.inc qload2.inc music.inc music2.inc
|
rm -f qload.inc qload2.inc music.inc music2.inc
|
||||||
|
cd part00_boot && make clean
|
||||||
cd part01_intropan && make clean
|
cd part01_intropan && make clean
|
||||||
cd part04_chess_shapes && make clean
|
cd part04_chess_shapes && make clean
|
||||||
cd part08_gorilla && make clean
|
cd part08_gorilla && make clean
|
||||||
|
|
|
@ -80,8 +80,8 @@ qload 4k 1 16
|
||||||
00 music_intro ?? 2-3 32
|
00 music_intro ?? 2-3 32
|
||||||
01 music_main ?? 4-7 48
|
01 music_main ?? 4-7 48
|
||||||
|
|
||||||
02 fake_bios: 4k 10 16
|
02 fake_bios: 4k 9 16
|
||||||
02 intro_pan: 16k 11-14 64
|
02 intro_pan: 16k 10-14 64
|
||||||
02 title: 4k
|
02 title: 4k
|
||||||
|
|
||||||
; pause to load new music
|
; pause to load new music
|
||||||
|
|
|
@ -3,20 +3,27 @@
|
||||||
|
|
||||||
.include "../zp.inc"
|
.include "../zp.inc"
|
||||||
.include "../hardware.inc"
|
.include "../hardware.inc"
|
||||||
|
.include "../qload.inc"
|
||||||
|
|
||||||
|
mod7_table = $1c00
|
||||||
|
div7_table = $1d00
|
||||||
|
hposn_low = $1e00
|
||||||
|
hposn_high = $1f00
|
||||||
|
|
||||||
bios_test:
|
bios_test:
|
||||||
;===================
|
;===================
|
||||||
; set graphics mode
|
; set graphics mode
|
||||||
;===================
|
;===================
|
||||||
jsr HOME
|
|
||||||
|
|
||||||
bit HIRES
|
bit HIRES
|
||||||
bit FULLGR
|
bit FULLGR
|
||||||
bit SET_GR
|
bit SET_GR
|
||||||
bit PAGE1
|
bit PAGE1
|
||||||
|
|
||||||
jsr build_tables
|
lda #0
|
||||||
|
sta FAKE_KEY_COUNT
|
||||||
|
|
||||||
|
; jsr build_tables
|
||||||
|
|
||||||
;=======================
|
;=======================
|
||||||
; Hardware Detect Model
|
; Hardware Detect Model
|
||||||
|
@ -173,16 +180,18 @@ done_detect_cpu:
|
||||||
;====================
|
;====================
|
||||||
; detect disk slot
|
; detect disk slot
|
||||||
;====================
|
;====================
|
||||||
; this depends on DOS3.3 loading
|
|
||||||
|
|
||||||
lda $B5F7 ; slot*16
|
; lda $B5F7 ; slot*16
|
||||||
|
|
||||||
|
lda WHICH_SLOT
|
||||||
|
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
adc #'0'
|
adc #'0'
|
||||||
sta slot_patch1+1
|
sta slot_patch1+1
|
||||||
sta slot_patch2+1
|
; sta slot_patch2+1
|
||||||
sta slot_patch3+1
|
sta slot_patch3+1
|
||||||
sta slot_patch5+7
|
sta slot_patch5+7
|
||||||
sta slot_patch6+7
|
sta slot_patch6+7
|
||||||
|
@ -212,14 +221,15 @@ mockingboard_found:
|
||||||
|
|
||||||
mockingboard_notfound:
|
mockingboard_notfound:
|
||||||
|
|
||||||
|
|
||||||
;===================
|
;===================
|
||||||
; Load graphics
|
; Load graphics
|
||||||
;===================
|
;===================
|
||||||
|
|
||||||
lda #<graphics_data
|
lda #<graphics_data
|
||||||
sta ZX0_src
|
sta zx_src_l+1
|
||||||
lda #>graphics_data
|
lda #>graphics_data
|
||||||
sta ZX0_src+1
|
sta zx_src_h+1
|
||||||
|
|
||||||
lda #$20 ; temporarily load to $2000
|
lda #$20 ; temporarily load to $2000
|
||||||
|
|
||||||
|
@ -351,7 +361,7 @@ print_rest:
|
||||||
; type the CD command
|
; type the CD command
|
||||||
;====================
|
;====================
|
||||||
|
|
||||||
ldx #17
|
ldx #15
|
||||||
jsr draw_dos_command
|
jsr draw_dos_command
|
||||||
|
|
||||||
jsr DrawCondensedStringAgain
|
jsr DrawCondensedStringAgain
|
||||||
|
@ -360,36 +370,58 @@ print_rest:
|
||||||
; type the DIR command
|
; type the DIR command
|
||||||
;====================
|
;====================
|
||||||
|
|
||||||
jsr DrawCondensedStringAgain
|
; jsr DrawCondensedStringAgain
|
||||||
ldx #6
|
; ldx #6
|
||||||
jsr draw_dos_command
|
; jsr draw_dos_command
|
||||||
|
|
||||||
jsr DrawCondensedStringAgain
|
; jsr DrawCondensedStringAgain
|
||||||
|
|
||||||
;====================
|
;====================
|
||||||
; show DIR
|
; show DIR
|
||||||
;====================
|
;====================
|
||||||
|
|
||||||
bit $C0E9 ; turn on drive motor (slot6)
|
; bit $C0E9 ; turn on drive motor (slot6)
|
||||||
|
|
||||||
lda #<bios_message_6
|
; lda #<bios_message_6
|
||||||
ldy #>bios_message_6
|
; ldy #>bios_message_6
|
||||||
ldx #7
|
; ldx #7
|
||||||
jsr draw_multiple_strings
|
; jsr draw_multiple_strings
|
||||||
|
|
||||||
bit $C0E8 ; turn off drive motor (slot6)
|
; bit $C0E8 ; turn off drive motor (slot6)
|
||||||
|
|
||||||
;=======================
|
;=======================
|
||||||
; type the LEMM command
|
; type the A2 command
|
||||||
;=======================
|
;=======================
|
||||||
|
|
||||||
ldx #5
|
ldx #4
|
||||||
jsr draw_dos_command
|
jsr draw_dos_command
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end:
|
end:
|
||||||
jmp end
|
ldx #5
|
||||||
|
jsr long_wait
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
fake_keypress:
|
||||||
|
inc FAKE_KEY_COUNT
|
||||||
|
|
||||||
|
lda FAKE_KEY_COUNT
|
||||||
|
and #$1
|
||||||
|
beq do_fake_key
|
||||||
|
|
||||||
|
no_fake_key:
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
do_fake_key:
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
; jmp end
|
||||||
|
|
||||||
|
|
||||||
; 0123456789012345678901234567890123456789
|
; 0123456789012345678901234567890123456789
|
||||||
|
@ -462,21 +494,20 @@ slot_patch1:
|
||||||
.byte "c",0
|
.byte "c",0
|
||||||
.byte "d",0
|
.byte "d",0
|
||||||
.byte " ",0
|
.byte " ",0
|
||||||
.byte "g",0
|
.byte "d",0
|
||||||
.byte "a",0
|
|
||||||
.byte "m",0
|
|
||||||
.byte "e",0
|
.byte "e",0
|
||||||
|
.byte "m",0
|
||||||
|
.byte "o",0
|
||||||
.byte "s",0
|
.byte "s",0
|
||||||
.byte "\",0
|
.byte "\",0
|
||||||
.byte "l",0
|
.byte "a",0
|
||||||
|
.byte "2",0
|
||||||
|
.byte "r",0
|
||||||
.byte "e",0
|
.byte "e",0
|
||||||
.byte "m",0
|
.byte "a",0
|
||||||
.byte "m",0
|
.byte "l",13,0
|
||||||
.byte "i",0
|
|
||||||
.byte "n",0
|
|
||||||
.byte "g",0
|
|
||||||
.byte "s",13,0
|
|
||||||
|
|
||||||
|
.if 0
|
||||||
bios_message5:
|
bios_message5:
|
||||||
.byte 13,0
|
.byte 13,0
|
||||||
slot_patch2:
|
slot_patch2:
|
||||||
|
@ -496,34 +527,28 @@ bios_message_6:
|
||||||
.byte "LEVEL9 LEVEL10 LEMM",13,0
|
.byte "LEVEL9 LEVEL10 LEMM",13,0
|
||||||
.byte " 13 File(s) 90,624 Bytes.",13,0
|
.byte " 13 File(s) 90,624 Bytes.",13,0
|
||||||
.byte " 2 Dir(s) 52,736 Bytes free.",13,13,0
|
.byte " 2 Dir(s) 52,736 Bytes free.",13,13,0
|
||||||
|
.endif
|
||||||
|
|
||||||
bios_message7:
|
bios_message7:
|
||||||
slot_patch3:
|
slot_patch3:
|
||||||
.byte "S6D1>",0 ; 184
|
.byte "S6D1>",0 ; 184
|
||||||
.byte "l",0
|
.byte "a",0
|
||||||
.byte "e",0
|
.byte "2",0
|
||||||
.byte "m",0
|
.byte "r",0
|
||||||
.byte "m",0
|
|
||||||
|
|
||||||
.include "font_console_1x8.s"
|
.include "font_console_1x8.s"
|
||||||
.include "fonts/a2_cga_thin.inc"
|
.include "fonts/a2_cga_thin.inc"
|
||||||
|
|
||||||
.include "../zx02_optim.s"
|
|
||||||
|
|
||||||
graphics_data:
|
graphics_data:
|
||||||
.incbin "graphics/a2_energy.hgr.zx02"
|
.incbin "graphics/a2_energy.hgr.zx02"
|
||||||
|
|
||||||
hposn_low = $1713 ; 0xC0 bytes (lifetime, used by DrawLargeCharacter)
|
.include "../wait_keypress.s"
|
||||||
hposn_high = $1800 ; 0xC0 bytes (lifetime, used by DrawLargeCharacter)
|
|
||||||
|
|
||||||
.include "../hgr_table.s"
|
;wait_until_keypress:
|
||||||
|
; lda KEYPRESS ; 4
|
||||||
|
; bpl wait_until_keypress ; 3
|
||||||
wait_until_keypress:
|
; bit KEYRESET ; clear the keyboard buffer
|
||||||
lda KEYPRESS ; 4
|
; rts ; 6
|
||||||
bpl wait_until_keypress ; 3
|
|
||||||
bit KEYRESET ; clear the keyboard buffer
|
|
||||||
rts ; 6
|
|
||||||
|
|
||||||
|
|
||||||
memcount:
|
memcount:
|
||||||
|
@ -660,16 +685,19 @@ dos_command_inner:
|
||||||
lda #200
|
lda #200
|
||||||
jsr wait
|
jsr wait
|
||||||
|
|
||||||
lda KEYPRESS
|
jsr fake_keypress
|
||||||
bmi dos_keypress
|
; lda KEYPRESS
|
||||||
|
bcs dos_keypress
|
||||||
|
|
||||||
jsr DrawCondensedStringAgain
|
jsr DrawCondensedStringAgain
|
||||||
dec CH
|
dec CH
|
||||||
lda #200
|
lda #200
|
||||||
jsr wait
|
jsr wait
|
||||||
|
|
||||||
lda KEYPRESS
|
jsr fake_keypress
|
||||||
bmi dos_keypress
|
|
||||||
|
; lda KEYPRESS
|
||||||
|
bcs dos_keypress
|
||||||
|
|
||||||
jmp dos_command_inner
|
jmp dos_command_inner
|
||||||
dos_keypress:
|
dos_keypress:
|
||||||
|
@ -752,13 +780,13 @@ 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"
|
|
||||||
.include "aux_detect.s"
|
.include "aux_detect.s"
|
||||||
.include "65c02_detect.s"
|
.include "65c02_detect.s"
|
||||||
.include "pt3_lib_mockingboard_setup.s"
|
.include "pt3_lib_mockingboard_setup.s"
|
||||||
.include "../pt3_lib_mockingboard_detect.s"
|
|
||||||
|
|
||||||
|
;.include "../lc_detect.s"
|
||||||
.include "../wait.s"
|
;.include "../pt3_lib_mockingboard_detect.s"
|
||||||
|
;.include "../wait.s"
|
||||||
|
|
||||||
|
|
|
@ -166,44 +166,44 @@ which_disk_array:
|
||||||
.byte 1,1,1,1 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
.byte 1,1,1,1 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
||||||
.byte 1,1,1,1 ; GORILLA,LEAVES,LENS,PLASMA
|
.byte 1,1,1,1 ; GORILLA,LEAVES,LENS,PLASMA
|
||||||
.byte 1,1,1,1 ; CUBE,DOTS,SPHERES,OCEAN
|
.byte 1,1,1,1 ; CUBE,DOTS,SPHERES,OCEAN
|
||||||
.byte 1 ; POLAR
|
.byte 1,1 ; POLAR,FAKE_BIOS
|
||||||
|
|
||||||
load_address_array:
|
load_address_array:
|
||||||
.byte $D0,$D0,$60,$80 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
.byte $D0,$D0,$60,$80 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
||||||
.byte $60,$60,$60,$60 ; GORILLA,LEAVES,LENS,PLASMA
|
.byte $60,$60,$60,$60 ; GORILLA,LEAVES,LENS,PLASMA
|
||||||
.byte $60,$60,$60,$60 ; CUBE,DOTS,SPHERES,OCEAN
|
.byte $60,$60,$60,$60 ; CUBE,DOTS,SPHERES,OCEAN
|
||||||
.byte $60 ; POLAR
|
.byte $60,$60 ; POLAR,FAKE_BIOS
|
||||||
|
|
||||||
start_address:
|
start_address:
|
||||||
.byte $D0,$D0,$60,$80 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
.byte $D0,$D0,$60,$80 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
||||||
.byte $60,$60,$60,$80 ; GORILLA,LEAVES,LENS,PLASMA
|
.byte $60,$60,$60,$80 ; GORILLA,LEAVES,LENS,PLASMA
|
||||||
.byte $80,$80,$80,$60 ; CUBE,DOTS,SPHERES,OCEAN
|
.byte $80,$80,$80,$60 ; CUBE,DOTS,SPHERES,OCEAN
|
||||||
.byte $80 ; POLAR
|
.byte $80,$60 ; POLAR,FAKE_BIOS
|
||||||
|
|
||||||
aux_dest:
|
aux_dest:
|
||||||
.byte $D0,$D0,$A0,$A0 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
.byte $D0,$D0,$A0,$A0 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
||||||
.byte $70,$50,$40,$30 ; GORILLA,LEAVES,LENS,PLASMA
|
.byte $70,$50,$40,$30 ; GORILLA,LEAVES,LENS,PLASMA
|
||||||
.byte $20,$10,$80,$20 ; CUBE,DOTS,SPHERES,OCEAN
|
.byte $20,$10,$80,$20 ; CUBE,DOTS,SPHERES,OCEAN
|
||||||
.byte $10 ; POLAR
|
.byte $10,$A0 ; POLAR,FAKE_BIOS
|
||||||
|
|
||||||
track_array:
|
track_array:
|
||||||
.byte 2,4,10,15 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
.byte 2,4,10,15 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
||||||
.byte 19,21,23,24 ; GORILLA,LEAVES,LENS,PLASMA
|
.byte 19,21,23,24 ; GORILLA,LEAVES,LENS,PLASMA
|
||||||
.byte 25,26,27,28 ; CUBE,DOTS,SPHERES,OCEAN
|
.byte 25,26,27,28 ; CUBE,DOTS,SPHERES,OCEAN
|
||||||
.byte 34 ; POLAR
|
.byte 34,9 ; POLAR,FAKE_BIOS
|
||||||
|
|
||||||
sector_array:
|
sector_array:
|
||||||
.byte 0,0,0,0 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
.byte 0,0,0,0 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
||||||
.byte 0,0,0,0 ; GORILLA,LEAVES,LENS,PLASMA
|
.byte 0,0,0,0 ; GORILLA,LEAVES,LENS,PLASMA
|
||||||
.byte 0,0,0,0 ; CUBE,DOTS,SPHERES,OCEAN
|
.byte 0,0,0,0 ; CUBE,DOTS,SPHERES,OCEAN
|
||||||
.byte 0 ; POLAR
|
.byte 0,0 ; POLAR,FAKE_BIOS
|
||||||
|
|
||||||
|
|
||||||
length_array:
|
length_array:
|
||||||
.byte 32,48,80,48 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
.byte 32,48,80,48 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
||||||
.byte 32,32,16,16 ; GORILLA,LEAVES,LENS,PLASMA
|
.byte 32,32,16,16 ; GORILLA,LEAVES,LENS,PLASMA
|
||||||
.byte 16,16,16,96 ; CUBE,DOTS,SPHERES,OCEAN
|
.byte 16,16,16,96 ; CUBE,DOTS,SPHERES,OCEAN
|
||||||
.byte 16 ; POLAR
|
.byte 16,16 ; POLAR,FAKE_BIOS
|
||||||
|
|
||||||
|
|
||||||
.include "wait.s"
|
.include "wait.s"
|
||||||
|
|
|
@ -25,8 +25,21 @@ restart:
|
||||||
lda #0
|
lda #0
|
||||||
sta DRAW_PAGE
|
sta DRAW_PAGE
|
||||||
|
|
||||||
|
;========================
|
||||||
|
; fake BIOS
|
||||||
|
;========================
|
||||||
|
|
||||||
|
lda #13 ; load FAKE_BIOS
|
||||||
|
sta WHICH_LOAD
|
||||||
|
|
||||||
|
jsr load_file
|
||||||
|
|
||||||
|
; run it
|
||||||
|
|
||||||
|
jsr $6000
|
||||||
|
|
||||||
;==================================
|
;==================================
|
||||||
; load sound into the language card
|
; load music into the language card
|
||||||
; into $D000 set 1
|
; into $D000 set 1
|
||||||
;==================================
|
;==================================
|
||||||
|
|
||||||
|
|
|
@ -226,6 +226,14 @@ REF2L = $F7
|
||||||
REF2H = $F8
|
REF2H = $F8
|
||||||
REFCOUNT = $F9
|
REFCOUNT = $F9
|
||||||
|
|
||||||
|
; BIOS
|
||||||
|
STRING_COUNT = $F0
|
||||||
|
LEAD0 = $F1
|
||||||
|
SCROLL_OUT = $F2
|
||||||
|
SCROLL_IN = $F3
|
||||||
|
MEMCOUNT = $F4
|
||||||
|
FAKE_KEY_COUNT = $F5
|
||||||
|
|
||||||
;==============================================
|
;==============================================
|
||||||
; $FC-$FF we use for in/out pointers
|
; $FC-$FF we use for in/out pointers
|
||||||
;==============================================
|
;==============================================
|
||||||
|
|
Loading…
Reference in New Issue
Block a user