ZoomWorks and MoveWin, By Ernie Dodds (ernie_dodds@bigfoot.com)
First begun: Sep 26, 1999
Period of schoolwork taking all classtime: several days
Last revision: Oct 18, 1999

Name      : ZoomWorks and MoveWin
Type      : Calulator program in BASIC for TI 83 and 83 Plus
Variables : ZoomWorks uses most of the letters, window vars, and list GS
            MoveWin uses E,F,K,W, and window vars
            SAVEVARS uses list ALPHA, list LIST1, and list LIST2
Author    : Ernie Dodds
Email     : ernie_dodds@bigfoot.com
Files     : ZoomWorks.readme.txt (this file)
            ZOOMWRKS.83p (TI-83 program)
            MOVEWIN.83p  (TI-83 program)
            SAVEVARS.83p (TI-83 program)
            ZOOMWRKS.8xp (TI-83plus program)
            MOVEWIN.8xp  (TI-83plus program)
            SAVEVARS.8xp (TI-83plus program)
File size : 2724 bytes (ZOOMWRKS)
(on TI83p)  442  bytes (MOVEWIN)
            748  bytes (SAVEVARS)

Descr.    : This is for the TI 83 and 83 Plus, to set your graph, and to make the
            windows proportionally correct. several ways to set this, and you can
            move the window around if you're not sure of some variables. Also set
            scale. The rest is below...
            SAVEVARS: ever been doing math...then use a prog--such as this--which
            destroys the variables you're using? Me too. Saves all 27 letter var-
            iables, plus list 1 and list 2--the two lists most people use all the
            time--to lists ALPHA, LIST1 and LIST2. Also restores, BTW)
Other     : This is freeware, but please contact me if you're going to modify
            this, or use it in a package with other programs. I'm not going to
            say no, I just like to know when PPL use my stuff...
The rest  :

This contains three programs, SAVEVARS, ZoomWorks (ZOOMWRKS), and MoveWin
(MOVEWIN). ZoomWorks is the powerful one, MoveWin the smaller one. MoveWin has 
the following features:

- Move the graph window by half it's height or width (starts up like this)
- FnOn (MODE) and FnOff (XT0n) (Yes, BTW, I know it's not zero, but I'm lazy.)
- Px-per-Px graph, which sets the graph up such that every graph pixel is 1 point
  on the graph, defaulting to a centered origin
- Not ZStandard, which makes a 10 and -10 height, and proportionally correct
  width (15.? and -15.?), unlike the 'squished' ZStandard that TI defaults the
   calc to.
- Far smaller. Hopefully it'll stay under 1/2 KB

ZoomWorks, the really useful one (though far larger), has plenty more features
(organized by in-program menu setup, except for the first there):

The graph display:
In 'Move Window', all options bring you to a graph screen to move the window, and
it displays the Xmin at left, Xmax at right (left some room for several decimal
places, easier than string conversion, counting the characters, and offsetting it
properly--not to mention less memory), Ymin at bottom, Ymax at top.
All displays in ZoomWorks show the height and width of the window in the top-
right corner of the display.

Move View: move graph window by half width/height
Move Window...
    ...By 1px: move graph window one pixel in each direction at a time
    ...By 10px: move it by 10 pixels each time
    By 1/2 Window: Move View, but with window size vars displayed
    Full Window: move graph window by a complete height/width at a time
    Custom px: put in the pixels to move each time
Set Window...
    Not Zstandard: proportionally correct window, Ymin -10 and Ymax 10, not
                   'squished' like normal Zstandard
    ...By Width: enter the width, and it calculates height, then enter the Xmin
                 and Ymin for the window
    ...By Height: enter height, it calculates width, then enter the Xmin and Xmax
                  for the window
    Px-per-px: sets graph window such that each pixel is 1 point
    Scale... ...(this is for changing Xscl and Yscl)
    (Asks if you want to center your axes--does so w/o changing height and width)
        Modify Scales...
            By Pixels: add or subtract 1 pixel at a time to Xscl and Yscl
            By Points: add or subtract however many points you wish at a time to
                       Xscl and Yscl
            Set to 1: Sets Xscl and Yscl to the default of 1
Save Zoom...
    Save Window: saves window into list GS
    Restore Window: Restores window from settings in list GS
Help/Info: ...info. Shows the following:

TI83 Zoomworks
By Ernie Dodds
Revision 2
	< pause >
Arrows: move view
Del :CoordOn
Stat:CoordOff
+:zoom in(2x)
-:zoom out(2x)
Mode:FnOn
XT0n:FnOff
Enter:back
	< pause >
Graph width is
94 and height is
62: about...3x2
Actually its
95x63, but the graph is only
right w/ 94x62.
	< pause >
Scale...
Left : -Xscl
Right: +Xscl
Up   : +Yscl
Down : -Yscl
	< pause >
(Graph display: height, width, Xmin, Xmax, Ymin, and Ymax placement)
	< pause >
	< back to menu >

Also, on the 94x62 issue...I've noticed that when you move the window around by
half, you can see the axes on the border when you move it one time from centered
axes. Maybe the calc is using the 94x62, with an axis row and and column added in
there?

Func/Axes...
    Functions On: Turns on your functions (MODE while in graph display)
    Functions Off: Turns off functions (speeds up graph display. XT0n while in
                   graph display)
    Axes On: Turns on axes
    Axes Off: Turns off axes (these mainly exist so when you just went into this
              from a game or something that turns axes off...)
Exit: Um...do you really need to be told?


Controls:

Move Window...(* - also works in MoveWin. ** - only in MoveWin. *** - rev 2)
Left    : move left *
Right   : move right *
Up      : move up *
Down    : move down *
Del     : coord on 
Stat    : coord off
Mode    : FnOn (functions on) * and ***
X,T,0,n : FnOff (functions off) * and ***
+       : zoom in (2x)
-       : zoom out (2x)
Enter   : back to menus *
Del     : Stop program (Stays in graph screen) **

Setting Scale...
Left  : subtract from Xscl ***
Right : add to Xscl ***
Up    : add to Yscl ***
Down  : subtract from Yscl ***
Enter : back to menus ***


Updates:
Revision 2: -added scale modifying
            -added function on/off while in graph display for both programs
            -made and added SAVEVARS, due to using movewin during some math...W
             was a var that I had been using...
            -added my name to Movewin :)
            -mainly, no more memory error! I was making programs that you hit
             keys...I never let it sit long enough to notice that the while loops
             eventually filled up the memory (used more mem each time, cleared
             only when the variable changed value. I kept most stuff archived so
             that I would have plenty of room for proggies that I constantly
             end up working on) So...using:
Lbl AA
GetKey->K
While K=0
Goto AA
End
(if-then stuff for keypresses)
             causes it to give a memory error (its constant looping). The better
             way:
Lbl AA
GetKey->K
If K=0:Goto AA
(if-then stuff for keypresses)
