Author Topic: asmdream is waking up...  (Read 19741 times)

0 Members and 1 Guest are viewing this topic.

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: asmdream is waking up...
« Reply #105 on: December 13, 2011, 07:15:30 pm »
Syntax conversion complete =]

Here is what i have for now :

PRGM        SIZE

θFLAGS     4251
θFONTS    6034
θKEYS     12015
θMACROS    160
θOTHER     6670
θRAM        8021
θROM1     13530
θROM2     17400
θTOKENS  10170

TOTAL      78251

It's less than expected, which is a good point.

I now have to code a simple in/out prgm that will convert ascii characters into tokens.
That's the easy part, believe me.

Debugging part 2 soon to come...

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 is waking up...
« Reply #106 on: December 13, 2011, 07:19:46 pm »
Wait, ASCII to tokens or tokens to ASCII?

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: asmdream is waking up...
« Reply #107 on: December 13, 2011, 07:20:13 pm »
ascii to toks

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 is waking up...
« Reply #108 on: December 13, 2011, 07:20:46 pm »
On calc or computer or manually?

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: asmdream is waking up...
« Reply #109 on: December 13, 2011, 07:22:12 pm »
Probably oncalc, since it's been a while since i last coded some x86 shit.

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 is waking up...
« Reply #110 on: December 13, 2011, 07:25:18 pm »
x.x What I did with AsmComp was make all of the equates capital letters that way the ASCII was the same as the token (and I omitted weird symbols like _). Also, you could store it on calc with the ASCII and just convert the tokens to ascii and search for the equates.

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: asmdream is waking up...
« Reply #111 on: December 13, 2011, 07:28:11 pm »
About capital letters, i did the same =]
In fact, the prog only has to convert these :

>
enter
{
:
^
}
(
?
)
.
,

=
/
space
_

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 is waking up...
« Reply #112 on: December 13, 2011, 07:30:00 pm »
Ah, so that shouldn't be bad at all :D

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: asmdream is waking up...
« Reply #113 on: December 13, 2011, 07:31:46 pm »
A cake walk compared to everything i've done with my own hands...
Ok, i must confess, winhex helped me a lot =]

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: asmdream is waking up...
« Reply #114 on: December 14, 2011, 08:04:01 pm »
Includes are ready guyz =]

Here is a little screeny to show how it looks like.
Also, it shows the assembling of a 1 byte program using the last equate of the last include.
Basically, that means the assembling speed you can see here is the time it takes for the algo to do the comparison with 75 KB of flash equates (2 times actually).
It's a bit slow, but i thought it would have been a lot more.
Hopefully, i have a few things in my mind to speed it up...
Anyway, the good point is that IT WORKS !!!

There u go :


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 is waking up...
« Reply #115 on: December 14, 2011, 08:06:54 pm »
That looks really cool O.O Great job! And searching through that much data... the speed does not surprise me.

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: asmdream is waking up...
« Reply #116 on: December 14, 2011, 08:19:04 pm »
Thx =]

I intend to optimize my "next_line" routine.
For now, it checks for page boundary overflow for each token.
I'm thinking of calculating the last address of the page first, and then playing with CPIR to catch TENTER =]
Would be significantly faster i suppose...
« Last Edit: December 14, 2011, 08:19:18 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 is waking up...
« Reply #117 on: December 14, 2011, 08:20:31 pm »
Hmm, I heard that as long as the var is less than a whole flashpage in size, it will not cross boundaries
(The OS won't let it)

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: asmdream is waking up...
« Reply #118 on: December 14, 2011, 08:33:29 pm »
Already heard this before but already heard the contrary...
Anyway, one of my goal with this app is to have the minimum limitations for the user (and that includes includes size).
Also, doing sbc $8000,cur_addr periodically won't hurt the whole speed that much (i think).
« Last Edit: December 14, 2011, 08:44:01 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 is waking up...
« Reply #119 on: December 14, 2011, 09:06:37 pm »
Ooh, wanna optimised routine? I made this one to be very fast and you don't need to worry about checking where you are at.
Code: [Select]
IncHLMem1 :
;                   speed    1 page         total
;
     inc l         ;    4    4*16384        65536
     ret nz        ;11| 5    64*5+16320*11  179840
     inc h         ;    4    4*64           256
     ret po        ;11| 5    11*63+5        698
     ld h,40h      ;    7    7              7
     in a,(6)      ;   11    11             11
     inc a         ;    4    4              4
     out (6),a     ;   11    11             11
     ret           ;   10    10             10
Pretty much, it will increment hl and once it hits 8000h it will increment the flash page. it will destroy a when it goes to the next flash page, but otherwise it remains intact. If you are reading RAM, A is never destroyed as it will never hit 8000h. Alternatively, if you want to make sure A is never destroyed:

Code: [Select]
IncHLMem1 :
;                   speed    1 page         total
;
     inc l         ;    4    4*16384        65536
     ret nz        ;11| 5    64*5+16320*11  179840
     inc h         ;    4    4*64           256
     ret po        ;11| 5    11*63+5        698
     ld h,a
     in a,(6)      ;   11    11             11
     inc a         ;    4    4              4
     out (6),a     ;   11    11             11
     ld a,h
     ld h,40h      ;    7    7              7
     ret           ;   10    10             10