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
« 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
« on: December 13, 2011, 07:12:09 pm »
Yeah, that can save many brain cycles =]
243
« 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
« 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
« 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
« 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
« 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
« on: December 11, 2011, 11:09:44 am »
Here is the disassembling of gotoerr :
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
« 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
« 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
« on: December 10, 2011, 12:45:16 pm »
Yeah =[
Also, tried both bcall & bjump but result is the same.
252
« 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
« 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
« 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
« 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
|