Introdução

Existem planos de criar uma variante do Asstermo para as TI-83/84 Plus/SE. No entanto, há alguns limites tecnológicos que ainda têm de ser ultrapassados para se conseguir atingir uma qualidade semelhante à obtida com o Asstermo original para TI-89/92/200.

Enquanto não for possível ter o Asstermo nestas calculadoras, usem estas tabelas: Property Libraries for Pocket Calculators

Nome planeado para a variante de Asstermo para TI-nSpire: Asstermo-Z80

No entanto, para evitar problemas com trademarks, irá se chamar somente Asstermo-Z.

Limites Tecnológicos a ultrapassar

  • Programa de compressão
    • Solução possível: compilar o miniLZO utilizando o z88dk. Para mais info ver aqui.
    • Acho que vai se ter esquecer compressão por completo nas TI-83/84.
    • Aparenta haver um algoritmo muito bom no BasicBuilder, mas novamente poderá não ser possível usar, devido às dimensões das tabelas.
  • Programa para apresentar caixas de diálogo de jeito, porque as letras “naturais” da calculadora são monstruosas
    • Solução possível: criar uma função/subrotina genérica com base no cheetah.
  • Descobrir como armazenar tabelas tão grandes como as do Asstermo, quando o que as TI 83/84 têm são apenas listas muita estranhas.
    • Pelos vistos a única solução é guardar os dados num ficheiro flash (.8xk). Só assim é que podemos armazenar os dados todos que quisermos. Isto significa que a dita aplicação flash tem de ser um sistema interno de organização de dados.
  • Ou então, converter as tabelas para longos polinómios… para mais, ver os “Apontamentos - parte 2”.

Muito provavelmente a única solução mais viável será criar um programa mais centrado em assembly do que basic. Vantagem de criar um Asstermo para TI-83/84 é que este deveria depois funcionar nas TI-nSpire (sem CAS e com o teclado TI-84).

Se souberem mais detalhes para alguns destes pontos, por favor utilizem o gestor de tarefas.

Apontamentos - parte 1

  • As TI-83 originais estão excluídas logo à partida. Só têm 27kB de RAM. Só dá para fazer interpolações.
  • Doors CS é uma referência importante no mundo das TI-83/84. No entanto:
    • apesar de eles terem uma biblioteca para comunicação quase infinita (2 milhões!) entre calculadoras ao mesmo tempo, não aparentam ter ainda um sistema avançado de gestão de ficheiros.
    • Funciona também na virtualização nas TI-nSpire, o que deverá tornar mais possível ter-se o Asstermo nas nSpire em simultâneo…
  • Armazenar cerca de 180kB em tabelas (a maior são 25.5kB!) só será possível dentro de uma aplicação flash. Se se excluir “combustão”, passam a ser cerca de 150Kb. Face a este limite, as calculadoras TI-83 Plus estão no limiar de memória (máximo de 160kB na Flash ROM), o que iria requerer compressão de dados, der por onde der. Só as TI-83 +SE, TI-84 Plus e TI-84 +SE é que estão dentro dos parâmetros operacionais.
  • Em teoria, para se poder escapar a se ter de escrever todo o código em assembly, pode-se ter uma aplicação em TI-flash com as tabelas todas e com um sistema de procura integrado (o Asstermo para TI-89/92/200 tem a procura feita em C, mas as tabelas podem ser acessíveis directamente). No entanto, quando se compara com o facto que no Asstermo original, em 350kB:
    • 182kB em 22 tabelas e 2 listas;
    • 148kB em 70 programas;
    • 5kB em 21 funções;
    • 15kB em 4 aplicações em assembly/C.

Face a estas características da versão original, é questionável se será exequível nas TI-83/84 ter tanto programa “perdido” na calculadora. Isto implica que muito provavelmente todo o programa tem se ser feito numa só “flash app”.

Investigação sobre aplicações TI-Flash e Assembly

Eis uma lista de informações adicionais que podem ajudar no desenvolvimento:

Conclusões

  1. Só as TI-83 +SE, TI-84 Plus e TI-84 +SE é que estão dentro dos parâmetros operacionais.

  2. Face às necessidades operacionais de uma variante do Asstermo, só será possível se se fizer uma aplicação completa em TI-Flash. Isto implica aprender Z80 Assembly específico para estas calculadoras: Manual do SDK para TI-83

  3. O BasicBuilder pode ajudar a reduzir as lacunas criadas ao se usar somente Assembly. Deverá permitir que mais facilmente se consiga criar uma aplicação flash super poderosa, em que parte do código seja escrito em Basic e o que faltar seja em Assembly. Algumas arestas potencialmente também poderão ser colmatadas ao usar o z88dk.

  4. Esta variante será a que apresenta um maior desafio, quando comparada à versão original e às variantes Asstermo-D e Asstermo-N.


Apontamentos - parte 2

Depois de muito pensar sobre o assunto, parece que a solução que se tem de atingir é algo que tem de ser mais prático. Desenvolver uma brutal tecnologia para algo que está a gradualmente sair do mercado, em favor das nSpire, acho que a solução a implementar terá de ser algo bem mais prático.

Assim sendo, o plano provavelmente será o seguinte:

  1. Converter as tabelas de vapor sobre-aquecido para superfícies 3D (Tabelas A-4 do livro), recorrendo ao MATLAB ou ao R. Isto implica que resultarão 20 equações, em que a pressão é sempre conhecida e depois 1 das 5 propriedades vs outra. Exemplo:
    • p,T -> h
    • p,T -> s
    • p,T -> u
    • p,T -> v
  2. Criar uma routina ou função que pergunta pelo par de valores e depois devolve os resultados respectivos.

  3. Converter para Assembly utilizando o BasicBuilder 3.0, que fornece um menu mais ou menos catita.

  4. Salvo erro, o objectivo é provar e levar a cabo uma rotina para cada procura e se agrupam as 5 ou 10 ou 20 procuras num só programa com o BasicBuilder. E depois tem-se uma aplicação por cada grupo principal, tal como foi feito para o Asstermo-D.

  5. Atingir o mesmo ponto onde o Asstermo-D 0.18 atingiu seria um bom alvo, ou seja, ter as tabelas para: Água, Amónia, Refrigerante 22, Refrigerante 134a, Propano, Ar.</ol>

Conclusão

Seguindo este plano, acho que se torna mais prático ter assim algo mais realista, apesar de que os resultados atingidos serão na realidade interpolações de grande escala, ou seja, brutais polinómios de 4 a 8 graus, correlacionando cada trio de valores tabelados. A vantagem é que assim não se tem de arquivar bateladas de tabelas em listas armazenadas duma forma não nativa às TI-83/84.