****************************************************
* ARAIDEMO pour HP48S(X)   Valle Christophe 1994 *
****************************************************
G	= 0	mettre -1 si programme pour une G ou GX 
KEYROUT	= ($01160&~G)|($00000&G)
PROL_CODE	= ($02DCC&~G)|($00000&G)
SAVE_REG	= ($0679B&~G)|($00000&G)
LOAD_REG	= ($067d2&~G)|($00000&G)
RES_STR	= ($05B7D&~G)|($00000&G)
ECRAN	= ($7055B&~G)|($00000&G)
* mettre a la place des $00000 ci dessus les adresses correspondantes 
* pour les G ou GX que je ne connais pas

	CON(5)	PROL_CODE
DEBUT	CON(5)	CODF-DEBUT

	GOSBVL	SAVE_REG

	LC(5)	3*28	reserve de la memoire pour les
	GOSBVL	RES_STR	parametres des 3 araignees 
	AD0ex
	R0=A
	D0=A

	A=PC
O1	LC(5)	ARAI1-O1
	A=A+C	A
	D1=A

	LC(2)	27
DEB1	A=DAT1	X
	DAT0=A	X
	D1=D1+	3
	D0=D0+	3
	C=C-1	B
	GONC	DEB1

	INTOFF

	D1=(5)	$00128
	LC	$37
	DAT1=C	B

	A=PC
O2	LC(5)	TXT-O2
	A=A+C	A
	R1=A
	R2=A

	C=0	A
	R3=C
	R4=C

WK	D1=(5)	$00128
VBL	C=DAT1	B
	?C#0	B
	GOYES	VBL	synchronisation avec l'ecran

	GOSUB	SCRO

	A=R0
	GOSUB	DOARAI	

	A=R0
	LC(5)	28
	A=A+C	A
	GOSUB	DOARAI

	A=R0
	LC(5)	2*28
	A=A+C	A
	GOSUB	DOARAI

	LC	$1FF
	GOSUB	KEY
	?C=0	X
	GOYES	WK

WK1	LC	$1FF
	GOSUB	KEY
	?C#0	X
	GOYES	WK1

	INTON
	GOSBVL	LOAD_REG
	A=DAT0	A
	D0=D0+	5
	PC=(A)
	
KEY	OUT=C
	GOSBVL	KEYROUT
	RTN

**********************
* scrolling du texte *
**********************
SCRO	C=R3	A
	C=C-1	A
	GOC	SCRO0	ne scrolle que 1 fois sur 2
	R3=C	A
	RTN

SCRO0	LC(5)	1
	R3=C	A

	C=R4	B
	C=C-1	B
	GOC	SCRO1
	R4=C	B
	GOTO	SCRO4

SCRO1	LC	$07	affiche une nouvelle lettre 1 * sur 8
	R4=C	B

	A=PC
O3	LC(5)	FONT-O3-48*16
	A=A+C	A
	B=A	A

	C=R1	A
	D0=C
	A=0	A
	A=DAT0	B
	?A#0	B
	GOYES	SCRO2
	C=R2	A
	D0=C
	A=DAT0	B
SCRO2	CD0ex
	C=C+2	A
	R1=C	A

	C=B	A
	ASL	A
	C=C+A	A
	D0=C

	D1=(5)	ECRAN
	A=DAT1	A
	LC(5)	20+5*34+32
	A=A+C	A
	D1=A

	LC(2)	7
SCRO3	A=DAT0	B
	DAT1=A	B
	D0=D0+	2
	D1=D1+	16
	D1=D1+	16
	D1=D1+	2
	C=C-1	B
	GONC	SCRO3

SCRO4	D1=(5)	ECRAN
	A=DAT1	A
	LC(5)	20+5*34
	A=A+C	A
	D0=A
	D1=A

	LC	$8
	CSRC
	B=C	S

	LC	$07
	B=C	B
SCRO6	A=DAT0	W
	D0=D0+	16

	ASRB

	C=DAT0	W
	D0=D0+	16

	SB=0
	CSRB
	?SB=0
	GOYES	SCRO7

	A=A!B	S

SCRO7	DAT1=A	W
	D1=D1+	16

	A=DAT0	B
	D0=D0+	2

	SB=0
	ASRB	B
	?SB=0
	GOYES	SCRO8
	C=C!B	S

SCRO8	DAT1=C	W
	D1=D1+	16

	DAT1=A	B
	D1=D1+	2

	B=B-1	B
	GONC	SCRO6

	RTN

**************************
**************************
**************************
* A=pteur sur parametre de l'araignee
DOARAI	D0=A
	D1=A
	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)	ECRAN
	A=DAT1	A
	LC(5)	20
	A=A+C	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

TXT	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
CODF