Wow, I guess 68K development isn't overly popular around these parts... Still, I need help and I was hoping I could find it, so I am posting here (as well as other sites). Here is the story:
-I have a TI-89 Titanium
-I am horrible with computer (read: I don't like installing software because it is too complicated for me)
-I have been wanting to program in assembly on my TI-89 for a few years, now
-I have a TI-84+ and SE
-I am familiar with z80 ASM and its syntax
-Yesterday I finally found an easy to install assembler for my 89-- an oncalc one called as().
-I have a tough time with mnemonics-- I notoriously learned Z80 through playing with hexadecimal and after learning z80 assembly, it took almost a year to understand mnemonics.
So pretty much, if anybody could explain instruction in a z80-ish or TI-BASIC way, that would be great! I am not familiar whatsoever with languages such as C, so I will not get C code or references
I looked at a "Hello World" example, and there is a lot more there than with a Z80 and almost none of it I understand. I have tried tutorials, but it is not clicking for me yet. Here are the instructions that I am currently interested in:
movem.l d4/a5,-(a7)
I am assuming this writes using d4 and a5 to the address pointed to by a7? Does the negative mean it decrements A7 ? I saw somewhere that A7 was a stack register
move.l HeapAllocPtr*4(a5),a0
I have no clue what this syntax means. I checked out the hex and that helped me realise that it is like a 2 byte instruction followed by 0288h (which is HeapAlloc*4). But what does it mean to be right before (a5) ?
jsr (a0)
Is this some kind of relative jump?
pea.l 3840
Does the .l mean it is a "long" operation? The hex has a 32-bit value equal to 3840. But what does pea mean and what does it do?
tst.l d4
I cannot even begin... "tst" looks like test, so is this some way to check if an event has happened with d4?
beq.s nomem
I haven't a clue, but since nomem is a label, does this jump
move.l #3840,(a7)
Does this push an immediate value to the stack?
pea.l LCD_MEM
I've not a clue... LCD_MEM seems to have a value of 4C00h, but this seems to be different from the last pea.l instruction (the hex is 4079h as opposed to 4879h, so this tells me that it is just a flag difference or a slight difference in operation from my experience with z80 hex)
lea.l 12(a7),a7
I don't get the syntax :/
pea.l Hello_World(pc)
again, I is slightly different from the first pea.l (the hex is 487A versus 4879). This tells me that it is the same style if it were like z80
clr.l -(a7)
I am not sure what clr.l is. It looks like clear?
-I have a TI-89 Titanium
-I am horrible with computer (read: I don't like installing software because it is too complicated for me)
-I have been wanting to program in assembly on my TI-89 for a few years, now
-I have a TI-84+ and SE
-I am familiar with z80 ASM and its syntax
-Yesterday I finally found an easy to install assembler for my 89-- an oncalc one called as().
-I have a tough time with mnemonics-- I notoriously learned Z80 through playing with hexadecimal and after learning z80 assembly, it took almost a year to understand mnemonics.
So pretty much, if anybody could explain instruction in a z80-ish or TI-BASIC way, that would be great! I am not familiar whatsoever with languages such as C, so I will not get C code or references
I looked at a "Hello World" example, and there is a lot more there than with a Z80 and almost none of it I understand. I have tried tutorials, but it is not clicking for me yet. Here are the instructions that I am currently interested in:
movem.l d4/a5,-(a7)
I am assuming this writes using d4 and a5 to the address pointed to by a7? Does the negative mean it decrements A7 ? I saw somewhere that A7 was a stack register
move.l HeapAllocPtr*4(a5),a0
I have no clue what this syntax means. I checked out the hex and that helped me realise that it is like a 2 byte instruction followed by 0288h (which is HeapAlloc*4). But what does it mean to be right before (a5) ?
jsr (a0)
Is this some kind of relative jump?
pea.l 3840
Does the .l mean it is a "long" operation? The hex has a 32-bit value equal to 3840. But what does pea mean and what does it do?
tst.l d4
I cannot even begin... "tst" looks like test, so is this some way to check if an event has happened with d4?
beq.s nomem
I haven't a clue, but since nomem is a label, does this jump
move.l #3840,(a7)
Does this push an immediate value to the stack?
pea.l LCD_MEM
I've not a clue... LCD_MEM seems to have a value of 4C00h, but this seems to be different from the last pea.l instruction (the hex is 4079h as opposed to 4879h, so this tells me that it is just a flag difference or a slight difference in operation from my experience with z80 hex)
lea.l 12(a7),a7
I don't get the syntax :/
pea.l Hello_World(pc)
again, I is slightly different from the first pea.l (the hex is 487A versus 4879). This tells me that it is the same style if it were like z80
clr.l -(a7)
I am not sure what clr.l is. It looks like clear?