From b211434c9e93978672f4d30c456e4cfc355682a4 Mon Sep 17 00:00:00 2001 From: Nilton Constantino Date: Wed, 21 Jan 2026 08:00:47 +0000 Subject: [PATCH] fixes on test-cartridge --- .../{ => cartridge}/manifest.json | 0 .../color-square/{ => cartridge}/program.pbc | Bin .../color-square/dev/build/program.disasm.txt | 118 ++++ .../color-square/dev/build/program.pbc | Bin 0 -> 677 bytes .../color-square/dev/build/symbols.json | 644 ++++++++++++++++++ .../dev/node_modules/.package-lock.json | 18 + .../dev/node_modules/@prometeu/sdk | 1 + .../color-square/dev/package-lock.json | 23 + test-cartridges/color-square/dev/package.json | 5 + .../dev/prometeu-sdk/package.json | 6 + .../dev/prometeu-sdk/src/audio.ts | 2 + .../dev/prometeu-sdk/src/color.ts | 24 + .../color-square/dev/prometeu-sdk/src/fs.ts | 2 + .../color-square/dev/prometeu-sdk/src/gfx.ts | 1 + .../dev/prometeu-sdk/src/index.ts | 8 + .../dev/prometeu-sdk/src/input.ts | 4 + .../color-square/dev/prometeu-sdk/src/log.ts | 11 + .../dev/prometeu-sdk/src/system.ts | 2 + .../dev/prometeu-sdk/tsconfig.json | 4 + .../dev/prometeu-sdk/types/index.d.ts | 90 +++ test-cartridges/color-square/dev/src/main.ts | 35 + .../color-square/dev/tsconfig.json | 6 + 22 files changed, 1004 insertions(+) rename test-cartridges/color-square/{ => cartridge}/manifest.json (100%) rename test-cartridges/color-square/{ => cartridge}/program.pbc (100%) create mode 100644 test-cartridges/color-square/dev/build/program.disasm.txt create mode 100644 test-cartridges/color-square/dev/build/program.pbc create mode 100644 test-cartridges/color-square/dev/build/symbols.json create mode 100644 test-cartridges/color-square/dev/node_modules/.package-lock.json create mode 120000 test-cartridges/color-square/dev/node_modules/@prometeu/sdk create mode 100644 test-cartridges/color-square/dev/package-lock.json create mode 100644 test-cartridges/color-square/dev/package.json create mode 100644 test-cartridges/color-square/dev/prometeu-sdk/package.json create mode 100644 test-cartridges/color-square/dev/prometeu-sdk/src/audio.ts create mode 100644 test-cartridges/color-square/dev/prometeu-sdk/src/color.ts create mode 100644 test-cartridges/color-square/dev/prometeu-sdk/src/fs.ts create mode 100644 test-cartridges/color-square/dev/prometeu-sdk/src/gfx.ts create mode 100644 test-cartridges/color-square/dev/prometeu-sdk/src/index.ts create mode 100644 test-cartridges/color-square/dev/prometeu-sdk/src/input.ts create mode 100644 test-cartridges/color-square/dev/prometeu-sdk/src/log.ts create mode 100644 test-cartridges/color-square/dev/prometeu-sdk/src/system.ts create mode 100644 test-cartridges/color-square/dev/prometeu-sdk/tsconfig.json create mode 100644 test-cartridges/color-square/dev/prometeu-sdk/types/index.d.ts create mode 100644 test-cartridges/color-square/dev/src/main.ts create mode 100644 test-cartridges/color-square/dev/tsconfig.json diff --git a/test-cartridges/color-square/manifest.json b/test-cartridges/color-square/cartridge/manifest.json similarity index 100% rename from test-cartridges/color-square/manifest.json rename to test-cartridges/color-square/cartridge/manifest.json diff --git a/test-cartridges/color-square/program.pbc b/test-cartridges/color-square/cartridge/program.pbc similarity index 100% rename from test-cartridges/color-square/program.pbc rename to test-cartridges/color-square/cartridge/program.pbc diff --git a/test-cartridges/color-square/dev/build/program.disasm.txt b/test-cartridges/color-square/dev/build/program.disasm.txt new file mode 100644 index 00000000..e505a686 --- /dev/null +++ b/test-cartridges/color-square/dev/build/program.disasm.txt @@ -0,0 +1,118 @@ +00000000 Call U32(20) U32(0) +0000000A Pop +0000000C FrameSync +0000000E Jmp U32(0) +00000014 PushI32 U32(0) ; 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 +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 +000000F2 PushI32 U32(2) ; test-cartridges/color-square/dev/src/main.ts:11 +000000F8 PushConst U32(1) ; test-cartridges/color-square/dev/src/main.ts:11 +000000FE Syscall U32(20481) ; test-cartridges/color-square/dev/src/main.ts:11 +00000104 Pop ; test-cartridges/color-square/dev/src/main.ts:11 +00000106 Jmp U32(268) +0000010C PushI32 U32(4) ; test-cartridges/color-square/dev/src/main.ts:14 +00000112 Syscall U32(8194) ; test-cartridges/color-square/dev/src/main.ts:14 +00000118 JmpIfFalse U32(330) ; test-cartridges/color-square/dev/src/main.ts:14 +0000011E PushI32 U32(1) ; test-cartridges/color-square/dev/src/main.ts:15 +00000124 PushI32 U32(0) ; test-cartridges/color-square/dev/src/main.ts:15 +0000012A PushI32 U32(255) ; test-cartridges/color-square/dev/src/main.ts:15 +00000130 PushI32 U32(128) ; test-cartridges/color-square/dev/src/main.ts:15 +00000136 PushI32 U32(1) ; test-cartridges/color-square/dev/src/main.ts:15 +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 +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 +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 +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 +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 new file mode 100644 index 0000000000000000000000000000000000000000..8ade8115c74a1a5553ccc716e7665a6bea5508f2 GIT binary patch literal 677 zcmYjP!AiqW5S*m1Dk>O3csHB=fQTn)5lXxiPx0U%G@wvzun|3Y=%@DRCwLI*%H z9p>%so1NWBTi4Zn08cn3JhkP^x?HS2-@*~ou32|i-B%aRn9Q5ya#hyvtJkJ$KE}^E zP~(CRI_KDc1)gZwA}dslkZg}P7CYh>XptwDn!GboNwMQ@C)OabX7=K!$q^%Bi;&(I zR&(^Z+e5LorZP+{?{wCsbvW*fJF>kF_V%Ke5*Xk#la^c-V92>yEsuG630BLE`(RwL zdRJV5@y0N9UwgN>^f=axZ;La={5Hghp>_CoaG$xc3fqJ`%z%oVe$pLP{;1-$f|;q$ zG|OvLW>%Sp0e;AJR}l^RIyuRk-uu45KKYe?ggcV{l-UXI3GWSW*Hcy7PjJgfC)zgC Tz1*wrQCKBc{=eXl!1IWIw~RYt literal 0 HcmV?d00001 diff --git a/test-cartridges/color-square/dev/build/symbols.json b/test-cartridges/color-square/dev/build/symbols.json new file mode 100644 index 00000000..7bb3b613 --- /dev/null +++ b/test-cartridges/color-square/dev/build/symbols.json @@ -0,0 +1,644 @@ +[ + { + "pc": 20, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 2, + "col": 13 + }, + { + "pc": 26, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 2, + "col": 3 + }, + { + "pc": 32, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 2, + "col": 3 + }, + { + "pc": 34, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 3, + "col": 16 + }, + { + "pc": 40, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 3, + "col": 20 + }, + { + "pc": 46, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 3, + "col": 24 + }, + { + "pc": 52, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 3, + "col": 28 + }, + { + "pc": 58, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 3, + "col": 32 + }, + { + "pc": 64, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 3, + "col": 3 + }, + { + "pc": 70, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 3, + "col": 3 + }, + { + "pc": 72, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 4, + "col": 16 + }, + { + "pc": 78, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 4, + "col": 19 + }, + { + "pc": 84, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 4, + "col": 22 + }, + { + "pc": 90, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 4, + "col": 27 + }, + { + "pc": 96, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 4, + "col": 32 + }, + { + "pc": 102, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 4, + "col": 3 + }, + { + "pc": 108, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 4, + "col": 3 + }, + { + "pc": 110, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 5, + "col": 18 + }, + { + "pc": 116, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 5, + "col": 22 + }, + { + "pc": 122, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 5, + "col": 26 + }, + { + "pc": 128, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 5, + "col": 30 + }, + { + "pc": 134, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 5, + "col": 3 + }, + { + "pc": 140, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 5, + "col": 3 + }, + { + "pc": 142, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 6, + "col": 16 + }, + { + "pc": 148, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 6, + "col": 21 + }, + { + "pc": 154, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 6, + "col": 26 + }, + { + "pc": 160, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 6, + "col": 30 + }, + { + "pc": 166, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 6, + "col": 43 + }, + { + "pc": 172, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 6, + "col": 3 + }, + { + "pc": 178, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 6, + "col": 3 + }, + { + "pc": 180, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 7, + "col": 18 + }, + { + "pc": 186, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 7, + "col": 22 + }, + { + "pc": 192, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 7, + "col": 27 + }, + { + "pc": 198, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 7, + "col": 31 + }, + { + "pc": 204, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 7, + "col": 35 + }, + { + "pc": 210, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 7, + "col": 47 + }, + { + "pc": 216, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 7, + "col": 3 + }, + { + "pc": 222, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 7, + "col": 3 + }, + { + "pc": 224, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 10, + "col": 7 + }, + { + "pc": 230, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 10, + "col": 7 + }, + { + "pc": 236, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 10, + "col": 3 + }, + { + "pc": 242, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 11, + "col": 17 + }, + { + "pc": 248, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 11, + "col": 20 + }, + { + "pc": 254, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 11, + "col": 7 + }, + { + "pc": 260, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 11, + "col": 7 + }, + { + "pc": 268, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 14, + "col": 7 + }, + { + "pc": 274, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 14, + "col": 7 + }, + { + "pc": 280, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 14, + "col": 3 + }, + { + "pc": 286, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 15, + "col": 24 + }, + { + "pc": 292, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 15, + "col": 27 + }, + { + "pc": 298, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 15, + "col": 30 + }, + { + "pc": 304, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 15, + "col": 35 + }, + { + "pc": 310, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 15, + "col": 40 + }, + { + "pc": 316, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 15, + "col": 7 + }, + { + "pc": 322, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 15, + "col": 7 + }, + { + "pc": 330, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 19, + "col": 7 + }, + { + "pc": 336, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 19, + "col": 3 + }, + { + "pc": 342, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 20, + "col": 22 + }, + { + "pc": 348, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 20, + "col": 31 + }, + { + "pc": 354, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 20, + "col": 40 + }, + { + "pc": 360, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 20, + "col": 43 + }, + { + "pc": 366, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 20, + "col": 7 + }, + { + "pc": 372, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 20, + "col": 7 + }, + { + "pc": 380, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 24, + "col": 19 + }, + { + "pc": 386, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 24, + "col": 11 + }, + { + "pc": 392, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 25, + "col": 7 + }, + { + "pc": 398, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 25, + "col": 12 + }, + { + "pc": 404, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 25, + "col": 7 + }, + { + "pc": 406, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 25, + "col": 3 + }, + { + "pc": 412, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 26, + "col": 16 + }, + { + "pc": 418, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 26, + "col": 19 + }, + { + "pc": 424, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 26, + "col": 7 + }, + { + "pc": 430, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 26, + "col": 7 + }, + { + "pc": 432, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 27, + "col": 29 + }, + { + "pc": 438, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 27, + "col": 21 + }, + { + "pc": 444, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 28, + "col": 11 + }, + { + "pc": 450, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 28, + "col": 7 + }, + { + "pc": 456, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 28, + "col": 33 + }, + { + "pc": 462, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 28, + "col": 36 + }, + { + "pc": 468, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 28, + "col": 41 + }, + { + "pc": 474, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 28, + "col": 20 + }, + { + "pc": 480, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 28, + "col": 20 + }, + { + "pc": 488, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 29, + "col": 16 + }, + { + "pc": 494, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 29, + "col": 7 + }, + { + "pc": 500, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 29, + "col": 7 + }, + { + "pc": 508, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 21 + }, + { + "pc": 514, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 11 + }, + { + "pc": 520, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 11 + }, + { + "pc": 522, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 11 + }, + { + "pc": 528, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 11 + }, + { + "pc": 530, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 26 + }, + { + "pc": 536, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 11 + }, + { + "pc": 542, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 11 + }, + { + "pc": 544, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 11 + }, + { + "pc": 550, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 11 + }, + { + "pc": 552, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 11 + }, + { + "pc": 554, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 31 + }, + { + "pc": 560, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 11 + }, + { + "pc": 566, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 11 + }, + { + "pc": 568, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 33, + "col": 11 + }, + { + "pc": 570, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 34, + "col": 16 + }, + { + "pc": 576, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 34, + "col": 19 + }, + { + "pc": 582, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 34, + "col": 22 + }, + { + "pc": 588, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 34, + "col": 25 + }, + { + "pc": 594, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 34, + "col": 28 + }, + { + "pc": 600, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 34, + "col": 3 + }, + { + "pc": 606, + "file": "test-cartridges/color-square/dev/src/main.ts", + "line": 34, + "col": 3 + } +] \ No newline at end of file diff --git a/test-cartridges/color-square/dev/node_modules/.package-lock.json b/test-cartridges/color-square/dev/node_modules/.package-lock.json new file mode 100644 index 00000000..4ab7ac74 --- /dev/null +++ b/test-cartridges/color-square/dev/node_modules/.package-lock.json @@ -0,0 +1,18 @@ +{ + "name": "dev", + "lockfileVersion": 3, + "requires": true, + "packages": { + "../prometeu-sdk": { + "extraneous": true + }, + "node_modules/@prometeu/sdk": { + "resolved": "prometeu-sdk", + "link": true + }, + "prometeu-sdk": { + "name": "@prometeu/sdk", + "version": "0.1.0" + } + } +} diff --git a/test-cartridges/color-square/dev/node_modules/@prometeu/sdk b/test-cartridges/color-square/dev/node_modules/@prometeu/sdk new file mode 120000 index 00000000..db84ed5e --- /dev/null +++ b/test-cartridges/color-square/dev/node_modules/@prometeu/sdk @@ -0,0 +1 @@ +../../prometeu-sdk \ No newline at end of file diff --git a/test-cartridges/color-square/dev/package-lock.json b/test-cartridges/color-square/dev/package-lock.json new file mode 100644 index 00000000..bab7fe6c --- /dev/null +++ b/test-cartridges/color-square/dev/package-lock.json @@ -0,0 +1,23 @@ +{ + "name": "dev", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@prometeu/sdk": "file:./prometeu-sdk" + } + }, + "../prometeu-sdk": { + "extraneous": true + }, + "node_modules/@prometeu/sdk": { + "resolved": "prometeu-sdk", + "link": true + }, + "prometeu-sdk": { + "name": "@prometeu/sdk", + "version": "0.1.0" + } + } +} diff --git a/test-cartridges/color-square/dev/package.json b/test-cartridges/color-square/dev/package.json new file mode 100644 index 00000000..0cac7547 --- /dev/null +++ b/test-cartridges/color-square/dev/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "@prometeu/sdk": "file:./prometeu-sdk" + } +} \ No newline at end of file diff --git a/test-cartridges/color-square/dev/prometeu-sdk/package.json b/test-cartridges/color-square/dev/prometeu-sdk/package.json new file mode 100644 index 00000000..7d382c93 --- /dev/null +++ b/test-cartridges/color-square/dev/prometeu-sdk/package.json @@ -0,0 +1,6 @@ +{ + "name": "@prometeu/sdk", + "version": "0.1.0", + "main": "src/index.ts", + "types": "types/index.d.ts" +} diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/audio.ts b/test-cartridges/color-square/dev/prometeu-sdk/src/audio.ts new file mode 100644 index 00000000..f555e559 --- /dev/null +++ b/test-cartridges/color-square/dev/prometeu-sdk/src/audio.ts @@ -0,0 +1,2 @@ +export const Audio = audio; +export type Audio = Prometeu.Audio; diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/color.ts b/test-cartridges/color-square/dev/prometeu-sdk/src/color.ts new file mode 100644 index 00000000..869b97a6 --- /dev/null +++ b/test-cartridges/color-square/dev/prometeu-sdk/src/color.ts @@ -0,0 +1,24 @@ +export type Color565 = Prometeu.Color565; + +function clamp8(n: number): number { + return n < 0 ? 0 : n > 255 ? 255 : n | 0; +} + +export const Color: Prometeu.Color = { + black: 0x0000 as Color565, + white: 0xffff as Color565, + red: 0xf800 as Color565, + green: 0x07e0 as Color565, + blue: 0x001f as Color565, + yellow: 0xffe0 as Color565, + cyan: 0x07ff as Color565, + magenta: 0xf81f as Color565, + + rgb(r: number, g: number, b: number): Color565 { + r = clamp8(r); g = clamp8(g); b = clamp8(b); + const r5 = (r >> 3) & 0x1f; + const g6 = (g >> 2) & 0x3f; + const b5 = (b >> 3) & 0x1f; + return ((r5 << 11) | (g6 << 5) | b5) as Color565; + }, +}; diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/fs.ts b/test-cartridges/color-square/dev/prometeu-sdk/src/fs.ts new file mode 100644 index 00000000..c9306b80 --- /dev/null +++ b/test-cartridges/color-square/dev/prometeu-sdk/src/fs.ts @@ -0,0 +1,2 @@ +export const Fs = fs; +export type Fs = Prometeu.Fs; diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/gfx.ts b/test-cartridges/color-square/dev/prometeu-sdk/src/gfx.ts new file mode 100644 index 00000000..bdea5f4a --- /dev/null +++ b/test-cartridges/color-square/dev/prometeu-sdk/src/gfx.ts @@ -0,0 +1 @@ +export type Gfx = Prometeu.Gfx; \ No newline at end of file diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/index.ts b/test-cartridges/color-square/dev/prometeu-sdk/src/index.ts new file mode 100644 index 00000000..3f6710fe --- /dev/null +++ b/test-cartridges/color-square/dev/prometeu-sdk/src/index.ts @@ -0,0 +1,8 @@ +export { Color } from "./color"; +export { Pad, Touch } from "./input"; +export { Gfx } from "./gfx"; +export { System } from "./system"; +export { Audio } from "./audio"; +export { Fs } from "./fs"; +export { Log, LogLevel } from "./log"; +export type { Color565 } from "./color"; diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/input.ts b/test-cartridges/color-square/dev/prometeu-sdk/src/input.ts new file mode 100644 index 00000000..15b7419b --- /dev/null +++ b/test-cartridges/color-square/dev/prometeu-sdk/src/input.ts @@ -0,0 +1,4 @@ + + +export const Pad: Prometeu.Pad = pad; +export const Touch: Prometeu.Touch = touch; diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/log.ts b/test-cartridges/color-square/dev/prometeu-sdk/src/log.ts new file mode 100644 index 00000000..fc65a17d --- /dev/null +++ b/test-cartridges/color-square/dev/prometeu-sdk/src/log.ts @@ -0,0 +1,11 @@ +export const Log = log; +export type Log = Prometeu.Log; + +export enum LogLevel { + Trace = 0, + Debug = 1, + Info = 2, + Warn = 3, + Error = 4, + Fatal = 5, +} diff --git a/test-cartridges/color-square/dev/prometeu-sdk/src/system.ts b/test-cartridges/color-square/dev/prometeu-sdk/src/system.ts new file mode 100644 index 00000000..3be42c53 --- /dev/null +++ b/test-cartridges/color-square/dev/prometeu-sdk/src/system.ts @@ -0,0 +1,2 @@ +export const System = system; +export type System = Prometeu.System; diff --git a/test-cartridges/color-square/dev/prometeu-sdk/tsconfig.json b/test-cartridges/color-square/dev/prometeu-sdk/tsconfig.json new file mode 100644 index 00000000..88ccffe7 --- /dev/null +++ b/test-cartridges/color-square/dev/prometeu-sdk/tsconfig.json @@ -0,0 +1,4 @@ +{ + "compilerOptions": { + } +} diff --git a/test-cartridges/color-square/dev/prometeu-sdk/types/index.d.ts b/test-cartridges/color-square/dev/prometeu-sdk/types/index.d.ts new file mode 100644 index 00000000..050c7a54 --- /dev/null +++ b/test-cartridges/color-square/dev/prometeu-sdk/types/index.d.ts @@ -0,0 +1,90 @@ +export {}; // that is a module, should not include any other scope here + +declare global { + namespace Prometeu { + type Color565 = number & { readonly __brand: "Color565" }; + + interface Button { + readonly down: boolean; + readonly pressed: boolean; + readonly released: boolean; + readonly holdFrames: number; + } + + interface Pad { + readonly up: Button; + readonly down: Button; + readonly left: Button; + readonly right: Button; + readonly a: Button; + readonly b: Button; + readonly x: Button; + readonly y: Button; + readonly l: Button; + readonly r: Button; + readonly start: Button; + readonly select: Button; + } + + interface Touch { + readonly x: number; + readonly y: number; + readonly button: Button; + } + + interface Gfx { + fillRect(x: number, y: number, w: number, h: number, color: Color565): void; + drawLine(x1: number, y1: number, x2: number, y2: number, color: Color565): void; + drawCircle(x: number, y: number, r: number, color: Color565): void; + drawDisc(x: number, y: number, r: number, borderColor: Color565, fillColor: Color565): void; + drawSquare(x: number, y: number, w: number, h: number, borderColor: Color565, fillColor: Color565): void; + clear(color: Color565): void; + } + + interface Color { + readonly black: Color565; + readonly white: Color565; + readonly red: Color565; + readonly green: Color565; + readonly blue: Color565; + readonly yellow: Color565; + readonly cyan: Color565; + readonly magenta: Color565; + rgb(r: number, g: number, b: number): Color565; + } + + interface System { + hasCart(): boolean; + } + + interface Audio { + playSample(sampleId: number, voiceId: number, volume: number, pan: number, pitch: number): void; + } + + interface Fs { + open(path: string): number; + read(handle: number): string | null; + write(handle: number, content: string): boolean; + close(handle: number): void; + listDir(path: string): string | null; + exists(path: string): boolean; + delete(path: string): boolean; + } + + interface Log { + write(level: number, msg: string): void; + writeTag(level: number, tag: number, msg: string): void; + } + } + + export const pad: Prometeu.Pad; + export const touch: Prometeu.Touch; + export const gfx: Prometeu.Gfx; + export const audio: Prometeu.Audio; + export const fs: Prometeu.Fs; + export const log: Prometeu.Log; + export const color: Prometeu.Color; + export const system: Prometeu.System; + +} + diff --git a/test-cartridges/color-square/dev/src/main.ts b/test-cartridges/color-square/dev/src/main.ts new file mode 100644 index 00000000..f9d55bed --- /dev/null +++ b/test-cartridges/color-square/dev/src/main.ts @@ -0,0 +1,35 @@ +export function tick(): void { + gfx.clear(color.black); + 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"); + } + + 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!"); + let content = fs.read(h); + if (content) log.writeTag(2, 101, content); + 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 diff --git a/test-cartridges/color-square/dev/tsconfig.json b/test-cartridges/color-square/dev/tsconfig.json new file mode 100644 index 00000000..150e9440 --- /dev/null +++ b/test-cartridges/color-square/dev/tsconfig.json @@ -0,0 +1,6 @@ +{ + "compilerOptions": { + "typeRoots": [ + "./prometeu-sdk/types", "./node_modules/@types"] + } +} \ No newline at end of file