> For the complete documentation index, see [llms.txt](https://aim-intelligence.gitbook.io/untitled/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://aim-intelligence.gitbook.io/untitled/cronus-zen-guide.md).

# 📖 Cronus Zen Guide

{% hint style="info" %}
The current beta cycle has ended, and the full non-beta versions of Zen Studio and Zen Firmware are now available.
{% endhint %}

**v1.6.1 Build 1**

<mark style="color:blue;">ALT or CTRL UP/DOWN gesture to move highlighted code blocks.</mark>

<mark style="color:blue;">CTRL-SHIFT-Z as an alternate redo shortcut.</mark>

<mark style="color:blue;">CTRL-/ to (un)comment lines or selections.</mark>

<mark style="color:blue;">CTRL-Q to copy a line or selection.</mark>

<mark style="color:blue;">CTRL-' (quote) for commenting gesture.</mark>

<mark style="color:blue;">Bitwise Assignment Operators.</mark>

<mark style="color:blue;">Combos and Functions navigation in GPC editor.</mark>

<mark style="color:blue;">Mandatory internet connection.</mark>

<mark style="color:blue;">Beta team in About section.</mark>

<mark style="color:blue;">License agreement on setup and Zen Studio startup.</mark>

<mark style="color:purple;">Focus issue in GPC script Find/Replace dialog.</mark>

<mark style="color:purple;">Issue with Device Monitor labels.</mark>

<mark style="color:purple;">Date being cut off in Online Library.</mark>

<mark style="color:purple;">Left/right arrow issue when selecting text.</mark>

<mark style="color:purple;">Block comment \`/\* \*/\` functionality.</mark>

<mark style="color:purple;">Script hyperlink color in Online Library.</mark>

<mark style="color:purple;">Programming tab hanging after factory erase.</mark>

<mark style="color:purple;">JavaScript error in YouTube videos via setup.</mark>

<mark style="color:purple;">Issue where Zen Studio closed after PC wake from sleep.</mark>

<mark style="color:purple;">B\&R closing unexpectedly the first time.</mark>

<mark style="color:purple;">Small bug in Combos navigation.</mark>

<mark style="color:purple;">WebHID issue by resetting the device when exiting due to Marketplace detection.</mark>

<mark style="color:purple;">Issue with DS4 Output protocol</mark>

<mark style="color:green;">Compiler by removing deprecated 16-bit option.</mark>

<mark style="color:green;">Code movement to allow moving single lines.</mark>

<mark style="color:green;">Cursor positioning when using up/down arrow keys on selections.</mark>

<mark style="color:green;">Scrolling to cursor when using arrow keys on selections.</mark>

<mark style="color:green;">Foreground color for strings.</mark>

<mark style="color:green;">Device reset behavior after changing output protocol.</mark>

<mark style="color:green;">Device handling upon output protocol change (no reset needed).</mark>

<mark style="color:green;">Sorting of Combos and Functions lists by name.</mark>

<mark style="color:green;">License information in About section.</mark><br>

v1.2.1 Beta

<mark style="color:blue;">Support for the continue keyword in loops</mark>

<mark style="color:blue;">Zen server status is now shown on status bar. Clicking the status bar label will perform the check again</mark>

<mark style="color:blue;">Button to copy current device/software details to clipboard (Help > About Zen Studio...)</mark>

<mark style="color:blue;">Scrollable layout for low resolution monitors</mark>

<mark style="color:blue;">Replaced Find Device Icon with a better one</mark>

<mark style="color:blue;">Multiple GUI fixes, enhancements and stability improvements</mark>

<mark style="color:blue;">Various compiler optimizations</mark>

<mark style="color:blue;">Ballistic Curve buttons order</mark>

<mark style="color:blue;">Updated the parser to treat : and ; as separate characters while maintaining the old syntax support for ending with : or ;</mark>

<mark style="color:orange;">Issue when GamePack/Scripts sync occurs</mark>

<mark style="color:orange;">Issue with GamePacks cached list</mark>

<mark style="color:orange;">Cached YouTube links not showing when clicking PRO GamePacks</mark>

<mark style="color:orange;">The compiler will now track possible overflow or underflow errors</mark>

<mark style="color:orange;">Issue with inc/dec issue in if statement.</mark>

<mark style="color:orange;">Issue with binary operators.</mark>

<mark style="color:orange;">SPVARS not loading after GamePack sync occurs (on APPDATA delete or PC change)</mark>

<mark style="color:orange;">GPC editor GOTO logic (finally)</mark>

<mark style="color:orange;">Issue with flashing some GPC scripts</mark>

<mark style="color:red;">MAX MAPPER not exiting API MODE on close causing no output to be sent</mark>

<mark style="color:red;">Append InGameSettingsFlyoutText when exporting M\&K .bin layout</mark>

<mark style="color:red;">Switch Case statement - Check GPC sample below</mark>

<mark style="color:red;">Enum data definition - Check GPC sample below</mark>

<mark style="color:red;">Bluetooth clear button - Check instructions below</mark>

<mark style="color:red;">Support for any keyword as an identifier</mark>

#### 💾 Switching Case Statements Sample: <a href="#bujwq" id="bujwq"></a>

{% code lineNumbers="true" fullWidth="true" %}

```

// GPC

int var = 1;

define FIVE = 5;

define SIX = FIVE + 1;

main {
	switch(var) {
		case 1 {
			set_val(TRACE_1, 1); // THIS HAS NO BREAK SO IT WILL EVALUATE NEXT CASE!
		}
		case 2 : {
			set_val(TRACE_1, 2);
			set_val(TRACE_2, 2);
			break;
		}
		case 0x3 {
			break;
		}
		case 0x4 : {
			break;
		}
		case FIVE {
			break;
	 	}
	 	case SIX : {
	 	
	 	}
		default {
			set_val(TRACE_3, 1);
		}
	}
	switch(get_rumble(RUMBLE_RT)) {
		case 0x10 {
			break;
		}
		case 40 : {
			break;
		}		
		case 60 {
			break;
		}
		case 80 : {
			break;
		}
	}
}
```

{% endcode %}

### 💾 Enum Data Definition Sample: <a href="#enum-data-definition-sample" id="enum-data-definition-sample"></a>

<br>

{% code lineNumbers="true" fullWidth="true" %}

```

enum {
  MYENUM_0 = 50,
  MYENUM_1,
  MYENUM_3,
  MYENUM_4
}

enum {
  MYENUM2_0,
  MYENUM2_1,
  MYENUM2_3,
  MYENUM2_4
}

main {

	set_val(TRACE_1, MYENUM_1); 	// THIS WILL OUTPUT 51 AS OUR ENUM STARTED FROM 50
	set_val(TRACE_1, MYENUM2_1);	// THIS WILL OUTPUT 1 AS DEFAULT ENUM START IS ALWAYS 0

}
```

{% endcode %}
