<?php
	include 'ars2head.php';
?>
	<div class="justify">
		<div class="bold">Software</div>
		<br/>
		The ARS2 software is written for a PIC18F2455 using the MCC18-compiler (essentialy ANSI C), 
		it's based upon the USB/CDC example code supplied by Microchip. 
		For a introduction, please see the <a href="techoverview.php">function overview</a>.<br/>
		<br/>
		<div class="underline">My additions</div> to Microchip's code are licensed under the GNU General Public License.
		The files that this comprises can be found in the .rar file under the "user" directory and 
		are listed below together with their functionallity.<br/>
		<ul>
			<li>animate.h - binary animation data for the HD44780</li>
			<li>hd44780.h - routines for serial control of the hd44780 chipset</li>
			<li>helpers.h - general helper routines</li>
			<li>keyscan.h - routines for keyboard scanning and debouncing</li>
			<li>menusystem.h - routines for a LCD-based menusystem</li>
			<li>midimonitor.h - routines for a 16-history midimonitor</li>
			<li>sh.h - routines for controlling the Quad S&H</li>
			<li>tuner.h - routines for the tuning system (not perfect)</li>
			<li>user.c - main loop, initialization, arpeggios and note handling</li>
		</ul>
		I have gone to great lengths of commenting the sourcecode so that it will be easy for anyone to use/modify the code.
		<br/>
		<br/>
		The main reason to GPL this code lies in the menusystem which came out very flexible and adaptive.
		Multiple levels, cache, helpers for common functions, easy 2-button 1-pot control and flexible function-pointer
		execution makes this system very useful for small-LCD control of parameters and monitoring. 
		Since the menusystem is a pure software entity, there should be no problems of adapting this to other microprocessors.
		<br/>
		Thanks to Thorsten Klose for getting me <a href="../modsynth/usb2cv.php">started</a> with PIC-USB.<br/>
		<br/>
		<a href="software/ars2_firmware_20060403.rar">ARS2 firmware 20060403 (.RAR format)</a>
	</div>
<?php
	include $myroot . 'footer.html';
?>
