Not a master of anything. Just a guy who was around back when this was the technology to use.
I agree that it would be nice to have a drop-in replacement instead of having to add wires. But
the Teensy is useful for other things as well, so it's actually lucky that it works so well in a Z80 socket.
I don't think that was intended by the designers. Actually, the power pins are placed nicely for emulating
a 6809 (Matrix 6/1000). The Teensy uses an Atmel AVR CPU. Not ARM or PIC, but any of those three
would be much more powerful than a Z80. A lot of the power comes from having the code and RAM inside,
since instructions can be wider than 8 bits, and accessed a lot faster as well, and a lower power.
Emulating a Z80 and running with the existing external code EPROM doesn't seem to accomplish much,
it seems to me. You would be slowed by the access to external memory chips. Emulation is a lot more
complicated than simply writing equivalent code. And writing code in C would be easier than coding in assembly
as the original programmers were required to. The newer CPUs mentioned above all have more powerful instruction
sets than the Z80, so running in "native" mode with internal Flash and RAM would be a lot faster than emulating
the Z80 and running from slow 1980's external memory. But using external battery-backed RAM for patches
still makes sense, I think, although patches could also be stored in Flash or in EEPROM possibly, although most
of the SOC chips I am familiar with don't have enough EEPROM for that.
BTW, the old code for some of those 80's synths does lots of extra work to compress and decompress
patches and to get them to fit into the available RAM. And some other tricks were played to get things to go
fast enough. Someone programming using a modern CPU would not want to do some of the things they did,
as it can make the code a lot harder to follow and understand. With enough speed, you can code things in a
logical, straightforward manner, (in C) and it will still be fast enough.
One idea I had was to write translation code that would map instructions from, say, a Z80 or 8049 to something
more powerful like a PIC or AVR chip. The mapped code could execute at maybe 10 MHz in a PIC or 16 in an AVR,
and might be fewer instructions besides, so it would run a whole lot faster. For reference, the Z80 in a P5 runs at
2.5 MHz, and in the Six trak at 4 MHz, but every instruction takes at least 4 clocks. A PIC or AVR can do many
of its instructions in just one clock cycle, so there is a big speed up. The 8048/49 is even slower than the Z80,
which explains why they needed two of them in the Poly Six. So I guess it depends on the goal.
Some synths seem to need a speed-up, maybe others just need a bug fix or two.
Sorry if this was boring...
--------------------------------------------
On Fri, 12/18/15, grantbt@jps.net [PolySix] <PolySix@yahoogroups.com> wrote:
Subject: [PolySix] Re: Replacing the Key assigner MCU
To: PolySix@yahoogroups.com
Date: Friday, December 18, 2015, 10:08 PM
Bob,
You seem
like the Z80 master. Regarding your comment about the P600
upgrade. I think rather than have a few wires added to a
teensy board, that someone should just make a drop in
replacement board for the Z80 (could be otherwise the same
or nearly so to the teensy). I don't know if it would be
better for developers to write code from scratch for that
CPU (is it an ARM or PIC?), or if Z80 emulation is
possible?
There are so many
synths, especially from the US, that used Z80 The 8051 has
nice upgraded versions with so much more speed, memory etc.
GB
#yiv4817411968 #yiv4817411968 --
#yiv4817411968ygrp-mkp {
border:1px solid #d8d8d8;font-family:Arial;margin:10px
0;padding:0 10px;}
#yiv4817411968 #yiv4817411968ygrp-mkp hr {
border:1px solid #d8d8d8;}
#yiv4817411968 #yiv4817411968ygrp-mkp #yiv4817411968hd {
color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px
0;}
#yiv4817411968 #yiv4817411968ygrp-mkp #yiv4817411968ads {
margin-bottom:10px;}
#yiv4817411968 #yiv4817411968ygrp-mkp .yiv4817411968ad {
padding:0 0;}
#yiv4817411968 #yiv4817411968ygrp-mkp .yiv4817411968ad p {
margin:0;}
#yiv4817411968 #yiv4817411968ygrp-mkp .yiv4817411968ad a {
color:#0000ff;text-decoration:none;}
#yiv4817411968 #yiv4817411968ygrp-sponsor
#yiv4817411968ygrp-lc {
font-family:Arial;}
#yiv4817411968 #yiv4817411968ygrp-sponsor
#yiv4817411968ygrp-lc #yiv4817411968hd {
margin:10px
0px;font-weight:700;font-size:78%;line-height:122%;}
#yiv4817411968 #yiv4817411968ygrp-sponsor
#yiv4817411968ygrp-lc .yiv4817411968ad {
margin-bottom:10px;padding:0 0;}
#yiv4817411968 #yiv4817411968actions {
font-family:Verdana;font-size:11px;padding:10px 0;}
#yiv4817411968 #yiv4817411968activity {
background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}
#yiv4817411968 #yiv4817411968activity span {
font-weight:700;}
#yiv4817411968 #yiv4817411968activity span:first-child {
text-transform:uppercase;}
#yiv4817411968 #yiv4817411968activity span a {
color:#5085b6;text-decoration:none;}
#yiv4817411968 #yiv4817411968activity span span {
color:#ff7900;}
#yiv4817411968 #yiv4817411968activity span
.yiv4817411968underline {
text-decoration:underline;}
#yiv4817411968 .yiv4817411968attach {
clear:both;display:table;font-family:Arial;font-size:12px;padding:10px
0;width:400px;}
#yiv4817411968 .yiv4817411968attach div a {
text-decoration:none;}
#yiv4817411968 .yiv4817411968attach img {
border:none;padding-right:5px;}
#yiv4817411968 .yiv4817411968attach label {
display:block;margin-bottom:5px;}
#yiv4817411968 .yiv4817411968attach label a {
text-decoration:none;}
#yiv4817411968 blockquote {
margin:0 0 0 4px;}
#yiv4817411968 .yiv4817411968bold {
font-family:Arial;font-size:13px;font-weight:700;}
#yiv4817411968 .yiv4817411968bold a {
text-decoration:none;}
#yiv4817411968 dd.yiv4817411968last p a {
font-family:Verdana;font-weight:700;}
#yiv4817411968 dd.yiv4817411968last p span {
margin-right:10px;font-family:Verdana;font-weight:700;}
#yiv4817411968 dd.yiv4817411968last p
span.yiv4817411968yshortcuts {
margin-right:0;}
#yiv4817411968 div.yiv4817411968attach-table div div a {
text-decoration:none;}
#yiv4817411968 div.yiv4817411968attach-table {
width:400px;}
#yiv4817411968 div.yiv4817411968file-title a, #yiv4817411968
div.yiv4817411968file-title a:active, #yiv4817411968
div.yiv4817411968file-title a:hover, #yiv4817411968
div.yiv4817411968file-title a:visited {
text-decoration:none;}
#yiv4817411968 div.yiv4817411968photo-title a,
#yiv4817411968 div.yiv4817411968photo-title a:active,
#yiv4817411968 div.yiv4817411968photo-title a:hover,
#yiv4817411968 div.yiv4817411968photo-title a:visited {
text-decoration:none;}
#yiv4817411968 div#yiv4817411968ygrp-mlmsg
#yiv4817411968ygrp-msg p a span.yiv4817411968yshortcuts {
font-family:Verdana;font-size:10px;font-weight:normal;}
#yiv4817411968 .yiv4817411968green {
color:#628c2a;}
#yiv4817411968 .yiv4817411968MsoNormal {
margin:0 0 0 0;}
#yiv4817411968 o {
font-size:0;}
#yiv4817411968 #yiv4817411968photos div {
float:left;width:72px;}
#yiv4817411968 #yiv4817411968photos div div {
border:1px solid
#666666;height:62px;overflow:hidden;width:62px;}
#yiv4817411968 #yiv4817411968photos div label {
color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}
#yiv4817411968 #yiv4817411968reco-category {
font-size:77%;}
#yiv4817411968 #yiv4817411968reco-desc {
font-size:77%;}
#yiv4817411968 .yiv4817411968replbq {
margin:4px;}
#yiv4817411968 #yiv4817411968ygrp-actbar div a:first-child {
margin-right:2px;padding-right:5px;}
#yiv4817411968 #yiv4817411968ygrp-mlmsg {
font-size:13px;font-family:Arial, helvetica, clean,
sans-serif;}
#yiv4817411968 #yiv4817411968ygrp-mlmsg table {
font-size:inherit;font:100%;}
#yiv4817411968 #yiv4817411968ygrp-mlmsg select,
#yiv4817411968 input, #yiv4817411968 textarea {
font:99% Arial, Helvetica, clean, sans-serif;}
#yiv4817411968 #yiv4817411968ygrp-mlmsg pre, #yiv4817411968
code {
font:115% monospace;}
#yiv4817411968 #yiv4817411968ygrp-mlmsg ∗ {
line-height:1.22em;}
#yiv4817411968 #yiv4817411968ygrp-mlmsg #yiv4817411968logo {
padding-bottom:10px;}
#yiv4817411968 #yiv4817411968ygrp-msg p a {
font-family:Verdana;}
#yiv4817411968 #yiv4817411968ygrp-msg
p#yiv4817411968attach-count span {
color:#1E66AE;font-weight:700;}
#yiv4817411968 #yiv4817411968ygrp-reco
#yiv4817411968reco-head {
color:#ff7900;font-weight:700;}
#yiv4817411968 #yiv4817411968ygrp-reco {
margin-bottom:20px;padding:0px;}
#yiv4817411968 #yiv4817411968ygrp-sponsor #yiv4817411968ov
li a {
font-size:130%;text-decoration:none;}
#yiv4817411968 #yiv4817411968ygrp-sponsor #yiv4817411968ov
li {
font-size:77%;list-style-type:square;padding:6px 0;}
#yiv4817411968 #yiv4817411968ygrp-sponsor #yiv4817411968ov
ul {
margin:0;padding:0 0 0 8px;}
#yiv4817411968 #yiv4817411968ygrp-text {
font-family:Georgia;}
#yiv4817411968 #yiv4817411968ygrp-text p {
margin:0 0 1em 0;}
#yiv4817411968 #yiv4817411968ygrp-text tt {
font-size:120%;}
#yiv4817411968 #yiv4817411968ygrp-vital ul li:last-child {
border-right:none !important;
}
#yiv4817411968