Jump to content
IGNORED

Programming Languages


Allas

Recommended Posts

This is all i get with my search of good Atari programming language :

 

-------------------Software-------------Manual

 

Action! --------------OK---------------not found

Advan Basic ----not workable-------not found

Quick Code ------not found-------------OK

Quick -------------not found----------not found

MAC65 --------------OK------------------OK

 

Being so difficult to find them... I think I'm going to use ATASM... noooo assembler noooo ... I haven't any library help :-o

 

Of course if anyone have some from them... I apreciate your help.

I want to port some games, but I need an easy and fast programming tool.

Edited by Allas
Link to comment
Share on other sites

Mac/65 + Compute!'s 6502 Programming + Mapping the Atari = 8-Bit Mastery.

 

Of course this is not the easiest route but if you want to be able to do a close to 1:1 ports as possible it's your best route. Alternatively, C or Turbo Basic are easier to learn and can produce decently fast code.

Link to comment
Share on other sites

From what I have read (and now learning by typing in the manual), ACTION! is supposed to be pretty easy to learn and can be compiled. Run-Time files have to be included with the distribution which limits it to being a disk I believe. If you want to do a straight Binary file (for cartridge), one of the assembler's would probably would do you best, but harder to learn than say BASIC or ACTION! If you do a google, you can find many reviews of them. Also, the Wikipedia (http://www.wikipedia.org) has information on the different programmig languages for the Atari 8-Bit.

 

As for the action manual, should be done in a couple weeks.

 

Corey

Edited by 8bitclassics
Link to comment
Share on other sites

A cracked Action ROM is available on the net, you just have to poke around some. Quick is on the DGS PD CD-ROM.

 

http://www.atariage.com/forums/index.php?s...=0entry940508

943400[/snapback]

 

 

Thanks, I use for the emulator. Otherwise I have the real Action! cartridge, but lose the manual. I'm wating for the electronic manual.

 

Turbo Basic is excelent , I used for years... but really I need a more strong tool programmig ... really I'd prefer the Advan Basic Compiler or Action!

 

If there is no way, then I'll use assembler MAC65 with Quickcode library...if anyone give me a help with ATR Quickcode... thanks.

Link to comment
Share on other sites

Actually, in its own way, assembler is easier to learn from a functionality standpoint. The difficulty is in the simple fact that you have to handle all of the functions normally grouped into single commands in higher level languages. (i.e. a simple "PRINT" command in BASIC is comprised of half a dozen lines of assembler code looped to read through a data array one character at a time) But then that's what gives assembler its flexibility -- you can tell the machine more or less how to accomplish what you want to do instead of being limited by the strictures of higher level languages. Plus, of course, you get the fastest and most compact code possible.

 

Of course, development time is much longer as a result and debugging is a pain in the ass, so something like C is much better suited for shorter development cycles and easier (more comprehensible) debugging.

Link to comment
Share on other sites

Actually, in its own way, assembler is easier to learn from a functionality standpoint.  The difficulty is in the simple fact that you have to handle all of the functions normally grouped into single commands in higher level languages.  (i.e. a simple "PRINT" command in BASIC is comprised of half a dozen lines of assembler code looped to read through a data array one character at a time)  But then that's what gives assembler its flexibility -- you can tell the machine more or less how to accomplish what you want to do instead of being limited by the strictures of higher level languages.  Plus, of course, you get the fastest and most compact code possible.

 

Of course, development time is much longer as a result and debugging is a pain in the ass, so something like C is much better suited for shorter development cycles and easier (more comprehensible) debugging.

943717[/snapback]

 

 

Thanks, I loaded with courage and take assembler and get a surprise... MAC65, XASM and MADS are not compatible...

 

After a general view I suposse it's very convenient to work in a PC with CODE GENIE editor. Text ASM code I can compile with these 3 compilers and after that I can execute with Atari800Win

 

But I test with some examples, and every compiler have his own format. I'm noy an expert , so I like to know more about pros and cons of working with:

 

- ATASM (Pros: compatible with MAC65, generate image state emulator, Cons: ???)

- MADS (Pros: ????, Cons: Manual written by Aliens) :D

- XASM (Pros: ????, Cons: ????)

 

Excuse me my poor english.

 

Allas

Link to comment
Share on other sites

Well, try CC65 at www.cc65.com. Its a C cross-compiler that runs on windows, but its very powerful and easy to use with an emulator or a SIO2PC cable.

943536[/snapback]

 

i started work on a graphics library for cc65. Not the TGI library, but a custom one that took into account all atari graphics modes, pm graphics, etc... All of the functions are written in C, but could easily be hand-tuned where they needed a speed up. I have textout functions for all graphics modes, blit, etc...

 

Might be time to dig it out and put it somewhere for other people to play with.

Link to comment
Share on other sites

Well, try CC65 at www.cc65.com. Its a C cross-compiler that runs on windows, but its very powerful and easy to use with an emulator or a SIO2PC cable.

943536[/snapback]

 

i started work on a graphics library for cc65. Not the TGI library, but a custom one that took into account all atari graphics modes, pm graphics, etc... All of the functions are written in C, but could easily be hand-tuned where they needed a speed up. I have textout functions for all graphics modes, blit, etc...

 

Might be time to dig it out and put it somewhere for other people to play with.

944369[/snapback]

 

 

That's a great help for non-assemblers programmers. :D

 

C is easy to use, but CC65 don't have a library specifically designed for Atari computers. I read very promise capacibilities from ADVAN BASIC, QUICK and QUICKCODE, but really I prefer to program in C with a good graphic and sound library.

 

Well, I have the Original Quickcode Manual and describe interesting routines... maybe can implement some ideas... I'm going to scan and put for all atarians.

 

Mario

Link to comment
Share on other sites

Well, try CC65 at www.cc65.com. Its a C cross-compiler that runs on windows, but its very powerful and easy to use with an emulator or a SIO2PC cable.

943536[/snapback]

 

i started work on a graphics library for cc65. Not the TGI library, but a custom one that took into account all atari graphics modes, pm graphics, etc... All of the functions are written in C, but could easily be hand-tuned where they needed a speed up. I have textout functions for all graphics modes, blit, etc...

 

Might be time to dig it out and put it somewhere for other people to play with.

944369[/snapback]

 

I'd like to put my vote in for this. ;) I've been playing with CC65 with both the C Compiler, and Assembler. Being a C coder by nature, I think it's great. But I've not been very motivated to use the common platform routines. They don't take the best advantage of the native platform. I'd rather create multiple compilable versions if I'm going to support multiple platforms.

 

Thanks,

Mike.

Link to comment
Share on other sites

I'd like to put my vote in for this.  ;)

 

They are nothing special, and all written in C. To have a really good library you'd need to hand-tune the routines in assembly. My plan was to tweak the code as much as possible in C and then hand-tune where I felt it needed it. I never got that far. :)

 

I'll look for the routines and put them up on the web somewhere for you guys to download.

 

I've been playing with CC65 with both the C Compiler, and Assembler.  Being a C coder by nature, I think it's great.  But I've not been very motivated to use the common platform routines.  They don't take the best advantage of the native platform.

945896[/snapback]

 

I know what you mean. That's the main reason why I started writing these libraries.

Link to comment
Share on other sites

PL65 is another one to consider - if you can find a copy. It's starting to look as though I may be the only person on the planet still with a copy (and the manual).

 

I've had a few requests for it PMed to me in the last few weeks. The original is protected and won't work without cracking first if placed in an ATR. But another though occurred to me, though. I could make an APE ProSystem PRO image that would work for anyone with an APE/SIO2PC cable.

 

So if anyone's interested in a .PRO version of PL65 then let me know and I'll see what I can do.

Link to comment
Share on other sites

I'll look for the routines and put them up on the web somewhere for you guys to download.

 

and here they are.

 

A few comments:

 

1. I've never created a library before. I based this loosely around the Allegro game programming library that I had quite a bit of experience using several years ago. Since cc65 links in code at the object file level, each function is in its own file. That means a crap load of small .c files.

 

2. I am using an undocumented internal cc65 runtime library function, _heapadd to return allocated memory back to the heap. This function is not meant to be called by the user and it may change name or parameters, and it has in fact done this at least once during the development of this library (there's something to fix!) This is part of the aligned memory allocation functions. The idea is that you can use these functions if you like, or you could reserve space another way (linker config file for instance) and just cast a pointer to it in the BITMAP or PMAREA structure.

 

3. It's not very optimized. I did some preliminary optimizing of the C code in some functions, but I see that I don't even use register variables, which several functions could use quite readily. Hand tuning the assembly would probably be the best bet. It was always envisioned as a general purpose library, not anything you would use to create the next kick butt game or demo ( :D ).

 

4. The display list creation function is a little wierd... it may need some explaining. Take a look and see if you have any questions. It's basically a quick way to build a display list with different bitmaps, etc...

 

5. The load_bitmap_mic function doesn't work as you may notice by all the debug output sprinkled throughout.

 

6. Quite a few graphics primitives are missing: hline, vline, circle, etc... You'll see some other stuff in the header file that is totally missing too. (ie. SPRITE structure)

 

7. Use it, abuse it, sell it, whatever. It'd be cool if you improved it and released it to the community though!

 

Any questions, just ask and I'll try my best to answer.

atarigfx.zip

Link to comment
Share on other sites

Will someone here answer what is hopefully a simple assembly language question for me? I'm playing with the Atari Assembler cartridge on an Atari XEGS but can't get any sample programs to work. I have 2 different Atari assembly language books, but get a syntax error when I compile anything. Here's one of the simple programs I typed in from a book:

 

10 *=$1000

20 CLC

30 LDA #0

40 LOOP ADC #1

50 CMP #3

60 BNE LOOP

70 END

 

Then when I type the ASM command I get a error number 6, which is a syntax error, on the *=$1000 command. Does anyone have an idea as why I get this error?

 

Thanks.

 

Bill

Link to comment
Share on other sites

Will someone here answer what is hopefully a simple assembly language question for me?  I'm playing with the Atari Assembler cartridge on an Atari XEGS but can't get any sample programs to work.  I have 2 different Atari assembly language books, but get a syntax error when I compile anything.  Here's one of the simple programs I typed in from a book:

 

10 *=$1000

20 CLC

30 LDA #0

40 LOOP ADC #1

50 CMP #3

60 BNE LOOP

70 END

 

Then when I type the ASM command I get a error number 6, which is a syntax error, on the *=$1000 command.  Does anyone have an idea as why I get this error?

 

Thanks.

 

Bill

950611[/snapback]

 

For examples, better use page six:

 

10 *=$0600

 

or use in cartridge asembler

 

10 equ $0600

 

if I don't remember bad :D

Edited by Allas
Link to comment
Share on other sites

I start to code in cc65, first i begin with a test velocity screen.

 

#define poke(addr,val)  (*(unsigned char*) (addr) = (val))

#define pokew(addr,val) (*(unsigned*) (addr) = (val))

#define peek(addr)      (*(unsigned char*) (addr))

#define peekw(addr)     (*(unsigned*) (addr))

int main (void)

{

   int n = 0;

   int x = peekw(0x58);

   for(n=0;n<702;n++)

   {

     pokew(x+n,n % 256);

   }

   while(peekw(0xD01F)=6) {

   }

   return 0;

}

 

 

 

This programs fills the screen for top to bottom with chars. I get a velocity as slow like a BASIC program. Even TURBOBASIC get fast results.

 

My question is, if always CC65 is too slow for any type of programming??? my little test is not optimized??? or CC65 is only a advantage for porting plataforms.

 

I thinked with CC65 I can get fast results near assembler. I remember a similar test in aseembler as was very very fast.

 

prueba.zip

Edited by Allas
Link to comment
Share on other sites

10 *=$1000

20 CLC

30 LDA #0

40 LOOP ADC #1

50 CMP #3

60 BNE LOOP

70 END

 

Then when I type the ASM command I get a error number 6, which is a syntax error, on the *=$1000 command.  Does anyone have an idea as why I get this error?

 

950611[/snapback]

Does the cart require an extra space at the start of the line that are not labels? Some assemblers require an extra indent to indicate it is not a label. I have never really used the assembler editor cart though.

Link to comment
Share on other sites

I start to code in cc65, first i begin with a test velocity screen.

 

Cool!

 

   while(peekw(0xD01F)=6) {

 

Is this line doing what you want it to?

 

This programs fills the screen for top to bottom with chars. I get a velocity as slow like a BASIC program. Even TURBOBASIC get fast results.

 

Did you compile with -Osir ?

 

On the cc65.org site there is some documentation on "best practices" for coding with cc65. For instance, using n++ won't produce as optimized code as ++n for various reasons related to how preincrement and postincrement works inside the compiler that I don't really understand. I just always use ++n and I get better code.

 

My question is, if always CC65 is too slow for any type of programming??? my little test is not optimized??? or CC65 is only a advantage for porting plataforms.

 

My experience with it is that it is pretty fast, but it's not going to be as fast as hand-optimizied assembly. If you take care to write your C in ways that will produce faster code you can get more speed out of it. Things like avoiding two-byte math where appropriate, etc... all basic stuff. And of course, using -Osir.

 

I thinked with CC65 I can get fast results near assembler. I remember a similar test in aseembler as was very very fast.

 

I think you can if you use -Osir. Also, if you are curious, use -T --listing and look at the assembly generated. You can get a feel for how the compiler is interpreting your code. You might even gain new respect for Ullrich. :D

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...