Official TEENY documentation

From Bitchin100 DocGarden
Revision as of 21:07, 4 December 2008 by 64.81.88.222 (talk) (New page: 03/11/05 Ron Wiesen Technical Products Four manuals follow: "TEENY", "TEENY.EXE", "TEENY.BA", and "TEENY.CO". ======================================= TEENY MANUAL ...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

03/11/05 Ron Wiesen Technical Products Four manuals follow: "TEENY", "TEENY.EXE", "TEENY.BA", and "TEENY.CO".

=======================================
               TEENY MANUAL

       Overview

TEENY is freeware placed in the public domain by Ron Wiesen. TEENY is useful to owners of Tandy laptop Models 100, 102, and 200. The laptop file TEENY.CO is the essence of TEENY freeware. Rather than directly distribute a particular incarnation of file TEENY.CO, TEENY freeware is distributed as the Personal Computer (PC) executable file TEENY.EXE.

Three pieces of hardware are required to use TEENY.EXE: a PC to invoke TEENY.EXE, a null-modem cable, and a Tandy laptop. Any PC that has at least one COM port will do -- COM1, COM2, COM3, or COM4. Any type of null-modem cable is sufficient -- see "Null-modem Cable" for detail. A Tandy laptop Model 100, 102, or 200 is required.

Think of TEENY.EXE as a use-rarely or use-once facility which is PC based. TEENY.EXE has one primary objective -- create within the Tandy laptop an incarnation of file TEENY.CO that fits your circumstance and preferences. A related option deposits within the Tandy laptop the BASIC file TEENY.BA, which is a similar facility that is laptop based. Think of TEENY.BA as a stand-alone laptop capability to create incarnations of file TEENY.CO to fit new circumstances of the future. Think of TEENY.CO as something you use everyday -- invocation of TEENY.CO starts a working session of Teeny operation. Teeny operation is a Master/Slave working arrangement where TEENY.CO is Master of a Slave disk device attached to the laptop. Laptop files transfer between the laptop and the Slave disk device according to commands that you type during a session of TEENY.CO.

       Slave Disk Devices

There are several disk devices that respond in the appropriate slave fashion to master stimulation at the laptop COM port. The chart below lists slave disk devices that can be used with TEENY.CO as a master.

 
 ______ Slave Disk Device ______ _____ Device Operational Speeds _____ 
| Brother Disk Drive FB100      |  9600 Baud only                     |
| PalmOS and session of DLPilot | 19200 Baud only                     |
| PC during session of DeskLink | 19200 or 9600 Baud per command line |
| Purple Computing Disk Drive   | 19200 or 9600 Baud per DIP switches |
| Tandy Portable Disk Drive     | 19200 or 9600 Baud per DIP switches |
| Tandy Portable Disk Drive 2   | 19200 Baud only                     |

DIP switches set the operational speed of the Purple Computing Disk Drive and the Tandy Portable Disk Drive. Set the rearmost DIP switch to its: outboard position for 19200 Baud, or inboard position for 9600 Baud. Be sure to leave the other three DIP switches at their outboard position. Cycle the power switch to OFF and then to ON -- this establishes the operational speed.

The working speed of TEENY.CO must match the operational speed of the slave disk device. The working speed of TEENY.CO is a matter of circumstance for the Brother Disk Drive FB100 (9600 Baud), a PalmOS device and session of DLPilot (19200 Baud), and the Tandy Portable Disk Drive 2 (19200 Baud). These slave disk devices operate at only one speed. In the rare case of a PC during a session of DeskLink where, by circumstance of a hardware limitation, the COM port(s) can not operate any higher than 9600 Baud, the working speed of TEENY.CO consequently must be restricted to 9600 Baud. In other cases of a PC (no hardware limitation) during a session of DeskLink, the working speed of TEENY.CO is a matter of preference: 19200 Baud, or 9600 Baud. Likewise for the other slave disk devices (Purple Computing Disk Drive and Tandy Portable Disk Drive), the working speed of TEENY.CO is a matter of preference: 19200 Baud, or 9600 Baud.

An incarnation of laptop file TEENY.CO works either at 19200 Baud or at 9600 Baud, based on how the incarnation is created. TEENY.EXE has a command line switch for the working speed of TEENY.CO. Any incarnation of TEENY.CO that is created by laptop file TEENY.BA has a working speed that is inherited from TEENY.EXE.

       Null-modem Cable

The laptop has a DB25 female connector, so it mates to a male connector of the cable. Typically the PC has a male connector, so it mates to a female connector of the cable. The connector at the PC is either a type DB9, or a DB25 -- pin numbers for both types are shown in the following diagrams.

A simple 3-wire type of null-modem cable is sufficient for use of TEENY.EXE with Tandy laptop Models 100 and 102 -- no control lines matter (none end to end, and none looped back at any end). This is shown below.

 
                                pin 07 DB25F
DB25M pin 07 ----- common ----- pin 05 DB9F    own & other reference
 
                                pin 03 DB25F
DB25M pin 02 TXD ---->>---- RXD pin 02 DB9F    own Xmt is other Rcv
 
                                pin 02 DB25F
DB25M pin 03 RXD ----<<---- TXD pin 03 DB9F    own Rcv is other Xmt


The null-modem cable that is shown above is not sufficient for use of TEENY.EXE with Tandy laptop Model 200. Wiring of control lines at the laptop end is added so that the RTS control line loops back to the CTS control line. One connector end-conductor is added as shown below.

 
DB25M pin 04 RTS --->>---+                     own Request is
                         |
DB25M pin 05 CTS ---<<---+                     seen as Clear

A null-modem cable is also needed where the slave disk device is a PC operating during a session of DeskLink. The null-modem cable that is shown above is not sufficient for use by DeskLink. Although the three cable through-conductors and the connector end-conductor are essential, some additional wiring of control lines is required.

The RTS control line is looped back to the CTS control line at the PC end. One connector end-conductor is added as shown below.

 
                                pin 04 DB25F
                  +---<<--- RTS pin 07 DB9F    other Request is
                  |             pin 05 DB25F
                  +--->>--- CTS pin 08 DB9F    seen as Clear

There are three possible wiring arrangements for the DTR and DSR control lines:

 
o  Typical    -- connector end-conductors for DTR looped back to DSR
o  Preferred  -- cable through-conductors for DTR and DSR
o  Inferior   -- DSR is not driven or DSR is not connected at laptop

The typical arrangement is used in commercially made null-modem cables, such as the "CompLink" cable that is sold by Club 100. This arrangement is shown below.

 
DB25M pin 20 DTR --->>---+                     own Ready is
                         |
DB25M pin 06 DSR ---<<---+                     seen as Ready
 
                                pin 20 DB25F
                  +---<<--- DTR pin 04 DB9F    other Ready is
                  |             pin 06 DB25F
                  +--->>--- DSR pin 06 DB9F    seen as Ready

The preferred arrangement gives more precise error response by TEENY.CO for faults involving the null-modem cable. This arrangement is shown below.

 
                                pin 06 DB25F
DB25M pin 20 DTR ---->>---- DSR pin 06 DB9F    own Ready for other
 
                                pin 20 DB25F
DB25M pin 06 DSR ----<<---- DTR pin 04 DB9F    other Ready for own

The inferior arrangement always can be used. If you use it, you must also make TEENY.CO not sensitive to the DSR control line (see the "TEENY.EXE MANUAL" or the "TEENY.CO manual" for detail). Otherwise all TEENY.CO operations fail and TEENY.CO issues the "NR Err" error code. Note that the preferred arrangement of the null-modem cable virtually is the inferior arrangement in circumstances where the DSR control line is not driven due to a slave disk device that does not assert the DTR signal. Such a circumstance is a deficiency (of hardware or software) which may be impractical to remedy, and consequently the only practical recourse is to make TEENY.CO not sensitive to the DSR control line. In the case where the slave disk device is a PalmOS device during a session of DLPilot, certain serial HotSync cables used with PalmOS devices are deficient (i.e., are the inferior arrangement).

=======================================
               TEENY.EXE MANUAL

This manual has five sections. They are in the order that is naturally occurring for TEENY.EXE usage. The first section answers questions of where, how, and why with respect to TEENY.EXE invocation.

The next two sections bear on your interaction with TEENY.EXE while it controls your PC, and how your interactions relate to your current and future circumstances.

The last two sections are meaningful after TEENY.EXE control of your PC has ended. Be sure to read the "Bonus" section, lest your PC screen display fool you into believing that TEENY.EXE still controls your PC. Both of these last sections cover DeskLink invocations: by TEENY.EXE, and manually by you.

       TEENY.EXE Placement and Syntax

TEENY.EXE is an executable file for a PC. The ideal locale for this file is C:\ROOT in a fixed disk drive, and A:\ROOT in a floppy diskette. Place it there now!

The command name is TEENY. The command TEENY /? explains everything, and the syntax it reveals is especially important. Do the TEENY /? command now!


C:\ROOT> TEENY /?


Purpose: Boot the Tandy laptop Model 100, 102, or 200 with TEENY for later use.

        The boot speed applies now, the working speed of TEENY applies later.

Syntax: TEENY [/p] [/BS] [/S] [/IDSR] [/DOS] [pace]

        /p is COM port number.  Range: 1 to 4.  Default: 1.
        /BS is boot speed at 9600 Baud, rather than 19200 Baud.
        /S sets TEENY to 9600 Baud working speed, rather than 19200 Baud.
        /IDSR makes TEENY insensitive to DSR control line (i.e., DSR unused).
        /DOS declares Op Sys as DOS in order to have no pace (i.e., override).
        pace is useful only if the Op Sys is Windows, rather than DOS. Where
             you don't specify pace, the Op Sys is surveyed: for Windows a
             medium pace is set, DOS has no pace. The value set by the survey
             is reliable in most cases. Low pace values work well, high values
             work fast but can fail.  Range: 10 to 99.  Set by survey: 40.

Examples: Port 1 Boot at 19200. TEENY set to 19200, DSR is used. If Windows, pace by 40.

        TEENY

Port 1 Boot at 9600. TEENY set to 9600, DSR is used. If Windows, pace by 40.

        TEENY /BS /S

Port 2 Boot at 9600. TEENY set to 19200, DSR unused. If Windows, pace by 40.

        TEENY /2 /BS /IDSR

Port 3 Boot at 19200. TEENY set to 19200, DSR is used. Windows, pace is 25.

        TEENY /3 25

Port 4 Boot at 9600. TEENY set to 9600, DSR is used. DOS declared, no pace.

        TEENY /4 /BS /S /DOS

C:\ROOT>


TEENY boots the laptop. The end result is creation of an incarnation of laptop command file TEENY.CO within the laptop.

The switches /1, /2, /3, and /4 steer the boot to any of four COM ports of the PC: COM1, COM2, COM3, or COM4. If you don't explicitly supply one of these switches, the default is boot to the COM1 port.

There's a /BS switch for boot at 9600 Baud. This is needed for a PC where its COM port(s) can not operate any higher than 9600 Baud. If you don't explicitly supply this switch, the default is boot at 19200 Baud. Note: do not confuse this /BS switch with the /S switch.

There's a /S switch for creation of an incarnation of TEENY.CO that works at 9600 Baud. If you don't explicitly supply this switch, the default is creation of TEENY.CO that works at 19200 Baud. Where the Tandy Portable Disk Drive 2 is the slave device, it only operates at 19200 Baud -- do not supply the /S switch. Where the Brother Disk Drive FB100 is the slave device, it only operates at 9600 Baud -- supply the /S switch. For the other Disk Drives (note #1), you have a choice: 19200 Baud, or 9600 Baud. Where the cable to the slave device runs through an area of high electrical noise, select 9600 Baud so you have some immunity to noise. If you plan to use Disk Drive emulation by "some PC" (note #2) and its COM port(s) can not operate any higher than 9600 Baud, then select 9600 Baud.

 
Note #1 Prior to the use of TEENY.CO with the Tandy Portable Disk Drive
        or the Purple Computing Disk Drive, you must establish its 
        operational speed so that it matches the working speed of
        TEENY.CO.  See the "Slave Disk Devices" section of the "TEENY
        MANUAL" for detail.
 
Note #2 The PC used for TEENY.EXE is not, necessarily, the "same PC"
        which you might subsequently use for Disk Drive emulation.  See
        "About DeskLink" for Disk Drive emulation and 9600 Baud detail.

There's a /IDSR switch for creation of an incarnation of TEENY.CO that is insensitive to the DSR control line (i.e., DSR unused). If you don't explicitly supply this switch, the default is creation of TEENY.CO that is sensitive to the DSR control line. Where the cable to the slave device is an inferior arrangement that has no connection to DSR at the laptop side (e.g., a PalmOS device with a deficient serial HotSync cable), you consequently must make TEENY.CO insensitive to the DSR control line -- supply the /IDSR switch.

There's a /DOS switch that in all cases is not needed but in certain cases may be desirable to use. If you don't explicitly supply this switch, the boot operation might proceed in a slow-paced fashion that's appropriate for a Windows Op Sys despite that fact that the Op Sys which currently controls the PC is a DOS Op Sys. For example, some dual-boot arrangements are cases that allow a PC to be controlled by either a Windows Op Sys or a DOS Op Sys. Also there are cases where removal of a Windows Op Sys from a PC is incomplete in the sense that the PC environment still retains traces of the former Windows Op Sys while the current Op Sys is a DOS Op Sys. In such cases you may, by supplying the /DOS switch, declare the Op Sys as DOS in order to have no pace (i.e., fastest possible boot operation) which overrides pacing that would occur for a Windows Op Sys.

There's a "pace" argument you might need to supply to avoid failure of the boot. If you don't explicitly supply this argument, the operating system is surveyed: for Windows the boot is conducted at a medium pace of 40, for DOS the boot is conducted as quickly as possible without any pace. If you do supply this argument, there is no survey (i.e., Windows is assumed) and the boot is conducted at the pace you specify: from 10 to 99 characters per second.

Initially you don't know whether to supply a pace argument or not. The practical approach is to not supply it and see what happens. If the boot completes, you're done. During the boot, the PC screen shows a reducing down-count to indicate progress toward completion. Also, a [Wait] shows during any period of suspension and it disappears whenever boot progress continues. Should the boot fail, the [Wait] persists and the down-count hangs (i.e., stops), but no harm occurs. The PC screen also shows the pace value and explains how to escape from the hung-up condition at both the PC and at the laptop. If it fails, just use the TEENY command again with a lower value for the pace.

What lower value of pace should be tried? Nobody can know that. It's a matter of how Windows "mediates" the COM ports of your PC, and that depends upon a lot of things -- things that change. But it has nothing to do with the hardware in your PC. Clock speed of the CPU doesn't matter. Type of UART at the COM port doesn't matter. And restarting Windows in so-called "DOS mode" doesn't help because Windows still mediates the COM ports in that mode. Just guess at a lower value of pace and try it!

       Primary Objective

TEENY.EXE has one primary objective -- creation of an incarnation of command file TEENY.CO within the Tandy laptop. Once file TEENY.CO is created, you might not ever need to use TEENY.EXE again! Note that TEENY.CO has three traits that it "inherits" from TEENY.EXE.


  • working speed -- either 9600 Baud or 19200 Baud, based on whether
 you did or did not supply the /S switch when you invoked TEENY.EXE.
  • DSR sensitivity -- either insensitive (i.e., DSR unused/ignored) or
 sensitive (i.e., DSR used and expected), based on whether you did or
 did not supply the /IDSR switch when you invoked TEENY.EXE.
  • laptop Model type -- either type 10x or type 200, based on the Model
 of Tandy laptop that TEENY.EXE detected via the COM port of the PC.

TEENY.EXE interacts with you; read and follow the directions that appear on the PC screen. TEENY.EXE directs you step by step. In some steps you are directed with terminology that's peculiar to a Tandy laptop. For example, "At laptop, type an End address and press Enter" does not precisely tell you what to type, but "End address" is peculiar to a Tandy laptop in regard to .CO type files. Perhaps you have no idea about what is an appropriate End address for file TEENY.CO -- the PC screen gives you some limiting guidance such as "Do not use an End address higher than 62959" which corresponds to "stuff" TEENY.EXE has extracted from your Tandy laptop. In other steps you are directed in precise ways. For example, "At laptop, type ?HIMEM:CALL9643 and press Enter" does tell you precisely what to do.

       Option

After it creates an incarnation of file TEENY.CO, TEENY.EXE then leaves you an option. Said another way, the primary objective has been achieved but you have a decision to make now that might matter to you in the future. The decision is not critical, there is no right or wrong choice -- just choose! Do you want to:

  • conserve memory in the Tandy laptop. The Tandy laptop now is
  consuming memory that holds BASIC statements, should you purge the
  statements to recover the memory they consume?  NEW recovers the
  memory.
  • be able to re-create TEENY.CO without using TEENY.EXE, a PC, and a
  null-modem cable.  Such stand-alone ability now is held within the
  Tandy laptop, should you retain it for future use?  SAVE"TEENY
  retains it in the form of a BASIC program file named TEENY.BA.

File TEENY.CO, like any conventional .CO file, is immutable. TEENY.EXE has cast an incarnation of file TEENY.CO in concrete -- so to speak. It inherits laptop Model type, working speed, and DSR sensitivity as traits. It has an End address that you specified. These fit your circumstance now, but the future may present you with a different circumstance that requires another incarnation of file TEENY.CO that is different. Consider the future -- TEENY.EXE leaves you an option for how to handle a future circumstance: use TEENY.EXE again, or use TEENY.BA. Using TEENY.EXE, you can select a different working speed and/or DSR sensitivity and/or specify a different End address. Using TEENY.BA, you can only specify a different End address.

       Bonus

Make no mistake about it, TEENY.EXE finishes! It knows when it is done, and it ends. When TEENY.EXE ends, it no longer has control of your PC. It has done its work -- end of story, finito, that's all folks.

TEENY.EXE has a bonus that is related to DeskLink and it gives you that bonus if it can. If it is technically possible, TEENY.EXE gives you the bonus when it finishes. You may get the bonus, you may not get it. If you do get the bonus then your PC screen shows two listings of "laptop-type" file names, and directly below these two file name listings "To exit Desk-Link, press F10." is seen.

The bonus is that TEENY.EXE invokes DeskLink on your behalf just after TEENY.EXE lists, on the PC screen, laptop-type file names that it finds within:

  • the memory of the Tandy laptop. File names TEENY.CO and TEENY.BA
  are not in this (first) listing.
  • a particular drive and directory of the PC. The particular drive
  and directory (e.g., C:\ROOT) are indicated above this (second)
  listing.


If you plan to immediately use TEENY.CO at the Tandy laptop to transfer laptop files to or from the PC, then this bonus has value to you. With manual invocation of DeskLink, a "brag screen" is all that appears at the PC -- it does not list any file names whatsoever. The bonus is that TEENY.EXE provides two listings of file names and then it invokes DeskLink in a way that leaves the screen intact.

It is DeskLink that has control of your PC. So don't expect to see any change in the file name listings at the PC screen while you are using TEENY.CO to transfer files. TEENY.EXE gave you a bonus, not magic intervention in a session DeskLink.

       About DeskLink

DeskLink (also known as BOOSTER-LINK) is freeware placed in the public domain by Club 100. Sessions of DeskLink provide Disk Drive emulation. DeskLink is useful to Personal Computer (PC) owners who also own a Tandy laptop or NEC notebook, and have a suitable null-modem cable. The "Null-modem Cable" section of the "TEENY MANUAL" details what is suitable for DeskLink. DeskLink freeware is distributed as the PC command file DESKLINK.COM.

Although your usage of TEENY.EXE might invoke a session of DeskLink, you must manually invoke it for other sessions. So placement of DESKLINK.COM and its command line syntax for manual invocation are necessarily detailed here. Certain desirable aspects of DeskLink that pertain to its operation as a slave to TEENY.CO, and generally do not pertain to other masters, are explained in the "Slave Device Nuance" section of "TEENY.CO MANUAL".

DESKLINK.COM is a command file for a PC. The ideal locale for this file is C:\ROOT in a fixed disk drive, and A:\ROOT in a floppy diskette. Place it there now!

The command name is DESKLINK. The command DESKLINK /? explains everything, and the syntax for its switches has much in common with the syntax of TEENY.EXE. Do the DESKLINK /? command now!

 
-------------------------------------------------------------------------------
C:\ROOT> DESKLINK /?
 
                           DESK-LINK (version 1.05)
                      (c) 1987, Traveling Software, Inc.
 
Usage:    DESKLINK dir
Function: PC disk emulation of a TANDY Disk Drive via "COM1:" at 19200 baud.
Notation: dir - root directory name (\ROOT used if omitted).
Switches: /2 - to communicate through "COM2:".
          /S - to communicate at 9600 baud.
 
C:\ROOT>
-------------------------------------------------------------------------------


DeskLink makes a COM port of a PC respond, to stimulation, in the slave fashion that a Disk Drive (e.g., Tandy Portable Disk Drive) exhibits. Although the disk media of a PC differs considerably from the media of a Disk Drive, stimulations and responses are alike. Thus, DeskLink is an emulator of a Disk Drive. Thus, the stimulations by a master such as TEENY.CO evoke operations which involve "laptop type" files and some file repository within a PC.

There's a "dir" argument so you can specify what directory in the PC current drive you want to use as the repository of "laptop type" files. If you don't explicitly supply this argument, the default directory \ROOT of the current drive is the repository.

There's a /2 switch which steers operation to the COM2 port of the PC. If you don't explicitly supply this switch, the default is the COM1 port.

There's a /S switch for 9600 Baud operation. This is needed for a PC where its COM port(s) can not operate any higher than 9600 Baud. Where the null-modem cable runs through an area of high electrical noise, supply the /S switch for immunity to noise. If you don't explicitly supply this switch, the default is 19200 Baud operation.


=======================================
               TEENY.BA MANUAL

Laptop file TEENY.BA is a "descendant" of PC file TEENY.EXE, and there are three "inherited" traits. TEENY.BA inherits:

  • working speed -- either 9600 Baud or 19200 Baud, based on whether
  you did or did not supply the /S switch when you invoked TEENY.EXE.
  • DSR sensitivity -- either insensitive (i.e., DSR unused/ignored) or
  sensitive (i.e., DSR used and expected), based on whether you did or
  did not supply the /IDSR switch when you invoked TEENY.EXE.
  • laptop Model type -- either type 10x or type 200, based on the Model
  of Tandy laptop that TEENY.EXE detected via the COM port of the PC.

When you use TEENY.BA, it passes on these three traits! In other words, you could invoke TEENY.EXE on EIGHT OCCASIONS (both working speeds and both DSR sensitivities for each of the laptop Model types) to separately produce EIGHT VARIANTS of laptop file TEENY.BA. Keep "heritage" in mind should the time come to uses "some" TEENY.BA file in "some" laptop.

Laptop file TEENY.BA is a "loader" of TEENY.CO, in a sense. It creates an incarnation of file TEENY.CO that is address-specific. You dictate a specific address -- TEENY.BA constructs TEENY.CO accordingly. As is true of any conventional .CO file, file TEENY.CO has a .CO file descriptor and an appended image. TEENY.BA constructs both the .CO file descriptor and the appended image of TEENY.CO based on the End address which you dictate. If an incarnation of file TEENY.CO exists, TEENY.BA replaces it with the specified incarnation.

Twelve seconds after you invoke TEENY.BA, it prompts you to specify the End address for TEENY.CO. WARNING -- specify an End address which is at least one less than the point of MAXRAM that you anticipate will be in effect during the use of TEENY.CO. For example, if you anticipate that no MAXRAM software will be present when you use TEENY.CO, then the highest possible value is:

 
62959  (for Models 100 and 102)
61103  (for Model 200)

Either type a 5-digit value to specify an End address and then press ENTER, or just press ENTER without typing anything for an END address that is one less than the current point of HIMEM. When you press ENTER, TEENY.BA constructs file TEENY.CO in accordance with the End address, but TEENY.BA does not alter the current point of HIMEM.

After TEENY.BA constructs the address-specific incarnation of file TEENY.CO, it ends by reporting "Loaded TEENY .CO", and "Ok" appears on the laptop screen. If you want to record the address specifics of TEENY.CO at this time, type the following and press ENTER. The Top, End, and Exe addresses are listed on the laptop screen.

 
CALL9643   (for Models 100 and 102)
CALL13072  (for Model 200)
=======================================
               TEENY.CO MANUAL

       Orientation

File TEENY.CO has an image which is simply called "Teeny" throughout this manual. The name Teeny describes the amount of laptop memory that is needed to hold the image. For what it does in comparison to similar software, the name is appropriate -- the image is teeny! Although the Teeny image is internally specific by Tandy laptop Model type, its size and its usage are identical for all laptop models. Use of, and operational aspects of the Teeny image are thoroughly covered in this manual.

Teeny gets used most by folks at the extremes of experience with Tandy laptops. Many neophytes use Teeny because it is in the public domain and easy to acquire. Many experts use Teeny because its image is so very small, and it has certain operational aspects that are not found in commercial software. Often a neophyte starts with Teeny, graduates to other software, and returns to Teeny usage at the expert stage.

       Invocation Facts

The image of Teeny is one contiguous block. Its size is 747. A block of 747 adjacent cells, within the HIMEM region of the laptop memory, holds the image during a session of its use. In regard to Tandy laptop operation, there is nothing abnormal about the image of Teeny -- it's quite conventional. If you are an expert, move on to the "Trigger File Creation" and "Invocation via Trigger File" sections of this manual which may be of some interest.

The laptop menu shows a "Bytes free" quantity. Of the total amount of Random Access Memory (RAM) that is equipped in the laptop, "Bytes free" is just one portion among several portions. The "Bytes free" portion is the amount of RAM that is not (yet) consumed. The amount of RAM that is consumed is the total of quantities from all other portions. As consumption increases and decreases, the "Bytes free" quantity of RAM contracts and expands, respectively. Refer to "About RAM in the Model 10x laptops", at the Club 100 site, for complete detail.

Regardless of how the Teeny image is invoked, the HIMEM region of RAM is where the action is at during a Teeny session. The image within the HIMEM region is what controls the laptop during a Teeny session. When or how the image gets placed within the HIMEM region is no longer pertinent once a Teeny session is under way. When you end a session of Teeny, the Teeny image no longer controls the laptop but it still is intact at 747 adjacent cells within the HIMEM region.

From the laptop menu, there are two ways to invoke the Teeny image: via its laptop command file named TEENY.CO, or via a trigger file. Both of these files have a ".CO file descriptor" and an appended image. The .CO file descriptor describes the specific RAM addresses where the content of the appended image belongs, as well as where to start "execution" for an invocation. The descriptor size is 6, and an image content appends it.

  • TEENY.CO file -- file size is 753: 6 for the descriptor, and 747 for
  the entire content of the Teeny image.  Invocation via TEENY.CO is
  recommended for a neophyte.
  • Trigger file -- file size is 7: 6 for the descriptor, and 1 for its
  content which is a vestige of the Teeny image.  The trigger file
  consumes 746 less RAM than file TEENY.CO.  Invocation via a trigger
  file is only recommended for experienced folks because of the
  unforgiving nature of trigger files.

Each incarnation of laptop command file TEENY.CO is address-specific -- each has a specific HIMEM requirement which must be met for successful invocation. The trigger file is created from some address-specific incarnation of file TEENY.CO, so it has an inherited HIMEM requirement. Whenever you attempt an invocation, the laptop inspects the .CO file descriptor to identify the HIMEM requirement. Based on the point of HIMEM, the laptop either allows or disallows the invocation.

o Where the point of HIMEM indicates that address-specific cells are

  available within the HIMEM region, the laptop "loads" the cells with
  content from the appended image and then it relinquishes control to
  the "execution" cell -- a session of Teeny is under way.  For the
  TEENY.CO file, 747 cells are loaded.  For the trigger file, only 1
  cell (the execution cell) is loaded and proper operation depends on
  remnant content (image of Teeny) in the adjacent block of 746 cells.

o Where the point of HIMEM is "too high", the laptop disallows an

  invocation because the HIMEM requirement is not met.  All cells in
  the HIMEM region remain as-is -- the laptop just issues a beep.  A
  neophyte might think it is Teeny that issues the beep.

If the HIMEM requirement of an incarnation is not met, there are two remedies. You set the point of HIMEM low enough for the requirement to be met, or you leave the point of HIMEM as-is and obtain a different incarnation (see the "TEENY.BA MANUAL" for detail) that has a HIMEM requirement which is met. The incarnation that allows the least consumption of RAM has a HIMEM requirement that is 747 less than the point of MAXRAM. The chart below lists this HIMEM requirement for the Model 10x and Model 200 laptops.

 
MAXRAM-747         | Model 10x | Model 200 |
HIMEM Requirement  |   62213   |   60357   |
       Invocation via TEENY.CO File

This procedure invokes Teeny by using laptop command file TEENY.CO and, in cases where it is necessary, this procedure also sets the point of HIMEM equal to the HIMEM requirement of TEENY.CO.

  1. Use the arrow keys to navigate the wide cursor bar over the name

TEENY.CO at the laptop menu.

  1. Press the ENTER key. If the HIMEM requirement is met, the laptop

relinquishes control to Teeny and its guide/prompt appears. A session of Teeny is under way -- this procedure is complete.

Where the HIMEM requirement is not met, the laptop issues a beep. Go on to step 3 of this procedure.

  1. Use the arrow keys to navigate the wide cursor bar over the name

BASIC at the laptop menu.

  1. Press the ENTER key. This invokes the BASIC interpreter.
  2. Two entries are illustrated below as they appear on the 40-column

screen of the laptop. Type the first entry exactly as shown -- five lines then appear as a result of this entry, and then "Ok" appears at the following line.

Study the result where 5-digit values appear in column 6 to column 10. Point of HIMEM is illustrated as "himem". HIMEM requirement is illustrated as "hmreq". A value that is 746 more than the HIMEM requirement is illustrated as "endat".

 
                 1111111111222222222233333333334
        1234567890123456789012345678901234567890
        ________________________________________
       |Ok                                      |
Type   |?" pH "HIMEM:LOADM"TEENY                | and then press ENTER.
       | pH  himem                              | Point of HIMEM
       |Top: hmreq                              | HIMEM requirement
       |End: endat                              | HIMEM requirement+746
       |Exe: hmreq                              |
       |?OM Error                               | Out-of-Memory Error
       |Ok                                      |
Type   |CLEAR0,hmreq:MENU                       | and then press ENTER.
  1. Using the "hmreq" value, type the second entry -- the laptop menu appears. Go back to step 1 of this procedure.
       Trigger File Creation

This procedure eliminates the TEENY.CO file and replaces it with a trigger file named Thmreq.CO where "hmreq" is the 5-digit HIMEM requirement. This procedure also sets the point of HIMEM equal to the HIMEM requirement.

1. Use the arrow keys to navigate the wide cursor bar over the name BASIC at the laptop menu.

2. Press the ENTER key. This invokes the BASIC interpreter.

3. An entry is illustrated below as it appears on the 40-column screen of the laptop. Type the entry exactly as it is shown. As a result of this entry, three lines appear that show the "Top", "End", and "Exe" addresses of file TEENY.CO. The 5-digit value of Top (and Exe) appears in column 6 to column 10. This value is the HIMEM requirement, which is illustrated as "hmreq".

                 1111111111222222222233333333334
        1234567890123456789012345678901234567890
        ________________________________________
       |Ok                                      |
Type   |LOADM"TEENY":T=PEEK(7300)*7-2821:R=PEEK(|
       |T+1)*256+PEEK(T):KILL"TEENY.CO":SAVEM"T"|
       |+MID$(STR$(R),2),R,R,R                  | and then press ENTER.
       |Top: hmreq                              | HIMEM requirement
       |End: endat                              |
       |Exe: hmreq                              |


Look at the line that directly follows the line that shows the "Exe" address. If "?OM Error" is seen at this line, go to step 5. If "Ok" is seen at this line (then "?OM Error" is not seen), go to step 4.

4. Type the entry shown below. The laptop menu appears. File name TEENY.CO is not found -- it has been eliminated. The trigger file name (e.g., T60357.CO) is found on the menu -- the five numerals of the name identify the HIMEM requirement of the trigger file.

 
       |Top: hmreq                              | HIMEM requirement
       |End: endat                              |
       |Exe: hmreq                              |
       |Ok                                      | "?OM Error" not seen
Type   |CLEAR0,R:MENU                           | and then press ENTER.

This procedure is complete. Move on to the "Invocation via Trigger File" section of this manual.

5. Using the "hmreq" value, type the entry shown below and then go back to step 3 of this procedure.

 
       |Top: hmreq                              | HIMEM requirement
       |End: endat                              |
       |Exe: hmreq                              |
       |?OM Error                               | Out-of-Memory Error
       |Ok                                      |
Type   |CLEARFRE(""),hmreq                      | and then press ENTER.
       |Ok                                      |
       Invocation via Trigger File

This procedure invokes Teeny by using a trigger file or, in cases where it is necessary, this procedure eliminates a trigger file.

1. Use the arrow keys to navigate the wide cursor bar over the name of the trigger file (e.g., T60357.CO).

2. Press the ENTER key. If the HIMEM requirement is met, the laptop relinquishes control to Teeny and its guide/prompt appears. A session of Teeny is under way -- this procedure is complete.

Where the HIMEM requirement is not met, the laptop issues a beep. Go on to step 3 of this procedure.

3. Use the arrow keys to navigate the wide cursor bar over the name BASIC at the laptop menu.

4. Press the ENTER key. This invokes the BASIC interpreter.

5. An entry is illustrated below as it appears on the 40-column screen of the laptop. Type the entry exactly as it is shown. As a result of this entry, the point of HIMEM appears as a 5-digit value in column 2 to column 6 on a line by itself. The value for the point of HIMEM is illustrated as "himem". Directly below it, all of the file names are listed with three names per line starting at columns 1, 13 and 25.

 
                 1111111111222222222233333333334
        1234567890123456789012345678901234567890
        ________________________________________
       |Ok                                      |
Type   |?HIMEM"pH":FILES                        | and then press ENTER.
       | himem pH                               | Point of HIMEM
       |Thmreq.CO   ADRS  .DO   NOTES .DO       | The trigger file name
       |Ok                                      |

Look at the list of file names and find the trigger file name. A name of the Thmreq.CO form identifies a trigger file, where "hmreq" is its 5-digit HIMEM requirement. If the point of HIMEM exceeds the HIMEM requirement of the trigger file by MORE THAN 1, go to step 7. If the point of HIMEM exceeds the HIMEM requirement of the trigger file by EXACTLY 1, go to step 6.

6. Type the entry shown below -- the laptop menu appears. Go back to step 1 of this procedure.

 
       | himem pH                               | Point of HIMEM
       |Thmreq.CO   ADRS  .DO   NOTES .DO       | exactly hmreq + 1
       |Ok                                      |
Type   |CLEAR0,HIMEM-1:MENU                     | and then press ENTER.

7. Type the entry shown below -- the laptop menu appears. This eliminates the trigger file -- this procedure is complete.

 
       | himem pH                               | Point of HIMEM
       |Thmreq.CO   ADRS  .DO   NOTES .DO       | more than hmreq + 1
       |Ok                                      |
Type   |KILL"Thmreq.CO":MENU                    | and then press ENTER.
       Guide/Prompt

Teeny issues a two-line guide/prompt: the upper line is the guide, the lower line is the prompt. These two lines are illustrated below exactly as they appear on the 40-column screen of the laptop.

The guide line is only a visual aid. It identifies column positions of fields in the prompt line, and it has a notation (C=KLSQ) regarding arguments of the command field. The prompt line has two fields that are separated. The command field [C] is column 3. Column 4 is merely a separator [ ] between fields. The file name field [FFFFFF.XX] spans from column 5 to column 13.

Teeny provides a blinking cursor (illustrated by _ below) on the prompt line at column 3, which is the command field. Use of the command field is mandatory -- you must type a command. You do not have to use the rest of the prompt line -- its use is optional.

 
                 1111111111222222222233333333334
        1234567890123456789012345678901234567890
        ________________________________________
Guide  |> C FFFFFF.XX (C=KLSQ)                  |
Prompt |> _                                     |
       Command Syntax

Regarding arguments of the command field, the notation (C=KLSQ) shows an equal sign followed by four upper case letters: K, L, S, and Q. The equal sign denotes the query command. Upper case letters K, L, S, and Q correspond to the Kill, Load, Save, and Quit commands.

Command syntax is the same for every command -- you may include a file name, but you are not compelled to do so. If you include a file name, then you may also append commentary after the file name -- Teeny ignores anything you type at column 14 and onward.

Letter "P" is upper case, and letter "p" is lower case. For file names that you type, the case of each and every letter may be important. For example, LAPTOP.CO and LApTOP.CO and LAPTOp.CO are slightly different file names that may refer to three distinct files, or they may all refer to the same file. Teeny takes each character of a file name precisely the way you type it and, based on the command, treats the file name in different ways -- see "File Name Treatment" for detail. For convenience however, you can keep the CAPS LOCK key engaged during a Teeny session so that file names are always treated in the same way.

There are some restrictions on the names of files. The laptop imposes the first restriction, Teeny enforces it, and it applies to every command. The first restriction is that the lead-character of a name can not be a numeral or certain special characters. For example, the name 4SCORE.DO is illegal. To make it compatible with as large a group of other masters (e.g., Floppy by Tandy, TS-DOS by Traveling Software) as practical, Teeny imposes the second restriction, which applies to the Kill, Load, and Save commands. This second restriction is that the lead-character of the file name extension must be one of three letters: B, C, or D. Other masters and Teeny use a convention where the lead-letter of the file name extension indicates the laptop file type. There are three file types: BASIC, Command, and ASCII. And the corresponding letters are: B for BASIC, C for Command, and D for ASCII. For a Load command with a file name such as WONDER.B4 for example, Teeny inserts the file content into that portion of laptop memory where BASIC file types belong.

The slave device that is attached at the RS-232C port of the laptop (a Disk Drive, or a PC during a DeskLink session) maintains its disk directory of file names and file content within its media. Certain differences among various slave devices are noteworthy and offer useful operational potential -- see "Slave Device Nuance" for detail.

See the illustration below. It shows an example for every command. Each example is a command which includes a file name. Note that the name included with the example Quit command is not legitimate for use with any of the other commands. Every example also includes commentary that begins at column 15. The file name and comment in each example form an explanation of what the command means. They are elaborate examples, yet you can use them as-is during a Teeny session because they are correct in their syntax!

                1111111111222222222233333333334
       1234567890123456789012345678901234567890
       ________________________________________

Guide |> C FFFFFF.XX (C=KLSQ) | Prompt |> = Wonder.B4 Does file exist at disk? | Syntax of query

Guide |> C FFFFFF.XX (C=KLSQ) | Prompt |> K AtDisk.BA BASIC file erase at disk | Syntax of Kill

Guide |> C FFFFFF.XX (C=KLSQ) | Prompt |> L Laptop.CO Command file into memory | Syntax of Load

Guide |> C FFFFFF.XX (C=KLSQ) | Prompt |> S OnDisk.DO ASCII file onto the disk | Syntax of Save

Guide |> C FFFFFF.XX (C=KLSQ) | Prompt |> Q meansQuit so Teeny session ends | Syntax of Quit

For a command (except for Quit command) where you include a file name, you must type the name so it aligns correctly in the file name field. Type one or more spaces if needed to pad a name so that the file name field is completely filled (type NAME .DO for a file named NAME.DO).

       Command Action

Teeny associates a file name with every command - even with the Quit command which produces no action except to end the Teeny session. The action by all the other commands is file name dependent, and the two restrictions on the names of files are pertinent.

There are two places a file can exist: at the disk, or in the memory of the Tandy laptop. A file, of a specific name, either exists or does not exist. So there are four cases for you to consider with respect to any file name. For a specific name, a file is found:

  1. nowhere (neither place)
  2. one place, at the disk (not in memory)
  3. one place, in memory (not at the disk)
  4. both places

The chart below summarizes the query, Kill, Load, and Save commands for all four cases. Below the chart, there is a paragraph for each command that explains its action. The terms "Identical file name" and "NORMALIZED file name" appear in these paragraphs to distinguish between different treatments that Teeny applies to file names. See "File Name Treatment" for the distinction.

 
      |  nowhere      |  one place,   |  one place,   |  both places  |
      |               |  AT THE DISK  |  IN MEMORY    |               |
       ___ case #1 ___ ___ case #2 ___ ___ case #3 ___ ___ case #4 ___ 
query |   "FF Err"    |   "SN Err"    |   "FF Err"    |   "SN Err"    |
      | (at the disk) | Specific Name | (at the disk) | Specific Name |
Kill  |   "FF Err"    |Possible ERASE |   "FF Err"    |Possible ERASE |
      | (at the disk) |  AT THE DISK  | (at the disk) |  AT THE DISK  |
Load  |   "FF Err"    |Possible INSERT|   "FF Err"    |   "AE Err"    |
      | (at the disk) |   IN MEMORY   | (at the disk) |  (in memory)  |
Save  |   "FF Err"    |   "AE Err"    |Possible INSERT|   "AE Err"    |
      |  (in memory)  | (at the disk) |  AT THE DISK  | (at the disk) |

The action of the query command merely is to respond with an error. The query command ascertains extant of the Identical file name found AT THE DISK. There are two possible responses by the query command. If Teeny fails to find any file name AT THE DISK by the Identical file name (which is case #1 and also case #3), then the response "FF Err" is given. Otherwise at least one specific name is extant AT THE DISK that is recognized by the Identical file name (which is case #2 and case

  1. 4), and the response "SN Err" is given. See "Slave Device Nuance".

The action of the Kill command is to erase a file of an Identical file name AT THE DISK. The action is possible for case #2 and case #4. For either of these cases, Teeny will erase the file AT THE DISK unless there is some condition (e.g., Write-Protected disk) that prevents the action. If the action is prevented, Teeny issues an error that is pertinent. For case #1 and case #3, Teeny issues "FF Err" because it fails to find the Identical file name AT THE DISK.

The action of the Load command is to insert IN MEMORY a file, based on content found at disk. The action is possible for case #2 only. For this case, Teeny makes an exact copy of the content and assigns a NORMALIZED file name in the memory directory of the laptop unless there is some condition (e.g., not enough free memory) that prevents the action. If the action is prevented, Teeny issues an error that is pertinent. For case #1 and case #3, Teeny issues "FF Err" because it fails to find the Identical file name at the disk. For case #4, Teeny issues "AE Err" because it finds the NORMALIZED file name already is assigned in the memory directory.

The action of the Save command is to insert AT DISK a file, based on content found in memory. The action is possible for case #3 only. For this case, Teeny makes an exact copy of the content and assigns an Identical name in the disk directory unless there is some condition (e.g., Write-Protected disk) that prevents the action. If the action is prevented, Teeny issues an error that is pertinent. See "Slave Device Nuance". For case #1, Teeny issues "FF Err" because it fails to find the NORMALIZED file name in the memory directory of the laptop. For case #2 and case #4, Teeny issues "AE Err" because it finds the Identical file name already is assigned in the disk directory.

       Error Codes

Teeny issues a 2-letter error code, such as "NM Err", if it encounters some condition or fault that prevents command action. The chart below lists each error code with its meaning, and indicates the relationship, if any, to each command: query, Kill, Load, Save, and Quit. Indicators "Disk" and "Memory" identify the place (i.e., at Disk or in Memory) where a condition is pertinent. The "**" indicator is used for error codes that have a clear meaning of place (e.g., Out of Memory), or have a generalized meaning.

 
|________ Code and Meaning ________|query_|_Kill_|_Load_|_Save_|_Quit_|
| NM NaMe illegal (e.g. 4SCORE.DO) |  **  |  **  |  **  |  **  |  **  |
| SN Specific Name found           | Disk |      |      |      |      |
| FF Fail to Find name             | Disk | Disk | Disk |Memory|      |
| AE file Already Exists           |      |      |Memory| Disk |      |
| ND No Disk media in drive        |  **  |  **  |  **  |  **  |      |
| WP Write-Protected disk media    |      |  **  |      |  **  |      |
| DF Drive directory Full          |      |      |      |  **  |      |
| FL FuLL memory directory         |      |      |  **  |      |      |
| OM Out of Memory (i.e. capacity) |      |      |  **  |      |      | 
| NR RS-232 Not Ready (e.g. cable) |  **  |  **  |  **  |  **  |      |
| IO I/O fault (e.g. RS-232)       |  **  |  **  |  **  |  **  |      |
| CM CoMmunication fault           |  **  |  **  |  **  |  **  |      |

The Load command can not overwrite a file in memory. You must Quit Teeny, kill the file in memory, then invoke Teeny again to load the file from disk. The example below shows the "discovery" that the file exists in memory, and the Quit of Teeny.

 
> L NAME  .DO
AE Err  (file Already Exists in memory)
> Q

The 6-command example below shows a comedy of errors that finally overwrites a file at the disk. Only the first command includes a file name -- see "File Name Memory".

> S NAME  .DO
NR Err  (plug in cable, power on drive)
> S
ND Err  (insert disk)
> S
WP Err  (remove disk write-protect)
> S
AE Err  (file Already Exists at disk)
> K
> S
       File Name Memory

Teeny remembers the last file name you typed. All commands need a file name and Teeny uses the remembered file name when you don't explicitly supply one. Even the Quit command needs a file name, but the name does not have to be legitimate. The 2-command example below overwrites a disk file.

> K NAME  .DO
> S
       File Name Treatment

Teeny treats a file name two ways:

  • Identical -- exactly as typed by you
  • NORMALIZED -- so that all letters are upper case

Mixed upper and lower case is allowed for file names at the disk directory of the slave device. A file identified by an Identical name at the disk directory is erased at disk, as a result of the Kill command. Likewise, a file inserted at disk, as a result of the Save command, gets an Identical name at the disk directory. For DeskLink, mixed case is not pertinent because the operating system of the PC treats mixed case as if it is all upper case. For a Disk Drive, mixed case is pertinent.

All upper case is the norm for file names within the memory directory of the laptop. A file inserted in memory, as a result of the Load command, gets a NORMALIZED name in the memory directory of the laptop.

The chart below shows the use of file name AnYmIx.Do in the query, Kill, Load, and Save commands. The Identical file name of AnYmIx.Do applies at the disk directory of the slave device for each of these commands. The NORMALIZED file name of ANYMIX.DO applies in the memory directory of the laptop for only the Load and Save commands.

 
             _______ Directory _______ 
__Command __| at Disk    | in Memory  |____ Overall action summary ____
= AnYmIx.Do | Identical  |            | By AnYmIx.Do, query at disk.
            |            |     --     |
K AnYmIx.Do | Identical  |            | By AnYmIx.Do, erase at disk.
            |            |     --     |
L AnYmIx.Do | Identical  |            | Content of AnYmIx.Do at disk,
            |            | NORMALIZED | insert for ANYMIX.DO in memory.
S AnYmIx.Do |            | NORMALIZED | Content of ANYMIX.DO in memory,
            | Identical  |            | insert for AnYmIx.Do at disk.

Where you use Teeny with a Disk Drive, you can use file names that have differences of letter case to your advantage. You can have content in memory under a NORMALIZED file name which you actively work with (e.g., TEXT), while you have content at disk which reflects your prior activity under one or more Identical names.

An example for media back-up purposes uses one Identical name where the last character is lower case, such as ACTIVE.Do. Use the S ACTIVE.DO and S ACTIVE.Do commands to save your active content, in duplicate, at the disk. Should the diskette media suffer from erosion (e.g., by some physical damage) there's some chance that one disk file is left intact. Ordinarily you use the L ACTIVE.DO command to insert the active content in memory under the NORMALIZED file name ACTIVE.DO. But you can resort to the L ACTIVE.Do command if the need arises.

An example for archival purposes uses a series of Identical names. A series such as Series.do, SEries.do, SERies.do and so on can be used to represent some progressive activity. And a series such as sERIES.DO, seRIES.DO, serIES.DO and so on can be used to represent some regressive activity. The query command is very useful for "learning" the limits of an archival series after you "forgot" the limits.

       Slave Device Nuance

For the query command with a PC during a DeskLink session, the ? wild card character can be used within the file name extension. This forms a "file spec" which covers a range of specific file names. Note that the name portion is specific, and the extension portion is not specific. The chart below lists eight query commands for a name of WOW where each query has a different file spec. The chart assumes nine files of the name WOW are extant, and has a column for each extension of the name WOW. For each query, the indicator "met" identifies every file name that meets the file spec and thus contributes toward the response "SN Err" for Specific Name. The file spec with extension ?? is global, so all of the nine files contribute toward the response.

 
query & name| Files with a name of WOW exist, the Extensions are: |
____________| .B  | .B4 | .BA | .C  | .C1 | .CO | .D  | .D4 | .DO |
= WOW   .?? | met | met | met | met | met | met | met | met | met |
= WOW   .?  | met |     |     | met |     |     | met |     |     |
= WOW   .B? | met | met | met |     |     |     |     |     |     |
= WOW   .C? |     |     |     | met | met | met |     |     |     |
= WOW   .D? |     |     |     |     |     |     | met | met | met |
= WOW   .?1 |     |     |     |     | met |     |     |     |     |
= WOW   .?4 |     | met |     |     |     |     |     | met |     |
= WOW   .?O |     |     |     |     |     | met |     |     | met |

For the Save command with a Disk Drive, there must be at least one file name slot available at the disk directory, and the directory must manifest enough capacity in terms of sectors at the media to insert (i.e., hold) the file content. Otherwise, the response "DF Err" for Drive directory Full is given. The chart below lists the quantity of file name slots, and the capacity and quantity of sectors for diskette media that is formatted by various Disk Drives.

 
 ________ Disk Drive _________ _ File Name Slots __ _Capacity/Sectors_ 
| Brother Disk Drive FB100    | 40                 | 101120  /  79    |
| Purple Computing Disk Drive | 40                 | 101120  /  79    |
| Tandy Portable Disk Drive   | 40                 | 101120  /  79    |
| Tandy Portable Disk Drive 2 | 40 bank0, 40 bank1 | 202240  / 158    |
       Diskette Formatter

Teeny does not have a command to format a diskette in a Disk Drive. If it did, the image of Teeny would not be so teeny! Make your own BASIC program and use it on occasions when you want to format some diskettes.

Just invoke the BASIC interpreter at the laptop menu and then type four entries, the last of which ends the interpretation session. The four entries are illustrated below exactly as they appear on the 40-column screen of the laptop as you type them. Note that the second entry is very long and it wraps into seven lines on the screen.

 
                 1111111111222222222233333333334
        1234567890123456789012345678901234567890
        ________________________________________
Type   |NEW                                     | and then press ENTER.
       |Ok                                      |
Type   |0CLEAR1:IFLEN(INKEY$)THENRUNELSE?"FORMAT|
       | [Y]es";:IFNOTINPUT$(1)="Y"THENMENUELSE?|
       |:MAXFILES=1:OPEN"COM:98N1DNN"FOROUTPUTAS|
       |1:?#1,"ZZ"CHR$(6)CHR$(0)CHR$(249);:CLOSE|
       |:M=PEEK(919):FORI=0TO0STEP0:IFSGN(M)XORS|
       |GN(INP(179+M)AND32+4*M)THENBEEP:RUNELSEN|
       |EXT                                     | and then press ENTER.
Type   |SAVE"DF21                               | and then press ENTER.
       |Ok                                      |
Type   |MENU                                    | and then press ENTER.

The third entry assigns DF21.BA as the file name of this BASIC program. After the fourth entry the laptop menu appears and the name DF21.BA can be seen. This BASIC program is not specific by Tandy laptop Model type so it can be used by all laptop models (200 or 10x). Use it to format diskette media placed in the:

  • Purple Computing Disk Drive -- with DIP switches set for 19200 Baud
  • Tandy Portable Disk Drive -- with DIP switches set for 19200 Baud
  • Tandy Portable Disk Drive 2
       Change Working Speed

TEENY.EXE casts Teeny with a working speed of either 19200 Baud or 9600 Baud (see the "TEENY.EXE MANUAL" for detail). Where it isn't practical to recast Teeny (e.g., no PC available), this procedure can be used as an expedient. It changes the working speed of Teeny. This procedure may be used with laptop command file TEENY.CO or with a trigger file.

  1. Use the arrow keys to navigate the wide cursor bar over the name

BASIC at the laptop menu.

  1. Press the ENTER key. This invokes the BASIC interpreter.
  2. Two entries are illustrated below as they appear on the 40-column

screen of the laptop: one for laptop command file TEENY.CO, one for a trigger file. Type the appropriate entry exactly as it is shown.

 
                 1111111111222222222233333333334 (for TEENY.CO file)
        1234567890123456789012345678901234567890
        ________________________________________
       |Ok                                      |
Type   |LOADM"TEENY                             | and then press ENTER.
 
                 1111111111222222222233333333334 (for trigger file)
        1234567890123456789012345678901234567890
        ________________________________________
       |Ok                                      |
Type   |LOADM"Thmreq                            | and then press ENTER.

As a result of the entry above, three lines appear that show the "Top", "End", and "Exe" addresses of the file. The 5-digit value of Top (and Exe) appears in column 6 to column 10. This value is the HIMEM requirement, which is illustrated as "hmreq".

Look at the line that directly follows the line that shows the "Exe" address. If "?OM Error" is seen at this line, go to step 6. If "Ok" is seen at this line (then "?OM Error" is not seen), go to step 4.

4. Carefully type the long entry shown below.

 
       |Top: hmreq                              | HIMEM requirement
       |End: endat                              |
       |Exe: hmreq                              |
       |Ok                                      | "?OM Error" not seen
Type   |T=PEEK(7300)*7-2821:R=PEEK(T+1)*256+PEEK|
       |(T):C=R+213:IFPEEK(C+1)-56THENMENUELSEFO|
       |RI=0TO0STEP0:S=PEEK(C):?MID$("NormalSLOW|
       |",82-1.08^S,6)" working speed. [C]hange?|
       |":IFINSTR("cC",INPUT$(1))THENPOKEC,1XORS|
       |:NEXTELSEIFPEEK(T+2)-1THENSAVEM"TEENY",R|
       |,R+746,R                                | and then press ENTER.

If the screen shows either the "Normal working speed. [C]hange?" or "SLOW working speed. [C]hange?" message, all is well -- go to step 5.

If the screen shows only the " working speed. [C]hange?" message, the image of Teeny is not in place -- go back to step 3.

If the laptop menu appears or if an Error message appears (e.g., FC Error), something is wrong. Likely, the entry was incorrectly typed -- go back to step 1 (laptop menu) or to step 3 (Error message).

5. The working speed of Teeny is shown at the screen along with the "[C]hange?" prompt, as shown below. Normal speed is 19200 Baud. SLOW speed is 9600 Baud. Each time you press the C key, the working speed changes.

When the desired working speed is shown, press ENTER to accept it and then type the entry shown below -- the laptop menu appears. This procedure is complete.

 
       |Normal working speed. [C]hange?         | C changes the speed.
       |SLOW working speed. [C]hange?           | C changes the speed.
       |Normal working speed. [C]hange?         | C changes the speed.
       |SLOW working speed. [C]hange?           | ENTER accepts speed.
       |Ok                                      |
Type   |MENU                                    | and then press ENTER.

6. Using the "hmreq" value, type the entry shown below and then go back to step 3 of this procedure.

 
       |Top: hmreq                              | HIMEM requirement
       |End: endat                              |
       |Exe: hmreq                              |
       |?OM Error                               | Out-of-Memory Error
       |Ok                                      |
Type   |CLEARFRE(""),hmreq                      | and then press ENTER.
       |Ok                                      |
       Change DSR Sensitivity

TEENY.EXE casts Teeny so that it either is sensitive to the DSR control line or is not sensitive to the DSR control line (see the "TEENY.EXE MANUAL" for detail). Where a Nul-modem cable is not appropriate to the DSR usage of Teeny (e.g., DSR control line not connected while there is sensitivity to the DSR control line by Teeny) and it isn't practical to recast Teeny (e.g., no PC available), this procedure can be used as an expedient. It changes the DSR usage of Teeny. This procedure may be used with laptop command file TEENY.CO or with a trigger file.

  1. Use the arrow keys to navigate the wide cursor bar over the name

BASIC at the laptop menu.

  1. Press the ENTER key. This invokes the BASIC interpreter.
  2. Two entries are illustrated below as they appear on the 40-column

screen of the laptop: one for laptop command file TEENY.CO, one for a trigger file. Type the appropriate entry exactly as it is shown.

 
                 1111111111222222222233333333334 (for TEENY.CO file)
        1234567890123456789012345678901234567890
        ________________________________________
       |Ok                                      |
Type   |LOADM"TEENY                             | and then press ENTER.
 
                 1111111111222222222233333333334 (for trigger file)
        1234567890123456789012345678901234567890
        ________________________________________
       |Ok                                      |
Type   |LOADM"Thmreq                            | and then press ENTER.

As a result of the entry above, three lines appear that show the "Top", "End", and "Exe" addresses of the file. The 5-digit value of Top (and Exe) appears in column 6 to column 10. This value is the HIMEM requirement, which is illustrated as "hmreq".

Look at the line that directly follows the line that shows the "Exe" address. If "?OM Error" is seen at this line, go to step 6. If "Ok" is seen at this line (then "?OM Error" is not seen), go to step 4.

4. Carefully type the long entry shown below.

 
       |Top: hmreq                              | HIMEM requirement
       |End: endat                              |
       |Exe: hmreq                              |
       |Ok                                      | "?OM Error" not seen
Type   |T=PEEK(7300)*7-2821:R=PEEK(T+1)*256+PEEK|
       |(T):C=R+572-341*SGN(91-T/-31):IFPEEK(C+1|
       |)-4THENMENUELSEFORI=0TO0STEP0:S=PEEK(C):|
       |?"DSR U"MID$("nu",SAND5)"sed. [C]hange?"|
       |:IFINSTR("cC",INPUT$(1))THENPOKEC,215XOR|
       |S:NEXTELSEIFPEEK(T+2)-1THENSAVEM"TEENY",|
       |R,R+746,R                               | and then press ENTER.

If the screen shows either the "DSR Used. [C]hange?" or "DSR Unused. [C]hange?" message, all is well -- go to step 5.

If the laptop menu appears or if an Error message appears (e.g., FC Error), something is wrong. Likely, the entry was incorrectly typed -- go back to step 1 (laptop menu) or to step 3 (Error message).

5. The sensitivity to the DSR control line by Teeny is shown at the screen as DSR usage along with the "[C]hange?" prompt, as shown below. DSR Used means Teeny is sensitive to the DSR control line. DSR Unused means Teeny is not sensitive to the DSR control line. Each time you press the C key, the DSR usage changes.

When the desired DSR usage is shown, press ENTER to accept it and then type the entry shown below -- the laptop menu appears. This procedure is complete.

       |DSR Used. [C]hange?                     | C changes DSR usage.
       |DSR Unused. [C]hange?                   | C changes DSR usage.
       |DSR Used. [C]hange?                     | C changes DSR usage.
       |DSR Unused. [C]hange?                   | ENTER accepts usage.
       |Ok                                      |
Type   |MENU                                    | and then press ENTER.

6. Using the "hmreq" value, type the entry shown below and then go back to step 3 of this procedure.

       |Top: hmreq                              | HIMEM requirement
       |End: endat                              |
       |Exe: hmreq                              |
       |?OM Error                               | Out-of-Memory Error
       |Ok                                      |
Type   |CLEARFRE(""),hmreq                      | and then press ENTER.
       |Ok                                      |
       Beefs, Tips, Quirks and Humor

1. I keep pressing the Q key but Teeny refuses to Quit.

Type Q Q to Quit -- that's the Q key, a space, and another Q key. Or, you could press the reset button. But, <BREAK> won't Quit Teeny.

Do you remember that Teeny "remembers" the previous file name? What? You say you just invoked Teeny, changed your mind and now want to quit but you haven't even typed any file name. Tough! The first file name that Teeny initially "remembers" is not something that you typed but is something that Teeny considers garbage as a file name for the Quit command. It may be garbage left by a prior operation or by the way Teeny was invoked (from the menu or from BASIC). Do you think the image of Teeny can be so teeny by having great gobs of initialization logic?

2. I press a function key and Teeny goes nuts and pukes and scrolls the screen.

NEWS FLASH -- When running Teeny from BASIC, don't press any function key. If you do, whatever string is assigned ("Files", "Load ", or God forbid "K MYFILE.DO") is fed to Teeny for consumption.

3. Everything was going well. It was cool. I was a Loadin'/Savin' dude with Teeny -- I mean fast man -- really burnin' up the disk. But now, like... you know... I mean ... Teeny just sits there -- stoned -- don't do squat. What it is Bro?

The trouble is bad Karma and lack of Cosmic vibes. Really! I checked with my Guru and she had a vision and saw what went down with you man. Like... you know... I mean ... your disk drive tuned out man. She saw you take a smoke break. I know it was some good stuff 'cause she said you was gone for a quite a while. Your disk drive took a break too! Went trance-like in low power mode she said.

Flip the disk drive power switch off and on. Now reunite with Teeny, live long & prosper. Later dude!

4. I created file DAMNED.2B but Teeny won't Save it. What gives?

With some devilish application programs, you can make a file name extension that's damned to be straight from Hell -- repent. Actually, the disk drive is willing to Save your file but it's Teeny that doesn't like the file name extension. The BASIC interpreter's NAME AS command doesn't change file name extensions, so no help there. Another fine pickle you've got into Ollie.

To absolve your sin, go to BASIC and kill the file. Follow the Marine Corps motto "Kill 'em all and let God sort 'em out" for any other files in memory that have condemned file name extensions.