{"id":3243,"date":"2025-04-17T10:29:48","date_gmt":"2025-04-17T10:29:48","guid":{"rendered":"https:\/\/webprojects.cloud\/wordpress\/splatco\/?post_type=spl_knowledgebase&#038;p=3243"},"modified":"2025-06-10T07:43:40","modified_gmt":"2025-06-10T07:43:40","slug":"builder-oneonly-segment-qualifier","status":"publish","type":"spl_knowledgebase","link":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/builder-oneonly-segment-qualifier\/","title":{"rendered":"Builder: ONEONLY segment qualifier"},"content":{"rendered":"\n<p><em>SPLat\/PC V8.20.2 and later will recognize the alias ONCEONLY<\/em><\/p>\n\n\n\n<p>If your program uses\u00a0<a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/glossary-of-terms\/#o2970\">NVEM<\/a>\u00a0it needs to include a\u00a0<code><a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/programming-reference\/instructions-arranged-by-function\/non-volatile-memory\/nvem0-directive-d15\/\">NVEM0<\/a><\/code>\u00a0directive to tell SPLat\/PC where your executable code ends and your NVEM stuff (tables etc) starts. However a complete program may only contain one single\u00a0<code>NVEM0<\/code>\u00a0directive. If you have several modules (*.spt source files), each containing NVEM, that can be a bit awkward to arrange.<\/p>\n\n\n\n<p>Builder allows you to designate a segment name that will only be used once in the whole build process. If segment name appears in the .b1d file with the qualifier word\u00a0<code>ONEONLY<\/code>\u00a0after it. the segment code will be taken from the first .spt file to contain it and be ignored in any other files containing that segment. The code will be located in the output file according to the segment name&#8217;s position in the build file (c.f.\u00a0<a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/builder-onceinline-segment-qualifier\/\">ONCEINLINE<\/a>.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Example:<\/h6>\n\n\n\n<p>Consider 2 source files, that are listed in the .b1d in the same order as below:<\/p>\n\n\n\n<p>1st file, test1.spt &#8211;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">;&lt;CODESEG&gt;\n;\t...\n;\t\tdo some stuff in test1.spt\n;\t...\n;&lt;NVEM0DIR&gt;\tNVEM0 ;in test1.spt\n;&lt;NVEM0DATA&gt;\nTable1:\t\tNV0Byte  1,2,3,4,5<\/pre>\n\n\n\n<p>2nd file, test2.spt &#8211;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">;&lt;CODESEG&gt;\n;\t...\n;\t\tdo some stuff in test2.spt\n;\t...\n;&lt;NVEM0DIR&gt;\n\t\t\tNVEM0 ;in test2.spt\n;the above line will not get to the final file as it falls in\n;segment NVEM0DIR of the 2nd .spt file to contain it.\n;&lt;NVEM0DATA&gt;\nTable2:\t\tNV0Byte  99,100,11,22,33<\/pre>\n\n\n\n<p>And the .b1d file:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">CODESEG\nNVEM0DIR ONEONLY\nNVEM0DATA\n#---\ntest1.spt\ntest2.spt\n<\/pre>\n\n\n\n<p>This will build to the following merged file:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">;\t...\n;\t\tdo some stuff in test1.spt\n;\t...\n\n;\t...\n;\t\tdo some stuff in test2.spt\n;\t...\n\tNVEM0 ;in test1.spt\n\nTable1:\t\tNV0Byte  1,2,3,4,5\n\nTable2:\t\tNV0Byte  99,100,11,22,33<\/pre>\n\n\n\n<p>You can see that only one of the NVEM0 lines has been used.<\/p>\n\n\n\n<p>Exercise: What will happen if I swap the test1.spt and test2.spt lines in the .b1d file? Explain why the new resulting file has one more empty line in it. It&#8217;s OK to try the files to see what happens.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SPLat\/PC V8.20.2 and later will recognize the alias ONCEONLY If your program uses\u00a0NVEM\u00a0it needs to include a\u00a0NVEM0\u00a0directive to tell SPLat\/PC where your executable code ends&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3236,"menu_order":4,"template":"","class_list":["post-3243","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>Builder: ONEONLY segment qualifier - 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=\"Builder: ONEONLY segment qualifier - SPLat Controls\" \/>\n<meta property=\"og:description\" content=\"SPLat\/PC V8.20.2 and later will recognize the alias ONCEONLY If your program uses\u00a0NVEM\u00a0it needs to include a\u00a0NVEM0\u00a0directive to tell SPLat\/PC where your executable code ends...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/builder-oneonly-segment-qualifier\/\" \/>\n<meta property=\"og:site_name\" content=\"SPLat Controls\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-10T07:43:40+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-builder\/builder-oneonly-segment-qualifier\/\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/builder-oneonly-segment-qualifier\/\",\"name\":\"Builder: ONEONLY segment qualifier - SPLat Controls\",\"isPartOf\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website\"},\"datePublished\":\"2025-04-17T10:29:48+00:00\",\"dateModified\":\"2025-06-10T07:43:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/builder-oneonly-segment-qualifier\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/builder-oneonly-segment-qualifier\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/builder-oneonly-segment-qualifier\/#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: Builder\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Builder: ONEONLY segment qualifier\"}]},{\"@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":"Builder: ONEONLY segment qualifier - 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":"Builder: ONEONLY segment qualifier - SPLat Controls","og_description":"SPLat\/PC V8.20.2 and later will recognize the alias ONCEONLY If your program uses\u00a0NVEM\u00a0it needs to include a\u00a0NVEM0\u00a0directive to tell SPLat\/PC where your executable code ends...","og_url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/builder-oneonly-segment-qualifier\/","og_site_name":"SPLat Controls","article_modified_time":"2025-06-10T07:43:40+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-builder\/builder-oneonly-segment-qualifier\/","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/builder-oneonly-segment-qualifier\/","name":"Builder: ONEONLY segment qualifier - SPLat Controls","isPartOf":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website"},"datePublished":"2025-04-17T10:29:48+00:00","dateModified":"2025-06-10T07:43:40+00:00","breadcrumb":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/builder-oneonly-segment-qualifier\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/builder-oneonly-segment-qualifier\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/builder-oneonly-segment-qualifier\/#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: Builder","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/splat-pc-programming-software\/splat-pc-builder\/"},{"@type":"ListItem","position":4,"name":"Builder: ONEONLY segment qualifier"}]},{"@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\/3243","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\/3236"}],"wp:attachment":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/media?parent=3243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}