mirror of
https://github.com/antoinevignau/source.git
synced 2024-07-04 21:29:45 +00:00
644 lines
7.5 KiB
ArmAsm
644 lines
7.5 KiB
ArmAsm
|
*
|
|||
|
* La Belle Zohra
|
|||
|
*
|
|||
|
* (c) 1992, Fran<EFBFBD>ois Coulon
|
|||
|
* (c) 2023, Antoine Vignau & Olivier Zardini
|
|||
|
*
|
|||
|
|
|||
|
mx %00
|
|||
|
|
|||
|
*-----------------------
|
|||
|
* macros
|
|||
|
*-----------------------
|
|||
|
|
|||
|
@carre mac
|
|||
|
PushLong ]1
|
|||
|
PushWord ]2
|
|||
|
PushWord ]3
|
|||
|
PushWord ]4
|
|||
|
jsr carre
|
|||
|
eom
|
|||
|
|
|||
|
*-----------------------
|
|||
|
* set_language
|
|||
|
*-----------------------
|
|||
|
|
|||
|
set_language
|
|||
|
PushWord #0
|
|||
|
PushWord #$29
|
|||
|
_ReadBParam
|
|||
|
pla
|
|||
|
cmp #20
|
|||
|
bcc st_ok
|
|||
|
rts
|
|||
|
|
|||
|
* index
|
|||
|
* TEXTES : +16
|
|||
|
|
|||
|
st_ok jsr st_setit ; try IIgs language
|
|||
|
bcc st_ok99
|
|||
|
|
|||
|
lda #0 ; if not, try EN US
|
|||
|
jsr st_setit
|
|||
|
bcc st_ok99
|
|||
|
|
|||
|
lda #2 ; it not, force FR - It always exists
|
|||
|
jsr st_setit
|
|||
|
st_ok99 rts
|
|||
|
|
|||
|
*---
|
|||
|
|
|||
|
st_setit sta saveLANGUAGE
|
|||
|
asl
|
|||
|
tax
|
|||
|
lda tblLANG,x
|
|||
|
sta pREF+16
|
|||
|
sta pTEXTES+16
|
|||
|
|
|||
|
lda #pREF ; check file exists
|
|||
|
sta proOPEN+4
|
|||
|
|
|||
|
jsl GSOS
|
|||
|
dw $2010
|
|||
|
adrl proOPEN
|
|||
|
bcs st_setit99
|
|||
|
|
|||
|
lda proOPEN+2
|
|||
|
sta proCLOSE+2
|
|||
|
|
|||
|
jsl GSOS
|
|||
|
dw $2014
|
|||
|
adrl proCLOSE
|
|||
|
|
|||
|
st_setit99 rts
|
|||
|
|
|||
|
*---
|
|||
|
|
|||
|
tblLANG asc 'us' ; 0
|
|||
|
asc 'uk'
|
|||
|
asc 'fr' ; 2
|
|||
|
asc 'nl'
|
|||
|
asc 'es' ; 4
|
|||
|
asc 'it'
|
|||
|
asc 'de' ; 6
|
|||
|
asc 'se'
|
|||
|
asc 'us'
|
|||
|
asc 'ca'
|
|||
|
asc 'nl'
|
|||
|
asc 'he'
|
|||
|
asc 'jp'
|
|||
|
asc 'ar'
|
|||
|
asc 'gr'
|
|||
|
asc 'tr'
|
|||
|
asc 'fi'
|
|||
|
asc 'ta'
|
|||
|
asc 'hi'
|
|||
|
asc 'us' ; 19
|
|||
|
|
|||
|
*-----------------------
|
|||
|
* XX - OK
|
|||
|
*-----------------------
|
|||
|
|
|||
|
xx
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
* MAIN - OK
|
|||
|
*-----------------------
|
|||
|
|
|||
|
main
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
* VIGIL - OK
|
|||
|
*-----------------------
|
|||
|
* vigil(max_x%,max_y%,max_xx%,max_yy%,sauvegarde!)
|
|||
|
|
|||
|
vigil
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
* TEST_FIN - OK
|
|||
|
*-----------------------
|
|||
|
|
|||
|
teste_fin lda paragraphes_lus
|
|||
|
sec
|
|||
|
sbc pointeur_paragraphes
|
|||
|
cmp #1
|
|||
|
bne tf_99
|
|||
|
|
|||
|
jmp the_end
|
|||
|
|
|||
|
tf_99 rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
demande_objet
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
demande_peche
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
recherche_references
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
affiche_image
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
sauvegarde
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
chargement
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
the_end
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
pre_scrolling
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
scrolling
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
verif
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
init
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
init2
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
init_resolution
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
init_indicateurs
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
init_objets
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
init_peches
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
init_icones
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
init_routines
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
init_fenetres
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
init_souris
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
datas_init
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
init_texte
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
init_indicateurs_texte
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
lookindex
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
* PRESENTATION - OK
|
|||
|
*-----------------------
|
|||
|
* presentation
|
|||
|
* A: num<EFBFBD>ro du texte
|
|||
|
|
|||
|
presentation
|
|||
|
cmp #9 ; 1..8
|
|||
|
bcc pr_1
|
|||
|
rts
|
|||
|
pr_1 cmp #0
|
|||
|
beq pr_2
|
|||
|
pha
|
|||
|
|
|||
|
PushWord #0
|
|||
|
_ClearScreen
|
|||
|
|
|||
|
pla
|
|||
|
dec
|
|||
|
asl
|
|||
|
tax
|
|||
|
jsr (tbl_pres,x)
|
|||
|
pr_2 rts
|
|||
|
|
|||
|
*---
|
|||
|
|
|||
|
tbl_pres da pr_case_1
|
|||
|
da pr_case_2
|
|||
|
da pr_case_3
|
|||
|
da pr_case_4
|
|||
|
da pr_case_5
|
|||
|
da pr_case_6
|
|||
|
da pr_case_7
|
|||
|
da pr_case_8
|
|||
|
|
|||
|
*---
|
|||
|
|
|||
|
pr_case_1
|
|||
|
@carre #prSTR11;#100;#80;#$0771
|
|||
|
@carre #prSTR12;#100;#120;#$0774
|
|||
|
rts
|
|||
|
|
|||
|
pr_case_2
|
|||
|
@carre #prSTR21;#25;#20;#$0437
|
|||
|
rts
|
|||
|
|
|||
|
pr_case_3
|
|||
|
@carre #prSTR31;#25;#180;#$0275
|
|||
|
rts
|
|||
|
|
|||
|
pr_case_4
|
|||
|
@carre #prSTR41;#100;#0;#$0743
|
|||
|
rts
|
|||
|
|
|||
|
pr_case_5
|
|||
|
@carre #prSTR51;#150;#20;#$0743
|
|||
|
@carre #prSTR52;#50;#100;#$0743
|
|||
|
@carre #prSTR53;#70;#180;#$0177
|
|||
|
rts
|
|||
|
|
|||
|
pr_case_6
|
|||
|
@carre #prSTR61;#0;#100;#$0607
|
|||
|
@carre #prSTR62;#20;#150;#$0607
|
|||
|
rts
|
|||
|
|
|||
|
pr_case_7
|
|||
|
@carre #prSTR71;#0;#99;#$0073
|
|||
|
rts
|
|||
|
|
|||
|
pr_case_8
|
|||
|
@carre #prSTR81;#100;#180;#$0555
|
|||
|
rts
|
|||
|
|
|||
|
*---
|
|||
|
|
|||
|
prSTR11 str 'la belle zohra'
|
|||
|
prSTR12 str '(morceaux de bravoure)'
|
|||
|
prSTR13 str 'fran'8d'ois coulon'
|
|||
|
prSTR14 str 'les logiciels d'27'en face 1992.reproduction interdite'
|
|||
|
prSTR21 str 'graphismes faustino ribeiro'
|
|||
|
prSTR31 str 'programmation pascal piat'
|
|||
|
prSTR41 str 'musique erik ecqier'
|
|||
|
prSTR51 str 'un grand merci '88':'
|
|||
|
prSTR52 str 'emmanuel talmy'
|
|||
|
prSTR53 str 'sans qui ce logiciel... etc.'
|
|||
|
prSTR61 str 'miss zohra c'8e'lestibus est habill'8e'...'
|
|||
|
prSTR62 str '...par aristide aristibus'
|
|||
|
prSTR71 str 8e'crit et r'8e'alis'8e' par fran'8d'ois coulon'
|
|||
|
prSTR81 str 88' la famille paspire...'
|
|||
|
|
|||
|
*-----------------------
|
|||
|
* CARRE
|
|||
|
*-----------------------
|
|||
|
* carre(texte$,x%,y%,couleur$)
|
|||
|
* 3,s word : RGB color
|
|||
|
* 5,s word : y
|
|||
|
* 7,s word : x
|
|||
|
* 9,s long : @text
|
|||
|
|
|||
|
* couleur$ est pour le carr<EFBFBD>
|
|||
|
* le texte est toujours en jaune
|
|||
|
|
|||
|
carre lda 3,s
|
|||
|
sta carreRGB
|
|||
|
lda 5,s
|
|||
|
sta carreRECT
|
|||
|
clc
|
|||
|
adc #12
|
|||
|
sta carreRECT+4
|
|||
|
lda 7,s
|
|||
|
sta carreRECT+2
|
|||
|
clc
|
|||
|
adc #12
|
|||
|
sta carreRECT+6
|
|||
|
lda 9,s
|
|||
|
sta dpFROM
|
|||
|
lda 11,s
|
|||
|
sta dpFROM+2
|
|||
|
|
|||
|
carreEXIT lda 1,s
|
|||
|
plx
|
|||
|
plx
|
|||
|
plx
|
|||
|
plx
|
|||
|
plx
|
|||
|
sta 1,s
|
|||
|
rts
|
|||
|
|
|||
|
*---
|
|||
|
|
|||
|
carreRGB ds 2 ; couleur du carre
|
|||
|
|
|||
|
carreRECT ds 2 ; y0
|
|||
|
ds 2 ; x0
|
|||
|
ds 2 ; y0+12
|
|||
|
ds 2 ; y0+12
|
|||
|
|
|||
|
*-----------------------
|
|||
|
* RAMDISK - OK
|
|||
|
*-----------------------
|
|||
|
|
|||
|
ramdisk
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
shoot_text
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
shoot_ligne
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
* cree_fenetre(objet%,paragraphe%)
|
|||
|
|
|||
|
cree_fenetre
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
* display_text(ligne%,niveau%)
|
|||
|
|
|||
|
display_text
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
* ice_load(fichier$)
|
|||
|
|
|||
|
ice_load
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
* ice_disp(adresse_image%)
|
|||
|
|
|||
|
ice_disp
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
* palette(palette$)
|
|||
|
|
|||
|
palette
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
hide_screen
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
show_screen
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
hide_screen2
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
show_screen2
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
mouse_on
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
mouse_off
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
musique
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
init_musique
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
* rythme(rythme%)
|
|||
|
|
|||
|
rythme
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
charge_son
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
clavier_sonore
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
* mix(numero_son%)
|
|||
|
|
|||
|
mix
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
stop_sample
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
fin_musique
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
*
|
|||
|
*-----------------------
|
|||
|
|
|||
|
data_fichiers_musique
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
* T - OK
|
|||
|
*-----------------------
|
|||
|
* t(ligne%,texte$)
|
|||
|
* A: @texte$
|
|||
|
* Y: ligne%
|
|||
|
|
|||
|
t PushWord #^t ; pointer to string
|
|||
|
pha
|
|||
|
|
|||
|
tya ; pour MoveTo
|
|||
|
asl
|
|||
|
asl
|
|||
|
asl
|
|||
|
pha ; Y
|
|||
|
|
|||
|
PushWord #0 ; get string length
|
|||
|
PushWord #^t
|
|||
|
pha
|
|||
|
_StringWidth ; return left on stack
|
|||
|
|
|||
|
lda #160
|
|||
|
sec
|
|||
|
sbc 1,s
|
|||
|
bpl t1
|
|||
|
lda #0
|
|||
|
t1 sta 1,s ; X
|
|||
|
_MoveTo
|
|||
|
_DrawString
|
|||
|
rts
|
|||
|
|
|||
|
*-----------------------
|
|||
|
* FIN - OK
|
|||
|
*-----------------------
|
|||
|
|
|||
|
fin
|
|||
|
rts
|