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: