Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 03:29 27 Nov 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : f77on Pi Pico

Author Message
zeitfest
Guru

Joined: 31/07/2019
Location: Australia
Posts: 482
Posted: 08:58am 11 Feb 2023
Copy link to clipboard 
Print this post

Sad I know but ... f77 interpreter running on Pi Pico...

First Light !!!



   Electride Pi  © S. Oliver 2023

   Electride Pi 0


   (G) Get          (L) List
   (S) Save         (A) Analyse
   (R) Run          (C) Comp (res)

>G
Waiting
OK
>R
Running
     PROGRAM helloworld
     PRINT *, "Hello, world"
     END
\

Hello, world
OK
>



I'll bet Bill, Larry, Elon are really worried now  
 
OA47

Guru

Joined: 11/04/2012
Location: Australia
Posts: 926
Posted: 09:11am 11 Feb 2023
Copy link to clipboard 
Print this post


OA47
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4238
Posted: 11:34am 11 Feb 2023
Copy link to clipboard 
Print this post

Is it a cross-compiler to mmbasic?
Or interpreter ?

Volhout
PicomiteVGA PETSCII ROBOTS
 
Plasmamac

Guru

Joined: 31/01/2019
Location: Germany
Posts: 554
Posted: 12:03pm 11 Feb 2023
Copy link to clipboard 
Print this post

What is F77?
Plasma
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4238
Posted: 12:18pm 11 Feb 2023
Copy link to clipboard 
Print this post

Fortran 77, an ancient programming language.
PicomiteVGA PETSCII ROBOTS
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3802
Posted: 01:35pm 11 Feb 2023
Copy link to clipboard 
Print this post

Brings back memories!

(Anyone for COMMON?)

John
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3150
Posted: 03:23pm 11 Feb 2023
Copy link to clipboard 
Print this post

I don't remember which FORTRAN I was using on IBM mainframes before F77 became available. It may have introduced byte-addressability, which made some kinds of text manipulation more possible, if clunky. It was a long time ago.
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3802
Posted: 03:26pm 11 Feb 2023
Copy link to clipboard 
Print this post

Probably some version (i.e. with extensions) of FORTRAN IV.

John
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4040
Posted: 03:32pm 11 Feb 2023
Copy link to clipboard 
Print this post

I still occasionally get called upon to maintain some FORTRAN 77, there are still a number of mathematical codes that use it - hateful language.

I believe FORTRAN officially became Fortran with the move from the FORTRAN 77 standard to the Fortran 90 standard.

These days I'm not sure it gets much of a look in except on super-computers, though historically its compilers produced the most optimal machine code.

Best wishes,

Tom
Edited 2023-02-12 02:12 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3150
Posted: 03:33pm 11 Feb 2023
Copy link to clipboard 
Print this post

Ah, right. FORTRAN IV. Thanks for the memories. Writing a crosstab program to replace the canned SPSS program (Statistical Package for the Social Sciences), saving so much runtime that my pitiful wage was paid for many times over.
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
zeitfest
Guru

Joined: 31/07/2019
Location: Australia
Posts: 482
Posted: 12:11am 12 Feb 2023
Copy link to clipboard 
Print this post

Yes it is an interpreter,  it does do a pre-pass set up though. It has limitations on complexity and so on. I originally wrote it for pic170 and so on, and ran out of program space and left it at that. Now I have replaced the bits in assembler with vanilla C and it runs on PCs/Windows OK,  so now it is an experiment to run it on the Pi Pico.
The language is certainly ancient and a bit awkward, I suspect it was only the various vendor additions that made it practical. Efficient though. COMMON, well, errh, ...
 
ville56
Regular Member

Joined: 08/06/2022
Location: Austria
Posts: 95
Posted: 07:27pm 12 Feb 2023
Copy link to clipboard 
Print this post

Ahh Fortran, what a flashback!

Fortran IV was my first language i had to learn back in 1973-1975 in the technical highscool. Running that on an UNIVAC mainframe and later on IBM/360. All punched cards. On the UNIVAC machine we had to do our own operating as the whole machine was let to us for some hours each week. Strange experiance back then, being barely able to write programs and then to run the whole machine from booting to shutdown, loading printer paper, clearing card jams, scheduling jobs, clearing errors. At least it made clear to me, computer centers are nothing for me ... just to run one from 1982 to 1997    Never used Fortran after school again.

Gerald
                                                                 
73 de OE1HGA, Gerald
 
zeitfest
Guru

Joined: 31/07/2019
Location: Australia
Posts: 482
Posted: 08:13am 05 Apr 2023
Copy link to clipboard 
Print this post

Ahhh yes... the glory of graphics in 1.3k on a lineprinter...

Complete with errors...
zombie code from last millenium, four decades BC (Before Covid) ..  

Interpreted on a Pi Pico !!


   Electride Pi  © S. Oliver 2023

   Electride Pi 0

   (G) Get          (L) List
   (S) Save         (A) Analyse
   (R) Run          (C) Comp (res)

>G
Waiting

OK
>

>R
Running

     PROGRAM CURVY
C
     INTEGER*4 i, j
     CHARACTER*1 m(64,21)
...
(snipped to prevent more embarrassment)
...
     CALL plott ( m )
     PRINT "finish"
     END
C
     SUBROUTINE plott ( page )
     INTEGER*4 x, y
     FORMAT (64A1,/)
     DO 10 x = 1, 64
     page(x,1) =  '-'
     page(x,11) =  '-'
  10 page(x,21) =  '-'
     DO 30 y = 1, 21
     page(1,y) =  '!'
  30 page(64,y) =  '!'
     DO 40 y = 1, 21
     WRITE (6,0) ( page(x,y), x = 1, 64 )
  40 CONTINUE
     RETURN
     END
\

start
!--------------------------------------------------------------!
!             ****                                             !
!          ***    ***                                          !
!        **          **                                        !
!      **              **                                      !
!     *                  *                                     !
!    *                    **                                   !
!  **                       *                                  !
! *                          *                                 !
!*                            *                                !
!--------------------------------------------------------------!
!                               **                            *!
!                                 *                         ** !
!                                  *                       *   !
!                                   *                     *    !
!                                    **                 **     !
!                                      *               *       !
!                                       **           **        !
!                                         ****    ***          !
!                                             ****             !
!--------------------------------------------------------------!
finish

OK


(sigh...)    
Edited 2023-04-05 18:14 by zeitfest
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3150
Posted: 12:26pm 05 Apr 2023
Copy link to clipboard 
Print this post

Nice. In 1974-5 I used a line printer (driven with fortran code) to print out the digitized street map of Austin, Texas as part of a project for automating the routing of school buses. I don't remember how many sheets wide or deep it was, but it would have taken a good-sized room to lay out the whole thing (which was never done).

If one line crossed another without the character indicating an intersection, you would know that a node (intersection) had been mis-digitized.
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
okwatts
Regular Member

Joined: 27/09/2022
Location: Canada
Posts: 59
Posted: 06:03pm 05 Apr 2023
Copy link to clipboard 
Print this post

Hi
Very interesting, as has been said already (and dating myself), this was the first language that i used in university. There are many codes still used for scientific purposes. I have used this for EGS4 (Electron,Gamma Shower) coding in the past and did my MSc work on a DG Nova and Eclipse mini back in the day. Would be interesting to compare the speed on the pico to those old minicomputers of the 70's.
I for one would be interested in further development and any links to your work.
Thanks again.

PS Still have a (electronic) copy of Numerical Recipes in Fortran77.
Edited 2023-04-06 04:14 by okwatts
 
zeitfest
Guru

Joined: 31/07/2019
Location: Australia
Posts: 482
Posted: 02:35am 08 Apr 2023
Copy link to clipboard 
Print this post

I do remember looking at Numerical Recipes ! Quite a heavyweight set of programs. Micro's were a bit under-resourced to run them at the time.
 
A venerable VAX 11/750 - which was a smallish mini at the time - ran at a blistering 0.35 MIPS I think.
 
zeitfest
Guru

Joined: 31/07/2019
Location: Australia
Posts: 482
Posted: 12:21pm 08 Dec 2023
Copy link to clipboard 
Print this post

It's alive !!!

As an accessory I put in an EVAL capability.
I don't think EVAL is a standard part of f77 but...
project 43a required it...  
I am really quite surprised it works.    

The contents of a character array are treated as a line of code and processed.
Maybe EXEC would be a better keyword.

Hmm a DIY calculator...no-one's ever done that of course..  

>R
Running

     PROGRAM readstr

     CHARACTER*20 eqn
     INTEGER*4 b

     b = 4
     PRINT "Enter equation.. "
     READ eqn
     EVAL eqn
     PRINT *, "b is now ", b

     END
\

Enter equation..
b = b + 3 * 5
b is now 19

OK

>
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024