<div dir="ltr">FIY <div><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">KRiSh</b> <span dir="ltr"><<a href="mailto:krish0005@gmail.com">krish0005@gmail.com</a>></span><br>Date: 2017-03-20 17:15 GMT+01:00<br>Subject: Re: [sdiy] Analysis of the TB-303 CPU timing<br>To: cheater00 cheater00 <<a href="mailto:cheater00@gmail.com">cheater00@gmail.com</a>>, SDIY <<a href="mailto:synth-diy@dropmix.xs4all.nl">synth-diy@dropmix.xs4all.nl</a>><br><br><br><div dir="ltr">Hi "cheater00",<div><br></div><div>I see you're one of the most active members on SDIY,</div><div>as i read posting on this list regularly since some quite some time that i'm a member.</div><div><br></div><div>My emails on this thread instead, were actually my very first posting on this list.</div><div><br></div><div>So, thank you very much for your warm welcome.</div><div><br></div><div>I don't know if there is a rule here about the need to have scientific studies published on some very important University or to prove some skills and to be qualified electronics engineer or low level code developer in order to be able to participate the exchanges on the list.</div><div><br></div><div>If it is so, then please send me these rules to read.. and i'll see if i can comply.</div><div><br></div><div>If this is not the case, then could you please stop being over-opinionated on other's people statements and reply on other's people behalf ?</div><div><br></div><div>I apologize if my mail sounded "demanding" as you say, but my questions were intended to be asked not to a single person but in general to everybody contributing the thread, and intended to be of any help and/or to suggest doing some important checks to the people interested in this thread.</div><div><br></div><div>Please consider that not all people reading these emails have the "experience" you say to have or the one you say others to have.</div><div><br></div><div>I already know who are most of the experienced persons on this list (like Roman and Colin), and what they do, even if you had the impression i don't.</div><div><br></div><div>Moreover, everyone is free to do the work as they like, even not replying me of course, and i'm not obliging anyone to reply nor to avoid using disassemblers and trust them 100% without cross-checking.</div><div><br></div><div>And no, i didn't want to hijack the thread into "<b>performances and bugs of all known disassemblers supporting D650C</b>" i simply thought debating and double checking / debugging that phase of the job could be interesting and useful to the thread.</div><div><br></div><div>So, hope i'm still welcome here, and that this list is not only an elite group of super scientists where undergraduates and unproved experts can't contribute.</div><div><br></div><div>About this:</div><span class=""><div><br></div><div><span style="font-size:12.8px">"<b>Rather than realize you are talking out of your rear end, you decided to start making demands of people who don't owe you one second of their time.</b>"</span> </div><div><br></div></span><div>You are absolutely free, like everyone else, not to read my emails, not to spend one second of your time on them, and also to avoid making your own conclusions on them without knowing absolutely anything about who wrote them and why.</div><div><br></div><div>Please also instead consider my time spent in writing them has been dedicated also to you and others on the list freely without asking for anything, and i reckon they triggered exactly the questions and answers i expected them to, being hopefully way more useful to the list than your last reply.</div><div><br></div><div>Thanks,</div><div>Regards.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>K</div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-03-20 16:26 GMT+01:00 cheater00 cheater00 <span dir="ltr"><<a href="mailto:cheater00@gmail.com" target="_blank">cheater00@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Hi "KRiS",<br>
Brian and Roman have answered your confused and uninformed post much more politely than I would have had the patience for. Rather than realize you are talking out of your rear end, you decided to start making demands of people who don't owe you one second of their time. So why don't you sit back and chill out a bit? Let the people do their work as they like. I trust they know what they're doing and I know exactly why what they're doing is right because of my experience. You don't, and you are way out of your depth telling people how to work on their hobbies, buddy.</p>
<br><div class="gmail_quote"><div><div class="m_-3331558797805601513h5"><div dir="ltr">On Mon, 20 Mar 2017 13:12 KRiSh, <<a href="mailto:krish0005@gmail.com" target="_blank">krish0005@gmail.com</a>> wrote:<br></div></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-3331558797805601513h5"><div dir="ltr" class="m_-3331558797805601513m_8995147909081084228gmail_msg">Hi Brian,<div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">Yes, probably my mail was a bit too generic, but my warning was exactly the following you synthesized:</div></div><div dir="ltr" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">"<span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg">Don’t trust a disassembler unless you verify its translation against the official data book for the CPU."</span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></span></div></div><div dir="ltr" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg">I'm quite sure Roland wrote that code directly in Assembly...</span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg">Still, my suggestion on a general level is to try different disassemblers, and see if setting same exact processor part number gives you different output.. (if really your disassembler also works with that specific CPU.. does it ? really ? )</span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg">I do know and understand optimization of code is done on higher level codes, not machine level where it is already translated to its lowest form, but still, Disassemblers might work differently, and as you do, writing your own one is really the only option to be 100% sure of what it does IMHO...</span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg">Nevertheless, i would suggest everybody interested on this thread to read what Robin Whittle has said regarding Roland original CPU replacements attempts and reverse engineering in the past:</span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><a href="http://goog_732003771" class="m_-3331558797805601513m_8995147909081084228gmail_msg" target="_blank"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></a></span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><a href="http://analogue-heaven.1065350.n5.nabble.com/Re-Obsolete-MASK-ROM-CPUs-re-issued-td80564i20.html" class="m_-3331558797805601513m_8995147909081084228gmail_msg" target="_blank">http://analogue-heaven.1065350<wbr>.n5.nabble.com/Re-Obsolete-<wbr>MASK-ROM-CPUs-re-issued-<wbr>td80564i20.html</a></span><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg">So first of all.. do "we" have the original Data Book ?</span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg">Robin talked about a: </span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><b class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></b></span></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><b class="m_-3331558797805601513m_8995147909081084228gmail_msg">NEC Microcomputer Products 1984 Data Book</b></span></div></div></blockquote><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg">In the PDF from Julian i see this reference:</span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></span></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><b class="m_-3331558797805601513m_8995147909081084228gmail_msg">(Japan, july 12, 1983 E2).</b></span></div></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><b class="m_-3331558797805601513m_8995147909081084228gmail_msg">[5] NEC Microcomputers, Inc., “µCOM-43 Users’</b></span></div></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><b class="m_-3331558797805601513m_8995147909081084228gmail_msg">Manual,” (NEC Microcomputers, Inc. 1978)</b></span></div></div></blockquote><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><span style="font-size:12.8px" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></span></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">Are we sure its the same, and we have all necessary documentation to make this checks and confirm the output of the disassembler ?</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">This referenced one and linked by Robin looks to be still up :</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><a href="http://pdf.datasheetcatalog.com/datasheets/400/500004_DS.pdf" class="m_-3331558797805601513m_8995147909081084228gmail_msg" target="_blank">http://pdf.datasheetcatalog.co<wbr>m/datasheets/400/500004_DS.pdf</a><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">I'm citing a fraction of Robin's mail cause its related to previous exchanges related to mask ROM decoding:</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">"The only way I know of getting a dump of the program memory is to </div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">decapsulate the chip and analyse it with an electron microscope.  As </div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">far as I know, whatever eats the epoxy (not much - maybe nitric and </div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">sulphuric acid) will make a mess of the delicate aluminium tracks. </div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">Theoretically a scanning electron microscope image might be analysed </div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">to reveal a pattern of 0s and 1s in the ROM section.  With some </div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">educated guesswork, this could be turned into the program memory contents. "</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">Haven't follow this thread carefully maybe, and i apologize if i missed anything,</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">but in the end looks like having an electron microscope was not needed to obtain a dump of the program memory and now you guys have a full dump and successfully disassembled it, right ?</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">Well if yes, then of course still you need the official DataBook from NEC,</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">and carefully check what came out from your disassemblers to see if everything was translated correctly.</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">Only after having completed this phase successfully you can go to the code interpretation and analysis.</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><b class="m_-3331558797805601513m_8995147909081084228gmail_msg">@Roman Sowa</b>: </div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">Most experienced people i talked to about disassemblers in the end said "... but i prefer/preferred writing my own one."</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">Now i'm curios to know:</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">Which disassemblers has been used for this 303 reverse engineering testing ?</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">Was it possibile on them to select exactly that NEC family part number ?</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">How many disassemblers do you know that perfectly support that old 1982 CPU ?</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">Have you compared the output of more than 1 disassembler that was configured to translate for that exact CPU ?</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">What you and Brian said about how disassembler are supposed to work is totally true.</div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">Still i don't see enough technical evidence being shared here to tell if this is also true in the facts, or not.</div></div><div dir="ltr" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><div class="m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div><div class="m_-3331558797805601513m_8995147909081084228gmail_msg">K</div></div><div class="gmail_extra m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"><div class="gmail_quote m_-3331558797805601513m_8995147909081084228gmail_msg">2017-03-20 12:11 GMT+01:00  <span dir="ltr" class="m_-3331558797805601513m_8995147909081084228gmail_msg"><<a href="mailto:rsdio@audiobanshee.com" class="m_-3331558797805601513m_8995147909081084228gmail_msg" target="_blank">rsdio@audiobanshee.com</a>></span>:<br class="m_-3331558797805601513m_8995147909081084228gmail_msg"><blockquote class="gmail_quote m_-3331558797805601513m_8995147909081084228gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">There’s no need to chase three or four different disassemblers. All you need is the data book for the exact processor part number, and it will list a definitive set of opcodes. You’re correct that a generic disassembler might get some opcodes wrong, but then your listing will quickly turn into garbage, and that should be blatantly obvious. For these 8-bit processors, it’s usually a very quick task to check a few tens of opcodes (there are usually less than that, and not more than 256, of course). There is a one-to-one mapping between machine code and assembly code.<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
There is no such thing as disassembler optimization. You have it backwards. When code is written in a high-level language like C, the compiler can create different opcodes for the same source depending upon the optimization level and the compiler vendor. However, when you’re looking at assembly or machine code, there is no optimization layer. What you see is what the processor will execute. In fact, the timing is precisely known when looking at machine code or disassembly of machine code into assembler syntax.<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
So, the trouble here is not the disassembler, but recreating the original source code that the developers used. For something of the TB-303 era, the developers probably wrote the entire firmware in assembler. Writing firmware in C was not very common, especially when the ROM was only 2 KB. That’s fewer than 2048 instructions, because many instructions have operands that take an extra byte or two, and then there are the tables of data that should not be disassembled.<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
Uncommented assembly is very difficult to read because there are no variable names or comments. It has nothing to do with optimization and everything to do with human-readable code. The processor doesn’t need the comments, so the ROM doesn’t include them.<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
I write my own disassemblers for projects like this one. I do that because I can embed symbols that represent the custom hardware of the particular vintage synth in question. That means my disassembler listing is more human readable (at least for one particular human) than the default disassembler.<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
Basically, you’re right: Don’t trust a disassembler unless you verify its translation against the official data book for the CPU. But optimization is not part of the process of disassembly. That’s in the realm of compilers. You’ll be able to determine the precise timing from the ROM data and the data book.<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
Brian Willoughby<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
Sound Consulting<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
<div class="m_-3331558797805601513m_8995147909081084228m_-5207182343728735936HOEnZb m_-3331558797805601513m_8995147909081084228gmail_msg"><div class="m_-3331558797805601513m_8995147909081084228m_-5207182343728735936h5 m_-3331558797805601513m_8995147909081084228gmail_msg"><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
On Mar 20, 2017, at 3:50 AM, KRiSh <<a href="mailto:krish0005@gmail.com" class="m_-3331558797805601513m_8995147909081084228gmail_msg" target="_blank">krish0005@gmail.com</a>> wrote:<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> as far as i remember, disassemblers are not guaranteed to output exactly the original code.<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> it depends how the disassembler work and only defining the processor family or model could not be enough..<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> you might obtain a very similar version of the original code, but not as optimized as the original nor 100% identical.<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> any "optimization" is of course useful in the context of each corresponding project,<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> and we are talking about a 1981 project so, probably there where some..<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> i understood the thread is to try re-creating the original source code and understand deeply how the 303 seq works,<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> especially including any quirk that might contribute to its disputed "magic" or "unique" feel.<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> If that's the objective, then i assume more work is needed on the pre-requisites in this case.<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> I would compare at least 3/4 different disassemblers output and see if the code resulting code is the same.<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> Is it the same ?<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> If not what is different ?<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> which disassemblers have been used so far ?<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> Trusting your disassembler 100% and use the resulting code being confident it is already 100% equal to original is a wrong assumption IMHO that could lead you to waste your time (in this particular case).<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> If recreating also the quirks is important here, then you really need the correct original code to understand and identify all the interactions of the routines/interrupts and their timings, especially because efficiency of code and, as said any "optimization", would be very important or crucial to the resulting timing.<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> IMHO, just my 2 cents, etc<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
> K<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
</div></div></blockquote></div><br class="m_-3331558797805601513m_8995147909081084228gmail_msg"></div></div></div><span>
______________________________<wbr>_________________<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
Synth-diy mailing list<br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
<a href="mailto:Synth-diy@synth-diy.org" class="m_-3331558797805601513m_8995147909081084228gmail_msg" target="_blank">Synth-diy@synth-diy.org</a><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
<a href="http://synth-diy.org/mailman/listinfo/synth-diy" rel="noreferrer" class="m_-3331558797805601513m_8995147909081084228gmail_msg" target="_blank">http://synth-diy.org/mailman/l<wbr>istinfo/synth-diy</a><br class="m_-3331558797805601513m_8995147909081084228gmail_msg">
</span></blockquote></div>
</blockquote></div><br></div>
</div></div></div><br></div></div>