I understand the frustration, but in I believe every case except if there is a defect, once the COS/DSPx are publicly released, they aren't enhanced any further. They may be added to additional OS', but with the same features.

When Ross/et all go dig to find a new, unmapped table, they're looking through and tracing GM's code. They could even move code that isnt understood aka mapped around to create room for a COS/DSPx.

This is drastically different than building a COS/DSPx, to do this they're moving parts of (I'm assuming) GM's code and duplicating/creating new tables wherever there is room left in the flash. There's only so much flash space available to store everything inside the controller.

I'm not super familiar with digging through hex or building COS', so this is purely conceptual as to how I think COS' work:
  1. To be super basic, let's start with all the flash space available. 1=used, 0=unused: 1110110110
  2. Out of 10 pieces, 3 are free. Notice that there are used pieces (1s) in groups of 2 and 3, but all the unused is separate from any other unused section. In order to pull 2 unused sections together and put some meaningful tables into those sections, code must be optimized/moved/refactored. Let's say that the first step is to get them to align with the 1st unused space located in section 4. Due to code structure, it's actually better to move the code in section 5 to section 10 and not to section 7. We now have this: 1110010111
  3. Great, now let's say we can put 5 new tables into sections 4 and 5. 2=new code: 1112210111
  4. We now have 1 free section at section 7. I want to add a new table that requires 2 open sections. Unfortunately, I can't because I only have 1 free section. Therefore, I put a table that requires 1 section into the code instead: 3=new new code: 1112213111
  5. I now have all 10 sections populated with a fixed set of tables. If I want to change or add another in, something must be moved around. Maybe this table requires 2 sections, but the only piece I'm willing to give up is the last piece we added (ending with 1112213111). This simply isnt possible without making a sacrifice elsewhere.


Again, this is my conceptual understanding, and for all I know, it may not be possible to even move ANY of the existing code around. That'd make it even more complicated if you have insert each table individually into wherever free space exists.