game
.L00 ;  set romsize 16k

.L01 ;  set kernel_options player1colors pfcolors no_blank_lines

.L02 ;  set optimization speed

.L03 ;  set smartbranching on

.L04 ;  set optimization noinlinedata

.L05 ;  set optimization inlinerand

.
 ; 

.
 ; 

.L06 ;  set tv ntsc

.
 ; 

.
 ; 

.L07 ;  pfclear

	LDA #0
 sta temp7
 lda #>(ret_point1-1)
 pha
 lda #<(ret_point1-1)
 pha
 lda #>(pfclear-1)
 pha
 lda #<(pfclear-1)
 pha
 lda temp7
 pha
 txa
 pha
 ldx #4
 jmp BS_jsr
ret_point1
.
 ; 

.
 ; 

.L08 ;  AUDV0  =  0  :  AUDV1  =  0

	LDA #0
	STA AUDV0
	STA AUDV1
.
 ; 

.
 ; 

.L09 ;  dim _Bit0_Reset_Restrainer  =  y

.
 ; 

.
 ; 

.L010 ;  a  =  0  :  b  =  0  :  c  =  0  :  d  =  0  :  e  =  0  :  f  =  0  :  g  =  0  :  h  =  0  :  i  =  0

	LDA #0
	STA a
	STA b
	STA c
	STA d
	STA e
	STA f
	STA g
	STA h
	STA i
.L011 ;  j  =  0  :  k  =  0  :  l  =  0  :  m  =  0  :  n  =  0  :  o  =  0  :  p  =  0  :  q  =  0  :  r  =  0

	LDA #0
	STA j
	STA k
	STA l
	STA m
	STA n
	STA o
	STA p
	STA q
	STA r
.L012 ;  s  =  0  :  t  =  0  :  u  =  0  :  v  =  0  :  w  =  0  :  x  =  0  :  y  =  0  :  z  =  0

	LDA #0
	STA s
	STA t
	STA u
	STA v
	STA w
	STA x
	STA y
	STA z
.L013 ;  var0  =  0  :  var1  =  0  :  var2  =  0  :  var3  =  0  :  var4  =  0

	LDA #0
	STA var0
	STA var1
	STA var2
	STA var3
	STA var4
.L014 ;  var5  =  0  :  var6  =  0  :  var7  =  0  :  var8  =  0

	LDA #0
	STA var5
	STA var6
	STA var7
	STA var8
.
 ; 

.L015 ;  dim frame = a

.L016 ;  dim addvalue = b

.L017 ;  const logo_color = $1C

.L018 ;  const logo_height = 75

.L019 ;  dim missed = d

.L020 ;  rem ** we define this because player 0 has multiple frames...

.L021 ;  dim bmp_player0_index = c

.L022 ;  dim rand16 = n

.
 ; 

.L023 ;  dim _Ch0_Sound  =  m

.L024 ;  dim _Ch0_Duration1  =  q

.L025 ;  dim _Ch0_Duration2  =  v

.L026 ;  dim _Ch0_Duration3  =  w

.L027 ;  dim _Ch0_Duration4  =  x

.
 ; 

.L028 ;  const pfscore  =  1

.L029 ;  COLUP0 = $B4

	LDA #$B4
	STA COLUP0
.L030 ;  pfscore1 = %10101010

	LDA #%10101010
	STA pfscore1
.L031 ;  scorecolor = $B4

	LDA #$B4
	STA scorecolor
.L032 ;  pfscorecolor = $B4

	LDA #$B4
	STA pfscorecolor
.
 ; 

.titlepage
 ; titlepage

.L033 ;  gosub titledrawscreen bank2

 sta temp7
 lda #>(ret_point2-1)
 pha
 lda #<(ret_point2-1)
 pha
 lda #>(.titledrawscreen-1)
 pha
 lda #<(.titledrawscreen-1)
 pha
 lda temp7
 pha
 txa
 pha
 ldx #2
 jmp BS_jsr
ret_point2
.
 ; 

.L034 ;  if joy0fire  ||  switchreset then player0y = 200 : goto gamestart

 bit INPT4
	BMI .skipL034
.condpart0
 jmp .condpart1
.skipL034
 lda #1
 bit SWCHB
	BNE .skip0OR
.condpart1
	LDA #200
	STA player0y
 jmp .gamestart

.skip0OR
.L035 ;  goto titlepage

 jmp .titlepage

.
 ; 

.gamestart
 ; gamestart

.L036 ;  _Ch0_Sound  =  0

	LDA #0
	STA _Ch0_Sound
.L037 ;  pfscore1  =  %10101010

	LDA #%10101010
	STA pfscore1
.
 ; 

.L038 ;  player0x  =  50

	LDA #50
	STA player0x
.L039 ;  player0y  =  80

	LDA #80
	STA player0y
.
 ; 

.L040 ;  player1x  =  20

	LDA #20
	STA player1x
.L041 ;  player1y  =  20

	LDA #20
	STA player1y
.
 ; 

.L042 ;  playfield:

  ifconst pfres
	  ldx #(11>pfres)*(pfres*pfwidth-1)+(11<=pfres)*43
  else
	  ldx #((11*pfwidth-1)*((11*pfwidth-1)<47))+(47*((11*pfwidth-1)>=47))
  endif
	jmp pflabel0
PF_data0
	.byte %11111111, %11111111
	if (pfwidth>2)
	.byte %11111111, %11111111
 endif
	.byte %11111111, %11111111
	if (pfwidth>2)
	.byte %11111111, %11111111
 endif
	.byte %11111111, %11111111
	if (pfwidth>2)
	.byte %11111111, %11111111
 endif
	.byte %11111111, %11111111
	if (pfwidth>2)
	.byte %11111111, %11111111
 endif
	.byte %11111111, %11111111
	if (pfwidth>2)
	.byte %11111111, %11111111
 endif
	.byte %11111111, %11111111
	if (pfwidth>2)
	.byte %11111111, %11111111
 endif
	.byte %11111111, %11111111
	if (pfwidth>2)
	.byte %11111111, %11111111
 endif
	.byte %11111111, %11111111
	if (pfwidth>2)
	.byte %11111111, %11111111
 endif
	.byte %11111111, %11111111
	if (pfwidth>2)
	.byte %11111111, %11111111
 endif
	.byte %11111111, %11111111
	if (pfwidth>2)
	.byte %11111111, %11111111
 endif
	.byte %11111111, %11111111
	if (pfwidth>2)
	.byte %11111111, %11111111
 endif
pflabel0
	lda PF_data0,x
	sta playfield,x
	dex
	bpl pflabel0
.
 ; 

.L043 ;  pfcolors:

 lda # $9E
 sta COLUPF
 ifconst pfres
 lda #>(pfcolorlabel13-132+pfres*pfwidth)
 else
 lda #>(pfcolorlabel13-84)
 endif
 sta pfcolortable+1
 ifconst pfres
 lda #<(pfcolorlabel13-132+pfres*pfwidth)
 else
 lda #<(pfcolorlabel13-84)
 endif
 sta pfcolortable
.
 ; 

.L044 ;  player0:

	LDX #<playerL044_0
	STX player0pointerlo
	LDA #>playerL044_0
	STA player0pointerhi
	LDA #9
	STA player0height
.
 ; 

.L045 ;  player1:

	LDX #<playerL045_1
	STX player1pointerlo
	LDA #>playerL045_1
	STA player1pointerhi
	LDA #7
	STA player1height
.
 ; 

.L046 ;  player1color:

	LDX #<playercolorL046_1
	STX player1color
	LDA #>playercolorL046_1
	STA player1color+1
.
 ; 

.gameloop
 ; gameloop

.L047 ;  f = f + 1

	INC f
.
 ; 

.L048 ;  if f  =  10 then player0:

	LDA f
	CMP #10
     BNE .skipL048
.condpart2
	LDX #<player2then_0
	STX player0pointerlo
	LDA #>player2then_0
	STA player0pointerhi
	LDA #9
	STA player0height
.skipL048
.L049 ;  if f  =  10 then player0color:

	LDA f
	CMP #10
     BNE .skipL049
.condpart3
	LDX #<playercolor3then_0
	STX player0color
	LDA #>playercolor3then_0
	STA player0color+1
.skipL049
.L050 ;  if f  =  20 then player0:

	LDA f
	CMP #20
     BNE .skipL050
.condpart4
	LDX #<player4then_0
	STX player0pointerlo
	LDA #>player4then_0
	STA player0pointerhi
	LDA #9
	STA player0height
.skipL050
.L051 ;  if f  =  20 then player0color:

	LDA f
	CMP #20
     BNE .skipL051
.condpart5
	LDX #<playercolor5then_0
	STX player0color
	LDA #>playercolor5then_0
	STA player0color+1
.skipL051
.
 ; 

.L052 ;  if f  =  30 then player0:

	LDA f
	CMP #30
     BNE .skipL052
.condpart6
	LDX #<player6then_0
	STX player0pointerlo
	LDA #>player6then_0
	STA player0pointerhi
	LDA #9
	STA player0height
.skipL052
.
 ; 

.L053 ;  player1y  =  player1y  +  1

	INC player1y
.L054 ;  if f = 30 then f = 0

	LDA f
	CMP #30
     BNE .skipL054
.condpart7
	LDA #0
	STA f
.skipL054
.
 ; 

.L055 ;  if joy0right then REFP0  =  0

 bit SWCHA
	BMI .skipL055
.condpart8
	LDA #0
	STA REFP0
.skipL055
.L056 ;  if joy0left then REFP0  =  8

 bit SWCHA
	BVS .skipL056
.condpart9
	LDA #8
	STA REFP0
.skipL056
.
 ; 

.L057 ;  drawscreen

 sta temp7
 lda #>(ret_point3-1)
 pha
 lda #<(ret_point3-1)
 pha
 lda #>(drawscreen-1)
 pha
 lda #<(drawscreen-1)
 pha
 lda temp7
 pha
 txa
 pha
 ldx #4
 jmp BS_jsr
ret_point3
.
 ; 

.L058 ;  if joy0right then player0x  =  player0x  +  1

 bit SWCHA
	BMI .skipL058
.condpart10
	INC player0x
.skipL058
.L059 ;  if joy0left then player0x  =  player0x  -  1

 bit SWCHA
	BVS .skipL059
.condpart11
	DEC player0x
.skipL059
.L060 ;  if joy0up then player0y  =  player0y  -  1

 lda #$10
 bit SWCHA
	BNE .skipL060
.condpart12
	DEC player0y
.skipL060
.L061 ;  if joy0down then player0y  =  player0y  +  1

 lda #$20
 bit SWCHA
	BNE .skipL061
.condpart13
	INC player0y
.skipL061
.L062 ;  if player0y  >=  80 then player0y  =  80

	LDA player0y
	CMP #80
     BCC .skipL062
.condpart14
	LDA #80
	STA player0y
.skipL062
.L063 ;  if player0x  <= 1 then player0x  =  1

	LDA #1
	CMP player0x
     BCC .skipL063
.condpart15
	LDA #1
	STA player0x
.skipL063
.L064 ;  if player0x  >=  153 then player0x  =  153

	LDA player0x
	CMP #153
     BCC .skipL064
.condpart16
	LDA #153
	STA player0x
.skipL064
.
 ; 

.L065 ;  if collision(player0,player1) then score  =  score  +  10  :  player1y  =  20  :  player1x  =  rand16 & 127  :  goto play_hit_sound

	bit 	CXPPMM
	BPL .skipL065
.condpart17
	SED
	CLC
	LDA score+2
	ADC #$10
	STA score+2
	LDA score+1
	ADC #$00
	STA score+1
	LDA score
	ADC #$00
	STA score
	CLD
	LDA #20
	STA player1y
        lda rand
        lsr
 ifconst rand16
        rol rand16
 endif
        bcc *+4
        eor #$B4
        sta rand
 ifconst rand16
        eor rand16
 endif
	AND #127
	STA player1x
 jmp .play_hit_sound

.skipL065
.L066 ;  if player1y  =  80  &&  !collision(player0,player1) then missed  =  missed  +  1  :  player1y  =  20  :  player1x  =  rand16 & 127 :  pfscore1  =  pfscore1 / 4 :  goto play_miss_sound

	LDA player1y
	CMP #80
     BNE .skipL066
.condpart18
	bit 	CXPPMM
	BMI .skip18then
.condpart19
	INC missed
	LDA #20
	STA player1y
        lda rand
        lsr
 ifconst rand16
        rol rand16
 endif
        bcc *+4
        eor #$B4
        sta rand
 ifconst rand16
        eor rand16
 endif
	AND #127
	STA player1x
	LDA pfscore1
	lsr
	lsr
	STA pfscore1
 jmp .play_miss_sound

.skip18then
.skipL066
.L067 ;  if missed  =  4 then goto __Game_Over_Setup bank3

	LDA missed
	CMP #4
     BNE .skipL067
.condpart20
 sta temp7
 lda #>(.__Game_Over_Setup-1)
 pha
 lda #<(.__Game_Over_Setup-1)
 pha
 lda temp7
 pha
 txa
 pha
 ldx #3
 jmp BS_jsr
.skipL067
.
 ; 

.L068 ;  goto gameloop

 jmp .gameloop

.
 ; 

.play_hit_sound
 ; play_hit_sound

.L069 ;  if !_Ch0_Sound then _Ch0_Sound  =  1  :  _Ch0_Duration1  =  255  :  _Ch0_Duration2  =  255  :  _Ch0_Duration3  =  255  :  _Ch0_Duration4  =  255

	LDA _Ch0_Sound
	BNE .skipL069
.condpart21
	LDA #1
	STA _Ch0_Sound
	LDA #255
	STA _Ch0_Duration1
	STA _Ch0_Duration2
	STA _Ch0_Duration3
	STA _Ch0_Duration4
.skipL069
.L070 ;  AUDC0  =  4  :  AUDV0  =  15  :  AUDF0  =  24

	LDA #4
	STA AUDC0
	LDA #15
	STA AUDV0
	LDA #24
	STA AUDF0
.L071 ;  _Ch0_Duration1  =  _Ch0_Duration1  -  1

	DEC _Ch0_Duration1
.L072 ;  if _Ch0_Duration1  =  0 then goto minus_dur2

	LDA _Ch0_Duration1
	CMP #0
     BNE .skipL072
.condpart22
 jmp .minus_dur2

.skipL072
.L073 ;  goto play_hit_sound

 jmp .play_hit_sound

.
 ; 

.play_miss_sound
 ; play_miss_sound

.L074 ;  if !_Ch0_Sound then _Ch0_Sound  =  1  :  _Ch0_Duration1  =  255  :  _Ch0_Duration2  =  255  :  _Ch0_Duration3  =  255 :  _Ch0_Duration4  =  255

	LDA _Ch0_Sound
	BNE .skipL074
.condpart23
	LDA #1
	STA _Ch0_Sound
	LDA #255
	STA _Ch0_Duration1
	STA _Ch0_Duration2
	STA _Ch0_Duration3
	STA _Ch0_Duration4
.skipL074
.L075 ;  AUDC0  =  12  :  AUDV0  =  15  :  AUDF0  =  26

	LDA #12
	STA AUDC0
	LDA #15
	STA AUDV0
	LDA #26
	STA AUDF0
.L076 ;  _Ch0_Duration1  =  _Ch0_Duration1  -  1

	DEC _Ch0_Duration1
.L077 ;  if _Ch0_Duration1  =  0 then goto minus_dur2

	LDA _Ch0_Duration1
	CMP #0
     BNE .skipL077
.condpart24
 jmp .minus_dur2

.skipL077
.L078 ;  goto play_miss_sound

 jmp .play_miss_sound

.
 ; 

.minus_dur2
 ; minus_dur2

.L079 ;  _Ch0_Duration2  =  _Ch0_Duration2  -  1

	DEC _Ch0_Duration2
.L080 ;  if _Ch0_Duration2  =  0 then goto minus_dur3

	LDA _Ch0_Duration2
	CMP #0
     BNE .skipL080
.condpart25
 jmp .minus_dur3

.skipL080
.L081 ;  goto minus_dur2

 jmp .minus_dur2

.
 ; 

.minus_dur3
 ; minus_dur3

.L082 ;  _Ch0_Duration3  =  _Ch0_Duration3  -  1

	DEC _Ch0_Duration3
.L083 ;  if _Ch0_Duration3  =  0 then goto minus_dur4

	LDA _Ch0_Duration3
	CMP #0
     BNE .skipL083
.condpart26
 jmp .minus_dur4

.skipL083
.L084 ;  goto minus_dur3

 jmp .minus_dur3

.
 ; 

.minus_dur4
 ; minus_dur4

.L085 ;  _Ch0_Duration4  =  _Ch0_Duration4  -  1

	DEC _Ch0_Duration4
.L086 ;  if _Ch0_Duration4  =  0 then goto __Clear_Ch_0

	LDA _Ch0_Duration4
	CMP #0
     BNE .skipL086
.condpart27
 jmp .__Clear_Ch_0

.skipL086
.L087 ;  goto minus_dur4

 jmp .minus_dur4

.
 ; 

.__Clear_Ch_0
 ; __Clear_Ch_0

.L088 ;  _Ch0_Sound  =  0  :  AUDV0  =  0

	LDA #0
	STA _Ch0_Sound
	STA AUDV0
.L089 ;  goto gameloop

 jmp .gameloop

.
 ; 

.L090 ;  bank 2

 if ECHO1
 echo "    ",[(start_bank1 - *)]d , "bytes of ROM space left in bank 1")
 endif
ECHO1 = 1
 ORG $1FF4-bscode_length
 RORG $9FF4-bscode_length
start_bank1 ldx #$ff
 ifconst FASTFETCH ; using DPC+
 stx FASTFETCH
 endif 
 txs
 if bankswitch == 64
   lda #(((>(start-1)) & $0F) | $F0)
 else
   lda #>(start-1)
 endif
 pha
 lda #<(start-1)
 pha
 pha
 txa
 pha
 tsx
 if bankswitch != 64
   lda 4,x ; get high byte of return address
   rol
   rol
   rol
   rol
   and #bs_mask ;1 3 or 7 for F8/F6/F4
   tax
   inx
 else
   lda 4,x ; get high byte of return address
   tay
   ora #$10 ; change our bank nibble into a valid rom mirror
   sta 4,x
   tya
   lsr 
   lsr 
   lsr 
   lsr 
   tax
   inx
 endif
 lda bankswitch_hotspot-1,x
 pla
 tax
 pla
 rts
 if ((* & $1FFF) > ((bankswitch_hotspot & $1FFF) - 1))
   echo "WARNING: size parameter in banksw.asm too small - the program probably will not work."
   echo "Change to",[(*-begin_bscode+1)&$FF]d,"and try again."
 endif
 ORG $1FFC
 RORG $9FFC
 .word (start_bank1 & $ffff)
 .word (start_bank1 & $ffff)
 ORG $2000
 RORG $B000
.L091 ;  _Bit0_Reset_Restrainer{0}  =  1

	LDA _Bit0_Reset_Restrainer
	ORA #1
	STA _Bit0_Reset_Restrainer
.L092 ;  asm

 include "titlescreen/asm/titlescreen.asm"

.
 ; 

.L093 ;  bank 3

 if ECHO2
 echo "    ",[(start_bank2 - *)]d , "bytes of ROM space left in bank 2")
 endif
ECHO2 = 1
 ORG $2FF4-bscode_length
 RORG $BFF4-bscode_length
start_bank2 ldx #$ff
 ifconst FASTFETCH ; using DPC+
 stx FASTFETCH
 endif 
 txs
 if bankswitch == 64
   lda #(((>(start-1)) & $0F) | $F0)
 else
   lda #>(start-1)
 endif
 pha
 lda #<(start-1)
 pha
 pha
 txa
 pha
 tsx
 if bankswitch != 64
   lda 4,x ; get high byte of return address
   rol
   rol
   rol
   rol
   and #bs_mask ;1 3 or 7 for F8/F6/F4
   tax
   inx
 else
   lda 4,x ; get high byte of return address
   tay
   ora #$10 ; change our bank nibble into a valid rom mirror
   sta 4,x
   tya
   lsr 
   lsr 
   lsr 
   lsr 
   tax
   inx
 endif
 lda bankswitch_hotspot-1,x
 pla
 tax
 pla
 rts
 if ((* & $1FFF) > ((bankswitch_hotspot & $1FFF) - 1))
   echo "WARNING: size parameter in banksw.asm too small - the program probably will not work."
   echo "Change to",[(*-begin_bscode+1)&$FF]d,"and try again."
 endif
 ORG $2FFC
 RORG $BFFC
 .word (start_bank2 & $ffff)
 .word (start_bank2 & $ffff)
 ORG $3000
 RORG $D000
.__Game_Over_Setup
 ; __Game_Over_Setup

.L094 ;  player0y  =  200 :  player1y  =  200

	LDA #200
	STA player0y
	STA player1y
.
 ; 

.L095 ;  playfield:

  ifconst pfres
	  ldx #(11>pfres)*(pfres*pfwidth-1)+(11<=pfres)*43
  else
	  ldx #((11*pfwidth-1)*((11*pfwidth-1)<47))+(47*((11*pfwidth-1)>=47))
  endif
	jmp pflabel1
PF_data1
	.byte %01111110, %10111111
	if (pfwidth>2)
	.byte %11111111, %01111101
 endif
	.byte %01100000, %10110011
	if (pfwidth>2)
	.byte %10011001, %00001101
 endif
	.byte %01101110, %10111111
	if (pfwidth>2)
	.byte %10011001, %00111101
 endif
	.byte %01100110, %10110011
	if (pfwidth>2)
	.byte %10011001, %00001101
 endif
	.byte %01111110, %10110011
	if (pfwidth>2)
	.byte %10011001, %01111101
 endif
	.byte %00000000, %00000000
	if (pfwidth>2)
	.byte %00000000, %00000000
 endif
	.byte %00011111, %11001101
	if (pfwidth>2)
	.byte %01111101, %00011111
 endif
	.byte %00011001, %11001101
	if (pfwidth>2)
	.byte %01100001, %00011001
 endif
	.byte %00011001, %11001101
	if (pfwidth>2)
	.byte %01111001, %00001111
 endif
	.byte %00011001, %11001101
	if (pfwidth>2)
	.byte %01100001, %00011001
 endif
	.byte %00011111, %00110001
	if (pfwidth>2)
	.byte %01111101, %00011001
 endif
pflabel1
	lda PF_data1,x
	sta playfield,x
	dex
	bpl pflabel1
.
 ; 

.pfcolors:
 ; pfcolors:

.$9E
 ; $9E

.$9E
 ; $9E

.$9E
 ; $9E

.$9E
 ; $9E

.$9E
 ; $9E

.$9E
 ; $9E

.$9E
 ; $9E

.$9E
 ; $9E

.$9E
 ; $9E

.$9E
 ; $9E

.$9E
 ; $9E

.
 ; 

.gameover_loop
 ; gameover_loop

.L096 ;  drawscreen

 sta temp7
 lda #>(ret_point4-1)
 pha
 lda #<(ret_point4-1)
 pha
 lda #>(drawscreen-1)
 pha
 lda #<(drawscreen-1)
 pha
 lda temp7
 pha
 txa
 pha
 ldx #4
 jmp BS_jsr
ret_point4
.L097 ;  if joy0fire  ||  switchreset then goto gamestart

 bit INPT4
	BMI .skipL097
.condpart28
 jmp .condpart29
.skipL097
 lda #1
 bit SWCHB
	BNE .skip2OR
.condpart29
 jmp .gamestart

.skip2OR
.L098 ;  goto gameover_loop
 jmp .gameover_loop
 if ECHO3
 echo "    ",[(start_bank3 - *)]d , "bytes of ROM space left in bank 3")
 endif
ECHO3 = 1
 ORG $3FF4-bscode_length
 RORG $DFF4-bscode_length
start_bank3 ldx #$ff
 ifconst FASTFETCH ; using DPC+
 stx FASTFETCH
 endif 
 txs
 if bankswitch == 64
   lda #(((>(start-1)) & $0F) | $F0)
 else
   lda #>(start-1)
 endif
 pha
 lda #<(start-1)
 pha
 pha
 txa
 pha
 tsx
 if bankswitch != 64
   lda 4,x ; get high byte of return address
   rol
   rol
   rol
   rol
   and #bs_mask ;1 3 or 7 for F8/F6/F4
   tax
   inx
 else
   lda 4,x ; get high byte of return address
   tay
   ora #$10 ; change our bank nibble into a valid rom mirror
   sta 4,x
   tya
   lsr 
   lsr 
   lsr 
   lsr 
   tax
   inx
 endif
 lda bankswitch_hotspot-1,x
 pla
 tax
 pla
 rts
 if ((* & $1FFF) > ((bankswitch_hotspot & $1FFF) - 1))
   echo "WARNING: size parameter in banksw.asm too small - the program probably will not work."
   echo "Change to",[(*-begin_bscode+1)&$FF]d,"and try again."
 endif
 ORG $3FFC
 RORG $DFFC
 .word (start_bank3 & $ffff)
 .word (start_bank3 & $ffff)
 ORG $4000
 RORG $F000
; bB.asm file is split here
 ifconst pfres
 if (<*) > (254-pfres*pfwidth)
	align 256
	endif
 if (<*) < (136-pfres*pfwidth)
	repeat ((136-pfres*pfwidth)-(<*))
	.byte 0
	repend
	endif
 else
 if (<*) > 206
	align 256
	endif
 if (<*) < 88
	repeat (88-(<*))
	.byte 0
	repend
	endif
 endif
pfcolorlabel13
 .byte  $9E ,0,0,0
 .byte  $9E,0,0,0
 .byte  $9E,0,0,0
 .byte  $9E,0,0,0
 .byte  $9E,0,0,0
 .byte  $9E,0,0,0
 .byte  $9E,0,0,0
 .byte  $9E,0,0,0
 .byte  $9E,0,0,0
 .byte  $9E,0,0,0
 if (<*) > (<(*+9))
	repeat ($100-<*)
	.byte 0
	repend
	endif
playerL044_0
	.byte    %01000010
	.byte    %01100100
	.byte    %00011100
	.byte    %00111100
	.byte    %00011100
	.byte    %00011000
	.byte    %00001100
	.byte    %00001100
	.byte    %00001100
	.byte    %00000000
 if (<*) > (<(*+7))
	repeat ($100-<*)
	.byte 0
	repend
	endif
playerL045_1
	.byte   %11111100
	.byte   %11111111
	.byte   %11111101
	.byte   %11111101
	.byte   %11111111
	.byte   %11111100
	.byte   %11111100
	.byte   %11111100
 if (<*) > (<(*+7))
	repeat ($100-<*)
	.byte 0
	repend
	endif
playercolorL046_1
	.byte    $1C;
	.byte    $1C;
	.byte    $1C;
	.byte    $1C;
	.byte    $1C;
	.byte    $1C;
	.byte    $0E;
	.byte    $0E;
 if (<*) > (<(*+9))
	repeat ($100-<*)
	.byte 0
	repend
	endif
player2then_0
	.byte    %00000110
	.byte    %01100100
	.byte    %00011100
	.byte    %01011010
	.byte    %00111100
	.byte    %00011000
	.byte    %00001100
	.byte    %00001100
	.byte    %00001100
	.byte    %00000000
 if (<*) > (<(*+9))
	repeat ($100-<*)
	.byte 0
	repend
	endif
playercolor3then_0
	.byte     $84;
	.byte     $84;
	.byte     $84;
	.byte     $B4;
	.byte     $B4;
	.byte     $B4;
	.byte     $FE;
	.byte     $FE;
	.byte     $FE;
	.byte     $FE;
 if (<*) > (<(*+9))
	repeat ($100-<*)
	.byte 0
	repend
	endif
player4then_0
	.byte     %00011000
	.byte 	  %00111000
	.byte     %00011000
	.byte 	  %00011000
	.byte 	  %00011000
	.byte 	  %00011000
	.byte 	  %00001100
	.byte 	  %00001100
	.byte 	  %00001100
	.byte 	  %00000000
 if (<*) > (<(*+9))
	repeat ($100-<*)
	.byte 0
	repend
	endif
playercolor5then_0
	.byte     $84;
	.byte     $84;
	.byte     $84;
	.byte     $B4;
	.byte     $B4;
	.byte     $B4;
	.byte     $FE;
	.byte     $FE;
	.byte     $FE;
	.byte     $FE;
 if (<*) > (<(*+9))
	repeat ($100-<*)
	.byte 0
	repend
	endif
player6then_0
	.byte    %01000000
	.byte 	 %01010000
	.byte 	 %01001000
	.byte 	 %00111000
	.byte 	 %01111000
	.byte 	 %00111000
	.byte 	 %00110000
	.byte 	 %00011000
	.byte 	 %00011000
	.byte 	 %00011000
 if ECHOFIRST
       echo "    ",[(scoretable - *)]d , "bytes of ROM space left in bank 4")
 endif 
ECHOFIRST = 1
 
 
 
