A Propeller based 8086 emulator couldn't be that far away
pedward
Posts: 1,642
http://www.ioccc.org/2013/cable3/hint.html
I'm thinking that with only 4043 bytes of C code and a BIOS, this could be the basis of workable PC emulator on the Prop 2.
The developer may have unobfuscated original source code to work from.
http://www.ioccc.org/years.html#2013
I'm thinking that with only 4043 bytes of C code and a BIOS, this could be the basis of workable PC emulator on the Prop 2.
The developer may have unobfuscated original source code to work from.
http://www.ioccc.org/years.html#2013
Comments
I guess it will compile under propgcc. How big will it be?
Baring the fact that it uses SDL for output it should work on a P1 with external RAM.
Wonder what ZiCog would look like???
I managed to compile cable3. Works fine.
We are going to need a few SDL routines to get this to compile for the Prop. As far as I can see it only uses:
SDL_Flip()
SDL_PumpEvents()
SDL_SetVideoMode(720,348,32,0)
SDL_Quit()
Sounds doable if anyone is keen. Except we need a megabyte or two of double buffered video surface by the looks of it.
Cable3 compiled to Javascript to run in the browser.
But I'd like to run it using a browser running on my Spinneret. Can you do that?
Hmm... DRDOS is freeware...
Well, that would be faster than the old Radio Shack 4.77MHz 8086 machine that we bought for $1200 that we made our early microcontroller tools on. I made our original EEPROM emulator and Signetics 87C751 (24-pin 8051) assembler and programmer for the PC on that old system. I miss the simplicity of those times. I never thought then that I'd someday work on a chip that could practically replace the whole motherboard of that machine. There were no FPGA's back then - only PALs and GALs, maybe PLDs. I guess I'll take today over yesterday.
When 12 MHz was typical around the days of MS-DOS 3.3 PC's were quite capable and zippy. There was a lot of finely tuned code written in the 4.77 MHz days that was seeing more clock and RAM than its creators had anticipated. I still miss the source code editor I used then, which could keep dozens of files (and different windows into the same open file) open at once, switching between views instantly. 256K RAM was still considered adequate, even luxurious, for most non-gaming non-power-user purposes. And most of that software can still be found.
Not sure if it's better or worse than the IOCCC entry, but this x86/PC emulator is pretty well done.
bartgrantham,
I bet there are many ways to go with x86 emulation. I just loved the perversity of compiling obfuscated C into Javascript!
Though I'd never touched a "living" IBM 1401, in 1985 I was involved in the design of an IBM 2821 emulator (+300 LSTTL + NxZ80s + Nx6116 + Nx2732/2764/27128 + Nxdiscrete BJT's/darlingtons/assorted passive components), to control a 1403 printer.
Almost 200 units were assembled and sold/rent in Brazil, until 1989.
The following link leds to a bunch of info about the 1401, I hope it can help a bit.
http://ibm-1401.info/index.html#Major-Topics
Yanomani
Does someone have any clue about a copy of the following book and/or Mr. Rick Bensene, from "The Old Calculator Web Museum"?
http://www.oldcalculatormuseum.com/m-m1800ap.html
Since dreaming worth by itself, and costs no more than a good night of sleep, I'd love to write my own Monroe 1800/Compucorp 400 series emulator, in order to revisit some of the first programs I've crafted, in assembly language. :nerd:
Yanomani
Thanks for this link, I've already found it, some two year ago or so. Although it fully describes the "plain vanilla" Compucorp 445 operations, from a statistics aware programming perspective, it lacks any references to assembly language programming and the hardware foundations of Compucorp 400 series microcomputers, whose knowledge would be essential to enable a simulator for it to be crafted.
Half of their instruction set space used to have a dual meaning, selectable under control of a special flag bit (GPCI - Group C Instruction), whose set/reset process was exercised thru one special flag set control instruction, present at the permanently enabled half of the instruction map.
And there was the hut, where the whole magic begins.
Once enabled, the third instruction set allowed a realy motivated, 19 y.o. young guy (me, for sure) to tackle every obstacle he never saw before, such as controlling a hammer chain to smash a two-colored ink tape between an (almost) never ending paper roll and a hard-crafted-character-covered, spinning metal drum, to paint "fuzzy and funny" shapes and faces, or rattle an Emerson, Lake & Palmer tune, other than showing simple mathematical equations results.
It also allowed him to "taste" the sweetness of full speed cassete tape drive control, and its very loud head engage solenoid, adding a bit of "drums" to its music.
Then, after mastering the whole tape write processes, allowed him to create his first records of "moog alike" cassette files, to be played elsewere, as digital music; a never ending crew amusement topic.
Oh boy, sure there were joyous times, and a lot of encouragement and motivation involved, being allowed to learn software and hardware this way. And all this, in my spare or extra-hours time, cause I was urged to make my bread and butter, boringly programming it using mostly high-level instructions, to solve mechanical calculus equations and finite element stiffness and load matrices, at my second employer's industrial facility mechanical design department, some long ago defunct french company.
Programming (hard/soft) has nothing to do with being a nerd or guru; it's all about being happy doing so.
Chip, Ken and the whole Parallax team and concepts are fully right; it must be fun to learn and spark the right ideas, human nature will take care of the rest.
Yanomani
You're always welcome. I've been lucky enough to have a chance to "tweak" an ancient IBM System/3 core memory read amplifiers power supply, as part of kind of a stress test; an early morning prerequisite, safely preparing it for some "commercial" usage.
Kind of a bit lose/gain funny game, backed by an insulated screw driver and a huge needle display equiped analog VOM.
Ever good for chilly days, cause "the beast" used to spread lots of heat out of its top grid, warming my hands, arms and shoulders, in the otherwise cold as hell condicioned air data processing environment.
As for memory, my first Compucorp had a mild 2kB of Ram and a lot of 512 byte-long magnetic cards; starvation and space shrinkage are excellent advisors for novice programmers; you could ever dream big and think further, then assembly it, in very small steps.
Pray God, and pass the ammunition (or the next card)! Don't mix them up, nor reverse their order, ever.
Sure we are piling years as old furniture piles dust, soon we all will be allowed to defy Methuselah and his 999 paradigm. I could bet he had an unnoticed card, inside its tunic.
Yanomani