diff --git a/.Docs/Shell Developers Guide.md b/.Docs/Shell Developers Guide.md index eece91c4..40f5ce5a 100644 --- a/.Docs/Shell Developers Guide.md +++ b/.Docs/Shell Developers Guide.md @@ -1,7 +1,7 @@ # A2osX Shell Developers Guide -### Updated November 24, 2019 +### Updated November 25, 2019 One of the most significant parts of A2osX is its shell which can perform both interactive and scripted tasks. Using the interactive part of the shell, you can perform many common and complex tasks using both built-in (native or internal to shell) and external (BIN or executable) commands. Internal commands include CD (change directory), MD (make directory), PWD, DATE, etc. External commands include CP (copy), RM (remove), CAT (display file contents), TELNET, etc. It is even possible to create and execute short scripts right on the interactive command line (these are run once and not saved like true scripts) such as: @@ -213,6 +213,7 @@ The A2osX shell contains an expression evaluator that can perform simple integer SET C = A * B # 1230 SET C = A / B # 12 SET C = A MOD B # 3 + SET C = 100 * 2 / 4 + 2 / 13 * 4 # 16 #### \ diff --git a/.Floppies/A2OSX.MAKE.po b/.Floppies/A2OSX.MAKE.po index 5d562a7f..39b90e5d 100644 Binary files a/.Floppies/A2OSX.MAKE.po and b/.Floppies/A2OSX.MAKE.po differ diff --git a/.Floppies/STABLE.800.po b/.Floppies/STABLE.800.po index bd0fb053..b56e4440 100644 Binary files a/.Floppies/STABLE.800.po and b/.Floppies/STABLE.800.po differ diff --git a/EXAMPLES/ANDORDEMO.txt b/EXAMPLES/ANDORDEMO.txt new file mode 100644 index 00000000..4c34aa44 --- /dev/null +++ b/EXAMPLES/ANDORDEMO.txt @@ -0,0 +1,109 @@ +NEW + PREFIX +AUTO 4,1 +#!/BIN/SH +# +# Complex AND OR Tests +# +SET A = 1 +SET B = 2 +SET C = 3 +SET D = 4 +ECHO -N "TRUE AND TRUE OR TRUE AND TRUE ---> " +IF [ $A -eq 1 ] AND [ $B -eq 2 ] OR [ $C -eq 3 ] AND [ $D -eq 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "TRUE AND TRUE OR TRUE AND FALSE ---> " +IF [ $A -eq 1 ] AND [ $B -eq 2 ] OR [ $C -eq 3 ] AND [ $D -ne 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "TRUE AND TRUE OR FALSE AND TRUE ---> " +IF [ $A -eq 1 ] AND [ $B -eq 2 ] OR [ $C -ne 3 ] AND [ $D -eq 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "TRUE AND TRUE OR FALSE AND FALSE ---> " +IF [ $A -eq 1 ] AND [ $B -eq 2 ] OR [ $C -ne 3 ] AND [ $D -ne 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "TRUE AND FALSE OR TRUE AND TRUE ---> " +IF [ $A -eq 1 ] AND [ $B -ne 2 ] OR [ $C -eq 3 ] AND [ $D -eq 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "TRUE AND FALSE OR TRUE AND FALSE ---> " +IF [ $A -eq 1 ] AND [ $B -ne 2 ] OR [ $C -eq 3 ] AND [ $D -ne 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "TRUE AND FALSE OR FALSE AND TRUE ---> " +IF [ $A -eq 1 ] AND [ $B -ne 2 ] OR [ $C -ne 3 ] AND [ $D -eq 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "TRUE AND FALSE OR FALSE AND FALSE ---> " +IF [ $A -eq 1 ] AND [ $B -ne 2 ] OR [ $C -ne 3 ] AND [ $D -ne 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "FALSE AND TRUE OR TRUE AND TRUE ---> " +IF [ $A -ne 1 ] AND [ $B -eq 2 ] OR [ $C -eq 3 ] AND [ $D -eq 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "FALSE AND TRUE OR TRUE AND FALSE ---> " +IF [ $A -ne 1 ] AND [ $B -eq 2 ] OR [ $C -eq 3 ] AND [ $D -ne 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "FALSE AND TRUE OR FALSE AND TRUE ---> " +IF [ $A -ne 1 ] AND [ $B -eq 2 ] OR [ $C -ne 3 ] AND [ $D -eq 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "FALSE AND TRUE OR FALSE AND FALSE ---> " +IF [ $A -ne 1 ] AND [ $B -eq 2 ] OR [ $C -ne 3 ] AND [ $D -ne 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "FALSE AND FALSE OR TRUE AND TRUE ---> " +IF [ $A -ne 1 ] AND [ $B -ne 2 ] OR [ $C -eq 3 ] AND [ $D -eq 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "FALSE AND FALSE OR TRUE AND FALSE ---> " +IF [ $A -ne 1 ] AND [ $B -ne 2 ] OR [ $C -eq 3 ] AND [ $D -ne 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "FALSE AND FALSE OR FALSE AND TRUE ---> " +IF [ $A -ne 1 ] AND [ $B -ne 2 ] OR [ $C -ne 3 ] AND [ $D -eq 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +ECHO -N "FALSE AND FALSE OR FALSE AND FALSE ---> " +IF [ $A -ne 1 ] AND [ $B -ne 2 ] OR [ $C -ne 3 ] AND [ $D -ne 4 ] + ECHO TRUE +ELSE + ECHO FALSE +FI +MAN +TEXT /MAKE/USR/SHARE/EXAMPLES/ANDORTESTS diff --git a/MAKE/FULLFILES.txt b/MAKE/FULLFILES.txt index d83a6f32..272df068 100644 --- a/MAKE/FULLFILES.txt +++ b/MAKE/FULLFILES.txt @@ -1,72 +1,72 @@ 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/TERM -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 -SBIN/GETTY -SBIN/INITD -SBIN/INSDRV -SBIN/KCONFIG -SBIN/LOGIN -SBIN/NETWORKD -SBIN/TELNETD -SYS/KERNEL -SYS/KM/KM.APPLETALK -SYS/KM/KM.NSC -SYS/KM/KM.RAMWORKS -SYS/KM/KM.VSDRIVE +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/term +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 +sbin/getty +sbin/initd +sbin/insdrv +sbin/kconfig +sbin/login +sbin/networkd +sbin/telnetd +sys/kernel +sys/km/km.appletalk +sys/km/km.nsc +sys/km/km.ramworks +sys/km/km.vsdrive MAN TEXT /MAKE/USR/SHARE/MAKE/FULLFILES diff --git a/MAKE/MAKEFULL.txt b/MAKE/MAKEFULL.txt index c7575fea..cc808f7c 100644 --- a/MAKE/MAKEFULL.txt +++ b/MAKE/MAKEFULL.txt @@ -65,31 +65,72 @@ SWITCH $RCS ECHO "Exiting" EXIT END +ECHO "Which Prodos:" +ECHO " 1) Asset ProDOS 2.03tc" +ECHO " 2) Asset ProDOS FX" +ECHO " 3) Asset ProDOS FX Paked" +ECHO " 4) Build ProDOS 2.03tc" +ECHO " 5) Build ProDOS FX" +ECHO " 6) Build ProDOS FX Paked" +READ -P "Enter 1-6: " PDOS +IF [ -Z $PDOS ] + ECHO "You did not enter any response." + ECHO + ECHO "Exiting" + EXIT +FI +SWITCH $PDOS + CASE 1 + SET PDOSFILE = "/MAKE/ASSETS/PDOS203TC/PRODOS" + BREAK + CASE 2 + SET PDOSFILE = "/MAKE/ASSETS/PDOS203FX/PRODOS.FX" + BREAK + CASE 3 + SET PDOSFILE = "/MAKE/ASSETS/PDOS203FX/PRODOS.FX.PAKED" + BREAK + CASE 4 + SET PDOSFILE = "${SRC}/PRODOS" + BREAK + CASE 5 + SET PDOSFILE = "${SRC}/PRODOS.FX" + BREAK + CASE 6 + SET PDOSFILE = "${SRC}/PRODOS.FX.PAKED" + 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 +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 -MD /FULLBOOT/SYS/KM -MD /FULLBOOT/TMP -MD /FULLBOOT/VAR -MD /FULLBOOT/VAR/LOG +md /FULLBOOT/bin +md /FULLBOOT/drv +md /FULLBOOT/etc +md /FULLBOOT/lib +md /FULLBOOT/root +md /FULLBOOT/sbin +md /FULLBOOT/sys +md /FULLBOOT/SYS/km +md /FULLBOOT/tmp +md /FULLBOOT/var +md /FULLBOOT/var/log +PAUSE ECHO "Copying Files..." FOR FILE IN (FULLFILES) - CP -Q ${SRC}/${FILE} /FULLBOOT/${FILE} + CP -Q ${SRC}/${FILE} /fullboot/${FILE} NEXT -CP -Q -Y /MAKE/ASSETS/PDOS203TC/PRODOS /FULLBOOT -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 +CP -Q -Y $PDOSFILE /fullboot/ProDOS +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