From de586ff6086503b59b5e7536b473fff3920eba83 Mon Sep 17 00:00:00 2001 From: Redo Date: Wed, 12 May 2021 21:20:24 -0500 Subject: [PATCH] add rom brick --- bricks/execall.cs | 1 + bricks/gen/execall.cs | 1 + bricks/gen/newbricks/ROM 16x16.blb | 1220 ++++++++++++++++++++++++++++ bricks/gen/newcode/ROM 16x16.cs | 118 +++ bricks/gen/newicons/ROM 16x16.png | Bin 0 -> 735 bytes bricks/inputs/keyboard.cs | 2 +- bricks/special/rom.cs | 150 ++++ 7 files changed, 1491 insertions(+), 1 deletion(-) create mode 100644 bricks/gen/newbricks/ROM 16x16.blb create mode 100644 bricks/gen/newcode/ROM 16x16.cs create mode 100644 bricks/gen/newicons/ROM 16x16.png create mode 100644 bricks/special/rom.cs diff --git a/bricks/execall.cs b/bricks/execall.cs index 0283858..e814117 100644 --- a/bricks/execall.cs +++ b/bricks/execall.cs @@ -23,6 +23,7 @@ exec("./outputs/Pixel3.cs"); exec("./outputs/TextBrick2.cs"); exec("./special/EventGate.cs"); +exec("./special/rom.cs"); exec("./big/cpu1.cs"); exec("./big/ram8x12.cs"); diff --git a/bricks/gen/execall.cs b/bricks/gen/execall.cs index 837f791..e494f06 100644 --- a/bricks/gen/execall.cs +++ b/bricks/gen/execall.cs @@ -271,3 +271,4 @@ exec("./newcode/Demux 5 Bit.cs"); exec("./newcode/Demux 5 Bit Vertical.cs"); exec("./newcode/Demux 6 Bit.cs"); exec("./newcode/Demux 6 Bit Vertical.cs"); +exec("./newcode/ROM 16x16.cs"); diff --git a/bricks/gen/newbricks/ROM 16x16.blb b/bricks/gen/newbricks/ROM 16x16.blb new file mode 100644 index 0000000..3003d38 --- /dev/null +++ b/bricks/gen/newbricks/ROM 16x16.blb @@ -0,0 +1,1220 @@ +16 16 1 +SPECIAL + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +bbbbbbbbbbbbbbbb + +1 + +0 0 0 +16 16 1 +COVERAGE: +1 : 256 +1 : 256 +1 : 16 +1 : 16 +1 : 16 +1 : 16 +----------------top quads: +1 + +TEX:PRINT +POSITION: +8 8 0.5 +8 -8 0.5 +-8 -8 0.5 +-8 8 0.5 +UV COORDS: +1 0 +1 1 +0 1 +0 0 +NORMALS: +0 0 1 +0 0 1 +0 0 1 +0 0 1 +----------------bottom quads: +5 + +TEX:BOTTOMLOOP +POSITION: +7.5 -7.5 -0.5 +7.5 7.5 -0.5 +-7.5 7.5 -0.5 +-7.5 -7.5 -0.5 +UV COORDS: +0 0 +0 15 +15 15 +15 0 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:BOTTOMEDGE +POSITION: +-8 -8 -0.5 +8 -8 -0.5 +7.5 -7.5 -0.5 +-7.5 -7.5 -0.5 +UV COORDS: +-0.5 0 +15.5 0 +15 0.5 +0 0.5 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:BOTTOMEDGE +POSITION: +8 8 -0.5 +-8 8 -0.5 +-7.5 7.5 -0.5 +7.5 7.5 -0.5 +UV COORDS: +-0.5 0 +15.5 0 +15 0.5 +0 0.5 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:BOTTOMEDGE +POSITION: +8 -8 -0.5 +8 8 -0.5 +7.5 7.5 -0.5 +7.5 -7.5 -0.5 +UV COORDS: +-0.5 0 +15.5 0 +15 0.5 +0 0.5 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:BOTTOMEDGE +POSITION: +-8 8 -0.5 +-8 -8 -0.5 +-7.5 -7.5 -0.5 +-7.5 7.5 -0.5 +UV COORDS: +-0.5 0 +15.5 0 +15 0.5 +0 0.5 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 +----------------north quads: +6 + +TEX:SIDE +POSITION: +-8 8 0.5 +-8 8 -0.5 +8 8 -0.5 +8 8 0.5 +UV COORDS: +0.981201171875 -0.0859375 +0.981201171875 1.0859375 +0.018798828125 1.0859375 +0.018798828125 -0.0859375 +NORMALS: +0 1 0 +0 1 0 +0 1 0 +0 1 0 + +TEX:SIDE +POSITION: +7.82 8.25 -0.24 +7.18 8.25 -0.24 +7.1 8 -0.3 +7.9 8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +-0 0.095561 -0.995424 +-0 0.095561 -0.995424 +-0 0.095561 -0.995424 +-0 0.095561 -0.995424 + +TEX:SIDE +POSITION: +7.82 8.25 -0.24 +7.82 8.25 0.24 +7.18 8.25 0.24 +7.18 8.25 -0.24 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 1 0 +0 1 0 +0 1 0 +0 1 0 + +TEX:SIDE +POSITION: +7.18 8.25 0.24 +7.82 8.25 0.24 +7.9 8 0.3 +7.1 8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +-0 0.095561 0.995424 +-0 0.095561 0.995424 +-0 0.095561 0.995424 +-0 0.095561 0.995424 + +TEX:SIDE +POSITION: +7.18 8.25 -0.24 +7.18 8.25 0.24 +7.1 8 0.3 +7.1 8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +-0.952424 0.304776 0 +-0.952424 0.304776 0 +-0.952424 0.304776 0 +-0.952424 0.304776 0 + +TEX:SIDE +POSITION: +7.82 8.25 0.24 +7.82 8.25 -0.24 +7.9 8 -0.3 +7.9 8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0.952424 0.304776 0 +0.952424 0.304776 0 +0.952424 0.304776 0 +0.952424 0.304776 0 +----------------east quads: +1 + +TEX:SIDE +POSITION: +8 -8 0.5 +8 8 0.5 +8 8 -0.5 +8 -8 -0.5 +UV COORDS: +0.018798828125 -0.0859375 +0.981201171875 -0.0859375 +0.981201171875 1.0859375 +0.018798828125 1.0859375 +NORMALS: +1 0 0 +1 0 0 +1 0 0 +1 0 0 +----------------south quads: +41 + +TEX:SIDE +POSITION: +8 -8 0.5 +8 -8 -0.5 +-8 -8 -0.5 +-8 -8 0.5 +UV COORDS: +0.981201171875 -0.0859375 +0.981201171875 1.0859375 +0.018798828125 1.0859375 +0.018798828125 -0.0859375 +NORMALS: +0 -1 0 +0 -1 0 +0 -1 0 +0 -1 0 + +TEX:SIDE +POSITION: +7.1 -8.14 -0.3 +7.9 -8.14 -0.3 +7.9 -8 -0.3 +7.1 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:SIDE +POSITION: +7.1 -8.14 -0.3 +7.1 -8.14 0.3 +7.9 -8.14 0.3 +7.9 -8.14 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 -1 0 +0 -1 0 +0 -1 0 +0 -1 0 + +TEX:SIDE +POSITION: +7.9 -8.14 0.3 +7.1 -8.14 0.3 +7.1 -8 0.3 +7.9 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 1 +0 0 1 +0 0 1 +0 0 1 + +TEX:SIDE +POSITION: +7.9 -8.14 -0.3 +7.9 -8.14 0.3 +7.9 -8 0.3 +7.9 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +1 0 0 +1 0 0 +1 0 0 +1 0 0 + +TEX:SIDE +POSITION: +7.1 -8.14 0.3 +7.1 -8.14 -0.3 +7.1 -8 -0.3 +7.1 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +-1 0 0 +-1 0 0 +-1 0 0 +-1 0 0 + +TEX:SIDE +POSITION: +6.1 -8.14 -0.3 +6.9 -8.14 -0.3 +6.9 -8 -0.3 +6.1 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:SIDE +POSITION: +6.1 -8.14 -0.3 +6.1 -8.14 0.3 +6.9 -8.14 0.3 +6.9 -8.14 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 -1 0 +0 -1 0 +0 -1 0 +0 -1 0 + +TEX:SIDE +POSITION: +6.9 -8.14 0.3 +6.1 -8.14 0.3 +6.1 -8 0.3 +6.9 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 1 +0 0 1 +0 0 1 +0 0 1 + +TEX:SIDE +POSITION: +6.9 -8.14 -0.3 +6.9 -8.14 0.3 +6.9 -8 0.3 +6.9 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +1 0 0 +1 0 0 +1 0 0 +1 0 0 + +TEX:SIDE +POSITION: +6.1 -8.14 0.3 +6.1 -8.14 -0.3 +6.1 -8 -0.3 +6.1 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +-1 0 0 +-1 0 0 +-1 0 0 +-1 0 0 + +TEX:SIDE +POSITION: +5.1 -8.14 -0.3 +5.9 -8.14 -0.3 +5.9 -8 -0.3 +5.1 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:SIDE +POSITION: +5.1 -8.14 -0.3 +5.1 -8.14 0.3 +5.9 -8.14 0.3 +5.9 -8.14 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 -1 0 +0 -1 0 +0 -1 0 +0 -1 0 + +TEX:SIDE +POSITION: +5.9 -8.14 0.3 +5.1 -8.14 0.3 +5.1 -8 0.3 +5.9 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 1 +0 0 1 +0 0 1 +0 0 1 + +TEX:SIDE +POSITION: +5.9 -8.14 -0.3 +5.9 -8.14 0.3 +5.9 -8 0.3 +5.9 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +1 0 0 +1 0 0 +1 0 0 +1 0 0 + +TEX:SIDE +POSITION: +5.1 -8.14 0.3 +5.1 -8.14 -0.3 +5.1 -8 -0.3 +5.1 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +-1 0 0 +-1 0 0 +-1 0 0 +-1 0 0 + +TEX:SIDE +POSITION: +4.1 -8.14 -0.3 +4.9 -8.14 -0.3 +4.9 -8 -0.3 +4.1 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:SIDE +POSITION: +4.1 -8.14 -0.3 +4.1 -8.14 0.3 +4.9 -8.14 0.3 +4.9 -8.14 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 -1 0 +0 -1 0 +0 -1 0 +0 -1 0 + +TEX:SIDE +POSITION: +4.9 -8.14 0.3 +4.1 -8.14 0.3 +4.1 -8 0.3 +4.9 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 1 +0 0 1 +0 0 1 +0 0 1 + +TEX:SIDE +POSITION: +4.9 -8.14 -0.3 +4.9 -8.14 0.3 +4.9 -8 0.3 +4.9 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +1 0 0 +1 0 0 +1 0 0 +1 0 0 + +TEX:SIDE +POSITION: +4.1 -8.14 0.3 +4.1 -8.14 -0.3 +4.1 -8 -0.3 +4.1 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +-1 0 0 +-1 0 0 +-1 0 0 +-1 0 0 + +TEX:SIDE +POSITION: +3.1 -8.14 -0.3 +3.9 -8.14 -0.3 +3.9 -8 -0.3 +3.1 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:SIDE +POSITION: +3.1 -8.14 -0.3 +3.1 -8.14 0.3 +3.9 -8.14 0.3 +3.9 -8.14 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 -1 0 +0 -1 0 +0 -1 0 +0 -1 0 + +TEX:SIDE +POSITION: +3.9 -8.14 0.3 +3.1 -8.14 0.3 +3.1 -8 0.3 +3.9 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 1 +0 0 1 +0 0 1 +0 0 1 + +TEX:SIDE +POSITION: +3.9 -8.14 -0.3 +3.9 -8.14 0.3 +3.9 -8 0.3 +3.9 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +1 0 0 +1 0 0 +1 0 0 +1 0 0 + +TEX:SIDE +POSITION: +3.1 -8.14 0.3 +3.1 -8.14 -0.3 +3.1 -8 -0.3 +3.1 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +-1 0 0 +-1 0 0 +-1 0 0 +-1 0 0 + +TEX:SIDE +POSITION: +2.1 -8.14 -0.3 +2.9 -8.14 -0.3 +2.9 -8 -0.3 +2.1 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:SIDE +POSITION: +2.1 -8.14 -0.3 +2.1 -8.14 0.3 +2.9 -8.14 0.3 +2.9 -8.14 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 -1 0 +0 -1 0 +0 -1 0 +0 -1 0 + +TEX:SIDE +POSITION: +2.9 -8.14 0.3 +2.1 -8.14 0.3 +2.1 -8 0.3 +2.9 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 1 +0 0 1 +0 0 1 +0 0 1 + +TEX:SIDE +POSITION: +2.9 -8.14 -0.3 +2.9 -8.14 0.3 +2.9 -8 0.3 +2.9 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +1 0 0 +1 0 0 +1 0 0 +1 0 0 + +TEX:SIDE +POSITION: +2.1 -8.14 0.3 +2.1 -8.14 -0.3 +2.1 -8 -0.3 +2.1 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +-1 0 0 +-1 0 0 +-1 0 0 +-1 0 0 + +TEX:SIDE +POSITION: +1.1 -8.14 -0.3 +1.9 -8.14 -0.3 +1.9 -8 -0.3 +1.1 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:SIDE +POSITION: +1.1 -8.14 -0.3 +1.1 -8.14 0.3 +1.9 -8.14 0.3 +1.9 -8.14 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 -1 0 +0 -1 0 +0 -1 0 +0 -1 0 + +TEX:SIDE +POSITION: +1.9 -8.14 0.3 +1.1 -8.14 0.3 +1.1 -8 0.3 +1.9 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 1 +0 0 1 +0 0 1 +0 0 1 + +TEX:SIDE +POSITION: +1.9 -8.14 -0.3 +1.9 -8.14 0.3 +1.9 -8 0.3 +1.9 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +1 0 0 +1 0 0 +1 0 0 +1 0 0 + +TEX:SIDE +POSITION: +1.1 -8.14 0.3 +1.1 -8.14 -0.3 +1.1 -8 -0.3 +1.1 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +-1 0 0 +-1 0 0 +-1 0 0 +-1 0 0 + +TEX:SIDE +POSITION: +0.1 -8.14 -0.3 +0.9 -8.14 -0.3 +0.9 -8 -0.3 +0.1 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:SIDE +POSITION: +0.1 -8.14 -0.3 +0.1 -8.14 0.3 +0.9 -8.14 0.3 +0.9 -8.14 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 -1 0 +0 -1 0 +0 -1 0 +0 -1 0 + +TEX:SIDE +POSITION: +0.9 -8.14 0.3 +0.1 -8.14 0.3 +0.1 -8 0.3 +0.9 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +0 0 1 +0 0 1 +0 0 1 +0 0 1 + +TEX:SIDE +POSITION: +0.9 -8.14 -0.3 +0.9 -8.14 0.3 +0.9 -8 0.3 +0.9 -8 -0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +1 0 0 +1 0 0 +1 0 0 +1 0 0 + +TEX:SIDE +POSITION: +0.1 -8.14 0.3 +0.1 -8.14 -0.3 +0.1 -8 -0.3 +0.1 -8 0.3 +UV COORDS: +0.5 0.5 +0.5 0.5 +0.5 0.5 +0.5 0.5 +COLORS: +1 1 1 1 +1 1 1 1 +1 1 1 1 +1 1 1 1 +NORMALS: +-1 0 0 +-1 0 0 +-1 0 0 +-1 0 0 +----------------west quads: +1 + +TEX:SIDE +POSITION: +-8 -8 -0.5 +-8 8 -0.5 +-8 8 0.5 +-8 -8 0.5 +UV COORDS: +0.981201171875 1.0859375 +0.018798828125 1.0859375 +0.018798828125 -0.0859375 +0.981201171875 -0.0859375 +NORMALS: +-1 0 0 +-1 0 0 +-1 0 0 +-1 0 0 +----------------omni quads: +0 \ No newline at end of file diff --git a/bricks/gen/newcode/ROM 16x16.cs b/bricks/gen/newcode/ROM 16x16.cs new file mode 100644 index 0000000..f872bb1 --- /dev/null +++ b/bricks/gen/newcode/ROM 16x16.cs @@ -0,0 +1,118 @@ + +datablock fxDtsBrickData(LogicGate_Rom16x16_Data){ + brickFile = $LuaLogic::Path @ "bricks/gen/newbricks/ROM 16x16.blb"; + iconName = $LuaLogic::Path @ "bricks/gen/newicons/ROM 16x16"; + + category = "Logic Bricks"; + subCategory = "Special I/O"; + uiName = "ROM 16x16"; + logicUIName = "ROM 16x16"; + logicUIDesc = ""; + + hasPrint = 1; + printAspectRatio = "Logic"; + + logicBrickSize = "16 16 1"; + orientationFix = 3; + + isLogic = true; + isLogicGate = true; + isLogicInput = false; + + logicInit = + "return function(gate) " @ + " gate.romdata = {} " @ + " for i = 0, 255 do " @ + " gate.romdata[i] = false " @ + " end " @ + "end" + ; + logicInput = + "return function(gate, args) " @ + " local data = args[1] " @ + " for i = 1, #data do " @ + " local c = data:sub(i, i) " @ + " gate.romdata[i-1] = (c==\"1\") " @ + " end " @ + " Gate.queue(gate, 0) " @ + "end" + ; + logicUpdate = + "return function(gate) " @ + " local addr = (Gate.getportstate(gate, 1) and 1 or 0) " @ + " + (Gate.getportstate(gate, 2) and 2 or 0) " @ + " + (Gate.getportstate(gate, 3) and 4 or 0) " @ + " + (Gate.getportstate(gate, 4) and 8 or 0) " @ + " + (Gate.getportstate(gate, 5) and 16 or 0) " @ + " + (Gate.getportstate(gate, 6) and 32 or 0) " @ + " + (Gate.getportstate(gate, 7) and 64 or 0) " @ + " + (Gate.getportstate(gate, 8) and 128 or 0) " @ + " Gate.setportstate(gate, 9, gate.romdata[addr]) " @ + "end" + ; + logicGlobal = ""; + + numLogicPorts = 9; + + isLogicRom = true; + logicRomY = 16; + logicRomX = 16; + + logicPortType[0] = 1; + logicPortPos[0] = "15 -15 0"; + logicPortDir[0] = 3; + logicPortUIName[0] = "Addr0"; + logicPortCauseUpdate[0] = true; + + logicPortType[1] = 1; + logicPortPos[1] = "13 -15 0"; + logicPortDir[1] = 3; + logicPortUIName[1] = "Addr1"; + logicPortCauseUpdate[1] = true; + + logicPortType[2] = 1; + logicPortPos[2] = "11 -15 0"; + logicPortDir[2] = 3; + logicPortUIName[2] = "Addr2"; + logicPortCauseUpdate[2] = true; + + logicPortType[3] = 1; + logicPortPos[3] = "9 -15 0"; + logicPortDir[3] = 3; + logicPortUIName[3] = "Addr3"; + logicPortCauseUpdate[3] = true; + + logicPortType[4] = 1; + logicPortPos[4] = "7 -15 0"; + logicPortDir[4] = 3; + logicPortUIName[4] = "Addr4"; + logicPortCauseUpdate[4] = true; + + logicPortType[5] = 1; + logicPortPos[5] = "5 -15 0"; + logicPortDir[5] = 3; + logicPortUIName[5] = "Addr5"; + logicPortCauseUpdate[5] = true; + + logicPortType[6] = 1; + logicPortPos[6] = "3 -15 0"; + logicPortDir[6] = 3; + logicPortUIName[6] = "Addr6"; + logicPortCauseUpdate[6] = true; + + logicPortType[7] = 1; + logicPortPos[7] = "1 -15 0"; + logicPortDir[7] = 3; + logicPortUIName[7] = "Addr7"; + logicPortCauseUpdate[7] = true; + + logicPortType[8] = 0; + logicPortPos[8] = "15 15 0"; + logicPortDir[8] = 1; + logicPortUIName[8] = "Out"; + +}; + +function LogicGate_Rom16x16_Data::Logic_onAdd(%data, %brick) { + lualogic_rom_updatedata(%brick); +} diff --git a/bricks/gen/newicons/ROM 16x16.png b/bricks/gen/newicons/ROM 16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..afaff6199493b5fc288100ccc26ca65c50853c56 GIT binary patch literal 735 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z_iTM#WAE}&f7Vsvw{Of+WyCw z_$pHE#g=RU8~7pMrisP*uW`-X356@>iUpcQSk*MC|S}@`2AJIM5hgn13R7fn(%wsb+ zee}lmH#71CWB(j_Si6FMzTv^$7c}4NnMBs-&x+P|zH!d%_|(4>#s4dwo4(uTQjgyT zj^i5fuMCz|=lpu#==&{rk*sh)GECcZzT|Dvb%EYMsg0B8mOLVLDzwUQ8xOSqRvuew|V-x4u Q0TV8Rr>mdKI;Vst05H8*&;S4c literal 0 HcmV?d00001 diff --git a/bricks/inputs/keyboard.cs b/bricks/inputs/keyboard.cs index 190333d..1d258aa 100644 --- a/bricks/inputs/keyboard.cs +++ b/bricks/inputs/keyboard.cs @@ -2,7 +2,7 @@ datablock fxDTSBrickData(LogicGate_Keyboard_Data){ brickFile = $LuaLogic::Path @ "bricks/blb/keyboardgate.blb"; category = "Logic Bricks"; - subCategory = "Inputs"; + subCategory = "Special I/O"; uiName = "Input Keyboard"; iconName = $LuaLogic::Path @ "icons/Input Keyboard"; orientationFix = 3; diff --git a/bricks/special/rom.cs b/bricks/special/rom.cs new file mode 100644 index 0000000..7aa697f --- /dev/null +++ b/bricks/special/rom.cs @@ -0,0 +1,150 @@ + +function rom_reload() { + exec($Con::File); + exec($LuaLogic::Path @ "bricks/gen/newcode/ROM 16x16.cs"); +} + +package lualogic_rom_update { + function fxDtsBrick::onPlant(%brick) { + parent::onPlant(%brick); + lualogic_rom_createbrick(%brick); + } + function fxDtsBrick::onLoadPlant(%brick) { + parent::onLoadPlant(%brick); + lualogic_rom_createbrick(%brick); + } + function fxDTSBrick::onDeath(%brick) { + parent::onDeath(%brick); + if(%brick.lualogic_rom_affects) { + lualogic_rom_deletebrick(%brick); + } + } + function fxDTSBrick::onRemove(%brick) { + parent::onRemove(%brick); + if(%brick.lualogic_rom_affects) { + lualogic_rom_deletebrick(%brick); + } + } + function fxDtsBrick::setRaycasting(%brick, %val) { + parent::setRaycasting(%brick, %val); + if(%brick.lualogic_rom_affects) { + lualogic_rom_updatercbrick(%brick); + } + } +}; +schedule(0, 0, activatePackage, lualogic_rom_update); + +// lualogic_rom_affects: whether this brick is on top of a rom brick +// lualogic_rom_is: whether this brick is a rom brick + +function lualogic_rom_createbrick(%brick) { + %brick.lualogic_rom_delete = 0; + + //if rom: set is, set affects on any up bricks, compute data + if(%brick.getdatablock().isLogicRom) { + %brick.lualogic_rom_is = 1; + + %nub = 0; + for(%i=0; %i<%nub; %i++) { + %upbrick = %brick.getUpBrick(%i); + %upbrick.lualogic_rom_affects = 1; + } + + lualogic_rom_updatedata(%brick); + } + + // update any rom down bricks; if there are any, set affects + %ndb = %brick.getNumDownBricks(); + for(%i=0; %i<%ndb; %i++) { + %downbrick = %brick.getDownBrick(%i); + if(%downbrick.lualogic_rom_is) { + %brick.lualogic_rom_affects = 1; + lualogic_rom_updatedata(%downbrick); + } + } +} +function lualogic_rom_deletebrick(%brick) { + // update any rom down bricks + %brick.lualogic_rom_delete = 1; + %ndb = %brick.getNumDownBricks(); + for(%i=0; %i<%ndb; %i++) { + %downbrick = %brick.getDownBrick(%i); + if(%downbrick.lualogic_rom_is) { + lualogic_rom_updatedata(%downbrick); + } + } +} +function lualogic_rom_updatercbrick(%brick) { + // update any rom down bricks + %ndb = %brick.getNumDownBricks(); + for(%i=0; %i<%ndb; %i++) { + %downbrick = %brick.getDownBrick(%i); + if(%downbrick.lualogic_rom_is) { + lualogic_rom_updatedata(%downbrick); + } + } +} + +function lualogic_rom_rotate(%pos, %rot) { + %x = getWord(%pos, 0); + %y = getWord(%pos, 1); + %z = getWord(%pos, 2); + + %rot = %rot % 4; + if (%rot==0) { + return %x SPC %y SPC %z; + } else if(%rot==1) { + return %y SPC -%x SPC %z; + } else if(%rot==2) { + return -%x SPC -%y SPC %z; + } else if(%rot==3) { + return -%y SPC %x SPC %z; + } +} + +function lualogic_rom_updatedata(%brick) { + if(!%brick.lualogic_rom_updatedata_scheduled) { + schedule(1, 0, lualogic_rom_updatedata_final, %brick); + %brick.lualogic_rom_updatedata_scheduled = 1; + } +} + +function lualogic_rom_updatedata_final(%brick) { + if(!isObject(%brick) || %brick.lualogic_rom_delete) return; + + %brick.lualogic_rom_updatedata_scheduled = 0; + + %data = %brick.getDatablock(); + + %rx = %data.logicRomX; + %ry = %data.logicRomY; + + %brickpos = %brick.getPosition(); + %rot = (%brick.angleId + 1)%4; + + %data_str = ""; + + for(%x=0; %x<%rx; %x++) { + %line_str = ""; + for(%y=0; %y<%ry; %y++) { + %pos = (%x*0.5 - %rx/4 + 0.25) SPC (%y*0.5 - %ry/4 + 0.25) SPC 0; + %pos = lualogic_rom_rotate(%pos, %rot); + %pos = vectorAdd(%brickpos, %pos); + %ray = containerRaycast( + %pos, + vectorAdd(%pos, "0 0 0.2"), + $TypeMasks::FxBrickObjectType, + %brick + ); + %hit = getWord(%ray, 0); + if(isObject(%hit) && !%hit.lualogic_rom_delete && %hit.isRaycasting()) { + %line_str = %line_str @ "1"; + } else { + %line_str = %line_str @ "0"; + } + } + %data_str = %data_str @ %line_str; + } + + lualogic_sendinput(%brick, 1, %data_str); +}