diff --git a/loader/samples/minexample/Makefile b/loader/samples/minexample/Makefile index 09c063b..b1140a9 100644 --- a/loader/samples/minexample/Makefile +++ b/loader/samples/minexample/Makefile @@ -168,6 +168,7 @@ $(DISKIMAGE): $(ASSEMBLE) $(CC1541) -f "scrmap" -w tilemap.bin.lz \ -f "intrbmp" -w title_320-prepared.zx0.prg \ -f "tower" -w tower.zx0.prg \ + -f "towerbm" -w tower_beam.zx0.prg \ $@ diff --git a/loader/samples/minexample/conv_zx0.sh b/loader/samples/minexample/conv_zx0.sh index f419899..c3f41f8 100644 --- a/loader/samples/minexample/conv_zx0.sh +++ b/loader/samples/minexample/conv_zx0.sh @@ -7,4 +7,7 @@ printf "\x00\x80" > title_320-prepared.zx0.prg cat title_320-prepared.zx0 >> title_320-prepared.zx0.prg zx02/zx02 tower.bin tower.zx0 printf "\x00\x80" > tower.zx0.prg -cat tower.zx0 >> tower.zx0.prg \ No newline at end of file +cat tower.zx0 >> tower.zx0.prg +zx02/zx02 tower_beam.bin tower_beam.zx0 +printf "\x00\x80" > tower_beam.zx0.prg +cat tower_beam.zx0 >> tower_beam.zx0.prg \ No newline at end of file diff --git a/loader/samples/minexample/minexample.s b/loader/samples/minexample/minexample.s index 710e064..fc34fe0 100644 --- a/loader/samples/minexample/minexample.s +++ b/loader/samples/minexample/minexample.s @@ -180,7 +180,146 @@ code_start: ;sta frame_delay ;jsr wait_loop -/* + ;jsr intro + + lda #$0b + sta $d011 + + sei + ldx #introname + jsr loadraw + + lda #0 + sta ZX0_src + lda #$80 + sta ZX0_src+1 + lda #0 + sta ZX0_dst + lda #$10 + jsr zx02 + + ldx #sidname + jsr loadraw + + ldx #towername + jsr loadraw + + lda #fake_kernal_irq + sta $ffff + + lda #1 + sta $d01a + + jsr run_nufli_bmp + sei + jsr init_2x + lda #$0b + sta $d011 + + jsr clr_txt + ldx #story_writ + jsr write_txt3 + ldx #$30 + ldy #$01 + jsr init_timer + lda #1 + sta timer_mode + + lda #0 + sta ZX0_src + lda #$80 + sta ZX0_src+1 + lda #0 + sta ZX0_dst + lda #$20 + jsr zx02 + +: + lda timer_reached + beq :- + + ldx #$b8 + ldy #$01 + jsr init_timer + lda #2 + sta timer_mode +: + lda timer_reached + beq :- + + jsr init_bmp + + lda #0 + sta vbl + + lda #$11 + sta frame_until + jsr wait_frame_until_2x + + ldx #$6c +: + jsr wait_frame + jsr wait_frame + dex + bpl :- + + lda #$0b + sta $d011 + + jsr clr_txt + ldx #scenario_writ + jsr write_txt2 + ldx #$80 + ldy #$01 + jsr init_timer + lda #1 + sta timer_mode + + ldx #towerbeamname + jsr loadraw + lda #0 + sta ZX0_src + lda #$80 + sta ZX0_src+1 + lda #0 + sta ZX0_dst + lda #$20 + jsr zx02 + +: + lda timer_reached + beq :- + + ldx #$90 + ldy #$01 + jsr init_timer + lda #2 + sta timer_mode +: + lda timer_reached + beq :- + + jsr init_bmp + + lda #0 + sta vbl + + lda #$1f + sta frame_until + jsr wait_frame_until_2x + + jmp * + + +intro: lda #0 jsr sfx_init @@ -245,103 +384,7 @@ code_start: lda #120 sta frame_delay jsr wait_loop -*/ - - lda #$0b - sta $d011 - - sei - ldx #introname - jsr loadraw - - lda #0 - sta ZX0_src - lda #$80 - sta ZX0_src+1 - lda #0 - sta ZX0_dst - lda #$10 - jsr zx02 - - ldx #sidname - jsr loadraw - - ldx #towername - jsr loadraw - - lda #fake_kernal_irq - sta $ffff - - lda #1 - sta $d01a - - jsr run_nufli_bmp - sei - jsr init_2x - lda #$0b - sta $d011 - ;ldx #3 -;: - ;jsr wait_frame - ;dex - ;bpl :- - jsr clr_txt - ldx #story_writ - jsr write_txt3 - ldx #$30 - ldy #$01 - jsr init_timer - lda #1 - sta timer_mode - - lda #0 - sta ZX0_src - lda #$80 - sta ZX0_src+1 - lda #0 - sta ZX0_dst - lda #$20 - jsr zx02 - -: - lda timer_reached - beq :- - - ldx #$b8 - ldy #$01 - jsr init_timer - lda #2 - sta timer_mode -: - lda timer_reached - beq :- - - jsr init_bmp - - lda #0 - sta vbl - - lda #$11 - sta frame_until - jsr wait_frame_until_2x - - ldx #$6c -: - jsr wait_frame - jsr wait_frame - dex - bpl :- - - lda #$0b - sta $d011 - jmp * - + rts wait_frame: @loop: @@ -365,6 +408,13 @@ story_writ: .byte "tomoo yamane" .res 40-(12+11+5), ' ' +scenario_writ: +.res (40-24)/2, ' ' +.byte " scenario written by " +.res (40-24)/2, ' ' +.res (40-24)/2, ' ' +.byte " tomoyoshi miyazaki" +.res (40-24)/2, ' ' clr_txt: lda #$80 @@ -846,6 +896,7 @@ fontname: .byte "font",0 sidname: .byte "sid", 0 introname: .byte "intrbmp", 0 towername: .byte "tower", 0 +towerbeamname: .byte "towerbm", 0 darmtower_txt: .res (40-26)/2, ' ' @@ -904,6 +955,36 @@ write_txt3: bne :- rts +write_txt2: + stx text_ptr + sty text_ptr+1 + + ldx #0 + ldy #0 +: + lda (text_ptr), y + sec + sbc #$20 + ora #$80 + sta $400+11*40, x + iny + inx + cpx #40 + bne :- + + ldx #0 +: + lda (text_ptr), y + sec + sbc #$20 + ora #$80 + sta $400+13*40, x + iny + inx + cpx #40 + bne :- + rts + upload_text: lda #$34 sta $01 diff --git a/loader/samples/minexample/tower_beam.bin b/loader/samples/minexample/tower_beam.bin new file mode 100644 index 0000000..e376ad6 Binary files /dev/null and b/loader/samples/minexample/tower_beam.bin differ diff --git a/loader/samples/minexample/tower_beam.zx0 b/loader/samples/minexample/tower_beam.zx0 new file mode 100644 index 0000000..a7a00b9 Binary files /dev/null and b/loader/samples/minexample/tower_beam.zx0 differ diff --git a/loader/samples/minexample/tower_beam.zx0.prg b/loader/samples/minexample/tower_beam.zx0.prg new file mode 100644 index 0000000..b5711e4 Binary files /dev/null and b/loader/samples/minexample/tower_beam.zx0.prg differ