<root>
<document scada='0' schema='103' license='1,79829088,0H6AEK' title='' description='' fcversion='590593' target='ESP.ESP32.ESP32_WROOM_32' >
	<config data='' clkspd='240000000' simspd='1' usewdt='0' constif='0' commport='5' Use3V3='0' />
	<plugins >
		<dll_models enabled='1' />
	</plugins>
	<supplement use='1' head='#include &quot;spiral-0.dat&quot;
#include &quot;spiral-1.dat&quot;
#include &quot;spiral-2.dat&quot;
#include &quot;spiral-3.dat&quot;
#include &quot;spiral-4.dat&quot;
#include &quot;spiral-5.dat&quot;
#include &quot;spiral-6.dat&quot;
#include &quot;spiral-7.dat&quot;
#include &quot;spiral-8.dat&quot;
#include &quot;spiral-9.dat&quot;
#include &quot;spiral-10.dat&quot;
#include &quot;snowflake.dat&quot;
#include &quot;hc.dat&quot;
#include &quot;f.dat&quot;
#include &quot;l.dat&quot;
#include &quot;o.dat&quot;
#include &quot;W.dat&quot;
#include &quot;c.dat&quot;
#include &quot;d.dat&quot;
#include &quot;e.dat&quot;' body='' />
	<debug >
		<watch expr='BlitBuffer.data' />
		<watch expr='BlitBuffer.pos' />
		<watch expr='BlitBuffer.spi_buf' />
		<watch expr='BlitBuffer.x' />
		<watch expr='BlitBuffer.y' />
		<watch expr='Plot.index' />
		<watch expr='Plot.x' />
		<watch expr='Plot.y' />
		<watch expr='buf' />
		<watch expr='RotateCube.z' />
		<watch expr='RotateCube.y' />
		<watch expr='RotateCube.x' />
		<watch expr='RotateCube.cosX' />
		<watch expr='RotateCube.cosY' />
		<watch expr='RotateCube.i' />
		<watch expr='RotateCube.sinX' />
		<watch expr='RotateCube.sinY' />
		<watch expr='nodes' />
		<watch expr='BlitBuffer.col' />
	</debug>
	<traces />
	<ghost >
		<FK2 >
			<data name='FK2D0' port='4294967295' pin='4294967295' />
			<data name='FK2D1' port='4294967295' pin='4294967295' />
			<data name='FK2D2' port='4294967295' pin='4294967295' />
			<data name='FK2D3' port='4294967295' pin='4294967295' />
			<data name='FK2D4' port='4294967295' pin='4294967295' />
			<data name='FK2D5' port='4294967295' pin='4294967295' />
			<data name='FK2D6' port='4294967295' pin='4294967295' />
			<data name='FK2D7' port='4294967295' pin='4294967295' />
			<data name='FK2D8' port='4294967295' pin='4294967295' />
			<data name='FK2D9' port='4294967295' pin='4294967295' />
			<data name='FK2D10' port='4294967295' pin='4294967295' />
			<data name='FK2D11' port='4294967295' pin='4294967295' />
			<data name='FK2D12' port='4294967295' pin='4294967295' />
			<data name='FK2D13' port='4294967295' pin='4294967295' />
			<data name='FK2D14' port='4294967295' pin='4294967295' />
			<data name='FK2D15' port='4294967295' pin='4294967295' />
			<data name='FK2A0' port='4294967295' pin='4294967295' />
			<data name='FK2A1' port='4294967295' pin='4294967295' />
			<data name='FK2A2' port='4294967295' pin='4294967295' />
			<data name='FK2A3' port='4294967295' pin='4294967295' />
			<data name='FK2A4' port='4294967295' pin='4294967295' />
			<data name='FK2A5' port='4294967295' pin='4294967295' />
		</FK2>
		<ICD >
			<data name='AnalogPrescaleValue' value='19' />
			<data name='DigitalSampleRate' value='100000' />
			<data name='BreakpointCount' value='8' />
			<data name='CallStackDepthCount' value='8' />
			<data name='ClockPort' value='1' />
			<data name='ClockPin' value='6' />
			<data name='DataPort' value='1' />
			<data name='DataPin' value='7' />
			<data name='UseDefaultPins' value='1' />
			<data name='WrapEnabled' value='1' />
			<data name='CommsDelayOverridden' value='0' />
			<data name='CommsDelay' value='1' />
			<data name='CalculatedCommsDelay' value='1' />
			<data name='AnalogEB2PrescaleValue' value='2' />
			<data name='DigitalEB2SampleRate' value='100000' />
		</ICD>
		<pins >
			<digital A='0' B='0' C='0' D='0' E='0' F='0' G='0' H='0' I='0' J='0' K='0' L='0' M='0' N='0' O='0' P='0' Q='0' R='0' S='0' T='0' U='0' V='0' W='0' X='0' Y='0' Z='0' />
			<analog A='0' B='0' C='0' D='0' E='0' F='0' G='0' H='0' I='0' J='0' K='0' L='0' M='0' N='0' O='0' P='0' Q='0' R='0' S='0' T='0' U='0' V='0' W='0' X='0' Y='0' Z='0' />
		</pins>
	</ghost>
	<components >
		<settings autoimg='0' center='1' unitscale='0' fixedscale='0' fixedx='1' fixedy='1' fixedz='1' headcode='0' />
		<definition guid='9a43bf85-a330-4e5f-8e9c-01996fd95ba0' vstate='40' vmin='0' vmaj='1' srcleaf='' visiblename='' description='' category='' category2='' category3='' bIs2dOnly='0' catenable='1' author='' manuname='' manucode='' sysinfo='0' keywords='' dynamic='1' scadaCompatible='0' embeddedCompatible='1' iconpath='' />
		<gdiopts FullContainer='1' FullTransparency='1' ShowGdi='1' ShowOpengl='1' />
		<component class_type='root' codename='panel' x='0' y='0' z='0' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='0' poslock='0' comp2dType='0' >
			<resources />
			<properties />
			<values />
			<events />
			<apis />
			<variables >
				<variable public='0' >
					<def class_type='variable' name='buf' type='u32' description='Display buffer - one byte per pixel' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' >
						<array size='4800' />
					</def>
				</variable>
				<variable public='0' >
					<def class_type='variable' name='false' type='b1' description='' isconst='1' isHidden='0' isinit='1' usrinit='0' setinit='0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='edges' type='u8' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='{{0, 1}, {1, 3}, {3, 2}, {2, 0}, {4, 5}, {5, 7}, {7, 6}, {6, 4}, {0, 4}, {1, 5}, {2, 6}, {3, 7}}' >
						<array size='12' />
						<array size='2' />
					</def>
				</variable>
				<variable public='0' >
					<def class_type='variable' name='colors' type='u16' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='{0, 0x191F, 0x8600, 0xFFFF}' >
						<array size='4' />
					</def>
				</variable>
				<variable public='0' >
					<def class_type='variable' name='nodes' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' >
						<array size='8' />
						<array size='3' />
					</def>
				</variable>
				<variable public='0' >
					<def class_type='variable' name='height' type='s16' description='' isconst='1' isHidden='0' isinit='1' usrinit='320' setinit='320' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='width' type='s16' description='' isconst='1' isHidden='0' isinit='1' usrinit='240' setinit='240' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='cube_nodes' type='f32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0.0' setinit='{{-1, -1, -1}, {-1, -1, 1}, {-1, 1, -1}, {-1, 1, 1}, {1, -1, -1}, {1, -1, 1}, {1, 1, -1}, {1, 1, 1}}' >
						<array size='8' />
						<array size='3' />
					</def>
				</variable>
				<variable public='0' >
					<def class_type='variable' name='masks' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='{0, 0X85858585, 0XAAAAAAAA, 0xFFFFFFFF}' >
						<array size='4' />
					</def>
				</variable>
				<variable public='0' >
					<def class_type='variable' name='true' type='b1' description='' isconst='1' isHidden='0' isinit='1' usrinit='1' setinit='1' />
				</variable>
			</variables>
			<macros >
				<macro >
					<flowline name='Clear' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<local name='i' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='loop' title='Clear our data buffer' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.i' exp='4800' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='buf[.i] = 0' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='DrawCube' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='x' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='y' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='color' type='u8' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='x0' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='y0' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='x1' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='y1' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='i' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.i' exp='12' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.x0 = nodes[edges[.i][0]][0]' />
									<exp exp='.y0 = nodes[edges[.i][0]][1]' />
									<exp exp='' />
									<exp exp='.x1 = nodes[edges[.i][1]][0]' />
									<exp exp='.y1 = nodes[edges[.i][1]][1]' />
								</command>
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='DrawLine' >
									<argument exp='.x0 + .x' />
									<argument exp='.y0 + .y' />
									<argument exp='.x1 + .x' />
									<argument exp='.y1 + .y' />
									<argument exp='.color' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='CopyBM' description='Copy a 1bit per pixel to the display at x, y' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='addr' type='u32' description='Address of the data' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='x' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='y' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='db' type='b1' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='color' type='u8' description='Color (mainly for mono bitmaps)' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='width' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='height' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='h' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='xPos' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='mask' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='data' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='offset' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='read' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='depth' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='colourMap' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='ctab' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='n' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='CTable' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' >
							<array size='256' />
						</local>
						<command class_type='native' title='C Code' ccode='MX_UINT8 *q = (MX_UINT8 *)(FCL_ADDR + 0x0A);

FCL_OFFSET = *q++;
FCL_OFFSET += ((*q++) &lt;&lt; 8);
FCL_ADDR += FCL_OFFSET ;
q += 2;   // Ignore 2 bytes

FCL_CTAB = *q++;   // Size of DIB Header
FCL_CTAB += ((*q++) &lt;&lt; 8);
q+= 2;

FCL_WIDTH = *q++;
FCL_WIDTH += (*q++) &lt;&lt; 8; 
q +=2;

FCL_HEIGHT = *q++;
FCL_HEIGHT += (*q++) &lt;&lt; 8; 
q += 4;  //  Skip 2nd 2 bytes and depth

FCL_DEPTH = *q++;              // Color depth, 1, 4, 8, or 24;
q++;
FCL_CTAB += (MX_UINT32)q;' cmdcolor='500730' cmdcolor_sec='3790335' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' language='C' />
						<command class_type='decision' title='Decision' cmdcolor='143324' cmdcolor_sec='3432959' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='.depth &lt;= 8' swap='0' >
							<flowline >
								<command class_type='native' title='Copy colour map' disable='1' ccode='MX_UINT8 *cm = (MX_UINT8*)q + (MX_UINT8*)FCL_CTAB;
for(int i = 0; i &lt; (1 &lt;&lt; FCL_DEPTH); i++) {
  //FCL_CTABLE[i] = FCM_Color565(*cm++, *cm++, *cm++);
  cm++;
}' cmdcolor='500730' cmdcolor_sec='3790335' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' language='C' />
							</flowline>
							<flowline />
						</command>
						<command class_type='switch' title='Switch' textarea='36,25,36,25' cmdcolor='286184' cmdcolor_sec='3575807' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='.depth' >
							<case >
								<flowline />
							</case>
							<case exp='1' >
								<flowline >
									<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='CopyBM1Bit' >
										<argument exp='.addr' />
										<argument exp='.x' />
										<argument exp='.y' />
										<argument exp='.width' />
										<argument exp='.height' />
										<argument exp='.db' />
										<argument exp='.color' />
									</command>
								</flowline>
							</case>
							<case exp='4' >
								<flowline />
							</case>
							<case exp='8' >
								<flowline />
							</case>
							<case exp='24' >
								<flowline />
							</case>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='PrintNumber' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='n' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='x' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='y' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='str' type='T8' description='' isconst='0' isHidden='0' isinit='0' usrinit='&quot;&quot;' setinit='' >
							<array size='20' />
						</local>
						<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
							<exp exp='.str = ToString$ (.n)' />
						</command>
						<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Print' >
							<argument exp='.str' />
							<argument exp='.x' />
							<argument exp='.y' />
							<argument exp='2' />
							<argument exp='2' />
							<argument exp='3' />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='DrawLine' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='x0' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='y0' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='x1' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='y1' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='color' type='u8' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='dx' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='dy' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='err' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='e2' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='sx' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='sy' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='decision' title='Decision' cmdcolor='143324' cmdcolor_sec='3432959' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='.x0 &lt; .x1' swap='0' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.dx = .x1 - .x0' />
									<exp exp='.sx = 1' />
								</command>
							</flowline>
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.dx = .x0 - .x1' />
									<exp exp='.sx = -1' />
								</command>
							</flowline>
						</command>
						<command class_type='decision' title='Decision' cmdcolor='143324' cmdcolor_sec='3432959' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='.y0 &lt; .y1' swap='0' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.dy = .y1 - .y0' />
									<exp exp='.sy = 1' />
								</command>
							</flowline>
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.dy = .y0 - .y1' />
									<exp exp='.sy = -1' />
								</command>
							</flowline>
						</command>
						<command class_type='decision' title='Decision' cmdcolor='143324' cmdcolor_sec='3432959' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='.dx &gt; .dy' swap='0' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.err = .dx / 2' />
								</command>
							</flowline>
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.err = - .dy / 2' />
								</command>
							</flowline>
						</command>
						<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='1' exp='(.x0 == .x1) &amp;&amp; (.y0 == .y1)' >
							<flowline >
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Plot' >
									<argument exp='.x0' />
									<argument exp='.y0' />
									<argument exp='.color' />
								</command>
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.e2 = .err' />
								</command>
								<command class_type='decision' title='Decision' cmdcolor='143324' cmdcolor_sec='3432959' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='.e2 &gt; - .dx' swap='0' >
									<flowline >
										<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
											<exp exp='.err = .err - .dy' />
											<exp exp='.x0 = .x0 + .sx' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' cmdcolor='143324' cmdcolor_sec='3432959' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='.e2 &lt; .dy' swap='0' >
									<flowline >
										<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
											<exp exp='.err = .err + .dx' />
											<exp exp='.y0 = .y0 + .sy' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='FCCube' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='x' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='y' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='color' type='u8' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='x0' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='y0' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='x1' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='y1' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='i' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.i' exp='12' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.x0 = nodes[edges[.i][0]][0]' />
									<exp exp='.y0 = nodes[edges[.i][0]][1]' />
									<exp exp='' />
									<exp exp='.x1 = nodes[edges[.i][1]][0]' />
									<exp exp='.y1 = nodes[edges[.i][1]][1]' />
								</command>
								<command class_type='call' title='User Macro' cmdcolor='208' cmdcolor_sec='3289855' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' component='gLCD_ILI9341_SPI1' macro='DrawLine' >
									<argument exp='.x0 + .x' />
									<argument exp='.y0 + .y' />
									<argument exp='.x1 + .x' />
									<argument exp='.y1 + .y' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Plot' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='x' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='y' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='color' type='u8' description='Color - 0..3' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='index' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='shift' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='decision' title='Decision' cmdcolor='143324' cmdcolor_sec='3432959' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='(.x &lt; 240) &amp;&amp; (.y &lt; 320)' swap='0' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.index = .y * 15 + (.x &gt;&gt; 4)' />
									<exp exp='.shift = (.x % 16) * 2' />
									<exp exp='buf[.index] = (buf[.index] &amp; (~ (3 &lt;&lt; .shift))) | (.color &lt;&lt; .shift)' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='CubeDemo' description='Draw a rotating cube on a grid background - iter times' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='iter' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='x' type='u16' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='r' type='f32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0.00999999977648258209228515625' setinit='0.01' />
						<local name='temp' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' >
							<array size='12' />
							<array size='3' />
						</local>
						<local name='i' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='j' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='xs' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='wPos' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='frames' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='str' type='T8' description='' isconst='0' isHidden='0' isinit='0' usrinit='&quot;&quot;' setinit='' >
							<array size='20' />
						</local>
						<command class_type='loop' title='Rotate the cube' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' exp='.iter' >
							<flowline >
								<command class_type='loop' title='Copy the nodes table' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.i' exp='8' >
									<flowline >
										<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.j' exp='3' >
											<flowline >
												<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
													<exp exp='nodes[.i][.j] = cube_nodes[.i][.j]' />
												</command>
											</flowline>
										</command>
									</flowline>
								</command>
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='DrawGrid' >
									<argument exp='16' />
									<argument exp='.xs' />
									<argument exp='40' />
									<argument exp='40' />
									<argument exp='2' />
								</command>
								<command class_type='calculation' title='Shift the grid and update frames' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.xs = (.xs + 1) % 40' />
									<exp exp='.wPos = (.wPos + 1) % 256' />
									<exp exp='.frames = .frames + 1' />
									<exp exp='.str = ToString$ (.frames)' />
								</command>
								<command class_type='call' title='Print frame count' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Print' >
									<argument exp='.str' />
									<argument exp='10' />
									<argument exp='230' />
									<argument exp='1' />
									<argument exp='1' />
									<argument exp='3' />
								</command>
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='RotateCube' >
									<argument exp='.r' />
									<argument exp='3.1415926 /4.0' />
								</command>
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='DrawCube' >
									<argument exp='120' />
									<argument exp='160' />
									<argument exp='3' />
								</command>
								<command class_type='call' title='Copy buffer to display' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='BlitBuffer' />
								<command class_type='call' title='Ready for next frame' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Clear' />
								<command class_type='call' title='Clear WDT' break='1' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='FeedTheDog' />
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.x = (.x + 4) % 320' />
									<exp exp='.r = .r + 0.05' />
								</command>
								<command class_type='decision' title='Decision' cmdcolor='143324' cmdcolor_sec='3432959' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='.r &gt; 3.14159 / 2' swap='0' >
									<flowline >
										<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
											<exp exp='.r = 0.0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='FeedTheDog' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<command class_type='native' title='C Code' ccode='// feed dog 0
  TIMERG0.wdt_wprotect=TIMG_WDT_WKEY_VALUE; // write enable
  TIMERG0.wdt_feed=1;                       // feed dog
  TIMERG0.wdt_wprotect=0;                   // write protect
  // feed dog 1
  TIMERG1.wdt_wprotect=TIMG_WDT_WKEY_VALUE; // write enable
  TIMERG1.wdt_feed=1;                       // feed dog
  TIMERG1.wdt_wprotect=0;                   // write protect' cmdcolor='500730' cmdcolor_sec='3790335' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' language='C' />
					</flowline>
				</macro>
				<macro >
					<flowline name='Snowflakes' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='iter' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='i' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='stars' type='s16' description='Stars at x, y and color (1..3)' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' >
							<array size='30' />
							<array size='4' />
						</local>
						<local name='star' type='u32' description='Address of star bmp' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='hc' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='native' title='C Code' ccode='FCL_STAR = (MX_UINT32)&amp;snowflake;
FCL_HC = (MX_UINT32)hc;' cmdcolor='500730' cmdcolor_sec='3790335' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' language='C' />
						<command class_type='loop' title='Generate some random snowflakes' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.i' exp='30' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.stars[.i][0] = 240 + (Random () % 50)' />
									<exp exp='.stars[.i][1] = Random () % 320' />
									<exp exp='.stars[.i][2] = Random () % 2 + 1' />
									<exp exp='.stars[.i][3] = Random () % 3 + 1' />
								</command>
							</flowline>
						</command>
						<command class_type='loop' title='Happy Christmas' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' exp='.iter' >
							<flowline >
								<command class_type='loop' title='Draw each snowflake' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.i' exp='30' >
									<flowline >
										<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='CopyBM' >
											<argument exp='.star' />
											<argument exp='.stars[.i][0]' />
											<argument exp='.stars[.i][1]' />
											<argument exp='0' />
											<argument exp='1' />
										</command>
										<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
											<exp exp='.stars[.i][0] = .stars[.i][0] - .stars[.i][3]' />
										</command>
										<command class_type='decision' title='Decision' cmdcolor='143324' cmdcolor_sec='3432959' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='.stars[.i][0] &lt; -40' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
													<exp exp='.stars[.i][0] = 240 + (Random () % 50)' />
													<exp exp='.stars[.i][1] = Random () % 320' />
													<exp exp='.stars[.i][2] = Random () % 2 + 1' />
													<exp exp='.stars[.i][3] = Random () % 3 + 1' />
												</command>
											</flowline>
											<flowline />
										</command>
									</flowline>
								</command>
								<command class_type='call' title='Draw HC message' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='CopyBM' >
									<argument exp='.hc' />
									<argument exp='80' />
									<argument exp='40' />
									<argument exp='0' />
									<argument exp='3' />
								</command>
								<command class_type='call' title='Send data to display' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='BlitBuffer' />
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Clear' />
								<command class_type='call' title='User Macro' break='1' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='FeedTheDog' />
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='DrawGrid' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='x' type='u32' description='Fill Display with a grid, starting at x, y and line space w, h' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='y' type='u32' description='Fill Display with a grid, starting at x, y and line space w, h' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='w' type='u32' description='Fill Display with a grid, starting at x, y and line space w, h' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='h' type='u32' description='Fill Display with a grid, starting at x, y and line space w, h' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='color' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='0' exp='.y &lt; 320' >
							<flowline >
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='DrawLine' >
									<argument exp='0' />
									<argument exp='.y' />
									<argument exp='239' />
									<argument exp='.y' />
									<argument exp='.color' />
								</command>
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.y = .y + .h' />
								</command>
							</flowline>
						</command>
						<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='0' exp='.x &lt; 224' >
							<flowline >
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='DrawLine' >
									<argument exp='.x' />
									<argument exp='0' />
									<argument exp='.x' />
									<argument exp='319' />
									<argument exp='.color' />
								</command>
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.x = .x + .w' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='RotateCube' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='angleX' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<param name='angleY' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<local name='sinX' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<local name='cosX' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<local name='sinY' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<local name='cosY' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<local name='x' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<local name='y' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<local name='z' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<local name='i' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
							<exp exp='.sinX = sin (.angleX)' />
							<exp exp='.cosX = cos (.angleX)' />
							<exp exp='.sinY = sin (.angleY)' />
							<exp exp='.cosY = cos (.angleY)' />
						</command>
						<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.i' exp='8' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.x = nodes[.i][0]' />
									<exp exp='.y = nodes[.i][1]' />
									<exp exp='.z = nodes[.i][2]' />
									<exp exp='' />
									<exp exp='nodes[.i][0] = .x * .cosX - .z * .sinX' />
									<exp exp='.z = .z * .cosX + .x * .sinX' />
									<exp exp='// nodes[.i][2] = .z' />
									<exp exp='' />
									<exp exp='nodes[.i][1] = .y * .cosY - .z * .sinY' />
									<exp exp='nodes[.i][2] = .z * .cosY + .y * .sinY' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Print' description='Print a string' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='s' type='T8*' description='The string to display' isconst='0' isHidden='0' isinit='0' usrinit='&quot;&quot;' setinit='' >
							<array size='20' />
						</param>
						<param name='x' type='u16' description='x address to display at' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='y' type='u16' description='y address to display at' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='xscale' type='u8' description='Multipliers for x and y' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='yscale' type='u8' description='Multipliers for x and y' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='color' type='u8' description='0..3' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='i' type='u8' description='Loop counters' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='j' type='u8' description='Loop counters' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='mask' type='u8' description='Mask and pattern to write to buffer' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='c' type='u16' description='Current character' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='addr' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='dev' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='caddr' type='s16' description='Address of current character data' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='d' type='u8' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='t' type='u8' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='len' type='u8' description='Length of the string' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='xpos' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='ypos' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='cwidth' type='u8' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='xp' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='yp' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
							<exp exp='.len = Length$ (.s)' />
							<exp exp='.cwidth = 8 * .xscale' />
							<exp exp='.xpos = .x' />
						</command>
						<command class_type='loop' title='For each character in string' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.i' exp='.len' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.c = .s[.i]' />
									<exp exp='.caddr = (.c - 32) * 8 + 7' />
									<exp exp='.ypos = .y' />
								</command>
								<command class_type='loop' title='for each row of character' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.t' exp='8' >
									<flowline >
										<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
											<exp exp='.d = CharSet :: GetInt (.caddr - .t)' />
											<exp exp='.mask = 0x1' />
											<exp exp='' />
										</command>
										<command class_type='loop' title='For each col of character' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.j' exp='8' >
											<flowline >
												<command class_type='decision' title='Decision' cmdcolor='143324' cmdcolor_sec='3432959' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='.d &amp; .mask' swap='0' >
													<flowline >
														<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.xp' exp='.xscale' >
															<flowline >
																<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.yp' exp='.yscale' >
																	<flowline >
																		<command class_type='call' title='Call Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Plot' >
																			<argument exp='.ypos + .yp' />
																			<argument exp='.xpos + .xp' />
																			<argument exp='.color' />
																		</command>
																	</flowline>
																</command>
															</flowline>
														</command>
													</flowline>
													<flowline />
												</command>
												<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
													<exp exp='.mask = .mask &lt;&lt; 1' />
													<exp exp='.xpos = .xpos + .xscale' />
												</command>
											</flowline>
										</command>
										<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
											<exp exp='.ypos = .ypos + .yscale' />
											<exp exp='.xpos = .xpos - .cwidth' />
										</command>
									</flowline>
								</command>
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.xpos = .xpos + .cwidth' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='CopyBM1Bit' description='Copy a 1 bit depth (2 color) bitmap to display buffer.
Background is set to colour 0 if db is true.  Foreground to colour' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='data' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='x' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='y' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='width' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='height' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='db' type='b1' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='colour' type='u8' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='h' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='xPos' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='mask' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='native' title='C Code' ccode='MX_UINT8 *p = FCL_DATA;
MX_UINT32 n;' cmdcolor='500730' cmdcolor_sec='3790335' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' language='C' />
						<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.h' exp='.height' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.xPos = 0' />
									<exp exp='.mask = 0' />
								</command>
								<command class_type='native' title='C Code' ccode='n = 0;' cmdcolor='500730' cmdcolor_sec='3790335' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' language='C' />
								<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.xPos' exp='.width' >
									<flowline >
										<command class_type='decision' title='Load more data if needed' cmdcolor='143324' cmdcolor_sec='3432959' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='.mask == 0' swap='0' >
											<flowline >
												<command class_type='native' title='Get next byte  of data' ccode='FCL_DATA = *p++;
n++;' cmdcolor='500730' cmdcolor_sec='3790335' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' language='C' />
												<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
													<exp exp='.mask = 0x80' />
												</command>
											</flowline>
											<flowline />
										</command>
										<command class_type='decision' title='Bit - set - foreground colour' cmdcolor='143324' cmdcolor_sec='3432959' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='.data &amp; .mask' swap='0' >
											<flowline >
												<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Plot' >
													<argument exp='.width - .xPos +.x' />
													<argument exp='.y + .h' />
													<argument exp='.colour' />
												</command>
											</flowline>
											<flowline >
												<command class_type='decision' title='Only draw background if db is true' cmdcolor='143324' cmdcolor_sec='3432959' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' exp='.db' swap='0' >
													<flowline >
														<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Plot' >
															<argument exp='.width - .xPos + .x' />
															<argument exp='.y + .h' />
															<argument exp='0' />
														</command>
													</flowline>
													<flowline />
												</command>
											</flowline>
										</command>
										<command class_type='calculation' title='Shift mask for next bit' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
											<exp exp='.mask = .mask &gt;&gt; 1' />
										</command>
									</flowline>
								</command>
								<command class_type='native' title='Skip padding bytes' ccode='while(n++ &amp; 0b11) p++;' cmdcolor='500730' cmdcolor_sec='3790335' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' language='C' />
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='BlitBuffer' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<local name='spi_buf' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' >
							<array size='240' />
						</local>
						<local name='y' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='x' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='data' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='pos' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='i' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<command class_type='call' title='Component Macro' break='1' cmdcolor='208' cmdcolor_sec='3289855' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' component='gLCD_ILI9341_SPI1' macro='Window' >
							<argument exp='0' />
							<argument exp='0' />
							<argument exp='239' />
							<argument exp='319' />
						</command>
						<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.y' exp='320' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.pos = 0' />
								</command>
								<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.x' exp='15' >
									<flowline >
										<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
											<exp exp='.data = buf[.i]' />
											<exp exp='.i = .i + 1' />
										</command>
										<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' exp='16' >
											<flowline >
												<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
													<exp exp='.spi_buf[.pos] = colors[.data &amp; 3]' />
													<exp exp='' />
													<exp exp='.data = .data &gt;&gt; 2' />
													<exp exp='.pos = .pos + 1' />
												</command>
											</flowline>
										</command>
									</flowline>
								</command>
								<command class_type='native' title='Send a line of data to display' ccode='SET_PORT_PIN(A, 15, 0);  // Pull CS Low
FC_CAL_SPI_Transaction_1((MX_UINT8*)FCL_SPI_BUF, 480, 480);
SET_PORT_PIN(A, 15, 1);' cmdcolor='500730' cmdcolor_sec='3790335' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' language='C' />
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='FCGrid' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='x' type='u32' description='Fill Display with a grid, starting at x, y and line space w, h' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='y' type='u32' description='Fill Display with a grid, starting at x, y and line space w, h' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='w' type='u32' description='Fill Display with a grid, starting at x, y and line space w, h' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='h' type='u32' description='Fill Display with a grid, starting at x, y and line space w, h' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='color' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='0' exp='.y &lt; 320' >
							<flowline >
								<command class_type='call' title='User Macro' cmdcolor='208' cmdcolor_sec='3289855' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' component='gLCD_ILI9341_SPI1' macro='DrawLine' >
									<argument exp='0' />
									<argument exp='.y' />
									<argument exp='239' />
									<argument exp='.y' />
								</command>
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.y = .y + .h' />
								</command>
							</flowline>
						</command>
						<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='0' exp='.x &lt; 224' >
							<flowline >
								<command class_type='call' title='User Macro' cmdcolor='208' cmdcolor_sec='3289855' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' component='gLCD_ILI9341_SPI1' macro='DrawLine' >
									<argument exp='.x' />
									<argument exp='0' />
									<argument exp='.x' />
									<argument exp='319' />
								</command>
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.x = .x + .w' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Hypnosis' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='iter' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='temp' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' >
							<array size='12' />
							<array size='3' />
						</local>
						<local name='i' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='j' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='spiral' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' >
							<array size='11' />
						</local>
						<local name='cSpiral' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<local name='stars' type='s16' description='Stars at x, y and color (1..3)' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' >
							<array size='30' />
							<array size='4' />
						</local>
						<local name='star' type='u32' description='Address of star bmp' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='hc' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='fc' type='u32' description='Bitmaps for &apos;flowcode&apos; letters' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' >
							<array size='8' />
						</local>
						<command class_type='native' title='Get addresses of bitmaps' ccode='FCL_SPIRAL[0] = (MX_UINT32)&amp;spiral0;
FCL_SPIRAL[1] = (MX_UINT32)&amp;spiral1;
FCL_SPIRAL[2] = (MX_UINT32)&amp;spiral2;
FCL_SPIRAL[3] = (MX_UINT32)&amp;spiral3;
FCL_SPIRAL[4] = (MX_UINT32)&amp;spiral4;
FCL_SPIRAL[5] = (MX_UINT32)&amp;spiral5;
FCL_SPIRAL[6] = (MX_UINT32)&amp;spiral6;
FCL_SPIRAL[7] = (MX_UINT32)&amp;spiral7;
FCL_SPIRAL[8] = (MX_UINT32)&amp;spiral8;
FCL_SPIRAL[9] = (MX_UINT32)&amp;spiral9;
FCL_SPIRAL[10] = (MX_UINT32)&amp;spiral10;' cmdcolor='500730' cmdcolor_sec='3790335' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' language='C' />
						<command class_type='loop' title='Draw our hypnotic spiral' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' exp='.iter' >
							<flowline >
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='CopyBM' >
									<argument exp='.spiral[.cSpiral]' />
									<argument exp='0' />
									<argument exp='0' />
									<argument exp='false' />
									<argument exp='2' />
								</command>
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.cSpiral = (.cSpiral + 1) % 10' />
								</command>
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='BlitBuffer' />
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Clear' />
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='FeedTheDog' />
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Scale' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='xs' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<param name='ys' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<param name='zs' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<local name='i' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.i' exp='8' >
							<flowline >
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='cube_nodes[.i][0] = cube_nodes[.i][0] * .xs' />
									<exp exp='cube_nodes[.i][1] = cube_nodes[.i][1] * .ys' />
									<exp exp='cube_nodes[.i][2] = cube_nodes[.i][2] * .zs' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='SineText' description='Draw some bitmaps in a sinewwave ' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='bitmaps' type='u32' description='Addresses of the bitmaps to draw' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' >
							<array size='7' />
						</param>
						<param name='n' type='u32' description='number of bitmaps to draw' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='iters' type='u32' description='Number of iterations' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='x' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='y' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='i' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='rads' type='f32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0.0' setinit='0.0' />
						<local name='start' type='f32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0.0' setinit='0.0' />
						<local name='xs' type='u32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
						<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' exp='.iters' >
							<flowline >
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='DrawGrid' >
									<argument exp='.xs' />
									<argument exp='.xs' />
									<argument exp='40' />
									<argument exp='40' />
									<argument exp='2' />
								</command>
								<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='.y = 4' />
									<exp exp='.rads = .start' />
									<exp exp='.start = .start + 0.2' />
									<exp exp='.xs = (.xs + 1) % 40' />
								</command>
								<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='2' forvar='.i' exp='.n' >
									<flowline >
										<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
											<exp exp='.x = sin (.rads) * 100.0 + 100' />
										</command>
										<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='CopyBM' >
											<argument exp='.bitmaps[.i]' />
											<argument exp='.x' />
											<argument exp='.y' />
											<argument exp='false' />
											<argument exp='2' />
										</command>
										<command class_type='calculation' title='Calculation' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
											<exp exp='.y = .y + 40' />
											<exp exp='.rads = .rads + 3.141592 / 6.0' />
										</command>
									</flowline>
								</command>
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Print' >
									<argument exp='&quot;ESP32 - Powered By:&quot;' />
									<argument exp='10' />
									<argument exp='220' />
									<argument exp='2' />
									<argument exp='2' />
									<argument exp='3' />
								</command>
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='BlitBuffer' />
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Clear' />
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='FeedTheDog' />
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Main' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<local name='fc' type='u32' description='Bitmaps for &apos;flowcode&apos; letters' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' >
							<array size='8' />
						</local>
						<command class_type='call' title='Component Macro' cmdcolor='208' cmdcolor_sec='3289855' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' component='gLCD_ILI9341_SPI1' macro='Initialise' />
						<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Clear' />
						<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Scale' >
							<argument exp='70' />
							<argument exp='70' />
							<argument exp='70' />
						</command>
						<command class_type='native' title='C Code' ccode='FCL_FC[0] = (MX_UINT32)&amp;f;
FCL_FC[1] = (MX_UINT32)&amp;l;
FCL_FC[2] = (MX_UINT32)&amp;o;
FCL_FC[3] = (MX_UINT32)&amp;w;
FCL_FC[4] = (MX_UINT32)&amp;c;
FCL_FC[5] = (MX_UINT32)&amp;o;
FCL_FC[6] = (MX_UINT32)&amp;d;
FCL_FC[7] = (MX_UINT32)&amp;e;' cmdcolor='500730' cmdcolor_sec='3790335' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' language='C' />
						<command class_type='loop' title='Loop' cmdcolor='572159' cmdcolor_sec='3861759' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' type='0' exp='1' >
							<flowline >
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Hypnosis' >
									<argument exp='200' />
								</command>
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='CubeDemo' >
									<argument exp='200' />
								</command>
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='Snowflakes' >
									<argument exp='200' />
								</command>
								<command class_type='call' title='User Macro' cmdcolor='524957' cmdcolor_sec='3814607' cmdcolor_txt='16777215' cmdgradient='1' cmdopacity='1' macro='SineText' >
									<argument exp='.fc' />
									<argument exp='8' />
									<argument exp='200' />
								</command>
								<command class_type='calculation' title='New colormap' cmdcolor='429300' cmdcolor_sec='3718911' cmdcolor_txt='0' cmdgradient='1' cmdopacity='1' >
									<exp exp='colors[1] = Random ()' />
									<exp exp='colors[2] = Random ()' />
									<exp exp='' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
			</macros>
			<component class_type='ref' guid='7bd84555-ae51-40cc-8e1a-a7bcba661e52' vmin='0' vmaj='2' codename='gLCD_ILI9341_SPI1' x='-30' y='10' z='3.155' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='0' comp2dType='0' >
				<resources />
				<properties />
				<values >
					<value target='pixel_width' data='240' />
					<value target='pixel_height' data='320' />
					<value target='FlipX' data='1' />
					<value target='FlipY' data='0' />
					<value target='monochrome' data='0' />
					<value target='foreground_colour' data='16777215' />
					<value target='background_colour' data='8388608' />
					<value target='InvertColour' data='0' />
					<value target='SwapRB' data='0' />
					<value target='BGCOL' data='16' />
					<value target='FGCOL' data='65535' />
					<value target='colour_bit_depth' data='16' />
					<value target='red_bit_depth' data='5' />
					<value target='green_bit_depth' data='6' />
					<value target='blue_bit_depth' data='5' />
					<value target='cal_spi1::CHANNEL' data='001' />
					<value target='cal_spi1::PR_SCALE' data='300' />
					<value target='cal_spi1::MOSI' data='$PORTA.26' />
					<value target='cal_spi1::MOSIPins' data='007' />
					<value target='cal_spi1::MISO' data='$PORTA.25' />
					<value target='cal_spi1::MISOPins' data='006' />
					<value target='cal_spi1::CLK' data='$PORTA.27' />
					<value target='cal_spi1::CLKPins' data='008' />
					<value target='ToggleCS' data='1' />
					<value target='chip_sel_pin' data='$PORTA.15' />
					<value target='dc_pin' data='$PORTA.12' />
					<value target='reset_pin' data='$PORTA.14' />
					<value target='led_pin' data='$PORTA.2' />
					<value target='UseBacklight' data='1' />
					<value target='Base_GLCD::FontCount' data='001' />
					<value target='Base_GLCD::gLCD_Font1::Font' data='000' />
					<value target='Base_GLCD::gLCD_Font1::FontSpace' data='001' />
					<value target='Base_GLCD::gLCD_Font1::SpaceWidth' data='004' />
					<value target='Base_GLCD::gLCD_Font2::Font' data='005' />
					<value target='Base_GLCD::gLCD_Font2::FontSpace' data='001' />
					<value target='Base_GLCD::gLCD_Font2::SpaceWidth' data='004' />
					<value target='Base_GLCD::gLCD_Font3::Font' data='002' />
					<value target='Base_GLCD::gLCD_Font3::FontSpace' data='001' />
					<value target='Base_GLCD::gLCD_Font3::SpaceWidth' data='004' />
					<value target='Base_GLCD::gLCD_Font4::Font' data='015' />
					<value target='Base_GLCD::gLCD_Font4::FontSpace' data='001' />
					<value target='Base_GLCD::gLCD_Font4::SpaceWidth' data='004' />
					<value target='DisplayMethod' data='000' />
					<value target='SimComms' data='0' />
					<value target='cal_spi1::ConsoleData' data='1' />
					<value target='cal_spi1::ScopeTraces' data='1' />
					<value target='cal_spi1::Injector' data='000' />
					<value target='cal_spi1::InjectorCS' data='' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
			<component class_type='ref' guid='dfb4d07a-3d70-45d5-83ef-07e3c95d86ab' vmin='7' vmaj='1' codename='CharSet' x='0' y='0' z='0' xsz='25' ysz='25' zsz='25' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='0' comp2dType='0' >
				<resources />
				<properties />
				<values >
					<value target='StorageType' data='000' />
					<value target='Sign' data='000' />
					<value target='intfixed' data='0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x18,0x3C,0x3C,0x18,0x18,0x00,0x18,0x00,
0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,
0x36,0x36,0x7F,0x36,0x7F,0x36,0x36,0x00,
0x0C,0x3E,0x03,0x1E,0x30,0x1F,0x0C,0x00,
0x00,0x63,0x33,0x18,0x0C,0x66,0x63,0x00,
0x1C,0x36,0x1C,0x6E,0x3B,0x33,0x6E,0x00,
0x06,0x06,0x03,0x00,0x00,0x00,0x00,0x00,
0x18,0x0C,0x06,0x06,0x06,0x0C,0x18,0x00,
0x06,0x0C,0x18,0x18,0x18,0x0C,0x06,0x00,
0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00,
0x00,0x0C,0x0C,0x3F,0x0C,0x0C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x06,
0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,
0x60,0x30,0x18,0x0C,0x06,0x03,0x01,0x00,
0x3E,0x63,0x73,0x7B,0x6F,0x67,0x3E,0x00,
0x0C,0x0E,0x0C,0x0C,0x0C,0x0C,0x3F,0x00,
0x1E,0x33,0x30,0x1C,0x06,0x33,0x3F,0x00,
0x1E,0x33,0x30,0x1C,0x30,0x33,0x1E,0x00,
0x38,0x3C,0x36,0x33,0x7F,0x30,0x78,0x00,
0x3F,0x03,0x1F,0x30,0x30,0x33,0x1E,0x00,
0x1C,0x06,0x03,0x1F,0x33,0x33,0x1E,0x00,
0x3F,0x33,0x30,0x18,0x0C,0x0C,0x0C,0x00,
0x1E,0x33,0x33,0x1E,0x33,0x33,0x1E,0x00,
0x1E,0x33,0x33,0x3E,0x30,0x18,0x0E,0x00,
0x00,0x0C,0x0C,0x00,0x00,0x0C,0x0C,0x00,
0x00,0x0C,0x0C,0x00,0x00,0x0C,0x0C,0x06,
0x18,0x0C,0x06,0x03,0x06,0x0C,0x18,0x00,
0x00,0x00,0x3F,0x00,0x00,0x3F,0x00,0x00,
0x06,0x0C,0x18,0x30,0x18,0x0C,0x06,0x00,
0x1E,0x33,0x30,0x18,0x0C,0x00,0x0C,0x00,
0x3E,0x63,0x7B,0x7B,0x7B,0x03,0x1E,0x00,
0x0C,0x1E,0x33,0x33,0x3F,0x33,0x33,0x00,
0x3F,0x66,0x66,0x3E,0x66,0x66,0x3F,0x00,
0x3C,0x66,0x03,0x03,0x03,0x66,0x3C,0x00,
0x1F,0x36,0x66,0x66,0x66,0x36,0x1F,0x00,
0x7F,0x46,0x16,0x1E,0x16,0x46,0x7F,0x00,
0x7F,0x46,0x16,0x1E,0x16,0x06,0x0F,0x00,
0x3C,0x66,0x03,0x03,0x73,0x66,0x7C,0x00,
0x33,0x33,0x33,0x3F,0x33,0x33,0x33,0x00,
0x1E,0x0C,0x0C,0x0C,0x0C,0x0C,0x1E,0x00,
0x78,0x30,0x30,0x30,0x33,0x33,0x1E,0x00,
0x67,0x66,0x36,0x1E,0x36,0x66,0x67,0x00,
0x0F,0x06,0x06,0x06,0x46,0x66,0x7F,0x00,
0x63,0x77,0x7F,0x7F,0x6B,0x63,0x63,0x00,
0x63,0x67,0x6F,0x7B,0x73,0x63,0x63,0x00,
0x1C,0x36,0x63,0x63,0x63,0x36,0x1C,0x00,
0x3F,0x66,0x66,0x3E,0x06,0x06,0x0F,0x00,
0x1E,0x33,0x33,0x33,0x3B,0x1E,0x38,0x00,
0x3F,0x66,0x66,0x3E,0x36,0x66,0x67,0x00,
0x1E,0x33,0x07,0x0E,0x38,0x33,0x1E,0x00,
0x3F,0x2D,0x0C,0x0C,0x0C,0x0C,0x1E,0x00,
0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x00,
0x33,0x33,0x33,0x33,0x33,0x1E,0x0C,0x00,
0x63,0x63,0x63,0x6B,0x7F,0x77,0x63,0x00,
0x63,0x63,0x36,0x1C,0x1C,0x36,0x63,0x00,
0x33,0x33,0x33,0x1E,0x0C,0x0C,0x1E,0x00,
0x7F,0x63,0x31,0x18,0x4C,0x66,0x7F,0x00,
0x1E,0x06,0x06,0x06,0x06,0x06,0x1E,0x00,
0x03,0x06,0x0C,0x18,0x30,0x60,0x40,0x00,
0x1E,0x18,0x18,0x18,0x18,0x18,0x1E,0x00,
0x08,0x1C,0x36,0x63,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0x0C,0x0C,0x18,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x1E,0x30,0x3E,0x33,0x6E,0x00,
0x07,0x06,0x06,0x3E,0x66,0x66,0x3B,0x00,
0x00,0x00,0x1E,0x33,0x03,0x33,0x1E,0x00,
0x38,0x30,0x30,0x3e,0x33,0x33,0x6E,0x00,
0x00,0x00,0x1E,0x33,0x3f,0x03,0x1E,0x00,
0x1C,0x36,0x06,0x0f,0x06,0x06,0x0F,0x00,
0x00,0x00,0x6E,0x33,0x33,0x3E,0x30,0x1F,
0x07,0x06,0x36,0x6E,0x66,0x66,0x67,0x00,
0x0C,0x00,0x0E,0x0C,0x0C,0x0C,0x1E,0x00,
0x30,0x00,0x30,0x30,0x30,0x33,0x33,0x1E,
0x07,0x06,0x66,0x36,0x1E,0x36,0x67,0x00,
0x0E,0x0C,0x0C,0x0C,0x0C,0x0C,0x1E,0x00,
0x00,0x00,0x33,0x7F,0x7F,0x6B,0x63,0x00,
0x00,0x00,0x1F,0x33,0x33,0x33,0x33,0x00,
0x00,0x00,0x1E,0x33,0x33,0x33,0x1E,0x00,
0x00,0x00,0x3B,0x66,0x66,0x3E,0x06,0x0F,
0x00,0x00,0x6E,0x33,0x33,0x3E,0x30,0x78,
0x00,0x00,0x3B,0x6E,0x66,0x06,0x0F,0x00,
0x00,0x00,0x3E,0x03,0x1E,0x30,0x1F,0x00,
0x08,0x0C,0x3E,0x0C,0x0C,0x2C,0x18,0x00,
0x00,0x00,0x33,0x33,0x33,0x33,0x6E,0x00,
0x00,0x00,0x33,0x33,0x33,0x1E,0x0C,0x00,
0x00,0x00,0x63,0x6B,0x7F,0x7F,0x36,0x00,
0x00,0x00,0x63,0x36,0x1C,0x36,0x63,0x00,
0x00,0x00,0x33,0x33,0x33,0x3E,0x30,0x1F,
0x00,0x00,0x3F,0x19,0x0C,0x26,0x3F,0x00,
0x38,0x0C,0x0C,0x07,0x0C,0x0C,0x38,0x00,
0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x00,
0x07,0x0C,0x0C,0x38,0x0C,0x0C,0x07,0x00,
0x6E,0x3B,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
' />
					<value target='floatfixed' data='' />
					<value target='NumVals' data='768' />
					<value target='fixedexp' data='0' />
					<value target='EmbedIntoC' data='1' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
		</component>
	</components>
	<scadaresourcelookup />
	<keymap />
	<panel2d shadows='0' lighting='2' brightness='0' >
		<background rgb='7292207' img='' style='0' />
		<camera xe='-62.0401' ye='-2.12313' ze='72.3774' xt='-62.0401' yt='-2.12313' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
		<viewport dx='630' dy='1747' zoom='1053.23' fix_topleft='0' />
		<page x='1000' y='1000' show='0' rgb='16777215' />
	</panel2d>
	<panel3d shadows='0' lighting='2' brightness='0' perspective='1' >
		<background rgb='8409120' img='' style='0' />
		<table rgb='7360576' img='' style='0' size='0' />
		<camera xe='0' ye='0' ze='781.66' xt='0' yt='0' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
		<camerakey0 xe='0' ye='0' ze='300' xt='0' yt='0' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
		<camerakey1 xe='-3.67394e-14' ye='0' ze='-300' xt='0' yt='0' zt='0' xquat='0' yquat='1' zquat='0' wquat='6.12323e-17' />
		<camerakey2 xe='0' ye='-300' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.707107' yquat='0' zquat='0' wquat='0.707107' />
		<camerakey3 xe='-3.67394e-14' ye='300' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-4.32978e-17' yquat='0.707107' zquat='0.707107' wquat='4.32978e-17' />
		<camerakey4 xe='-300' ye='-6.66134e-14' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.5' yquat='0.5' zquat='0.5' wquat='0.5' />
		<camerakey5 xe='300' ye='-6.66134e-14' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.5' yquat='-0.5' zquat='-0.5' wquat='0.5' />
		<camerakey6 xe='-173.205' ye='-173.205' ze='173.205' xt='0' yt='0' zt='0' xquat='-0.424708' yquat='0.17592' zquat='0.339851' wquat='0.820473' />
	</panel3d>
	<layout >
		<view type='0' name='BlitBuffer' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='FeedTheDog' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='DrawLine' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Plot' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Clear' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='RotateCube' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='DrawCube' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Scale' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='DrawGrid' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Print' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='FCCube' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='FCGrid' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='CopyBM' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Main' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='CopyBM1Bit' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='SineText' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='CubeDemo' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Hypnosis' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Snowflakes' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAiAAAAXwgAADoHAAA' zoom='100' scrollx='0' scrolly='0' flags='0' />
	</layout>
</document>
</root>
