Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - the_mad_joob

Pages: 1 ... 15 16 [17] 18 19 ... 24
241
TI Z80 / Re: asmdream is waking up...
« 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...

242
TI Z80 / Re: ASMComp
« on: December 13, 2011, 07:12:09 pm »
Yeah, that can save many brain cycles =]

243
TI Z80 / Re: asmdream is waking up...
« on: December 13, 2011, 11:10:49 am »
Maybe have the equates sectioned off into categories.

EQU1: B_CALL addresses
EQU2: Ram pointers
EQU3: GetKey and GetCSC codes
EQU4: Flags
EQU5: Tokens


Maybe split up tokens into 2 EQU files or something.


Idea: how about for the equates, you make a compressed file format for them. You could compress the equate names down to just 5-6 bits if you make the predefined ones case insensitive. Then, have the null byte actually, use a LBS instead, followed by the value. Example of structure:

[$XX (str len)][COMPRESSED STR DATA (padded to nearest byte)][VALUE]

_examp1 .EQU $9D95 ;just an example

    "_examp1" = 7 chrs * 6 bits = 42 bits / 8 bits per byte = 6 bytes (padded)
[$06][000000 000101 011000 000001 001101 010000 011100][$9D95]
In total, that is just 9 bytes. It could probably be compressed further, but this is just an example. Also, there would be better compression for longer equate strings.

For now, i keep the idea of includes being readable and editable by the user (That's mainly why i decided to use unprotected prgms.).
If assembling is too slow, i will probably go for something similar (but hope not, since it'll be very long to convert).
Thx anyway =]

I know I just took all of what I considered the most common equates and put it into one file and had the user define their own equates if they needed (and they could create their own). If you split it up into 5 files or whatever, will they be by some category?

The idea is to have the fewest number of includes as possible.
For now, i'm thinking of using the comment feature, like, for example :

PROGRAM:ASMDINC1
:>LAB
:
:,CONTENT :
:,RAM
:,KEYS
:,TOKENS
:
:,RAM
:...
:
:,KEYS
:...
:
:,TOKENS
:...
:
:End

244
TI Z80 / Re: ASMComp
« on: December 12, 2011, 11:55:42 pm »
Looks promising...
The syntax is a bit old-school but i definitely like it =]
Long life to hexa-coderz !

245
TI Z80 / Re: asmdream is waking up...
« on: December 12, 2011, 11:24:55 pm »
Created a dedicated topic on cemetech.
Anyway, if nobody can help me on this, the _jerror method will be just fine.

For now, i have converted, let's say, 85% of ti83plus.inc.
The whole thing will probably be around 100K, so i plan on splitting all the equates into 4, or maybe 5 include prgms.
My only (and last) fear is the assembling speed, cause even with an optimized code, seeking an equate thru 100K bytes can take a lot of time for such a slow processor.
Can't wait to see what it gets...

That said, looks like i'm not so far from the end of the tunel =]

246
TI Z80 / Re: asmdream is waking up...
« on: December 11, 2011, 05:23:24 pm »
I already PMed Quigibo long time ago but still no answer and i don't want to bother him u know...
But, i haven't tried to reach Kerm yet.

[EDIT] : I figured out the digits in your username hé hé =]

247
TI Z80 / Re: asmdream is waking up...
« on: December 11, 2011, 02:12:43 pm »
Too hard for me =[
Looks like i'm gonna use the _jerror method (as a temporary solution i hope).
Thx again Xed =]

The conversion of ti83plus.inc is now at about 50%.

248
TI Z80 / Re: asmdream is waking up...
« on: December 11, 2011, 11:09:44 am »
Here is the disassembling of gotoerr :

Code: [Select]
call addr_2
ld bc,(erroffset)
ld hl,(editcursor)
add hl,bc
addr_1
ld de,(editcursor)
call off_2
ret z
ret c
push hl
call addr_3
pop hl
ret z
push hl
call addr_5
pop hl
jr addr_1
addr_2
ld hl,(editcursor)
ld de,(edittop)
or a
sbc hl,de
ret z
ld c,l
ld b,h
ld hl,(editcursor)
dec hl
ld de,(edittail)
dec de
lddr
inc hl
ld (editcursor),hl
inc de
ld (edittail),de
ret
addr_3
ld hl,(edittail)
ld de,(editbtm)
call off_2
ret z
call off_1
ld d,0
jr nz,addr_4
push hl
call addr_4
pop hl
ld d,e
inc hl
addr_4
ld e,(hl)
inc hl
ld (edittail),hl
ld hl,(editcursor)
ld (hl),e
inc hl
ld (editcursor),hl
or 1
ret
addr_5
bit 1,(iy+apiflg3)
jr z,addr_6
call off_3
ret
addr_6
call off_5
call off_4
ret

;calls to rom page 0 that i won't disassemble (lazy me) :
off_1 = $1937
off_2 = $1B1E
off_3 = $3100
off_4 = $3A9C
off_5 = $3BBC

As you can see, the edit buffer has to be opened before calling this routine.
Also, it reads erroffset, which is relative, starting from 0.
There's a high chance this code may be called when the goto option is validated.
I'll check this.

249
TI Z80 / Re: asmdream is waking up...
« on: December 10, 2011, 09:45:53 pm »
If the code is not too heavy, i'll disassemble and take a look at _gotoerr ($4CD8) to see what it really does...
At least, its name suits my needs =]

250
TI Z80 / Re: asmdream is waking up...
« on: December 10, 2011, 09:11:15 pm »
Thx 4 help =]
I was just giving my custom chkfindsym routine a bad input.
My turn to help : dunno if you actually use a similar code in your projects, but you should consider adding a dec hl right before ld (965Fh),hl.

Now that that works, any idea if there's a way to bypass the ERR:XXXXX screen ?

251
TI Z80 / Re: asmdream is waking up...
« on: December 10, 2011, 12:45:16 pm »
Yeah =[

Also, tried both bcall & bjump but result is the same.

252
TI Z80 / Re: asmdream is waking up...
« on: December 10, 2011, 10:37:17 am »
Thx =]

*****

Oh, hey, did your question ever get answered about jumping to errors? I do this in Grammer, so I do know how to do this, but to make life easier, you will need to only allow it for programs in RAM. Anyways, what I would do:

-At the beginning of the program, store the source file name at address 9652h. Since you must at some point have the name of the program in OP1, just copy OP1 here.
-Next, get the size of the program and make sure to have a pointer to the data (not the size bytes)
-Store the address of where the program data is at 965Bh
-Add the size of the program to the start address to get the end of the source file and store it to 965Fh

Now you are all set up. When you need to jump to an offending byte, store the address to 965Dh and then just use bcall(_JError)

I hope this helps!

Tried it again.
Here are the encountered problems :
1) _jerror always jumps to the 1st byte of the prgm, no matter which value i stored into nextparsebyte ($965D).
2) My custom error messages are already coded (without error handler) so it would be definitely good if i could find a way to directly jump to the problematic token (avoid the "ERR:XXXXX" menu display).

253
TI Z80 / Re: asmdream is waking up...
« on: December 09, 2011, 08:34:02 pm »
Looks awesome!!!

I use mimas now, but am frustrated over the lack of macro support. This will help a lot. Maybe you could include support for including appvars as headers? like convert ti83plus.inc into appvTI83PLUS. That way, we dont have to define every b_call address or system ram pointer/flags offset.

Thx =]

asmdream only reads prgms, which can be sources, label libraries and macro libraries.
With prgms, the user is free to consult them, just like he'd do on a computer.
I plan on creating maybe half a dozen includes with useful equates.
More precisely, this is the next thing on my todo list =]

*****

Oh, hey, did your question ever get answered about jumping to errors? I do this in Grammer, so I do know how to do this, but to make life easier, you will need to only allow it for programs in RAM. Anyways, what I would do:

-At the beginning of the program, store the source file name at address 9652h. Since you must at some point have the name of the program in OP1, just copy OP1 here.
-Next, get the size of the program and make sure to have a pointer to the data (not the size bytes)
-Store the address of where the program data is at 965Bh
-Add the size of the program to the start address to get the end of the source file and store it to 965Fh

Now you are all set up. When you need to jump to an offending byte, store the address to 965Dh and then just use bcall(_JError)

I hope this helps!

I already tried this method but couldn't get it to work like i want.
You convinced me to try again.

Thx =]

*****

BONUS : asmdream assembling a prgm that creates a basic prgm, and run them both :


254
ASM / Re: 8X+ > bcall question
« on: December 09, 2011, 08:06:32 pm »
Ah, so you mean you were using the built in bcall() routine for apps? I do not believe this occurs with regular bcalls from my study of the code.
Thx, and yeah, that's what i meant.

I had actually forgotten all about that side effect which is something I will need to deal with soon...
Trust me, put this info in the safest area of your brain because if it's overwritten, debugging can cost u a few hours =]

255
TI Z80 / Re: asmdream is waking up...
« on: December 09, 2011, 06:17:09 pm »
Thx =]

*****

left to do :

> code for passes 1, 2, and 3
> debugging part 1
> screeny for u guyz =]
> hardware-specific include prgm(s) (basically some boring reformating job)
> debugging part 2
> find a way to code the goto feature and do it
> debugging part 3
> optimization
> readme
> upload beta @www.ticalc.org
> create beta-testing topic @www.omnimaga.org

As promised, the new algorithm, which is waaaaay faster :


Pages: 1 ... 15 16 [17] 18 19 ... 24