Alors voila: est il possible de copier le contenu de l ecran standart dans le graph buffer? Ou sinon,comment peut on ecrire en grands caracteres sur le graph buffer?
Si vous avez une reponse,je vous remercie d avance!

.nolist #include "ion.inc" #define fontflags 50 ; généralement non défini dans ion.inc #define fracdrawlfont 2 ; idem .list #ifdef TI83P .org progstart-2 .db $BB,$6D #else .org progstart #endif ret jr nc,start .db "Large Font",0 start: set textwrite,(IY+sgrflags) ; écrire dans le gbuf set fracdrawlfont,(IY+fontflags) ; avec les grands caractères ld hl,0 ld (pencol),hl ld hl,text bcall _vputs call ionFastCopy bcall _getkey res fracdrawlfont,(IY+fontflags) ; on le désactive car ion ne le fait pas en quittant (pas comme avec textwrite) ret text: .db "Hello world",0 .end
.NOLIST
#include "ti83asm.inc"
#include "tokens.inc"
.LIST
call _clrlcdfull
call _grbufclr
set textwrite,(IY+sgrflags)
set fracdrawlfont,(IY+fontflags)
ld hl,0
ld (currow),hl
ld hl,TEXTE1
call _puts
res textwrite,(IY+sgrflags)
res fracdrawlfont,(IY+fontflags)
ld hl,1
ld (currow),hl
ld hl,TEXTE2
call _puts
call _getkey
call _grbufcpy_v
ret
TEXTE1: .db "A",0
TEXTE2: .db "B",0 end
.nolist #define TI83 #include "ion.inc" .list .org $9327 ; ne surtout pas oublier l'adresse de départ si on veux que ça marche start: bcall _clrlcdfull ; c'est toujours préférable d'utiliser bcall que call pour les rom calls mais si c'est pas indispensable (pour la compatibilité 83+) bcall _grbufclr set textwrite,(IY+sgrflags) ld hl,0 ld (pencol),hl ld hl,TEXTE1 bcall _vputs ld hl,$0600 ; si on met 1 ça écrit par dessus A ld (pencol),hl ld hl,TEXTE2 bcall _vputs bcall _copygbuf bcall _getkey ; c'est mieux de faire la pause après avoir affiché :) res textwrite,(IY+sgrflags) ret TEXTE1: .db "A",0 TEXTE2: .db "B",0 .end
spasm -T -A TEST.z80 TEST.bin bin2var2 TEST.bin TEST.83p del TEST.bin >nul pause
.nolist #define TI83 #include "ti83.inc" .list .org $9327 start: bcall _clrlcdfull bcall _grbufclr bcall _homeup set textInverse, (IY + textFlags) ld hl,menu_str bcall _puts res textInverse, (IY + textFlags) bcall _newline ld hl,menu_opt1_str bcall _puts bcall _newline ld hl,menu_opt2_str bcall _puts bcall _newline ld hl,menu_opt3_str bcall _puts bcall _saveoscreen bcall _clrlcdfull ld hl,savesscreen ;\ ld de,gbuf ; Ici on copie les données de savesscreen vers gbuf ld bc,768 ; / ldir ; / bcall _copygbuf bcall _getkey ret menu_str: .db $f1,$f1,$f1,"Super Menu",$f1,$f1,$f1,0 menu_opt1_str: .db "1",$e4,"Nouveau",0 menu_opt2_str: .db "2",$e4,"Charger",0 menu_opt3_str: .db "3",$e4,"Quitter",0 .end
.nolist #define TI83 #include "ti83.inc" .list .org $9327 start: bcall _runIndicOff ld hl,menu_str ld (menu_title),hl ld a,3 ld (menu_nb_options),a ld hl,menu_opt1_str ld (menu_option1),hl ld hl,new_game ld (menu_option1_goto),hl ld hl,menu_opt2_str ld (menu_option2),hl ld hl,load_game ld (menu_option2_goto),hl ld hl,menu_opt3_str ld (menu_option3),hl ld hl,exit ld (menu_option3_goto),hl jr menu new_game: bcall _clrlcdfull ld hl,menu_opt1_str bjump _puts load_game: bcall _clrlcdfull ld hl,menu_opt2_str bjump _puts exit: bcall _clrlcdfull ld hl,menu_opt3_str bjump _puts menu_str: .db $f1,$f1,$f1,"Super Menu",$f1,$f1,$f1,0 menu_opt1_str: .db " Nouveau ",0 menu_opt2_str: .db " Charger ",0 menu_opt3_str: .db " Quitter ",0 ;------------Routine------------ menu: bcall _clrlcdfull xor a ld (menu_cur_pos),a menu2: bcall _homeup set textInverse,(IY+textFlags) menu_title = $+1 ld hl,0 bcall _puts res textInverse,(IY+textFlags) bcall _homeup bcall _newline bcall _newline menu_nb_options = $+1 ld b,0 ld hl,menu_option1 menu_loop: push bc ld a,(curcol) or a bcallnz _newline ld a,(menu_nb_options) sub b ld b,a menu_cur_pos = $+1 ld a,0 cp b call z,menu_inverse_cur call nz,menu_reset_cur push hl bcall _ldHLind bcall _puts pop hl inc hl inc hl inc hl inc hl pop bc djnz menu_loop menu_getkey_loop: ld a,$fe out (1),a in a,(1) bit 0,a jr z,menu_inc_cur bit 3,a jr z,menu_dec_cur ld a,$bf out (1),a in a,(1) bit 5,a jr z,menu_valid jr menu_getkey_loop menu_inc_cur: ld a,(menu_nb_options) dec a ld b,a ld hl,menu_cur_pos ld a,(hl) cp b jr z,menu_getkey_loop inc (hl) bcall _lcd_busy jr menu2 menu_dec_cur: ld hl,menu_cur_pos ld a,(hl) or a jr z,menu_getkey_loop dec (hl) bcall _lcd_busy jr menu2 menu_valid: res textInverse,(IY+textFlags) ld hl,menu_option1+2 ld d,0 ld e,4 ld a,(menu_cur_pos) inc a ld b,a menu_valid_loop: add hl,de djnz menu_valid_loop or a sbc hl,de bcall _ldHLind jp (hl) menu_inverse_cur: set textInverse,(IY+textFlags) ret menu_reset_cur: res textInverse,(IY+textFlags) ret menu_option1:\ .dw 0\menu_option1_goto:\ .dw 0 menu_option2:\ .dw 0\menu_option2_goto:\ .dw 0 menu_option3:\ .dw 0\menu_option3_goto:\ .dw 0 menu_option4:\ .dw 0\menu_option4_goto:\ .dw 0 menu_option5:\ .dw 0\menu_option5_goto:\ .dw 0 menu_option6:\ .dw 0\menu_option6_goto:\ .dw 0 .end
fastCopy: di ld a,$80 out ($10),a ld hl,gbuf-12-(-(12*64)+1) ld a,$20 ld c,a inc hl dec hl fastCopyAgain: ld b,64 inc c ld de,-(12*64)+1 out ($10),a add hl,de ld de,10 fastCopyLoop: add hl,de inc hl inc hl inc de ld a,(hl) ;!!!!!!!!!!!!!!!!! out ($11),a ;!!!!!!!!!!!!!!!!!! dec de djnz fastCopyLoop ld a,c cp $2B+1 jr nz,fastCopyAgain ret
ld hl,menu_start xor a ;a = notre counter, nombre d'options loop: ;il faut ajouter le code pour gérer le counter quelque part bcall _PutS ;... verifier si le prochain octet = $FF ld b,(hl) ;valeur du prochain octet inc b ;$FF + $01 = .. 0! jr nz,loop ;si z n'est pas armé, nous avons plus à afficher ;.. menu_start: .db " Nouveau ",0 .db " Charger ",0 .db " Quitter ",0