UK Vintage Radio Repair and Restoration Powered By Google Custom Search Vintage Radio and TV Service Data

Go Back   UK Vintage Radio Repair and Restoration Discussion Forum > Specific Vintage Equipment > Vintage Computers

Notices

Vintage Computers Any vintage computer systems, calculators, video games etc., but with an emphasis on 1980s and earlier equipment.

Closed Thread
 
Thread Tools
Old 5th Jan 2021, 10:26 pm   #21
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,485
Default Re: MK14 Tape Interface

I think out of all of us here in this particular thread twostickes has not just one but two original MK14s, perhaps one of them has its original keypad? If so maybe he'd be kind enough to let you have a picture or two (you will have to hook up via PM, twostickes may not know, but we don't put email addresses or other personal details in forum posts here).

My one original MK14 doesn't have its original keypad so a picture of it would not be very representative.

I'll dust off my own cassette interface at the weekend and have a go at loading the test audio generated by twostickes's program (the original focus of this thread).
SiriusHardware is offline  
Old 5th Jan 2021, 10:54 pm   #22
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 661
Default Re: MK14 Tape Interface

I have quickly typed in the details into..

http://81.98.24.96/alphatronic/masmx.html

I hope that helps.
JohnBHanson is offline  
Old 5th Jan 2021, 10:55 pm   #23
twostickes
Triode
 
Join Date: Dec 2020
Location: Durham, County Durham, UK.
Posts: 20
Default Re: MK14 Tape Interface

Hi SiriusHardware you're ahead of me. .exe file does work, but I didnt finish the extra command line arguments yet but that shouldnt matter.
Yes I can get some photos of these two MK14s (issue ii and v) with their original keypads. However, I thought that issue ii used a conductive membrane but this one has key domes, so maybe it has had an early upgrade, Im not sure of the history but it may have been an option in the early days, or much more recent mod. Anyone got ideas?

And thanks in advance of any testing of the .exe or the wavs (can be found at
https://github.com/twostickes/MK14WA...main/bin/Debug
)

One last question - why am i a diode

Funny enough I think i invented the LED - when I was a kid i got hold of a germanium point contact diode, in a sealed glass bead. I accidentally passed a lot of current through it and it glowed red (at least the wire did)
twostickes is offline  
Old 5th Jan 2021, 11:00 pm   #24
Cobaltblue
Moderator
 
Cobaltblue's Avatar
 
Join Date: Dec 2010
Location: Exeter, Devon and Poole, Dorset UK.
Posts: 6,824
Default Re: MK14 Tape Interface

Quote:
Originally Posted by twostickes View Post

One last question - why am i a diode
The more posts you make the more electrodes you get so I think when you get to 10 posts you become a triode.

Cheers

Mike T
__________________
Invisible airwaves crackle with life or at least they used to
Mike T BVWS member.
www.cossor.co.uk
Cobaltblue is online now  
Old 5th Jan 2021, 11:03 pm   #25
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: MK14 Tape Interface

Quote:
Originally Posted by twostickes View Post
One last question - why am i a diode
Your "rank" depends on how many posts you have made and possibly how long you've been a member. Keep posting and you'll make it to the dizzy heights of "triode"
Slothie is offline  
Old 5th Jan 2021, 11:23 pm   #26
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,485
Default Re: MK14 Tape Interface

Quote:
Originally Posted by twostickes View Post
I thought that issue ii used a conductive membrane but this one has key domes
My issue II only has the contact 'fingers' where the original rubber sheet keypad was, you couldn't fit domes to mine. Not officially anyway, the PCB has no provision for them.

JBH: Thanks for that summary you linked to but it is still a little bit beyond beginner level.

Last edited by SiriusHardware; 5th Jan 2021 at 11:30 pm.
SiriusHardware is offline  
Old 5th Jan 2021, 11:49 pm   #27
twostickes
Triode
 
Join Date: Dec 2020
Location: Durham, County Durham, UK.
Posts: 20
Default Re: MK14 Tape Interface

Here are some keyboard photos, I hope.
This is for the issue V.
Attached Thumbnails
Click image for larger version

Name:	iss5_20210105_223104.jpg
Views:	54
Size:	59.4 KB
ID:	223951   Click image for larger version

Name:	iss5_20210105_223151.jpg
Views:	54
Size:	70.8 KB
ID:	223952  
twostickes is offline  
Old 5th Jan 2021, 11:56 pm   #28
twostickes
Triode
 
Join Date: Dec 2020
Location: Durham, County Durham, UK.
Posts: 20
Default Re: MK14 Tape Interface

and this is for the issue ii.

Ive disassembled it to see whats going on.
The rubber mat is in there, but not really in use since some modern key buttons have been installed. Its actually a really nice fix, the keyboard works flawlessly, and feels nice, its actually useable!

The mat is more plastic than rubber. I can confirm its conductive, about 50kohm with probes 1" distance.

But I will be returning it back to its original state soon for the sake of vintageness, and would just use the TI or USB keyboard programmer!
Attached Thumbnails
Click image for larger version

Name:	iss2_20210105_223252.jpg
Views:	55
Size:	76.9 KB
ID:	223953   Click image for larger version

Name:	iss2_20210105_223854.jpg
Views:	64
Size:	127.0 KB
ID:	223954   Click image for larger version

Name:	iss2_20210105_223304.jpg
Views:	64
Size:	104.9 KB
ID:	223955  
twostickes is offline  
Old 6th Jan 2021, 12:06 am   #29
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,485
Default Re: MK14 Tape Interface

That's a very delicately done mod, the domes would have to be very precisely fitted otherwise if there was any movement at all they would be a nightmare. I would have said that mod was physically impractical due to the difficulty of getting the feet of the domes to land in the right places and then stay put but I'm obviously wrong.

I believe JBH was probably after a tasteful shot of a whole original MK14 (with an original keypad), but I assume you are working on that one as well.
SiriusHardware is offline  
Old 6th Jan 2021, 12:16 am   #30
Mark1960
Octode
 
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 1,265
Default Re: MK14 Tape Interface

That might be the original keyboard parts on the issue II. If you still have it disassembled it would be nice to get them scanned and a measurement of the thickness of each part.

I like how it looks original but unlike the original it actually works.
Mark1960 is offline  
Old 6th Jan 2021, 1:36 am   #31
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,485
Default Re: MK14 Tape Interface

I actually wouldn't de-mod that keypad because when assembled it looks exactly original and, as Mark says, works better than it ever did originally.

It is most likely a 'historic' mod that the machine has had for far longer than it has NOT had it, if you see what I mean. I would leave it as a valid of part the machine's history, especially as it is done so neatly and invisibly and works so well.
SiriusHardware is offline  
Old 6th Jan 2021, 10:20 am   #32
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: MK14 Tape Interface

Its almost certainly a factory mod, to make those contact domes work the PCB layout has to be correct. Given that SoC made several changes to the design in only a couple of years with little or no announcement of each revision I'd be surprised if they didn't make several attempts at improving the keypads. Didn't the version with clear plastic buttons have domes underneath?

Additionally, the construction of the keyboard as photod by Twostickes is very like the construction of the Acorn 1 keypad and we know a lot of the ideas for that came from the MK14.

The picture I snagged off eBay of the allegedly original unpopulated Issue IV clearly shows tracks for fitting domes - its possible the PCB was modified for them as early as issue II but SoC decided that it worked well enough without the domes for a time.
Attached Thumbnails
Click image for larger version

Name:	mk14v4b.jpg
Views:	54
Size:	65.4 KB
ID:	223959  
Slothie is offline  
Old 6th Jan 2021, 10:34 am   #33
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,485
Default Re: MK14 Tape Interface

Quote:
Originally Posted by Slothie View Post
Its almost certainly a factory mod, to make those contact domes work the PCB layout has to be correct.
If you look again, the domes (or micro-miniature switches?) have been meticulously soldered onto the thin tracks of the 'contact fingers' which the rubber sheet was meant to press down onto.

I could do the same on my issue II. SOC didn't do sub-versions of issue II, issue III etc as far as I know. An issue II PCB is an issue II PCB.
SiriusHardware is offline  
Old 6th Jan 2021, 11:47 am   #34
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: MK14 Tape Interface

Quote:
Originally Posted by SiriusHardware View Post
Quote:
Originally Posted by Slothie View Post
Its almost certainly a factory mod, to make those contact domes work the PCB layout has to be correct.
If you look again, the domes (or micro-miniature switches?) have been meticulously soldered onto the thin tracks of the 'contact fingers' which the rubber sheet was meant to press down onto.

I could do the same on my issue II. SOC didn't do sub-versions of issue II, issue III etc as far as I know. An issue II PCB is an issue II PCB.
Ah yes, I looked closer and they look like actual tact switches, and the photo of the rear of the PCB clearly shows the track layout is wrong for domes.... OK you got me there!
But I agree with Sirus, don't undo it, it certainly is something a person would have done in the late 70's/80s especially given the joy that the original keypad was. "Restoring" it would be like taking a classic hot rod and returning it to factory spec.
It actually looks like a pretty good mod, it looks good assembled.

Last edited by Slothie; 6th Jan 2021 at 11:53 am.
Slothie is offline  
Old 6th Jan 2021, 1:19 pm   #35
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,485
Default Re: MK14 Tape Interface

The punched white lower sheet looks thicker than I remember the original one being and that is probably to accommodate the height of those little switches. I have to say it looks like a really excellent job and if I still had all my original keypad components I would probably do that on my own issue II, having seen that it is possible.
SiriusHardware is offline  
Old 6th Jan 2021, 5:45 pm   #36
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: MK14 Tape Interface

Well straying back a little closer to the topic, I have successfully uploaded a program to my MK14 via the tape software using an arduino connected pin13->SenseB and SIN.
It was surprisingly easy

This code uploads Sirius's "Slothie" program.

Code:
#define TX 13  // Pin to transmit on; use 13 because its flashing the LED too!

// Slothie program
const byte code[] = { 0xC4, 0x0D, 0x35, 0xC4, 0x00, 0x31, 0xC4, 0x0F, 
                      0x36, 0xC4, 0x3B, 0x32, 0xC4, 0x07, 0x01, 0xC2,
                      0x80, 0xC9, 0x80, 0xC4, 0xFF, 0x02, 0x70, 0x94, 
                      0xF5, 0x90, 0xF1, 0x00, 0x79, 0x06, 0x74, 0x78,
                      0x3F, 0x38, 0x6D};

void setup() {
  // put your setup code here, to run once:
  digitalWrite(TX,LOW);
  pinMode(TX, OUTPUT);
  //Serial.begin(9600);
  delay(2000); // WAIT for 2s to press GO on MK14
  // dump the code to pin13 in the MK14 tape format.
  for (int k=0; k<sizeof(code); k++) {
    sendByte(code[k]);
  }
}

void loop() {
 
}

void sendByte(byte b) {
  for (int i=0; i<8; i++) {
    byte thisbit = b & 1;
    //Serial.println(thisbit);
    b = b>>1;
    digitalWrite(TX, HIGH);
    delay(thisbit==0?4:16);
    digitalWrite(TX, LOW);
    delay(thisbit==0?28:16);
  }
}
It's at the rip-roaring speed of 4 bytes a second, but thats still quicker than typing.
Of course this arduino sketch is bare-bones, it would be better to pipe in the bytes from a serial port on a connected computer.
Sirius's key presser is a better option for sheer usability but this was an interesting "made from bits I have lying around" project for a cold afternoon!
Attached Thumbnails
Click image for larger version

Name:	IMG_20210106_163344.jpg
Views:	53
Size:	112.8 KB
ID:	223995  
Slothie is offline  
Old 6th Jan 2021, 5:55 pm   #37
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,485
Default Re: MK14 Tape Interface

As you already have that going, how much can you vary the data output rate up and down before the MK14 is no longer able to read it? If the answer is 'a lot' then twostickes can probably just leave his program's output as it is.
SiriusHardware is offline  
Old 6th Jan 2021, 8:01 pm   #38
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,485
Default Re: MK14 Tape Interface

And for your next trick, modify it to inject code into the machine's keypad edge connector at higher speed using the 'Sense and React' method:-

-8 driven keypad lines connected to 8 inputs on the Arduino

-4 keypad input lines connected to 4 Arduino lines operating in pseudo 'open-collector' mode.

To 'press' a chosen key the Arduino watches for the appropriate column line to be driven low and then takes the appropriate keypad row line low for as long as the column line stays low - then releases it high.

If you got that working it wouldn't actually be a first, there's a guy on the Raspberry Pi forums who used this entry method with a BBC model B as the uploading device, many years ago when the BBC B was still a current machine.
SiriusHardware is offline  
Old 6th Jan 2021, 8:17 pm   #39
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: MK14 Tape Interface

Quote:
Originally Posted by SiriusHardware View Post
And for your next trick, modify it to inject code into the machine's keypad edge connector at higher speed using the 'Sense and React' method:-

-8 driven keypad lines connected to 8 inputs on the Arduino

-4 keypad input lines connected to 4 Arduino lines operating in pseudo 'open-collector' mode.

To 'press' a chosen key the Arduino watches for the appropriate column line to be driven low and then takes the appropriate keypad row line low for as long as the column line stays low - then releases it high.

If you got that working it wouldn't actually be a first, there's a guy on the Raspberry Pi forums who used this entry method with a BBC model B as the uploading device, many years ago when the BBC B was still a current machine.
I actually wrote a sketch to do that, I just havent got enough clip probes to connect it up! seems like I need to think of a different connection solution. Maybe I'll think about it tomorrow.
The only question in my mind as to if it would work or not was how quick I need to be from waiting for the column signal to go down to zero and getting a zero to the appropriate row....
Code:
/* MK14 Keyboard simulator... */

/* Try using digitalread/write to see if its fast enough... */

/* 1) Select a column to read, wait till it goes -> 0
 * 2) set the row bit to output a zero
 * 3) wait for column -> 1
 * 4) set the row bit back to input.
 */
/* Setup pins for the columns, rows */

const byte colPin[8] = {2, 3, 4, 5, 6, 7, 8, 9};
const byte rowPin[4] = {10, 11, 12, 13};
#define GO 18
#define MEM 19
#define ABORT 20
#define TERM 23

void setup() {
   for (byte col=0; col<8; col++) pinMode(colPin[col], INPUT);
   for (byte row=0; row<4; row++) {
     pinMode(rowPin[row], INPUT);
     digitalWrite(rowPin[row], LOW);
   }
}

void pressKey(byte row, byte col) {
   byte colp = colPin[col];
   byte rowp = rowPin[row];
   // might need to do this several times if the MK debounces?
   // Otherwise just have a wait between keypresses.
   while (digitalRead(colp)==LOW) ; // Make sure col isn't already low
   while (digitalRead(colp)==HIGH); // Wait for it to go low
   pinMode(rowp, OUTPUT);           // Drive appropriate row low
   digitalWrite(rowp, LOW);
   while (digitalRead(colp)==LOW) ; // Wait for it to go high again
   pinMode(rowp, INPUT);            // Set it to input ("tristate")
   delay(50); // Give MK14 time to process...
}

void sendKey(char key) {
  switch(key) {
    case '0'...'7': 
      pressKey(0, key-'0');
      break;
    case '8':
    case '9':
      pressKey(1, key-'8');
      break;
    case 'A'...'D':
      pressKey(3, key-'A');
      break;
    case 'E':
    case 'F':
      pressKey(3, key-'C');
      break;
    case GO:
    case MEM:
    case TERM:
    case ABORT:
      pressKey(2, key-16);
      break;
    default:
      break;
  }
}

void loop() {

}
Slothie is offline  
Old 6th Jan 2021, 8:42 pm   #40
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,485
Default Re: MK14 Tape Interface

You could do a pre-emptive strike. Let's say that the driven line you are watching for is [column 3] and the return line you need to take low in response to that line going low is [row 1].

You know that the column lines are scanned in a particular order, so what you can do is watch for a rising edge on the column line which gets activated before the one you are actually waiting for, in this case the [column 2] line

On that rising edge of column 2, take [row 1] low. Keep it low until the rising edge of [column 3].

If you do that, [row 1] is already low at the instant where the OS takes [column 3] low and checks the state of the row lines.

With the Arduino running at 16Mhz it may be that the less complicated and more intuitive method of watching for a falling edge on [column 3] and taking [row 1] low for the duration of ([column 3]=low) will suffice, but if not the above dodge should work.

Note I haven't bothered to check the actual order in which the columns are scanned so they may very well count down, rather than upwards as suggested in my 'worked example' above. You would have to check.
SiriusHardware is offline  
Closed Thread

Thread Tools



All times are GMT +1. The time now is 12:14 pm.


All information and advice on this forum is subject to the WARNING AND DISCLAIMER located at https://www.vintage-radio.net/rules.html.
Failure to heed this warning may result in death or serious injury to yourself and/or others.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright ©2002 - 2023, Paul Stenning.