home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / GFABAS36.LZH / README.36 < prev    next >
Text File  |  1991-04-18  |  8KB  |  183 lines

  1. READ.ME zum GFA-BASIC 3.6 TT                         Düsseldorf, den 18.4.91
  2.  
  3. Im Lieferumfang des GFA-BASIC 3.6 ist KEIN Run-Only-interpreter mehr ent-
  4. halten. Der Run-Only-Interpreter ist durch den mitgelieferten Compiler
  5. überflüssig geworden.
  6.  
  7. Die Version 3.6 des GFA-BASICs für die Atari ST-Reihe ist jetzt auch auf dem
  8. Atari TT 030 lauffähig. Es gibt ein paar Dinge zu beachten, wenn ein Programm
  9. sowohl auf dem TT als auch auf ST und STE laufen soll.
  10.  
  11. Im TT gibt es zwei Arten von Hauptspeicher:
  12.  
  13. ST-RAM: In diesem Speicherbereich haben der Prozessor, der Video-Shifter und
  14. die DMA-Bausteine Zugriffsmöglichkeiten auf den Speicher.
  15.  
  16. TT-RAM: In diesem Speicherbereich, den es in STs und STEs nicht gibt, hat
  17. nur der Prozessor Zugriff, und muß somit keine Wartezyklen für die
  18. Synchronisation mit dem Shifter und den DMA-Kanälen einlegen. So ist die
  19. Ausführung von Programmen und der Zugriff auf Daten in diesem Speicher
  20. deutlich schneller. Dafür gibt es hier keine Möglichkeit, mit XBIOS(5)
  21. ("Setscreen")  in diesem Speicher einen alternativ anzeigbaren Bildspeicher
  22. anzulegen.
  23.  
  24. Ein Byte im Header ausführbarer Programme (.PRG, .TOS, .TTP, .APP) ist
  25. dafür zuständig, ob diese Programme in das normale ST-RAM oder in das
  26. TT-RAM geladen werden. Dieses Byte (Offset 25) kann die Werte 0, 1 und 7
  27. annehmen. Bei 0 und 1 wird das Programm vollständig in das ST-RAM geladen,
  28. und auch alle Anforderungen von Speicher werden aus dem ST-RAM bedient.
  29. Bei dem Wert 7 wird das Programm, wenn möglich, in das TT-RAM gelegt.
  30. Ab Version 3.6 arbeitet das GFA-BASIC in beiden Einstellungen. Nur für
  31. Programme die mittels XBIOS(5) einen zweiten, anzeigbaren Bildschrim
  32. verwalten (wie das GFA-BASIC selbst in allen vorherigen Versionen), oder
  33. DMA-Sound benützen, ist es nötig, dieses Byte zurückzusetzen.
  34.  
  35. Auf dem TT gibt es für neue Programme auch eine neue Gemdos-Funktion.
  36.  
  37.             adr%=GEMDOS(68,L:size,art&)
  38.  
  39. Diese Funktion entspricht der Funktion MALLOC, zusätzlich wird in art&
  40. übergeben, was für Speicher angefordert wird. Dabei steht 0 für ST-RAM, 1
  41. für TT-RAM. Bei art&=2 wird ST-RAM angefordert, aber wenn nicht genügend
  42. ST-RAM frei ist, wird auch TT-RAM benutzt. Bei art&=3 wird, wenn möglich
  43. TT-RAM, sonst ST-RAM angefordert. Für size=-1 wird, wie bei MALLOC, die
  44. Größe des entsprechenden freien Speichers ausgegeben.
  45.  
  46. Auf dem TT, wie auch auf STs mit Großbildschirmen, beträgt die Größe des
  47. Bildspeichers nicht mehr konstant 32000 Byte, sondern ist in der Regel
  48. erheblich größer (153600 Byte). Dies bewirkt, daß die Befehle GET und PUT
  49. nicht mehr jeden beliebigen Bildausschnitt bearbeiten können. Zur Berechnung
  50. der Größe eines Bildausschnittes gibt es die neue Funktion
  51.  
  52.             bytes%=GETSIZE(x,y,x,y)
  53.  
  54. die die Größe des Strings liefert, der für ein entsprechendes GET nötig wäre.
  55. Ergibt GETSIZE einen Wert über 32000, so ist eine Aufteilung auf mehrere
  56. GETs nötig.
  57.  
  58. Zur Ermittlung der Auflösung gibt es die Funktionen 
  59.  
  60.                 _X, _Y und _C
  61.  
  62. Sie liefern die Breite und Höhe des Bildschirms bzw. die Innengröße des
  63. aktiven Fensters, sowie die Anzahl möglicher Farben.
  64. Wenn die Programme auch unter GFA-BASIC Version 3.0 und 3.5 lauffähig sein
  65. sollen, sollten die statt _X,_Y und _C die Funktionen WORK_OUT(0), (1) bzw.
  66. (13) verwenden werden.
  67.  
  68. Die Rückgabewerte der Funktion XBIOS(4) sind:
  69.  
  70.             0 für ST-Lores      (320  200 16)
  71.             1 für ST-Medres     (640  200 4)
  72.             2 für ST-Hires      (640  400 2)
  73.             4 für TT-Medres     (640  480 16)
  74.             6 für TT-Hires      (1280 960 2)
  75.             7 für TT-Lores      (320  480 256)
  76.  
  77. Bitte XBIOS(4) möglichst nicht verwenden, da diese Werte jederzeit von Atari
  78. erweiterbar sind und bei ST-Großbildschirmen auch nur 2 zurückgegeben wird.
  79.  
  80.  
  81. Die Funktion
  82.  
  83.             TT?
  84.  
  85. liefert 0, wenn der Rechner ein normaler ST ist.
  86. 1 wird zurückgegeben, wenn eine 68030 (oder 68020) CPU vorhanden ist.
  87. Bei dem Wert 3 wurde zusätzlich das Vorhandensein eines 68881 oder 68882
  88. Coprozessors entdeckt.
  89. Beim Aufruf dieser Funktion werden ggf. einige wenige Arithmetikroutinen
  90. so geändert, das sie den Coprocessor bzw. die 68030 CPU besser ausnutzen.
  91. Da das Zahlenformat des GFA-BASICs (aus Geschwindigkeitsgründen bei Fehlen
  92. eines Coprozessors) nicht genau dem IEEE-Standard entspricht, wird wegen
  93. der nötigen Konvertierung zwar nicht die volle Geschwindigkeit des 68881
  94. erreicht, aber die Beschleunigung ist trotzdem erheblich. Geändert werden
  95. die Funktionen SIN, COS, TAN, EXP, LOG und LOG10.
  96.  
  97. Anmerkung für Besitzer eines 68020 und 68881 Rechners, der kein TT ist:
  98. Das GFA-BASIC testet das Vorhandensein eines Coprozessors anhand des
  99. Cookie-Jars. Eine Möglichkeit, diesen Cookie-Jar zu simulieren, ohne eine
  100. neue TOS-Version zu besitzen ist:
  101.  
  102.             old%=LPEEK(&H5a0)
  103.             a$="_FPU"
  104.             SLPOKE &H5a0,V:a$
  105.             ~TT?
  106.             SLPOKE &H5a0,old%
  107.             
  108. Bitte nicht benutzen, wenn keine FPU vorhanden ist. Besser ist natürlich,
  109. wenn ein AUTO-Ordner-Programm benutzt wird, das, nach Atari-Convention,
  110. einen Cookie-Jar einrichtet.
  111.  
  112. Eine Einschränkung gilt noch, wenn das GFA-BASIC auf einen TT läuft. Es läßt
  113. sich dann mit RESERVE der Speicher nur verkleinern, nicht vergrößern (Der
  114. Grund dafür ist ein betriebssysteminerner Unterschied in der Speicheranfor-
  115. derungsstrategie). Ein entsprechender Versuch wird stillschweigend ignoriert.
  116.  
  117. Zur Unterstützung der erweiterten seriellen Schnittstellen des TTs gibt es
  118. nur die entsprechenden BIOS- und XBIOS-Aufrufe. Neu ist dabei:
  119.  
  120.             old&=XBIOS(44,dev&)
  121.             
  122. Mit diesem Aufruf läßt sich das Device "AUX:" (OUT 1,x, INP(1), INPAUX$...)
  123. auf die anderen Schnittstellen umleiten.
  124. Dabei steht dev&=6 für den alten Port "Modem 1", 7 ist "Modem 2", 8 ist
  125. "Serial 1" und 9 ist "Serial 2".
  126. Bei I/O direkt über das BIOS (INP(n) <=> BIOS(2,n), INP?(n) <=> BIOS(1,n),
  127. OUT n,x <=> BIOS(3,n,x), OUT?(n) <=> BIOS(8,n)) sind die Schnittstellen
  128. auch gezielt ansteuerbar.
  129. Falsche Werte für n führen zum Absturz. Mit XBIOS(44,-1) läßt sich die
  130. Einstellung auslesen. Bei einem Rückgabewert von 44 wird diese Funktion
  131. nicht unterstützt (also ST/STE).
  132.  
  133. Auch für die neue Video-Hardware gibt es einige XBIOS-Aufrufe. 
  134.  
  135.         oshm&=XBIOS(80,shm&)        // EsetShift
  136.  
  137. ermittelt und setzt TT-Shiftmode (stattdessen 82/86/87 benutzen)
  138.  
  139.         oshm&=XBIOS(81)             // Egetshift
  140.  
  141. ermittelt TT-Shiftmode
  142.  
  143.         obnk=XBIOS(82,bnk&)         // EsetBank
  144.  
  145. Setzt (und liest) Farbregisterbank. Der TT verfügt über 256 Farbregister.
  146. Hier kann in 16- und 4-Farben Modi schnell zwischen 16 verschiedenen
  147. Paletten umgeschaltet werden.
  148.  
  149.         ocol&=XBIOS(83,idx&,col&)   // EsetColor
  150.  
  151. Setzt TT-Farbregister #idx& auf col& (&hRGB)
  152.  
  153.         ~XBIOS(84,idx&,cnt&,l:adr%) // EsetPalette
  154.  
  155. Setzt cnt& Farben ab Nummer idx& auf die Werte ab adr% (z.B. V:a&(12))
  156.  
  157.         ~XBIOS(85,idx&,cnt&,l:adr%) //EgetPalette
  158.  
  159. Liest cnt& Farben
  160.  
  161.         old&=XBIOS(86,gray&)        // EsetGray
  162.  
  163. Setzt/Löscht Grau-Bit im TT-Shiftregister
  164. Nach ~XBIOS(86,1) werden die Farbregister nicht mehr als RGB-Werte aufgefaßt,
  165. sondern als Graustufen. Sinnvoll ist dieser Aufruf besonders in TT-Low, da
  166. hier 256 Farben zur Verfügung stehen, denen in einer Schleife
  167. (~XBIOS(83,i%,i%)) entsprechende Graustufen zugeordnet werden können.
  168.  
  169.         old&=XBIOS(87,smear&)       // EsetSmear
  170.  
  171. Setzt/Löscht smear-Bit im TT-Shiftregister. Nach XBIOS(87,1) werden Punkte
  172. in Color 0, nicht mehr mit dem entsprechenden Farbwert angezeigt, sondern
  173. mit dem letzten von 0 verschiedenen Farbwert. Spezielle Programme können
  174. einfach durch Zeichnen von Linien ganze Flächecn einfärben.
  175.  
  176. Bei diesen Aufrufen gilt, das bei negativen Parametern nur die Rückgabe des
  177. alten Registerwertes erfolgt.
  178.  
  179. Wichtig beim Testen: Ein kleines Programm schreiben und compilieren, das
  180. diese Register auf Defaultwerte setzt, da diese Registe bei SAVE,A) statt
  181. "!" dann "//" ausgegeben, nach DEFLIST 8 entsprechend "/*".
  182.  
  183.