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:
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 ¤t $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
-