<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Disk Images</title><link>https://sourceforge.net/p/specos/wiki/Disk%2520Images/</link><description>Recent changes to Disk Images</description><atom:link href="https://sourceforge.net/p/specos/wiki/Disk%20Images/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 01 Feb 2015 17:43:39 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/specos/wiki/Disk%20Images/feed" rel="self" type="application/rss+xml"/><item><title>Disk Images modified by Brian Ruthven</title><link>https://sourceforge.net/p/specos/wiki/Disk%2520Images/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -1,29 +1,27 @@
 The disk_images subdirectory contains disk image suitable for an emulator. "fuse" is definitely OK, other emulators, YMMV. They could be written out to a real +3 disk, but I've not tried that yet.

+Note the shell currently only tries to exec() exactly what was typed, so be sure to include the ".com" extension too.
+
 These images represent some significant milestones:
+
+**476:092d61465fba.dsk**: Backspace now works. Random number generator implemented in kernel. forkexec() is renamed to spawn(), as I discovered I've effectively re-invented posix_spawn(). Some limited test suites have been created.
+
+**446:4fc2779f5f54-init.dsk**: A better init program. This now reads from a text file "inittab", and contains (limited) support for SVR4-style inittab lines. Only "once" and "wait" are properly supported (as there is no child process monitoring for respawn to work currently).
+
+ROM calls are now wrapped with mutex locks rather than disabling preemption. This allows for keystrokes to be processed more smoothly, at the expense of lengthening the head load time delay when starting up the disk. Alternate registers are also now saved during context switch, making preemption of ROM3 code safe as well (again, protected by a mutex lock to avoid concurrency).
+
+**375:5f3d507ef3f1-kernelmove.dsk**: Various. DOS CATALOG syscall, simplify RAM paging (especially during dos calls), debugger overhaul (now similar to Solaris' mdb), basic shell implemented, kernel moved lower down RAM.
+
+**286:d1cc710292bd-newboot.dsk**: Rework the boot sector. Moved the DOS INIT and GET/SET1346 calls into the boot sector.
+
+**256:29113a5d5ad6-reloc.dsk**: Relocatable executable support added. Userland executables now don't need to load at a fixed address which was defined at compile time.
+
+**205:9a66674edbb0-proc.dsk**: Added malloc/free interface, along with exit(). Simple test-program runs to check memory can be malloc'd and freed from userland.
+
+**145:e8eef52f7d39-userland.dsk**: Userland support. The kernel can now load fixed-address executables from disk and run them. A system call interface allows userland calls to open/close/read/write/seek/printf/forkexec.

 **112_bf04157b6a58-dos.dsk**: DOS support added. Multi-thread testing. 3 counter threads sharing 1 mutex lock, 1 counter thread which exits when 0xffff reached, 1 DOS test thread (open/create/read/write/close), 1 delay thread (printing 10 '.' characters, 1 per sec), 1 border flashing thread.

 The counter threads increment a 16-bit value directly in the screen memory (look in the bottom right corner of the screen). The 3 counters acquire the mutex lock, update the value, then drop the loop in a tight loop. Only the 50Hz preemption tick will evict the thread, and one of the other counters can only execute if the preemption happened when the mutex lock was not held.

 Pressing keys can disturb the timing of the mutex lock acquisition and border effect, as the length of the interrupt codepath during context switch varies according to what keys (if any) are pressed).
-
-
-**145:e8eef52f7d39-userland.dsk**: Userland support. The kernel can now load fixed-address executables from disk and run them. A system call interface allows userland calls to open/close/read/write/seek/printf/forkexec.
-
-**205:9a66674edbb0-proc.dsk**: Added malloc/free interface, along with exit(). Simple test-program runs to check memory can be malloc'd and freed from userland.
-
-**256:29113a5d5ad6-reloc.dsk**: Relocatable executable support added. Userland executables now don't need to load at a fixed address which was defined at compile time.
-
-**286:d1cc710292bd-newboot.dsk**: Rework the boot sector. Moved the DOS INIT and GET/SET1346 calls into the boot sector.
-
-**375:5f3d507ef3f1-kernelmove.dsk**: Various. DOS CATALOG syscall, simplify RAM paging (especially during dos calls), debugger overhaul (now similar to Solaris' mdb), basic shell implemented, kernel moved lower down RAM.
-
-**446:4fc2779f5f54-init.dsk**: A better init program. This now reads from a text file "inittab", and contains (limited) support for SVR4-style inittab lines. Only "once" and "wait" are properly supported (as there is no child process monitoring for respawn to work currently).
-
-ROM calls are now wrapped with mutex locks rather than disabling preemption. This allows for keystrokes to be processed more smoothly, at the expense of lengthening the head load time delay when starting up the disk. Alternate registers are also now saved during context switch, making preemption of ROM3 code safe as well (again, protected by a mutex lock to avoid concurrency).
-
-**476:092d61465fba.dsk**: Backspace now works. Random number generator implemented in kernel. forkexec() is renamed to spawn(), as I discovered I've effectively re-invented posix_spawn(). Some limited test suites have been created.
-
----
-Note the shell only tries to exec() exactly what was typed, so be sure to include the ".com" extension too.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brian Ruthven</dc:creator><pubDate>Sun, 01 Feb 2015 17:43:39 -0000</pubDate><guid>https://sourceforge.netf3de09aac651f4b89334383b6ea67839fb8016eb</guid></item><item><title>Disk Images modified by Brian Ruthven</title><link>https://sourceforge.net/p/specos/wiki/Disk%2520Images/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -23,6 +23,7 @@

 ROM calls are now wrapped with mutex locks rather than disabling preemption. This allows for keystrokes to be processed more smoothly, at the expense of lengthening the head load time delay when starting up the disk. Alternate registers are also now saved during context switch, making preemption of ROM3 code safe as well (again, protected by a mutex lock to avoid concurrency).

+**476:092d61465fba.dsk**: Backspace now works. Random number generator implemented in kernel. forkexec() is renamed to spawn(), as I discovered I've effectively re-invented posix_spawn(). Some limited test suites have been created.

 ---
-Note that the keyboard driver, and therefore shell, currently cannot deal with backspace, so be careful typing. Also, the shell only tries to exec() exactly what was typed, so be sure to include the ".com" extension too.
+Note the shell only tries to exec() exactly what was typed, so be sure to include the ".com" extension too.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brian Ruthven</dc:creator><pubDate>Sun, 01 Feb 2015 17:30:43 -0000</pubDate><guid>https://sourceforge.net54addf1824d8b71e0c0a11fb63207f5a745ba294</guid></item><item><title>Disk Images modified by Brian Ruthven</title><link>https://sourceforge.net/p/specos/wiki/Disk%2520Images/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -19,5 +19,10 @@

 **375:5f3d507ef3f1-kernelmove.dsk**: Various. DOS CATALOG syscall, simplify RAM paging (especially during dos calls), debugger overhaul (now similar to Solaris' mdb), basic shell implemented, kernel moved lower down RAM.

+**446:4fc2779f5f54-init.dsk**: A better init program. This now reads from a text file "inittab", and contains (limited) support for SVR4-style inittab lines. Only "once" and "wait" are properly supported (as there is no child process monitoring for respawn to work currently).

+ROM calls are now wrapped with mutex locks rather than disabling preemption. This allows for keystrokes to be processed more smoothly, at the expense of lengthening the head load time delay when starting up the disk. Alternate registers are also now saved during context switch, making preemption of ROM3 code safe as well (again, protected by a mutex lock to avoid concurrency).
+
+
+---
 Note that the keyboard driver, and therefore shell, currently cannot deal with backspace, so be careful typing. Also, the shell only tries to exec() exactly what was typed, so be sure to include the ".com" extension too.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brian Ruthven</dc:creator><pubDate>Wed, 27 Aug 2014 22:07:48 -0000</pubDate><guid>https://sourceforge.net798b160fd1621a173fdd4c9ab97b57ec49d346f4</guid></item><item><title>Disk Images modified by Brian Ruthven</title><link>https://sourceforge.net/p/specos/wiki/Disk%2520Images/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -2,7 +2,12 @@

 These images represent some significant milestones:

-**112_bf04157b6a58-dos.dsk**: DOS support added. Multi-thread testing. 3 counter threads sharing 1 mutex lock, 1 counter thread which exits when 0xffff reached, 1 DOS test thread (open/read/write/close), 1 delay thread, 1 border flashing thread. Pressing keys can disturb the timing of the mutex lock acquisition and border effect.
+**112_bf04157b6a58-dos.dsk**: DOS support added. Multi-thread testing. 3 counter threads sharing 1 mutex lock, 1 counter thread which exits when 0xffff reached, 1 DOS test thread (open/create/read/write/close), 1 delay thread (printing 10 '.' characters, 1 per sec), 1 border flashing thread.
+
+The counter threads increment a 16-bit value directly in the screen memory (look in the bottom right corner of the screen). The 3 counters acquire the mutex lock, update the value, then drop the loop in a tight loop. Only the 50Hz preemption tick will evict the thread, and one of the other counters can only execute if the preemption happened when the mutex lock was not held.
+
+Pressing keys can disturb the timing of the mutex lock acquisition and border effect, as the length of the interrupt codepath during context switch varies according to what keys (if any) are pressed).
+

 **145:e8eef52f7d39-userland.dsk**: Userland support. The kernel can now load fixed-address executables from disk and run them. A system call interface allows userland calls to open/close/read/write/seek/printf/forkexec.

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brian Ruthven</dc:creator><pubDate>Tue, 04 Jun 2013 22:36:37 -0000</pubDate><guid>https://sourceforge.net29bb2044914c2c9074dbb570dc554f39aceaca4a</guid></item><item><title>Disk Images modified by Brian Ruthven</title><link>https://sourceforge.net/p/specos/wiki/Disk%2520Images/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;The disk_images subdirectory contains disk image suitable for an emulator. "fuse" is definitely OK, other emulators, YMMV. They could be written out to a real +3 disk, but I've not tried that yet.&lt;/p&gt;
&lt;p&gt;These images represent some significant milestones:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;112_bf04157b6a58-dos.dsk&lt;/strong&gt;: DOS support added. Multi-thread testing. 3 counter threads sharing 1 mutex lock, 1 counter thread which exits when 0xffff reached, 1 DOS test thread (open/read/write/close), 1 delay thread, 1 border flashing thread. Pressing keys can disturb the timing of the mutex lock acquisition and border effect.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;145:e8eef52f7d39-userland.dsk&lt;/strong&gt;: Userland support. The kernel can now load fixed-address executables from disk and run them. A system call interface allows userland calls to open/close/read/write/seek/printf/forkexec.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;205:9a66674edbb0-proc.dsk&lt;/strong&gt;: Added malloc/free interface, along with exit(). Simple test-program runs to check memory can be malloc'd and freed from userland.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;256:29113a5d5ad6-reloc.dsk&lt;/strong&gt;: Relocatable executable support added. Userland executables now don't need to load at a fixed address which was defined at compile time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;286:d1cc710292bd-newboot.dsk&lt;/strong&gt;: Rework the boot sector. Moved the DOS INIT and GET/SET1346 calls into the boot sector.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;375:5f3d507ef3f1-kernelmove.dsk&lt;/strong&gt;: Various. DOS CATALOG syscall, simplify RAM paging (especially during dos calls), debugger overhaul (now similar to Solaris' mdb), basic shell implemented, kernel moved lower down RAM.&lt;/p&gt;
&lt;p&gt;Note that the keyboard driver, and therefore shell, currently cannot deal with backspace, so be careful typing. Also, the shell only tries to exec() exactly what was typed, so be sure to include the ".com" extension too.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brian Ruthven</dc:creator><pubDate>Tue, 04 Jun 2013 13:44:38 -0000</pubDate><guid>https://sourceforge.net2f176183f7afb1d3a9c3f88542bbe6ce776f0215</guid></item></channel></rss>