AmigaOS3.x and AROS Target

Community Forums/Monkey Talk/AmigaOS3.x and AROS Target

bruZard(Posted 2011) [#1]
Amiga Target for AOS3 and AROS is ready: http://www.sedm.de/monkey/AmigaTarget.zip

1. Important: make a backup from your Monkey Installation
2. extract the archive and copy the content over your Monkey Installation
3. install AmiDevCpp from http://amidevcpp.amiga-world.de/AmiDevCpp/info/AmiDevCpp_graceful_Bulldozer_v098_Setup.exe.php
4. add the AmiDevCpp Path ([AMIDEVCPP]\usr\local\amiga\bin) to your Windows Path Variable
5. edit [MonkeyDir]\bin\config.winnt.txt: You can set AOS3 = 1 or/and AROS = 1
6. load /bananas/Amiga/amiga.monkey
7. select "aos3" as target

If you have Jungle IDE you can select BUILD, otherwise you get an error. Ignore this error and copy appOS3 or appAros to the target system and run it.


bruZard(Posted 2011) [#2]
this will not work with the Demo!


Leon Brown(Posted 2011) [#3]
That's interesting. How do the builds work on AmigaOS 4? I'm assuming it would be ok? There's a new Amiga netbook coming out next year, which could be interesting to develop for.


Paul "Taiphoz"(Posted 2011) [#4]
I had no idea Amiga was still even producing hardware, it's a machine I simply loved, had the 500, 500+ and 1200, money well spent and it blew the ass off of the megadrive and nintendo.


Leon Brown(Posted 2011) [#5]
The Amiga story is a complicated one. In short, Amiga OS is still being developed and is being prepared to hopefully make a comeback as a niche hobby computing platform. Amiga the company are not the makers of Amiga OS - there was a dispute with the company they hired in which Amiga didn't pay for the work, so the court ruled that Amiga OS now belongs to Hyperion Software, who are working with hardware manufacturers to produce hardware for it. Amiga the company is just a name - licensed from previous owners and no longer has anything to do with the Amiga computer. If you are wanting to find out more about Amiga OS - check the official Amiga OS website:

http://www.amigaos.net

Last edited 2011


bruZard(Posted 2011) [#6]
this Target is currently focused on AmigaOS3.x (Classic) and AROS.
The build for OS4 should be done like the builds for the other OS, but os4.x is'nt source compatible with os3.x. so you can not build for os4 at present.
But i work on this.
Update:
- Amiga Target now works with the Monkey Demo
- Windows in AOS have now the title that given with CreateWindow() or Window.create()


okee(Posted 2011) [#7]
when you say Amiga OS3.x do you mean the last commodore version ?
i.e. it'll work on a bog standard original amiga.


bruZard(Posted 2011) [#8]
the target produce a m68k binary und shoul run on a original Amiga with AOS3.0 - AOS3.9


bruZard(Posted 2011) [#9]
new update

the Monkey code for this picture:
Strict

Import amigaos3

Function Main:Int()	
	Local win:Window = CreateWindow("Hallo Amiga", 100, 100, 600, 400)
	Local mx:Int		= 0
	Local my:Int		= 0
		
	Cls(win)
	SetColor(win, 255, 0, 0)
	
	Repeat
		WaitEvent(win)
		mx = MouseX(win)
		my = MouseY(win)
		
		If EventClass(win) = CLOSEWINDOW Then Exit
		If MouseDown(win) then Plot(win, mx, my)
	Forever
	
	CloseWindow(win)
	
	Return 0
End

Changelog:
12/01/2011 v0.2
added	: Window.eventClass:Int()
added	: Window.eventCode:Int()
added	: Window.setColor:Void(r:Int, g:Int, b:Int)
added	: Window.getBestPen:Int(r:Int, g:Int, b:Int)
added	: Window.setAPen:Void(pen:Int)
added	: Window.cls:Void()
added	: Window.plot:Void(x:Int, y:Int)
added	: Window.mouseX:Int()
added	: Window.mouseY:Int()
added	: Window.mouseDown:Int()
added	: Window.mouseUp:Int()
added	: EventClass:Int(win:Window)
added	: EventCode:Int(win:Window)
added	: SetColor:Void(win:Window, r:Int, g:Int, b:Int)
added	: GetBestPen:Int(win:Window, r:Int, g:Int, b:Int)
added	: SetAPen:Void(win:Window, pen:Int)
added	: Cls:Void(win:Window)
added	: Plot(win:Window, x:Int, y:Int)
added	: MouseX:Int(win:Window)
added	: MouseY:Int(win:Window)
added	: MouseDown:Int(win:Window)
added	: MouseUp:Int(win:Window)
changed	: renamed Window.IntuiMessage:Int() to Window.WaitEvent:Int()
changed	: renamed GetIntuiMessage:Int() to WaitEvent:Int()
fixed	: windowtitle was not set


Download: http://www.sedm.de/monkey/AmigaTarget.zip
the AOS3 executable can be found in /bananas/Amiga/amiga.build/aos3/appAOS3

have fun! :)


Hotshot2005(Posted 2011) [#10]
Amazing :)


bruZard(Posted 2011) [#11]
0.21 is available

http://www.sedm.de/monkey/AmigaTarget.zip

i've overloaded the function SetColor() so these can get RGB values or a pen number. New is the function ClsColor(). These function is also overloaded and get RGB values or a pen number as parameter. The bug with Aros64 is fixed, so you can build for Aros64 systems like for amigaos3.x


bruZard(Posted 2011) [#12]
0.23 is ready

http://www.sedm.de/monkey/AmigaTarget.zip




bruZard(Posted 2011) [#13]
0.24 is live > http://www.sedm.de/monkey/AmigaTarget.zip




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




*(Posted 2011) [#14]
OMG heres hoping they reinvigourate the Amiga platform with Monkey games :D


slenkar(Posted 2011) [#15]
do many people use that OS?


bruZard(Posted 2011) [#16]
i do not know how many peoples use AOS3.x and AROS ... i think 10k or more.


bruZard(Posted 2011) [#17]
0.25 is live
http://www.sedm.de/monkey/AmigaTarget.zip




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



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


this will not work on a real 68k Amiga. Still use a AOS4/MOS machine or try it on aros or WinUAE.


Playniax(Posted 2012) [#18]
Now this could get realy interesting on the natami when it is finished.

http://www.natami.net

Last edited 2012


Leon Brown(Posted 2012) [#19]
I've been following Natami since the start - it's an interesting project, but waaaaay behind schedule. Their original estimate was 1 year, and 5 years later I'm still waiting.

Interesting fact - the website menu is taken from the design I provided them with. It's a small world.

It would be great to develop apps for Natami with Monkey. With regards to AOS4, how compatible is the target? What types of apps can you create? There is an AOS4 netbook coming out in early 2012.


bruZard(Posted 2012) [#20]
AOS4 needs a special interface but i think i can solve it. Natami is a very interessting project, but my lifespan is limited ;-)


Leon Brown(Posted 2012) [#21]
You should get in touch with the Natami team - I'm sure they would be interested in helping you out.


bruZard(Posted 2012) [#22]
why should i do that? Natami is binary compatible with AmigaOS3.x, so all AmigaTarget binaries should run on Natami


Leon Brown(Posted 2012) [#23]
I thought you said it wouldn't work on real 68k Amigas?