diff --git a/Archive/SPUI-0.4.0.zip b/Archive/SPUI-0.4.0.zip
new file mode 100644
index 0000000..5de1205
Binary files /dev/null and b/Archive/SPUI-0.4.0.zip differ
diff --git a/SPUI/README.md b/SPUI/README.md
index 89124dc..0ab9c36 100644
--- a/SPUI/README.md
+++ b/SPUI/README.md
@@ -12,7 +12,7 @@ to make the creation of User Interaction flows from NextBASIC \
Quick Start
==
-.SPUI -h will get you the built-in help.
+.SPUI -h
will get you the built-in help.
When building GUIs the parameter is compulsory.
@@ -24,4 +24,4 @@ More Information
==
See the /docs/ folder
---Xalior, 20200626
+--Xalior, 20240112
diff --git a/SPUI/demos/spui-demo.bas b/SPUI/demos/spui-demo.bas
index 4dd2c2e..8e674bd 100755
Binary files a/SPUI/demos/spui-demo.bas and b/SPUI/demos/spui-demo.bas differ
diff --git a/SPUI/demos/spui-demo.txt b/SPUI/demos/spui-demo.txt
index ae93282..1ac71df 100755
--- a/SPUI/demos/spui-demo.txt
+++ b/SPUI/demos/spui-demo.txt
@@ -1 +1 @@
-#program spui-demo
#autostart
1 REG 127,2
4 ;*************************;
5 ;StalePixels UserInterface;
6 ;*************************;
10 .SPUI menu -d 4 "Showcase" "Tests" "Help"
20 LET %m =% REG 127
30 IF %m = 0 THEN GO TO 9990
40 GO TO %m * 1000
1000 ;*******************************
1010 CLS : REG 127,0 : .SPUI menu -t "Showcase" -r 5 -y 5 "Default" "Narrow" "Long" "Short" "Custom"
1020 LET %m =% REG 127
1030 IF %m = 0 THEN CLS: GOTO 10
1040 GO TO %m*100+1000
1099 ;*******************************
1100 CLS : PRINT "Default Menu": PRINT
1105 PRINT "16x6" : PRINT
1109 PRINT ".SPUI menu One Two Three Four Five"
1110 REG 127,0 : .SPUI menu One Two Three Four Five
1190 GOTO 1000
1199 ;*******************************
1200 CLS : PRINT "Narrow Menu": PRINT
1205 PRINT "6x6" : PRINT
1209 PRINT ".SPUI menu -c 6 One Two Three Four"
1210 REG 127,0 : .SPUI menu -c 6 One Two Three Four Five Six Siven Eight Nine Ten Eleven Twelve
1290 GOTO 1000
1299 ;*******************************
1300 CLS : PRINT "Long Menu": PRINT
1305 PRINT "16x12" : PRINT
1309 PRINT ".SPUI menu -r 12 One Two Three Four Five Six Siven Eight Nine Ten Eleven Twelve"
1310 REG 127,0 : .SPUI menu -r 12 One Two Three Four Five Six Siven Eight Nine Ten Eleven Twelve
1390 GOTO 1000
1399 ;*******************************
1400 CLS : PRINT "Short Menu": PRINT
1405 PRINT "6x1" : PRINT
1409 PRINT ".SPUI menu -r 2 ""One and Done"""
1410 REG 127,0 : .SPUI menu -r 2 "One and Done"
1490 GOTO 1000
1499 ;*******************************
1500 CLS : PRINT "Custom Menu": PRINT
1505 PRINT "6x6@1x1" : PRINT
1509 PRINT ".SPUI menu -x 1 -y 1 -t ""Fully Custom"" -c 20 -r 2 ""First option"" ""Two choices"" ""Three thingy"" ""Four is where it normally ends"" ""Five is here"" ""Six & done!"""
1510 REG 127,0 : .SPUI menu -x 1 -y 1 -t "Fully Custom" -c 20 -r 2 "First option" "Two choices" "Three thingy" "Four is where it normally ends" "Five is here" "Six & done!"
1590 GOTO 1000
1599 ;*******************************
2000 ;*******************************
2010 CLS : REG 127,0 : .SPUI menu -t "Errors" -r 5 -y 5 "Too Wide" "Too Narrow" "Too Tall" "Too Short" "Overflow Tests"
2020 LET %m =% REG 127
2030 IF %m = 0 THEN CLS: GOTO 10
2040 GO TO %m*100+2000
2099 ;*******************************
2100 CLS : PRINT "MENU TOO WIDE": PRINT
2105 PRINT "COLUMNS (width) must be <31" : PRINT
2109 PRINT ".SPUI menu -c 31 One Two Three Four Five"
2110 REG 127,0 : .SPUI menu -c 31 One Two Three Four Five
2199 ;*******************************
2200 CLS : PRINT "MENU TOO NARROW" : PRINT
2205 PRINT "COLUMNS (width) must be >6" : PRINT
2209 PRINT ".SPUI menu -c -6 One Two Three Four Five"
2210 REG 127,0 : .SPUI menu -c -6 One Two Three Four Five
2299 ;*******************************
2300 CLS : PRINT "MENU TOO TALL" : PRINT
2305 PRINT "ROWS (height) must be <25" : PRINT
2310 PRINT ".SPUI menu -r 25 One Two Three Four Five"
2319 REG 127,0 : .SPUI menu -r 25 One Two Three Four Five
2399 ;*******************************
2400 CLS : PRINT "MENU TOO SHORT" : PRINT
2405 PRINT "ROWS (height) must be > 1" : PRINT
2409 PRINT ".SPUI menu -r 1 One Two Three Four Five"
2410 REG 127,0 : .SPUI menu -r 1 One Two Three Four Five
2500 ;*******************************
2510 REG 127,0 : .SPUI menu -t "Overflows" -r 5 -y 5 "Width" "Height" "Bottom" "Side"
2520 LET %m =% REG 127
2530 IF %m = 0 THEN GOTO 2000
2540 GO TO %m*100+2500
2599 ;*******************************
2600 CLS : PRINT "OVERFLOW WIDTH" : PRINT
2605 PRINT "Content (x+width) must be <31" : PRINT
2609 PRINT ".SPUI menu -x 25 -c 6 One Two Three Four Five"
2610 REG 127,0 : .SPUI menu -x 25 -c 6 One Two Three Four Five
2699 ;*******************************
2700 CLS : PRINT "OVERFLOW HEIGHT" : PRINT
2705 PRINT "Content (y+height) must be <23" : PRINT
2709 PRINT ".SPUI menu -y 18 -r 5 One Two Three Four Five"
2710 REG 127,0 : .SPUI menu -y 18 -r 5 One Two Three Four Five
2799 ;*******************************
2800 CLS : PRINT "OVERFLOW BOTTOM" : PRINT
2805 PRINT "Content overflows screen length" : PRINT
2809 PRINT ".SPUI menu -r 20 One Two Three Four Five"
2810 REG 127,0 : .SPUI menu -r 20 One Two Three Four Five
2899 ;*******************************
2900 CLS : PRINT "OVERFLOW SIDE" : PRINT
2905 PRINT "Content overflows screen width" : PRINT
2909 PRINT ".SPUI menu -x 20 One Two Three Four Five"
2910 REG 127,0 : .SPUI menu -x 20 One Two Three Four Five
2999 ;*******************************
3000 CLS
3010 PRINT "--------------------------------"
3020 PRINT "Stale Pixels User Interface Tool"
3030 PRINT "--------------------------------"
3040 PRINT
3050 PRINT " 1) SHOWCASE"
3060 PRINT " Correct examples of use. ;)"
3070 PRINT
3080 PRINT " 2) TESTS"
3090 PRINT " Incorrect examples of use. :("
3100 PRINT
3110 PRINT " 3) HELP"
3120 PRINT " This page. XD"
3130 .SPUI BANNER -t "SPUI Help"
3160 PROC WaitKey(1)
3170 CLS : GO TO 10
3999 STOP
8000 DEFPROC WaitKey(m)
8005 IF m THEN PRINT #0;" press any key"
8010 IF INKEY$ <>"" THEN GO TO 8010
8020 IF INKEY$ ="" THEN GO TO 8020
8030 IF INKEY$ <>"" THEN GO TO 8030
8050 ENDPROC
9990 CLS
9991 PRINT "STOP"
9992 STOP
9998 REMOUNT : .TXT2BAS "spui-demo.txt" : LOAD "spui-demo.bas"
9999 REMOUNT : SAVE "spui-demo.bas" LINE 1 : .BAS2TXT "spui-demo.bas" : PRINT "saved!": STOP
\ No newline at end of file
+#program spui-demo
#autostart
1 REG 127,2
4 ;*************************;
5 ;StalePixels UserInterface;
6 ;*************************;
10 .SPUI menu -d 4 "Showcase" "Tests" "Help"
20 LET %m =% REG 127
30 IF %m = 0 THEN GO TO 9990
40 GO TO %m * 1000
1000 ;*******************************
1010 CLS : REG 127,0 : .SPUI menu -t "Showcase" -r 6 -y 5 "Default" "Narrow" "Long" "Short" "Custom" "Config File"
1020 LET %m =% REG 127
1030 IF %m = 0 THEN CLS: GOTO 10
1040 GO TO %m*100+1000
1099 ;*******************************
1100 CLS : PRINT "Default Menu": PRINT
1105 PRINT "16x6" : PRINT
1109 PRINT ".SPUI menu One Two Three Four Five"
1110 REG 127,0 : .SPUI menu One Two Three Four Five
1190 GOTO 1000
1199 ;*******************************
1200 CLS : PRINT "Narrow Menu": PRINT
1205 PRINT "6x6" : PRINT
1209 PRINT ".SPUI menu -c 6 One Two Three Four"
1210 REG 127,0 : .SPUI menu -c 6 One Two Three Four Five Six Siven Eight Nine Ten Eleven Twelve
1290 GOTO 1000
1299 ;*******************************
1300 CLS : PRINT "Long Menu": PRINT
1305 PRINT "16x12" : PRINT
1309 PRINT ".SPUI menu -r 12 One Two Three Four Five Six Siven Eight Nine Ten Eleven Twelve"
1310 REG 127,0 : .SPUI menu -r 12 One Two Three Four Five Six Siven Eight Nine Ten Eleven Twelve
1390 GOTO 1000
1399 ;*******************************
1400 CLS : PRINT "Short Menu": PRINT
1405 PRINT "6x1" : PRINT
1409 PRINT ".SPUI menu -r 2 ""One and Done"""
1410 REG 127,0 : .SPUI menu -r 2 "One and Done"
1490 GOTO 1000
1499 ;*******************************
1500 CLS : PRINT "Custom Menu": PRINT
1505 PRINT "6x6@1x1" : PRINT
1509 PRINT ".SPUI menu -x 1 -y 1 -t ""Fully Custom"" -c 20 -r 2 ""First option"" ""Two choices"" ""Three thingy"" ""Four is where it normally ends"" ""Five is here"" ""Six & done!"""
1510 REG 127,0 : .SPUI menu -x 1 -y 1 -t "Fully Custom" -c 20 -r 2 "First option" "Two choices" "Three thingy" "Four is where it normally ends" "Five is here" "Six & done!"
1590 GOTO 1000
1599 ;*******************************
1600 CLS : PRINT "Config Driven Menu": PRINT
1605 PRINT "1937.ini" : PRINT
1609 PRINT ".SPUI menu -I 1937.ini"
1610 REG 127,0 : .SPUI menu -I 1937.ini
1690 GOTO 1000
1699 ;*******************************
2000 ;*******************************
2010 CLS : REG 127,0 : .SPUI menu -t "Errors" -r 5 -y 5 "Too Wide" "Too Narrow" "Too Tall" "Too Short" "Overflow Tests"
2020 LET %m =% REG 127
2030 IF %m = 0 THEN CLS: GOTO 10
2040 GO TO %m*100+2000
2099 ;*******************************
2100 CLS : PRINT "MENU TOO WIDE": PRINT
2105 PRINT "COLUMNS (width) must be <31" : PRINT
2109 PRINT ".SPUI menu -c 31 One Two Three Four Five"
2110 REG 127,0 : .SPUI menu -c 31 One Two Three Four Five
2199 ;*******************************
2200 CLS : PRINT "MENU TOO NARROW" : PRINT
2205 PRINT "COLUMNS (width) must be >6" : PRINT
2209 PRINT ".SPUI menu -c -6 One Two Three Four Five"
2210 REG 127,0 : .SPUI menu -c -6 One Two Three Four Five
2299 ;*******************************
2300 CLS : PRINT "MENU TOO TALL" : PRINT
2305 PRINT "ROWS (height) must be <25" : PRINT
2310 PRINT ".SPUI menu -r 25 One Two Three Four Five"
2319 REG 127,0 : .SPUI menu -r 25 One Two Three Four Five
2399 ;*******************************
2400 CLS : PRINT "MENU TOO SHORT" : PRINT
2405 PRINT "ROWS (height) must be > 1" : PRINT
2409 PRINT ".SPUI menu -r 1 One Two Three Four Five"
2410 REG 127,0 : .SPUI menu -r 1 One Two Three Four Five
2500 ;*******************************
2510 REG 127,0 : .SPUI menu -t "Overflows" -r 5 -y 5 "Width" "Height" "Bottom" "Side"
2520 LET %m =% REG 127
2530 IF %m = 0 THEN GOTO 2000
2540 GO TO %m*100+2500
2599 ;*******************************
2600 CLS : PRINT "OVERFLOW WIDTH" : PRINT
2605 PRINT "Content (x+width) must be <31" : PRINT
2609 PRINT ".SPUI menu -x 25 -c 6 One Two Three Four Five"
2610 REG 127,0 : .SPUI menu -x 25 -c 6 One Two Three Four Five
2699 ;*******************************
2700 CLS : PRINT "OVERFLOW HEIGHT" : PRINT
2705 PRINT "Content (y+height) must be <23" : PRINT
2709 PRINT ".SPUI menu -y 18 -r 5 One Two Three Four Five"
2710 REG 127,0 : .SPUI menu -y 18 -r 5 One Two Three Four Five
2799 ;*******************************
2800 CLS : PRINT "OVERFLOW BOTTOM" : PRINT
2805 PRINT "Content overflows screen length" : PRINT
2809 PRINT ".SPUI menu -r 20 One Two Three Four Five"
2810 REG 127,0 : .SPUI menu -r 20 One Two Three Four Five
2899 ;*******************************
2900 CLS : PRINT "OVERFLOW SIDE" : PRINT
2905 PRINT "Content overflows screen width" : PRINT
2909 PRINT ".SPUI menu -x 20 One Two Three Four Five"
2910 REG 127,0 : .SPUI menu -x 20 One Two Three Four Five
2999 ;*******************************
3000 CLS
3010 PRINT "--------------------------------"
3020 PRINT "Stale Pixels User Interface Tool"
3030 PRINT "--------------------------------"
3040 PRINT
3050 PRINT " 1) SHOWCASE"
3060 PRINT " Correct examples of use. ;)"
3070 PRINT
3080 PRINT " 2) TESTS"
3090 PRINT " Incorrect examples of use. :("
3100 PRINT
3110 PRINT " 3) HELP"
3120 PRINT " This page. XD"
3130 .SPUI BANNER -t "SPUI Help"
3160 PROC WaitKey(1)
3170 CLS : GO TO 10
3999 STOP
8000 DEFPROC WaitKey(m)
8005 IF m THEN PRINT #0;" press any key"
8010 IF INKEY$ <>"" THEN GO TO 8010
8020 IF INKEY$ ="" THEN GO TO 8020
8030 IF INKEY$ <>"" THEN GO TO 8030
8050 ENDPROC
9990 CLS
9991 PRINT "STOP"
9992 STOP
9998 REMOUNT : .TXT2BAS "spui-demo.txt" : LOAD "spui-demo.bas"
9999 REMOUNT : SAVE "spui-demo.bas" LINE 1 : .BAS2TXT "spui-demo.bas" : PRINT "saved!": STOP
\ No newline at end of file