## Register usage

`cpik` uses 6 16 bit pseudo-registers named `R0`,`R1`,`R2`,`R3`,`R4` and `R5`. These registers are located in page 0, and are efficiently accessed via Access Bank (a=0).

- `W` is used as a general purpose scratch register
- `R0` is the 16 bit equivalent of W,
- `R1` to `R5` are used by the Run-time library (RTL),
- `FSR0` is the software stack pointer,
- `FSR1` is a general purpose address register,
- `FSR2` is used for fast memory moves together with `FSR1`,
- `PRODL` and `PRODH` are used for arithmetics and temporaries

Of course, registers for indirect adressing, such as `INDFx`, `PREINCx`, `POSTDECx`, and `PLUSWx` are intensively used and also accessed in Access Bank for efficiency reasons.