Projekty
PalmCPU
PalmCPU je můj návrh 12-bit mikroprocesoru. Instrukční sada čítá 16 příkazů (4 bity) a adresovaná paměť/data jsou reprezentována zbývajícími 8 bity. Navrhováním procesoru jsem se snažil pochopit vnitřní logiku CPU, proto návrh obsahuje mnoho defective-by-design chyb, nicméně navrhl jsem ho bez jakýchkoliv předchozích znalostí.
Mikroprocesor obsahuje celkem 3 registry - A a B fungují jako vstup, C jako výstup. Registr C je také jako jediný schopen pracovat s pamětí a výstupními zařízeními.
PalmCPU je schopen provádět základní bitwise operace (AND, OR, NOT, ADD), podmíněné skoky (vázané na registr C - JZ, JNZ), porovnávat (<, =) - výsledek je opět ukládán do regisru C.
Jak je vidno, největší slabinou je absence registrů pro zero flag, compare flag a další. Dalším velkým problémem je nemožnost deklarace záporných čísel, dále limity 8 bitů - udrží informace pouze o číslech 0-255, program může mít pouze 255 instrukcí, pamět může alokovat pouze 255 8-bitových buňek. Všechny tyto neduhy plánuji odstranit v připravovaném PalmCPU 2, který je ovšem stále ještě v plenkách.
V srpnu 2011 jsem nakoupil většinu potřebných součástek pro vytvoření fyzické podoby mikroprocesoru. Celková cena včetně pamětí se od té doby vyšplhala přes hodnotu 900 Kč a spájená je zatím jen polovina procesoru.
PalmCPUAsm
PalmCPUAsm je kompiler "assembleru" pro PalmCPU. Vznikl z mé vlastní lenosti - například ručně psát instrukce pro for-loop bylo skutečně pracné, obzvláště když v polovině programu přibyl nový řádek a všechny pozdější adresy se staly neplatnými. Mimo usnadnění programování umožňuje také mnohem efektivnější správu paměti.
PalmSpace
PalmSpace je MMORPG, vytvořená v C# s grafickou nástavbou XNA. Je to jedna z prvních her, kterou jsem kdy napsal. Klient i server je napsán v C#, přičemž server využívá MSSQL a je schopen obsloužit najednou až 64 klientů, ke komunikaci je využito UDP.
Videoukázka z jedné starší verze se nachází na youtube - http://www.youtube.com/watch?v=lSA3Pcz3oR8