; startup for disk2 ; ; by deater (Vince Weaver) ;.include "zp.inc" ;.include "hardware.inc" ;.include "qload2.inc" ;.include "music.inc" second_start: ;===================== ; initializations ;===================== jsr hardware_detect jsr hgr_make_tables ;=================== ; restart? ;=================== restart: lda #0 sta DRAW_PAGE ;================================== ; load sound into the language card ; into $D000 set 1 ;================================== ; read/write RAM, use $d000 bank1 bit $C083 bit $C083 lda #0 ; load music sta WHICH_LOAD jsr load_file lda #0 sta DONE_PLAYING lda #1 sta LOOP ; patch mockingboard jsr mockingboard_patch ; patch to work in slots other than 4? ;======================= ; Set up 50Hz interrupt ;======================== jsr mockingboard_init jsr mockingboard_setup_interrupt ;============================ ; Init the Mockingboard ;============================ jsr reset_ay_both jsr clear_ay_both ;================== ; init song ;================== jsr pt3_init_song dont_enable_mc: skip_all_checks: ;=================== ; Load graphics ;=================== load_loop: bit SET_GR bit FULLGR bit PAGE1 lda #0 sta clear_all_color+1 sta DRAW_PAGE jsr clear_all lda #4 sta DRAW_PAGE jsr clear_all lda #0 sta DRAW_PAGE ;======================= ; load, copy to AUXMEM ;======================= sta $C008 ; use MAIN zero-page/stack/language card ;==================== ; load nuts to $6000 lda #3 ; NUTS sta WHICH_LOAD jsr load_file ;====================== ; copy NUTS to AUX $2000 lda #$20 ; AUX dest $4000 ldy #$60 ; MAIN src $6000 ldx #32 ; 64 pages jsr copy_main_aux ;===================== ; load CREDITS to $6000 lda #2 ; CREDITS sta WHICH_LOAD jsr load_file ;=========================== ; copy CREDITS to AUX $6000 lda #$60 ; AUX dest $60 ldy #$60 ; MAIN src ldx #64 ; 64 pages jsr copy_main_aux ;===================== ; clear both pages ; lda #0 ; jsr hgr_page1_clearscreen ;===================== ; load THREED to $2000 lda #1 ; THREED sta WHICH_LOAD jsr load_file ;======================= ; run THREED ;======================= cli ; start music jsr $2000 ;======================= ; run NUTS ;============================================ ; copy NUTS from AUX $2000 to MAIN $8000 lda #$20 ; AUX src $2000 ldy #$80 ; MAIN dest $8000 ldx #32 ; 32 pages jsr copy_aux_main ; run nuts jsr $8000 ;======================= ; run CREDITS ;============================================ ; copy CREDITS from AUX $6000 to MAIN $8000 lda #$60 ; AUX src $6000 ldy #$80 ; MAIN dest $8000 ldx #64 ; 64 pages jsr copy_aux_main ; run credits jsr $8000 ; TODO: RR? forever: jmp forever .include "pt3_lib_mockingboard_patch.s" .include "hardware_detect.s" .include "hgr_clear_screen.s"