PofoWiki

Die ultimative Informationsquelle zum ATARI Portfolio

Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:doku:techrefguide:anhangd

ANHANG D: SOFTWARE ENTWICKLUNGSVERFAHREN

STAPEL ODER SPEICHERGRÖßE VERRINGERN

Für manche kompilierte (.EXE) Programme ist es erforderlich den vom Compiler zugewiesenen Stapel und die Speichergröße zu verringern wenn die Programme für den Portfolio entwickelt werden. Dies ist vor allem dann wahr wenn die internen Anwendungen bei laufendem Programm aufrufbar sein sollen.

Microsofts Assembler beinhaltet eine Utility (EXEMOD) die es erlaubt den maximal benötigten Speicher im Header der .EXE-Datei zu verändern. Es ist auch möglich diese Werte bei den meisten Linkern einzustellen. Ein Programm auf diese Weise zu konfigurieren schafft genügend Speicher um die internen Anwendungen auszuführen.

SPEICHERZUWEISUNG

Programme auf dem Portfolio sollten so gestaltet werden, dass sie nur den Speicher beanspruchen den sie auch wirklich brauchen. Überschüssigen Speicher freizugeben erlaubt es die internen Anwendungen über dem laufenden Programm zu starten.

Zum Beispiel, im Normalfall weist DOS einem .COM-Programm immer den gesamten freien Speicher zu wenn es aufgerufen wird. Ein „anständiges“ Portfolioprogramm sollte die DOS-Funktion „Resize Memory Block“ (Int 21H Fn 4AH) verwenden um den Speicher auf die benötigte Menge zu begrenzen. Dies wird in den meisten Fällen dafür sorgen, daß genügend freier Speicher vorhanden ist um auch die internen Anwendungen zu starten.

MS-DOS KOMPATIBILITÄT

Denken sie daran, dass, wie in Abschnitt 3.4 erwähnt, Portfolios DOS zu DOS 2.11 kompatibel ist, mit ein paar Verbesserungen um es kompatibler zu DOS 3.XX zu machen. Bedenken sie, dass die Run-Time-Bibliotheken mancher Compiler-Pakete Betriebssystemdienste benötigen, die nur von neueren MS-DOS Versionen geboten werden.

DEN PORTFOLIO ERKENNEN

Es ist möglich einen Code zu erzeugen der zur Laufzeit feststellt ob das Programm auf dem Portfolio ausgeführt wird. Der beste Weg den Portfolio zu erkennen ist es den Urheberrechtshinweis „© DIP“ im ROM bei F000:FFE6H zu prüfen. Es ist auch möglich zu prüfen ob der Int 61H der Application Environment Services zur Verfügung steht (d.h. entweder auf dem Portfolio oder auf einem PC auf dem die Entwicklungsumgebung I61.EXE ausgeführt wurde), indem sie die zwei Bytes „DS“ prüfen, die unmittelbar vor der Adresse stehen auf die der Int 61 Vektor zeigt.

SICHERHEITSSCHUTZ FÜR SPEICHERKARTEN

Ein einfacher und wirksamer Weg Software auf ROM-Karten zu schützen ist es ein Steuerbyte irgendwo auf der Karte einzubetten. Die Konvention ist dieses Steuerbyte in den „Non-Sxstem disk“ Text auf dem Bootsektor der Karte zu platzieren. (Obwohl er auf einer ROM-Karte an irgendeiner Stelle platziert werden könnte von der der DOS-Befehl Copy es nicht kopieren kann.)

AUOMATISCHES ABSCHALTEN VERHINDERN

Um zu verhindern, daß der Portfolio sich nach ein paar Minuten ohne Tastendruck automatisch abschaltet muss verhindert werden, dass der Int 16H Fn 0 ausgeführt wird, es sei denn es steht ein Tastendruck bereit. Dies könnte man global erledigen indem man ein Terminate And Stay Resident Programm schreibt, das den Vector von Int 16H abgreift und die Aufrufe der Funktion 0 durch wiederholte Aufrufe der Funktion 1 ersetzt bis ein Tastendruck erfolgt. Da dies aber den Stromverbrauch erheblich steigert, sollte man trotzdem einen langen, unfehlbaren Timer einfügen.

SPERREN DER INTERNEN ANWENDUNGEN

Das Starten der internen Anwendungen lässt sich verhindern, indem man das Flag (app_inapp) setzt, das anzeigt, dass bereits eine Anwendung läuft. Dies verhindert, dass die Hot-Keys eine weitere Anwendung starten können.

 app_psp       db     100H-2 dup(?)      ;PSP der Anwendung
               dw     ?
 app_Int16     dw     ?                  ;ursprünglicher Int 16
               dw     ?
               dw     ?
 app_oldpsp    dw     ?                  ;ursprüngliches PSP beim Einstieg
 app_newds     dw     ?                  ;Datensegment der Anwendung
 app_inapp     dw     ?                  ;zählt Aufrufe, 0 oder 1.
hardware/doku/techrefguide/anhangd.txt · Zuletzt geändert: 24/09/2007 00:09 (Externe Bearbeitung)