Friday 30 March 2012

Source Editor and Character Editor Complete

Time for a quick update on the development environment.

The Main code editor is almost complete (I think). I have written it from scratch, using a canvas, to allow me total control over it.
It has full syntax highlighting that is changeable, dependent on the assembler being used and code folding. I still have to implement the source navigation and search facilities.
The project manager is also in place and 80% functional. As I work on other parts of the project that impact on it, I will make the changes then.
Picture 1

The basic character set editor is now finished. At present, it only saves to binary format, so the character set can be directly included in the source, but I may also add an export facility to create source code.
Picture 2
The preferences window is being created as I do each area of the main program, therefore, I have done the Code Editor and Character Editor sections only, so far.
Picture 4
Picture 5

Thursday 15 March 2012

ACDS Continued...

I have been cracking on with the development environment (Horace seems to have taken a slight back seat while I do this).
So far, I have a character set editor built, the project manager and half the source editor.
I have decided to concentrate on on assemblers for now (sorry C coders), but version 2 may include C compiler facilities.
I am also not limiting it to any particular assemblers, although it will ship with default settings for ATASM, MADS and XASM. Other assemblers can easily be added to it.
One thing I didn’t mention in the original post about this project is that it will be available for both Windows and OS X. I’ve using Real Studio to develop it, which is a great cross platform development system.
Anyway, here is a pic of the startup screen for you:
ACDS startup screen

Monday 12 March 2012

Atari Computer Development System (ACDS)

As I am developing Atari software now, I have been on the look out for the best tools to help me. So far, the best I have found is Eclipse with the WUDSN plug-in. This makes coding assembly for either the MADS or ATASM assemblers a dream. For user-defined graphics, I have been using EnvisionPC (which I recompiled for Mac), which has also saved me a lot of time.
However, looking for decent tools, I came across something for Spectrum developers that would be ideal for Atari developers. There is an integrated system for the Spectrum called Tommy Gun. This incorporates graphics tools, code editor, assembler and screen editor all in one. Such a thing would be a dream for any developer, regardless of the system being developed for.
So (you guessed it), I am looking at creating something similar for Atari development. As far as I can tell, it would have to have the following:
  • Code editor - This would definitely have to be for assembly (allowing for MASDS, ATASM, CA65 and XASM syntax’s), but possibly also C and maybe Effectus and Atalan. For those last two, I would need to either research the syntax thoroughly, or contact the authors directly.
  • Font/UDG editor - This is a must in my opinion. Most games use some form of custom graphics or text, so the ability to design them within the development environment would be fantastic. The resultant fonts would also have to be exportable into a number of formats, including (but not limited to), various assemblers, C, Effectus, Action!, Atalan, Quick, Forth, TurboBasic and good old Atari BASIC. Also, an option to save the fonts directly as binary would be marvellous.
  • Sprite editor - The Atari is well known for its sprites, or Player/Missile Graphics (PMGs), and again, these are used in most games that are compiled into machine code. Even some BASIC games use PMGs with machine language routines. Again, these would need to be exported in the formats listed above, as well as binary.
  • Screen designer - Nothing as advanced as Graph2Font, but it would be useful to have a screen designer that allowed the creation of screen images in ALL of the Ataris ANTIC modes, maybe even combined ANTIC modes. These could then be used for loading screens or possible game screens for faster transitions. Right now, I am not too sure about graphics formats on the Atari, so I figure the best way would be to save these as binary and if required, a linked custom display list.
  • Sound/Music editor - T this would have to be the last stage of the project. As I have no idea about accepted formats of sound or music with the Atari 8-bits yet, I will need to research these. I may leave these out altogether, depending on what I find.
So, anyway, that is my plans for I am currently calling the Atari Computer Development System, but I’m sure I can come up with a better name before the project is finished.

Saturday 10 March 2012

Time sure flies - heading into the past

Wow! March already. I guess I should make a post of what I have been up to.

Since the New Year, I have been kind of bummed out with my main projects. I felt it was time for a break, a metaphorical change of scenery. So, I have gone back to my computing roots and begun on a retro project.

I am attempting to recreate one of the Spectrum's classic games, Hungry Horace, on the Atari 8-bit computer. Originally, I was going to do this with a language known as Quick and program directly onto my Atari 800XL. I had not programmed in it before, and I had heard some really good things about it and I could see how much easier it would make things.

I began the coding, and all was going well, but then I got side-tracked (don't I always?).

On the AtariAge forums, I saw a thread where people were talking about their development environments. someone there mentioned a plug-in for Eclipse, known as WUDSN, that was created for writing in assembly to cross compile to the Atari.

I thought I would give it a look, and I liked what I saw.

To that end, I have decided to restart Hungry Horace, but this time, using the MADS assembler. I have never coded in 6502 assembly before, although I knew the basics, so it would be a good learning exercise.

Upshot is, in two days of part-time programming, I am about a quarter of the way through the project coding. I am very happy coding in assembly, it seems to make a lot more sense than higher languages. I have total control of what I am doing. I still come across a few things that I stumble across (such as only being able to use indirect-indexed addressing with zero-page addresses), but I am getting there. And using Eclipse, the WUDSN plug-in and MADS makes it a dream to code. I can honestly say, I haven't enjoyed coding like this for a long time.

If things go according to plan, and I get a successful game at the end of this project, I will almost definitely create some more Atari games (possibly the two official sequels to Hungry Horace to start with). As one of my other computers back in the 80's was also 6502 based (the Oric Atmos), I may look at writing some games for that too.

So have I given up with RealStudio and BlitzMax? Absolutely not. I will get back to some modern programming again soon, but for now, I am enjoying my time in the past.