Re: A86: Recalling string variables into programs with asm


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

Re: A86: Recalling string variables into programs with asm



On Fri, 1 Aug 1997 MTNBIKE560@aol.com wrote:

> 	AStruct: .db $12,1,"A"	; $12 is type PRGM, 1 is name length
> 	BStruct: .db $0C,1,"B"	; $0C is type STRNG, 1 is name length
> 
> be the way that it looks in the source code, or should l change it around?

Those two lines should work okay in the source code.  The rest of that
message was just a gloss over what you need to do.

> 
> lf it isn't real hard to put together l would like to learn how.
> 

Attached is a CRUDE program I used to dump the TI-86 ROM in chunks.  
Notice that I didn't use any of the page-independent routines like 
INC_AHL (because I didn't know about them at the time, since I hadn't
dumped the ROM). The only reason this program did not obliterate the
system RAM was because I made sure that the variable I was using was
wholly contained in one page.

If you want, I can update this program to dump a whole page (16 KB)
at a time, safely, into an existing 16-KB string.  That would be a
good learning experience for you, though.

--------
Dan Eble (mailto:eble@cis.ohio-state.edu)
         (http://www.cis.ohio-state.edu/~eble)
#include "ti86asm.inc"



.org _asm_exec_ram



        in a,(5)

        ld (Port5Save),a



        ld hl, Struct_0         ; hl -> structure

        ld de, $6000            ; de -> memory to dump

        call StrDump



        ld a,(Port5Save)

        out (5),a



	ret



Port5Save: .db $0



;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

; Dump the memory in the picture

;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ



StrDump:

	push de

	rst 20H		; copy struct to buffer

	rst 10H		; find variable

;        ret c           ; cf set = failure

        ex de,hl

        ld a,b

        call $462F      ; translate linear address into page address

                        ; and switch RAM page

        ex de,hl

	pop hl		; hl -> memory to dump

	inc de

	inc de		; de -> variable

        ld bc, $2000



        in a,(5)

        and $F0

        or $0E

        out (5),a



	ldir

	ret



;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

; Variable Structures

;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ



Struct_0:       .db $0C,7,"DUMPSTR"



.end




References: