Signetics 2650 & 2636 programming/Tutorial code - objects

Tutorial code - Objects
This is the code for the tutorial Objects

reset_vector: bcta,un	reset interrupt_vector: retc,un 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 $02 stra,r0 scoreformat lodi,r0 $aa		;blank the score digits stra,r0 score12 lodi,r0 $aa stra,r0 score34

lodi,r0 $78		;screen black stra,r0 backgnd

lodi,r0	%00000011 stra,r0 colours12	; obj 1 white, 2 red lodi,r0	%00101001 stra,r0 colours34	; obj 3 green, 4 yellow

lodi,r0	%11100100 stra,r0 objectsize

lodi,r3 $0E loopISe:			;load object descriptors loda,r0 one,r3- stra,r0 shape1,r3 loda,r0 two,r3 stra,r0 shape2,r3 loda,r0 three,r3 stra,r0 shape3,r3 loda,r0 four,r3 stra,r0 shape4,r3 brnr,r3 loopISe

retc,un one: db	$08 db	$18 db	$08 db	$08 db	$08 db	$08 db	$08 db	$08 db	$1c db	$1c db	10	;hc db	10	;hcb db	20	;vc db	20	;vcb two: db	$1c db	$3e db	$22 db	$02 db	$0e db	$18 db	$30 db	$20 db	$3e db	$3e db	40 db	35 db	60 db	10 three: db	$7c db	$7c db	$04 db	$04 db	$1c db	$1c db	$04 db	$04 db	$7c db	$7c db	60 db	120 db	90 db	250 four: db	$40 db	$40 db	$40 db	$40 db	$48 db	$7e db	$7e db	$08 db	$08 db	$08 db	100 db	110 db	0 db	255	;