It's the end!

This commit is contained in:
Antoine Vignau 2024-02-06 20:49:01 +01:00
parent f8b90dbc6c
commit 2c52ccbc85
59 changed files with 966 additions and 15012 deletions

BIN
.DS_Store vendored

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +0,0 @@
LaBelleZohra=Type(B3),AuxType(DB00),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -39,40 +39,6 @@ strMENU3 str '3- La Belle Zohra'
* CE OE B4
* CF oe B5
tblATARI hex 000102030405060708090A0B0C0D0E0F
hex 101112131415161718191A1B1C1D1E1F
hex 202122232425262728292A2B2C2D2E2F
hex 303132333435363738393A3B3C3D3E3F
hex 404142434445464748494A4B4C4D4E4F
hex 505152535455565758595A5B5C5D5E5F
hex 606162636465666768696A6B6C6D6E6F
hex 707172737475767778797A7B7C7D227F
hex 82818E898488868D90898F95948D8E8F
hex 9091929994959E9D98999A9B9C9D9E9F
hex A0A1A2A3A4A5A6A7A8A9AAABACADAEAF
hex B0B1B2B3CFCEB6B7B8B9BBBABCBDBEBF
hex C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF
hex D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF
hex E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF
hex F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
tblUPPER hex 000102030405060708090A0B0C0D0E0F
hex 101112131415161718191A1B1C1D1E1F
hex 202122232425262728292A2B2C2D2E2F
hex 303132333435363738393A3B3C3D3E3F
hex 404142434445464748494A4B4C4D4E4F
hex 505152535455565758595A5B5C5D5E5F
hex 604142434445464748494A4B4C4D4E4F ; a-z => A-Z
hex 505152535455565758595A7B7C7D7E7F
hex 808182838485868788898A8B8C8D8E8F
hex 909192939495969798999A9B9C9D9E9F
hex A0A1A2A3A4A5A6A7A8A9AAABACADAEAF
hex B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF
hex C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF
hex D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF
hex E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF
hex F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
*-----------------------
* DATA
*-----------------------
@ -201,53 +167,38 @@ fenetre_yy dw 0,190,190,190,190,190,190,190,190,190
*---
objetTEXT da $bdbd ; !NOM DE CHAQUE OBJET
da objetSTR1
da objetSTR2
da objetSTR3
da objetSTR4
da objetSTR5
da objetSTR6
da objetSTR7
da objetSTR8
objetSTR1 asc "LUNETTES"
objetSTR2 asc "CUILLERE"
objetSTR3 asc "FLEUR"
objetSTR4 asc "CARNET"
objetSTR5 asc "DICO"
objetSTR6 asc "BIJOUX"
objetSTR7 asc "CLES"
objetSTR8 asc "ARGENT"
* "LUNETTES"
* "CUILLERE"
* "FLEUR"
* "CARNET"
* "DICO"
* "BIJOUX"
* "CLES"
* "ARGENT"
objet_x dw 0,238,222,195,0,27,131,276,133
objet_y dw 0,51,110,0,17,55,32,19,69
objet_xx dw 0,283,268,266,57,106,178,319,188
objet_yy dw 0,88,151,39,54,103,64,50,101
*objet_xx dw 0,283,268,266,57,106,178,319,188
*objet_yy dw 0,88,151,39,54,103,64,50,101
objet_xx dw 0,284,269,267,58,107,179,320,189
objet_yy dw 0,89,152,40,55,104,65,51,102
*---
pecheTEXT da $bdbd ; NOM DE CHAQUE PECHE (+1 POUR L'INDIC SUITE...)
da pecheSTR1
da pecheSTR2
da pecheSTR3
da pecheSTR4
da pecheSTR5
da pecheSTR6
da pecheSTR7
pecheSTR1 asc "ORGUEIL"
pecheSTR2 asc "AVARICE"
pecheSTR3 asc "GOURMANDISE"
pecheSTR4 asc "ENVIE"
pecheSTR5 asc "LUXURE"
pecheSTR6 asc "COLERE"
pecheSTR7 asc "PARESSE"
* "ORGUEIL"
* "AVARICE"
* "GOURMANDISE"
* "ENVIE"
* "LUXURE"
* "COLERE"
* "PARESSE"
peche_x dw 0,184,0,46,276,92,138,230
peche_y dw 0,162,162,162,162,162,162,162
peche_xx dw 0,227,43,89,319,135,181,273
peche_yy dw 0,199,199,199,199,199,199,199
*peche_xx dw 0,227,43,89,319,135,181,273
*peche_yy dw 0,199,199,199,199,199,199,199
peche_xx dw 0,228,44,90,320,136,182,274
peche_yy dw 0,200,200,200,200,200,200,200
*--- Sound files
* SNDxy.SND where x is the scene, y the file index (0..9)

View File

@ -146,6 +146,8 @@ to_1 inx
*-------- Affichage des objets
affiche_objets
ldx #1
]lp phx
jsr affiche_objet
@ -264,6 +266,8 @@ tp_1 inx
*-------- Affichage des peches
affiche_peches
ldx #1
]lp phx
jsr affiche_peche
@ -353,7 +357,6 @@ efface_peche
fondParamPtr
adrl fondToSourceLocInfo
* adrl iconToDestLocInfo
adrl contentToSourceLocInfo
adrl iconToSourceRect
adrl iconToDestPoint
@ -362,7 +365,6 @@ fondParamPtr
iconParamPtr
adrl iconToSourceLocInfo
* adrl iconToDestLocInfo
adrl contentToSourceLocInfo
adrl iconToSourceRect
adrl iconToDestPoint
@ -374,23 +376,13 @@ fondToSourceLocInfo
ds 4 ; ptrFOND - $0000 on entry, high set after _NewHandle
dw 160
dw 0,0,200,320
fondRect
dw 0,0,200,320
iconToSourceLocInfo
dw mode_320 ; mode 320
adrl $8000 ; ptrICON - $8000 on entry, high set after ptrFOND
dw 160
dw 0,0,200,320
iconRect
dw 0,0,200,320
iconToDestLocInfo
dw mode_320 ; +0 mode 320
adrl ptr012000 ; +2
dw 160
dw 0,0,200,320
iconToSourceRect
dw 3,0,109,272
iconToDestPoint
@ -794,13 +786,6 @@ ai_affiche sep #$20
rep #$20
@loadfile #pIMAGE;ptrCONTENT
* @fadein ptrCONTENT;#TRUE
* PushLong ptrCONTENT
* PushLong ptrSCREEN
* PushLong #32768
* _BlockMove
jmp cree_fenetre
*-----------------------
@ -1128,7 +1113,8 @@ musique lda fgSND ; can we play?
bne mu_1 ; yes
rts ; no
mu_1 jsr init_musique
mu_1 jsr ensoniq_stopall
jsr init_musique
lda #1
sta i
@ -1139,6 +1125,9 @@ mu_1 jsr init_musique
lda i
jsr charge_son ; charge les sons
jsr clavier_sonore ; joue les sons
php
jsr ensoniq_stopall
plp
bcs mu_exit ; si *, on quitte le clavier sonore
jsr nettoie_musique
inc i
@ -1318,6 +1307,46 @@ ry_err1 jsl GSOS
clc
ry_err2 rts
*-----------------------
* ENSONIQ_STOPALL - OK
*-----------------------
* ensoniq_stopall = stoppe tous les oscillateurs
ensoniq_stopall
sei
phd
lda #$c000
tcd
sep #$20
]lp lda soundctl
bmi ]lp
ldal $e100ca
and #%0000_1111
sta soundctl
ldx #2 ; boucle 2 fois
esa_1 ldy #$0
]lp tya
ora #$a0
sta soundadrl
lda #$01
sta sounddata
iny
cpy #32
bcc ]lp
dex
bne esa_1
rep #$20
pld
cli
rts
mx %00
*-----------------------
* RYTHME_JOUE - OK
*-----------------------

View File

@ -42,13 +42,6 @@
jsr loadFILE
eom
@fadein mac
lda ]2
ldx ]1+2
ldy ]1
jsr fadeIN
eom
*----------------------------------- Constantes
*-------------- Softswitches
@ -127,11 +120,6 @@ fgRESTART = 2
tdc
sta myDP
lda #MES_DONNEES
stal $300
lda #^MES_DONNEES
stal $302
*--- Version du systeme
jsl GSOS
@ -231,7 +219,6 @@ okTOOL PushWord #0
lda #^ptrE12000 ; shadowing is off, use slow RAM
sta ptrSCREEN+2
sta iconToDestLocInfo+4
*--- Et la musique...
@ -253,16 +240,26 @@ noSOUND _HideMenuBar
_FlushEvents
pla
PushLong #0
PushWord #5 ; SetDeskPat
PushWord #$4000
PushWord #$0000
_Desktop
pla
pla
*----------------------------------------
* INITIALISATIONS
*----------------------------------------
entryPOINT
jsr TWILIGHToff
jsr set_language
jsr antoine ; le menu principal
jsr init
jsr initMIDI
jsr doSOUNDON
restartPOINT
jsr init2
@ -285,9 +282,7 @@ refreshLOOP
* TASK MASTER
*----------------------------------------
taskLOOP inc VBLCounter0
PushWord #0
taskLOOP PushWord #0
PushWord #0
PushWord #$c000
PushWord #0
@ -295,7 +290,7 @@ taskLOOP inc VBLCounter0
pla
pla
* jsr checkREPLAY
jsr checkREPLAY
PushWord #0
PushWord #%11111111_11111111
@ -329,24 +324,21 @@ doKEYDOWN lda taskMODIFIERS
doOPENAPPLE
ldx #-1
sep #$20
]lp inx
lda tblKEYVALUE,x ; get key
and #$ff
cmp #$ff ; end of table
beq doOPENAPPLE99 ; so exit
cmp taskMESSAGE ; same as pressed key?
bne ]lp ; no, loop
rep #$20
txa
asl
tax
jmp (tblKEYADDRESS,x)
doOPENAPPLE99
doNOT
rep #$20
rts
doNOT rts
mx %00
@ -365,8 +357,6 @@ tblKEYADDRESS
da doMUSIK,doMUSIK
da monitor
doMUSIK rts
*----------------------------------- Gestion du mouseUp
* on compare les coordonnées avec celles du incontent
* si dans le même rectangle, on traite
@ -402,13 +392,6 @@ domu_3 jsr aiguillage ; choisit le texte correspondant
lda #$bebe ; il faudra rafraîchir l'écran
domu_4 rts
*----------------------------------- Gestion des controles
doCONTROL lda taskREC+38
asl
tax
jmp (ctrlTBL,x)
*----------------------------------- Clic dans le contenu de la fenêtre
doCONTENT lda textes_encore_presents
@ -443,7 +426,8 @@ doco_3 PushLong haCONTROL ; on enlève le contrôle
* RAFRAICHIT LES PALETTES ET LA FENETRE
*----------------------------------------
refreshME pea $0000 ; la palette
refreshME
pea $0000 ; la palette
lda ptrCONTENT+2
pha
lda ptrCONTENT
@ -452,18 +436,18 @@ refreshME pea $0000 ; la palette
pha
_SetColorTable
lda #$0fff ; LOGO - force les couleurs en attendant !
stal $019e1e
stal $e19e1e
* lda #$0fff ; LOGO - force les couleurs en attendant !
* stal $019e1e
* stal $e19e1e
PushLong #0
_RefreshDesktop
PushWord #0
PushWord #%11111111_11111111
PushWord #0
_FlushEvents
pla
* PushWord #0
* PushWord #%11111111_11111111
* PushWord #0
* _FlushEvents
* pla
rts
@ -541,24 +525,29 @@ pm_none _SetPort
*----------------------------------- Open
doLOAD
doLOAD lda texte_selectionne
ora objet_selectionne
ora peche_selectionne
beq doLOAD0
rts
doLOAD0
* jsr suspendMUSIC ; NTP off
jsr saveBACK
PushWord #30
PushWord #43
PushLong #strLOADFILE
PushLong #0
PushLong #typeLIST
PushLong #replyPTR
PushWord #30
PushWord #43
PushLong #strLOADFILE
PushLong #0
PushLong #typeLIST
PushLong #replyPTR
_SFGetFile
jsr loadBACK
jsr init_souris
lda replyPTR
bne doLOAD1
* jsr resumeMUSIC ; NTP on
rts
loadKO99 rts
* jmp resumeMUSIC ; NTP on
doLOAD1 jsr copyPATH
@ -579,28 +568,61 @@ doLOAD1 jsr copyPATH
dw $2014
adrl proCLOSE
loadKO99 rts
lda #$bcbc
rts
*---
lda texte_selectionne
beq load_notxt
jsr ai_affiche ; texte selectionne = image 1..8 et c'est tout
bra load_exit
load_notxt jsr init_souris
PushLong ptrFOND ; 1. on met le fond
PushLong ptrCONTENT
PushLong #32768
_BlockMove
lda peche_selectionne
beq load_nosin
jsr affiche_peches
load_nosin lda objet_selectionne
beq load_exit
jsr affiche_objets
load_exit jsr resumeMUSIC
lda #$bcbc ; force le refresh
rts
*----------------------------------- Save
doSAVE
* jsr suspendMUSIC ; NTP off
jsr saveBACK
doSAVE lda texte_selectionne
ora objet_selectionne
ora peche_selectionne
beq doSAVE0
rts
PushWord #25
PushWord #36
PushLong #strSAVEFILE
PushLong #namePATH
PushWord #15
PushLong #replyPTR
doSAVE0
* jsr suspendMUSIC ; NTP off
PushWord #25
PushWord #36
PushLong #strSAVEFILE
PushLong #namePATH
PushWord #15
PushLong #replyPTR
_SFPutFile
jsr loadBACK
* jsr resumeMUSIC ; NTP on
jsr init_souris
lda replyPTR
bne doSAVE1
saveKO99
rts
* jmp resumeMUSIC
doSAVE1 jsr copyPATH
@ -629,8 +651,7 @@ doSAVE1 jsr copyPATH
jsl GSOS
dw $2014
adrl proCLOSE
saveKO99 rts
rts
*--- Recopie le filename du fichier de sauvegarde
@ -652,23 +673,22 @@ copyPATH sep #$20
doRESTART
* jsr suspendMUSIC ; NTP off
jsr saveBACK
PushWord #0
PushWord #5
PushLong #0
PushWord #0
PushWord #5
PushLong #0
pea $0000
lda #alertRESTART
ora saveLANGUAGE
pha
_AlertWindow
jsr loadBACK
* jsr resumeMUSIC
pla
beq re1
* jmp resumeMUSIC ; NTP on
lda #0
rts
re1 lda #$bcbc
rts
@ -676,7 +696,6 @@ re1 lda #$bcbc
doQUIT
* jsr suspendMUSIC ; NTP off
jsr saveBACK
PushWord #0
PushWord #5
@ -687,18 +706,14 @@ doQUIT
pha
_AlertWindow
jsr loadBACK
* jsr resumeMUSIC ; NTP on
pla
beq meQUIT
rts
* jmp resumeMUSIC
*----------------------------------- Quit
meQUIT
* jsr stopNTP
jsr TWILIGHTon
meQUIT jsr stopMIDI
meQUIT0 PushWord #refIsHandle
PushLong SStopREC
@ -721,113 +736,6 @@ meQUIT1 PushWord myID
monitor brk $bd
*----------------------------------------
* TWILIGHT
*----------------------------------------
*----------------------------
* TWILIGHToff
* Turns Twilight II off
*
* Entry:
* n/a
*
* Exit:
* n/a
*
*----------------------------
lenV1 = $49bf
lenV2 = $539a
offV1 = $117a
offV2 = $154c
TWILIGHToff
ldal $e11600
sta Debut
ldal $e11602
sta Debut+2
TWILIGHToff1
ldy #8
lda [Debut],y
ldx #offV1
cmp #lenV1
beq TWILIGHToff2
ldx #offV2
cmp #lenV2
bne TWILIGHToff3
TWILIGHToff2
stx offTWILIGHT
lda [Debut]
sta Arrivee
sta ptrTWILIGHT
ldy #2
lda [Debut],y
sta Arrivee+2
sta ptrTWILIGHT+2
txy
lda [Arrivee],y
cmp #$0ef0
bne TWILIGHToff3
lda #$0e80
sta [Arrivee],y
inc fgTWILIGHT
rts
TWILIGHToff3
ldy #16
lda [Debut],y
tax
iny
iny
lda [Debut],y
sta Debut+2
txa
sta Debut
lda Debut
ora Debut+2
bne TWILIGHToff1
rts
*----------------------------
* TWILIGHTon
* Turns Twilight II on
*
* Entry:
* n/a
*
* Exit:
* n/a
*
*----------------------------
TWILIGHTon
lda fgTWILIGHT
bne TWILIGHTon1
rts
TWILIGHTon1
lda ptrTWILIGHT
sta Arrivee
lda ptrTWILIGHT+2
sta Arrivee+2
ldy offTWILIGHT
lda #$0ef0
sta [Arrivee],y
rts
*--- Twilight II
ptrTWILIGHT ds 4
fgTWILIGHT ds 2
offTWILIGHT ds 2
*----------------------------------------
* MEMOIRE
*----------------------------------------
@ -857,191 +765,6 @@ make64KB pha
* GFX
*----------------------------------------
*--------------------------------------
nextVBL lda #75
pha
]lp ldal $e0c02e
and #$7f
cmp 1,s
blt ]lp
cmp #100
bge ]lp
pla
waitVBL ldal RDVBLBAR-1
bpl waitVBL
rts
waitKEY ldal KBD-1
bpl waitKEY
stal KBDSTROBE-1
rts
*--- On attend un clic ou une combinaison de touches
waitEVENT inc VBLCounter0
PushWord #0
PushWord #%00000000_00001010
PushLong #taskREC
_GetNextEvent
pla
beq waitEVENT
lda taskREC
cmp #mouseDownEvt
beq we_1
rts
we_1 inc VBLCounter0
PushWord #0
PushWord #0
_StillDown
pla
bne we_1
lda #mouseDownEvt
rts
*--------------------------------------
fadeIN pha
sty Debut
stx Debut+2
_HideCursor
ldy #$2000
sty Arrivee
ldx ptrSCREEN+2
stx Arrivee+2
ldy #$7e00
lda #0
]lp sta [Arrivee],y
iny
iny
bpl ]lp
pla ; ne copie pas les données
cmp #FALSE ; si à FALSE
beq fadeIN1
ldy #$7dfe
]lp lda [Debut],y
sta [Arrivee],y
dey
dey
bpl ]lp
fadeIN1 lda Debut
clc
adc #$7e00
sta Debut
lda Debut+2
adc #0
sta Debut+2
lda Arrivee
clc
adc #$7e00
sta Arrivee
lda Arrivee+2
adc #0
sta Arrivee+2
ldx #$000f
fadeIN2 ldy #$01fe
fadeIN3 lda [Arrivee],y
and #$000f
sta temp
lda [Debut],y
and #$000f
cmp temp
beq fadeIN4
lda [Arrivee],y
clc
adc #$0001
sta [Arrivee],y
fadeIN4 lda [Arrivee],y
and #$00f0
sta temp
lda [Debut],y
and #$00f0
cmp temp
beq fadeIN5
lda [Arrivee],y
clc
adc #$0010
sta [Arrivee],y
fadeIN5 lda [Arrivee],y
and #$0f00
sta temp
lda [Debut],y
and #$0f00
cmp temp
beq fadeIN6
lda [Arrivee],y
clc
adc #$0100
sta [Arrivee],y
fadeIN6 dey
dey
bpl fadeIN3
jsr nextVBL
dex
bpl fadeIN2
_ShowCursor
rts
*---
fadeOUT lda #$9e00
sta Debut
lda ptrSCREEN+2
sta Debut+2
_HideCursor
ldx #$000f
fadeOUT1 ldy #$01fe
fadeOUT2 lda [Debut],y
and #$000f
beq fadeOUT3
lda [Debut],y
sec
sbc #$0001
sta [Debut],y
fadeOUT3 lda [Debut],y
and #$00f0
beq fadeOUT4
lda [Debut],y
sec
sbc #$0010
sta [Debut],y
fadeOUT4 lda [Debut],y
and #$0f00
beq fadeOUT5
lda [Debut],y
sec
sbc #$0100
sta [Debut],y
fadeOUT5 dey
dey
bpl fadeOUT2
jsr nextVBL
dex
bpl fadeOUT1
_ShowCursor
* jmp noircit_ecran
rts
*----------------------------
* unpackLZ4
* Unpacks a LZ4 file
@ -1057,150 +780,115 @@ fadeOUT5 dey
*
*----------------------------
unpackLZ4 sta LZ4_Limit+1
mx %00
* jsr suspendMUSIC
unpackLZ4 sta LZ4_Limit+1
sep #$20
*--- Source
lda ptrUNPACK+2 ; Source
sta LZ4_Literal_3+2
sta LZ4_ReadToken+3
sta LZ4_Match_1+3
sta LZ4_GetLength_1+3
lda ptrUNPACK+2
sta LZ4_Literal_3+2
sta LZ4_ReadToken+3
sta LZ4_Match_1+3
sta LZ4_GetLength_1+3
lda ptrIMAGE+2 ; Destination
sta LZ4_Literal_3+1
sta LZ4_Match_5+1
sta LZ4_Match_5+2
*--- Destination
lda ptrIMAGE+2
sta LZ4_Literal_3+1
sta LZ4_Match_5+1
sta LZ4_Match_5+2
rep #$20
* REP #$30
* STY LZ4_Limit+1
rep #$20
*--
ldy #0 ; Init Target unpacked Data offset
ldx #16 ; Offset after header
ldy #0 ; Init Target unpacked Data offset
ldx #16 ; Offset after header
LZ4_ReadToken LDAL $AA0000,X ; Read Token Byte
INX
STA LZ4_Match_2+1
LZ4_ReadToken
LDAL $AA0000,X ; Read Token Byte
INX
STA LZ4_Match_2+1
*----------------
LZ4_Literal
AND #$00F0 ; >>> Process Literal Bytes <<<
BEQ LZ4_Limit ; No Literal
CMP #$00F0
BNE LZ4_Literal_1
JSR LZ4_GetLengthLit ; Compute Literal Length with next bytes
BRA LZ4_Literal_2
LZ4_Literal_1
LSR ; Literal Length use the 4 bit
LSR
LSR
LSR
LZ4_Literal_2
DEC ; Copy A+1 Bytes
LZ4_Literal_3
MVN $AA,$BB ; Copy Literal Bytes from packed data buffer
PHK ; X and Y are auto incremented
PLB
*----------------
LZ4_Literal AND #$00F0 ; >>> Process Literal Bytes <<<
BEQ LZ4_Limit ; No Literal
CMP #$00F0
BNE LZ4_Literal_1
JSR LZ4_GetLengthLit ; Compute Literal Length with next bytes
BRA LZ4_Literal_2
LZ4_Literal_1 LSR ; Literal Length use the 4 bit
LSR
LSR
LSR
LZ4_Literal_2 DEC ; Copy A+1 Bytes
LZ4_Literal_3 MVN $AA,$BB ; Copy Literal Bytes from packed data buffer
PHK ; X and Y are auto incremented
PLB
LZ4_Limit CPX #$AAAA ; End Of Packed Data buffer ?
BEQ LZ4_End
*----------------
LZ4_Limit CPX #$AAAA ; End Of Packed Data buffer ?
BEQ LZ4_End
LZ4_Match TYA ; >>> Process Match Bytes <<<
SEC
LZ4_Match_1 SBCL $AA0000,X ; Match Offset
INX
INX
STA LZ4_Match_4+1
LZ4_Match_2 LDA #$0000 ; Current Token Value
AND #$000F
CMP #$000F
BNE LZ4_Match_3
JSR LZ4_GetLengthMat ; Compute Match Length with next bytes
LZ4_Match_3 CLC
ADC #$0003 ; Minimum Match Length is 4 (-1 for the MVN)
PHX
LZ4_Match_4 LDX #$AAAA ; Match Byte Offset
LZ4_Match_5 MVN $BB,$BB ; Copy Match Bytes from unpacked data buffer
PHK ; X and Y are auto incremented
PLB
PLX
BRA LZ4_ReadToken
*----------------
LZ4_Match TYA ; >>> Process Match Bytes <<<
SEC
LZ4_Match_1 SBCL $AA0000,X ; Match Offset
INX
INX
STA LZ4_Match_4+1
LZ4_Match_2 LDA #$0000 ; Current Token Value
AND #$000F
CMP #$000F
BNE LZ4_Match_3
JSR LZ4_GetLengthMat ; Compute Match Length with next bytes
LZ4_Match_3 CLC
ADC #$0003 ; Minimum Match Length is 4 (-1 for the MVN)
PHX
LZ4_Match_4 LDX #$AAAA ; Match Byte Offset
LZ4_Match_5 MVN $BB,$BB ; Copy Match Bytes from unpacked data buffer
PHK ; X and Y are auto incremented
PLB
PLX
BRA LZ4_ReadToken
*----------------
LZ4_GetLengthLit LDA #$000F ; Compute Variable Length (Literal or Match)
LZ4_GetLengthMat STA LZ4_GetLength_2+1
LZ4_GetLength_1 LDAL $AA0000,X ; Read Length Byte
INX
AND #$00FF
CMP #$00FF
BNE LZ4_GetLength_3
CLC
LZ4_GetLength_2 ADC #$000F
STA LZ4_GetLength_2+1
BRA LZ4_GetLength_1
LZ4_GetLength_3 ADC LZ4_GetLength_2+1
RTS
LZ4_GetLengthLit
LDA #$000F ; Compute Variable Length (Literal or Match)
LZ4_GetLengthMat
STA LZ4_GetLength_2+1
LZ4_GetLength_1
LDAL $AA0000,X ; Read Length Byte
INX
AND #$00FF
CMP #$00FF
BNE LZ4_GetLength_3
CLC
LZ4_GetLength_2
ADC #$000F
STA LZ4_GetLength_2+1
BRA LZ4_GetLength_1
LZ4_GetLength_3
ADC LZ4_GetLength_2+1
RTS
*----------------
LZ4_End sty lenDATA ; Y = length of unpacked data
* jmp resumeMUSIC
rts
*---
lenDATA ds 4
*-----------------------------------
* SAVE THE SHR SCREEN
*-----------------------------------
saveBACK _HideCursor
PushLong ptrSCREEN
PushLong ptrBACKGND
PushLong #32768
_BlockMove
_ShowCursor
rts
*-----------------------------------
* RESTORE THE SHR SCREEN
*-----------------------------------
loadBACK _HideCursor
PushLong ptrBACKGND
PushLong ptrSCREEN
PushLong #32768
_BlockMove
_ShowCursor
rts
*--- Genere un nombre aleatoire
Random
ldal $e0c02e
xba
clc
adc VBLCounter0
sta VBLCounter0
and #$ff
rts
VBLCounter0 ds 2
*----------------------------
* nowWAIT
* Wait A seconds
@ -1393,7 +1081,7 @@ taskTBL da doNOT ; 0 Null
da doNOT ; wInCalledSysEdit
da doNOT ; wInTrackZoom
da doNOT ; wInHitFrame
da doCONTROL ; wInControl
da doNOT ; wInControl
da doNOT ; wInControlMenu
ctrlTBL da doNOT ; 0
@ -1427,13 +1115,17 @@ loadPATH1
* GS/OS
*----------------------------------------
loadFILE sta proOPEN+4 ; filename
sty proREAD+4 ; RAM pointer low
stx proREAD+6 ; RAM pointer high
loadFILE sta proOPEN+4 ; filename
loadFILE1 stz proERR
sty proDEST ; where to put at the end
stx proDEST+2
jsl GSOS
ldy ptrUNPACK ; where to load
sty proREAD+4 ; the packed image
ldx ptrUNPACK+2
stx proREAD+6
loadFILE1 jsl GSOS
dw $2010
adrl proOPEN
bcs loadERR
@ -1455,14 +1147,21 @@ loadFILE1 stz proERR
loadFILE2 jsl GSOS
dw $2014
adrl proCLOSE
ldy proREAD+12 ; length read
ldx proREAD+14
lda proREAD+12 ; length read
jsr unpackLZ4
PushLong ptrIMAGE
PushLong proDEST
PushLong #32768
_BlockMove
clc
rts
loadERR sta proERR
jsr loadFILE2
loadERR jsl GSOS
dw $2014
adrl proCLOSE
ldy #0
tyx
sec
@ -1470,7 +1169,7 @@ loadERR sta proERR
*--- GS/OS data
proERR ds 2
proDEST ds 4 ; where to put the image at the end
*--- For the game party
@ -1549,9 +1248,9 @@ proVERS dw 1 ; pcount
* 1 2 3
* 23456789012345678901234567890123456789
pIMAGE strl '1/data/images/PIC1.PIC'
pFOND strl '1/data/images/PIC10.PIC'
pICONES strl '1/data/images/PIC11.PIC'
pIMAGE strl '1/data/images/PIC1.LZ4'
pFOND strl '1/data/images/PIC10.LZ4'
pICONES strl '1/data/images/PIC11.LZ4'
pTXT strl '1/data/textes/fr/TEXTES'
pBEAT strl '1/data/musiques/BEAT1.SPL'
pSND strl '1/data/musiques/SND10.SND'
@ -1564,6 +1263,7 @@ pGAME strl '0/ '
put data.s
put game.s
put midi.s
*---

523
labellezohra/sources/midi.s Normal file
View File

@ -0,0 +1,523 @@
*
* Midi routines
*
* (c) 2020, Brutal Deluxe Software
* Antoine Vignau & Olivier Zardini
*
dpSEQ = $f8
seqOFFSET = $006
seqTEMPO = $18A
seqTPB = $190
*--------------------------------------
mx %00
stopMIDI lda fgMIDI
bne stopMIDI99
_SoundShutDown
PushWord #8
_UnloadOneTool
_KillAllNotes ; Stop MidiSynth
_MSShutDown
PushWord #35 ; unload MidiSynth
_UnloadOneTool
stopMIDI99 rts
*--------------------------------------
initMIDI pha ; Check for AppleTalk
_GetIRQEnable
pla
and #$20
beq initSOUND
inc fgMIDI
rts
initSOUND PushWord #8 ; Sound Tool Set
PushWord #0
_LoadOneTool
bcc initSOUND1
inc fgMIDI
rts
initSOUND1 lda myDP
clc
adc #256
pha
_SoundStartUp
bcc initSOUND2
inc fgMIDI
rts
initSOUND2 PushWord #%1111_1111_1111_1111 ; on arr<72>te tout pour MIDI Synth
_FFStopSound
*---
PushWord #35 ; MidiSynth
PushWord #0
_LoadOneTool
bcc initMIDI2
inc fgMIDI
rts
initMIDI2 _MSStartUp ; Start MidiSynth
bcc musicMEMORY
inc fgMIDI
rts
*-------------------------------------- Now, get RAM
musicMEMORY
PushLong #0
PushLong #$10000
PushWord myID
PushWord #%11000000_00011100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
sta ptrSEQ
ldy #2
lda [3],y
sta ptrSEQ+2
pld
pla
pla
bcc musicMEMORY1
inc fgMIDI ; cannot assign memory for MIDI sequences
rts
musicMEMORY1
PushLong #0
PushLong #$10000
PushWord myID
PushWord #%11000000_00011100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
sta ptrBNK
ldy #2
lda [3],y
sta ptrBNK+2
pld
pla
pla
bcc musicMEMORY2
inc fgMIDI ; cannot assign memory for MIDI sequences
rts
musicMEMORY2
PushLong #0
PushLong #$10000
PushWord myID
PushWord #%11000000_00011100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
sta ptrWAV
ldy #2
lda [3],y
sta ptrWAV+2
pld
pla
pla
bcc loadWAV
inc fgMIDI ; cannot assign memory for MIDI sequences
rts
*-------------------------------------- Load WAV
loadWAV
lda #pWAV
sta midiOPEN+4
jsl GSOS
dw $2010
adrl midiOPEN
sta midiERR
lda midiOPEN+2
sta midiSETMARK+2
sta midiREAD+2
sta midiCLOSE+2
jsl GSOS
dw $2016
adrl midiSETMARK
lda ptrWAV
sta midiREAD+4
lda ptrWAV+2
sta midiREAD+6
stz midiREAD+8
lda #1
sta midiREAD+10
jsl GSOS
dw $2012
adrl midiREAD
sta midiERR
jsl GSOS
dw $2014
adrl midiCLOSE
lda midiERR ; check err
beq loadBNK
inc fgMIDI ; exit
rts
*-------------------------------------- Load BNK
loadBNK
lda #pBNK ; load the MIDI bank
ldx ptrBNK+2
ldy ptrBNK
jsr loadGSOS
lda midiERR ; check err
beq loadSEQUENCE
inc fgMIDI
rts
*-------------------------------------- Load Sequence
loadSEQUENCE
lda #pSEQ
ldx ptrSEQ+2
ldy ptrSEQ
jsr loadGSOS
lda midiERR ; check err
beq initMUSIC
inc fgMIDI
rts
*-------------------------------------- Play sequence
initMUSIC
lda ptrSEQ
sta dpSEQ
lda ptrSEQ+2
sta dpSEQ+2
_KillAllNotes
ldy #seqOFFSET
lda [dpSEQ],y
clc
adc dpSEQ
sta seqPlayRec
lda #0
adc dpSEQ+2
sta seqPlayRec+2
ldy #seqTEMPO
lda [dpSEQ],y
asl
sec
sbc #10
pha
_SetTempo
ldy #seqTPB
lda [dpSEQ],y
pha
_SetBeat
*--- Toutes les pistes sont actives
lda ptrBNK
clc
adc #$400
sta ptrINST
lda ptrBNK+2
adc #0
sta ptrINST+2
stz myINDEX
]lp PushWord myINDEX
PushWord #$8000
_SetPlayTrack
PushWord myINDEX
PushWord #-1
_TrackToChannel
PushWord myINDEX
PushWord #2
_SetTrackOut
PushLong ptrINST
PushWord myINDEX
_SetInstrument
lda ptrINST
clc
adc #$120
sta ptrINST
lda ptrINST+2
adc #0
sta ptrINST+2
inc myINDEX
lda myINDEX
cmp #16
bne ]lp
*---
sei
PushLong ptrWAV
PushWord #0 ; docStart
PushWord #0 ; byteCount (=64ko)
_WriteRamBlock
PushLong #callBackRec
_SetCallBack
PushWord #0
PushWord #0
PushLong seqClock
PushLong seqPlayRec
_Locate
PullLong seqPlayRec
stz fgMIDI ; we are good!!!
cli ; end of the long init!
rts
*--------------------------------------
doMUSIK lda fgMIDI ; can we play?
bne nozik99
lda fgMIDIPLAY
eor #1
sta fgMIDIPLAY
beq doSOUNDON
bne doSOUNDOFF
nozik99 rts
fgMIDIPLAY ds 2
*--------------------------------------
doSOUNDON lda fgMIDI ; can we play?
bne playMUSIC99
jsr initMUSIC
lda #$0100 ; no, let's start playing!
sta seqPlay
PushLong #seqPlayRec
_SeqPlayer
stz fgLOOP
playMUSIC99
rts
*--------------------------------------
doSOUNDOFF lda fgMIDI
bne stopMUSIC99
stz seqPlay
PushLong #seqPlayRec
_SeqPlayer
_KillAllNotes
stopMUSIC99 rts
*-------------------------------------- Suspend music
suspendMUSIC
lda fgMIDI
ora fgMIDIPLAY
bne suspendMUSIC9
_MSSuspend
suspendMUSIC9
rts
*-------------------------------------- Resume music
resumeMUSIC
lda fgMIDI
ora fgMIDIPLAY
bne resumeMUSIC9
_MSResume
resumeMUSIC9
rts
*--------------------------------------
checkREPLAY lda fgMIDI
bne checkREPLAY99
lda fgLOOP
beq checkREPLAY99
jsr doSOUNDON
checkREPLAY99
rts
*--------------------------------------
replayMUSIC
lda #-1
stal fgLOOP
rtl
fgLOOP dw -1
*-------------------------------------- Load a file
loadGSOS sta midiOPEN+4
sty midiREAD+4
stx midiREAD+6
stz midiERR
jsl GSOS
dw $2010
adrl midiOPEN
bcs loadGSOSERR
lda midiOPEN+2
sta midiREAD+2
sta midiCLOSE+2
lda midiEOF
sta midiREAD+8
lda midiEOF+2
sta midiREAD+10
jsl GSOS
dw $2012
adrl midiREAD
bcs loadGSOSERR
loadGSOS2 jsl GSOS
dw $2014
adrl midiCLOSE
rts
loadGSOSERR jsr loadGSOS2
inc fgMIDI
rts
*-------------------------------------- DATA
myINDEX ds 2
*--- GS/OS
midiERR ds 2
midiOPEN dw 12
ds 2
adrl pSEQ
ds 2
ds 2
ds 2
ds 2
ds 4
ds 2
ds 8
ds 8
ds 4
midiEOF ds 4
midiREAD dw 4
ds 2
ds 4
ds 4
ds 4
midiCLOSE dw 1
ds 2
midiSETMARK dw 3
ds 2
ds 2
adrl $900 ; +$900 pour WAV
*--- GS/OS Strings
pSEQ strl '1/data/musiques/sequence'
pWAV strl '1/data/musiques/piano.Wav'
pBNK strl '1/data/musiques/piano.Bnk'
*--- Memory
ptrSEQ ds 4
ptrWAV ds 4
ptrBNK ds 4
*--- Flags
fgMIDI dw 1 ; can play MIDI if 0
*--- Instruments
ptrINST ds 4
*--- MidiSynth
seqPlayRec
ds 4
ds 4
ds 4
ds 4
seqPlay ds 2 ; Play
seqClock ds 4
callBackRec adrl replayMUSIC ; When sequence ends !
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4
ds 4

View File

@ -0,0 +1,116 @@
*
* PIC10 devient PIC11
*
org $800
lst off
mx %11
*----------
clc
xce
rep #$30
sep #$20
ldx #0
]lp lda palette,x
stal $e19e00,x
inx
cpx #32
bcc ]lp
*---
ldx #0
]lp ldal $e12000,x
tay
lda tblCONVERT,y
stal $e12000,x
inx
cpx #$7d00
bcc ]lp
sec
xce
sep #$30
rts
ds \
*----------
tblCONVERT
hex 000104050607080A0C0D0E0B0C0D0E0F
hex 101114151617181A1C1D1E1B1C1D1E1F
hex 404144454647484A4C4D4E4B4C4D4E4F
hex 505154555657585A5C5D5E5B5C5D5E5F
hex 606164656667686A6C6D6E6B6C6D6E6F
hex 707174757677787A7C7D7E7B7C7D7E7F
hex 808184858687888A8C8D8E8B8C8D8E8F
hex A0A1A4A5A6A7A8AAACADAEABACADAEAF
hex C0C1C4C5C6C7C8CACCCDCECBCCCDCECF
hex D0D1D4D5D6D7D8DADCDDDEDBDCDDDEDF
hex E0E1E4E5E6E7E8EAECEDEEEBECEDEEEF
hex B0B1B4B5B6B7B8BABCBDBEBBBCBDBEBF
hex C0C1C4C5C6C7C8CACCCDCECBCCCDCECF
hex D0D1D4D5D6D7D8DADCDDDEDBDCDDDEDF
hex E0E1E4E5E6E7E8EAECEDEEEBECEDEEEF
hex F0F1F4F5F6F7F8FAFCFDFEFBFCFDFEFF
tblREF
hex 000102030405060708090A0B0C0D0E0F
hex 101112131415161718191A1B1C1D1E1F
hex 202122232425262728292A2B2C2D2E2F
hex 303132333435363738393A3B3C3D3E3F
hex 404142434445464748494A4B4C4D4E4F
hex 505152535455565758595A5B5C5D5E5F
hex 606162636465666768696A6B6C6D6E6F
hex 707172737475767778797A7B7C7D7E7F
hex 808182838485868788898A8B8C8D8E8F
hex 909192939495969798999A9B9C9D9E9F
hex A0A1A2A3A4A5A6A7A8A9AAABACADAEAF
hex B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF
hex C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF
hex D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF
hex E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF
hex F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
*---
palette hex 0200,4600,6000,B000,6902,0006,2406,2009
hex 4609,9909,420B,BB0B,620D,9B0D,940F,FF0F
*---
*
* PIC10 - LE FOND
* IL FAUT ADAPTER LA PALETTE A CELLE DE PIC11
*
* 0 1 2 3 4 5 6 7 8 9 A B C D E F
* 00 00 46 00 69 02 00 06 24 06 20 09 46 09 42 0B 62 0D 9B 0D 94 0F 00 00 00 00 00 00 00 00 00 00
*
*-------------------------------------------
*
* PIC11 - LE FOND AVEC LES ICONES
* IL FAUT UTILISER CETTE PALETTE
*
* 0 1 2 3 4 5 6 7 8 9 A B C D E F
* 02 00 46 00 60 00 B0 00 69 02 00 06 24 06 20 09 46 09 99 09 42 0B BB 0B 62 0D 9B 0D 94 0F FF 0F
*
* PIC11 PIC10
* 0 0 0 = 0
* 1 1 1 = 1
* 2 4 2 = 4
* 3 5 3 = 5
* 4 6 4 = 6
* 5 7 5 = 7
* 6 8 6 = 8
* 7 A 7 = A
* 8 C 8 = C
* 9 D 9 = D
* A E A = E
* B B = B
* C C = C
* D D = D
* E E = E
* F F = F

Binary file not shown.

View File

@ -1,114 +0,0 @@
------+------------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
Line | # File Line | Line Type | MX | Reloc | Size | Address Object Code | Source Code
------+------------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
1 | 1 playasound.s 1 | Comment | 11 | | 0 | 00/8000 | *
2 | 1 playasound.s 2 | Comment | 11 | | 0 | 00/8000 | * Essai sonore
3 | 1 playasound.s 3 | Comment | 11 | | 0 | 00/8000 | *
4 | 1 playasound.s 4 | Empty | 11 | | 0 | 00/8000 |
5 | 1 playasound.s 5 | Directive | 11 | | 0 | 00/8000 | org $1000
6 | 1 playasound.s 6 | Directive | 11 | | 0 | 00/1000 | lst off
7 | 1 playasound.s 7 | Empty | 11 | | 0 | 00/1000 |
8 | 1 playasound.s 8 | Code | 11 | | 1 | 00/1000 : 18 | clc
9 | 1 playasound.s 9 | Code | 11 | | 1 | 00/1001 : FB | xce
10 | 1 playasound.s 10 | Code | 00 | | 2 | 00/1002 : C2 30 | rep #$30
11 | 1 playasound.s 11 | Empty | 00 | | 0 | 00/1004 |
12 | 1 playasound.s 12 | Code | 00 | | 1 | 00/1004 : 78 | sei
13 | 1 playasound.s 13 | Code | 10 | | 2 | 00/1005 : E2 20 | sep #$20
14 | 1 playasound.s 14 | Empty | 10 | | 0 | 00/1007 |
15 | 1 playasound.s 15 | Code | 10 | | 4 | 00/1007 : AF CA 00 E1 | ldal $e100ca
16 | 1 playasound.s 16 | Code | 10 | | 2 | 00/100B : 09 60 | ora #%0110_0000
17 | 1 playasound.s 17 | Code | 10 | | 4 | 00/100D : 8F 3C C0 00 | stal $c03c
18 | 1 playasound.s 18 | Empty | 10 | | 0 | 00/1011 |
19 | 1 playasound.s 19 | Code | 10 | | 2 | 00/1011 : A9 00 | lda #0
20 | 1 playasound.s 20 | Code | 10 | | 4 | 00/1013 : 8F 3E C0 00 | stal $c03e
21 | 1 playasound.s 21 | Code | 10 | | 4 | 00/1017 : 8F 3F C0 00 | stal $c03f
22 | 1 playasound.s 22 | Empty | 10 | | 0 | 00/101B |
23 | 1 playasound.s 23 | Code | 10 | | 3 | 00/101B : A0 00 00 | ldy #0
24 | 1 playasound.s 24 | Code | 10 | | 3 | 00/101E : B9 00 20 | ozunid_1 lda $2000,y
25 | 1 playasound.s 25 | Code | 10 | | 4 | 00/1021 : 8F 3D C0 00 | stal $c03d
26 | 1 playasound.s 26 | Code | 10 | | 1 | 00/1025 : C8 | iny
27 | 1 playasound.s 27 | Code | 10 | | 3 | 00/1026 : C0 00 40 | cpy #$4000
28 | 1 playasound.s 28 | Code | 10 | | 2 | 00/1029 : 90 F3 | bcc ozunid_1
29 | 1 playasound.s 29 | Empty | 10 | | 0 | 00/102B |
30 | 1 playasound.s 30 | Comment | 10 | | 0 | 00/102B | * 2. on lance le rythme en mode loop sur deux oscillos
31 | 1 playasound.s 31 | Empty | 10 | | 0 | 00/102B |
32 | 1 playasound.s 32 | Code | 10 | | 3 | 00/102B : A0 00 00 | ldy #0 ; oscillos 0 & 1
33 | 1 playasound.s 33 | Empty | 10 | | 0 | 00/102E |
34 | 1 playasound.s 34 | Code | 10 | | 4 | 00/102E : AF CA 00 E1 | ldal $e100ca ; volume
35 | 1 playasound.s 35 | Code | 10 | | 2 | 00/1032 : 29 0F | and #$0f
36 | 1 playasound.s 36 | Code | 10 | | 4 | 00/1034 : 8F 3C C0 00 | stal $c03c
37 | 1 playasound.s 37 | Empty | 10 | | 0 | 00/1038 |
38 | 1 playasound.s 38 | Code | 10 | | 1 | 00/1038 : 98 | tya ; frŽquence basse
39 | 1 playasound.s 39 | Code | 10 | | 4 | 00/1039 : 8F 3E 00 00 | stal $3e
40 | 1 playasound.s 40 | Code | 10 | | 2 | 00/103D : A9 D9 | lda #217
41 | 1 playasound.s 41 | Code | 10 | | 4 | 00/103F : 8F 3D C0 00 | stal $c03d
42 | 1 playasound.s 42 | Code | 10 | | 1 | 00/1043 : 98 | tya
43 | 1 playasound.s 43 | Code | 10 | | 2 | 00/1044 : 09 01 | ora #$01
44 | 1 playasound.s 44 | Code | 10 | | 4 | 00/1046 : 8F 3E C0 00 | stal $c03e
45 | 1 playasound.s 45 | Code | 10 | | 2 | 00/104A : A9 D9 | lda #217
46 | 1 playasound.s 46 | Code | 10 | | 4 | 00/104C : 8F 3D C0 00 | stal $c03d
47 | 1 playasound.s 47 | Empty | 10 | | 0 | 00/1050 |
48 | 1 playasound.s 48 | Code | 10 | | 1 | 00/1050 : 98 | tya ; frŽquence haute
49 | 1 playasound.s 49 | Code | 10 | | 2 | 00/1051 : 09 20 | ora #$20
50 | 1 playasound.s 50 | Code | 10 | | 4 | 00/1053 : 8F 3E C0 00 | stal $c03e
51 | 1 playasound.s 51 | Code | 10 | | 2 | 00/1057 : A9 00 | lda #0
52 | 1 playasound.s 52 | Code | 10 | | 4 | 00/1059 : 8F 3D C0 00 | stal $c03d
53 | 1 playasound.s 53 | Code | 10 | | 1 | 00/105D : 98 | tya
54 | 1 playasound.s 54 | Code | 10 | | 2 | 00/105E : 09 21 | ora #$21
55 | 1 playasound.s 55 | Code | 10 | | 4 | 00/1060 : 8F 3E C0 00 | stal $c03e
56 | 1 playasound.s 56 | Code | 10 | | 2 | 00/1064 : A9 00 | lda #0
57 | 1 playasound.s 57 | Code | 10 | | 4 | 00/1066 : 8F 3D C0 00 | stal $c03d
58 | 1 playasound.s 58 | Empty | 10 | | 0 | 00/106A |
59 | 1 playasound.s 59 | Code | 10 | | 1 | 00/106A : 98 | tya ; volume
60 | 1 playasound.s 60 | Code | 10 | | 2 | 00/106B : 09 40 | ora #$40
61 | 1 playasound.s 61 | Code | 10 | | 4 | 00/106D : 8F 3E C0 00 | stal $c03e
62 | 1 playasound.s 62 | Code | 10 | | 2 | 00/1071 : A9 FF | lda #$ff
63 | 1 playasound.s 63 | Code | 10 | | 4 | 00/1073 : 8F 3D C0 00 | stal $c03d
64 | 1 playasound.s 64 | Code | 10 | | 1 | 00/1077 : 98 | tya
65 | 1 playasound.s 65 | Code | 10 | | 2 | 00/1078 : 09 41 | ora #$41
66 | 1 playasound.s 66 | Code | 10 | | 4 | 00/107A : 8F 3E C0 00 | stal $c03e
67 | 1 playasound.s 67 | Code | 10 | | 2 | 00/107E : A9 FF | lda #$ff
68 | 1 playasound.s 68 | Code | 10 | | 4 | 00/1080 : 8F 3D C0 00 | stal $c03d
69 | 1 playasound.s 69 | Empty | 10 | | 0 | 00/1084 |
70 | 1 playasound.s 70 | Code | 10 | | 1 | 00/1084 : 98 | tya ; address pointer
71 | 1 playasound.s 71 | Code | 10 | | 2 | 00/1085 : 09 80 | ora #$80
72 | 1 playasound.s 72 | Code | 10 | | 4 | 00/1087 : 8F 3E C0 00 | stal $c03e
73 | 1 playasound.s 73 | Code | 10 | | 2 | 00/108B : A9 00 | lda #0
74 | 1 playasound.s 74 | Code | 10 | | 4 | 00/108D : 8F 3D C0 00 | stal $c03d
75 | 1 playasound.s 75 | Code | 10 | | 1 | 00/1091 : 98 | tya
76 | 1 playasound.s 76 | Code | 10 | | 2 | 00/1092 : 09 81 | ora #$81
77 | 1 playasound.s 77 | Code | 10 | | 4 | 00/1094 : 8F 3E C0 00 | stal $c03e
78 | 1 playasound.s 78 | Code | 10 | | 2 | 00/1098 : A9 00 | lda #0
79 | 1 playasound.s 79 | Code | 10 | | 4 | 00/109A : 8F 3D C0 00 | stal $c03d
80 | 1 playasound.s 80 | Empty | 10 | | 0 | 00/109E |
81 | 1 playasound.s 81 | Code | 10 | | 1 | 00/109E : 98 | tya ; waveform table size
82 | 1 playasound.s 82 | Code | 10 | | 2 | 00/109F : 09 C0 | ora #$c0
83 | 1 playasound.s 83 | Code | 10 | | 4 | 00/10A1 : 8F 3E C0 00 | stal $c03e
84 | 1 playasound.s 84 | Code | 10 | | 2 | 00/10A5 : A9 3F | lda #%00111111
85 | 1 playasound.s 85 | Code | 10 | | 4 | 00/10A7 : 8F 3D C0 00 | stal $c03d
86 | 1 playasound.s 86 | Code | 10 | | 1 | 00/10AB : 98 | tya
87 | 1 playasound.s 87 | Code | 10 | | 2 | 00/10AC : 09 C1 | ora #$c1
88 | 1 playasound.s 88 | Code | 10 | | 4 | 00/10AE : 8F 3E C0 00 | stal $c03e
89 | 1 playasound.s 89 | Code | 10 | | 2 | 00/10B2 : A9 3F | lda #%00111111
90 | 1 playasound.s 90 | Code | 10 | | 4 | 00/10B4 : 8F 3D C0 00 | stal $c03d
91 | 1 playasound.s 91 | Empty | 10 | | 0 | 00/10B8 |
92 | 1 playasound.s 92 | Code | 10 | | 1 | 00/10B8 : 98 | tya ; control register
93 | 1 playasound.s 93 | Code | 10 | | 2 | 00/10B9 : 09 A0 | ora #$a0
94 | 1 playasound.s 94 | Code | 10 | | 4 | 00/10BB : 8F 3E C0 00 | stal $c03e
95 | 1 playasound.s 95 | Code | 10 | | 2 | 00/10BF : A9 03 | lda #%0000_0011
96 | 1 playasound.s 96 | Code | 10 | | 4 | 00/10C1 : 8F 3D C0 00 | stal $c03d
97 | 1 playasound.s 97 | Code | 10 | | 1 | 00/10C5 : 98 | tya
98 | 1 playasound.s 98 | Code | 10 | | 2 | 00/10C6 : 09 A1 | ora #$a1
99 | 1 playasound.s 99 | Code | 10 | | 4 | 00/10C8 : 8F 3E C0 00 | stal $c03e
100 | 1 playasound.s 100 | Code | 10 | | 2 | 00/10CC : A9 13 | lda #%0001_0011
101 | 1 playasound.s 101 | Code | 10 | | 4 | 00/10CE : 8F 3D C0 00 | stal $c03d
102 | 1 playasound.s 102 | Empty | 10 | | 0 | 00/10D2 |
103 | 1 playasound.s 103 | Comment | 10 | | 0 | 00/10D2 | * 3. on sort et <20>a joue
104 | 1 playasound.s 104 | Empty | 10 | | 0 | 00/10D2 |
105 | 1 playasound.s 105 | Code | 10 | | 1 | 00/10D2 : 38 | sec
106 | 1 playasound.s 106 | Code | 11 | | 1 | 00/10D3 : FB | xce
107 | 1 playasound.s 107 | Code | 11 | | 2 | 00/10D4 : E2 30 | sep #$30
108 | 1 playasound.s 108 | Code | 11 | | 1 | 00/10D6 : 58 | cli
109 | 1 playasound.s 109 | Code | 11 | | 1 | 00/10D7 : 60 | rts
110 | 1 playasound.s 110 | Empty | 11 | | 0 | 00/10D8 |
------+------------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------

File diff suppressed because one or more lines are too long

49
labellezohra/textes/lisezmoi.txt Normal file → Executable file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,48 @@
LA BELLE ZOHRA
Le logiciel est conŽu pour
tourner en basse rŽsolution. Si votre
machine en est ŽquipŽe, il est
conseillŽ d'activer le blitter.
Le bon fonctionnement du
programme n'est pas garanti si d'autres
logiciels rŽsidents (accessoires de
bureau par exemple) sont prŽsents en
mŽmoire, surtout sur les machines de
512K.
Une sŽquence musicale ouvre le
programme. Essayez les touches de
fonction de F1 ˆ F9. La touche F10
permet de passer au couplet suivant et
Esc de court-circuiter cette partie.
Sur l'image de la table, cliquez
avec le bouton de gauche de la souris
sur un objet. Une ou plusieurs icones
apparaissent en bas de l'Žcran. Vous
pouvez revenir en arri<72>re en appuyant
sur le bouton droit de la souris.
Il est Žgalement possible
d'abandonner sa lecture en appuyant sur
Esc. On revient alors sur le bureau. Au
prochain lancement du programme, la
lecture sera reprise ˆ l'endroit o<>
vous l'aviez laissŽe. Il est d'ailleurs
conseillŽ de lire chaque jour quelques
paragraphes plut™t que "d'avaler" tout
le logiciel d'une traite.
Pour faire dŽfiler un texte vers
le haut ou vers le bas, et plus ou
moins rapidement, cliquez sur l'endroit
correspondant de la fen<65>tre. Quand vous
avez fini de le lire, appuyez sur le
bouton droit de la souris pour passer ˆ
la suite.
LES LOGICIELS D'EN FACE
147, rue La Fayette
75010 PARIS