
****************************************************************************
**
**	This is the unchanged, really first sourccode which has been
**	assembled by SASM 68030 (Amiga) during development.
**
**	Included only for historical reasons...
**
**	© 1992 by Florian W Sauer
** 
****************************************************************************

	heap	O=128k			;max 128k object buffer
	size	4			;4 32kblocks

	SMC+				;yes, we want a smc header
	lrom				;yes, please split in 32k hunks
;---
;Hardware Include File © 1992 by Florian W. Sauer
;---
INIDISP=	$2100
MOSAIC=		$2106
CGADD=		$2121
CGDATA=		$2122
NMITIMEN=	$4200

Start	EQU	32768			;($8000) in hex
	ORG	Start			;yes, set it twice..

	.say	!			;just newline
	.say	******************************************
	.say	**					**
	.say	** The really first demo!		**
	.say	** ~~~~~~~~~~~~~~~~~~~~~~		**
	.say	**					**
	.say	** © 1992 by Florian W. Sauer of	**
	.say	**	  Infernal Byte Systems, INC.	**
	.say	**					**
	.say	******************************************

	sei				;disable irq's
	clc
	xce				;goto native mode
	sep	#$30			;a,x,y 8bit

	lda	#$80
	sta	INIDISP
	lda	#$11			;mosaic enable
	sta	MOSAIC

	lda	#$00			;disable NMI
	sta	NMITIMEN

	nop
	nop
	nop

	jmp	$9000

;Music Starts Here
;~~~~~~~~~~~~~~~~~

InitMusic:
	sep	#$30

;* bincon (c)1992 by h.bühler, codex design *

	dc.b	$a9,$ff,$8d,$40,$21,$c2,$10,$a2,$ff,$7f,$bf
	dc.b	$00,$80,$01,$9f,$00,$00,$7f,$bf,$00,$80,$02,$9f,$00,$80,$7f,$ca
	dc.b	$10,$ed,$ea,$ea,$ea,$ea,$ea,$a9,$00,$8d,$fd,$00,$a9,$00,$8d,$fe
	dc.b	$00,$a9,$7f,$8d,$ff,$00,$ea,$ea,$ea,$78
	jsr	Restart
	dc.b	$e2,$30,$ad
	dc.b	$40,$21,$d0,$fb,$a9,$e0,$8d,$43,$21,$a9,$ff,$8d,$42,$21,$a9,$01
	dc.b	$8d,$41,$21,$a9,$01,$8d,$40,$21,$ad,$40,$21,$c9,$01,$d0,$f9,$ad
	dc.b	$40,$21,$c9,$55,$d0,$f9,$ad,$07,$02,$8d,$41,$21,$a9,$07,$8d,$40
	dc.b	$21,$ad,$40,$21,$c9,$07,$d0,$f9,$ad,$40,$21,$c9,$55,$d0,$f9
	dc.b	$58
	sep	#$30
	rts

	nop

Restart:dc.b	$08
	jsr	Restart2

	dc.b	$28,$a9,$00,$8d,$40,$21,$60

Restart2:
	dc.b	$08,$c2,$30,$a0,$00
	dc.b	$00,$a9,$aa,$bb,$cd,$40,$21,$d0,$fb,$e2,$20
	dc.b	$a9,$cc,$80,$26,$b7
	dc.b	$fd,$c8,$eb,$a9,$00,$80,$0b,$eb,$b7
	dc.b	$fd,$c8,$eb,$cd,$40,$21,$d0
	dc.b	$fb,$1a,$c2,$20,$8d,$40,$21,$e2,$20,$ca,$d0
	dc.b	$eb,$cd,$40,$21,$d0
	dc.b	$fb,$69,$03,$f0,$fc,$48,$c2,$20,$b7,$fd
	dc.b	$c8,$c8,$aa,$b7,$fd,$c8
	dc.b	$c8,$8d,$42,$21,$e2,$20,$e0,$01,$00
	dc.b	$a9,$00,$2a,$8d,$41,$21,$69
	dc.b	$7f,$68,$8d,$40,$21,$cd,$40,$21,$d0,$fb,$70,$b3,$28,$60
	dc.B	$68,$8d,$40,$21,$cd,$40,$21,$d0,$fb,$70,$b3,$28,$60

-stuff
------

	*= $9000

	jsr	InitMusic	;send spcu data...
	lda	#$f
	sta	INIDISP
	lda	#$80		;enable nmi
	sta	NMITIMEN

	stz	CGADD		;black bg!
	lda	#$3f
	sta	CGDATA
	sta	CGDATA
loop:	jmp	loop

; Sinustab
;~~~~~~~~~
sinustab:
	dc.b	$01,$01,$01,$11,$11,$11,$21,$21,$31,$31,$31,$41,$41,$51,$51,$51
	dc.b	$61,$61,$61,$71,$71,$71,$81,$81,$81,$91,$91,$91,$A1,$A1,$A1,$B1
	dc.b	$B1,$B1,$B1,$C1,$C1,$C1,$C1,$D1,$D1,$D1,$D1,$D1,$E1,$E1,$E1,$E1
	dc.b	$E1,$E1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1
	dc.b	$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$F1,$E1,$E1
	dc.b	$E1,$E1,$E1,$E1,$D1,$D1,$D1,$D1,$D1,$C1,$C1,$C1,$C1,$B1,$B1,$B1
	dc.b	$B1,$A1,$A1,$A1,$91,$91,$91,$81,$81,$81,$71,$71,$71,$61,$61,$61
	dc.b	$51,$51,$51,$41,$41,$31,$31,$31,$21,$21,$11,$11,$11,$01,$01,$01

------------
- VBI
------------

VBI	php
	pha
	phx

	rep	#$30	;all 16bit!

	clc
	lda	$1ff8
	adc	#1
	sta	$1ff8	;word!

	sep	#$30

	lda	$1ffa
	clc
	adc	#1
	sta	$1ffa
	and	#$7f
	tax
	lda	sinustab,x
	sta	MOSAIC
	ror	a
	ror	a
	ror	a
	ror	a
	and	#$f
	eor	#$f
	sta	INIDISP

	lda	#1
	sta	CGADD
	lda	$1ff8
	sta	CGDATA
	lda	$1ff9
	eor	#$5
	sta	CGDATA

	plx
	pla
	plp
	rti

;Vectors
;~~~~~~~
	org	$ffea	;nmi vector in 65816 mode !!
	dcr.w	VBI
	org	$fffc	;reset vector in 6502 mode
	dcr.w	Start

	.pad
mus1:	.bin	ice:famicom/stassembler/music1.bin
mus2:	.bin	ice:famicom/stassembler/music2.bin
