E-mail answers of general interest: Date: From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Hi Timo, I have waited for a cheap link that works with TI-82 for 2.5 years, and now you have done it. Thank you! I have transfered all sorts of data and programs back and forth, and it works fine. Except one thing, I get an error when I try to save a backup. I wonder if I could have your source code. I am a Windows 95 programmer and maybe I could write a user friendly program for the TI-82. [Got it!] Merry Christmas, // Mikael mikael.bonnier@gmail.com http://www.df.lth.se.orbin.se/~mikaelb/ Date: From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Hi Sami, I have tested your WTran8x v2.3. Do you have a new version. I have a TI-82 and I can send and receive using a $4-serial link. I use settings: [wtran8x] par=0 port=0x3E8 speed=200 One problem is that sending many files from the computer to the calculator doesn't work because if I click the send button the listbox becomes disabled and it is not possible to send anything. I think it would be better to select the files and then send them. In order to receive to the computer, I must press the send button! If I click the receive button it always errors. Regards, // Mikael mikael.bonnier@gmail.com http://www.df.lth.se.orbin.se/~mikaelb/ Date: From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Hi, This program (in attachment) draws a circuit on the screen and also contains testing routines for the cable. You need a PC and qbasic or gwbasic in order to run it. You must run it in DOS only, not in a DOS box under Windows. Additional software for the $4 link can be found at http://ticalc.org/. The file should be named "4$link.bas". The easiest way is to build it on a lab-board with a female 2.5 mm connector and then use the cable that came with the calculator. Regards, // Mikael mikael.bonnier@gmail.com http://www.df.lth.se.orbin.se/~mikaelb/ Date: From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Hej, för det första får du läsa i manualen om hur du skriver in olika instruktioner. Vissa inledande rader är inte en del av programmet utan har skapats automatiskt. Här förklaras koderna: ftp://ftp.ti.com/pub/graph-ti/sw-apps/link/dos/freeware.txt Mina program finns på: http://www.df.lth.se.orbin.se/~mikaelb/ticalc-sve.shtml Ett alternativ är att skaffa programmet TI-GRAPH LINK 82 från TI:s webbplats http://www.ti.com/. Detta har du stor nytta av även om du inte använder TI:s link. Vänliga hälsningar, // Mikael mikael.bonnier@gmail.com http://www.df.lth.se.orbin.se/~mikaelb/ Date: From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Hej, ja, \#\ betyder att raden var för lång för textfilen men att du alltså inte skall trycka ENTER innan du matar in nästa rad. Ex. disp A\#\ +B skall skrivas in som disp A+B Med vänlig hälsning // Mikael mikael.bonnier@gmail.com http://www.df.lth.se.orbin.se/~mikaelb/ Date: From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Hi, About the trigonometric functions: they are usually approximated using polynomial functions within an interval between 0 and 360 degrees. To get values for angles outside this range one gets the remainder after division with 360. The coefficents of the polynomials are determined before and stored in the calculator. Now of course there is no guarantee that this method is used by the TI calculators, there are other methods. This stuff is usually studied in courses of numerical analysis (methods or computation). Regards, // Mikael mikael.bonnier@gmail.com http://www.df.lth.se.orbin.se/~mikaelb/ Date: From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Hi, You could use conditional expressions e.g. Y1 = -3(X<200)+10(X>=200) to make a funktion that would jump from -3 to 10 at X=200. Regards, // Mikael mikael.bonnier@gmail.com http://www.df.lth.se.orbin.se/~mikaelb/ Date: From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Hej, Det symboliska matteprogrammet Derive har en prioritering som jag tycker är lämplig. Även miniräknaren TI-82 har en vettig prioritering, förutom upphöjt till: t ex 2^3^4 borde betyda 2^(3^4), men tolkas som (2^3)^4. Med vänlig hälsning // Mikael mikael.bonnier@gmail.com http://www.df.lth.se.orbin.se/~mikaelb/ Messages to the GRAPH-TI mailing list: Date: Sun, 28 Nov 93 19:00:26 +0100 From: Mikael Bonnier Subject: TI-82 bug in Plotn( instruction ? I have discovered a bug in the Plotn( instruction on the TI-82. Example: PROGRAM:PLOTBUG :FnOff :{3,2,1}\->\\L1\ // \L1\ is a list :Plot1(Scatter,\L1\,\L1\,\Dot\) :ZoomStat The problem is that the fourth argument has no effect. No matter what this argument is, the result is always the first mark in the [STAT PLOT] MARK menu. // Mikael Bonnier, Lund, Sweden // mikael.bonnier@gmail.com Date: Tue, 30 Nov 93 23:37:08 +0100 From: Mikael Bonnier Subject: Re: TI-82 bug in Plotn( instruction ? I have been informed by TI-coworker Jeff Crump, that the "fourth- argument-Plotn(" bug exists only in the very early versions of the TI-82, this explains the differing results of my PLOTBUG program. From Tom Lucas message: > I am not able to replicate the *bug* below. ie when I try > it, it seems to work fine. From Rick Butterworth message: > I was fascinated both by your comment and then Tom Lucas' > response. I tried both your programs, and I experienced the > same problems you did. Hmmm, now I am confused.... From Tom Lucas reply to Rick: > My calculator > was in a batch purchased late July 1993, so is fairly early, > making the hypothesis that this might have been a late > hardware bug fix less likely to be true. This is getting > stranger and stranger! Nevertheless TI says so. // Mikael Bonnier, Lund, Sweden // mikael.bonnier@gmail.com P.S. I bought mine in late June '93. Date: Sun, 12 Dec 93 14:45 MET From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Involving TI-82 in robotics I would like to know if it is possible to involve my TI-82 in robot control applications. It has regrettably no built in timer, but it has the enigmatic Get( and Send( instructions. Does the TI-85 have these or similar instructions? Has anyone used these instructions for a useful purpose? I have written a small program to test the Send( instruction: PROGRAM:SENDPORT :1->N :Lbl 1 :Send(L1) // Should send list L1 :Disp N :N+1->N :Goto 1 The only thing that happens is that each time the Send(L1) is executed the voltage drops to -5 V on the middle ring on the connector compared to the inner ring. The tip stays on 0 V. Nomatter how many elements in the list the execution always takes the same time. This fact together with my oscilloscope image indicates that nothing is transmitted. There probably must be some feedback from the receiving device. Note that Get( and Send( are the only instructions that end in a opening parenthesis but takes only one argument. Are there undocumented extra arguments to set baudrate, bps, parity etc. In the manual it says that these instructions can be used to communicate with a compatible device but not to another TI-82. The question is: How do I design a compatible device? To involve my TI-82 in robotic control, I would need both the electrical and logical protocol description of how to use the Send( and Get( instructions. Is there any booklet or textfile from TI now or planned on this issue? In my opinion this would be very helpful for teachers in electronic courses, to motivate their students to buy a TI-82. - Hardwarebuff - // Mikael Bonnier, Lund, Sweden // mikael.bonnier@gmail.com Date: Wed, 19 Jan 94 22:41 CST From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: "anti-edit" technology In an article "Archive Submissions - Good and Bad News" dated 21 Dec, Jeff Crump wrote: > blakjack.85p > A 1-4 player blackjack game. It's a little slow, but it's pretty good. > Designed by SKA software, our "anti-edit" technology is used here. I wonder: 1. How is this "anti-edit" technology implemented? 2. How does it work, is it bullet proof? 3. Is it available on the TI-82? // Mikael Bonnier, Lund, Sweden // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Thu, 20 Jan 94 20:40 CST From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Re: TI81 and TI85 [TI-82] shdwsoftwr@aol.com wrote: > Personally I cannot stand the 81 and 82 menuing system. I > takes over the whole screen. The user then cannot see what is > "behind" the menuing system. > From the quick glance I took at the 82's manual, it would not be > easy to ask a yes or know question from the user and have two menu > choices "Yes" or "No" because you would not be able to have the > question on the screen at the same time as the menus. If I am > wrong please correct me because I have not really used an 81 > or 82 but I also know that I do not want to use an 81 or 82. Since I am a TI-82 owner I would like more programmers to buy this machine instead of the '85, so here is the defence: On the TI-82 you can create this effect as in this example: PROGRAM:YESNO :Lbl N :Menu("QUIT?","NO!",N,"YES!",Y) :Lbl Y :Disp "NO WAY!" ;You can regrettably not remove this :Pause ;and write 'Pause "NO WAY!"' instead. :Goto N This program (TI-82) initially displays: QUIT? ;Inverted. 1:NO! ;'1:' inverted. 2:YES! It is not possible though to mimic the 'multiple menus' like MATH. (If it is please correct me!) I would like to suggest a syntax so that this is possible. PROGRAM:MATH :Menu("MATH",prgmZMATH,"NUM",prgmZNUM,"HYP",prgmZHYP,"PRB",prgmZPRB) PROGRAM:ZPRB :Menu("rand",1,"nPr",2,"nCr",3,"!",4) . . . This means that Menu( is three times overloaded. 1. Menu(string,string,...) ;Displays a single menu. (TI-82) 2. Menu(string,prgmname,...) ;Displays a multiple menu. 3. Menu(string,label,...) ;Displays a singel menu, but does ;not overwrite line 1. There are other instructions in the current TI-82 that are overloaded like this. This scheme could be used in future TI-8x models, but it will require some ROM space. // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Mon, 24 Jan 94 19:45 CST From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Re: Fractals? > I was wondering if anyone out there has developed any > interesting fractal or chaos programs for use on the 85. I > have the stepinwski program (or whatever the name is) entered > and I think it's pretty interesting. If anyone has any other > algorthms (w/ explanations pleeeeeeeeese) I'd be very > interested. > > Adaml10028@aol.com I have written a small Mandelbrot set plotting program. The Mandelbrot set M, is the set of points c, in the complex plane so that z^2+c -> z doesn't go to infinity when iterated (z=0 initially). The program is for the TI-82, but should be easy to convert to the TI-85. If you have a TI-85 you may want to use the built in complex arithmetic, but since the TI-82 doesn't have this I have simplified (U+iV)^2+(X+iY) -> U+iV, and separated the real and imaginary parts. Suggested WINDOW settings (you can use ZOOM and rerun the program afterwards) is: Xmin=-4, Xmax=4, Ymin=-4*62/94, Ymax=4*62/94. With these settings it takes about one hour to run the program. If you have a TI-85 use 95/127 or whatever the aspect-ratio is. PROGRAM:TOCCATA ;Plots a small "turtle" :FnOff :AxesOff :PlotsOff :ClrDraw :DispGraph :For(X,Xmin,Xmax,deltaX) :Vertical X ;Makes TOCCATA interesting to watch :For(Y,Ymin,Ymax,deltaY) :0 -> U :0 -> V :1 -> N :Lbl N ;It is not possible to use For(N,1,100) :U^2-V^2+X -> T ;Use x^2. Temporary variable T necessary :2UV+Y -> V :T -> U :If U^2+V^2>4 ;If |z|>2, z will go to infinity, :Goto X ;then jump out of loop :IS>(N,100) ;Increment, skip next line if N>100 :Goto N :End ;Point (X,Y) belongs to M :Lbl X :Pt-Off(X,Y) ;Points on Line turned off if not in M :End :End I wanted to use a For-loop for the inner loop but since I must jump out of it, it is not possible. This is due to a weakness (I think) in the TI-8x language. You cannot jump over an End instruction, because then the calculator will think that the next encountered End should return it to the last encountered For and not the matching one. Please, fix this TI. // Mikael Bonnier, Lund, Sweden, Europe // mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Tue, 25 Jan 94 20:06 CST From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Re: Inverse on 82 As MAOWENS@ECUVM.CIS.ECU.EDU pointed out there is a DrawInv instruction on the TI-82, but since this problem is a common one I'll give a commented version here: Jamie, you wrote: [ TI-82 version ;My comments in this col. > :2Xmin/3->Ymin [ :62Xmin/94 -> Ymin ;"Homebrew" ZSquare. > :2Xmax/3->Ymax [ :62Xmax/94 -> Ymax > :Xscl->Yscl [ :Xscl -> Yscl > :"X"->Ysub2 [ :"X" -> Y_2 ;"TeX-style" indexing. > :DispGraph [ ;Unnecessary. > :(Xmax-Xmin)/95->I [ ;Unnecessary, use DeltaX. > :Xmin->X [ :Xmin -> U ;TI-82 picky about X & Y > :Lbl 1 [ :Lbl 1 ;in graphing context. > :Pt-on(Ysub1, X) [ :Pt-On(Y_1(U),U) > :X+I->X [ :U+DeltaX -> U > :If X>Xmax [ :If U <= Xmax ;TI-81 doesn't have '<='? > :End [ :Goto 1 > :Goto 1 The aspect ratio of TI-82 is 62/94 and nothing else, although the accessible resolution is 95 by 63 (though it physically is 96 by 64 ;-). This is because the Xmin, Xmax, Ymin, Ymax is defined as the middle of their respective extreme columns and rows. How Xmin & Co is defined on the TI-81, I don't know. Am I right? // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Mon, 31 Jan 94 14:13 CST From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Clever uses of 'seq(' I would like to have examples of smart uses of the 'seq(' function on the TI-82. It should preferably not be easy to do them without using formulas with the seq(expr,var,beg,end,inc) function. It can be programs or functions or any other strange usages. It would be nice if you could include a reference to a table or, any other way of checking the correctness of the examples. You could mail your examples to me and I'll post a summary to this list, if I get any answers that is. // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Wed, 9 Feb 94 17:10 CST From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Summary: 'seq(', clever uses of This is a summary of smart uses of the 'seq(' function on the TI-82. I only received two suggestions, but I also researched old listings and found various uses of sequences for the TI-85 which I have converted. From MAOWENS@ECUVM.CIS.ECU.EDU I received the suggestion to use 'seq(' to generate random data sets: He creates to lists, which is then used with the Reg instructions under the STAT CALC menu. It is also possible to create one list using 'seq(' and a function, and subtract a random list. This simulates measured data. If one wants to create a list of integers between A (lower) and B (upper) including the end points use e.g.: seq(int (B-A+1)rand+A,X,1,99,1) seq(int (6-1+1)rand+1,X,1,99,1) ;Like throwing a dice 99 times. seq(int (3--3+1)rand+-3,X,1,99,1) ;Yields linearly distributed integer ;values between -3 and 3 (inclusive). To get reals in the intervall [A,B) use: seq((B-A)rand+A,X,1,99,1) These were my own variations of MAOWENS generator function. From John Hanna I received the following technique to graph the Taylor polynomials of a function: PROGRAM:TAYLOR :FnOff :ZTrig :For(N,0,8) :DrawF sum seq((-1)^KX^(2K)/(2K)!,K,0,N,1) ;cos X: Change the term to get :End ;any other Taylor expansion. If you also want to see cos X use: DrawF cos X Because otherwise Smart Graph will clear the display. Fourier expansions is also possible: PROGRAM:FOURIER :FnOff :"-(X<=0)+(0Y1 ;No sign function on TI-82. :\pi\^-1seq(fnInt(Y1sin KX,X,-\pi\,\pi\,K,1,6,1)->L1 :For(N,1,6,2) ;Even coeff = 0. :DrawF sum seq(L1(K)sin KX,K,1,N,1) :End Other interesting uses of 'seq(' in these articles on graph-ti: 25 Aug 1993, James D. Lang, "RE: Partial sums". 27 Sep 1993, Mark Janeba, "About Fourier analysis programs". 27 Oct 1993, Tom Ferrio, "Financial Functions on the TI-85". 27 Oct 1993, Daniel Good Watkins, "Re: Financial functions on the TI-85". Lastly my own contribution: A function to calculate the number of each day of the year: "30(M-1)+sum seq(K<=7 xor int .5K=.5K,K,0,M-1,1)+(M>2)((int (Y/4) =Y/4 and int (Y/400)<>Y/400)-2)+D" -> Y0 Example: What is the exact time between February 16, 1960, and July 7, 1960 (a leap year)? Solution: 2->M:16->D:1960->Y:Y0->B:7->M:7->D:Y0-B Answer: 142 days Note the use of 'xor': At first I had a more complex expression, but then I realised that it could be simplified by using boolean algebra. If you have any other interesting uses of the 'seq(' function e-mail them to me. // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Fri, 18 Feb 94 16:18 CST From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Correction to "Summary: 'seq('...." Here is a correction to my earlier article "Summary: 'seq(', Clever uses of". The error was that I had misunderstood the definition of a leap year, the correct definition is: Y is a leap year, if (not 100|Y and 4|Y) or 400|Y, where m|n means m is a proper divisor of n. I have also improved the way the test for a propor divisor is done. Hopefully the following is correct. A function to calculate the number of each day of the year: "30(M-1)+sum seq(K<=7 xor not fPart .5K,K,0,M-1,1)+(M>2)((fPart (Y/100) and not fPart (Y/4) or not fPart (Y/400))-2)+D" -> Y0 Example: What is the exact time between February 16, 2000, and July 7, 2000 (a leap year)? Solution: 2->M:16->D:2000->Y:Y0->B:7->M:7->D:Y0-B Answer: 142 days // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Mon, 7 Feb 94 21:00 CST From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: TI-82 WYSIWYG ambiguity On the TI-82, try this... Press: 6 [MATH] 4 27 [ENTER] (And you get 18.) Press: 6 [MATH] 3 [2nd] [x^2] 27 [ENTER] (And you get 1122.368923) Conclusion: Two expressions can look identical, and yet yield quite different results! Have fun and report similar findings! // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Wed, 9 Feb 94 23:15 CST From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Re: TI-82 WYSIWYG ambiguity As Michael Lloyd and Lee Creighton has observed (I didn't notice it), there is a small visual difference between the expressions: An extra pixel on the 3 in the cube root sign, compared to the cubed sign. But this extra pixel was not in my Owner's Manual page 1-18, so perhaps the early versions of the calculator does not have this extra pixel. I agree to the suggestion from Greg D Foley: to move the 3 closer to the radicand sign on future models. // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Sat, 12 Feb 94 13:37 CST From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Re: TI-82 WYSIWYG ambiguity Here is yet another example of two expressions that look identical but mean different things: First, preparations: {1,2,3,4,5}->L1 {0,0,0,0,0}->L2 QuartReg L1,L2 ;QuartReg on STAT CALC menu [VARS] 5 EQ 5 ^ 1 [ENTER] ;looks like e^1, Ans=0 [2nd] [LN] 1 [ENTER] ;Ans=2.718281828 Thus e^1<>e^1 ! And another one where the expressions look almost similar: 10^10^1.9 [ENTER] ;Ans=1E19 [2nd] [LOG] [2nd] [LOG] 1.9 ;Ans=2.709090245E79 And to increase the confusion even more: L1 defined as above. {\e^\1,\e^\1,\e^\1,\e^\1,\e^\1}->L2 QuartReg L1,L2 e^e^2 ;e from VARS Statistics... EQ menu ;Ans=229.6516641 \e^\\e^\2 ;Ans=1618.177992 Have fun and report similar findings! (Thanks, Gloria Dion, for the square root problem, i.e. sqrt(4)(9)=6, while 2xthrt(4)(9)=18.) // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Wed, 2 Mar 94 21:06 CST From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Problems /w translating .82P to ASCII There seems to be a translation bug in ASCII82P.EXE v1.04 for PC, and in Link82/Mac v1.0.0 export ascii function. The parametric functions should translate to \X1t\, \Y1t\, etc, but instead they tranlate to non 7-bit ASCII characters. Are there newer versions of these programs? I have a suggestion (for TI): The latest versions of all the public domain programs that come with the TI-GRAPH LINK could be stored in the archive graph-ti@math.ohio-state.edu. I have these public domain programs: ASCII81P.EXE v1.01 ASCII82P.EXE v1.04 ASCII85P.EXE v1.02 TRANSLAT.EXE v1.04 UUE20.COM UUD20.COM Also the FREEWARE.TXT with the translation definitions, and all the calculator programs could be put into the archive. // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Tue, 8 Mar 94 21:33 CST From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Programming for the TI-85 (and TI-82) In an article Cory Visi wrote: > Can someone on the TI development team please send me the > TI-85 interface routines to write a program for it. I don't > care what language it is in, I'll take ASM, C, or Pascal, > Basic, etc.I know them all. I am very interested in writing a > PIC, real, string, matrix, list, vectore, and GBD editor for > the IBM PC. I suppose he means the source code of ASCII82/85P.EXE. I am also very interested in these and similar things (communications), but for the TI-82. Please send to address below. Appropos importing pictures to the TI-82/85, here is an idea: It explains how to store pictures to a matrix (the purpose is to create the pictures on a computer and download them into the TI-82, without having to know the .82I file format): It possible to create a matrix with a coded picture and then import that to the calculator and execute a program on the calculator to unpack it. It is a 95 (126 in the TI-85 case) by 2 matrix and the upper half of screen is stored in the first column and the lower half in the second column of the matrix. The most significant bit in the matrix elements corresponds to the upmost pixel in each half. Then you have to write a PC/Mac program to generate the matrix from an onscreen picture (or bitmap file) as a textfile. This matrix in textform is then converted to a .82/85M file using Link82/85, and sent to the calculator. Then run the program below to view the picture and finally you StorePic. Here is the very TI-82ish program (uses menus, sequence function Un and pxl-Test (not required to unpack pictures)): \START82\ \COMMENT=1994 Mikael Bonnier,mikael.bonnier@gmail.com \NAME=MATPIC \FILE=MATPIC.82P Menu("MATPIC","SAVE TO [A]",S,"VIEW [A]",V) Lbl S {95,2}\->\dim [A] "2\Un-1\+pxl-Test(\n\,C)"\->\\Un\ For(C,0,94) pxl-Test(0,C)\->\\UnStart\ 0\->\\nStart\ \Un\(31)\->\[A](C+1,1) pxl-Test(32,C)\->\\UnStart\ 32\->\\nStart\ \Un\(62)\->\[A](C+1,2) End Return Lbl V For(C,0,94) [A](C+1,2)\->\Z For(R,62,32,\(-)\1) If fPart (Z/2) Pxl-On(R,C) iPart (Z/2)\->\Z End [A](C+1,1)\->\Z For(R,31,0,\(-)\1) If fPart (Z/2) Pxl-On(R,C) iPart (Z/2)\->\Z End End \STOP82\ // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Thu, 31 Mar 94 23:21 CDT From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: TI-82 Uploads to Graph-TI Archive I have recently uploaded the following two programs to the Graph-TI Archive. Filename: COMPLEX.82U (7K) (Mar 9, 1994) v1.0 of a practical complex number calculator for the TI-82. Menu-driven. ASCII listings included. Written by Mikael Bonnier. Filename: TOCCATA.82U (3K) (Mar 30, 1994) A Mandelbrot set plotter for the TI-82. Runs in about 1 hour. ZOOMing is possible. Demonstrates 'End' problems. // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Fri, 6 May 94 21:37 CDT From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: SPLINE.82U Hi All, I've written a spline program and uploaded it to the graph-ti archive. This was 14 day ago and it still hasn't showed up, though I received a preliminary email that it had been received for evaluation. In time it will probably appear in the archive, but if any one wants it immediately, I will be glad to send it. Just send me an email. Description: SPLINE.82U You enter points graphically and then the program draws a smooth curve through them, a uniform cubic spline. v1.0 for TI-82. // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Fri, 27 May 94 20:25 CDT From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: SPLINE v1.1, GCDHCF v1.0, BASECONV v1.0, for TI-82 available. SPLINE v1.1 for the TI-82 is now available from the archive. Send an E-mail to graph-ti@math.ohio-state.edu with the contents (no subject): GET SPLINE.82U or ftp to math.ohio-state.edu in directory pub/graph-ti (I believe). I have uploaded two other programs of mine to the archive. They are GCDHCF v1.0 and BASECONV v1.0 for the TI-82. If you want them immediately I will be glad to send them to you. NOTE: I don't have the link so I entered these programs by hand into the PC and then used ASCII82P to convert them. Even though I double checked them there might be typing errors. Due to bugs in ASCII82P v1.04 (parametric functions) and the neccessity to have a space after the argumentless 'Input ' instruction, it was not possible to download SPLINE.82P v1.0 into the calculator. The ASCII was OK though. Descriptions: SPLINE.82U You enter points graphically and then the program draws a smooth curve through them, a uniform cubic spline. v1.1 for TI-82. GCDHCF.82U Computes the Greatest Common Divisor [or Highest Common Factor] of a LIST of integers. Uses Euclid's GCD [HCF] algorithm. v1.0 for TI-82. BASECONV.82U Converts numbers between different bases (radices). v1.0 for TI-82. // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Messages to CALC-TI news group: Date: Thu, 19 May 94 20:14 CDT From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: ASCII82P I have v1.04 of ASCII82P.EXE. If you have a later version, could you please UUEncode it and email it to me? You see the version number when you run the program from the DOS command- line. Mine is BUGGY with respect to the parametric functions. I have asked about this before... Is there really nobody else that is bothered by this problem?? I have asked ti-cares, but they have not cared to answer so far. It is legal to send it since it is FREEWARE, and I don't mind getting a lot of email. I will let you know the result of this request. // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Wed, 1 Jun 94 22:05 CDT From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Idea for a cheap LINK From experiments last year I have found out the following: The calculators seem to transmit data at 15000 bps if you judge from the time it takes to transmit programs from one TI-82 to another. My current guess is that it is a handshaked protocol (similar to a centronics printer port), utilizing the fact that the lines are bidirectional. From the oscilloscope image the bitspeed seems to be 27778 bps. I've an idea that you could use the parallel port on a PC to make a cheap $2 link, connecting the cable tip to pin 1 (Strobe), the middle to pin 14 (AutoFd), inner-ring to pin 18 (Gnd). Now you only have to write a communication program. If you should learn anything concerning this, please let me know. // Mikael Bonnier, Lund, Sweden, Europe // mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Wed, 1 Jun 94 22:09 CDT From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Numerical Talk program I have read messages here (actually graph-ti) about whether or not it is possible to write talk programs on the TI-8x. I have written a program that ought to work, but since I don't have access to two TI-82s I haven't been able to test it. I would like to know if it works, so if you have two TI-82s available, please try it out and E-mail the result to me. Store 0 to variable F on both TI-82s, and then start the program on one machine, and then on the other. You must enter a number to receive the other machine's number. PROGRAM:NUMTALK :Get(F) ;See which machine started the program first. :If not F ;F=0 means this machine is first. :Then :1 -> A ;A is this machine, :2 -> B ;B is the other. :Else :2 -> A :1 -> B :End :1 -> F ;Show the other that this has started. :{0,0} -> L_1 ;L_1 is a list variable. :Repeat L_1(A)<0 ;The expression is tested at the matching End! :Get(L_1(B)) ;Read, and :Disp L_1(B) ;display the number the other user entered last. :Prompt M ;Enter a number >= 0 to send to the other. :M -> L_1(A) :End ;A negative number will quit. :0 -> F This "talk" program only transmits numbers but could be made much more fancy. If anyone has any other communication programs for the TI-82, I would be much interested in receiving them. I also still wonders why the "Get(" and "Send(" instructions ends in parentheses but only takes a single argument according to the manual. And lastly I would like to know the protocol of Send and Get so that I can construct my own hardware. (I've studied digital switching theory and could probably understand the information.) In the past TI-folks (graph-ti conference) has told us the different algorithms that the calculators uses, so why not reveal the protocols. This too has educational applications. // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Fri, 3 Jun 94 23:10 CDT From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Re: Numerical Talk program But NUMTALK does seem to work according to Charlie Reno. "Pause Any", "Pause ", "Input Real", "Input ", "Prompt Real", and "Menu(" all seems to place the calculator in a pause state. So if the other calculator is pausing you can "Get(" a value from it, it seems. It's a limited communications capability but it is not useless, and it was primarily intended for the CBL-system. The "Input " without argument makes it possible to input points on the graph screen. This could be used to make a TELEDRAW program, but that I leave to somebody else to develop. I don't have two calculators so I have not tried any of this and may be very wrong. But maybe I will win a second TI-82 with a LINK in a lottery that TI in Sweden is holding in August. You participate by sending in your TI-8x programs. These will then be published in a booklet that will be freely distributed to teachers and students. James M. Egelhof (jegelhof@panix.com) wrote about my prgmNUMTALK: > Sorry, it doesn't work as you've written it. (I've spent hours > with TI-82s trying to get them to communicate.) The get() > routine only works when you have the other calculator in > pause mode or in the home screen. It is *possible* to write > an interactive game if you put up screens saying "PRESS ENTER > IN 5 SECONDS" all the time, but that was too dirty an > implementation to satisfy me. // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com ///////////////////////////////////////////////////////////////////// Date: Sat, 29 Oct 94 13:43 CST From: mikael.bonnier@gmail.com (Mikael Bonnier) Subject: Calc-TI - Re: Solving equations? I was inspired by Dave Lunsford and Luis Moreno's articles about constructing a polynom that goes through all points in a list, but I use a TI-82. The instructionset in the TI-82 is not as powerful as the one in the TI-85 for this class of problems (or maybe I am missing something). The greatest problem is that there is no simple way to convert a list to a matrix, so the program is somewhat larger and clumsier than the one for the TI-85. I hope someone comes up with a shorter program for the TI-82. In the TI-82 there is the CubicReg function so there is really no need to write this program. Example from Dave Lunsford: > Suppose the graph of a cubic equation, y = ax^3 + bx^2 + cx + d > passes through the points (-1, -9), (1, 1), (2, 3) and (3, 19). > > The four equations would be: > -a + b - c + d = -9 > a + b + c + d = 1 > 8a + 4b + 2c + d = 3 > 27a + 9b + 3c + d = 19 > > Entering the coefficients and constants in the calculator with > simult and pressing F5(solve) gives x1=2, x2=-5, x3=3, and x4=1. Solution with my program: prmgPOLYXY \ENTER\ POINTS [[X,Y]]: [[-1,-9][1,1][2,3][3,19]] \ENTER\ [[12 -5 3 1]] That is: y = 12x^3 - 5x^2 + 3x + 1 The program in the hard-to-read ASCII82P format: \START82\ \COMMENT=Points to Polynom \NAME=POLYXY \FILE=POLYXY.82P Input "POINTS [[X,Y]]:",[A] [A]\->\[B] dim [A]\->\\L1\ \L1\(1)\->\N {N,1}\->\dim [B] seq([B](I,1),I,1,N,1)\->\\L2\ {N,N}\->\dim [B] N\->\dim \L1\ Fill(1,\L1\) For(J,N,1,-1) For(I,1,N) \L1\(I)->[B](I,J) End \L1\\L2\\->\\L1\ End rowSwap([A]\T\,1,2)\T\\->\[A] {N,1}\->\dim [A] ([B]^-1[A])\T\\>Frac\ \STOP82\ >From Luis Moreno original article: > Subject: CalcTI Polynomial Curve > > Here is a short program for the TI85 that gives the coefficients of > an n-1'th degree polynomial passing thru n given points :> > > DOCUMENTATION > Enter a list of points as {(x1,y1) , (x2,y2) , ... ,(xn,yn)} > in this format, at the prompt. It is stored as list A. Program > will output the n coefficients of the n-1'st degree polynomial > passing thru those points, in order from lead coeff. down to > constant term, as list P (which can be scrolled). It also > calculates the Vandermonde matrix corresponding to the n abscissas, > as matrix M. > > PROGRAM > > Input "Enter points {(x,y)}:",A > dimL A \->\ d > {d,d} \->\ dim M > Fill(1,M) > For(I,1,d-1) > li \to\ vc (real A)^I \->\ M(d-I) : End > li \to\ vc (imag A) \->\ P > vc \to\ li (M \transpose\ \inverse\ *P) \->\ P > Pause P Frac > Stop > > Note: the \transpose\ command is the little T under the MATRIX > menu, and the \inverse\ command is the plain "reciprocal" key... > These 85's are great, no? // Mikael Bonnier, Lund, Sweden, Europe // Internet: mikael.bonnier@gmail.com /////////////////////////////////////////////////////////////////////