Updated Issue List. Major Update of Technical Spec.md Please see note on Slack before editing/reading.

This commit is contained in:
Patrick Kloepfer 2019-03-13 21:44:20 -04:00
parent e421086764
commit 5006003b72
3 changed files with 69 additions and 134 deletions

Binary file not shown.

View File

@ -60,9 +60,9 @@ FOR F IN `CAT ${ROOT}ETC/PASSWD`
SET PWGID = `CUT -S : -F 4 "${F}"` SET PWGID = `CUT -S : -F 4 "${F}"`
SET PWNAME = `CUT -S : -F 5 "${F}"` SET PWNAME = `CUT -S : -F 5 "${F}"`
SET PWHOME = `CUT -S : -F 6 "${F}"` SET PWHOME = `CUT -S : -F 6 "${F}"`
ECHO -N "\e[${LINE};1H${PWUSER}" ECHO -N "\e[${LINE};1H${PWUID}"
ECHO -N "\e[${LINE};9H${PWUID}" ECHO -N "\e[${LINE};9H${PWGID}"
ECHO -N "\e[${LINE};16H${PWGID}" ECHO -N "\e[${LINE};16H${PWUSER}"
ECHO -N "\e[${LINE};26H${PWNAME}" ECHO -N "\e[${LINE};26H${PWNAME}"
ECHO -N "\e[${LINE};53H${PWHOME}" ECHO -N "\e[${LINE};53H${PWHOME}"
SET LINE = $LINE + 1 SET LINE = $LINE + 1

View File

@ -1,4 +1,6 @@
# A2osX (0.92) Multi-Tasking OS for Apple II # A2osX (0.92) Multi-Tasking OS for Apple II
This is the functional specification for A2osX, its system modules, internal and external commands and shell language. Please refer to the other A2osX documentation such as the User Guide, Notes for Developers and Shell Programming Guide for more information.
## SYS/KM* Supported Hardware At Kernel Level (ProDOS): ## SYS/KM* Supported Hardware At Kernel Level (ProDOS):
@ -29,61 +31,37 @@
| ---- | ------ | ------- | | ---- | ------ | ------- |
| \<value\> | Working | $VAR \| string \| "string with SPACE" \| 123 \| -456 | | \<value\> | Working | $VAR \| string \| "string with SPACE" \| 123 \| -456 |
| \<expression\> | Working | \<value\> [\<op\> \<value\>] ... | | \<expression\> | Working | \<value\> [\<op\> \<value\>] ... |
| \<op\> | Working | \+ signed int32 add | | \<op\> | Working <br> --- <br> Planned | \+ signed int32 add <br> \- signed int32 sub <br> --- <br> \* <br> div <br> mod |
| | Working | \- signed int32 sub | | \<condition\> | Working |[ -D direxists ] <br> [ -E fileordirexists ] <br> [ -F fileexists ]<br> [ -N $VAR variable is not empty ] <br> [ -Z $VAR variable is empty ] <br> [ string1 = string2 ] <br> [ string1 != string2 ] <br> [ string1 .< string2 ] <br> [ string1 <= string2 ] <br> [ string1 .> string2 ] <br> [ string1 >= string2 ] <br> [ int32 -eq int32 ] <br> [ int32 -ne int32 ] <br> [ int32 -lt int32 ] <br> [ int32 -le int32 ] <br> [ int32 -gt int32 ] <br> [ int32 -ge int32 ] |
| | | \* | | BREAK | Working | Exit CASE of SWITCH |
| | | div | | CASE | Working | CASE <expression> |
| | | mod | | CD | Working | CD path or relative path |
| \<condition\> | Working |[ -d direxists ] |
| | | [ -e fileordirexists ] |
| | | [ -f fileexists ] |
| | | [ -n $VAR variable is not empty ] |
| | | [ -z $VAR variable is empty ] |
| | | [ string1 = string2 ] |
| | | [ string1 != string2 ] |
| | | [ string1 .< string2 ] |
| | | [ string1 <= string2 ] |
| | | [ string1 .> string2 ] |
| | | [ string1 >= string2 ] |
| | | [ int32 -eq int32 ] |
| | | [ int32 -ne int32 ] |
| | | [ int32 -lt int32 ] |
| | | [ int32 -le int32 ] |
| | | [ int32 -gt int32 ] |
| | | [ int32 -ge int32 ] |
| FUNC | | FUNC fonction_name {body} |
| RETURN | | Exit function with return code |
| SWITCH | | SWITCH <expression> |
| CASE | | CASE <expression> |
| BREAK | | Exit SWITCH/CASE |
| DEFAULT | | |
| END | | End of SWITCH Statement |
| CD | Working | Improved syntax : now, 'CD ../BIN' works |
| DATE | Working | | | DATE | Working | |
| ECHO | Working | \b,\e,\f,\n,\\\ and \\% supported | | DEFAULT | Working | Default CASE for SWITCH |
| | | -N : Suppress \r\n | | ECHO | Working | \b,\e,\f,\n,\\\ and \\% supported <br> -N : Suppress \r\n |
| ELSE | Working | Optional branch for IF block | | ELSE | Working | Optional branch for IF block |
| EXIT | Working | exit shell | | END | Working | End of SWITCH Statement |
| EXIT | Working | exit script or shell |
| FI | Working | Terminator for IF block | | FI | Working | Terminator for IF block |
| FUNC | In Progress | FUNC fonction_name {body} |
| IF | Working | [ \<condition\> ] | | IF | Working | [ \<condition\> ] |
| LOOP | Working | Terminator for WHILE block | | LOOP | Working | Terminator for WHILE block |
| MD | Working | Create a directory | | MD | Working | MD path or relative path <br> Create a directory |
| NOHUP | Working | Start a process with PPID=PS0 (Daemon) | | NOHUP | Working | Start a process with PPID=PS0 (Daemon) |
| PAUSE | Working | Wait until CR | | PAUSE | Working | Wait until CR |
| POPD | Working | Restore previously saved working directory | | POPD | Working | Restore previously saved working directory |
| PUSHD | Working | Save actual working directory | | PUSHD | Working | Save actual working directory <br> PUSHD \<dir\> do also a CD to \<dir\> |
| | | PUSHD \<dir\> do also a CD to \<dir\> |
| PWD | Working | Print Working Directory | | PWD | Working | Print Working Directory |
| RD | Working | Delete an empty directory | | RD | Working | Delete an empty directory |
| READ | Working | -S : no echo (password) | | READ | Working | -S : no echo (password) <br> -P : "prompt message" |
| | | -P : "prompt message" |
| REN | Working | Rename a file, directory or volume | | REN | Working | Rename a file, directory or volume |
| SET | Working | -X : toggle debug mode | | RETURN | In Progress | Exit function with return code |
| | | -C : toggle Control-C break mode | | SET | Working | -X : toggle debug mode <br> -C : toggle Control-C break mode |
| SHIFT | Working | Remove $1 from cmd line | | SHIFT | Working | Remove $1 from cmd line |
| SLEEP | Working | Wait \<count\> 10th sec | | SLEEP | Working | Wait \<count\> 10th sec |
| SWITCH | Working | SWITCH <expression> |
| TIME | Working | | | TIME | Working | |
| WHILE | Working | [ \<ondition\> ] | | WHILE | Working | [ \<condition\> ] |
## Shell variables: ## Shell variables:
@ -105,15 +83,15 @@ note : '$VAR' does NOT expand Variable
## Shell I/O control/redirection: ## Shell I/O control/redirection:
| Token | Status | Comment | | Token | Status | Comment |
| ---- | ------ | ------- | | ---- | ------ | ------- |
| . | Working | use same env | | . | Working | use same env |
| & | Working | start proc | | & | Working | start proc |
| \| | Working | pipe | | \| | Working | pipe |
| < | Working | StdIn redirection | | < | Working | StdIn redirection |
| > | Working | StdOut redirection | | > | Working | StdOut redirection |
| >> | Working | Append StdOut | | >> | Working | Append StdOut |
| 1>> | Working | | | 1>> | Working | |
| 1> | Working | | | 1> | Working | |
| 2>> | Working | StdErr redirection | | 2>> | Working | StdErr redirection |
| 2> | Working | | | 2> | Working | |
@ -133,89 +111,46 @@ note : '$VAR' does NOT expand Variable
| Uther2.AI.DRV | In Progress | With ARP/IP Offloading | 0.92 | | Uther2.AI.DRV | In Progress | With ARP/IP Offloading | 0.92 |
## BIN,External Shell commands: ## BIN,External Shell commands:
| Name | Status | Comment | K.Ver | | Name | Status | Comment |
| ---- | ------ | ------- | ----- | | ---- | ------ | ------- |
| CAT | Working | -A : Show All non printable caracters | 0.92 | | CAT | Working | -A : Show All non printable caracters <br> -N : Number all output lines <br> -S : Suppress repeated empty output lines |
| | | -N : Number all output lines | | | CUT | Working | CUT \<opt\> "line" or CMD\|CUT \<opt\> <br> -H : This help screen <br> -F nn : Output field nn <br> -M nn : Output starting at nn <br> -N nn : Output Ending at nn <br> -S ch : Change default SPACE separator to 'ch' |
| | | -S : Suppress repeated empty output lines | | | CHGRP | In Progress | -C : Continue On Error <br> -R : Recurse subdirectories |
| CUT | Working | CUT \<opt\> "line" or CMD\|CUT \<opt\> | 0.92 | | CHMOD | In Progress | -C : Continue On Error <br> -R : Recurse subdirectories |
| | | -H : This help screen | | | CHOWN | In Progress | -C : Continue On Error <br> -R : Recurse subdirectories |
| | | -F nn : Output field nn | | | CHTYP | Working | -C : Continue On Error <br> -R : Recurse subdirectories |
| | | -M nn : Output starting at nn | | | CP | Working | -C : Continue On Error <br> -Q : Quiet <br> -R : Recurse subdirectories <br> -Y : Dont't Prompt For Override |
| | | -N nn : Output Ending at nn | | | EDIT | Working | still missing : find/replace |
| | | -S ch : Change default SPACE separator to 'ch' | | | FORMAT | In Progress | FORMAT \<BLOCKDEV\> [VOLUME.NAME] <br> -L : Low-Level Format *not currently supported <br> -1..9 : Catalog Size (block count) |
| CHGRP | In Progress | -C : Continue On Error | 0.9 | | GREP | Working | GREP \<opt\> PATTERN FILE or CMD\|GREP \<opt\> PATTERN <br> -H : This help screen <br> -I : Ignore Case <br> -N : Print line Number |
| | | -R : Recurse subdirectories | | | KILL | Working | KILL \<signal\> PID <br> -0 : No Signal <br> -1 : SIGQUIT |
| CHMOD | In Progress | -C : Continue On Error | 0.9 | | LS | Working | -A : Print . & .. <br> -C : Single column listing <br> -F : Single column, includes full path <br> -L : long listing with size/date... <br> -R : Recurse subdirectories |
| | | -R : Recurse subdirectories | | | LSDEV | Working | Dump device Drivers |
| CHOWN | In Progress | -C : Continue On Error | 0.9 | | LSOF | Working | List Open Files |
| | | -R : Recurse subdirectories | | | MD5 | Working | MD5 \[ -D : String \| file \] |
| CHTYP | Working | -C : Continue On Error | 0.92 | | MEM | Working | Old dump behavior is now MEMDUMP. New MEM command displays MEMSTAT (Main, Aux & Kernel Memory) |
| | | -R : Recurse subdirectories | | | MKDIR | Working | Make Directory|
| CP | Working | -C : Continue On Error | 0.92 | | MORE | Working | MORE \<File\> or CMD\|MORE \<opt\> <br> -H : This help screen <br> -N : Number all output lines <br> -P : Page mode, no scroll <br> -S : Process ESC codes |
| | | -Q : Quiet | | | NSCUTIL | Working | NSCUTIL DD/MM/YY,hh:mm:ss <br> Tool for setting time in NSC/DL1216E |
| | | -R : Recurse subdirectories | | | MV | Working | -C : Continue On Error <br> -Q : Quiet <br> -R : Recurse subdirectories <br> -Y : Dont't Prompt For Override |
| | | -Y : Dont't Prompt For Override | | | PS | Working | List Processes|
| EDIT | Working | still missing : find/replace | 0.92 | | RM | Working | RM \[File/Dir, *,? wildcards allowed\] <br> -C : Continue On Error <br> -Q : Quiet <br> -R : Recurse subdirectories |
| FORMAT | In Progress | FORMAT \<BLOCKDEV\> [VOLUME.NAME] | 0.92 |
| | | -L : Low-Level Format *not currently supported | |
| | | -1..9 : Catalog Size (block count) | |
| GREP | Working | GREP \<opt\> PATTERN FILE or CMD\|GREP \<opt\> PATTERN | 0.92 |
| | | -H : This help screen | |
| | | -I : Ignore Case | |
| | | -N : Print line Number | |
| KILL | Working | KILL \<signal\> PID | 0.92 |
| | | -0 : No Signal | |
| | | -1 : SIGQUIT | |
| LS | Working | -A : Print . & .. | 0.92 |
| | | -C : Single column listing | |
| | | -F : Single column, includes full path | |
| | | -L : long listing with size/date... | |
| | | -R : Recurse subdirectories | |
| LSDEV | Working | Dump device Drivers | 0.92 |
| LSOF | Working | List Open Files | 0.92 |
| MD5 | Working | MD5 \[ -D : String \| file \] | 0.92 |
| MEM | Working | Old dump behavior is now MEMDUMP. New MEM command displays MEMSTAT (Main, Aux & Kernel Memory) | 0.92 |
| MKDIR | Working | Make Directory| 0.92 |
| MORE | Working | MORE \<File\> or CMD\|MORE \<opt\> | 0.92 |
| | | -H : This help screen | |
| | | -N : Number all output lines | |
| | | -P : Page mode, no scroll | |
| | | -S : Process ESC codes | |
| NSCUTIL | Working | NSCUTIL DD/MM/YY,hh:mm:ss | 0.92 |
| | | Tool for setting time in NSC/DL1216E | |
| MV | Working | -C : Continue On Error | 0.92 |
| | | -Q : Quiet | |
| | | -R : Recurse subdirectories | |
| | | -Y : Dont't Prompt For Override | |
| PS | Working | List Processes| 0.92 |
| RM | Working | RM \[File/Dir, *,? wildcards allowed\] | 0.92 |
| | | -C : Continue On Error | |
| | | -Q : Quiet | |
| | | -R : Recurse subdirectories | |
## Network (TCPIP) tools: ## Network (TCPIP) tools:
| Name | Status | Comment | K.Ver | | Name | Status | Comment |
| ---- | ------ | ------- | ----- | | ---- | ------ | ------- |
| ARP | Working | dump ARP cache, setup a static ARP entry | 0.92 | | ARP | Working | dump ARP cache, setup a static ARP entry |
| DNSINFO | Working | dump DNS cache, setup a static DNS entry | 0.92 | | DNSINFO | Working | dump DNS cache, setup a static DNS entry |
| HTTPGET | In Progress | HTTPGET <ip\|host> [port] | 0.93 | | HTTPGET | In Progress | HTTPGET <ip\|host> [port] <br> -U Url <br> -F UrlFile |
| | | -U Url | | | IPCONFIG | Working | -D : Try to get IP address from DHCP <br> -E : Read ETC files <br> -S : Set/Reset TCPIP configuration (-E, then -D if required) |
| | | -F UrlFile | | | NETSTAT | Working | |
| IPCONFIG | Working | -D : Try to get IP address from DHCP | 0.92 | | PING | Working | PING <ip\|host> <br> -1..9 : Ping Count |
| | | -E : Read ETC files | | | TELNET | Working | TELNET <ip\|host> [port] |
| | | -S : Set/Reset TCPIP configuration (-E, then -D if required) | |
| NETSTAT | Working | | 0.92 |
| PING | Working | PING <ip\|host> | 0.92 |
| | | -1..9 : Ping Count | |
| TELNET | Working | TELNET <ip\|host> [port] | 0.92 |
## DEV tools: ## DEV tools:
| Name | Status | Comment | K.Ver | | Name | Status | Comment |
| ---- | ------ | ------- | ----- | | ---- | ------ | ------- |
| ASM | In Progress | S-C MASM based multi CPU assembler | 0.9.1 | | ASM | In Progress | S-C MASM based multi CPU assembler |
| MEMDUMP | Working | Tool to track memory leak| 0.92 | | MEMDUMP | Working | Tool to track memory leak|
| ---- | ------ | ------- | ----- | | RPCDUMP | In Progress | Tool based on UDP socket API, renamed from RPCINFO <br> RPCDUMP <ip\|host> | |
| RPCDUMP | In Progress | tool based on UDP socket API, renamed from RPCINFO | 0.92 |
| | | RPCDUMP <ip\|host> | |