Monkey Amiga Targets

Kommentare anzeigen Worklog abonnieren
Gehe zu Seite 1, 2  Weiter

Worklogs Monkey Amiga Targets

64Bit Systeme machen immer nur Ärger

Donnerstag, 27. Juni 2013 von Farbfinsternis
Version 0.13 ist wie versprochen nur schlappe 800kb klein und setzt Version 0.12 voraus. Einfach das Archiv entpacken und über 0.12 kopieren.

    Was ist neu?
  • Window Flags (WFLG_) habe ich von amiga.intuition nach amiga.window verschoben
  • Intuition.OpenWindowTags() habe ich entfernt, Fenster werden jetzt grundsätzlich über die Klasse "Window" verwaltet
  • Window.Title:Void(title:String) ändert den Fenstertitel. Das funktioniert nun auch endlich auf AROS 64
  • amiga.window importiert nun amiga.rastport, in Vorbereitung auf 0.14 in dem wieder Zeichenmethoden eingeführt werden.


http://amigamonkey.colorflow.d...y.0.13.zip

AROS complete

Mittwoch, 26. Juni 2013 von Farbfinsternis
Version 0.12 erweitert die Liste der kompilierbaren Ziele um:

- AROS i386
- AROS 64Bit
- AROS PPC

ausführbare Beispiele für AmigaOS3.x und die drei AROS Ziele finden sich unter \bananas\basic\basic.build\amiga\

http://amigamonkey.colorflow.d...y.0.12.zip (ca. 23MB)

Ab Version 0.13 werden die Updates kumulativ sein damit man nicht jedesmal das riesen Paket herunter laden muss.

Wieder bei 0.1

Samstag, 22. Juni 2013 von Farbfinsternis
Prinzipiell muss ich die Versionierung von vorn beginnen da mit den massiven Änderungen die Mark Sibly an Monkey vorgenommen hat, auch ich wieder von vorn beginnen muss. Also findet ihr nun unter http://amigamonkey.colorflow.d...Monkey.zip praktisch die Version 0.1

Neu ist die Trennung der Module in Amiga spezifische Definitionen. Während "Exec" noch kein eigenes Modul hat, aber per Default immer definiert ist, gibt es nun das Modul "amiga.intuition" und das Modul "amiga.window".

Man kann nun entweder das Modul "amiga" importieren und somit alles was es so gibt für dieses Target, oder aber man importiert ganz gezielt einzelne Module ... je nach dem was man mit seinem Programm machen will. Das hat zum Einen den Zweck dass man damit das Executable verkleinert (kleiner als 143kb geht leider nicht), zum Anderen dass spezifische Module leichter hinzugefügt werden können. Außerdem bietet es die Möglichkeit eine Ähnlichkeit zur Amiga C/C++ Programmierung zu erreichen. Ich weiß ... Monkey sieht kaum aus wie C/C++, aber auch kaum noch wie Basic obwohl es ein Basic-Dialekt ist.

Ein lauffähiges AmigaMonkey Programm:
Code: [AUSKLAPPEN]

Strict

Import amiga.intuition


' der Einsprungspunkt eines jeden Monkey Programms
Function Main:Int()
   New AmigaMonkey()' wir instantiieren unser Programm
   Return 0
End

Class AmigaMonkey
   Method New()
      ' zuerst ein paar Angaben wie unser Fenster aussehen soll...
      Local windowFlags:Int   = WFLG_DRAGBAR | WFLG_CLOSEGADGET | WFLG_ACTIVATE
      ' ...dann sagen wir auf welche Ereignisse das Fenster reagieren soll...
      Local idcmpFlags:Int   = IDCMP_CLOSEWINDOW | IDCMP_MOUSEMOVE |  IDCMP_INTUITICKS
      ' ...und jetzt öffnen wir das Fenster...
      Self.myWindow = New Window("Hallo Amiga", 20, 20, 320, 256, windowFlags, idcmpFlags)
      ' ...und hüpfen in die Hauptschleife:
      Self.main()
      
   End
   
   
   Method main:Void()
      Local exitFlag:Bool = False
      
      While Not exitFlag
         ' wenn Intuition meldet dass der Closebutton des Fensters
         ' gedrückt wurde....
         If Self.myWindow.WaitEvent() = IDCMP_CLOSEWINDOW exitFlag = True
      Wend
      
      ' ...schliessen wir das Fenster und beenden das Programm
      Self.myWindow.Close()
   End
   
   Private
   Field myWindow:Window
End


Dies tut recht wenig ... es öffnet ein Fenster an der Position 20, 20 mit den Dimensionen 320x256, setzt den Titel des Fensters auf "Hallo Amiga" und wartet dann in der Methode "main" darauf dass das Fenster geschlossen wird. Der Garbage Collector kümmert sich dann um die Freigabe des allokierten Speichers (was in älteren Versionen des Targets noch nicht ging).

Die Window-Flags (WFLG_) und IDCMP Flags sind direkt nutzbar wie man oben in den Definitionen sehen kann. Derzeit nutzt die Klasse "Window" nur die Methode "OpenWindowTags", die anderen Möglichkeiten ("OpenWindowTagList" etc..) können aber problemlos nach gereicht werden.

Das oben verlinkte Archiv beinhaltet eine fast komplette Monkey-Installation in der Version V71b. Ich habe aus meiner Pro-Version alles entfernt was nicht Public Domain ist. Somit kann man das Archiv direkt nutzen und muss nichts mehr hinzu kopieren. Das Programm "monkey" ist eine recht gute IDE und das Target "Amiga" ist per Default eingestellt.

Zwei Textdateien erklären weitere wichtige Dinge zum Umgang mit diesem Archiv:
"amiga.changelog.txt" ist halt das Changelog ...
"amiga.readme.txt" erzählt etwas mehr über die Installation und Verwendung ....


Als nächstes muss ich die String Klasse anfassen .... leider hat Mark Sibly diese (und auch andere Konstrukte) nicht in einen Namespace gesperrt so dass ich sie wieder einmal umbenennen und bearbeiten muss. Wenn das passiert ist sollten auch die Ziele MorphOS, AROS32 und AROSPPC wieder funktionieren.

AmigaMonkey 2013

Mittwoch, 12. Juni 2013 von Farbfinsternis
Mehr als ein Jahr hat es gedauert bis sich der Tornado über Monkey gelegt und Mark Sibly das System so gut wie komplett neu definiert hat. Das neue Target-System ist nun stabil und wird wohl vorerst keine weiteren Änderungen erfahren. Somit habe ich damit begonnen das Amiga-Target auf dieses völlig neue System anzupassen.

Dieser Source:
user posted image

erzeugt schonmal folgende Ausgabe:
user posted image

Warum das jetzt so spannend ist? In den letzten Versionen des Targets musste ich tief in essentielle Teile von Monkey eingreifen um solch eine Ausgabe erzeugen zu können. Jetzt hat sich tatsächlich nur das Target geändert, AmiDevCpp übersetzt den verbesserten Standard Module-Code nun ohne zu murren oder mit Amiga relevanten Definitionen zu kollidieren.
Das bedeutet dass ich AmigaMonkey C++ Code endlich in einen Namespace sperren kann und nicht mehr mit Mark Siblys Bezeichnern in Konflikt gerate. Das hat den Vorteil dass zum Einen der GC (GarbageCollector) endlich funktioniert und außerdem zum ersten Mal überhaupt das Modul "Reflection" verwendet werden kann.

In den letzten Versionen des Targets wurde alles in ein Modul gepackt um die Einfachheit von Monkey zu transportieren. Der Vorteil: Man kann so loslegen wie die Monkey-Folks es weltweit tun. Der Nachteil: Je umfangreicher das Modul wird, umso größer wird das Executable. Die Lösung: Amiga Libraries (dos, intuition, graphics etc.) werden in einzelnen Modulen gewrapped welche wiederum im optionalen Modul "amiga" in Monkey kompatible Funktionen gefasst werden. Wer also alles haben will importiert "amiga", wer differenzierter arbeiten möchte darf die Libraries einzeln importieren.

Mit der neuen Monkey Version (derzeit V71b) muss ich auch mit der Portierung von Trans (transcc) von vorn beginnen und es muss derzeit immer noch unter Windows via AmiDevCpp für Amiga und Derivate kompiliert werden. Die Liste sieht folgendes vor:

- AmigaOS3
- AmigaOS4
- AROS32
- AROS64
- AROSPPC
- MOS

...funktionieren tun derzeit die Ziele AOS3, AROS32 und AROSPPC

eine Config für alle Ziele sieht derzeit so aus:
Zitat:

AMIDEVCPP_PATH = "C:\AmiDevCPP"
BUILD_AOS3 = "true"
BUILD_AOS4 = "true"
BUILD_AROS32 = "true"
BUILD_AROS64 = "true"
BUILD_AROSPPC = "true"
BUILD_MOS = "true"


Sobald mehr geht als die substanziellen Spracheigenschaften (Class, Function, Method etc.) werde ich eine neue Version hochladen.

Kleine Änderungen...

Freitag, 24. Februar 2012 von Farbfinsternis
Monkey 0.26 kann jetzt von http://www.sedm.de/monkey/amonkey/AMonkey026.zip heruntergeladen werden. Hier das Changelog:

  • geändert : Die Mojo-Reimplementation heisst jetzt "Amiga"
  • geändert : Das Target selbst heisst jetzt auch "Amiga" und nicht mehr "AOS3"
  • geändert : Das Target besitzt nun ein eigenes Config File
  • geändert : Man kann jetzt für jede einzelne Plattform angeben ob sie kompiliert werden soll oder nicht. Auch die Aros Ziele sind nun einzeln definierbar
  • geändert : Der Pfad zu den AmiDevCPP Binaries wird jetzt in der Config angegeben und muss nicht mehr in die Windows PATH Variable eingetragen werden
  • geändert : Die Monkey Demo wird nicht mehr benötigt. Das oben verlinkte Archiv beinhaltet alles was man benötigt um Monkey Programme für den Amiga unter Windows zu kompilieren. Einzig AmiDevCPP muss noch heruntergeladen werden.
  • beachte : Zwar können alle Ziele in der Config auf True gesetzt werden, aber nur AmigaOS3.x, Aros386 und ArosPPC werden derzeit fehlerfrei übersetzt.
  • beachte: Bis "Trans" komplett auf Amiga/MorphOS/Aros portiert ist, muss die Datei config.winnt.txt angepasst werden, die Datei "config.amiga.txt" ist erst relevant wenn sie auf einem Amiga gelesen wird.

Beachte: Es gibt noch keine unabhängige Amiga/MOS/Aros Version von Monkey. Ich schätze dass diese mit Version 0.3 verfügbar sein wird. Auch Amiga Monkey 0.26 benötigt noch Windows um für AmigaOS3.x, AROSi386 und AROS PPC zu kompilieren.

Amiga goes Trans

Sonntag, 12. Februar 2012 von Farbfinsternis
"Trans" kompiliert sich nun selbst erfolgreich für AmigaOS3.x ... leider funktioniert das Kompilat noch nicht, aber das ist nur eine Frage der Zeit. Wenn "trans" für AmigaOS3.x verfügbar ist habe ich das Rüstzeug um es auch für MorphOS, AROS und AmigaOS4.x verfügbar zu machen. Zwar wird man auf Amiga Derivaten nicht die Ziele bedienen können die Monkey normalerweise zur Verfügung stellt, aber eine aktuelle, moderne und neue Programmiersprache für den Amiga kann ja nicht verkehrt sein.

Eine kleinere Anpassung befasst sich mit dem Umstand dass das Target und das "Mojo like" Modul bislang "aos3" hiessen, was natürlich obskur ist wenn man für AOS4, MOS oder AROS kompilieren will. Eigentlich ist es nur Makulatur aber viele User störten sich daran. So habe ich nun das Target so umgebaut dass es auf den Namen "Amiga" hört und auch das "Mojo-Derivat" hat nun den Namen "Amiga".

Images

Dienstag, 13. Dezember 2011 von Farbfinsternis
0.25 macht Monkey bunt!
Download AmigaMonkey 0.25

Changes:
Zitat:

12/13/2011 v0.25
added : class Image
added : Image.Width
added : Image.Height
added : Image.Depth
added : Image.Load:Void(filename:String, remapColors:Bool = False)
added : Image.Free:Void()
added : LoadImage:Image(filename:String)
added : LoadImage:Image(filename:String, remapColors:Byte)
added : Window.DrawImage:Void(img:Image, x:Int, y:Int)
added : DrawImage:Void(win:Window, img:Image, x:Int, y:Int)
added : DrawImage:Void(img:Image, x:Int, y:Int) [Mojo Style]
added : FreeImage:Void(img:Image)
added : Window.SetScreen:Void(pubScreen:String = "workbench")
added : SetScreen:Void(win:Window, pubScreen:String = "workbench")
added : SetScreen:Void(pubScreen:String = "workbench") [Mojo Style]
added : SetUpdateRate:Void(hertz:Int) [only with Mojo Style]
added : Window.getWidth:Int()
added : Window.getHeight:Int()
added : WindowWidth:Int(win:Window)
added : WindowHeight:Int(win:Window)
added : DeviceWidth:Int() [Mojo Style]
added : DeviceHeight:Int() [Mojo Style]
changed : MilliSecs() now returns a 64 bit value
changed : CreateWindow() now has the optional parameter "borderless"
fixed : ClsColor() now affects the BPen
fixed : in Mojo-Style now the workbench will be locked

user posted image
Der Source zum Bild:
Code: [AUSKLAPPEN]

Import amigaos3

Class myApp extends App
   Field mx:Int
   Field my:int
   Field time:Int
   Field FPS:Int
   Field tmpFPS:Int
   Field tmpTime:int
   Field lastFPS:Int
   Field fnt:Font
   Field lastX:Int
   Field lastY:Int
   Field img:Image
   Field bg:Image
   
   Method OnCreate()
      fnt = LoadFont("helvetica.font", 16)
      img = LoadImage("amiga.data/monkey.iff")
      bg = LoadImage("amiga.data/background.jpg")
      
      SetFont(fnt)
      AppTitle("draw with Monkey")
      
      SetColor(255, 255, 0)
      ClsColor(200, 90, 0)
      Cls()
            
      lastX = 0
      lastY = 0
      
      SetUpdateRate(60)
   End
   
   Method OnUpdate()
      mx = MouseX()
      my = MouseY()
      tmpFPS = tmpFPS + 1
      tmpTime = MilliSecs()
      
      if tmpTime - time > 1000
         FPS      = tmpFPS
         tmpFPS   = 0
         time    = tmpTime
      EndIf
   End
   
   Method OnRender()
      DrawImage(bg, 0, 0)
      
      if MouseDown()
         DrawCircle(mx-1, my-1, 3)
         if lastX > 0 And lastY > 0 DrawLine(lastX, lastY, mx, my)
         lastX = mx
         lastY = my
      EndIf
      
      if tmpTime <> time DrawText("FPS: " + FPS, 10, 10)
      
      DrawImage(img, mx, my)
   End
End

Function Main()
   New myApp
End

Diesen Source kann man noch nicht für andere Targets übersetzen da Monkey Fonts nicht kennt, sondern dort ein Image lädt und die Chars als Frame behandelt. Das Amiga Target lädt einen AmigaFont als "DiskFont". Desweiteren imitiert das Amiga Target noch nicht das Verhalten von Mojo was das Filesystem angeht. Mojo erwartet Dateien in "[Name des Projekts].data". Innerhalb dieses Raums kann man dann beliebige Verzeichnisse verwenden. Das Amiga Target berücksichtigt dies noch nicht.

Prinzipiell könnt man jetzt schon Spiele mit Monkey für Amiga programmieren, leider gibt es noch keine Masken oder gar Alpha für Images und Tastatureingaben werden noch nicht berücksichtigt. Wer aber nur mit der Maus und mit rechteckigen Images klar kommt darf loslegen Wink

Ein weiterer Stolperstein ist dass Monkey sich verhält wie sich Systeme neben dem Amiga halt verhalten: Sie malen die Spielegrafik in jedem Frame neu. Mein Rechner malt Crysis2 in einer Sekunde 120 Mal neu. Ein Amiga schafft das leider nicht (außer er ist ein aktueller PPC Rechner oder eine WinUAE Emulation). Es wird noch zahlreiche Änderungen geben um zu gewährleisten dass man mit Monkey auch Spiele schreiben kann die auf einem 14MHz A1200 noch hinreichend laufen ... aber zunächst soll es erstmal komplett sein und funktionieren.

Auf zur 0.26 ... es gibt viel zu tun!

Lines and Circles

Sonntag, 11. Dezember 2011 von Farbfinsternis
Version 0.24 ist am Start.

Zitat:

12/11/2011 v0.24
added : Window.DrawLine:Void(x1:Int, y1:Int, x2:Int, y2:Int)
added : DrawLine:Void(win:Window, x1:Int, y1:Int, x2:Int, y2:Int)
added : DrawLine:Void(x1:Int, y1:Int, x2:Int, y2:Int) [Mojo Style]
added : Window.DrawEllipse:Void(x:Int, y:Int, width:Int, height:Int)
added : DrawEllipse:Void(win:Window, x:Int, y:Int, width:Int, height:Int)
added : DrawEllipse:Void(x:Int, y:Int, width:Int, height:Int) [Mojo Style]
added : Window.DrawOval:Void(x:Int, y:Int, width:Int, height:Int)
added : DrawOval:Void(win:Window, x:Int, y:Int, width:Int, height:Int)
added : DrawOval:Void(x:Int, y:Int, width:Int, height:Int) [Mojo Style]
added : Window.DrawCircle:Void(x:Int, y:Int, radius:Int)
added : DrawCircle:Void(win:Window, x:Int, y:Int, radius:Int)
added : DrawCircle:Void(x:Int, y:Int, radius:Int) [Mojo Style]
changed : at start Monkey stets BPen to pen number 0


Ich weiß dass "DrawEllipse" und "DrawOval" dasselbe tun, aber wenn Monkey da redundant ist muss ich es auch sein Wink

user posted image

Der Code zum Bild:
Code: [AUSKLAPPEN]

Import amigaos3

Class myApp extends App
   Field mx:Int
   Field my:int
   Field time:Int
   Field FPS:Int
   Field tmpFPS:Int
   Field tmpTime:int
   Field lastFPS:Int
   Field fnt:Font
   Field lastX:Int
   Field lastY:Int
   
   Method OnCreate()
      fnt = LoadFont("helvetica.font", 16)
      SetFont(fnt)
      AppTitle("draw with Monkey")
      SetColor(255, 255, 0)
      ClsColor(200, 90, 0)
      Cls()
      
      lastX = 0
      lastY = 0
   End
   
   Method OnUpdate()
      mx = MouseX()
      my = MouseY()
      tmpFPS = tmpFPS + 1
      tmpTime = MilliSecs()
      
      if tmpTime - time > 1000
         FPS      = tmpFPS
         tmpFPS   = 0
         time    = tmpTime
      EndIf
   End
   
   Method OnRender()
      if MouseDown()
         DrawCircle(mx-1, my-1, 3)
         if lastX > 0 And lastY > 0 DrawLine(lastX, lastY, mx, my)
         lastX = mx
         lastY = my
      EndIf
      
      if tmpTime <> time DrawText("FPS: " + FPS + " Time: " + time, 10, 10)
   End
End

Function Main()
   New myApp
End


Download Amiga Monkey Target 0.24 (ca. 1.1MB)

Zeit und Text

Samstag, 10. Dezember 2011 von Farbfinsternis
Dank der Hilfe und der extremen Geduld einiger a1k Member kann ich heute Version 0.23 präsentieren. Neu sind die Funktionen MilliSecs(), LoadFont(), SetFont() und DrawText().
Zitat:

12/10/2011 v0.23
added : MilliSecs:Int()
added : Window.LoadFont:Font(fontName:String, size:Int)
added : Window.LoadFont:Font(fontName:String, size:Int, style:Int)
added : Window.LoadFont:Font(fontName:String, size:Int, style:Int, flags:Int)
added : Window.SetFont(font:Font)
added : Window.DrawText(text:String, x:Int, y:Int)
added : LoadFont:Font(win:Window, fontName:String, size:Int)
added : LoadFont:Font(win:Window, fontName:String, size:Int, style:Int)
added : LoadFont:Font(win:Window, fontName:String, size:Int, style:Int, flags:Int)
added : LoadFont:Font(fontName:String, size:Int) [Mojo Style]
added : LoadFont:Font(fontName:String, size:Int, style:Int) [Mojo Style]
added : LoadFont:Font(fontName:String, size:Int, style:Int, flags:Int) [Mojo Style]
added : SetFont(win:Window, font:Font)
added : SetFont(font:Font) [Mojo Style]
added : DrawText(win:Window, text:String, x:Int, y:Int)
added : DrawText(text:String, x:Int, y:Int) [Mojo Style]

LoadFont()
LoadFont() lädt derzeit nur Amiga Fonts per OpenDiskFont(), die überladenen Methoden für AFont.load() sind noch nicht in Monkey implementiert. Derzeit kann man nur den Namen und die Größe des gewünschten Fonts angeben.

SetFont()
LoadFont() und SetFont() müssen derzeit explizit aufgerufen werden wenn man mittels DrawText() etwas ins Fenster schreiben möchte. In Zukunft wird Monkey aber einen Default-Font laden (gibt es auf AOS4, AROS und MOS noch ROMFONT?)

DrawText()
Diese Funktion verwendet zwar schon den APen, der BPen ist aber zufällig. Wird noch geändert.

Hier ein Bild mit dem aktuellen Entwicklungsstand:
user posted image

...und hier der Monkey Source im "mojo style" der dieses Bild erzeugt hat:
Code: [AUSKLAPPEN]

Import amigaos3

Class myApp extends App
   Field mx:Int
   Field my:int
   Field time:Int
   Field FPS:Int
   Field tmpFPS:Int
   Field tmpTime:int
   Field lastFPS:Int
   Field fnt:Font
   
   Method OnCreate()
      fnt = LoadFont("helvetica.font", 16)
      SetFont(fnt)
      AppTitle("draw with Monkey")
      SetColor(255, 255, 0)
      ClsColor(90, 120, 200)
      Cls()
   End
   
   Method OnUpdate()
      mx = MouseX()
      my = MouseY()
      tmpFPS = tmpFPS + 1
      tmpTime = MilliSecs()
      
      if tmpTime - time > 1000
         FPS      = tmpFPS
         tmpFPS   = 0
         time    = tmpTime
      EndIf
   End
   
   Method OnRender()
      if MouseDown() DrawRect(mx-1, my-1, 3, 3)
      if tmpTime <> time DrawText("FPS: " + FPS + " Time: " + time, 10, 10)
   End
End

Function Main()
   New myApp
End


Download AmigaTarget for Monkey v0.23 (~1.1MB)


Vielen Dank nochmal an alle Helfer, ohne Euch wäre ich noch nicht so weit!

Update #4

Dienstag, 6. Dezember 2011 von Farbfinsternis
Version 0.22 ist nun online.

user posted image

Neu ist zunächst die Änderung an der Datei "install.txt" welche jetzt "readme.txt" heißt. In dieser Datei gibt es nun Links zu den benötigten Dateien, Hints zu Sachen welche wo nicht funktionieren, und was man derzeit benötigt um Monkey Code zu schreiben und zu kompilieren:
Zitat:

AmigaTarget is a new compiler target for the new programming language "Monkey". You can get the
public domain version of Monkey from http://www.monkeycoder.co.nz/f...emo45c.zip.

with this target you have the ability to compile a Monkey code for Amiga m68k (OS3.x required)
and for the targets AROSi386 and AROS-PPC.

this version is Alpha! at this time there is no Monkey codes wich you can compile for Amiga targets. Read the file
changes.txt to know wich functions are currently implemented.
"Monkey AmigaTarget" builds still run on a naked Amiga1200 with OS3.1

Requirements:
- WindowsXP or newer
- AmiDevCpp from http://amidevcpp.amiga-world.d...up.exe.php
- Monkey as demo from http://www.monkeycoder.co.nz/f...emo45c.zip or the full version

Installation:
1. get Monkey Demo from http://www.monkeycoder.co.nz/f...emo45c.zip
2. extract Monkey Demo
3. extract the AmigaTarget.zip Archive over the Monkey dire&#263;tory
4. install AmiDevCpp from http://amidevcpp.amiga-world.d...up.exe.php
5. add the AmiDevCpp path ([AMIDEVCPP]\usr\local\amiga\bin) to your windows path variable

Ich weiß dass mein Englisch Scheisse ist, wer es korrigieren möchte ist herzlich eingeladen Wink

Die wichtigen Änderungen finden sich in der changes.txt:
Zitat:

12/06/2011 v0.22
added : ready to start winnt_config.txt to /bin/
added : Window.AppTitle:Void(title:String)
added : AppTitle:Void(win:Window, title:String)
added : AppTitle(title:String) [Mojo Style]
added : Window.DrawRect:Void(x:Int, y:Int, width:Int, height:Int)
added : DrawRect(win:Window, x:Int, y:Int, width:Int, height:Int)
added : DrawRect(x:Int, y:Int, width:Int, height:Int) [Mojo Style]
added : SetGraphicsMode:Void(mode:Int)
added : PNG Icon for AOS3 executables
changed : Plot() now called DrawPoint()
changed : added -noixemul to compiler options
changed : removed the targets AmigaOS4.x, MorphOS and AROS-64Bit
changed : /bin/winnt_config.txt is prepared. there is no more need to alter them.
fixed : MouseDown() was active at start
fixed : ClsColor() has changed the current pen


Das Archiv für die Version 0.22 kann wie gehabt unter http://www.sedm.de/monkey/AmigaTarget.zip herunter geladen werden.

Im Archiv enthalten sind Executables für AmigaOS3.x, AROSi386 und AROS-PPC.

Der "Mojo Style" läuft nun super was überhaupt notwendig war um irgendwann bestehende Monkey Codes zu kompilieren. Desweiteren wurden ein paar Fehler ausgebügelt. Hinzugekommen ist "DrawRect" welches es gestattet ein Rechteck in der aktuell gesetzten Farbe in das Fenster zu malen. Dieses Fenster kann nun automatisch erstellt werden (Mojo Style) oder selbst definiert werden indem man SetGraphicsMode() aufruft. Es gilt zu beachten dass im Mojo Style kein Fenster als Parameter für Funktionen angegeben werden muss. Im Amiga Mode muss dies aber passieren damit Monkey weiß welches Fenster angesprochen wird. Eine genaue Dokumentation dafür wird noch erstellt.

Gehe zu Seite 1, 2  Weiter