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: