home

    Hi, this is page about the coding itself. This is also a gallery of all kinds of incomplete stuff, to relative amounts. Incomplete in sense that  they are not as complete as I would have liked them to be. It had been fun working on these things and maybe someone out there might need a thing or two from these, the way I once did ...

In all fairness this is fairly old stuff - I just like coming here and looking at them though. Maybe I should put up some other too. Anyway some of the newer stuff is mentioned here at my work/projects section.

Prince
more about Prince

I am part of a small group programmers working to re-develop some of the old dos games. Real old ones like Sopwith, Digger etc. I found these guys on the net a little while after I coded a small derivative of Prince.

Here are some screen shots of Prince 3  :) . Prince went to cult status for the games in its league. Since we loved prince in our beginning years and had some time to kill, we put together this version. This is not complete (maybe never will be) but it does do the basic things and taught us what we had to learn. The main challenges here was getting the graphics... this was done by pausing the screen and pressing print-screen on a 100 or so frames. We then cut out the prince images and edit out the backgrounds. The second challenge was the multitasking. We did this on dos, so we had to do the multitasking engine and concurrency manager ourselves and time slice it with the timer int. That presented some nice challenges on a single tasking OS. My friend Tony worked with me on Prince, he coded mainly the sound routines and 8259 PIT.

OS
more about the OS and GUI

    Someone said that Dos programmers have always been writing operating systems. Maybe a spoof, but had some truth in it. We guys wanted to do an OS, a very small simplistic OS.
    A small OS that was the need: Things did get as far a single floppy boot-up. The thing was in real mode, text based. Had a rudimentary file system, a single line based editor (similar to edlin). Worked in a text-based windows setup, where editing brought up a window and commands could be entered in main window. The thing was curious... worked day and night for 4 days on it. Unfortunately I don't have a screen shot for you. Maybe a binary dump in the downloads section later.
    The real intention was to do a protected mode OS with an internal architecture similar to that of Windows in terms of memory layout. The project never got completed to reasons that were not entirely technical (and that is what gets me no end...). The kernel design was to modular with a standard call-routine which managed all system calls to all modules. This routine would be same that would be used for inter-process communication and file-system and memory-manger calls. The original system was meant to be single tasking... and then onto a multitasking system.  People have told me that similar to a micro-kernel architecture. I have never indulged myself in studying it and there are some issues I don't understand at all - like how the avoid a lot code replication in such water tight modules.
    Anyway, we did get as far as boot-up, switch into protected mode. I can send you that code if you contact me. A partly written memory manager (hand written largely in asm, cause I went nuts with the nuances of every 32bit C compiler I found, djgpp generated poor performance asm code... tcc32 was probably an exception, but a lot of manual patching was needed there) that is still in fragments. A dummy file system. The kernel and device manager modules never got started.
    What really did happen was some GUI code that I put together, that with some (major) refinements could have gone platform independant and interface-able to by a standardized protocol... as was the file manager.

Here is screen shot of that GUI system. I later used it write some silly GUI apps in Dos.

W

    This was a utility that got written because I felt I could along with vi and emacs on linux. So you see it was meant to be an editor, but it never became one. And never went to linux, mainly because I was spiked too many times by the local linux programmer I went to for help about portability issues etc.
    This however went onto have an important feature that I wanted. The ability to interpret byte formats. The program became a file viewer as well as a view pipe utility like 'more' or 'less'. You can type 'dir | w' the same way you can do 'dir | more'.
    Interpret byte formats in the sense that it has a script file, where you can specify the data structure that you want to interpret. Next the data can be read off from anywhere .. like a disk sector or a file and program interprets the byte stream. Remember what was like when you displayed your first bmp file.. ever wished that there was a direct way you could examine it or examine, say, your partition table.
    The app also had a configurable architecture where in a script file you could change the menus, change what functions the program provided, the key strokes, text, default behavior etc. I guess I will put it up in the download section , you can contact me for source.

I know it may not make much sense, but here a screen shot anyway.

XDos

This is one of those immature things (like most of the stuff on this page). This wasn't a single program, but rather a collection of dos command-line programs. They are written largely with the intention of showing that the unix-style interconnectivity among applications wasn't very difficult, even in the 640k mem limit. There were commands for subdirectory recursion, command substitution, search filters, drive changing etc. Together they fit together to play some interesting with redirection streams - however if dos was multi-tasking  like unix a lot more would have been possible. Some specific progs from this set I still find useful.

Here is a collection of some of them (I think you can find them in the downloads page):

glyph : This is a directory protection utility. Everyone has a few directories that they don't want others access. This utility exploits a conversion problem from ascii to unicode. This is a well know thing and the program isn't secure for any one more that a medium-level hacker.
rfs : This is a command line file splitter. It has features where it can create a self combining set of fragments (ie the first one is a exe) that fits the other parts together. It can also use an external archiver (rar) so you can directly archive and split (say to floppy sizes) directories or multiple files.
cdx : Nice one here. It is an extension to the standard 'cd', where you can log certain commonly used directories, search for files and change directory there, toggle between directories, use wildcards while changing directories etc. I am considering a linux port.

Some Windows Apps

Numerus - The Math Machine

To say, this is only a calculator. This is a calculator that we are still working on. It presently has a standard calculator interface, support for multiple memory variables, expression processing, using variables in expressions, implicit multiplication rules, support for standard math functions, extensible through user definable functions, base conversion, statistical functions, all table based expression evaluation, memory tables. We are currently adding to it calculus - it can now do expression differentiation of most standard math expressions (with math functions) and give you the differentiated expression (our own algo).We are working on simple unit conversion, matrix manipulations and a mathematical scripting language. It is still in beta.(Q. Are Dilbert icons copyright ?)

NetShortcut
more about Netshortcut

I wonder why too many people haven't written programs like this. This is an obvious one.
This is program that lets you have an easier time on the net. You can issue search requests directly from here, no need to visit the search page to give the search request. You can login to your mail accounts directly, ie give the login and password here and what you see is your account page directly; no need to see the sign in page.

The program is actually a simple script language so it will not be consistent to describe the features. However with default script settings you can type:

gg harry potter movie

to search google for the harry potter movie. If you wanted yahoo search use 'yh' instead of 'gg'. To use a mail login, say 'mylogin@yahoo.com' and password 'mypass' you can type:

yhm mylogin

and in the password slot type:

mypass

Similarly for hotmail you can use 'htm' instead of 'yhm'. The full features and description of script language are there in the documentation. You can get it from the download page.