uxn

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

commit b4a6a16da8bc32e2d4817ebeb32c227b81820128
parent 59035ab291949972e2de677f5de904e0c6c26c21
Author: Devine Lu Linvega <aliceffekt@gmail.com>
Date:   Wed,  7 Jun 2023 16:36:57 -0700

(wireworld.tal) Removed, moved to uxn-utils

Diffstat:
Dprojects/examples/demos/wireworld.tal | 257-------------------------------------------------------------------------------
1 file changed, 0 insertions(+), 257 deletions(-)

diff --git a/projects/examples/demos/wireworld.tal b/projects/examples/demos/wireworld.tal @@ -1,257 +0,0 @@ -( - wireworld - - A - conductor - B - tail - Sel - head - Start - clear - mouse1 - paint - mouse2 - erase - - RULES: - - electron head<3>, becomes electron tail<2> - - electron tail<2>, becomes conductor<1> - - conductor<1>, becomes electron head<3> - if there are exactly 1 or 2 electron heads around it. ) - -( devices ) - -|00 @System &vector $2 &wst $1 &rst $1 &pad $4 &r $2 &g $2 &b $2 &debug $1 &halt $1 -|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 -|80 @Controller &vector $2 &button $1 &key $1 &func $1 -|90 @Mouse &vector $2 &x $2 &y $2 &state $1 &pad $3 &modx $2 &mody $2 - -|0000 - - @color $1 - @pointer &x $2 &y $2 - @timer &frame $1 &play $1 - -( program ) - -|0100 ( -> ) - - ( theme ) - #0ff2 .System/r DEO2 - #0d46 .System/g DEO2 - #006f .System/b DEO2 - ( size ) - #0100 .Screen/width DEO2 - #0100 .Screen/height DEO2 - ( vectors ) - ;on-frame .Screen/vector DEO2 - ;on-mouse .Mouse/vector DEO2 - ;on-button .Controller/vector DEO2 - ( setup ) - #01 .timer/play STZ - #01 set-color - ( start ) - ;world ;get-addr/current STA2 - #1000 ;run/future STA2 - redraw - -BRK - -@on-frame ( -> ) - - .timer/play LDZ [ JMP BRK ] - ( every 4th ) - .timer/frame LDZk - #03 AND ?&no-run - run - &no-run - LDZk INC SWP STZ - -BRK - -@on-mouse ( -> ) - - ;pointer-icn .Screen/addr DEO2 - ( clear last cursor ) - .pointer/x LDZ2 .Screen/x DEO2 - .pointer/y LDZ2 .Screen/y DEO2 - #40 .Screen/sprite DEO - ( draw new cursor ) - .Mouse/x DEI2 DUP2 .pointer/x STZ2 .Screen/x DEO2 - .Mouse/y DEI2 DUP2 .pointer/y STZ2 .Screen/y DEO2 - #40 .color LDZ ADD .Screen/sprite DEO - ( paint ) - .Mouse/state DEI ?on-mouse-down - -BRK - -@on-mouse-down ( -> ) - - .Mouse/y DEI2 #03 SFT2 NIP #02 NEQ ?&no-menu - .Mouse/x DEI2 #03 SFT2 NIP - DUP #02 NEQ ?&no-color1 - #01 set-color - &no-color1 - DUP #03 NEQ ?&no-color2 - #02 set-color - &no-color2 - DUP #04 NEQ ?&no-color3 - #03 set-color - &no-color3 - DUP #06 NEQ ?&no-toggle - .timer/play LDZk #00 EQU SWP STZ - #00 .Mouse/state DEO - draw-ui - &no-toggle - POP - &no-menu - - ( color ) .color LDZ .Mouse/state DEI #01 GTH #00 EQU MUL - ( cell* ) .Mouse/x DEI2 #02 SFT2 NIP .Mouse/y DEI2 #02 SFT2 NIP - get-addr STA - redraw - -BRK - -@on-button ( -> ) - - .Controller/button DEI - [ #01 ] NEQk NIP ?&no-a #01 set-color &no-a - [ #02 ] NEQk NIP ?&no-b #02 set-color &no-b - [ #04 ] NEQk NIP ?&no-select #03 set-color &no-select - [ #08 ] NEQk NIP ?&no-start ;world #2000 mclr redraw &no-start - POP - ( space ) - .Controller/key DEI #20 NEQ ?&no-space .timer/play LDZk #00 EQU SWP STZ &no-space - -BRK - -( -@|core ) - -@set-color ( color -- ) - - .color STZ - .pointer/x LDZ2 .Screen/x DEO2 - .pointer/y LDZ2 .Screen/y DEO2 - ;pointer-icn .Screen/addr DEO2 - #40 .color LDZ ADD .Screen/sprite DEO - #00 .Mouse/state DEO - -JMP2r - -@run ( -- ) - - #40 #00 - &ver - STHk - #40 #00 - &hor - ( x,y ) DUP STHkr - ( cell ) DUP2 get-addr STH2k LDA - ( transform ) transform STH2r [ LIT2 &future $2 ] ADD2 STA - INC GTHk ?&hor - POP2 - POPr - INC GTHk ?&ver - POP2 - ( Swap worlds ) - ;get-addr/current LDA2k ;run/future LDA2 STH2k ADD2 SWP2 STA2 - #0000 STH2r SUB2 ;run/future STA2 - -!redraw - -@get-addr ( x y -- addr* ) - - #00 SWP #60 SFT2 ROT #00 SWP ADD2 [ LIT2 &current $2 ] ADD2 - -JMP2r - -@transform ( xy cell -- cell ) - - DUP ?&no-null NIP NIP JMP2r &no-null - DUP #03 NEQ ?&no-head POP POP2 #02 JMP2r &no-head - DUP #02 NEQ ?&no-tail POP POP2 #01 JMP2r &no-tail - DUP #01 NEQ ?&no-cond POP - LITr 00 - DUP2 #01 SUB get-addr - ( tl ) #0001 SUB2 LDAk #03 NEQ JMP INCr - ( tc ) INC2 LDAk #03 NEQ JMP INCr - ( tr ) INC2 LDA #03 NEQ JMP INCr - DUP2 get-addr - ( ml ) #0001 SUB2 LDAk #03 NEQ JMP INCr - ( mr ) INC2 INC2 LDA #03 NEQ JMP INCr - INC get-addr - ( bl ) #0001 SUB2 LDAk #03 NEQ JMP INCr - ( bc ) INC2 LDAk #03 NEQ JMP INCr - ( br ) INC2 LDA #03 NEQ JMP INCr - STHkr #02 EQU STHr #01 EQU ORA - DUP ADD INC JMP2r - &no-cond - ( unknown ) - NIP NIP - -JMP2r - -@mclr ( addr* len* -- ) - - OVR2 ADD2 SWP2 - &loop - STH2k #00 STH2r STA - INC2 GTH2k ?&loop - POP2 POP2 - -JMP2r - -( -@|drawing ) - -@redraw ( -- ) - - ;cell-icn .Screen/addr DEO2 - #4000 - &ver - #00 OVR #20 SFT2 .Screen/y DEO2 - STHk - #4000 - &hor - #00 OVR #20 SFT2 .Screen/x DEO2 - DUP STHkr get-addr LDA .Screen/sprite DEO - INC GTHk ?&hor - POP2 - POPr - INC GTHk ?&ver - POP2 - -@draw-ui ( -- ) - - ( colors ) - #01 .Screen/auto DEO - #0010 DUP2 .Screen/x DEO2 .Screen/y DEO2 - ;color-icn .Screen/addr DEO2 - #01 .Screen/sprite DEO - #02 .Screen/sprite DEO - #03 .Screen/sprite DEO - ( toggle ) - #0030 .Screen/x DEO2 - ;toggle-icn #00 .timer/play LDZ #30 SFT2 ADD2 .Screen/addr DEO2 - #01 .Screen/sprite DEO - -JMP2r - -( -@|assets ) - -@pointer-icn [ - 80c0 e0f0 f8e0 1000 ] -@cell-icn [ - e0e0 e000 0000 0000 ] -@color-icn [ - 7cfe fefe fefe 7c00 ] -@toggle-icn [ - 6666 6666 6666 6600 - 4666 767e 7666 4600 ] - -( - I live in the atom with the happy protons and neutrons. - I'm also so negative all the freakin time. - What do I do? - How do I find peace? ) - -@world -