Image Map Image Map
Page 6 of 6 FirstFirst ... 23456
Results 51 to 60 of 60

Thread: National Semiconductor SC/MP Introkit

  1. #51

    Default

    Quote Originally Posted by SiriusHardware View Post
    Gabriel, do you have any other computer-like toys available to you? Like an Arduino for example?
    I have multiple Arduino UNO, NodeMCU, WeMos-D1R2, Arduino Mega 2560 Rev3 and an Arduino Due.

    Quote Originally Posted by daver2 View Post
    I will send an e-mail to the guys at TNMoC at Bletchley to see if we can find out from their system.
    I wrote them a letter too, but they wrote me to go to the museum (for me it's a bit problematic), because the documents are not scanned yet.
    As they say "We have a number of documents on the SC/MP, Assembler Manuals, Press articles, Application Guides, Schematics, Technical Manuals and Introkit Manuals."

    Quote Originally Posted by daver2 View Post
    ...Gabriel could use his multimeter (with the board powered and set to read resistance) to probe the outputs from the SN74154 to that various...
    Thanks for the tip! I will try it as soon as possible.

  2. #52

    Default

    Quote Originally Posted by gabrielvond View Post
    I have multiple Arduino UNO, NodeMCU, WeMos-D1R2, Arduino Mega 2560 Rev3 and an Arduino Due.
    Welcome back, GabrielVond.

    I know the UNOs of course but not the Mega 2650 or the Due. Since you own such a good selection of Arduinos you are obviously very comfortably familiar with them and I'm sure you know how to program them.

    If you take your Introkit PROM, and:-

    -Connect its power pins to the 5V power rails of one of your 5-Volt Arduinos,
    -Connect the chip enable pin of the PROM to 0V/ Ground,
    -Connect 9 Arduino pins configured as outputs to PROM pins 5-11 ( A0-A6 ) and pins 13-14 ( A7-A8 )
    -Connect 8 Arduino pins configured as inputs to PROM pins 15-22 ( B0-B7 )

    Generate a count from 0 to 511 and output those values to the PROM A0-A8 pins. At each step, read in the data which the PROM is outputting from the current address.

    You could also, to be thorough, control the PROM /CE pin with one more Arduino output and ensure that the PROM outputs data when enabled, and does not output data when disabled.

    You can either send each value read in via a USB serial connection to a computer, either as raw binary or converted to ASCII hex, or you can embed an image of the code which the PROM should contain within the Arduino sketch and have the program compare (verify) what it is reading in from the PROM against that known good image.

  3. #53
    Join Date
    Jun 2012
    Location
    UK - Worcester
    Posts
    3,330

    Default

    Yes, welcome back - hopefully in-modded now!

    Need to re-group with where we were...

    Dave

  4. #54

    Default

    Since the unit already has a rather unconventional clock arrangement, how do you feel about the idea of planting a larger capacitor across the 680pF to slow the clock right down in order to make measurement / observation easier? It should make it possible to see if the display scanning action is normal. And if it is, since the 'monitor prompt' display is maintained by firmware routines, that would imply that quite a lot of the system is working.

    If it's scanning all of the display cells but showing the same character in each, that would suggest a problem with the part of the circuit which supplies the segment data to the displays.

    Unfortunately, corrupt firmware could also cause a wide array of strange effects including this one.

  5. #55

    Default

    As a minor contribution to this thread I have put together (OK, thrown together) a PROM reader specifically aimed at reading the SCMPKB PROM, although it could be used to read any other small PROM with minor tweaks. It's based on an Arduino Uno, which has enough pins to serve the 8 data pins + 9 address pins + 1 CE pin of a 512 * 8 bit PROM.

    Image #1: The pinout of the MM5214 PROM, as seen in the circuit of the Introkit / SCMP Kit.

    MM5214_Pinout.jpg

    Image #2: Connections between the Arduino and the PROM. I tested this using the SCMPKB code programmed into a single-supply 27C512 eprom with all the extra address pins, etc, strapped to make it 'look' like a 512 byte PROM. The actual MM5214 PROM presents one extra level of awkwardness because it needs a -12V supply as well as the +5V supply. You could literally use a 12V battery to 'generate' the required -12V supply but as with the case of the main system it would be much more desirable for the +5V and -12V supplies to 'appear' simultaneously. That may require some thought as to the best approach.

    PromReader.jpg

    Image #3, The Arduino connected to the 'Test Prom'. Not pretty, I admit.

    Arduino_Reading_Prom.jpg

    Image #4, Part of the output generated by the reader, viewed on the serial monitor tool in the Arduino IDE. Note the reader generates a 16-bit checksum of the code it has read from the PROM. The result seen in this image is DF5C, which is the result you should get from reading a healthy SCMPKB PROM. The code I programmed the chip with was CuriousMarc's SCMPKB code from the stash of Introkit information linked to earlier in the thread. He typed that in byte for byte from the original listing in the SCMPKB manual and just to be sure I also went through it and checked it against the original listing.

    Prom_Reader_Output.jpg

    Attached (as a .zip file) the Arduino .ino sketch which powers the reader. I don't claim this is lovely code, but it does work. It has no refinements at all, it just runs as soon a the sketch is loaded, so for best results clear the serial monitor screen and then run the sketch again by pressing / releasing the reset button on the Arduino.
    Attached Files Attached Files

  6. #56

    Default

    After a bit of thought, here is one way to make sure the -12V supply is only applied to the PROM whenever the +5V supply is applied:

    Minus_Supply_Switch.jpg

    Whenever the Arduino itself is powered, that powers the LED in the optocoupler, which then turns on the optocoupler transistor and the following NPN transistor, which together form a Darlington pair. That connects PROM pin 23 to the Minus 12V 'supply' being provided by the battery. When power to the Arduino is removed, the optocoupler and the Darlington pair turn off, removing -12V power from pin 23 of the PROM.

    The minus 12V supply doesn't have to be a battery, it can be an independent / floating / isolated 12V supply but ideally regulated, and definitely linear, because switching / switched-mode regulated power supplies which are not earthed have a bad habit of having half-mains voltage (at low current) superimposed on their 0V output due to the use of a low value 'Y' class capacitor between their 0V output and one side of the mains. If you touch it you'll just feel an unpleasant tingle but that same tingle could be death to a 40-year old irreplaceable antique IC.

    The diode in the line from PROM pin 23 would ideally be a low voltage drop type like a Schottky but a normal Silicon type will probably be OK.

  7. #57
    Join Date
    Jun 2012
    Location
    UK - Worcester
    Posts
    3,330

    Default

    Or just use a low current form A reed relay in a DIL package and drive that from the +5 V rail or a separate output from the Arduino.

    If you used two relays on an output bit from the Arduino, you can switch both the +5 V and -12 V rails to the socket thus permitting devicecswapping and only powering the ROM when required.

    Not sure what’s happened to the OP? It would be a pity not to get this machine working again...

    Dave

  8. #58

    Default

    Not sure, that is, in part, why I prod this thread occasionally. He / They did say they were busy.

    I did consider relays but I don't know off hand what the output current limit from the Arduino Uno is, so in the 'electronic' scheme suggested the +5V output only has to supply enough current to light one LED.

    Also, relay contacts tend to 'chatter' or bounce when they first connect or disconnect, so rather than just a single application of power there would in reality be a series of very short connects and disconnects before the relay finally settled.

    If the +5V power was also switched in this way, then there would be short periods of time when the +5V was applied and the -12V wasn't, and vice-versa, potentially quite stressful for the PROM. That's why I went with electronic switching. Even with that scheme there is a likely propagation delay through the -12V switching circuit, so application / disconnection of the -12V supply will lag very slightly behind application / disconnection of the +5V supply. I still think that's cleaner and safer than using relays.

    One strange thing which came up out of all of this is that I have discovered my file copy of the MK14 (original) OS is somewhat different from the SCMPKB code- I get different checksums from them, and yet the 'Old' MK14 code runs perfectly well - or as well as the original OS ever did - in an MK14. So I'm mystified by the difference ( I haven't yet looked to see where the two files differ). I have always thought that the SCMPKB code and the original MK14 OS were one and the same.

  9. #59

    Default

    Just found it - I wrote a quick bit of Python to compare the two files and the MK14 'Old OS' file that I have has a one-byte difference in it, at hex address 0046.

    In the SCMPKB file and also according to the OS listing in the MK14 (V1) manual, the code at 0046/0047 should be CA 08.
    In the MK14 'Old OS' file that I have, the code at 0046/0047 is 08 08

    Since the SCMPKB listing and the MK14 (Version 1) manual listing both agree that the content should be CA 08, I would say that the 'Old OS' file I have is faulty. I'll have to let the source for that file know about this.

  10. #60

    Default

    Further developments, thanks to an observant user over on the Vintage Radio forums - it turns out that the purpose of the CA 08 instruction at 0046 is to clear the ninth display cell, which of course is not used / not connected on the MK14 which only uses 8 of the 9 display cells on its calculator display.

    Someone may have realised this instruction was redundant, and by changing the first byte of the instruction to 08 (NOP, in SC/MP) changed the code at 0046 / 0047 to NOP NOP, in effect 'optimising' the code for the MK14. But, this must be something that someone did after the event because the original monitor listings in the MK14 manual / SCMPKB manuals both have CA 08 at 0046 / 0047.

    This is not something which is going to break the monitor code or stop it working, but it did set off my alarm bells when I tried to compare it against the traditionally identical SCMPKB code.

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •