# FV-1 Project template

This is a project template with which you can start coding for the fv-1 chip right away, in assembler.
The toolchain.sh script provides a complete open source toolchain. 
There is a Makefile based build using this toolchain, but the toolchain functions can also be used anywhere of course.
For mac and linux.

## Build Dependencies

### The assembler - asfv1

build from source: https://github.com/ndf-zz/asfv1

or

`pip install asfv1` 

### The flash-tool - ch341eeprom

https://github.com/command-tab/ch341eeprom

run `make` it should just work, terribly simple program.

### Hex2bin Converter - srecord (optional)
This is not required when using the asfv1 assembler as it already produces bin files.

`port install srecord`


## Build

To build switch into dir `src` to execute the makefile targets   

### Makefile Targets

`make flash` - Build and upload all the 8 programs   
`make all` - Only compile all the 8 programs   
`make erase` - erases the rom chip  
`make clean`   


## Toolchain Setup

You dont need this for the makefile build, only if you want to use the toolchain directly from the shell.

`source toolchain.sh` to get the commands ()

* `fvcompile`
* `fvhex2bin`
* `fvflash`
* `fverase`

## Test

If everything worked well, you should have a delay effect on program nr 0.


## Resources

### Chip
Datasheet - http://spinsemi.com/Products/datasheets/spn1001/FV-1.pdf
Instruction Set - http://www.spinsemi.com/Products/datasheets/spn1001-dev/SPINAsmUserManual.pdf
AN0001 - http://www.spinsemi.com/Products/appnotes/spn1001/AN-0001.pdf
AN002 - http://www.spinsemi.com/Products/appnotes/spn1001/AN-0002.pdf

### Assembler
github - https://github.com/ndf-zz/asfv1

### SpinCAD Designer (visual programming)
SpinCAD designer - https://github.com/HolyCityAudio/SpinCAD-Designer

### ROM flash tool
github - https://github.com/command-tab/ch341eeprom

# Programs 
Programs collections - https://mstratman.github.io/fv1-programs
Test programs - https://github.com/ndf-zz/fv1testing