Forum Rules and Etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.

Rule 1: Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.

Rule 2: Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.

Rule 3: Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.

Rule 4: "PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.

Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Rule 5: Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.

Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.

New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.

Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

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

  • Filter
  • Time
  • Show
Clear All
new posts

  • nikola-wan
    While I hope someone will be showing us their 4051 running my Checksum program, I took a look at my 4052/4054 Checksum program and found - I wrote that program when both computers had the same firmware version. Now that 'old' program says my 4054A ROMs have the wrong checksums.

    Of course they do - it is completely different firmware for the A-Series. Not to worry - I modified that program to support my 4054A and added auto-detection of all six different computers:
    • 4052
    • 4052A
    • 4054
    • 4054 with Option 30 Dynamic Graphics
    • 4054A
    • 4054A with Option 30 Dynamic Graphics
    When you indicate you want to report both the System ROM Checksums AND the ROM Slots - Including 4050 ROM Expanders or Jos Dreesen's 4052/4054 Multi-Function Module which emulates a 4050 ROM Expander - you get all the checksums.

    Next I found my 'old' program did not include ALL the 4052/4054 ROM Packs I had - so I added the other ROM Packs to get my new version.

    One issue I found - you cannot run my program with the Diagnostic ROMs inside the MFM and report ROM Slot checksums. The issue is - that CRC code gets swapped out of the system when the ROM being measured is swapped in

    I need to port Michael D. Cranford's 6800 assembly language Checksum program to the 4052/4054 - so that program runs from RAM like the rest of the BASIC program. Since I don't have the source code, I'll disassemble it and try to figure it out. The "I/O" addresses for the bank switch are different than the 4051, and I have to deal with the RAM versus ROM bank switch to access a ROM while the program is running from RAM. Fortunately, I should be able to use most of the 6800 assembly program since the 4052/4054 microcode emulates all the 6800 opcodes and extends the instruction set with unused 6800 opcodes.

    Here is a photo running the latest Checksum version on my 4054A with the 4050 ROM Expander sitting on top of the 4054A. The ROM Expander has eight ROM Slots and you could plug two ROM Expanders into the computer to get 16 option ROMs!

    My 4054A with 4050 ROM Expander-sm.jpg

    Here is a photo of the top of the ROM Expander showing all eight ROM slots are filled!

    4050 ROM Expander top view-sm.jpg

    The front left ROM slot has a TransEra A/D Converter for the 4052/4054. The edge connector on top is cabled to a separate box with the analog inputs on banana posts.

    Leave a comment:

  • nikola-wan
    I wanted to add the 4051 ROM Checksum program to my Tape Emulator micro SD Card image and found it did not show checksums for ROMs plugged into the 4051 or 4050 ROM Expander, so it will not show checksums for the MAXIROM ROM PACK which emulates a ROM Expander.

    I updated my checksum program to include ROM Expanders - which involved a substantial rewrite - as I wanted all the results on one screen.

    Can someone with a working 4051 and MAXIROM Pack test my new version? Please test this program with your MAXIROM PACK (or any 4051 ROM PACK) in both backpack slots and post a photo of your checksum results.

    *** Safety tip *** Don't remove the ROM PACKs with 4051 powered on. Turn off the power first - wait until the fan stops (gives power supplies a chance to bleed off the voltages) then plug in or remove a ROM PACK.

    I'm not aware of any Tektronix post with 4051 16-bit checksums except for the System ROMS and Option 1 COMM ROMs - which were captured in Michael D. Cranford's notes for his original 4051 Checksum program (posted in the same folder as my latest version).

    Tektronix 4051 Service Manual Vol1 pages 5-20 and 5-21 list 8-bit checksums for 5 different 4051 System ROM versions and two versions of the Option 1 COMM ROMs, but you have to have the Tektronix System Test Fixture to read those 8-bit checksums.

    I posted my updated version on my repository:

    Here is the screenshot running this program on the 405x Emulator:

    screen (15).png

    Leave a comment:

  • nikola-wan
    Hi, Al!

    Sierpenski triangles - need filled in triangles to look right.

    I'm investigating how to do that for the Tektronix.


    Leave a comment:

  • Al Kossow
    Serpinski space-filling curves are fun too

    Leave a comment:

  • nikola-wan
    I just created a Hilbert curves folder of programs on my repository:

    I received a request about the 4052/4054A-Series BASIC recursive SUB function - and mentioned the Hilbert space-filling curve example program in Tekniques Vol 6 No 3 Page 30.

    Hilbert curve Tekniques V6N3.jpg

    Also see more info on Hilbert curves in this wikipedia article:

    I entered the program from the article by hand into my 4054A and found it very interesting.

    I extended the program to create Order 3 to 6 and used Jos Dreesen's 4052/4054 Multi-function ROM Pack Real-Time Clock to time each plot.

    Here is my hand-held iphone video from my Tektronix 4054A showing the program drawing Hilbert curvers of Order 3 to 6 with timing information:

    I captured the DRAW X,Y output data from that program over serial interface to my PC and used that data to create Hilbert curve programs that will run on any 4051/4052/4054 computer with 32KB of RAM.

    I also posted screenshots of the Order 3,4,5 and 6 Hilbert curves running on the 405x emulator.

    HilbertOrder5.png HilbertOrder6.png

    It will be easy to modify the programs to plot the curves - simply add @x: to the MOVE and DRAW commands - where x=GPIB or Option 1 Serial address of your 4662 or 4663 plotter.
    BTW - the Order 6 program barely fits in 32KB of RAM. The Order 3, 4, and 5 may work in 4051 computers with less than 32KB.

    Leave a comment:

  • nikola-wan
    It took longer than I thought to recover a Tektronix Plot50: System Software Tape for the 4050 computers.

    I searched several piles of Tektronix DC300 tapes inside the house and located seven of these tapes.

    I found two in the back of Tektronix manual binder, and tried to simply replace the broken, moldy drive belt with my favorite DC6250 drive belt and had no luck recovering any of the files.

    At that point, I decided to dehydrate all seven tapes (48 hours at 135F in a food dehydrator with multiple shelves).

    I let them cool overnight and picked Tape#7 in the photo below (Tape#1 and Tape#2 on the top right were the two tapes I tried before dehydrating and may now be damaged).

    Seven SysVer Tapes ready to bake.jpg

    Tape#7 was my lucky first pick - I recovered 103 of the 104 files in my first attempt with my TapeDump8 program, which reads EVERY block on the tape including the header block, and encodes BINARY PROGRAM or BINARY DATA files into two HEX characters per byte and transmits the result to a PC serial terminal program like RealTerm. Tapedump also captures SECRET programs (ASCII or BINARY) as HEX characters.

    Since Tape#7 could not read file#2, I picked tape#4 (bottom of the middle row of tapes in the photo), as it appeared to NOT have been rewound to the beginning.
    I was able to get a second tapedump file with file#2 successfully recovered! Now I had all 104 files in tapedump format after trying four different tapes.

    My process to recover each of the files in the resulting tapedump is to use Notepad++ (be sure to turn on View | Show Symbol | Show All Characters)
    1. Start by editing the tapedump file, find every line in the file with " ASC" - which is typically the header line if all the files are ASCII Programs or DATA.
    2. Find the beginning of the file to edit by double-clicking the line in the resulting search which navigates to that line in the tapedump file
    3. Find the first line or beginning of DATA (skip the 256 byte block including the header)
    4. Select all the lines up to the end of the program (typically a carriage return at the beginning of a line - with exceptions for CRs inside PRINT statements)
    5. Copy the selected lines to a new file in Notepad++
    6. Look for CRs inside PRINT statements and replace each of them with Ctrl-Underscore (insert Ctrl-Underscore by holding down the ALT key and typing 031)
    7. Save this file with the filenumber as a .uni (universal) file
    8. Repeat steps 2 through 7 for each file in the tape dump
    All seven of the tapes had the same label, although a couple were labeled BACKUP, as Tektronix put two tapes in the back of the 4050 Operators Manual binder.
    Since I had some tapes from Stan Griffiths who worked at Tektronix, two of the tapes (including Tape#1 and Tape#7) had a MASTER COPY stamp on top of the label.


    All seven tapes had the same version: Version 2 Level 2, Modification No 020-0160-03, Identification 939

    Since file 104 on the recovered tape demonstrated a couple of 4054 features, this is likely the newest PLOT 50: System Software Tape.

    What is the PLOT50: System Software Tape? Here is the screenshot of running file 1 on the 405x Emulator:

    Programs 1-4 plot functions: Y-only Data, X vs Y Data, Function Plot and Histogram data.

    Program 5 begins the tutorial of many of the new BASIC commands in PLOT50 BASIC including graphics commands (includes most of the programs on this tape).

    Program 6 (files 98-100) allow the user to verify that all Keyboard keys, Graphics, and Tape are working (I would call this hardware verification).

    Program 7 (file 101 and 102) only runs on the 4051 as it uses the CALL "EXEC" command to run an assembly program to test RAM (not the ROM, so I would call this a RAM test, not FIRMWARE).

    Program 8 (file 103 and 104) uses the RND(0) to detect one of the two 4054 models, and if detected it runs program 104 to demonstrate the unique features of the 4054 including the higher resolution, the graphic pointer with X and Y thumbwheels on the right side of the keyboard, four character sizes of 9 fonts with vector characters instead of dot matrix characters, and dashed line drawing capabilities using an 8-bit mask to define the on/off dash sequence.


    Here are the RND(0) values for each of the different 4050 computers from my scan of the quick reference guide which is posted on bitsavers.

    Notice there are four different 4054 models: 4054, 4054A and those two with Option 30 Refresh Graphics.

    RND(0) detects which 4050 computer model.jpg

    All files have been uploaded to the github repository:
    Last edited by nikola-wan; April 26, 2021, 07:18 AM. Reason: Corrected typo

    Leave a comment:

  • nikola-wan
    Originally posted by fsword007 View Post

    Yeah. I read some creative computing magazines at my university library and learned a lot about many interesting graphics outputs. I did not know which computers that users use for until now. I now know that they use Tek 4050 computer series to produce wire-frame graphics outputs. I will download Tek 4050 emulator and software libraries to try that.

    Does anyone know any Tek 4050 user manuals to learn how to use it and write BASIC programs?


    You are in luck - we have a wealth of Tektronix 4051/4052/4054 manuals available on

    To get started, I recommend these manuals from that link:

     			[TD] [/TD]
     			[TD] [/TD]
     			[TD="align: right"] [/TD]
     			[TD] [/TD]
     			[TD="align: right"] [/TD]
     			[TD="align: right"] [/TD]
     			[TD] [/TD]
     			[TD="align: right"] [/TD]
     			[TD="align: right"] [/TD]
     			[TD] [/TD]
     			[TD="align: right"] [/TD]
     			[TD="align: right"] [/TD]
     			[TD="align: right"]2004-01-17 23:32[/TD]
     			[TD="align: right"]15M[/TD]
     			[TD="align: right"]2004-01-18 01:36[/TD]
     			[TD="align: right"]22M[/TD]
     			[TD][U][B][URL=""]070-2058-01_PLOT_50_Introduction_to_Programming_in_BASIC_Se p1978.pdf[/URL][/B][/U][/TD]
     			[TD="align: right"]2012-02-21 09:17[/TD]
     			[TD="align: right"]24M[/TD]
     			[TD="align: right"]2006-04-07 14:34[/TD]
     			[TD="align: right"]9.0M[/TD]
    You should be able to manually enter and run their example programs in the 405x emulator.

    Currently the 405x emulator only supports loading one file - and does not understand accessing another file (I hope someone can fix that issue )

    I don't know why I haven't uploaded the 4050 System Tape, which includes 4050 BASIC tutorial programs.

    I'll work on posting the files from that tape right now!
    Last edited by nikola-wan; April 17, 2021, 04:44 PM.

    Leave a comment:

  • fsword007
    Originally posted by nikola-wan View Post
    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.

    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:

    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

    I added one line of code to the authors program to move the blinking cursor to the center of the Stargate.
    Yeah. I read some creative computing magazines at my university library and learned a lot about many interesting graphics outputs. I did not know which computers that users use for until now. I now know that they use Tek 4050 computer series to produce wire-frame graphics outputs. I will download Tek 4050 emulator and software libraries to try that.

    Does anyone know any Tek 4050 user manuals to learn how to use it and write BASIC programs?


    Leave a comment:

  • fsword007
    Very interesting! I like that CALL statement in BASIC listings that is used similar technique in TI-99/4A BASIC programming.

    In 1980s, I took computer graphics course at Gallaudet University in Washington DC and learned how to write Pascal programs to send graphics commands to 4027A color terminal from DEC VAX 8650 computer.

    I was looking for Tek 4027A emulator but can't find any emulator but found only Tek 405x emulators. I found Tek 4027A technical manual that provides complete specification for implementing Tek 4027A color terminal emulator but I do not have ROM 4027A dumps yet.


    Leave a comment:

  • nikola-wan
    I'm continuing to clean up old captures and found another Tektronix 4051 game that has not been posted before: SUB HUNT

    This file was on the same tape from a 4051 owner around 2000. He couldn't read the tape, so I managed to read the tape and make a copy. My latest capture of my copy of this tape had an incomplete image of the Sub Hunt program.

    I went back and used my latest tape dump utility the the original tape and got several more lines of code, but still incomplete as line 2000 is obviously not the end of the program. It looked like line 2000 was accessed on a KILL and I saw line 1050 in the program was a PRINT statement for a KILL, so I added 2010 GO TO 1050.

    I fixed the random number generator (the reference manual indicates -1 parameter should only be used once to set an initial random number and 1 or higher is used on subsequent RND calls to get the random sequence from that starting point.

    I also added instructions - as this program requires use of the User Definable Keys.

    Here are a couple of screenshots: a sub KILL, sub Escaped, and my new instructions.

    BTW - the lines on the "sub escaped" screenshot are the actual movement of the submarine during this game.

    Sub KILL.png

    Sub Escaped Detection.png

    Sub Hunt Instructions.png

    Universal format program and screenshots added to my games/uni format github folder.
    Attached Files
    Last edited by nikola-wan; April 12, 2021, 02:49 PM.

    Leave a comment:

  • nikola-wan
    NEW Tektronix BLACKJACK Game!

    I was going through my USB flash key looking at old captured files and found a Blackjack game that I had on a games tape, that I believe was a Tektronix demo tape with demo programs and games.

    I did a couple of fixes on the graphics and added a BLACKJACK title. The game supports 1 to 5 Players against the computer (Dealer).

    When it is your turn, you press the User Definable Key 1 (UDK 1) if you want a HIT of another card from the dealer. Or press UDK 6 to PASS, or UDK 10 if you were dealt two 10 point cards and want to double-down your bet and take one more card which is dealt down and turned up when all players complete their turns.

    After everyone quits the game, the computer displays a graph of the Balances for each player.

    I also tested Blackjack on my 4052, and the "HIT?" text is continuously refreshed for the current player, making the text brighter - which is an effect you don't get on the emulator.

    Universal version of the Blackjack program and the screenshots have been uploaded to my repository:

    Tektronix 4050 Blackjack Game

    Leave a comment:

  • nikola-wan
    New program - Fractals in Focus

    I received a new program for the Tektronix 4050 computers from Jack Miller called Fractals in Focus.

    Jack ported this program from an 80-Micro May 1985 article titled Fractals in Focus.

    The program in the article was designed for the Tandy Model III computer with the high resolution (640x240) graphics adapter installed.

    Jack's program takes full advantage of the 1024x780 vector resolution of the 4050 series computers, and their ability to scale the display to different data ranges with a WINDOW command.

    I have posted Jack's original program which runs on a 4052A or 4054A computer, and my modified version which restricts the variable naming to one character and one number, on my github site, along with several screenshots.

    Here is an example screenshot taken from running the 4050 version of the program on the 405x Emulator:

    The actual Fractal data pattern is displayed at the bottom of the screen, based on your input of # Sides, # Levels and Fractal, Inverse or Both.

    Very educational!

    Leave a comment:

  • nikola-wan
    Tektronix 4051 owners - now has their new, redesigned 4051 MaxiROM pack available!

    This ROM Pack will allow 4051 owners to run lots more programs in my github repository, including the R12 Enhanced Graphics programs which also include MUSIC!
    Last edited by nikola-wan; April 7, 2021, 06:12 AM.

    Leave a comment:

  • nikola-wan
    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:

    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:

    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:

           '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 by nikola-wan; April 6, 2021, 11:29 AM.

    Leave a comment:

  • nikola-wan
    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:

    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.


    Leave a comment: