Merge branch 'development' of https://gitlab.lrz.de/lrr-tum/students/eragp-misim...
authorFabian Stemmler <stemmler@in.tum.de>
Wed, 18 Sep 2019 20:15:33 +0000 (22:15 +0200)
committerFabian Stemmler <stemmler@in.tum.de>
Wed, 18 Sep 2019 20:15:33 +0000 (22:15 +0200)
MAVEN-TYCHO-README.MD
MAVEN-TYCHO-README.html
README.md

index 0682fae..52da80f 100644 (file)
@@ -1,6 +1,6 @@
 # Mograsim Development Environment
 
-<span style="color:grey">_Mograsim Development Documentation Version 0.1 --- 2019-09-13_</span>
+<span style="color:grey">_Mograsim Development Documentation Version 0.2 --- 2019-09-18_</span>
 
 A short guide to the Mograsim Maven Tycho configuration and Maven Tycho in general, 
 as well as some information on Eclipse Plugin Development and OSGi.
@@ -53,17 +53,7 @@ Roughly, an OSGi bundle has:
 
 The tree of Mograsim projects:
 
-- `bundles` - _This contains all bundles/plugins that provide functionality to Mograsim_
-    - `extenal/swthelper` - _This contains the [SWTHelper](https://github.com/Haspamelodica/SWTHelper) 
-      git submodule._
-        - `bundles` - _This submodule folder needs to be named like that for Tycho 
-          pom-less build to work._
-            - <span style="color:grey">_SWTInput_</span> - _unused_
-            - **SWTObjectWrappers** - SWT object abstractions to enable zooming and 
-              optimizations.
-            - <span style="color:grey">_SWTSystemInOutApplication_</span> - _unused_
-            - <span style="color:grey">_SWTTiledZoomableCanvas_</span> - _unused_
-            - **SWTZoomableCanvas** - The SWT canvas we draw the simulation in.
+- `plugins` - _This contains all bundles/plugins that provide functionality to Mograsim_
     - **net.mograsim.logic.core** <br> The core logic for pure simulation. This contains 
       the most important low-level logic circuits and gates and defines how that 
       logic gets simulated. The underlying system for simulation in Mograsim is an 
@@ -136,9 +126,18 @@ The tree of Mograsim projects:
       of) and the (minimum) JRE that is expected. Some plugins exclusively for testing 
       are included here, too.
 - `tests` - _This contains (integration-like) tests in form of plugin fragments_
-    - **net.mograsim.logic.tests**
+    - **net.mograsim.logic.core.tests**
     - **net.mograsim.logic.model.am2900.tests**
     - **net.mograsim.machine.tests**
+- `SWTHelper` - _This contains the [SWTHelper](https://github.com/Haspamelodica/SWTHelper) 
+  git submodule._
+    - `bundles` - _This submodule folder needs to be named like that for Tycho pom-less 
+      build to work._
+        - <span style="color:grey">_SWTInput_</span> - _unused_
+        - **SWTObjectWrappers** - SWT object abstractions to enable zooming and optimizations.
+        - <span style="color:grey">_SWTSystemInOutApplication_</span> - _unused_
+        - <span style="color:grey">_SWTTiledZoomableCanvas_</span> - _unused_
+        - **SWTZoomableCanvas** - The SWT canvas we draw the simulation in.
 
 ## Build Mograsim
 
index 41829c2..8db9291 100644 (file)
@@ -6,11 +6,11 @@
                <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
                <script>hljs.initHighlightingOnLoad();</script>
 <style media="screen" type="text/css">
-h1,h2,h3,h4,h5,h6{margin:20px 0 10px;padding:0;font-weight:700}code,tt{margin:0;padding:0;white-space:nowrap;border:1px solid #eaeaea;background-color:#f8f8f8;border-radius:3px}body{font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:14px;line-height:1.6;color:#333;background-color:#fff;padding:20px;max-width:960px;margin:0 auto}body>:first-child{margin-top:0!important}body>:last-child{margin-bottom:0!important}body>h2:first-child{margin-top:0;padding-top:0}body>h1:first-child{margin-top:0;padding-top:0}body>h1:first-child+h2{margin-top:0;padding-top:0}body>h3:first-child{margin-top:0;padding-top:0}body>h4:first-child{margin-top:0;padding-top:0}body>h5:first-child{margin-top:0;padding-top:0}body>h6:first-child{margin-top:0;padding-top:0}p{margin:15px 0}blockquote{margin:15px 0;border-left:4px solid #ddd;padding:0 15px;color:#777}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}ul{margin:15px 0;padding-left:30px}ul li>:first-child{margin-top:0}ul li ul:first-of-type{margin-top:0}ul li ol:first-of-type{margin-top:0}ul ul{margin-bottom:0}ul ol{margin-bottom:0}ol{margin:15px 0;padding-left:30px}ol li>:first-child{margin-top:0}ol li ol:first-of-type{margin-top:0}ol li ul:first-of-type{margin-top:0}ol ol{margin-bottom:0}ol ul{margin-bottom:0}dl{margin:15px 0;padding:0}dl dt{font-size:14px;font-weight:700;font-style:italic;padding:0;margin:15px 0 5px}dl dt:first-child{padding:0}dl dt>:first-child{margin-top:0}dl dt>:last-child{margin-bottom:0}dl dd{margin:0 0 15px;padding:0 15px}dl dd>:first-child{margin-top:0}dl dd>:last-child{margin-bottom:0}table{margin:15px 0}table th{font-weight:700;border:1px solid #ccc;padding:6px 13px}table td{border:1px solid #ccc;padding:6px 13px}table tr{border-top:1px solid #ccc;background-color:#fff}table tr:nth-child(2n){background-color:#f8f8f8}pre{margin:15px 0;font-size:12px;font-family:Consolas,Liberation Mono,Courier,monospace;background-color:#f8f8f8;border:1px solid #ccc;font-size:13px;line-height:19px;overflow:auto;padding:6px 10px;border-radius:3px}pre>code{margin:0;padding:0;white-space:pre;border:none;background:0 0}pre code{background-color:transparent;border:none}pre tt{background-color:transparent;border:none}h1{font-size:28px;color:#000}h1 tt{font-size:inherit}h1 code{font-size:inherit}h1+p{margin-top:10px}h2{font-size:24px;border-bottom:1px solid #ccc;color:#000}h2 tt{font-size:inherit}h2 code{font-size:inherit}h2+p{margin-top:10px}h3{font-size:18px}h3 tt{font-size:inherit}h3 code{font-size:inherit}h3+p{margin-top:10px}h4{font-size:16px}h4 tt{font-size:inherit}h4 code{font-size:inherit}h4+p{margin-top:10px}h5{font-size:14px}h5 tt{font-size:inherit}h5 code{font-size:inherit}h5+p{margin-top:10px}h6{color:#777;font-size:14px}h6 tt{font-size:inherit}h6 code{font-size:inherit}h6+p{margin-top:10px}a{color:#4183c4;text-decoration:none}a:first-child h1{margin-top:0;padding-top:0}a:first-child h2{margin-top:0;padding-top:0}a:first-child h3{margin-top:0;padding-top:0}a:first-child h4{margin-top:0;padding-top:0}a:first-child h5{margin-top:0;padding-top:0}a:first-child h6{margin-top:0;padding-top:0}a:hover{text-decoration:underline}code{font-size:12px;font-family:Consolas,Liberation Mono,Courier,monospace}tt{font-size:12px;font-family:Consolas,Liberation Mono,Courier,monospace}kbd{background-color:#ddd;background-image:-webkit-gradient(linear,left top,left bottom,from(#f1f1f1),to(#ddd));background-image:linear-gradient(#f1f1f1,#ddd);background-repeat:repeat-x;border-color:#ddd #ccc #ccc #ddd;-o-border-image:none;border-image:none;border-radius:2px 2px 2px 2px;border-style:solid;border-width:1px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;line-height:10px;padding:1px 4px}hr{clear:both;margin:15px 0;height:0;overflow:hidden;border:none;background:0 0;border-bottom:4px solid #ddd;padding:0}img{max-width:100%}
+/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px;line-height:1.5;padding-top:10px;padding-bottom:10px;background-color:#fff;padding:30px}body>:first-child{margin-top:0!important}body>:last-child{margin-bottom:0!important}body>h2:first-child{margin-top:0;padding-top:0}body>h1:first-child{margin-top:0;padding-top:0}body>h1:first-child+h2{margin-top:0;padding-top:0}body>h3:first-child{margin-top:0;padding-top:0}body>h4:first-child{margin-top:0;padding-top:0}body>h5:first-child{margin-top:0;padding-top:0}body>h6:first-child{margin-top:0;padding-top:0}a{color:#4183c4}a.absent{color:#c00}a.anchor{display:block;padding-left:30px;margin-left:-30px;cursor:pointer;position:absolute;top:0;left:0;bottom:0}a:first-child h1{margin-top:0;padding-top:0}a:first-child h2{margin-top:0;padding-top:0}a:first-child h3{margin-top:0;padding-top:0}a:first-child h4{margin-top:0;padding-top:0}a:first-child h5{margin-top:0;padding-top:0}a:first-child h6{margin-top:0;padding-top:0}h1,h2,h3,h4,h5,h6{margin:20px 0 10px;padding:0;font-weight:600;cursor:text;position:relative;border-bottom:1px solid #ccc;color:#000}h1 code,h1 tt,h2 code,h2 tt,h3 code,h3 tt,h4 code,h4 tt,h5 code,h5 tt,h6 code,h6 tt{font-size:inherit}h1 p,h2 p,h3 p,h4 p,h5 p,h6 p{margin-top:0}h1:hover a.anchor,h2:hover a.anchor,h3:hover a.anchor,h4:hover a.anchor,h5:hover a.anchor,h6:hover a.anchor{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;text-decoration:none}h1{font-size:2em}h2{font-size:24px}h3{font-size:18px}h4{font-size:16px}h5{font-size:14px}h6{font-size:14px;color:#777}p{margin:15px 0}blockquote{margin:15px 0;border-left:4px solid #ddd;padding:0 15px;color:#777}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}ol,ul{margin:5px 0;padding-left:30px}ol :first-child,ul :first-child{margin-top:0}ol :last-child,ul :last-child{margin-bottom:0}dl{margin:15px 0;padding:0}dl dt{font-size:14px;font-weight:600;font-style:italic;padding:0;margin:15px 0 5px}dl dt:first-child{padding:0}dl dt>:first-child{margin-top:0}dl dt>:last-child{margin-bottom:0}dl dd{margin:0 0 15px;padding:0 15px}dl dd>:first-child{margin-top:0}dl dd>:last-child{margin-bottom:0}li{margin:5px 0}li p.first{display:inline-block}table{margin:15px 0;padding:0}table tr{border-top:1px solid #ccc;background-color:#fff;margin:0;padding:0}table tr:nth-child(2n){background-color:#f8f8f8}table tr th{font-weight:600;border:1px solid #ccc;text-align:left;margin:0;padding:6px 13px}table tr th :first-child{margin-top:0}table tr th :last-child{margin-bottom:0}table tr td{border:1px solid #ccc;text-align:left;margin:0;padding:6px 13px}table tr td :first-child{margin-top:0}table tr td :last-child{margin-bottom:0}pre{margin:15px 0;background-color:#f8f8f8;border:1px solid #ccc;font-size:12px;line-height:18px;overflow:auto;padding:6px 8px;border-radius:3px}pre code{margin:0;padding:0;white-space:pre;border:none;background:0 0;background-color:transparent;border:none}pre tt{background-color:transparent;border:none}hr{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;border:0 none;color:#ccc;height:3px;padding:0}img{max-width:100%}span.frame{display:block;overflow:hidden}span.frame>span{border:1px solid #ddd;display:block;float:left;overflow:hidden;margin:13px 0 0;padding:7px;width:auto}span.frame span img{display:block;float:left}span.frame span span{clear:both;color:#333;display:block;padding:5px 0 0}span.align-center{display:block;overflow:hidden;clear:both}span.align-center>span{display:block;overflow:hidden;margin:13px auto 0;text-align:center}span.align-center span img{margin:0 auto;text-align:center}span.align-right{display:block;overflow:hidden;clear:both}span.align-right>span{display:block;overflow:hidden;margin:13px 0 0;text-align:right}span.align-right span img{margin:0;text-align:right}span.float-left{display:block;margin-right:13px;overflow:hidden;float:left}span.float-left span{margin:13px 0 0}span.float-right{display:block;margin-left:13px;overflow:hidden;float:right}span.float-right>span{display:block;overflow:hidden;margin:13px auto 0;text-align:right}code,tt{margin:0 2px;padding:0 5px;white-space:nowrap;border:1px solid #eaeaea;background-color:#f8f8f8;border-radius:3px}@media (max-width:400px){body{font-size:12px;margin-left:10px;margin-right:10px;margin-top:10px;margin-bottom:15px}}@media (min-width:401px) and (max-width:600px){body{font-size:13px;margin-left:10px;margin-right:10px;margin-top:10px;margin-bottom:15px}}@media (min-width:601px) and (max-width:900px){body{font-size:14px;margin-left:20px;margin-right:20px;margin-top:20px;margin-bottom:25px}}@media (min-width:901px) and (max-width:1800px){body{font-size:15px;margin-left:50px;margin-right:50px;margin-top:30px;margin-bottom:25px;max-width:800px}}@media (min-width:1801px){body{font-size:16px;margin-left:20%;margin-right:20%;margin-top:30px;margin-bottom:25px;max-width:1000px}}
 </style>
 </head><body>
 <h1>Mograsim Development Environment</h1>
-<p><span style="color:grey"><em>Mograsim Development Documentation Version 0.1 &mdash; 2019-09-13</em></span></p>
+<p><span style="color:grey"><em>Mograsim Development Documentation Version 0.2 &mdash; 2019-09-18</em></span></p>
 <p>A short guide to the Mograsim Maven Tycho configuration and Maven Tycho in general,
 as well as some information on Eclipse Plugin Development and OSGi.</p>
 <h2>Maven Tycho</h2>
@@ -57,21 +57,7 @@ and short introduction to the different mechanisms used.</li>
 <h2>Mograsim Structure</h2>
 <p>The tree of Mograsim projects:</p>
 <ul>
-<li><code>bundles</code> - <em>This contains all bundles/plugins that provide functionality to Mograsim</em><ul>
-<li><code>extenal/swthelper</code> - <em>This contains the <a href="https://github.com/Haspamelodica/SWTHelper">SWTHelper</a>
-git submodule.</em><ul>
-<li><code>bundles</code> - <em>This submodule folder needs to be named like that for Tycho
-pom-less build to work.</em><ul>
-<li><span style="color:grey"><em>SWTInput</em></span> - <em>unused</em></li>
-<li><strong>SWTObjectWrappers</strong> - SWT object abstractions to enable zooming and
-optimizations.</li>
-<li><span style="color:grey"><em>SWTSystemInOutApplication</em></span> - <em>unused</em></li>
-<li><span style="color:grey"><em>SWTTiledZoomableCanvas</em></span> - <em>unused</em></li>
-<li><strong>SWTZoomableCanvas</strong> - The SWT canvas we draw the simulation in.</li>
-</ul>
-</li>
-</ul>
-</li>
+<li><code>plugins</code> - <em>This contains all bundles/plugins that provide functionality to Mograsim</em><ul>
 <li><strong>net.mograsim.logic.core</strong> <br> The core logic for pure simulation. This contains
 the most important low-level logic circuits and gates and defines how that
 logic gets simulated. The underlying system for simulation in Mograsim is an
@@ -152,11 +138,24 @@ are included here, too.</li>
 </ul>
 </li>
 <li><code>tests</code> - <em>This contains (integration-like) tests in form of plugin fragments</em><ul>
-<li><strong>net.mograsim.logic.tests</strong></li>
+<li><strong>net.mograsim.logic.core.tests</strong></li>
 <li><strong>net.mograsim.logic.model.am2900.tests</strong></li>
 <li><strong>net.mograsim.machine.tests</strong></li>
 </ul>
 </li>
+<li><code>SWTHelper</code> - <em>This contains the <a href="https://github.com/Haspamelodica/SWTHelper">SWTHelper</a>
+git submodule.</em><ul>
+<li><code>bundles</code> - <em>This submodule folder needs to be named like that for Tycho pom-less
+build to work.</em><ul>
+<li><span style="color:grey"><em>SWTInput</em></span> - <em>unused</em></li>
+<li><strong>SWTObjectWrappers</strong> - SWT object abstractions to enable zooming and optimizations.</li>
+<li><span style="color:grey"><em>SWTSystemInOutApplication</em></span> - <em>unused</em></li>
+<li><span style="color:grey"><em>SWTTiledZoomableCanvas</em></span> - <em>unused</em></li>
+<li><strong>SWTZoomableCanvas</strong> - The SWT canvas we draw the simulation in.</li>
+</ul>
+</li>
+</ul>
+</li>
 </ul>
 <h2>Build Mograsim</h2>
 <p>Use the main aggregator <code>pom.xml</code> next to this markdown file to build mograsim, take
index e69de29..012fe25 100644 (file)
--- a/README.md
+++ b/README.md
@@ -0,0 +1,95 @@
+# About
+
+Mograsim is a modular, graphical simulator for teaching microprogramming, ISAs and 
+circuit logic in a way that allows for a smooth transition between those levels. 
+
+The aim is to give students a better understanding how these layers blend in a machine, 
+and what the purpose of microprogramming is. In more detail, Mograsim allows:
+
+* Programming and running simple assembler on the machine
+* Defining an ISA (Instruction Set) to use in the assembler
+* Microprogram the CPU to implement the specified ISA
+* View the Circuit Logic operating and executing the microprogram in detail
+
+Mograsim focuses especially on the AMD Am2900 Family microprocessors in a specific 
+16-bit arrangement used by the Technical University of Munich as an example.  
+
+# Building Mograsim
+
+These are a very basic instructions for building Mograsim from source. 
+
+It assumes you know nothing about Eclipse Plug-In development, Maven, or Git.
+
+## Prerequisites
+
+1. [Java 11 JDK](http://jdk.java.net/java-se-ri/11) [(or Oracle Implementation)](https://www.oracle.com/technetwork/java/javase/downloads/index.html)
+2. [Eclipse 2019-03 or later](https://www.eclipse.org/downloads/)
+3. (optional) [Git](https://git-scm.com/downloads)
+
+## Install PDE (Plugin Development Environment)
+
+1. In Eclipse, click on "Help" -> "Install New Software..."
+2. Next to "Work With:", select "The Eclipse Project Updates"
+3. Tick "Eclipse PDE Plug-in Developer Resources" (expand "Eclipse Plugin Development 
+   Tools" or type "PDE" in the search bar to see it)
+4. Click on "Next >" two times, read and accept the license, and click on "Finish"
+5. Wait for the installation to complete (may take a while). When prompted, restart 
+   Eclipse.
+
+## Clone the Git repository and import the projects
+
+Can be done via Git or via EGit (Eclipse Git).
+
+### a) via EGit (Eclipse integration)
+
+1. In Eclipse, click on "Window" -> "Show View" -> "Other..."
+2. Select "Git Repositories" (expand "Git" to see it)
+3. In the "Git Repositories" view, click on "Clone a Git repository"
+4. Enter the repository URL ("Host", "Repository path", and "Protocol" should fill 
+   automatically); click on "Next >"
+5. Select only "development"; click on "Next >"
+6. Enter the directory you want the Mograsim projects to be saved in
+7. Tick "Clone submodules" and "Import all existing Eclipse projects after clone 
+   finishes"; click on "Finish"
+
+### b) via Git (requires Git to be installed)
+
+1. In a command prompt (Terminal on Linux; git-bash on Windows), execute `git clone 
+   --recurse-submodules --single-branch -b development <repository URL> <target directory>`
+2. _(optional)_ Import the repository in Eclipse:
+    1. In Eclipse, open the "Git Repositories" view as described in the first two 
+       steps in **a)**
+    2. In the "Git Repositories" view, click on "Add an existing local Git repository"
+    3. Enter the directory of the repository and tick the repository you see in the 
+       list below; click on "Add". (If there is another repository ending with "SWTHelper", 
+       ignore it)
+3. Import the projects into the workspace
+    1. Click on "File" -> "Import..."
+    2. Select "Existing Projects into Workspace" (expand "General" to see it); click 
+       on "Next >"
+    3. Tick "Select root directory:" and "Search for nested projects"
+    4. Next to "Select root directory:", enter the directory of the repository; click 
+       on "Finish"
+
+Note: After importing the projects, probably an automatic workspace build will start. 
+Wait for it to finish before continuing.
+
+## Do the Maven Tycho workaround:
+
+In the project explorer or package explorer, right-click on "net.mograsim.tycho-download", 
+click on "Run As" -> "Maven clean" and wait for it to finish.
+
+## Build the Update Site
+
+1. In the project explorer or package explorer, right-click on "net.mograsim", click 
+   on "Run As" -> "Maven build..."
+2. Next to "Goals", enter "clean verify"; click on "Run" and wait for it to finish 
+   (this will take a while)
+3. Select all projects, right-click, and click on "Refresh"
+
+The update site now should be built and is located in net.mograsim.plugin.updatesite/target/repository. 
+In there you should see, among other files, a folder named "features", a folder named 
+"plugins" containing some jar files, and two jar files called "artifacts.jar" and 
+"content.jar".
+
+More information about the build, structure and environment can be found in the [MAVEN-TYCHO-README.MD](MAVEN-TYCHO-README.MD).