*
* SOURCE D'ANIMATION DHGR
* MURYADEN II - ANIM 2
*
* V-1.00 - UPDATE
* 10/09/90 11H00
*
ORG $6000
LST OFF
AP = $00F9
X = $00FA
DEP = $00FC
ARR = $00FE
CARAL = $1000
CARAH = $1080
GRAPL = $1130
GRAPH = $11F0
JSR $FC58
JSR $B000
LDA #$00 ;INITIALISATIONS
STA AP
STA X
JSR M1
JSR ANIM1
STA $C000
STA $C00C
STA $C051
STA $C054
JSR $FC58
RTS
* ANIMATION
* VARIANTE DES VARIABLES:
*
* X= NUMERO DE LA FORME
* Y= COLONNE D'AFFICHAGE
* A= NON UTILE AU PROGRAMME
ANIM1 LDX #$00
LDY #$00
JSR AFFICHE
ANIM2 LDX #$12
LDY #$22
JSR AFFICHE
INC ANIM1+1
INC ANIM2+1
LDA ANIM1+1
CMP #$12
BNE RET
LDA #$00
STA ANIM1+1
LDA #$12
STA ANIM2+1
* RETOUR
RET JSR SCROLL
LDA #$D0
JSR $FCA8
JSR SCROLL
LDA #$D0
JSR $FCA8
LDA $C000
BPL ANIM1
BIT $C010
RTS
BYTS HEX 0000
*
* VOICI LE PROGRAMME
*
AFFICHE STY YVAL1+1 ;VALEUR COLONNE
LDA WINL,X ;LADRES OF WINDOW DATA
STA X
LDA WINH,X ;HADRES OF WINDOW DATA
STA X+1
LDY #$00
LDA (X),Y ;ADR MEM H
STA ARR1+2
INY
LDA (X),Y ;ADR MEM B
STA ARR1+1
INY
LDA (X),Y ;NOMBRE DE COLONNES
STA BYTS
LDX #$00 ;RECHERCHE
CALCUL LDA #$00
STA BYTS+1
STA $C055 ;PASSAGE EN AUX
LDA GRAPL,X ;DE L'ADRESSE
STA ARR ;HAUTE ET BASSE
LDA GRAPH,X ;DE LA LIGNE
STA ARR+1 ;A AFFICHER
YVAL1 LDY #$00 ;NOMBRE DE COLONNES
ARR1 LDA $FFFF ;VALEUR A CHARGER
STA (ARR),Y ;SAUVEGARDE DE LA VALEUR
INC ARR1+1 ;TOUR SUIVANT
LDA ARR1+1 ;LE CHARGE
BNE ARR2 ;NON, SAUTE
INC ARR1+2 ;OUI INCREMENTE
ARR2 LDA BYTS+1
CMP BYTS
BEQ FOLLOWX
INC BYTS+1
LDA $C01C ;TEST LE BYTE DE PAGE 2
BMI MAIN ;PASSE EN MAIN
STA $C055 ;PAGE 2
INY ;COLONNE SUIVANTE
JMP ARR1 ;RETOUR
MAIN STA $C054 ;PAGE 1
JMP ARR1 ;RETOUR
FOLLOWX INX
CPX #$1E ;EST-CE LA FIN??
BNE CALCUL ;NON, RECOMMENCE
RTS ;C'EST LA FIN
* TABLE DES ADRESSES DES DONNEES DE FENETRES
WINL DFB
H1,>H2,>H3,>H4,>H5,>H6
DFB >H7,>H8,>H9,>H10,>H11,>H12
DFB >H13,>H14,>H15,>H16,>H17,>H18
DFB >G1,>G2,>G3,>G4,>G5,>G6
DFB >G7,>G8,>G9,>G10,>G11,>G12
DFB >G13,>G14,>G15,>G16,>G17,>G18
* TABLE DES DONNEES DES FENETRES
H1 HEX 70000C
H2 HEX 71930C
H3 HEX 73260C
H4 HEX 74B90C
H5 HEX 764C0C
H6 HEX 77DF0C
H7 HEX 79720C
H8 HEX 7B050C
H9 HEX 7C980C
H10 HEX 7E2B0C
H11 HEX 7FBE0C
H12 HEX 81510C
H13 HEX 82E40C
H14 HEX 84770C
H15 HEX 860A0C
H16 HEX 879D0C
H17 HEX 89300C
H18 HEX 8AC30C
G1 HEX 90000B
G2 HEX 91740B
G3 HEX 92E80B
G4 HEX 945C0B
G5 HEX 95D00B
G6 HEX 97440B
G7 HEX 98B80B
G8 HEX 9A2C0B
G9 HEX 9BA00B
G10 HEX 9D140B
G11 HEX 9E880B
G12 HEX 9FFC0B
G13 HEX A1700B
G14 HEX A2E40B
G15 HEX A4580B
G16 HEX A5CC0B
G17 HEX A7400B
G18 HEX A8B40B
*
* AFFICHE UN TEXTE EN DHGR
* HUM PETITE VARIANTE
* V-1.00 - UPDATE 11/07/90
*
M1 LDA #$00
STA DEP
LDA #$16
STA DEP+1
RTS
SCROLL JSR M5
BCC M3
JSR M1
RTS
M3 INC DEP
LDA DEP
BNE M4
INC DEP+1
M4 LDX #$00
STA $C000
TOUR STA $C002
STA $C005
JSR LIT
JSR ECR
INX
STA $C003
STA $C004
JSR LIT
DEX
JSR ECR
INX
INX
CPX #$28
BNE TOUR
STA $C001
STA $C002
STA $C004
RTS
****
LIT LDA $23D0,X ;LIT LES
PHA ;BITS A ECRIRE
LDA $27D0,X
PHA
LDA $2BD0,X
PHA
LDA $2FD0,X
PHA
LDA $33D0,X
PHA
LDA $37D0,X
PHA
LDA $3BD0,X
PHA
LDA $3FD0,X
PHA
RTS
ECR PLA ;ECRIT LES
STA $3FD0,X ;BITS LUS
PLA
STA $3BD0,X
PLA
STA $37D0,X
PLA
STA $33D0,X
PLA
STA $2FD0,X
PLA
STA $2BD0,X
PLA
STA $27D0,X
PLA
STA $23D0,X
RTS
M5 LDY #$00 ;TEXTE
LDA (DEP),Y ;RETOUR
BEQ M6 ;SI 00
JSR M7 ;AFFICHE
CLC
RTS
M6 SEC
RTS
* AFFICHE LE TEXTE
M7 SEC ;SOUSTRAIT A0
SBC #$A0 ;POUR L'EQUIVALENCE
TAX ;TABLE/CARACTERE
LDA CARAL,X ;CARACTERES
STA M9+1 ;CORRESPONDANT
LDA CARAH,X ;ADRESSE BASSE
STA M9+2 ;ET HAUTE
LDX #$B8
M8 LDA GRAPL,X ;CHARGE LA LIGNE
STA ARR ;D'ARRIVEE BASSE
LDA GRAPH,X ;ET EVIDEMMENT
STA ARR+1 ;HAUTE
M9 LDA $FFFF ;AFFICHE
LDY #$27 ;SUR LA COLONNE
STA (ARR),Y ;YB
INC M9+1 ;BYTE+1
LDA M9+1
BNE M10
INC M9+2
M10 INX ;LIGNE+1
CPX #$C0
BNE M8
RTS ;RETOUR