Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File8.2.1.1 Startupcode für Accessories TOS Um zu testen, ob eine Applikation als Programm oder als Accessorie gestartet worden ist, kann man wie folgt vorgehen: ∙ wenn beim Programmstart das Register a0 den Wert Null hat, dann handelt es sich um einen normalen Programmstart ∙ anderenfalls handelt es sich um ein Accessorie, und Register a0 enthält einen Zeiger auf die (unvollständig) ausgefüllte BASEPAGE. Die TPA ist bereits passend geschrumpft (auf die Summe von Basepagegröße und der Länge der drei Programmsegmente), ein Stack muß erst noch angelegt werden. Hinweis: Mit diesen Informationen ist es kein Problem, den Startupcode für ein Programm so zu gestalten, daß es selbständig erkennt, wie das Programm gestartet worden ist, und entsprechend die Initialisierung fortzusetzen. Bei den meisten C-Compilern wird im Startupcode automatisch die externe Variable _app initialisiert, die genau dann gleich Null ist, wenn das Programm als Accessorie gestartet worden ist. Damit kann man Programme so entwickeln, daß sie sowohl als Accessorie als auch als normales Programm eingesetzt werden können. Querverweis: AES Accessories in MagiC Programmstart und TPA