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


    I understand

    My backlog of Tektronix projects includes getting back to work on the GPIB tape drive emulator with microSD card storage.

    I've been having too much fun with the 4907 Floppy drive system - and running my port of Adventure to Tek BASIC



      Tektronix 4052/4054 - TransEra ROM Packs - ROM images uploaded to github

      I finally uploaded my ROM captures from the TransEra ROM Packs and board photos to my github repository of Tektronix programs:

      I captured the ROMs from all four ROM Packs including:

      741-RTC Real Time Clock
      750-SPU Super Utilities (use General Utilities Manual)
      752-ADC 16-channel, 12-bit Analog to Digital Converter
      764-RAM Auxiliary Memory (unfortunately - I don't have that Auxiliary Memory enclosure).

      Most of the user manuals for the above ROM Packs are already posted on bitsavers at

      I uploaded my scan of the Analog to Digital Converter manual to the same folder as my ROM images for that Pack.

      Here is the Readme for my github folder with the ROM images and board photos:


        Latest Tektronix 4052 / 4054 Tape Dump Program

        I have been using the TransEra Super Utilities ROM Pack to recover all the files from a Tektronix 4050 tape including SECRET files with a single program.

        Someone may be able to decipher the Tektronix SECRET program algorithm.
        I managed to decode in the 1970's the last program on the System Tape - which was a SECRET program to test DRAM memory.
        I was able to read the BINARY blocks of the SECRET program file - and because the program is completely print statements until the last three lines - I wrote an equivalent BASIC program line by line, saved it as SECRET and compared with the System Tape file until the bytes matched.
        The last three lines in that file were FIND X - where X was the next file on the tape, READ A$, then CALL "EXEC", A$.

        Since I had the Tektronix 8002 Development System along with the 4051, I looked at the data returned on the READ - it was ASCII characters from 0 to ?, which I theorized could be ASCII HEX.
        I translated the string in to HEX and manually disassembled the suspected 6800 program.
        Yes it was HEX, and the program basically wrote and verified AA55 through the entire RAM address space - including the assembly program and then hung.
        That's why the print statements at the beginning of the program indicated you would have to power cycle the computer after the program finished.

        I then used the undocumented CALL "EXEC" command to write my own assembly programs for the Tektronix - including my own music program (PWM to the speaker), and others including dumping the Tektronix BASIC ROM to the screen and triggering the 4631 printer to print the screen, PAGE, and continue I still have those printouts. I found that putting a RTN in the assembly program would return control to the next line in the BASIC program after the CALL "EXEC".

        The program listing for my Tektronix 4050 Tape Dump program below has been uploaded to the TransEra 750 Super Utilities ROM Pack folder.

        The CALL commands in the program use the Super Utilities ROM to find and read every 256 byte block on a tape and send the data to the PC using the RS232 serial interface in the backpack.

        For performance, when the blocks are from an ASCII program or ASCII data file - the blocks read are simply transmitted directly over serial.
        If the blocks are from a BINARY or SECRET file - the 256 bytes are converted into 512 ASCII HEX characters with the routine starting at line 590, and then the 512 HEX characters are transmitted to the PC over serial.

        The Tape Dump for the Tektronix General Utilities Tape is in the Super Utilities folder:

        I suggest you download the file and examine it with Notepad++.

        The first 256 byte block of any Tektronix 4050 tape file is the file header and the file type is at a specific starting location in this block. The first number in the header is the tape file number. The last number in that line is the number of 256 byte blocks that were MARKed for this file.

        You will notice that the first four files in this tape dump are SECRET programs, and there is a line of text at the beginning of the first block after the header block: "TUT TUT TUT -- THIS IS A SECRET FILE"

        This is the message printed to the screen by the BASIC ROM if you attempt to READ the file from BASIC.

        I have not written the BASIC program using the Super Utilities ROM PACK to restore one of my tape dumps to a blank tape - but it should not be very difficult:
        Read the first character string from the file - that is the header
        Extract the file number and number of 256 byte blocks
        FIND that file number (0 if the tape is blank and you are MARKing FILE 1)
        MARK 1,SIZE where size is 256*NumberOfBlocks
        Use the Super Utilities CALL commands to write each block (including full 256 byte header block)
        If another file header is READ from the dump file - extract the file number and number of blocks and MARK 1,NewFileSize and continue
        Here is my current Tape Dump program listing:
        **** Note: I just noticed my program uses the 4052A/4054A BASIC feature with multi-character variable names like "Bin$" Change those names to single character for 4052/4054 computers ***

        100 PRINT "CAPTURE COMPLETE TAPE - Monty McGraw SEP 2019"
        120 INPUT B
        130 B=B-1
        150 REM ***
        170 DIM T1(6),T2(6)
        180 READ T1
        190 READ T2
        200 DATA 1,6,10,19,28,36
        210 DATA 4,3,8,8,7,7
        220 DIM A$(258)
        230 PRINT "FILE#: ";
        240 FIND B+1
        250 CALL "OPEN?",G,H
        260 CALL "TBACK"
        270 CALL "TREAD",A$
        280 CALL "FILE?",A
        290 CALL "TYPE?",D,E,F
        300 IF B=A THEN 530
        320 A=B+1
        330 B=A
        335 PRINT @40:A$;
        340 PRINT @40:
        350 PRINT @40:
        360 PRINT A;"/";
        370 B=A
        380 FIND A
        390 CALL "OPEN?",G,H
        400 CALL "TBACK"
        410 CALL "TREAD",A$
        420 PRINT @40:A$
        430 CALL "TYPE?",D,E,F
        440 F1=F+1+(F>1)*2*E
        450 F$=SEG(T$,T1(F1),T2(F1))
        460 PRINT F$;
        470 IF D<>1 THEN 490
        480 PRINT " SECRET";
        490 PRINT "  ";
        500 CALL "TREAD",A$
        510 CALL "FILE?",A
        520 F1=F+1+(F>1)*2*E
        530 IF F1=1 THEN 570
        540 IF D=1 OR F1=4 OR F1=6 THEN 590
        550 PRINT @40:A$;
        560 IF A<>-1 THEN 270
        570 PRINT "DONE"
        580 END 
        590 FOR I=1 TO 256
        600 Bin$=SEG(A$,I,1)
        610 Bin=ASC(Bin$)
        620 High=INT(Bin/16)
        630 Low=Bin-High*16
        640 High$=CHR(High+48+7*(High>9))
        650 Low$=CHR(Low+48+7*(Low>9))
        660 PRINT @40:High$;Low$;
        670 NEXT I
        680 GO TO 270
        Last edited by nikola-wan; November 9, 2019, 08:12 AM.


          Tektronix 4050 CYCLE factory test tape

          I was looking at a box of Tektronix tapes in my garage and saw one had "4050 CYCLE 10/83" on the label.

          I was intrigued, and didn't remember ever trying to read that tape.

          I removed the disintegrated drive belt and replaced with a known good belt from a 3M DC6250 cartridge.

          I noticed after I put on the belt that the tape was loose on the takeup reel, so I carefully wound the tape on the other reel so I could remove the slack.

          It took a couple of attempts to read the tape - but finally got all four files: one program, two data files, and the LAST file which is always empty.

          The program really was a Tektronix factory burn in test of 4052A and 4054A computers - and the tape I recovered had last been run on a 4052A that failed!

          The CYCLE program runs 9 different display tests, checks the ROM CRCs with a factory ROMPACK containing a CALL "MEMORY" command, and then tests read/write to the tape and logs the test results.

          I tried running the CYCLE program on my 4054A computer and commented out the CALL "MEMORY" and tape read/writes to just look at the display tests.

          I got all 9 display tests to run - and posted a youtube video:

          Tektronix 4051/4052/4054 Factory Test

          The last display test - 9, was a very interesting 3D image:

          The program appears to have been used for all the Tektronix 4050 computers as all the BASIC statements are compatible - except for the CALL "MEMORY", and I imagine the factory had a ROMPACK for the 4051, as one of the tests compares the BASIC ROM CRCs against a table. In this particular version - the table is for the 4052 or 4054 with version 4.4 ROMs or the 4052A/4054A with V1.4 ROMs.

          My 4054A has version 1.5 ROMs - so it would have failed this test

          The program is full of interesting things:
          • -TIMING: program uses the published RND(-1) first value to find the model, and the DATA statements provide a parameter to obtain 1 second in FOR/NEXT loops
            -ROM CRC Table: I compared the program table to the Diagnostic ROM CRC table and there were more values(?). Also their table seemed to have start and end addresses for each ROM. The addresses had 0 or 1 as last nibble - I think for EVEN and ODD ROMs!
            -SPEED: The delay parameter indicates the relative timing of the 4052/4054 FOR/NEXT is about 8.3X and the 4052A/4054A FOR/NEXT is about 7.0X the speed of the 4051.

          I have posted the complete tape dump, the original CYCLE program, and my modifications to run on ANY 4051/4052/4054 computer on my github repository for Tektronix 4050 Programs:

          4050A_CYCLE_TEST folder

          I have run the modified program on my 4054A and the 4050 Emulator - I would like others to run it on their 4051 and 4052 computers and lets compare the timing to mine.



            EBAY tape recovery

            I just received a set of DC300 tapes from an EBAY seller that had Tektronix labels:

            I was able to replace the drive belts on all the Tektronix labeled cartridges, although the tape oxide was removed from the tape - wherever the old belt was at

            Typically, the tapes were rewound - so only the first file was unrecoverable.

            All the tapes were from Tektronix 4051 computer(s).

            First the Bad news:
            - one tape was blank
            - Four contained Tektronix software - that I doubt anyone cares about:
            Business and Accounting, Statistics 1, 2D Drafting - only the autoload file, not any programs, 4050A CYCLE (I already recovered and posted one of these tapes recently)

            That left five tapes with interesting labels.
            1. Handwritten file listing
              Mostly user written, simple CAD application programs
              One 494 Test Program with an overlay
              "Star Trick", really simple program that drew random dots simulating stars
              "Puzzle Picture", simple program to draw the "U-shaped bar" with three circles at the end
            2. 4051 Demo Tape
              This one was mainly a collection of Tektronix demo programs copied from the System Tape
              Data Storage and Graphing, Bar Graphs, 2D Array and Sort
              Slide Maker Program (Tek user contributed, already recovered and archived)
            3. NAVY DEMO
              Bad news - this was a Verbatim tape, not 3M and none of the files were recoverable
              I have not been able to recover any Tek tape that was recorded on a Verbatim tape (you can see the tape reels are different from all the rest in the photo)
              I could find a file, but only read the first record with my 4052. I tried reading on my 4924 - couldn't find files. Same with my 4054A.
              It looked like the programs were a submarine battle simulator for the NAVY
              I even tried moving the tape from the Verbatim to a Tektronix (3M) cartridge - I believe the Verbatim tape material stretches.
            4. Machine Code (51 written in pencil on back)
              The label was intriguing but the contents were not
              Three tiny files - looked like 4051 CALL "EXEC" assembly code examples
              First file - loaded into the Tek 4051 web-browser emulator gave an error message that the EDITOR ROM Pack was missing
              Second file runs - but no output on the emulator screen
              Third file ran with no output. I found there was no CALL "EXEC" statement and added one. Then found the program needed to DIM the string variable, added the DIM statement. This program prints one HEX output byte per line starting at an address typed into the string variable. Pretty lame

            Bottom line - none of the recovered EBAY tape programs were worth posting on my archive site

            Although, the machine language programs prompted me to dust off a 4051 machine language program I wrote on my 4051 computer at work in 1979. See my next post in this thread


              My Tektronix 4051 assembly code Memory Dump program

              As hinted in my last post, I've uploaded one of the Tektronix assembly language programs I wrote in the late 1970's on my 4051 at work.

              This program has been uploaded to my Tektronix 4050 program repository on github here:


              To use this program, you enter a two digit HEX page that you want to dump - the example below, output from the 4051 web-browser emulator shows page FF - the last page of the 4051 BASIC ROM.

              To print a different memory page, just input the two digit HEX page - and the screen will PAGE and print the new HEX data.

              As I posted before on the Tektronix 4051 CALL "EXEC" command, this program uses BASIC print statements to print the header text and then uses my program loaded into CALL "EXEC" to print the data.

              Since I had no access to the 4051 BASIC ROM entry points - my assembly program was written to directly draw dots on the screen, and includes a dot matrix array for each of the sixteen HEX characters

              Now, with the 4051 assembler, I (or anyone else) should be able to use the BASIC ROM entry points to do this same thing, but also print the decoded ASCII characters for each set of 16 HEX bytes - like typical debug programs.
              Last edited by nikola-wan; March 29, 2020, 07:38 AM.


                Very nice image. Is it something that You can write on most computers, from some Basic/similar book? Look interesting.


                  Originally posted by pgru2 View Post
                  Very nice image. Is it something that You can write on most computers, from some Basic/similar book? Look interesting.
                  I don't remember if I found this format in one of the late 1970's computer magazines or invented it

                  Here is a website that discusses DEBUG for DOS, and has links to DEBUG programs for Windows 10.



                    Thank You for answer.


                      BTW: - about stretched tape. I don't known if it is possible or how much it cost but some companies on the market, write on their sites that they can recover from damaged tape. E.g.


                        Originally posted by pgru2 View Post
                        BTW: - about stretched tape. I don't known if it is possible or how much it cost but some companies on the market, write on their sites that they can recover from damaged tape. E.g.

                        Thanks for the link.

                        In the case of the NAVY DEMO tape - I don't believe it is worth trying to recover the 40 year old simulator files.

                        At this point there are very few folks around the globe that still have working Tektronix 4050 computers - I would say less than a dozen



                          Lunar Lander for Tektronix 4051 4052 and 4054 computers

                          I had recovered a Lunar Lander program from a Tektronix tape, but it was designed for the 4051 computer in 1976 and ran too fast to play on my 4052 and 4054A computers.

                          The program has three difficulty levels: Beginner, Advanced, and Expert
                          and two different LANDERS: 3 Main Engines or 1 Main Engine and four attitude jets for rotation
                          There is also a training screen with the LANDER you selected to become familiar with the engines or attitude jets.

                          You must use four of the ten the User Definable function keys to run this program - as these keys cause interrupts (GOSUB) to trigger up to three lines of code and then a RETURN

                          • 1 - Increase main engine thrust
                            2 - Decrease main engine thrust

                            6 - Increase thrust on left or decrease right thrust
                            7 - Increase thrust on right or decrease left thrust

                          So I updated the program with a FOR/NEXT delay loop of 1264, selected to slow it down to similar speed as running on the 4051 emulator - about 1 second per lander position update.

                          I also added an Engine Status graphic with refreshed text for the thrust of the left thruster, right thruster and main engine - to make it easier to control by a beginner like me

                          This program makes extensive use of array drawing with the PRINT @32,20: Z4 where Z4 is dimensioned as an 8 by 2 array of 8 vectors to fast draw the current orientation of the lander.

                          There are very few comments - so my first modification was to create the static Engine STATUS graphic from the main drawing code in the program.

                          This also was where I added the special refresh print statements to temporarily display the engine thrust next to that engine on the Engine STATUS graphic.

                          Since the Tektronix 4050 computers have a storage tube display - the standard PRINT and DRAW leave the characters or lines on the screen until it is erased with the PAGE key.
                          The PRINT @32,24 command will print a single text character in refresh mode. My modification prints the value of all three thrusters after every LANDER update.

                          With this helper graphic and practice, I am now able to land successfully on my 4052 and the emulator, as in the 405x web emulator screenshot below - but not very often And this is in beginner mode:

                          I've posted LANDER4050 in my github repository at:



                            Here is a photo from my 4052 with a successful landing - you only have a couple of seconds between end of one round and automatic start of the next round:


                              Originally posted by nikola-wan View Post
                              Nine Tektronix 4052 ROM Cartridge binaries and photos posted on my github archive in a new 4052_ROM_Pack_Firmware folder:

                              • 4050E01 ROM Expander (Cartridge photos only - uses BASIC ROM firmware)
                              • 4052 File Manager (-00 firmware and docs)
                              • 4052 File Manager (-01 firmware and docs - this is the one I am using with my 4907)
                              • 4052 Advanced File Manager (requires Tektronix 4909 Hard Disk system which I don't have)
                              • 4052 Character and Symbol - 4052R11
                              • 4052 Editor
                              • 4052 Graphics Enhancement - 4052R12 (includes firmware link to bitsavers, doc, and programs - fast graphics plus music!)
                              • 4052 GPIB Enhancement - 4052R14 (4052/4054 only)
                              • 4052A GPIB Enhancement - 4052R14-1A (4052A/4054A only)
                              • 4052 RS-232 Printer Interface - 4052F10

                              I have scanned my Tektronix 070-2908-00 4050 Series Option 10 RS-232 Printer Interface 4051F10 and 4052F10 Instruction Manual and uploaded it to my github repository in the folder with the ROMs for this card:



                                Lunar Lander for Tektronix 4051 4052 and 4054 computers

                                Hi Monty,

                                many thanks for uploading all these goodies. Having painstakingly restored my 4052 over what felt like aeons, I'm only now actually _using_ it and uploading some of your tapedumps via the Option 1 serial comms interface. Having mucked about mostly with the hardware, I'm still very much a novice in handling the 4052, and it admittedly feels awkward (for instance, I still don't "get" the line editing, if there even is one). RTFM, I guess...

                                I bashed together a *NIX script that delimits each BASIC line with the ROPEN/RCLOSE (DC2/DC4) ctrl character sequences expected by the comms interface's DTRECV routine, and I get stuff written to tape, although as DATA rather than PROG according to TLIST. Note that I have to remove any control characters in your tape dumps beforehand -- I use an sed script for that. I also upload with 4800 baud and wait ~0.1 sec between records to avoid buffer overruns on the 4052. Most of the uploads ran, though those for the 4051 failed as expected, particularly when CALL "EXEC" was involved.

                                I tried your revised lunar lander last night, and was surprised to get an I/O ERROR on the READ statement in line 5965. As I understand, READ's input "device" defaults to the DATA statement (@34?), so I dunno what's going on there. Any ideas? I'm using the v5.1 firmware, btw -- the only working chipset I have, infact.

                                Thanks again for archiving this material for the very few working 4050's still around (as you surmised, about a dozen would be my guess too).

                                Last edited by GanjaTron; June 8, 2020, 11:13 AM.
                                "END OF LINE" [MCP, 1982]
                                "An admin that isn't a bit hackerish is just the guy mopping up the keyboard" [Phrack V0b I3f P12]
                                "Any appearance of danger is simply a device to enhance your experience" [Futureworld, 1976]