diff --git a/gui/m291/src/assets.tal b/gui/m291/src/assets.tal index daac776..686056b 100644 --- a/gui/m291/src/assets.tal +++ b/gui/m291/src/assets.tal @@ -51,6 +51,8 @@ ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ] +@poke-icn [ 0000 0000 80c0 e0f0 e0c0 8000 0000 0000 ] + @dash-icn [ 0000 00aa 0000 0000 ] @line-icn [ 0000 00ff 0000 0000 ] diff --git a/gui/m291/src/m291.tal b/gui/m291/src/m291.tal index c791e13..203e90a 100644 --- a/gui/m291/src/m291.tal +++ b/gui/m291/src/m291.tal @@ -333,18 +333,14 @@ @ ( alt id -- ) DUP .lines/folders LDZ LTH ?&folder .lines/folders LDZ SUB DUP .lines/tracks LDZ LTH ?&tracks - .lines/tracks LDZ SUB DUP .lines/misc LDZ LTH ?&misc POP JMP2r &tracks ( id -- ) DUP .selection/track STZ + [ LIT2 ff -selection ] STZ #00 SWP ( CELLSIZE ) #70 SFT2 ;mem/tracks ADD2 ! - &misc ( id -- ) - #00 SWP - ( CELLSIZE ) #70 SFT2 ;mem/misc ADD2 ! - &folder ( id -- ) #00 SWP ( CELLSIZE ) #70 SFT2 ;mem/folders ADD2 ! @@ -367,16 +363,11 @@ JMP2r @count-lines ( -- lines ) - .lines/folders LDZ .lines/tracks LDZ ADD - ( ) [ LIT2 00 -misc ] LDZ EQU ?{ .lines/misc LDZ ADD } - JMP2r + .lines/folders LDZ .lines/tracks LDZ ADD JMP2r @has-spacer ( -- f ) [ LIT2 00 -lines/folders ] LDZ NEQ - ( ) [ LIT2 00 -lines/tracks ] LDZ NEQ - ( ) [ LIT2 00 -misc ] LDZ EQU ?{ - [ LIT2 00 -lines/misc ] LDZ NEQ ORA } - AND JMP2r + ( ) [ LIT2 00 -lines/tracks ] LDZ NEQ AND JMP2r @is-folder ( line* -- line* f ) DUP2 lcap/ #0001 SUB2 LDA [ LIT "/ ] EQU JMP2r @@ -445,11 +436,9 @@ #0008 .Screen/x DEO2 ;dict/empty #0f ! } ( | folders ) - ;mem/folders .lines/folders LDZ #01 .selection LDZ + ;mem/folders .lines/folders LDZ .selection LDZ [ LIT2 00 -lines/folders ] LDZ EQU ?{ ;dash-icn } - ;mem/tracks .lines/tracks LDZ #00 .selection LDZ .lines/folders LDZ SUB - [ LIT2 00 -misc ] LDZ EQU ?{ - ;mem/misc .lines/misc LDZ #00 .selection LDZ ! } + ;mem/tracks .lines/tracks LDZ .selection LDZ .lines/folders LDZ SUB JMP2r @ ( -- ) @@ -620,10 +609,10 @@ DEO JMP2r -@ ( -- ) +@ ( tile* -- ) #0000 .Screen/x DEO2 .Screen/y DEI2 - ( ) ;fill-icn .Screen/addr DEO2 + ( > ) SWP2 .Screen/addr DEO2 [ LIT2 f2 -Screen/auto ] DEO [ LIT2 01 -Screen/sprite ] DEOk DEOk ( | .. ) @@ -633,9 +622,8 @@ .Screen/y DEO2 JMP2r -@ ( addr* length folder selection -- ) +@ ( addr* length selection -- ) ,&sel STR - ,&folder STR DUP ?{ POP2 POP JMP2r } #0008 .Screen/x DEO2 #00 SWP2 ,&t STR2 @@ -643,14 +631,37 @@ [ LITr 05 ] ( | selected ) DUP [ LIT &sel $1 ] NEQ ?{ - POPr [ LITr 06 ] } - ( | folder ) - [ LIT2 00 &folder $1 ] EQU ?{ - .Screen/y DEI2 [ LIT2 15 -Screen/auto ] DEO - .Screen/width DEI2 #0010 SUB2 .Screen/x DEO2 - [ LIT2 00 "> ] #20 SUB #50 SFT2 ;font/glyphs ADD2 .Screen/addr DEO2 - DUPr [ LITr -Screen/sprite ] DEOr - .Screen/y DEO2 } + POPr [ LITr 06 ] ;fill-icn } + ( | marker ) + DUP .selection/track LDZ NEQ ?{ + [ LIT2 15 -Screen/auto ] DEO + #0000 .Screen/x DEO2 + ;poke-icn .Screen/addr DEO2 + [ LIT2 05 -Screen/sprite ] DEO } + ( | normal ) + #0008 .Screen/x DEO2 + #00 OVR + ( CELLSIZE ) #70 SFT2 [ LIT2 &t $2 ] ADD2 STHr + .Screen/y DEI2k #0010 ADD2 ROT DEO2 + INC GTHk ?&>l + POP2 JMP2r + +@ ( addr* length selection -- ) + ,&sel STR + DUP ?{ POP2 POP JMP2r } + #0008 .Screen/x DEO2 + #00 SWP2 ,&t STR2 + &>l ( -- ) + [ LITr 05 ] + ( | selected ) + DUP [ LIT &sel $1 ] NEQ ?{ + POPr [ LITr 06 ] ;fill-icn } + ( | gizmo ) + .Screen/y DEI2 [ LIT2 15 -Screen/auto ] DEO + .Screen/width DEI2 #0010 SUB2 .Screen/x DEO2 + [ LIT2 00 "> ] #20 SUB #50 SFT2 ;font/glyphs ADD2 .Screen/addr DEO2 + DUPr [ LITr -Screen/sprite ] DEOr + .Screen/y DEO2 ( | normal ) #0008 .Screen/x DEO2 #00 OVR diff --git a/gui/m291/ss10x10.chr b/gui/m291/ss10x10.chr index be11311..ea4d45f 100644 Binary files a/gui/m291/ss10x10.chr and b/gui/m291/ss10x10.chr differ