# Champ: Introduction and key bindings

Gilbert François Duivesteijn

< Back to main page

On these Champ pages, I try to explain how to use Champ for MSX(1) to write, store and deploy programs written in assembly or hybrid basic-assembly. Back in the days, around 1986 and beyond, I liked Champ a lot. It was easy to use, because it was an all-in-one editor, assembler, disassembler, monitor/debugger. On top of it, one could easily escape to basic to test the compiled program, which is still in memory and go back to Champ to do further programming. But the most killer feature was that you can step through code line by line, inspecting registers and memory values.

Fun fact: Champ has been created by the legendary Dennis Ritchie, the creator of the C programming language. By using this program, you work with legacy of computer history.

The aim of this page is to show how you can develop and debug on a real MSX with only a cassette player/recorder as storage device, like it was done in the 80's with an MSX1 computer. If you don't have Champ, you can get it here. The manual is here. Now insert your cassette in the datarecorder, type bload"cas:",r and let's have some fun!

## Modes

Champ has 4 modes, Insert, Edit, Assemble and Debug. You can switch between the modes with the keys as described in the schema below.

< EDIT >  [ret]   < INSERT >

[esc]

< ASSEMBLE >

[m] [a]   < DEBUG >

## Commands and keybindings

### Assembly options

Note: These are hexadecimal numbers. Combining multiple options can be done by adding the hex option numbers.

### <INSERT> mode commands

Change between <insert> and <edit> mode by pressing <enter>. It takes a bit of time to get used to it. The edit mode has 3 colums: