Programmeren in TI-83+ Assembly/Applications/Het maken van applications
Op deze pagina wordt eerst uitgelegd wat de verschillen zijn tussen een programma in "gewoon" Assembly en een Application. Hierna wordt er kort uitgelegd wat je anders moet doen dan bij gewoon Assembly om een Application te schrijven.
Verschillen tussen Applications en Assembly
[bewerken]- Applications worden direct vanuit het archiefgeheugen gedraaid, Assembly-programma's moeten eerst naar het RAM gezet worden.
- Applications worden groter in stappen van 16384 bytes. Als je dus een Application maakt van 100 bytes, dan neemt hij op de rekenmachine 16384 bytes in beslag. Een Application van 16384 bytes heet een één-pagina-Application; een Application met bijvoorbeeld 32768 of meer bytes, heet een multi-pagina-Application.
- Applications kunnen Hooks gebruiken om het besturingssysteem aan te passen.
Inhoudelijke verschillen
[bewerken]Hieronder volgen enkele verschillen wat betreft het schrijven van gewone Assembly-programma's en Applications.
- Een Application heeft altijd een speciale header met informatie over de Application.
- Sommige bcalls werken niet zoals bij gewoon Assembly, omdat ze gegevens in het RAM nodig hebben in plaats van in het archief. Daarvoor zijn twee oplossingen: of de gegevens tijdelijk in het RAM zetten, of de bcall zelf namaken. Het beste voorbeeld van een bcall die niet werkt in een Application is
bcall(_PutS)
. - Je moet op een speciale manier terug naar de TI-OS; gewoon
ret
werkt niet meer. - Je moet je Application signen voordat je hem op de rekenmachine kunt zetten.
- Als je een multi-pagina-Application wilt schrijven, moet je daar ook nog speciale dingen voor doen.
Compileren en draaien van Applications
[bewerken]Nu we weten wat Applications zijn, gaan we beginnen met het maken ervan. Voordat we echter beginnen met het schrijven van code, moeten we voorbereidingen treffen, net zoals bij de eerste les van gewone Assembly.
Bij het maken van Applications raadt Texas Instruments om onduidelijke redenen aan om in plaats van TASM de Zilog Developer Studio (ZDS) te gebruiken, maar in dit boek blijven we gewoon TASM gebruiken, omdat de ZDS moeilijker te gebruiken is; bovendien wordt daar een andere syntaxis gebruikt.
Maak in de map C:\ASM\TASM een nieuwe batch-file (asmapp.bat) aan met de volgende inhoud:
@echo off echo ==== Compileert %1.z80 als Application voor de TI-83+ of TI-84+. ==== tasm -80 -i -g0 c:\asm\source\%1.z80 c:\asm\exec\%1.hex if errorlevel 1 goto FOUTEN echo ==== Klaar; de Application is opgeslagen in Exec\%1.hex ==== goto KLAAR :FOUTEN echo ==== Fouten!!! ==== :KLAAR del c:\asm\source\%1.lst > NUL echo ==== Klaar ====
Het valt je misschien op dat we DevPac8x niet meer gebruiken, die is namelijk niet meer nodig bij Applications. Verder heeft TASM de instructie -g0
meegekregen, deze instructie zorgt ervoor dat de uitvoer in hex-formaat is, dit is nodig voor Applications.
Om een Application te compileren, kun je hem gewoon weer in de map Source zetten en daarna voer je in de opdrachtprompt uit:
asmapp AppNaam