Signetics 2650 & 2636 programming/Tutorial code - background grid

Tutorial code - Background grid
This is the code for the tutorial Background grid

reset_vector: bcta,un	reset interrupt_vector: retc,un	       ;just in case an interrupt occurs before we disable them reset: lodi,r0 $20	;initialise program status word, just to be sure! lpsu           ;inhibit interrupts, stack pointer=0 lpsl           ;register bank 0, without carry, arithmetic compare

eorz	r0 stra,r0	effects  ;initialise the 74LS378 bsta,un InitPVI  ;initialise video chip

endless: bctr,un endless

InitPVI: eorz	r0		;r0 = 0 lodi,r3	$CA		;set 1F00-1FC9 to 00 (most of PVI) loop1:			       ;sets all colours to black, turns off sound, score 1 field at top. stra,r0	shape1,r3- brnr,r3	loop1
 * subroutine - initialise PVI
 * subroutine - initialise PVI

lodi,r0 $78 stra,r0 coloursback

lodi,r0 $FF stra,r0 score12 stra,r0 score34

lodi,r3 $2D loopIS:			;load sprite shape and coords loda,r0 one,r3- stra,r0 grid,r3 brnr,r3 loopIS

retc,un

one: dw	$FFFF	; 1 dw	$FFFF	; 2 dw	$FFFF	; 3 dw	$FFFF	; 4 dw	$FFFF	; 5 dw	$FFFF	; 6 dw	$FFFF	; 7 dw	$FFFF	; 8 dw	$FFFF	; 9 dw	$FFFF	; 10 dw	$FFFF	; 11 dw	$FFFF	; 12 dw	$FFFF	; 13 dw	$FFFF	; 14 dw	$FFFF	; 15 dw	$FFFF	; 16 dw	$FFFF	; 17 dw	$FFFF	; 18 dw	$FFFF	; 19 dw	$FFFF	; 20

; EXTEND x1,2,4          EXTEND x8                        ; -    --- db	$09    ; Rows 1-4	   4B	4A   3	2B  2A	1 db	$09    ; Rows 5-8	   8B	8A   7	6B  6A	5 db	$09    ; Rows 9-12	   12B	12A  11	10B 10A	9 db	$09    ; Rows 13-16	   16B	16A  15	14B 14A	13 db	$09    ; Rows 17-20	   20B	20A  19	18B 18A	17