{"id":3229,"date":"2025-04-17T10:21:19","date_gmt":"2025-04-17T10:21:19","guid":{"rendered":"https:\/\/webprojects.cloud\/wordpress\/splatco\/?post_type=spl_knowledgebase&#038;p=3229"},"modified":"2025-06-10T07:41:29","modified_gmt":"2025-06-10T07:41:29","slug":"splat-pc-manual-ram-allocation","status":"publish","type":"spl_knowledgebase","link":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-manual-ram-allocation\/","title":{"rendered":"SPLat\/PC: Manual RAM allocation"},"content":{"rendered":"\n<p>In the old (prior to July 2005)\u00a0<a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/glossary-of-terms\/#o414\">RAM<\/a>\u00a0allocation scheme RAM (<a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/glossary-of-terms\/#o415\">Data Memory<\/a>) was allocated to specific variables using the\u00a0<code>mEQU<\/code>\u00a0(or\u00a0<code>EQU<\/code>) directive. For example:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Foo:    <a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/programming-reference\/directives\/mequ-directive\/\">mEQU<\/a>     34<\/pre>\n\n\n\n<p>would (and still will) define the label (symbol)&nbsp;<code>Foo<\/code>&nbsp;as being equivalent to the numerical value 34. This is turn means that if you subsequently use&nbsp;<code>Foo<\/code>&nbsp;as a RAM address argument in any instruction that references RAM, the value 34 will be used in its place. For example:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">        <a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/programming-reference\/instructions-arranged-by-function\/counting-and-related-instructions\/incm-mm\/\">IncM<\/a>     Foo<\/pre>\n\n\n\n<p>will increment the contents of RAM location 34 if it exists in the same program as the previous sample line.<\/p>\n\n\n\n<p>This is all documented in the SPLat\/PC help file. Using this allocation scheme you must manually manage where in RAM each variable is to be located.<\/p>\n\n\n\n<p>With the new\u00a0<a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-automatic-ram-allocation\/\">automatic allocation scheme<\/a>, the old\u00a0<code>EQU<\/code>\u00a0and\u00a0<code>mEQU<\/code>\u00a0directives still work. However,\u00a0<code>mEQU<\/code>\u00a0has been modified to work better with the new system, and now has an optional second argument. The second argument tells SPLat\/PC how many bytes to reserve. RAM reserved by\u00a0<code>mEQU<\/code>\u00a0directives will not be used by the new automatic RAM allocation. That means you can safely mix and match the two schemes. For example, you may decide to upgrade an old program that uses the manual allocation scheme. It is perfectly OK to use automatic allocation for any new variable you need for your additional code.<\/p>\n\n\n\n<p>The line<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Bar:    <a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/programming-reference\/directives\/mequ-directive\/\">mEQU<\/a>     35,3<\/pre>\n\n\n\n<p>will set aside the 3 RAM locations 35, 36 and 37. These then become unavailable to the automatic allocation scheme. If the optional second argument is not included, SPLat\/PC assumes 4. This ensures that if you are going to use the memory for a 4-byte floating point variable, it won&#8217;t get re-allocated by the automatic allocation scheme (that would be bad!).<\/p>\n\n\n\n<p>Note however that there is nothing to stop you overlapping allocations within the manual scheme. The following is perfectly legal:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Var1:   mEQU      27,5\nVar2:   mEQU      28<\/pre>\n\n\n\n<p>You might do this for either of the following reasons:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>You made a mistake (the manual allocation scheme provides no protection)<\/li>\n\n\n\n<li>You intended to re-use memory. Maybe different parts of your program use it at separate times, so you can save by sharing.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>In the old (prior to July 2005)\u00a0RAM\u00a0allocation scheme RAM (Data Memory) was allocated to specific variables using the\u00a0mEQU\u00a0(or\u00a0EQU) directive. For example: Foo: mEQU 34 would&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3228,"menu_order":0,"template":"","class_list":["post-3229","spl_knowledgebase","type-spl_knowledgebase","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SPLat\/PC: Manual RAM allocation - SPLat Controls<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SPLat\/PC: Manual RAM allocation - SPLat Controls\" \/>\n<meta property=\"og:description\" content=\"In the old (prior to July 2005)\u00a0RAM\u00a0allocation scheme RAM (Data Memory) was allocated to specific variables using the\u00a0mEQU\u00a0(or\u00a0EQU) directive. For example: Foo: mEQU 34 would...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-manual-ram-allocation\/\" \/>\n<meta property=\"og:site_name\" content=\"SPLat Controls\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-10T07:41:29+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-manual-ram-allocation\/\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-manual-ram-allocation\/\",\"name\":\"SPLat\/PC: Manual RAM allocation - SPLat Controls\",\"isPartOf\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website\"},\"datePublished\":\"2025-04-17T10:21:19+00:00\",\"dateModified\":\"2025-06-10T07:41:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-manual-ram-allocation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-manual-ram-allocation\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-manual-ram-allocation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SPLat\/PC programming software\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SPLat\/PC: RAM allocation schemes\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"SPLat\/PC: Manual RAM allocation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/\",\"name\":\"SPLat Controls\",\"description\":\"OEM Embedded Machine Controllers\",\"publisher\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#organization\",\"name\":\"SPLat Controls\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2024\/10\/logo.svg\",\"contentUrl\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2024\/10\/logo.svg\",\"caption\":\"SPLat Controls\"},\"image\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SPLat\/PC: Manual RAM allocation - SPLat Controls","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"SPLat\/PC: Manual RAM allocation - SPLat Controls","og_description":"In the old (prior to July 2005)\u00a0RAM\u00a0allocation scheme RAM (Data Memory) was allocated to specific variables using the\u00a0mEQU\u00a0(or\u00a0EQU) directive. For example: Foo: mEQU 34 would...","og_url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-manual-ram-allocation\/","og_site_name":"SPLat Controls","article_modified_time":"2025-06-10T07:41:29+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-manual-ram-allocation\/","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-manual-ram-allocation\/","name":"SPLat\/PC: Manual RAM allocation - SPLat Controls","isPartOf":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website"},"datePublished":"2025-04-17T10:21:19+00:00","dateModified":"2025-06-10T07:41:29+00:00","breadcrumb":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-manual-ram-allocation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-manual-ram-allocation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/splat-pc-manual-ram-allocation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/"},{"@type":"ListItem","position":2,"name":"SPLat\/PC programming software","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/"},{"@type":"ListItem","position":3,"name":"SPLat\/PC: RAM allocation schemes","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-ram-allocation-schemes\/"},{"@type":"ListItem","position":4,"name":"SPLat\/PC: Manual RAM allocation"}]},{"@type":"WebSite","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/","name":"SPLat Controls","description":"OEM Embedded Machine Controllers","publisher":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webprojects.cloud\/wordpress\/splatco\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#organization","name":"SPLat Controls","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#\/schema\/logo\/image\/","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2024\/10\/logo.svg","contentUrl":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2024\/10\/logo.svg","caption":"SPLat Controls"},"image":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/spl_knowledgebase\/3229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/spl_knowledgebase"}],"about":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/types\/spl_knowledgebase"}],"author":[{"embeddable":true,"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/users\/1"}],"up":[{"embeddable":true,"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/spl_knowledgebase\/3228"}],"wp:attachment":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/media?parent=3229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}