TBACK: Difference between revisions

From Bitchin100 DocGarden
Jump to navigationJump to search
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Overview ==
== Overview ==


TBACK is a program for 32-bit Windows which will rapidly back up the "state" (RAM contents) of your Model 100 or Tandy 102 to a PC.
TBACK is a program for 32-bit Windows which will rapidly
 
* Back up the "state" (RAM image) of your Model 100 or Tandy 102
* Restore any RAM image to Model 100 or Tandy 102
* Install CO binary files to your Model 100 or Tandy 102
 
These tasks are accomplished with no permanent client-side utility. The only action required on the laptop itself is to type <code>RUN"COM:98N1E"[ENTER]</code> before hitting enter on the PC side.
 
Applications for this technology include:
 
* Fast switching between multiple "virtual" Model 100's. One image could be set up for development, one for word processing, one for telecom, and you can switch between them.
* Casual backups
* Freezing a Model 100 to allow you to send it to someone else as a file. They then thaw it onto a real Model 100 where they are, exactly reproducing your setup
* Cloning the exact setup of one Model 100 to another
* Transferring the state of a real Model 100 to/from VirtualT


== Compatibility ==
== Compatibility ==
Line 10: Line 24:


<table border="1">
<table border="1">
<tr><td>Windows 98SE</td><td>Sometimes TBACK gets stuck if verbose (debug) mode is enabled</td></tr>
<tr><td>Windows 98SE</td><td>John Hogerhuis</td><td>Sometimes TBACK gets stuck if verbose (debug) mode is enabled (running in VirtualBox OSE on Linux host)</td></tr>
<tr><td>Windows XP Home Edition</td><td>No problems have been reported</td></tr>
<tr><td>Windows 98SE</td><td>M.H. Stein</td><td>No issues detected with real Win98 PC</td></tr>
<tr><td>Windows XP Home Edition</td><td></td><td>No problems have been reported</td></tr>
<tr><td>WINE on Debian</td><td>John Hogerhuis</td><td>Works</td></tr>
</table>
</table>


Line 18: Line 34:
The cable from the PC must be a proper full-null cable which implements the hardware flow control (CTS/RTS) lines. TBACK will not work with a cable that is missing the flow control signals (3-wire cables) or which loops back flow control. The author uses a Belkin Serial Laplink cable.
The cable from the PC must be a proper full-null cable which implements the hardware flow control (CTS/RTS) lines. TBACK will not work with a cable that is missing the flow control signals (3-wire cables) or which loops back flow control. The author uses a Belkin Serial Laplink cable.


TBACK is not designed to work with a T200, though a variant for the T200 is possible. Certainly variants are possible for the T200 and the Model 100 workalikes.
TBACK is not designed to work with a T200, though a variant for the T200 is possible. Certainly variants are possible for the T200 and the Model 100 workalikes. The first hurdle is producing documentation and code samples for low-level direct access to the T200's UART.


== Experimental Release ==
== Experimental Release ==
Line 33: Line 49:
** Windows 98: <code>Start -> Run -> COMMAND</code>
** Windows 98: <code>Start -> Run -> COMMAND</code>
* <code>cd</code> to the directory where you unzipped TBACK.EXE, i.e. <code>cd c:\tback</code>
* <code>cd</code> to the directory where you unzipped TBACK.EXE, i.e. <code>cd c:\tback</code>
=== Freeze ===
* On the Model 100, enter BASIC and type:<br/><pre>RUN"COM:98N1E</pre>
* On the Model 100, enter BASIC and type:<br/><pre>RUN"COM:98N1E</pre>
* Hit the ENTER key on your Model 100.
* Hit the ENTER key on your Model 100.
* From the directory you unpacked TBACK.EXE on the PC type:<br/><pre>tback com1</pre>
* From the directory you unpacked TBACK.EXE on the PC type:<br/><pre>tback com1 MYBACKUP.CB</pre>
* Hit the ENTER key on your PC.
* Hit the ENTER key on your PC.
* Wait about 9 seconds and you should have a file <code>BACKUP.CB</code> in your directory.
* Wait about 9 seconds and you should have a file <code>BACKUP.CB</code> in your directory.
=== Thaw ===
* On the Model 100, enter BASIC and type:<br/><pre>RUN"COM:98N1E</pre>
* Hit the ENTER key on your Model 100.
* From the directory you unpacked TBACK.EXE on the PC type:<br/><pre>tback -r com1 MYBACKUP.CB</pre>
* Hit the ENTER key on your PC.
* Wait about 9 seconds and your Model 100 should be running the saved image.
=== Put ===
Use Put mode to install an arbitrary binary .CO file onto the laptop.
On your laptop:
RUN"COM:98N1E"
or
run a program, say, S.BA that has
1RUN"COM:98N1E
Then on the PC, type
TBACK -p com1 MYPROG.CO


TBACK supports several options. Not all work in this experimental version. To investigate them, type: <BR/><code>tback --help</code> and hit enter.
TBACK supports several options. Not all work in this experimental version. To investigate them, type: <BR/><code>tback --help</code> and hit enter.
Line 49: Line 89:
Usage:
Usage:


  tback -b|-r [-n] [-q] comport [ <filename> | - ]
  tback -b|-r|-i [-n] [-q] comport [ <filename> | - ]
   --backup, -b         receive a backup from laptop
   --backup, -b receive a backup from laptop
   --restore, -r       restore a backup to laptop (TBI)
   --restore, -r restore a backup to laptop
   --quiet, -q         quiet mode (no prompts)
  --inject, -i only inject the restore utility
   --noinject, -n      do not inject transmit/receive utility
   --quiet, -q quiet mode (no prompts)
   --verbose, -v        print debug trace messages
   --verbose, -v print debug trace messages
   <filename>           filename to save image to
   --fast, -f use 76800bps speed nominal
                        defaults to BACKUP.CB
   <filename> filename to save image to
   -                   write received image to STDOUT, not a file
defaults to BACKUP.CB
   --help               this message
   - write received image to STDOUT, not a file
 
   --help this message


C:\projects\model_t\TBACK>
C:\projects\model_t\TBACK>
</pre>
</pre>


--restore is a placeholder, and currently does nothing.
== WINE ==
 
WINE implements the Win32 API under Linux. I was able to operate tback.exe under Linux without
difficulty.
 
ex.:
 
<pre>
sudo apt-get install wine wine-doc binfmt-support
wget http://bitchin100.com/files/m10x/tback.zip
unzip tback.zip
chmod +x tback.exe
./tback.exe com1
 
./tback.exe --help
tback, Model 100/102 Memory Backup Utility
*EXPERIMENTAL* PROVIDED AS-IS WITH NO WARRANTY OF ANY KIND.
Copyright (C) 2009 DevWrights
 
Usage:
 
tback -b|-r|-i [-n] [-q] comport [ <filename> | - ]
  --backup, -b receive a backup from laptop
  --restore, -r restore a backup to laptop (TBI)
  --inject, -i only inject the restore utility
  --quiet, -q quiet mode (no prompts)
  --verbose, -v print debug trace messages
  <filename> filename to save image to
defaults to BACKUP.CB
  - write received image to STDOUT, not a file
  --help this message
 
john@office:~/Desktop$
</pre>


== Applications ==
== Applications ==
Line 71: Line 144:
* Offload RAM state after a cold start
* Offload RAM state after a cold start
* Quick backups
* Quick backups
== To-do ==
* Add a diagnostic mode to check the cabling and ensure it's up to snuff for TBACK usage.


== Future Improvements ==
== Future Improvements ==


* Add a "recover" feature to load the saved image back onto M10x
* (done) Add a "recover" feature to load the saved image back onto M10x
* Offer "quick mode" where unused RAM (free space) is not transferred to the PC
* Offer "quick mode" where unused RAM (free space) is not transferred to the PC
* Add a extraction feature that can extract any files (DO, BA, CO, ...) in the captured data as files on the PC file system.
* Add a extraction feature that can extract any files (DO, BA, CO, ...) in the captured data as files on the PC file system.
Line 81: Line 158:
* Support dumping the contents of a REX chip
* Support dumping the contents of a REX chip
* Support backing up Remem
* Support backing up Remem
* Support for T200 for main rom(s), option roms and all 3 banks of ram!
* Add direct image load (LOADM"0:______.CO" equivalent). Support automatic creation of trigger file which has correct CLEAR statement.


== Design Notes ==
== Design Notes ==


The background concepts for this utility are described in [[Model 100 Serial Interface|this]] article.
The background concepts for this utility are described in [[Model 100 Serial Interface|this]] article.
[[Category:File Transfer]] [[Category:Model T Software]]

Latest revision as of 19:19, 25 May 2009

Overview

TBACK is a program for 32-bit Windows which will rapidly

  • Back up the "state" (RAM image) of your Model 100 or Tandy 102
  • Restore any RAM image to Model 100 or Tandy 102
  • Install CO binary files to your Model 100 or Tandy 102

These tasks are accomplished with no permanent client-side utility. The only action required on the laptop itself is to type RUN"COM:98N1E"[ENTER] before hitting enter on the PC side.

Applications for this technology include:

  • Fast switching between multiple "virtual" Model 100's. One image could be set up for development, one for word processing, one for telecom, and you can switch between them.
  • Casual backups
  • Freezing a Model 100 to allow you to send it to someone else as a file. They then thaw it onto a real Model 100 where they are, exactly reproducing your setup
  • Cloning the exact setup of one Model 100 to another
  • Transferring the state of a real Model 100 to/from VirtualT

Compatibility

Operating System

TBACK has been tested for software compatibility on

Windows 98SEJohn HogerhuisSometimes TBACK gets stuck if verbose (debug) mode is enabled (running in VirtualBox OSE on Linux host)
Windows 98SEM.H. SteinNo issues detected with real Win98 PC
Windows XP Home EditionNo problems have been reported
WINE on DebianJohn HogerhuisWorks

Cabling Requirements

The cable from the PC must be a proper full-null cable which implements the hardware flow control (CTS/RTS) lines. TBACK will not work with a cable that is missing the flow control signals (3-wire cables) or which loops back flow control. The author uses a Belkin Serial Laplink cable.

TBACK is not designed to work with a T200, though a variant for the T200 is possible. Certainly variants are possible for the T200 and the Model 100 workalikes. The first hurdle is producing documentation and code samples for low-level direct access to the T200's UART.

Experimental Release

TBACK is currently in an experimental stage, but it does work.

Download the zipped executable Here.

Usage

  • Download TBACK.ZIP, unzip somewhere on your drive where you can easily find it from the command prompt (perhaps c:\tback\ ).
  • Start a command prompt;
    • Windows XP: Start -> Run -> cmd
    • Windows 98: Start -> Run -> COMMAND
  • cd to the directory where you unzipped TBACK.EXE, i.e. cd c:\tback

Freeze

  • On the Model 100, enter BASIC and type:
    RUN"COM:98N1E
  • Hit the ENTER key on your Model 100.
  • From the directory you unpacked TBACK.EXE on the PC type:
    tback com1 MYBACKUP.CB
  • Hit the ENTER key on your PC.
  • Wait about 9 seconds and you should have a file BACKUP.CB in your directory.

Thaw

  • On the Model 100, enter BASIC and type:
    RUN"COM:98N1E
  • Hit the ENTER key on your Model 100.
  • From the directory you unpacked TBACK.EXE on the PC type:
    tback -r com1 MYBACKUP.CB
  • Hit the ENTER key on your PC.
  • Wait about 9 seconds and your Model 100 should be running the saved image.

Put

Use Put mode to install an arbitrary binary .CO file onto the laptop.

On your laptop:

RUN"COM:98N1E"

or run a program, say, S.BA that has

1RUN"COM:98N1E

Then on the PC, type

TBACK -p com1 MYPROG.CO


TBACK supports several options. Not all work in this experimental version. To investigate them, type:
tback --help and hit enter.

C:\projects\model_t\TBACK>tback --help
tback, Model 100/102 Memory Backup Utility
*EXPERIMENTAL* PROVIDED AS-IS WITH NO WARRANTY OF ANY KIND.
Copyright (C) 2009 DevWrights

Usage:

 tback -b|-r|-i [-n] [-q] comport [ <filename> | - ]
   --backup, -b		receive a backup from laptop
   --restore, -r	restore a backup to laptop
   --inject, -i		only inject the restore utility
   --quiet, -q		quiet mode (no prompts)
   --verbose, -v	print debug trace messages
   --fast, -f		use 76800bps speed nominal
   <filename>		filename to save image to
			defaults to BACKUP.CB
   -			write received image to STDOUT, not a file
   --help		this message

C:\projects\model_t\TBACK>

WINE

WINE implements the Win32 API under Linux. I was able to operate tback.exe under Linux without difficulty.

ex.:

sudo apt-get install wine wine-doc binfmt-support
wget http://bitchin100.com/files/m10x/tback.zip
unzip tback.zip
chmod +x tback.exe
./tback.exe com1

./tback.exe --help
tback, Model 100/102 Memory Backup Utility
*EXPERIMENTAL* PROVIDED AS-IS WITH NO WARRANTY OF ANY KIND.
Copyright (C) 2009 DevWrights

Usage:

 tback -b|-r|-i [-n] [-q] comport [ <filename> | - ]
   --backup, -b		receive a backup from laptop
   --restore, -r	restore a backup to laptop (TBI)
   --inject, -i		only inject the restore utility
   --quiet, -q		quiet mode (no prompts)
   --verbose, -v	print debug trace messages
   <filename>		filename to save image to
			defaults to BACKUP.CB
   -			write received image to STDOUT, not a file
   --help		this message

john@office:~/Desktop$

Applications

  • Clone your laptop state wholesale and pop it open in VirtualT
  • Offload RAM state after a cold start
  • Quick backups

To-do

  • Add a diagnostic mode to check the cabling and ensure it's up to snuff for TBACK usage.

Future Improvements

  • (done) Add a "recover" feature to load the saved image back onto M10x
  • Offer "quick mode" where unused RAM (free space) is not transferred to the PC
  • Add a extraction feature that can extract any files (DO, BA, CO, ...) in the captured data as files on the PC file system.
  • Although a proper serial port and cable is highly reliable, it would be nice to have a checksum feature.
  • Support dumping the Main ROM or Option ROM
  • Support dumping the contents of a REX chip
  • Support backing up Remem
  • Support for T200 for main rom(s), option roms and all 3 banks of ram!
  • Add direct image load (LOADM"0:______.CO" equivalent). Support automatic creation of trigger file which has correct CLEAR statement.

Design Notes

The background concepts for this utility are described in this article.