PofoWiki

Die ultimative Informationsquelle zum ATARI Portfolio

Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:doku:techrefguide:anhangd

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
hardware:doku:techrefguide:anhangd [26/07/2007 12:07] – angelegt uxthardware:doku:techrefguide:anhangd [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
 ===== ANHANG D: SOFTWARE ENTWICKLUNGSVERFAHREN ===== ===== ANHANG D: SOFTWARE ENTWICKLUNGSVERFAHREN =====
  
-=== STAPEL ODER SPEICHERGRÖßE verringern === 
-Für manche komplierte (.EXE) Programme ist es erforderlich den vom Kompiler 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 maximalen 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.\\+ 
 +=== 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 === === 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 zu über dem laufenden Programm zu starten.\\+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. 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 === === MS-DOS KOMPATIBILITÄT ===
-Denken sie daran, dass, wie in Abschnitt 3.4 erwähnt, der Portfolio zu DOS 2.11 ist, mit ein paar Verbesserungen um es kompatibler zu DOS 3.XX zu machen. Bedenken sie, dass die Run-Time-Libraries mancher Kompiler Pakete Betriebssystemdienste benötigen, die nur neuere MS-DOS Versionen bieten.\\+Denken sie daran, dass, wie in Abschnitt [[hardware:doku:techrefguide:abschnitt3#unterschiede_zwischen_portfolio_dos_und_ms-dos|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 DETEKTIEREN ===+ 
 + 
 +=== 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 "(c) 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.\\ 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 "(c) 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.\\
Zeile 27: Zeile 35:
  
  
-=== AUOMATISCHES ABSCHALTEM VERHINDERN ===+ 
 +=== 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.\\  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 === === SPERREN DER INTERNEN ANWENDUNGEN ===
-Das Starten der interne 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.\\+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    app_psp       db     100H-2 dup(?     ;PSP der Anwendung
hardware/doku/techrefguide/anhangd.1185445440.txt.gz · Zuletzt geändert: 16/02/2024 17:02 (Externe Bearbeitung)