ORG: online Z80 IDE and assembler

Here you can share sprites, code, sheets or ideas that you have
  • Author
  • Message
Offline
User avatar

Deep Thought

Topic Starter

ORG: online Z80 IDE and assembler

Post22 January 2012, 20:34

Yay, first post.

Image

ORG is an online IDE (in JavaScript, with a custom CodeMirror mode) and assembler (in PHP). It allows editing, building, zipping, and hosting Z80 assembly projects with any number of files, displayed in the UI as tabs that can be added, deleted, renamed, and rearranged. The assembler is reasonably complete, and supports the following directives:
  • #include "filename" or #include <filename>
  • #define variable or #define variable value or #define macro(passed, arguments) lines \ of \ code
  • #defcont \ more \ lines \ of \ code
  • #if expression
  • #ifdef variable
  • #ifndef variable
  • #elseif expression
  • #elseifdef variable
  • #elseifndef variable
  • #else
  • #endif
  • .org pointer
  • .echo expression
  • .end
  • .block bytes
  • .fill bytes or .fill bytes, value
  • .db data or .byte data
  • .dw data or .word data
Currently, you can build projects as protected 8XPs, 8XVs, or plain-text files with AsmPrgm hex characters. It's also linked to the BBify'r and to Pastebin, for sharing code. I'm planning to allow assembling and signing to 8XKs, and I'm looking for documentation on them right now.
Offline
User avatar

chickendude

Staff Member

Re: ORG: online Z80 IDE and assembler

Post22 January 2012, 20:59

Is there any way to upload files or atleast save projects? It looks really nice, the only thing that throws me off a little is pressing tab (it always places it at the start of the line).
Offline
User avatar

Deep Thought

Topic Starter

Re: ORG: online Z80 IDE and assembler

Post23 January 2012, 00:17

chickendude wrote:Is there any way to upload files or atleast save projects?
Yes; if you're logged in, it will save and be ready for you the next time you visit the page.
chickendude wrote:It looks really nice, the only thing that throws me off a little is pressing tab (it always places it at the start of the line).
That's a bug I'm still trying to fix.
Offline
User avatar

NanoWar

Site Admin

Re: ORG: online Z80 IDE and assembler

Post23 January 2012, 00:28

"Build" has a bit unusual drop-down behavior. But everything looks beautifully arranged. Very good job.
Offline
User avatar

chickendude

Staff Member

Re: ORG: online Z80 IDE and assembler

Post23 January 2012, 04:09

And.. um.. sorry for the dumb question but... how do you register? I don't see any links anywhere.
Offline
User avatar

Deep Thought

Topic Starter

Re: ORG: online Z80 IDE and assembler

Post23 January 2012, 04:43

Sorry, I should probably make the link more visible. (It currently appears when you press Save.) Sign up at http://clrhome.org/members/ and go back to the page.
NanoWar wrote:"Build" has a bit unusual drop-down behavior. But everything looks beautifully arranged. Very good job.
I should make it stay when I click the arrow, right?
Offline
User avatar

chickendude

Staff Member

Re: ORG: online Z80 IDE and assembler

Post23 January 2012, 11:38

I signed up for an account :) There also doesn't seem to be any way to delete hello.z80.
Offline
User avatar

Deep Thought

Topic Starter

Re: ORG: online Z80 IDE and assembler

Post23 January 2012, 15:24

You can rename it by double-clicking. You can never delete the first tab in the list, but you can rearrange them. Click the Help button for full instructions.
Offline
User avatar

NanoWar

Site Admin

Re: ORG: online Z80 IDE and assembler

Post24 January 2012, 14:24

A browsable folder structure would be nice (a bit overkill maybe).
Compiled files should overwrite themselves. The hash tag you use should not be for files, but for user folders.

Are all Build options available? Because it (hello.z80) always produces a 8xp file that I can download.
Offline
User avatar

Deep Thought

Topic Starter

Re: ORG: online Z80 IDE and assembler

Post24 January 2012, 21:49

NanoWar wrote:A browsable folder structure would be nice (a bit overkill maybe).
Maybe. I might allow each user to have multiple projects and share them someday, and that might be useful then.
NanoWar wrote:Compiled files should overwrite themselves. The hash tag you use should not be for files, but for user folders.
I don't keep track of compiled file names to ensure that files don't overwrite those of other users that happen to have the same file name. What hash tag are you talking about?
NanoWar wrote:Are all Build options available? Because it (hello.z80) always produces a 8xp file that I can download.
All of them are available except for the one titled "DO NOT USE." All of them generate download files except for the last two, which sends the information in the current tab to either the BBify'r or to Pastebin.
Offline
User avatar

NanoWar

Site Admin

Re: ORG: online Z80 IDE and assembler

Post25 January 2012, 23:13

Deep Thought wrote:What hash tag are you talking about?

I meant the "hash"-like file names you give the generated .8xp files. And since users are anonym, you could give each user a hashed subfolder (like /asm/9XIOB1F/hello.z80...).
Deep Thought wrote:All of them are available except for the one titled "DO NOT USE." All of them generate download files except for the last two, which sends the information in the current tab to either the BBify'r or to Pastebin.

Hrm. Doesn't work here. (actually all it displays now is a "15") But yesterday I couldn't use the other build options. Nah you're working on this I guess :) .
Offline
User avatar

Deep Thought

Topic Starter

Re: ORG: online Z80 IDE and assembler

Post25 January 2012, 23:56

NanoWar wrote:
Deep Thought wrote:What hash tag are you talking about?
I meant the "hash"-like file names you give the generated .8xp files. And since users are anonym, you could give each user a hashed subfolder (like /asm/9XIOB1F/hello.z80...).
Wow, I didn't think of that. Thanks. (It would actually be easier to implement lol)
NanoWar wrote:
Deep Thought wrote:All of them are available except for the one titled "DO NOT USE." All of them generate download files except for the last two, which sends the information in the current tab to either the BBify'r or to Pastebin.
Hrm. Doesn't work here. (actually all it displays now is a "15") But yesterday I couldn't use the other build options. Nah you're working on this I guess :) .
I was testing something at the moment. Should be working now. (I probably shouldn't test on the live page :P)
Offline
User avatar

Deep Thought

Topic Starter

Re: ORG: online Z80 IDE and assembler

Post27 January 2012, 01:16

Deep Thought wrote:
NanoWar wrote:
Deep Thought wrote:What hash tag are you talking about?
I meant the "hash"-like file names you give the generated .8xp files. And since users are anonym, you could give each user a hashed subfolder (like /asm/9XIOB1F/hello.z80...).
Wow, I didn't think of that. Thanks. (It would actually be easier to implement lol)
Did that and fixed a lot more bugs.

And ORG can now generate one-page signed apps, thanks to RabbitSign. I tried for four days with three different algorithms to make my own signer, but none of them worked :(

There's an equate file app.inc to help make app-building easier. It has a single macro, defpage(page,name), which generates an app header for page page of app name. Since only single-page apps are supported at the moment, it only makes sense to use 0 for page.

Now I'll be working on fixing one of those signers (I'd prefer not to rely on RabbitSign), and allowing multi-page apps.
Offline
User avatar

Deep Thought

Topic Starter

Re: ORG: online Z80 IDE and assembler

Post07 July 2012, 21:25

(Offtopic: Whoa, I didn't eve realize how much time had passed until I saw the date on my last post :o)

Lots of updates since then:
  • Uploading programs - either click Open or drag-and-drop your source files straight in
  • Templates - sample code for shells, for instance; find them under the Open drop-down menu
  • New directives for greater compatibility (.defs, .defm, and so on, used with some assemblers
  • Compiling for ZX Spectrum machines
  • Fixed lots of bugs
  • New design (again)
  • Google Chrome-style motion transitions on opening, closing, and rearranging tabs
  • Ctrl+S to save - still trying to decide on other shortcuts
  • F11 to go full-screen (will even make your browser full-screen if supported
Offline
User avatar

NanoWar

Site Admin

Re: ORG: online Z80 IDE and assembler

Post09 July 2012, 00:10

Looks and works much better than the older version I tested. How long does it save a session?
Offline
User avatar

Deep Thought

Topic Starter

Re: ORG: online Z80 IDE and assembler

Post09 July 2012, 00:24

It's not saved to the session—if you're logged in, your files are saved forever, if not, they're not saved at all (unless you download them yourself or something).
Offline
User avatar

Madskillz

Site Admin

Re: ORG: online Z80 IDE and assembler

Post23 July 2012, 04:12

Wow I havent checked this out since the very first version. Looks like it has really improved Deep Thought.
Offline
User avatar

NanoWar

Site Admin

Re: ORG: online Z80 IDE and assembler

Post23 July 2012, 08:23

Code: Select all
#define macro(foo, bar) .db foo, bar
 macro(1,2)

Code: Select all
#define macro(foo, bar) .db foo \ .db bar
 macro(1,2)

All above snippets give me errors. My programs are macro heavy ^^ .

Only this works:
Code: Select all
#define macro(foo) .db foo
 macro(1)

But it doesn't add much to the code.

I'd also want to do this:
Code: Select all
#macro doSomething(foo, bar)
 #if foo = 1
  .db bar
 #endif
#endmacro
Offline
User avatar

Deep Thought

Topic Starter

Re: ORG: online Z80 IDE and assembler

Post23 July 2012, 17:51

Fixed the #define bug. It's actually one of my dumber bugs—macros with more than one argument did work, but not with spaces following a comma (spaces before a comma were fine) :P

As for #macro and #endmacro, I'll see if I can work it in somewhere. Meanwhile, if you want to create a multi-line macro, use #define and #defcont:
Code: Select all
#define     doSomething(foo, bar)
#defcont    \ #if foo = 1
#defcont    \   .db bar
#defcont    \ #endif
The #defcont and backslash syntax is from TASM.

Return to Resources and Ideas

Who is online

Users browsing this forum: No registered users and 1 guest