From ff0a35dbe50c0664c7263c51e46dadfc9af364ac Mon Sep 17 00:00:00 2001 From: Redo Date: Thu, 27 Oct 2022 20:44:46 -0600 Subject: [PATCH] add halfwidth text bricks --- bricks/blb/ScreenBottom.blb | 446 +++++++++++++++++++++++++++++++ bricks/blb/ScreenTop.blb | 344 ++++++++++++++++++++++++ bricks/execall.cs | 4 +- bricks/inputs/keyboard-input.lua | 2 + bricks/outputs/TextBrick2.cs | 25 +- bricks/special/rom.cs | 7 +- 6 files changed, 822 insertions(+), 6 deletions(-) create mode 100644 bricks/blb/ScreenBottom.blb create mode 100644 bricks/blb/ScreenTop.blb diff --git a/bricks/blb/ScreenBottom.blb b/bricks/blb/ScreenBottom.blb new file mode 100644 index 0000000..26faccf --- /dev/null +++ b/bricks/blb/ScreenBottom.blb @@ -0,0 +1,446 @@ +1 1 1 +SPECIAL + +b + +1 + +0 0 0 +1 1 1 +COVERAGE: +1 : 1 +1 : 1 +1 : 1 +1 : 1 +1 : 1 +1 : 1 +---------------- TOP QUADS ---------------- +5 + +TEX:TOP +POSITION: +0.5 0 1.5 +0 -0 1.5 +0 0.5 1.5 +0.5 0.5 1.5 +UV COORDS: +-0 0.5 +0.5 0.5 +0.5 1 +-0 1 +NORMALS: +0 0 1 +0 0 1 +0 0 1 +0 0 1 + +TEX:SIDE +POSITION: +0 -0 1.5 +0 -0 -0.5 +-0.000001 0.5 -0.5 +0 0.5 1.5 +UV COORDS: +1.064453 -0.032227 +1.064453 1.032227 +-0.064453 1.032227 +-0.064453 -0.032227 +NORMALS: +-1 -0.000001 0.000001 +-1 -0.000001 0.000001 +-1 -0.000001 0.000001 +-1 -0.000001 0.000001 + +TEX:SIDE +POSITION: +0.5 -0.5 0.5 +-0.5 -0.5 0.5 +-0.5 -0 0.5 +0.5 0 0.5 +UV COORDS: +-0.064453 1.021484 +-0.064453 -0.021484 +1.064453 -0.021484 +1.064453 1.021484 +NORMALS: +0 0 1 +0 0 1 +0 0 1 +0 0 1 + +TEX:SIDE +POSITION: +0.5 0 1.5 +0.5 0 0.5 +0 -0 0.5 +0 -0 1.5 +UV COORDS: +1.064453 -0.085938 +1.064453 1.085938 +-0.064453 1.085938 +-0.064453 -0.085938 +NORMALS: +0.000001 -1 0 +0.000001 -1 0 +0.000001 -1 0 +0.000001 -1 0 + +TEX:SIDE +POSITION: +-0.5 -0 -0.5 +-0 0 -0.5 +0 0 0.5 +-0.5 -0 0.5 +UV COORDS: +1.064453 1.085938 +-0.064453 1.085938 +-0.064453 -0.085938 +1.064453 -0.085938 +NORMALS: +-0.000001 1 -0 +-0.000001 1 -0 +-0.000001 1 -0 +-0.000001 1 -0 +---------------- BOTTOM QUADS ---------------- +8 + +TEX:BOTTOMEDGE +POSITION: +-0.5 -0.5 -0.5 +-0 -0 -0.5 +-0.5 -0 -0.5 +-0.5 -0 -0.5 +UV COORDS: +1 0 +0.5 0.5 +0.5 0 +0.5 0 +NORMALS: +-0 0 -1 +-0 0 -1 +-0 0 -1 +-0 0 -1 + +TEX:BOTTOMEDGE +POSITION: +0.5 0.5 -0.5 +0 -0 -0.5 +0.5 0 -0.5 +0.5 0 -0.5 +UV COORDS: +1 0 +0.5 0.5 +0.5 0 +0.5 0 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:BOTTOMEDGE +POSITION: +0.5 -0.5 -0.5 +-0 -0 -0.5 +0 -0.5 -0.5 +0 -0.5 -0.5 +UV COORDS: +1 0 +0.5 0.5 +0.5 0 +0.5 0 +NORMALS: +0 -0 -1 +0 -0 -1 +0 -0 -1 +0 -0 -1 + +TEX:BOTTOMEDGE +POSITION: +-0 -0 -0.5 +-0.5 -0.5 -0.5 +-0 -0.5 -0.5 +-0 -0.5 -0.5 +UV COORDS: +0.5 0.5 +0 0 +0.5 0 +0.5 0 +NORMALS: +-0 -0 -1 +-0 -0 -1 +-0 -0 -1 +-0 -0 -1 + +TEX:BOTTOMEDGE +POSITION: +0 -0 -0.5 +0.5 0.5 -0.5 +0 0.5 -0.5 +0 0.5 -0.5 +UV COORDS: +0.5 0.5 +0 0 +0.5 0 +0.5 0 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:BOTTOMEDGE +POSITION: +-0.5 0.5 -0.5 +0 -0 -0.5 +-0 0.5 -0.5 +-0 0.5 -0.5 +UV COORDS: +1 0 +0.5 0.5 +0.5 0 +0.5 0 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:BOTTOMEDGE +POSITION: +0 -0 -0.5 +-0.5 0.5 -0.5 +-0.5 -0 -0.5 +-0.5 -0 -0.5 +UV COORDS: +0.5 0.5 +0 0 +0.5 0 +0.5 0 +NORMALS: +-0 0 -1 +-0 0 -1 +-0 0 -1 +-0 0 -1 + +TEX:BOTTOMEDGE +POSITION: +-0 -0 -0.5 +0.5 -0.5 -0.5 +0.5 -0 -0.5 +0.5 -0 -0.5 +UV COORDS: +0.5 0.5 +0 0 +0.5 0 +0.5 0 +NORMALS: +0 -0 -1 +0 -0 -1 +0 -0 -1 +0 -0 -1 +---------------- NORTH QUADS ---------------- +1 + +TEX:PRINT +POSITION: +0 0.5 1.5 +-0.000001 0.5 -0.5 +0.5 0.5 -0.5 +0.5 0.5 1.5 +UV COORDS: +1 0 +1 1 +0 1 +0 0 +NORMALS: +-0.000001 1 -0 +-0.000001 1 -0 +-0.000001 1 -0 +-0.000001 1 -0 +---------------- EAST QUADS ---------------- +2 + +TEX:SIDE +POSITION: +0.5 0 -0.5 +0.5 0 1.5 +0.5 0.5 1.5 +0.5 0.5 -0.5 +UV COORDS: +0.5 1.032227 +0.5 -0.032227 +1 -0.032227 +1 1.032227 +NORMALS: +1 0 -0.000001 +1 0 -0.000001 +1 0 -0.000001 +1 0 -0.000001 + +TEX:SIDE +POSITION: +0.5 -0.5 -0.5 +0.5 -0.5 0.5 +0.5 0 0.5 +0.5 0 -0.5 +UV COORDS: +0 1.032227 +0 0.5 +0.5 0.5 +0.5 1.032227 +NORMALS: +1 0 -0.000001 +1 0 -0.000001 +1 0 -0.000001 +1 0 -0.000001 +---------------- SOUTH QUADS ---------------- +6 + +TEX:SIDE +POSITION: +-0.4 -0.64 0.3 +-0.4 -0.5 0.3 +0.4 -0.5 0.3 +0.4 -0.64 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.4 -0.64 -0.3 +-0.4 -0.64 -0.3 +-0.4 -0.64 0.3 +0.4 -0.64 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.4 -0.64 -0.3 +0.4 -0.5 -0.3 +-0.4 -0.5 -0.3 +-0.4 -0.64 -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.4 -0.64 -0.3 +-0.4 -0.5 -0.3 +-0.4 -0.5 0.3 +-0.4 -0.64 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.4 -0.64 0.3 +0.4 -0.5 0.3 +0.4 -0.5 -0.3 +0.4 -0.64 -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.5 -0.5 0.5 +0.5 -0.5 -0.5 +-0.5 -0.5 -0.5 +-0.5 -0.5 0.5 +UV COORDS: +1 0.532227 +1 1.032227 +0 1.032226 +0 0.532227 +NORMALS: +0 -1 0 +0 -1 0 +0 -1 0 +0 -1 0 +---------------- WEST QUADS ---------------- +1 + +TEX:SIDE +POSITION: +-0.5 -0.5 0.5 +-0.5 -0.5 -0.5 +-0.5 -0 -0.5 +-0.5 -0 0.5 +UV COORDS: +1 0.532227 +1 1.032227 +0 1.032227 +0 0.532227 +NORMALS: +-1 -0 0 +-1 -0 0 +-1 -0 0 +-1 -0 0 +---------------- OMNI QUADS ---------------- +0 diff --git a/bricks/blb/ScreenTop.blb b/bricks/blb/ScreenTop.blb new file mode 100644 index 0000000..67f9866 --- /dev/null +++ b/bricks/blb/ScreenTop.blb @@ -0,0 +1,344 @@ +1 1 1 +SPECIAL + +b + +1 + +0 0 0 +1 1 1 +COVERAGE: +1 : 1 +1 : 1 +1 : 1 +1 : 1 +1 : 1 +1 : 1 +---------------- TOP QUADS ---------------- +1 + +TEX:TOP +POSITION: +0.500001 0.499999 0.5 +0.5 -0.5 0.5 +-0.5 -0.5 0.5 +-0.5 0.500001 0.5 +UV COORDS: +0 1 +0 0 +1 0 +1 1 +NORMALS: +0 0 1 +0 0 1 +0 0 1 +0 0 1 +---------------- BOTTOM QUADS ---------------- +6 + +TEX:SIDE +POSITION: +-0 -0 -1.5 +-0 -0 0.5 +0 0.5 0.5 +-0 0.5 -1.5 +UV COORDS: +0.25 0.25 +0.75 0.25 +0.75 0.75 +0.25 0.75 +NORMALS: +1 -0.000001 -0 +1 -0.000001 -0 +1 -0.000001 -0 +1 -0.000001 -0 + +TEX:SIDE +POSITION: +-0.5 0 -1.5 +-0.5 0 -0.5 +-0 -0 -0.5 +-0 -0 -1.5 +UV COORDS: +0.25 0.25 +0.75 0.25 +0.75 0.75 +0.25 0.75 +NORMALS: +-0.000001 -1 -0 +-0.000001 -1 -0 +-0.000001 -1 -0 +-0.000001 -1 -0 + +TEX:SIDE +POSITION: +-0.5 -0.5 -0.5 +0.5 -0.5 -0.5 +0.5 -0 -0.5 +-0.5 0 -0.5 +UV COORDS: +0.25 0.25 +0.75 0.25 +0.75 0.75 +0.25 0.75 +NORMALS: +0 0 -1 +0 0 -1 +0 0 -1 +0 0 -1 + +TEX:BOTTOMEDGE +POSITION: +-0.5 0.5 -1.5 +-0 0 -1.5 +-0 0.5 -1.5 +-0 0.5 -1.5 +UV COORDS: +1 0 +0.5 0.5 +0.5 0 +0.5 0 +NORMALS: +-0 0 -1 +-0 0 -1 +-0 0 -1 +-0 0 -1 + +TEX:BOTTOMEDGE +POSITION: +-0 0 -1.5 +-0.5 0.5 -1.5 +-0.5 0 -1.5 +-0.5 0 -1.5 +UV COORDS: +0.5 0.5 +0 0 +0.5 0 +0.5 0 +NORMALS: +-0 0 -1 +-0 0 -1 +-0 0 -1 +-0 0 -1 + +TEX:SIDE +POSITION: +0.5 -0 0.5 +-0 0 0.5 +-0 0 -0.5 +0.5 -0 -0.5 +UV COORDS: +0.25 0.25 +0.75 0.25 +0.75 0.75 +0.25 0.75 +NORMALS: +0.000001 1 0 +0.000001 1 0 +0.000001 1 0 +0.000001 1 0 +---------------- NORTH QUADS ---------------- +1 + +TEX:PRINT +POSITION: +-0 0.5 -1.5 +0 0.5 0.5 +-0.5 0.5 0.5 +-0.5 0.5 -1.5 +UV COORDS: +0 1 +0 0 +1 0 +1 1 +NORMALS: +0.000001 1 0 +0.000001 1 0 +0.000001 1 0 +0.000001 1 0 +---------------- EAST QUADS ---------------- +1 + +TEX:SIDE +POSITION: +0.5 -0.5 -0.5 +0.5 -0.5 0.5 +0.5 -0 0.5 +0.5 -0 -0.5 +UV COORDS: +0 0.467773 +0 -0.032227 +0.5 -0.032227 +0.5 0.467773 +NORMALS: +1 0 0 +1 0 0 +1 0 0 +1 0 0 +---------------- SOUTH QUADS ---------------- +6 + +TEX:SIDE +POSITION: +-0.5 -0.5 -0.5 +-0.5 -0.5 0.5 +0.5 -0.5 0.5 +0.5 -0.5 -0.5 +UV COORDS: +0 0.467773 +0 -0.032227 +1 -0.032227 +1 0.467773 +NORMALS: +-0 -1 -0 +-0 -1 -0 +-0 -1 -0 +-0 -1 -0 + +TEX:SIDE +POSITION: +0.4 -0.64 -0.3 +0.4 -0.5 -0.3 +-0.4 -0.5 -0.3 +-0.4 -0.64 -0.3 +UV COORDS: +0.4375 0.4375 +0.5625 0.4375 +0.5625 0.5625 +0.4375 0.5625 +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.4 -0.64 0.3 +0.4 -0.64 0.3 +0.4 -0.64 -0.3 +-0.4 -0.64 -0.3 +UV COORDS: +0.4375 0.4375 +0.5625 0.4375 +0.5625 0.5625 +0.4375 0.5625 +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.4 -0.64 0.3 +-0.4 -0.5 0.3 +0.4 -0.5 0.3 +0.4 -0.64 0.3 +UV COORDS: +0.4375 0.4375 +0.5625 0.4375 +0.5625 0.5625 +0.4375 0.5625 +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.4 -0.64 0.3 +0.4 -0.5 0.3 +0.4 -0.5 -0.3 +0.4 -0.64 -0.3 +UV COORDS: +0.4375 0.4375 +0.5625 0.4375 +0.5625 0.5625 +0.4375 0.5625 +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.4 -0.64 -0.3 +-0.4 -0.5 -0.3 +-0.4 -0.5 0.3 +-0.4 -0.64 0.3 +UV COORDS: +0.4375 0.4375 +0.5625 0.4375 +0.5625 0.5625 +0.4375 0.5625 +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 ---------------- +2 + +TEX:SIDE +POSITION: +-0.5 0 0.5 +-0.5 0 -1.5 +-0.5 0.5 -1.5 +-0.5 0.5 0.5 +UV COORDS: +0.5 -0.032227 +0.5 1.032227 +0 1.032227 +0 -0.032227 +NORMALS: +-1 0 0 +-1 0 0 +-1 0 0 +-1 0 0 + +TEX:SIDE +POSITION: +-0.5 -0.5 0.5 +-0.5 -0.5 -0.5 +-0.5 0 -0.5 +-0.5 0 0.5 +UV COORDS: +1 -0.032227 +1 0.5 +0.5 0.5 +0.5 -0.032227 +NORMALS: +-1 -0 0 +-1 -0 0 +-1 -0 0 +-1 -0 0 +---------------- OMNI QUADS ---------------- +0 diff --git a/bricks/execall.cs b/bricks/execall.cs index d841cfc..91e85e7 100644 --- a/bricks/execall.cs +++ b/bricks/execall.cs @@ -26,5 +26,5 @@ exec("./outputs/TextBrick2.cs"); exec("./special/EventGate.cs"); exec("./special/rom.cs"); -exec("./big/cpu1.cs"); -exec("./big/ram8x12.cs"); +//exec("./big/cpu1.cs"); +//exec("./big/ram8x12.cs"); diff --git a/bricks/inputs/keyboard-input.lua b/bricks/inputs/keyboard-input.lua index a33e9c5..7526fc2 100644 --- a/bricks/inputs/keyboard-input.lua +++ b/bricks/inputs/keyboard-input.lua @@ -11,6 +11,8 @@ return function(gate, argv) local code = keycode+(status and 128 or 0) + if #gate.queueBits > 1024 return end + queueBit(gate, 1) for bitidx = 1, 8 do local val = bit.band(code, 0x80) diff --git a/bricks/outputs/TextBrick2.cs b/bricks/outputs/TextBrick2.cs index 33a4889..606d027 100644 --- a/bricks/outputs/TextBrick2.cs +++ b/bricks/outputs/TextBrick2.cs @@ -14,7 +14,7 @@ datablock fxDTSBrickData(LogicGate_TextBrick2_Data){ isLogicInput = false; logicUIName = "Text Brick"; - logicUIDesc = "Takes 7-bit serial input for ascii character, format 1xxxxxxx10"; + logicUIDesc = "Takes 7-bit serial input for ascii character, format 1xxxxxxx10, MSB first"; logicInit = lualogic_readfile($LuaLogic::Path @ "bricks/outputs/text2-init.lua" ); logicUpdate = lualogic_readfile($LuaLogic::Path @ "bricks/outputs/text2-update.lua"); @@ -33,3 +33,26 @@ lualogic_registergatedefinition("LogicGate_TextBrick2_Data"); function LogicGate_TextBrick2_Data::LuaLogic_Callback(%data, %brick, %printname){ %brick.setPrint(lualogic_getprint(%printname)); } + + +// Pah's half-width prints + +datablock fxDtsBrickData(LogicGate_TextBrick2Top2_Data : LogicGate_TextBrick2_Data) { + brickFile = $LuaLogic::Path @ "bricks/blb/ScreenTop.blb"; + uiName = "Text Brick Right"; + logicPortPos[0] = "0 0 0"; +}; +lualogic_registergatedefinition("LogicGate_TextBrick2Top2_Data"); +function LogicGate_TextBrick2Top2_Data::LuaLogic_Callback(%data, %brick, %printname){ + LogicGate_TextBrick2_Data::LuaLogic_Callback(%data, %brick, %printname); +} + +datablock fxDtsBrickData(LogicGate_TextBrick2Bottom2_Data : LogicGate_TextBrick2_Data) { + brickFile = $LuaLogic::Path @ "bricks/blb/ScreenBottom.blb"; + uiName = "Text Brick Left"; + logicPortPos[0] = "0 0 0"; +}; +lualogic_registergatedefinition("LogicGate_TextBrick2Bottom2_Data"); +function LogicGate_TextBrick2Bottom2_Data::LuaLogic_Callback(%data, %brick, %printname){ + LogicGate_TextBrick2_Data::LuaLogic_Callback(%data, %brick, %printname); +} diff --git a/bricks/special/rom.cs b/bricks/special/rom.cs index 27a2129..24f45a2 100644 --- a/bricks/special/rom.cs +++ b/bricks/special/rom.cs @@ -21,7 +21,7 @@ package lualogic_rom_update { function fxDTSBrick::onRemove(%brick) { parent::onRemove(%brick); %brick.lualogic_rom_delete = 1; - lualogic_rom_updatebrick(%brick); + lualogic_rom_updatebrick(%brick, 1); } function fxDtsBrick::setRaycasting(%brick, %val) { parent::setRaycasting(%brick, %val); @@ -30,9 +30,10 @@ package lualogic_rom_update { }; schedule(0, 0, activatePackage, lualogic_rom_update); -function lualogic_rom_updatebrick(%brick) { +function lualogic_rom_updatebrick(%brick, %instant) { cancel(%brick.lualogic_rom_updatebrick_schedule); - %brick.lualogic_rom_updatebrick_schedule = schedule(100, 0, lualogic_rom_updatebrick_final, %brick); + if(%instant) lualogic_rom_updatebrick_final(%brick); + else %brick.lualogic_rom_updatebrick_schedule = schedule(100, 0, lualogic_rom_updatebrick_final, %brick); } function lualogic_rom_updatebrick_final(%brick) { if(!isObject(%brick)) return;