Skip to content

Commit 303305c

Browse files
committed
chore: rename FALCON → RAVEN across docs and website
Docs: - Remove logo image from README.md and README.pt-BR.md - Replace all FALCON references with RAVEN in syscalls.md/.pt-BR.md - Fix outdated "floating-point not yet implemented" in format.md/.pt-BR.md (RV32F is fully supported since v1.16) - Fix GitHub URLs to Gaok1/Raven (correct casing) Website: - Apply RAVEN app color palette (neutral dark + violet) — mirrors theme.rs - Replace red/orange theme with neutral grays and electric violet accent - Replace raven logo with interactive TUI preview (Editor/Run/Cache/Docs tabs) - Remove all FALCON-ASM references from HTML, CSS, JS comments - Add RV32F category to ISA grid - Remove emoji icons from feature/audience lists - Fix all footer hrefs to absolute GitHub URLs - Improve Run tab preview: instruction decoder panel instead of register list - Add Write → Run → Understand workflow section (3 steps) - Add palette.css: canonical color reference mirroring src/ui/theme.rs
1 parent ba7c9e2 commit 303305c

File tree

9 files changed

+886
-405
lines changed

9 files changed

+886
-405
lines changed

docs/README.pt-BR.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
# FALCON ASM — Emulador e IDE RISC-V
1+
# RAVEN — Emulador e IDE RISC-V
22

3-
<img src="https://github.com/user-attachments/assets/b0a9c716-3750-4aba-85f0-6957d2b510fc" height="400"/>
4-
5-
**FALCON ASM** é um emulador, montador e IDE RISC-V rodando no terminal, escrito em Rust. Cobre **RV32I + M + F** e foi pensado para tornar cada etapa do ciclo buscar → decodificar → executar visível e interativa — ideal para estudantes, professores e qualquer um aprendendo assembly.
3+
**RAVEN** é um emulador, montador e IDE RISC-V rodando no terminal, escrito em Rust. Cobre **RV32I + M + F** e foi pensado para tornar cada etapa do ciclo buscar → decodificar → executar visível e interativa — ideal para estudantes, professores e qualquer um aprendendo assembly.
64

75
Tudo vive em uma única TUI: escreva código, monte, execute passo a passo, inspecione registradores e memória, perfile sua hierarquia de cache e leia a documentação — sem sair do terminal.
86

@@ -69,11 +67,11 @@ Tudo vive em uma única TUI: escreva código, monte, execute passo a passo, insp
6967

7068
## Início Rápido
7169

72-
Baixe o binário mais recente em [Releases](https://github.com/Gaok1/FALCON-ASM/releases), ou compile da fonte:
70+
Baixe o binário mais recente em [Releases](https://github.com/Gaok1/Raven/releases), ou compile da fonte:
7371

7472
```bash
75-
git clone https://github.com/Gaok1/FALCON-ASM.git
76-
cd FALCON-ASM
73+
git clone https://github.com/Gaok1/Raven.git
74+
cd RAVEN
7775
cargo run
7876
```
7977

docs/format.md

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Falcon ASM format guide — RV32I in plain language
1+
# RAVEN format guide — RV32I in plain language
22

3-
This is the companion reference for Falcon ASM, our teaching-friendly RISC-V emulator. Use it as a cheat sheet.
3+
This is the companion reference for RAVEN, our teaching-friendly RISC-V emulator. Use it as a cheat sheet.
44

55
## How to read this document
66

@@ -11,18 +11,17 @@ This is the companion reference for Falcon ASM, our teaching-friendly RISC-V emu
1111

1212
## Architecture snapshot
1313

14-
Falcon focuses on a approachable RV32I+M subset so you can reason about each pipeline stage without being buried in extras.
14+
RAVEN focuses on a approachable RV32I+M subset so you can reason about each pipeline stage without being buried in extras.
1515

1616
- **Word size:** 32 bits.
1717
- **Endianness:** little-endian throughout (`{to,from}_le_bytes`).
1818
- **Program counter:** advances by 4 each instruction; branches and jumps are PC-relative.
1919
- **Registers:** hardware names `x0…x31` with the usual aliases `zero`, `ra`, `sp`, `gp`, `tp`, `t0…t6`, `s0/fp`, `s1`, `a0…a7`,
2020
`s2…s11`. Writes to `x0/zero` are ignored.
2121

22-
Not yet implemented: CSR/FENCE instructions and any floating-point extension. Keeping the surface area small makes Falcon easier to
23-
use in class or during workshops.
22+
Not yet implemented: CSR/FENCE instructions. RAVEN covers RV32IMF — base integer, multiply/divide, and single-precision float.
2423

25-
## Instruction set inside Falcon
24+
## Instruction set inside RAVEN
2625

2726
| Category | Instructions |
2827
| --- | --- |
@@ -39,7 +38,7 @@ of following the architected “divide-by-zero” results. The interruption make
3938

4039
## Encoding cheat sheets
4140

42-
The tables below show all 32-bit layouts Falcon uses. When an instruction name appears in bold, read the note beneath the table for
41+
The tables below show all 32-bit layouts RAVEN uses. When an instruction name appears in bold, read the note beneath the table for
4342
a reminder about immediate ranges or special cases.
4443

4544
### R-type (arithmetic, logic, multiply/divide)
@@ -162,20 +161,20 @@ a reminder about immediate ranges or special cases.
162161

163162
**`JALR` (`0x67`):** uses `funct3 = 0x0`.
164163

165-
**System (`0x73`):** Falcon implements two encodings: `ECALL` (`0x00000073`) and `EBREAK` (`0x00100073`). The assembler accepts
164+
**System (`0x73`):** RAVEN implements two encodings: `ECALL` (`0x00000073`) and `EBREAK` (`0x00100073`). The assembler accepts
166165
`halt` as an alias for `ebreak`.
167166

168167
## Assembler behaviour and pseudo-instructions
169168

170-
Falcon’s assembler is intentionally lightweight so you can follow every step:
169+
RAVEN’s assembler is intentionally lightweight so you can follow every step:
171170

172171
- Comments begin with `;` or `#`.
173172
- Operands are comma-separated (`mnemonic op1, op2, ...`).
174173
- Supported sections/directives include `.text`, `.data`, `.bss`, `.section`, `.word`, `.byte`, `.half`, `.ascii`, `.asciz`/`.asciiz`, `.space`, and `.align`.
175174

176175
### Pseudo-instructions reference
177176

178-
The table below documents the pseudo forms implemented by Falcon and the exact expansion shape used by the assembler.
177+
The table below documents the pseudo forms implemented by RAVEN and the exact expansion shape used by the assembler.
179178

180179
| Pseudo | Accepted format | Expansion (conceptual) | Notes |
181180
| --- | --- | --- | --- |
@@ -202,11 +201,11 @@ The table below documents the pseudo forms implemented by Falcon and the exact e
202201
> `jal` and `jalr` are real ISA instructions (not pseudos) and are also supported directly.
203202
> `jal` accepts both `jal label` (implicit `rd=ra`) and `jal rd, label`.
204203
205-
If you want to inspect the final expansion in practice, assemble with `cargo run` and check the decoded instruction trace in the run view.
204+
If you want to inspect the final expansion in practice, assemble with `cargo run` and check the decoded instruction trace in the RAVEN run view.
206205

207206
## Syscalls you can try
208207

209-
Falcon supports a tiny Linux-style ABI plus a few Falcon-only teaching extensions.
208+
RAVEN supports a tiny Linux-style ABI plus a few RAVEN-only teaching extensions.
210209

211210
### ABI (Linux-style)
212211

@@ -221,13 +220,13 @@ Falcon supports a tiny Linux-style ABI plus a few Falcon-only teaching extension
221220
3) Execute `ecall`.
222221
4) Read the return value from `a0`.
223222

224-
Falcon currently supports a very small set. When a syscall is not implemented, Falcon stops execution and prints a message in the
223+
RAVEN currently supports a very small set. When a syscall is not implemented, RAVEN stops execution and prints a message in the
225224
console so the failure is obvious during teaching.
226225

227226
#### Return values and errors
228227

229228
- On success, the syscall returns a non-negative value in `a0` (for example, bytes read/written).
230-
- On error, Falcon uses Linux-style `-errno` in `a0`. Internally that is stored as `u32` (because registers are `u32`):
229+
- On error, RAVEN uses Linux-style `-errno` in `a0`. Internally that is stored as `u32` (because registers are `u32`):
231230
`a0 = (-(errno as i32)) as u32`.
232231

233232
### Linux syscalls (supported subset)
@@ -244,7 +243,7 @@ console so the failure is obvious during teaching.
244243

245244
Arguments:
246245

247-
- `a0 = fd` (Falcon supports `1` (stdout) and `2` (stderr), both show up in the console for now)
246+
- `a0 = fd` (RAVEN supports `1` (stdout) and `2` (stderr), both show up in the console for now)
248247
- `a1 = buf` (pointer to bytes in memory)
249248
- `a2 = count` (how many bytes to write)
250249

@@ -257,7 +256,7 @@ Short example (prints "Hello!\n" and exits):
257256
```asm
258257
.data
259258
msg: .ascii "Hello!"
260-
.byte 10 # '\n' (Falcon does not parse escape sequences inside .ascii/.asciz)
259+
.byte 10 # '\n' (RAVEN does not parse escape sequences inside .ascii/.asciz)
261260
262261
.text
263262
li a0, 1 # fd=stdout
@@ -275,7 +274,7 @@ msg: .ascii "Hello!"
275274

276275
Arguments:
277276

278-
- `a0 = fd` (Falcon supports `0` only: stdin)
277+
- `a0 = fd` (RAVEN supports `0` only: stdin)
279278
- `a1 = buf` (pointer where bytes will be written)
280279
- `a2 = count` (maximum bytes to read)
281280

@@ -285,8 +284,8 @@ Return:
285284

286285
Important notes (teaching simplifications):
287286

288-
- Input is line-based via the UI console. When a line is available, Falcon appends a final `\n` and serves it as bytes.
289-
- If there is no input yet, Falcon pauses execution (PC does not advance) and waits for the user to provide input in the UI.
287+
- Input is line-based via the UI console. When a line is available, RAVEN appends a final `\n` and serves it as bytes.
288+
- If there is no input yet, RAVEN pauses execution (PC does not advance) and waits for the user to provide input in the UI.
290289

291290
Short example (read and echo back):
292291

@@ -323,19 +322,19 @@ Effect:
323322

324323
- Stops the VM “normally” (this is not a fault in the UI).
325324

326-
### Falcon extensions (used by pseudos)
325+
### RAVEN extensions (used by pseudos)
327326

328327
| `a7` | Name | Used by |
329328
| --- | --- | --- |
330-
| `1000` | `falcon_print_int` | `print rd` |
331-
| `1001` | `falcon_print_zstr` | `printStr` / `printString` |
332-
| `1002` | `falcon_print_zstr_ln` | `printStrLn` |
333-
| `1003` | `falcon_read_line_z` | `read label` |
334-
| `1010` | `falcon_read_u8` | `readByte label` |
335-
| `1011` | `falcon_read_u16` | `readHalf label` |
336-
| `1012` | `falcon_read_u32` | `readWord label` |
337-
338-
For the Falcon `read*` extensions, Falcon keeps asking until a valid value fits in the requested size. Invalid input results in a friendly
329+
| `1000` | `raven_print_int` | `print rd` |
330+
| `1001` | `raven_print_zstr` | `printStr` / `printString` |
331+
| `1002` | `raven_print_zstr_ln` | `printStrLn` |
332+
| `1003` | `raven_read_line_z` | `read label` |
333+
| `1010` | `raven_read_u8` | `readByte label` |
334+
| `1011` | `raven_read_u16` | `readHalf label` |
335+
| `1012` | `raven_read_u32` | `readWord label` |
336+
337+
For the RAVEN `read*` extensions, RAVEN keeps asking until a valid value fits in the requested size. Invalid input results in a friendly
339338
error message and the program counter does **not** advance, making it clear that execution is paused.
340339

341340
Ready for a deeper dive? Revisit the [Tutorial](Tutorial.md) for hands-on assembly walkthroughs, or explore the sample programs in

docs/format.pt-BR.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Guia de formato do Falcon ASM — RV32I em linguagem direta
1+
# Guia de formato do RAVEN — RV32I em linguagem direta
22

3-
Este é o guia de bolso do Falcon ASM, nosso emulador RISC-V pensado para ensino. Use-o como referência rápida.
3+
Este é o guia de bolso do RAVEN, nosso emulador RISC-V pensado para ensino. Use-o como referência rápida.
44

55
## Como aproveitar este documento
66

@@ -11,18 +11,17 @@ Este é o guia de bolso do Falcon ASM, nosso emulador RISC-V pensado para ensino
1111

1212
## Visão rápida da arquitetura
1313

14-
O Falcon foca no subconjunto RV32I+M para que você entenda cada etapa do ciclo buscar → decodificar → executar sem distrações.
14+
O RAVEN foca no subconjunto RV32I+M para que você entenda cada etapa do ciclo buscar → decodificar → executar sem distrações.
1515

1616
- **Tamanho da palavra:** 32 bits.
1717
- **Endianness:** sempre little-endian (`{to,from}_le_bytes`).
1818
- **Program counter:** avança 4 em cada instrução; desvios e saltos usam deslocamentos relativos ao PC.
1919
- **Registradores:** nomes `x0…x31` com os apelidos tradicionais `zero`, `ra`, `sp`, `gp`, `tp`, `t0…t6`, `s0/fp`, `s1`, `a0…a7`,
2020
`s2…s11`. Escritas em `x0/zero` são descartadas.
2121

22-
Ainda não implementados: instruções CSR/FENCE e qualquer extensão de ponto flutuante. Manter o escopo pequeno torna o Falcon mais
23-
amigável para aulas e oficinas.
22+
Ainda não implementados: instruções CSR/FENCE. O RAVEN cobre RV32IMF — inteiros base, multiplicação/divisão e ponto flutuante de precisão simples.
2423

25-
## Conjunto de instruções presente no Falcon
24+
## Conjunto de instruções presente no RAVEN
2625

2726
| Categoria | Instruções |
2827
| --- | --- |
@@ -40,7 +39,7 @@ do resultado “arquitetado”. A interrupção evidencia que algo inesperado oc
4039
<a id="tabelas-de-codificacao"></a>
4140
## Tabelas de codificação
4241

43-
As tabelas abaixo mostram todos os layouts de 32 bits usados no Falcon. Sempre que aparecer uma observação, ela lembra o alcance
42+
As tabelas abaixo mostram todos os layouts de 32 bits usados no RAVEN. Sempre que aparecer uma observação, ela lembra o alcance
4443
do imediato ou algum detalhe importante.
4544

4645
### Tipo R (aritmética, lógica, multiplicação/divisão)
@@ -162,21 +161,21 @@ do imediato ou algum detalhe importante.
162161

163162
**`JALR` (`0x67`):** usa `funct3 = 0x0`.
164163

165-
**System (`0x73`):** o Falcon implementa dois códigos: `ECALL` (`0x00000073`) e `EBREAK` (`0x00100073`). O assembler aceita
164+
**System (`0x73`):** o RAVEN implementa dois códigos: `ECALL` (`0x00000073`) e `EBREAK` (`0x00100073`). O assembler aceita
166165
`halt` como alias de `ebreak`.
167166

168167
<a id="comportamento-do-assembler-e-pseudoinstrucoes"></a>
169168
## Comportamento do assembler e pseudoinstruções
170169

171-
O assembler do Falcon é propositalmente simples para que você consiga acompanhar cada etapa:
170+
O assembler do RAVEN é propositalmente simples para que você consiga acompanhar cada etapa:
172171

173172
- Comentários começam com `;` ou `#`.
174173
- Operandos são separados por vírgula (`mnemonic op1, op2, ...`).
175174
- Seções/diretivas suportadas incluem `.text`, `.data`, `.bss`, `.section`, `.word`, `.byte`, `.half`, `.ascii`, `.asciz`/`.asciiz`, `.space` e `.align`.
176175

177176
### Referência de pseudoinstruções
178177

179-
A tabela abaixo documenta os formatos aceitos no Falcon e a forma exata (conceitual) de expansão usada pelo assembler.
178+
A tabela abaixo documenta os formatos aceitos no RAVEN e a forma exata (conceitual) de expansão usada pelo assembler.
180179

181180
| Pseudo | Formato aceito | Expansão (conceitual) | Observações |
182181
| --- | --- | --- | --- |

docs/syscalls.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# FALCON — Syscall Reference
1+
# RAVEN — Syscall Reference
22

3-
FALCON uses the **Linux RISC-V ABI** calling convention for `ecall`.
3+
RAVEN uses the **Linux RISC-V ABI** calling convention for `ecall`.
44

55
```
66
a7 = syscall number
@@ -43,7 +43,7 @@ a0 = return value (negative value = -errno as u32)
4343

4444
### Manual heap — bump allocator pattern
4545

46-
FALCON has **no `malloc`/`free`**. The free region between `bss_end` and the
46+
RAVEN has **no `malloc`/`free`**. The free region between `bss_end` and the
4747
stack bottom is plain RAM. To allocate dynamically, keep a pointer in `.data`
4848
and advance it manually:
4949

@@ -64,7 +64,7 @@ alloc:
6464

6565
The heap grows **upward** (toward higher addresses), while the stack grows
6666
**downward**. They will collide if the combined allocation exceeds free space —
67-
FALCON does not detect this; a memory fault or silent data corruption will occur.
67+
RAVEN does not detect this; a memory fault or silent data corruption will occur.
6868

6969
```
7070
bss_end
@@ -132,7 +132,7 @@ Write bytes from a buffer to a file descriptor.
132132
| `a2` | byte count |
133133
| **`a0` (ret)** | bytes written, or `-errno` |
134134

135-
**Restrictions:** only `fd=1` and `fd=2` are supported (both go to the FALCON console).
135+
**Restrictions:** only `fd=1` and `fd=2` are supported (both go to the RAVEN console).
136136

137137
```asm
138138
.data
@@ -195,7 +195,7 @@ rng_buf: .space 4
195195

196196
## Falcon teaching extensions (syscall 1000+)
197197

198-
These are FALCON-specific syscalls designed for classroom use. They are higher
198+
These are RAVEN-specific syscalls designed for classroom use. They are higher
199199
level than the Linux ABI equivalents and need no strlen loop or fd argument.
200200

201201
### `1000` — print integer
@@ -324,7 +324,7 @@ Parse one integer from stdin (range 0..4294967295) and store it as a `u32` (litt
324324

325325
## Error codes
326326

327-
| Code | POSIX name | Meaning in FALCON |
327+
| Code | POSIX name | Meaning in RAVEN |
328328
|------|-----------|-------------------|
329329
| `-5` | `EIO` | getrandom OS failure |
330330
| `-9` | `EBADF` | unsupported fd |

docs/syscalls.pt-BR.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# FALCON — Referência de Syscalls
1+
# RAVEN — Referência de Syscalls
22

3-
O FALCON usa a convenção de chamada **Linux RISC-V ABI** para `ecall`.
3+
O RAVEN usa a convenção de chamada **Linux RISC-V ABI** para `ecall`.
44

55
```
66
a7 = número da syscall
@@ -43,7 +43,7 @@ a0 = valor de retorno (valor negativo = -errno como u32)
4343

4444
### Heap manual — padrão bump allocator
4545

46-
O FALCON **não tem `malloc`/`free`**. A região livre entre `bss_end` e o fundo da
46+
O RAVEN **não tem `malloc`/`free`**. A região livre entre `bss_end` e o fundo da
4747
pilha é RAM comum. Para alocar memória dinamicamente, guarde um ponteiro em `.data`
4848
e avance-o manualmente:
4949

@@ -63,7 +63,7 @@ alloc:
6363
```
6464

6565
O heap cresce para **cima** (endereços crescentes), enquanto a pilha cresce para
66-
**baixo**. Eles colidirão se a alocação combinada exceder o espaço livre — o FALCON
66+
**baixo**. Eles colidirão se a alocação combinada exceder o espaço livre — o RAVEN
6767
não detecta isso; ocorrerá uma falha de memória ou corrupção silenciosa de dados.
6868

6969
```
@@ -132,7 +132,7 @@ Escreve bytes de um buffer para um descritor de arquivo.
132132
| `a2` | quantidade de bytes |
133133
| **`a0` (ret)** | bytes escritos, ou `-errno` |
134134

135-
**Restrições:** somente `fd=1` e `fd=2` são suportados (ambos vão para o console do FALCON).
135+
**Restrições:** somente `fd=1` e `fd=2` são suportados (ambos vão para o console do RAVEN).
136136

137137
```asm
138138
.data
@@ -195,7 +195,7 @@ rng_buf: .space 4
195195

196196
## Extensões de ensino Falcon (syscall 1000+)
197197

198-
Estas são syscalls exclusivas do FALCON, projetadas para uso em sala de aula. São
198+
Estas são syscalls exclusivas do RAVEN, projetadas para uso em sala de aula. São
199199
mais simples que os equivalentes Linux ABI e não precisam de loop strlen nem
200200
argumento fd.
201201

@@ -327,7 +327,7 @@ Lê um inteiro da entrada (faixa 0..4294967295) e armazena como `u32` (little-en
327327

328328
## Códigos de erro
329329

330-
| Código | Nome POSIX | Significado no FALCON |
330+
| Código | Nome POSIX | Significado no RAVEN |
331331
|--------|-----------|----------------------|
332332
| `-5` | `EIO` | falha do SO em getrandom |
333333
| `-9` | `EBADF` | fd não suportado |

0 commit comments

Comments
 (0)