💾 Archived View for sdf.org › rsdoiel › blog › 2019 › 07 › 28 › freedos-to-oberon-system-3.html captured on 2023-03-20 at 19:21:11.

View Raw

More Information

⬅️ Previous capture (2023-01-29)

🚧 View Differences

-=-=-=-=-=-=-

<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta name="language" content="EN">
  <title>freedos-to-oberon-system-3</title>

  <link rel="stylesheet" type="text/css"  href="/printfonts/print.css" media="print" />
  <link rel="stylesheet" type="text/css"  href="/webfonts/fonts.css" media="screen" />
  <link rel="stylesheet" type="text/css"  href="/css/site.css" media="screen" />
  <link rel="stylesheet" type="text/css"  href="/css/tables.css" media="screen" />
  <link title="RSS feed for rsdoiel's blog" rel="alternate" type="application/rss+xml" href="https://rsdoiel.github.io/rss.xml" />
  <meta name="keywords" content="FreeDOS, Oberon System">
  <link rel="alternative" type="application/markdown" href="/blog/2019/07/28/freedos-to-oberon-system-3.md">
  <link rel="search" type="application/opensearchdescription+xml"
        title="Robert's Rambling Search Engine"
        href="search.osdx">
</head>
<body>
<nav>
<ul>
<li><a href="/">R. S. Doiel</a></li>
<li><a href="/about.html">About</a></li>
<li><a href="/blog/">Blog</a></li>
<li><a href="/cv.html">CV</a></li>
<li><a href="https://github.com/rsdoiel">GitHub</a></li>
<li><a href="/library-terminology.html">Library Jargon</a></li>
<li><a href="/presentations.html">Presentations</a></li>
<li><a href="/projects.html">Projects</a></li>
<li><a href="/resume.html">Resume</a></li>
<li><a href="/search.html">Search</a></li>
<li><a href="/series/">Series</a></li>
</ul>
</nav>

<section>
  <article>
  <a data-pocket-label="pocket" data-pocket-count="none" class="pocket-btn" data-lang="en"></a>
<script type="text/javascript">!function(d,i){if(!d.getElementById(i)){var j=d.createElement("script");j.id=i;j.src="https://widgets.getpocket.com/v1/j/btn.js?v=1";var w=d.getElementById(i);d.body.appendChild(j);}}(document,"pocket-btn-js");</script>
<h1 id="freedos-to-oberon-system-3">FreeDOS to Oberon System 3</h1>
<p>By R. S. Doiel, 2019-07-28</p>
<blockquote>
<p>UPDATE: (2021-02-26, RSD) Under VirtualBox 6.1 these instructions
still fail. My hope is to revise these instructions when I get it all
sorted out.</p>
<p>Many links such as the ftp site at ETH Oberon are no more. I’ve
updated this page to point at Wayback machine or included content in
here where I cannot find it else where.</p>
<p>UPDATE: (2021-02-19, RSD) Under VirtualBox 6.1 these instructions
fail. For VirtualBox I’ve used FreeDOS 1.3rc3 Live CD installing the
“Plain DOS” without problems.</p>
<p>UPDATE: (2021-03-16, RSD) After reviewing my post, correcting some
mistakes I finally was able to get FreeDOS up and running on VirtualBox
6.1. This allows NativeOberon 2.3.6 to be brought up by booting the
“oberon0.dsk” virtual floppy and following the instructions included.
You need to know how to use the Oberon mouse and the way commands work
in Oberon.</p>
</blockquote>
<p>What follows are notes on getting a FreeDOS 1.2<a href="#fn1"
class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a> and
then Native Oberon<a href="#fn2" class="footnote-ref" id="fnref2"
role="doc-noteref"><sup>2</sup></a> running under VirtualBox 6.0. You
might wonder why these two are together. While it was easy to run the
Native Oberon installation process that process assumes you have a
properly partitioned hard disk and VirtualBox seems to skip that
process. I found taking advantage of FreeDOS simplified things for
me.</p>
<p>My goal was running Oberon System 3, but setting up a Virtual Box
with FreeDOS 1.2 gave me a virtual machine that functions like a 1999
era PC. From there all the steps in the Oberon instructions just
worked.</p>
<h2 id="creating-freedos-1.2-virtual-box">Creating FreeDOS 1.2 Virtual
Box</h2>
<p>I’ve been doing a bit if computer history reading and decided to
bring up some older systems as a means to understand where things were.
The first computers I had access to were 8080, 8086 machines running MS
DOS based. My first computer programming language was Turbo Pascal.
Feeling a bit nostalgic I thought it would be interesting to use it
again and see what I remembered from the days of old. While PC and MS
DOS no longer exist as commercial productions an wonderful group of Open
Source hackers have brought new life into DOS with FreeDOS 1.2<a
href="#fn3" class="footnote-ref" id="fnref3"
role="doc-noteref"><sup>3</sup></a>. You’ll find many of your old
familiar commands but also some nice improvements. You can even run it
under VirtualBox which is what I proceeded to do.</p>
<h3 id="virtualbox-6.0-setup">VirtualBox 6.0 setup</h3>
<p>The <a href="https://freedos.org">FreeDOS</a> website includes a CD
ROM image that you can use to install it. There are couple small hitches
though to get it working under VirtualBox. First go to the <a
href="https://freedos.org/download">download</a> page and download the
<a href="http://www.freedos.org/download/download/FD12CD.iso">CDROM
“standard” installer”</a>.</p>
<p>While that is downloading you can setup your VirtualBox machine.
First to remember is DOS compared to today’s operating systems is frugal
in its hardware requirements. As a result I picked very modest settings
for my virtual machine.</p>
<ol type="1">
<li>Launch VirtualBox</li>
<li>From the menu, pick Machine then pick new</li>
<li>Name your machine (e.g. “FreeDOS 1.2”), select the type: “Other” and
Operating system of “DOS”</li>
<li>Set memory size as you like, I just accepted the default 32MB</li>
<li>Hard disk, pick “Create a virtual hard disc now”</li>
<li>Hard disk file type, pick “VHD (Virtual Hard Disk)”</li>
<li>Storage on physical hard disk, I picked Dynamically allocated both
either is fine</li>
<li>File location and size, I accepted the default location and
size</li>
<li>Before starting my FreeDOS box I made a couple of changes using
“settings” menu icon
<ol type="a">
<li>Display, I picked bumped memory up to 128M and picked VBoxSVGA with
33D acceleration (for games)</li>
<li>Storage, I added a second floppy drive (empty)</li>
<li>Network, I picked attached to NAT</li>
</ol></li>
<li>When looking at my virtual machine’s detail page I clicked on the
Optical drive (empty), click “choose disc image” and pointed at the
downloaded installed CD</li>
<li>Click Start.</li>
<li>At “Welcome to FreeDOS 1.2” blue screen, hit TAB key</li>
<li>You will see a line that begins with a boot instruction. Add a space
than add the word “raw” (without quotes) press enter</li>
<li>Follow the install instructions, when you get to “Drive C: does not
appear to be partitioned” dialog, pick “Yes - Partition drive C:”</li>
<li>On the next screen pick “Yes - Please reboot now”</li>
<li>When at the “Welcome to FreeDOS 1.2” screen hit TAB again</li>
<li>Once again add a space and type “raw” to the command then press
enter</li>
<li>Pick “Yes - continue with the installation”</li>
<li>Pick “Yes - Please erase and format drive C:”</li>
<li>At this point its a normal FreeDOS install</li>
<li>When the install is done and reboots “eject” the virtual CD form the
“Optical Drive” in the VirtualBox panel, then choose “boot from system
disk”,you now should have a working FreeDOS on VirtualBox</li>
</ol>
<h2 id="native-oberon-system-3-on-virtual-box">Native Oberon System 3 on
Virtual Box</h2>
<p>Native Oberon can be found at http://www.ethoberon.ethz.ch/native/.
There is a related ftp site<a href="#fn4" class="footnote-ref"
id="fnref4" role="doc-noteref"><sup>4</sup></a> where you can download
the necessary files for the stand alone version.</p>
<p>Here’s the steps I used in my Mac to download Native Oberon and into
a file on my desktop called “NativeOberon-Standalone”. Open the macOS
Terminal application. I assume you’ve got a Unix command called <a
href="https://en.wikipedia.org/wiki/Wget">wget</a> already installed<a
href="#fn5" class="footnote-ref" id="fnref5"
role="doc-noteref"><sup>5</sup></a>.</p>
<blockquote>
<p>NOTE: The ETH ftp server is no more. I’ve included Web Archive links
and links to my own copies of the files needed to install Native Oberon
2.3.6 in the paragraphs that follow. RSD, 2021-03-16</p>
</blockquote>
<div class="sourceCode" id="cb1"><pre
class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a>    <span class="bu">cd</span></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a>    <span class="fu">mkdir</span> <span class="at">-p</span> Desktop/NativeOberon-Standalone</span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a>    <span class="bu">cd</span> Desktop/NativeOberon-Standalone</span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a>    <span class="fu">wget</span> ftp://ftp.ethoberon.ethz.ch/ETHOberon/Native/StdAlone/</span></code></pre></div>
<p>Clone your FreeDOS Box first. You’ll want to do a “Full Clone”.
You’ll also want to “remove” any optical disks or floppies. You do that
from the virtual boxes’ detail page and clicking on the drive and
picking the “Remove disk from virtual drive” in the popup menu.</p>
<p>At this point we have a a virtual machine that is very similar to an
1999 era PC installed with MS DOS. <a
href="http://web.archive.org/web/20190929033749/http://www.ethoberon.ethz.ch/native/">Native
Oberon</a> Normally you’d install <a
href="/blog/2019/07/28/NativeOberon-StnAlone-2.3.6.zip"
title="Zip file of individual floppies">Native Oberon via 1.44MB floppy
disks</a>. We can simulate that with our Virtual machine. In the folder
of you downloaded there is disc called “oberon0.dsk”. That can go in our
first floppy drive. But how to we get the rest of the files onto a
virtual floppies? This wasn’t obvious to me at first.</p>
<p>The Oberon install disks were organized as follows</p>
<table>
<colgroup>
<col style="width: 31%" />
<col style="width: 37%" />
<col style="width: 15%" />
<col style="width: 15%" />
</colgroup>
<thead>
<tr class="header">
<th>PACKAGE</th>
<th>FILENAME</th>
<th>SIZE</th>
<th>DSK</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Oberon-0</td>
<td><a href="oberon0.dsk" title="boot disk">oberon0.dsk</a></td>
<td></td>
<td>0</td>
</tr>
<tr class="even">
<td>Gadgets</td>
<td><a href="gadgets1.arc"
title="a modified gadgets.arc to fit 1.4 floppy">gadgets.arc</a></td>
<td>1.4 2.9</td>
<td>1</td>
</tr>
<tr class="odd">
<td>Documentation</td>
<td><a href="docu.arc" title="documentation">docu.arc</a></td>
<td>1.3 2.5</td>
<td>2</td>
</tr>
<tr class="even">
<td>Applications</td>
<td><a href="apps.arc" title="applications">apps.arc</a></td>
<td>1.3 2.8</td>
<td>3</td>
</tr>
<tr class="odd">
<td>Tutorials</td>
<td><a href="tutorial.arc" title="tutorial">tutorial.arc</a></td>
<td>0.3 0.8</td>
<td>4</td>
</tr>
<tr class="even">
<td>Pr3Fonts</td>
<td><a href="pr3fonts.arc" title="fonts">pr3fonts.arc</a></td>
<td>0.3 0.6</td>
<td>4</td>
</tr>
<tr class="odd">
<td>Pr6Fonts</td>
<td><a href="pr6fonts.arc" title="fonts">pr6fonts.arc</a></td>
<td>0.5 1.8</td>
<td>4</td>
</tr>
<tr class="even">
<td>Source1</td>
<td><a href="source1.arc" title="Source Code">source1.arc</a></td>
<td>0.9 2.5</td>
<td>5</td>
</tr>
<tr class="odd">
<td>Source2</td>
<td><a href="source2.arc" title="Source Code">source2.arc</a></td>
<td>1.2 3.5</td>
<td>6</td>
</tr>
<tr class="even">
<td>Source3</td>
<td><a href="source3.arc" title="Source Code">source3.arc</a></td>
<td>0.6 1.7</td>
<td>7</td>
</tr>
</tbody>
</table>
<p>It turns out you can create 1.44MB Fat16 disc images from the Virtual
Box 6.0 floppy drive link. When you click on the floppy drive in the
details page you have a choice that includes “create a new floppy disc”.
Select this, find the disc a filename like “disk1”. Click on the virtual
floppy disk in the Virtual Box and “remove” the disc then create disk2,
disk3, etc. In each the empty disc image files places the files from the
table above. These image files can then be opened on your host operating
system and files copied to them. It’s a tedious process but this gives
you something the Oberon System can read and install from. Originally I
just put all the files into an ISO CD ROM image but I could not figure
out how to mount that from this version of Oberon. Now when you start up
your Oberon V3 virtual machine you can install the rest of the software
like Gadgets.</p>
<section id="footnotes" class="footnotes footnotes-end-of-document"
role="doc-endnotes">
<hr />
<ol>
<li id="fn1"><p>FreeDOS is an Open Source implementation of PC/MS DOC<a
href="#fnref1" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn2"><p>Native Oberon is a 1990’s version of Oberon System
running on i386<a href="#fnref2" class="footnote-back"
role="doc-backlink">↩︎</a></p></li>
<li id="fn3"><p>Download FreeDOS from http://freedos.org/download<a
href="#fnref3" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn4"><p>Download Native Oberon Stand Alone from <a
href="NativeOberon-StdAlone-2.3.6.zip"
title="Zip of what used to be available in that directory at ftp.ethoberon.ethz.ch">ftp://ftp.ethoberon.ethz.ch/ETHOberon/Native/StdAlone</a><a
href="#fnref4" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn5"><p>wget is easily installed with <a
href="https://brew.sh/">HomeBrew</a> or <a
href="https://www.macports.org/">Mac Ports</a><a href="#fnref5"
class="footnote-back" role="doc-backlink">↩︎</a></p></li>
</ol>
</section>
  </article>
</section>

<footer>
<p>copyright © 2016 - 2023 R. S. Doiel<br /> <a
href="/rssfeed.html">RSS</a> feeds and website built with <a
href="https://rsdoiel.github.io/pttk">pttk</a>, Bash, Make and <a
href="https://pandoc.org">Pandoc</a>.</p>
</footer>
<!-- START: PrettyFi from https://github.com/google/code-prettify -->
<script>
/* We want to add the class "prettyprint" to all the pre elements */
var pre_list = document.querySelectorAll("pre");

pre_list.forEach(function(elem) {
    elem.classList.add("prettyprint");
    elem.classList.add("linenums");/**/
    elem.classList.add("json"); /**/
});
</script>
<style>
li.L0, li.L1, li.L2, li.L3, li.L4, li.L5, li.L6, li.L7, li.L8, li.L9
{
    color: #555;
    list-style-type: decimal;
}
</style>
<link rel="stylesheet" type="text/css" href="/css/prettify.css">
<script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_
prettify.js"></script>
<!--  END: PrettyFi from https://github.com/google/code-prettify -->

</body>
</html>