A2osX/.Docs/Technical Spec.md
Patrick Kloepfer bc9b9c3b58 Updated Doc.
2019-10-20 22:38:15 -04:00

9.5 KiB

A2osX (0.93) Multi-Tasking OS for Apple II

Updated October 20, 2019

This is the functional specification for A2osX and 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 on the use of these commands and modules.

SYS/KM* Supported Hardware At Kernel Level (ProDOS):

KM.Name Status Comment K.Ver
KM.APPLETALK Future AppleTalk Support for ProDOS
KM.NSC Working No-Slot-Clock/DS1216E 0.93
KM.RAMWORKS Working AE-Ramworks I,II,III 0.93
KM.VSDRIVE Working ADTPro Virtual Drive for SSC 0.93

SBIN,Daemons/Commands:

Name Status Comment K.Ver
GETTY Working -E : Exit on remote close 0.93
HTTPD Future Web Page Server Daemon
INITD In Progress Run Level Manger 0.93
INSDRV Working Loads HW Drivers 0.93
KCONFIG Working Kernel Configuration Utility 0.93
LOGIN Working Authorization using /etc/passwd 0.93
NETWORKD Working TCP/IP Network Stack 0.93
TELNETD Working Telnet Server Daemon
TELNETD xxxx to listen on alternate port xxxx
0.93

DRV,Drivers:

Name Status Comment K.Ver
DHGR.DRV Future 560x192 Mono/16 colors Mixed-Mode support 0.94
LanCeGS.DRV Working Ethernet Network Interface 0.93
Mouse.DRV Future Apple Mouse Card/Mouse Port
PIC.DRV Future Apple "Parallel Interface Card" Driver, renamed from PPIC.DRV
SSC.DRV Working Apple "Super Serial Card" Driver 0.93
SSC.I.DRV In Progress Apple "Super Serial Card" Driver (IRQ enabled) 0.93
Uthernet.DRV Working Ethernet Network Interface 0.93
Uthernet2.DRV Working Ethernet Network Interface 0.93
Uther2.AI.DRV In Progress Network Interface With ARP/IP Offloading 0.93

BIN,External Shell commands:

Name Status Comment K.Ver
ARP Working dump ARP cache, setup a static ARP entry 0.93
ASM In Progress S-C MASM based multi CPU assembler 0.94
CAT Working -A : Show All non printable caracters
-N : Number all output lines
-S : Suppress repeated empty output lines
0.93
CUT Working CUT <opt> "line" or CMD | CUT <opt>
-F nn : Output field nn
-M nn : Output starting at nn
-N nn : Output Ending at nn
-S ch : Change default SPACE separator to 'ch'
0.93
CHGRP Future -C : Continue On Error
-R : Recurse subdirectories
CHMOD Future -C : Continue On Error
-R : Recurse subdirectories
CHOWN Future -C : Continue On Error
-R : Recurse subdirectories
CHTYP Working -C : Continue On Error
-R : Recurse subdirectories
0.93
CP Working -C : Continue On Error
-Q : Quiet
-R : Recurse subdirectories
-Y : Dont't Prompt For Override
0.93
DNSINFO Working dump DNS cache, setup a static DNS entry 0.93
EDIT Working still missing : find/replace 0.93
FORMAT In Progress FORMAT <BLOCKDEV> [VOLUME.NAME]
-B Blocks : Force number of blocks to format
-L : Low-Level Format *not currently supported
-1..9 : Catalog Size (block count)
0.93
GREP Working GREP <opt> PATTERN FILE or CMD | GREP <opt> PATTERN
-I : Ignore Case
-N : Print line Number
0.93
HTTPGET In Progress HTTPGET <ip|host> [port]
-U Url
-F UrlFile
0.93
IPCONFIG Working -D : Try to get IP address from DHCP
-E : Read ETC files
-S : Set/Reset TCPIP configuration (-E, then -D if required)
0.93
KILL Working KILL <signal> PID
-0 : No Signal
-1 : SIGQUIT
-2 : SIGKILL
0.93
LS Working -A : Print . & ..
-C : Single column listing
-F : Single column, includes full path
-L : long listing with size/date...
-R : Recurse subdirectories
0.93
LSDEV Working Dump device Drivers 0.93
LSOF Working List Open Files 0.93
MD5 Working MD5 [ -D : String | file ] 0.93
MEM Working Displays Main, Aux & Kernel Memory 0.93
MEMDUMP Working Tool to track memory leak 0.93
MKDIR Working Make Directory 0.93
MORE Working MORE <File> or CMD|MORE <opt>
-N : Number all output lines
-P : Page mode, no scroll
-S : Process ESC codes
0.93
NETSTAT Working Display socket status 0.93
NSCUTIL Working NSCUTIL DD/MM/YY,hh:mm:ss
Tool for setting time in NSC/DL1216E
0.93
MV Working -C : Continue On Error
-Q : Quiet
-R : Recurse subdirectories
-Y : Dont't Prompt For Override
0.93
PING Working PING <ip|host>
-1..9 : Ping Count
0.93
PS Working List Processes 0.93
RM Working RM [File/Dir, *,? wildcards allowed]
-C : Continue On Error
-Q : Quiet
-R : Recurse subdirectories
0.93
SH Working Shell Command Processor
(See Internal Shell commands)
0.93
TELNET Working TELNET <ip|host> [port] 0.93
RPCDUMP In Progress Tool based on UDP socket API, renamed from RPCINFO
RPCDUMP <ip|host>
0.93

Internal Shell commands:

Name Status Comment
<value> Working $VAR | string | "string with SPACE" | 123 | -456
<expression> Working <value> [<op> <value>] ...
<op> Working + : signed int32 add
- : signed int32 subtract
* : signed int32 multiply
/ : signed int32 divide
mod : signed int32 modulo
<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 ]
BREAK Working Exit CASE of SWITCH
CASE Working CASE
CD Working CD path or relative path
DATE Working
DEFAULT Working Default CASE for SWITCH
ECHO Working \b,\e,\f,\n,\\ and \% supported
-N : Suppress \r\n
ELSE Working Optional branch for IF block
END Working End of SWITCH Statement
EXIT Working exit script or shell
FI Working Terminator for IF block
FUNCTION Working FUNCTION function_name {
<body>
}
IF Working [ <condition> ]
LOOP Working Terminator for WHILE block
MD Working MD path or relative path
Create a directory
NOHUP Working Start a process with PPID=PS0 (Daemon)
PAUSE Working Wait until CR
POPD Working Restore previously saved working directory
PUSHD Working Save actual working directory
PUSHD <dir> do also a CD to <dir>
PWD Working Print Working Directory
RD Working Delete an empty directory
READ Working -N c : Limit input to c characters
-P : "prompt message"
-S : no echo (password)
REN Working Rename a file, directory or volume
SET Working -C : toggle Control-C break mode
-X : toggle debug mode
-F : remove all defined functions
SHIFT Working Remove $1 from cmd line
SLEEP Working Wait <count> 10th sec
SWITCH Working SWITCH
TIME Working
WHILE Working [ <condition> ]

Shell variables:

Name Status Comment
$0 Working Command Full Path
$1-$9 Working Arg[n]
$* Working All Args
$# Working Arg Count
$? Working Return Code
$@ Working Parent PID
Working PID
$! Working Child PID
$UID Working PS Owner UID
$PWD Working Working Directory

note : '$VAR' does NOT expand Variable

Shell I/O control/redirection:

Token Status Comment
. Working use same environment to run new script
& Working start process
| Working pipe
< Working StdIn redirection
> Working StdOut redirection
>> Working Append StdOut
1>> Working
1> Working
2>> Working StdErr redirection
2> Working

License

A2osX is licensed under the GNU General Pulic License.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

The full A2osX license can be found Here.

Copyright 2015 - 2019, Remy Gibert and the A2osX contributors.