Return to main pageAdded August 22, 2023, scans from Robert Garner Jack Bresenham's Line Drawing Algorithm
This is a collection of e-mails concerning software in an IBM 1401 that could drive a Calcomp plotter.
Table of Contents
- from Brenda Make, to IBM, Nov 25, 2022, at 11:01 PM
- from Robert Garner, to Brenda, 11/26/2022 10:11 PM
- from Brenda Make, to Robert, Nov 27, 2022, at 12:14 PM
- from Robert Garner, to Brenda, Nov 27, 2022, at 7:59 PM
- from Brenda Make, to Robert, Nov 28, 2022, at 8:56 AM
- from Robert Garner, to Brenda, Nov 28, 2022, at 9:32 AM
- from Ken Shirriff, to Brenda, Nov 28, 2022, at 12:02 PM
- from Brenda Make, to many, Nov 28, 2022, at 3:41 PM
- from Jack Besenham, Robert, Nov 28, 2022, at 1:45 PM
- from Robert Garner, to Brenda, Nov 28, 2022, at 5:26 PM
- from Brenda Make, to many, Nov 28, 2022, at 8:29 PM
- from Robert Garner, to Brenda, Nov 28, 2022, at 10:08 PMNot included are some e-mails
- looking for a CalComp plotter ("rare as hen's teeth")
- a document (11 megabyte) history of IBM from Bill WorthingtonAdded documents not linked below
- 1964-IBM-Technical-report-Circle-algorithm-original-TR.docx
- 1964-IBM-Technical-report-Circle-algorithm-original-TR.pages (duplicate of above)
- ACM-Circle-Drawing-Algorithm-paper-from-Internet--b-laiddca-77.pdf
- Bresenham-woman-figure
- Bresenham-ListingA 01, 02, 03, 04
- Bresenham ACM. Aug 27-30, 1963 01, 02, 03, 04, 05, 06, 07,
- Bresenham Publications
- Stanford Centennial and Landsdown Computer Bulletin Interviews
- Moscow State University -Bresenham visit -1983 article -Moscow -USSR
- 11 April 2022 ABQ Journal Outlook Bresenham Distinguished Contributor award 66 person cohort March 2022
from Brenda Make, to IBM, Nov 25, 2022, at 11:01 PM
... Recently, it has came to my attention that IBM's own, Dr. Jack Bresenham used a IBM 1401, a 1407 typewriter inquiry console (which the museum lacks, and no one seems to have seen) and a Calcomp plotter, and when he created his line famous algorithm, which is still in use today.**
Though, I am not an official liaison of the museum and perhaps I have forgotten my place, yet I do wonder if IBM has any particulars about the backstory of how Bresenham's line algorithm was created? Was it indeed done on a 1401? Are there any photos of the first plots, or the equipment?
...
And if a punch-card copy of Bresenham's algorithm exists, like art, it should hang proudly on a wall.
...
Sincerely,
Brenda Ellen Make**Ref: https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm
- from Robert Garner, to Brenda, 11/26/2022 10:11 PM
To whom did you address it at IBM? If you like to send again, the IBM Archivist is
Jamie Martin < jamielm@us.ibm.com >
and another of our long time and expert contacts in the archives there is
Max Campbell < Archive1@us.ibm.com >.- from Brenda Make, to Robert, Nov Nov 27, 2022, at 12:14 PM
Hi, I just tried it from the only form I could find.
I resent it. The first email address you had went through, the other: Archive1@us.ibm.com bounced. The second attempt returned and out-of-office.
At least one went through. : )Thank you for your understanding,
Brenda- from Robert Garner, to Brenda, Nov 27, 2022, at 7:59 PM
- from Brenda Make, to Robert, Nov 28, 2022, at 8:56 AM
Hi, I found a copy of Bresenham's original paper (but not the original source code,) following the breadcrumbs....
There's a page dedicated to the line drawing algorithm.
https://www.markwrobel.dk/post/amiga-machine-code-letter12-linedraw/Which has an interview with Bresenham :
https://www.youtube.com/watch?v=fR6npND-0rwWhich was likely the likely the front source connecting it to the 1401, the National Institute of Standards and Technology, and mentions that
https://xlinux.nist.gov/dads/HTML/bresenham.htmlIt also leads me here, to a PDF that's pay-walled, that might contain details :
https://ieeexplore.ieee.org/document/5388473Which leads me around it to find Bresenham's original paper but not the code, but it does mention 1401!
https://www.cse.iitb.ac.in/~paragc/files/bresenham_line.pdf"The algorithm can be programmed without the use of multi- plication or division. It was found that 333 core locations were sufficient for an IBM 1401 program (used to control an IBM 1627). The average computation time between successive incrementations was approximately 1.5 milliseconds."
Which seems to change the branding of the Calcomp plotter to the identical one with the IBM logo, which perhaps was just done to keep it all IBM, back then, but apparently IBM also sold the plotters with their name, the IBM 1627
https://en.wikipedia.org/wiki/IBM_1627Which also leads us back to the NIST page, which states "Calcomp (Jim Newland and Calvin Hefte) had copies"
Which will lead me here:
https://www.calcompgs.com/Take Care,
Brenda- from Robert Garner, to Brenda, Nov 28, 2022, at 9:32 AM
Brenda, Awesome research (!) into Bresenham’s algorithm and its reported deployment on an IBM 1627 (aka Calcomp drum plotter) attached to a 1401.
It’s interesting that IBM OEM’ed the Calcomp drum plotters (models 565 and 563) as IBM 1620 peripherals:
I’ve cc’d Dave Babcock, our 1620 expert and aficionado.
- IBM 1627 Model 1 — Calcomp 565 — Plotting area: 11 inches by 120 feet, 1/100 inch incremental-step size, up to 18,000 steps/minute.
- IBM 1627 Model 2 — Calcomp 563 — Plotting area: 29-½ inches by 120 feet, 1/100 inch incremental-step size, up to 12,000 steps/minute.
Bob,
> I have some Calcomp drum plotters. ...
> Just picked up a Calcomp 563. It's pretty clean but with a badly dented drum. I have to figure out a way to fix that.Is one of those the smaller Calcomp model 565? :)
Interesting & fun history,
— Robert
- from Ken Shirriff, to Brenda, Nov 28, 2022, at 12:02 PM
Hi Brenda,
I've attached a copy of Bresenham's paper in case you couldn't find a copy.Ken
- from Brenda Make, to many, Nov 28, 2022, at 3:41 PM
Hi, Some of the original code is found!!!!
I don't know if it's all there, it seem a small even for something that is only supposed to use 33 word locations. There is indeed an END statement, but I don't know if there were other routines.
(I tried a google search on some of the code, but nothing else, yet.)"Jack Bresenham sent me code to drive a CalComp plotter attached via an RPQ to a 1407 console typewriter. It shows the four directional commands. I don't know what the "pen up" and "pen down" commands were. Do you?"
http://www.bitsavers.org/1401/progs/bresenham/bresenham.s
For some reason, the web maintainer also had a variation too.
Ref: http://www.bitsavers.org/1401/1401-progs.htmlTake Care,
Brenda000 JOB ENTER PLOT POINTS FROM 1407 CTL 4411 ORG 501 * * TRAVEL SUBROUTINE * TRAVEL SBR LEAVE&3 ZA ZEROA,ALPHA ZA XTRGT,DELX ZA YTRGT,DELY S XPR,DELX S YPR,DELY MCW XTRGT,XPR MCW YTRGT,YPR ZA DELX,DELA ZA DELY,DELB MZ *&8,DELA NEED MAGNITUDE SO A B BITS MZ *&1,DELB * DETERMINE OCTANT C DELA,DELB BM DELXN,DELX BM DELYN,DELY MN PXPY,D45 BH D00PY D00PX MN PX,D00 SETDEL ZS DELA,DEL A DELA DELA NOW DOUBLED-SEE DRIVING LOOP A DELB NOW DOUBLED-SEE DRIVING LOOP B TALPHA DELXN BM DELXYN,DELY MN NXPY,D45 BH D00PY D00NX MN NX,D00 B SETDEL DELYN MN PXNY,D45 BL D00PX D00NY MN NY,D00 B DELAY D00PY MN PY,D00 DELAY MN DELY,DELA DELA S/B DELY SAVE PLUS MCW MN DELX,DELB DELB S/B DELX MCW B SETDEL DELXYN MN NXNY,D45 BL D00NX B D00NY * PLOTTER DRIVING LOOP D00GO MCW %T0,D00,S MOVE RELATIVE ZERO DEGREES TALPHA C ALPHA,DELA LEAVE BE 0 0 DUMMY A TWOA,ALPHA NOTE DELA HAS BEEN DOUBLED A DELB,DEL NOTE DELB PREVIOUSLY DOUBLED BM D00GO,DEL MCW %T0,D45,S S DELA,DEL NOTE DELA PREVIOUSLY DOUBLED B TALPHA * CONSTANTS ALPHA DCW #6 YTRGT DCW #6 DESIRED Y COORDINATE XTRGT DCW #6 DESIRED X COORDINATE DELY DCW #6 Y2 MINUS Y1 DELX DCW #6 X2 MINUS X1 YPR DCW #6 PRESENT Y COORDINATE XPR DCW #6 PRESENT X COORDINATE DELB DCW #6 DEPENDENT VARIABLE DIFF DELA DCW #6 INDEPENDENT VARIABLE DIFF DEL DCW #6 DECISION DIFFERENCE D00 DA 1X1,G RELATIVE 0 DEGREE MOVE D45 DA 1X1,G RELATIVE 45 DEGREE MOVE PX DCW @3@ 0 DEGREE CODE PXPY DCW @2@ 45 DEGREE CODE PY DCW @1@ 90 DEGREE CODE NXPY DCW @8@ 135 DEGREE CODE NX DCW @7@ 180 DEGREE CODE NXNY DCW @6@ 225 DEGREE CODE NY DCW @5@ 270 DEGREE CODE PXNY DCW @4@ 315 DEGREE CODE ZEROA DCW &0 TWOA DCW &2 * * END OF TRAVEL SUBROUTINE * * --CALLING SEQUENCE-- * 1. ZA DESIRED X COORDINATE, XTRGT * 2. ZA DESIRED Y COORDINATE, YTRGT * 3. B TRAVEL * * XPR,YPR ARE UPDATED * TRAVEL EXECUTED * CONTROL RETURNED TO INSTR AFTER *B TRAVEL* BEGINX LCA MXGX,47 SW 27,MSGX-1 MCE XPR,33 MCW &XTRGT,PLACE&6 TYPE LCA @}@,48 MCW %T0,21,W CS 8 LCA @}@,8 BIN VIN,Q B *-8 VIN MCW %T0,1,R SBR PLACE&3 BIN TYPE,* BCE PLACE&7,1,} MA @I9H@,PLACE&3 BM VMINUS,1 MCW @?@,PLACE BWZ VPLUS,1,B SW 1 PLACE ZA 0,0 BW BEGINY,MSGX-1 B TRAVEL B BEGINX VMINUS MCW @!@,PLACE VPLUS SW 2 B PLACE BEGINY LCA MSGY,47 SW 27 CW MXGX-1 MCE YPR,33 MCW &YTRGT,PLACE&6 B TYPE MSGX DCW @X NOW 0 -, ENTER NEXT X@ MSGY DCW @Y NOW 0 -, ENTER NEXT Y@ END BEGINX- from Jack Besenham, to Robert, Nov 28, 2022, at 1:45 PM
Hi Robert, Enjoyed chatting with you this morning. Brought back many good memories of my time working in Dr. Eugene Lindstrom’s comp lab at IBM San Jose from 1962-1967.
Attached are several scanned images you may find of interest.
1, 1a, 2, 3, 4, 5, 6, 7Having enjoyed celebrating my 85_th birthday last month, I do need to start thinking about what to do with mementos from my past. Among other items, I have examples of drawings and the 1403 printout of the full plotting program I wrote for use in Dr. Lindstrom’s lab. The 1401 program would use tape output from 7094 output tape with columns of numbers to plot curves from various engineering calculations. … and, somewhere, I have a box of punched cards with related, but now unknown content.
Ciao, Jack
j.bresenham@computer.org
1.505.896.7893
303 Palo Alto Dr. NE Rio Rancho, New Mexico 87124- from Robert Garner, to Brenda, Nov 28, 2022, at 5:26 PM
Brenda, I had a delightful 45-minute conversation with Jack Bresenham this morning.
He spoke of his background (Stanford PhD, numerical analysis, class assignments run on an IBM 650), the IBM San Jose work environment, including the computing resources (their 1401 was an I/O spooler for their 7090, the usual setup :), how he developed the algorithm, and so on.
They used the 11”-wide Calcomp 565 drum plotter (not the wider 30” version).
Bob —> Do you know if either of your 565’s are near operational, or potentially restorable? :)Jack sent me the following email with a scanned period memo to his boss describing the plotting project, the program for the 1963 ACM National Conference (where he 1st presented the algorithm), a code listing, and some scans of some original plots (that he still has).
The last two sets of images are imbedded in Word docs.
I’ll confirm if he has the complete 330-memory location listing referred to in the IBM JR&D paper (he said he did).
Also, please accept my apologies if the plot of a woman’s outline, taken from Playboy magazine, is offensive. (Please let me know if so!)
Sample CalComp plots here - in .docx format, 6.1 megabytesYou are welcome to email or call him up! I’ve already introduced you by name. :)
His land line phone is (505) 896-7893.Thanks for discovering this fun 1401-related history!
— Robert
- from Brenda Make, to many, Nov 28, 2022, at 8:29 PM
Hi, Amazing, Robert! You totally found him, and in good health and spirits I hope as well.
The funny thing about this whole endeavor is: it was like 2 paths though the jungle that didn't quite meet, but were only separated by only a few paces.
I looked at the plots, and including the woman's outline, too, and well, maybe he invented the trucker's mudflap, too. : )
I liked the black-body radiation, as in a carbon cube, hot, with a little hole in it for the color/temperature.Seeing the original printout is really cool, though, it likely isn't complete. Well, it seems that he sent more than that to someone else, and I posted it elsewhere here. It seems to validate that it's the right code, and there is a reasonable possibility that we have it all.
So, it's been quote a roller-coasted, because I found the code, but when I got to the house, I saw ORG 501. I thought to myself, they couldn't have been able to set the base address on a 1401, and back then : (
Then I started reading the autocoder docs, and well, they did have an ORG. : )Then I saw instructions that I didn't see in the autocoder manual PDF, sigh.
But then I found them in another autocoder manual. : )So, I spent at least an hour trying to look find 1401 op-codes comparing them to the program I downloaded. It does end with an END line.
Then, I had lingering doubts that we had the right code, because it could have been for another IBM, until I saw what you sent me.
Perhaps we can figure out some method to display the research paper, and maybe a printout of the algorithm, like either a 8.5x11 or something larger with Dr. Jack Besenham's Line algorithm on it
Perhaps he could sign a copy--err maybe a few, and I guess even one for the CHM for the 1401 room : )Take Care,
Brenda- from Robert Garner, to Brenda, Nov 28, 2022, at 10:08 PM
Brenda, As you know, and experienced again here, computer archeology is fun! :))
(Btw, how did you first discover that Besenham first worked out his algorithm on a 1401+Calcomp?)Jack is in good spirits, his memory is excellent, and he enjoys telling his stories and anecdotes.
You’ll enjoy talking with him, if/when you so decide. :)He’ll likely get back to me tmrw regarding the entire set of 1401 plot code (and hopefully will be able to find the box of unknown 1410 programs).
I’ll be sure to cc you on the future email exchanges.Cheers,
— Robert
p.s. An interesting tidbit Jack shared was that his younger brother Dick and Alvin Ray Smith* went to high school together in Clovis, New Mexico and their parents were close friends.
That region of New Mexico also inspired Smith’s close friend, Clyde Tombaugh, to look up at the heavens, later discovering Pluto at Lowell Observatory. (I’m on Lowell's board of advisors :).* Alvin Ray Smith: Pixar founder, Toy Store fame and recently published his “A Biography of the Pixel” tome.
I enjoyed chatting with him last month at the CHM Fellows Award dinner.