|
November 8th 2009 - Version 2.4.3 software has been released. This version includes patch bulk dump send and receive (diagnostic functions 7 and 8 - see the updated owners manual for details). It also corrects and improves the other diagnostic functions that had serious bugs that have now been corrected.
October 5th 2009 - The version 2.4.2 software has been released. This version includes important additions to the system exclusive implementation and also includes the ability to modulate the DCO1 and DCO2 harmonics using any of the four different LFO's. A separate LFO can be applied to DCO1 as well as DCO2.
August 12th 2009 - Version 2.4 has been released as BETA software. This version includes important additions to the system exclusive implementation. But most important, the HAWK-800 is now velocity sensitive. VCF and EG parameters can be controlled via MIDI note velocity.
July 5th 2009 - Two nasty bugs crept into the 2.0 software. So, I have released software version 2.1 which fixes those two bugs. The first bug was that the LFO delay timers were simply not working at all and the second bug was that the behavior of tremolo in single DCO mode was not operating correctly. Both bugs are fixed in version 2.1.
June 15th 2009 - The HAWK-800MK2 kit construction and installation instructions have been posted and the owners manual has been updated to describe the improvements and changes that are included in the version 2.0 software. At this point in the product development, the HAWK-800P, HAWK-800EX and HAWK-800MK2 kits are all being shipped so that software version 2.0 can be used which means all owners of these kits shipped from June 2009 or later should use the software version 2.0 features (and should use the 2.0 documentation).
May 17th 2009 - The HAWK-800 kit for the Poly-800 Mk2 is now released and available for owners to order so we beat the June date by a few weeks. Version 2.0 software will be available soon. Construction and installation instructions for the MK2 kit will be posted here before June 1st too. Poly-800 Mk2 owners can finally get all of the benefits of the HAWK-800 and AtomaHawk kits in their precious synth's.
May 2nd 2009 - The ten new boards with MK2 connectors have arrived and work perfectly in the Poly-800 MK2. So I am now preparing the construction and installation instructions to do the MK2 kit. So the new MK2 kit is on track to be available by June at the latest.
April 24th 2009 - The MK2 software is completed and I've also finished the two system exclusive handlers that will allow original EX800 and MK2 syx dumps to be accepted by the HAWK-800. So it is now possible to use the original syx dumps in the HAWK-800.
April 15th 2009 - The MK2 hardware and software is essentially finished. I'll carry out some extensive testing to make sure it all works but so far everything looks very good indeed. Patch, global and sequencer data are all stored in flash direct. No more watching the flashing LED indicator. All the patch management and system exclusive messages have been rewritten to support the larger patch format. Now, I'm writing two more system exclusive handlers that will allow syx dumps of the EX-800 or MK2 type to be sent to the HAWK-800. That will keep all of those old patches and sequencer files forward compatible with the HAWK-800.
March 29th 2009 - MK2 kit development. Here is a long explanation of what's been happening for the last three months. To begin, I deferred adding more features to the existing firmware because I was fast running out of flash ROM space. I was running out of flash because the patch memory uses static RAM and I had written a backup feature into the firmware that copies the static RAM into flash ROM. The patch, sequencer and global parameters use about 8K of RAM. That translates into 8K of RAM and 8K of ROM used for backup. I figured I would change this by replacing one of the RAM chips with a flash ROM and rewrite all of the code to use that flash ROM for storage. But, I didn't want to have to do that rewrite of the patch management twice which is what I would end up doing if I developed the MK2 software later. So, in January, I decided to pause the work on the firmware and develop an updated PCB design that would control the extra Poly-800 MK2 as well as change the memory arrangement to handle a flash ROM instead of RAM. Well, I spent some weeks pouring over the MK2 hardware design and eventually concluded that the hardware hack was indeed possible and created a prototype board design. I ordered ten boards to be manufactured and when they arrived confirmed that they work in the MK1 and then began hacking a MK2 and confirmed that the MK2 was also able to be controlled by the new board. I've now spent a great deal of time rewriting the parameter handling code so that we can squeeze in the additional effects control parameters. At this point at the end of March 2009, I am in the process of rewriting the code to use a flash ROM for all parameter storage. A new set of boards is being ordered with slightly rearranged connector positions so that it is easier to install the board into the MK2. Since there is such a large change to the software occurring, I've decided to hold off releasing the MK2 kit until June 2009. This will give me plenty of time to work through the correct operation of the new firmware.
January 18th 2009 - Firmware upgrade version 1.8 has been released and is now available. The firmware now includes patch up and down selection using the parameter value UP and DOWN buttons. Joystick parameter editing is available so that you can now use global joystick mode (global 42) to set the joystick to edit parameters and or select patches too. There are also two new random sample and hold functions that operate in concert with the running sequencer. One RSH operates according to notes past (user configurable) and the other RSG samples each time the sequencer loops. Great for those rare times where you want to make a simple sequence sound a hundred times better.
January 10th 2009 - The beta code now includes patch up and down selection using the parameter value UP and DOWN buttons. And, the product road map has changed a little because I've implemented joystick parameter editing. That feature was slated for February but I couldn't resist putting it in this month. You can now use global joystick mode (global 42) to set the joystick to edit parameters and or select patches too. So finally, you can be free (most of the time) from the keypad!
December 29th 2008 - Well, another year is almost gone by but not without big progress with the HAWK-800 kit. First, the MIDI handling routines have been completely rewritten. This has improved the Poly-800 performance in many ways. The most important improvement being no stuck notes! On top of that though, we now have a global command to dump all patches to sysex. We also have two new random sample and hold waveforms available that are clocked via MIDI or the sequencer looping. The firmware release is beta only but I will most likely release this firmware before the next planned release date - enjoy!
November 23rd 2008 - AtomaHawk kit released - Yes, it's finally happened. The AtomaHawk kit is now available. go to our Buy The Kit page to order yours. Remember, you must have already upgraded your Poly-800MK1 or EX-800 with the HAWK-800 before the AtomaHawk can be installed. but the Moog Slayer, FM-800 and 12/24db filter switch under full patch memory and MIDI control is well worth it.
November 15th 2008 - NEW SOFTWARE RELEASE - The latest software for the HAWK-800 upgrade is now available on our technical support web page. The new release includes a couple of important bug fixes and also includes support for MIDI NRPN parameter editing.
October 7th 2008 - NEW SOFTWARE RELEASE - The latest software for the HAWK-800 upgrade is now available on our technical support web page. We have also made available a draft user manual that provides details on all of the new features that are available in the new software.
September 23rd 2008 - I haven't updated the site for a while, so here goes. We now have four LFO's, the original one plus a second and then another two SLFO's. All four have triangle, sawtooth, square PWM, sine and random sample and hold waveforms. The rate of LFO1 and LFO2 can be modulated by SLFO3 and SLFO4, respectively. The DCO is now modulated by LFO and or by EG3 with inversion available. The VCF can be modulated by two LFO's (1-4). All of the extended parameters have been remapped into much more logical groupings. Resonance is now controllable by a setpoint (0-99), LFO (1-4) and EG3 plus inversion. And the prototype FM800 modulation also has the same list of parameters and the white noise generator can be controlled by the same FM800 extended parameters. The software for all of the above will be available on this web site soon.
July 15th 2008 - Completed implementing real time control via MIDI controllers of all original and extended parameters.
July 9th 2008 - Much has happened over the last two months. I added MIDI or onboard sequencer clocking of the LFO2 (for VCF sweeps). I also added the same syncing for EG3 re-triggering. I am also about half way through implementing real time control via MIDI controllers of all original and extended parameters.
May 12th 2008 - Everett becomes the first owner to successfully install the HAWK-800 kit into his Poly-800. Congratulations
Everett!
Also, I uploaded new firmware to the technical support pages and provided a sysex dump that resets your Poly-800 back
to original configuration defaults. You would use this to get your Poly-800 going after doing the initial hardware upgrade.
April 6th 2008 - Much Progress
In March, I shipped out three kits and another ten printed circuit boards are on their way to me so that I can ship out
another seven kits and take immediate orders for three more. I guess I'll have to order another ten boards this week to cover
for the orders that are coming in. Meanwhile, I added a note transpose feature to the sequencer. It makes the Poly and EX800
much more useful on stage and in live performance. The arpeggiator will come soon because I enjoyed doing the transpose so
much and I now understand that part of the software. I also added some global parameters such as MIDI note TX offset which
allows sending notes on the entire MIDI range. And quite a whole lot more which are all written up in the Features Completed
page.
March 4th 2008 - TAKING ORDERS NOW
Yes, we've finally made it. Stock is limited and the initial delivery time will be 4 to 6 weeks but we are taking orders
and kits are being delivered to our precious Poly 800 fans.
February 26th 2008 - Ordered Parts
I ordered enough parts for ten (10) kits. Should receive most of it within a week or two. I have three (3) PCB's on hand
and will order another ten (10) or so over the coming weeks. So I am almost ready to start getting the kit out to Poly fans.
February 4th 2008 - Added LFO delay timer behavior and Chord mode synchronization.
I added two extended parameters that allows selecting the behavior of the delay timer for both LFO1 and LFO2. When set
to zero the LFO delays behave as the original whereby the modulation is delayed until the timers expire at which point the
modulation is applied to the DCO or VCF. Now, you can reverse that behavior so that upon note on the modulation is applied
to either the DCO's or VCF and the modulation is stopped when the delay timer for the particular LFO expires. Also added a
small sysex message that sends the Chord mode set up to a slave Poly unit. This is particularly useful for setting up chord
mode on the EX-800.
February 1st 2008 - Tremolo mode completed
I wasn't planning on getting tremolo working now but the chance came along so I did it. There are four extended parameters
for controlling tremolo. Two of them turn tremolo on or off per DCO and control which LFO is applied to each DCO and the other
two determine the tremolo depth applied to each DCO.
January 23rd 2008 - Funky Poly Mode
Continuing on from the 21st, I worked on a funky bug that affects my original plans for selecting Poly modes (Poly, Chord,
Hold and Portamento) when patch changes occur. It turns out that in the original design you could not change the Poly mode
to Hold or Chord if the sequencer was running. Conversely, you could not start the sequencer if you were in Hold or Chord
mode. I need to activate that for patch changes when the sequencer is already running. So if the sequencer is running then
when a patch change occurs, the patch will always be left in Poly mode. Another little quirk was discovered that when in global
mode a MIDI received patch change causes the screen to get updated incorrectly. So I disabled updating the display when in
global mode and then ensure the display is refreshed on exit from global mode.
January 21st 2008 - Updated these pages to make it look more like a product instead of a circuit bending hackers haven. Also, added code to send the DCO MG and VCF MG controllers. That completes the joystick code operating in its original configuration. The sequencer still does not send MIDI start and stop or time code but I have intercepted the sequencer code so that it sends note events on the MIDI sequencer TX channel. When the time code and start, stop messages are sent to MIDI then the sequencer will also be completely finished according to its original design. I also deployed a new global parameter for setting the device type 0=Poly 800 MK1, 1=EX800 and 2=Poly 800 MK2. This was needed because the joystick code goes a little haywire when running in the EX800 because the joystick pots are not there. So when you select EX800 device type the joystick code is completely disabled. If and when we modify the software to work in the Poly 800 MK2, we will have the ability to turn on the EQ and digital delay controls using the device type global parameter.
January 18th 2008 - Finished adding joystick
Was able to add the original joystick behavior back into the code. There is a global parameter that determines the joystick
behavior (although extended might be a better place for it). The pitch bend and VCF and DCO MG all work exactly as the original
Poly 800 performs. Now we move on to NEW features for the joystick.
January 1st 2007 - Sync mode bug tested
To kick off the year, I just had to fix the annoying bug in the sync mode. The sysex patch send to the slave EX800 just
wasn't updating the patch correctly. After pouring over the code it was found that the sysex patch receive code was updating
the current patch instead of the specific patch. So sync mode now works as it should. Although another bug has been discovered
where sometimes the slave gets a stuck note. I think this might be when the sysex send is going down the wire and it may not
be fixable without a significant rewrite of the MIDI code.
December 2007 - major progress update
Big things happened this month. First, we got portamento working. It has its quirks but it is usable and funky. You can
change the portamento glide speed in extended parameters and there is a tuning setting that is set up in global mode.
Second, we got MIDI soft thru working. This was critical for ensuring that the cascade mode (where two Poly's act as one
effectively doubling polyphony) was able to work via MIDI. MIDI soft thru is able to be turned on and off in global parameters.
Third, we completed the cascade mode. This allows two units to be hooked up together and made to operate as one. Of special
interest is cascade sync mode. This selectable mode allows a sysex to be sent to the slave unit each time a program change
occurs. The patch sysex ensures that the slave unit plays the same patch as the master.
Fourth, the new printed circuit boards arrived and one was built, then tested and it works. So the major task of getting
the hardware kit ready is complete.
November 25th 2007 - Extended Patch Management
OK, so we got our new second LFO working but were editing the values of frequency, delay, waveform etc using the global
parameter section. Problem with that is, the global are well - global. You set the frequency and it applies to all patches
etc. So it was time to implement the extended parameters as parameters that are unique for each patch. That has now been completed
(except for SYSEX for the extended patches). How do you edit the extended parameters? While in parameter edit mode, press
the step key. The current program number display is replaced with "E". This tells you that you are now editing the
extended parameters. You can now select your desired extended parameter and then edit the value by using the up/down keys.
Press the step key again to return to the original parameters. When you do a patch copy or program changes your extended parameters
change too. So now you can set your LFO settings for each patch and save them as you would normally would for any patch.
Sunday November 25th 2007 - LFO2 Completed!
The second LFO is now fully functional. LFO1 now applies to the DCO MG and LFO2 applies to the VCF MG. Waveforms are selectable
for each LFO as sawtooth or square. LFO2 has an extra waveform - RANDOM! Square wave low and high are absolutes that can be
set as well. Both LFO's have individually selectable delay and free running modes. The only feature that I can think of that
is left out that we need in the realm of the LFO's is a third (maybe fourth) super low frequency oscillator for sweeping the
LFO's speed and or depth. But that is going to have to wait until we finish other higher priority features.
Sunday November 18th 2007 - Poly 800 Progress
The original plan was to work on the EX800 kit and then move on to the Poly 800 later. Well... I changed my mind. So today
I took my prototype and plugged it into my Poly 800. I then wrote my own keyboard handler code so that the my software (originally
based on the EX800) is now running in the Poly 800 with the keyboard working as it should. I'll move on to the joystick soon.
But main thing is the Poly 800 owners can be happy knowing that their Poly 800 is going to get full sysex capability and all
of the other new functions that I've been working on.
Sunday November 18th 2007 - LFO Progress
I've hacked 90% of the code for the LFO. I expect that I'll have a second LFO operating within a few more weeks. I've
worked out how the LFO is retriggered on each key hit so we can make that a user selectable option. Plus, we'll have an option
on the second LFO to allow it to simply free run. I've almost worked out the mathematics of the LFO saw tooth so we can now
change that to include square wave and possibly ramp with selectable inversion. I'll work on the square wave first. The only
limitation I can find in the existing design is that if we slow the LFO down a lot then we are probably going to hear the
DtoA stepping, especially on the VCF with higher resonance settings.
At this point, the only limitation is that the second LFO will be set up in the global parameter section and will apply
to all patches. The reason for this is that I am going to have to completely rewrite the entire patch handling code to allow
additional parameters and that is going to take quite a bit of work. So I would rather get the new LFO features out there
and then go back and rework the patch management.
Saturday November 10th 2007
I was concerned about the idea of removing the EPROM socket that needs to be replaced with a standard 28 pin IC socket
because you cannot plug a dip header (with ribbon cable) into the existing EPROM socket. So I took one of my old (almost beyond
repair) Poly 800 main boards and began the difficult task of removing the socket. It turned out to be much easier to remove
than I imagined. So another hurdle has been overcome. I think most people that are OK with a pair of side cutters and desoldering
tools should be quite up to the task.
See the picture below of the result of my test.
| Korg Poly 800 main board - EPROM socket removed |
|
|
Saturday October 20th 2007 - Printed Circuit Design
I've been quiet lately due to other commitments but I have managed to do most of the preliminary design for the printed
circuit board for the modification kit. I am now talking to PCB manufacturers about doing a prototype run. I'll then be testing
the board and, if all goes well, will do a batch run of about 100 boards. So we're getting close to having the kit ready to
get out to you - my patient Poly fans.
Monday 30th July 2007 - Global Mode
While NOT in sequencer edit mode you push the "Step" button. This places you into Global Parameter edit mode.
After pressing the step key, the screen changes to "GL" where the P/H/C mode display would normally be. The first
and second displays show the global parameter number that is being edited (00-63) and the fifth and sixth displays show the
global parameter data value (00-63 or 11-88). You select the global parameter with the numeric keypad and you edit the parameter
value using the up/down buttons. Changes made to a global parameter are immediately saved. Pressing the step key takes you
back out of global edit mode and back to the normal EX800 programming.
With this now working I've added various global parameters such as Omni Off/On on power up, extended note playing width
on off and send all notes off commands.
One thing I'm going to do is remove Bend Depth, MIDI Receive Channel, Sequencer Clock, Program Change Enable from the
general parameters and integrate them into the Global Mode. This would potentially free up parameters 85-88 for a second MG.
Also, some of the global parameters will/are utility functions such as send sysex dump or send patch dump, all notes off
etc.
Saturday 27th July 2007 - Flash Flourishes
Wrote and added code to make the flash update process user friendly by actually showing "FLASH" on the display
followed by 1 when updating EEROM 1 and 2 when updating EEPROM 2. Then displays "FLASH3" when the data is actually
being copied to the EEPROM. Also worked on adding a new "Global" mode that will be used to set up the parameters
for the new functions.
Saturday 8th July 2007 - New Controllers
VCF cutoff, VCF resonance and MG frequency were all set up as new MIDI controllers. Also fixed an MG frequency problem
that crept in during EEPROM code relocation where the MG parameter (81) didn't work correctly. It turned out to be a problem
where the lookup table was straddled across a 256 (8 bit) boundary which resulted in the MG frequency subroutine getting scrambled.
The fix required setting the origin for all of the lookup tables to ensure they fit within an 8 bit binary address boundary.
But the big win was getting all three new controllers working.
Saturday 26th May 2007 - Wider playing range
Added code to allow the EX800 to play a wider range of octaves. It now plays through six octaves instead of four. However,
to use this wider function requires setting both octave parameters (11 and 21) to low (1). Otherwise, the DCO goes haywire
at the higher octave range. So the function will need to be expanded to include code that presets the octave settings for
both DCO's to 1 (it can just ignore the parameters set for each patch). Also, the wider playing mode needs to be able to be
turned on or off using a controller.
Friday 25th May 2007 - New boot code
Added a new startup function that allows updating the firmware EEPROM's via sysex. By holding down the "write"
switch while powering up, the EX800 will wait for a sysex message to upgrade either of the two EEPROM's. Completed moving
all of the original code out of the EPROM and into the EEPROM memory space. All of the EPROM space is now available for diagnostic
functions. All of the operating code is now in EEPROM where it can be modified and tested by sending sysex firmware updates.
Tuesday 14th April 2007 - EEPROM firmware upgrade
I've now successfully written a new sysex function that allows both of the new EEPROM's to be upgraded. Now I'll be able
to split out code segments into the EEPROM's so that there will be plenty of room for new functions.
Tuesday 10th April 2007 - Patch Storage and Sysex Patch send and dumps.
All of the patch memory use has been documented and I now have working sysex messages to send and request individual patches.
I've also identified a large section of the patch editing functions and subroutines. Some of them have been used in the new
sysex functions. At this point, I'm beginning to run into space problems while still trying to use the original 8K ROM. So
I now have to start writing assembler that will relocate large blocks of code into the new EEPROM space. This will require
writing some scripts to convert the binary ROM images into sysex format and writing the sysex firmware handlers to do the
sysex download and EEPROM firmware upgrade.
Tuesday 6th February 2007 - Program Storage
Finally, I've nailed down the precise location of program storage in the EX800. It begins at RAM location 2200h. I'm now
half way through determining the exact location and use of bits for program 11 (which is the first program stored at 2200h
and up). This means I'll soon be able to develop Sysex functions that will allow sending and receiving specific patches. I'll
also be looking for ways to send sysex to change VCF cutoff and resonance in real time.
Sunday 28th January 2007 - Prototype Hardware Upgrade Success!
Well, I successfully completed the prototype board and after fixing some simple mistakes and putting the chips in the
right way (I'm not kidding) and then remapping the software to use different address locations, I actually managed to get
the EX800 to operate with the new hardware. The EX800 now has 8K of ROM, 16K or static RAM and another 16K of EEPROM. See
the photo below for a glimpse of the prototype. Woohoo!

Tuesday 16th January 2007 - Wired up the bus lines
Yes, all the bus lines are wired up on the prototype and I've confirmed correct operation of the original ROM in the board.
I used a pin jumper to allow selecting the old CS vs the new one. Now all I have to do is wire up the new address decoder
logic which will be comprised of two 74LS138's and also a IDC dip header to connect the old decoder chip (which was replaced
with a socket) to the new prototype board.
December 7th 2007 - Hardware Upgrade Begins
Having definitely confirmed that we can fit more RAM and ROM into the CPU address space it has come time to begin work
on the hardware upgrade. The critical part of the hardware modification is to remove the 74H138 address decoder and replace
it with a 16 pin IC socket.
December 5th 2007 - HAPPY NEW YEAR BREAKTHROUGH!
We've made some significant progress. For the last couple of weeks I've been continuing to work my way into the SYSEX
code and as a result have managed to crack the entire SYSEX implementation of the EX800 such that I've now been able to patch
into the ROM two brand new sysex commands and do it rentrantly so that the code is fully integrated into the operational functionality
of the EX800. And the really good news is that I can now add as many new sysex commands as I like. So I'll soon be creating
a new page on this web site dedicated to documenting the new sysex implementation and I will add the details for new sysex
features and functions there. The drawback is that I've quickly consumed most of the ROM space I freed up by removing the
tape handling code. So I am now going to have to attack the hardware side of this project. Over the next month I plan to build
my prototype memory expansion board.
November 12th 2006 - Software Breakthrough
Well, I was wrong! There IS a ROM checksum calculated during the start up of the Poly 800. I found it, disabled it and
was able to run the original Poly code with a modified ROM. So now I am going to retry my modified tape code. The tape code
is completely independent of the running code so we can add our own debug tools into the tape code area. That's the theory
anyway.
November 7th 2006 - Software Update
Received the EPROM eraser and it works! Wrote a little program to flash the display - it worked! Tried to patch a little
of my own code into the EX800 ROM - it didn't work. Will try again this weekend.
October 31st 2006 - EPROM Eraser
Well, I won the EPROM eraser auction and now am hoping that it arrives soon safe and sound.
October 29th 2006 - Hardware Update
Well, the new hardware components all showed up in the mail today. So I now have all of the bits and pieces necessary
to start building a prototype. I won't be doing anything though until I prove that I can patch some of my own code into the
existing ROM. This should give me the confidence to consider removing the 74HC138 address decoder chip from my EX800. This
is necessary to fit more RAM and ROM into the synth and is also the most scary part of the whole retrofitting process.
October 29th 2006 - Software Update
Well, several programmed ROM's later I discovered that the org settings in the disassembler do not get reproduced in the
output ASM file. So each time I programmed a new ROM the unmovable data tables were being moved. Unfortunately, I ran out
of blank ROM's before I worked out this little quirk. Now I am bidding on an EPROM eraser on eBay. I hope I win the auction
or otherwise I'll be waiting at least a few more weeks before I can get this all sorted out. Why do things always grind to
a halt just when things are getting most interesting?
October 25th 2006 - Software Update
Last night I attempted to try my luck at putting some alternative assembler code in place where I thought the tape handler
entry point was. But I didn't have any luck and it didn't work. All I got for my effort was another three "dirty"
EPROM's (remember that I don't have an eraser yet) and a blank screen on my EX800 when powered up. There are three possibilities
that could account for the failure. First, my entry point theory could be completely wrong. Second, there are some memory
references that require that I can't move the code around. Third, the Korg programmers put some sort of ROM checksum calculation
into their code and it is stopping program execution because the code checksum is no longer correct. I think the first option
is most likely. I think the second problem could also be true. I doubt that Korg would have put a checksum in there for the
ROM. To determine what is going on here I am going to do a test where I change precisely one byte of the ROM and check to
make sure that this ROM can indeed boot. That should end the question of some sort of checksum calculation going on. After
that, I am thinking I will just make a special ROM that does not doing anything other than to make the display do something.
All of the other code will be removed. But I have to be careful at this stage because my EPROM tube is getting short on blank
EPROM's. Did I mention I don't have an EPROM eraser yet?
October 24th 2006 - Hardware Update
I had another look at the chip select logic and realized that the "write" key is a much better candidate for
selecting the ROM at boot up. So the chip select design has been modified to include patching in the "write" key
to support the boot up process. Basically, if you hold down the red "write" key while powering up, then you will
boot into the new ROM.
October 24th 2006 - Software Update
Here are the basic rules that will be used with the memory editor:
You will enter the memory editor by setting the tape switch to enable. Moving the tape switch back to disable will return
the instrument to cold start. The numeric keys 1 thru 8 will take up dual roles to include 9-F and zero (0). The bank hold
switch will shift the numeric keys into alternate code entry 1-8 is normal 9-F+0 is alternate. The Prog/Param key will shift
focus from each display pair to the next. The Up and Down keys will increment or decrement the value within the display pair
that has the current focus. The write key will commit the data display into the memory referenced by display pairs one and
two. The first two pairs of the display show the currently selected address. The third display will show the contents of the
memory being referenced by the address. Pressing any numeric key will cause the third display to go into data entry mode and
it will show this state by flashing constantly. You cancel data entry by pressing the up/down or Prog/Param keys. You commit
the new data to memory by pressing the write key. Any memory location can be selected (including ROM and IO) and an attempt
can be made to write to any location. Pressing the start/stop key causes the processor to continue program execution from
the location currently shown in the address display.
October 24th 2006 - Software update
I've disassembled the code enough to know that the Tape functions occupy a large block of space toward the end of the
ROM. I also know exactly where the tape enable/disable switch is tested under normal operation. When you select tape enable
the processor jumps to the tape handling code and stays in that code until the switch is returned to the disabled position.
This is a perfect spot for a memory editor to go into the existing ROM. We'll use it for editing memory locations to see what
they do. What's really nice is that I know we can pass control back to the instrument code exactly as though we are exiting
the tape code. Thus, we can safely modify memory locations and then test our results. I believe I've identified enough of
the tape memory location use that I can use those for the memory editor code thus ensuring that we don't mangle any other
memory locations while in editor mode.
October 20th 2006 - Software Update
I had a little breakthrough while disassembling the MIDI code. I discovered that I had misinterpreted the section that
handles MIDI note on off commands. Once I discovered my error, I found the entire block of code that handles note on off commands.
It appears that note on off events might be entered into a FIFO for later handling by some other part of the code.
October 20th 2006 - Hardware Update
I've ordered the components needed to prototype the new RAM and ROM expansion board. I'll prototype the whole thing on
veroboard. I also ordered a 28 pin ZIF (zero insertion force) socket. The only thing I don't have is an EPROM eraser. Need
to buy one of those off of ebay. I've checked the location of the memory decoder and IO select chip. It is close enough to
the ROM that a board about 4 x 3 should do the job nicely. From a hardware perspective, the only tricky part of the whole
retrofit will be to remove the decoder chip and replace it with a socket. This is the only part of the project that will make
it difficult for some keyboard owners to do the retrofit job.
|