ZoomWorks and MoveWin, By Ernie Dodds First begun: Sep 26, 1999 Period of schoolwork taking all classtime: several days Last revision: Oct 18, 1999 This contains two programs, ZoomWorks (ZOOMWRKS), and MoveWin (MOVEWIN). Both use enter to back to menus from the graph. MoveWin has the following features: - Move the graph window by half it's height or width (starts up like this) - 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. ZoomWorks, the really useful one (but due to size, some of my friends wanted a simpler one--plain TI83, not much free mem), has plenty more: - Move by half graph screen - Move by full graph screen - Move by 1 pixel - Move by 10 pixels - Move by custom pixels - Displays height and width - Can toggle (del=on and stat=off) the disply of the center dot coordinate (surrounded by 4 dots so you can see where that is) - Zooom in (+), Zoom out (-) - Generate proportionally correct graph window by entering height or width, then Xmin and Ymin - Px-per-Px graph - Save graph window - Restore saved graph window settings - Turn on or off functions (off speeds up moving the window, but when you want to get a look at a function or two by using the window move, you want them on) - A help section, so you don't have to remember the controls Hope you like it! Here's the source if you want it and don't want to use the calc for it. ZoomWorks: Lbl MM:1üP:Menu("ZOOM UTILITY","MOVE VIEW",MV,"MOVE WINDOW",MW, "SET WINDOW",SW,"SAVE ZOOM",SZ,"HELP/INFO",HI, "FUNCTIONS",FP,"EXIT",EX Lbl EX Float Stop Lbl SW:1üP Menu("SET WINDOW","NOT ZSTANDARD",NZ,"...BY WIDTH",BW,"...BY HEIGHT",BH, "PX-PER-PX",PX,"BACK",MM Lbl NZ 10üYmax:ú10üYmin:15.161290325üXmax:ú15.16129032üXmin:1üXscl:1üYscl Disp "OK, 30X20 GRAPH":Pause Goto MM Lbl PX 47üXmax ú47üXmin 31üYmax ú31üYmin 1üG:1üJ:Goto MA:Lbl BH ClrHome Input "HEIGHT:",H H(94/62)üW Disp "WIDTH:" Output(2,7,W Input "Xmin:",Xmin Input "Ymin:",Ymin Xmin+WüXmax Ymin+HüYmax 0üG:1üJ:0üL Goto DG Lbl BW ClrHome Input "WIDTH:",W Disp "HEIGHT:" W(62/94)üH Output(2,8,H Input "Xmin:",Xmin Input "Ymin:",Ymin Ymin+HüYmax Xmin+WüXmax 0üG:1üJ:0üL Goto DG Lbl SZ Menu("GRAPH SAVE/REST","SAVE WINDOW",GS,"RESTORE WINDOW",GR,"BACK",MM Lbl GS XminüáGS(1 XmaxüáGS(2 XsclüáGS(3 YminüáGS(4 YmaxüáGS(5 YsclüáGS(6 XresüáGS(7 Disp "WINDOW SAVED." Pause :Goto SZ Lbl GR áGS(1üXmin áGS(2üXmax áGS(3üXscl áGS(4üYmin áGS(5üYmax áGS(6üYscl áGS(7üXres Disp "OK, DONE." Pause :Goto SZ Lbl DG ClrDraw Pxl-On(30,46 Pxl-On(30,48 Pxl-On(32,46 Pxl-On(32,48 Xmax-XminüW Ymax-YminüH Text(0,0,"H:" Text(0,6,abs(H Text(6,0,"W:" Text(6,6,abs(W If J=1:Then Text(0,49,Ymax Text(50,49,Ymin Text(32,0,Xmin Text(32,60,Xmax End If L=1:Then Text(57,0,"X:" Text(57,6,(Xmin+Xmax)/2 Text(57,50,"Y:" Text(57,56,(Ymin+Ymax)/2 End If G=0:Then Pause :Goto MM End If G=1 Goto MP Lbl MA Goto DG Lbl MP getKeyüK While K=0 Goto MP End If K=23:Then 1üL:Goto MA Else:If K=33 Then 0üL:Goto MA Else:If K=24 Then Xmin-((P/E)W)üXmin Xmax-((P/E)W)üXmax Goto MA Else:If K=25 Then Ymin+((P/F)H)üYmin Ymax+((P/F)H)üYmax Goto MA Else:If K=26 Then Xmin+((P/E)W)üXmin Xmax+((P/E)W)üXmax Goto MA Else:If K=34 Then Ymin-((P/F)H)üYmin Ymax-((P/F)H)üYmax Goto MA Else:If K=85 Then Zoom Out Goto MA Else:If K=95 Then Zoom In Goto MA Else:If K=105 Then:Goto MM Else:Goto MP Lbl MV 0üJ:2üE:2üF:1üG Goto MA Lbl MW:1üP Menu("MOVE WINDOW","...BY 1PX",1P,"...BY 10PX",TP,"BY 1/2 WINDOW",MV, "FULL WINDOW",FW,"CUSTOM PX",CP,"BACK",MM Lbl 1P 1üJ:1üG:94üE:62üF Goto MA Lbl TP 1üJ:1üG:9.4üE:6.2üF Goto MA Lbl CP 1üJ:1üG ClrHome Disp "PIXELS TO MOVE" Input "WELL?!",P 94üE:62üF Goto MA Lbl FW 1üG:1üJ:1üE:1üF Goto MA Lbl HI ClrHome Disp "TI83 ZOOMWORKS","BY ERNIE DODDS":Pause ClrHome Disp "ARROWS:MOVE VIEW","DEL :CoordOn","STAT:CoordOff","+:ZOOM IN(2X)", "-:ZOOM OUT(2X)", "ENTER:BACK" Pause :ClrHome FnOff :ClrDraw Text(0,49,"Ymax" Text(50,49,"Ymin" Text(32,0,"Xmin" Text(32,60,"Xmax" Pxl-On(30,46 Pxl-On(32,46 Pxl-On(30,48 Pxl-On(32,48 Text(0,0,"H:HEIGHT" Text(6,0,"W:WIDTH" Pause :Goto MM Lbl FP Menu("FUNCTIONS...","ON",F1,"OFF",F0,"BACK",MM Lbl F0 FnOff Goto MM Lbl F1 FnOn Goto MM ------------------------------------------------------------- MoveWin: Lbl MA (.5)(Xmax-Xmin)üE (.5)(Ymax-Ymin)üF DispGraph Lbl MP getKeyüK While K=0 Goto MP End If K=24 Then Xmin-EüXmin Xmax-EüXmax Goto MA Else:If K=25 Then Ymin+FüYmin Ymax+FüYmax Goto MA Else:If K=26 Then Xmin+EüXmin Xmax+EüXmax Goto MA Else:If K=34 Then Ymin-FüYmin Ymax-FüYmax Goto MA Else:If K=105 Then Goto MM Else:If K=23 Then Goto EX Else:Goto MP Lbl MM:Menu("MOVE WINDOW","MOVE VIEW",MA,"PX-PER-PX",PX, "NOT ZSTANDARD",NZ,"EXIT",EX Lbl PX ú47üXmin 47üXmax ú31üYmin 31üYmax Goto MA Lbl NZ 10üYmax ú10üYmin 15.16129032üXmax ú15.16129032üXmin Goto MA Lbl EX Stop