[stella] Baubles; some progress, some problems...

Subject: [stella] Baubles; some progress, some problems...
From: Jake Patterson <jpatters@xxxxxxxxxxx>
Date: Wed, 14 Nov 2001 00:25:05 -0500 (EST)
I have been working on my game, and have run into a few problems.

First, here is a jpg of what I want the screen to look like...

http://www.uvm.edu/~jpatters/baublesgame.jpg


On the top, starting from the left, is the lives remaining indicator, then
the time remaining, then the current level.  The latter two will be two
hex digits, and the lives remaining indicator will be tick marks.

My program displays the lives remaining properly, but not the other two
fields for some reason.  I can't quite figure that out.

Also, in the area with the scrolling "zero" text, which will be the actual
play area, I have spent all of the cycles displaying that and have none
left over to display P0, P1, and the ball, which my game will call for.  I
fear it will be necessary to sacrifice the vertical blue border and go to
a two scanline kernel in order to make it work.  I'm hoping someone here
will think of something I have missed that may make my design possible :-)

Here is that part of the code:

    LDY #100
    LDA PlayfieldY                  ; value between 0 and 99 decimal
    ASL                             ; multiply by 2
    TAX
    LDA ScrollTable00,X
    STA BufferPointer               ; initial pointer to playfield graphic
    INX
    LDA ScrollTable00,X
    STA NextTableRecord             ; next record in table

GameAreaLoop

    LDA #1                          ; [67] + 2
    STA CTRLPF                      ; [69] + 3

    STA WSYNC                       ; [72]

    LDX BufferPointer               ; [0]  + 3

    LDA ColorDataP0,X               ; [3]  + 4
    STA COLUP0                      ; [7]  + 3

    LDA GamePlayfieldPF0Buffer,X    ; [10] + 4
    STA PF0                         ; [14] + 3

    LDA GamePlayfieldPF1Buffer,X    ; [17] + 4
    STA PF1                         ; [21] + 3

    LDA #3                          ; [24] + 2
    STA CTRLPF                      ; [26] + 3

    LDA GamePlayfieldPF2Buffer,X    ; [29] + 4
    STA PF2                         ; [33] + 3

    LDA ColorDataP1,X               ; [36] + 4
    STA COLUP1                      ; [40] + 3

    LDX NextTableRecord             ; [43] + 3
    LDA ScrollTablePage,X           ; [46] + 4
    STA BufferPointer               ; [50] + 3
    INX                             ; [53] + 2
    LDA ScrollTablePage,X           ; [55] + 4
    STA NextTableRecord             ; [59] + 3

    DEY                             ; [62] + 2
    BNE GameAreaLoop                ; [64] + 3

    LDA #1
    STA CTRLPF

    STA WSYNC

Any help would be much appreciated!

-- 
       |@ ]@[ @|
       |@ ]@[ @|           /@@@@@\ |@@@@@@@@@| /@@@@@\   +@@@@@@@@K  |@@@|
       J@ ]@[ @K          ;@@@^@@@;|@@@@@@@@@|;@@@^@@@;  |@@@| \@@@L |@@@|
      .@| ]@[ |@.         J@@' `@@K   |@@@|   J@@' `@@K  |@@@| /@@@K |@@@|
      J@' ]@[ `@K        ;@@@@@@@@@;  |@@@|  ;@@@@@@@@@; |@@@@@@@@L  |@@@|
     J@F  ]@[  `@K       J@@@@@@@@@K  |@@@|  J@@@@@@@@@K |@@@|\@@@\  |@@@|
   J@@'   ]@[   `@@K    ;@@@@   @@@@; |@@@| ;@@@@   @@@@;|@@@| `@@@L |@@@|
 J@@P     ]@[     9@@K  J@@@V   ?@@@K |@@@| J@@@V   ?@@@K|@@@|   \@@@|@@@|
@@P       ]@[       9@@K
; Baubles game screen
; by Jake Patterson, September 2001
; This has *not* been tested on actual hardware
;
; Somewhat derived from:
; How to Draw A Playfield.
; by Nick Bensema  9:23PM  3/2/97
;
    processor 6502
    include vcs.h

    org $F000
       
Temp                    =   $80
LivesIndicator          =   $81     ; remaining lives.
TimeRemaining1          =   $82     ; high order hex digit of time remaining
TimeRemaining0          =   $83     ; low order hex digit of time remaining
LevelWeAreOn1           =   $84     ; high order hex digit of current level
LevelWeAreOn0           =   $85     ; low order hex digit of current level
LivesIndicatorBuffer    =   $86     ; buffer, five bytes of lives graphic
GamePlayfieldPF0Buffer  =   $86     ; buffer for PF0 byte of the game playfield
TimeRemainingBuffer1    =   $8B     ; buffer, five bytes high order time graphic
GamePlayfieldPF1Buffer  =   $8B     ; buffer for PF1 byte of the game playfield
TimeRemainingBuffer0    =   $90     ; buffer, five bytes low order time graphic
GamePlayfieldPF2Buffer  =   $90     ; buffer for PF2 byte of the game playfield
LevelWeAreOnBuffer1     =   $95     ; buffer, five bytes high order lvl graphic
BufferPointer           =   $95
NextTableRecord         =   $96
LevelWeAreOnBuffer0     =   $9A     ; buffer, five bytes low order lvl graphic
PlayfieldY              =   $9F

darkblue                =   $82
black                   =   $00

Start
    SEI  ; Disable interrupts, if there are any.
    CLD  ; Clear BCD math bit.

    LDX  #$FF
    TXS  ; Set stack to beginning.
	
    LDA #0
B1      STA 0,X
    DEX
    BNE B1
    
    LDA #$03
    STA LivesIndicator
    LDA #$01
    STA TimeRemaining1
    LDA #$0F
    STA TimeRemaining0
    LDA #$00
    STA LevelWeAreOn1
    STA LevelWeAreOn0
    STA PlayfieldY

; *****************************************************************************
MainLoop

; *****************************************************************************

    JSR  VerticalBlank  ;Execute the vertical blank.
    JSR  CheckSwitches  ;Check Console Switches.
    JSR  DrawScreen	    ;Draw the screen
    JSR  OverScan       ;Do more calculations during overscan
    JMP  MainLoop       ;Continue forever.
	
; *****************************************************************************
VerticalBlank

; *****************************************************************************

    LDX  #0
	LDA  #2
    STA  WSYNC  
	STA  WSYNC
	STA  WSYNC
	STA  VSYNC ;Begin vertical sync.
	STA  WSYNC ; First line of VSYNC
	STA  WSYNC ; Second line of VSYNC.

	LDA  #44
	STA  TIM64T

	LDA #0
	STA CXCLR

	STA  WSYNC ; Third line of VSYNC.
	STA  VSYNC ; (0)

	RTS  

; *****************************************************************************
CheckSwitches

; *****************************************************************************
	
	LDA #$0000
	STA PF0
	STA PF1
	STA PF2
	STA COLUPF
	STA COLUBK
	
	RTS

; *****************************************************************************
DrawScreen

; *****************************************************************************

; *************************************** 0th through 47th scanlines (48 total)

	LDY #44
	
GameTopLines

	LDA #black
	STA COLUBK
	STA COLUPF
	STA PF0
	STA PF1
	STA PF2

	STA WSYNC

	DEY				
	BNE GameTopLines                ; finished with 0th thru 44th scanlines now
	
	LDA LivesIndicator              ; [0]  + 3
	AND #3                          ; [3]  + 2
	TAX                             ; [5]  + 2
	LDA LivesIndicatorData0,X       ; [7]  + 4
	STA LivesIndicatorBuffer        ; [11] + 3
	LDA LivesIndicatorData1,X       ; [14] + 4
	STA LivesIndicatorBuffer+1      ; [18] + 3
	LDA LivesIndicatorData2,X       ; [21] + 4
	STA LivesIndicatorBuffer+2      ; [25] + 3
	LDA LivesIndicatorData3,X       ; [28] + 4
	STA LivesIndicatorBuffer+3      ; [32] + 3
	LDA LivesIndicatorData4,X       ; [35] + 4
	STA LivesIndicatorBuffer+4      ; [39] + 3
	
	LDX TimeRemaining1              ; [42] + 2
	LDA DigitsDataPF1Right0,X       ; [44] + 4
	STA TimeRemainingBuffer1        ; [48] + 3
	LDA DigitsDataPF1Right1,X       ; [51] + 4
	STA TimeRemainingBuffer1+1      ; [55] + 3
	LDA DigitsDataPF1Right2,X       ; [58] + 4
	STA TimeRemainingBuffer1+2      ; [62] + 3
	LDA DigitsDataPF1Right3,X       ; [65] + 4
	STA TimeRemainingBuffer1+3      ; [69] + 3
	LDA DigitsDataPF1Right4,X       ; [72] + 4
	STA TimeRemainingBuffer1+4      ; [76] + 3
	
	LDX TimeRemaining0              ;
	LDA DigitsDataPF2Left0,X        ;
	STA TimeRemainingBuffer1        ;
	LDA DigitsDataPF2Left1,X        ;
	STA TimeRemainingBuffer1+1      ;
	LDA DigitsDataPF2Left2,X        ;
	STA TimeRemainingBuffer1+2      ;
	LDA DigitsDataPF2Left3,X        ;
	STA TimeRemainingBuffer1+3      ;
	LDA DigitsDataPF2Left4,X        ;
	STA TimeRemainingBuffer1+4      ; [79] + 37
	
	LDX LevelWeAreOn1               ;
	LDA DigitsDataPF1Right0,X       ;
	STA TimeRemainingBuffer1        ;
	LDA DigitsDataPF1Right1,X       ;
	STA TimeRemainingBuffer1+1      ;
	LDA DigitsDataPF1Right2,X       ;
	STA TimeRemainingBuffer1+2      ;
	LDA DigitsDataPF1Right3,X       ;
	STA TimeRemainingBuffer1+3      ;
	LDA DigitsDataPF1Right4,X       ;
	STA TimeRemainingBuffer1+4      ; [116]+ 37
	
	LDX LevelWeAreOn0               ;
	LDA DigitsDataPF2Left0,X        ;
	STA TimeRemainingBuffer1        ;
	LDA DigitsDataPF2Left1,X        ;
	STA TimeRemainingBuffer1+1      ;
	LDA DigitsDataPF2Left2,X        ;
	STA TimeRemainingBuffer1+2      ;
	LDA DigitsDataPF2Left3,X        ;
	STA TimeRemainingBuffer1+3      ;
	LDA DigitsDataPF2Left4,X        ;
	STA TimeRemainingBuffer1+4      ; [153]+ 37	
	
	STA WSYNC                       ; [190] scan lines 45, 46, and 47

; *********** top of screen, indicators, 48th through 75th scanlines (28 total)

    LDX #5

IndicatorLinesSet

    LDA #4                          ; [64] + 2
    STA Temp                        ; [66] + 3
    DEX                             ; [69] + 2
        
IndicatorLines

    STA WSYNC                       ; [71] + 3

    LDA #darkblue                   ; [0]  + 2
    STA COLUPF                      ; [2]  + 3
    LDA LivesIndicatorBuffer,X      ; [5]  + 4
    STA PF0                         ; [9]  + 3
    
    LDA TimeRemainingBuffer1,X      ; [12] + 4
    STA PF1                         ; [16] + 3
    LDA TimeRemainingBuffer0,X      ; [19] + 4
    STA PF2                         ; [23] + 3
    LDA IndicatorColorData,X        ; [26] + 4
    STA COLUPF                      ; [30] + 3

    LDA #0                          ; [33] + 2
    STA PF0                         ; [35] + 3

    LDA LevelWeAreOnBuffer1,X       ; [38] + 4
    STA PF1                         ; [42] + 3
    LDA LevelWeAreOnBuffer0,X       ; [45] + 4
    STA PF2                         ; [49] + 3
    
    DEC Temp                        ; [52] + 5
    BNE IndicatorLines              ; [57] + 2
    
    TXA                             ; [59] + 2
    BNE IndicatorLinesSet           ; [61] + 3
    
    STA WSYNC                       ; scanline 68
    
    LDA #1
    STA CTRLPF                      ; mirror the thing
    LDA #0
    STA PF0
    STA PF1
    STA PF2
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC                       ; scanline 75
    
; ******************* top of blue border, 76th through 83rd scanlines (8 total)

    LDA #darkblue
    STA COLUPF
    LDA #$FF
    STA PF0
    STA PF1
    STA PF2
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC                       ; scanline 83

; ************************ top safe zone, 84th through 91st scanlines (8 total)

    LDA #darkblue
    STA COLUPF
    LDA #%00010000
    STA PF0
    LDA #0
    STA PF1
    STA PF2
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    
    LDX #0                          ; [0]  + 2
    LDA LevelZeroData,X             ; [2]  + 3
    STA GamePlayfieldPF0Buffer,X    ; [5]  + 4
    INX                             ; [9]  + 2
    LDA LevelZeroData,X             ; [11] + 3
    STA GamePlayfieldPF0Buffer,X    ; [14] + 4
    INX                             ; [18] + 2
    LDA LevelZeroData,X             ; [20] + 3
    STA GamePlayfieldPF0Buffer,X    ; [23] + 4
    INX                             ; [27] + 2
    LDA LevelZeroData,X             ; [29] + 3
    STA GamePlayfieldPF0Buffer,X    ; [32] + 4
    INX                             ; [36] + 2
    LDA LevelZeroData,X             ; [38] + 3
    STA GamePlayfieldPF0Buffer,X    ; [41] + 4
    INX                             ; [45] + 2
    LDA LevelZeroData,X             ; [47] + 3
    STA GamePlayfieldPF0Buffer,X    ; [50] + 4
    INX                             ; [54] + 2
    LDA LevelZeroData,X             ; [56] + 3
    STA GamePlayfieldPF0Buffer,X    ; [59] + 4
    INX                             ; [63] + 2
    LDA LevelZeroData,X             ; [65] + 3
    STA GamePlayfieldPF0Buffer,X    ; [68] + 4
    
    STA WSYNC
  
    INX                             ; [0]  + 2
    LDA LevelZeroData,X             ; [2]  + 3
    STA GamePlayfieldPF0Buffer,X    ; [5]  + 4
    INX                             ; [9]  + 2
    LDA LevelZeroData,X             ; [11] + 3
    STA GamePlayfieldPF0Buffer,X    ; [14] + 4
    INX                             ; [18] + 2
    LDA LevelZeroData,X             ; [20] + 3
    STA GamePlayfieldPF0Buffer,X    ; [23] + 4
    INX                             ; [27] + 2
    LDA LevelZeroData,X             ; [29] + 3
    STA GamePlayfieldPF0Buffer,X    ; [32] + 4
    INX                             ; [36] + 2
    LDA LevelZeroData,X             ; [38] + 3
    STA GamePlayfieldPF0Buffer,X    ; [41] + 4
    INX                             ; [45] + 2
    LDA LevelZeroData,X             ; [47] + 3
    STA GamePlayfieldPF0Buffer,X    ; [50] + 4
    INX                             ; [54] + 2
    LDA LevelZeroData,X             ; [56] + 3
    STA GamePlayfieldPF0Buffer,X    ; [59] + 4

    STA WSYNC

    LDY #100
    LDA PlayfieldY                  ; value between 0 and 99 decimal
    ASL                             ; multiply by 2
    TAX
    LDA ScrollTable00,X
    STA BufferPointer               ; initial pointer to playfield graphic
    INX
    LDA ScrollTable00,X
    STA NextTableRecord             ; next record in table
;    STA WSYNC                       ; scanline 91    
    
; ******************** main game area, 92nd through 191st scanlines (100 total)

GameAreaLoop

    LDA #1                          ; [67] + 2
    STA CTRLPF                      ; [69] + 3
 
    STA WSYNC                       ; [72]

    LDX BufferPointer               ; [0]  + 3
    
    LDA ColorDataP0,X               ; [3]  + 4
    STA COLUP0                      ; [7]  + 3
    
    LDA GamePlayfieldPF0Buffer,X    ; [10] + 4
    STA PF0                         ; [14] + 3
    
    LDA GamePlayfieldPF1Buffer,X    ; [17] + 4
    STA PF1                         ; [21] + 3
    
    LDA #3                          ; [24] + 2
    STA CTRLPF                      ; [26] + 3
        
    LDA GamePlayfieldPF2Buffer,X    ; [29] + 4
    STA PF2                         ; [33] + 3        

    LDA ColorDataP1,X               ; [36] + 4
    STA COLUP1                      ; [40] + 3
    
    LDX NextTableRecord             ; [43] + 3
    LDA ScrollTablePage,X           ; [46] + 4
    STA BufferPointer               ; [50] + 3
    INX                             ; [53] + 2
    LDA ScrollTablePage,X           ; [55] + 4
    STA NextTableRecord             ; [59] + 3
    
    DEY                             ; [62] + 2
    BNE GameAreaLoop                ; [64] + 3
    
    LDA #1
    STA CTRLPF 

    STA WSYNC
    
    INC PlayfieldY
    LDA #100
    CMP PlayfieldY
    BNE Foo
    LDA #0
    STA PlayfieldY
Foo   
    
; ******************* bottom safe zone, 192nd through 199th scanlines (8 total)

    LDA #darkblue
    STA COLUPF
    LDA #%00010000
    STA PF0
    LDA #0
    STA PF1
    STA PF2
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC                       ; scanline 199
    
; ************** bottom of blue border, 200th through 207th scanlines (8 total)

    LDA #darkblue
    STA COLUPF
    LDA #$FF
    STA PF0
    STA PF1
    STA PF2
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC
    STA WSYNC                       ; scanline 207th        
    
; *****************************************************************************
		
	LDA #$0000
	STA PF0
	STA PF1
	STA PF2
	STA COLUPF
	STA COLUBK
		
	RTS
	
; *****************************************************************************
OverScan

; *****************************************************************************

	LDX #30
KillLines
	 STA WSYNC
	 DEX
	 BNE KillLines
	RTS

; *****************************************************************************
; Graphics Data

; *****************************************************************************

;;  Ok, what this is is a table to facilitate smooth scrolling of the game
;;  playfield graphic, which consists of a four letter word spelled out with
;;  the playfield graphics, the letters are five "blocks" high, and it is
;;  spread out over 100 scan lines, therefore each block is 20 scan lines.
;;  each record contains two bytes, the first byte points to the appropriate
;;  point in a buffer in zero page RAM, and the second byte is the low order
;;  address of the next entery in the table. 
;;  the table is 201 bytes.

    org $FE00

ScrollTablePage
    .byte >ScrollTablePage
    
ScrollTable00
    .byte 0, <ScrollTable01
ScrollTable01
    .byte 0, <ScrollTable02
ScrollTable02
    .byte 0, <ScrollTable03
ScrollTable03
    .byte 0, <ScrollTable04
ScrollTable04
    .byte 0, <ScrollTable05
ScrollTable05
    .byte 0, <ScrollTable06
ScrollTable06
    .byte 0, <ScrollTable07
ScrollTable07
    .byte 0, <ScrollTable08
ScrollTable08
    .byte 0, <ScrollTable09
ScrollTable09
    .byte 0, <ScrollTable0A
ScrollTable0A
    .byte 0, <ScrollTable0B
ScrollTable0B
    .byte 0, <ScrollTable0C
ScrollTable0C
    .byte 0, <ScrollTable0D
ScrollTable0D
    .byte 0, <ScrollTable0E
ScrollTable0E
    .byte 0, <ScrollTable0F
ScrollTable0F
    .byte 0, <ScrollTable10
ScrollTable10
    .byte 0, <ScrollTable11
ScrollTable11
    .byte 0, <ScrollTable12
ScrollTable12
    .byte 0, <ScrollTable13
ScrollTable13
    .byte 0, <ScrollTable14
ScrollTable14
    .byte 1, <ScrollTable15
ScrollTable15
    .byte 1, <ScrollTable16
ScrollTable16
    .byte 1, <ScrollTable17
ScrollTable17
    .byte 1, <ScrollTable18
ScrollTable18
    .byte 1, <ScrollTable19
ScrollTable19
    .byte 1, <ScrollTable1A
ScrollTable1A
    .byte 1, <ScrollTable1B
ScrollTable1B
    .byte 1, <ScrollTable1C
ScrollTable1C
    .byte 1, <ScrollTable1D
ScrollTable1D
    .byte 1, <ScrollTable1E
ScrollTable1E
    .byte 1, <ScrollTable1F
ScrollTable1F
    .byte 1, <ScrollTable20
ScrollTable20
    .byte 1, <ScrollTable21
ScrollTable21
    .byte 1, <ScrollTable22
ScrollTable22
    .byte 1, <ScrollTable23
ScrollTable23
    .byte 1, <ScrollTable24
ScrollTable24
    .byte 1, <ScrollTable25
ScrollTable25
    .byte 1, <ScrollTable26
ScrollTable26
    .byte 1, <ScrollTable27
ScrollTable27
    .byte 1, <ScrollTable28
ScrollTable28
    .byte 2, <ScrollTable29
ScrollTable29
    .byte 2, <ScrollTable2A
ScrollTable2A
    .byte 2, <ScrollTable2B
ScrollTable2B
    .byte 2, <ScrollTable2C
ScrollTable2C
    .byte 2, <ScrollTable2D
ScrollTable2D
    .byte 2, <ScrollTable2E
ScrollTable2E
    .byte 2, <ScrollTable2F
ScrollTable2F
    .byte 2, <ScrollTable30
ScrollTable30
    .byte 2, <ScrollTable31
ScrollTable31
    .byte 2, <ScrollTable32
ScrollTable32
    .byte 2, <ScrollTable33
ScrollTable33
    .byte 2, <ScrollTable34
ScrollTable34
    .byte 2, <ScrollTable35
ScrollTable35
    .byte 2, <ScrollTable36
ScrollTable36
    .byte 2, <ScrollTable37
ScrollTable37
    .byte 2, <ScrollTable38
ScrollTable38
    .byte 2, <ScrollTable39
ScrollTable39
    .byte 2, <ScrollTable3A
ScrollTable3A
    .byte 2, <ScrollTable3B
ScrollTable3B
    .byte 2, <ScrollTable3C
ScrollTable3C
    .byte 3, <ScrollTable3D
ScrollTable3D
    .byte 3, <ScrollTable3E
ScrollTable3E
    .byte 3, <ScrollTable3F
ScrollTable3F
    .byte 3, <ScrollTable40
ScrollTable40
    .byte 3, <ScrollTable41
ScrollTable41
    .byte 3, <ScrollTable42
ScrollTable42
    .byte 3, <ScrollTable43
ScrollTable43
    .byte 3, <ScrollTable44
ScrollTable44
    .byte 3, <ScrollTable45
ScrollTable45
    .byte 3, <ScrollTable46
ScrollTable46
    .byte 3, <ScrollTable47
ScrollTable47
    .byte 3, <ScrollTable48
ScrollTable48
    .byte 3, <ScrollTable49
ScrollTable49
    .byte 3, <ScrollTable4A
ScrollTable4A
    .byte 3, <ScrollTable4B
ScrollTable4B
    .byte 3, <ScrollTable4C
ScrollTable4C
    .byte 3, <ScrollTable4D
ScrollTable4D
    .byte 3, <ScrollTable4E
ScrollTable4E
    .byte 3, <ScrollTable4F
ScrollTable4F
    .byte 3, <ScrollTable50
ScrollTable50
    .byte 4, <ScrollTable51
ScrollTable51
    .byte 4, <ScrollTable52
ScrollTable52
    .byte 4, <ScrollTable53
ScrollTable53
    .byte 4, <ScrollTable54
ScrollTable54
    .byte 4, <ScrollTable55
ScrollTable55
    .byte 4, <ScrollTable56
ScrollTable56
    .byte 4, <ScrollTable57
ScrollTable57
    .byte 4, <ScrollTable58
ScrollTable58
    .byte 4, <ScrollTable59
ScrollTable59
    .byte 4, <ScrollTable5A
ScrollTable5A
    .byte 4, <ScrollTable5B
ScrollTable5B
    .byte 4, <ScrollTable5C
ScrollTable5C
    .byte 4, <ScrollTable5D
ScrollTable5D
    .byte 4, <ScrollTable5E
ScrollTable5E
    .byte 4, <ScrollTable5F
ScrollTable5F
    .byte 4, <ScrollTable60
ScrollTable60
    .byte 4, <ScrollTable61
ScrollTable61
    .byte 4, <ScrollTable62
ScrollTable62
    .byte 4, <ScrollTable63
ScrollTable63
    .byte 4, <ScrollTable00

; *****************************************************************************
	
	org $FF00       ; 16 x 10 + 25 + 15 + 10 = 210 bytes in this page so far, 
	                ; max is 252
	
DigitsDataPF1Right0
; digits 0 through F for display on the Right screen nyble of PF1, first line

	.byte %00000010, %00000010, %00000110, %00000110, %00000101, %00000111
	.byte %00000010, %00000111, %00000010, %00000010, %00000010, %00000110
	.byte %00000010, %00000110, %00000111, %00000111

DigitsDataPF1Right1
; digits 0 through F for display on the Right screen nyble of PF1, second line

	.byte %00000101, %00000110, %00000001, %00000001, %00000101, %00000100
	.byte %00000100, %00000001, %00000101, %00000101, %00000101, %00000101
	.byte %00000101, %00000101, %00000100, %00000100
	
DigitsDataPF1Right2
; digits 0 through F for display on the Right screen nyble of PF1, third line

	.byte %00000101, %00000010, %00000001, %00000001, %00000111, %00000110
	.byte %00000110, %00000010, %00000010, %00000011, %00000111, %00000110
	.byte %00000100, %00000101, %00000110, %00000110
	
DigitsDataPF1Right3
; digits 0 through F for display on the Right screen nyble of PF1, fourth line

	.byte %00000101, %00000010, %00000100, %00000001, %00000001, %00000001
	.byte %00000101, %00000010, %00000101, %00000001, %00000101, %00000101
	.byte %00000101, %00000101, %00000100, %00000100
	
DigitsDataPF1Right4
; digits 0 through F for display on the Right screen nyble of PF1, fifth line

    .byte %00000010, %00000111, %00000111, %00000110, %00000001, %00000110
	.byte %00000010, %00000010, %00000010, %00000010, %00000101, %00000110
	.byte %00000010, %00000110, %00000111, %00000100

DigitsDataPF2Left0
; digits 0 through F for display on the Left screen nyble of PF2, first line

    .byte %00000100, %00000100, %00000110, %00000110, %00001010, %00001110
	.byte %00000100, %00001110, %00000100, %00000100, %00000100, %00000110
	.byte %00000100, %00000110, %00001110, %00001110
	
DigitsDataPF2Left1
; digits 0 through F for display on the Left screen nyble of PF2, second line

	.byte %00001010, %00000110, %00001000, %00001000, %00001010, %00000010
	.byte %00000010, %00001000, %00001010, %00001010, %00001010, %00001010
	.byte %00001010, %00001010, %00000010, %00000010
	
DigitsDataPF2Left2
; digits 0 through F for display on the Left screen nyble of PF2, third line

	.byte %00001010, %00000100, %00001000, %00001000, %00001110, %00000110
	.byte %00000110, %00000100, %00000100, %00001100, %00001110, %00000110
	.byte %00000010, %00001010, %00000110, %00000110
	
DigitsDataPF2Left3
; digits 0 through F for display on the Left screen nyble of PF2, fourth line

	.byte %00001010, %00000100, %00000010, %00001000, %00001000, %00001000
	.byte %00001010, %00000100, %00001010, %00001000, %00001010, %00001010
	.byte %00001010, %00001010, %00000010, %00000010
	
DigitsDataPF2Left4
; digits 0 through F for display on the Left screen nyble of PF2, fifth line
	
	.byte %00000100, %00001110, %00001110, %00000110, %00001000, %00000110
	.byte %00000100, %00000100, %00000100, %00000100, %00001010, %00000110
	.byte %00000100, %00000110, %00000111, %00000111

LivesIndicatorData0
; tick mark style digits 0 through 3 for display in PF0, fifth line

	.byte %00000000, %00100000, %00100000, %00100000

LivesIndicatorData1
; tick mark style digits 0 through 3 for display in PF0, fourth line

	.byte %00000000, %00000000, %00000000, %00000000
	
LivesIndicatorData2
; tick mark style digits 0 through 3 for display in PF0, third line

	.byte %00000000, %00000000, %00100000, %00100000
	
LivesIndicatorData3
; tick mark style digits 0 through 3 for display in PF0, second line

	.byte %00000000, %00000000, %00000000, %00000000
	
LivesIndicatorData4
; tick mark style digits 0 through 3 for display in PF0, first line

	.byte %00000000, %00000000, %00000000, %00100000
	
IndicatorColorData

    .byte $4A, $48, $46, $44, $42
    
LevelZeroData

    .byte %00010000, %00010000, %00010000, %00010000, %00010000
    .byte %01110111, %00010100, %00100110, %01000100, %01110111
    .byte %01000110, %10101010, %10100110, %10101010, %01001010
    
ColorDataP0

    .byte $18, $16, $14, $12, $10

ColorDataP1

    .byte $58, $56, $54, $42, $50
		
	
; *****************************************************************************

	org $FFFC
	.word Start
	.word Start

	org $FF00

Attachment: baublesgame.bin
Description: baublesgame.bin

Current Thread