Software and Hardware stuffs

I am designing a new simple 32bit CPU and calling it as TeeRISC(RISC based CPU) and planning to implement it in Verilog. Currently I am working the compiler part so for now only the ISA is available. When it is finished it will run on Papillo Pro FPGA.

TeeRISC Compiler is a fork of LLVM and TeeRISC backend is added. Currently It can compile arithematic and logical statements into TeeRISC instructions. Conditional statements and memory model(PIC) yet has to be implemented.

Planning to do asimulator using gem5. If you are interested, you are welcome to join.
Ace 3
Ace is an operating system kernel which runs i386 based machines. It is free and open source. Dilip Simha joined with me in the creation of Ace 3. We experimented different OS concepts using Ace. Mainly we researched on microkernel concepts - IPC between loadable modules and kernel.

Ace OS's virtual memory system is based on BSD memory model. It has a driver model very similar to Windows. VFS might sound like Linux FS layer but completely different because of the IPC model it used to interact with drivers and user mode.

The screenshot was taken when Ace 3 was booting on QEMU.
pycdb is a debugger completely written in Python using pyelftools library. It reads symbol(ELF) files, parses debug(DWARF)sections, reads coredump(elfcore) files and executes the commands given.

It can be considered as "limited" edition of GDB completely written in python. It is slow when debugging a object file with huge debug information because of the slow parsing done by python.

The screenshot shows a colorful backtrace created by pycdb. After writing pycdb, I realized lldb has all the things I am trying to achieve, so I switched to use lldb. My patch to support elf-core dump files is recently committed to lldb. So if your job is analyzing core files try lldb.
Eva is a expression evaluator developed as a cross platform utility. It is written using ANTLR(targetting C), gcc. Eva supports all C expressions including bitwise operations. It is created to aid developers to convert between hexa to binary operations easily. The main goal was very simple code base ~1000 lines.

The UI part was initially coded using wxWidgets and now contains - simple command line interface, wxWidgets and Windows specific GUI interface. Here is a video demonstrating different operations possible with Eva.
Disk Communicator
Disk Communicator is a small system utility to monitor IDE/ATA devices status attached to the PC. Disk Communicator can be used to predict the failure of a HDD using SMART. More details on


samueldotj's items Go to samueldotj's photostream