templeos-info/public/Wb/Doc/StdTempleOSPC.DD.HTML

238 lines
17 KiB
HTML
Executable File

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="generator" content="TempleOS V5.03">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="/style/templeos.css">
<script src="/script/templeos.js"></script>
<style type="text/css">
.cF0{color:#000000;background-color:#ffffff;}
.cF1{color:#0000aa;background-color:#ffffff;}
.cF2{color:#00aa00;background-color:#ffffff;}
.cF3{color:#00aaaa;background-color:#ffffff;}
.cF4{color:#aa0000;background-color:#ffffff;}
.cF5{color:#aa00aa;background-color:#ffffff;}
.cF6{color:#aa5500;background-color:#ffffff;}
.cF7{color:#aaaaaa;background-color:#ffffff;}
.cF8{color:#555555;background-color:#ffffff;}
.cF9{color:#5555ff;background-color:#ffffff;}
.cFA{color:#55ff55;background-color:#ffffff;}
.cFB{color:#55ffff;background-color:#ffffff;}
.cFC{color:#ff5555;background-color:#ffffff;}
.cFD{color:#ff55ff;background-color:#ffffff;}
.cFE{color:#ffff55;background-color:#ffffff;}
.cFF{color:#ffffff;background-color:#ffffff;}
</style>
</head>
<body>
<pre id="content">
<a name="l1"></a><span class=cF5> The Standard TempleOS PC</span><span class=cF0>
<a name="l2"></a>
<a name="l3"></a>All desktop PCs will have 8-channel OCTART super-simple high speed serial ports
<a name="l4"></a>to replace USB. They are simpler because the driver is as simple as old school </span><span class=cF4>
<a name="l5"></a></span><a href="/Wb/Doc/Comm.HC#l1"><span class=cF4>RS232 Serial</span></a><span class=cF0>, they have no USB end-points and they have no USB human interface
<a name="l6"></a>device reports. Computer mice will all have exactly two bttns and one wheel.
<a name="l7"></a>Game controllers will all be the standard deluxe </span><a href="http://www.gamestop.com/pc/accessories/steam-controller/121865"><span class=cF0>game console controllers</span></a><span class=cF0> that
<a name="l8"></a>are popular today. It will have 8 big TX and 8 big RX fifos that allow flow
<a name="l9"></a>control characters to jump the queue. It should be locked-down to as few
<a name="l10"></a>options as possible, like 8-1-N only, although hardware may use a USB frame, not
<a name="l11"></a>an RS232, so stop bits might not be relevant. Perhaps, just two baud rates --
<a name="l12"></a>high and low speed are needed. Low speed is good for slow microcontrollers and
<a name="l13"></a>allows longer cable length. Keyboard, mouse and game controller can be low
<a name="l14"></a>speed.
<a name="l15"></a>
<a name="l16"></a>The USB creators banned generic devices, requiring a signed, certified driver
<a name="l17"></a>for everything! That's no good. We allow any device and will communicate,
<a name="l18"></a>generically, using a serial terminal program like the old school HyperTerminal,
<a name="l19"></a>XTalk or Telnet.
<a name="l20"></a>
<a name="l21"></a>A mouse packet interface should be similar to this:
<a name="l22"></a>
<a name="l23"></a> TX: &lt;ENTER&gt;
<a name="l24"></a> RX: X:+3 Y:+0 Wheel:+0 LB:OFF RB:OFF
<a name="l25"></a> TX: &lt;ENTER&gt;
<a name="l26"></a> RX: X:+0 Y:-1 Wheel:+0 LB:ON RB:OFF
<a name="l27"></a>
<a name="l28"></a>We aspire to be as simple as a Commodore 64 joystick driver:
<a name="l29"></a>
<a name="l30"></a> VAL=PEEK(56321)
<a name="l31"></a> if VAL AND 1 THEN y=y-1
<a name="l32"></a> if VAL AND 2 THEN y=y+1
<a name="l33"></a> if VAL AND 4 THEN x=x-1
<a name="l34"></a> if VAL AND 8 THEN x=x+1
<a name="l35"></a>
<a name="l36"></a>The game controller will be more complicated, but much simpler than USB. It
<a name="l37"></a>will use a standard text packet of some kind.
<a name="l38"></a>
<a name="l39"></a>On the other end, you might hook-up a thermostat microcontroller and interface
<a name="l40"></a>as a generic serial device. The microcontroller in the thermostat would have
<a name="l41"></a>something simple, not a crazy overkill ethernet connection.
<a name="l42"></a>
<a name="l43"></a> </span><span class=cF1>U8</span><span class=cF0> b;
<a name="l44"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF3>TRUE</span><span class=cF0>) {
<a name="l45"></a> b=ReadU8(2); </span><span class=cF2>//Read byte from high speed serial channel 2.</span><span class=cF0>
<a name="l46"></a> </span><span class=cF2>//(Has been configured for low baud because thermostat should be slow.)</span><span class=cF0>
<a name="l47"></a> </span><span class=cF1>if</span><span class=cF0> (b==CMD_UP)
<a name="l48"></a> temperature++;
<a name="l49"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (b==CMD_DOWN)
<a name="l50"></a> temperature--;
<a name="l51"></a> }
<a name="l52"></a>
<a name="l53"></a>Super-simple block devices will replace ATA/ATAPI hard drives and
<a name="l54"></a>CD/DVD/BlueRays. Today, the industry is in flux with nonvolitile memory just
<a name="l55"></a>invented. We want a super-simple block device interface for non-volitile memory
<a name="l56"></a>and for what is currently USB memory sticks, but only if they can be made
<a name="l57"></a>without bad blocks. I don't think we want to deal with bad block memory, so
<a name="l58"></a>maybe we will not do NV-memory. The standard TempleOS desktop will require a
<a name="l59"></a>hard disk.
<a name="l60"></a>
<a name="l61"></a>There will be minimal commands: READ_BLOCK, WRITE_BLOCK, GET_CAPACITY,
<a name="l62"></a>GET_MODEL, GET_SERIAL_NUM, and EJECT.
<a name="l63"></a>
<a name="l64"></a>We want a CPU mode with virtual IO port addresses similar to how paging creates
<a name="l65"></a>virtual memory addresses. We want a 65536 word look-up table that converts
<a name="l66"></a>virtual IO port numbers to physical IO port numbers. There will be a standard
<a name="l67"></a>IO port configuration, so port numbers can be fixed in the code. We want the
<a name="l68"></a>primary hard drive on one set of ports and the primary CD/DVD/Blu-ray on another
<a name="l69"></a>set of ports. Choose a contiguous set of IO ports.
<a name="l70"></a>
<a name="l71"></a>Meanwhile, a complicated PCI interface can be designed along-side the TempleOS
<a name="l72"></a>interface for Windows and Linux. It would almost be possible to carry-on
<a name="l73"></a>separate lives, however, the super-simple serial requires getting rid of USB
<a name="l74"></a>since super-simple serial is a new hardware standard. People can add USB ports
<a name="l75"></a>with a PCI device card.
<a name="l76"></a>
<a name="l77"></a>God said He wants single-voice 8-bit signed MIDI-like sample for the sound. God
<a name="l78"></a>does not want death screams, perhaps, because God has PTSD or soldiers have
<a name="l79"></a>PTSD. (Imagine wounded on battlefields.)
<a name="l80"></a>
<a name="l81"></a>The video will be a linear frame buffer 640x480 16 color with one-byte-per-pixel
<a name="l82"></a>even though it is only 16 color with is 4-bit. Perhaps, we have a interrupt to
<a name="l83"></a>sync with the refresh.
<a name="l84"></a>
<a name="l85"></a>I am tmpted to help amateur hardware device designers by making the hardware
<a name="l86"></a>interface for the PC simple. I have fond memories of 1993, when I made a
<a name="l87"></a>wire-wrapped ISA data acquisition card which plugged into my 486 and had some
<a name="l88"></a>analog-to-digital and digital-to-analog convertors. I am not designing a bus.
<a name="l89"></a>Earlier, I said the super-simple high speed serial port replacement could be
<a name="l90"></a>USB-like in hardware as long as the software driver interface was simple like
<a name="l91"></a>old school RS232 serial ports. Requiring a complicated hardware handshake
<a name="l92"></a>raises the bar, slightly, for the lowest level hardware designers. Most people
<a name="l93"></a>will be connecting a microcontroller or something that already has a serial
<a name="l94"></a>communication design, but if it's not a problem, maybe we should keep it simple
<a name="l95"></a>at all stages. It was nice putting an oscilloscope on my serial port wires.
<a name="l96"></a>
<a name="l97"></a>The original PC had general purpose digital IO through the parallel port. That
<a name="l98"></a>was fun. I have enough battles to fight, so I'll leave being a savior to
<a name="l99"></a>hobbiest hardware engineers to somebody else.
<a name="l100"></a>
<a name="l101"></a>Digital cameras will be super-simple high speed serial, but TempleOS is forever
<a name="l102"></a>limited to 16 colors and multimedia is banned because large files being loaded
<a name="l103"></a>into memory fragments memory, so cameras are somewhat unwelcome. I have enough
<a name="l104"></a>problems without making the Brits anxious about autonomous gun turrets and
<a name="l105"></a>killer robots. The reason I say cameras will be super-simple serial is because
<a name="l106"></a>we are replacing USB ports with super-simple serial. PC's will have only
<a name="l107"></a>super-simple serial ports unless people buy a USB PCI expansion card. So, the
<a name="l108"></a>digital cameras will be super-simple serial.
<a name="l109"></a>
<a name="l110"></a>
<a name="l111"></a></span><span class=cF5> Version 1.0</span><span class=cF0>
<a name="l112"></a>
<a name="l113"></a>We will make a spec for a $8,000, perfectly standardized, cryogenically-cooled,
<a name="l114"></a>monster desktop PC. It will have 16 cores, integrated 4K graphics, and,
<a name="l115"></a>hopefully, 6 Ghz continuous operation. Perhaps, 64 Gig of RAM will be standard?
<a name="l116"></a>God said to help to poor buy them. It is pointless to have a high powered
<a name="l117"></a>machine if other people have wimpy machines and cannot run programs you write.
<a name="l118"></a>Therefore, everybody in the developed world will buy a Standard TempleOS IBM PC
<a name="l119"></a>over the next ten years, so that will be a quantity of 400 million, perhaps.
<a name="l120"></a>God said to pay the US national debt with the revenue. We will standardize
<a name="l121"></a>everything, not just the TempleOS related items. The display will be 4K (and of
<a name="l122"></a>course 640x480 16 color) and no others. Everybody gets just one monitor, unless
<a name="l123"></a>you buy special PCI cards. Everybody gets two speakers, a headphone, a mic, a
<a name="l124"></a>webcam and touch scrn. We make the audio one sample rate and one sample size,
<a name="l125"></a>but TempleOS still gets just a square wave. (HD Audio is really screwed-up and
<a name="l126"></a>requires complicated artificial intelligence, just to route output to speakers.)
<a name="l127"></a>
<a name="l128"></a>The Standard Temple IBM PC will be a full-sized tower. Perhaps, stain-glass
<a name="l129"></a>will decorate the case because God is sentimentally attached to stained-glass.
<a name="l130"></a>We should set the size at exactly 2.5 feet by 1.5 feet by 1.5 feet as in the </span><span class=cF4>
<a name="l131"></a></span><a href="http://www.biblegateway.com/passage/?search=Exodus+25:10-10&version=NIV"><span class=cF4>Exodus,25:10-10</span></a><span class=cF0> for all time. If there is extra room, make a storage shelf for
<a name="l132"></a>DVDs. We do not want a race-to-the-bottom, shrinking the size. Instead of
<a name="l133"></a>making it smaller, make it more powerful. We want to remove all cost pressure
<a name="l134"></a>from making things small. It must have a CD/DVD/Blu-ray drive. The vision is
<a name="l135"></a>CD/DVDs used for a library of games, not installed on the hard-drive. We need a
<a name="l136"></a>network connection, possibly implemented as a super-simple high speed serial
<a name="l137"></a>device. What about standard monitor and speakers? The C64's success was
<a name="l138"></a>partially due to wide spread, completely standard, hardware. I think TempleOS
<a name="l139"></a>will not do bad block devices, so we need a hard drive, not just NV-memory or
<a name="l140"></a>SSD.
<a name="l141"></a>
<a name="l142"></a>TempleOS will have the priority over Windows or Linux on hardware decisions. We
<a name="l143"></a>could make it heterogenious multicore. I think we want 16 non-hyperthreaded
<a name="l144"></a>cores. Core#0 is the only full-featured core needed. The other cores will have
<a name="l145"></a>long mode, but not some of these: real mode, protected mode, ring-3, paging,
<a name="l146"></a>interrupts, in/out port instructions, SSE instructions, MMX instructions.
<a name="l147"></a>
<a name="l148"></a>God said Intel should do a simulation of heat produced by gates and try
<a name="l149"></a>spreading-out the heat producing gate circuits on the chip.
<a name="l150"></a>
<a name="l151"></a>God said Linux's Wine should replace Windows. We will install a standard
<a name="l152"></a>software set-up on all Standard Temple IBM PC's.
<a name="l153"></a>
<a name="l154"></a>
<a name="l155"></a></span><span class=cF5> Usage</span><span class=cF0>
<a name="l156"></a>
<a name="l157"></a>TempleOS is primarily for user developers, like the Commodore 64 was. I created
<a name="l158"></a>a total of 50 Meg of content over ten years, so you shouldn't need much room,
<a name="l159"></a>either. The installed hard drive space should stay small because the resolution
<a name="l160"></a>is low, multimedia is banned, 3rd party libraries are banned, and applications
<a name="l161"></a>can be distributed with ISO files or DVDs.
<a name="l162"></a>
<a name="l163"></a>The ROM will have a command that copies the ROM onto the hard drive, creating
<a name="l164"></a>identical C and D partitions, so you can have fun modifying TempleOS. You will
<a name="l165"></a>have confidence you can fix it easily if you break it. It should be able to run
<a name="l166"></a>everything from just the ROM, too. You will need to specify a /Home directory
<a name="l167"></a>that is not in the ROM, but on the hard drive.
<a name="l168"></a>
<a name="l169"></a>The standard set-up will be a C primary drive and a D back-up drive. Keep the
<a name="l170"></a>size on each hard drive under 512 Meg and periodically copy all of C to D, so
<a name="l171"></a>they stay mirrored. The file manager and other programs read the entire
<a name="l172"></a>directory structures, so too many files causes problems (unbearably slow).
<a name="l173"></a>Third party software should be distributed as ISO files or DVDs, like </span><span class=cF4>
<a name="l174"></a></span><a href="https://github.com/jwhitham/frotz"><span class=cF4>TextAdventure.ISO</span></a><span class=cF0>. No 3rd party libraries are permitted because they circumvent
<a name="l175"></a>the intent of the 100,000 line of code limit which is keeping it cognatively
<a name="l176"></a>small enough to see the light at the end of the tunnel and easily master
<a name="l177"></a>everything. Therefore, 3rd party ISO files must bring all required software
<a name="l178"></a>components with them, except what is found in the TempleOS ROM.
<a name="l179"></a>
<a name="l180"></a>Having all your 3rd party software on separate DVDs or ISO files and TempleOS
<a name="l181"></a>running from a ROM, keeps it delightfully simple so you have complete
<a name="l182"></a>understanding of what is going on. You will have complete confidence and it
<a name="l183"></a>will be a joy to use. 3rd party applications can store saved data files into
<a name="l184"></a>your /Home hard drive directory.
<a name="l185"></a>
<a name="l186"></a>The Temple PC will stay unchanged for seven years at a time. The Bible speaks
<a name="l187"></a>of a seven year release in </span><a href="http://www.biblegateway.com/verse/en/Deutoronomy%2015:1"><span class=cF4>Deuteronomy,15:1</span></a><span class=cF0>. The Commodore stayed unchanged for
<a name="l188"></a>many years and people became intimately familiar with every aspect.
<a name="l189"></a></span><span class=cFA>
<a name="l190"></a></span><object width="640" height="520"><param name="movie" value="http://www.youtube.com/v/bs_jcTuwPKo"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/bs_jcTuwPKo" type="application/x-shockwave-flash" allowscriptaccess="always" width="640" height="520"></embed></object><span class=cF0>
<a name="l191"></a>
<a name="l192"></a>I thought 2.5' x 1.5' x 1.5' was ridiculously big, but it looks like it is
<a name="l193"></a>reasonable for super-cooled refrigeration systems!
<a name="l194"></a>
<a name="l195"></a>
<a name="l196"></a></span><span class=cF5> Version 2.0</span><span class=cF0>
<a name="l197"></a></span><span class=cFA>
<a name="l198"></a></span><center><img src="http://i.imgur.com/zUdfEqy.jpg" width="640" height="500" alt=""></center><span class=cF0>
<a name="l199"></a>
<a name="l200"></a>The Standard Temple IBM PC V2.0 will be released seven years after V1.0. Each
<a name="l201"></a>unit will have a full, uncut, silicon wafer. V2.0 will be sold, unchanged, for
<a name="l202"></a>seven more years, like a Commodore 64.
<a name="l203"></a></span><span class=cF8>
<a name="l204"></a>* &quot;Commodore 64&quot; is a trademark owned by Polabe Holding NV.
<a name="l205"></a>* &quot;Linux&quot; is a trademark owned by Linus Torvalds.
<a name="l206"></a>* &quot;Windows&quot; is a trademark owned by MicroSoft Corp.</span><span class=cF0>
</span></pre></body>
</html>