This is an archived, read-only copy of the United-TI subforum , including posts and topic from May 2003 to April 2012. If you would like to discuss any of the topics in this forum, you can visit Cemetech's Your Projects subforum. Some of these topics may also be directly-linked to active Cemetech topics. If you are a Cemetech member with a linked United-TI account, you can link United-TI topics here with your current Cemetech topics.

This forum is locked: you cannot post, reply to, or edit topics. Project Ideas/Start New Projects => Your Projects
Author Message
Madskillz


Active Member


Joined: 02 Jan 2004
Posts: 608

Posted: 03 Oct 2010 10:30:09 pm    Post subject:

Not sure if you had this added but the ability to go to errors when it compiles and throws them. If not or it is already there nice. If you cant do that, maybe a snap to the top of the code or every label would be a nice feature.
Back to top
AHBAD_ALVIN


Advanced Newbie


Joined: 18 Sep 2010
Posts: 74

Posted: 04 Oct 2010 04:37:48 am    Post subject:

FloppusMaximus wrote:

ASHBAD_ALVIN wrote:

I found some things that might be added later on into MIMAS:

-Some more undocumented instructions like SLL
-Macro Support (I'll help you with this)
-code compatibility between code sections
-A quicker way to compile and test code
-A simple z80 documentation for on-calc (for when you forget a weird instruction like DAA)
-quick backup of files

Could you explain what you mean by "code compatibility"?

At one point early on I actually intended for Mimas to be able to compile and run programs all at once. It's more complicated than you might think, and I ended up getting rid of that to save space.

Quote:
But there are other undocumented instructions like the aliased ones that might be added.

... seriously? I cannot imagine any reason why anyone would care about having those in an assembler. There is no reason to use ED 54 over NEG, unless you just hate Nspires for some reason.

Mimas supports all of the useful undocumented instructions.

Code compatibility: Like when code used in header sections is able to be used in later sections, like code, data, and footers.

And the aliased instructions are about 3 times faster than their normal instructions, which is slightly useful. Just putting it out there.
Back to top
calc84maniac


Elite


Joined: 22 Jan 2007
Posts: 770

Posted: 04 Oct 2010 10:38:24 am    Post subject:

ASHBAD_ALVIN wrote:

FloppusMaximus wrote:

ASHBAD_ALVIN wrote:

I found some things that might be added later on into MIMAS:

-Some more undocumented instructions like SLL
-Macro Support (I'll help you with this)
-code compatibility between code sections
-A quicker way to compile and test code
-A simple z80 documentation for on-calc (for when you forget a weird instruction like DAA)
-quick backup of files

Could you explain what you mean by "code compatibility"?

At one point early on I actually intended for Mimas to be able to compile and run programs all at once. It's more complicated than you might think, and I ended up getting rid of that to save space.

Quote:
But there are other undocumented instructions like the aliased ones that might be added.

... seriously? I cannot imagine any reason why anyone would care about having those in an assembler. There is no reason to use ED 54 over NEG, unless you just hate Nspires for some reason.

Mimas supports all of the useful undocumented instructions.

Code compatibility: Like when code used in header sections is able to be used in later sections, like code, data, and footers.

And the aliased instructions are about 3 times faster than their normal instructions, which is slightly useful. Just putting it out there.

What instructions are you talking about? Give an example please.
Back to top
AHBAD_ALVIN


Advanced Newbie


Joined: 18 Sep 2010
Posts: 74

Posted: 04 Oct 2010 04:35:40 pm    Post subject:

calc84maniac wrote:

ASHBAD_ALVIN wrote:

FloppusMaximus wrote:

ASHBAD_ALVIN wrote:

I found some things that might be added later on into MIMAS:

-Some more undocumented instructions like SLL
-Macro Support (I'll help you with this)
-code compatibility between code sections
-A quicker way to compile and test code
-A simple z80 documentation for on-calc (for when you forget a weird instruction like DAA)
-quick backup of files

Could you explain what you mean by "code compatibility"?

At one point early on I actually intended for Mimas to be able to compile and run programs all at once. It's more complicated than you might think, and I ended up getting rid of that to save space.

Quote:
But there are other undocumented instructions like the aliased ones that might be added.

... seriously? I cannot imagine any reason why anyone would care about having those in an assembler. There is no reason to use ED 54 over NEG, unless you just hate Nspires for some reason.

Mimas supports all of the useful undocumented instructions.

Code compatibility: Like when code used in header sections is able to be used in later sections, like code, data, and footers.

And the aliased instructions are about 3 times faster than their normal instructions, which is slightly useful. Just putting it out there.

What instructions are you talking about? Give an example please.


Like Floppus said, ED 54 is an example of one of these aliases. Many of them are not useful, but there are some that replace REALLY SLOW instructions like ld hl,xxxx (20 T states I think) with an aliased (I don't remember the exact opcode for this one, but I do remember its only [s]3[/s] 4 T-STATES!!!! very useful when you're writing an OOP language wwhich heavily uses HL as a pointer with most instructions, eh? (like me and now Floppus)


Last edited by Guest on 04 Oct 2010 04:41:10 pm; edited 1 time in total
Back to top
calc84maniac


Elite


Joined: 22 Jan 2007
Posts: 770

Posted: 04 Oct 2010 07:12:57 pm    Post subject:

I have no idea what you are talking about. Your info seems to be quite false, though. The example you give, "ED 54", works exactly like NEG (except it will reset on the TI-Nspire emulation)
Back to top
AHBAD_ALVIN


Advanced Newbie


Joined: 18 Sep 2010
Posts: 74

Posted: 04 Oct 2010 07:31:29 pm    Post subject:

calc84maniac wrote:

I have no idea what you are talking about. Your info seems to be quite false, though. The example you give, "ED 54", works exactly like NEG (except it will reset on the TI-Nspire emulation)

except that you failed to read the posts that came before it carefully...

of course ED 54 is like NEG... Floppus directly said that. I said there is an instruction (not on learn 83+ asm in 28 days tutorial, my friend found it when when writing a mock game for his game-boy) like ld hl,xxxx; I did NOT trail it to ED 54; that would be plain stupid. Something loading a 16 bit value into a register would have to be AT LEAST 3 bytes long (usually 4), one for the instruction and two for the xxxx. ED 54 happens to be two bytes, so your folly, not mine.

The friend I told you about who found it is (hopefully) going to send the opcode to me RE to my request for it I sent yesterday. then you guys can test it out too (oh and by the way, before you can accuse me of thinking wrongly on the T states being 4 instead of like 15, he tested it out using a computer program that incremented a variable for each T state of the operation, and stopped when the PC was changed (the instruction finished)). If you want to ask him about it, too bad. He said not to let anyone know of his secret email address; therefore you'll have to trust me on it.


Last edited by Guest on 04 Oct 2010 07:33:13 pm; edited 1 time in total
Back to top
calc84maniac


Elite


Joined: 22 Jan 2007
Posts: 770

Posted: 04 Oct 2010 07:42:46 pm    Post subject:

Oh wow, a super duper computer program is more accurate than official documentation or a real Z80? You may be thinking of the LD HL,(nnnn) alias, which is ED 6B nn nn, 4 bytes and 20 cycles, but slower than the real LD HL,(nnnn), which is 2A nn nn, 3 bytes and 16 cycles.
Back to top
AHBAD_ALVIN


Advanced Newbie


Joined: 18 Sep 2010
Posts: 74

Posted: 04 Oct 2010 08:09:13 pm    Post subject:

calc84maniac wrote:

Oh wow, a super duper computer program is more accurate than official documentation or a real Z80? You may be thinking of the LD HL,(nnnn) alias, which is ED 6B nn nn, 4 bytes and 20 cycles, but slower than the real LD HL,(nnnn), which is 2A nn nn, 3 bytes and 16 cycles.


nope, it's not in there either he tells me. He says he found it himself. the one he found is actually 5 bytes, yet 4 t states. Hey, he used it as an major for his thesis to for graduate school (having to do with the secrets of assembly and how they occur, or something like that...Razz) at cal tech, so it sounds reasonable to me. Just saying...

Plus, how often do you think zilog is going to update the manual for a 30 year old microprocessor? don't you think that these things are undocumented as in they are in the the zilog DOCUMENTATION????????

Anyways, I think things are a bit off track now, I don't wanna be in the middle of a flame war because some stubborn programmer things that all features in everything of life are found in a documentation
Back to top
calc84maniac


Elite


Joined: 22 Jan 2007
Posts: 770

Posted: 04 Oct 2010 08:26:11 pm    Post subject:

ASHBAD_ALVIN wrote:

calc84maniac wrote:

Oh wow, a super duper computer program is more accurate than official documentation or a real Z80? You may be thinking of the LD HL,(nnnn) alias, which is ED 6B nn nn, 4 bytes and 20 cycles, but slower than the real LD HL,(nnnn), which is 2A nn nn, 3 bytes and 16 cycles.


nope, it's not in there either he tells me. He says he found it himself. the one he found is actually 5 bytes, yet 4 t states. Hey, he used it as an major for his thesis to for graduate school (having to do with the secrets of assembly and how they occur, or something like that...Razz) at cal tech, so it sounds reasonable to me. Just saying...

Plus, how often do you think zilog is going to update the manual for a 30 year old microprocessor? don't you think that these things are undocumented as in they are in the the zilog DOCUMENTATION????????

Anyways, I think things are a bit off track now, I don't wanna be in the middle of a flame war because some stubborn programmer things that all features in everything of life are found in a documentation

I call BS. There is no way a 5-byte instruction can take 4 clock cycles on a Z80. In fact, there is no Z80 instruction bigger than 4 bytes! Forget official documentation, this is not located in any documentation of Z80 quirks. You shouldn't try to prove people wrong when you have no idea what you are talking about. I have written Z80 emulators, for crying out loud! (And yes, they included all undocumented opcodes.) The personal attacks in your posts are quite uncalled for, and they make you seem even less credible.

I'm not even sure whether this "friend with the super secret email" is real or not, but of course I can't say one way or the other.
Back to top
AHBAD_ALVIN


Advanced Newbie


Joined: 18 Sep 2010
Posts: 74

Posted: 05 Oct 2010 12:17:47 pm    Post subject:

I actually want ot apologize for the personal attacks last night. I was just really pissed off (not at you) because I was sick, and had to finish a 2400 word essay and email it to my teacher in 2 hours. So I'm very sorry about that (I really mean it) Let's forget hits happened :D

But I still stand by trusting my friend. My guess is that he discovered two instruction, one that's two byts and one that's three and they correlated to ld l, xx and ld h, xx, or something. But he still HAS NOT RESPONDED........... (which pisses me off greatly so)


Last edited by Guest on 05 Oct 2010 12:18:57 pm; edited 1 time in total
Back to top
FloppusMaximus


Advanced Member


Joined: 22 Aug 2008
Posts: 472

Posted: 05 Oct 2010 05:27:36 pm    Post subject:

ASHBAD_ALVIN wrote:

Code compatibility: Like when code used in header sections is able to be used in later sections, like code, data, and footers.

I have no idea what you're talking about. Please elaborate.

Madskillz wrote:

Not sure if you had this added but the ability to go to errors when it compiles and throws them.

Naturally. There are no line numbers, so it'd be pretty hopeless trying to write a program without that feature.
Back to top
AHBAD_ALVIN


Advanced Newbie


Joined: 18 Sep 2010
Posts: 74

Posted: 05 Oct 2010 08:24:46 pm    Post subject:

FloppusMaximus wrote:

ASHBAD_ALVIN wrote:

Code compatibility: Like when code used in header sections is able to be used in later sections, like code, data, and footers.

I have no idea what you're talking about. Please elaborate.


Sorry, that was still pretty vague.

Basically, I was wondering if you could make it so that code used in earlier code sections (like headers) can be called from later sections. like calling labels from other code sections; like MAIN.LOOP would be the label loop in code section main called from a later code section.

Sorry if you don't get my drift; I'm terrible with words Razz


Last edited by Guest on 05 Oct 2010 08:25:07 pm; edited 1 time in total
Back to top
FloppusMaximus


Advanced Member


Joined: 22 Aug 2008
Posts: 472

Posted: 05 Oct 2010 08:55:00 pm    Post subject:

A label like 'LOOP' is global. So you can use it anywhere (in either an earlier or later section, or even in a different source file.) A label beginning with a dot, like '.LOOP', is local to the source file, so all sections within that file can refer to that label, but other source files can't. So if you have a label that you want to refer to from outside the file, then make it global; you can put a prefix like 'MAIN_' on it if you like.
Back to top
AHBAD_ALVIN


Advanced Newbie


Joined: 18 Sep 2010
Posts: 74

Posted: 06 Oct 2010 04:41:33 am    Post subject:

FloppusMaximus wrote:

A label like 'LOOP' is global. So you can use it anywhere (in either an earlier or later section, or even in a different source file.) A label beginning with a dot, like '.LOOP', is local to the source file, so all sections within that file can refer to that label, but other source files can't. So if you have a label that you want to refer to from outside the file, then make it global; you can put a prefix like 'MAIN_' on it if you like.


Hm... That's weird, because whenever I try what your telling me to do it usually gets an error.
Back to top
Madskillz


Active Member


Joined: 02 Jan 2004
Posts: 608

Posted: 06 Oct 2010 09:39:24 pm    Post subject:

Quote:
Naturally. There are no line numbers, so it'd be pretty hopeless trying to write a program without that feature.

Great, it looked pretty in depth thus far so I would have been surprised if you hadn't added it.
Back to top
AHBAD_ALVIN


Advanced Newbie


Joined: 18 Sep 2010
Posts: 74

Posted: 07 Oct 2010 12:28:56 pm    Post subject:

Madskillz wrote:

Quote:
Naturally. There are no line numbers, so it'd be pretty hopeless trying to write a program without that feature.

Great, it looked pretty in depth thus far so I would have been surprised if you hadn't added it.
Yes, I agree. It's funny, 0.1 makes it seem incomplete, yet how complete it really is is so situationally ironic (yes, I just came from english)
Back to top
FloppusMaximus


Advanced Member


Joined: 22 Aug 2008
Posts: 472

Posted: 07 Oct 2010 09:38:41 pm    Post subject:

ASHBAD_ALVIN wrote:

Hm... That's weird, because whenever I try what your telling me to do it usually gets an error.

Could you send me an example of a program that isn't working?
Back to top
AHBAD_ALVIN


Advanced Newbie


Joined: 18 Sep 2010
Posts: 74

Posted: 08 Oct 2010 03:55:46 pm    Post subject:

Ill try to recreate it, as I deleted it after the error wouldn't stop popping up. I believe it was a part of the methods engine for 'DE.
Back to top
DrDnar


Member


Joined: 28 Aug 2009
Posts: 116

Posted: 09 Oct 2010 12:23:27 am    Post subject:

Ahem. A five-byte instruction cannot take only four clock cycles because the Z80 requires at least one clock cycle to read each byte, for the data bus is only eight bits wide. Reading five bytes would require at least five clock cycles. I am quite willing to examine his experimental code on another Z80 and see why he thinks this supposed alias is capable of squeezing 25% more bandwidth out of the Z80 bus. And this isn't including the needed decode, ALU, or store operations. But perhaps he is thinking of a different CPU. It is possible one of the Z80's elder brethren, or an Intel CPU like the 80486 (which has a cache, if I remember correctly), may deliver such performance. Mmm, hmm.

Addendum: You can make an arbitrarily long "valid" CPU instruction by adding an arbitrarily long string of 0FDh or 0DDh prefixes to the instruction. Only the last 0FDh or 0DDh will be used for the instruction. Furthermore, interrupts are inhibited during the execution of this string.


Last edited by Guest on 09 Oct 2010 12:52:05 am; edited 1 time in total
Back to top
AHBAD_ALVIN


Advanced Newbie


Joined: 18 Sep 2010
Posts: 74

Posted: 09 Oct 2010 06:46:07 am    Post subject:

Dr. D wrote:

Ahem. A five-byte instruction cannot take only four clock cycles because the Z80 requires at least one clock cycle to read each byte, for the data bus is only eight bits wide. Reading five bytes would require at least five clock cycles. I am quite willing to examine his experimental code on another Z80 and see why he thinks this supposed alias is capable of squeezing 25% more bandwidth out of the Z80 bus. And this isn't including the needed decode, ALU, or store operations. But perhaps he is thinking of a different CPU. It is possible one of the Z80's elder brethren, or an Intel CPU like the 80486 (which has a cache, if I remember correctly), may deliver such performance. Mmm, hmm.

Addendum: You can make an arbitrarily long "valid" CPU instruction by adding an arbitrarily long string of 0FDh or 0DDh prefixes to the instruction. Only the last 0FDh or 0DDh will be used for the instruction. Furthermore, interrupts are inhibited during the execution of this string.


Okay maybe he was thinking of a different processor altogether. But I thought we ended that discussion already. But you do bring up a good point of how it is impossible for it to be only 4 T-States long. Let me go yell at my friend now for making me look like a noobish ASM fool Mad

I forgot exactly what the program did Floppus, it was pretty simple though. I just wanted to use the label MultHLbyDE from my 'Math' section of the program in the 'MAIN' part of my program. For some reason, it said 'Label undefined'. So I truly don't know what happened. I can try and post an animated screenshot later today if you want to see it, though!
Back to top
Display posts from previous:   
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
    » Goto page Previous  1, 2, 3  Next
» View previous topic :: View next topic  
Page 2 of 3 » All times are UTC - 5 Hours

 

Advertisement