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