Programmeren in TI-83+ Assembly/Applications/De header

Programmeren in TI-83+ Assembly

Voorblad / Inhoudsopgave

Assembly-basis

1 · 2 · 3 · 4 · 5 · T

Controle

1 · 2 · 3 · 4 · 5 · T

Geheugenbeheer

1 · 2 · 3 · 4 · 5 · T

Input en output

1 · 2 · 3 · 4 · 5 · T

Tekenen

1 · 2 · 3 · 4 · 5 · T

Registers en procedures

1 · 2 · 3 · 4 · 5 · T

Applications

1 · 2 · 3 · 4 · T

Gebruikersvariabelen

1 · T

Extra

1 · T

Speciaal

Iedere Application begint met de Application Header. Dit is een stuk code dat ervoor zorgt dat de rekenmachine weet wat de naam van de Application is, welke signing key er gebruikt is, enzovoorts.

Een voorbeeldheader bewerken

Hieronder zie je een voorbeeld van een header voor de Application TestApp.

    .db 080h, 00Fh
    .db 000h, 000h, 000h, 000h
    .db 080h, 012h
    .db 001h, 004h
    .db 080h, 021h
    .db 001h
    .db 080h, 031h
    .db 001h
    .db 080h, 048h
    .db "TestApp", 000h
    .db 080h, 081h
    .db 001h
    .db 080h, 090h
    .db 003h, 026h, 009h, 004h
    .db 018h, 0C5h, 0E8h, 0BAh
    .db 002h, 00Dh, 040h, 0A1h, 06Bh, 099h, 0F6h, 059h, 0BCh, 067h
    .db 0F5h, 085h, 09Ch, 009h, 06Ch, 00Fh, 0B4h, 003h, 09Bh, 0C9h
    .db 003h, 032h, 02Ch, 0E0h, 003h, 020h, 0E3h, 02Ch, 0F4h, 02Dh
    .db 073h, 0B4h, 027h, 0C4h, 0A0h, 072h, 054h, 0B9h, 0EAh, 07Ch
    .db 03Bh, 0AAh, 016h, 0F6h, 077h, 083h, 07Ah, 0EEh, 01Ah, 0D4h
    .db 042h, 04Ch, 06Bh, 08Bh, 013h, 01Fh, 0BBh, 093h, 08Bh, 0FCh
    .db 019h, 01Ch, 03Ch, 0ECh, 04Dh, 0E5h, 075h
    .db 080h, 07Fh
    .db 000h, 000h, 000h, 000h
    .db 000h, 000h, 000h, 000h
    .db 000h, 000h, 000h, 000h
    .db 000h, 000h, 000h, 000h
    .db 000h, 000h, 000h, 000h

Een header is altijd precies 128 bytes lang.

Het programma AppHeader bewerken

Gelukkig is het niet nodig om deze header met de hand te schrijven. TI heeft een programmaatje gemaakt dat deze headers automatisch maakt. Download dit programma hier. Als je een header wilt maken, start je dit programma. Vul linksboven in het venster de naam van de Application in, bijvoorbeeld TESTAPP. Laat de Developer Key op 0104 staan en vul bij Pages het aantal pagina's in (laat dit voorlopig op 1 staan). Beneden in het venster wordt de header gegenereerd; kopieer deze naar het programma.

Jammer genoeg (omdat TI een andere compiler gebruikt; zie de vorige paragraaf) moet er aan de gegenereerde header wel wat gewijzigd worden: verander (bijvoorbeeld met Zoeken en vervangen in Kladblok) overal db door .db. De include-regel bovenaan kun je weghalen; deze staat immers al in de standaardcode.

Optionele velden bewerken

Met het uitklapmenu Optional Header fields kun je andere gegevens over de Application invoeren. Kies steeds een gegeven dat je in wilt voeren en vul daarna de waarde in het veld eronder in. De beschikbare optionele velden zijn:

  • Program Revision - ?
  • Build Number - ?
  • Overuse Count - Alleen voor Shareware-programma's.
  • Disable TI Splash Screen - Als deze op True staat, dan wordt het splashscreen dat TI automatisch weergeeft, niet weergegeven. Het splashscreen is een scherm dat verschijnt als de Application opstart met gegevens over de Application.
  • Maximum Hardware Revision - ?
  • Lowest Basecode - De laagste OS-versie waarop de Application mag worden gebruikt. Gebruik dit als je bijvoorbeeld een bcall hebt gebruikt die nog niet bij oude OS'en voorkomt. Je kunt dit ook gebruiken om de Application alleen op een TI-84+ te laten draaien: deze hebben OS-nummers beginnend met een 2 (de TI-83+ heeft OS-nummers beginnend met een 1).

Shareware-programma's zijn Applications die met een speciale Developer Key van TI ondertekend worden. Hierdoor kan de maker restricties op het gebruik leggen, totdat de gebruiker het programma gekocht heeft.

Standaardcode voor Applications bewerken

Net als bij gewone Assembly-programma's is er standaardcode voor Applications:

.nolist
#include "ti83plus.inc"
.list
.org $4000

    ; zet de header hier

    ; zet de code hier

.end
.end

Zoals je ziet, is het niet nodig om over de header heen te springen: de TI weet dat de eerste 128 bytes niet hoeven te worden uitgevoerd. Dit is ook de reden dat de header altijd precies 128 bytes moet zijn. Het programma AppHeader zorgt daar automatisch voor.

Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.