GARTHWILSON wrote:
I think the problem there is probably not the assembly language, but rather the monumental size of the task in any language.
Indeed. As cbscpe said, it can and has been done, and networking implementations for the 6502 has been around for decades.
Quote:
Since that's already in place though, I'm sure there's no reason to replace it just to get it working on a 6502 or '816 in assembly language.
I suspect I'm missing something w.r.t. what Jim is trying to do. He doesn't like having to declare data types or having to read 200 page manuals, yet understanding and using a networking stack would require including declarations and reading manuals. The 6502 manuals are in the 200 page range. He doesn't like the arbitrary syntax of high level languages, yet almost every CPU has its own mnemonics (EOR vs. XOR) and operand syntax. These differences can appear arbitrary and were likely chosen by individuals at the time of the CPUs' creation to either improve upon (using some personal criteria) or differentiate from competitor products.
The question of instruction-level translation isn't without merit. Apple famously implemented live translation of PowerPC to Intel x86 to enable the transition of the Mac hardware back in the day. JIT translation of the Java byte-code has been a thing for over a decade, and like many things in "modern" computing, if you look hard enough you'll probably find out the techniques were invented in the 60s (much like VMWARE pretends to have invented hypervisors, the grey haired hippies from the 60s just laugh at them).
It is, of course, possible to translate 65xx into x86 - both are Turing complete - but instructions are only half the battle on the PC platform. If you want to work across a range of PCs, you likely need a HAL with emulated hardware - taking an OS trap every time the JIT code touches a virtual hardware register. The alternative is to directly map hardware registers into the JIT memory space and then accept that only a specific (or limited) set of hardware controllers will work in your project.
TL;DR: Not quite sure what this guy is trying to do, but I sure do like to type.