.nolist #include "ti84pce.inc" .list .org userMem-2 .db tExtTok,tAsm84CeCmp .assume ADL=1 ld hl,$e00105 ld (hl),h ld hl,$007200 ; inscrit la variable Ans ld (OP1+1),hl ; dans OP1 ld (OP1),hl ; (correspond au call _AnsName) call _RclVarSym ; Que contient Ans ?.. dec a jp m,nombre ld a,(de) jp nz,C1cha cp 2 jp c,i0ver sbc hl,hl rra ld ixl,a ex de,hl inc hl inc hl inc hl xor a bit 1,(hl) jr nz,TroisX bit 0,(hl) inc hl jr z,ChifX rld ld d,10 ld e,a mlt de rld add a,e ld e,a jr RaTTX ChifX: rld ld e,a jr RaTTX TroisX: inc hl rld ld b,100 ld c,a mlt bc rld ld d,10 ld e,a mlt de inc hl rld dec hl ex de,hl add a,l ld l,a add hl,bc ex de,hl RaTTX: push de ld de,8 add hl,de xor a ; directement le contenu d' OP1 ld e,(hl) ; 128=1chiffre; 129=2chiffres; 130=3chiffres inc hl rld bit 1,e jr nz,TroisY bit 0,e jr z,RaTTY ld d,10 ld e,a mlt de rld jr brattY TroisY: ld b,100 ld c,a mlt bc rld ld d,10 ld e,a mlt de inc hl rld dec hl add a,c brattY: add a,e RaTTY: ex de,hl ld h,160 ld l,a mlt hl add hl,hl ld bc,$d40000 add hl,bc pop bc add hl,bc ld ($d07d24),hl ; la valeur $d40000+X+Y*320 dec ixl jp z,i0ver ld hl,8 add hl,de xor a ld e,(hl) ; 128=1chiffre; 129=2chiffres; 130=3chiffres inc hl rld bit 1,e jr nz,TroizY bit 0,e jr z,RaTzY ld d,10 ld e,a mlt de rld jr bratzY TroizY: ld b,100 ld c,a mlt bc rld ld d,10 ld e,a mlt de inc hl rld dec hl add a,c bratzY: add a,e RaTzY: ld ($d07d27),a ld de,8 add hl,de xor a ; directement le contenu d' OP1 ld e,(hl) ; 128=1chiffre; 129=2chiffres; 130=3chiffres inc hl rld bit 1,e jr nz,Troizz bit 0,e jr z,RaTzz ld d,10 ld e,a mlt de rld jr bratzz Troizz: ld b,100 ld c,a mlt bc rld ld d,10 ld e,a mlt de inc hl rld dec hl add a,c bratzz: add a,e RaTzz: ld ($d07d28),a dec ixl jr z,i0ver ld e,8 add hl,de xor a ; directement le contenu d' OP1 ld e,(hl) ; 128=1chiffre; 129=2chiffres; 130=3chiffres inc hl rld bit 0,e jr z,RaTee ld d,10 ld e,a mlt de rld add a,e RaTee: cp 1 adc a,d ld ($d07d29),a ld e,8 add hl,de xor a ; directement le contenu d' OP1 ld e,(hl) ; 128=1chiffre; 129=2chiffres; 130=3chiffres inc hl rld bit 0,e jr z,RaTff ld d,10 ld e,a mlt de rld add a,e RaTff: cp 1 adc a,d ld ($d07d2a),a i0ver: ld hl,$e00305 ld (hl),h ret nombre: ld a,16 ; Sinon on converti le nb en 1 chaîne (long.max=16) call _FormEReal ; et c'est parti! ld hl,OP3 ; hl = pointe sur la chaîne jr Scrte ; Passons aux variables... C1Cha: or a ; à zéro? jr z,i0ver ex de,hl ld bc,2 add hl,bc ld c,a Scrte: push hl ; HL pointe sur le 1er caractère. ld e,c ld a,$bb knop: dec e cpir jp pe,knop ld hl,kkompt+1 inc e ld (hl),e ld de,($d07d27) ld hl,juko+1 ld (hl),e ld hl,clFon+1 ld (hl),d ld de,$d07d2a ld a,(de) ld (Zaom+1),a sbc hl,hl ld h,a add hl,hl ld b,h ld c,l add hl,hl add hl,hl add hl,bc ld (Chario+1),hl dec de ld a,(de) ld (z0om+1),a add a,a add a,a add a,a ld (ssttq+1),a ld b,0 ld c,a ld hl,320 sbc hl,bc ld (ssttp+1),hl ld hl,($d07d24) pop de ld ix,$d0ea1f-2111 Scrute: ld a,(de) inc de cp 44 jr z,Chario cp $bb jr nz,OneTk ld ix,$d0ea1f-695 ld a,(de) inc de sub 159 OneTk: push de push hl ld d,a ld e,8 ld b,e mlt de add ix,de megla: push bc ld a,(ix) Zaom: ld d,1 hulo: ld b,8 juko: ld c,85 z0om: ld e,1 rlca jr c,c_Un clFon: ld c,255 c_Un: ld (hl),c inc hl dec e jr nz,c_Un djnz juko ssttp: ld bc,312 add hl,bc dec d jr nz,hulo inc ix pop bc djnz megla pop hl ssttq: ld e,8 add hl,de pop de ld ix,$d0ea1f-2111 kkompt: ld a,0 dec a ld (kkompt+1),a jr nz,Scrute ld hl,$e00205 ld (hl),h ret Chario: ld bc,0 ld hl,($d07d24) add hl,bc ld ($d07d24),hl jr kkompt