fixes on colors and dist
This commit is contained in:
parent
b211434c9e
commit
8e18fe13ea
@ -34,7 +34,7 @@ This repository is organized as a Rust workspace and contains several components
|
||||
- **[prometeu-core](./crates/prometeu-core)**: The logical core, VM, and internal OS.
|
||||
- **[prometeu-runtime-desktop](crates/prometeu-runtime-desktop)**: Host for execution on Desktop systems.
|
||||
- **[docs/](./docs)**: Technical documentation and system specifications.
|
||||
- **[devtools-protocol/](./devtools-protocol)**: Definition of the communication protocol for development tools.
|
||||
- **[devtools-protocol/](devtools)**: Definition of the communication protocol for development tools.
|
||||
- **[test-cartridges/](./test-cartridges)**: Cartridge examples and test suites.
|
||||
|
||||
---
|
||||
|
||||
@ -10,6 +10,7 @@ use crate::codegen::ast_util;
|
||||
use prometeu_core::prometeu_os::Syscall;
|
||||
use std::collections::HashMap;
|
||||
use prometeu_bytecode::asm;
|
||||
use prometeu_core::model::Color;
|
||||
|
||||
pub struct Codegen {
|
||||
file_name: String,
|
||||
@ -294,14 +295,18 @@ impl Codegen {
|
||||
|
||||
if full_name.to_lowercase().starts_with("color.") {
|
||||
match full_name.to_lowercase().as_str() {
|
||||
"color.black" => self.emit_op(OpCode::PushI32, vec![Operand::I32(0x0000)], member.span),
|
||||
"color.white" => self.emit_op(OpCode::PushI32, vec![Operand::I32(0xffff)], member.span),
|
||||
"color.red" => self.emit_op(OpCode::PushI32, vec![Operand::I32(0xf800)], member.span),
|
||||
"color.green" => self.emit_op(OpCode::PushI32, vec![Operand::I32(0x07e0)], member.span),
|
||||
"color.blue" => self.emit_op(OpCode::PushI32, vec![Operand::I32(0x001f)], member.span),
|
||||
"color.yellow" => self.emit_op(OpCode::PushI32, vec![Operand::I32(0xffe0)], member.span),
|
||||
"color.cyan" => self.emit_op(OpCode::PushI32, vec![Operand::I32(0x07ff)], member.span),
|
||||
"color.magenta" => self.emit_op(OpCode::PushI32, vec![Operand::I32(0xf81f)], member.span),
|
||||
"color.black" => self.emit_op(OpCode::PushI32, vec![Operand::I32(Color::BLACK.hex())], member.span),
|
||||
"color.white" => self.emit_op(OpCode::PushI32, vec![Operand::I32(Color::WHITE.hex())], member.span),
|
||||
"color.red" => self.emit_op(OpCode::PushI32, vec![Operand::I32(Color::RED.hex())], member.span),
|
||||
"color.green" => self.emit_op(OpCode::PushI32, vec![Operand::I32(Color::GREEN.hex())], member.span),
|
||||
"color.blue" => self.emit_op(OpCode::PushI32, vec![Operand::I32(Color::BLUE.hex())], member.span),
|
||||
"color.yellow" => self.emit_op(OpCode::PushI32, vec![Operand::I32(Color::YELLOW.hex())], member.span),
|
||||
"color.cyan" => self.emit_op(OpCode::PushI32, vec![Operand::I32(Color::CYAN.hex())], member.span),
|
||||
"color.gray" | "color.grey" => self.emit_op(OpCode::PushI32, vec![Operand::I32(Color::GRAY.hex())], member.span),
|
||||
"color.orange" => self.emit_op(OpCode::PushI32, vec![Operand::I32(Color::ORANGE.hex())], member.span),
|
||||
"color.indigo" => self.emit_op(OpCode::PushI32, vec![Operand::I32(Color::INDIGO.hex())], member.span),
|
||||
"color.magenta" => self.emit_op(OpCode::PushI32, vec![Operand::I32(Color::MAGENTA.hex())], member.span),
|
||||
"color.colorKey" | "color.color_key" => self.emit_op(OpCode::PushI32, vec![Operand::I32(Color::COLOR_KEY.hex())], member.span),
|
||||
_ => return Err(anyhow!("Unsupported color constant: {} at {:?}", full_name, member.span)),
|
||||
}
|
||||
} else if full_name.to_lowercase().starts_with("pad.") {
|
||||
|
||||
@ -60,4 +60,9 @@ impl Color {
|
||||
pub const fn raw(self) -> u16 {
|
||||
self.0
|
||||
}
|
||||
|
||||
pub const fn hex(self) -> i32 {
|
||||
self.0 as i32
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -21,7 +21,8 @@ path = "src/bin/prometeuc.rs"
|
||||
dist = true
|
||||
include = [
|
||||
"../../VERSION.txt",
|
||||
"../../dist-staging/devtools-protocol"
|
||||
"../../dist-staging/devtools/debugger-protocol",
|
||||
"../../dist-staging/devtools/prometeu-sdk"
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
|
||||
@ -8,9 +8,9 @@ The protocol is based on JSON, sent via a transport connection (usually TCP). Ea
|
||||
|
||||
## Structure
|
||||
|
||||
- **[protocol.json](./protocol.json)**: Formal definition of the protocol in JSON format.
|
||||
- **[protocol.json](protocol.json)**: Formal definition of the protocol in JSON format.
|
||||
- **[protocol.md](README.md)**: Human-readable documentation describing commands, events, and types.
|
||||
- **[examples/](./examples)**: Examples of message flows (handshake, breakpoints, etc.) in JSONL format.
|
||||
- **[examples/](examples)**: Examples of message flows (handshake, breakpoints, etc.) in JSONL format.
|
||||
|
||||
## Versioning
|
||||
|
||||
@ -13,6 +13,7 @@ export const Color: Prometeu.Color = {
|
||||
yellow: 0xffe0 as Color565,
|
||||
cyan: 0x07ff as Color565,
|
||||
magenta: 0xf81f as Color565,
|
||||
indigo: 0x4810 as Color565,
|
||||
|
||||
rgb(r: number, g: number, b: number): Color565 {
|
||||
r = clamp8(r); g = clamp8(g); b = clamp8(b);
|
||||
@ -50,6 +50,7 @@ declare global {
|
||||
readonly yellow: Color565;
|
||||
readonly cyan: Color565;
|
||||
readonly magenta: Color565;
|
||||
readonly indigo: Color565;
|
||||
rgb(r: number, g: number, b: number): Color565;
|
||||
}
|
||||
|
||||
@ -11,5 +11,5 @@ Detailed documentation on system architecture, cartridge format, VM instruction
|
||||
### 🐞 [Debugger](./debugger)
|
||||
Documentation on debugging tools and how to integrate new tools into the ecosystem.
|
||||
|
||||
### 🔌 [DevTools Protocol](../devtools-protocol)
|
||||
### 🔌 [DevTools Protocol](../devtools)
|
||||
Definition of the communication protocol used for real-time debugging and inspection.
|
||||
|
||||
5
scripts/clean-all.sh
Executable file
5
scripts/clean-all.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
cargo clean
|
||||
rm -rf dist-staging
|
||||
@ -8,8 +8,16 @@ VERSION=$(cat VERSION.txt)
|
||||
|
||||
# Prepare staging for SDK extra files
|
||||
echo "Preparing dist-staging..."
|
||||
mkdir -p dist-staging/devtools-protocol
|
||||
cp devtools-protocol/protocol.json dist-staging/devtools-protocol/
|
||||
rm -rf dist-staging/devtools/debugger-protocol
|
||||
rm -rf dist-staging/devtools/prometeu-sdk
|
||||
|
||||
mkdir -p dist-staging/devtools/debugger-protocol
|
||||
mkdir -p dist-staging/devtools/prometeu-sdk
|
||||
|
||||
cp devtools/debugger-protocol/protocol.json dist-staging/devtools/debugger-protocol/
|
||||
cp -R devtools/prometeu-sdk dist-staging/devtools
|
||||
cp VERSION.txt dist-staging/devtools/debugger-protocol/VERSION.txt
|
||||
cp VERSION.txt dist-staging/devtools/prometeu-sdk/VERSION.txt
|
||||
|
||||
# Clean and prepare the version-specific directory
|
||||
echo "Cleaning dist-staging/stable/$VERSION..."
|
||||
|
||||
Binary file not shown.
@ -2,44 +2,44 @@
|
||||
0000000A Pop
|
||||
0000000C FrameSync
|
||||
0000000E Jmp U32(0)
|
||||
00000014 PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:2
|
||||
00000014 PushI32 U32(18448) ; test-cartridges/color-square/dev/src/main.ts:2
|
||||
0000001A Syscall U32(4097) ; test-cartridges/color-square/dev/src/main.ts:2
|
||||
00000020 Pop ; test-cartridges/color-square/dev/src/main.ts:2
|
||||
00000022 PushI32 U32(10) ; test-cartridges/color-square/dev/src/main.ts:3
|
||||
00000028 PushI32 U32(10) ; test-cartridges/color-square/dev/src/main.ts:3
|
||||
0000002E PushI32 U32(50) ; test-cartridges/color-square/dev/src/main.ts:3
|
||||
00000034 PushI32 U32(50) ; test-cartridges/color-square/dev/src/main.ts:3
|
||||
0000003A PushI32 U32(63488) ; test-cartridges/color-square/dev/src/main.ts:3
|
||||
00000040 Syscall U32(4098) ; test-cartridges/color-square/dev/src/main.ts:3
|
||||
00000046 Pop ; test-cartridges/color-square/dev/src/main.ts:3
|
||||
00000048 PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
0000004E PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
00000054 PushI32 U32(128) ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
0000005A PushI32 U32(128) ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
00000060 PushI32 U32(65535) ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
00000066 Syscall U32(4099) ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
0000006C Pop ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
0000006E PushI32 U32(64) ; test-cartridges/color-square/dev/src/main.ts:5
|
||||
00000074 PushI32 U32(64) ; test-cartridges/color-square/dev/src/main.ts:5
|
||||
0000007A PushI32 U32(20) ; test-cartridges/color-square/dev/src/main.ts:5
|
||||
00000080 PushI32 U32(31) ; test-cartridges/color-square/dev/src/main.ts:5
|
||||
00000086 Syscall U32(4100) ; test-cartridges/color-square/dev/src/main.ts:5
|
||||
0000008C Pop ; test-cartridges/color-square/dev/src/main.ts:5
|
||||
0000008E PushI32 U32(100) ; test-cartridges/color-square/dev/src/main.ts:6
|
||||
00000094 PushI32 U32(100) ; test-cartridges/color-square/dev/src/main.ts:6
|
||||
0000009A PushI32 U32(10) ; test-cartridges/color-square/dev/src/main.ts:6
|
||||
000000A0 PushI32 U32(2016) ; test-cartridges/color-square/dev/src/main.ts:6
|
||||
000000A6 PushI32 U32(65504) ; test-cartridges/color-square/dev/src/main.ts:6
|
||||
000000AC Syscall U32(4101) ; test-cartridges/color-square/dev/src/main.ts:6
|
||||
000000B2 Pop ; test-cartridges/color-square/dev/src/main.ts:6
|
||||
000000B4 PushI32 U32(20) ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
000000BA PushI32 U32(100) ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
000000C0 PushI32 U32(30) ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
000000C6 PushI32 U32(30) ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
000000CC PushI32 U32(2047) ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
000000D2 PushI32 U32(63519) ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
000000D8 Syscall U32(4102) ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
000000DE Pop ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
00000022 PushI32 U32(10) ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
00000028 PushI32 U32(10) ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
0000002E PushI32 U32(50) ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
00000034 PushI32 U32(50) ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
0000003A PushI32 U32(63488) ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
00000040 Syscall U32(4098) ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
00000046 Pop ; test-cartridges/color-square/dev/src/main.ts:4
|
||||
00000048 PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:5
|
||||
0000004E PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:5
|
||||
00000054 PushI32 U32(128) ; test-cartridges/color-square/dev/src/main.ts:5
|
||||
0000005A PushI32 U32(128) ; test-cartridges/color-square/dev/src/main.ts:5
|
||||
00000060 PushI32 U32(65535) ; test-cartridges/color-square/dev/src/main.ts:5
|
||||
00000066 Syscall U32(4099) ; test-cartridges/color-square/dev/src/main.ts:5
|
||||
0000006C Pop ; test-cartridges/color-square/dev/src/main.ts:5
|
||||
0000006E PushI32 U32(64) ; test-cartridges/color-square/dev/src/main.ts:6
|
||||
00000074 PushI32 U32(64) ; test-cartridges/color-square/dev/src/main.ts:6
|
||||
0000007A PushI32 U32(20) ; test-cartridges/color-square/dev/src/main.ts:6
|
||||
00000080 PushI32 U32(31) ; test-cartridges/color-square/dev/src/main.ts:6
|
||||
00000086 Syscall U32(4100) ; test-cartridges/color-square/dev/src/main.ts:6
|
||||
0000008C Pop ; test-cartridges/color-square/dev/src/main.ts:6
|
||||
0000008E PushI32 U32(100) ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
00000094 PushI32 U32(100) ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
0000009A PushI32 U32(10) ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
000000A0 PushI32 U32(2016) ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
000000A6 PushI32 U32(65504) ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
000000AC Syscall U32(4101) ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
000000B2 Pop ; test-cartridges/color-square/dev/src/main.ts:7
|
||||
000000B4 PushI32 U32(20) ; test-cartridges/color-square/dev/src/main.ts:8
|
||||
000000BA PushI32 U32(100) ; test-cartridges/color-square/dev/src/main.ts:8
|
||||
000000C0 PushI32 U32(30) ; test-cartridges/color-square/dev/src/main.ts:8
|
||||
000000C6 PushI32 U32(30) ; test-cartridges/color-square/dev/src/main.ts:8
|
||||
000000CC PushI32 U32(2047) ; test-cartridges/color-square/dev/src/main.ts:8
|
||||
000000D2 PushI32 U32(63519) ; test-cartridges/color-square/dev/src/main.ts:8
|
||||
000000D8 Syscall U32(4102) ; test-cartridges/color-square/dev/src/main.ts:8
|
||||
000000DE Pop ; test-cartridges/color-square/dev/src/main.ts:8
|
||||
000000E0 PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:10
|
||||
000000E6 Syscall U32(8193) ; test-cartridges/color-square/dev/src/main.ts:10
|
||||
000000EC JmpIfFalse U32(268) ; test-cartridges/color-square/dev/src/main.ts:10
|
||||
@ -59,60 +59,60 @@
|
||||
0000013C Syscall U32(12289) ; test-cartridges/color-square/dev/src/main.ts:15
|
||||
00000142 Pop ; test-cartridges/color-square/dev/src/main.ts:15
|
||||
00000144 Jmp U32(330)
|
||||
0000014A Syscall U32(8451) ; test-cartridges/color-square/dev/src/main.ts:19
|
||||
00000150 JmpIfFalse U32(380) ; test-cartridges/color-square/dev/src/main.ts:19
|
||||
00000156 Syscall U32(8449) ; test-cartridges/color-square/dev/src/main.ts:20
|
||||
0000015C Syscall U32(8450) ; test-cartridges/color-square/dev/src/main.ts:20
|
||||
00000162 PushI32 U32(5) ; test-cartridges/color-square/dev/src/main.ts:20
|
||||
00000168 PushI32 U32(65535) ; test-cartridges/color-square/dev/src/main.ts:20
|
||||
0000016E Syscall U32(4100) ; test-cartridges/color-square/dev/src/main.ts:20
|
||||
00000174 Pop ; test-cartridges/color-square/dev/src/main.ts:20
|
||||
0000014A Syscall U32(8451) ; test-cartridges/color-square/dev/src/main.ts:18
|
||||
00000150 JmpIfFalse U32(380) ; test-cartridges/color-square/dev/src/main.ts:18
|
||||
00000156 Syscall U32(8449) ; test-cartridges/color-square/dev/src/main.ts:19
|
||||
0000015C Syscall U32(8450) ; test-cartridges/color-square/dev/src/main.ts:19
|
||||
00000162 PushI32 U32(5) ; test-cartridges/color-square/dev/src/main.ts:19
|
||||
00000168 PushI32 U32(65535) ; test-cartridges/color-square/dev/src/main.ts:19
|
||||
0000016E Syscall U32(4100) ; test-cartridges/color-square/dev/src/main.ts:19
|
||||
00000174 Pop ; test-cartridges/color-square/dev/src/main.ts:19
|
||||
00000176 Jmp U32(380)
|
||||
0000017C PushConst U32(2) ; test-cartridges/color-square/dev/src/main.ts:24
|
||||
00000182 Syscall U32(16385) ; test-cartridges/color-square/dev/src/main.ts:24
|
||||
00000188 GetLocal U32(0) ; test-cartridges/color-square/dev/src/main.ts:25
|
||||
0000018E PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:25
|
||||
00000194 Gte ; test-cartridges/color-square/dev/src/main.ts:25
|
||||
00000196 JmpIfFalse U32(508) ; test-cartridges/color-square/dev/src/main.ts:25
|
||||
0000019C GetLocal U32(0) ; test-cartridges/color-square/dev/src/main.ts:26
|
||||
000001A2 PushConst U32(3) ; test-cartridges/color-square/dev/src/main.ts:26
|
||||
000001A8 Syscall U32(16387) ; test-cartridges/color-square/dev/src/main.ts:26
|
||||
000001AE Pop ; test-cartridges/color-square/dev/src/main.ts:26
|
||||
000001B0 GetLocal U32(0) ; test-cartridges/color-square/dev/src/main.ts:27
|
||||
000001B6 Syscall U32(16386) ; test-cartridges/color-square/dev/src/main.ts:27
|
||||
000001BC GetLocal U32(1) ; test-cartridges/color-square/dev/src/main.ts:28
|
||||
000001C2 JmpIfFalse U32(488) ; test-cartridges/color-square/dev/src/main.ts:28
|
||||
000001C8 PushI32 U32(2) ; test-cartridges/color-square/dev/src/main.ts:28
|
||||
000001CE PushI32 U32(101) ; test-cartridges/color-square/dev/src/main.ts:28
|
||||
000001D4 GetLocal U32(1) ; test-cartridges/color-square/dev/src/main.ts:28
|
||||
000001DA Syscall U32(20482) ; test-cartridges/color-square/dev/src/main.ts:28
|
||||
000001E0 Pop ; test-cartridges/color-square/dev/src/main.ts:28
|
||||
0000017C PushConst U32(2) ; test-cartridges/color-square/dev/src/main.ts:22
|
||||
00000182 Syscall U32(16385) ; test-cartridges/color-square/dev/src/main.ts:22
|
||||
00000188 GetLocal U32(0) ; test-cartridges/color-square/dev/src/main.ts:23
|
||||
0000018E PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:23
|
||||
00000194 Gte ; test-cartridges/color-square/dev/src/main.ts:23
|
||||
00000196 JmpIfFalse U32(508) ; test-cartridges/color-square/dev/src/main.ts:23
|
||||
0000019C GetLocal U32(0) ; test-cartridges/color-square/dev/src/main.ts:24
|
||||
000001A2 PushConst U32(3) ; test-cartridges/color-square/dev/src/main.ts:24
|
||||
000001A8 Syscall U32(16387) ; test-cartridges/color-square/dev/src/main.ts:24
|
||||
000001AE Pop ; test-cartridges/color-square/dev/src/main.ts:24
|
||||
000001B0 GetLocal U32(0) ; test-cartridges/color-square/dev/src/main.ts:25
|
||||
000001B6 Syscall U32(16386) ; test-cartridges/color-square/dev/src/main.ts:25
|
||||
000001BC GetLocal U32(1) ; test-cartridges/color-square/dev/src/main.ts:26
|
||||
000001C2 JmpIfFalse U32(488) ; test-cartridges/color-square/dev/src/main.ts:26
|
||||
000001C8 PushI32 U32(2) ; test-cartridges/color-square/dev/src/main.ts:26
|
||||
000001CE PushI32 U32(101) ; test-cartridges/color-square/dev/src/main.ts:26
|
||||
000001D4 GetLocal U32(1) ; test-cartridges/color-square/dev/src/main.ts:26
|
||||
000001DA Syscall U32(20482) ; test-cartridges/color-square/dev/src/main.ts:26
|
||||
000001E0 Pop ; test-cartridges/color-square/dev/src/main.ts:26
|
||||
000001E2 Jmp U32(488)
|
||||
000001E8 GetLocal U32(0) ; test-cartridges/color-square/dev/src/main.ts:29
|
||||
000001EE Syscall U32(16388) ; test-cartridges/color-square/dev/src/main.ts:29
|
||||
000001F4 Pop ; test-cartridges/color-square/dev/src/main.ts:29
|
||||
000001E8 GetLocal U32(0) ; test-cartridges/color-square/dev/src/main.ts:27
|
||||
000001EE Syscall U32(16388) ; test-cartridges/color-square/dev/src/main.ts:27
|
||||
000001F4 Pop ; test-cartridges/color-square/dev/src/main.ts:27
|
||||
000001F6 Jmp U32(508)
|
||||
000001FC PushI32 U32(255) ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
00000202 PushI32 U32(3) ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
00000208 Shr ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
0000020A PushI32 U32(11) ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
00000210 Shl ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
00000212 PushI32 U32(128) ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
00000218 PushI32 U32(2) ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
0000021E Shr ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
00000220 PushI32 U32(5) ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
00000226 Shl ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
00000228 BitOr ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
0000022A PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
00000230 PushI32 U32(3) ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
00000236 Shr ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
00000238 BitOr ; test-cartridges/color-square/dev/src/main.ts:33
|
||||
0000023A PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:34
|
||||
00000240 PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:34
|
||||
00000246 PushI32 U32(5) ; test-cartridges/color-square/dev/src/main.ts:34
|
||||
0000024C PushI32 U32(5) ; test-cartridges/color-square/dev/src/main.ts:34
|
||||
00000252 GetLocal U32(2) ; test-cartridges/color-square/dev/src/main.ts:34
|
||||
00000258 Syscall U32(4098) ; test-cartridges/color-square/dev/src/main.ts:34
|
||||
0000025E Pop ; test-cartridges/color-square/dev/src/main.ts:34
|
||||
000001FC PushI32 U32(255) ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
00000202 PushI32 U32(3) ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
00000208 Shr ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
0000020A PushI32 U32(11) ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
00000210 Shl ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
00000212 PushI32 U32(128) ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
00000218 PushI32 U32(2) ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
0000021E Shr ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
00000220 PushI32 U32(5) ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
00000226 Shl ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
00000228 BitOr ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
0000022A PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
00000230 PushI32 U32(3) ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
00000236 Shr ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
00000238 BitOr ; test-cartridges/color-square/dev/src/main.ts:30
|
||||
0000023A PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:31
|
||||
00000240 PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:31
|
||||
00000246 PushI32 U32(5) ; test-cartridges/color-square/dev/src/main.ts:31
|
||||
0000024C PushI32 U32(5) ; test-cartridges/color-square/dev/src/main.ts:31
|
||||
00000252 GetLocal U32(2) ; test-cartridges/color-square/dev/src/main.ts:31
|
||||
00000258 Syscall U32(4098) ; test-cartridges/color-square/dev/src/main.ts:31
|
||||
0000025E Pop ; test-cartridges/color-square/dev/src/main.ts:31
|
||||
00000260 PushConst U32(0)
|
||||
00000266 Ret
|
||||
|
||||
Binary file not shown.
@ -20,211 +20,211 @@
|
||||
{
|
||||
"pc": 34,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 3,
|
||||
"line": 4,
|
||||
"col": 16
|
||||
},
|
||||
{
|
||||
"pc": 40,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 3,
|
||||
"line": 4,
|
||||
"col": 20
|
||||
},
|
||||
{
|
||||
"pc": 46,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 3,
|
||||
"line": 4,
|
||||
"col": 24
|
||||
},
|
||||
{
|
||||
"pc": 52,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 3,
|
||||
"line": 4,
|
||||
"col": 28
|
||||
},
|
||||
{
|
||||
"pc": 58,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 3,
|
||||
"line": 4,
|
||||
"col": 32
|
||||
},
|
||||
{
|
||||
"pc": 64,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 3,
|
||||
"line": 4,
|
||||
"col": 3
|
||||
},
|
||||
{
|
||||
"pc": 70,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 3,
|
||||
"line": 4,
|
||||
"col": 3
|
||||
},
|
||||
{
|
||||
"pc": 72,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 4,
|
||||
"line": 5,
|
||||
"col": 16
|
||||
},
|
||||
{
|
||||
"pc": 78,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 4,
|
||||
"line": 5,
|
||||
"col": 19
|
||||
},
|
||||
{
|
||||
"pc": 84,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 4,
|
||||
"line": 5,
|
||||
"col": 22
|
||||
},
|
||||
{
|
||||
"pc": 90,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 4,
|
||||
"line": 5,
|
||||
"col": 27
|
||||
},
|
||||
{
|
||||
"pc": 96,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 4,
|
||||
"line": 5,
|
||||
"col": 32
|
||||
},
|
||||
{
|
||||
"pc": 102,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 4,
|
||||
"line": 5,
|
||||
"col": 3
|
||||
},
|
||||
{
|
||||
"pc": 108,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 4,
|
||||
"line": 5,
|
||||
"col": 3
|
||||
},
|
||||
{
|
||||
"pc": 110,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 5,
|
||||
"line": 6,
|
||||
"col": 18
|
||||
},
|
||||
{
|
||||
"pc": 116,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 5,
|
||||
"line": 6,
|
||||
"col": 22
|
||||
},
|
||||
{
|
||||
"pc": 122,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 5,
|
||||
"line": 6,
|
||||
"col": 26
|
||||
},
|
||||
{
|
||||
"pc": 128,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 5,
|
||||
"line": 6,
|
||||
"col": 30
|
||||
},
|
||||
{
|
||||
"pc": 134,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 5,
|
||||
"line": 6,
|
||||
"col": 3
|
||||
},
|
||||
{
|
||||
"pc": 140,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 5,
|
||||
"line": 6,
|
||||
"col": 3
|
||||
},
|
||||
{
|
||||
"pc": 142,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 6,
|
||||
"line": 7,
|
||||
"col": 16
|
||||
},
|
||||
{
|
||||
"pc": 148,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 6,
|
||||
"line": 7,
|
||||
"col": 21
|
||||
},
|
||||
{
|
||||
"pc": 154,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 6,
|
||||
"line": 7,
|
||||
"col": 26
|
||||
},
|
||||
{
|
||||
"pc": 160,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 6,
|
||||
"line": 7,
|
||||
"col": 30
|
||||
},
|
||||
{
|
||||
"pc": 166,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 6,
|
||||
"line": 7,
|
||||
"col": 43
|
||||
},
|
||||
{
|
||||
"pc": 172,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 6,
|
||||
"line": 7,
|
||||
"col": 3
|
||||
},
|
||||
{
|
||||
"pc": 178,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 6,
|
||||
"line": 7,
|
||||
"col": 3
|
||||
},
|
||||
{
|
||||
"pc": 180,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 7,
|
||||
"line": 8,
|
||||
"col": 18
|
||||
},
|
||||
{
|
||||
"pc": 186,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 7,
|
||||
"line": 8,
|
||||
"col": 22
|
||||
},
|
||||
{
|
||||
"pc": 192,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 7,
|
||||
"line": 8,
|
||||
"col": 27
|
||||
},
|
||||
{
|
||||
"pc": 198,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 7,
|
||||
"line": 8,
|
||||
"col": 31
|
||||
},
|
||||
{
|
||||
"pc": 204,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 7,
|
||||
"line": 8,
|
||||
"col": 35
|
||||
},
|
||||
{
|
||||
"pc": 210,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 7,
|
||||
"line": 8,
|
||||
"col": 47
|
||||
},
|
||||
{
|
||||
"pc": 216,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 7,
|
||||
"line": 8,
|
||||
"col": 3
|
||||
},
|
||||
{
|
||||
"pc": 222,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 7,
|
||||
"line": 8,
|
||||
"col": 3
|
||||
},
|
||||
{
|
||||
@ -332,313 +332,313 @@
|
||||
{
|
||||
"pc": 330,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 19,
|
||||
"line": 18,
|
||||
"col": 7
|
||||
},
|
||||
{
|
||||
"pc": 336,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 19,
|
||||
"line": 18,
|
||||
"col": 3
|
||||
},
|
||||
{
|
||||
"pc": 342,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 20,
|
||||
"line": 19,
|
||||
"col": 22
|
||||
},
|
||||
{
|
||||
"pc": 348,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 20,
|
||||
"line": 19,
|
||||
"col": 31
|
||||
},
|
||||
{
|
||||
"pc": 354,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 20,
|
||||
"line": 19,
|
||||
"col": 40
|
||||
},
|
||||
{
|
||||
"pc": 360,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 20,
|
||||
"line": 19,
|
||||
"col": 43
|
||||
},
|
||||
{
|
||||
"pc": 366,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 20,
|
||||
"line": 19,
|
||||
"col": 7
|
||||
},
|
||||
{
|
||||
"pc": 372,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 20,
|
||||
"line": 19,
|
||||
"col": 7
|
||||
},
|
||||
{
|
||||
"pc": 380,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 24,
|
||||
"line": 22,
|
||||
"col": 19
|
||||
},
|
||||
{
|
||||
"pc": 386,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 24,
|
||||
"line": 22,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 392,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 25,
|
||||
"line": 23,
|
||||
"col": 7
|
||||
},
|
||||
{
|
||||
"pc": 398,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 25,
|
||||
"line": 23,
|
||||
"col": 12
|
||||
},
|
||||
{
|
||||
"pc": 404,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 25,
|
||||
"line": 23,
|
||||
"col": 7
|
||||
},
|
||||
{
|
||||
"pc": 406,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 25,
|
||||
"line": 23,
|
||||
"col": 3
|
||||
},
|
||||
{
|
||||
"pc": 412,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 26,
|
||||
"line": 24,
|
||||
"col": 16
|
||||
},
|
||||
{
|
||||
"pc": 418,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 26,
|
||||
"line": 24,
|
||||
"col": 19
|
||||
},
|
||||
{
|
||||
"pc": 424,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 26,
|
||||
"line": 24,
|
||||
"col": 7
|
||||
},
|
||||
{
|
||||
"pc": 430,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 26,
|
||||
"line": 24,
|
||||
"col": 7
|
||||
},
|
||||
{
|
||||
"pc": 432,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 27,
|
||||
"line": 25,
|
||||
"col": 29
|
||||
},
|
||||
{
|
||||
"pc": 438,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 27,
|
||||
"line": 25,
|
||||
"col": 21
|
||||
},
|
||||
{
|
||||
"pc": 444,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 28,
|
||||
"line": 26,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 450,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 28,
|
||||
"line": 26,
|
||||
"col": 7
|
||||
},
|
||||
{
|
||||
"pc": 456,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 28,
|
||||
"line": 26,
|
||||
"col": 33
|
||||
},
|
||||
{
|
||||
"pc": 462,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 28,
|
||||
"line": 26,
|
||||
"col": 36
|
||||
},
|
||||
{
|
||||
"pc": 468,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 28,
|
||||
"line": 26,
|
||||
"col": 41
|
||||
},
|
||||
{
|
||||
"pc": 474,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 28,
|
||||
"line": 26,
|
||||
"col": 20
|
||||
},
|
||||
{
|
||||
"pc": 480,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 28,
|
||||
"line": 26,
|
||||
"col": 20
|
||||
},
|
||||
{
|
||||
"pc": 488,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 29,
|
||||
"line": 27,
|
||||
"col": 16
|
||||
},
|
||||
{
|
||||
"pc": 494,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 29,
|
||||
"line": 27,
|
||||
"col": 7
|
||||
},
|
||||
{
|
||||
"pc": 500,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 29,
|
||||
"line": 27,
|
||||
"col": 7
|
||||
},
|
||||
{
|
||||
"pc": 508,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 21
|
||||
},
|
||||
{
|
||||
"pc": 514,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 520,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 522,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 528,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 530,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 26
|
||||
},
|
||||
{
|
||||
"pc": 536,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 542,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 544,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 550,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 552,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 554,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 31
|
||||
},
|
||||
{
|
||||
"pc": 560,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 566,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 568,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 33,
|
||||
"line": 30,
|
||||
"col": 11
|
||||
},
|
||||
{
|
||||
"pc": 570,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 34,
|
||||
"line": 31,
|
||||
"col": 16
|
||||
},
|
||||
{
|
||||
"pc": 576,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 34,
|
||||
"line": 31,
|
||||
"col": 19
|
||||
},
|
||||
{
|
||||
"pc": 582,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 34,
|
||||
"line": 31,
|
||||
"col": 22
|
||||
},
|
||||
{
|
||||
"pc": 588,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 34,
|
||||
"line": 31,
|
||||
"col": 25
|
||||
},
|
||||
{
|
||||
"pc": 594,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 34,
|
||||
"line": 31,
|
||||
"col": 28
|
||||
},
|
||||
{
|
||||
"pc": 600,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 34,
|
||||
"line": 31,
|
||||
"col": 3
|
||||
},
|
||||
{
|
||||
"pc": 606,
|
||||
"file": "test-cartridges/color-square/dev/src/main.ts",
|
||||
"line": 34,
|
||||
"line": 31,
|
||||
"col": 3
|
||||
}
|
||||
]
|
||||
1
test-cartridges/color-square/dev/prometeu-sdk
Symbolic link
1
test-cartridges/color-square/dev/prometeu-sdk
Symbolic link
@ -0,0 +1 @@
|
||||
../../../devtools/prometeu-sdk
|
||||
@ -1,12 +1,12 @@
|
||||
export function tick(): void {
|
||||
gfx.clear(color.black);
|
||||
gfx.clear(color.indigo);
|
||||
|
||||
gfx.fillRect(10, 10, 50, 50, color.red);
|
||||
gfx.drawLine(0, 0, 128, 128, color.white);
|
||||
gfx.drawCircle(64, 64, 20, color.blue);
|
||||
gfx.drawDisc(100, 100, 10, color.green, color.yellow);
|
||||
gfx.drawSquare(20, 100, 30, 30, color.cyan, color.magenta);
|
||||
|
||||
// Input
|
||||
if (pad.up.down) {
|
||||
log.write(2, "Up is down");
|
||||
}
|
||||
@ -14,13 +14,11 @@ export function tick(): void {
|
||||
if (pad.a.pressed) {
|
||||
audio.playSample(1, 0, 255, 128, 1.0);
|
||||
}
|
||||
|
||||
// Touch
|
||||
|
||||
if (touch.button.down) {
|
||||
gfx.drawCircle(touch.x, touch.y, 5, color.white);
|
||||
}
|
||||
|
||||
// PFs
|
||||
let h = fs.open("test.txt");
|
||||
if (h >= 0) {
|
||||
fs.write(h, "Hello Prometeu!");
|
||||
@ -29,7 +27,6 @@ export function tick(): void {
|
||||
fs.close(h);
|
||||
}
|
||||
|
||||
// PColor.rgb
|
||||
let c = color.rgb(255, 128, 0);
|
||||
gfx.fillRect(0, 0, 5, 5, c);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user