English Amiga Board


Go Back   English Amiga Board > Support > New to Emulation or Amiga scene

 
 
Thread Tools
Old 01 March 2020, 22:28   #1
Curbie
Registered User

 
Join Date: Feb 2020
Location: USA
Posts: 41
Is Amiga what I’m looking for?

I’m thinking about buying another old 68000 computer for mostly assembly language coding. Back in the stone age, the second computer I coded on was MC68000 based and it was a joy to program for, I worked on all OS and OS utility stuff in assembler. The computer I originally coded for (an Alpha Microsystems) was getting near impossible to find, but I stumbled on to a whole non-functioning one on ebay, bought it and have been signal tracing and in general, slowly bringing it back to life, don’t much care for TV or golf.

So in researching for another 68000 computer to learn and assembly code on (not concerned about games), the Amiga came up as a possibility, but I have a few questions that weren’t found in the normal literature.

1) I learned from here that there is an assembler available for the Amiga, I assume that means there is a debugger also, are they both included with the standard OS?

2) Is there documentation for them I can read on-line?

3) I assume that there is some mechanism that localizes OS calls, “include” or “universal” type file(s), “system” or “emulation” calls? What is that, and is there on-line documentation?

4) Does the Amiga have an interrupt timer the assembly programmers get at?
Curbie is offline  
Old 02 March 2020, 01:11   #2
gulliver
BoingBagged

 
Join Date: Aug 2007
Location: The South of nowhere
Age: 42
Posts: 2,208
Welcome Curbie!

The Amiga has about a dozen or more assembler packages available. There is plenty of documentation, including books to read about the subject, and most if not all of these resources are online.

I am not into assembler myself, but we have a very healthy amount of very talented assembler coders here that can guide you much better, and asses you according to your wishes or preferences regarding this subject.

The Amiga is the ideal platform to get dirty with 68000 assembler.
gulliver is offline  
Old 02 March 2020, 02:20   #3
StingRay
move.l #$c0ff33,throat

StingRay's Avatar
 
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,542
Quote:
Originally Posted by Curbie View Post
1) I learned from here that there is an assembler available for the Amiga, I assume that means there is a debugger also, are they both included with the standard OS?
There are many assemblers (Devpac, ASM-One, Barfly et.) and debuggers available for the Amiga. None of them are included in the standard OS (there is a built-in debugger in the OS but it's rather limited).

Quote:
2) Is there documentation for them I can read on-line?
Lots of documentation can be found online, good sources are the ROM Kernal manual and the Hardware reference manual, both can be found here.

Quote:
4) Does the Amiga have an interrupt timer the assembly programmers get at?
There are several. You can use timer (CIA) interrupts or the vertical blank interrupt which is triggered 50/60 times per second (PAL/NTSC). The latter is easier to use (you only have to point the VBI vector to your code which, in its simplest form, just has to acknowledge the VBI and end with rte) so I'd check that one first.
StingRay is offline  
Old 02 March 2020, 13:18   #4
sparhawk
Registered User

sparhawk's Avatar
 
Join Date: Sep 2019
Location: Essen/Germany
Age: 52
Posts: 338
Quote:
Originally Posted by Curbie View Post
1) I learned from here that there is an assembler available for the Amiga, I assume that means there is a debugger also, are they both included with the standard OS?

There are a lot of assemblers running nativly on Amiga, as well as cross-platform tools. Most assemblers come also with debugger. I've been using Seka back then, because it offered a rather direct approach. You could directly assemble to memory and debug there, which was great for exploring the (then) new features of the MC68000 (I came from C64 ). Later on I used DevPac which doesn't have this particular feature but was more "traditional". Nowadays I mostly use vasm as a cross-platform assembler, but native debugging I use MonAm which is included in the DevPac package.

Quote:
2) Is there documentation for them I can read on-line?
Documentation for various assemblers is easy to find on the net and I also put a "CheatSheet" for MonAm in my repository for the stuff that I use frequently.

Quote:
3) I assume that there is some mechanism that localizes OS calls, “include” or “universal” type file(s), “system” or “emulation” calls? What is that, and is there on-line documentation?
Not sure what you mean by that. System libraries? For that there is also a lot of documentation online, personally I prefere to also have some books around though (RKRM was already mentioned). There are also good example sources available to take over the system, so you can do whatever you want without regards to the OS.

Quote:
4) Does the Amiga have an interrupt timer the assembly programmers get at?
Yes. As already mentioned, CIA timers or VBI.

All in all, I find the Amiga to be rather accessible even on the low level programming. The hardware is rather well documented AFAIK and here in the forum are a lot of knowledgable people which can answer about any question you might have.

And from all CPUs I have dabbled with so far, I like the Motorola series the most. Actually I'm pretty surprised, when I look at the manual, how many commands were already available, which were integrated in Intel CPUs much later on.
sparhawk is offline  
Old 02 March 2020, 14:52   #5
grond
Registered User

 
Join Date: Jun 2015
Location: Germany
Posts: 883
I think it is worth mentioning that with UAE there is a very good Amiga emulator that has some very useful built-in debugging tools.
grond is offline  
Old 02 March 2020, 15:25   #6
R4M
Registered User

 
Join Date: Jan 2019
Location: /home
Posts: 98
There is also an excellent Amiga Assembler extension for VS Code.
http://eab.abime.net/showthread.php?t=92239
It integrates running your code in the FS-UAE emulator. Very nice, if you want all the comfort of modern IDEs.
R4M is offline  
Old 02 March 2020, 17:10   #7
Anubis
Retro Gamer

Anubis's Avatar
 
Join Date: Jan 2005
Location: Underworld
Age: 48
Posts: 3,074
Let's not forget Scoopex's youtube tutorial that should help get you started:

[ Show youtube player ]
Anubis is offline  
Old 02 March 2020, 19:14   #8
Curbie
Registered User

 
Join Date: Feb 2020
Location: USA
Posts: 41
Thanks to all that replied,

At first glance, Sting Ray’s pointer to documentation seems like just what I was looking for.

More and more it looks like an Amiga will do just fine. My current plan is to buy an Amiga 500 (the largest seller, I.E. should be easiest to find) and upgrade it, anything I should be looking for, and any “must have” upgrades? Any consensus on the “best“ assembler or is it all personal preference?
Curbie is offline  
Old 02 March 2020, 20:07   #9
meynaf
son of 68k
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 47
Posts: 3,974
Quote:
Originally Posted by Curbie View Post
Any consensus on the “best“ assembler or is it all personal preference?
There is no consensus but it's not only personal preference.
It will depend what your needs are, too.
Is it integrated environment or is it command-line ?
Will it be about coding directly on the real thing or doing cross-platform ?
meynaf is offline  
Old 02 March 2020, 20:33   #10
kamelito
Zone Friend
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,228
Quote:
Originally Posted by Curbie View Post
Thanks to all that replied,

At first glance, Sting Ray’s pointer to documentation seems like just what I was looking for.

More and more it looks like an Amiga will do just fine. My current plan is to buy an Amiga 500 (the largest seller, I.E. should be easiest to find) and upgrade it, anything I should be looking for, and any “must have” upgrades? Any consensus on the “best“ assembler or is it all personal preference?
Devpac 3 for system coding or not is just fine and to me the de facto standard if you go native.
If you need more docs go there : https://commodore.bombjack.org/amiga/
kamelito is offline  
Old 02 March 2020, 21:00   #11
Juz400
Registered User

 
Join Date: Mar 2017
Location: London
Posts: 123
Welcome Curbie,
There are extensive `OS calls` or `Librarys` that are available built into ROM to perform many functions inside the machine or to whatever storage medium you have (FDD/HDD)
Also many 3rd Party Libraries that have built over the years as new Hardware/Software came along.
Plenty of documentation is available online and advice is just a post away here too.
Best of luck with your programming and hope you choose the Amiga!
EDIT:
RAM, lots of!
You can just about get away with 1MB RAM, more always helps with programming
If A500 you will want the `trapdoor` expansion that fits in underneath the machine(many already have this upgrade)
A memory expansion that fits on the left side edge connector or in the CPU socket that could add up to 8MB RAM for 68000 (more if 68020+)

Last edited by Juz400; 02 March 2020 at 21:08. Reason: RAM
Juz400 is offline  
Old 02 March 2020, 23:41   #12
Curbie
Registered User

 
Join Date: Feb 2020
Location: USA
Posts: 41
Quote:
Originally Posted by meynaf View Post
There is no consensus but it's not only personal preference.
It will depend what your needs are, too.
Is it integrated environment or is it command-line ?
Will it be about coding directly on the real thing or doing cross-platform ?
It’s fair to ask what I intend in Amiga assembler, Nothing special, I just like to code, I suppose that’s the same thing with every system I’ve played with since 1979 (yeah, Ancient):
1) Explore the system and produce assembler system libraries.
2) After I learn about the system a little by producing assembler system libraries, chase whatever Amiga feature that appeals.

I’ve mostly used a command line assembler (like M68 textfile.m68 with assembler directives in the source code) but I recall starting on a Motorola 68000 educational/training/introduction board with a monitor integrated environment if I understand “integrated environment” properly?
Curbie is offline  
Old 03 March 2020, 10:46   #13
meynaf
son of 68k
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 47
Posts: 3,974
Quote:
Originally Posted by Curbie View Post
It’s fair to ask what I intend in Amiga assembler, Nothing special, I just like to code, I suppose that’s the same thing with every system I’ve played with since 1979 (yeah, Ancient):
1) Explore the system and produce assembler system libraries.
2) After I learn about the system a little by producing assembler system libraries, chase whatever Amiga feature that appeals.
I would recommend writing your own set of reusable code for common tasks (screen setup, file handling, etc). I can't live without mine.


Quote:
Originally Posted by Curbie View Post
I’ve mostly used a command line assembler (like M68 textfile.m68 with assembler directives in the source code) but I recall starting on a Motorola 68000 educational/training/introduction board with a monitor integrated environment if I understand “integrated environment” properly?
A monitor is different because you work directly in memory, there is no source. Used that in my past 6502 days, but I wouldn't recommend doing that nowadays.

So to be able to code you need : text editor, assembler, debugger.
When all three are the same software, it is an integrated environment. An example is Devpac. But you may prefer Asm-one.
For command-line asm you can use Vasm if you do cross-platform. It can work on real machines but is too slow, there you have its ancestor, Phxass (which i still use because it's fast and can do whatever i throw at it). Other ppl may prefer Barfly.
meynaf is offline  
Old 03 March 2020, 13:33   #14
Hewitson
Registered User
Hewitson's Avatar
 
Join Date: Feb 2007
Location: Melbourne, Australia
Age: 38
Posts: 3,747
I'd recommend getting an A1200 over getting an A500 and spending huge money on upgrading it.

I'd also recommend using a cross assembler such as vasm. You'd have to be mad to code on an actual Amiga these days. It sounds like an emulator (WinUAE) may be more suitable for your needs.
Hewitson is offline  
Old 03 March 2020, 14:01   #15
d4rk3lf
Registered User

d4rk3lf's Avatar
 
Join Date: Jul 2015
Location: Novi Sad, Serbia
Posts: 916
Quote:
Originally Posted by Hewitson View Post
I'd recommend getting an A1200 over getting an A500 and spending huge money on upgrading it.
Same here.
Even I personally have Amiga 500 with Aca 500+, and I am perfectly happy with it, but generally, A1200 is way smarter purchase.
It has 68020 processor in it... so... not sure if that bothers you, if you want authentic 68000 proc.
d4rk3lf is offline  
Old 03 March 2020, 16:33   #16
AmigaHope
Registered User
 
Join Date: Sep 2006
Location: New Sandusky
Posts: 762
If you want to learn 680x0 assembly, a good bet would be an Amiga running Linux/68k. This means you'll need an Amiga with an MMU, which generally means a 68030+ -- no EC versions, though the A2620 CPU card for the A2000 is the one exception which is a 68020 card with an external MMU.

The reason I suggest running Linux is because AmigaOS has no inbuilt memory protection. You can run your code on AmigaOS inside Enforcer for testing (Enforcer is an MMU tool for AmigaOS) but it is a bit of a pain in the ass. Linux makes it easy to learn without bringing the whole OS down on accident.

If you want to learn advanced 680x0 stuff involving drivers and interrupts etc. though then AmigaOS is actually way better for this for precisely the same reason -- the whole system is visible to you.

Finally, coding for the Amiga is fun because its custom chipset has a rich array of features not found on other platforms of the era (and really not seen today either now that everything is done via CPU or GPU via heavily-abstracted APIs). It's more like writing code for the 16-bit consoles (or the custom-chipset-oriented 32-bit ones like the Saturn and PC-FX)
AmigaHope is offline  
Old 03 March 2020, 18:05   #17
grond
Registered User

 
Join Date: Jun 2015
Location: Germany
Posts: 883
Quote:
Originally Posted by AmigaHope View Post
The reason I suggest running Linux is because AmigaOS has no inbuilt memory protection. ... Linux makes it easy to learn without bringing the whole OS down on accident.
Excuse my ignorance, but doesn't Linux make it very difficult to do anything fun, i.e. read from and write to hardware, with your assembly code?
grond is offline  
Old 04 March 2020, 04:06   #18
Curbie
Registered User

 
Join Date: Feb 2020
Location: USA
Posts: 41
Quote:
Originally Posted by kamelito View Post
If you need more docs go there : https://commodore.bombjack.org/amiga/
Holy crap!
Thanks
Curbie is offline  
Old 07 March 2020, 12:04   #19
AmigaHope
Registered User
 
Join Date: Sep 2006
Location: New Sandusky
Posts: 762
Quote:
Originally Posted by grond View Post
Excuse my ignorance, but doesn't Linux make it very difficult to do anything fun, i.e. read from and write to hardware, with your assembly code?
Yes, that's why I said that AmigaOS is best when you're doing more advanced stuff. My point was that Linux was nicer if you're STARTING NEW at 68k because when you're first starting out you're going to make mistakes, and it's nicer to just have a segfault than to have the OS crash and/or mess around with Enforcer and Mungwall.

The Amiga is easily the most fun 68k development environment because you have interesting hardware mixed with a powerful, rich OS, but from personal experience from my teenage bedroom years -- when you're first starting out it can be a headache. There is something to be said for having the OS clean up all your process's garbage when it crashes.

It's like training wheels on a bicycle. If you start on AmigaOS you don't have those training wheels and you'll get lots of bumps and bruises. You can do a lot more cool stuff when the training wheels come off though.
AmigaHope is offline  
Old 07 March 2020, 12:32   #20
grond
Registered User

 
Join Date: Jun 2015
Location: Germany
Posts: 883
Yes, I understand the concept of memory protection. I learned ASM on the Amiga and have been using Linux ever since I put my Amiga away. But I wouldn't even know how to do a printf("Hello World!\n"); equivalent in ASM in Linux. That's why I wonder what useful or entertaining stuff a beginner could do learning ASM in Linux.
grond is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 04:17.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.
Page generated in 0.12419 seconds with 14 queries