Re: A86: Re: [sqrt] program trouble


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

Re: A86: Re: [sqrt] program trouble




There are only 2 problems.  They are at the end.


>here are some refinements.  don't know if they'll help :)
>
>
>#include "ti86asm.inc"
>#include "asm86.h"
>#include "ti86abs.inc"
>
>_exec_basic       equ 4c47h ;basic program in OP1
>
>.org _asm_exec_ram
>
> ld hl,$5a92                    ;points to [sqrt]key name in memory
> rst 20h                ;[sqrt]KEY -> OP1
> rst 10h                                ;_findsym
> call nc,_delvar                ;if prog already exists, delete it
> ld hl, code_end - code_start   ;prog length
> call _CREATEPROG               ;make program. name already in OP1
> ld a,b                                 ;copy bde
> ex de,hl                               ;to ahl
> call $4c3f                             ;ahl += 2
> call _SET_ABS_DEST_ADDR        ;set ahl as destination
> xor a                                  ;clear a since ahl is size
> ld hl,code_end - code_start    ;size of prog
> call _SET_MM_NUM_BYTES         ;set ahl as length
> ld hl,code                             ;hl points to code (a is already
>0)
> call _SET_ABS_SRC_ADDR         ;set ahl as source
> call _mm_ldir                  ;24 bit ldir
> set 6,(iy+$24)                 ;enables program
> ret                                    ;quit
>
>code:
>.org _asm_exec_ram-2
>code_start:
>.db $8e,$28                             ;define asm token as first prog
bytes
> call $479f                             ;pop op1 (the calling prog push it)
> bit 4, (iy+18)        ;alpha
> ret nz
> cp K_CLEAR ;don't need to call GET_KEY, this prog is with a key already in
>a
> jr nz,End
> ld hl,Setting-1     ;you need the minus 1 to point to the length for
_FINDSYM
> rst 20h
> rst 10h ;_findsym
> call nc,_exec_basic ;only if program actually exists
>End:
> cp a ;set z flag
> ret ;return
>Setting:
> .db 8,"BlitZÉNT" ;You don't need a type byte for _FINDSYM, just the length
>code_end:
>.end
>
______________
JBrett
tbarwick@esn.net
http://ww2.esn.net/~tbarwick
http://members.xoom.com/Plexus