# Assembling z80 source from the shell

In its current state, Collapse OS has all you need to assemble z80 source
from within the shell. What you need is:

* A mounted filesystem with `zasm` on it.
* A block device to read from (can be a file from mounted CFS)
* A block device to write to (can also be a file).

The emulated shell is already set up with all you need. If you want to run that
on a real machine, you'll have to make sure to provide these requirements.

The emulated shell has a `hello.asm` file in its mounted filesystem that is
ready to compile. It has two file handles 0 and 1, mapped to blk IDs 1 and 2.
We will open our source file in handle 0 and our dest file in handle 1. Then,
with the power of the `fs` module's autoloader, we'll load our newly compiled
file and execute it!

   Collapse OS
   > fnew 1 dest           ; create destination file
   > fopen 0 hello.asm     ; open source file in handle 0
   > fopen 1 dest          ; open dest binary in handle 1
   > zasm 1 2              ; assemble source file into binary file
   > dest                  ; call newly compiled file
   Assembled from the shell
   >                       ; Awesome!