[net.micro.trs-80] Model 100: Wanted memory map, .co formats

mason@utcsrgv.UUCP (Dave Mason) (10/04/84)

I bought a model 100 last week...& it's great!
The editor is nice, the basic is good (as basics go), telcom is well
done; the integration is nice; the keyboard has a good feel.
I wish the AA batteries were ni-cad & trickle-charged by the AC adapter,
but I have found a $2.50 dc-dc adapter that is only rated 300 ma but does
the job (at least with 8k) so I can use it in the car (as a passenger).

The information provided is pretty minimal, even in the technical manual.
I started to write a calender program which would use the current
machine date to go through my note.do file & tell me about things
that were coming up (the schedl program provided just does an fgrep on
the note.do file) in Basic.  The problem was that I wanted to start
every active line with an @ and change this to a * when it had been
acknowleged.  The problem with that is that you can't read & write on
the same file...so I had to poke the *...so I had to figure out the
file formats..here is what I have discovered to this point:
	.ba formats use key byte values in place of key words, and
		have the rest as straight ascii.  they appear to
		always be first in the RAM: disk.
	.do formats are straight ascii, with <cr><lf> between lines,
		and ^Z at the end of file.
	.co formats have a 3 word header.  the first is the address to
		load the file at, then the length, then the start address,
		or 0 if the same as the load address.  It apparently
		knows where the file ends by the length in the second word.
If you poke out the ^Z between 2 files, they become 1, but IF YOU GO INTO
TEXT ON THAT FILE, BE PREPARED TO TRASH THE RAM: DISK!  As documented in the
tech manual, the directory only has a pointer to the first of a file.

Now...what all this is leading to is I got fed up with how slow the Basic
program was getting, scanning the file a char at a time. (also I spent
5 years programming a lot in Basic & want nothing to do with it!)
So I would like to program in small-C & download the files to the M100.
Writing the support code for small-c for the M100 is a piece of cake,
'cuz almost everything you need is already there,...and downloading it
is no problem...a simple basic program to open "COM:...", read a .HEX
file from it & POKE into memory is easy,...and even changing the directory
entry to .co and setting the right bits in the flag byte isn't too hard.

BUT! what memory locations can I use?  I know where to find the:
directory, lcd image, type-in buffer, key label area, COM: setup,
and the stack (I think grows down from ffff to ff40).  I also know that
with no files on 8k you have 5062 bytes available, meaning that
8000-f3c5 is reserved for file space.  But what else is there?  What can I
safely tramp on?  I found 0's in various areas including around f950, and
I found strange word values at ~f5de-f639 & f88a-fd88 (how many words do
you need with ff80 in them? :-)) and what looked like string temps
from f3c6-f4e6 (or maybe ~f5de)		HELP!!

(Oh yes...& realize Suzuki Hayashi was the designer of the system, but
what are the invisible files by those names for?  What does RickY mean,
and why is the RickY file slot never used (although the name gets clobbered))

More esoterically is there a prom equivalent to the LH535618, and/or
is Radio-Shack going to come out with an optional ROM chip?

-- 
Usenet:	{dalcs dciem garfield musocs qucis sask titan trigraph ubc-vision
 	 utzoo watmath allegra cornell decvax decwrl ihnp4 uw-beaver}
	!utcsrgv!mason		Dave Mason, U. Toronto CSRI
CSNET:	mason@Toronto
ARPA:	mason%Toronto@CSNet-Relay