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 8th Apr 2020, 8:31 pm   #341
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: MK14 schematic revisions

A bit more about SBASM3.

The main points are that directives like ORG (Origin) Define Bytes, and so on are all two letter abbreviations prefixed by a full stop, so '.OR' is equivalent to ORG in some other assemblers.

As far as the syntax is concerned the main difference is the way in which the high byte and low bytes of labels are referenced.

In 'MK14 manual' assembly language there are two very commonly used instructions of the form

Code:
LDI H(Disp)
LDI L(Disp)
Meaning, Load 'A' Immediate with the high byte and the low byte respectively of label 'Disp'.

In SBASM3 these become

Code:
LDI /Disp
LDI #Disp
I happen to think the original syntax is nicer and more logical so I asked San Bergmans, the author of SBASM3, whether he would consider including the MK14 syntax as an alternative legal syntax in the crscmp.py cross file. He said he would prefer not to, as the use of the /, #, prefix was common to all of the crosses included with the assembler.

That said, the assembler is open source and written in Python, so if anyone feels like editing the crscmp.py cross file so that it will assemble original MK14 manual listings, knock yourselves out.

Anyway, here is the 'Message' program from the manual, written for SBASM3 syntax. By comparing this with the original listing in the manual you should be able to use it as a kind of Rosetta Stone for converting manual listings into code which SBASM3 will assemble.

Note the two defined bytes at addresses FFFE/FFFF at the end of the code - these tell the Pi-uploader that after loading the code, it should run the program from the address in those two bytes (high byte, low byte).

Code:
                .LF     message.lst

;---------------------------------------------------------------------------
;   message.asm
;
;   'Message' for MK14, SC/MP
;
;---------------------------------------------------------------------------
                .CR     scmp               ;Select the SCMP cross file
                .LI     TON                ;Output to list file enabled
                .TF     message.hex,int    ;Output file name / hex format

Disp		.EQ	0x0D00

;		Allow 'E' instead of '-128' when the E reg is the offset
E		.EQ     -128

Speed           .OR     0x0F1F	;Reserve storage byte for speed variable
                .BS     1

;		Program starts here at execution address 0F20

Tape		LDI	/Disp  ; Replaces original assembler 'LDI H(Disp)' syntax
		XPAH	1
		LDI     #Disp  ; Replaces original assembler 'LDI L(Disp)' syntax
		XPAL	1

Go		LDI	/Text 
		XPAH	2
		LDI	#Text-8
		XPAL	2

Move		LDI     0xC0
                ST      Speed
Again		LDI	0x07
Loop		XAE
		LD	E(2)
		ST	E(1)
		LDI	0xFF
		CCL
		ADE	;Decrement EXT register
		JP	Loop
		DLD	Speed
		JNZ	Again
		LD	@-1(2)
		JP	Move
		JMP	Go

;               Message is stored BACKWARDS in memory
;               terminated with 0x80.For continuity,
;               first and last seven characters have to
;               be the same, as here.

                .OR     0x0FA0
		.DB	0x80,0x79,0x79,0x6d,0x40,0x37
		.DB	0x77,0x39,0x40,0x3e,0x3F,0x6e
		.DB	0x40,0x6d,0x77,0x40,0x6e,0x3e
		.DB	0x7f,0x40,0x79,0x37,0x30,0x71
		.DB	0x40,0x6e,0x38,0x38,0x3f,0x1f
		.DB	0x40,0x77,0x40,0x6d,0x30,0x40
		.DB	0x39,0x40,0x71,0x3f,0x40,0x6d
		.DB	0x40,0x79,0x79,0x6d,0x40,0x37
		.DB	0x77,0x39
Text            .EQ     $

;		If the Pi-uploader finds two bytes at address FFFE-FFFF
;		in the Hex file, it uses them as the execution address
;		(Hibyte/Lowbyte) to auto-run the program after loading.

Autorun		.OR	0xFFFE
		.DB     0x0F
		.DB     0x20
SiriusHardware is online now  
Old 8th Apr 2020, 9:03 pm   #342
DeltaAlpha52
Tetrode
 
Join Date: Feb 2020
Location: Crawley, West Sussex, UK.
Posts: 77
Default Re: MK14 schematic revisions

Cheers I had found that one but not yet got it setup to compile any code.

I have checked the contents of address 0000, 0200, 0400 and 0600 and
0000 08
0200 1F
0400 1F
0600 1F

so I assume this means the PROM images are not repeated, so is there any other checks to identify which version the replica is like.
DeltaAlpha52 is offline  
Old 8th Apr 2020, 9:22 pm   #343
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: MK14 schematic revisions

Yes, you have yourself the equivalent of an original issue V there, as the unwanted PROM images were present in all of the previous issue PCBs. Thanks for having a look at that, as we have been trying to get that confirmed for ages.

The only other main feature of the issue V, which I think it shares with issue IV, is that the keypad area of the PCB is laid out so that it can also accept four pin push switches similar to the one originally supplied as the reset switch, as an alternative to using dome contact switches. If you look around on the net for images of MK14s you will find a few which have 'proper' push switches fitted directly on the PCB.

Can you also confirm the keypad edge connector connections are the same as on an original MK14?. If you made it all the way through the 'V2 programmer' thread you may have seen that the JM replica PCBs do not have the same keypad connection layout as original issue II, III, IV, V MK14s - it would be good to confirm that the 'Martin' PCBs do have the standard MK14 keypad edge connection layout. It seems highly likely, because we think it is a direct copy of the original issue V PCB.

Last edited by SiriusHardware; 8th Apr 2020 at 9:34 pm.
SiriusHardware is online now  
Old 8th Apr 2020, 9:49 pm   #344
Timbucus
Octode
 
Join Date: Mar 2019
Location: Barry, Vale of Glamorgan, Wales, UK.
Posts: 1,362
Default Re: MK14 schematic revisions

I have converted a few programs to the SBASM format including Paul Robson SEGTRIS (needs 512bytes) and I have typed in the 2D LIFE program from the October 1979 Computing Today issue - I am sure nobody will mind them attached here...

I have a few others in progress like PICO BASIC - needs extra 1.5K RAM and some games for the VDU - I will post when they are working.

Collection.zip
Timbucus is offline  
Old 10th Apr 2020, 9:37 am   #345
DeltaAlpha52
Tetrode
 
Join Date: Feb 2020
Location: Crawley, West Sussex, UK.
Posts: 77
Default Re: MK14 schematic revisions

I've wired up the edge connector using the original layout - with the 2 gaps and col 6 and 7 in the wrong order. It is difficult to check the actual tracks since I have stuck the keyboard down. Martin's board does have the four holes around each keypad to accept switches but I thought I'd try his dimple switches as they do look so like the original.

Have you posted the design on github or somewhere apart from the forums?

I'm working on the Arduino version probably using a mega256 as it has more memory, but the basic test did run on the standard Uno.
Attached Thumbnails
Click image for larger version

Name:	MK14_Pizero_Interface.jpg
Views:	65
Size:	72.1 KB
ID:	202614  
DeltaAlpha52 is offline  
Old 10th Apr 2020, 11:14 am   #346
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: MK14 schematic revisions

Great, so the Czech PCB has the historically correct keypad connector layout as expected, that's another piece in the Jigsaw, thank you.

No, I haven't put the Pi-uploader project on Github or any other sensible option like that, so it can only be found in this forum and the VCFED Vintage computer forums. Of the two, the discussion around it is much more detailed in this forum (for example, Tim's discovery that the JM PCB needs a slightly different version of the circuit),

I've never really gone into how much RAM the various Arduinos have, I only have the 'base' UNO model. On my original PIC based serial-to-mk14-keypad uploader I used an 8-pin 32K serial SRAM IC as the serial input buffer so I was considering taking a similar approach with the UNO but the simpler it is the better, so if you can find a way to utilise the Arduino's internal RAM to best effect or use a 'bigger' one with more available internal RAM, that would be better than having to add external RAM to the project.

I chose to use Intel Hex rather than raw binary input files because then the uploader can automatically direct the code to the correct addresses even when it is in separate sections, as in the 'Message' program where the program code and the message character code are in separate areas of the memory. It also means you don't have to pre-inform the MK14 where the code has to go, like you do when using the built in tape routines.

The downside of Intel Hex is that the hex file is much larger than the equivalent raw binary file so, unless you want to have to severely limit the serial download speed, you will need a serial input buffer big enough to capture several K of Intel Hex while the uploader works its way through it at a speed limited by the maximum speed at which code can be typed into the MK14.

Of course there is another approach which is to send individual key characters, rather than a whole hex file, to the Arduino. So all you do is send one of 20 different codes, each representing a key, to the Arduino, and the Arduino then 'presses' the corresponding key on the MK14.

With this approach you then need a host - specific support program or script (like send14) which works through the hex file and outputs the individual key characters required to type the code on the MK14 over serial to the Arduino. The Arduino then just translates those single key characters into MK14 key presses.

Last edited by SiriusHardware; 10th Apr 2020 at 11:24 am.
SiriusHardware is online now  
Old 10th Apr 2020, 6:01 pm   #347
DeltaAlpha52
Tetrode
 
Join Date: Feb 2020
Location: Crawley, West Sussex, UK.
Posts: 77
Default Re: MK14 schematic revisions

My thoughts seem to be running along the same lines. The attached code is my first attempt at using the Ardunio to send keypresses to the MK14. I've started by using the second idea of sending the key characters to the arduino and getting it "press" the keys on the MK14 via the optical switches.

The MK14_key14.ino is the script for the Arduino to be loaded via the standard IDE. It is set to use the Uno. It can be tested using the serial monitor provided by the IDE and you can send the key values to the Ardunio. It will echo them back.

The send14Arduino.py is a python3 script to send a .hex file to the ardunio. It is based on the script you used for the Pi. It is set for the 'old' OS. You can call it using

python3 send14Arduino.py message.hex

It might not be a finished product but it does work, well at least on my machine. I'll look to improve it and maybe come up with other ideas on implementing it.

Cheers
Attached Files
File Type: zip key_14_arduino.zip (6.1 KB, 58 views)
DeltaAlpha52 is offline  
Old 10th Apr 2020, 7:26 pm   #348
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: MK14 schematic revisions

Wow, that was quick! My MK14 is mothballed at the moment but this has to be worth letting it see the light of day for. I'll probably just unplug the Pi zero W from the interface PCB and wire the Arduino to it with some plug-in jumper cables. I'll try to do that some time over the weekend.

In the past I have considered trying to do a GUI-frontended version of send14 using Tkinter or even Pygame but somehow, I can never summon the enthusiasm to do that. As you will have gathered my Python programming skills basically just amount to composing the program in 1980s BASIC in my head, and then translating it line by line to the nearest Python equivalent. I don't write 'proper' Python code at all. The main reason for choosing Python despite not being very good at it was its very wide cross-platform support.

Also my thought was that if I were do do that, then I should really incorporate the editor and the assembler into the same package so that it would be a one-stop IDE, much like the Arduino editor/IDE. However, that really is way above my current level in Python.
SiriusHardware is online now  
Old 12th Apr 2020, 4:58 pm   #349
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: MK14 schematic revisions

I gave DeltaAlpha52's Arduino based uploader a shot today and I'm happy to say it works fine on my original Issue II MK14, although I had to set it for 'new' OS upload mode, as that's what mine has.

I ran the 'send14Arduino.py' script on a Linux netbook with my UNO connected and programmed with the 'MK14_key14.ino sketch. Didn't quite work at first but that was my fault, as I had connected the 'Row2' opto to the wrong Arduino pin, easily resolved by using the 'terminal' diagnostic trick to discover that the MK14 was not seeing any key presses in the range 'A-F'

The test program I used in this instance was 'duck shoot' from the MK14 manual, attached as .hex (wrapped in a .zip file, as .hex is not a legitimate attachment type in this forum). I've included the auto-run 'vector' so the program runs after loading either with this or the Pi version of the uploader.

We've started to swerve away from the original core of this particular topic - (all fascinating stuff though) - so I would suggest starting a new thread dedicated specifically to this uploader project.
Attached Files
File Type: zip d_shoot.zip (252 Bytes, 57 views)
SiriusHardware is online now  
Old 12th Apr 2020, 7:53 pm   #350
DeltaAlpha52
Tetrode
 
Join Date: Feb 2020
Location: Crawley, West Sussex, UK.
Posts: 77
Default Re: MK14 schematic revisions

okay new thread opened

https://www.vintage-radio.net/forum/...26#post1234226
DeltaAlpha52 is offline  
Old 13th Apr 2020, 3:48 pm   #351
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: MK14 schematic revisions

Hope it's OK to post this here, but I've just noticed that the JM precision replica MK14 PCBs are, at the time of the writing this (April 2020), somewhat reduced from their original price.

http://jmprecision.co.uk/shopping/pg...hp?id=136&=SID

Everyone who has one of these (including several people here) says they are very nice PCBs.
SiriusHardware is online now  
Old 13th Apr 2020, 5:20 pm   #352
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: MK14 schematic revisions

Hmm still pretty pricey but I guess its a tried and tested design.
Slothie is offline  
Old 13th Apr 2020, 6:07 pm   #353
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: MK14 schematic revisions

I did think the original price was quite high for a bare PCB, that was just my personal view and quite a few people obviously disagreed, bought them at the original price and were very happy with them.

There is no doubt that they are beautiful looking PCBs and I have admired the accessories, especially the keypad, which are offered as optional extras for the JM PCBs. It's a very nice, finished product. I get the impression there are a limited number remaining, so there may not be any more forthcoming after the current batch have gone.

For 'hardcore' enthusiasts the Czech 'Martin' PCB with its neutral (not green) colour and specially manufactured adhesive keypad overlay looks more authentically retro and, like yours, has the unwanted PROM images removed making it much easier to map more RAM into that area. It also has contact fingers on the underside of the rear edge connector, as per original issue IV / V PCBs, which make it a little easier to add external extras like the VDU - although it is still necessary to route those connections to the buses yourself.

Tim and I still intend to order a batch of your advanced 'issue VI' PCBs - I have collected almost all needed parts now, bar the RAM and key switches. Unfortunately - as at times in the past - real life is getting in the way of things just at the moment.
SiriusHardware is online now  
Old 28th Apr 2020, 6:27 pm   #354
philoupat83
Pentode
 
Join Date: Jul 2017
Location: Toulon, France
Posts: 239
Default Re: MK14 schematic revisions

hello to all
I hope everything is right for you
I took over my project after ordering the pcb a martin (very nice and super diy)
I gently found the necessary elements now I attacked the assembly phase
Attached Thumbnails
Click image for larger version

Name:	P1130669.jpg
Views:	98
Size:	97.4 KB
ID:	204206   Click image for larger version

Name:	P1130670.jpg
Views:	73
Size:	101.0 KB
ID:	204207   Click image for larger version

Name:	P1130674.jpg
Views:	95
Size:	100.0 KB
ID:	204208  
philoupat83 is offline  
Old 28th Apr 2020, 6:35 pm   #355
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: MK14 schematic revisions

Of all the replicas, the 'Martin' PCBs look the most historic, especially the keypad which is very close to original.

We think they are an exact copy of the original 'Issue V', which was the final version.

I am collecting parts for a replica too. Just now my RAM is somewhere between America and England. I do not know if it will arrive here!
SiriusHardware is online now  
Old 28th Apr 2020, 7:22 pm   #356
DeltaAlpha52
Tetrode
 
Join Date: Feb 2020
Location: Crawley, West Sussex, UK.
Posts: 77
Default Re: MK14 schematic revisions

Take care sticking down the keyboard components - Martin's instructions on the web are a bit strange, probably the translation, but the clear sticky sheet with the larger holes goes down first then the metal domes and then the clear sheet with the smaller holes, which holds the metal domes in place.

Make sure all the plastic bits are removed from the holes - they are a real pain to remove after it is stuck down,

Test the switches before sticking down the top sheet with the key legends on.

http://www.8bity.cz/replika-mk14/parts-for-mk14-build/ Keyboard section.

Good luck with your build
Cheers David
DeltaAlpha52 is offline  
Old 28th Apr 2020, 7:26 pm   #357
philoupat83
Pentode
 
Join Date: Jul 2017
Location: Toulon, France
Posts: 239
Default Re: MK14 schematic revisions

and yes we live a funny situation
I print in 3d some visiere also and I resume this project only missing the tablecloth
I read the whole forum on mk14
the martin keyboard is a
address and care patience test
but it works (ohmtre test)
read the tips of martin
to centre the sheet I made guide in 3d
Attached Thumbnails
Click image for larger version

Name:	P1130678.jpg
Views:	78
Size:	48.1 KB
ID:	204236   Click image for larger version

Name:	P1130679.jpg
Views:	65
Size:	57.2 KB
ID:	204237  
philoupat83 is offline  
Old 28th Apr 2020, 7:40 pm   #358
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,482
Default Re: MK14 schematic revisions

On original MK14s the key overlay sheet was mainly white, with the key legends on it in black. The broad black outline seen on the first picture in the previous post was originally another layer, a frame made from metal (anodised aluminium, I think) and it was held down by four plastic 'rivets' similar to those made by philoupat83.

These are almost exactly like the white ones supplied with the original kit, although the dimensions may not be exact (I have not checked the diameter of the holes in the PCB so do not take my word for it that they will fit. There are many others in this range).

https://cpc.farnell.com/essentra-com...ite/dp/FN04481
SiriusHardware is online now  
Old 28th Apr 2020, 8:36 pm   #359
philoupat83
Pentode
 
Join Date: Jul 2017
Location: Toulon, France
Posts: 239
Default Re: MK14 schematic revisions

I made them randomly in mm and not inch
excuse my !
philoupat83 is offline  
Old 28th Apr 2020, 8:38 pm   #360
philoupat83
Pentode
 
Join Date: Jul 2017
Location: Toulon, France
Posts: 239
Default Re: MK14 schematic revisions

I have the martin sticker but I will make a black 3d cache like jpm
philoupat83 is offline  
Closed Thread

Thread Tools



All times are GMT +1. The time now is 9:44 am.


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.