	#ASM
PIA0	EQU	0FF00H	
PIA1	EQU	0FF20H	
ADATA	EQU	0	
ACNTRL	EQU	1	
BDATA	EQU	2	
BCNTRL	EQU	3	
VDG	EQU	0FF22H	
obj1:
	FDB	obj2	
	FDB	1	
	FDB	2	
	FDB	6	
	FCB	0FFH,0,0FFH,0	
	FCB	0c0H,03FH,003H,0fcH
	FCB	0c0H,03fH,3,0fcH
	FCB	0c0H,03fH,3,0fcH
	FCB	0c0H,03fH,3,0fcH
	FCB	0ffH,0,0ffH,0
obj2:
	FDB	obj3	
	FDB	2	
	FDB	2	
	FDB	8	
	FCB	1,0feH,0,0ffH
	FCB	3,0fcH,080H,07fH
	FCB	7,0f8H,0c0H,03fH
	FCB	0aH,0f5H,0a0H,5fH
	FCB	8,0f7H,020H,0dfH
	FCB	4,0fbH,040H,0bfH
	FCB	3,0fcH,080H,07fH
	FCB	07fH,080H,0fcH,3
obj3:		
	FDB	0
	FDB	3
	FDB	1
	FDB	7
	FCB	01CH,0e3H
	FCB	03eH,0c1H
	fcb	07fH,080H,07fH,080H,07fH,080H
	FCB	03eH,0c1H
	FCB	01cH,0e3H
SCNCTL	EQU	0FFC6H		
SETSCRN
	LDD	2,S		
	STD	SCRADR		
	RTS			
DOSET
	LDX	#SCNCTL		
	LDA	#6		
SETSC1
	TFR	A,B
	ASL	3,S		
	ROL	2,S
	ROLB
	STA	B,X
	DECA
	BPL	SETSC1
	LDD	#0
	STD	SCRADR
	RTS
CLKDAT	EQU	0FF02H
CLKSTAT	EQU	0FF03H
CLKJMP	EQU	010DH	
OLDCLK	EQU	894CH	
JOYRTX	EQU	346	
JOYRTY	EQU	347	
CLOCK
	LDA	CLKSTAT
	BMI	CLOCK1
	RTI		
CLOCK1
	LDA	CLKDAT	
	bsr	joyrx	
	stb	JOYRTX
	bsr	joyry
	stb	JOYRTY
	LDD	SCRADR
	BEQ	CLOCK2	
	PSHS	D	
	BSR	DOSET
	PULS	D	
CLOCK2
	LDD	FLOP
	beq	CLOCKX
	SUBD	#1
	STD	FLOP
CLOCKX
	RTI		
FLOP	RMB	2
SCRADR	RMB	2	
PUTCLK	
	LDD	#CLOCK
	STD	CLKJMP
	RTS
REMCLK		
	LDD	#OLDCLK
	STD	CLKJMP
	RTS
IRQON		
	ANDCC	#0EFH
	RTS
IRQOFF		
	ORCC	#10H
	RTS
SPMOD4
	clra
	sta	0FFC5H
	sta	0FFC3H	
	sta	0FFC0H
	LDA	VDG
	ORA	#0F0H
	STA	VDG
	RTS
joystick:
	FCB	0adH,09fH
	FDB	0a00aH		
	rts
joyry:
	pshs	x,y
	bsr	rysel
	bra	joysam		
joyrx:
	pshs	x,y
	bsr	rxsel	
joysam:
	ldy	#PIA0	
	ldx	#PIA1	
joyrx0:
	ldb 	#80H
	stb	,x	
	lda	,Y
	bmi	jrx15	
	subb	#40H
	bra	jrx20
jrx15:
	addb	#40H	
jrx20:
	stb	,x	
	lda	,y	
	bmi	jrx25	
	subb	#20H
	bra	jrx30
jrx25:
	addb	#20H
jrx30:
	stb	,x
	lda	,y
	bmi	jrx35
	subb	#10H
	bra	jrx40
jrx35:
	addb	#10H
jrx40:
	stb	,x
	lda	,y
	bmi	jrx45
	subb	#8
	bra	jrx50
jrx45:
	addb	#8
jrx50:
	stb	,X
	lda	,Y
	bmi	jrx55
	subb	#4
	bra	jrx60
jrx55:
	addb	#4
jrx60:
	stb	,x
	lda	,y
	bmi	jrx65
	subb	#2
	bra	jrx70
jrx65:
	addb	#2
jrx70:
	lsrb
	lsrb		
	clra
	puls	x,y
	rts		
rysel:
	lda	(PIA0 + ACNTRL)
	ora	#8
	sta	(PIA0 + ACNTRL)
	lda	(PIA0 + BCNTRL)
	anda	#0F7H
	sta	(PIA0 + BCNTRL)
	rts
rxsel:
	lda	(PIA0 + ACNTRL)
	anda	#0F7H	
	sta	(PIA0 + ACNTRL)
	lda	(PIA0 + BCNTRL)
	anda	#0F7H	
	sta	(PIA0 + BCNTRL)
	rts
keyboard:
	FCB	0adH,09fH
	FDB	0a000H		
	bne	keybd1		
	FCB	0ccH
	FDB	-1		
	bra	keybdx
keybd1:
	FCB	01fH,089H	
	clra
keybdx:	rts
writeobj:
bufsiz	= 66
	FCB	010H,0aeH,062H	
	FCB	0a6H,067H	
	lsra
	lsra			
	lsra
	FCB	034H,2	
	FCB	0a6H,068H	
	FCB	084H,7	
	FCB	034H,2	
	FCB	0a6H,025H	
	FCB	034H,2	
	FCB	0a6H,027H	
	FCB	034H,2	
	clra
	FCB	034H,2	
	FCB	031H,028H	
line:
	FCB	08eH
	FDB	cline	
	FCB	0e6H,062H	
loop0:
	FCB	0a6H,0a0H	
	FCB	0a7H,080H	
	FCB	0a6H,0a0H	
	FCB	0a7H,089H	
	FDB	bufsiz - 1
	DECB
	bne	loop0
	FCB	06fH,080H	
	FCB	06fH,089H	
	FDB	bufsiz - 1
	FCB	063H,089H	
	FDB	bufsiz - 1
	FCB	0a6H,063H	
	beq	outline		
	FCB	034H,2		
shift:
	FCB	0e6H,063H	
	INCB		
	clra		
	FCB	08eH
	FDB	cline		
clup:
	FCB	066H,080H	
	DECB
	bne	clup
	FCB	0e6H,063H	
	INCB
	FCB	01aH,1		
	FCB	08eH
	FDB	cline + bufsiz	
mlup:
	FCB	066H,080H	
	DECB
	bne	mlup
	FCB	06aH,0e4H	
	bne shift
	FCB	035H,4		
outline:
	FCB	034H,020H	
	FCB	0e6H,0e8H,010H	
	FCB	0a6H,062H	
	FCB	0abH,06cH	
	FCB	03dH		
	FCB	0e3H,0e8H,011H	
	FCB	0ebH,066H	
	FCB	089H,0		
	FCB	01fH,1		
	FCB	010H,08eH
	FDB	cline		
	FCB	0e6H,064H	
	INCB		
outlup:
	FCB	0a6H,084H	
	FCB	0a4H,0a9H	
	FDB	bufsiz
	FCB	0aaH,0a0H	
	FCB	0a7H,080H	
	DECB
	bne 	outlup
	FCB	035H,020H	
	FCB	06cH,0e4H	
	FCB	0a6H,0e4H	
	FCB	0a1H,061H	
	bne	line		
	FCB	032H,065H	
	rts			
eraseobj:
	FCB	010H,0aeH,062H	
	FCB	0a6H,067H	
	lsra
	lsra			
	lsra
	FCB	034H,2	
	FCB	0a6H,068H	
	FCB	084H,7	
	FCB	034H,2	
	FCB	0a6H,025H	
	FCB	034H,2	
	FCB	0a6H,027H	
	FCB	034H,2	
	clra
	FCB	034H,2	
	FCB	031H,029H	
eline:
	FCB	08eH
	FDB	mline	
	FCB	0e6H,062H	
eloop0:
	FCB	0a6H,0a1H	
	FCB	0a7H,080H	
	DECB
	bne	eloop0
	FCB	06fH,084H	
	FCB	063H,084H	
	FCB	0a6H,063H	
	beq	eoutline		
	FCB	034H,2		
eshift:
	FCB	0e6H,063H	
	INCB
	FCB	01aH,1		
	FCB	08eH
	FDB	mline	
emlup:
	FCB	066H,080H	
	DECB
	bne	emlup
	FCB	06aH,0e4H	
	bne eshift
	FCB	035H,4		
eoutline:
	FCB	034H,020H	
	FCB	0e6H,0e8H,010H	
	FCB	0a6H,062H	
	FCB	0abH,06cH	
	FCB	03dH		
	FCB	0e3H,0e8H,011H	
	FCB	0ebH,066H	
	FCB	089H,0		
	FCB	01fH,1		
	FCB	010H,08eH
	FDB	mline		
	FCB	0e6H,064H	
	INCB		
eoutlup:
	FCB	0a6H,084H	
	FCB	0a4H,0a0H	
	FCB	0a7H,080H	
	DECB
	bne 	eoutlup
	FCB	035H,020H	
	FCB	06cH,0e4H	
	FCB	0a6H,0e4H	
	FCB	0a1H,061H	
	bne	eline		
	FCB	032H,065H	
	rts			
cline:	ORG * + 66
mline:	ORG * + 66
	#ENDASM
 2H	
	FCB	0a6H,067H	
	lsra
	lsra			
	lsra
	FCB	034H,2	
	FCB	0a6H,068H	
	FCB	084H,7	
	FCB	034H,2	