All pastes #425423 Raw Edit

M00

public text v1 · immutable
·published 2007-04-05 14:10 UTC
rendered paste body
*
*	Control bits F0 - F6 (Starting Address)
*	Display mode V0 - V2 (SAM Control)
* 	VDG Mode V3 -  V6    (VDG Control)
*
*
*I want G2C - (128 x 64 x 4)
*VDG 	7 6 5 4 3
*	1 0 1 0 c
*	
*SAM	2 1 0
*	0 1 0
*
*Addr	6 5 4 3 2 1 0 x  x x x x x x x x
*	0 0 0 1 0 0 0 0  0 0 0 0 0 0 0 0 = $1000
*	
*
*
*Addr	Set	Clear
*F6	$FFD3	$FFD2
*F5	$FFD1	$FFD0
*F4	$FFCF	$FFCE
*F3	$FFCD	$FFCC
*F2	$FFCB	$FFCA
*F1	$FFC9	$FFC8
*F0	$FFC7	$FFC6
*
*SAM	Set	Clear
*V2	$FFC5	$FFC4
*V1	$FFC3	$FFC2
*V0	$FFC1	$FFC0
*
*VDG	Set	Clear
*
*V3-V7	$FF22 - Bits 3 - 7 (Auto-set by Basic)
*

* First, set Starting Address

		ORG 	$8B00
		
*set_video_mode	STA	$FFD2		* Clear F6
*		STA	$FFD0		* Clear F5
*		STA	$FFCE		* Clear F4
*		STA	$FFCD		* SET	F3
*		STA	$FFCA		* Clear F2
*		STA	$FFC8		* Clear F1
*		STA	$FFC6		* Clear F0
* Effect - set starting address of video to 0001 0000 0000 0000 = $1000

		LDA	#%1010 1000 	* G2C
		STA	$FF22		* Write
		
		STA	$FFC4		* Clear V2
		STA	$FFC3		* SET	V1
		STA	$FFC0		* Clear V0
		
*set_some_pix	LDX	#$1000		* Start of VidRam
*		LDY	#$200		* 512 out of 2048= 1/4 of the page
*		LDA	#%0101 0101	* Solid Magenta
*		
*set_pix_loop	STA	,X+		* Write pixel and increase address
*		LEAY	-1,Y		* Decrease Counter by One
*		BNE	set_pix_loop	* Not zero? Repeat
		
loopy_loop	JMP	loopy_loop

		END	$8B00