Tag Archives: Programming

Work in progress now compiles, and DOSbox-X

Well, the re-boot in progress seems to be moving in the right direction. FM, FD, FDSETUP, and FDNC now compile properly as they should.

Furthermore, they can talk to other FroDo:s, which is good. So the “commercial version” (which will be ditched, it’ll all be the same) can run in unlicensed mode. That’s one of the goals with this re-boot.

I also discovered that DOSbox-X plays very nicely with FrontDoor, even in a virtual Windows 10 32-bit environment under VirtualBox.

 

Partial recovery, of sorts

For some reason, I decided to check one of my laptops that I was using at the time of the crash. It was my go-to environment for the “Free Pascal conversion” project.

It turns out that I had actually not lost everything I thought I had lost. So I have tinkered some with an alternative setup here to see if I can get things to compile and build again.

I need to get a version out that doesn’t require a license. As previously stated, there will only be “mL” releases from now on. The “license” will be “free for non-commercial use”.

So far, FM has been re-compiled at version 2024.1 and handles an “invalid license” (or missing license) as it should.

I’ll keep you posted.

Gah! It’s the dreaded “Direct Console Output” problem #WTF :)

The last few days have seen progress. Some very widely used libraries have been ported (that is not to say they will actually work of course, but it’s a damn good start).

When “going back” to a unified library (RTL) as the one found in FreePascal, it’s actually sometimes more work than continuing using your own code. So I’m trying to keep this somewhat balanced. One “issue” with FreePascal is actually the number of platforms it supports. Because of this, it needs to do some thing in a fairly generic manner. That isn’t to say it’s slow or bad, but I often want to be one layer closer to the operating system (specially if it gives the application some sort of edge vs the generic stuff).

And there is a *lot* of code to port …

Not to mention the dreaded “Direct to screen writes” that used to be a requirement for DOS programs, unless you wanted the user to enter retirement before the BIOS screen updates had finished. No, that was not a joke, the PC BIOS screen handling code sucked, in a word. Fortunately, there were alternatives, and since FrontDoor has already been ported once to OS/2 (i.e. “not DOS”), some consideration has already been taken for the portability issues. But it’s not all that exciting to sit down and re-invent the weel … I’d much rather spend my time implementing things FrontDoor isn’t doing at the moment.

Oh well. Another few thousand lines of codes done. G’night!

Progress measured in … lines of code :)

Progress is being made. The current tool of choice is Free Pascal. It is by no means a bad product. In fact, it’s a pretty damn great product. But just about every line of code needs to be tweaked, slightly modified, etc. Or so it seemed when porting the Event handling yesterday, which “only” took three hours. Part of this is obviously due to poor design on my part, but I can’t take credit for everything :)

Mike and I have been discussing issues with running the DOS version under Windows 10 Pro (64-bit), hosted by VirtualBox in a FreeDOS 1.2 virtual machine. There seems to be some sort of flow control issue disturbing the transfer of data. I’m hoping Mike finds (and solves) this problem. But, it may come to the fact that the problem is in VirtualBox after all.

While “waiting” for Mike, I’ve been porting some more code, and also began setting up FreeDOS under QEMU instead. It looks promising and feels somewhat surreal to be able to just move around virtual machines, converting them from VirtualBox under Windows 10 to QEMU under Ubuntu Linux 16 on a completely different physical machine, and it “just works”. I came across a fairly good page while configuring networking for QEMU and FreeDOS here: pclosmag.com/html/issues/201208/page11.html

I will jot down a full description of how I got it working, if I get it working. The next step is to get a “modem emulator over Internet” (i.e. a “virtual modem”) working in this context.