[comp.sys.ibm.pc] How does the Tandy 1400LT go into sleep mode?

wtm@neoucom.UUCP (Bill Mayhew) (08/21/89)

Hi,

I am working on a package that needs to run on a Tandy 1400LT
portable computer.  The computer will be in place where AC power is
available, so battery life is not a concern, but portablility of
the machine is needed (hence we're not using a desk-top machine).

What is causing me a bit of a problem is that the 1400LT has a
built-in sleep mode that activates after a user-selectable time of
1 to 179 minutes.  Unfortuantely, there is no documented way to
disable the sleep mode.  I am looking for widely separated events
that come in over the COM1: port, so the machine may need to be up
for more than the nominal 179 minutes.

Apparently, the BIOS INT09H (keyboard) call resets a time-out somewhere,
so that as long as there is periodic keybaord activity, the machine
will stay on.  Keyboard activity also will wake up the machine.
Curiously, INT10H (video services request) appears not to be
hooked.

I've been going through the BIOS digging around, and INT09H (the
hardware timer tick) and INT1CH (user callable timer tick) are
apparently NOT used to decrement the time remaining until sleep!!  There
are some interrupt vectors that would normally go the the second 8259
on an AT machine that are in use on the 1400LT, but I haven't been able
to figure them out yet.

I dug around in the Tandy hardware refence manual, and haven't been
able to come up with anything definitive.  The documentation on the
BIOS is extremely limited.  I did notice in the schematics that
there is a square wave output from the real-time battery back-up
clock to one of the PAL chips, so I am beginning to suspect that
the sleep mode is actually controlled by a register in the PAL,
rather than the BIOS.  Booo!, if that's the case.

By the way, one of the benefits of the sleep mode is to extend the
lifetime of the lead sulfide backlight panel for the display.  In
all portables (with the exception of ones that use fluorescent
tubes [Zenith Supersprot, e.g.]) the backlight has a fairly limited
life.  The backlight reduces to about 50% of its original intensity
after about 2000 hours (about 2 years of average use).  Obvisouly,
switching off the backlight when it is not needed is a good thing
to do.

In the case of the 1400LT, it is possible to shut off the backlight
without going into sleep mode.  I wrote a little TSR program that
traps INT08H, INT09H, and INT10H to shut off the backlight after a
user-selectable period of inactivity without going into sleep mode.
This is useful where you have a time-intensive application where
the CPU needs to keep going, but you don't really care about
viewing the display.  I'll see if I can send the backlight TSR to
one of the source groups (the executable is about 300 bytes).  IF
you want to experiment yourself, the backlight is controlled by
bit 3 in port 0FAH.  Witing a 1 into that bit turns the backlight
on, while a 0 shuts it off.

Right now, I have 50% of my problem is solved; I can save the
backlight, but I can't avoid going to sleep.  Thanks to anybody
that can help.

Bill

email:        wtm@impulse.UUCP   or   wtm@neoucom.edu


Bill Mayhew
Division of Basic Medical Sciences    M-117
Northeastern Ohio Universities' College of Medicine
Rootstown, OH  44272-9995  USA            phone:  216 325-2511