Jump to content

Photo

Best practice on a programming environment for Atari 8-bit?


37 replies to this topic

#1 jmccorm OFFLINE  

jmccorm

    Moonsweeper

  • 354 posts

Posted Wed Jan 3, 2018 3:54 PM

How are most people setting up a 6502 assembler programming environment these days? Is there a best practice?

 

I'm assuming that most people are using a PC (typically running Windows or Linux) for their editor and compiler, and then running against an emulated Atari 8-bit for testing and debugging? (As opposed to doing it all inside of the Atari itself.) What specific tools are you using (editor, compiler) , and how are you setting it up?

 

Or are most people doing it on the machine itself (real or emulated) with something like MAC/65?

 

Is there a good environment somewhere to jumpstart a development effort from?

 

Thanks much, all.



#2 _The Doctor__ ONLINE  

_The Doctor__

    River Patroller

  • 4,814 posts
  • Location:10-0-11-00:02

Posted Wed Jan 3, 2018 4:23 PM

I was thinking about some of this recently, The incredible releases of the last 10 years... it would be nice to know exactly what was used and for what purposes to create these masterpieces as well as best programming practices and the alchemy that made it possible.... a how we did it and how you can do it too if you will... ;)



#3 squonk OFFLINE  

squonk

    Space Invader

  • 23 posts

Posted Wed Jan 3, 2018 4:28 PM

I have an SIO2USB device linking my Atari to a windows machine, and I'm running the APE for Windows software.

 

D2 is set to a mirror drive, that mirrors a share on my Samba server, which itself is mounted as a symlink in c:\Atari on my two windows dev machines.

 

On my dev machines I have cc65 and a text editor, which I use for development & cross compiling.  Because I have the drives set up in this manner, I can code and build in a windows environment, but my executable shows up automatically on the Atari side of things.  Which is kinda slick.  Someday I'll bring Altirra into the mix.

 

My current project is to write a REALLY pared down version of emacs, I'm calling FemtoEmacs.  But I kind of abandoned that project several months ago, so I should pick it up again.  I got hung up trying to implement a really, really minimal version of curses.



#4 Stephen OFFLINE  

Stephen

    Quadrunner

  • 7,129 posts
  • A8 Gear Head
  • Location:No longer in Crakron, Ohio

Posted Wed Jan 3, 2018 4:49 PM

For coding, I use Eclipse with the WUDSN plugin, MADS as the assembler.  Altirra is the emulator of choice.  I am finally using GitHub (locally) for my source control.  When coding PC based utilities, I use Visual Studio 2017 as I am a .NET coder for my day job.

 

I have two full-time Atari setups.  Both are 100% of the time connected to PCs running a registered version of APE.  I have several working floppy drives, but I tend to save them for archiving old collections.



#5 _The Doctor__ ONLINE  

_The Doctor__

    River Patroller

  • 4,814 posts
  • Location:10-0-11-00:02

Posted Wed Jan 3, 2018 6:24 PM

My wish for APE is 16 drive support 0-15... and a reworking of the PC mirror... while there is a realdos and sdx driver that sort of does the job... it's cumbersome.... with all that Aspeqt and Respeqt has pulled from APE maybe it's time the reverse should also occur..



#6 Rybags OFFLINE  

Rybags

    Quadrunner

  • 15,756 posts
  • Location:Australia

Posted Wed Jan 3, 2018 6:51 PM

As Stephen describes for the programming enviro is probably "state of the art".

 

There's less complete/complex ways to go like using a lesser text editor which has launch macro key ability.  Generally there you have to save the file then launch macro which will use generated variables for filepath etc to execute the assembler on PC (MADS, AtAsm, whatever).  The decent text editors can also capture output from the run or at least auto-open a file which contains it.



#7 R0ger OFFLINE  

R0ger

    Chopper Commander

  • 223 posts
  • Location:Olomouc, Czech Republic

Posted Wed Jan 3, 2018 7:01 PM

I use mads and PSPad environment. It's very simple, but it can call the compiler and highlight errors, all I need. Eclipse ? Too bulky for my taste.

And of course Altirra. Altirra is the thing. Debugging, profiling, anything. I run stuff on real hardware like once per week on local Atari club meetings. I don't have real machine at home.



#8 popmilo OFFLINE  

popmilo

    Stargunner

  • 1,512 posts
  • Location:Senta, Srbija

Posted Thu Jan 4, 2018 3:04 AM

Wudsn (Eclipse+Mads+Altirra).

Gimp for creating gfx.

Python for converting gfx to Atari binary.

 

Have 800xl next to my desktop pc linked with cable, Aspeqt running on pc.

1. Compile in Eclipse

2. load on Atari.

3. Enjoy :)

 

Never been easier and more fun than now. And it's only getting better :)



#9 TMR OFFLINE  

TMR

    River Patroller

  • 3,456 posts
  • Beeping the horn on the data bus
  • Location:Leeds, U.K.

Posted Thu Jan 4, 2018 5:13 AM

i'm using Crimson Editor which in turn calls Xasm from a hotkey combination (it's set up for ACME and Pasmo on other keys) before dragging the assenbled code to an emulator (A800Win for everyday use, Altirra when i'm worried about cycle accuracy) for testing. Close-to-final code gets a batch file which calls Xasm then Exomizer for crunching and the results are occasionally tested on an 800XL with SIO2SD just to be sure.

Graphics are usually done with Pro Motion or using what are usually C64-centric tools like Char Pad, then pushing the output through bespoke conversion tools usually written in BlitzMax - these are usually so "user hostile" that i don't give them out, even internally amongst other members of Cosine. =-)

#10 MaPa OFFLINE  

MaPa

    Dragonstomper

  • 950 posts
  • Location:Czech Republic

Posted Thu Jan 4, 2018 5:40 AM

XASM assembler + ConTEXT editor with "one key compile and run" in Altirra. Used to have another key for compiling and running in A800Win, but I don't use this emulator anymore.


Edited by MaPa, Thu Jan 4, 2018 5:46 AM.


#11 tep392 OFFLINE  

tep392

    River Patroller

  • 3,067 posts
  • Location:Peoria, IL

Posted Thu Jan 4, 2018 7:10 AM

I'm using Mac/65 for editor/assembler, Envision for graphics on an 800 with 512k ramdrive running warpspeed DOSXL from an 810 Happy enhanced drive.  I use Sdrive^2 for periodic backups. 



#12 slx ONLINE  

slx

    Stargunner

  • 1,489 posts
  • Location:Vienna, Austria

Posted Thu Jan 4, 2018 10:02 AM

I used WUDSN for patching Shamus and enjoyed the really instantaneous assembly times, immediate launch in Altirra and extensive debugging capability. I sometimes used Altirra and Atari800MacX simultaneously to look at different versions and compare their behaviour. IMHO debugging is where PC-based development beats what is available on real machines, even if you don't care for the much faster assembly times. (My on-machine experience is limited to MAE and MAC/65.)

 

For Action! programming I found it convenient to use an emulator although there's probably not much difference between using a real machine and an emulator if you use a modern storage solution, probably even easier as you don't have to think about which key is mapped to what.

 

What's the best setup for you is very much a matter of personal preference, I'd say. Some people enjoy the quickness and convenience of a PC/Mac-based solution while other prefer to keep it retro all through.



#13 MrFish ONLINE  

MrFish

    River Patroller

  • 4,876 posts
  • Location:1010-1010

Posted Thu Jan 4, 2018 10:33 AM

As another option, there's also the free Visual Studio Code and an extension for Mads that was made for use with it.

 

You can find a link to both here: VS Code & Mads Extension


Edited by MrFish, Thu Jan 4, 2018 10:34 AM.


#14 Xuel OFFLINE  

Xuel

    Dragonstomper

  • 718 posts
  • Location:US

Posted Thu Jan 4, 2018 1:09 PM

My main environment is Windows 10 + Cygwin + vim + make + xasm + Perl + Altirra.

Occasionally I've used TMC2 for music and sound effects (X-8), Tiled for map editing (X-8), graph2font for screen editing (X-8, Ransack, Bomber) and gcc for custom C++ utilities (X-8). Other useful tools include franny for ATR manipulation, mads for assembling graph2font-generated sources, exomizer for compression, and many others I'm forgetting. For my various hacks of existing software (e.g. NTSC-fixing, bug fixing, cracking, enhancements) I use my disassembler dis. For BASIC competitions I use dmsc's basicParser.
 
Of course there is a wealth of great documentation and code to draw inspiration from on the web. It goes without saying that Google is one of the most essential development tools. And sharing ideas on AtariAge is a fundamental source of knowledge and inspiration.


Edited by Xuel, Thu Jan 4, 2018 1:12 PM.


#15 Tezz OFFLINE  

Tezz

    River Patroller

  • 2,378 posts
  • Location:Manchester, England

Posted Thu Jan 4, 2018 1:24 PM

The majority of my time coding is just simply MS Notepad and MADS with Altirra. Dis6502, Gimp, G2F, Exo/Deflator/LZ4 and RLE



#16 shanti77 OFFLINE  

shanti77

    Chopper Commander

  • 150 posts
  • Location:Poland

Posted Thu Jan 4, 2018 1:42 PM

Notepad++,Mads , Command Prompt (cmd) for compiling and run, of course  Altirra for debugging/testing and PSP + Atari800 for more testing.



#17 CharlieChaplin OFFLINE  

CharlieChaplin

    River Patroller

  • 2,907 posts

Posted Thu Jan 4, 2018 3:24 PM

1) plug in OSS 5-in-1 cart. by santosp into 800XL

(with switch set to MAC65)

2) power on Atari 800XL and tv

3) see "Edit" or something similar on the tv screen

4) make a strange face, since I am no programmer

5) power off Atari and unplug cart.

6) power off tv

 

And thats my programming environment!



#18 MrFish ONLINE  

MrFish

    River Patroller

  • 4,876 posts
  • Location:1010-1010

Posted Thu Jan 4, 2018 3:33 PM

In case you haven't seen them yet, there are these: WUDSN IDE Tutorials


Edited by MrFish, Thu Jan 4, 2018 3:41 PM.


#19 Philsan OFFLINE  

Philsan

    River Patroller

  • 3,668 posts
  • New Orleans Saints Super Bowl XLIV Champions
  • Location:Switzerland

Posted Thu Jan 4, 2018 3:36 PM

FastBasic (with Notepad++ and CC65), Atari Graphics Studio, Atari Player Editor, Atari Font Maker, Raster Music Tracker.



#20 MrFish ONLINE  

MrFish

    River Patroller

  • 4,876 posts
  • Location:1010-1010

Posted Thu Jan 4, 2018 3:52 PM

In case you haven't seen them yet, there are these: WUDSN IDE Tutorials

 

BTW, I find manually installing WUDSN to be quite simple and cleaner than using the "zero installation" setup that JAC has put together.



#21 jmccorm OFFLINE  

jmccorm

    Moonsweeper

  • Topic Starter
  • 354 posts

Posted Thu Jan 4, 2018 4:54 PM

Incredibly good answers, all.

I think I've selected my own starting point.

 

To begin my own efforts, I've gone with:

1. MADS 6502 cross-assembler

2. Altirra Atari 8-bit emulator

3. Eclipse IDE as the development environment

4. WUDSN for integration, following these instructions

 

eclipse-wudsn.png

 

One initial issue: Inside Eclipse, Shift-Control-0 would not compile and run the code (but the Assembler -> Compile and Run option worked just fine). As it turns out, the problem was deep inside the bowels of the Windows 10 language selection configuration options. Control Panel -> Clock, Language, and Region -> Language -> Advanced settings -> Change Language Bar Hot Keys -> Change Key Sequence. I set both to "Not Assigned", and it released control of the Shift-Control-0 key so that Eclipse could use it.

 

So many great alternatives have been listed, and so many great additional tools to keep advantage of.

Keep them coming!

 

EDIT: I'm already starting to see how valuable it would be to see what the real hardware does...

Attached File  scurvy.xex   34bytes   31 downloads


Edited by jmccorm, Thu Jan 4, 2018 5:40 PM.


#22 kenjennings OFFLINE  

kenjennings

    Dragonstomper

  • 789 posts
  • Me + sio2pc-usb + 70 old floppies
  • Location:Florida, USA

Posted Thu Jan 4, 2018 10:06 PM

Linux

Eclipse

WUDSN

atasm assembler

Atari800 emulator

 

gimp for graphics

 

sometimes editing with Kate or Notepadqq or Leafpad.

 

Last but not least, saving stuff in github


Edited by kenjennings, Thu Jan 4, 2018 10:08 PM.


#23 TMR OFFLINE  

TMR

    River Patroller

  • 3,456 posts
  • Beeping the horn on the data bus
  • Location:Leeds, U.K.

Posted Fri Jan 5, 2018 2:30 AM

EDIT: I'm already starting to see how valuable it would be to see what the real hardware does...


Oh absolutely, always test before releasing. My game Blok Copy uses some cycle-accurate timing for colour splits which both Altirra and A8Win said it was all lined up... but the 800XL disagreed by one cycle!

#24 phaeron OFFLINE  

phaeron

    River Patroller

  • 2,561 posts
  • Location:USA

Posted Fri Jan 5, 2018 11:11 PM

Oh absolutely, always test before releasing. My game Blok Copy uses some cycle-accurate timing for colour splits which both Altirra and A8Win said it was all lined up... but the 800XL disagreed by one cycle!

 

Some types of register splits have a one-cycle variance between computers or even the same computer depending on whether it is warm or cold... so even just testing on a real computer isn't enough, if you're doing something that tight you need to test on multiple computers. ANTIC is generally well behaved and deterministic, POKEY and GTIA less so.



#25 _The Doctor__ ONLINE  

_The Doctor__

    River Patroller

  • 4,814 posts
  • Location:10-0-11-00:02

Posted Fri Jan 5, 2018 11:13 PM

TMR, was it one cycle early or late on the real pal 800XL?


Edited by _The Doctor__, Fri Jan 5, 2018 11:34 PM.





0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users