[A83] Re: A83: Using Interups, and strings


[Prev][Next][Index][Thread]

[A83] Re: A83: Using Interups, and strings




That's true, some routines do exchange the registers with their shadows, but 
that's why at the beggining of a interrupt routine it is wise to do 
something like this, even though it might take up precious stack:

push af
push bc
push de
push hl
exx
ex af,af'
push af
push bc
push de
push hl
push ix
; now all your regs are saved...
...your code here...
; restore regs
pop ix
pop hl
pop de
pop bc
pop af
exx
ex af,af'
pop hl
pop de
pop bc
pop af
reti ; or jp 0038h for TI-OS compatible interrupts..

>From: "Joe Pemberton" <dArkSk8eR@buffbody.com>

>
>
>Well, what about the rom calls that exchange the registers?  _GrBufCpy
>probably does.  Theres gotta be some more, too.  The problem with this is
>when your interrupt starts it exchanges the registers to *save* them and if
>you call a routine that exchanges them again and changes them, when you
>exit the interrupt the registers will be changed.  And you don't really
>know which ones exchange the registers and which ones don't.  I suppose the
>only way to figure out which ones work would be to test them all in an
>interrupt.
>----------------------------------------------
>Original Message
>From: "Robby Proie"<playnogamz@nls.net>
>Subject: RE: A83: Using Interups, and strings
>Date: Sat, 17 Feb 2001 19:54:56 -0500
>
> >
> >Although I am not certain, all of my tests have lead me to the conclution
> >that B_CALLs do not cause problems with interupts what so ever.  I don;t
> >know the spacifics of any page changes, but all of my tests seemed to 
>work
> >perfectly, nomatter what B_CALLs I used.
> >
> >-----Original Message-----
> >From: owner-assembly-83@lists.ticalc.org
> >[mailto:owner-assembly-83@lists.ticalc.org]On Behalf Of Nicolas Gilles
> >Sent: Friday, February 16, 2001 5:56 AM
> >To: assembly-83@lists.ticalc.org
> >Subject: Re: A83: Using Interups, and strings
> >
> >
> >
> >Yes, the problem comes from relocation of the code...
> >in your code text1, is just a name for the address Pointer of the string
>(eg
> >$9dAA) so when you copy your code for interrupt to another location,
> >probably $9a9a (i'll use this in the example) so text1 = $9daa but the 
>what
> >it should be to really point the string, it should be relative to 
>$9a9a...
> >
> >IntStart:
> >ld hl,text1-intstart+$9a9a ; Make it relative to 9a9a (text1-intstart 
>makes
> >it relative to intstart, and then add the 9a9a offset...)
> >bcall(_puts)
> >text1:	.db "Sample String",0
> >
> >
> >Then another note:
> >using B_CALLing in an interrupt isn't bad, it doesn't leave the rom page
> >switched, this can be proven just by saying that if it didn't restore the
> >original rom page, even APPs would not be working...
> >Someone please confirm this.... I hope you understand what I mean...
> >
> >>From: "Robby Proie" <playnogamz@nls.net>
> >>
> >>
> >>Hi:
> >>
> >>	Here is a puzzle that I have not yet been able to figure out.  Ok, to
> >>start
> >>out with, I am creating my own interup, with most of the core code 
>comming
> >>from the the interrupt guide at www.ticalc.org/pub/text/ .  I want it to
> >>display a string, but when I set it up as a regular program that would
> >>display a string...
> >>
> >>
> >>(More Code)
> >>
> >>
> >>ld hl,text1
> >>
> >>bcall(_puts)
> >>
> >>text1:	.db "Sample String",0
> >>
> >>
> >>(More code)
> >>
> >>It only displays a bunch a garbled information when you press the right
> >>key.
> >>How do I copy the string so it will be displayed correctly when the user
> >>presses the right key.
> >>
> >>Thanks in advnce
> >>Rob
> >>
> >>
> >>P.S. My interupt routine itself works just fine, I have tested it with
> >>other
> >>operations, like clearing the screen, and it performs without a problem.
> >>
> >>
> >
> >_________________________________________________________________________
> >Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
> >
> >
> >
> >
>
>_____________________________________________
>Free email with personality! Over 200 domains!
>http://www.MyOwnEmail.com
>
>
>

_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.