mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-01 05:31:52 +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 \
|
||||
MUSIC_INTRO \
|
||||
MUSIC \
|
||||
./part00_boot/FAKE_BIOS \
|
||||
./part01_intropan/INTRO \
|
||||
./part04_chess_shapes/CHESS \
|
||||
./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 2 0 MUSIC_INTRO 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 15 0 ./part04_chess_shapes/CHESS 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:
|
||||
cd part01_intropan && make
|
||||
|
||||
@ -319,6 +324,7 @@ generate_common.o: generate_common.c
|
||||
clean:
|
||||
rm -f *~ *.o *.lst HELLO SECOND QBOOT QLOAD MUSIC START
|
||||
rm -f qload.inc qload2.inc music.inc music2.inc
|
||||
cd part00_boot && make clean
|
||||
cd part01_intropan && make clean
|
||||
cd part04_chess_shapes && make clean
|
||||
cd part08_gorilla && make clean
|
||||
|
@ -80,8 +80,8 @@ qload 4k 1 16
|
||||
00 music_intro ?? 2-3 32
|
||||
01 music_main ?? 4-7 48
|
||||
|
||||
02 fake_bios: 4k 10 16
|
||||
02 intro_pan: 16k 11-14 64
|
||||
02 fake_bios: 4k 9 16
|
||||
02 intro_pan: 16k 10-14 64
|
||||
02 title: 4k
|
||||
|
||||
; pause to load new music
|
||||
|
@ -3,20 +3,27 @@
|
||||
|
||||
.include "../zp.inc"
|
||||
.include "../hardware.inc"
|
||||
.include "../qload.inc"
|
||||
|
||||
mod7_table = $1c00
|
||||
div7_table = $1d00
|
||||
hposn_low = $1e00
|
||||
hposn_high = $1f00
|
||||
|
||||
bios_test:
|
||||
;===================
|
||||
; set graphics mode
|
||||
;===================
|
||||
jsr HOME
|
||||
|
||||
bit HIRES
|
||||
bit FULLGR
|
||||
bit SET_GR
|
||||
bit PAGE1
|
||||
|
||||
jsr build_tables
|
||||
lda #0
|
||||
sta FAKE_KEY_COUNT
|
||||
|
||||
; jsr build_tables
|
||||
|
||||
;=======================
|
||||
; Hardware Detect Model
|
||||
@ -173,16 +180,18 @@ done_detect_cpu:
|
||||
;====================
|
||||
; detect disk slot
|
||||
;====================
|
||||
; this depends on DOS3.3 loading
|
||||
|
||||
lda $B5F7 ; slot*16
|
||||
; lda $B5F7 ; slot*16
|
||||
|
||||
lda WHICH_SLOT
|
||||
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
adc #'0'
|
||||
sta slot_patch1+1
|
||||
sta slot_patch2+1
|
||||
; sta slot_patch2+1
|
||||
sta slot_patch3+1
|
||||
sta slot_patch5+7
|
||||
sta slot_patch6+7
|
||||
@ -212,14 +221,15 @@ mockingboard_found:
|
||||
|
||||
mockingboard_notfound:
|
||||
|
||||
|
||||
;===================
|
||||
; Load graphics
|
||||
;===================
|
||||
|
||||
lda #<graphics_data
|
||||
sta ZX0_src
|
||||
sta zx_src_l+1
|
||||
lda #>graphics_data
|
||||
sta ZX0_src+1
|
||||
sta zx_src_h+1
|
||||
|
||||
lda #$20 ; temporarily load to $2000
|
||||
|
||||
@ -351,7 +361,7 @@ print_rest:
|
||||
; type the CD command
|
||||
;====================
|
||||
|
||||
ldx #17
|
||||
ldx #15
|
||||
jsr draw_dos_command
|
||||
|
||||
jsr DrawCondensedStringAgain
|
||||
@ -360,36 +370,58 @@ print_rest:
|
||||
; type the DIR command
|
||||
;====================
|
||||
|
||||
jsr DrawCondensedStringAgain
|
||||
ldx #6
|
||||
jsr draw_dos_command
|
||||
; jsr DrawCondensedStringAgain
|
||||
; ldx #6
|
||||
; jsr draw_dos_command
|
||||
|
||||
jsr DrawCondensedStringAgain
|
||||
; jsr DrawCondensedStringAgain
|
||||
|
||||
;====================
|
||||
; show DIR
|
||||
;====================
|
||||
|
||||
bit $C0E9 ; turn on drive motor (slot6)
|
||||
; bit $C0E9 ; turn on drive motor (slot6)
|
||||
|
||||
lda #<bios_message_6
|
||||
ldy #>bios_message_6
|
||||
ldx #7
|
||||
jsr draw_multiple_strings
|
||||
; lda #<bios_message_6
|
||||
; ldy #>bios_message_6
|
||||
; ldx #7
|
||||
; 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
|
||||
|
||||
|
||||
|
||||
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
|
||||
@ -462,21 +494,20 @@ slot_patch1:
|
||||
.byte "c",0
|
||||
.byte "d",0
|
||||
.byte " ",0
|
||||
.byte "g",0
|
||||
.byte "a",0
|
||||
.byte "m",0
|
||||
.byte "d",0
|
||||
.byte "e",0
|
||||
.byte "m",0
|
||||
.byte "o",0
|
||||
.byte "s",0
|
||||
.byte "\",0
|
||||
.byte "l",0
|
||||
.byte "a",0
|
||||
.byte "2",0
|
||||
.byte "r",0
|
||||
.byte "e",0
|
||||
.byte "m",0
|
||||
.byte "m",0
|
||||
.byte "i",0
|
||||
.byte "n",0
|
||||
.byte "g",0
|
||||
.byte "s",13,0
|
||||
.byte "a",0
|
||||
.byte "l",13,0
|
||||
|
||||
.if 0
|
||||
bios_message5:
|
||||
.byte 13,0
|
||||
slot_patch2:
|
||||
@ -496,34 +527,28 @@ bios_message_6:
|
||||
.byte "LEVEL9 LEVEL10 LEMM",13,0
|
||||
.byte " 13 File(s) 90,624 Bytes.",13,0
|
||||
.byte " 2 Dir(s) 52,736 Bytes free.",13,13,0
|
||||
.endif
|
||||
|
||||
bios_message7:
|
||||
slot_patch3:
|
||||
.byte "S6D1>",0 ; 184
|
||||
.byte "l",0
|
||||
.byte "e",0
|
||||
.byte "m",0
|
||||
.byte "m",0
|
||||
.byte "a",0
|
||||
.byte "2",0
|
||||
.byte "r",0
|
||||
|
||||
.include "font_console_1x8.s"
|
||||
.include "fonts/a2_cga_thin.inc"
|
||||
|
||||
.include "../zx02_optim.s"
|
||||
|
||||
graphics_data:
|
||||
.incbin "graphics/a2_energy.hgr.zx02"
|
||||
|
||||
hposn_low = $1713 ; 0xC0 bytes (lifetime, used by DrawLargeCharacter)
|
||||
hposn_high = $1800 ; 0xC0 bytes (lifetime, used by DrawLargeCharacter)
|
||||
.include "../wait_keypress.s"
|
||||
|
||||
.include "../hgr_table.s"
|
||||
|
||||
|
||||
wait_until_keypress:
|
||||
lda KEYPRESS ; 4
|
||||
bpl wait_until_keypress ; 3
|
||||
bit KEYRESET ; clear the keyboard buffer
|
||||
rts ; 6
|
||||
;wait_until_keypress:
|
||||
; lda KEYPRESS ; 4
|
||||
; bpl wait_until_keypress ; 3
|
||||
; bit KEYRESET ; clear the keyboard buffer
|
||||
; rts ; 6
|
||||
|
||||
|
||||
memcount:
|
||||
@ -660,16 +685,19 @@ dos_command_inner:
|
||||
lda #200
|
||||
jsr wait
|
||||
|
||||
lda KEYPRESS
|
||||
bmi dos_keypress
|
||||
jsr fake_keypress
|
||||
; lda KEYPRESS
|
||||
bcs dos_keypress
|
||||
|
||||
jsr DrawCondensedStringAgain
|
||||
dec CH
|
||||
lda #200
|
||||
jsr wait
|
||||
|
||||
lda KEYPRESS
|
||||
bmi dos_keypress
|
||||
jsr fake_keypress
|
||||
|
||||
; lda KEYPRESS
|
||||
bcs dos_keypress
|
||||
|
||||
jmp dos_command_inner
|
||||
dos_keypress:
|
||||
@ -752,13 +780,13 @@ early_out:
|
||||
|
||||
.include "../hgr_clear_screen.s"
|
||||
|
||||
.include "pt3_lib_detect_model.s"
|
||||
.include "../lc_detect.s"
|
||||
;.include "pt3_lib_detect_model.s"
|
||||
|
||||
.include "aux_detect.s"
|
||||
.include "65c02_detect.s"
|
||||
.include "pt3_lib_mockingboard_setup.s"
|
||||
.include "../pt3_lib_mockingboard_detect.s"
|
||||
|
||||
|
||||
.include "../wait.s"
|
||||
;.include "../lc_detect.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 ; GORILLA,LEAVES,LENS,PLASMA
|
||||
.byte 1,1,1,1 ; CUBE,DOTS,SPHERES,OCEAN
|
||||
.byte 1 ; POLAR
|
||||
.byte 1,1 ; POLAR,FAKE_BIOS
|
||||
|
||||
load_address_array:
|
||||
.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 ; CUBE,DOTS,SPHERES,OCEAN
|
||||
.byte $60 ; POLAR
|
||||
.byte $60,$60 ; POLAR,FAKE_BIOS
|
||||
|
||||
start_address:
|
||||
.byte $D0,$D0,$60,$80 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
||||
.byte $60,$60,$60,$80 ; GORILLA,LEAVES,LENS,PLASMA
|
||||
.byte $80,$80,$80,$60 ; CUBE,DOTS,SPHERES,OCEAN
|
||||
.byte $80 ; POLAR
|
||||
.byte $80,$60 ; POLAR,FAKE_BIOS
|
||||
|
||||
aux_dest:
|
||||
.byte $D0,$D0,$A0,$A0 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
||||
.byte $70,$50,$40,$30 ; GORILLA,LEAVES,LENS,PLASMA
|
||||
.byte $20,$10,$80,$20 ; CUBE,DOTS,SPHERES,OCEAN
|
||||
.byte $10 ; POLAR
|
||||
.byte $10,$A0 ; POLAR,FAKE_BIOS
|
||||
|
||||
track_array:
|
||||
.byte 2,4,10,15 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
||||
.byte 19,21,23,24 ; GORILLA,LEAVES,LENS,PLASMA
|
||||
.byte 25,26,27,28 ; CUBE,DOTS,SPHERES,OCEAN
|
||||
.byte 34 ; POLAR
|
||||
.byte 34,9 ; POLAR,FAKE_BIOS
|
||||
|
||||
sector_array:
|
||||
.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 ; CUBE,DOTS,SPHERES,OCEAN
|
||||
.byte 0 ; POLAR
|
||||
.byte 0,0 ; POLAR,FAKE_BIOS
|
||||
|
||||
|
||||
length_array:
|
||||
.byte 32,48,80,48 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
|
||||
.byte 32,32,16,16 ; GORILLA,LEAVES,LENS,PLASMA
|
||||
.byte 16,16,16,96 ; CUBE,DOTS,SPHERES,OCEAN
|
||||
.byte 16 ; POLAR
|
||||
.byte 16,16 ; POLAR,FAKE_BIOS
|
||||
|
||||
|
||||
.include "wait.s"
|
||||
|
@ -25,8 +25,21 @@ restart:
|
||||
lda #0
|
||||
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
|
||||
;==================================
|
||||
|
||||
|
@ -226,6 +226,14 @@ REF2L = $F7
|
||||
REF2H = $F8
|
||||
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
|
||||
;==============================================
|
||||
|
Loading…
Reference in New Issue
Block a user