Thursday, May 17, 2018

FreeDOS - how i installed FreeDOS 1.0 with only a few floppy disks and a usb drive.

Installing FreeDOS normally is quite easy compared to MS-DOS. just insert the live CD and for the most part just follow the on-screen instructions.

But i had a problem a few years back when i decided to install freedos on my IBM Thinkpad 600E with its 400Mhz P2 and 224MB ram. The dvd drive was as dead as a doorknob.

But somehow i did it. and how i did starts with a special FreeDOS floppy i put together.


Ram disk, floppy disk.

Once upon a time, that thinkpad had windows 2000 on it. with an NTFS partition. so i wasn't exactly in a good place to actually setup freedos on it.

What i ended up doing at first is i took SRDISK and unzip and a freedos boot floppy to make a basic ramdisk of a very minimal freedos setup. (this is important later)

This ramdisk, once booted, is crazy-fast. and most importantly i can swap the floppy disk while its running. and even load extra zip archives off floppy disks into the ramdisk.

What this has to do with installing freedos.

So, with the help of my trusty ramdisk floppy, when i went to install freedos, i did the formatting, set aside an extra partition for a second os if needed, and installed a bootloader.

Problem: how am i supposed to get the utilities and such on this thing?
This computer only has a hard drive and a floppy drive to boot from. and out of the box that's all FreeDOS off a floppy disk sees, but it /does/ have a single usb port.

So. i took the packages off the freedos 1.0 iso and bundled then into 1 zipped filetree along with some other things, and put them on a usb drive. One floppy disk with usb drivers later and i copied the zip into ram. extract it to the freedos partition and after some tweaking everything went smoothly from there.

The ramdisk might not have been necessary, but i had already made it a bit before deciding to install freedos on that thinkpad, so i figured having a bit of extra workspace would help. 

Tuesday, May 15, 2018

Zoxenpher & gopherspace - new features and an introduction to the gopher.


What is this gopherspace stuff anyways?

Gopher itself is a protocol for accessing information on the internet. Its similar to the world wide web in that respect. But in just about every other respect gopher is very different.

Gopher is made up of a system of menus, rather than many pages of html markup and complex scripts.  This first difference does mean gopher can run on a very low end system. I mean very low end, like the embedded system inside your smart toaster. Of course, not every gopher client is built alike, and they can very  wildly in what they support, and whether they even properly render it. (Arachne for example, a dos web browser, renders comment lines as links for whatever reason.)

There are gopher clients for Android, Modern PCs, web browsers, FreeDOS, and even the Commodore 64.

Gopher's simplicity and elegance may not wow with glamor or fancy styling, but its definitely useful when you need, say, weather reports when the power is out and you want to save battery by not running your web browser. or you want to look something up and are concerned about bandwidth usage. Or even if you just want to explore an online world that's a bit different for a change.



Zoxenpher: A gopherspace client.
Zoxenpher is a python/pygame-based gopherspace client.

as the screenshot suggests, it uses a multiwindow paradigm. (infact it uses a pygame windowing framework i had designed previously)


The gopher menus in zoxenpher now have gopher type icons for each link, as does a curious window hiding behind the large gopher menu in the center.

Bookmarks. It may not seem like much, but bookmarks can make or break a browser, and turns out thats true for gopher clients too. on top of the bookmark buttons visible in the menu windows, shift-clicking a link will let a user bookmark links too.

Zoxenpher has in-line image previewing and a dedicated image viewer when there are simply too many images to preview (default preview limit is 10)

The usual sort of small features like url entry boxes, help system, buttons to reload and return to the server root of a menu and so on, are also present.

Zoxenpher on github

Wednesday, May 9, 2018

Zoxenpher: A python/pygame gopher client.

Introduction:
Im not about to give you a history lesson on gopherspace, (perhaps that would be best in a separate blog post) but what i am going to do is introduce my gopher client: Zoxenpher

Basic UI:
Zoxenpher is powered by a virtual window manager framework of mine, Strazoloid-WM, and features a "desktop-like" UI paradigm. each "window" can be dragged via the title bar, and when applicable, resized via the extra bar at the bottom of the frame. the small square in the left of the title bar, likewise, closes the window.

Opening a gopher window is as simple as right clicking a menu link, or clicking the suspicious "new" button in the upper left hand corner.



Some other bits and bobs:

  • Zoxenpher features image support, with in-menu preview of up to 10 images. (the remaining images can be opened in a separate window manually)
  • Search queries thought gopherspace will open a query box when clicked, that will prompt the user for a search query.
  • Zoxenpher isn't entirely finished, but it is more-or-less capable of browsing gopherspace.
Zoxenpher on Github

Friday, May 4, 2018

python lib showcase: pyg-to-term

pygtotermlib.py is a python library of mine that converts pygame surfaces to block-graphics (think ansi-art), ready to be printed to a *nix-style terminal.

So what can you do with it?

The chart on the right shows the 5 main conversion modes. (interpolation options for the first and third modes not shown)

The second and fourth options use 256-color escape sequences, while the last one uses 24bit-color escape sequences.

While these modes allow nicer output, there is a catch: not all terminals will actually show these modes properly.

pyg-to-term on Github