Amiga.org
Operating System Specific Discussions => Amiga OS => Amiga OS -- Development => Topic started by: cpfuture on December 12, 2007, 09:11:16 PM
-
Hi,
I would like to get 'into' Amiga (system) programming. I have all the Amiga Reference Manuals and I've got the Amiga Programmer's Handbook Volumes I and II from Sybex, but all these books seem to be primarily reference books and I really don't know where to begin.
What I'd really like is a hands on book (or online tutorial) that gradually introduces me to programming for the Amiga. I can find my way around C, but what I'd really like to try is 68000 assembler programming.
I have no specific project in mind or anything and just want to do this for the fun of it. I want to experience what makes this wonderful machine of my youth tick. All the programming I did on the Amiga when I was a teenager was in AMOS. I'd really like to get down 'n dirty with the Amiga now... ;-)
Thanks in advance for any book or URL suggestions!
-
This might help you some? http://amiga.sourceforge.net/amigadevhelp/
-
I seriously recommend reading the Libraries and Devices book beginning to end. I got my big Amiga start reading that book for OS1.3. I couldn't have done without it. Every now and then I pull that book out to read the first portion just to keep from forgetting anything. There are a lot of basic fundamentals that are VERY important and should not be skipped. You need to be *very* familiar with Exec and Intuition. Then you can go on to DOS if need be. But, I don't know of a good source for information on that other than the DOS Autodocs. And those can leave you scratching your head.
If you have programmed on other platforms, clear your head of anything you learned before you start learning Amiga. Don't try and make AmigaOS work like MS-DOS or Windows. Amiga is a different animal and it works really good if you work it the way it was designed.
-
Thanks for the link!
Very good, and lots of info!
I really want to start coding anything in C (tired of Java, EJBs, etc.). I will use GNU GCC compiler, I think. But I don't have any book. Anyone knows where can I buy / download / obtain info to program in C?
BTW: don't want to hijack this thread, sorry !
-
Oh, this ones easy ! Its all 0's & 1's, so you just need lots of them :lol:
-
There were some good tutorials at http://www.liquido2.com/tutorial/intro.html (http://www.liquido2.com/tutorial/intro.html), but the link is dead. Use archive.org to get and download them.
Hans
-
Thanks for all the suggestions and links everyone. @Hans: I just checked the link you gave in archive.org and it looks like a nice introduction! @AMC258: Thanks, I'll start digging into the big Libraries and Device book come X-Mas time.
I think I'll start off in C to get a little acquainted with the Amiga API. Then when I feel comfortable enough with that I'll dig into ASM. Should be fun!
@dfreniche: No need to apologize. The more the merrier! ;-) There are really tons of tutorials that'll get you started in C. The one Hans gave should be a very good starting point though because it gets into Amiga programming in C with a GCC compiler. Good luck!
-
@cpfuture
Assembler
Amiga Assember Insider Guide by Paul Overaa
ISBN: 1-873308-27-2
Mastering Amiga Assembler by Paul Overaa
ISBN: 1-873308-11-6
C
Mastering Amiga System by Paul Overaa
ISBN: 1873308-06-X
Mastering Amiga C by Paul Overaa
ISBN: 1-873308-04-6
I'm not sure how likely you are to find these books but hopefully having the ISBN numbers will help.
-
Way back when I got my first Amiga and decided to start programming it and stop programming my peecee, I fully intended to learn 68k ASM, as I was well versed in x86 ASM (of which I've forgotten already!), and 65xx ASM (self-taught by TRIAL AND ERROR). But, even back then when '060 boards weren't quite available, there was this talk of getting away from 68k and moving Amiga to some alternate CPU.
I recommend sticking to C (as much as I despise that language) for the sake of compatibility and portability. If tomorrow someone develops some CPU that obsoletes all CPUs on the market and we start running AmigaOS 6.0 on it, there will still be a C compiler for that.
-
Hi cp,
here are my recommendations:
http://product.half.ebay.com/Amiga-Machine-Language_W0QQtgZinfoQQprZ1183610
This one is a very short book, but it'll get your hands dirty with assembly and the Amiga hardware very quickly! You'll be playing sounds and doing graphics stuff by working directly with the hardware or AmigaOS libraries. It was a fun read, although it has a few typographical errors (I think because the author is German and the translator didn't do such a good job).
http://product.half.ebay.com/Amiga-Assembly-Language-Programming_W0QQprZ814212QQtgZinfo
This one you have to read, not only because the author's name is Commander :) hahahaha, love it, but because it also teaches some proper computer science methodologies (like the software lifecycle, etc). It was a fun read as well and not too big a book either. Not so good as far as hands-on stuff, in other words the programs it gives you aren't anywhere close to as fun as the other book, but it will teach you the basics of 68k assembly pretty well.
Cheers
-
I have an Amiga C tutorial on my website:
http://www.pcguru.plus.com/programming.html
Its got links for C references, a Amiga C tutorial, and links for other resources.
-
A couple of beginner level tutorials for ASM
http://www.algonet.se/~chaozer/asmtut.shtml (this one has basic instructions how to use an assembler (asm-one or pro))
http://www.algonet.se/~davsjo/amigaasm.html (this one has downloadable sources that you can see how stuff works)
http://amigacoding.gamecult.eu/index.php/Main_Page (amiga coding wiki, lots of good links)
-
Blitz Basic 2 it should be simple learning curve from AMOS, it allows system legal programing, supports real data structures and also allows inline assembler.
Ideal for your needs IMHO :-)
-
Homer wrote:
Oh, this ones easy ! Its all 0's & 1's, so you just need lots of them :lol:
You also have to put them in the right order :-)
--
moto
-
Thanks for the extra suggestions, everyone. I got 2 books on 68000 programming in the mail that I bought second hand recently and am now reading up on the 68000. Sure is nice to at least be able to read 68000 assembly properly and to learn about the CPU itself.
I'm also reading some relevant chapters in the 'Amiga ROM Kernel Reference: Libraries' book, which will be followed by 'Devices' of the same series.
I think I have some original SAS/C disks somewhere that came with an A3000 I bought last year and a cutdown version of DevPac2 on an Amiga Format coverdisk, which should get me started soon. Hope to get some more spare time during the holidays and actually try some 'classic' coding.
-
good there is people intressted in programing for a change :)
-
-edit- didn't read it good enough :oops:
-
Btw. aren't there datasheets of the Amiga available (or for each of the custom chips)?
There sure are datasheets of the Motorola cpu's available
-
>What I'd really like is a hands on book (or online tutorial) that gradually introduces me to programming for the Amiga. I can find my way around C, but what I'd really like to try is 68000 assembler programming.
If you have not found an Assembler yet, you can try the MPDOS Pro which has a built-in 68K Assembler and you can save it to floppy disk and read it into Amiga via PC file transfer programs or cross-compile and "cross-execute" it with the floppy simulator & cable.
Easy to start off with a simple working program like:
BCHG #1,$BFE001
RTS
and then build on it.
-
I should have mentioned that the MPDOS Pro w/68K ASM compiler is included with the floppy simulation cable if you really want to program real-time or low-level stuff by taking complete control over the amiga machine:
http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=320205396780
It includes some sample source code as well for making boot block image disks directly from your 68K ASM instructions(image disks that are 1024 bytes long). You can then also write the boot blocks to your real (physical) floppy drive if you daisy chain it with the simulated drive (assuming you have some sector copier).