;=================================================================== ;BLASTOPIA (C) 2018 THE NEW DIMENSION ;PROGRAMMING, GRAPHICS, SFX AND MUSIC BY RICHARD BAYLISS ;http://tnd64.unikat.sk ;=================================================================== ;Title screen code TITLESCREEN ;Kill all interrupts and previous music jsr InitInterrupts ;Call disable interrupts ;NEW GAME ... Reset level and default, ;scores, shield count, quota etc. lda #STARTINGLEVEL sta LEVELPOINTER ldx #$00 ZEROSCORETITLE lda #239 ;Custom char representing 0 sta SCORE,x inx cpx #6 ;6 Digits max bne ZEROSCORETITLE lda #242 ;Lives = 3 (Custom char) sta LIVES lda #240 ;Custom char representing 1 sta LEVEL lda #244 ;Shield = 50 sta SHIELD lda #239 ;Shield = 50 sta SHIELD+1 lda #239 ;Camel quota = 10 sta QUOTAPICKED+1 sta QUOTAPICKED lda #240 sta CAMELQUOTA lda #239 sta CAMELQUOTA+1 lda #$12 ;Set charset mode sta $d018 lda #$00 ;Black border+screen sta $d020 sta $d021 sta $d011 lda #$18 ;Scroll is set to still and multicolour sta SCROLLX ;Since the same IRQ routine is being used lda #$0e ;Title screen should have a gold scheme sta GAMEMULTICOLOUR1 lda #$03 ;So multicolour is Brown+Orange sta GAMEMULTICOLOUR2 ;Draw the title screen star field ldx #$00 DrawTitleStarField lda #$09 sta COLR,x sta COLR+$100,x sta COLR+$200,x sta COLR+$2E8,x lda STARTMAP,x sta SCRN,x lda STARTMAP+$100,x sta SCRN+$100,x lda STARTMAP+$200,x sta SCRN+$200,x lda STARTMAP+$2e8,x sta SCRN+$2e8,x inx bne DrawTitleStarField ;Draw the score panel - and also update ;the last score ldx #$00 DrawGamePanel lda STATUSPANEL,x sta SCRN+800,x lda #$0b sta COLR+800,x inx cpx #STATUSPANELEND-STATUSPANEL bne DrawGamePanel jsr MaskPanel ;Score update from last game ;Draw the title screen logo ldx #$00 DrawLogo lda LOGOMATRIX+1,x sta SCRN,x inx cpx #$f8 bne DrawLogo ;Put text on to the screen, but convert ;standard text into the text charset ldx #$00 PlaceText lda line1,x cmp #$20 ;Space char should be ignored beq .skip1 clc adc #191 sta SCRN+320,x .skip1 lda line2,x cmp #$20 beq .skip2 clc adc #191 sta SCRN+440,x .skip2 lda line3,x cmp #$20 beq .skip3 clc adc #191 sta SCRN+520,x .skip3 lda line4,x cmp #$20 beq .skip4 clc adc #191 sta SCRN+640,x .skip4 lda line5,x cmp #$20 beq .skip5 clc adc #191 sta SCRN+720,x .skip5 inx cpx #$28 bne PlaceText lda #0 sta FIREBUTTON ldx #GAMEIRQ stx $0314 sty $0315 lda #$7f sta $dc0d sta $dd0d lda #$2e sta $d012 lda #$1b sta $d011 lda #$01 sta $d01a lda #TITLEMUSIC jsr MUSICINIT cli TitleLoop jsr SyncGameTimer jsr StarField lda $dc00 lsr lsr lsr lsr lsr bit FIREBUTTON ror FIREBUTTON bmi TitleLoop bvc TitleLoop jmp GameStart