	     Wie man fr FutureOS ein Programm erstellt.
	     -------------------------------------------
In diesem Text wird erklrt, wie man fr das FutureOS programmiert. Da 
will ich mal versuchen einen einfachen Weg aufzuzeigen, denn so schwer 
ist es ja gar nicht.
Grundstzlich ist es so, da es fr das OS (FutureOS) momentan nur 
mglich ist unter Assembler oder unter C zu programmieren. Da das OS 
aber sowieso sehr viel Wert auf Geschwindigkeit legt, ist Assembler 
gerade richtig.
Um ein Programm fr das OS zu schreiben, kann man prinzipiell jeden 
Assembler benutzen. Persnlich arbeite ich mit MAXAM von Arnor. MAXAM 
bietet den Vorteil, da er aus Editor und Assembler besteht. Im Groben 
kann man dabei folgendermaen vorgehen:

- Laden oder Eingeben des Quell-Codes. (Abspeichern nicht vergessen!)
- Assemblieren z.B. Adresse &9000.
- Unter Maxam das RSX-Kommando !FDESK aufrufen, und damit ins OS 
  einspringen.
- Das assemblierte Programm mit dem RUN Icon starten. Der Aufruf kann 
  auch durch den Maschienen-Monitor erfolgen. Als RAM-Konfiguration 
  ist normalerweise &C0 anzugeben.

Das Programm luft nun ab, und sollte anschlieend ins Desktop 
zurckkehren. Nun kann man das OS verlassen (END Icon) und direkt mit 
Maxam weiter arbeiten. Wenn man Maxam 1-1/2 benutzt, dann lt sich 
der Quell-Code schneller laden, da ja PROTEXT als Editor dient.

Worauf sollte man nun achten? Nun, beim Aufruf des OS werden einige 
Adressen verndert, deshalb kann man sein Programm nicht DIREKT an 
JEDE beliebige Adresse assemblieren. Folgende Adressen bzw. Bereiche 
werden durch den Aufruf des OS verndert:

* Adresse &0038: dort steht nun &C9 (Code fr RET). Die maskierbaren 
  Interrupts sind blockiert.
* Adressen &0066 & &0067: werden mit den Bytes &ED, &45 beschrieben 
  (Code fr RETN). Auch die UNmaskierten Interrupts sind blockiert.
* Adresse &4000: Diese Adresse wird mit &00 oder &FF beschrieben. Dies 
  geschieht beim E-RAM Check.
* Adressen &8FFE &8FFF: werden mit zwei Bytes beschrieben (SP Puffer 
  beim Start des OS).
* Der Bereich ab &A000 wird mit &00 initialisiert, denn ab &A000 
  befinden sich im FutureOS die File-Tagging-Bytes (FTBs), der Text-
  Bildschirm und die System-Variablen.

Der restliche Speicher von &0000 bis &9FFF, sowie das freie E-RAM 
steht prinzipiell zur freien Verfgung.
Da das OS den unteren 16 KB Block als Sortier-Puffer benutzt, ist es 
nicht ratsam sein Programm direkt dort hin zu assemblieren. Nebenbei, 
dort liegt unter Maxam auch der Quell-Code. Im Bereich von &4000 bis 
&7FFF findet das Banking statt!
Normalerweise ist es sinnvoll das Programm ab &8000 oder &9000 zu 
assemblieren. Achtung: Beim Laden oder Speichern von Dateien unter 
FutureOS dient der Bereich von &8000 bis &8FFF manchmal als Sektor-
Puffer.
Will man also auf Nummer sicher gehen, dann sollte man ab &9000 
assemblieren. Es stehen immerhin 4 KB zur Verfgung. Dieser Bereich 
von &9000 bis &9FFF wird vom OS nicht angetastet. So ist es mglich 
sein Progrmm zu assemblieren, das OS aufzurufen, dann z.B. 
irgendwelche Daten zu laden und dann das Programm ab &9000 aufzufufen. 
Der Bereich von &9000 bis &9FFF ist zwar "nur" 4 KB gro, aber fr 4KB 
Code mu man schon mit groen Quell-Code-Dateien arbeiten! Die 
Variablen des Programms knnen ja irgendwo sonnst abgelegt werden, in 
unseren Beispiel unterhalb &9000. Die Variablen mssen natrlich vom 
Programm initialisiert werden. Solange man die Interrupts deaktiviert 
lt und auf RST Befehle verzichtet kann man seine Variablen oder 
Puffer ab &0000 anlegen.
Bei greren Programmen, d.h. Code grer als 4KB, ist der Quell-Code 
bereits riesig, und Maxam mu sowieso von Disk assemblieren, und dann 
wird der MC-Code ja auch meistens auf Diskette geschreiben. Dieser 
Code kann dann ja unter FutureOS geladen und anschlieend gestartet 
werden. Dabei steht der gesammte Speicher von &0000 bis &9FFF zur 
Verfgung (und zwar inclusive der Int & RST Adressen).
Das E-RAM kann man nutzen, wenn es in den XRAM_?? Variablen 
freigegeben wurde. 
Notfalls kann man auch den Bereich von &A000 bis &AFFF verwenden (44 
KB im Hauptspeicher nutzbar!!), vorrausgesetzt es findet wrend dieser 
Zeit kein Disketten-Betrieb statt. Denn ab &A000 befinden sich die 
FTBs, und die Arbeit mit Disketten verndert diese 4KB. Weiterhin kann 
man dem Bereich von &B000 bis &B7FF temporr als Datenspeicher nutzen, 
dieser Bereich wird allerdings auch von einigen Floppy-Disc-Routinen 
berschrieben.
Bitte auch in der FutureOS ROM Dokumentation, dem Handbuch und in den 
Dateien #D.D und #E.D nachschlagen.
Wenn sich jemand fr Programmierbeispiele interessiert, dann sei an 
dieser Stelle auf die Quell-Codes der zum OS mitgelieferten Programme 
verwiesen. ein Programm erstellt.
	     -------------------------------------------
In diesem Text wird erkl