Omnimaga: The Coders Of Tomorrow
Welcome, Guest. Please login or register.
 
Omnimaga: The Coders Of Tomorrow
24 May, 2013, 10:43:53 *
Welcome, Guest. Please login or register.

Login with username, password and session length
 
   home   news downloads projects tutorials misc forums rules new posts irc about Login Register  
+-OmnomIRC

You must Register, be logged in and have at least 40 posts to use this shout-box! If it still doesn't show up afterward, it might be that OmnomIRC is disabled for your group or under maintenance.

Note: You can also use an IRC client like mIRC, X-Chat or Mibbit to connect to an EFnet server and #omnimaga.

Pages: [1] 2 3 ... 10   Go Down
  Print  
Author Topic: asmdream is waking up... -  (Read 5353 times) Bookmark and Share
0 Members and 1 Guest are viewing this topic.
the_mad_joob
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 21 May, 2013, 13:04:44
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« on: 02 May, 2011, 11:18:00 »
+7

hey there...

I'm quite new to these forums but i thought it would be nice to share the thing around :

A few weeks ago, i digged out a project that was sleeping for too long.
It's called "asmdream" and is, in fact, an (other) on-calc asm compiler for the 8X+ series.
So, nothing revolutionnary, but it has its particularities (wanted to make something new).

The main challenge here was to make it able to convert token-based sources directly into machine code.
For the ease of use, i was forced to define a simplified syntax because of the large font usage and lack of readability of the tios prgm editor.
But don't worry, i made it very instinctive so we're not so far from tasm.

It is supposed to handle, at least :
- all z80 instructions (undocumented included)
- includes
- labels
- equates (nesting allowed)
- macros with parameters (nesting allowed)
- bases conversions : binary/decimal/hexadecimal/ascii/token
- arithmetic operators : positive/negative/addition/substraction
- read from flash (sources/includes)

For obvious reasons, i do my best to optimize it in favor of space (about 2K for now) but i'm still amazed how fast it does the job.
I work on it many hours per day but it's still hard to tell when it'll see the light (progress maybe around let's say... 50%).

I'll use this thread to post news and (hope not) ask for help.
Also, don't hesitate if you've some questions/suggestions.

cu around =]
« Last Edit: 02 May, 2011, 11:33:03 by the_mad_joob » Logged

"No human is trustworthy, not even me..." - the_mad_joob
ZippyDee
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 12 May, 2013, 10:03:36
Date Registered: 21 March, 2011, 03:15:07
Location: Yes.
Posts: 704


Total Post Ratings: +73

View Profile
« Reply #1 on: 02 May, 2011, 11:57:05 »
0

Sounds awesome! I can't wait to see how it turns out! Also, welcome! Cheesy [insert peanuts that you've almost definitely already received somewhere else...]
Logged

There's something about Tuesday...


Pushpins 'n' stuff...

aeTIos
You got stair'd!
LV12 Extreme Poster (Next: 5000)
************
Offline Offline

Gender: Male
Last Login: Today at 08:20:23
Date Registered: 15 September, 2010, 06:00:00
Location: Netherlands, Overijssel
Posts: 3121


Total Post Ratings: +120

View Profile
« Reply #2 on: 02 May, 2011, 19:02:41 »
0

I hate to say this, but there's already something for this: Mimas
But, this sounds cool too! And the TI OS prog editor sounds also cool. Mimas is more like an IDE.

Hope this will be finished!
Logged

If something above sounds rude, feel free to vote it down, it was not meant to be rude<<lolol
--Always stay relAXEd!--


Spoiler for Hidden:


[







Spoiler for Still Alive:
This was a triumph.
I'm making a note here: HUGE SUCCESS.
It's hard to overstate my satisfaction.

Aperture Science:
We do what we must because we can.
For the good of all of us
Except the ones who are dead.

But there's no sense crying over every mistake
You just keep on trying till you run out of cake
And the science gets done and you make a neat gun
For the people who are still alive.

I'm not even angry.
I'm being so sincere right now.
Even though you broke my heart and killed me.
And tore me to pieces.
And threw every piece into a fire.
As they burned it hurt because
I was so happy for you.

Now these points of data make a beautiful line
And we're out of beta we're releasing on time.
So I'm GLaD I got burned think of all the things we learned
For the people who are still alive.

Go ahead and leave me.
I think I prefer to stay inside.
Maybe you'll find someone else to help you.
Maybe Black Mesa -
THAT WAS A JOKE. HA HA, FAT CHANCE.
Anyway, this cake is great:
It's so delicious and moist.

Look at me still talking when there's science to do.
When I look out there it makes me GLaD I'm not you.
I've experiments to run there is research to be done
On the people who are still alive

And believe me I am still alive.
I'm doing science and I'm still alive.
I feel FANTASTIC and I'm still alive.
While you're dying I'll be still alive.
And when you're dead I will be still alive.

Still alive
Still alive
AngelFish
This is my custom title
Administrator
LV12 Extreme Poster (Next: 5000)
*
Offline Offline

Gender: Male
Last Login: Yesterday at 08:17:37
Date Registered: 15 August, 2010, 09:18:54
Posts: 3190


Total Post Ratings: +220

View Profile
« Reply #3 on: 02 May, 2011, 19:53:02 »
0

Sounds awesome! I can't wait to see how it turns out! Also, welcome! Cheesy [insert peanuts that you've almost definitely already received somewhere else...]





You have no idea how close I came to editing the peanuts into your post Grin

*Qwerty.55 always hits the Modify button instead of the Quote button...

Anyway, good luck the_mad_joob. It's a big project, so don't be afraid to ask for help if you need it.
« Last Edit: 02 May, 2011, 19:55:14 by Qwerty.55 » Logged

∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ
the_mad_joob
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 21 May, 2013, 13:04:44
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« Reply #4 on: 02 May, 2011, 20:07:46 »
0

Already knew the existence of mimas but thx for the info =]
Didn't try it (yet) but that looks like a great option for now.

Like i said, i wanted to write my own for fun and challenge.

Don't know if mimas (or any other compiler) can do this but i intend to enlarge the way macros work to the maximum, including labels usage and parameters nesting.
If i succeed in this part of the code, the possibilities may be huge, like let's say, an easy way to create a high level programming language.
But, writing this kind of loops may be a true pain without anything to smoke...
Hopefully, i have prodigy =]

Thx for support guys...

P.S. : Some more peanuts ! Tradition sometimes has its good points =]
« Last Edit: 02 May, 2011, 20:14:33 by the_mad_joob » Logged

"No human is trustworthy, not even me..." - the_mad_joob
DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Offline Offline

Gender: Male
Last Login: Today at 08:21:29
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50232


Total Post Ratings: +2615

View Profile WWW
« Reply #5 on: 02 May, 2011, 20:20:45 »
0

Heya and welcome on the forums if I did not welcome you already before. This seems interesting. Just keep in mind making an on-calc ASM compiler or IDE can be a bit hard at first, so if you are new to programming, this might be a challenging project. Regardless, good luck. I am curious what this project will include that Mimas is missing. Smiley
Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
the_mad_joob
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 21 May, 2013, 13:04:44
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« Reply #6 on: 02 May, 2011, 20:29:57 »
0

Hey dj...

Writing source code directly from the tios and macros enhancements may be a good start =]
And yeah, that is my first "serious" z80 project but i'm already familiar with asm programming (hopefully).

Cu around...
« Last Edit: 02 May, 2011, 20:30:39 by the_mad_joob » Logged

"No human is trustworthy, not even me..." - the_mad_joob
DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Offline Offline

Gender: Male
Last Login: Today at 08:21:29
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50232


Total Post Ratings: +2615

View Profile WWW
« Reply #7 on: 02 May, 2011, 20:37:51 »
0

Ah ok good to hear. I can't wait to see what you will come up with. Keep us updated! Cheesy
Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
ralphdspam
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 14 May, 2013, 09:10:11
Date Registered: 01 February, 2011, 07:58:40
Location: California, USA
Posts: 841


Total Post Ratings: +36

View Profile
« Reply #8 on: 03 May, 2011, 03:46:25 »
0

Sounds nice!  Good luck.  Smiley
Logged

ld a, 0
ld a, a
the_mad_joob
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 21 May, 2013, 13:04:44
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« Reply #9 on: 03 May, 2011, 07:36:53 »
0

Thx =]

Here's a summary of what's done for now :

*****

DISPLAY
title screen
main interface
status
basic error messages

KEY INPUT
basic actions
target source input

KERNEL
auto-detection of sources/includes locations (ram/flash)
sources/includes reading directly from flash
basic directives
can locate the matching equate definition from its call
can locate the matching macro definition from its call (even if it has some custom parameters)
complex token strings conversion (multiple bases and arithmetic operators mixed in a single expression)

MISC
z80 ops file matching asmdream syntax

*****

So, a lot of work to write all this but the worse is yet to come...

Anyway, i won't forget to share the news =]
« Last Edit: 03 May, 2011, 07:49:40 by the_mad_joob » Logged

"No human is trustworthy, not even me..." - the_mad_joob
DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Offline Offline

Gender: Male
Last Login: Today at 08:21:29
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50232


Total Post Ratings: +2615

View Profile WWW
« Reply #10 on: 03 May, 2011, 07:54:53 »
0

I see. Good luck with the rest of the stuff!
Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
the_mad_joob
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 21 May, 2013, 13:04:44
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« Reply #11 on: 03 May, 2011, 08:26:02 »
0

Thx, but i'm afraid the word "luck" has no meaning in zilog world =]
Logged

"No human is trustworthy, not even me..." - the_mad_joob
the_mad_joob
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 21 May, 2013, 13:04:44
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« Reply #12 on: 04 May, 2011, 03:46:42 »
0

Yo...

Today, written mac_call & mac_return.
Those routines both allow jumps through sources & includes and increment/decrement a custom stack pointer.
This stack is used to backup calls & definitions pages/offsets before the jumps, in order for the nesting feature to be functional.
Also, it may later allow parameters passing =]
Imagine the possibilities with for example 3 nested macros, the 3rd one using the 1st one's parameters...

Have to do the same for equates now.
After that, i think i will have the necessary routines to code the part of the main which calculates the size of the output program and reserves it in ram (or displays an error if not enough available).

Btw, i have a little question.
If i create a huge basic program (data>16385 bytes more precisely) and then archive it, is there a chance that it will span more than 2 rom pages ?
I'm asking because if this is not the case, this could reduce the size of one of my routines a little bit (and additionally accelerate the reading of archived sources/includes).
« Last Edit: 04 May, 2011, 05:27:40 by the_mad_joob » Logged

"No human is trustworthy, not even me..." - the_mad_joob
the_mad_joob
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 21 May, 2013, 13:04:44
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« Reply #13 on: 04 May, 2011, 19:40:37 »
0

Modified mac_call a bit.
It now also includes a backup of the current program counter value.
This will allow the usage of local labels inside macros definitions =]
Logged

"No human is trustworthy, not even me..." - the_mad_joob
Xeda112358
Xombie. I am it.
Coder Of Tomorrow
LV12 Extreme Poster (Next: 5000)
*
Offline Offline

Last Login: Yesterday at 22:01:23
Date Registered: 31 October, 2010, 08:46:36
Location: Land of Little Cubes and Tea, NY
Posts: 3760


Total Post Ratings: +610

View Profile
« Reply #14 on: 04 May, 2011, 21:45:08 »
0

Since each page is 16384 bytes, technically if the program was 16386 bytes, it could use the last byte on one page, the whole next page, and the first byte on the following page...

By the way, I have a similar dead project that has all the bcalls and RAM equates in the regular ti83plus.inc file and I might be able to fix it up a little to suit your needs... no guarantees, though x.x That version used Celtic 3 to search for the name and return the address. I've been meaning to update it using other methods of programming that are geared more toward this kind of data crunching (BatLib BASIC).
Logged



Grammer Download (2.29.04.12)
Latest update (possibly incomplete)
My pastebin
Spoiler for FileSyst:
FileSyst is an application that provides a folder and filesystem for the TI-83+/84+ calculators. It is designed to be easy to access and use in BASIC, and it can be used to access game files and save data, or to create a command prompt, among other things:

Spoiler for Graphiti:
This is a graph explorer for graph theory. It will require lots of work to finish. Currently you can:
Add/delete vertices
Add edges (direction not shown, but they are directed)
Arrange vertices in a circle (in the future, you will be able to define levels of rings and the number of nodes in each)
Create complete graphs quickly

Plans:
Add adjacency matrix viewer
Deleting edges
Multiple graphs support
Arrows for directed graphs
Planarity testing
Matrix operations
Weighted edges
Chromatic polynomials
Chromatic numbers

Spoiler for Stats:

Samocal             [o---------]
Virtual Processor   [o---------]
EnG                 [oo--------]
Grammer             [ooo-------]
AsmComp             [ooo-------]
Partex              [oooo------]
BatLib              [oooooooo--]
Grammer82           [----------]
Grammer68000        [----------]


Pseudonyms:  Zeda, Xeda, Thunderbolt
Languages:   English, français
Programming: z80 Assmebly
             Grammer
             TI-BASIC (83/84/+/SE, 89/89t/92)
Known For:   -Creator of the Grammer programming language
              (Winning program of zContest2011)
             -BatLib- One of the most feature packed libraries for BASIC programmers available
              with over 100 functions and a simple programming language
             -Learning to program z80 in hexadecimal before using an assembler (no computer was
              available!)
╔═╦╗░╠═╬╣▒║ ║║▓╚═╩╝█


Pages: [1] 2 3 ... 10   Go Up
  Print  
 
Jump to:  

Powered by EzPortal
Powered by MySQL Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Powered by PHP
Page created in 0.357 seconds with 31 queries.
Skin by DJ Omnimaga edited from SMF default theme with the help of tr1p1ea.
All programs, games and songs avaliable on this website are property of their respective owners.
Best viewed in Opera, Firefox, Chrome and Safari with a resolution of 1024x768 or above.