Amiga.org

Operating System Specific Discussions => Amiga OS => Amiga OS -- Development => Topic started by: superfrog76 on December 08, 2013, 08:44:18 AM

Title: Suggestions for programs to use on real amiga to code
Post by: superfrog76 on December 08, 2013, 08:44:18 AM
Hi guys; got my miggy OS up and running, and now I would like to get some applications on it, to actually start to code.

I know C++, and a bit of C; and I am planning to learn ASM, since it seems that it is the only thing that you can learn, to make anything decently fast.

As now I have installed only StormC, since it is C++; but now I would like to know what else is considered a good software, to develop on C and 68K assembly.

Heard of Lattice C and Argasm, for C and ASM, but since it is my first time writing code on Amiga, I am not sure if they would be the best and fastest on the market.

Others seems to prefer cross compiling via Windows, but I am not sure that it is the way to go...the Amiga is isolated, not on a network, and I don't really wanna waste time moving back and forth data, and fight to configure amidev to run correctly...I just wanna develop like the original developers used to :)
Title: Re: Suggestions for programs to use on real amiga to code
Post by: kamelito on December 08, 2013, 05:51:08 PM
Quote from: superfrog76;754022
Hi guys; got my miggy OS up and running, and now I would like to get some applications on it, to actually start to code.

I know C++, and a bit of C; and I am planning to learn ASM, since it seems that it is the only thing that you can learn, to make anything decently fast.

As now I have installed only StormC, since it is C++; but now I would like to know what else is considered a good software, to develop on C and 68K assembly.

Heard of Lattice C and Argasm, for C and ASM, but since it is my first time writing code on Amiga, I am not sure if they would be the best and fastest on the market.

Others seems to prefer cross compiling via Windows, but I am not sure that it is the way to go...the Amiga is isolated, not on a network, and I don't really wanna waste time moving back and forth data, and fight to configure amidev to run correctly...I just wanna develop like the original developers used to :)

 SAS/C and Devpac, ASM-ONE is also a nice all in one 68k solution. Kamelito
Title: Re: Suggestions for programs to use on real amiga to code
Post by: spirantho on December 08, 2013, 07:16:52 PM
Most Amiga developers used cross-compilers.....

Use ANSI C (Storm C will do), and use assembler for really time-critical loops. That's what I do anyway, and it's the normal way.

Why is this marked as "news" by the way?
Title: Re: Suggestions for programs to use on real amiga to code
Post by: superfrog76 on December 08, 2013, 07:34:26 PM
Thanks

So can I put on the same partition also another C package like SAS/C, even if I already have StormC?

I agree that cross compiling is easier, from a certain perspective, but I am not worried to wait for compiling  :) I just want to keep everything as original as possible, due the fact that I am a beginner at Amiga development, so I lack the knowledge to figure out what is wrong with a cross compiler. Doing everything on the machine eliminate some variables :)

I didn't realize that I posted in the wrong section; but I have no idea how to move the post :( Sorry about that.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: nicholas on December 08, 2013, 08:50:41 PM
The best free C compiler is VBCC

http://sun.hasenbraten.de/vbcc/

Annotate is a good free syntax highlighting editor

http://aminet.net/package/text/edit/Annotate_usr

If you want an all in one IDE then there is CubicIDE but it costs.

http://www.softwareandcircuits.com/division/amiga/products/cubic/index.html

For assembly coding there are AsmOne and AsmPro

http://www.theflamearrows.info/documents/ftp.html
http://members.home.nl/m.reestman/asmpro.html
Title: Re: Suggestions for programs to use on real amiga to code
Post by: eliyahu on December 09, 2013, 12:06:12 AM
Quote from: superfrog76;754036
I didn't realize that I posted in the wrong section; but I have no idea how to move the post :( Sorry about that.

no worries. i've gone ahead and moved your post to the correct forum. :)

-- eliyahu
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Iggy on December 09, 2013, 12:48:19 AM
I would wholly recommend learning to use 68k assembly language.
It was the last ISA that I thought had a relatively easy to learn architecture.
While its not the only way to make something fast, don't let anyone try to convince you there is a better way to create compact efficient code (because C is quite distant in that regard).
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Thorham on December 09, 2013, 03:10:58 PM
Quote from: nicholas;754040
The best free C compiler is VBCC
Perhaps, but probably too slow for 680x0 hardware :( I tried it a few years ago and it was too slow for even a simple 'Hello world!' program :(

For 68030, Dice is quite usable speed wise, and perhaps SAS6.58 (which is probably much better than Dice).

Quote from: nicholas;754040
For assembly coding there are AsmOne and AsmPro
Indeed, these are absolutely fantastic for learning 680x0 assembly language.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Havie on December 09, 2013, 04:36:04 PM
The other option that isn't cross compiling on a PC is to set up a programming environment in WinUAE that matches your taget spec but allows you to recover from crashes more easily, change the target spec easily and also allows you to do prgramming at maximu CPU speed.  The compile code and transfer to Amiga to test.
 
This works pretty well with Blitz Basic (which seems to crash a lot) and I have successfully coded a few simple things and transfered across.  The difference between running Blitz (for coding) on WinUAE at max speed compared to Amiga 1200 @030 is significant and does make things simlper.  Also, it is much easier to get stuff from the web across to the Amiga side of WinUAE.
 
It is laudable to want to do things 'properly' and I had many happy hours programming my old Speccy, St and Miggy in various langauages from Z80 to Stos to Amos to Blitz but why not use teh advantages that a modern system offers?  We have learnt a lot about programming in the last 20 years - are you going to ignore those too...:banana:
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Thorham on December 09, 2013, 04:54:16 PM
Quote from: Havie;754075
The other option that isn't cross compiling on a PC is to set up a programming environment in WinUAE

:laughing:
Title: Re: Suggestions for programs to use on real amiga to code
Post by: nicholas on December 09, 2013, 07:16:59 PM
Quote from: Thorham;754072
Perhaps, but probably too slow for 680x0 hardware :( I tried it a few years ago and it was too slow for even a simple 'Hello world!' program :(

For 68030, Dice is quite usable speed wise, and perhaps SAS6.58 (which is probably much better than Dice).


Indeed, these are absolutely fantastic for learning 680x0 assembly language.

VBCC is ok my 060 but you are right about SAS/C being better on slower CPU's.  I recently spent a few hours modifying a small tool of mine that compiled with both GCC and VBCC with no problems to compile with SAS/C and it was a real PITA because it doesn't have much in the way of C99 support and I'm lazy. :)

@OP
I can send you a fully patched copy of SAS/C  6.58 or 7.01 if you PM me your email address.  In fact I can send you pretty much any dev tool you fancy as I have most things knocking around my machines.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Thorham on December 09, 2013, 07:50:44 PM
Off topic:

Quote from: nicholas;754082
In fact I can send you pretty much any dev tool you fancy as I have most things knocking around my machines.
Would you by any change have ALL the dependencies to compile the original Dopus Magellan sources with SASC6? I've tried a few times and failed.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Havie on December 09, 2013, 07:55:16 PM
Quote from: Thorham;754076
:laughing:
A cross compiler is a compiler (http://en.wikipedia.org/wiki/Compiler) capable of creating executable (http://en.wikipedia.org/wiki/Executable) code for a platform (http://en.wikipedia.org/wiki/Platform_(computing)) other than the one on which the compiler is running.
 
Emulating an Amiga to program through Workbench for an Amiga is not cross compiling.:swords:
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Thorham on December 09, 2013, 08:22:30 PM
Quote from: Havie;754088
Emulating an Amiga to program through Workbench for an Amiga is not cross compiling.:swords:

That may be, but it still comes down to the same thing: Compiling code for one machine on another.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Havie on December 09, 2013, 08:52:15 PM
Quote from: Thorham;754093
That may be, but it still comes down to the same thing: Compiling code for one machine on another.

Fair comment although in the world we live in the boundaries blur - who would have thought 20 years ago that an emulated environment would be as powerful as WinUAE is?  And this is a far cry from connecting a ZX Spectrum to a a more powerful computer and passing compiled code through some sort of serial cable!
 
What Superfrog76 could do is program in an Amiga C compiler but have the advantage of super quick compilation, an emulated test bed and a simple (assuming compact flash transfer) way of passing his programs to a real environment.  This keeps more in the spirit of what he wants to do without using a totally alien environment to write the software.
 
But...
 
going back to my other point, using a super duper PC C compiler will come with 20+ years of improvements.  And as mainly a basic programmer I find Amiga Blitz (which I used loads back in the day) much harder to use the PC Blitz.  I would give anything for a modern debugger!!!
 
Still, have gone on too much.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: nicholas on December 09, 2013, 09:49:22 PM
Quote from: Thorham;754085
Off topic:


Would you by any change have ALL the dependencies to compile the original Dopus Magellan sources with SASC6? I've tried a few times and failed.

I can have a look for you.

I've never tried to compile it though, what does it need?
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Thorham on December 10, 2013, 09:01:13 AM
Quote from: nicholas;754100
I can have a look for you.

Thanks, but forget I asked. All I really want to do is fix the file and disk sizes for anything greater than 2^32-1. It's not a big deal.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: nicholas on December 10, 2013, 10:43:57 AM
Quote from: Thorham;754118
Thanks, but forget I asked. All I really want to do is fix the file and disk sizes for anything greater than 2^32-1. It's not a big deal.

Ok, perhaps you could ask Itix or Kas1e if they have fixed that issue in their GCC port of Magellan? (I think they are working on it, can't remember who else is though.)
Title: Re: Suggestions for programs to use on real amiga to code
Post by: superfrog76 on December 18, 2013, 05:21:24 AM
Thanks a lot for all your reply....since the post was moved I was not able to find it anymore LOL :)

I have a 030/50, but VB is out of the question honestly...heard of blitzbasic, but I am not sure how it actually works, compared to Cpp and C; for sure Assembly is the quickest, but also the hardest to learn.

The use of Win UAE is quite creative, but goes out of the scope of my purpose of using a real miggy :) I would not like to touch the PC not even to run the emulator...that's the whole point of me buying a dedicated Amiga machine ;) Independently if it is cross compiling or not; work on an emulator is pure madness, when you are planning to deploy on real hardware.

I work on Mac with iPhone, and they have a simulator (not an emulator), which works decently for quick prototyping, but then I work on the device, just to avoid any kind of trouble. One thing is to run code, another is to write and debug code on it...you just look for pain if you want to work on a emulated platform honestly, when you have available the real one ;)

So boiling down: I have already Storm C installed...what else should I put on the miggy? And I need to be sure that they don't hit each other's toes :)

Probably I need an Assembly 68K application (which of the many?), and a C environment, so I can cover C++, C and ASM?

Someone suggested me to use E; but I really have no will to learn yet another language...so far I know 8 of them and I think that there is enough war going on in my neurons LOL.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Leffmann on December 18, 2013, 08:55:14 AM
If the assembler that comes with Storm C isn't good enough then try Barfly. Barfly consists of an assembler and a debugger, both of which are probably the best you can run directly on Amiga.

SAS/C has a good IDE with both an editor and debugger, covers C89 and some basic C++, and its assembler and linker are perfectly fine.

There's also vbcc, a portable C compiler for C89 and C99, which comes with a really powerful assembler and linker.

Stay away from all-in-one-total-assembly-experience programs like Devpac, SEKA, Maxon Assembler, ASM-One with derivatives etc. They are really, really great for testing and learning, but for actually writing programs they only let you dig a hole in the ground for yourself.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: SamuraiCrow on December 18, 2013, 09:30:56 AM
Quote from: Leffmann;754618
There's also vbcc, a portable C compiler for C89 and C99, which comes with a really powerful assembler and linker.


VASM and VLink are the names of the powerful assembler and linker.  Also, if you run across PhxAss and PhxLink, they are Kickstart 1.3 compatible predecessors of VASM and VLink that were written in closed-source assembly themselves while VASM and VLink are written in C and compiled with VBCC.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Thorham on December 18, 2013, 04:19:59 PM
Quote from: Leffmann;754618
There's also vbcc, a portable C compiler for C89 and C99, which comes with a really powerful assembler and linker.
Last time I checked (some years ago) VBCC was really slow on 68030s :( VASM is very slow, too :( These are sadly of little use on actual hardware.

Quote from: Leffmann;754618
Stay away from all-in-one-total-assembly-experience programs like Devpac, SEKA, Maxon Assembler, ASM-One with derivatives etc. They are really, really great for testing and learning, but for actually writing programs they only let you dig a hole in the ground for yourself.
The OP does write that they want to learn assembly language, so those integrated environments should be very useful. Can't harm to state that their usefulness is limited after learning, of course ;)
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Leffmann on December 19, 2013, 06:34:55 PM
Actually I think the whole VBCC suite runs perfectly fine on a real Amiga. The trick is to use a proper build system, and avoid putting all your code in a single massive file. Rebuilding the entire project every time you've changed just a single line of code is sure to give you dramatical build times.

The Amiga distribution on Frank Wille's site is compiled with VBCC using low or no optimization settings. If you build the tools from source using f.ex. GCC with high optimization you'll get faster executables. Making the tools resident in memory can speed things up as well.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: nicholas on December 19, 2013, 07:43:03 PM
Quote
i have a 030/50, but vb is out of the question


vbcc !=vb ;)
Title: Re: Suggestions for programs to use on real amiga to code
Post by: superfrog76 on December 20, 2013, 12:49:34 AM
Quote from: nicholas;754731
vbcc !=vb ;)


DOH :) have no idea :) The fact that I use a all in one solution, like visual studio, totally blind me about what is in fact the actual linker, compiler and so on...I just write code; got a lot to learn :)

So I think that I will settle for ASM one and devpac as ASM dev tools; while I will have Storm for C++ and SAS/C for regular C.

I am tempted to try blitzbasic, but after learning Assembler thou :)

So, once I learn, what should I use for ASM? Since the ones that Leffman mentioned are not good for anything other than learning?
Title: Re: Suggestions for programs to use on real amiga to code
Post by: ChaosLord on December 20, 2013, 04:10:06 AM
If you are planning on debugging your software then I recommend SASC since it has the best source level debugger by far.

If you are just going to code bug-ridden nonsense then you can just use anything, even cross-compile.  Protip1: don't cross-compile.  Protip2: Using WinUAE is not cross-compiling.

As for Asm, the Amiga has many good assemblers: Devpac, Asm-One, Barfly, PhxAss and probably others I forgot about.

All the Amiga's dev software is tiny.  So just install everything.

Trying to interface asm to any GCC-derived compiler is going to drive you insane and raise your bloodpressure.  You could die of a stroke.  We don't want that.  So I recommend any normal C compiler that cooperates with asm, such as SASC for sure.  But I think VBCC and DICE cooperate in a friendly manner too (I just can't remember for sure).

I have used a few different Amiga C compilers + read the instruction manuals to a few others.  I have used at least 4 different assemblers.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: ChaosLord on December 20, 2013, 04:21:41 AM
Quote from: Leffmann;754618

Stay away from all-in-one-total-assembly-experience programs like Devpac, SEKA, Maxon Assembler, ASM-One with derivatives etc. They are really, really great for testing and learning, but for actually writing programs they only let you dig a hole in the ground for yourself.


Really tremendously harsh thing to say.  I don't even understand what it is you are trying to say.  Are you trying to say that nobody should ever use asm ever?  Or are you saying that nobody should use those specific assemblers?

Which assemblers are good enuff to earn the Leffmann seal of approval?


As for me I have coded many asm routines in Devpac and AsmOne and they were totally ok.  Not 1000% perfect or anything, but no software package is.  They were completely usable and friendly and got the job done.  Many ppl say that PhxAss is a lot better but I never got around to using that one :(  

If I was the OP I would install PhxAss, BarFly, Devpac and AsmOne.

But if I was ME then I would just be lazy and keep using what I have used for centuries: Devpac and A68k (or whatever that other PD one is called).
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Thorham on December 20, 2013, 12:41:07 PM
Quote from: Leffmann;754729
Actually I think the whole VBCC suite runs perfectly fine on a real Amiga. The trick is to use a proper build system, and avoid putting all your code in a single massive file. Rebuilding the entire project every time you've changed just a single line of code is sure to give you dramatical build times.

I'm talking about compiling a 'Hello world!' program with VBCC on a 50 mhz 68030. It was too slow. Maybe the current version is faster, it was a quite a while ago.

Quote from: ChaosLord;754777
Really tremendously harsh thing to say.  I don't even understand what it is you are trying to say.  Are you trying to say that nobody should ever use asm ever?  Or are you saying that nobody should use those specific assemblers?

He's saying you shouldn't use those integrated environment assemblers for large projects, because you can only compile the whole source code all at once. If your code is split up in parts, then with the right assembler you only have to assemble the part that you made changes in, similar to multiple file C code.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: nicholas on December 20, 2013, 01:50:03 PM
Quote from: superfrog76;754746
DOH :) have no idea :) The fact that I use a all in one solution, like visual studio, totally blind me about what is in fact the actual linker, compiler and so on...I just write code; got a lot to learn :)

So I think that I will settle for ASM one and devpac as ASM dev tools; while I will have Storm for C++ and SAS/C for regular C.

I am tempted to try blitzbasic, but after learning Assembler thou :)

So, once I learn, what should I use for ASM? Since the ones that Leffman mentioned are not good for anything other than learning?


This is a good place to start:

http://coppershade.org/
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Thorham on December 20, 2013, 03:32:53 PM
Quote from: nicholas;754794
This is a good place to start:

http://coppershade.org/

They would need to choose if they want to start with hardware programming or OS programming. In my opinion it's better to start with the OS. It's easier, especially for things like simple 'Hello world!' programs that you want to start with.
Title: Re: Suggestions for programs to use on real amiga to code
Post by: nicholas on December 20, 2013, 06:45:11 PM
Quote from: Thorham;754796
They would need to choose if they want to start with hardware programming or OS programming. In my opinion it's better to start with the OS. It's easier, especially for things like simple 'Hello world!' programs that you want to start with.

OS coding in assembly is much less fun though. :)
Title: Re: Suggestions for programs to use on real amiga to code
Post by: Thorham on December 20, 2013, 10:07:30 PM
Quote from: nicholas;754802
OS coding in assembly is much less fun though. :)
That's a matter of taste :)
Title: Re: Suggestions for programs to use on real amiga to code
Post by: superfrog76 on January 21, 2014, 12:18:50 AM
Sorry for the late reply; had totally a ton of stuff that took my time (oh, babies); and now I am getting back to norm (or trying to :P)

I didn't try yet these applications, but I will as soon as humanly possible (the main issue is time, and that when I am up, the brain is not :P ); I think I will go for SASC for the moment; and see how much I start to hate myself and my life, while using  it :)

BTW I am going for OS programming for now; never did HW programming before, other than working with sensors via I2C, so I don't think that I can tackle that aspect of the Amiga yet...until I grasp well ASM :)