Re: A83: _convop1 prime


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

Re: A83: _convop1 prime




Thanks for your help.  You put me on the right path.  I decided that what I 
wanted to do was create my own floating point variable which I can just copy 
in and out of op1.  This is the code, and it works.  It inputs a number 
(automatically placed in op1) saves op1 in the program, makes and displays 
the square root of op1, moves the number back to op1 and displays it.

.NOLIST
#define EQU .equ
#define equ .equ
#define end .end
#define END .end
#include "ti83asm.inc"
#include "tokens.inc"
.LIST
PGMIO_EXEC equ 50B2h
_formDisp equ 4D0Eh
.org $9327
    call _clrScrnFull
    call _homeup
    ld de,821ch                   ;************************
    ld hl,prompt                   ;**  System Input
    ld bc,16                        ;**
    ldir                               ;** Stores result in op1
    ld a,1                           ;**
    ld (ASM_IND_CALL),a   ;**
    call PGMIO_EXEC        ;**************************
    call op_to_num             ;move op1 to variable num
    call _sqroot                  ;square root of op1 -> op1
    call _formDisp              ;Display op1
    call num_to_op            ;move variable num to op1
    call _formDisp              ;display op1
    ret
op_to_num:
    ld hl,op1              ;load the addr. of op1 into hl
    ld de,num            ;load the addr. of num into de
    ld bc,9                ;there are 9 bytes to copy
    ldir                      ;copy op1 into num
    ret
num_to_op:
    ld hl,num           ;load the addr. of num into hl
    ld de,op1           ;load the addr. of op1 into de
    ld bc,9              ;there are 9 bytes to copy
    ldir                   ;copy num into op1
    ret
prompt:                  ;message for input
    .db "Number= ",0
num:                      ;floating point variable
    .db 00,00,00,00,00,00,00,00,00
end
.END

Thanks for your help,
    Ted


Follow-Ups: