diff --git a/README.md b/README.md index a56e64cc..50c7b8ab 100644 --- a/README.md +++ b/README.md @@ -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. --- diff --git a/crates/prometeu-compiler/src/codegen/codegen.rs b/crates/prometeu-compiler/src/codegen/codegen.rs index 1aeaccd3..380e36c7 100644 --- a/crates/prometeu-compiler/src/codegen/codegen.rs +++ b/crates/prometeu-compiler/src/codegen/codegen.rs @@ -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.") { diff --git a/crates/prometeu-core/src/model/color.rs b/crates/prometeu-core/src/model/color.rs index 3d211636..06d2a25e 100644 --- a/crates/prometeu-core/src/model/color.rs +++ b/crates/prometeu-core/src/model/color.rs @@ -60,4 +60,9 @@ impl Color { pub const fn raw(self) -> u16 { self.0 } + + pub const fn hex(self) -> i32 { + self.0 as i32 + } + } diff --git a/crates/prometeu/Cargo.toml b/crates/prometeu/Cargo.toml index 06466feb..6f488fcb 100644 --- a/crates/prometeu/Cargo.toml +++ b/crates/prometeu/Cargo.toml @@ -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] diff --git a/devtools-protocol/README.md b/devtools/debugger-protocol/README.md similarity index 92% rename from devtools-protocol/README.md rename to devtools/debugger-protocol/README.md index d4a2d064..b659d7b3 100644 --- a/devtools-protocol/README.md +++ b/devtools/debugger-protocol/README.md @@ -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 diff --git a/devtools-protocol/examples/basic_session.jsonl b/devtools/debugger-protocol/examples/basic_session.jsonl similarity index 100% rename from devtools-protocol/examples/basic_session.jsonl rename to devtools/debugger-protocol/examples/basic_session.jsonl diff --git a/devtools-protocol/examples/breakpoint_flow.jsonl b/devtools/debugger-protocol/examples/breakpoint_flow.jsonl similarity index 100% rename from devtools-protocol/examples/breakpoint_flow.jsonl rename to devtools/debugger-protocol/examples/breakpoint_flow.jsonl diff --git a/devtools-protocol/examples/handshake.jsonl b/devtools/debugger-protocol/examples/handshake.jsonl similarity index 100% rename from devtools-protocol/examples/handshake.jsonl rename to devtools/debugger-protocol/examples/handshake.jsonl diff --git a/devtools-protocol/protocol.json b/devtools/debugger-protocol/protocol.json similarity index 100% rename from devtools-protocol/protocol.json rename to devtools/debugger-protocol/protocol.json diff --git a/test-cartridges/color-square/dev/prometeu-sdk/package.json b/devtools/prometeu-sdk/package.json similarity index 100% rename from test-cartridges/color-square/dev/prometeu-sdk/package.json rename to devtools/prometeu-sdk/package.json diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/audio.ts b/devtools/prometeu-sdk/src/audio.ts similarity index 100% rename from test-cartridges/color-square/dev/prometeu-sdk/src/audio.ts rename to devtools/prometeu-sdk/src/audio.ts diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/color.ts b/devtools/prometeu-sdk/src/color.ts similarity index 95% rename from test-cartridges/color-square/dev/prometeu-sdk/src/color.ts rename to devtools/prometeu-sdk/src/color.ts index 869b97a6..6269dbb0 100644 --- a/test-cartridges/color-square/dev/prometeu-sdk/src/color.ts +++ b/devtools/prometeu-sdk/src/color.ts @@ -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); diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/fs.ts b/devtools/prometeu-sdk/src/fs.ts similarity index 100% rename from test-cartridges/color-square/dev/prometeu-sdk/src/fs.ts rename to devtools/prometeu-sdk/src/fs.ts diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/gfx.ts b/devtools/prometeu-sdk/src/gfx.ts similarity index 100% rename from test-cartridges/color-square/dev/prometeu-sdk/src/gfx.ts rename to devtools/prometeu-sdk/src/gfx.ts diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/index.ts b/devtools/prometeu-sdk/src/index.ts similarity index 100% rename from test-cartridges/color-square/dev/prometeu-sdk/src/index.ts rename to devtools/prometeu-sdk/src/index.ts diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/input.ts b/devtools/prometeu-sdk/src/input.ts similarity index 100% rename from test-cartridges/color-square/dev/prometeu-sdk/src/input.ts rename to devtools/prometeu-sdk/src/input.ts diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/log.ts b/devtools/prometeu-sdk/src/log.ts similarity index 100% rename from test-cartridges/color-square/dev/prometeu-sdk/src/log.ts rename to devtools/prometeu-sdk/src/log.ts diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/system.ts b/devtools/prometeu-sdk/src/system.ts similarity index 100% rename from test-cartridges/color-square/dev/prometeu-sdk/src/system.ts rename to devtools/prometeu-sdk/src/system.ts diff --git a/test-cartridges/color-square/dev/prometeu-sdk/tsconfig.json b/devtools/prometeu-sdk/tsconfig.json similarity index 100% rename from test-cartridges/color-square/dev/prometeu-sdk/tsconfig.json rename to devtools/prometeu-sdk/tsconfig.json diff --git a/test-cartridges/color-square/dev/prometeu-sdk/types/index.d.ts b/devtools/prometeu-sdk/types/index.d.ts similarity index 98% rename from test-cartridges/color-square/dev/prometeu-sdk/types/index.d.ts rename to devtools/prometeu-sdk/types/index.d.ts index 050c7a54..0af34f22 100644 --- a/test-cartridges/color-square/dev/prometeu-sdk/types/index.d.ts +++ b/devtools/prometeu-sdk/types/index.d.ts @@ -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; } diff --git a/docs/README.md b/docs/README.md index c59c8dff..620cd2fe 100644 --- a/docs/README.md +++ b/docs/README.md @@ -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. diff --git a/scripts/clean-all.sh b/scripts/clean-all.sh new file mode 100755 index 00000000..71ce3a26 --- /dev/null +++ b/scripts/clean-all.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -euo pipefail + +cargo clean +rm -rf dist-staging \ No newline at end of file diff --git a/scripts/local-dist.sh b/scripts/local-dist.sh index 78ad400a..45dd1b06 100755 --- a/scripts/local-dist.sh +++ b/scripts/local-dist.sh @@ -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..." diff --git a/test-cartridges/color-square/cartridge/program.pbc b/test-cartridges/color-square/cartridge/program.pbc index 8ade8115..17424bfb 100644 Binary files a/test-cartridges/color-square/cartridge/program.pbc and b/test-cartridges/color-square/cartridge/program.pbc differ diff --git a/test-cartridges/color-square/dev/build/program.disasm.txt b/test-cartridges/color-square/dev/build/program.disasm.txt index e505a686..57dbbe4a 100644 --- a/test-cartridges/color-square/dev/build/program.disasm.txt +++ b/test-cartridges/color-square/dev/build/program.disasm.txt @@ -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 diff --git a/test-cartridges/color-square/dev/build/program.pbc b/test-cartridges/color-square/dev/build/program.pbc index 8ade8115..17424bfb 100644 Binary files a/test-cartridges/color-square/dev/build/program.pbc and b/test-cartridges/color-square/dev/build/program.pbc differ diff --git a/test-cartridges/color-square/dev/build/symbols.json b/test-cartridges/color-square/dev/build/symbols.json index 7bb3b613..f5ac5c5d 100644 --- a/test-cartridges/color-square/dev/build/symbols.json +++ b/test-cartridges/color-square/dev/build/symbols.json @@ -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 } ] \ No newline at end of file diff --git a/test-cartridges/color-square/dev/prometeu-sdk b/test-cartridges/color-square/dev/prometeu-sdk new file mode 120000 index 00000000..2cd47c91 --- /dev/null +++ b/test-cartridges/color-square/dev/prometeu-sdk @@ -0,0 +1 @@ +../../../devtools/prometeu-sdk \ No newline at end of file diff --git a/test-cartridges/color-square/dev/src/main.ts b/test-cartridges/color-square/dev/src/main.ts index f9d55bed..3e80ef92 100644 --- a/test-cartridges/color-square/dev/src/main.ts +++ b/test-cartridges/color-square/dev/src/main.ts @@ -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); } \ No newline at end of file