+dhe Posted March 21, 2020 Share Posted March 21, 2020 Any users out there? I downloaded the disks from atariage. I tried setting them up both as a fiad and as a disk with classic99. That didn't make a difference. I have a simple program that writes (or should 'hello world' and waits for a return to be entered). Compiles with zero error. Link - no errors - create a program sample_x and sample_y. When I try to run sample_x - it loads, but then runs the linker from fortran99 - so I believe somewhere the linker isn't working as it should. Looking at the object file I see some of the strings from my source code. dano 2 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 21, 2020 Share Posted March 21, 2020 I nearly failed Fortran in high school, and have since developed an aversion to it. That said, I should probably give it another chance. I do have the TI Fortran package, so if you post your source code I can try it out and see if I can duplicate your issue. Alternatively, try downloading the linker disk again. Sometimes the process corrupts the disks.... 1 Quote Link to comment Share on other sites More sharing options...
+dhe Posted March 21, 2020 Author Share Posted March 21, 2020 C234567 20 FORMAT (F15.5) 30 FORMAT ('NUMBER') WRITE (6,30) CENT = 0.0 READ (5,20) CENT 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted March 22, 2020 Share Posted March 22, 2020 I think, but plz don't take this wrong, there is a forth interest close by.. That's fun Quote Link to comment Share on other sites More sharing options...
+mizapf Posted March 22, 2020 Share Posted March 22, 2020 Decades ago I wrote some programs in FORTRAN 9640 to create graphs that actually went into my Math diploma thesis (back in 1994). However, I never did anything with Fortran on the TI-99/4A, so I'm afraid I cannot really help you here. 1 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted March 22, 2020 Share Posted March 22, 2020 (edited) I never tried Fortran, but im sure it's another great one that needs investigating, can't wait to follow you here, on another note though, just fyi I love forth, and there is super great help here for that, and hats off to those supporters. I just can't say enough about them. They helped me get started and will always love forth. Edited March 22, 2020 by GDMike 1 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted March 22, 2020 Share Posted March 22, 2020 I cut my programming teeth on Fortran 2B back in 1963 on an IBM 1620 mainframe. I have always intended to check out Fortran 99, but have not as yet gotten around to it. ...lee 2 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted March 22, 2020 Share Posted March 22, 2020 I still have a couple printouts in a file around here from an IBM 1480 system line printer. Lost the card decks however. OMG It's hard to believe we did that. 2 1 Quote Link to comment Share on other sites More sharing options...
+mizapf Posted March 22, 2020 Share Posted March 22, 2020 Just to give you an idea what FORTRAN (9640) can be used for, this is one of the programs that I wrote back in 1994. It used hires graphics to display the graph, and it makes heavy use of complex number calculations. This was part of my diploma thesis. What you see is a triangle function, a special solution of the hypergeometric differential equation. The upper half complex plane (all numbers (a,b) with b>=0) is shown here in its original form, and when mapped by the triangle function. The result is some interesting distortion of the half-plane in the shape of a triangle. Here, it is a parabolic triangle with angle sum 180° (like plane triangles), but it has two vertices with 90° angle and one with 0°. The vertex in the upper left quadrant is the map of the origin point 0=(0,0), the vertex in the lower left quadrant is the map of 1=(1,0), and the vertex on the right is the map of infinity (which is, of course, only approximated). The mapped x (real) axis is purple, the mapped y (imaginary) axis is cyan. (This is as much as I can still say about that part of science that I dug into back in those days. I actually don't quite understand my own thesis in many parts when I read it nowadays...) The attached disk image contains the source code shown below, and the binary file to be run on a Geneve. C Darstellung komplexer Funktionen DOUBLE PRECISION XM,YM,DELTA,I,J,K,HOLE,HOLE1 COMPLEX*16 X,Y,F,G,CDLOG1 INTEGER FARBE,XV,YV,XP,YP INTEGER XKOORD,YKOORD,II,JI,TASTE,STATS,JJ C C Zu untersuchende Funktion C F(X)=CDLOG1(CDSQRT(X)+CDSQRT(X-1)) G(X)= (8D0*X-DCMPLX(15.70796327D0,6.283185312D0)) & /(X-DCMPLX(-1.832595715D0,0.785398163D0)) C XM=10D0 YM=7.5D0 DELTA=1 CALL SETMOD(8) CALL SETPAL(4,0,0,0) CALL SETPAL(12,0,0,3) WRITE(6,*) ' Darstellung eines parabolischen Dreiecks' J=0D0 FARBE=6 I=XM * Zeichnen der x-Achse und der Waagrechten 1 IF (J.GT.YM) GOTO 3 X=DCMPLX(I,J) YP=YKOORD(X,YM) CALL SETVEC(0,YP,511,YP,FARBE) J=J+DELTA FARBE=12 GOTO 1 * Zeichnen der y-Achse und der Senkrechten 3 FARBE=8 I=0D0 J=YM 4 IF (I.GT.XM) GOTO 6 DO 5 K=-1D0,1D0,2D0 X=DCMPLX(I*K,J) XP=XKOORD(X,XM) 5 CALL SETVEC(XP,0,XP,105,FARBE) I=I+DELTA FARBE=12 GOTO 4 * Bilder der Waagrechten 6 FARBE=13 J=0D0 DO 7 JJ=0,10 XV=-1 I=-(2D0**128) DO 8 II=0,511 CALL KEY(0,TASTE,STATS) IF (TASTE.EQ.32) GOTO 14 CALL HOLE(I) X=DCMPLX(I,J) Y=G(F(X)) YP=YKOORD(Y,YM) XP=XKOORD(Y,XM) IF ((XP.NE.-1).AND.(YP.NE.-1).AND.(XV.NE.-1).AND.(YV.NE.-1)) A CALL SETVEC(XV,YV,XP,YP,FARBE) XV=XP YV=YP 8 CONTINUE FARBE=11 CALL HOLE1(J) 7 CONTINUE * Bilder der Senkrechten 10 FARBE=7 I=0D0 DO 11 II=0,10 DO 13 K=-1D0,1D0,2D0 YV=-1 IF ((K.EQ.1D0).AND.(I.EQ.0D0)) GOTO 13 J=-0.01D0 DO 12 JJ=0,256 CALL KEY(0,TASTE,STATS) IF (TASTE.EQ.32) GOTO 14 CALL HOLE(J) X=DCMPLX(I*K,J) Y=G(F(X)) YP=YKOORD(Y,YM) XP=XKOORD(Y,XM) IF ((XP.NE.-1).AND.(YP.NE.-1).AND.(XV.NE.-1).AND.(YV.NE.-1)) & CALL SETVEC(XV,YV,XP,YP,FARBE) XV=XP YV=YP 12 CONTINUE 13 CONTINUE FARBE=10 CALL HOLE1(I) 11 CONTINUE 14 CALL WAIT CALL SETPAL(4,1,7,1) CALL SET80 END C C Unterprogramme C INTEGER FUNCTION XKOORD(X,XM) COMPLEX*16 X DOUBLE PRECISION XM,XK,DREAL XK=(DREAL(X)/XM+1D0)*256D0 IF ((XK.GE.0D0).AND.(XK.LT.512D0)) THEN XKOORD=INT(XK) ELSE XKOORD=-1 END IF END C INTEGER FUNCTION YKOORD(X,YM) COMPLEX*16 X DOUBLE PRECISION YM,YK,DIMAG YK=(1D0-DIMAG(X)/YM)*106D0 IF ((YK.GE.0D0).AND.(YK.LT.212D0)) THEN YKOORD=INT(YK) ELSE YKOORD=-1 END IF END C COMPLEX*16 FUNCTION CDLOG1(X) COMPLEX*16 X,Y Y=CDLOG(X) IF ((DIMAG(X).EQ.0D0).AND.(DREAL(X).LT.0D0)) Y=Y+(0D0,6.28318530718D0) CDLOG1=Y END C DOUBLE PRECISION FUNCTION HOLE(B) DOUBLE PRECISION B IF (B.LT.-0.5D0) B=B/2 IF (B.GE.1.5D0) B=B*2 IF (B.GT.-0.5D0.AND.B.LT.1.5D0) B=B+0.01 END C DOUBLE PRECISION FUNCTION HOLE1(B) DOUBLE PRECISION B IF (B.GT.0) B=B*2.718281828D0 IF (B.EQ.0) B=0.02D0 END fortran.dsk 7 3 Quote Link to comment Share on other sites More sharing options...
+9640News Posted March 23, 2020 Share Posted March 23, 2020 Nice program. I downloaded it and ran it. I guess it took at least an hour to generate the image you have above. Beery 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 23, 2020 Share Posted March 23, 2020 Both my nephews are PhD candidates in aerospace engineering specializing in fluid dynamics at the University of Minnesota, and all their computational work for modeling is done in Fortran. It apparently is still the preferred language in this field! Who knew... 1 Quote Link to comment Share on other sites More sharing options...
+mizapf Posted March 23, 2020 Share Posted March 23, 2020 For me, the complex number support was the main reason for using it. Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 23, 2020 Share Posted March 23, 2020 I dug up my Fortran 9640 package and gave it a quick cursory look. Yeah, it will take a little time to go through it. What Fortran version is this based on? This may not be a bad environment for my mathematical explorations on the TI after all... I also found a manual errata document which I scanned. Unfortunately, my printer's tray feed only scans single sided, so there are 2 PDF scans attached: one for the front pages and the second for the back pages, the latter starting at the last page. They will need to be printed out and assembled manually unless someone knows how to merge them digitally. Perhaps they might have an answer as to dhe's issues. Fortran 9640 Errata front pages.pdf Fortran 9640 Errata back pages.pdf Edit: the errata pdf is actually already included in the zip file in the Development Resources pinned thread, so you can ignore this post. 5 Quote Link to comment Share on other sites More sharing options...
+dhe Posted March 23, 2020 Author Share Posted March 23, 2020 Thanks Vorticon. Quote Link to comment Share on other sites More sharing options...
+mizapf Posted March 24, 2020 Share Posted March 24, 2020 Another well-known graph, the bifurcation. I added a script for GeneveOS for building and linking. ******* BIFURC_F C C Bifurcation (Period doubling) C C Dec 8 1990 C DOUBLE PRECISION X,R,DR INTEGER COL,ROW C ROW(X)=IDINT(212D0*(1D0-X/2D0)) C CALL CLEAR WRITE (*,*) ' Period doubling' CALL SETPOS(12,3) WRITE (*,*) 'Along the x axis, the value for r ranges from 1.9 to 3.0 ' WRITE (*,*) ' and is set in the logistic map' WRITE (*,*) ' The behavior of the iteration can be seen in each column.' CALL WAIT C CALL SETMOD(7) CALL SCREEN(1) CALL SETBRD(1) C R=1.9D0 DR=1D0/511D0*1.1D0 DO 3 I=0,511 X=0.1D0 DO 2 J=1,200 2 X=(1D0+R-R*X)*X DO 1 J=1,100 X=(1D0+R-R*X)*X K=ROW(X) CALL SETPIX(I,K,2) 1 LROW=K 3 R=R+DR CALL WAIT CALL SET80 END ********* Makefile ECHO OFF CD \FORTRAN F9640 /OPROG\%1_O SOURCE\%1_F ECHO ECHO Ready for linking? ECHO PAUSE FLINK /OPROG\%1_O /IGL,CL,ML,FL PROG\%1 DEL PROG\%1_O 5 Quote Link to comment Share on other sites More sharing options...
+dhe Posted March 24, 2020 Author Share Posted March 24, 2020 Vorticon, One of the items I noted reading through the errata, was the support for predit. That by far was my fav editor. I tried multiple times to contact Thomas Bentley to see if I could get the source code. (no luck on even the contact). Do you know where I could find the program and manual? It's a real let down, that FORTRAN has such stringent column requirements, yet the editor doesn't show what column your end! ? If anyone has contact information for Al Beard, I'd be happy to reach out to him, and see if he still has source and would be willing to share. Dano Quote Link to comment Share on other sites More sharing options...
+9640News Posted March 24, 2020 Share Posted March 24, 2020 I actually just sent a text message and an email to Al on the last contact information I had for him. If I hear back from him, I will post. Beery Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 24, 2020 Share Posted March 24, 2020 47 minutes ago, dhe said: Vorticon, One of the items I noted reading through the errata, was the support for predit. That by far was my fav editor. I tried multiple times to contact Thomas Bentley to see if I could get the source code. (no luck on even the contact). Do you know where I could find the program and manual? It's a real let down, that FORTRAN has such stringent column requirements, yet the editor doesn't show what column your end! ? If anyone has contact information for Al Beard, I'd be happy to reach out to him, and see if he still has source and would be willing to share. Dano Preditor is pretty much the only programming text editor I use on the TI. As I am reading through the Fortran 9640 manual, it's quite evident that the 99/4A version of the included editor is very primitive. And quite frankly, Fortran as a whole seemed pretty archaic in syntax, like the need to use a Format command in addition to a Write command to get anything on screen. And don't get me started with the DO loop structure: what a nightmare... Attached is a cartridge image for the 80-column version which works with Classic99 as well as a scan of the manual. PREDIT80-8.bin preditor.pdf 2 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 24, 2020 Share Posted March 24, 2020 2 hours ago, mizapf said: Another well-known graph, the bifurcation. I added a script for GeneveOS for building and linking. ******* BIFURC_F C C Bifurcation (Period doubling) C C Dec 8 1990 C DOUBLE PRECISION X,R,DR INTEGER COL,ROW C ROW(X)=IDINT(212D0*(1D0-X/2D0)) C CALL CLEAR WRITE (*,*) ' Period doubling' CALL SETPOS(12,3) WRITE (*,*) 'Along the x axis, the value for r ranges from 1.9 to 3.0 ' WRITE (*,*) ' and is set in the logistic map' WRITE (*,*) ' The behavior of the iteration can be seen in each column.' CALL WAIT C CALL SETMOD(7) CALL SCREEN(1) CALL SETBRD(1) C R=1.9D0 DR=1D0/511D0*1.1D0 DO 3 I=0,511 X=0.1D0 DO 2 J=1,200 2 X=(1D0+R-R*X)*X DO 1 J=1,100 X=(1D0+R-R*X)*X K=ROW(X) CALL SETPIX(I,K,2) 1 LROW=K 3 R=R+DR CALL WAIT CALL SET80 END ********* Makefile ECHO OFF CD \FORTRAN F9640 /OPROG\%1_O SOURCE\%1_F ECHO ECHO Ready for linking? ECHO PAUSE FLINK /OPROG\%1_O /IGL,CL,ML,FL PROG\%1 DEL PROG\%1_O I wrote a chaos exploration program in assembly in 2010, which includes the logistic equation above (from the tigameshelf.net in Edutainment). Chaos Musings By Walid Maalouli In my constant strive to stress my TI 99/4A computer to the limit, I decided to explore the realms of Chaos. And no, this is not Warhammer, but a mathematical exploration of chaos visualization. This is a collection of 3 separate programs that create graphical representations of various chaotic equations, which also happen to be fractal. Be forewarned that it can take hours or even days of computations to come up with an image depending on the zoom level requested. The first program looks at the logistic equation, the second investigates the Henon equation, and the last explores Lyapunov space. Not for the faint of heart, but interesting nonetheless if you are into that sort of thing.Requirements: Editor/Assembler cartridge, 32K RAM, Disk DriveExecutable to run: LOGISTIC, HENON or LYAPUNOV (E/A Option 3 - Program name is START) Chaos.dsk Chaos.pdf 4 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted March 24, 2020 Share Posted March 24, 2020 1 hour ago, Vorticon said: And quite frankly, Fortran as a whole seemed pretty archaic in syntax, like the need to use a Format command in addition to a Write command to get anything on screen. Consider it from my perspective. The free format of later computer languages took a little getting used to for me. My need for structure ate it up! The picture format in PL/1 (lifted from Cobol) made sense, but by then, I was thoroughly into Fortran. 1 hour ago, Vorticon said: And don't get me started with the DO loop structure: what a nightmare... Again, to me it was straightforward and logical—probably because it was my first computer language. It is obvious where the loop ends. With later languages, using the same instruction for the end of a loop did not tell you immediately (visually, certainly) which loop-end was attached to which loop-start, which got me into trouble every now and then. ...lee 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted March 24, 2020 Share Posted March 24, 2020 Considering that it was one of the first (the first?) compiler, made in 1957, it should look archaic today or we are not making progress. Some would argue that after this much time we should be programming in something other than text but attempts to do that seem to have never had success. It would be interesting to see TI-99 FORTRAN compiler's emitted code and GCC compiler's emitted code for some simple test programs. 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 24, 2020 Share Posted March 24, 2020 2 hours ago, Lee Stewart said: Consider it from my perspective. The free format of later computer languages took a little getting used to for me. My need for structure ate it up! The picture format in PL/1 (lifted from Cobol) made sense, but by then, I was thoroughly into Fortran. Again, to me it was straightforward and logical—probably because it was my first computer language. It is obvious where the loop ends. With later languages, using the same instruction for the end of a loop did not tell you immediately (visually, certainly) which loop-end was attached to which loop-start, which got me into trouble every now and then. ...lee It must have been quite a ride to experience computing from the early pioneering days all the way to the present age! When I took the Fortran course in high school circa 1982, I already was programming my TI in Basic which was my first exposure to computer programming. Compared to the looseness of Basic, Fortran seemed like being in jail! To make matters worse, the manual we were using, which I still have, was from 1978 and expected us to use punched cards for program entry... Kill me now... I passed that course by the skin of my teeth... Incidentally, it looks like Fortran 9640 seems to be based mostly on the 1977 standard, with some earlier elements retained as well. I am determined to get familiar again with Fortran however as I am intrigued by its mathematical capabilities Quote Link to comment Share on other sites More sharing options...
+dhe Posted March 24, 2020 Author Share Posted March 24, 2020 One improvement, I don't think anyone will debate is editors with color syntax highlighting! ? 2 1 Quote Link to comment Share on other sites More sharing options...
+9640News Posted March 26, 2020 Share Posted March 26, 2020 I managed to exchange a couple of emails with Alan Beard, author of the Fortran package. I edited out some personal comments between he and I, but the bulk of his comments are below. From: alan beard Date: March 25, 2020 at 7:30:58 PM EDT To: Beery Miller Subject: Re: LGMA and the Geneve Hi Berry -- Good to hear from you. I live in Massachusetts these days with a second home in Myrtle Beach. I am hunkered down in Myrtle Beach at the moment waiting for the virus to abate. I do still have the source code for the TIC compiler and the FORTRAN compiler. I have lost the source code for the assembler (TASM) and loader unfortunately. Bad CDROMs in early days of CDs. The TIC compiler had versions for Windows, Amiga, Geneve. The TIC compiler is written in C so it compiles itself. The Geneve version was interesting because it used only two pages of memory, the first base page and then it would map in the 2nd page dynamically as new routines were called in the compiler, to try and maximize the amount of memory available to build internal data as the programs were compiled. It had a heavy optimizer and was based on some publics domain C compiler at the time. Interesting that Paul Charlton I think was working with the same source baseline as he sent me his peephole optimizer. I didn't use it. I did the original programming on my Amiga, which I liked that machine a lot. It was very buggy, but the design and implementation was "done right". Shame when they went out of business. The FORTRAN compiler is a beast. It was based upon a very old Xerox computer system FORTRAN. The basic compiler was coded in a pseudo machine that had some very interesting instructions and a 64 word stack. So for the 1st pass parsing it loads the virtual code into GRAM, and there is a parser that reads each pseudo instruction and executes it. This type of programming is becoming more common today with Java and Microsoft's managed code (CLI). I did do some enhancements to the original implementation. It also had a peephole optimizer. The fact that the TI-99 was a 16 bit machine helped a lot in getting it to run. Elmer Clausen from New York (Buffalo I think from memory) wrote all of the math functions in FORTRAN and gave them to me. They were great, he was a real mathematician. I have all the source codes for those as well (like SIN, COS, TAN, SQRT, etc.). The source code is back in Massachusetts and I will have to wait until I go back to share it. If others that are starting in programming find it useful, then would encourage that. I haven't thought about the TI-99 for quite a while. With all the operating systems and horsepower today of computers, phones, and pads, the TI-99 looks quite clunky by comparison. I think you called my ex-wife a few weeks ago, I had a text from her but I hadn't had time to get back to you with all the virus things going on. I am divorced as well, but I am raising two children which take a lot of my time. These days with the virus I am spending a lot of time on lesson plans and home schooling All the best. Al On Wednesday, March 25, 2020, 06:00:26 PM EDT, Beery Miller wrote: I am doing well. Been playing more and more with the Geneve. Unlikely you have heard, but someone developed a card that interfaces the TI-99/4A and Geneve 9640 to a Raspberry PI. With access to the PI, it allows a 4A and a Geneve under GPL/Rompage mode to use the PI as file storage. It also adds the ability to use the PI as a TCP socket to interface to the internet. Your name came up a few days ago on AtariAge. Some folks were asking about FORTRAN source code, and myself, I was wondering if you still had any FORTRAN manuals. If not, perhaps the original document? If you did, I wanted to know if you would be receptive to sharing the source for historical purposes. We had a couple of people post a couple of programs this past week that run on the Geneve that they used for their thesis back in the 90’s. Anyways, there is a bit of revised interest and I have not been able to find my original software anywhere. I’ve been through two moves and a divorce, and not sure where it ended up after all these years. Anyways, would be interested to hear from you and your thoughts. No problems either way as I know you put a lot of time into the project. Beery Miller 11 Quote Link to comment Share on other sites More sharing options...
BillG Posted March 28, 2020 Share Posted March 28, 2020 On 3/24/2020 at 1:59 PM, TheBF said: Considering that it was one of the first (the first?) compiler, made in 1957, it should look archaic today or we are not making progress. Some would argue that after this much time we should be programming in something other than text but attempts to do that seem to have never had success. Several graphical programming environments I know about are: * LabVIEW - very resource intensive * Lego Mindstorms (robotics) * Scratch Scratch https://scratch.mit.edu/about runs in your browser. It resembles Mindstorms since both came out of MIT. I would not want to use Scratch much for real programming. It does have potential to teach kids and beginners about programming. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.