Re: A83: Making Programs
[Prev][Next][Index][Thread]
Re: A83: Making Programs
Is there a call that finds the length of a program, so you don't have to
enter it manually?
-Phelan 'Amen' Wolf
Ian Graf wrote:
> Here is the source for a program i made that creates a program
> and then copies a small basic routine into it. if you run it, it
> displays "IAN IS A PIMP". make note that you can't use lowercase letters
> in basic program because they are 1 byte tokens when compiled into asm,
> but are 2 byte tokens when typed in through the graph link software
> (there isn't any way to enter lower case letters on the calculator).
>
> i hope that all made sence. hopefully the commented source will help
>
> .NOLIST
> #define equ .equ
> #define EQU .equ
> #define end .end
> #include "ti83asm.inc"
> #include "tokens.inc"
> .LIST
>
> _createprog .equ 448Ah
> PROGOBJ .equ 05h
>
> .org 9327h
>
> call _zerooop1 ;
> ld hl,progname ; the name of the prog
> ld de,op1 ; copy it to op1
> ld bc,5 ; 5 chars in name
> ldir ; do the copying
> call _chkfindsym ; look it up
> call nc,_delvar ; if it is there delete it (to keep things clean)
> ld hl,15 ; length of program (in bytes)
> call _createprog ; create it
> inc de ; skip 1st length byte
> inc de ; skip 2nd length byte
> ld hl,prog ; program data
> ld bc,15 ; program data length
> ldir ; copy data
> ret ; all done!
>
> progname:
>
> .db PROGOBJ,"IAN",0 ; object type prog, name "IAN", 0 terminator
>
> prog:
>
> .db tDisp,tString,"IAN",tSpace,"IS",tSpace,"A",tSpace,"PIMP" ;
> Disp "IAN IS A PIMP
>
> .end
> END
References: