****************************************************
* AraiDemo       © Vallée Christophe 1994          *
* Compatible HP48S(X)/HP48G(X)                     *
****************************************************
	include	entries.i

AddEcran = $131f8

	con(5)	DOCODE
DebutCode	con(5)	FinCode-DebutCode

	gosbvl	SAVPTR

	lc(5)	3*28	reserve de la memoire pour les
	gosbvl	MAKE$N	parametres des 3 araignees 
	ad0ex
	r0=a
	d0=a

	a=pc
Offs1	lc(5)	ARAI1-Offs1
	a=a+c	a
	d1=a

	lc(2)	27
Copy	a=dat1	x
	dat0=a	x
	d1=d1+	3
	d0=d0+	3
	c=c-1	b
	gonc	Copy

	intoff

	d1=(5)	MENUROW1
	lc(2)	55
	dat1=c	b

	a=pc
Offs2	lc(5)	Text-Offs2
	a=a+c	a
	r1=a
	r2=a

	c=0	a
	r3=c
	r4=c

Loop	d1=(5)	MENUROW1
VBL	c=dat1	b
	?c#0	b
	goyes	VBL	synchronisation avec l'ecran

	gosub	Scrolling

	c=0	a
	gosub	Araignee

	lc(5)	28
	gosub	Araignee

	lc(5)	2*28
	gosub	Araignee

	lc(3)	allkeys	teste si une touche est appuyee
	out=c
	gosbvl	CINRTN
	?c=0	x
	goyes	Loop

	inton

	gosbvl	Flush

	govlng	GETPTRLOOP

**********************
* scrolling du texte *
**********************
Scrolling	c=r3	a	r3=tempo du scrolling
	c=c-1	a	ne scrolle que si r3=0
	goc	ScrollOk
	r3=c	a
	rtn

ScrollOk	lc(5)	1
	r3=c	a

	c=r4	b	r4=tempo d'affichage de lettre
	c=c-1	b	n'affiche un car que si r4=0
	goc	AffCarOk
	r4=c	b
	goto	Scroll

AffCarOk	lc(2)	7
	r4=c	b

	lc(5)	Font-Offs-48*16
	a=pc
Offs	a=a+c	a
	b=a	a

	c=r1	a
	d0=c
	a=0	a
	a=dat0	b
	?a#0	b
	goyes	CarOk
	c=r2	a
	d0=c
	a=dat0	b
CarOk	cd0ex
	c=c+2	a
	r1=c	a

	c=b	a
	asl	a
	c=c+a	a
	d0=c

	d1=(5)	AddEcran
	a=dat1	a
	d1=a
	a=dat1	a
	lc(5)	5*34+32
	a=a+c	a
	d1=a

	lc(2)	7
AffCar	a=dat0	b
	dat1=a	b
	d0=d0+	2
	d1=d1+	16
	d1=d1+	16
	d1=d1+	2
	c=c-1	b
	gonc	AffCar

Scroll	d1=(5)	AddEcran
	a=dat1	a
	d1=a
	a=dat1	a
	lc(5)	5*34
	a=a+c	a
	d0=a
	d1=a

	lc(1)	8
	csrc
	b=c	s

	lc(2)	7
	b=c	b
Scroll2	a=dat0	w
	d0=d0+	16

	asrb

	c=dat0	w
	d0=d0+	16

	sb=0
	csrb
	?sb=0
	goyes	PasRet1

	a=a!b	s

PasRet1	dat1=a	w
	d1=d1+	16

	a=dat0	b
	d0=d0+	2

	sb=0
	asrb	b
	?sb=0
	goyes	PasRet2
	c=c!b	s

PasRet2	dat1=c	w
	d1=d1+	16

	dat1=a	b
	d1=d1+	2

	b=b-1	b
	gonc	Scroll2

	rtn

**************************
**************************
**************************
* c=pointeur sur les parametre de l'araignee
Araignee	a=r0
	c=c+a	a
	d0=c
	d1=c

	st=0	0	flag mis a 1 si besoin de dessiner
*			l'araignee
	A=DAT0	A
	D0=D0+	5

	C=DAT0	B
	D0=D0+	2

	C=C-1	B
	GONC	DOA1

	ST=1	0

	C=DAT0	B
	A=A+1	A
	ABIT=0	2

DOA1	D0=D0+	2

	DAT1=A	A
	D1=D1+	5

	DAT1=C	B
	D1=D1+	4

	C=A	A
	D=C	A
**********************
	A=DAT0	A
	D0=D0+	5	;h

	C=DAT0	A	;dh
	B=C	A
	D0=D0+	5	

	C=DAT0	B
	D0=D0+	2	;tempo

	C=C-1	B
	GONC	DOA2

	ST=1	0

	A=A+B	A

	LC(5)	15
	?A=C	A
	GOYES	CHG
	
	LC(5)	40
	?A#C	A
	GOYES	NOCHG

CHG	B=-B	A
NOCHG	C=DAT0	B

DOA2	D0=D0+	2

	DAT1=A	A
	D1=D1+	5

	BCex	A
	DAT1=C	A
	D1=D1+	5

	BCex	A
	DAT1=C	B

	B=A	A

	?ST=0	0
	RTNYES

	d1=(5)	AddEcran
	a=dat1	a
	d1=a
	a=dat1	a
	c=dat0	a
	A=A+C	A
	B=B+B	A
	A=A+B	A
	BSL	A
	A=A+B	A
	D1=A

	DSL	A
	D=D+D	A
	D=D+D	A
	D=D+D	A

	a=pc
O4	lc(5)	ARAI-O4
	c=c+a	a
	c=c+d	a
	d0=c

	lc(2)	15
AffAr1	a=dat0	8
	dat1=a	8
	d0=d0+	8
	d1=d1+	16
	d1=d1+	16
	d1=d1+	2
	c=c-1	b
	gonc	AffAr1

	rtn

ARAI1	con(5)	0	dessin
	con(2)	0	tempo dessin
	con(2)	7	tempo dessin 0
	con(5)	16	H
	con(5)	-1	DH
	con(2)	0	tempoH
	con(2)	3	tempoH0
	con(5)	3	deca

ARAI2	con(5)	0	dessin
	con(2)	0	tempo dessin
	con(2)	5	tempo dessin 0
	con(5)	16	H
	con(5)	-1	DH
	con(2)	0	tempoH
	con(2)	1	tempoH0
	con(5)	11	deca

ARAI3	con(5)	0	dessin
	con(2)	0	tempo dessin
	con(2)	8	tempo dessin 0
	con(5)	16	H
	con(5)	-1	DH
	con(2)	0	tempoH
	con(2)	2	tempoH0
	con(5)	22	deca

ARAI	hex	$00080000
	HEX	$0048010000A88200
	HEX	$002D5200087F7F00
	HEX	$04EFF31002BFF620
	HEX	$09C8894088CAA980
	HEX	$64A8821314AFF214
	HEX	$02A882200191C440
	HEX	$0801480004000010
	HEX	$00000000

	HEX	$00080000
	HEX	$00488E0000A8CA00
	HEX	$002D5B10087FF110
	HEX	$04EFF51002BFF530
	HEX	$09C8892088CAAB60
	HEX	$64A88A4014AFF2D0
	HEX	$02A882210191C202
	HEX	$0801440004000800
	HEX	$00000000

	HEX	$00080000
	HEX	$08B8810008A94600
	HEX	$0C6D5F0004CF7B10
	HEX	$04DFF31006DFF630
	HEX	$0AC885200BEAA560
	HEX	$09A88A4085277AC0
	HEX	$4221429020236221
	HEX	$0012220208000400
	HEX	$00000000

	HEX	$00080000
	HEX	$08B8010008A98200
	HEX	$0C6D520004CF7F00
	HEX	$04DFF31006DFF620
	HEX	$0AC889400BEAA980
	HEX	$09A8821385AFF210
	HEX	$42A8822000A1C440
	HEX	$0011480008000010
	HEX	$00000000

Font	HEX	$07CC68286CEFE7C3	0
	HEX	$81C1818080C1C1C1	1
	HEX	$C76E2E87C1E0E7EF	2
	HEX	$C3870E8F0E07C7E3	3
	HEX	$0E0FCFE6E70F0303	4
	HEX	$07C7E0C70E0ECEC7	5
	HEX	$81C0E1666CCEC783	6
	HEX	$8F0C0E0381C1C0E0	7
	HEX	$87CCED666CCEC783	8
	HEX	$83C7E66CCC0F0603	9
	HEX	$0001830100018301	:	:
	HEX	$0000000000018301	.	;
	HEX	$0000000000000000		<
	HEX	$0183810000000000	'	=
	HEX	$0000000783000000	-	>
	HEX	$0383838181004040	!	?
	HEX	$07CDE86E6D66E0C3	@	@

	HEX	$0789C8CFEC6C6C60	A
	HEX	$03C464E3666CCF87	B
	HEX	$8142202060E6E7C3	C
	HEX	$C3466C686CEEE7C3
	HEX	$C3E170F170E0E3C7
	HEX	$C7C060E3E0E0E0C0
	HEX	$8142202067E6E7C3
	HEX	$848CCFC44466EEEE
	HEX	$C1C1818080C1C1C1
	HEX	$0F0404060683E3E1
	HEX	$808482C1C3C7CECC
	HEX	$404040406066EFEF
	HEX	$44CECFC54566EEEE
	HEX	$48C8C94B4FCEEEEC
	HEX	$07CC68286CEFE7C3
	HEX	$C3466C6FE7E16040
	HEX	$07CC682A6EEDE7CB
	HEX	$83C444E3E1636666
	HEX	$03C7E4C30E0CCEC7
	HEX	$CF03018181C1C0C0
	HEX	$484828286CEFE7C7
	HEX	$2828686C6CCEC787
	HEX	$4848282565E7E6E2
	HEX	$48C48783C3E66E6E
	HEX	$4848C4870783E3E1	Y
	HEX	$0F080C03C1E0EFEF	Z

Text	asc	'<<<ARAIDEMO<<<'
	asc	'<<DEMO<EXEMPLE<DU<PROGRAMME<HPASM<'
	asc	'SUR<AMIGA<<<<<<'
	asc	'CONTACT<SUR<MINITEL<:<RTEL<EN<BAL<OSCAR<'
	asc	'OU<SUR<INTERNET<:<VALLEE@ENSEA;FR<<<<<<<'
	hex	$00
FinCode