Overview Features Instructions Performance Forum Downloads Products OrderV4 Reseller Contact

Welcome to the Apollo Forum

This forum is for people interested in the APOLLO CPU.
Please read the forum usage manual.



All TopicsNewsPerformanceGamesDemosApolloVampireAROSWorkbenchATARIReleases
Documentation about the Vampire hardware

Compiler and Assembler of Choice for Vampire Code?

Antony Coello

Posts 62
08 Oct 2020 19:44


OK, so I get my (hopefully working for the V500+2) A500 board back next week.

I will need a good C compiler and assembler to code for Amiga/Vampire.

Are there any good recommendations?

In assembly, Im used to Atari Devpac 3 and actually have the Amiga version too. Its a bit clunky, but I can cope with it.

As for the C compiler... just nything with C99 level compatability would be great as it will more or less match my hybrid code without too much converson/pain.

For both, I prefer IDEs to command line assemblers/compier/linkers, but if the difference is night and day, I may be persuaded to switch.

Also, Windows compiler/assembler would be fine. However, I do like to use the target machine (mainly for the initial assembly/c quick test) so that option would be a bonus.

Obviously support for 080 and SAGA is a bonus (even though I dont quite know how much of the SAGA subset the V500 will get!)

Lastly, no Unix/Linux toolchains if possible!

So, ticking all these boxes, what does that leave? :)




Edgar Fink

Posts 27
08 Oct 2020 20:26


The following was mentioned on this forum by Nick Fellows:

EXTERNAL LINK 
Ref thread: EXTERNAL LINK 
I have no experience with the VScode plugin myself, since I only use Linux for development.


Roy Gillotti

Posts 446
08 Oct 2020 20:32


I'm not overly knowledgeable about Assembly, I'm at best a modest user of C and C++, I've used Bebbo's Cross-Compiler setup for compiling projects for Amiga, it's a linux solution, can be usable in Windows in a cygwin like environment.
 
  EXTERNAL LINK


Chris Chris

Posts 17
10 Oct 2020 09:11


Hi,
   
    maybe not directly fitting to vampire directly but here some links:
   
    - From Kai Germany with short explanation on C compiler on Amiga in regrads to retro coding:
   
      EXTERNAL LINK   
 
    - MaxonASM 1.2
   
      https://archive.org/details/Maxon_Assembler_v1.2_1992_MAXON_Computer_DE#loading
   
      Note: In archive.org can be some "golden treasures" someone is looking for thinking its gone due to bad disks. Just try.
   
    And a question to the team. Could there be a own register for C/C++ and ASM as it was idea of Apollo to activate and re-activate"programming ? Then with some fixed topics being aloways on top where to download what and how to get started?
   
  Is there something like this planned at another location? Does a separate team exists working on such a location, web-page, storage (beside Aminet).
   
  Is it planned to put C++ / ASM programming environment directly on Apollo-SD-Card when Vampire Cards being send so that people can start porting software directly with having compilers which are able to use also the new Apollo instructions. As well as RKM's of Amiga, RKM Apollo, C++ books, Assembler book ? Some software examples ?
   
  It is by far easier to start like this as many does not have old machines running anymore from where to port / copy to new Vampire V4. Its also the right impule to let people play again in programming what makes amiga so unique.
 
  In the past it have been the magazines activating people today it can be just put into the package.

Also a just a register in Apollo-Forum as starting point called programming would help in which then is closed explanation with link collection for ASM, C++, Basic, etc. from where people can start.
 
  Would be great to get some feedback about such ideas.


Gunnar von Boehn
(Apollo Team Member)
Posts 4972
10 Oct 2020 09:40


Chris Chris wrote:

Is it planned to put C++ / ASM programming environment directly on Apollo-SD-Card when Vampire Cards being send so that people can start porting software directly with having compilers which are able to use also the new Apollo instructions.

ApollOS comes already installed with Basic, C and ASM development tools.
All is there so that you can start coding immediately.

We are working on creating example codes and want to include them in the future to help people get started.


Chris Chris

Posts 17
10 Oct 2020 09:53


Wow, that sounds really great and will give a push and impulse to those whose fingers will get nervouse seeing these folders on the Vampire SD-Card.
   
A register within Apollo-Forum with a link libary or something like this would also be a good clear direct starting point, making people move, re-activate and give right impulse for easy re-entering into that great stuff. Also informing them that such development kit for C/ASM/Basic are already installed when getting a Vamp.
   
I am thinking to make a short ASM prog for controlling some expansion port pins that those guys who want to build high end amiga tower can control fan, led and so on to tune their machines a bit more.
   
Also an idea is to do those things via Rasp.-Pi incl. temperature and so on and then use the expansion port pins to communicate or much easier just to switch/trigger some of those functions with RaspPi. But this is on long term.
   
First I need some Vamps V4 for porting and saving old projects keeping them alive.
   
It is impressing what has been created over the years !!! WoW !!!
   


Antony Coello

Posts 62
10 Oct 2020 10:43


Gunnar von Boehn wrote:

  ApollOS comes already installed with Basic, C and ASM development tools.
  All is there so that you can start coding immediately.
 
  We are working on creating example codes and want to include them in the future to help people get started.

Thats great Gunnar. I vaguely remember there being a mention of a compiler that does support the 080 instruction set.

Any news on any 'reference' 080/SAGA documentation material yet?



Antony Coello

Posts 62
10 Oct 2020 11:18


@Chris: Thanks for the link. This is useful info whether vampire specific or not.

@Roy & Edgar: Thanks, but this was what I am trying to escape from; too many dependencies or reliance on other code that may change over time.

Its the whole reason that I have decided to port my game/framework to the Vampire from Windows.

i.e. I can actually hit the registers direct, or actually see/read the far 'tighter' library routines doing so, rather than having 'blind faith' on a giant unreadable, abstracted, obfuscated mess that can be politically/financially/competitively changed on a whim and render my hard work obsolete.

Im not even bothered if it hasnt got all the fancy modern features, as long as its straightforward, logical to understand and fully functional. (My code has a built-in debug system that only needs rudimentary printf type of operations to work effectively).



Kamelito Loveless

Posts 124
10 Oct 2020 16:15


AFAIK only Vasm support fully the 080, nor the basic, C partly with Bebbo compiler but I donít know if it is stable though with higher optimizations settings.
  AsmOne 1.18 was on the right track but stalled.
  What is more lacking is proper documentation, assembler includes for SAGA registers, and the new opcodes docs, plus code examples.


Kenji Irie

Posts 11
11 Oct 2020 10:26


My dev environment for SAGA game development is VBCC which comprises the C compiler and Vasm, in one nicely integrated package. Vasm supports most 68080/AMMX operations.
 
  I write all my C and asm code in Visual Studio on Win 10. A single make file on the PC then compiles to 68080 Amiga executable REALLY fast - about 2 seconds. A samba share to the V4 means the executable copies from the Win 10 PC to the V4 in less than a second, when I can execute it. It works incredibly well. I have not needed to compile any code whatsoever on the V4.
 
  I also have wrapped the graphics/keyboard functions to Win32 as well, so that I debug everything that is non-SAGA specific in a the full Visual Studio debugger running in Native Windows. Once happy, I run the make file and produce the Amiga executable.
 
  For anyone new to asm and SAGA, I highly recommend looking at the DragonCrown assembler source code by Flype. This shows you how to access AMMX functions. AMMX documentation can be found here: CLICK HERE 
  For those that are more C oriented (like me), to use SAGA you simply open a CGFX screen (look at examples from Aminet), set up a buffer in RAM, and poke your buffer address to the SAGA pointer. That's it. I have my AMMX code in assembler functions which are called from the C code.
 
  Happy coding!
 
 
 


Antony Coello

Posts 62
11 Oct 2020 11:02


Kenji Irie wrote:

My dev environment for SAGA game development is VBCC which comprises the C compiler and Vasm, in one nicely integrated package. Vasm supports most 68080/AMMX operations.
 
  I write all my C and asm code in Visual Studio on Win 10. A single make file on the PC then compiles to 68080 Amiga executable REALLY fast - about 2 seconds. A samba share to the V4 means the executable copies from the Win 10 PC to the V4 in less than a second, when I can execute it. It works incredibly well. I have not needed to compile any code whatsoever on the V4.
 
  I also have wrapped the graphics/keyboard functions to Win32 as well, so that I debug everything that is non-SAGA specific in a the full Visual Studio debugger running in Native Windows. Once happy, I run the make file and produce the Amiga executable.
 
  For anyone new to asm and SAGA, I highly recommend looking at the DragonCrown assembler source code by Flype. This shows you how to access AMMX functions. AMMX documentation can be found here: CLICK HERE   
  For those that are more C oriented (like me), to use SAGA you simply open a CGFX screen (look at examples from Aminet), set up a buffer in RAM, and poke your buffer address to the SAGA pointer. That's it. I have my AMMX code in assembler functions which are called from the C code.
 
  Happy coding!
 
 
 

Hey thanks again. Im on the Vampire discord now and will be in touch to pick your brains once the vampire board is up and running (should get it back tomorrow). :)


Antony Coello

Posts 62
21 Oct 2020 13:23


Following on...

Will the team be producing Apollo OS SAGA/080 specific function libraries at some point?


Gunnar von Boehn
(Apollo Team Member)
Posts 4972
21 Oct 2020 13:33


Antony Coello wrote:

Following on...
 
Will the team be producing Apollo OS SAGA/080 specific function libraries at some point?

I think we already did this.
- There are AMMX tuned datatypes.
- There is AMMX tuned Videoplayer.
- You not need an 040 or 060 lib with 080.
- We have written tuned memcopies and tuned IDE routines.
- There is a tuned SDL
- you have tuned SAGA/P96 drivers

What else do you miss?


Kef Emzy

Posts 44
21 Oct 2020 15:38


Gunnar von Boehn wrote:

Antony Coello wrote:

  Following on...
   
  Will the team be producing Apollo OS SAGA/080 specific function libraries at some point?
 

 
  I think we already did this.
  - There are AMMX tuned datatypes.
  - There is AMMX tuned Videoplayer.
  - You not need an 040 or 060 lib with 080.
  - We have written tuned memcopies and tuned IDE routines.
  - There is a tuned SDL
  - you have tuned SAGA/P96 drivers
 
  What else do you miss?

A tuned disk cache? ;)


Antony Coello

Posts 62
21 Oct 2020 17:10


Gunnar von Boehn wrote:

Antony Coello wrote:

  Following on...
   
  Will the team be producing Apollo OS SAGA/080 specific function libraries at some point?
 

 
  I think we already did this.
  - There are AMMX tuned datatypes.
  - There is AMMX tuned Videoplayer.
  - You not need an 040 or 060 lib with 080.
  - We have written tuned memcopies and tuned IDE routines.
  - There is a tuned SDL
  - you have tuned SAGA/P96 drivers
 
  What else do you miss?

To be perfectly honest, I dont know what will be required yet. I just wanted to be fully prepared when I finally get my card running. Im not a native Amiga OS coder, so I still have to learn about the OS calls/libs.

Im armed with the official C= 2nd and 3rd edition HRM, ROM reference: Includes and Autodocs and an early Intuition manual. Im hoping that these, along with studying code from Flypes awesome demos should get me up to speed (although I think the C= ref. manuals will be very dry reading!) :)


Gunnar von Boehn
(Apollo Team Member)
Posts 4972
21 Oct 2020 18:04


Antony Coello wrote:

To be perfectly honest, I dont know what will be required yet. I just wanted to be fully prepared when I finally get my card running. Im not a native Amiga OS coder, so I still have to learn about the OS calls/libs.

 
Yes this makes sense.

I work right now on creating a new demo game.
We will provide this game including sources, gfx files, and audio files
 
The idea is to give people a working example of how to code a small game.
 


Antony Coello

Posts 62
21 Oct 2020 19:14


Thats great. Thanks Gunnar.

Im looking forwards to be able to port something a bit more complex to the Amiga/Vampire without having to both do it in 100% assembly AND compromise the game engine.



posts 17