dos33fsprogs/demos/second/start2.s

200 lines
2.9 KiB
ArmAsm
Raw Permalink Normal View History

2023-10-23 05:02:51 +00:00
; startup for disk2
;
; by deater (Vince Weaver) <vince@deater.net>
;.include "zp.inc"
;.include "hardware.inc"
2023-10-27 03:14:02 +00:00
;.include "qload2.inc"
;.include "music.inc"
2023-10-23 05:02:51 +00:00
second_start:
;=====================
; initializations
;=====================
jsr hardware_detect
jsr hgr_make_tables
2023-10-23 05:02:51 +00:00
;===================
; 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
2023-11-04 04:24:13 +00:00
lda #0 ; load music
2023-10-23 05:02:51 +00:00
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
2023-10-23 05:02:51 +00:00
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
2023-10-23 05:02:51 +00:00
;=======================
2023-10-27 03:14:02 +00:00
; load, copy to AUXMEM
2023-10-23 05:02:51 +00:00
;=======================
2023-10-27 03:14:02 +00:00
sta $C008 ; use MAIN zero-page/stack/language card
;====================
; load nuts to $6000
lda #3 ; NUTS
2023-10-23 05:02:51 +00:00
sta WHICH_LOAD
2023-10-27 03:14:02 +00:00
jsr load_file
2023-10-23 05:02:51 +00:00
2023-10-27 03:14:02 +00:00
;======================
; copy NUTS to AUX $2000
2023-10-27 03:14:02 +00:00
lda #$20 ; AUX dest $4000
ldy #$60 ; MAIN src $6000
2023-10-27 03:14:02 +00:00
ldx #32 ; 64 pages
jsr copy_main_aux
;=====================
2023-10-27 03:14:02 +00:00
; load CREDITS to $6000
lda #2 ; CREDITS
sta WHICH_LOAD
2023-10-23 05:02:51 +00:00
jsr load_file
2023-10-27 03:14:02 +00:00
;===========================
; copy CREDITS to AUX $6000
2023-10-27 03:14:02 +00:00
lda #$60 ; AUX dest $60
2023-10-27 03:14:02 +00:00
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
2023-10-27 03:14:02 +00:00
;=======================
; run THREED
;=======================
2023-10-23 05:02:51 +00:00
cli ; start music
jsr $2000
2023-10-27 03:14:02 +00:00
;=======================
; run NUTS
;============================================
2023-10-28 05:28:48 +00:00
; copy NUTS from AUX $2000 to MAIN $8000
lda #$20 ; AUX src $2000
2023-10-28 05:28:48 +00:00
ldy #$80 ; MAIN dest $8000
ldx #32 ; 32 pages
jsr copy_aux_main
; run nuts
2023-10-28 05:28:48 +00:00
jsr $8000
2023-10-27 03:14:02 +00:00
;=======================
; run CREDITS
;============================================
; copy CREDITS from AUX $6000 to MAIN $8000
2023-10-27 03:14:02 +00:00
lda #$60 ; AUX src $6000
ldy #$80 ; MAIN dest $8000
2023-10-27 03:14:02 +00:00
ldx #64 ; 64 pages
jsr copy_aux_main
; run credits
jsr $8000
2023-10-27 03:14:02 +00:00
2023-10-23 05:02:51 +00:00
2023-10-27 03:14:02 +00:00
; TODO: RR?
2023-10-23 05:02:51 +00:00
forever:
jmp forever
.include "pt3_lib_mockingboard_patch.s"
.include "hardware_detect.s"
.include "hgr_clear_screen.s"