mirror of
https://github.com/antoinevignau/source.git
synced 2024-06-01 00:41:39 +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Ž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Ž
|
||
* 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
|