>
> Hi,
>
> The 8048 MPU used for the Polysix Programmer has 64Bytes of RAM and
> 1K of ROM on chip. All code plus some lookup tables are inside this
> onchip ROM. All variables, etc. used by the firmware are located inside
> the onchip RAM. The external RAM chip is solely used for saving the
> patches (each patch has 16 bytes: 14 analog knobs and two bytes packed
> switches; 16 bytes x 32 patches = 512bytes RAM capacity; organized as
> 1024 x 4bits).
> The 8048 has a hardware stack, which means that the stack is fixed at
> certain RAM addresses and the stack pointer is managed by the HW and
> not visible for the SW. The stack pointer is 3bits wide thus setting the
> stack size effectively to 16 bytes; each stack entry occupies two
> bytes, the 12bit program counter (PC) plus the 4bit program status word
> (PSW). Thus the stack is 8 levels (subroutine calls) deep. There is
> no PUSH or PULL instruction (the PIC 5x series can only call one
> subroutine if remember correctly).
> The 8049 used for the Key Assigner has double amount of memory: 128Bytes
> RAM and 2K ROM (there used to be an 8050 with 4K of ROM, thus 12bit PC).
>
> The 8048 was quite popular at that time; it was the first single-chip
> microcontroller made by Intel. So it happened that it had been used
> at the company where I was working during the 1990s. So there were
> the development tools plus a number of (UV-erasable) chips available
> for me (remember, at this time you would not just go to the internet
> and download a compiler etc. for free ...). Btw. there is no C-compiler,
> it is all in assembler. Later on I purchased a license of the "Telemark
> Cross Assembler" (http://home.comcast.net/~tasm/) which due to its
> table-driven design is capable of assembling for a variety of CPUs.
>
> I was not sure whether I was capable of doing this "microprocessor
> stuff". So I made a little test project, a MIDI note separator,
> utilizing a 8748 (the UV-erasable variant of the mask-programmed 8048).
> It turned out that I was fine with programming and so I turned to the
> real project I had in mind: modifications to the Polysix firmware with
> possible MIDI capabilities. First step was that I had to make a
> disassembler and read the firmware. This was quite a project and took
> some time. I was through the programmer code and started working on the
> key assigner when I came across Ricard Wanderlöf's Polysix page who
> had re-engineered the whole Polysix control (programmer plus key
> assigner) with added MIDI into a Z80 design.
>
> The 1K program memory of the programmer is rather used up as well. There
> are some stray unused bytes here and there so I managed to make a
> slightly altered version to support my programmable bend wheel
> modification. It was not strictly necessary but added to the usability.
>
> Interestingly they used the same mask for the programmmer in the
> Trident MKII (8048-345) and the same key assigner in the Mono/Poly
> and Poly-61 (8049-217).
>
>
> I hope this satisfys everyone's curiosity...
>
> Johannes
>
>
> On 2013-07-10 13:02, chipaudette wrote:
> >
> >> I can tell you that the key assigner CPU program space is
> >> used up to the last byte. So probably they had to skip some
> >> functionality ...
> >>
> >> Johannes
> >
> > This comment really interests me!
> >
> > My own code (as reported by the Arduino IDE) is coming in around 24 kB.
> > Of course, my code has more functionality (some not yet blogged about),
> > which soaks up some program space. For example I still have some print
> > statements in there, and I've got a bunch of 32-bit accumulators, and I
> > do some floating point operations, which require floating point emulation
> > routines. So, sure, my code is bloated by comparison. But, even at its
> > slimmest, earliest existence, I still think that it was as around 12 kB
> > (again, as reported by the IDE...so is the Arduino boot loader part of
> > that?).
> >
> > How much ROM space did the Korg programmers have to work with? How can
> > you tell that it's full? Where you able to extract the code and
> > de-compile it in any way? Did you learn anything cool about how they
> > thought about the problem of running this thing?
> >
> > Chip
> >
>