Updated doc and FULLBOOT (stable.800) for dev to examine.

This commit is contained in:
Patrick Kloepfer 2019-11-26 13:42:25 -05:00
parent 27817a2a79
commit 89cde54306
6 changed files with 239 additions and 88 deletions

View File

@ -1,7 +1,7 @@
# A2osX Shell Developers Guide # 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: 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 # 1230
SET C = A / B # 12 SET C = A / B # 12
SET C = A MOD B # 3 SET C = A MOD B # 3
SET C = 100 * 2 / 4 + 2 / 13 * 4 # 16
#### \<op\> #### \<op\>

Binary file not shown.

Binary file not shown.

109
EXAMPLES/ANDORDEMO.txt Normal file
View File

@ -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

View File

@ -1,72 +1,72 @@
NEW NEW
PREFIX PREFIX
AUTO 4,1 AUTO 4,1
A2OSX.LOGO a2osx.logo
A2OSX.SYSTEM a2osx.system
BIN/ARP bin/arp
BIN/CAT bin/cat
BIN/CHMOD bin/chmod
BIN/CHTYP bin/chtyp
BIN/CMP bin/cmp
BIN/CP bin/cp
BIN/CUT bin/cut
BIN/DNSINFO bin/dnsinfo
BIN/EDIT bin/edit
BIN/FORMAT bin/format
BIN/GREP bin/grep
BIN/HTTPGET bin/httpget
BIN/IPCONFIG bin/ipconfig
BIN/KILL bin/kill
BIN/LS bin/ls
BIN/LSDEV bin/lsdev
BIN/LSOF bin/lsof
BIN/MD5 bin/md5
BIN/MEM bin/mem
BIN/MEMDUMP bin/memdump
BIN/MKDIR bin/mkdir
BIN/MORE bin/more
BIN/MV bin/mv
BIN/NETSTAT bin/netstat
BIN/NSCUTIL bin/nscutil
BIN/PAK bin/pak
BIN/PING bin/ping
BIN/PS bin/ps
BIN/RM bin/rm
BIN/RPCDUMP bin/rpcdump
BIN/SH bin/sh
BIN/TELNET bin/telnet
BIN/TERM bin/term
BIN/UNPAK bin/unpak
BIN/USERADD bin/useradd
BIN/USERDEL bin/userdel
BIN/WC bin/wc
BIN/WHO bin/who
DRV/LANCEGS.DRV drv/lancegs.drv
DRV/SSC.DRV drv/ssc.drv
DRV/SSC.I.DRV drv/ssc.i.drv
DRV/UTHERNET.DRV drv/uthernet.drv
DRV/UTHERNET2.DRV drv/uthernet2.drv
ETC/HOSTNAME etc/hostname
ETC/HOSTS etc/hosts
ETC/INIT etc/init
ETC/ISSUE etc/issue
ETC/MOTD etc/motd
ETC/NETWORK etc/network
LIB/LIBBLKDEV lib/libblkdev
LIB/LIBCRYPT lib/libcrypt
LIB/LIBPAK lib/libpak
LIB/LIBTCPIP lib/libtcpip
SBIN/GETTY sbin/getty
SBIN/INITD sbin/initd
SBIN/INSDRV sbin/insdrv
SBIN/KCONFIG sbin/kconfig
SBIN/LOGIN sbin/login
SBIN/NETWORKD sbin/networkd
SBIN/TELNETD sbin/telnetd
SYS/KERNEL sys/kernel
SYS/KM/KM.APPLETALK sys/km/km.appletalk
SYS/KM/KM.NSC sys/km/km.nsc
SYS/KM/KM.RAMWORKS sys/km/km.ramworks
SYS/KM/KM.VSDRIVE sys/km/km.vsdrive
MAN MAN
TEXT /MAKE/USR/SHARE/MAKE/FULLFILES TEXT /MAKE/USR/SHARE/MAKE/FULLFILES

View File

@ -65,31 +65,72 @@ SWITCH $RCS
ECHO "Exiting" ECHO "Exiting"
EXIT EXIT
END 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..." ECHO "Formatting Destination..."
FORMAT -B 1600 S7D2 FULLBOOT FORMAT -B 1600 S7D2 fullboot
ECHO "Making Directory Structure..." ECHO "Making Directory Structure..."
MD /FULLBOOT/BIN md /FULLBOOT/bin
MD /FULLBOOT/DRV md /FULLBOOT/drv
MD /FULLBOOT/ETC md /FULLBOOT/etc
MD /FULLBOOT/LIB md /FULLBOOT/lib
MD /FULLBOOT/ROOT md /FULLBOOT/root
MD /FULLBOOT/SBIN md /FULLBOOT/sbin
MD /FULLBOOT/SYS md /FULLBOOT/sys
MD /FULLBOOT/SYS/KM md /FULLBOOT/SYS/km
MD /FULLBOOT/TMP md /FULLBOOT/tmp
MD /FULLBOOT/VAR md /FULLBOOT/var
MD /FULLBOOT/VAR/LOG md /FULLBOOT/var/log
PAUSE
ECHO "Copying Files..." ECHO "Copying Files..."
FOR FILE IN (FULLFILES) FOR FILE IN (FULLFILES)
CP -Q ${SRC}/${FILE} /FULLBOOT/${FILE} CP -Q ${SRC}/${FILE} /fullboot/${FILE}
NEXT NEXT
CP -Q -Y /MAKE/ASSETS/PDOS203TC/PRODOS /FULLBOOT CP -Q -Y $PDOSFILE /fullboot/ProDOS
CP -Q -Y INITBOOT /FULLBOOT/ETC/INIT CP -Q -Y INITBOOT /fullboot/etc/init
ECHO "Welcome to A2osX!" > /FULLBOOT/ETC/ISSUE ECHO "Welcome to A2osX!" > /fullboot/etc/issue
ECHO >> /FULLBOOT/ETC/ISSUE ECHO >> /fullboot/etc/issue
ECHO $IM >> /FULLBOOT/ETC/ISSUE ECHO $IM >> /fullboot/etc/issue
CP -Q TCPIP.CONF /FULLBOOT/ETC/TCPIP.CONF CP -Q TCPIP.CONF /fullboot/etc/tcpip.conf
CP -Q PROFILE /FULLBOOT/ROOT/PROFILE CP -Q PROFILE /fullboot/root/profile
ECHO "FULLBOOT Disk Created!" ECHO "FULLBOOT Disk Created!"
MAN MAN
TEXT /MAKE/USR/SHARE/MAKE/MAKEFULL TEXT /MAKE/USR/SHARE/MAKE/MAKEFULL