<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Assembler</title><link>https://sourceforge.net/p/ev3utils/wiki/Assembler/</link><description>Recent changes to Assembler</description><atom:link href="https://sourceforge.net/p/ev3utils/wiki/Assembler/feed" rel="self"/><language>en</language><lastBuildDate>Mon, 22 Feb 2016 03:48:26 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/ev3utils/wiki/Assembler/feed" rel="self" type="application/rss+xml"/><item><title>Assembler modified by Brian Wheeler</title><link>https://sourceforge.net/p/ev3utils/wiki/Assembler/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -23,6 +23,9 @@
 Subcall parameters | Listed as local variables | subcall fact(IN_32 n, OUT_32 result) \{
 Arrays and String Sizes | DataS string 32 | DataS\[32\] string
 Subcodes | UI_WRITE(LED, LED_RED) | UI_WRITE.LED(LED_RED)
+Strings | Single-quote delimited | double-quote delimited
+Character constants | Not supported | Single-quote delimited
+Preprocessor Arithmetic | ??? | basic math supported
 Output Listing | Not Supported | The 3rd filename of the assembler is the listing file name
 Error Checking | Hardly any | Lots...too much, sometimes
 Relative Jump Size | +/- 32K | +/- 2G 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brian Wheeler</dc:creator><pubDate>Mon, 22 Feb 2016 03:48:26 -0000</pubDate><guid>https://sourceforge.net4e5ae972f7ef8bfea6983aba622f2d646bb94b4d</guid></item><item><title>Assembler modified by Brian Wheeler</title><link>https://sourceforge.net/p/ev3utils/wiki/Assembler/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -26,6 +26,8 @@
 Output Listing | Not Supported | The 3rd filename of the assembler is the listing file name
 Error Checking | Hardly any | Lots...too much, sometimes
 Relative Jump Size | +/- 32K | +/- 2G 
+Implementation Language | Some LOGO Dialect | JAVA
+Usability | Hard to use outside of LMS2012 Environment |  Single runnable JAR

 Bytecode definitions are based on the 1.07 source code, but can be regenerated in the source by running a perl script to regenerate the java source.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brian Wheeler</dc:creator><pubDate>Mon, 22 Feb 2016 03:43:22 -0000</pubDate><guid>https://sourceforge.net925a304a9f48a370571b8c2590cb42fbfeaf573e</guid></item><item><title>Assembler modified by Brian Wheeler</title><link>https://sourceforge.net/p/ev3utils/wiki/Assembler/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -10,7 +10,7 @@

 * For 'INIT_BYTES' and the INIT functions in 'ARRAY', the count of objects is generated by the assember and is not needed.

-The assembler which comes with the LMS2012 source code uses a slightly different syntax for some features.  Key differences include:
+The EV3Utils assembler has different syntax and features than the one which comes with the LMS2012 source code.  Key differences include:

 Feature | LMS2012 | EV3Utils
 ---------- | ---------- | ------ 
@@ -20,8 +20,15 @@
 Define | define NAME value | %define NAME value
 Include Files | Not supported | %include "filename.inc"
 Line Directives | Not supported | %line 33 myfile.lms
+Subcall parameters | Listed as local variables | subcall fact(IN_32 n, OUT_32 result) \{
 Arrays and String Sizes | DataS string 32 | DataS\[32\] string
+Subcodes | UI_WRITE(LED, LED_RED) | UI_WRITE.LED(LED_RED)
+Output Listing | Not Supported | The 3rd filename of the assembler is the listing file name
+Error Checking | Hardly any | Lots...too much, sometimes
+Relative Jump Size | +/- 32K | +/- 2G 
+
+
+Bytecode definitions are based on the 1.07 source code, but can be regenerated in the source by running a perl script to regenerate the java source.

-
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brian Wheeler</dc:creator><pubDate>Mon, 22 Feb 2016 03:36:48 -0000</pubDate><guid>https://sourceforge.net7b9972b0c89d335072bb2379beafb72a12c71fc0</guid></item><item><title>Assembler modified by Brian Wheeler</title><link>https://sourceforge.net/p/ev3utils/wiki/Assembler/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;The Assembler will let you create EV3 Bytecode programs (.rbf) outside of the LEGO-provided environment.&lt;br/&gt;
&lt;/p&gt;
&lt;p&gt;The Opcodes are described in the "EV3 Firmware Developer Kit" on &lt;a class="" href="http://www.lego.com/en-us/mindstorms/downloads" rel="nofollow"&gt;The Mindstorms Download Page&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There are some minor changes compared to the documentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The 'STRINGS' opcode is spelled 'STRING' in EV3Utils&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The 'GET_BUMBED' subcode for UI_READ was obviously a typo in the LEGO doc and the EV3Utils uses the correct spelling of 'GET_BUMPED'&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For 'INIT_BYTES' and the INIT functions in 'ARRAY', the count of objects is generated by the assember and is not needed.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The assembler which comes with the LMS2012 source code uses a slightly different syntax for some features.  Key differences include:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;LMS2012&lt;/th&gt;
&lt;th&gt;EV3Utils&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Multi-line comments&lt;/td&gt;
&lt;td&gt;/* a comment */&lt;/td&gt;
&lt;td&gt;Not supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Single-line comments&lt;/td&gt;
&lt;td&gt;// my comment&lt;/td&gt;
&lt;td&gt;; my coment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Line continuation&lt;/td&gt;
&lt;td&gt;'=' at the end of the line&lt;/td&gt;
&lt;td&gt;Not (yet) supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Define&lt;/td&gt;
&lt;td&gt;define NAME value&lt;/td&gt;
&lt;td&gt;%define NAME value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Include Files&lt;/td&gt;
&lt;td&gt;Not supported&lt;/td&gt;
&lt;td&gt;%include "filename.inc"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Line Directives&lt;/td&gt;
&lt;td&gt;Not supported&lt;/td&gt;
&lt;td&gt;%line 33 myfile.lms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arrays and String Sizes&lt;/td&gt;
&lt;td&gt;DataS string 32&lt;/td&gt;
&lt;td&gt;DataS[32] string&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brian Wheeler</dc:creator><pubDate>Mon, 22 Feb 2016 03:29:18 -0000</pubDate><guid>https://sourceforge.netc3049b90627a775796b71f3408065febba93c817</guid></item></channel></rss>