Software and Hardware

I am continuously working on various open-source projects, which I forget to mention on these pages. Here you can find some of the projects I've worked on in the past.

 -> Medusa DS9

    This is a security-related project, started in 1996 to improve a security of Linux operating system. These days it also runs on NetBSD and is still evolving. Medusa DS9 is able to enforce a wide range of security models, by using its VS model (used as alternative to an access control matrix) in the kernel, and the user-space authorization server Constable (which is able to monitor the accesses and modify the current setup of VS model by executing directives of the configuration language). Visit the project web page for more information. [(c) 1996-2002 Marek Zelem, Milan Pikula, Martin Ockajak]

 -> PPP and TCP/IP for ZX Spectrum

    A fairly complete implementation of a various network protocols for ZX Spectrum, written from scratch in Z80 assembly. Includes serial-line emulation on parallel port (38.400 bps), chat-script interpreter, PPP protocol (LCP, NCP), IP and ICMP, UDP and TCP protocols. Comparing to many todays implementations, e.g. uIP, it is a REAL implementation of those protocols (i.e. it does defragmentation etc.) unlike the understand-some-headers software currently available [(c) 1998 Milan Pikula, Juraj Rehak, Lubos Janica]

 -> TI85 Emulator

    The TI85 calculator hardware emulator for Linux (2001). It works with FLTK and GTK toolkits on Linux workstations and PDAs (original software), as a native MacOS-X Cocoa application (ported by me and Brandon Meyer, sources lost due to a hard disk crash, PPC binary still available on the net), a QT-Embedded application on iPAQ or Zaurus (zTI85Emu ported by Mark Westcott [right???]), and recently (2006) even Nintendo DS (blog entry here, ported by David Rorex). In order to use it, you need a ROM image of real Texas Instruments TI85. [(c) Milan Pikula, based on Z80 emulation library MSX by Marat Fayzullin]

 -> Agenda VR3 Memory Upgrade

    Some time ago, I've upgraded few pieces of Agenda VR3 (Linux PDA) to 16 megs of RAM. Click on the link above to see a excelent photo-story about the memory upgrade, or here if you want to download the modified version of PMON, VRflash and kernel. I still own one, and maintain a separate page about my software and hardware mods, which can be found here.

 More software
  • GAMA 81 ROM - probably a most featureful replacement ROM for ZX Spectrum 48k, which features many bugfixes, arrows up/down in command-line editing, line numbers from 0 to 16383, POKE with unlimited number of byte, word and string arguments (like POKE 50000, 33;16384,1;6144,201,"test";USR(50000)), jump to the position of error on the line, various other little improvements, and a small disassembler (using SYS *address, SYS is a replacement for COPY). [ROM code (c) Amstrad ltd., changes (c) Milan Pikula]
  • WISH - the shell for USGard on TI85, written in Z80 assembly. In contrast to other USGard shells, this one ca be configured at compile time to contain the exact needed set of features, is able to run BASIC programs too, and have many other features. [(c) Milan Pikula]
  • WM PPTP daemon - the point to point tunelling protocol implementation for Linux, primarily made to communicate with Microcom 4000, but capable of communicating with other PPTP implementations as well. [(c) Milan Pikula, Marek Zelem]
  • VT52 VNC - a simple VNC viewer for monochromatic serial terminals, labeled "vdt 52s", which are DEC VT52 compatible, but capable of vector graphics.
  • VR3 page with my kernel patches, Ericsson Chatboard hack and more, for Agenda VR3 PDA.
  • There might be more of my open-source software, drivers and patches at project.terminus.sk, fornax.sk, lirc.org, agendawiki.com or elsewhere on the network.
 My toys, knowledge, and certificates

    I specialize in low-level and embedded programming, security, networks and GNU/Linux. I can adapt very fast, and can learn new programming language or paradigm quickly, thus I am able to work in virtually any required language and environment. I prefer working in small teams. I own an IT company and can be hired for consulting or programming in any of these areas.

    Languages: Assembler and Machine Code - Z80, ix86, SPARC, MIPS, M68000, ARM, IA64, PPC, 8051, interpreted languages - Perl, PHP, Lisp, Prolog, bash, csh, JavaScript, TCL/Tk, awk, Python, Forth, PostScript, compiled languages - C, C++, Objective C, Java, Fortran, Pascal, Basic, DBASE, SQL.

    Platforms: CP/M, DOS, Windows, Ultrix, Solaris, HPUX, Linux, Irix, MacOS X, PalmOS, Minix. Deep knowledge of UNIX operating systems, including kernel level. Author of various kernel patches and drivers.

    Architectures: all leading hardware platforms including Intel, SPARC, ARM, MIPS, PPC. Embedded platforms.

    IT Security: solid understanding of security concepts, author of Medusa DS9 security system - a Linux kernel patch to increase security and implement various security models.

    Embedded: I owned and programmed various PDAs, including TI85 calculator (programmable in Z80 assembly), VR3 (have built a considerable amount of kernel code for it), Palm and few others.

    Education: I have masters degree in Informatics at FEI STU, now Faculty of Informatics and Information Technologies in Bratislava, Slovakia.

    Certificates: I own a bunch of Brainbench certificates.

 -> Non-software Projects
 -> Main Page