Omnimaga: The Coders Of Tomorrow
Welcome, Guest. Please login or register.
 
Omnimaga: The Coders Of Tomorrow
20 May, 2013, 07:47:39 *
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 4 ... 10   Go Down
  Print  
Author Topic: asmdream is waking up... -  (Read 5343 times) Bookmark and Share
0 Members and 1 Guest are viewing this topic.
calc84maniac
Epic z80 roflpwner
Coder Of Tomorrow
LV11 Super Veteran (Next: 3000)
*
Offline Offline

Gender: Male
Last Login: 14 May, 2013, 10:02:35
Date Registered: 28 August, 2008, 05:09:05
Location: Right behind you.
Posts: 2735


Total Post Ratings: +373

View Profile
« Reply #15 on: 04 May, 2011, 22:03:59 »
0

Here's a neat routine I made that is useful for streaming data from either Archive or RAM (if reading from Archive, it is assumed that the correct page is mapped into $4000 beforehand).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
;To increase the pointer in HL, just call IncPointer
;For slightly faster throughput, use: inc l \ call z,IncPointerMSB
IncPointer:
    inc l
    ret nz
IncPointerMSB:
    inc h
    ret po
    push af
    in a,(6)
    inc a
    out (6),a
    ld a,h
    sub $40
    ld h,a
    pop af
    ret
Logged

"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman
willrandship
Omnimagus of the Multi-Base.
LV11 Super Veteran (Next: 3000)
***********
Offline Offline

Gender: Male
Last Login: Yesterday at 22:45:51
Date Registered: 11 April, 2010, 03:08:32
Location: Between Venus and Mars
Posts: 2638


Total Post Ratings: +66

View Profile
« Reply #16 on: 05 May, 2011, 00:04:05 »
0

I see one advantage this has over mimas: Tokens are smaller than straight ASCII, if you use the commands, not just letters. If you just use the tokens for space, A-z and numbers, then it will use more, I think. Plus, it's not like it hurts to have multiple progs available for the same purpose.

May I recommend having a marker at the beginning of the file, that makes it invalid as BASIC, and makes your assembler able to see it? just a thought.
Logged

the_mad_joob
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 17 May, 2013, 12:38:21
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« Reply #17 on: 05 May, 2011, 01:53:55 »
0

Hey guys...

@ Xeda112358 :
- about page spaning :
Thx 4 the answer =]
I wanted to be sure cause i already knew that group variables were (supposed to be) limited to 2 pages at max (meaning data location may be adjusted by the os if crossing a 3rd one).
- about inc file :
Well, that's one of my issues, since asmdream syntax is specific.
I'll take care of this when i'm sure the whole algo works.
I was thinking of building some kind of syntax converter but i won't forget your proposition if i encounter some issues =]

@ calc84maniac :
Thx 4 the routine =]
Mine is 2 bytes bigger but i think i'll leave it as it is for one reason :
It is called after pointer modifications (not only incrementations).
This saves lots of jumps, especially when you need to alter the pointer without accessing data.

@ willrandship :
- about tokens :
I already thought about it before starting the project but unfortunately, only 1-character tokens will be authorized.
Mainly because other ones may definitely not match the directives functions (custom would have been nice but no time for this).
Also, i didn't want the user to spend his life in menus or catalog.
In fact, except when using the token2ascii feature, all the needed tokens can be accessed without entering any menu, for efficiency purpose.
- about the marker :
Thx for reminding it to me !
I already thought about it but for an unknown reason, the idea vanished from my priority stack =]

Have to go... notepad is calling me =]
« Last Edit: 05 May, 2011, 02:05:59 by the_mad_joob » Logged

"No human is trustworthy, not even me..." - the_mad_joob
Deep Thought
So much to do, so much time, so little motivation
Administrator
LV13 Extreme Addict (Next: 9001)
*
Offline Offline

Gender: Male
Last Login: Yesterday at 19:18:47
Date Registered: 19 May, 2009, 08:00:00
Location: The Universe
Posts: 7813


Total Post Ratings: +706

View Profile WWW
« Reply #18 on: 05 May, 2011, 02:23:17 »
0

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)

Hey, that's pretty awesome. Good luck on this project (yeah, luck)! What do you think the final version'll be like (app, prgm)?
« Last Edit: 05 May, 2011, 02:23:50 by Deep Thought » Logged




the_mad_joob
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 17 May, 2013, 12:38:21
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« Reply #19 on: 07 May, 2011, 00:30:38 »
0

@ Deep Thought :
And it's just the beginning =]
Dunno yet if it will be an app or prgm (have to succeed in creatin it first...).
To be honest, i dunno much about apps but it will mainly depend on :
- How much data is copied from flash to ram in the execution process (the less the better).
- If other programs may potentially be reallocated in the execution process.

Written about 500 bytes of routines today.
One of those is "line_size_multi", which is able to return the amount of ram that will be compiled by any type of data-output directive.
Haven't tested it yet, but had to code it, since label usage requires it.

An interesting thing to mention is that when you represent a part of the main algo structure on paper, it definitely matches the Sierpinski fractal =]
« Last Edit: 07 May, 2011, 00:31:58 by the_mad_joob » Logged

"No human is trustworthy, not even me..." - the_mad_joob
Ashbad
Guest
« Reply #20 on: 07 May, 2011, 01:10:09 »
0

I see one advantage this has over mimas: Tokens are smaller than straight ASCII, if you use the commands, not just letters. If you just use the tokens for space, A-z and numbers, then it will use more, I think. Plus, it's not like it hurts to have multiple progs available for the same purpose.

May I recommend having a marker at the beginning of the file, that makes it invalid as BASIC, and makes your assembler able to see it? just a thought.

That's how Mimas works Wink  each instruction is split into small tokens -- usually one for the instruction name, a few for the parameters.  In fact, he even condenses the ASCII so if you use mostly lowercase (iirc) letters, he makes them at 5/8ths to 3/4ths the size of what they were before.  However, you can try and best that by making it accept even smaller tokens Wink

good luck on this, joob!
Logged
the_mad_joob
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 17 May, 2013, 12:38:21
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« Reply #21 on: 07 May, 2011, 03:06:59 »
0

Thx...

The word "mimas" seems to be quite redundant around =]
Remember this is my first "true" asm project on this hardware, so i hope you don't expect to see something better.
Keep in mind sources must be written using the built-in prgm editor so in some ways, there's a great chance some of you find it more restrictive than mimas.
Just think of it as an old-school alternative that may include some juicy features =]
« Last Edit: 07 May, 2011, 03:17:20 by the_mad_joob » 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: Today at 03:57:36
Date Registered: 31 October, 2010, 08:46:36
Location: Land of Little Cubes and Tea, NY
Posts: 3741


Total Post Ratings: +598

View Profile
« Reply #22 on: 07 May, 2011, 04:57:32 »
0

Hehe, cool. When I was planning out the version I wanted to make, I was going to include things like using a→b if somebody didn't want to use "ld b,a" and a few other things like that. Also, are you going to make it so that the uppercase and lowercase letters are interchangeable? I know I tried using an on-calc assembler that only allowed lowercase and it was not only a pain, but it used about twice as much memory as it needed !_!

I wish you luck!
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!)
╔═╦╗░╠═╬╣▒║ ║║▓╚═╩╝█


Deep Thought
So much to do, so much time, so little motivation
Administrator
LV13 Extreme Addict (Next: 9001)
*
Offline Offline

Gender: Male
Last Login: Yesterday at 19:18:47
Date Registered: 19 May, 2009, 08:00:00
Location: The Universe
Posts: 7813


Total Post Ratings: +706

View Profile WWW
« Reply #23 on: 07 May, 2011, 05:27:34 »
0

The word "mimas" seems to be quite redundant around =]

That's because Mimas is still the only real working on-calc assembler around Smiley Except for OTBP, but that's not practical for anything larger than a short script.
« Last Edit: 07 May, 2011, 05:27:45 by Deep Thought » Logged




the_mad_joob
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 17 May, 2013, 12:38:21
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« Reply #24 on: 07 May, 2011, 06:33:27 »
0

@ Xeda112358 :

Thx again =]
Lowercase tokens will be forbidden almost everywhere in sources and includes, for space purpose (and laziness i must confess).
The only places where you will be authorized to use them will be inside tok2ascii or tok2tok fields.
For example :   LD A,"n   will be recognized whereas   ld a,"N   will not.

@ Deep Thought :

Yeah, when i see how horrible (but not impossible) it is to code one, mimas must have been a great achievement for its author(s).
« Last Edit: 07 May, 2011, 06:39:07 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: 17 May, 2013, 12:38:21
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« Reply #25 on: 09 May, 2011, 07:50:50 »
0

After several nights of coding, we can now say progress has increased from 50 to 60% =]

Equate call & return routines finished (another dedicated stack was required).

I'm about to code a hard part of the project.
It's a loop which is supposed to return a 16-bit value from a complex expression which can be composed of straight values but also equates (which can themselves call other complex expressions and so on...).

Also, added a funky feature which will allow both basic and asmdream languages to cohabit in a single prgm.
Dunno if it will have a utility of any sort but added it since it was really easy to implement.
« Last Edit: 09 May, 2011, 07:52:04 by the_mad_joob » Logged

"No human is trustworthy, not even me..." - the_mad_joob
aeTIos
You got stair'd!
LV12 Extreme Poster (Next: 5000)
************
Offline Offline

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


Total Post Ratings: +120

View Profile
« Reply #26 on: 09 May, 2011, 09:59:38 »
0

That sounds awesome! great job on the fast coding!
how many app pages is it now?
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
the_mad_joob
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 17 May, 2013, 12:38:21
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« Reply #27 on: 09 May, 2011, 11:44:23 »
+1

@ aeTIos :
Terribly awesome =]
For now, it is a simple prgm of about 2,7K (I estimate the final size at about 4-5K).
Add to this the z80 file (~16K), and the ti8X+ file (not ready at all).

*****

Just finished some new routines...
It's official, complex nested equates are functionnal !
(Note : worked for the 1st time when tested ; definitely recommend wu tang for flawless coding =])

Btw, i need some advices from experienced coders about something :
The way i made it, everything can be referenced inside equate definitions, except for macro parameters and labels.
For macro params, i don't even think about it.
But, labels worry me a bit more.
Dyu think it would really be useful ?
In other words, dyu often use label referencing inside equate definitions ?
« Last Edit: 09 May, 2011, 11:51:26 by the_mad_joob » Logged

"No human is trustworthy, not even me..." - the_mad_joob
Munchor
LV13 Extreme Addict (Next: 9001)
*************
Offline Offline

Gender: Male
Last Login: 07 May, 2013, 22:49:01
Date Registered: 16 October, 2010, 15:39:13
Location: Position
Posts: 6209


Total Post Ratings: +174

View Profile
« Reply #28 on: 09 May, 2011, 13:22:05 »
0

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 =]

Great, will it include a disassembler or just a typer and assembler? Looks promising =D
Logged
the_mad_joob
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 17 May, 2013, 12:38:21
Date Registered: 27 March, 2011, 18:10:37
Posts: 191


Topic starter
Total Post Ratings: +33

View Profile
« Reply #29 on: 09 May, 2011, 13:40:51 »
0

Wow... What a post rush =]

No disassembler.
Not even a typer.
Just a compiler which reads sources written directly using the os prgm editor.
Logged

"No human is trustworthy, not even me..." - the_mad_joob
Pages: 1 [2] 3 4 ... 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.398 seconds with 30 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.