Re: A83: Re: A ROM call
[Prev][Next][Index][Thread]
Re: A83: Re: A ROM call
On 16-Oct-98, Evil Sam wrote:
>>rst is read "restart", but that's a wry name. It performs a call to the
>>specified address, but only addresses 0, 8, 16, 24, 32, 40 and 48 are
>>allowed. The instruction is always 1 byte long, whereas call is 3
>bytes. It
>>was mainly implemented so that interrupting devices could place an op
>code on
>>the data bus easily (only 1 byte).
>>
>>What the rst:s do is of course dependent of the code placed in the very
>>beginning of the rom. On the ti-83, this is:
>>rst 0 Power-up (has to be; the processor starts at address 0000
>>automatically)
>>rst 8 call _OP1TOOP2 (copy OP1 to OP2)
>>rst 16 call _FINDSYM (not chkfindsym, so only non-progs and non-lists)
>>rst 24 call _PUSHREALO1 (push OP1 to the fps)
>>rst 32 call _MOV9TOOP1 (move 9 bytes from hl to OP1)
>>rst 40 call _FPMULT (OP1 * OP2 -> OP1)
>>rst 48 call _FPADD (OP1 + OP2 -> OP1)
>>
>>Linus
>>
> I put "rst 32" in my code and it gave me a TASM error. I tried "call
>_MOV9TOOP1", it also gave me a TASM error because MOV9TOOP1 is not
>defined in TI83ASM.INC. What is the addr for MOV9TOOP1?
>______________________________________________________
>Get Your Private, Free Email at http://www.hotmail.com
_MOV9TOOP1 equ 4206h (defined in squish.inc). If rst 32 doesn't work, try rst
20h, because that's the way it's given in the z80 reference manual. Also try
"rst32", but that shouldn't be necessary. Otherwise the opcodes are:
rst 0 c7
rst 8 cf
rst 16 d7
rst 24 df
rst 32 e7
rst 40 ef
rst 48 f7
rst 56 ff (<-- forgot about this one when I wrote the above mail)
Linus
References: