[A86] Re: Fraction ROM Calls


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

[A86] Re: Fraction ROM Calls




bcall(_dispOP1a) displays the A first numbers of the number in OP1. (If I 
remember correctly).

Andreas


----Original Message Follows----
From: Ricky Cobb <arcadesdude@intercom.net>
Reply-To: assembly-86@lists.ticalc.org
To: assembly-86@lists.ticalc.org
Subject: [A86] Re: Fraction ROM Calls
Date: Mon, 24 Jun 2002 09:43:59 -0400


Thanks for all the information; I can get this to work perfectly on the 86
but since I'm not as familar with the 83(+)'s archetecture, I get strange
undefined or overflow errors when I run the program.

_dispOP1 on the 86 works great but

  ld a,10 ;1-16 i believe
  bcall(_dispOP1a)

on the 83+ doesnt display anything.

I belive my problem is that rom call and I appreciate everyone's help.

Now...to do some experimentation to see why this won't display...


Ricky Cobb
http://tip.ti-programmers.com/
arcadesdude@intercom.net
[IM]
icq 41440378
msn arcadesdude
y!  arcadesdude
aim arcadesdude




6/24/02 1:07:42 AM, rabidcow@juno.com wrote:

 >
 >This is probably fairly reliable:
 >http://www.ticalc.org/archives/mail/assembly-86/1998_August/msg00285.html
 >;
 >;---------------------------------------------------------
 >;   TOFRAC : CONVERT DECIMAL NUMBER TO FRACTION.         |
 >;             NUMERATOR / DENOMINATOR.                         |
 >;                                                         |
 >;            INPUT : OP1 = DECIMAL NUMBER                 |
 >;                                                         |
 >;            OUTPUT : IF SUCCESSFULL :                         |
 >;                                                         |
 >;                     OP1 = NUMERATOR                         |
 >;                     OP2 = DENOMINATOR                         |
 >;                     CA = 0                                 |
 >;                                                         |
 >;                     IF NOT SUCCESSFULL :                 |
 >;                                                         |
 >;                     OP1 = ORIGINAL INPUT                 |
 >;                     CA = 1                                 |
 >;                                                         |
 >;            USES : OP1 TO OP6                                 |
 >
 >_TOFRAC                          equ            4B93h
 >
 >I think _frac is the equivalent of "fPart" and returns the bit after the
 >decimal point.
 >
 >>  ld hl,Avar
 >>  rst 20h
 >>  rst 10h
 >>  ret c
 >>  ex de,hl
 >>
 >>  bcall(_Mov9ToOP1)
 >>  bcall(_ToFrac)
 >>  bcall(_dispOP1a)
 >
 >If it's possible to set it up to use the stored answer (Ans), it's much
 >easier to just use:
 > call _rclAns
 > call _ToFrac
 > etc
 >
 >It might be possible to use _RCLVARSYM similarly for other variables:
 > ld hl,Avar
 > rst 20h
 > call _RCLVARSYM
 > etc
 >
 >(and if you really want to do it right, it might be best to make sure
 >you're dealing with a real number before calling _ToFrac, but I wouldn't
 >bother)
 >
 >Otherwise, this translates to
 >
 > ld hl,Avar
 > rst 20h
 > rst 10h
 > ret c
 > ld a,b ; 3-byte address on 86
 > ex de,hl
 > call _ABS_MOV10TOOP1 ;=5235h
 > call _toFrac
 >
 >and so on...
 >
 >-josh
 >
 >
 >On Fri, 21 Jun 2002 13:48:11 -0400 Ricky Cobb <arcadesdude@intercom.net>
 >writes:
 >>
 >> Hrm...What are the input and output of _tofrac?
 >> In other words how do I use it?
 >>
 >>
 >> What I have here doesnt do anything really...
 >>
 >> I'm trying to look up the real variable A
 >> and then do >frac on it and have the numerator in op1
 >> and the denomiator in op2 like you say _toFrac does.
 >>
 >>
 >>
 >> The code is for the 83plus but is similar to the 86.
 >> ---------------------------------------------------------
 >> #include "ti83plus.inc"
 >> .plugin asm83p.dll ;for cz80 (jonah cohen's z80 compiler)
 >> #DEFINE TI83P
 >> #include "ion.inc"
 >> #ifdef TI83P
 >> .org progstart-2
 >>  .db $BB,$6D
 >> #else
 >> .org progstart
 >> #endif
 >>
 >> START:
 >>
 >>  bcall(_homeup)
 >>  bcall(_ClrScrn)
 >>
 >>  ld hl,Avar
 >>  rst 20h
 >>  rst 10h
 >>  ret c
 >>  ex de,hl
 >>
 >>  bcall(_Mov9ToOP1)
 >>  bcall(_ToFrac)
 >>  bcall(_dispOP1a)
 >>
 >>  ret
 >>
 >> Avar:
 >>  .db 0,tA
 >>
 >> .end
 >> -------------------------------------------------------------------
 >>
 >>
 >>
 >>
 >> Ricky Cobb
 >> http://tip.ti-programmers.com/
 >> arcadesdude@intercom.net
 >> [IM]
 >> icq 41440378
 >> msn arcadesdude
 >> y!  arcadesdude
 >> aim arcadesdude
 >>
 >>
 >>
 >>
 >> 6/21/02 12:21:01 PM, Xavier LaRue <paxl@videotron.ca> wrote:
 >>
 >> >
 >> >Hi,
 >> >If you use _toFrac . The numerator will be stored into op1 and the
 >> denomiator
 >> into op2.. This work perfectly on the 83+.. But I don't know if that
 >> the same on
 >> the 86 :)
 >> >
 >> >Hope that help,
 >> >Xavier LaRue
 >> >
 >> >On Fri, 21 Jun 2002 11:11:21 -0400
 >> >Ricky Cobb <arcadesdude@intercom.net> wrote:
 >> >
 >> >>
 >> >> If there are any expireinced ASM programmers left here
 >> >> on this mostly dry mailing list (I know you're there)
 >> >> then I have two questions.
 >> >>
 >> >> I am looking for documentation (and if possible an example)
 >> >> of two TI-86 ROM Calls. The two ROM calls are:
 >> >>
 >> >> _tofrac equ 4B93h ; convert op1 to op1/op2
 >> >> _FRAC equ 549Ch ; op1 = frac(op1)
 >> >>
 >> >> The comments arenot very descriptive and I would like to know
 >> >> how to use these two ROM calls.
 >> >>
 >> >> Input is going to be a fp decimal number
 >> >> Output I'd like to be op1 as a string that reads
 >> >> numerator/denomiator (if reducable to a fraction)
 >> >> or an op as the denomiator and another op as the
 >> >> numerator.
 >> >>
 >> >> The most I could get was the numerator (but couldnt get
 >> >> the denomiator or didnt know what the output of each of
 >> >> these routines is.
 >> >>
 >> >> Any help would be appreciated.
 >> >>
 >> >> (See Also:
 >> http://www.ti-programmers.com/ubb/ultimatebb.php?ubb=get_topic;f=
 >> >> 10;t=000103 )
 >> >>
 >> >>
 >> >> Ricky Cobb
 >> >> http://tip.ti-programmers.com/
 >> >> arcadesdude@intercom.net
 >> >> [IM]
 >> >> icq 41440378
 >> >> msn arcadesdude
 >> >> y!  arcadesdude
 >> >> aim arcadesdude
 >
 >
 >
 >
 >
 >
 >
 >________________________________________________________________
 >GET INTERNET ACCESS FROM JUNO!
 >Juno offers FREE or PREMIUM Internet access for less!
 >Join Juno today!  For your FREE software, visit:
 >http://dl.www.juno.com/get/web/.
 >
 >




_________________________________________________________________
Kom med i världens största e-posttjänst med MSN Hotmail. 
http://www.hotmail.com




Follow-Ups: