Keyboard Shortcuts
Likes
Search
Tek 4041 GPIB Controller
A public thank you for all the work you have put into this, Monty.
toggle quoted message
Show quoted text
Will contact you directly to progress things. DaveB, NZ -----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Monty McGraw Sent: Friday, June 05, 2020 04:08 To: [email protected] Subject: Re: [TekScopes] Tek 4041 GPIB Controller Gary Robert Bosworth and Dave Brown and anyone else interested in a copy of the 4041 System Verification tape, send me an email: mmcgraw74@... Monty McGraw |
I successfully created a copy of the System Verification tape and tested it on my 4041 without the ROM Carrier and Program Development ROMs installed! Quite an effort - I received the 15 DC100A NOS tapes Sunday and spent the rest of the day trying to record on one of them - unsuccessfully. The belt was not broken when I took off the shrink wrap - but it broke immediately when I pressed the AUTO LOAD button on the front panel. I replaced the belt with one of the 4 1/4" Plastibands and tried multiple times to format the tape but kept getting errors. The band kept popping off and the tape head was getting clogged with 'tape shed' and the two guide posts collected 'tape shed' and the tape would stick. An internet search turned up a youtube video from Curious Marc that itemized several different issues with trying to recover the data from old DC100 tapes in an HP computer - I was seeing most of those issues with these NOS tapes. I believe these five tapes are from 1993, a second box 1992 and the third box from 1991 - based on the publishing date on one of the papers inside the case with each tape. The solution recommended in the video was to 'bake' the tapes at 135 degrees F in a dehydrator. I went looking for tape 'baking' instructions, and said his best results were from baking for two days. I opened up the other four tapes, removed the plastic belt rollers, the capstan and taped the two drive reels together as recommended with the tape directly between the two reels. I have an Excalibur dehydrator and set the control to 135F. I put all five NOS tapes in the dehydrator, numbering each on the 'invisible tape'. I measured the temp of the tapes multiple times during the two days with an infrared temp sensor - got within one degree of 135F every measurement. Instructions indicated letting the cartridges cool for an hour - I waited longer than that. First I tried reassembling tape #1 that I was unable to use on Sunday - with a fresh Plastiband belt. The 4041 kept indicating an Invalid Tape error. Possibly from previous recording attempts. I then put tape #1 aside and picked tape #2, fresh band, plugged it in and got CRC error when I pressed AUTO Load. I was able to format the tape and began writing one file at a time to the tape, checking the directory list after each operation. I had to replace the belt a couple of times, and retension a couple of times, but got all the files written. Here is the resulting directory list of my first System Verification Tape copy. Notice that I didn't put a tape name in the FORMAT command, and didn't SET TIME until several files were recorded. My process steps were not quite correct - here is a new sequence, after you have bootstrapped the console to COMM: (COMM0: if you have two serial ports) 1 - SET TIME 2 - Format the tape, recommend adding the parameter to name the tape 3 - Select an ASCII file to SEND with Realterm 4 - Start the transfer - you will see the lines of the program on the Realterm window 5 - Select the Realterm console window in order to type commands to the 4041 6 - SAVE "filename(OPE=NEW,CLI=YES,FOR=ITEM)" 7 - If you don't get an error, type DIR and check that 'filename' is at the end of the DIR and the correct type (IT) and filesize. If error, DELETE FILE "filename" and do STEP 6 8 - LOAD "COMM:" then press front panel "ABORT" button. This clears the previous program in memory. 9 - now repeat starting with STEP 3 until done Here is my tape copy long directory list. Only file that didn't match length with original is the last file TSCSI.ASC. I actually I wrote both the TDIR and CONFIG files in 2000 - note the file dates are the 4041 default of 1981 if the SET TIME command is not run. From the timestamps - it took me three hours to write the files to the tape.
FILE FILE LENGTH START NUMBER LAST AUTOLD IT 2550 5 10 01-JAN-81 00:28:00
TERMIN IT 8160 15 32 01-JAN-81 00:40:00
SYSVER IT 3570 47 14 01-JAN-81 00:44:00
CONFIG AS 1020 61 4 01-JAN-81 00:50:00
PROCED IT 1020 65 4 01-JAN-81 00:59:00
LINK IT 765 69 3 01-JAN-81 01:01:00
DISP IT 1275 72 5 03-JUN-20 19:33:00
KEYPAD IT 1530 77 6 03-JUN-20 19:37:00
PRINTE IT 765 83 3 03-JUN-20 19:41:00
TAPE IT 4590 86 18 03-JUN-20 19:43:00
SOFTER IT 765 104 3 03-JUN-20 19:45:00
IO IT 4590 107 18 03-JUN-20 19:48:00
TIMER IT 1530 125 6 03-JUN-20 19:49:00
PDKYBD IT 4335 131 17 03-JUN-20 20:01:00
GPIB IT 2040 148 8 03-JUN-20 20:10:00
GPIBLB IT 3315 156 13 03-JUN-20 20:12:00
GPIBCO IT 2040 169 8 03-JUN-20 20:13:00
SLAVE IT 3315 177 13 03-JUN-20 20:15:00
MASTER IT 1785 190 7 03-JUN-20 20:17:00
PAU IT 765 197 3 03-JUN-20 20:21:00
TPCAL IT 1275 200 5 03-JUN-20 20:23:00
PTRCAL IT 1020 205 4 03-JUN-20 20:25:00
FRMAT IT 1020 209 4 03-JUN-20 20:27:00
TSTPTN IT 2040 213 8 03-JUN-20 20:37:00
CHKOPT IT 1275 221 5 03-JUN-20 20:39:00
OPT2 IT 765 226 3 03-JUN-20 20:56:00
HELP IT 3060 229 12 03-JUN-20 21:00:00
PDTEST IT 255 241 1 03-JUN-20 21:05:00
SCSI IT 2550 242 10 03-JUN-20 21:07:00
TSYSVR AS 4080 252 16 03-JUN-20 21:09:00
TSCSI AS 4590 268 18 03-JUN-20 21:19:00
98685 |
In my 4041 experiments this weekend, I was able to run the System Verification program by transferring the .asc version I have archived from my PC into the 4041. However, I have to modify steps 4 and 5 in my process: 4 - Set up Realterm to send the .txt program file you want to transfer into the 4041. start Realterm SEND - the file is loaded into 4041 memory as though you typed it :) 5 - Type SAVE "filename" to save the program in 4041 memory to the filename you enter in quotes Alternatively, you can just run the program you downloaded into memory by typing RUN. I did this for the System Verification program, as I am still having issues auto loading that tape. I think the COPY command I used to transfer to COMM to the PC retries more than the LOAD command. I was able to test the Front Panel display and even tried testing the printer. Still have printer issues - but I don't think I have to fix it. I have also transferred the CPU board with V2.1 firmware into the chassis that had the extra COMM and GPIB ports. I then successfully bootstrapped the 4041 to use the COMM0: port as console with my Tektronix 4052 with the console in "Storage" mode. I also got COMM1: working with my PC at the same time. I am experimenting with translating one of my 4052 games to run on the 4041 and output the graphics to the 4052 |
I do have a full set of development ROMs. My 4041 is in perfect condition,
toggle quoted message
Show quoted text
and only needs healthy tapes to continue providing useful service. On Fri, May 29, 2020 at 6:16 PM Monty McGraw <mmcgraw74@...> wrote:
Gary, --
Gary Robert Bosworth grbosworth@... Tel: 310-317-2247 |
Dave Brown, I found the NOS DC100A tapes on EBAY. Since these tapes are obsolete (over 20 years) - some of the sellers on EBAY have previously used tapes, some have new tapes still in factory wrap. If the drive belts are deteriorated or broken (very likely) - they tend to damage the tape oxide on the takeup and supply reels - as this design has the drive belt in contact with the oxide side of the tape :( For the NOS tapes - I will likely NOT try to run them with the original drive belts, and immediately open the cartridge - remove the original belt and install a Plastiband as shown in my photo folder. Cross my fingers - that will allow recording the System Verification tape files to create a usable, bootable tape. The System Verification tape autoloads a program that allows you to select the TERMIN program to change the console to the rear serial port, or run the System Test programs. |
Dave Brown, There are three ways to interface to the 4041 that I see from the documentation. #1 is the intended case for GPIB instrument tests, likely writing test results to the tape. 1 - AUTO LOAD a tape that has an AUTOLD file and possibly other programs that will run automatically (like the System Verification tape). User Input will be the front panel buttons. Output will be the LEDs on the Front Panel or files written to that tape. 2 - With Program Development ROMs (and other Option ROMs as required by your program) you can use the LEMO keyboard interface to type BASIC commands in immediate mode, output will be on LEDs on the Front Panel. You can directly type the two commands in my previous post to change the CONSOLE from the front panel to COMM. Then you can use the PC or attached terminal of choice (change the SET DRIVER parameter for different terminal types) to control the 4041 through BASIC commands in immediate mode. 3 - variation on #2. Once using either keyboard or COMM interface you can type LOAD "file" to select any program file on the tape and RUN it. |
Dave Brown, Great photo. Looks like you have all the same option ROMs mine has! My plan on creating a copy of the System Verification tape is pretty simple - using the TXT files I posted on github, written to tape in the order listed in the 'LONG DIR' file: You must have the Program Development ROMs to transfer ASCII text files into IT files on tape. Otherwise you can try to load and save the IT files - I'll be trying ASCII first. 1 - connect PC with TXT files to LEMO keyboard connector (with USB to TTL Serial adapter, after performing resistor mods listed in my post /g/TekScopes/message/167533. I use Realterm, set to 4800 N82) 2- Type "SET DRIVER "COMM0(BAU=9600,FLA=BID):", then type"SET CONSOLE "COMM0:" (if you have two COMM ports, otherwise "COMM" for single COMM port) (now disconnect USB to TTL adapter and use USB to RS232 to COMM port. I typically close Realterm and reopen to ensure I'm programming the different port to 9600 N82 with XON/XOFF selected) 3 - insert blank tape and type "FORMAT" 4- Begin file transfer: set up Realterm to open file to send, type "LOAD "COMM:", start Realterm SEND. File should be loaded in 4041 memory 5 - Type "SAVE" to save file to tape 6 - select next file to send on Realterm and go to step 4 until done To create a 'boot' tape to enable the serial port - the only file needed on the tape is AUTOLD.IT, so the only file to LOAD is CONFIG.ASC, the do a SAVE AUTOLD and the Program Development ROMs will create the binary AUTOLD.IT file on the tape. |
Very interested in how you find those tapes. If they are OK then programming them might be a challenge?
toggle quoted message
Show quoted text
I dug out my 4041 and checked the ROMS- photo of the ROM carrier in my Dropbox here- I was always under the impression that a boot tape was required to kick it into life and facilitate changing control to the serial port - based on recent posts I now see that may be wrong? Or is that just to use the keyboard? I need to read those posts again. My 4041 has been stashed away waiting for a boot tape to be acquired for quite some time but is that really necessary? The 25 pin RS232 connector on the back of mine is labeled comm 0. Must admit I have not looked at this problem in some years. I have no idea re condition of the tape drive in mine but visually it looks OK, as does the whole instrument, both internally and externally. DaveB, NZ -----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Monty McGraw Sent: Saturday, May 30, 2020 13:17 To: [email protected] Subject: Re: [TekScopes] Tek 4041 GPIB Controller Gary, I have ordered 15 NOS 3M DC100A tapes from EBAY. They are scheduled to arrive Sunday. I hope the drive bands are still ok - but I may have to replace them with Plastibands. I will try to format and create a System Verification tape from the files I have recovered and report the results here. Does your 4041 have the Option 30 Programming Development Option ROMs? Monty |
Gary, I have ordered 15 NOS 3M DC100A tapes from EBAY. They are scheduled to arrive Sunday. I hope the drive bands are still ok - but I may have to replace them with Plastibands. I will try to format and create a System Verification tape from the files I have recovered and report the results here. Does your 4041 have the Option 30 Programming Development Option ROMs? Monty |
We would like to see working cassette tapes with 4041 functional programs
toggle quoted message
Show quoted text
that can boot-up and test the 4041. . On Thu, May 28, 2020 at 7:58 PM Monty McGraw <mmcgraw74@...> wrote:
I just finished creating the binary files for each of the Option ROMs v2.1 --
Gary Robert Bosworth grbosworth@... Tel: 310-317-2247 |
Stephen,
I think it would be pretty simple to put an Arduino board inside the 4041 case - connected to the internal keyboard header, plus my resistor mod so the Arduino could direct drive serial into the 4041. It might be easier to not worry about how long the 4041 takes to boot and just install an Arduino reset button on the back of the 4041. Press the Arduino reset button and the Arduino program would output the SET DRIVER and SET CONSOLE commands - which would require that the 4041 had the Program Development ROMs. Does everyone on this thread already have those ROMs in their ROM Carrier? Otherwise - the 4041 will only auto load an AUTOLD.IT program from tape - as the Program Development ROMs are required to run ASCII BASIC commands like SET DRIVER and SET CONSOLE. Or someone needs to disassemble the Utility ROM and figure out how to make a PROM that would hold the AUTOLD.IT program to do the serial commands. When I look at the 16-bit binary image of the Utility ROM, it looks organized similar to the Tektronix 4050 ROM packs, with a header, followed by ROM call names, each followed by the entry point address for that ROM call. In addition the last 1024 bytes of the Utility ROM look like a template for the PROM image: Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00003C00 30 2B 00 20 47 F3 00 20 2B 4B 00 24 60 AA 4E 75 0+. Gó. +K.$`?Nu 00003C10 00 00 00 00 00 06 00 10 46 4F 52 84 00 08 41 53 ........FOR?..AS 00003C20 43 FF 00 00 49 54 45 FF 01 00 45 4F 4D 01 01 11 C?..ITE?..EOM... 00003C30 45 4F 55 01 01 10 45 4F 41 01 01 0F 45 4F 48 01 EOU...EOA...EOH. 00003C40 01 0E 00 00 00 00 46 69 6C 65 20 20 54 79 70 65 ......File Type 00003C50 20 20 53 69 7A 65 20 20 20 20 43 72 65 61 74 69 Size Creati 00003C60 6F 6E 20 44 61 74 65 20 20 5F 5F 5F 5F 20 20 5F on Date ____ _ 00003C70 5F 5F 5F 20 20 5F 5F 5F 5F 20 5F 5F 5F 5F 5F 5F ___ ____ ______ 00003C80 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 00 00 00 00 ____________.... 00003C90 00 05 50 52 4F 4D 3A 00 00 00 00 00 00 00 00 00 ..PROM:......... 00003CA0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003CB0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003CC0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003CD0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003CE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003CF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003D00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003D10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003D20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003D30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003D40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003D50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003D60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003D70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003D80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003D90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003DA0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003DB0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003DC0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003DD0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003DE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003DF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003E00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003E10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003E20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003E30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003E40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003E50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003E60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003E70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003E80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003E90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003EA0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003EB0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003EC0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003ED0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003EE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003EF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003F00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003F10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003F20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003F30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003F40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003F50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003F60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003F70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003F80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003F90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003FA0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003FB0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003FC0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003FD0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003FE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00003FF0 FF FF FF FF 22 22 21 22 01 01 FE FE 3D 0F F4 20 ????""!"..??=.? |
Monty,
Good to see you have now established communication with the keyboard port. You are correct that the COMM0 port description is required for a 4041 with the dual RS232 port option. I use the same technique since my tape drive doesn't work and I have to manually enter those commands every time the 4041 is powered up to redirect the console. I been thinking of automating the process by building a small microcontroller board that emulates the keyboard and outputs the necessary commands every time the 4041 is powered on. I haven't progressed this yet as I need to do some experiments to figure out when the 4041 has completed its power-up sequence and is ready to accept keyboard commands and how fast it can process those commands. Stephen |
I found two resistors next to the keyboard header on the CPU board. One was about 130 ohms to Ground, the other was about 120 ohms to +5V.
The other end of both resistors next to the keyboard header was connected on the PCB to the TX pin from the keyboard. I unsoldered the end of the 130 ohm and 120 ohm resistors on the opposite side from the keyboard header. I inserted a 1K ohm resistor into the hole where the 120 ohm resistor was connected to +5V and connected the other end of that resistor to the end of the 120 ohm resistor. I didn't have to remove the CPU board for this operation. This allowed my Parallax USB to TTL serial to work. This converter has female pins and I used Arduino breadboard jumpers to connect the serial interface to the LEMO pins. From the front panel, the top left LEMO female socket is Ground - and was connected to the Parallax Vss pin. The bottom left male pin on the LEMO is the TX pin from the keyboard and I connected it to the Parallax TX pin. I could now type on the PC Realterm application (4800 8N2) and see the output on the red LEDs on the front panel. I then typed two commands - from maddisassembler in 2016 "RE: 4041 basic program for redirection", but left off the line numbers and typed in immediate mode: SET DRIVER "COMM0(BAU=9600,FLA=BID):" SET CONSOLE "COMM0:" I got an error message on the second command. The operators manual shows "SET CONSOLE "COMM:", so I typed that and that text stayed on the LED display - but my serial console was then enabled. I guess COMM0 is needed if you have the second COMM port option. The 4041 I was using has only one COMM port. I uploaded a photo of my simple mod. I left the two original resistors if I wanted to restore to original later. /g/TekScopes/photo/247590/0?p=Created,,,20,2,0,0 Monty |
Thanks for posting all this valuable information.
For your problems with the LEMO keyboard connector check the signal levels on the data input. The keyboard input uses TTL logic levels but there is a very heavy internal pull-up resistor on the 4041 keyboard serial data input. You will need to sink about 20mA to get an adequate logic low level and, although this was OK when driven with the older bipolar TTL devices, most modern CMOS-based interface chips would struggle to sink this much current. |