![]() |
|
![]() |
|
|||||||
| Vintage Computers Any vintage computer systems, calculators, video games etc., but with an emphasis on 1980s and earlier equipment. |
![]() |
|
|
Thread Tools |
|
|
#1 |
|
Hexode
Join Date: Jan 2021
Location: Ashford, Kent, UK
Posts: 470
|
Hi, I'd like to get some input on this project please.
Now that the TELEKIT investigation has pretty much concluded, I want to create a replica design but I'm very aware of the cost and availability of SC/MP processors and the unavailability of the NOVUS calculator. Having built a version of Karen's MK14 emulation (PIC14) in the past I decided to have a go at modifying her source code to run the TELEKIT firmware on a PIC16F877(A) or PIC16F876(A). Telekit only needs the following SC/MP signals:
. But I'm now at a fork in the road and need to decide which way to go. I see 2 options:Option 1: Retain all the external logic and shift registers needed to drive the display and sample the key matrix (that's 8 LS logic devices and buffers). This maintains the TELEKIT concept as much as possible and is the closest you'll get without using a real SC/MP Option 2: Create additional PIC code to emulate the shift registers internally and use ports A, D and E parallel outputs to directly drive the display and keys. It's a "one chip" solution (although probably needing a external buffer to drive the display, as per PIC14). It would be restricted to the 877, as the 876 doesn't bring PORT D and E out to pins. There are a few other things to ponder, like
I would be very interested to get your thoughts on the above or any other aspects of it. BTW, I use TELEKIT with KITBUG+ running at 110 baud and it's a joy (mostly)
|
|
|
|
|
|
#2 |
|
Octode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 1,516
|
Excellent, well done Ian. Its a dilema, the pic could do it all, but external ttl would be more 'Telekit'. The only answer, is to do both
. Similarly a tiny calculator display would be more 'Telekit' than a bigger display...20mA, RS232 or TTL serial could be off-board. Which base emulation did you use, the one from the KO2019? Last edited by Phil__G; 19th Sep 2025 at 2:22 pm. |
|
|
|
|
|
#3 |
|
Octode
Join Date: Mar 2019
Location: Barry, Vale of Glamorgan, Wales, UK.
Posts: 1,437
|
Nice - I have a Dead Novus and a lot of 877's so a PCB that fits inside sounds amazing. As the keyboard matrix is likely hosed on real ones and you would need something on a 3D printed one, the approach that would allow a small replacement key matrix to be created or used if needed/always required anyway is also a great idea.
|
|
|
|
|
|
#4 |
|
Octode
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 1,587
|
If using a pic instead of an sc/mp or sc/mpII then it doesn’t really matter if you keep the same interface using shift registers or handle this inside the pic, just do whatever is easiest. You might use 74hct instead of 74ls if the same functions are available.
For the keyboard there are smt tactile switches with very low profile, equivalent to a metal dome on a plastic carrier, that might help to keep the assembly similar to the calculator keyboard, assuming you are intending the 3d printed case and keys to be similar size as the original. |
|
|
|
|
|
#5 |
|
Octode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 1,516
|
On the other hand, if the pic purely emulates the SC/MP, the original circuitry can be authentically reproduced, so the end product is a real Telekit - this is the dilema!
![]() But yes I agree, I think I'd let the pic do it ![]() The timing will be the challenge, display, keypad and serial, especially if the baud rate is upped |
|
|
|
|
|
#6 | ||
|
Nonode
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 2,878
|
Quote:
Quote:
Although would have to decide if to stay with original PMOS 2-rail supply and proprietary pinout MM5204 EPROM (TVsat in Poland were about the only place to have these still listed, and were quite reasonably-priced. But would normally involve building a programmer for these / getting one programmed by someone with a suitable programmer) or change it to a more-conventional JEDEC-standard pinout single-rail supply EPROM like the 2716. If the Novus calculator case is being made as a 3D-printed replica then lack of original ones of those should be too much of an issue (assuming suitably small switches / display are used, for it all to fit inside). |
||
|
|
|
|
|
#7 |
|
Octode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 1,516
|
Ah, but then it wouldnt be a 'Telepic'
|
|
|
|
|
|
#8 | ||||
|
Hexode
Join Date: Jan 2021
Location: Ashford, Kent, UK
Posts: 470
|
Thanks for your feedback
Just picking it up again.Karen's original PIC14 code, although now with quite a lot of mods to align it with the TELEKIT hardware. I know there's a couple of errors in the decimal add instructions, so I'll put your corrections in for those (although I don't think they are used by TELEKIT). Quote:
Quote:
Quote:
That took me a while to fathom, but I have now changed the PIC14 emulation to put RAM at 0x200 (instead of 0xF00) using the PIC's register/RAM banks and it now runs at about 80% of the required speed. Karen does point out in her PIC14 manual that the SC/MP emulation is cycle perfect when running programs from RAM but slower when running from PROM. I'm running the TELEKIT code out of PROM so that probably accounts for the slightly slow execution. No worries. I've changed the PIC crystal from 10MHz to 12MHz and I now get 110 baud serial being produced.Quote:
) - so PIC it is!I think one of the more challenging parts of the project will be developing a replica keypad with appropriate silk screen that can be hosted in the original case (or a 3D printed one, of course). If anyone has any experience of ordering small feature screen printed overlays I'd welcome some advice. |
||||
|
|
|
|
|
#9 |
|
Octode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 1,516
|
One thing that might ease the timing would be to do the async-serial I/O in PIC code rather than emulated SC/MP code, thats what the PICL does, with two new SC/MP pseudo-opcodes representing GECO & PUTC.
The Telepic will be 110bd of course but just as an example in PIC-speak 9600 is easy whereas the SC/MP isnt really fast enough unless you use SIO like my Aliexpress printer at 9600 - but your SIN/SOUT are occupied arent they... Of course you could drop the emulation altogether and have the PIC do all the Telepic stuff directly without involving any SC/MP code... ![]() Teasing! But a serious question - can the original Telekit do FDX, ie can it send whilst receiving & vice versa? Last edited by Phil__G; 22nd Sep 2025 at 2:21 pm. |
|
|
|
|
|
#10 |
|
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 13,872
|
Ref: Using EEPROM as 'RAM' - I could definitely be wrong but this memory area in PICs may belong to the class of writable memory devices which can only be successfully written to a finite number of times, although if it is one of those then you have to write to it something like hundreds of thousands of times before it starts to be a problem.
I think it is originally really meant more for storing static but user-alterable settings, configurations, and so on. |
|
|
|
|
|
#11 | |
|
Hexode
Join Date: Jan 2021
Location: Ashford, Kent, UK
Posts: 470
|
Quote:
It appears to do both simultaneously but it is really 2 separate processes. A keypress generates a character out, which does not get displayed so needs the receiving equipment to echo the character back. And likewise the only action on TELEKIT receiving a character is to display it. |
|
|
|
|
|
|
#12 | |
|
Octode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 1,516
|
Quote:
Unless... We're sure it doesnt just pass the transmitted character to the display routine, ignoring the incoming echoed bits from GECO until the key from the Telekit keypad has been fully sent? That would be so much easier as each transmitted character is the perfect length to 'mask' the echoed bits, and the display routine being 'somehow' passed each transmitted character is expected behaviour (?) ...in which case the receive routine would just pass received characters to the display routine, as it can only be LCDS output (for example) ? Kinda like hdx local echo. Sorry I should read the Telekit source again.
Last edited by Phil__G; 22nd Sep 2025 at 6:20 pm. |
|
|
|
|
|
|
#13 | ||
|
Hexode
Join Date: Jan 2021
Location: Ashford, Kent, UK
Posts: 470
|
Quote:
Quote:
|
||
|
|
|
|
|
#14 | |
|
Hexode
Join Date: Jan 2021
Location: Ashford, Kent, UK
Posts: 470
|
Quote:
|
|
|
|
|
|
|
#15 | |
|
Octode
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 1,587
|
Quote:
|
|
|
|
|
|
|
#16 | |
|
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 13,872
|
Quote:
If used in that way, it wouldn't be long before you started to get close to the theoretical maximum number of writes. |
|
|
|
|
|
|
#17 |
|
Hexode
Join Date: Jan 2021
Location: Ashford, Kent, UK
Posts: 470
|
|
|
|
|
|
|
#18 | |
|
Hexode
Join Date: Jan 2021
Location: Ashford, Kent, UK
Posts: 470
|
Quote:
|
|
|
|
|
|
|
#19 |
|
Octode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 1,516
|
Re ram for the sc/mp, unless every byte is needed, I found it easier to use just 80 bytes from offset 0x20 in each bank, so the FSR has the same fixed range to address in each bank. This gives 320 bytes without having to treat each bank differently and without stepping on any actual PIC registers
In the case of the Telepic, maybe 80 bytes of ram (banks 1 or 2) would be enough (or 96 bytes in 3 or 4), avoiding bank switching altogether?I think the premise that "it must run the standard Telekit rom image" is a very good one, meaning the Telepic is a true hardware emulation
Last edited by Phil__G; 23rd Sep 2025 at 8:43 pm. |
|
|
|
|
|
#20 |
|
Hexode
Join Date: Jan 2021
Location: Ashford, Kent, UK
Posts: 470
|
Here are the TELEPIC PCBs, so far. I'm getting close to ordering an initial batch of boards. I decided to keep the 20mA loop I/F and also provide alternate TTL signals for an FTDI converter. The keyboard switches are low profile disc types (about 1mm high, as Mark suggested). In theory it should all fit in the Novus calculator case. Time will tell.
|
|
|
|