Nov 152014
 

A long time ago I started to play with 8bit CPUs and old computers… again.

There is a lot of development tools for these computers, a tons of assemblers and utilities for any OS, from CP/M to Mac OS, DOS, Linux and Windows including. So there is no space for a new one. But internet is a magic “big space for everything”. 🙂

When I bought Phil’s V6Z80P, I used PASMO assembler. It is a great state-of-the-art assembler, really perfect. But over time I had a lot of assemblers, compilers and IDEs for different CPUs somewhere on my disk. And one day my disk crashed. So I wished to have “an online PASMO”.

At first I made online editor with server-side PASMO. You wrote a code in your browser, pressed COMPILE, code went to the server, PASMO did its magic and send back my HEX (or BIN or whatever). Great thing! Later I’ve added FLASH-based Spectrum emulator, so I could write programs for ZXS, compile it and try it directly in emulator. But I never published this tool.

One year ago I’ve decided to reinvent my wheel again, and this time without server back support. I choose text editor in JavaScript and start development of my very own assembler engine. My goal was to create a modular assembler for different 8bit CPUs, from 8080 to 6809, with simillar syntax. I’ve integrated it with the editor into one “IDE”. Later I added CPU emulating engines, so you could debug your compiled code. Then I added whole computer emulations…

And all of this is free, online, partially open source.

The main part is ASM80.com. This is a web-based IDE with following features:

  • Code editor
  • Simulated workspace for your files (it’s stored technically in your browser, so you haven’t to got any “server account”)
  • Compiling engines for 8080/8085, Z80, 6502, 6800 and 6809 CPU
  • Embedded emulators for all these CPUs
  • Emulators for some computers:
  • Nearly the same syntax and directives for all CPUs
  • Macros
  • Preprocessor

Here is an assembler description and here is source code for the engine.

During my work on ASM80 I developed some minor things in JavaScript. All of these are open source too: 6850js (6850 emulator), 6809 emulator or enhanced 8080js emulator, which can pass through the Examiner test (so every bit works, every T cycle is valid…)

Then I’ve derived small one-page assemblers for all supported CPUs. You can save it in your Favorites or at your local disk and use for simple compiling.

And the newest part of ASM80 family is an IDE80. It’s technically ASM80, with IDE, assembler, debugger and emulatore, repacked and compiled as a desktop application. It’s in beta version, just for Windows at this time, but Linux and Mac OS X versions should came very soon. You can watch a video showing first steps with this IDE.

At this time I’m working on further improvements:

  • Structures in assembler
  • C64 or Atari emulator in JavaScript
  • KIM-1 emulator
  • modules for generating not just HEX or S19, but TAP, SNA, PRG and other popular formats for 8bit computers.

Update 11/16/2014: Beta version of KIM-1 emulator is ready and deployed…

 

  7 Responses to “An introduction to ASM80”

  1. Have you seen the ide ‘swift’ (not the mac one) for creating bbc micro apps ?

    It has a couple of nice features: a sprite editor and links into the debugger of a couple of bbc micro emulators.

  2. […] the idea of an IDE for a boatload of old systems came to him. After a year of work, he announced a multitarget IDE for 8-bit computers that works in your […]

  3. Very nice. 68HC11 might be nice to add too. I have some expertise there.

  4. […] the idea of an IDE for a boatload of old systems came to him. After a year of work, he announced a multitarget IDE for 8-bit computers that works in your […]

  5. […] the idea of an IDE for a boatload of old systems came to him. After a year of work, he announced a multitarget IDE for 8-bit computers that works in your […]

  6. Thank you, Stu, for interesting tip, Swift IDE looks interesting.

  7. 68HC11 is in queue with (for example) RCA 1802. It all depends just on my spare time.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

banner