60

Peut-être on pourra faire courir des programmes de FLASH, avec la taille des images on ne pourra pas faire grande chose avec 21kb :/ On peut utiliser du SMC avec un app, mais il faudra mettre la routine quelque part dans saferam. Je ne suis pas encore convaincu que la calculatrice pourra supporter des jeux complexes.

61

En terme de vitesse ? Tout dépend du driver du LCD, non ?

62

Oui, mais copier 2*320*240 (153600) octets chaque frame ? C'est beaucoup. Il faudrait TROIS ldir's pour afficher une image ! Maintenant il ne faut charger que 768 octets. Peut-être le hardware va nous aider un peu avec ça (comme la GB grin). En tout cas on va voir !

EDIT : Oups, j'avais écrit le mauvais numéro d'octets

63

Oui mais y'aura plus besoin d'un framerate de malade pour faire du gris...
Après, faut voir avec la cadence du proc

64

Je crois que TI ne s'est pas trop pris la tête et a repris le processeur de la TI 84+ SE (z80 à 15MHz)...

Mais bon, il sait se défendre (à 4MHz on arrive bien à faire des OS windows-like avec 16 couleurs qui sont assez réactifs !) tongue

65

Quelques screens de l'OS : http://www.cemetech.net/forum/viewtopic.php?t=8673 , http://www.omnimaga.org/index.php?topic=15554.msg279799#msg279799

La police d'écriture est assez moche (quel gâchis compte tenu de la taille de l'écran sick)...

66

http://www.cemetech.net/forum/viewtopic.php?p=199019#199019

Premier portage d'un programme asm sur la TI 84+ C fou

Enfaite ça a l'air assez simple (enfin le mec bosse chez TI tout de même), je me demande juste s'il le fait exprès de ne pas utiliser tout l'écran et de garder la barre moche du dessus confus

67

Ah ouaip, c'est vrai que ça risque d'être galère pour augmenter la résolution des jeux

68

Quelques nouvelles images :

Bmjt

B3n3 WSxB

J'avais oublié l'APPS "mappemonde" de TI, en couleur ça doit être assez sympa happy

Autrement je trouve toujours ça assez dommage que l'aspect général de l'OS reste le même : ça tire assez peu parti des possibilités de l'écran (alors que c'est le même que les Nspires).

Enfin j'ai tout de même hâte de pouvoir mettre la main dessus (imaginez mon pokémon non plus monochrome cette fois, mais polychrome tongue).

69

http://www.omnimaga.org/index.php?topic=15745.0
There also appears to be some loss in speed. Some people reported that graphing is 1.5 times slower than on a TI-84 Plus, but 1.5 times faster than on a TI-83 Plus. The following home screen program appears to run 4 times slower, but if it's due to screen updating, then it might not be as bad for programs that don't need to draw as often to the LCD


Fallait sans douter vu que c'est le même processeur mais c'est dommage, déjà que le TI-Basic à la base c'est pas hyper rapide alors maintenant... sad

Enfin j'ai hâte de pouvoir mettre la main dessus happy

70

Oui mais à vrai dire je me fiche de comment est le TI-Basic (pardon les programmeurs du basic !), je veux seulement savoir ce que l'on peut arriver à faire en se servant de la puissance totale de la calto, c'est-à-dire en parlant directemment avec elle en assembleur grin Personellement j'ai pas trop envie de voir ce que nous pouvons faire avec les outils que nous donne TI mais plutôt ce que nous pouvons faire avec nos propres outils !

Et chez TI-Planet : http://tiplanet.org/forum/viewtopic.php?p=135778
Il semble que l'on va avoir 128K RAM, pas les 48K des nouvelles 84+ grin

Et aussi quelques screenshots où tout l'écran est utilisé (pas de menu) :
1
2
3

71

C'est cool pour la RAM, sauf qu'on ne pourra sans doute toujours pas s'en servir pour stocker des programmes plus gros que 20 et quelques kilooctets... Et ça c'est dommage, car ça m'aurait bien arrangé pour mon projet sad

Enfin ça pourrait éventuellement servir de buffer pour décompresser nos données/sprites.

Autrement niveau puissance, je pense qu'il n'y a pas trop à s'en faire, plus je regarde les appareils ayant un z80 et un écran couleur et plus je me dis que finalement il y a du potentiel (le z80 du ZX Spectrum n'était cadencé qu'à 3.5MHz, et celui de la game boy color, qui était une version un peu différente, tournait seulement à 8MHz, alors avec nos 15MHz il n'y a pas à se plaindre !) smile

Je me demande même si SymbOS serait portable sur cette TI : il a déjà plein de programmes sympa (lecteurs video/audio, support de périphériques externes, du multitask etc...), et tourne parfaitement à 4MHz en 160*200 avec seulement 16 couleurs (au minimum). Et le mieux c'est qu'il est toujours en dev (en décembre 2012 il y a un bêta de la version 2.1 qui est sortie) smile

72

Oui, mais le hardware de la Game Boy Color t'aidait à faire pas mal de choses, les tilemaps (et scrolling) et les sprites, par exemple. Tu n'avais pas à mettre à jour le LCD, le hardware le faisait pour toi. Je ne sais pas comment fonctionne le Spectrum mais je suppose que le hardware t'aidait avec beaucoup de choses aussi. Avec la 84+C il faudra faire tout ça nous mêmes, et afficher tout au LCD va prendre sûrement du temps :/ Mais oui avoir la RAM additionnelle sera utile grin Aura-t-on toujours la $C000 limitation d'exécution ?

73

Mmh oui c'est vrai, mais ça dépend aussi de la taille du buffer de l'écran, si chaque pixel est sur un octet (donc 256 couleurs), ou deux (16bits donc 65536 couleurs, d'ailleurs c'est ce qu'affirme ce wiki). Enfin dans les deux cas ça multiplie quand même pas mal la taille des sprites :/

74

La première information sur la programmation en asm :
http://www.cemetech.net/forum/viewtopic.php?t=8802

Il semble que l'écran est le principal problème :/

75

Ouais j'ai vu, donc apparemment rafraichir l'ensemble de l'écran est assez long, mais le driver autorise la mise à jour de certaines parties de l'écran seulement et semble gérer le scroll horizontal. Au final c'est pas si mal, je suis sûr qu'en ne travaillant qu'avec du 96*64 on pourrait facilement porter nos programmes actuels (comme le jeu centipede).

76

77

C'est bien mais sans la rom c'est assez inutile (ils ne sont qu'deux à pouvoir la donner pour l'instant, enfin sans compter ceux qui ont eut en main les prototypes) tsss tsss tsss tsss tsss tsss

78

Ouai, c'est des privilégiés grin

79

À ce qu'on peux lire sur certains forums, écrire à l'écran ne serait pas forcément si lent puisqu'on peut dorénavant facilement copier un sprite à l'écran sans devoir copier tout le gbuf comme on faisait avant...

Aussi, une petite demo :

001116.gif

Autrement ça discute aussi du premier shell par endroits, mais je me demande si ce serait pas possible de faire un shell qui décompresse (d'une manière ou d'une autre) les programmes qui sont archivés vers la RAM (voire la RAM cachée, les quelques 128ko) avant de les exécuter ?

Ça vous dit pas de lancer notre propre shell ? tongue

Raah ça m'énerve de savoir qu'il y en a qui sont déjà en train de bosser dessus pendant que nous on doit attendre la sortie officielle (ils pourraient au moins partager la rom aux développeurs triso) mad

edit : un début de TI84pcse.inc :
TI84pcse.inc
; RST ROUTINES #define rop1toop2 $08 #define rfindsym $10 #define rpushrealo1 $18 #define rmov9toop1 $20 #define rbr_call $28 #define rfpadd $30 #define brt_jump0 $50 ; BANKED CALL MACROS #define bcall(romcall) rst rbr_call\ .dw romcall #define bcallz(romcall) jr nz,$+5\ rst rbr_call\ .dw romcall #define bcallnz(romcall) jr z,$+5\ rst rbr_call\ .dw romcall #define bcallc(romcall) jr nc,$+5\ rst rbr_call\ .dw romcall #define bcallnc(romcall) jr c,$+5\ rst rbr_call\ .dw romcall #define bcalldi(romcall) rst rbr_call\ .dw romcall\ di #define bcalldiz(romcall) jr nz,$+6\ rst rbr_call\ .dw romcall\ di #define bcalldinz(romcall) jr z,$+6\ rst rbr_call\ .dw romcall\ di #define bcalldic(romcall) jr nc,$+6\ rst rbr_call\ .dw romcall\ di #define bcalldinc(romcall) jr c,$+6\ rst rbr_call\ .dw romcall\ di #define bjump(romcall) call brt_jump0\ .dw romcall ; PAGE $1b ROMCALLS #define _cphlde $400c #define _putc $44fb #define _disphl $44fe #define _puts $4501 #define _runindicon $4564 #define _runindicoff $4567 #define _getkey $495d #define _keyscnlnk $4a05 #define _createvar $4e55 #define _enablecursorhook $4f45 #define _disablecursorhook $4f4e #define _delvararc $4fab #define _getkeyretoff $4ff0 #define _writetoflash $50b0 #define _disp32 $51af ; PAGE $1f ROMCALLS #define _checkosvalidated $8117 ; COLOR LCD CONTROL REGISTERS & MACROS #define lcdhigh(x) x >> 8 #define lcdlow(x) x & 255 #define lrsync $00 #define lrdrivercode $00 #define lroutctrl1 $01 #define lrdrivectrl $02 #define lrentrymode $03 #define lrrow $20 #define lrcol $21 #define lrgram $22 #define lrwinrowstart $50 #define lrwinrowend $51 #define lrwincolstart $52 #define lrwincolend $53 #define lrbaseimgdispctrl $61 #define lrhorizscroll $6a ; REGISTER $01 (lroutctrl1) BITFIELDS #define lcdreversecol $0100 #define lcdreverserow $0400 ; REGISTER $02 (lrdrivectrl) BITFIELDS #define lcdeor $0100 #define lcdbdivc $0200 ; REGISTER $03 (lrdispctrl1) BITFIELDS #define lcdam $0008 #define lcdcurmovehoriz $0008 #define lcdvertinc $0010 #define lcdhorizinc $0020 #define lcdorg $0080 #define lcdbgr $1000 #define lcdtri $4000 #define lcddfm $8000 ; REGISTER $61 (lrbaseimgdispctrl) BITFIELDS #define lcdrev $0001 #define lcdvle $0002 ; ERROR HANDLER EQUATES #define app_push_errorh $59 #define app_pop_errorh $5c ; MEMORY EQUATES #define ramstart $8000 #define appdata $8000 #define ramcode $8100 #define tempswaparea $82b3 #define op1 $84ae #define flags $8b26 #define statvars $8c1c #define pagedcount $9e15 #define pagedgetptr $9e17 #define pagedbuf $9e1b #define locallanguage $9e54 #define cursorhookblockptr $9e5d #define usermem $a60b ; CRYSTAL TIMER EQUATES #define tmroff $00 #define tmr11000hz $40 #define tmr1000hz $41 #define tmr100hz $42 #define tmr10hz $43 #define tmr32768hz $44 #define tmr2048hz $45 #define tmr1$28z $46 #define tmr8hz $47 #define tmrcpu $80 #define tmrcpudiv2 $81 #define tmrcpudiv4 $82 #define tmrcpudiv8 $84 #define tmrcpudiv16 $88 #define tmrcpudiv32 $90 #define tmrcpudiv64 $a0 #define tmrnullack $00 #define tmrloop $01 #define tmrint $02 #define tmrloopandint $03 ; HARDWARE PORTS #define plink $00 #define pkey $01 #define pstatus $02 #define pintmask $03 #define pintid $04 #define pmmaptmrfreq $04 #define pmpagec $05 #define plnkastberead $05 #define pmpagea $06 #define pmpageb $07 #define plnkastseenable $08 #define plnkastsestatus $09 #define plnkastseinbuf $0a #define plnkastsecfg $0a #define plnkastsercvtimeout $0b #define plnkastsesndtimeout $0c #define plnkastseoutbuf $0d #define pmpageahighbits $0e #define pmpagebhighbits $0f #define plcdcmd $10 #define plcddata $11 #define pprotctrl $14 #define pasicid $15 #define pcpuspeed $20 #define pflashtyperammask $21 #define pflashexeclowerlimit $22 #define pflashexecupperlimit $23 #define pflashexecexecoverride $24 #define pramexeclowerlimit $25 #define pramexecupperlimit $26 #define pblockmremapc $27 #define pblockmremapb $28 #define plcddelay0 $29 #define plcddelay1 $2a #define plcddelay2 $2b #define plcddelay3 $2c #define punknown2d $2d #define pmemdelay $2e #define plcdgendelay $2f #define ptmr1freq $30 #define ptmr1cfg $31 #define ptmr1count $32 #define ptmr2freq $33 #define ptmr2cfg $34 #define ptmr2count $35 #define ptmr3freq $36 #define ptmr3cfg $37 #define ptmr3count $38 #define pusbunkoldflg $39 #define pusbunkoldflg2 $3a #define prtcctrl $40 #define prtcset0 $41 #define prtcset1 $42 #define prtcset2 $43 #define prtcset3 $44 #define prtc0 $45 #define prtc1 $46 #define prtc2 $47 #define prtc3 $48 ; PORT $02 (pstatus) BITFIELDS #define stbattgood $01 #define stlcdready $02 #define stflashunlocked $04 #define stisnot83pse $05 #define stissemodel $07 ; PORT $03 (pintmask) BITFIELDS #define intmaskonkey $01 #define intmasktmr1 $02 #define intmasktmr2 $04 #define intdisablelowpowermode $08 #define intmasklinkport $10 #define intmasknormal intmaskonkey+intmasktmr1+intdisablelowpowermode ; PORT $04 (pmmaptmrfreq) BITFIELDS #define intidonkey $01 #define intidtmr1 $02 #define intidtmr2 $04 #define intidonkeydown $08 #define intidlinkport $16 #define intidcrstltmr1 $32 #define intidcrstltmr2 $64 #define intidcrstltmr3 $128 #define memmapmode0 $00 #define memmapmode1 $01 #define tmrfreq0 $00 #define tmrfreq1 $02 #define tmrfreq2 $04 #define tmrfreq3 $06 #define battvoltage0 $00 #define battvoltage1 $64 #define battvoltage2 $128 #define battvoltage3 $192 ; PORT $08 (plnkastseenable) BITFIELDS #define lnkseintrcv $01 #define lnkseintsnd $02 #define lnkseinterr $04 #define lnkseintdisable $128 #define lnksercving $08 #define lnksercvd $16 #define lnksesndready $32 #define lnksnderr $64 #define lnksnding $128 ; PORT $14 (pprotctrl) BITFIELDS #define protlockflash $00 #define protunlockflash $01 ; PORT $15 (pasicid) BITFIELDS #define asic83pta2 $33 #define asic84pta2 $44 #define asic84pta3 $45 #define asic84pta1 $55 ; PORT $20 (pcpuspeed) BITFIELDS #define cpu6MHz $00 #define cpu15MHz $01 #define cpu15MHz2 $02 #define cpu15MHz3 $03 ; PORT $21 (pflashtyperammask) BITFIELDS #define flashtypemask $03 #define flashtype1mb $00 #define flashtype2mb $01 #define flashtype4mb $04 #define flashtyle8mb $08 #define ramexecmodemask $30 #define ramexecmode0 $00 #define ramexecmode1 $10 #define ramexecmode2 $20 #define ramexecmode3 $30 ; PORT $24 (pflashexecexecoverride) BITFIELDS #define flashallowexecall $01 #define flashforbidexecall $02 ; PORTS $29-$2c (plcddelay0-3) BITFIELDS #define delayflashenable $01 #define delayramenable $02 #define delaycyclecountmask $fc #define delaycyclecountshift $02 ; PORT $2e (pmemdelay) BITFIELDS #define delayflashexec $01 #define delayflashread $02 #define delayflashwrite $04 #define delayramexec $10 #define delayramread $20 #define delayramwrite $40 ; PORT 2f (plcdgendelay) BITFIELDS #define cpu1lcddelay48 $00 #define cpu1lcddelay112 $01 #define cpu1lcddelay176 $02 #define cpu1lcddelay240 $03 #define cpu2lcddelay48 $00 #define cpu2lcddelay112 $04 #define cpu2lcddelay176 $08 #define cpu2lcddelay240 $12 #define cpu2lcddelay304 $16 #define cpu2lcddelay368 $20 #define cpu2lcddelay432 $24 #define cpu2lcddelay496 $28 #define cpu3lcddelay48 $00 #define cpu3lcddelay112 $32 #define cpu3lcddelay176 $64 #define cpu3lcddelay240 $96 #define cpu3lcddelay304 $128 #define cpu3lcddelay368 $160 #define cpu3lcddelay432 $192 #define cpu3lcddelay496 $224 ; TOKENS #define texttok $ef ; MATHPRINT TOKENS #define tzquadrant $17 #define tzfrachalf $18 #define tzfracthird $19 #define tzfracfourth $1a #define tzfracfifth $1b #define tzfraceighth $1c #define tzfractenth $1d #define tfracslash $2e #define tfracmixednum $2f #define tswapimproper $30 #define tswapfracdec $31 #define tremainder $32 #define tsummationsigma $33 #define tlogbase $34 #define trandintnorep $35 #define tmathprint $37 #define tclassic $38 #define tautoanswer $3b #define tdecanswer $3c #define tfracanswer $3d ; TI 84+ C SE TOKENS #define tblue $41 #define tred $42 #define tblack $43 #define tmagenta $44 #define tgreen $45 #define torange $46 #define tbrown $47 #define tnavy $48 #define tltblue $49 #define tyellow $4a #define twhite $4b #define tltgray $4c #define tmedgray $4d #define tgray $4e #define tdarkgray $4f #define tgraphcolor $65 #define ttextcolor $67 #define tbackgroundon $5b #define tbackgroundoff $64 #define tthin $74 #define tasm84cprgm $68 #define tasm84ccmp $69 #define tbordercolor $6c

Pour l'instant il n'y a que _cphlde qui n'a pas bougé, et il y a bien sûr de nouveaux tokens propres à cette TI.

80

Sans rom, on ne pourra pas developper grand chose smile

Donc oui ils seront meilleurs que nous, mais nous n'y pouvons rien tongue

Edit : et j'ajoute que j'ai trop de travail en ce moment pour m'occuper de ça :'(

81

Tiens d'ailleurs je me demandais, la clé RSA est la même que la 84+ SE ou il va falloir la factoriser aussi ?

Je tenterai bien de programmer un petit shell du genre noshell : une apps qui installe un hook pour lancer les programmes asm, qu'ils soient archivés ou non. Il faudrait aussi inclure des routines utiles, mais vraiment le stricte nécessaire (affichage de sprites de tailles variables avec "clippage"/flip/rotation/plusieurs profondeurs (1-bit pour la retro-compatibilité etc... jusqu'à sans doute 16-bits voire plus), routine qui tire un nombre au hasard, quelques routines graphique (rectangle, cercle etc...), etc...).

DoorCS est bien, mais il est incroyablement lourd et bourré de trucs inutiles (sans offense), un shell graphique sur TI ça n'apporte rien (et avoir des icônes énormes ne fait que bouffer de la place pour rien), c'est pourquoi je ne l'utiliserai pas tsss

Vous en pensez quoi ?

edit : j'ai adapté img2asm (que j'utilisai pour programmer sur gba) : maintenant il gère le format 16-bits 5-6-5 smile
img2z80 source
EnableExplicit

If OpenConsole() = 0
  MessageRequester("OpenConsole() error","Unable to open the console.",0)
  End
EndIf

Define i.l
Global str1$
For i = 1 To 17
  str1$ = str1$ + Chr(205)
Next
ConsoleTitle ("img2z80")
EnableGraphicalConsole(1)
PrintN(Chr(201)+str1$+Chr(187))
PrintN(Chr(186)+" img2asm - deeph "+Chr(186))
PrintN(Chr(200)+str1$+Chr(188))
PrintN("")

If CountProgramParameters() > 1 ; Au moins 2 paramètres
  Select ProgramParameter()
    Case "-sprite16"
      Define file.s = ProgramParameter()
      If GetExtensionPart(file) = "jpg" Or GetExtensionPart(file) = "jpeg"
        UseJPEG2000ImageDecoder()
      ElseIf GetExtensionPart(file) = "png"
        UsePNGImageDecoder()
      ElseIf GetExtensionPart(file) = "tif"
        UseTIFFImageDecoder()
      ElseIf GetExtensionPart(file) = "tga"
        UseTGAImageDecoder()
      ElseIf GetExtensionPart(file) <> "bmp"
        PrintN("Error : image format unsupported.")
        Input()
        End
      EndIf
      If LoadImage(0, file)
        If CreateFile(0, GetPathPart(ProgramFilename())+ReplaceString(GetFilePart(file), GetExtensionPart(file), "asm"))
          WriteStringN(0, ReplaceString(GetFilePart(file), "."+GetExtensionPart(file), "")+":")
          Define y.l, x.l
          If StartDrawing(ImageOutput(0))
            For y = 0 To ImageHeight(0)-1
              WriteString(0, Chr(9)+".dw ")
              For x = 0 To ImageWidth(0)-1
                WriteString(0, "$")
                WriteString(0, LCase(RSet(Hex(Int(Red(Point(x, y))/8)<<11+Int(Green(Point(x, y))/4)<<5+Int(Blue(Point(x, y))/8)), 4, "0")))
                If x <> ImageWidth(0)-1
                  WriteString(0, ",")
                EndIf
              Next x
              WriteStringN(0, "")
            Next y
            StopDrawing()
          EndIf
          PrintN(ReplaceString(GetFilePart(file), GetExtensionPart(file), "asm")+" correctly generated.")
          CloseFile(0)
        Else
          PrintN("Error : unable to create the output file.")
        EndIf
      Else
        PrintN("Error : unable to open the image.")
      EndIf
    Default
      PrintN("Error : parameters are : <-sprite16> <sprite image>")
  EndSelect
Else
  PrintN("Error : parameters are : <-sprite16> <sprite image>")
EndIf
Input()
End

img2z80.zip

Avec le sprite de la balle dans l'exemple de kerm j’obtiens la même chose, donc ça marche. Plus tard, lorsque les routines seront prêtes, j'ajouterai le support de formats plus "compressés", avec l'utilisation de palettes par exemple smile

82

Oui, c'est assez lourd. Personnellement j'utilise zStart, mais je ne sais pas s'il inclut ou pas les routines des autres shells (je ne m'en sers pas). Je crois que c'est une bonne idée, et surtout maintenant que les graphiques vont prendre encore plus d'espace ! Moi j'ai mes doutes, je vais peut-être attendre un peu avant de décider si m'en acheter une ou pas...

83

http://www.copcoinc.com/ti-color-graphing-calculators/

Ce sont des préventes ou pas ? 95€ ça fait un peu cher, et ça c'est sans compter les frais de port sad

Mais de toute façons il parait que sa sortie en France n'est pas prévue...

edit : c'est bizarre, les sites TI belge et suisse ont ces pages : http://education.ti.com/fr/belgique/products/calculatrices-graphiques/ti-84-plus-c-silver-edition , http://education.ti.com/fr/suisse/products/calculatrices-graphiques/ti-84-plus-c-silver-edition , mais pas le site français...?

Autrement, en précommande à 119€ ici : http://www.boutique-calculatrice-ti.com/34-ti-84-plus-c-silver-edition.html

84

Les premières précommandes aux US viennent d'être livrées

Brandonw a reçut la sienne ( http://t.co/5J0wxgA8Hh ), ce qui signifie très certainement qu'on va avoir droit à un ti84pcse.inc bien plus fourni d'ici quelques temps smile

85

Bon c'est un peu off-topic, mais apparemment HP va sortir une nouvelle calc : la HP Prime, qui a l'air vraiment sympathique smile

- ARM9 à 400 Mhz
- Écran 320*240 multi-touch capacitif
- 32 Mo de RAM
- 256 Mo de Flash
- Moteur Cas
- Basic/ASM
- Épaisse d'1cm seulement cheeky

Mais je me demande s'il y a toujours le RPN ?

http://tiplanet.org/forum/viewtopic.php?p=138724#p138724
http://tiplanet.org/forum/viewtopic.php?p=138844#p138844

86

Wow, c'est vrai, et d'ailleurs j'aime beaucoup l'assembleur ARM smile