uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

commit 0027296839eb50a7663aeff4e0c9c925e162003a
parent 77a00f7a7e6c1e60631a42daea8cc59afa402bb7
Author: neauoire <aliceffekt@gmail.com>
Date:   Mon,  1 Mar 2021 08:55:16 -0800

Improved hover example

Diffstat:
Mbuild.sh | 2+-
Memulator.c | 6+++++-
Mexamples/dev.console.usm | 6+++---
Mexamples/gui.hover.usm | 29+++++++++++++++--------------
4 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/build.sh b/build.sh @@ -20,5 +20,5 @@ cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werr # cc uxn.c emulator.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -L/usr/local/lib -lSDL2 -o bin/emulator # run -./bin/assembler examples/dev.mouse.usm bin/boot.rom +./bin/assembler examples/gui.hover.usm bin/boot.rom ./bin/emulator bin/boot.rom diff --git a/emulator.c b/emulator.c @@ -329,7 +329,11 @@ doctrl(Uxn *u, SDL_Event *event, int z) Uint8 console_poke(Uint8 *m, Uint16 ptr, Uint8 b0, Uint8 b1) { - printf("%c", b1); + switch(b0) { + case 0x08: printf("%c", b1); break; + case 0x09: printf("%02x", b1); break; + case 0x0a: printf("%d", b1); break; + } fflush(stdout); (void)m; (void)ptr; diff --git a/examples/dev.console.usm b/examples/dev.console.usm @@ -1,6 +1,6 @@ ( hello world ) -&Console { pad 8 stdio 1 } +&Console { pad 8 char 1 byte 1 } |0100 @RESET @@ -11,11 +11,11 @@ BRK @print-label ( text ) @cliloop - DUP2 LDR =dev/console.stdio ( write pointer value to console ) + DUP2 LDR =dev/console.char ( write pointer value to console ) #0001 ADD2 ( increment string pointer ) DUP2 LDR #00 NEQ ,cliloop ROT JMP? POP2 ( while *ptr!=0 goto loop ) POP2 - + RTS @text1 [ Hello World ] <1 .00 ( add text to memory, return 1 byte, add null byte ) diff --git a/examples/gui.hover.usm b/examples/gui.hover.usm @@ -22,31 +22,32 @@ BRK - |0200 @FRAME ,pointer_icn =cursor #01 =color - + ( matrix comparison ) ~dev/mouse.x ~r1.x1 GTH2 ~dev/mouse.x ~r1.x2 LTH2 #0101 EQU2 ~dev/mouse.y ~r1.y1 GTH2 ~dev/mouse.y ~r1.y2 LTH2 #0101 EQU2 - #0101 NEQ2 ,skip1 ROT JMP? POP2 #02 =color ,hand_icn =cursor @skip1 - ~r1.x1 ~r1.y1 ~r1.x2 ~r1.y2 ~color ,line-rect JSR + #0101 NEQ2 ,draw1 ROT JMP? POP2 #02 =color ,hand_icn =cursor + @draw1 ~r1.x1 ~r1.y1 ~r1.x2 ~r1.y2 ~color ,line-rect JSR #01 =color - - ~dev/mouse.x ~r2.x1 GTH2 ~dev/mouse.x ~r2.x2 LTH2 #0101 EQU2 - ~dev/mouse.y ~r2.y1 GTH2 ~dev/mouse.y ~r2.y2 LTH2 #0101 EQU2 - #0101 NEQ2 ,skip2 ROT JMP? POP2 #02 =color ,hand_icn =cursor @skip2 - ~r2.x1 ~r2.y1 ~r2.x2 ~r2.y2 ~color ,line-rect JSR + ( 2-step comparison ) + ,draw2 ~dev/mouse.x ~r2.x1 GTH2 ~dev/mouse.x ~r2.x2 LTH2 #0101 NEQ2 JMP? POP2 + ,draw2 ~dev/mouse.y ~r2.y1 GTH2 ~dev/mouse.y ~r2.y2 LTH2 #0101 NEQ2 JMP? POP2 + #03 =color ,hand_icn =cursor + @draw2 ~r2.x1 ~r2.y1 ~r2.x2 ~r2.y2 ~color ,line-rect JSR #01 =color - - ~dev/mouse.x ~r3.x1 GTH2 ~dev/mouse.x ~r3.x2 LTH2 #0101 EQU2 - ~dev/mouse.y ~r3.y1 GTH2 ~dev/mouse.y ~r3.y2 LTH2 #0101 EQU2 - #0101 NEQ2 ,skip3 ROT JMP? POP2 #02 =color ,hand_icn =cursor @skip3 - ~r3.x1 ~r3.y1 ~r3.x2 ~r3.y2 ~color ,line-rect JSR + ( 4-step comparison ) + ,draw3 ~dev/mouse.x ~r3.x1 LTH2 JMP? POP2 + ,draw3 ~dev/mouse.x ~r3.x2 GTH2 JMP? POP2 + ,draw3 ~dev/mouse.y ~r3.y1 LTH2 JMP? POP2 + ,draw3 ~dev/mouse.y ~r3.y2 GTH2 JMP? POP2 + #02 =color ,hand_icn =cursor + @draw3 ~r3.x1 ~r3.y1 ~r3.x2 ~r3.y2 ~color ,line-rect JSR ,draw-cursor JSR