??? 09/01/04 06:53 Read: times |
#76730 - RE: I'm game! Responding to: ???'s previous message |
Planning/brainstorming. What we do right now right here.
My opinion: we should aim at v2.0 being fitted with full compatibility mode, so my postulates for now are: 1) We should decide for one target platform. Atari 800XL is the first idea (as some of us seem to be a bit familiar with that platform), but that's still open for discussion. I'd rather avoid Atari 400/800 as these were "bitty boxen", made more with savings in mind than good design, besides there was never a good software library for them. Other options are Commodore 64/128 and ZX Spectrum 48/plus (yeah, Z80). The factors we should consider at the choice time: - Documentation. We really need good documentation to follow! - Original design quality. The original design must be smart and simulatneously simple so we could replicate parts of it. Also "doable in 51" and reasonably "good" final product (We don't want ZX81 on which hardly anything was possible) - Software library (so we had something to port, this IS a major shortcoming of Atari 400/800!) - Our own (common-shared) experience, personal issues. - (design copyright issues?) 2) Our overall design should replicate 100% of the target platform basics. We can include our own extensions but they shouldn't collide with the original, so we enter the "compatibility mode" and it all runs "out of the box", so hardware is not an issue, no missing tracks, reversed byte order or wrong memory mapping that requires conversion of the original software. 3) All the "custom" parts wherever reasonable and possible are made with separate '51s, matching 1:1 or in extreme cases 2:1 (2 '51s for one chip, preferably avoid!) the original parts in functionality. Extra functionality like DAC/ADC, RF modulation etc is done in discretes. We may omit non-essential parts of the design that don't cause software problems, replacing them with corresponding "stubs" so i.e. we don't support a tape recorder at all, but the software will "see" that the tape recorder is unplugged, not that the hardware reading it is missing. 4) To be decided: Do we build everything with identical '51s (easier programming) or take advantage of the richness of the family and place different derivatives for different tasks? (multi-pin for IO, built in DAC for Audio/Video etc. 5) We use Flash/EEprom derivatives and use the internal memory as the system ROM and "custom chip internals". The "loadable" software proper is read from external memory. The chips may thus switch their own EA at will... (we might include an external ROM chip for compatiblity...) 6) Version 1.0 will work in basic '51 native mode, where each chip does its own single designated task, the "CPU" runs native '51 binaries. Version 2.0 will include 6502 (or Z80?) emulation support and multiprocessor mode, where arbitrary "dedicated" chips switch their "outside world I/O" off, switch to external code memory and start processing some "external" program, just like the CPU does. Opinions? Comments? Suggestions? |