;
; VBXE Blit lists
;
	*=(*+$100)&$ff00	; Set to page boundary
blits_vblank
; 
; Quick blits to toggle resolution bits of VBXE attribute map
; for message windows
;
blits_small_window_hires
	.word attr_set_hires-$1000	; Pattern of 4 bytes to set hires attribs
	.byte 0
	.word 0			; source stepy
	.byte 1			; source stepx
	.word vbxe_attrib_map+(20+10*160)	; dest adr = 
	.byte 0
	.word 160		; dest stepy
	.byte 1			; dest stepx
	.word 79		; blit width = 20
	.byte 2			; blit height = 3
	.byte $ff,0,0,0		; masks
	.byte $83,0		; 4 byte pattern, One-off, no next
;
blits_small_window_lores
	.word attr_set_lores-$1000	; source not used
	.byte 0
	.word 0			; source stepy
	.byte 1			; source stepx
	.word vbxe_attrib_map+(20+10*160)	; dest adr = 
	.byte 0
	.word 160		; dest stepy
	.byte 1			; dest stepx
	.word 79		; blit width = 20
	.byte 2			; blit height = 3
	.byte $ff,0,0,0		; Masks
	.byte $83,0		; One-off, no next
; 
blits_large_window_hires
	.word attr_set_hires-$1000	; Pattern of 4 bytes to set hires attribs
	.byte 0
	.word 0			; source stepy
	.byte 1			; source stepx
	.word vbxe_attrib_map+(20+8*160)	; dest adr = 
	.byte 0
	.word 160		; dest stepy
	.byte 1			; dest stepx
	.word 79		; blit width = 20
	.byte 7			; blit height = 8
	.byte $ff,0,0,0		; masks
	.byte $83,0		; 4 byte pattern, One-off, no next
;
blits_large_window_lores
	.word attr_set_lores-$1000	; source not used
	.byte 0
	.word 0			; source stepy
	.byte 1			; source stepx
	.word vbxe_attrib_map+(20+8*160)	; dest adr = 
	.byte 0
	.word 160		; dest stepy
	.byte 1			; dest stepx
	.word 79		; blit width = 20
	.byte 7			; blit height = 3
	.byte $ff,0,0,0		; Masks
	.byte $83,0		; One-off, no next
; 
;  Optional BCB to copy PF2 attribs when ball colour changes
;
;	.opt list
blits_copy_pf2
	.word 0			; source_adr = not used (fill mode)
	.byte 0
	.word 0			; source_stepy = 40
	.byte 0			; source stepx = 1
	.word vbxe_attrib_map+2	; dest_adr = VBXE attribute map
	.byte 0
	.word 160		; dest_stepy = 160
	.byte 4			; dest_stepx = 4
	.word 29		; blt_width = 30 bytes per line
	.byte 24		; blt_height = 25 lines
	.byte 0		; **** shouldn't be here ?
pf2_attribute .byte 0,0,0,0	; Masks, zoom
	.byte 0,8		; Pattern, Copy mode+next
;	.opt no list
;
; BCBs to copy attribute bytes from Plus4 scren @$1800,$1C00 to VBXE RAM @$8000
;
blits_copy_attribs
	.word plus4attrib-$1000	; source_adr = Plus/4 colour map
	.byte 0
	.word 40		; source_stepy = 40
	.byte 1			; source stepx = 1
	.word vbxe_attrib_map	; dest_adr = VBXE attribute map
	.byte 0
	.word 160		; dest_stepy = 160
	.byte 4			; dest_stepx = 4
	.word 29		; blt_width = 30 bytes per line
	.byte 24		; blt_height = 25 lines
blit_pf0_mask
	.byte $ff,0,0,0		; Masks, zoom
	.byte 0,8		; Pattern, Copy mode+next
;
blits_copy_pf1
	.word plus4attrib-$c00	; source_adr = Plus/4 colour map
	.byte 0
	.word 40		; source_stepy = 40
	.byte 1			; source stepx = 1
	.word vbxe_attrib_map+1	; dest_adr = VBXE attribute map
	.byte 0
	.word 160		; dest_stepy = 160
	.byte 4			; dest_stepx = 4
	.word 39		; blt_width = 40 bytes per line
	.byte 24		; blt_height = 25 lines
blit_pf1_mask
	.byte $ff,0,0,0		; Masks, zoom
	.byte 0,8		; Pattern, Copy mode+next
;
;
; BCBs to copy bitmap data from Plus4 screen @$2000 to Atari screen at $6000
;
blits_copy_bitmap
	.word bitmap_data-$1000
	.byte 0			; source_adr = Plus/4 bitmap data
	.word 320		; source stepy = 320
;	.byte 0			; 
	.byte 8			; source_stepx = 8
	.word atari_bitmap_data-$1000
	.byte 0			; dest_adr = Atari bitmap data
	.word 320		; dest_stepy = 320
	.byte 1			; dest_stepx = 1
	.word 39		; blt_width = 40 bytes per line
	.byte 24		; blt_height = 25 lines
bitmap_mask0
	.byte $ff,0,0,0		; Masks, zoom
	.byte 0,8		; Pattern, Copy mode+next
;
	.word bitmap_data-$1000+1
	.byte 0			; source_adr = Plus/4 bitmap data
	.word 320
;	.byte 0			; source_stepy = 320
	.byte 8			; source_stepx = 8
	.word atari_bitmap_data-$1000+40
	.byte 0			; dest_adr = Atari bitmap data
	.word 320		; dest_stepy = 320
	.byte 1			; dest_stepx = 1
	.word 39		; blt_width = 40 bytes per line
	.byte 24		; blt_height = 25 lines
bitmap_mask1
	.byte $ff,0,0,0		; Masks, zoom
	.byte 0,8		; Pattern, Copy mode+next
;
	.word bitmap_data-$1000+2
	.byte 0			; source_adr = Plus/4 bitmap data
	.word 320
;	.byte 0			; source_stepy = 320
	.byte 8			; source_stepx = 8
	.word atari_bitmap_data-$1000+80
	.byte 0			; dest_adr = Atari bitmap data
	.word 320		; dest_stepy = 320
	.byte 1			; dest_stepx = 1
	.word 39		; blt_width = 40 bytes per line
	.byte 24		; blt_height = 25 lines
bitmap_mask2
	.byte $ff,0,0,0		; Masks, zoom
	.byte 0,8		; Pattern, Copy mode+next
;
	.word bitmap_data-$1000+3
	.byte 0			; source_adr = Plus/4 bitmap data
	.word 320
;	.byte 0			; source_stepy = 320
	.byte 8			; source_stepx = 8
	.word atari_bitmap_data-$1000+120
	.byte 0			; dest_adr = Atari bitmap data
	.word 320		; dest_stepy = 320
	.byte 1			; dest_stepx = 1
	.word 39		; blt_width = 40 bytes per line
	.byte 24		; blt_height = 25 lines
bitmap_mask3
	.byte $ff,0,0,0		; Masks, zoom
	.byte 0,8		; Pattern, Copy mode+next
;
	.word bitmap_data-$1000+4
	.byte 0			; source_adr = Plus/4 bitmap data
	.word 320
;	.byte 0			; source_stepy = 320
	.byte 8			; source_stepx = 8
	.word atari_bitmap_data-$1000+160
	.byte 0			; dest_adr = Atari bitmap data
	.word 320		; dest_stepy = 320
	.byte 1			; dest_stepx = 1
	.word 39		; blt_width = 40 bytes per line
	.byte 24		; blt_height = 25 lines
bitmap_mask4
	.byte $ff,0,0,0		; Masks, zoom
	.byte 0,8		; Pattern, Copy mode+next
;
	.word bitmap_data-$1000+5
	.byte 0			; source_adr = Plus/4 bitmap data
	.word 320
;	.byte 0			; source_stepy = 320
	.byte 8			; source_stepx = 8
	.word atari_bitmap_data-$1000+200
	.byte 0			; dest_adr = Atari bitmap data
	.word 320		; dest_stepy = 320
	.byte 1			; dest_stepx = 1
	.word 39		; blt_width = 40 bytes per line
	.byte 24		; blt_height = 25 lines
bitmap_mask5
	.byte $ff,0,0,0		; Masks, zoom
	.byte 0,8		; Pattern, Copy mode+next
;
	.word bitmap_data-$1000+6
	.byte 0			; source_adr = Plus/4 bitmap data
	.word 320
;	.byte 0			; source_stepy = 320
	.byte 8			; source_stepx = 8
	.word atari_bitmap_data-$1000+240
	.byte 0			; dest_adr = Atari bitmap data
	.word 320		; dest_stepy = 320
	.byte 1			; dest_stepx = 1
	.word 39		; blt_width = 40 bytes per line
	.byte 24		; blt_height = 25 lines
bitmap_mask6
	.byte $ff,0,0,0		; Masks, zoom
	.byte 0,8		; Pattern, Copy mode+next
;
	.word bitmap_data-$1000+7
	.byte 0			; source_adr = Plus/4 bitmap data
	.word 320
	.byte 8			; source_stepx = 8
	.word atari_bitmap_data-$1000+280
	.byte 0			; dest_adr = Atari bitmap data
	.word 320		; dest_stepy = 320
	.byte 1			; dest_stepx = 1
	.word 39		; blt_width = 40 bytes per line
	.byte 24		; blt_height = 25 lines
bitmap_mask7
	.byte $ff,0,0,0		; Masks, zoom
	.byte 0,0		; Pattern, Copy mode+next (no next for now)
;
vbxe_attrib_filler
	.byte $34,$ca,$76,$00
	.byte $34,$ca,$76,$00
	.byte $34,$ca,$76,$00
	.byte $34,$ca,$76,$00	; PF0, PF1, PF2, attribute overrides
	.opt list
vbxe_text_filler
	.byte $00,$78,$01,$04
	.opt no list
;
; One-off blit list
;
blit_set_attribs
	.word vbxe_attrib_filler-$1000
	.byte 0			; source adr = default PF3 and attribute values
	.word 0
	.byte 1			; source_stepx = 1
	.word vbxe_attrib_map	; dest = PF2 byte of attribute map
	.byte 0
	.word 16		; dest_stepy = 16
	.byte 1			; dest_stepx = 1
	.word 15		; blit width = 16 bytes at a time
	.byte 249		; blit_height = 250 times
	.byte $ff,0,0,0		; Masks, zoom
	.byte 0,8		; Pattern, copy mode + next
;
; Set hires override for right-hand window on screen
;
	.word vbxe_text_filler-$1000 
	.byte 0			; source adr = filler for rhs
	.word 0			; source_stepy
	.byte 1			; source_stepx 
	.word vbxe_attrib_map+(30*4)	; dest = column 32 start, override attribute cell
	.byte 0
	.word 160		; dest_stepy = 160
	.byte 1			; dest_stepx = 1
	.word 39		; blit_width = 10 cells * 4 bytes
	.byte 23		; blit_height = 24 lines
	.byte $ff,0,0,0		; Masks, zoom
	.byte $83,0		; Pattern, copy, no next