I've been taking a break from other things in an attempt to really get going with assembly. Unfortunately, I've run into something that's left me quite perplexed.

What's wrong with this code? It gives me a domain error.
Code:
CD4972C9

I mean, wouldn't it be the same as this?

Code:
b_call(_GetKey)
ret
Ok, you did 2 things wrong:

1-CD is call. NEVER try to call a bcall. bcall is EF.

2-z80 uses little-endian. In other words, if you are coding hex codes by hand and come across a two-byte value, switch the two bytes.


Code:
EF7249C9
Clarification: using CD instead of EF is only correct on a TI-83, never on a +/SE/84+/SE.
Ok, thanks.

Haha! I'm a complete ASM noob. Is there an updated opcode list somewhere (or a way to tell when the opcodes differ)? Right now, I'm using this one.
You could just not code by hand and use one of the many available compilers, which would make everything so much simpler and easier Rolling Eyes
Kllrnohj wrote:
You could just not code by hand and use one of the many available compilers, which would make everything so much simpler and easier Rolling Eyes
Tsk tsk, I would hope that someone like you wouldn't make that mistake. ASSEMBLER != COMPILER! Kllrnohj means to say you should be using an *assembler* such as Brass, TASM, SPASM, etc.
/me smacks forehead - yeah, stupid mistake. I meant assembler. Heh, oh well Very Happy
KermMartian wrote:
Kllrnohj wrote:
You could just not code by hand and use one of the many available compilers, which would make everything so much simpler and easier Rolling Eyes
Tsk tsk, I would hope that someone like you wouldn't make that mistake. ASSEMBLER != COMPILER! Kllrnohj means to say you should be using an *assembler* such as Brass, TASM, SPASM, etc.

Oh, that'll probably never happen because:

1. I'm currently enjoying remote programming (with no computer) too much for the cumbersomeness of it all not to be worth it.
2. I was only able to transfer programs before my 84+SE broke. I'm too miserly to buy a silver link for my 83+. Wink
3. If after a while this really doesn't work out, I'll just type in some BASIC on-calc assembler into an empty program and use that.
4. Discounting resources at school, I have access to nothing but a non-Intel Mac.
5. It's even better than memorizing pi.

Seriously, though: How else do opcodes differ from the TI-83 to better models?
you could always try calc84maniac's oncalc assembler
Meh, I enjoy carrying a printed opcode sheet around in my pocket. Razz

With registers, what does the apostrophe after registers mean (A’ and such)?
Liazon wrote:
you could always try calc84maniac's oncalc assembler

where
Where can I get this Question
Those are the shadow registers - and someone told me those are generally reserved for interupts (I'd wait for someone to confirm this though, as I'm a Z80 ASM newb Smile )
Kllrnohj wrote:
Those are the shadow registers - and someone told me those are generally reserved for interupts (I'd wait for someone to confirm this though, as I'm a Z80 ASM newb Smile )


correctamundo
Mmm... Dark side.

How imperative is it that I know about them?
Unless you are writing your own interupt (not likely), or there is some other extreme case where you need extra registers and have interrupts disabled - it is best to completely forget they exist
Hooray for ignorance! Thanks for the answered questions.

How about relative addressing, though? Do you type in the address to jump in and keep in mind the 128 byte limit, or do you say the number of bytes to jump? If the latter, how do you specify in what direction you intend to jump?
You use a one-byte signed number to specify how many bytes to jump after the relative jump command.
Ok.

There's nothing needed for ".db" with opcodes, is there? The only reason I ask is because the Frontend Disassembler is somehow able to differentiate between data and instructions. I have no clue how, though.
It probably just steps through execution, and if some section of code never gets executed, it gets counted as data.
In ti83plus.inc, why are there some 8-bit addresses? It would make sense that there's another byte attached to it, but I can't really find it anywhere. For example, how would I b_call something like E_Undefined?
  
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
Page 1 of 4
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement