• Please review our updated Terms and Rules here

Tektronix 4051 / 4052 / 4052A / 4054 / 4054A Program Archives

Hi Monty,

I'm really stunned by how much effort you put into this Tektronix stuff.
Maybe I'm completely wrong, but I have been searching on the forum, and there seem
to be just a few persons here which actively post something about these machines.
But when I do a search on Google I see many of these 405x machines...

I have asked the previous owner of my 4052 and he found 6 tapes.
But I have also read that there are many problems with these tapes.
Solved with plastibands etc...

Regards, Roland
 
Hi Monty,

I'm really stunned by how much effort you put into this Tektronix stuff.
Maybe I'm completely wrong, but I have been searching on the forum, and there seem
to be just a few persons here which actively post something about these machines.
But when I do a search on Google I see many of these 405x machines...

I have asked the previous owner of my 4052 and he found 6 tapes.
But I have also read that there are many problems with these tapes.
Solved with plastibands etc...

Regards, Roland

Roland,

It is a labor of love.

I loved programming the 4051 computer at my first job out of University.

I collected a 4052 and a 4054 when I 'retired' in 1999.

I was only retired for a year and a half, and the 4052 and 4054 were set aside until a couple of years ago - when I got both working again and began to archive recovered tapes and 8-inch disks.

Recovering the DC300 tapes and automating the recovery to just running a recovery program on my PC that pulls all the tape records into a single file has been the latest journey.

I then decided to see if the two 4041 GPIB Controllers that I acquired when I retired were running - both are running and I have successfully recovered the System Verification tape that I got from Stan Griffiths in 2000!

Now I'm experimenting with the 4041's communicating with the 4052 and 4054 :)

Back to tape recovery - on the 4041, there are no reports of user tapes - as this machine was designed to control Tektronix (and other vendor) GPIB equipment, such as factory test - including a small thermal printer for the results.

I purchased a box of DC6250 mini tape cartridges to make copies of the 4041 System Verification tape and some assorted size plastibands for drive belts.

I found I could not format either of two NOS tapes in shrink wrap from a box dated 1993. I checked the web and found folks with similar issues trying to use these tapes in HP computers. Recommendation was bake the tapes at low temperature for a couple of days in a dehydrator.

I had a dehydrator and tried the recipe on four of these tapes (removed broken drive belt, removed drive pulley, taped the reels together, baked the tape without the cover), and after two days was easily able to format and record the recovered System Verification files. Previous attempts - including recovery of the System Verification tape with a plastiband replacement resulted in having to clean the heads multiple times, replace the belt multiple times, but the 'baking' didn't have that issue.

If you are going to try to recover the 6 tapes - I would highly recommend baking them first.

If the tapes are Tektronix programs - post photos of the tape labels first, maybe I have already recovered them.

If they are user tapes, there could be interesting programs. I think the most interesting at this point are the games, and I have found user tapes with user programs and a couple of games - like my find of the Lunar Lander program.

If you don't have a dehydrator - you could send me the tapes and I would try to recover and post their files.

I have also invested time in porting games from other microcomputers of early 1980's like my two ports of different Adventure games to the Tektronix. One of them runs on all the 4050 computers with at least 32KB memory. The latest one was designed for a Commodore floppy drive, and since I am on the short list of 4050 owners with working 4907 floppy drives, that limits the applicability.

I believe that second version might be converted to run on 4050 tape (slow access time), but I think I will wait on that conversion until I get my 4050 Arduino Tape Emulator project working. I'm working with the author of the AR488 Arduino GPIB interface to try to convert his program to accept commands from the 4050 computers as secondary GPIB addresses. If successful, I plan to copy all my recovered programs into an SD (or microSD) flash drive in separate directories, so all (dozen or so) users of working 4050 computers can enjoy them as the DC300 tapes are super problematic.
 
Last edited:
I wonder when people were ready to use these graphics.

I found this little movie which shows a Tektronix 4002 (if I'm right)
But their report was in ascii art and the guy is drawing lines to connect the letters by hand. :confused:

 
Roland,

Tektronix published Tekniques magazines which had articles in each issue on how the 4050 computers and 4000 to 4200 series terminals were being used.

8 years of Tektronix Tekniques magazines have been scanned and posted on bitsavers.org:
http://bitsavers.org/pdf/tektronix/tekniques/

The industries covered included: aviation, space (Space Shuttle in particular), geophysical (like the article below), mechanical, chemical, and education (both university and undergraduate).

Here is an example article from 1982 on how the 4052 computers were used to analyze Antarctica core samples.
Graphics is much more powerful for this analysis than text, and the 4050 computers could display the data more quickly than plotting - as the researcher was trying to analyze the meaning.

attachment.php
attachment.php


Figure 2 in the second photo mentions using cubic spline routine to smooth the data.
I contributed a cubic spline program that I wrote to the Tektronix 4050 Application Library in the 1970's and listed in Tekniques Vol 2 No 2.
As is the case for most of the contributions - I needed a way to smooth the data I was analyzing and wrote this as a function call for my program.
Note the low memory use of 8KB :) My 4052 at work only had 32KB of memory for programs, so you had to be very conscious of memory usage.

attachment.php


Roland, the terminal in the video you posted was not a Tektronix 4000 series, as they had direct view storage tubes and could not scroll text.

By the way - have you gotten any programs loaded into your 4052 since you got it working?

Monty
 
Last edited:
Hi Monty,

A lot to read, thanks!

The terminal in the video you posted was not a Tektronix 4000 series, as they had direct view storage tubes and could not scroll text.

Then watch it again ;) There are two terminals on that table. They are using the left one to print the scrolling ascii graphics.
But next to it is an 4002. I really can't think of anything else... I really wonder why they didn't use that technique while
they have it? That made me wonder when they really start to use these graphics terminals...

4002.jpg

I'm really interested in early graphics. I found these pictures in a PDP8 handbook.

PDP8 KV graphics 3.jpg

PDP8 KV graphics 2.jpg

PDP8 KV graphics 1.jpg

A PCB designing program on a PDP8/I and a Tektronix 611. I would love to get my hands on that software!
I think this system dates in about 1969. I made a clone of the VC8E graphics controller for the PDP8 Omnibus systems.
These were built from 1970. I would love to update the software to run it on an Omnibus machine. (PDP8/E /M /F /A)
But I haven't found that software yet unfortunately... The Tektronix 611 is an official monitor to be used with that VC8E board set.

By the way - have you gotten any programs loaded into your 4052 since you got it working?

No... I'm waiting for a new ROM since one of them is corrupt. Jos compared U880 for me and it was broken indeed. He has a spare one and
sent it to me. And Jos has my TransEra RS232 module also to read the ROMs and checkout the schematics. So I have no ROM and no serial
connection at the moment. I will update the topic when I have news...

Regards, Roland
 
TransEra 735-SIF RS-232 Serial Interface ROM Pack files uploaded

TransEra 735-SIF RS-232 Serial Interface ROM Pack files uploaded

Thanks to Roland and Jos, Roland's TransEra 735-SIF RS-232 Serial Interface ROM Pack for the Tektronix 4052/4054/4052A and 4054A computers has its ROM and PAL files captured, the manual scanned, and all files and photos have been uploaded to my github repository in a new folder:

https://github.com/mmcgraw74/Tektro...a_ROM_Packs/TransEra_735-SIF_Serial_Interface

Here is a photo of the front label on the ROM pack and component side of the circuit board:

attachment.php


The manual uploaded covers both the 735-SIF and the 635-SIF ROM pack designed for the 4051 computer.

attachment.php


Monty
 
Tektronix 4051 Memory Dump Program - Source Code Listing

Tektronix 4051 Memory Dump Program - Source Code Listing

I had a request for the Motorola 6800 source code for my 1979 assembly language program for Tektronix 4051 Memory Dump.

See my post #66 earlier in this thread for a screenshot running this program on the 4051 javascript web browser emulator:

Tektronix-4051-4052-4052A-4054-4054A-Program-Archives post 66

I located my Tektronix 4631 printouts of my code listing. I used a Tektronix 8001 Microprocessor Lab to develop 6800 code and the 4051 as the terminal to the 8001 in the late 1970's.

Here is a photo of the 8001 Microprocessor Lab with a Tektronix terminal from the 1979 Tektronix catalog:

attachment.php


Here is a scan I made today of page 1 of the code listing - quite readable after 40 years :)

attachment.php


And here the link to my PDF of the scan of the source code listing:

https://github.com/mmcgraw74/Tektro...ssembler/Tek_4051_Memory_Dump_Source_Code.pdf
 
Last edited:
Tektronix PLOT50 ELECTRICAL ENGINEERING Volume 1

Tektronix PLOT50 ELECTRICAL ENGINEERING Volume 1

One of our Tektronix 4051 users with the Tektronix DPO 7704A system asked if I had the PLOT50 Electrical Engineering Vol.1 tape.
Here is his system: Tekwiki Tek_WP1110_01.jpg

attachment.php


I found that I had captured the files, but not posted them on my Tek 4050 github repository.

This was one of the first Tektronix PLOT50 application tapes, priced at $400 in the 1977 catalog.
It is designed to run on a 4051 with 32KB of RAM, but the article indicates it can run on a 4051 with 24KB of RAM!

I cleaned up the files and created a new folder for them:
PLOT50_Electrical_Engineering_Vol_1

This set of programs on DC300 tape performs AC circuit simulation on conventional circuits and microwave circuits.

The only information I could find on the web for this tape was a 2-page article in Tekniques Vol 1 No 8 (higher res capture in this folder on github), which includes a sample circuit with the CODE and DATA, plus an output plot:

attachment.php


I ran the file 1, which is the menu program, which is completely driven from UDK (User Definable Keys) and has a little info on each of the UDK functions.

I created a UDK overlay from those instructions by scanning a blank UDK overlay, and used PAINT to add the text and posted it in the folder.
I also posted the blank UDK image in the root folder of my 4050 Program repository.

attachment.php


Here are the two MENU screenshots (captured from file 1 running on the Tektronix 405x javascript web emulator):

attachment.php


attachment.php
 
STARGATE art - from Creative Computing magazine article

STARGATE art - from Creative Computing magazine article

During my searches for Tektronix 4050 series computer programs on the internet, I found this program in Creative Computing magazine, May-June 1978 issue.
Joe Jacobson was the author and used a 4051 computer to develop the program.

attachment.php


I typed in his program and posted it in a new "Computer Art" folder on my repository, along with a higher res screenshot of the article:
Computer-Art

Here is my screenshot of running this program on the 405x javascript emulator of the 4051 - the pixelation is due to the emulator, the lines are perfectly straight on the 4050 computers :)

attachment.php


I added one line of code to the authors program to move the blinking cursor to the center of the Stargate.
 
I did find a photo of the Tektronix 4050 PLOT50 Applications in a 4052 computer brochure from vintagetek.org.

I believe the photo is of the EE tape with a Smith plot.

I have the Math, Utilities and Electrical Engineering tapes captured and uploaded to my 4050 program repository.

I also have the Statistics tapes, although I haven't captured and uploaded them.

attachment.php
 
I also found a Tekniques Vol 2 No 6 second article on using the Electrical Engineering Volume 1 tape.

This article goes into more detail on entering the Example amplifier schematic into the program.

full scan in my github repo folder for this tape:

attachment.php


Pretty amazing that this capability was available from Tektronix for the 4051 that ran in only 32KB of RAM in 1975!!

Last night I was looking through a box of 4051 tapes I got from Stan Griffiths in 2000 for the cost of shipping - 50 tapes from engineers working on satellite (including microwave) design with the 4051 (from the titles on those tapes).

I'm baking ten of the most interesting tapes and hope I can recover and post some of the files.
 
Last edited:
My careful search of the Vol1 and Vol2 Tekniques turned up CM201-011-00 and CM201-012-00 ROMPACK parallel output and input interfaces (respectively) to communicate with parallel devices that don't have GPIB!

attachment.php


I guess I will check with vintagetek.org to see if they have the manuals and schematics for these two interfaces.

Reading that Tekniques issue further - the cover story on the Forest Service in Six Rivers used the CM201 to interface a paper tape reader to the 4051 to collect the data to send to their UNIVAC computer in Ft. Collins, Colorado.

attachment.php
 
Last edited:
Tektronix 4054 Active Filter program

Tektronix 4054 Active Filter program

I recovered an interesting DC300 tape yesterday - tape was titled Active Filter.

This tape was in a collection of over 50 tapes I received from Stan Griffiths in 2000 - for the cost of shipping! Most of these tapes contain user programs written by programmers in a company working on satellite design in the early 1980's using Tektronix 4050 Graphics computers.

The Tektronix 4051 (1975), 4052 and 4054 (1979) had unique storage tube vector graphics screens with very high resolution. The 4051 and 4052 had 12" flat screen storage tube CRTs with addressable vector resolution of 1024 by 780.

The 4054 had a 19" curved screen storage tube CRT with 4096 by 3072 addressable vector resolution! This program illustrates both the high resolution, vector fonts and fast drawing speed of the 4054 computer.

Since the 4050 series graphics computers were limited to a maximum of 64K bytes of memory - the programs made heavy use of the tape drive or external GPIB floppy or hard disk storage for many programs like this one.

I posted a one minute video on YouTube of running this program on my 4054A:

Tektronix 4054A Active Filter

You can hear the tape drive being accessed to get the curves drawn for each of the three graphs on the right of the screen. The DC300 tape drive in the Tektronix computers provided about 300K bytes of storage, with a file system that numbered each file and provided error checking to protect the information in each file.

The tape I recovered contained programs developed 40 years ago by a company using the 4054 computer to design satellites. This program was apparently part of a internal presentation on using a particular active filter in their satellite design - and showed graphs of the performance of this filter.

Tektronix 4050 series computers had BASIC in ROM that included support not only for the internal screen, tape and keyboard, but also GPIB devices like external graphics printers, plotters, tape drives, floppy drives, hard drives, digitizers, and joysticks.

This program can be changed to plot this image by changing one BASIC statement from Q=32 (internal screen) to Q=1 (external plotter)!

Here is a photo of my 4054A computer running the Active Filter program on the 40 year old tape - with the broken drive belt replaced with a drive belt from an NOS DC6250 tape (I also baked this tape for 2 days at 135F):

attachment.php


And here is a closeup photo of the screen showing better detail:

attachment.php


The tape was marked 4054 and takes advantage of the scalable fonts of the 4054 - so the 4052 dot matrix text doesn't scale, but the graphs work on my 4052 (although I got a tape read error on this run that didn't complete the graphs):

attachment.php


All tape files were recovered and posted on my github repository:

4054_Active_Filter
 
Last edited:
NICE UTILITIES tape recovered and posted on github

NICE UTILITIES tape recovered and posted on github

I recovered and posted another interesting Tektronix 4050 tape titled: "NICE UTILITIES"

https://github.com/mmcgraw74/Tektronix-4051-4052-4054-Program-Files/tree/master/NICE_UTILITIES

Code:
 1      ASCII   PROG /LABELLER /   2048   
 2      ASCII   PROG    ROOTER     9216   
 3      ASCII   PROG    INTEREST   3328   
 4      ASCII   PROG   CYBERJUNK   1792   
 5      ASCII   PROG   OLDTITLER   3072   
 6      ASCII   PROG   TAPE COPY   8192   
 7      ASCII   PROG /FLOWCHART/   9216   
 8      ASCII   PROG /AVERAGING/   768    
 9      ASCII   PROG  PLOT LABEL   768    
 10     ASCII   PROG    TAPETEST   2560   
 11     ASCII   PROG PRINT TFILE   2048   
 12     ASCII   PROG CY TERMINAL   1024   
 13     ASCII   PROG F GRAF PLT    3072   
 14     ASCII   DATA     EXAMPLE   2048   
 15     LAST                       768

Labeler (for tape header info), Tape Copy to 4924 tape, and Flowchart are previously posted programs from Tektronix.

The rest of the programs appear to be unique.

Most interesting to me was TAPETEST - it is a 4051 program to verify tapes that contains CALL "EXEC" assembly language code!

In addition, the short assembly language program includes new CALL's not in the 4051 BASIC: MTPACK, MTREAD, MTFWD, MTBACK.

I hope someone (hint, hint) disassembles the short 6800 assembly programs and determines how they created the new CALL's in assembly code (daver2 or Jos) :)

The Loader code is in ASCII HEX ('normal' 4051 EXEC format) using the 16 ASCII characters 0 to ?
The Tape Verification program appears to be in HEX characters 0-9 and A-F and is passed in as a string variable.
I assume the Loader then converts the string variable into assembly code.
Note - there are two entry points into the Tape Verification program: the 0000 entry point runs the tape verification program and the 00A3 entry continues the program after an error.
UDK keys perform individual operations, but the new CALL's do not work until you first run the tape verification program.

The 4051 Assembler documentation I found (ftp://ftp.informatik.uni-stuttgart.de/pub/cm/tektronix/tek4051/backram/exec.txt) describes each of the parameters passed into the CALL "EXEC" command:

Code:
: (I) 				The 'CALL "exec"' command
     : 					==========================
     :
     : The CALL "exec" command calls the 4051 machine language
     : level. This command is not documented by TEKTRONIX. That has
     : its good reason: a wrong application can cause considerable damage
     : to the hardware.
     :
     : 		The syntax of CALL "exec":
     : 		----------------------------
     :
     : 				CALL "exec" [, {Var1} [, {Var2} {, ...]]], {Loaderstring}
     :
     : The loader string is a string variable with a maximum length of 512.
     : It contains a machine program in a kind of hexadecimal writing
     : style.  Namely, the hex 'A' to 'F' are replaced by the ASCII codes ':'
     : to '?'. The hex numbers are replaced by the ASCII codes '0' to '9'.
     : No spaces are added between bytes in the loader string.
     :
     : When calling CALL "exec" the translation of the loader
     : strings in bytes, which are stored in memory from the address $02B5.
     : The machine program must not exceed the length of 256 bytes
     : otherwise they would overwrite other important memory locations.
     : Finally, the operating system calls the transmitted program
     : by JSR $02B5, and the return should be done by the command RTS.
     :
     : EXAMPLE: Making visible again a SECRET
     : (BASIC) program. All you have to do is clear memory 80h. The
     : Program is very simple:
     :
     : 				02B5 7F 0080 	  CLR	 $80
     : 				02B8 39 		  RTS
     :
     : The loader string is: L$ = "7?008039". 
	 : Executing 'CALL "EXEC",L$'
     : the BASIC program is again 'unsecret'.
     :
     : The CALL EXEC Loader string program can access memory and ROM.
     : accessing these variables requires a minimum of knowledge
     : of the memory structure of the 4051.
     :

Here is the very short TAPETEST program:

Code:
1 REM MAG-TAPE READ/WRITE VERIFICATION PROGRAM
2 PAGE 
3 GO TO 100
4 REM BEGIN TAPE VERIFICATION
5 CALL "MTPACK"
6 CALL "EXEC",V$,M$,L$
7 RETURN 
8 REM BEGIN TAPE VERIFICATION
9 CALL "EXEC",V$,M$,L$
10 RETURN 
24 REM PROCEED WITH TEST IN PROGRESS
25 CALL "EXEC",P$,M$,L$
26 RETURN 
32 CALL "MTBACK"
33 RETURN 
36 CALL "MTREAD"
37 RETURN 
40 CALL "MTFWD"
41 RETURN 
100 DIM P$(800),V$(800),M$(500),L$(500)
110 REM  L$ IS THE LOADER PROGRAM
120 L$="30<6448608:107266;:10<2667>>0=<624:6042;5?:607970<:608970=>>"
130 L$=L$&"0;:6028540264?;=::3>=?0830>>08:6042;43=?0:>>0;:6028540263"
140 L$=L$&"9=>0:>>072736<61;8<0004262<=>0:>>0;;=::3>8=0:970:8=06970;"
150 L$=L$&"=>0:20338=0;48484848168=04840?1;39:6000880308109230280073"
160 L$=L$&"9=74;39=>0:>60658:60549=00=920<2404<61520>;>>0;;=::3>=?04"
170 L$=L$&"=?06=>088=<5=?08=>0<0909=?0<=>06:70008=?065?4?=00=920<2<2"
180 L$=L$&"2=>08:600815226==08=?08=>060909=6059604>;01:900>701:700=>"
190 L$=L$&"0<09=?0<26<3=>060909>>006>00"
200 REM  P$ IS THE TAPE VERIFICATION PROGRAM
210 P$="010F8D76266FB68798851027068638974B20628D358620B7879A97BABDFF"
220 P$=P$&"B5CE01F48D4B8655B7878E8660B7879A97BAB6879AB687AA85082639B"
230 P$=P$&"6879B85C027F2CE00688D298D452063BDFBD7964B26248D19B6879984"
240 P$=P$&"FEB78799B6878F84F6B7878FB6878D84FEB7878D39CE28B00926FD398"
250 P$=P$&"D18BDCBBF0E39B687988802B787988802B78798BDE00C964B398629B7"
260 P$=P$&"879A8D05BDFC248DD3B68798B6878EB6878C39010F8DD326CC8DA8200"
270 P$=P$&"28D9BBDFFDBB6879ABDFFB5B6878C5FB687AA850826B0B6878D2A09B6"
280 P$=P$&"878CC609815526175A2714B6879B85C027E18DB08D0F8D992692BDFBD"
290 P$=P$&"7208D8DA38D17208A8D5F2604860120658D3C8D257061737365640020"
300 P$=P$&"128D4A26034F20518D288D116661696C6564008D0820202A2A2A0D003"
310 P$=P$&"930EE00A600270ADF00BDF22EDE000820F231316E018DE907070D2A2A"
320 P$=P$&"2A204D61672D7461706520766572696679200039BDCBBF0E30A60BEE0"
330 P$=P$&"C810A39DF00364F3636BDB1FBDE00A604847FA704BDAA3EBDB70F39"
340 REM  DEFINE THE PROGRAM ENTRY POINTS
350 V$=P$&"0000R"
360 P$=P$&"00A3R"
370 M$=""
380 PRINT "    USER KEY #1 CALLS <MTPACK> AND BEGINS TAPE VERIFICATION"
400 PRINT "    USER KEY #2 BEGINS TAPE VERIFICATION PROGRAM ONLY"
405 PRINT "    USER KEY #6 PROCEEDS WITH TEST AFTER AN ERROR IS FOUND"
410 PRINT "    USER KEY #8 CALLS <MTBACK>"
420 PRINT "    USER KEY #9 CALLS <MTREAD>"
430 PRINT "    USER KEY #10 CALLS <MTFWD>"
440 RETURN 
1000 FOR I=1 TO 10
1010 CALL "MTPACK"
1020 NEXT I
1030 GO TO 8

Remember, I have posted the Tektronix submitted 4051 Assembler program which includes 4051 BASIC ROM entry points, and I just uploaded a couple of more text files on CALL "EXEC".

https://github.com/mmcgraw74/Tektronix-4051-4052-4054-Program-Files/tree/master/4051-Assembler
 
Tektronix 4051 ROM Checksum program

Tektronix 4051 ROM Checksum program

My internet search for Tektronix 4050 programs with CALL "EXEC" which provided 6800 assembly language programs to be called from Tektronix 4050 BASIC turned up a very interesting program titled Checksum gen.txt at http://www.archerservices.com/History/Tektronix/4051/Tapes/Checksum gen.txt

Actually Checksum gen.txt is a document file that contains a short 4051 program with CALL "EXEC" at the end of the document.
The document mentions a MAXIPACK and RAMPACK and line 1 of the program indicates the authors initials: MDC
This leads me to believe the author is Michael Cranford - one of the 4051 engineers and designer of the MAXIPACK and RAMPACK, both of which are installed in a working 4051 in the vintagetek.org museum!
https://vintagetek.org/4051-graphic-desktop-system/

I reworked the document into a program I named 4051 ROM Checksums and uploaded it in my Universal format which only uses CR for line delimiters and includes all Tektronix control characters in printable strings.

Checksum gen as written only allowed one ROM address and Bankswitch as needed to be input and printed the checksum.

I added the ability to request a complete dump of all 4051 ROM Checksums including the optional ROM Packs, so it is very easy to compare your 4051 ROM checksums against the MDC listed checksums.

In the screenshot from running 4051 ROM Checksums program on the 405x (actually only 4051) javascript emulator
https://github.com/jonbstanley/Tek405xEmulator

You can see in the second screenshot below that the emulator is using the same ROMs as in MDC's 4051, with the exceptions of no option ROMs including no Comm backpack ROMs in the emulator screenshot below.

I run the jsTEKTRONIX4051_universal.html file with Chrome web browser. The emulator is configured to run at a similar speed to the original 4051. I edit the mc6800.js file line 64 and replace "408" with "40" to speed up the emulator to approximately the speed of the 4052 and 4054, and then launch the emulator. All of the older programs (.txt or .BAS) in my Tektronix 4050 Program repository should be run with the regular html file, which has modified control characters and line delimiters unless the readme in that folder indicates a program requires the universal format emulator.

All 4051 Checksum files have been uploaded to:
https://github.com/mmcgraw74/Tektronix-4051-4052-4054-Program-Files/tree/master/4051_ROM_Checksums

attachment.php


This screenshot includes the list of MDC ROM checksums to the left of the emulator screen for comparison with the emulator ROMs:

attachment.php


Another interesting note about this program - I found that B$ returns not only the checksum, but the entire block of ROM contents in HEX characters! That is why I saved B$ in R$ before the CALL "EXEC" so I could print the input parameters after the CALL returned to BASIC.
 
Tektronix 4051 Serial Transfer Tips

Tektronix 4051 Serial Transfer Tips

4051 serial transfer NEWS FLASH:

I just got an email from a 4051 user who was having trouble downloading 4051 programs from my archive.

He had been in touch with vcfed.org about getting a MAXIPACK and ROMPACK shown in their 4051, and told them about his issues in transferring programs to the 4051 over serial.

They gave him some tips - and now he is using 2400 baud (max rate with 4051 serial backpack) with hyperterminal to transfer the programs successfully to his 4051 over serial!

They recommended he add 500 msec time delay after each line was transmitted, so the 4051 had time to process the ASCII into tokenized BASIC.
He also added a 10 msec delay after each character was transmitted (although I question the need for the character delay as the Serial ROM should have a buffer to hold at least one line of characters).

These workarounds are not needed for 4052/4054 computers with v5.1 firmware or 4052A/4054A computers as they can use XON/XOFF protocol (software flagging in Tektronix terminology).

I only type the following four commands on my 4052 with v5.1 firmware or 4054A:

Code:
CALL "RATE", 9600,2,0    !BAUD RATE: 9600 7E1
CALL "TSTRIN","","",""   !PREVENT 4050 FROM MODIFYING TRANSMITTED CONTROL CHARACTERS
CALL "RSTRIN","","",""   !PREVENT 4050 FROM MODIFYING RECEIVED CONTROL CHARACTERS
CALL "CMFLAG",3          !ENABLE XON/XOFF ON TX AND RX

Then I use Realterm to SEND or CAPTURE text to or from my 4052 or 4054A computer to my laptop using a USB to RS-232 converter from Tripp-Lite which has Windows 10 drivers.

I just updated the README file on my github repository with these instructions.

Enjoy!
 
Last edited:
I rewrote the README file on my github repository to include background info on the Tektronix 4050 computers and a family photo of my 4054, 4052 and 4631 from 2000.

My collection is on a custom cart designed for the 4052 that I got with my 4052 and 4631 printer purchase in 1999 from a medical university auction.

attachment.php
 
It is spring cleaning time, and I did some work on my Tektronix 4051/4052/4054 Program archives, and edited and updated over 500 programs to my github site:
https://github.com/mmcgraw74/Tektronix-4051-4052-4054-Program-Files

I went through all the program files and edited them into my new Universal (UNI) format which can load into any Tektronix 4051/4052/4054 computer or the Tektronix 405x emulator (running the universal.js file).

I put the *.UNI program files into separate folders for each of the main folders with programs - so the original uploads are not disturbed.

I will be using the *.UNI program files when I make a little more progress on my Tektronix 4924 GPIB Tape Emulator project.

Enjoy!
 
I wanted to post the script I used to partially automate the changes I made to hundreds of files in only hours - as opposed to days if I used a program like Notepad++ to do each edit.

First some background on the edits required:

Tektronix 4050 BASIC makes heavy use of multiple control characters for text formatting in PRINT statements:

attachment.php


My original approach to capturing files on my PC from Tektronix programs on tape was written around 2000, and my program would read a file from tape and convert each of the control characters above into ~<Letter>~ where Letter is the character typed with the Ctrl key held down.

When I began archiving my captured programs in 2018, I found that others had captured their 4050 programs by loading them into memory and performing a LIST command to the serial interface. The LIST command converts all control characters in the program to <Letter><Backspace><underscore>, which underlines the Letter, similar to the 4050 display of a program with control characters.

Since Ctrl-G,H,I,J,K,L,^, and _ have to be converted from two different capture techniques, that would take quite a while on each program if done one at a time manually using Notepad++, which is the reason I have procrastinated so long :)

Mattis Lind developed a c program to convert the LIST format control characters, but instead of trying to add to his program, I searched for a way to do all the conversions with a linux script and came up with the following single command:

attachment.php


One note on the script above, the ^G and other control character replacements are not two separate characters, they are typed as Ctrl-V-G as an example which is the Ctrl-G character.

Before running the script, I would copy all the program files from a master folder into a folder named "Originals", and after the script was run, I would check each file in the "uni" folder and do any final edits like remove the last linefeed character.
Then I would create a new uni folder, copy all the uni files, and then upload the uni folders to the correct folder in the github repository.

If the original files had the .txt extension I would edit the script near the end to replace .bas with .txt.

I was not successful in running this command saved to a script file, so I want to describe what this script does in case I need to recreate it:

Code:
•       's/x0//g'           Delete all NULL characters                     works
•	':a;N;$!ba;s/\n//g' Delete all linefeed characters                 works (except for last linefeed)
•	's/G^H_/^G/g'       Replace G<backspace>_ with Ctrl-G   (BEL)      works
•	's/H^H_/^H/g'       Replace H<backspace>_ with Ctrl-H   (BS)       works
•	's/I^H_/^I/g'       Replace I<backspace>_ with Ctrl-I   (HT)       works
•	's/J^H_/\n/g'       Replace J<backspace>_ with linefeed (Ctrl-J)   works
•	's/K^H_/^K/g'       Replace K<backspace>_ with Ctrl-K   (VT)       works
•	's/L^H_/^L/g'       Replace L<backspace>_ with Ctrl-L   (FF)       works
•	's/_^H_/\x1f/g'     Replace _<backspace>_ with Ctrl-_   (US)       works
•	's/~G~/^G/g'        Replace ~G~ with Ctrl-G             (BEL)      works
•	's/~H~/^H/g'        Replace ~H~ with Ctrl-H             (BS)       works
•	's/~I~/^I/g'        Replace ~I~ with Ctrl-I             (HT)       works
•	's/~J~/\n/g'        Replace ~J~ with linefeed           (Ctrl-J)   works
•	's/~K~/^K/g'        Replace ~K~ with Ctrl-K             (VT)       works
•	's/~L~/^L/g'        Replace ~L~ with Ctrl-L             (FF)       works
•	's/~_~/\x1f/g'      Replace ~_~ with Ctrl-_             (US)       works
•
•	output file is written to uni folder with basename /w .uni         works if i$ extension is .bas - I would prefer to always replace any extension with .uni, so I have to do this separately
 
Last edited:
Back
Top