[comp.sys.tandy] Tandy 100 Questions -- Text wastes 11K? Clear problems?

streeter@theory.lcs.mit.edu (Kenneth B Streeter) (05/24/91)

I have recently purchased a used Model 100, and have two questions
that I can't find answered in the Users Manual, or Technical Reference
manual:


1)    Does the "Text" program require a large portion (~10K to ~11K) of
   RAM for the program?

      I have a 24K Model 100.  When I first start the machine up from
   a cold start, the machine shows around 21K free on the menu.  If I 
   enter the "Text" program, create a short text file (say containing
   1 character), and exit "Text", I find that around 10K have suddenly
   disappeared!  If I enter BASIC, type "clear", and return to the
   menu, the missing memory has returned.  It seems to me that the
   "Text" program must be copying itself, or a portion of itself into
   RAM for execution.  What does this mean if I have less than
   sufficient room for this to be done?  Does "Text" not work?

2)    When issuing the "clear" command from BASIC, sometimes (it seems to
   be whenever I have less than about 9K of free memory remaining) the 
   machine just LOCKS.  That is, the "Ok" prompt never returns in BASIC,
   none of the keyboard keys have any effect, and the only thing that 
   "fixes" things is a power cycle.  When the power is cycled, the machine 
   has been completely reset in that date and time are set back to Jan 1900,
   00:00:00, and all memory is cleared.  What is going on?  Is something
   wrong?  What could I do to try to debug/fix this?

Any help would be greatly appreciated!
--
Kenneth B. Streeter         | ARPA: streeter@im.lcs.mit.edu
MIT LCS, Room NE43-350      | UUCP: ...!uunet!im.lcs.mit.edu!streeter
545 Technology Square       | (617) 253-2614    (work)
Cambridge, MA 02139         | (617) 225-2249    (home)  

cameronjames@snoc01.enet.dec.com (James Cameron) (05/27/91)

In article <1991May24.125838.29358@mintaka.lcs.mit.edu>, streeter@theory.lcs.mit.edu (Kenneth B Streeter) writes:
>1)    Does the "Text" program require a large portion (~10K to ~11K) of
>   RAM for the program?

No.  The program executes in ROM only.  It allocates memory for the file that you are editing
at the time, and for the paste buffer.  The memory for the file expansion is allocated in 256
byte chunks, I think.  The file is edited in place; TEXT doesn't make a copy of it.

The behaviour you describe is not at all what I would expect.  Consider possible problems
with the RAM chips, or even a doubtful internal power supply voltage.  Maybe ask Tandy
to fix it?

>2)    When issuing the "clear" command from BASIC, sometimes (it seems to
>   be whenever I have less than about 9K of free memory remaining) the 
>   machine just LOCKS. That is, the "Ok" prompt never returns in BASIC,
>   none of the keyboard keys have any effect, and the only thing that 
>   "fixes" things is a power cycle.  When the power is cycled, the machine 
>   has been completely reset in that date and time are set back to Jan 1900,
>   00:00:00, and all memory is cleared.  What is going on?  Is something
>   wrong?  What could I do to try to debug/fix this?

The ROM does something intelligent to ensure that the memory is still as it should be after a
power fail and restore.  It writes a series of values into specific areas, and if those values
match, then memory is assumed to be OK.  If the values do not match, then the ROM assumes
that all of memory is corrupt.  It initialises the clock and the pointers in memory that describe
the files that exist.  The file data can be still there; and can be accessed using PEEK from BASIC
with a small bit of programming.

I would guess

1)  The RAM is sick, and has lost it's ability to retain information in a particular geographic area,
2)  The RAM Battery is sick, and so the RAM is not functioning within specifications,
3)  The power supply is sick,
4)  Something about the address or data bus is sick, causing (especially) the ROM to think that
     RAM is empty on reset or power up.
5)  There is a software flaw in the ROM.

For all but 5, get a service type to look at it.  For 5, check with other users to see if there are
any known bugs in the 100's ROM that have been detected in the past.

Did this problem just appear or did it always do that since you got it?

Maybe you should try a short BASIC program to test all of memory.  The simplest one that
comes to mind is;

10 print @0, fre(0); : gosub 10

This will fill available memory with GOSUB stack frames, and the memory display will move
towards zero.  When it gets close, BASIC will issue an error.  On machines with memory
trouble, I've found that the program rarely runs through to the end.  There is usually some
unpredictable behaviour, if the problems are related to power supply, address or data bus.

A geographical problem in the RAM could produce predictable results.

If you're willing to open the machine, check that the RAM chips are correctly seated/soldered.
If you lose one address line, you could (i.e. perhaps/maybe/5%) get strange results like this.

--
James Cameron
Digital Equipment Corporation (Australia) P/L
(cameronjames@snoc01.enet.dec.com)