ASM Mimas
23 posts
• Page 2 of 3 • 1, 2, 3
Re: ASM Mimas
Non non, un hook n'a aucune raison d'appeler un autre hook. Ce que tu devrais faire si tu es prêt à activer deux hooks, c'est de créer :
- GetCSCHook : quand l'utilisateur appuie sur Enter quand on est dans le menu d'édition des programmes, on récupère le premier caractère du programme et si c'est "!", alors on met 1 dans un flag. Si ce n'est pas "!", alors on met 0 dans ce flag.
- TokenHook : Si ce flag est à 1, alors on exécute le code qui remplace les tokens. Si ce flag est à 0, alors on quitte ce hook.
Tout simplement ! Les deux hooks interagissent par l'intermédiaire des flags. Tu as des flags qui ne sont pas utilisés par l'OS, sers-en toi.
- GetCSCHook : quand l'utilisateur appuie sur Enter quand on est dans le menu d'édition des programmes, on récupère le premier caractère du programme et si c'est "!", alors on met 1 dans un flag. Si ce n'est pas "!", alors on met 0 dans ce flag.
- TokenHook : Si ce flag est à 1, alors on exécute le code qui remplace les tokens. Si ce flag est à 0, alors on quitte ce hook.
Tout simplement ! Les deux hooks interagissent par l'intermédiaire des flags. Tu as des flags qui ne sont pas utilisés par l'OS, sers-en toi.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.
Unis par la flèche sacrée de cupidon

Unis par la flèche sacrée de cupidon


-
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 1172
- Images: 4
- Joined: 08 Dec 2014, 17:38
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ensimag
- GitHub: MathisLav
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 3446
- Images: 75
- Joined: 04 Jul 2014, 14:40
- Location: Clermont-Ferrand 63
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: ENS Rennes
- GitHub: Ti64CLi
Re: ASM Mimas
Ce flag ne gênera pas :
- Il est utilisé en tant que hook, c'est-à-dire en plein milieu de l'OS. L'OS ne touche jamais à ces flag là (ils s'appellent asm_flag dans ton include).
- Même si un programme assembleur l'utilise, ce flag est automatquement mis à la valeur qui te correspond dans le getCSCHook
- Il est utilisé en tant que hook, c'est-à-dire en plein milieu de l'OS. L'OS ne touche jamais à ces flag là (ils s'appellent asm_flag dans ton include).
- Même si un programme assembleur l'utilise, ce flag est automatquement mis à la valeur qui te correspond dans le getCSCHook
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.
Unis par la flèche sacrée de cupidon

Unis par la flèche sacrée de cupidon


-
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 1172
- Images: 4
- Joined: 08 Dec 2014, 17:38
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ensimag
- GitHub: MathisLav
Re: ASM Mimas
Ok, merci je teste
Mais donc il faut que je créer deux programmes? Il n'est pas possible de créer deux hooks dans un même programme?
Mais donc il faut que je créer deux programmes? Il n'est pas possible de créer deux hooks dans un même programme?
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 3446
- Images: 75
- Joined: 04 Jul 2014, 14:40
- Location: Clermont-Ferrand 63
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: ENS Rennes
- GitHub: Ti64CLi
Re: ASM Mimas
Si totalement, tu actives le premier avec le code qui correspond puis le deuxième avec le code qui correspond, tu peux même mettre les deux hooks à la suite dans $8000.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.
Unis par la flèche sacrée de cupidon

Unis par la flèche sacrée de cupidon


-
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 1172
- Images: 4
- Joined: 08 Dec 2014, 17:38
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ensimag
- GitHub: MathisLav
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 3446
- Images: 75
- Joined: 04 Jul 2014, 14:40
- Location: Clermont-Ferrand 63
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: ENS Rennes
- GitHub: Ti64CLi
Re: ASM Mimas
Bon alors le code ne marche pas. Il désactive les apps, nécessitant d'envoyer une liste ou n'importe quoi d'autres pour les activées, et lorsque j'appuie sur un menu, par exemple le menu mémoire avec 2nd puis +, et bien cela m'affiche le menu PRGM sous forme d'affichage de texte, je ne peux pas changer d'options en haut comme EDIT ou NEW car cela n'est même pas afficher, et je ne peux pas choisir de programme, et ne peux donc désactiver ce programme 
Voilà le code de MenuHook:
Le code de l'include MENUCURR:
Et enfin, le code du hook Token:
Voilà, si quelqu'un pouvait m'aider à résoudre ce problème, ce ne serait pas de refus
Merci d'avance

Voilà le code de MenuHook:
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
;#SECTION "MAIN", CODE
org userMem - 2
db 0BBh, 6Dh
Start:
ld hl, PrgmEditHook
ld de, 8265h
ld bc, EndHook - PrgmEditHook + 1
ldir
ld hl, 8265h
ld a, 1
B_CALL 5083h
ret
PrgmEditHook:
db 83h
cp 04h
ret nz
ld a, (MenuCurrent)
cp mProgramHome
ret nz
ld a, (MenuCurrent + 1)
cp mPrgm_Edit
ret nz
ld hl, -9
add hl, de
B_CALL _Mov9ToOP1
ld a, ProgObj
ld (OP1), a
B_CALL _ChkFindSym
inc de
inc de
ld hl, tFact
or a
sbc hl, de
ret nz
set 0, (iy + 22h)
ret
EndHook:
;#IMPORT "TOKENS"
;#IMPORT "MENUCURR"
Le code de l'include MENUCURR:
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
;#SECTION "MAIN", CODE
mConfirmation equ 01h
mApps equ 02h
mProgramHome equ 03h
mPrgm_Run equ 00h
mPrgm_Edit equ 01h
mPrgm_New equ 02h
mZoom equ 04h
mZoom_Zoom equ 00h
mZoom_Memory equ 01h
mDraw equ 05h
mDraw_Draw equ 00h
mDraw_Points equ 01h
mDraw_Store equ 02h
mStatPlots equ 06h
mStat equ 07h
mStat_Edit equ 00h
mStat_Calc equ 01h
mStat_Tests equ 02h
mMath equ 08h
mMath_Math equ 00h
mMath_Number equ 01h
mMath_Complex equ 02h
mMath_Prob equ 03h
mTest equ 09h
mTest_Test equ 00h
mTest_Logic equ 01h
mVars equ 0Bh
mVars_Vars equ 00h
mVars_YVars equ 01h
mMemory equ 0Ch
mMatrix equ 0Dh
mMatrix_Name equ 00h
mMatrix_Math equ 01h
mMatrix_Edit equ 02h
mDistr equ 0Eh
mDistr_Distr equ 00h
mDistr_Draw equ 01h
mAngle equ 0Fh
mList equ 10h
mList_Names equ 00h
mList_Ops equ 01h
mList_Math equ 02h
mCalculate equ 11h
mVarsWin equ 14h
mVarsWin_XY equ 00h
mVarsWin_TTh equ 01h
mVarsWin_UVW equ 02h
mVarsZoom equ 15h
mVarsZoom_ZXY equ 00h
mVarsZoom_ZT equ 01h
mVarsZoom_UVW equ 02h
mVarsGDB equ 16h
mVarsPics equ 17h
mVarsStrings equ 18h
mVarsStat equ 19h
mVarsStat_XY equ 00h
mVarsStat_Sigma equ 01h
mVarsStat_EQ equ 02h
mVarsStat_Test equ 03h
mVarsStat_Pts equ 04h
mVarsTable equ 1Ah
mVarsYEqu equ 1Bh
mVarsParametric equ 1Ch
mVarsPolar equ 1Dh
mVarsFnOnOff equ 1Eh
mMemReset equ 1Fh
mMemReset_RAM equ 00h
mMemReset_ROM equ 01h
mMemReset_All equ 02h
mMemMgmtDel equ 20h
mMemResetDefaults equ 21h
mMemResetRAMAll equ 23h
mMemResetROMVars equ 24h
mMemResetROMApps equ 25h
mMemResetROMAll equ 26h
mMemResetAll equ 27h
mGroup equ 28h
mGroup_New equ 00h
mGroup_Ungroup equ 01h
mGroupVars equ 29h
mProgramEdit equ 2Ah
mPrgmEd_Ctrl equ 00h
mPrgmEd_IO equ 01h
mPrgmEd_Exec equ 02h
mPrgmZoom equ 2Bh
mPrgmZoom_Zoom equ 00h
mPrgmZoom_Mem equ 01h
mPrgmDraw equ 2Ch
mPrgmDraw_Draw equ 00h
mPrgmDraw_Pt equ 01h
mPrgmDraw_Store equ 02h
mPrgmStatPlot equ 2Dh
mPrgmSP_Plots equ 00h
mPrgmSP_Type equ 01h
mPrgmSP_Mark equ 02h
mPrgmStat equ 2Eh
mPrgmStat_Edit equ 00h
mPrgmStat_Calc equ 01h
mPrgmStat_Tests equ 02h
mPrgmMath equ 2Fh
mPrgmMath_Math equ 00h
mPrgmMath_Num equ 01h
mPrgmMath_Cplx equ 02h
mPrgmMath_Prob equ 03h
mLink equ 30h
mLink_Send equ 00h
mLink_Recieve equ 01h
mLinkTrasmit equ 31h
mLinkXmit_Xmit equ 01h
mGarbageCollect equ 3Fh
mSelectGroupVars equ 40h
mSelGrpVars_Sel equ 00h
mSelGrpVars_Grp equ 01h
mDuplicateName equ 42h
mCatalog equ 45h
mFinance equ 22h
mFinance_Calc equ 00h
mFinance_Vars equ 01h
Et enfin, le code du hook Token:
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
;#SECTION "MAIN", CODE
org userMem - 2
db 0BBh, 6Dh
Start:
ld hl, TokenHook
ld de, 8000h
ld bc, FinHook - TokenHook + 1
ldir
ld hl, 8000h
ld a, 1
B_CALL 4F99h
ret
TokenHook:
db 83h
push af
bit 0, (iy + 22h)
ret z
pop af
push hl
ld hl, 24h
or a
sbc hl, de
pop hl
jr z, TokRound
push hl
ld hl, 4Ah
or a
sbc hl, de
pop hl
jr z, TokDeriv
push hl
ld hl, 06h
or a
sbc hl, de
pop hl
jr z, TokFrac
push hl
ld hl, 04h
or a
sbc hl, de
pop hl
jr z, TokDec
push hl
ld hl, 48h
or a
sbc hl, de
pop hl
jr z, TokIntegral
push hl
ld hl, 03BAh
or a
sbc hl, de
pop hl
jr z, TokLcm
push hl
ld hl, 03BCh
or a
sbc hl, de
pop hl
jr z, TokGcd
push hl
ld hl, 0450h
or a
sbc hl, de
pop hl
jr z, TokGet
push hl
ld hl, 05FAh
or a
sbc hl, bc
pop hl
ret nz
ld hl, 8000h + (NameRemainToken - TokenHook - 1)
ret
TokGet:
ld hl, 8000h + (NameGetToken - TokenHook - 1)
ret
TokDec:
ld hl, 8000h + (NameDecToken - TokenHook - 1)
ret
TokFrac:
ld hl, 8000h + (NameFracToken - TokenHook - 1)
ret
TokGcd:
ld hl, 8000h + (NameGcdToken - TokenHook - 1)
ret
TokIntegral:
ld hl, 8000h + (NameIntegrToken - TokenHook - 1)
ret
TokLcm:
ld hl, 8000h + (NameLcmToken - TokenHook - 1)
ret
TokDeriv:
ld hl, 8000h + (NameDerivToken - TokenHook - 1)
ret
TokRound:
ld hl, 8000h + (NameRoundToken - TokenHook - 1)
ret
NameGetToken:
db 9
db "#include "
NameDerivToken:
db 11
db "d\x96rivation("
NameRoundToken:
db 7
db "arondi("
NameDecToken:
db 6
db "\x05ToDec"
NameFracToken:
db 7
db "\x05ToFrac"
NameGcdToken:
db 5
db "pgcd("
NameIntegrToken:
db 9
db "integral("
NameLcmToken:
db 5
db "ppcm("
NameRemainToken:
db 6
db "reste("
FinHook:
;#IMPORT "TOKENS"
;#IMPORT "HooksEqu"
Voilà, si quelqu'un pouvait m'aider à résoudre ce problème, ce ne serait pas de refus

Merci d'avance
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 3446
- Images: 75
- Joined: 04 Jul 2014, 14:40
- Location: Clermont-Ferrand 63
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: ENS Rennes
- GitHub: Ti64CLi
Re: ASM Mimas
Voilà le nouveau code du MenuHook:
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
;#SECTION "MAIN", CODE
org userMem - 2
db 0BBh, 6Dh
Start:
ld hl, PrgmEditHook
ld de, 8265h
ld bc, EndHook - PrgmEditHook + 1
ldir
ld hl, 8265h
ld a, 1
B_CALL 5083h
ret
PrgmEditHook:
db 83h
cp 04h
ret nz
set 0, (iy + 22h)
ld a, (MenuCurrent)
cp mProgramHome
ret nz
ld a, (MenuCurrent + 1)
cp mPrgm_Edit
ret nz
ld hl, -9
add hl, de
B_CALL _Mov9ToOP1
ld a, ProgObj
ld (OP1), a
B_CALL _ChkFindSym
inc de
inc de
ld hl, tFact
or a
sbc hl, de
call nz,SetFlag0
ret
SetFlag0:
res 0, (iy + 22h)
EndHook:
;#IMPORT "TOKENS"
;#IMPORT "MENUCURR"
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 3446
- Images: 75
- Joined: 04 Jul 2014, 14:40
- Location: Clermont-Ferrand 63
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: ENS Rennes
- GitHub: Ti64CLi
Re: ASM Mimas
Bon alors avec les modifs, cela refait exactement la même chose que avant:
Voilà le nouveau code:
MenuHook:
Le fichier TOKEN:
Et le fichier MENUCURR est le même qu'avant
Voilà le nouveau code:
MenuHook:
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
;#SECTION "MAIN", CODE
org userMem - 2
db 0BBh, 6Dh
Start:
ld hl, PrgmEditHook
ld de, 8265h
ld bc, EndHook - PrgmEditHook + 1
ldir
ld hl, 8265h
ld a, 1
B_CALL 5083h
ret
PrgmEditHook:
db 83h
cp 04h
ret nz
ld a, (MenuCurrent)
cp mProgramHome
ret nz
ld a, (MenuCurrent + 1)
cp mPrgm_Edit
ret nz
ld hl, -9
add hl, de
B_CALL _Mov9ToOP1
ld a, ProgObj
ld (OP1), a
B_CALL _ChkFindSym
inc de
inc de
ld hl, tFact
or a
sbc hl, de
jr nz, SetFlag0
set 0, (iy + 21h)
ret
SetFlag0:
res 0, (iy + 21h)
ret
EndHook:
;#IMPORT "TOKENS"
;#IMPORT "MENUCURR"
Le fichier TOKEN:
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
;#SECTION "MAIN", CODE
org userMem - 2
db 0BBh, 6Dh
Start:
ld hl, TokenHook
ld de, 8000h
ld bc, FinHook - TokenHook + 1
ldir
ld hl, 8000h
ld a, 1
B_CALL 4F99h
ret
TokenHook:
db 83h
push af
bit 0, (iy + 21h)
ret z
pop af
push hl
ld hl, 24h
or a
sbc hl, de
pop hl
jr z, TokRound
push hl
ld hl, 4Ah
or a
sbc hl, de
pop hl
jr z, TokDeriv
push hl
ld hl, 06h
or a
sbc hl, de
pop hl
jr z, TokFrac
push hl
ld hl, 04h
or a
sbc hl, de
pop hl
jr z, TokDec
push hl
ld hl, 48h
or a
sbc hl, de
pop hl
jr z, TokIntegral
push hl
ld hl, 03BAh
or a
sbc hl, de
pop hl
jr z, TokLcm
push hl
ld hl, 03BCh
or a
sbc hl, de
pop hl
jr z, TokGcd
push hl
ld hl, 0450h
or a
sbc hl, de
pop hl
jr z, TokGet
push hl
ld hl, 05FAh
or a
sbc hl, bc
pop hl
ret nz
ld hl, 8000h + (NameRemainToken - TokenHook - 1)
ret
TokGet:
ld hl, 8000h + (NameGetToken - TokenHook - 1)
ret
TokDec:
ld hl, 8000h + (NameDecToken - TokenHook - 1)
ret
TokFrac:
ld hl, 8000h + (NameFracToken - TokenHook - 1)
ret
TokGcd:
ld hl, 8000h + (NameGcdToken - TokenHook - 1)
ret
TokIntegral:
ld hl, 8000h + (NameIntegrToken - TokenHook - 1)
ret
TokLcm:
ld hl, 8000h + (NameLcmToken - TokenHook - 1)
ret
TokDeriv:
ld hl, 8000h + (NameDerivToken - TokenHook - 1)
ret
TokRound:
ld hl, 8000h + (NameRoundToken - TokenHook - 1)
ret
NameGetToken:
db 9
db "#include "
NameDerivToken:
db 11
db "d\x96rivation("
NameRoundToken:
db 7
db "arondi("
NameDecToken:
db 6
db "\x05ToDec"
NameFracToken:
db 7
db "\x05ToFrac"
NameGcdToken:
db 5
db "pgcd("
NameIntegrToken:
db 9
db "integral("
NameLcmToken:
db 5
db "ppcm("
NameRemainToken:
db 6
db "reste("
FinHook:
;#IMPORT "TOKENS"
;#IMPORT "HooksEqu"
Et le fichier MENUCURR est le même qu'avant
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 3446
- Images: 75
- Joined: 04 Jul 2014, 14:40
- Location: Clermont-Ferrand 63
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: ENS Rennes
- GitHub: Ti64CLi
Re: ASM Mimas
Encore une fois, mon grand conseil sera de débugger à grands coups de dispHL et de désactiver des trucs au hasard pour voir d'où ça vient. Par exemple, désactive un hook, puis l'autre, puis active l'un mais en enlevant tout son contenu etc.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.
Unis par la flèche sacrée de cupidon

Unis par la flèche sacrée de cupidon


-
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 1172
- Images: 4
- Joined: 08 Dec 2014, 17:38
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ensimag
- GitHub: MathisLav
23 posts
• Page 2 of 3 • 1, 2, 3
Return to Langages alternatifs
Who is online
Users browsing this forum: ClaudeBot [spider] and 2 guests