From 8aa2dd854d6198eeb2a7965ff3f5ce935a725396 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 2 Sep 2020 00:49:51 -0400 Subject: [PATCH] mist: add back text title screen goes by too quickly now --- mist/Makefile | 13 +++++++++- mist/common_routines.inc | 48 ++++++++++++++++++------------------ mist/qload.s | 15 +++++++++--- mist/text_title.s | 53 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 100 insertions(+), 29 deletions(-) create mode 100644 mist/text_title.s diff --git a/mist/Makefile b/mist/Makefile index 13be552f..cb37104b 100644 --- a/mist/Makefile +++ b/mist/Makefile @@ -44,13 +44,15 @@ zip: mist.dsk mist_side2.dsk mist_side3.dsk # $(DOS33) -y mist_side3.dsk BSAVE -a 0x2000 SUB -mist.dsk: QBOOT QLOAD MIST_TITLE MIST OCTAGON VIEWER \ +mist.dsk: QBOOT TEXT_TITLE QLOAD \ + MIST_TITLE MIST OCTAGON VIEWER \ DENTIST D\'NI SHIP GENERATOR \ SAVE1 SAVE2 SAVE3 SAVE4 SAVE5 cp extra_empty.dsk mist.dsk $(DOS33_RAW) mist.dsk 0 0 QBOOT 0 1 $(DOS33_RAW) mist.dsk 0 2 QBOOT 1 1 $(DOS33_RAW) mist.dsk 0 4 QBOOT 2 1 + $(DOS33_RAW) mist.dsk 0 6 TEXT_TITLE 0 3 $(DOS33_RAW) mist.dsk 0 11 SAVE1 0 1 $(DOS33_RAW) mist.dsk 0 12 SAVE2 0 1 $(DOS33_RAW) mist.dsk 0 13 SAVE3 0 1 @@ -92,6 +94,15 @@ qboot_sector.o: qboot_sector.s qboot_stage2.s ### +TEXT_TITLE: text_title.o + ld65 -o TEXT_TITLE text_title.o -C ../linker_scripts/apple2_800.inc + +text_title.o: text_title.s + ca65 -o text_title.o text_title.s -l text_title.lst + + +### + QLOAD: qload.o ld65 -o QLOAD qload.o -C ../linker_scripts/apple2_1200.inc diff --git a/mist/common_routines.inc b/mist/common_routines.inc index b80227cc..0b640928 100644 --- a/mist/common_routines.inc +++ b/mist/common_routines.inc @@ -2,50 +2,50 @@ ; external routines ; linking_noise.s -play_link_noise =$141e +play_link_noise =$1428 ; decompress_fast_v2.s -decompress_lzsa2_fast =$143a -getsrc_smc =$1530 +decompress_lzsa2_fast =$1444 +getsrc_smc =$153a ; draw_pointer.s -draw_pointer =$153d +draw_pointer =$1547 ; end_level.s -end_level =$16ab +end_level =$16b5 ; gr_copy.s -gr_copy_to_current =$16cd +gr_copy_to_current =$16d7 ; gr_fast_clear.s -clear_bottom =$17f3 -clear_all =$1831 -clear_all_color =$1856 +clear_bottom =$17fd +clear_all =$183b +clear_all_color =$1860 ; gr_offsets.s -gr_offsets =$1874 +gr_offsets =$187e ; gr_page_flip.s -page_flip =$18a4 +page_flip =$18ae ; gr_putsprite_crop.s -put_sprite_crop =$18be -psc_smc1 =$18e1 -psc_smc2 =$1979 +put_sprite_crop =$18c8 +psc_smc1 =$18eb +psc_smc2 =$1983 ; keyboard.s -handle_keypress =$19fa -change_direction =$1abe -change_location =$1af7 +handle_keypress =$1a04 +change_direction =$1ac8 +change_location =$1b01 ; text_print.s -move_and_print =$1b8f -ps_smc1 =$1bbc +move_and_print =$1b99 +ps_smc1 =$1bc6 ; page_sprites.inc -blue_page_sprite =$1cd8 -red_page_sprite =$1cee -white_page_sprite =$1d04 -blue_page_small_sprite =$1d1a -red_page_small_sprite =$1d22 +blue_page_sprite =$1ce2 +red_page_sprite =$1cf8 +white_page_sprite =$1d0e +blue_page_small_sprite =$1d24 +red_page_small_sprite =$1d2c diff --git a/mist/qload.s b/mist/qload.s index 32388c71..74862bb8 100644 --- a/mist/qload.s +++ b/mist/qload.s @@ -8,14 +8,21 @@ qload_start: ; first time entry - ; start by loading title + ; start by loading text title - lda #LOAD_TITLE ; load title + lda #LOAD_TEXT_TITLE ; load title sta WHICH_LOAD lda #1 sta CURRENT_DISK ; current disk number + jsr load_file + + jsr $800 + + lda #LOAD_TITLE ; load title + sta WHICH_LOAD + main_game_loop: jsr load_file @@ -155,7 +162,7 @@ sector_array: .byte 0, 8, 0, 0 ; OCTAGON,VIEWER,STONEY,CHANNEL .byte 0, 0, 0, 0 ; CABIN,DENTIST,ARBOR,NIBEL .byte 0,12, 0, 0 ; SHIP,GENERATOR,D'NI,SUB - .byte 1 ; TEXT_TITLE + .byte 6 ; TEXT_TITLE .byte 11,12,13,14,15 ; SAVE1,SAVE2,SAVE3,SAVE4,SAVE5 length_array: @@ -163,7 +170,7 @@ length_array: .byte 128, 19,158,135 ; OCTAGON,VIEWER,STONEY,CHANNEL .byte 61, 31,159,109 ; CABIN,DENTIST,ARBOR,NIBEL .byte 20, 33, 27, 54 ; SHIP,GENERATOR,D'NI,SUB - .byte 1 ; TEXT_TITLE + .byte 3 ; TEXT_TITLE .byte 1,1,1,1,1 ; SAVE1,SAVE2,SAVE3,SAVE4,SAVE5 ; .include "qkumba_popwr.s" diff --git a/mist/text_title.s b/mist/text_title.s new file mode 100644 index 00000000..e3b8fc91 --- /dev/null +++ b/mist/text_title.s @@ -0,0 +1,53 @@ +.include "common_defines.inc" +.include "zp.inc" +.include "hardware.inc" + +text_title: + jsr TEXT + jsr HOME + + lda #0 + sta DRAW_PAGE + + ; print non-inverse + lda #$80 + sta ps_smc1+1 + + lda #09 ; ora + sta ps_smc1 + + lda #boot_message + sta OUTH + + ldx #15 +text_loop: + + jsr move_and_print + + dex + bne text_loop + + rts + + +boot_message: +.byte 0,0,"LOADING MIST V0.99.5",0 +.byte 0,3,"CONTROLS:",0 +.byte 5,4,"MOVE CURSOR : ARROWS OR WASD",0 +.byte 5,5,"FORWARD/ACTION : ENTER",0 +.byte 5,7,"JOYSTICK (TODO): J",0 +.byte 5,8,"LOAD GAME : CONTROL-L",0 +.byte 5,9,"SAVE (TODO) : CONTROL-S",0 +.byte 5,10,"TOGGLE SOUND : CONTROL-T",0 +.byte 0,13,"BASED ON MYST BY CYAN INC",0 +.byte 0,14,"APPLE II PORT: VINCE WEAVER",0 +.byte 0,15,"DISK CODE : QKUMBA",0 +.byte 0,16,"SOUND CODE : OLIVER SCHMIDT",0 +.byte 0,17,"LZSA CODE : EMMANUEL MARTY",0 +.byte 7,19,"______",0 +.byte 5,20,"A \/\/\/ SOFTWARE PRODUCTION",0 + +.include "text_print.s" +.include "gr_offsets.s"