Featured

Blog?

About

This computer, which predated Apple & the TRS-80, was instrumental to the beginning of “personal computers” and resulted in the creation of Microsoft. This in turn resulted in Linus Torvalds wanting something better so he created Linux.

Mr Michael Walton

I was excited to see Mr Walton is still alive and kicking. He was one of my Professors at MDCC, 45+ years ago… now MDC. He was very important to my computer career. He gave me a job working with the DEC PDP minicomputer. My first night shutting down the PDP, I leaned over the keyboard and hit something that threw out some error message. My first night…great! I was tempted to just power it off and leave. But what if my actions caused it to not come back up for the classes the next day? So, nervously, I called him, and he assured me it wasn’t a big deal. I took advanced IBM 370 Assembly and JCL, among other courses with him.

I was writing a program to log students out of the PDP, when he walked in and asked me what I was doing. Again, nervously I told him. I was using a privileged account so you could mess things up if you weren’t careful, like root on Linux. But he didn’t give me a hard time at all.

I reached out to him a few years ago, or someone I thought may be him. And received no response. However, I read “It is estimated that Walton has taught and mentored more than 18,000 students”. So it’s highly possible he doesn’t remember me. No hard feelings. I hope he continues to have a great life.

I typed in my school Fortran Program assignment

From here almost 50 years ago. Made a few modifications so it would work with GFortran. It works!
Here’s the code…

      CNT=1.
      ESUM=2.
      FACT=1.
   10 CNT=CNT+1.
      FACT=FACT*CNT
      ESUM=ESUM+1./FACT
      IF (ESUM .LT. 2.7182)GO TO 10
      ESUM=FLOAT(INT(ESUM*10000.))/10000.
      WRITE(6,11)ESUM
   11 FORMAT('1','e = ',F7.4)
   12 WRITE(*,fmt="(a)", advance="no")'Enter degrees (0 to end) '   
      READ(*,*,END=1000)DEG
      IF(DEG .EQ. 0.)GOTO 1000
   15 FORMAT(F5.2)
      X=DEG/(180./3.141592)
      FACTUP=4.
      SUM=X
      FACT=6.
      PWR=3.
      ICNT=1
   20 XSIN=X**PWR/FACT
      ICHECK=ICNT/2
      IF(ICHECK*2 .EQ. ICNT)GO TO 30
      SUM=SUM-XSIN
   25 GO TO 35
   30 SUM=SUM+XSIN
   35 PWR=PWR+2
      FACT=FACT*FACTUP*(FACTUP+1.)
      ICNT=ICNT+1
      FACTUP=FACTUP+2.
      IF(ICNT .LE. 11) GO TO 20
      SUM=FLOAT(INT(SUM*10000.))/10000.
      WRITE(6,950)DEG,SUM
  950 FORMAT('','THE SINE OF ',F7.2,' DEGREES IS ',F7.4)
      GO TO 12
 1000 WRITE(6,1025)
 1025 FORMAT('','JOB COMPLETED')
      STOP
      END

GFortran program output

bill@bill-MS-7B79:~/MyStuff/Fortran/test$ ./a.out 
1e =  2.7182
Enter degrees (0 to end) 40
THE SINE OF   40.00 DEGREES IS  0.6427
Enter degrees (0 to end) 0
JOB COMPLETED
bill@bill-MS-7B79:~/MyStuff/Fortran/test$ 

Python program output

bill@bill-MS-7B79:~$ python
Python 3.10.12 (main, Jan  8 2026, 06:52:19) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> print(math.sin(math.radians(40)))
0.6427876096865393
>>> exit()
bill@bill-MS-7B79:~$

Porting PRIMFORx to GFortran

Turned out easier than I thought. The hardest part was entering input on the same line as I ask for input. The default using the following commands, the 2 produce the same results, was to print a leading space, then your text followed by a line feed.

WRITE(*,*)'Enter number of primes '
  or...
print *,'Enter number of primes '

Solution…

WRITE(*,fmt="(a)", advance="no")'Number of primes '

PRIMFOR(G or H) to GFortran?

So I made the PRIMCOB1 video and I mentioned that, this type of program… math, would more likely be done in Fortran. So I started thinking maybe I should do the same exercise comparing the TK4-/TK5 PRIMFORx programs to GFortran. So as preliminary steps I copied PRIMFORx to a local Linux directory. I also copied the actual run listings to said directories. I also tested bigger numbers than PRIMCOB1s 32767 limit, including 5 million and they all worked. I anticipate that this conversion will probably be harder because I’m more familiar with COBOL than FORTRAN.

I found it interesting that generating prime numbers to the 5 million limit took less than 3 seconds using these very old compilers running under emulation. No doubt much faster than it would run on the hardware running MVS 3.8J back then.

Stewart Cheifet died

He was 87. Died the same day as Bridgett Bardot. He created and hosted the PBS series Computer Chronicles (1983-2002). He co-hosted the show with Gary Kildall, who created the CP/M operating system.

Ironically I was looking at a retro computing podcast, and they were talking to someone associated with Computer Chronicles. This made me wonder what happened to the host Stewart Cheifet. And that’s when I learned of his very recent death, just 10 days ago.

Also ironic, the Corporation for Public Broadcasting board voted to dissolve the organization, because of federal funding cuts, on January 5, 2026, just a few days ago. They distributed federal funding to PBS, NPR, and hundreds of local public TV and radio stations. So will that affect PBS?

I really enjoyed that show… back in the day. He and Gary made a good team. He was on Twitter, and I followed him, for a time then he stopped posting. I see his last tweet was “Sorry, been out of action for awhile, recovering from Spinal surgery which turns out to have been more complicated than I had anticipated. I am alive!” on 4/2/2023. Yeah, especially when you’re over 80.

I think I’ll go watch a few episodes and remember back to those awesome days, early in my career.

Using Python virtual environments

I’ve said I haven’t programmed in anything for a while. I’ve used Python Virtual Environments, many times in the past. I guess I assumed I’d remember the steps… but I didn’t and I searched here and saw mention of them, but not how to actually use them. So I’m doing that now.

  • python3 -m venv env (to create the virtual environment)
  • cd env
  • source bin/activate
  • pip3 list
  • Do python stuff
  • deactivate