diff --git a/.Docs/Shell Developers Guide.md b/.Docs/Shell Developers Guide.md
index 169ce057..44eb94c5 100644
--- a/.Docs/Shell Developers Guide.md
+++ b/.Docs/Shell Developers Guide.md
@@ -124,8 +124,7 @@ Notice that the DO X and DO Y logic is swapped between the two cases.
| END | Working | End of SWITCH Statement |
| EXIT | Working | exit function, script or shell |
| FI | Working | Terminator for IF block |
-| FUNCTION | Working | FUNCTION fu
-nction_name {
\
} |
+| FUNCTION | Working | FUNCTION function_name {
\
} |
| IF | Working | [ \ ]
![ \ ]|
| LOOP | Working | Terminator for WHILE block |
| MD | Working | MD path or relative path
Create a directory |
@@ -183,7 +182,19 @@ if [] && [] is AND
if [] || [] is OR
-functions
+### functions
+
+if you SET -F, it will discard ALL previously learnt FUNC in the current SH context
+if . FUNCS1 file add 3
+then . FUNCS2 file add 2
+all 5 are available until an set -X is met
+if you launch . MYFILE1, the code within MYFILE1 can CALL all 5 functions
+but MYFILE1 (wthout dot) will run in a separate SH process, so no access to the 5 functions known by parent SH
+functions bodies are stored in AUX ram
+so you can put around 30k of code in AUX ram then do a short MYFILE1 that calls a lot of FUNC in AUX
+FUNCs recursion is allowed (until you explode the stack!)
+
+CORE.STACK.MAX = 128....so each CALL consumes about 7 bytes of stack (return Ctx/Ptr, ArgVC,hArgV and CALL keywordID)
* DIV/MOD
diff --git a/.Docs/Technical Spec.md b/.Docs/Technical Spec.md
index 03dcd2ce..005f4e60 100644
--- a/.Docs/Technical Spec.md
+++ b/.Docs/Technical Spec.md
@@ -56,7 +56,7 @@ This is the functional specification for A2osX and its system modules, internal
| READ | Working | -S : no echo (password)
-P : "prompt message" |
| REN | Working | Rename a file, directory or volume |
| RETURN | In Progress | Exit function with return code |
-| SET | Working | -X : toggle debug mode
-C : toggle Control-C break mode |
+| SET | Working | -X : toggle debug mode
-C : toggle Control-C break mode
-F : remove all defined functions |
| SHIFT | Working | Remove $1 from cmd line |
| SLEEP | Working | Wait \ 10th sec |
| SWITCH | Working | SWITCH |
diff --git a/.Floppies/A2OSX.MAKE.po b/.Floppies/A2OSX.MAKE.po
index b8024ce9..fd19d28c 100644
Binary files a/.Floppies/A2OSX.MAKE.po and b/.Floppies/A2OSX.MAKE.po differ
diff --git a/.Floppies/RC.140.po b/.Floppies/RC.140.po
index 7f01f4b6..64506730 100644
Binary files a/.Floppies/RC.140.po and b/.Floppies/RC.140.po differ
diff --git a/.Floppies/RC.800.po b/.Floppies/RC.800.po
index 8442f91d..ddf2c75d 100644
Binary files a/.Floppies/RC.800.po and b/.Floppies/RC.800.po differ
diff --git a/MAKE/A2OSXFILES.txt b/MAKE/A2OSXFILES.txt
new file mode 100644
index 00000000..0714160d
--- /dev/null
+++ b/MAKE/A2OSXFILES.txt
@@ -0,0 +1,71 @@
+NEW
+ PREFIX
+AUTO 4,1
+A2OSX.LOGO
+A2OSX.SYSTEM
+BIN/ARP
+BIN/CAT
+BIN/CHMOD
+BIN/CHTYP
+BIN/CMP
+BIN/CP
+BIN/CUT
+BIN/DNSINFO
+BIN/EDIT
+BIN/FORMAT
+BIN/GREP
+BIN/HTTPGET
+BIN/IPCONFIG
+BIN/KILL
+BIN/LS
+BIN/LSDEV
+BIN/LSOF
+BIN/MD5
+BIN/MEM
+BIN/MEMDUMP
+BIN/MKDIR
+BIN/MORE
+BIN/MV
+BIN/NETSTAT
+BIN/NSCUTIL
+BIN/PAK
+BIN/PING
+BIN/PS
+BIN/RM
+BIN/RPCDUMP
+BIN/SH
+BIN/TELNET
+BIN/UNPAK
+BIN/USERADD
+BIN/USERDEL
+BIN/WC
+BIN/WHO
+DRV/LANCEGS.DRV
+DRV/SSC.DRV
+DRV/SSC.I.DRV
+DRV/UTHERNET.DRV
+DRV/UTHERNET2.DRV
+ETC/HOSTNAME
+ETC/HOSTS
+ETC/INIT
+ETC/ISSUE
+ETC/MOTD
+ETC/NETWORK
+LIB/LIBBLKDEV
+LIB/LIBCRYPT
+LIB/LIBPAK
+LIB/LIBTCPIP
+PRODOS
+SBIN/GETTY
+SBIN/INITD
+SBIN/INSDRV
+SBIN/KCONFIG
+SBIN/LOGIN
+SBIN/NETWORKD
+SBIN/TELNETD
+SYS/KERNEL
+SYS/KM.NSC
+SYS/KM.RAMWORKS
+SYS/KM.VSDRIVE
+MAN
+TEXT /MAKE/USR/SHARE/MAKE/A2OSXFILES
diff --git a/MAKE/ABOOTFILES.txt b/MAKE/ABOOTFILES.txt
new file mode 100644
index 00000000..47020a84
--- /dev/null
+++ b/MAKE/ABOOTFILES.txt
@@ -0,0 +1,52 @@
+NEW
+ PREFIX
+AUTO 4,1
+A2OSX.SYSTEM
+BIN/CAT
+BIN/CHTYP
+BIN/CP
+BIN/CUT
+BIN/DNSINFO
+BIN/EDIT
+BIN/GREP
+BIN/HTTPGET
+BIN/IPCONFIG
+BIN/KILL
+BIN/LS
+BIN/LSDEV
+BIN/LSOF
+BIN/MD5
+BIN/MEM
+BIN/MKDIR
+BIN/MORE
+BIN/MV
+BIN/NETSTAT
+BIN/NSCUTIL
+BIN/PING
+BIN/PS
+BIN/RM
+BIN/SH
+BIN/TELNET
+DRV/LANCEGS.DRV
+DRV/SSC.DRV
+DRV/SSC.I.DRV
+DRV/UTHERNET.DRV
+DRV/UTHERNET2.DRV
+ETC/INIT
+ETC/ISSUE
+ETC/MOTD
+ETC/NETWORK
+LIB/LIBBLKDEV
+LIB/LIBCRYPT
+LIB/LIBTCPIP
+PRODOS
+SBIN/GETTY
+SBIN/INITD
+SBIN/INSDRV
+SBIN/LOGIN
+SBIN/NETWORKD
+SBIN/TELNETD
+SYS/KERNEL
+SYS/KM.NSC
+MAN
+TEXT /MAKE/USR/SHARE/MAKE/ABOOTFILES
diff --git a/MAKE/MAKEB800.txt b/MAKE/MAKEB800.txt
deleted file mode 100644
index 7b92cea9..00000000
--- a/MAKE/MAKEB800.txt
+++ /dev/null
@@ -1,159 +0,0 @@
-NEW
- PREFIX
-AUTO 4,1
-#!/BIN/SH
-#
-# This script makes a proper BOOT disk using the files
-# found in a particular BUILD stored in /MAKE/BUILDS
-#
-ECHO \f
-ECHO "\n\nAB800 (800K Floppy) Media Creator\n\n"
-ECHO "You must have the correct 800K image mounted on S7D2\n"
-READ -P "Do you want to proceed (Y/N)? " P
-SWITCH $P
- CASE Y
- CASE y
- ECHO
- BREAK
- DEFAULT
- ECHO "\n\nExiting.\n"
- EXIT
-END
-READ -P "WHICH BUILD NO: " B
-IF [ -Z $B ]
- ECHO "You did not enter any response."
- ECHO
- ECHO "Exiting"
- EXIT
-FI
-SET SRC = "/MAKE/BUILDS/BUILD${B}"
-IF [ -D ${SRC} ]
- ECHO "\n\nFound Valid BUILD\n"
-ELSE
- ECHO "\n\nValid BUILD not found."
- ECHO
- ECHO "Exiting"
- EXIT
-FI
-ECHO "Is this a (R)elease, (C)andidate or (S)table Build"
-READ -P "ENTER R C or S: " RCS
-IF [ -Z $RCS ]
- ECHO "You did not enter any response."
- ECHO
- ECHO "Exiting"
- EXIT
-FI
-SWITCH $RCS
- CASE r
- CASE R
- SET IM = "Release Build No. ${B}"
- BREAK
- CASE c
- CASE C
- SET IM = "Release Candidate Build No. ${B}"
- BREAK
- CASE s
- CASE S
- SET IM = "Stable Release Build No. ${B}"
- BREAK
- DEFAULT
- ECHO "You did not enter a valid response."
- ECHO "You must enter only one of the characters R C or S!"
- ECHO
- ECHO "Exiting"
- EXIT
-END
-ECHO "Formatting Destination..."
-FORMAT -4 -B 1600 S7D2 AB800
-MD /AB800/BIN
-MD /AB800/DRV
-MD /AB800/ETC
-MD /AB800/LIB
-MD /AB800/ROOT
-MD /AB800/SBIN
-MD /AB800/SYS
-CP ${SRC}/A2OSX.LOGO /AB800/A2OSX.LOGO
-CP ${SRC}/A2OSX.SYSTEM /AB800/A2OSX.SYSTEM
-CP ${SRC}/PRODOS /AB800/PRODOS
-CP ${SRC}/BIN/ARP /AB800/BIN/ARP
-CP ${SRC}/BIN/ASM /AB800/BIN/ASM
-CP ${SRC}/BIN/ASM.T.6502 /AB800/BIN/ASM.T.6502
-CP ${SRC}/BIN/ASM.T.65816 /AB800/BIN/ASM.T.65816
-CP ${SRC}/BIN/ASM.T.65C02 /AB800/BIN/ASM.T.65C02
-CP ${SRC}/BIN/ASM.T.65R02 /AB800/BIN/ASM.T.65R02
-CP ${SRC}/BIN/ASM.T.Z80 /AB800/BIN/ASM.T.Z80
-CP ${SRC}/BIN/BMP2PIX /AB800/BIN/BMP2PIX
-CP ${SRC}/BIN/CAT /AB800/BIN/CAT
-#CP ${SRC}/BIN/CHMOD /AB800/BIN/CHMOD
-CP ${SRC}/BIN/CHTYP /AB800/BIN/CHTYP
-CP ${SRC}/BIN/CMP /AB800/BIN/CMP
-CP ${SRC}/BIN/CP /AB800/BIN/CP
-CP ${SRC}/BIN/CSH /AB800/BIN/CSH
-CP ${SRC}/BIN/CUT /AB800/BIN/CUT
-CP ${SRC}/BIN/DNSINFO /AB800/BIN/DNSINFO
-CP ${SRC}/BIN/EDIT /AB800/BIN/EDIT
-CP ${SRC}/BIN/FORMAT /AB800/BIN/FORMAT
-CP ${SRC}/BIN/GREP /AB800/BIN/GREP
-CP ${SRC}/BIN/IPCONFIG /AB800/BIN/IPCONFIG
-CP ${SRC}/BIN/KILL /AB800/BIN/KILL
-CP ${SRC}/BIN/L /AB800/BIN/L
-CP ${SRC}/BIN/LM /AB800/BIN/LM
-CP ${SRC}/BIN/LS /AB800/BIN/LS
-CP ${SRC}/BIN/LSDEV /AB800/BIN/LSDEV
-CP ${SRC}/BIN/LSOF /AB800/BIN/LSOF
-CP ${SRC}/BIN/MD5 /AB800/BIN/MD5
-CP ${SRC}/BIN/MEM /AB800/BIN/MEM
-CP ${SRC}/BIN/MEMDUMP /AB800/BIN/MEMDUMP
-CP ${SRC}/BIN/MKDIR /AB800/BIN/MKDIR
-CP ${SRC}/BIN/MORE /AB800/BIN/MORE
-CP ${SRC}/BIN/MV /AB800/BIN/MV
-CP ${SRC}/BIN/NETSTAT /AB800/BIN/NETSTAT
-CP ${SRC}/BIN/NSCUTIL /AB800/BIN/NSCUTIL
-CP ${SRC}/BIN/PAK /AB800/BIN/PAK
-CP ${SRC}/BIN/PING /AB800/BIN/PING
-CP ${SRC}/BIN/PS /AB800/BIN/PS
-CP ${SRC}/BIN/RM /AB800/BIN/RM
-CP ${SRC}/BIN/RPCDUMP /AB800/BIN/RPCDUMP
-CP ${SRC}/BIN/TELNET /AB800/BIN/TELNET
-CP ${SRC}/BIN/HTTPGET /AB800/BIN/HTTPGET
-CP ${SRC}/BIN/SH /AB800/BIN/SH
-CP ${SRC}/BIN/UNPAK /AB800/BIN/UNPAK
-CP ${SRC}/BIN/USERADD /AB800/BIN/USERADD
-CP ${SRC}/BIN/USERDEL /AB800/BIN/USERDEL
-CP ${SRC}/BIN/WC /AB800/BIN/WC
-CP ${SRC}/BIN/WHO /AB800/BIN/WHO
-CP ${SRC}/DRV/LANCEGS.DRV /AB800/DRV/LANCEGS.DRV
-CP ${SRC}/DRV/SSC.DRV /AB800/DRV/SSC.DRV
-CP ${SRC}/DRV/SSC.I.DRV /AB800/DRV/SSC.I.DRV
-CP ${SRC}/DRV/UTHER2.AI.DRV /AB800/DRV/UTHER2.AI.DRV
-CP ${SRC}/DRV/UTHERNET.DRV /AB800/DRV/UTHERNET.DRV
-CP ${SRC}/DRV/UTHERNET2.DRV /AB800/DRV/UTHERNET2.DRV
-CP ${SRC}/ETC/HOSTNAME /AB800/ETC/HOSTNAME
-CP ${SRC}/ETC/HOSTS /AB800/ETC/HOSTS
-CP INITBOOT /AB800/ETC/INIT
-ECHO "Welcome to A2osX!" > /AB800/ETC/ISSUE
-ECHO >> /AB800/ETC/ISSUE
-ECHO $IM >> /AB800/ETC/ISSUE
-CP ${SRC}/ETC/MOTD /AB800/ETC/MOTD
-CP ${SRC}/ETC/NETWORK /AB800/ETC/NETWORK
-CP TCPIP.CONF /AB800/ETC/TCPIP.CONF
-CP ${SRC}/LIB/LIBBLKDEV /AB800/LIB/LIBBLKDEV
-CP ${SRC}/LIB/LIBCRYPT /AB800/LIB/LIBCRYPT
-CP ${SRC}/LIB/LIBPAK /AB800/LIB/LIBPAK
-CP ${SRC}/LIB/LIBTCPIP /AB800/LIB/LIBTCPIP
-CP ${SRC}/ROOT/PROFILE /AB800/PROFILE
-CP ${SRC}/SBIN/GETTY /AB800/SBIN/GETTY
-CP ${SRC}/SBIN/HTTPD /AB800/SBIN/HTTPD
-CP ${SRC}/SBIN/INITD /AB800/SBIN/INITD
-CP ${SRC}/SBIN/INSDRV /AB800/SBIN/INSDRV
-CP ${SRC}/SBIN/KCONFIG /AB800/SBIN/KCONFIG
-CP ${SRC}/SBIN/LOGIN /AB800/SBIN/LOGIN
-CP ${SRC}/SBIN/NETWORKD /AB800/SBIN/NETWORKD
-CP ${SRC}/SBIN/TELNETD /AB800/SBIN/TELNETD
-CP ${SRC}/SYS/KERNEL /AB800/SYS/KERNEL
-CP ${SRC}/SYS/KM.RAMWORKS /AB800/SYS/KM.RAMWORKS
-CP ${SRC}/SYS/KM.NSC /AB800/SYS/KM.NSC
-CP ${SRC}/SYS/KM.VSDRIVE /AB800/SYS/KM.VSDRIVE
-#CP ${SRC}/ROOT/PROFILE /AB800/ROOT/PROFILE
-MAN
-TEXT /MAKE/USR/SHARE/MAKE/MAKEB800
diff --git a/MAKE/MAKEBOOT.txt b/MAKE/MAKEBOOT.txt
index f647d390..32e8cb61 100644
--- a/MAKE/MAKEBOOT.txt
+++ b/MAKE/MAKEBOOT.txt
@@ -3,12 +3,14 @@ NEW
AUTO 4,1
#!/BIN/SH
#
-# This script makes a proper BOOT disk using the files
+# This script makes a proper ABOOT (140K) disk using the files
# found in a particular BUILD stored in /MAKE/BUILDS
#
-ECHO \f
-ECHO "\n\nABOOT (140K Floppy) Media Creator\n\n"
-ECHO "You must have the correct 140K image mounted on S6D1\n"
+. MAKEFUNCS
+CALL CS
+CALL TBOX "MINIBOOT (140K Floppy) Media Creator"
+CALL PRINTXY 8 0 "You must have the correct 140K image mounted on S6D1"
+ECHO "\n"
READ -P "Do you want to proceed (Y/N)? " P
SWITCH $P
CASE Y
@@ -19,6 +21,7 @@ SWITCH $P
ECHO "\n\nExiting.\n"
EXIT
END
+ECHO
READ -P "WHICH BUILD NO: " B
IF [ -Z $B ]
ECHO "You did not enter any response."
@@ -35,7 +38,7 @@ ELSE
ECHO "Exiting"
EXIT
FI
-ECHO "Is this a (R)elease, (C)andidate or (S)table Build"
+ECHO "Is this a (R)elease, (C)andidate or (S)table Build\n"
READ -P "ENTER R C or S: " RCS
IF [ -Z $RCS ]
ECHO "You did not enter any response."
@@ -63,82 +66,26 @@ SWITCH $RCS
ECHO "Exiting"
EXIT
END
-ECHO "Formatting Destination..."
-FORMAT -4 S6D1 ABOOT
-ECHO "Displaying Online Volumes..."
-LS -L /
-PAUSE
+ECHO "\n\nFormatting Destination..."
+FORMAT -1 S6D1 MINIBOOT
ECHO "Making Directory Structure..."
-MD /ABOOT/BIN
-MD /ABOOT/DRV
-MD /ABOOT/ETC
-MD /ABOOT/LIB
-MD /ABOOT/ROOT
-MD /ABOOT/SBIN
-MD /ABOOT/SYS
+MD /MINIBOOT/BIN
+MD /MINIBOOT/DRV
+MD /MINIBOOT/ETC
+MD /MINIBOOT/LIB
+MD /MINIBOOT/ROOT
+MD /MINIBOOT/SBIN
+MD /MINIBOOT/SYS
ECHO "Copying Files..."
-CP ${SRC}/A2OSX.LOGO /ABOOT/A2OSX.LOGO
-CP ${SRC}/A2OSX.SYSTEM /ABOOT/A2OSX.SYSTEM
-CP ${SRC}/PRODOS /ABOOT/PRODOS
-CP ${SRC}/BIN/CAT /ABOOT/BIN/CAT
-CP ${SRC}/BIN/CHTYP /ABOOT/BIN/CHTYP
-CP ${SRC}/BIN/CP /ABOOT/BIN/CP
-CP ${SRC}/BIN/CUT /ABOOT/BIN/CUT
-CP ${SRC}/BIN/DNSINFO /ABOOT/BIN/DNSINFO
-CP ${SRC}/BIN/EDIT /ABOOT/BIN/EDIT
-CP ${SRC}/BIN/GREP /ABOOT/BIN/GREP
-CP ${SRC}/BIN/IPCONFIG /ABOOT/BIN/IPCONFIG
-CP ${SRC}/BIN/KILL /ABOOT/BIN/KILL
-CP ${SRC}/BIN/LS /ABOOT/BIN/LS
-CP ${SRC}/BIN/LSDEV /ABOOT/BIN/LSDEV
-CP ${SRC}/BIN/LSOF /ABOOT/BIN/LSOF
-#CP ${SRC}/BIN/MD5 /ABOOT/BIN/MD5
-CP ${SRC}/BIN/MEM /ABOOT/BIN/MEM
-CP ${SRC}/BIN/MKDIR /ABOOT/BIN/MKDIR
-CP ${SRC}/BIN/MORE /ABOOT/BIN/MORE
-CP ${SRC}/BIN/MV /ABOOT/BIN/MV
-CP ${SRC}/BIN/NETSTAT /ABOOT/BIN/NETSTAT
-#CP ${SRC}/BIN/NSCUTIL /ABOOT/BIN/NSCUTIL
-CP ${SRC}/BIN/PING /ABOOT/BIN/PING
-CP ${SRC}/BIN/PS /ABOOT/BIN/PS
-CP ${SRC}/BIN/RM /ABOOT/BIN/RM
-CP ${SRC}/BIN/TELNET /ABOOT/BIN/TELNET
-CP ${SRC}/BIN/HTTPGET /ABOOT/BIN/HTTPGET
-CP ${SRC}/BIN/SH /ABOOT/BIN/SH
-#CP ${SRC}/BIN/USERADD /ABOOT/BIN/USERADD
-#CP ${SRC}/BIN/USERDEL /ABOOT/BIN/USERDEL
-#CP ${SRC}/BIN/WC /ABOOT/BIN/WC
-#CP ${SRC}/BIN/WHO /ABOOT/BIN/WHO
-CP ${SRC}/DRV/LANCEGS.DRV /ABOOT/DRV/LANCEGS.DRV
-#CP ${SRC}/DRV/SSC.DRV /ABOOT/DRV/SSC.DRV
-CP ${SRC}/DRV/UTHERNET.DRV /ABOOT/DRV/UTHERNET.DRV
-CP ${SRC}/DRV/UTHERNET2.DRV /ABOOT/DRV/UTHERNET2.DRV
-#CP ${SRC}/ETC/HOSTNAME /ABOOT/ETC/HOSTNAME
-#CP ${SRC}/ETC/HOSTS /ABOOT/ETC/HOSTS
-CP INITBOOT /ABOOT/ETC/INIT
-#CP ${SRC}/ETC/INIT /ABOOT/ETC/INIT
-#CP ${SRC}/ETC/INIT.BOOT /ABOOT/ETC/INIT.BOOT
-#CP ${SRC}/ETC/ISSUE /ABOOT/ETC/ISSUE
-ECHO "Welcome to A2osX!" > /ABOOT/ETC/ISSUE
-ECHO >> /ABOOT/ETC/ISSUE
-ECHO $IM >> /ABOOT/ETC/ISSUE
-CP ${SRC}/ETC/MOTD /ABOOT/ETC/MOTD
-CP ${SRC}/ETC/NETWORK /ABOOT/ETC/NETWORK
-CP TCPIP.CONF /ABOOT/ETC/TCPIP.CONF
-CP ${SRC}/LIB/LIBBLKDEV /ABOOT/LIB/LIBBLKDEV
-CP ${SRC}/LIB/LIBCRYPT /ABOOT/LIB/LIBCRYPT
-CP ${SRC}/LIB/LIBTCPIP /ABOOT/LIB/LIBTCPIP
-CP ${SRC}/ROOT/PROFILE /ABOOT/PROFILE
-CP ${SRC}/SBIN/GETTY /ABOOT/SBIN/GETTY
-CP ${SRC}/SBIN/INITD /ABOOT/SBIN/INITD
-CP ${SRC}/SBIN/INSDRV /ABOOT/SBIN/INSDRV
-#CP ${SRC}/SBIN/KCONFIG /ABOOT/SBIN/KCONFIG
-CP ${SRC}/SBIN/LOGIN /ABOOT/SBIN/LOGIN
-CP ${SRC}/SBIN/NETWORKD /ABOOT/SBIN/NETWORKD
-CP ${SRC}/SBIN/TELNETD /ABOOT/SBIN/TELNETD
-CP ${SRC}/SYS/KERNEL /ABOOT/SYS/KERNEL
-CP ${SRC}/SYS/KM.RAMWORKS /ABOOT/SYS/KM.RAMWORKS
-CP ${SRC}/SYS/KM.NSC /ABOOT/SYS/KM.NSC
-#CP ${SRC}/ROOT/PROFILE /ABOOT/ROOT/PROFILE
+FOR FILE IN (ABOOTFILES)
+ CP -Q ${SRC}/${FILE} /MINIBOOT/${FILE}
+NEXT
+CP -Q -Y INITBOOT /MINIBOOT/ETC/INIT
+ECHO "Welcome to A2osX!" > /MINIBOOT/ETC/ISSUE
+ECHO >> /MINIBOOT/ETC/ISSUE
+ECHO $IM >> /MINIBOOT/ETC/ISSUE
+CP -Q TCPIP.CONF /MINIBOOT/ETC/TCPIP.CONF
+CP -Q PROFILE /MINIBOOT/ROOT/PROFILE
+ECHO "MINIBOOT Disk Created!"
MAN
TEXT /MAKE/USR/SHARE/MAKE/MAKEBOOT
diff --git a/MAKE/MAKEFULL.txt b/MAKE/MAKEFULL.txt
new file mode 100644
index 00000000..f92657ae
--- /dev/null
+++ b/MAKE/MAKEFULL.txt
@@ -0,0 +1,90 @@
+NEW
+ PREFIX
+AUTO 4,1
+#!/BIN/SH
+#
+# This script makes a proper FULLBOOT disk using the files
+# found in a particular BUILD stored in /MAKE/BUILDS
+#
+. MAKEFUNCS
+CALL CS
+CALL TBOX " FULLBOOT Media Creator"
+CALL PRINTXY 8 0 "You must have the correct image mounted on S7D2"
+ECHO "\n"
+READ -P "Do you want to proceed (Y/N)? " P
+SWITCH $P
+ CASE Y
+ CASE y
+ ECHO
+ BREAK
+ DEFAULT
+ ECHO "\n\nExiting.\n"
+ EXIT
+END
+READ -P "WHICH BUILD NO: " B
+IF [ -Z $B ]
+ ECHO "You did not enter any response."
+ ECHO
+ ECHO "Exiting"
+ EXIT
+FI
+SET SRC = "/MAKE/BUILDS/BUILD${B}"
+IF [ -D ${SRC} ]
+ ECHO "\n\nFound Valid BUILD\n"
+ELSE
+ ECHO "\n\nValid BUILD not found."
+ ECHO
+ ECHO "Exiting"
+ EXIT
+FI
+ECHO "Is this a (R)elease, (C)andidate or (S)table Build"
+READ -P "ENTER R C or S: " RCS
+IF [ -Z $RCS ]
+ ECHO "You did not enter any response."
+ ECHO
+ ECHO "Exiting"
+ EXIT
+FI
+SWITCH $RCS
+ CASE r
+ CASE R
+ SET IM = "Release Build No. ${B}"
+ BREAK
+ CASE c
+ CASE C
+ SET IM = "Release Candidate Build No. ${B}"
+ BREAK
+ CASE s
+ CASE S
+ SET IM = "Stable Release Build No. ${B}"
+ BREAK
+ DEFAULT
+ ECHO "You did not enter a valid response."
+ ECHO "You must enter only one of the characters R C or S!"
+ ECHO
+ ECHO "Exiting"
+ EXIT
+END
+ECHO "Formatting Destination..."
+FORMAT -B 1600 S7D2 FULLBOOT
+ECHO "Making Directory Structure..."
+MD /FULLBOOT/BIN
+MD /FULLBOOT/DRV
+MD /FULLBOOT/ETC
+MD /FULLBOOT/LIB
+MD /FULLBOOT/ROOT
+MD /FULLBOOT/SBIN
+MD /FULLBOOT/SYS
+ECHO "Copying Files..."
+FOR FILE IN (A2OSXFILES)
+ CP -Q ${SRC}/${FILE} /FULLBOOT/${FILE}
+NEXT
+CP -Q -Y INITBOOT /FULLBOOT/ETC/INIT
+ECHO "Welcome to A2osX!" > /FULLBOOT/ETC/ISSUE
+ECHO >> /FULLBOOT/ETC/ISSUE
+ECHO $IM >> /FULLBOOT/ETC/ISSUE
+CP -Q TCPIP.CONF /FULLBOOT/ETC/TCPIP.CONF
+CP -Q PROFILE /FULLBOOT/ROOT/PROFILE
+ECHO "FULLBOOT Disk Created!"
+MAN
+TEXT /MAKE/USR/SHARE/MAKE/MAKEFULL
diff --git a/MAKE/MAKEFUNCS.txt b/MAKE/MAKEFUNCS.txt
index 111da230..70641ea9 100644
--- a/MAKE/MAKEFUNCS.txt
+++ b/MAKE/MAKEFUNCS.txt
@@ -20,7 +20,7 @@ FUNCTION TBOX {
LOOP
ECHO -N "\e[5;20H"
ECHO "\e[7m \e[0m"
- ECHO -N "\e[3;30H $1"
+ ECHO -N "\e[3;22H $1"
}
# Print Inverse
FUNCTION INVERSE {