# Tips and Tricks for the BBC Micro
## Loading a new font
New fonts do not work in MODE 7 as that uses the onboard [Mullard SAA5050](https://en.wikipedia.org/wiki/Mullard_SAA5050) chip. However in other modes you can use the [VDU 23](http://beebwiki.mdfs.net/VDU_23#VDU_23.2C32-255_-_Define_character) command. By default however it only allows a few characters to be defined at a time on the BBC Model B. (Tube enhanced and BBC Master default to allowing all characters).
To change this behavior you must issue `*FX 200,6` however doing so will allocate more memory which by default will overwrite the BASIC program in memory. The recommended solution is to (before loading a program)
```
*FX 200,6
*BASIC
```
To allow BASIC to recognize the new location to place new BASIC programs. This sets the `PAGE` variable to `1F00` so you can also instead just do `PAGE=&1F00` in your `!BOOT` file before loading your program instead.
[John Elliot's PSF tools](https://www.seasip.info/Unix/PSF/) allows you to convert PSF/BDF/ZX Spectrum fonts to BBC Format as well using the `psf2bbc` command. The files it generates should be placed on a disk then `*EXEC`ed to take affect.
## Keyboard shortcuts
| Shortcut | Description |
|----------|-------------|
|ShiftBreak|Boot disc (if bootable)|
|ShiftCtrl|Pause scrolling|
## Make a disc bootable
If your disc doesn't boot with Shift Break and you'd like it to then:
1. Type ``*CAT`` to see what's on the disc
2. Figure out (through trial an error) which file you need to run. Typically it will either be a ``CHAIN "filename"`` or ``*RUN filename`` or maybe even a ``*EXEC filename`` or just ``*filename``
3. Type ``*BUILD !BOOT`` then Enter and you will see an editor
4. Type the command you used to run the software
5. Press Enter then Escape
6. Type ``*OPT 4,3`` then Enter to make the disc ``*EXEC !BOOT`` when ShiftBreak is pressed
If you use ``*CAT`` (or ``*.``) to see the contents again you will now notice the new !BOOT file and Option 3 (EXEC) to execute it. The whole process looks something like:
```
BBC Computer 32K
Acorn DFS
BASIC
>*CAT
Format 2.23 (13)
Drive 0 Option 0 (off)
Dir. :0.$ Lib. :0.$
FORMAMC L FORMATC L
STAMP L
>*BUILD !BOOT
0001 CH. "FORMATC"
0002
Escape
>*OPT 4,3
*CAT
Format 2.23 (13)
Drive 0 Option 3 (EXEC)
Dir. :0.$ Lib. :0.$
!BOOT FORMAMC L
FORMATC L STAMP L
>
```
## Disc commands
These are basic Acorn DFS commands, other implementations and ADFS may vary.
| Command | Description |
|-------------------|--------------------|
| ``*CAT`` | Show disc contents |
| ``*TYPE file`` | Show text of file |
| ``*EXEC file`` | Run text file |
| ``*TITLE name`` | Set disc title |
| ``*DELETE file`` | Delete file |
| ``*BUILD file`` | Create text file |
| ``*DRIVE number`` | Switch drive |
| ``*DIR name`` | Switch "directory" |
Directories on DFS are shown with a letter then a prefix e.g.
```
Format 2.23 (13)
Drive 0 Option 3 (EXEC)
Dir. :0.$ Lib. :0.$
!BOOT
B.ME
```
You can change the current directory with `*DIR B` for example and then a `*.` gives you:
```
Format 2.23 (13)
Drive 0 Option 3 (EXEC)
Dir. :0.$ Lib. :0.$
ME
$.!BOOT
```
Now all LOAD/SAVE commands etc. will load the files that previously started with "B.". You can change back to the default using `*DIR $`.
## Short commands
| Command | Description |
|---------|-------------|
| ``*KEY10 "OLD \|\| RUN"`` | Restart program on Break
| ``*FX 200,1`` | Disable Escape
| ``*FX 200,3`` | Disable Escape and clear ram on Break