Author Topic: ASMDREAM - the TI-8X+ on-calc assembler  (Read 14334 times)

0 Members and 2 Guests are viewing this topic.

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
ASMDREAM - the TI-8X+ on-calc assembler
« on: December 29, 2011, 09:21:48 am »
  ###     #### #      # ####   ####   #####   ###   #      #
#      # #         ##  ## #      # #      # #         #      # ##  ##
#      # #         #  #  # #      # #      # #         #      # #  #  #
#####   ###   #  #  # #      # ####   ####   ##### #  #  #
#      #         # #      # #      # #  #     #         #      # #      #
#      #         # #      # #      # #    #   #         #      # #      #
#      # ####   #      # ####   #      # ##### #      # #      #

THE TI-8X+ ON-CALC ASSEMBLER

CURRENT VERSION : 1.00

Asmdream is an on-calc assembler for the TI-8X+ calculator series.
It reads symbolic content (sources & includes) written directly using the OS built-in program editor.
It writes machine code into protected programs in ram.
You can think of it as a hybrid between mimas & axe.

DOWNLOAD

http://www.ticalc.org/archives/files/fileinfo/444/44479.html
Don't forget to read asmdream.txt.

NEWS

http://ourl.ca/14654/276283
http://ourl.ca/14654/278334
http://ourl.ca/14654/342852

FEATURES

all z80 instructions (undocumented ones included)
constant byte strings
variable byte strings (ascii strings handled)
variable word strings (ascii strings handled)
token strings
comments
immediate arguments
  decimal
  hexadecimal
  binary
  ascii
operators
  positive
  negative
  addition
  substraction
program counter symbol (changeable initial value)
address labels (usable in main and macro code)
equate labels (nesting handled)
macros (nesting handled)
macro parameters
error handling (goto handled)
automatic include detection
ultra complete collection of equates
running asmdream from external code supported

TOPIC PURPOSES

troubleshooting
feedback

SCREENSHOT

The assembler in action :

« Last Edit: March 26, 2013, 01:40:05 pm by the_mad_joob »

Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4704
  • Rating: +719/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #1 on: December 29, 2011, 10:25:05 am »
AWESOME! When will the download be available, or don't you know yet? This is soo cool! I wonder if this is news worthy o.o

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #2 on: December 29, 2011, 10:27:02 am »
Hey Xed =]

Waiting for ticalc.org validation...

Offline Sorunome

  • Fox Fox Fox Fox Fox Fox Fox!
  • Support Staff
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 7920
  • Rating: +374/-13
  • Derpy Hooves
    • View Profile
    • My website! (You might lose the game)
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #3 on: December 29, 2011, 10:27:56 am »
This looks cool!
* Sorunome should start learning assembly

THE GAME
Also, check out my website
If OmnomIRC is screwed up, blame me!
Click here to give me an internet!

Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4704
  • Rating: +719/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #4 on: December 29, 2011, 10:29:45 am »
Ah,cool! So you are one of those "pending files" :D I uploaded ASMComp last night, too, and I am waiting for validation.

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #5 on: December 29, 2011, 10:39:19 am »
Congratulations for ASMComp =]

Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4704
  • Rating: +719/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #6 on: December 29, 2011, 10:49:35 am »
Meh, ASMComp is nothing compared to ASMDREAM. I am not even going to attempt things like macros x.x

EDIT: Just downloaded!

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #7 on: December 29, 2011, 10:50:49 am »
Yeah, those nasty macros were a true hell to code.
Had to use paper & pen to avoid brain explosion =]

Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4704
  • Rating: +719/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #8 on: December 29, 2011, 11:40:50 am »
I made my first ASMDREAM program! It was a simply "HOWDY WORLD" program, but I got it to work! I haven't even tried making my own macros, but I like that idea with LD A,?,B,?,C,?... Cool!

So what I have learned so far:
-Instructions use a space first then the instruction
-Labels do not start with a space
-.db statements start with a . instead of a space

I like it!

Here is an example code:
Code: [Select]
→SRC
prgmƟROM1
prgmƟROM2
prgmƟMACROS
AsmPrgmHELLO
 NOSTUB
 LD HL,HELLO
 BCALL(/PUTS)
 RET
HELLO
."HOWDY WORLD!
End

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #9 on: December 29, 2011, 12:04:17 pm »
Good to here =]
Just one syntaxic error in your code : ascii string must be quote-terminated.
Also, the zero-terminating is missing, but asmdream doesn't really know the input for rom calls =]

Just found my first bug : the new instructions return a label-missing error.
Have to check that out.
« Last Edit: December 29, 2011, 12:07:38 pm by the_mad_joob »

Offline Yeong

  • Not a bridge
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3739
  • Rating: +278/-12
  • Survivor of Apocalypse
    • View Profile
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #10 on: December 29, 2011, 12:18:48 pm »
So it's like Mimas, but use OS program editor?
Sounds great! :D
Sig wipe!

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #11 on: December 29, 2011, 12:28:45 pm »
In short, yes.
The macro features makes it a little bit unique, though.

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #12 on: December 29, 2011, 01:03:27 pm »
The bug i'm currently facing :

The macros that add the extra instructions are interpreted as real instructions !
For example, LD BC,DE is interpreted as LD BC,label_de.
I'm on it =]

EDIT

I know how to fix that, but i also know it will slow down the address labels calculation a lot.
I think i'm gonna go for the "Do not choose a macro name too close to a z80 instruction name." solution.
I also have to rename the extra instructions macros.
I'm hesitating between 2 syntaxs : XLD BC,DE and LD16 BC,DE
« Last Edit: December 29, 2011, 01:37:20 pm by the_mad_joob »

Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4704
  • Rating: +719/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #13 on: December 29, 2011, 01:42:36 pm »
Hmm, oops, I forgot that 0... Still, it works nicely! Also, maybe macros can have mandatory parentheses like bcall( ? That might help.

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: ASMDREAM - the TI-8X+ on-calc assembler
« Reply #14 on: December 29, 2011, 01:55:41 pm »
Already thought of that solution.
The problem is that i don't want the user to misunderstand the meaning of the parentheses, since those are used to refer to indirect access in regular instructions.

The chosen syntax will be XLD (X for extra loading instructions).
Let's update that...