https://blog.jgc.org/2022/03/resurrecting-dataman-s4-prom-programmer.html John Graham-Cumming Tuesday, March 15, 2022 Resurrecting a Dataman S4 PROM programmer The Dataman S4 is a lovely piece of 90s' kit: a PROM programmer and emulator launched in 1992. I recently bought one from a seller on eBay and needed to resurrect it. It was in perfect working order but needed a little awakening to get it going. Happily, Dataman are still around, still provide online support for the S4 and still sell accessories for it. [AVvXsEj7LZH5SbP2QwoAFPqvUGIbhSEXJVJorl4HhVi_pfZ_3oclcvB-g_Uznu] With a little work I have a fully functional S4 and recently used it to burn new firmware for a Minitel 2 (that also dates from 1992), but that's another story. [AVvXsEgl1v5WBvYej3zYvW8-u1_pddwSSYjiIoG3T] The Dataman S4 seller helpfully included a note saying "You probably want to change the batteries as they are the originals". Yay. 30 year old NiCd batteries! But my first step was to see if the batteries in it worked at all. Plugging in the charger... nothing happened. Happily, Dataman tells you exactly how to reset the S4 to kickstart charging. Those instructions worked great and soon the S4 was working. [AVvXsEiwxyVt-I0Mdjpmd6b6DdSFljJ44DJkMxd36mB5Ze1CwlaFJ3YV] I changed the CR2032 for a new one since this device had not been used for years. Although the S4 worked fine with the original batteries I decided it needed a new lease on life and went out to buy new NiCds. Oh wait, the 2006 EU Battery Directive makes batteries containing cadmium really hard to buy. But luckily, Dataman sells a replacement pack which they quickly shipped to me in Portugal (they have instructions on how to replace the pack). So, new batteries and the S4 was ready to rumble. [AVvXsEiH9U2xVj9GHqNQXa9HOjnkaFb4oyGmPs1ufH9gnWySmXWr] Well, almost. The S4 needs to be loaded with a library of PROM types that it knows about so that it can emulate or burn them. And long dead S4s have no library loaded (hence the message NO LIBRARY LOADED on screen). To load the library you need to have a PROM with the library on it, put it in the ZIF socket and tell the S4 to copy it. But I didn't have a PROM, so I needed to download the library image and burn it into a PROM, and then load it into the S4 as above. But how do you burn the PROM without the PROM-burning-library? Well, the S4 knows how to burn a 27256 whatever state its in. This is all explained clearly in the manual and in the notes when you download the library image. (You can also upload the library via the RS/232 port using their Windows software, but I'd rather not use Windows if I can avoid it... looking at you LEGO and your poor support for non-Windows). At this point I was deeply impressed by Dataman's printed documentation, online support response time, sales speed (took five days to get me the battery from the UK to Portugal including customs), and web-based resources. So, off to buy some 27256 EPROMs from a seller in Portugal. With the 27256 in hand I needed to connect the S4 to my laptop. For this I used their USB-to-RS232 cable and it appeared on my Mac as /dev/ cu.usbserial-1460. [AVvXsEhjhRBJTUBul-ljhaxyp_QPxOURH68jBRKB0Q04] By default the S4 speaks 9600 baud, 8 bits, no parity, one stop bit. I used miniterm.py to talk to it with hardware flow control enabled ( CTRL-T R). Almost every button on the S4 has an equivalent command over RS/232 and these are all documented in the manual. To test that I could successfully talk to the S4, I put a blank 27256 in the ZIF socket and asked the S4 to test it by typing PR (which magically turns into PRETEST 27256): $ python miniterm.py --- Available ports: --- 1: /dev/cu.BLTH 'n/a' --- 2: /dev/cu.Bluetooth-Incoming-Port 'n/a' --- 3: /dev/cu.URT1 'n/a' --- 4: /dev/cu.URT2 'n/a' --- 5: /dev/cu.usbserial-1460 u'USB-Serial Controller D' --- Enter port index or full name: 5 --- Miniterm on /dev/cu.usbserial-1460 9600,8,N,1 --- --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- >PRETEST 27256 BLANK ROM > Great, it's a BLANK ROM (which means no data on it and the S4 can burn it). Next step is to upload the Intel HEX format file containing the library image. Which you do by typing RE (which turns into RECEIVE INTEL since the default file format will be Intel HEX). You then type CTRL-T CTRL-U to upload the file. RECEIVE INTEL --- File to upload: HexE300.hex --- Sending file HexE300.hex --- .............................................................. --- File HexE300.hex sent --- EOF 0FFFF > Here you can pause for a musical interlude as you listen to the sound of the Dataman S4 receiving a file. At that point the library ROM image is in the RAM of the S4 and it's possible to check its validity with the CH command: >CHECKSUM RAM 08000,0FFFF SUM = 002A0801 And happily the checksum 002A0801 matches that in the HexE300.txt file that comes with the HexE300.hex library image. With the blank 27256 in the ZIF socket its time to burn the library image onto it. That's achieved with the BU command. Or by hitting the BURN key on the S4's keyboard. But before that you have to move the image down to memory location 00000 from 08000. That's because the default firmware in the S4 is very simple: it only handles the 27256 and has limited functionality. So, prior to burning the 27256 I did a MOVE command to shift the image in RAM down to 00000. And then I hit BURN. [AVvXsEj9rU5iWNE6QSDKDxwe9m8u8rH6InNcCIr_UJ13Tlsq3S-LOLQ7qgq2BX] One final check is to checksum the newly burnt 27256 to make sure it's got the right image on it. That can be achieved with the green SUM button. [AVvXsEinMBOV0s21nAxrEscx5RrFBg-JQ84fiiMAxaUC9z_e02tTi3J0u] And so, after having changed the batteries and prepared a library ROM it's time to load that library into the S4 and it'll be fully restored. I like to label things as gifts to my future self. [AVvXsEi7oqWk4iZi854AmeUDstB2QFKQCqtdzQVdCofW] That's as simple as pressing the LIB button. [AVvXsEjxEAPr8CeB4cegP2nlSh2ljZB1ec6lyr1_D6w2Uz2ZCdfqyE_t] And here it is, my Dataman S4, in all its glory. Now where's that Minitel? [AVvXsEiUeyzsFeiLhqXDAMoQdZZ69PwoaJ_euPAMferqnFCsYe] at March 15, 2022 # Email ThisBlogThis!Share to TwitterShare to FacebookShare to Pinterest No comments: Post a Comment Older Post Home Subscribe to: Post Comments (Atom) Resurrecting a Dataman S4 PROM programmer The Dataman S4 is a lovely piece of 90s' kit: a PROM programmer and emulator launched in 1992. I recently bought one from a seller on e... [AVvXsEj7LZ] * How to write a successful blog post First, a quick clarification of 'successful'. In this instance, I mean a blog post that receives a large number of page views. For ... * Making an old USB printer support Apple AirPrint using a Raspberry Pi There are longer tutorials on how to connect a USB printer to a Raspberry Pi and make it accessible via AirPrint but here's the minimal ... * [Picture] Your last name contains invalid characters My last name is "Graham-Cumming". But here's a typical form response when I enter it: Does the web site have any idea how r... Blog Archive * V 2022 (2) + V March (2) o Resurrecting a Dataman S4 PROM programmer o The "Roman Holiday" teleprinter code * > 2021 (6) + > November (1) + > July (1) + > May (2) + > April (1) + > January (1) * > 2020 (2) + > June (2) * > 2018 (2) + > December (2) * > 2017 (4) + > May (1) + > April (3) * > 2016 (11) + > November (1) + > September (1) + > July (2) + > June (1) + > May (3) + > April (1) + > March (2) * > 2015 (11) + > November (1) + > July (2) + > May (1) + > April (5) + > March (1) + > January (1) * > 2014 (4) + > November (2) + > July (1) + > June (1) * > 2013 (39) + > September (4) + > August (1) + > July (4) + > June (2) + > May (5) + > April (12) + > March (3) + > February (2) + > January (6) * > 2012 (77) + > December (3) + > November (6) + > October (6) + > September (7) + > August (6) + > July (6) + > June (8) + > May (4) + > April (9) + > March (7) + > February (9) + > January (6) * > 2011 (79) + > December (5) + > November (7) + > October (2) + > September (5) + > August (2) + > July (8) + > June (10) + > May (6) + > April (9) + > March (6) + > February (12) + > January (7) * > 2010 (95) + > December (13) + > November (9) + > October (16) + > September (19) + > August (2) + > July (9) + > June (12) + > May (1) + > April (1) + > March (4) + > February (2) + > January (7) * > 2009 (31) + > December (1) + > November (8) + > October (3) + > September (6) + > August (9) + > June (1) + > May (1) + > January (2) * > 2008 (19) + > December (2) + > September (1) + > June (3) + > May (3) + > March (2) + > February (6) + > January (2) * > 2007 (33) + > December (1) + > November (3) + > October (5) + > August (2) + > July (2) + > June (4) + > May (3) + > April (1) + > March (6) + > February (4) + > January (2) * > 2006 (25) + > December (2) + > November (2) + > October (3) + > September (5) + > July (1) + > June (1) + > April (6) + > February (1) + > January (4) * > 2005 (3) + > December (1) + > November (2) Labels * alan turing * anti-spam * arc * babbage * babygaga * cansole * climate change * facebook * gaga * games * gnu make * google go * hardware * machine learning * mathematics * my services * perl * privacy * pseudo-randomness * rants and raves * security * the geek atlas Report Abuse Pages Search This Blog * Home [ ] [Search] Simple theme. Powered by Blogger.