From 85b07d0b307327de9fada08bf9fc042168f53293 Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega Date: Tue, 27 Aug 2024 15:30:18 -0700 Subject: [PATCH] (m291) Added repeat and random modes --- gui/m291/src/assets.tal | 8 ++++++++ gui/m291/src/m291.tal | 44 +++++++++++++++++++++++++++++++++++++++- gui/m291/ss10x10.chr | Bin 4096 -> 4096 bytes 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/gui/m291/src/assets.tal b/gui/m291/src/assets.tal index 5dbd02b..926aea9 100644 --- a/gui/m291/src/assets.tal +++ b/gui/m291/src/assets.tal @@ -27,6 +27,14 @@ 0804 0201 0000 0000 0000 0080 601f 0000 0000 0001 06f8 0000 1020 4080 0000 0000 ] +@mode-icns [ + 0000 001f 1f00 0000 0010 18fc fc18 1000 + 0000 001f 1f00 0000 0010 18fc fc18 1000 + 0000 001f 1f01 0101 0010 187c bc98 9080 + 0101 011d 1e00 0000 8090 98fc fc18 1000 + 0000 000f 1f18 1818 0010 18fc fc18 1008 + 1818 181f 0f00 0000 1818 18f8 f000 0000 ] + @pause-icn [ 0000 001e 1e1e 1e1e 0000 0078 7878 7878 1e1e 1e1e 1e00 0000 7878 7878 7800 0000 ] diff --git a/gui/m291/src/m291.tal b/gui/m291/src/m291.tal index 77e4b10..fd28db4 100644 --- a/gui/m291/src/m291.tal +++ b/gui/m291/src/m291.tal @@ -13,6 +13,7 @@ |80 @Controller &vector $2 &button $1 &key $1 |90 @Mouse &vector $2 &x $2 &y $2 &state $1 &chord $1 &pad $4 &scrolly &scrolly-hb $1 &scrolly-lb $1 |a0 @File &vector $2 &success $1 &success-lb $1 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2 +|c0 @DateTime &year $2 &month $1 &day $1 &hour $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1 |000 @@ -20,6 +21,7 @@ @path $2 &null $80 @lines &folders $1 &tracks $1 @playing $1 + @mode $1 @paused $1 @secfrom $2 @secto $2 @@ -45,6 +47,7 @@ [ LIT2 00 -playing ] STZ ;dict/home-path path/ + ( | unlock ) ;on-mouse .Mouse/vector DEO2 ;on-control .Controller/vector DEO2 @@ -93,7 +96,11 @@ BRK &status-bar ( y* -> ) - POP2 BRK + POP2 .Mouse/state DEI ?{ BRK } + .Mouse/x DEI2 .Screen/width DEI2 #0014 SUB2 GTH2 ?{ BRK } + + ;on-mouse-locked .Mouse/vector DEO2 + BRK &player ( y* -> ) .Mouse/state DEI ?{ POP2 BRK } @@ -181,6 +188,11 @@ @ ( -- ) .lines/tracks LDZ ?{ JMP2r } + ( | random ) + [ LIT2 01 -mode ] LDZ NEQ ?{ + prng ADD .lines/tracks LDZ DIVk MUL SUB !/tracks } + ( | repeat ) + [ LIT2 02 -mode ] LDZ NEQ ?{ .selection/track LDZ !/tracks } .selection/track LDZ INC .lines/tracks LDZ DIVk MUL SUB !/tracks @ ( x* -- ) @@ -238,6 +250,9 @@ ;path/null LDA ?{ JMP2r } path/pop ! +@ ( -- ) + .mode LDZk INC #03 DIVk MUL SUB SWP STZ ! + ( @|events ) @@ -497,10 +512,19 @@ #0008 .Screen/x DEO2 #0004 .Screen/y DEO2 ;path #01 + ( | spacer ) #0014 .Screen/y DEO2 ;line-icn ! +@ ( -- ) + [ LIT2 16 -Screen/auto ] DEO + #0004 .Screen/y DEO2 + .Screen/width DEI2 #0014 SUB2 .Screen/x DEO2 + ;mode-icns [ LIT2 00 -mode ] LDZ #50 SFT2 ADD2 .Screen/addr DEO2 + [ LIT2 03 -Screen/sprite ] DEOk DEO + JMP2r + @ ( -- ) #ffff ;/last STA2 #ffff ;/last STA2 @@ -825,6 +849,24 @@ #0f AND DUP #09 GTH #27 MUL ADD [ LIT "0 ] ADD #19 DEO JMP2r +@ ( -- ) + ( > ) [ LIT2 00 -DateTime/second ] DEI + ( > ) [ LIT2 00 -DateTime/minute ] DEI #60 SFT2 EOR2 + ( > ) [ LIT2 00 -DateTime/hour ] DEI #c0 SFT2 EOR2 ,prng/x STR2 + ( > ) [ LIT2 00 -DateTime/hour ] DEI #04 SFT2 + ( > ) [ LIT2 00 -DateTime/day ] DEI #10 SFT2 EOR2 + ( > ) [ LIT2 00 -DateTime/month ] DEI #60 SFT2 EOR2 + ( > ) .DateTime/year DEI2 #a0 SFT2 EOR2 ,prng/y STR2 + JMP2r + +@prng ( -- number* ) + ( > ) [ LIT2 &x $2 ] + ( > ) DUP2 #50 SFT2 EOR2 + ( > ) DUP2 #03 SFT2 EOR2 + ( > ) [ LIT2 &y $2 ] DUP2 ,&x STR2 + ( > ) DUP2 #01 SFT2 EOR2 EOR2 + ( > ) ,&y STR2k POP JMP2r + ( @|theme ) diff --git a/gui/m291/ss10x10.chr b/gui/m291/ss10x10.chr index ea4d45f64301f7d3522ce22893643e8f1ec97bde..36e512e44e8935da69631e79db78f63c6a6d333e 100644 GIT binary patch delta 366 zcmaivy$*sf5P+|#gYmB&n@~JPjB%65qd7SA5dar9iM)Vp4m=cNhYl7JTRIqT`|{<> z-Kj(+uXc4thAu2^a{n4K8i_K$j=8w? zb)m{Gt+vgD(kP0Z15ibHwJqa);Op<%yEbEpQhGamoO%X^LI}rv`gl2RW=$p~B6AKP Q&$S+AY|Fq~)