-
Content Count
4,690 -
Joined
-
Last visited
-
Days Won
2
Posts posted by Vorticon
-
-
This is NOT hysteria. Please educate yourself for your sake and the sake of those around you. We are only at the tip of the iceberg unfortunately...
-
7
-
-
1 hour ago, mizapf said:I have some problems with the archive files of the Fortran Package (99-9640_FORTRAN_v4.4.zip). My TIImageTool says that 9640COMP and FORTLIB2 are broken (Archive file is clipped). I tried to unpack 9640COMP with ARC3, but it crashes after unpacking F9640 (so there is obviously something wrong with it). I was able to unpack FORTLIB2 with ARC3, maybe there is some issue that is less obvious.
9640LIBR, FORTAPPS, FORTCOMP, FORTLIBR are OK.
Unfortunately, my original disks are all unreadable, and I only have the Geneve version on my hard drive.
Edit: The ML lib is broken after all. This lib is from the FORTLIB2 archive which failed to be unpacked by TIImageTool and was unpacked by ARC3, but obviously not successfully and without error message. I conclude that it is broken because when I try to load it by Link>Library name, I get an I/O error, while CL, GL, and FL load successfully.
I will try to make a copy of the disks sometime this week and post them here.
-
2
-
1
-
-
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
-
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 Drive
Executable to run: LOGISTIC, HENON or LYAPUNOV (E/A Option 3 - Program name is START)-
4
-
-
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.
-
2
-
-
I'm planning to attend the International European Treff in Vienna this October since I'll be visiting my son in Germany around the same time. Hopefully Covid-19 will be a just a bad memory by then. If not, the world is in deep trouble... ☹
-
1
-
-
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
-
-
Some 4.2 billion iterations and we have the first 3 decimals of PI=3.141 using Guillaume's program! It took about 3 days to get this far under Classic99 in Overdrive mode and TI XB.
I'm letting it run for a while longer and see if we can score a 4th decimal
-
5
-
-
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
-
-
20 hours ago, ClausB said:Cool JS emulators for the TI-57, TI-55, and TI-42 MBA:
https://www.pcjs.org/blog/2017/11/05/It never ceases to amaze me to see the ungodly amount of effort some people put into digitally emulating old computing devices with no real practical use anymore and with a very limited and slowly shrinking audience. Kudos.
-
2
-
1
-
-
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
-
-
Here is the RXB versus XB RND function comparison using Guillaume's program for an N of 5000. Again expected values are mean= 4.5 and SD=2.87
RXB:
XB:
Not a huge difference for all practical purposes unless a very large set of random numbers are needed such as in the PI approximation program in which case the XB RND will be superior.
-
1
-
-
38 minutes ago, RXB said:RXB got:
MEAN: 5.923564439
SD: 2.929720887
That seems odd as second run says:
MEAN: 5.965401107
SD: 2.921225948
Try using Guillaume's version with a larger n, perhaps 5000, and see what you get.
-
2
-
-
33 minutes ago, moulinaie said:Hi,
If you change the organization of your DATA, there is no, limitation.
You can use a table, let's say form T(0) to T(9) that count how many times a 0, or a 1 , or ... a 9 has appeared with RND.
This way, you just have to reserve memory for ten numbers.
Then, there is a simplified formula for standard deviation :
SD = SQR ( [sum of squares] / N - [square of mean] )
100 CALL CLEAR 110 DIM T(9) 120 RANDOMIZE 125 INPUT "How many ":N 130 FOR I=1 TO N 140 X=INT(RND*10) 150 T(X)=T(X)+1 160 NEXT I 170 S=0 180 S2=0 190 FOR I=0 TO 9 200 S=S+T(I)*I 210 S2=S2+T(I)*I*I 220 NEXT I 230 S=S/N 240 S2=S2/N 250 SD=SQR(S2-S*S) 260 PRINT "Mean=";S 270 PRINT "S.Dev=";SDI prefer 0 to 9 than 1 to 10, so I skip the "+1" at each random!
The expected values are:
MEAN = 4.5
SD = 2.87
Works both in TI Basic and XB.
Guillaume.
Yes of course! Did not think of it that way. Well done.
-
1
-
-
7 hours ago, senior_falcon said:Could you do this for RXB or TI BASIC? It'd be interesting to see how they compare
Here you go, with the caveat that the array size is limited to 1500 in TI Basic:
10 CALL CLEAR 20 RANDOMIZE 30 OPTION BASE 1 40 DIM N(1500) 50 PRINT "PHASE 1:" 60 FOR I=1 TO 1500 70 N(I)=(RND*10)+1 80 T=T+N(I) 90 NEXT I 100 PRINT "PHASE 2:" 110 MEAN=T/1500 120 FOR I=1 TO 1500 130 T1=T1+(N(I)-MEAN)^2 140 PRINT I 150 NEXT I 160 SD=SQR(T1/1500) 170 PRINT "MEAN:";MEAN:"SD:";SD
Using the same array size in XB gives:
XB is still better, but not my much, although I do expect the gap to widen with a larger number of iterations.
-
1
-
-
-
3 hours ago, moulinaie said:Hi again,
I thought that the PI calculation requires two consecutive random numbers to represent X and Y.
What about the differences between two consecutive terms?
**** UPDATE ****
I forgot in a first idea that the differences are not equivalent in probability.
To get 4095 : only one solution 4095-0.
But to get zero : 0-0, or 1-1, or 2-2 etc...
So I change the rest of the post
***************
Picking numbers from 0 to 4095 leads to:
- differences are from -4095 to + 4095
- the perfect mean is zero
- the standard deviation 1672
- the perfect mean of absolute differences should be 1365
Looking at the result, the generator is correct even when thinking about the independency between two consecutive terms.
Guillaume.
Impressive results!
I went ahead and did a quick and dirty evaluation of the XB RND function generating 3000 numbers from 1-10, the maximum array size I could fit in XB. This is the ideal result:
and this is the actual result:
Really not bad at all for only 3000 data points.
-
1
-
37 minutes ago, BeeryMiller said:After the HRD 4000+ sales have started to dwindle. Don't want to distract him......
Beery
Looks like I missed that: what HRD 4000+ sales?
-
So 1 million iterations in plain XB yielded 3.1434, clearly a very very slow conversion. The MLC version gives about the same answer at 1 million iterations.
OK so now I'm going to do a trial run for 1 billion under Classic99 to see if I can gain another decimal. This will take a while
(just kidding. This will take about 3 years to complete! I need a supercomputer cluster. On the other hand, with overdrive on in Classic 99, I might be able to bring it down to about 3.5 months. That's feasible).
-
3
-
-
Fascinating tidbit. Jim, the range and depth of your collector knowledge is impressive. Perhaps you should consider putting a compendium together with color pictures and all and sell it in bookstores. I'll be the first one in line to purchase it!
-
2
-
-
I let the MLC version run for a while, and it seems that the Pi value is getting stuck around the 1.427 value +/- 0.005 or so after over 119 million iterations. I wonder if this is a limitation of the RND algorithm.
The 1 million iterations trial with the XB version is still running, and I'll be curious what kind of result I will get (should be complete within the next 48hrs).
-
2
-
-
Great... Now the next time a TI Invaders cart is up for sale, the seller will want $100 for it 😁
This auction was clearly a battle between collectors as I have never seen the Gamevision carts.
-
2
-
-
I'm interested.
-
1
-
-
7 minutes ago, moulinaie said:Why this choice? I found a very simple method to generate a random number that only uses integers. One simple 16-bits addition for each call ! Then I remove some of the 16 bits that I think are not so "at random", so I keep 12-bits out of 16.
Then in the PIRAND subroutine, only integers are used. That's why this is so fast.
Have you got the source code of PICALC ?
I would love to see that RND algorithm.
Here's Picalc's XB source:
10 REM PI CALCULATOR 20 REM BY WALID MAALOULI 30 REM AUGUST 2007 40 REM 100 CALL CLEAR 110 OPTION BASE 1 120 DIM SUM(652),SUM1(652),TERM(652),TEMP(652) 130 DISPLAY AT(1,8):"Pi Calculator" :: DISPLAY AT(3,6):"By Walid Maalouli" :: DISPLAY AT(5,9):"August 2007" 140 DISPLAY AT(10,2)BEEP:"# of decimals (mult. of 8)" :: DISPLAY AT(11,2):"(Maximum of 5200 decimals)" :: ACCEPT AT(13,12)VALIDATE(DIGIT):D 150 IF D>5200 THEN 140 160 ITR=INT(D/1.4) :: D=INT(D/8)+2 170 SUM(1)=3 :: SUM(2)=20000000 :: TERM(1)=0 :: TERM(2)=20000000 :: S=0 :: DENOM1=3 :: TBASE=25 :: MULT=16 180 FOR N=1 TO ITR+1 190 IF FLAG=0 THEN DISPLAY AT(20,5):"Term 1 iteration #";N;" " ELSE DISPLAY AT(20,5):"Term 2 iteration #";N;" " 200 IF N=1 THEN 220 210 FOR I=1 TO D :: TERM(I)=TEMP(I) :: NEXT I 220 DENOM=TBASE :: REMAINDER=0 230 GOSUB 1050 240 FOR I=1 TO D :: TEMP(I)=TERM(I) :: NEXT I 250 DENOM=DENOM1 :: REMAINDER=0 260 GOSUB 1050 270 FOR I=1 TO D 280 IF S=0 THEN 300 290 SUM(I)=SUM(I)+MULT*TERM(I) :: GOTO 310 300 SUM(I)=SUM(I)-MULT*TERM(I) 310 NEXT I 320 IF S=0 THEN S=1 ELSE S=0 330 FOR I=D TO 2 STEP-1 340 IF SUM(I)>=100000000 THEN 350 ELSE IF SUM(I)<0 THEN 390 ELSE 420 350 QUOTIENT=INT(SUM(I)/100000000) 360 SUM(I)=SUM(I)-QUOTIENT*100000000 370 SUM(I-1)=SUM(I-1)+QUOTIENT 380 GOTO 420 390 QUOTIENT=INT(SUM(I)/100000000)+1 400 SUM(I)=SUM(I)-(QUOTIENT-1)*100000000 410 SUM(I-1)=SUM(I-1)+QUOTIENT-1 420 NEXT I 430 IF FLAG=2 THEN 680 440 DENOM1=DENOM1+2 450 NEXT N 460 IF FLAG=1 THEN 620 470 TBASE=57121 :: DENOM1=3 :: MULT=4 480 FOR I=1 TO D 490 SUM1(I)=SUM(I) 500 SUM(I)=0 :: TERM(I)=0 510 NEXT I 520 TERM(1)=4 530 DENOM=239 :: REMAINDER=0 540 GOSUB 1050 550 FOR I=1 TO D 560 SUM(I)=TERM(I) :: TERM(I)=0 570 NEXT I 580 DENOM=239 :: TERM(1)=1 :: REMAINDER=0 590 GOSUB 1050 600 FLAG=1 :: S=0 610 GOTO 180 620 PRINT :: PRINT "Finalizing calculations..." :: PRINT 630 FOR I=1 TO D 640 SUM1(I)=SUM1(I)-SUM(I) :: SUM(I)=SUM1(I) 650 NEXT I 660 FLAG=2 670 GOTO 330 680 CALL CLEAR :: DISPLAY AT(2,3)BEEP:"Calculations complete!" 690 DISPLAY AT(5,3):"Send results to:" :: DISPLAY AT(8,5):"1- Screen" :: DISPLAY AT(10,5):"2- Printer (PIO)" :: DISPLAY AT(12,5):"3- File" 700 CALL KEY(0,K,ST) :: IF ST=0 THEN 700 710 IF K<49 OR K>51 THEN 700 720 ON K-48 GOTO 730,860,950 730 CALL CLEAR :: PRINT "Pi=3." 740 FOR I=2 TO D-1 750 SUM$=STR$(SUM(I)) 760 IF LEN(SUM$)=8 THEN 780 770 SUM$="0"&SUM$ :: GOTO 760 780 PRINT SUM$;" "; 790 L=L+1 :: IF L=64 THEN 800 ELSE 830 800 PRINT :: PRINT :: DISPLAY AT(24,1)BEEP:"Press any key to continue" :: L=0 810 CALL KEY(0,K,ST) :: IF ST=0 THEN 810 820 CALL CLEAR 830 NEXT I 840 PRINT :: PRINT :: DISPLAY AT(24,1)BEEP:"End. Press any key to exit" 850 CALL KEY(0,K,ST) :: IF ST=0 THEN 850 ELSE STOP 860 OPEN #1:"PIO" 870 PRINT #1:"Pi=3." 880 FOR I=2 TO D-1 890 SUM$=STR$(SUM(I)) 900 IF LEN(SUM$)=8 THEN 920 910 SUM$="0"&SUM$ :: GOTO 900 920 PRINT #1:SUM$;" "; 930 NEXT I 940 CLOSE #1 :: END 950 DISPLAY AT(22,1)BEEP:"Enter path.filename:" :: ACCEPT AT(24,1):FL$ 960 OPEN #1:FL$,OUTPUT,VARIABLE 80 970 PRINT #1:"Pi=3." 980 FOR I=2 TO D-1 990 SUM$=STR$(SUM(I)) 1000 IF LEN(SUM$)=8 THEN 1020 1010 SUM$="0"&SUM$ :: GOTO 1000 1020 PRINT #1:SUM$;" "; 1030 NEXT I 1040 CLOSE #1 :: END 1050 REM DIVIDE SUBROUTINE 1060 FOR I=1 TO D 1070 DIVIDEND=REMAINDER*100000000+TERM(I) 1080 TERM(I)=INT(DIVIDEND/DENOM) 1090 REMAINDER=DIVIDEND-TERM(I)*DENOM 1100 NEXT I 1110 RETURN
-
1
-







Fortran99 Challenge
in TI-99/4A Development
Posted
Thanks for posting that. I'm going to be trying it out once I go through the manual.
Here are the disk images for Fortran 9640 created from my physical disks.
FORTCOMP.dsk
FORTLIBR1.dsk
FORTLIBR2.dsk