diff --git a/000.trackdisk/README.md b/000.trackdisk/README.md
index cfdcd01..fdf4283 100644
--- a/000.trackdisk/README.md
+++ b/000.trackdisk/README.md
@@ -7,3 +7,8 @@ The bootblock code is in [../shared/bootblock.s](../shared/bootblock.s)
The program has two simple copper lists and switches between them each vertical blank interrupt
+
+try it
+------
+ * [Download disk image](bin/test.adf?raw=true)
+ * Run in SAE
diff --git a/001.simple_image/README.md b/001.simple_image/README.md
index 4878e84..59dc848 100644
--- a/001.simple_image/README.md
+++ b/001.simple_image/README.md
@@ -1,4 +1,4 @@
-Display a simple image
+display a simple image
======================
Building on [trackdisk.device](../000.trackdisk), we now display a simple color image.
@@ -9,8 +9,12 @@ The image data is prepared using a new tool I wrote called [imagecon](../tools/i
The original version of this example used [vilcans amiga-startup](https://github.com/vilcans/amiga-startup) as a starting point, however almost all of that code has been replaced as my understanding expanded.
-[Download disk image](bin/image.adf?raw=true)
-
-Screenshot:
+screenshot
+----------

+
+try it
+------
+ * [Download disk image](bin/image.adf?raw=true)
+ * Run in SAE
diff --git a/003.music/README.md b/003.music/README.md
index 531850f..963a413 100644
--- a/003.music/README.md
+++ b/003.music/README.md
@@ -9,8 +9,11 @@ We use the P6112 Player. See P6112-Options.i for configuration details for the P
* Tutorial source here: http://coppershade.org/asmskool/
* Source here: http://coppershade.org/asmskool/P6112/
-[Download disk image](bin/music.adf?raw=true)
+screenshot
+----------
+
-Screenshot:
-
-
\ No newline at end of file
+try it
+------
+ * [Download disk image](bin/music.adf?raw=true)
+ * Run in SAE
diff --git a/004.copper_bars/README.md b/004.copper_bars/README.md
index a1f3763..747cb21 100644
--- a/004.copper_bars/README.md
+++ b/004.copper_bars/README.md
@@ -1,4 +1,4 @@
-Copper bars
+copper bars
===========
Now I discover how vertical copper waiting works.
@@ -13,8 +13,11 @@ At copper line 255 ($FF), we run out of bits in the copper wait instruction, so
Also in this example I have remove interrupt processing and disabled most of the interrupts.
-[Download disk image](bin/copper_bars.adf?raw=true)
+screenshot
+----------
+
-Screenshot:
-
-
\ No newline at end of file
+try it
+------
+ * [Download disk image](bin/copper_bars.adf?raw=true)
+ * Run in SAE
diff --git a/005.copper_vert/README.md b/005.copper_vert/README.md
index 8ae1da0..4f37bea 100644
--- a/005.copper_vert/README.md
+++ b/005.copper_vert/README.md
@@ -1,8 +1,11 @@
-Vertical copper bars
+vertical copper bars
====================
-[Download disk image](bin/copper_vert.adf?raw=true)
-
-Screenshot:
-
+screenshot
+----------

+
+try it
+------
+ * [Download disk image](bin/copper_vert.adf?raw=true)
+ * Run in SAE
diff --git a/006.simple_blit/README.md b/006.simple_blit/README.md
index e15d5d5..6816cc1 100644
--- a/006.simple_blit/README.md
+++ b/006.simple_blit/README.md
@@ -13,8 +13,12 @@ This means a sprite and background can share the single palette.
We then blit the sprite to the background.
-[Download disk image](bin/blit.adf?raw=true)
-
-Screenshot:
-
+screenshot
+----------

+
+try it
+------
+ * [Download disk image](bin/blit.adf?raw=true)
+ * Run in SAE
+
diff --git a/007.masked_blit/README.md b/007.masked_blit/README.md
index a04aecb..22d5436 100644
--- a/007.masked_blit/README.md
+++ b/007.masked_blit/README.md
@@ -47,8 +47,12 @@ This is then ready to be used in the LF1-7 bits of the [BLTCON0](http://amigadev
We then blit the sprite to the background and notice it now has a shape!
-[Download disk image](bin/mask_blit.adf?raw=true)
-
-Screenshot:
-
+screenshot
+----------

+
+try it
+------
+ * [Download disk image](bin/mask_blit.adf?raw=true)
+ * Run in SAE
+
diff --git a/008.shift_blit/README.md b/008.shift_blit/README.md
index 94f986c..a639352 100644
--- a/008.shift_blit/README.md
+++ b/008.shift_blit/README.md
@@ -14,11 +14,12 @@ So the algorithm for drawing to non word aligned boundaries is as follows:
[Download disk image](bin/shift_blit.adf?raw=true)
-Screenshot:
-
+screenshot
+----------

-Masked blit screenshot for reference:
-
-
+try it
+------
+ * [Download disk image](bin/shift_blit.adf?raw=true)
+ * Run in SAE
diff --git a/009.anim_blit/README.md b/009.anim_blit/README.md
index 73f5a34..41d9162 100644
--- a/009.anim_blit/README.md
+++ b/009.anim_blit/README.md
@@ -13,8 +13,11 @@ The main loop moves the object around the screen.
We don't yet clear the background before each blit, so we get a nice trail. Also there is no double buffering.
-[Download disk image](bin/anim_blit.adf?raw=true)
-
-Screenshot:
-
+screenshot
+----------

+
+try it
+------
+ * [Download disk image](bin/anim_blit.adf?raw=true)
+ * Run in SAE
diff --git a/010.blit_speed/README.md b/010.blit_speed/README.md
index 2fba921..7f81b52 100644
--- a/010.blit_speed/README.md
+++ b/010.blit_speed/README.md
@@ -55,6 +55,9 @@ At 5 bitplanes we have enough time to do 5 blits.
Lots of time left over with 1 bitplane :-D
-[Download disk image](bin/blit_speed.adf?raw=true)
+try it
+------
+ * [Download disk image](bin/blit_speed.adf?raw=true)
+ * Run in SAE
diff --git a/011.ehb_mode/README.md b/011.ehb_mode/README.md
index 38fc405..441a090 100644
--- a/011.ehb_mode/README.md
+++ b/011.ehb_mode/README.md
@@ -1,4 +1,4 @@
-Extra half brite mode
+extra half brite mode
=====================
[Extra half brite mode](http://amigadev.elowar.com/read/ADCD_2.1/Hardware_Manual_guide/node0098.html) allows us to use 32 colors as well as 32 "half brite" versions of those colors.
@@ -17,10 +17,12 @@ We can see from the output that it's not earth shatteringly different.
---------

-The differences
+the differences
---------------

-[Download disk image](bin/ehb_mode.adf?raw=true)
-
+try it
+------
+ * [Download disk image](bin/ehb_mode.adf?raw=true)
+ * Run in SAE
diff --git a/012.ham_mode/README.md b/012.ham_mode/README.md
index 8bc7979..c88d149 100644
--- a/012.ham_mode/README.md
+++ b/012.ham_mode/README.md
@@ -1,4 +1,4 @@
-Hold and Modify Mode
+hold and modify mode
====================
I added basic supprt to [imagecon](../tools/imagecon) to output HAM mode data. The algorithm used is pretty simple so the quality of the HAM display could definately be improved.
@@ -17,6 +17,9 @@ The differences
---------------

-[Download disk image](bin/ham_mode.adf?raw=true)
+try it
+------
+ * [Download disk image](bin/ham_mode.adf?raw=true)
+ * Run in SAE
diff --git a/013.dithered_ham/README.md b/013.dithered_ham/README.md
index 950125c..f2c0d67 100644
--- a/013.dithered_ham/README.md
+++ b/013.dithered_ham/README.md
@@ -1,16 +1,19 @@
-Ditherered HAM
+ditherered ham
==============
-Work in progress
+More changes to [imagecon](../tools/imagecon). This time I added simple [Floyd-Steinberg dithering](https://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering). You can see that while this improves the image, there are some problems somewhere in imagecon that increase the color intensity compared to the original source image.
-Dithered
+I also added a very slow and hackish brute force palette computation that tries the find good HAM palette.
+
+dithered
--------

-No dither
+no dither
---------

-[Download disk image](bin/dithered_ham.adf?raw=true)
-
-
+try it
+------
+ * [Download disk image](bin/dithered_ham.adf?raw=true)
+ * Run in SAE
diff --git a/README.md b/README.md
index 30d4204..75bcba0 100644
--- a/README.md
+++ b/README.md
@@ -20,6 +20,12 @@ Most of the sites I have used during the learning process:
* [coding forum](http://ada.untergrund.net/?p=boardforums&forum=4)
* [coding forum](http://eab.abime.net/forumdisplay.php?f=112)
+examples
+--------
+Each example tries to introduce only one new concept, often building on the previous examples.
+
+See each example's README.md for a limited description as well as a clickable link to run the example in your browser using my hacked version of [Scripted Amiga Emulator](http://scriptedamigaemulator.net/)
+
cross development environment
-----------------------------