fixes on test-cartridge

This commit is contained in:
Nilton Constantino 2026-01-21 08:00:47 +00:00
parent a7750c1af6
commit b211434c9e
No known key found for this signature in database
22 changed files with 1004 additions and 0 deletions

View File

@ -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

Binary file not shown.

View File

@ -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
}
]

View File

@ -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"
}
}
}

View File

@ -0,0 +1 @@
../../prometeu-sdk

View File

@ -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"
}
}
}

View File

@ -0,0 +1,5 @@
{
"dependencies": {
"@prometeu/sdk": "file:./prometeu-sdk"
}
}

View File

@ -0,0 +1,6 @@
{
"name": "@prometeu/sdk",
"version": "0.1.0",
"main": "src/index.ts",
"types": "types/index.d.ts"
}

View File

@ -0,0 +1,2 @@
export const Audio = audio;
export type Audio = Prometeu.Audio;

View File

@ -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;
},
};

View File

@ -0,0 +1,2 @@
export const Fs = fs;
export type Fs = Prometeu.Fs;

View File

@ -0,0 +1 @@
export type Gfx = Prometeu.Gfx;

View File

@ -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";

View File

@ -0,0 +1,4 @@
export const Pad: Prometeu.Pad = pad;
export const Touch: Prometeu.Touch = touch;

View File

@ -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,
}

View File

@ -0,0 +1,2 @@
export const System = system;
export type System = Prometeu.System;

View File

@ -0,0 +1,4 @@
{
"compilerOptions": {
}
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -0,0 +1,6 @@
{
"compilerOptions": {
"typeRoots": [
"./prometeu-sdk/types", "./node_modules/@types"]
}
}