aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 8ebd95117c123912d53eb66936f6411abb3ba4e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# ARM assembly for fun and profit

I'm starting over.

## Hexedit

This is a bare-minimum hex editor
which fits entirely within the 252-byte boot sector
of the Raspberry Pi Pico's on-board flash.

Most of the space is dedicated
to setting up the clocks, GPIO, and UART.

Enter a series of octal halfwords
then press G to jump to the beginning of SRAM
and begin executing them as instructions.

This is the first step in bootstrapping the whole system.

%% Better editor

%% A more robust and user-friendly hex-editor.
%% It can duplicate itself.

## Assembler

This is a single-pass assembler
supporting most of the ARMv6-M instruction set
using a simplified instruction syntax
in which there are
no labels,
only octal literals,
and unambiguous instruction mnemonics.

It does not allow the user to type invalid instructions.

## Better Assembler

Goals:
- A subset of GNU `as` syntax
- Reasonably extensible
- Small code size

%% ## LISP Interpreter

%% A LISP interpreter for the Raspberry Pi Pico,
%% developed ON a raspberry pi pico