view bgcolor.s16 @ 44:718aaedc4582

Minor fix to assembler to support get/set databanks instructions
author Michael Pavone <pavone@retrodev.com>
date Mon, 29 Aug 2016 21:17:12 -0700
parents 6e7bfe83d2b0
children 8e39a877c651
line wrap: on
line source

	
	;r0 = VDP address
	;r1 = current color
	;r2 = color increment
	;r3 = target line
	;r4 = screen bottom
	;r5 = scratch
	;r6 = right edge
	;r7 = counter
	;r8 = secondary counter
	ldim 1, r0
	ldim 240, r4
	ldimh 0, r4
	;320 == $140
	ldim $40, r6
	ldimh 1, r6
top
	ldim 0, r1
	ldim 1, r2
	ldim 5, r3
	ldimh 1, r3
	ldim 16, r7
	ldim 0, r8
	
waitfirst
	ini $C, r5
	cmp r5, r3
	bne waitfirst
	ldim -1, r3
	bra waithblank
	
linestart
waitline
	ini $C, r5
	cmp r5, r3
	bne waitline
	
waithblank
	ini $D, r5
	cmp r5, r6
	bgr waithblank
	
	outi 14, r0
	outi 14, r1
	add r2, r1, r1
	addi 2, r3
	
	addi -1, r7
	bne normal
	ldim 16, r7
	ldim 0, r1
	
	addi 1, r8
	cmpi 3, r8
	beq cyan
	cmpi 5, r8
	beq magenta
	cmpi 6, r8
	beq grey
	;TODO: replace with lsli once it works in the assembler
	add r2, r2, r2
	add r2, r2, r2
	add r2, r2, r2
	add r2, r2, r2
	
	
normal
	cmp r3, r4
	bcs top
	bra linestart
	
cyan
	ldim $11, r2
	bra normal
magenta
	ldim $01, r2
	ldimh $01, r2
	bra normal
grey
	ldim $11, r2
	ldimh $01, r2
	bra normal