Major commit before repo transfer.

This commit is contained in:
Patrick Kloepfer 2020-01-28 15:20:23 -05:00
parent c8d16b5b6c
commit bf0aa5955c
29 changed files with 1671 additions and 62 deletions

View File

@ -1,6 +1,6 @@
# A2osX Command Guide
### Updated January 16, 2020
### Updated January 27, 2020
This Guide provides information on all the A2osX commands and utilities. This Guide helps you not only learn the purpose of each command but also what options a command supports and what arguments it either supports or requires.

View File

@ -1,6 +1,6 @@
# A2osX Developers Guide
### Updated October 22, 2019
### Updated January 27, 2020
This Guide provides information on the development process and tools used to build A2osX. The core of A2osx is currently, and likely always will be, developed in 65C02 Assembly Language. Assembly is used for the speed, compactness and efficient memory management necessary for the central core, or kernel, of A2osX. Currently all of the programs distributed with A2osX are also written in Assembly, however, a it is expected that a C compiler or preprocessor that creates Assembly will be made available in the future.
@ -104,4 +104,4 @@ The full A2osX license can be found **[Here](../LICENSE)**.
## Copyright
Copyright 2015 - 2019, Remy Gibert and the A2osX contributors.
Copyright 2015 - 2020 Remy Gibert and the A2osX contributors.

1415
.Docs/Glossary.md Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
# A2osX Media Guide
### Updated January 26, 2020
### Updated January 27, 2020
We have changed the media set for A2osX. New A2osX Users should download the most current version as shown in the table below. **A new Release Candidate (RC) edition has been made available (highlighted below), you should choose one of the media options from this set.** The Bleed media are the primary images used by the developers to hold the most current version of the A2osX binaries (and a copy of the source, although of course GitHub is the primary source repository) and may be unstable. You should not use this media unless directed by the A2osX development team.

View File

@ -1,6 +1,34 @@
# A2osX (0.92) Multi-Tasking OS for Apple II
### Updated October 20, 2019
### Updated January 27, 2020
## Latest News 2019-12-05
Media have been updated based on Build 1784.
## Latest News 2019-10-31
Media have been updated based on Build 1694. This version fixes issues with Piping of commands, adds new READ functionality. Please note, KM.NSC is no longer loaded by default on any media. If you have a No Slot Clock in your system, you should move the file KM.NSC from ./SYS/KM into ./SYS which will make it load on boot.
## Latest News 2019-10-26
Starting with Build 1675, the SH(ell) command **TIME** has been removed and the **DATE** command will now return both the Date and Time. Additionally, if DATE command has been updated to support options for returning formatted strings with just the portions of the date and time you desire. Consult the Shell Developers Guide for syntax.
## Latest News 2019-10-24
Created STABLE images with Build 1669 with improvements to TCP networking. There is also a new DEBUG 140k disk image. See the media guide for more info.
## Latest News 2019-10-22
Updated RC images to Build 1664 which fixed RESTART SYSTEM bug on //GS.
## Latest News 2019-10-19
Updated RC images to Build 1653 which fixed bugs in CUT and includes a patched version of ProDOS 2.03 to correct year display for ThunderClocks.
## Latest News 2019-10-18
Updated A2osX Release Candidate based on Build No 1650 is now available and can be found in our **[Media directory](.Floppies)**. In addition, a new disk image **TDBOOT** has been created that is preconfigured to automatically load Uthernet2 driver, start network services and launch the TelnetD server process (hence name TD for TelnetD Boot).
## Latest News 2019-10-15
@ -209,4 +237,4 @@ The full A2osX license can be found **[Here](../LICENSE)**.
## Copyright
Copyright 2015 - 2019, Remy Gibert and the A2osX contributors.
Copyright 2015 - 2020, Remy Gibert and the A2osX contributors.

View File

@ -1,6 +1,6 @@
# A2osX and ProDOS
### Updated January 16, 2020
### Updated January 27, 2020
As discussed in the **[Users Guide](.Docs/User%20Guide.md)**, A2osX runs on top of ProDOS, leveraging its support for block devices such as floppy drives, hard drives, SmartPort drives, etc.; it is limited in its ability to implement certain features based on the capabilities of the underlying operating system, in this case ProDOS. This document will provide an overview of those features and their availability or absence from several versions of ProDOS including two new versions of ProDOS created by the makers of A2osX.

View File

@ -1,6 +1,6 @@
# A2osX (0.93) Multi-Tasking OS for Apple II
### Updated October 20, 2019
### Updated January 27, 2020
## Screenshots

View File

@ -1,7 +1,6 @@
# A2osX Shell Developers Guide
### Updated December 15, 2019
### Updated January 27, 2020
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:
@ -13,7 +12,9 @@ This Developers Guide will cover the basic operation of the interactive shell, t
## About the A2osX Shell (SH)
The default A2osX Shell **./bin/sh** is an external command program like many others included with A2osX. It is probably the most complex and capable, as suggested by its size compared to other commands (7K vs 1K for **telnet**). It is the primary tool for interacting with the A2osX system. The **sh** shell is based loosely on the Linux BASH shell, to the extent possible on an 8-bit machine. Alternative shells are planned for the future and will be announced as they become available.
The default A2osX Shell **./bin/sh** is an external command program like many others included with A2osX. It is probably the most complex and capable, as suggested by its size compared to other commands (7K vs 1K for **telnet**). It is the primary tool for interacting with the A2osX system. The **sh** shell is based loosely on
the Linux BASH shell, to the extent possible on an 8-bit machine. Alternative shells are planned for the future and will be announced as they become available.
As the primary mechanism for working with A2osX, the shell (**sh**) is launched automatically when you log into A2osX. In the case where no *./etc/passwd* file is present, A2osX automatically logs you in as the *root* user. When a user login occurs and **sh** is launched, it looks for a file called *profile* in the users HOME directory and if found, executes that script. The information below on writing scripts applies to PROFILE script files.
@ -643,13 +644,13 @@ The **SET** command is used to set or clear the value of variables as well as to
The most simplistic form of set is **SET var = value** such as SET myVar = 6, where the shell will create a new variable called MyVar and in this case make it an Interger (32-bit) and set its value to 6.
As seen throughout this guide, scripts are very useful for automating many repetitive tasks. To get the most out of scripts, you are likely going to want input from the user or gather existing data stored in your file system and then use this to control program flow. To do this, you are likely going to want to use variables to store and process the data your script relies on. This section will provide you with the information you need to get the most out of your own, as well as system provided, variables.
As seen throughout this guide, scripts are very useful for automating many repetitive tasks. To get the most out of scripts, you are likely going to want input from the user or gather existing data stored in your file system and then use this to control program flow. To do this, you are likely going to want to use variables to store and process the data your script relies on. This section will provide
you with the information you need to get the most out of your own, as well as system provided, variables.
All variables have names, starting with xxx, can be any length, but longer is not better. They are case sensitive so AVAR, Avar, aVar, and avar are actually 4 different variables. There are only two kinds of variables internally, strings and integers.
Variable overflow strings and ints
Ints only no real num it just ignore
@ -840,6 +841,12 @@ The following example demonstrates the complete validation concept outlined abov
Copy Vars????, Different Context, own vars get lost, own funcs, when called with dot, is using the same env.
### Line Separator
<command> ; <command> ; <command> ; ...
@ -865,8 +872,9 @@ As far as the shell is concerned, it processes both syntax as a series of indivi
# This is a comment.
# This is a another comment.
#LastComment
ECHO Hello ; # Comment after command using semi-colon
You add comments to your scripts by placing a pound sign at the start of the line of your script. The # must be the first non-space character on the line, for the entire line to be treated as a comment. As shown in the sample scripts throughout this guide, you can add a comment to a line containing a command (i.e. ECHO "Hello") by using the semicolon to concatenate multiple lines (i.e. ECHO "Hello" ; # A Comment).
You add comments to your scripts by placing a pound sign (**#**) at the start of the line of your script. The **#** must be the first non-space character on the line, for the entire line to be treated as a comment. As shown in the sample scripts throughout this guide, you can add a comment to a line containing a command (i.e. ECHO "Hello") by using the semicolon to concatenate multiple lines (i.e. ECHO "Hello" ; # A Comment).
### Examples
@ -875,7 +883,7 @@ In addition to the scripts in this document, there are many example scripts incl
## License
A2osX is licensed under the GNU General Public License.
This program is free software; you can redistribute it and/or modify
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.
@ -889,4 +897,4 @@ The full A2osX license can be found **[Here](../LICENSE)**.
## Copyright
Copyright 2015 - 2019, Remy Gibert and the A2osX contributors.
Copyright 2015 - 2020, Remy Gibert and the A2osX contributors.

View File

@ -1,6 +1,6 @@
# A2osX Terminal Codes Guide
### Updated October 31, 2019
### Updated January 27, 2020
A2osX terminal capabilities are based off of the standard VT100 Terminal. This applies to users connected via Super Serial Cards, Telnet (via TelnetD server daemon) and Apple console (physical keyboard/screen). All programs can use this facility to create rich interactive text mode applications. This includes both programs written in Assembly or Scripts written for the Shell (SH). The table below lists the codes you can use in your applications and their function. Consult the A2osX Shell Developers Guide for information on using these codes in scripts. Note, the Apple Console implementation only supports a subset of the VT100 codes, these are noted in the last column as OK.

View File

@ -1,6 +1,6 @@
# A2osX (0.93) Multi-Tasking OS for Apple II
### Updated November 19, 2019
### Updated January 27, 2020
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.
@ -18,8 +18,8 @@ This is the functional specification for A2osX and its system modules, internal
| Name | Status | Comment | K.Ver |
| ---- | ------ | ------- | ------|
| GETTY | Working | -E : Exit on remote close | 0.93 |
| HTTPD | In Progress | Web Page Server Daemon | 0.94 |
| INITD | In Progress | Run Level Manger | 0.94 |
| HTTPD | Future | Web Page Server Daemon | 0.94 |
| INITD | Future | Run Level Manger | 0.94 |
| INSDRV | Working | Loads HW Drivers | 0.93 |
| KCONFIG | Working | Kernel Configuration Utility | 0.93 |
| LOGIN | Working | Authorization using /etc/passwd | 0.93 |
@ -44,7 +44,7 @@ This is the functional specification for A2osX and its system modules, internal
| 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 |
| ASM | In Progress | S-C MASM based multi-CPU assembler | 0.94 |
| CAT | Working | -A : Show All non printable caracters <br> -N : Number all output lines <br> -S : Suppress repeated empty output lines | 0.93 |
| CHGRP | Future | -C : Continue On Error <br> -R : Recurse subdirectories | |
| CHMOD | Future | -C : Continue On Error <br> -R : Recurse subdirectories | |
@ -61,7 +61,7 @@ This is the functional specification for A2osX and its system modules, internal
| 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) | 0.93 |
| KILL | Working | KILL \<signal\> PID <br> -0 : No Signal <br> -1 : SIGQUIT <br> -2 : SIGKILL | 0.93 |
| 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 | 0.93 |
| LSDEV | Working | Dump device Drivers | 0.93 |
| LSDEV | Working | List 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 |
@ -89,7 +89,7 @@ This is the functional specification for A2osX and its system modules, internal
| Name | Status | Comment |
| ---- | ------ | ------- |
| \<condition\> | Working |[ -D direxists ] <br> [ -E fileordirexists ] <br> [ -F fileexists ]<br> [ -I isaninteger ] <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 ] |
| \<condition\> | Working |[ -D direxists ] <br> [ -E fileordirexists ] <br> [ -F fileexists ]<br> [ -I isaninteger ] <br> [ -N $VAR variable is not empty ] <br> [ -X functionexists ]<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 ] |
| \<expression\> | Working | \<value\> [\<op\> \<value\>] ... |
| \<op\> | Working | \+ : signed int32 add <br> \- : signed int32 subtract <br> \* : signed int32 multiply<br> / : signed int32 divide <br> mod : signed int32 modulo |
| \<value\> | Working | $VAR \| string \| "string with SPACE" \| 123 \| -456 |
@ -160,9 +160,9 @@ note : '$VAR' does NOT expand Variable
| 2> | Working | |
## License
A2osX is licensed under the GNU General Pulic License.
A2osX is licensed under the GNU General Public License.
This program is free software; you can redistribute it and/or modify
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.
@ -176,4 +176,4 @@ The full A2osX license can be found **[Here](../LICENSE)**.
## Copyright
Copyright 2015 - 2019, Remy Gibert and the A2osX contributors.
Copyright 2015 - 2020, Remy Gibert and the A2osX contributors.

View File

@ -1,6 +1,6 @@
# A2osX User Guide
### Updated December 17, 2019
### Updated January 27, 2020
This Guide provides information on getting started with A2osX. This Guide helps you understand the basic features, capabilities and operation of A2osX. This should be the first document you read before, or soon after, installing or running A2osX.
@ -94,7 +94,7 @@ First, let's walk through the most standard and likely boot process of A2osX usi
- This shell process executes the script *PROFILE* found in the users home directory.
Some notes on the above:
- A2osX has been tested on ProDOS versions 2.0.3 and 2.4.2. We welcome testing and feedback on using A2osX with other versions.
- A2osX has been tested on ProDOS versions 2.0.3 and 2.4.2 as well as with the special versions of ProDOS contained on the distribution media (these are discussed elsewhere). We welcome testing and feedback on using A2osX with other versions.
- The *NS.CLOCK.SYSTEM* is not needed by A2osX because there is a Kernel Module that accomplishes the same thing, please see the section on KMs. A user may want the *NS.CLOCK.SYSTEM* file if they are running other applications (i.e. AppleWorks) from the same volume so that the NSC patch gets enabled for their apps use of the clock.
- There are enhancements planned for the QUIT CODE routine. In the future, we hope to allow you to execute another SYSTEM file from the Shell in A2osX whereby QC routine will unload A2osX, load your other SYSTEM program (again i.e. AppleWorks) and then when you quit that application, the QC routine will reload A2osX.
- When *A2OSX.SYSTEM* starts, it initializes the system in stages as described above (load KMs, load Kernel, execute INIT, etc.). If during this process you hold down the Open-Apple key, A2osX will stop at the end of each stage until you press another key. You can use this to debug start up problems/hardware conflicts.
@ -102,6 +102,8 @@ Some notes on the above:
- The *./etc/init* file can be used to automatically start the *ssc.drv* and **getty** process for an external terminal. It can also be used to load network drivers and processes at boot.
- The ./${HOME}/profile file can be used to change a users default $PATH, run a Shell Script or load a particular program when a user logs in.
>**Need new section here on DEBUG.po and how to use it to solve hardware conflict issues**
If you decide to install/copy A2osX to your own existing Hard Drive or volume, you just need to be sure to keep the A2osX file system structure in tact. To start A2osX "manually" as it were, you change your PREFIX to the appropriate sub-directory and then load *A2OSX.SYSTEM*. So for example, if you had a CFFA card that booted to a volume called /HD1, you could make a subdirectory on this disk called A2OSX. You would then set your PREFIX to */HD1/A2OSX* and launch *A2OSX.SYSTEM* and the rest of the boot process outlined above would be followed. Please see the section on Installation for more information on putting A2OSX on your own media.
### A2osX Kernel Modules
@ -119,7 +121,7 @@ The *km.nsc* module gives you the same functionality as the *NS.CLOCK.SYSTEM* ro
The *km.ramworks* is used only on systems with greater then 128K of memory provided by a RamWorks compatible 80-col card in an Apple //e. It turns any additional memory into a ram disk */RAM3*. You should **NOT** load the *km.ramworks* module on Apple //GS systems.
The *km.vsdrive* module helps you connect to an ADTPRO server via a Super Serial Card (SSC). This module will use the first Super Serial Card in your system set with Interrupts off. It is also best if you set this SSC at a baud rate of 115200. If you have more then one SSC system and you are using the others for terminals you should fully understand how to configure the cards, Kernel Modules, and the SSC drivers for optimal performance.
The *km.vsdrive* module helps you connect to an *ADTPRO* server via a Super Serial Card (SSC). This module will use the first Super Serial Card in your system set with Interrupts off. It is also best if you set this SSC at a baud rate of 115200. If you have more then one SSC system and you are using the others for terminals you should fully understand how to configure the cards, Kernel Modules, and the SSC drivers for optimal performance. If you are using this module on an emulator, see the section below on *AppleWin* for important information about using *ADTPro*.
The *km.appletalk* module helps ProDOS talk to APPLETALK, though at the moment A2osX cannot use this facility until we complete the ATLOGIN/Mount programs. On most of our media you will find this KM stored in a subdirectory of ./SYS which means it is not loaded at start up. As this module is in development, in may not be included on the media you download.
@ -174,7 +176,7 @@ A2osX supports as many physical terminals as you have SSC cards and memory to lo
A2osX supports multiple internet connected terminals via a **telnetd** server process. The **telnetd** process supports VT-100 terminals, so you should set your Telnet client (i.e. PuTTY) to use VT-100 emulation. Of course you can use another Apple running A2osX and the **telnet** client to connect to an Apple running A2osX and the **telnetd** server.
>Note, if you are using Telnet Client Software such as PuTTY for Windows and see random garbled characters (odd graphics symbols), you may need to change your **Remote Character Set** to something other than **UTF-8**, such as **ISO-8859-1:1998 (Latin-1, West Europe)**.
>Note, if you are using Telnet Client Software such as *PuTTY* for Windows and see random garbled characters (odd graphics symbols), you may need to change your **Remote Character Set** to something other than **UTF-8**, such as **ISO-8859-1:1998 (Latin-1, West Europe)**.
One of the images available in the .Floppies folder is *TDBOOT.po* which is a preconfigured A2osX system that loads the Uthernet 2 Driver, TCP and **tetlnetd** at boot. If you want to use this image on *AppleWin*, edit the *./etc/init* file to comment out the *uthernet2.drv* driver and remove the comment from the *uthernet.drv* line and reboot. See the section on running A2osX under *AppleWin* for more information.
@ -227,24 +229,27 @@ While A2osX supports many Apple II hardware devices, it is possible a conflict w
| FastChip //e | Working | Must disable RAMFACTOR |
| Apple 1mb Slinky Ram Card | Working | Possible conflict with Transwarp |
>**Need new section here on DEBUG.po and how to use it to solve hardware conflict issues**
## Getting Started
To get started with A2osX, the very first thing you need to do is download a disk image from GitHub. Images are available in multiple versions from cutting edge developer seeds to release candidates as well as in multiple sizes suitable for placing on Disk II drives, 3.5 drives or hard drives of for use with emulators. Please consult the **[A2osX Media Guide](.Docs/Media%20Guide.md).** for detailed information on the available images.
### Using AppleWin
Download one of the available 32MB images from GitHub. Open AppleWin and then click on the configuration icon. When the configuration screen appears, select the Disk tab. Next, make sure the **Enable Hard disk controller in slot 7** box is checked and set the **HDD 1** to the image you downloaded. Click OK to save your changes and finally boot the emulated Apple by clicking on the colored Apple icon. Suggestion: on the configuration screen, for Video Mode, select Color (RGB Monitor). You may also want to setup AppleWin for Ethernet as A2osX has many features that make use of the emulated Uthernet I card supplied by AppleWin (consult AppleWin documentation for more information on enabling this feature).
Download one of the available 32MB images from GitHub. Open *AppleWin* and then click on the configuration icon. When the configuration screen appears, select the Disk tab. Next, make sure the **Enable Hard disk controller in slot 7** box is checked and set the **HDD 1** to the image you downloaded. Click OK to save your changes and finally boot the emulated Apple by clicking on the colored Apple icon. Suggestion: on the configuration screen, for Video Mode, select Color (RGB Monitor). You may also want to setup *AppleWin* for Ethernet as A2osX has many features that make use of the emulated Uthernet I card supplied by AppleWin (consult *AppleWin* documentation for more information on enabling this feature).
Note on speed of networking
>A note on enabling networking for A2osX while running in emulator such as *AppleWin*. A2osX, fully supports the emulated UtherNet I network interface in *AppleWin*. A2osX, does however, base its timing, or rather its time-out window, based on a calculated timing loop. This works fine on real Apple computers, including ones with accelerators. Unfortunately, while *AppleWin* can be accelerated, it actually artificially forces the system to report a 1mhz clock rate regardless of the accelerator level selected. In real terms, what this does, is cause the network to miss or falsely timeout on some packets. For most applications, this is not an issue as TCP will automatically re-transmit the packet over again. Where this is a **REAL** problem is with DHCP that does not use TCP and you will seemingly never get a DHCP lease. Simply set *AppleWin* to 2.0 speed and everything will work fine. In fact, if you have A2osX set to load the network automatically when you boot, boot at 2.0 speed, and then once IP address has been set, you can up the acceleration speed to max if desired.
As noted above in the section on Kernel Modules, A2osX comes with a special module to connect to ADTPro disk image servers, which is typically done on a real Apple with a Super Serial Card. On *AppleWin* this is possible using its built in Virtual Serial over IP implementation which means serial traffic in and out of the virtual Apple II actually flows over a socket, but the Apple still understands it and treats it as if it is serial. The ADTPro server can take advantage of this and communicate to the emulator this way. Starting the ADTPro server with the command line parameter 'localhost' triggers this behavior. Consult the ADTPro documentation for more information.
The Virtual Serial Over IP emulation uses port 1977. If you are not using *km.vsdrive* to talk to ADTPro, you can set up this serial port to be used as another terminal device for your A2osX system. Then a 2nd user can log into the same A2osX system by using a telnet client such as *PuTTY* to your pc but with port 1977 instead of 23 (the default for telnet).
>Note, the GSport/KEGS emulators offer a similar feature using port 6502.
### Installing on Your Apple
First check that your system meets the minimum hardware requirements. Download one of the available images from GitHub. Images are available in 140K (5 1/4 floppy), 800K (3.5 floppy) and 32MB (suitable for use with hard drive emulators). You will need to use ADTPro to convert an image to physical media or a device such as a FloppyEMU or CFFA to load/boot one of these images on a real Apple. If you are using a device such as the FloppyEMU or CFFA, you should use either the 800K or 32MB images (ProDOS volume name: FULLBOOT) as the smaller 140K image (ProDOS volume: MINIBOOT) is a pared down copy of A2osX that omits several utilities to fit in 140K.
>If you have your own hard drive, you can install A2osX on your drive. The best way to accomplish this is to first start A2osX from one of the supplied media and use its built in commands to copy A2osX to your own drive. For instance, if you have a bootable ProDOS-8 volume on your system named **/MYHD** and one of the A2osX images named **/FULLBOOT** follow these steps:
>
- Boot your system.
- If the A2osX media is set as the boot device, A2osX will load automatically.
@ -254,17 +259,17 @@ First check that your system meets the minimum hardware requirements. Download
You can then enter these commands to put A2osx on your Volume **/MYHD** (replace MYHD in this example with your actual volume name).
/FULLBOOT/ROOT/$ MD /MYHD/A2OSX
/FULLBOOT/ROOT/$ CD ..
/FULLBOOT/$ CP -R * /MYHD/A2OSX
/FULLBOOT/$ ECHO "PREFIX /MYHD/A2OSX" > /MYHD/AOSX
/FULLBOOT/$ ECHO "-A2OSX.SYSTEM" >> /MYHD/AOSX
/FULLBOOT/ROOT/$ md /MYHD/A2OSX
/FULLBOOT/ROOT/$ cd ..
/FULLBOOT/$ cp -r * /MYHD/A2OSX
/FULLBOOT/$ echo "PREFIX /MYHD/A2OSX" > /MYHD/AOSX
/FULLBOOT/$ echo "-A2OSX.SYSTEM" >> /MYHD/AOSX
All of the commands above are documented in the A2osX Command Guide or the Shell Developers Guide, but briefly:
- **md** creates a sub-directory on your volume named A2OSX
- **cd** .. moves up one directory level. The ROOT subdirectory is the home directory for the root user. We move up to the FULLBOOT volumes main directory so that the **cp** (copy) command issued next will copy all the files on this volume.
- **cd ..** moves up one directory level. The ROOT subdirectory is the home directory for the root user. We move up to the FULLBOOT volumes main directory so that the **cp** (copy) command issued next will copy all the files on this volume.
- **cp** copies files and in this case recursively (**-r** option) selecting all files (* wildcard) and puts them in the destination we created early /MYHD/A2OSX
- The next two lines create a bat file, or in ProDOS/BASIC terms an EXEC file that will first change the PREFIX to our new A2OSX sub directory and then launch A2osX. Note the first line use > which will create a file and the 2nd uses >> which appends to a file. Also note that we named the file AOSX and not A2OSX as the latter's name is already used by the sub-directory we created.
- The next two lines create a bat file, or in ProDOS/BASIC terms an EXEC file that will first change the PREFIX to our new A2OSX sub directory and then launch A2osX. Note the first line uses > which creates (or completely overwrites) a file and the 2nd uses >> which appends to a file (or creates it if it does not already exist). Also note that we named the file AOSX and not A2OSX as the latter's name is already used by the sub-directory we created.
### Configuring A2osX
@ -459,4 +464,4 @@ The full A2osX license can be found **[Here](../LICENSE)**.
## Copyright
Copyright 2015 - 2019, Remy Gibert and the A2osX contributors.
Copyright 2015 - 2020, Remy Gibert and the A2osX contributors.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 840 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 840 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 840 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 840 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 840 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

102
.Tools/makepdosbatfiles.txt Normal file
View File

@ -0,0 +1,102 @@
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.0
MAN
TEXT P10
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.0.1
MAN
TEXT P101
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.0.2
MAN
TEXT P102
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.0.NOV
MAN
TEXT P10NOV
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.0.SEP
MAN
TEXT P10SEP
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.1.1
MAN
TEXT P111
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.2
MAN
TEXT P12
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.3
MAN
TEXT P13
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.4
MAN
TEXT P14
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.5
MAN
TEXT P15
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.6
MAN
TEXT P16
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.7
MAN
TEXT P17
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.8
MAN
TEXT P18
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS1X/PRODOS.1.9
MAN
TEXT P19
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS2X/PRODOS.2.0.1
MAN
TEXT P201
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS2X/PRODOS.2.0.2
MAN
TEXT P202
NEW
PREFIX
AUTO 4,1
-ASSETS/PDOS2X/PRODOS.2.0.3
MAN
TEXT P203

9
ADMIN/HELP.txt Normal file
View File

@ -0,0 +1,9 @@
NEW
PREFIX
AUTO 4,1
#!/BIN/SH
#
# HELP
#
MAN
TEXT /MAKE/USR/SHARE/ADMIN/HELP

48
EXAMPLES/CLOCK.txt Normal file
View File

@ -0,0 +1,48 @@
NEW
PREFIX
AUTO 4,1
#!/BIN/SH
#
# This is the A2osX Clock Example
#
# It makes extensive use of functions to display the current time.
#
# Because you cannot get the current time to a variable, this script
# puts the time into a tmp file and then reads it back into vars.
# If /RAM3 exists we will use that to hold the TMP file.
#
# Functions for displaying clock digits
#
# Print at Screen Location Function
# CALL PRINTXY Num_Row Num_Column Str_String
FUNCTION PRINTXY {
ECHO -N "\e[$1;$2H$3"
}
# Print Inverse At X Y
# CALL INVERSEXY Row Col String
FUNCTION INVERSEXY {
ECHO -N "\e[$1;$2H\e[7m$3\e[0m"
}
# CALL DispSpace Row Col
FUNCTION DispSpace
{
SET Row = $1
SET Col = $2
}
FUNCTION DispColon
{
SET Row = $1
SET Col = $2
}
FUNCTION DispHour
{
}
#Clear Screen
ECHO \f
MAN
TEXT /MAKE/USR/SHARE/EXAMPLES/CLOCK

View File

@ -1,6 +1,6 @@
# A2osX (0.93) Multi-Tasking OS for Apple II
### Updated December 5, 2019
### Updated January 27, 2020
## A2osX Release Candidate now available
@ -20,29 +20,27 @@ The foundation of A2osX enabling its multi-user multitasking capabilities is a r
A2osX is designed to work on any 128k Enhanced Apple //e or newer computer. Specifically, A2osX relies on the enhanced instruction set found in the 65C02 processor (this includes the 65C816 found in the //GS). A2osX will not run on an Apple ][ or ][+, a non enhanced //e or on systems without at least 128K of memory. A2osX does not require any special hardware cards, but does support and its operation can be enhanced with the presence of a mass storage devices (any ProDOS block device), a network card, Super Serial Card and/or a Time Card.
Consult the **[documentation](#documentation)** section below to find other resources available to you for learning how to install, use, develop and test A2osX. The Hardware section of the User Guide contains more information on supported hardware.
Consult the **[documentation](#documentation)** section below to find other resources available to you for learning how to install, use, develop and test A2osX. The Hardware section of the User Guide contains more information on tested and supported hardware.
## News...
**2019-12-05** - Media have been updated based on Build 1784.
**2020-01-27** - **Major update to A2osX 0.93**
**2019-10-31** - Media have been updated based on Build 1694. This version fixes issues with Piping of commands, adds new READ functionality. Please note, KM.NSC is no longer loaded by default on any media. If you have a No Slot Clock in your system, you should move the file KM.NSC from ./SYS/KM into ./SYS which will make it load on boot.
The A2osX team is proud to announce the availability of two new versions of ProDOS, one with a very minor tweak and the other a major update/overhaul. There is ProDOS 2.03tc which is an 8 byte patch to ProDOS 2.03 to update the year table to support years through 2023 and ProDOS FX, a **F**aster and e**X**tended version, that adds many new features including lower case file, directory and volume name support. These new versions are already being included in the latest **Stable** media and will become the versions of ProDOS supplied on all future media. The team added a new Document to our repository that covers these and other publically available versions of ProDOS and their use with A2osX.
**2019-10-26** - Starting with Build 1675, the SH(ell) command **TIME** has been removed and the **DATE** command will now return both the Date and Time. Additionally, if DATE command has been updated to support options for returning formatted strings with just the portions of the date and time you desire. Consult the Shell Developers Guide for syntax.
A2osX now act actually has for quite some time supports lower case in file, directory and volume names as long as this capability is available in the version of ProDOS you are running. Consult the new **[A2osX and ProDOS](.Docs/ProDOS.md)** document for more information and a table on which versions of ProDOS provide this capability to A2osX.
**2019-10-24** - Created STABLE images with Build 1669 with improvements to TCP networking. There is also a new DEBUG 140k disk image. See the media guide for more info.
The *EDIT* utility has undergone a major update. We need your testing and feedback. Please make sure to open issues on any anomalies you discover.
**2019-10-22** - Updated RC images to Build 1664 which fixed RESTART SYSTEM bug on //GS.
Kernel/Shell rewrite to move more things to AUX freeing main mem. with 2 tty used to be 22K free. Now. 26.5K with 1TTY 28.4K. of course with 8 TTY 17.5K
**2019-10-19** - Updated RC images to Build 1653 which fixed bugs in CUT and includes a patched version of ProDOS 2.03 to correct year display for ThunderClocks.
Speaking of changing the number of virtual TTYs, A2osX has been enhanced to now support up to 8 virtual terminals on the console, configurable with the KCONFIG utility. Consult the User Guide for more information. Note that with 8 virutal TTYs defines, available main memory drops to 17.5K. Open Apple 1 through 8 is used to be switched between the virtual terminals, Open Apple-0 is still used to access the A2osX Console (displays system errors and information) and Open Apple-9 is reserved for future use of DHGR (Double High-res Graphics).
**2019-10-18** - Updated A2osX Release Candidate based on Build No 1650 is now available and can be found in our **[Media directory](.Floppies)**. In addition, a new disk image **TDBOOT** has been created that is preconfigured to automatically load Uthernet2 driver, start network services and launch the TelnetD server process (hence name TD for TelnetD Boot).
A new bell option (**Echo \a**) has been added to the *echo* command in the shell (*/bin/sh*) to ring a bell on VT-100 connected terminals (via the SSC driver or the TELNETD deamon). The bell has no affect on the console.
**2019-10-15** - The first A2osX Release Candidate is now available and can be found in our **[Media directory](.Floppies)**.
Multiple bugs have been address from issues posted on GitHub including updates to *cut*, *format*, *sh* (for internal command), *nscutil*, *ping*, *wc*, and many more. Users can check the status of issues or create new ones for A2osX on **[Github](https://github.com/burniouf/A2osX/issues)**.
2019-04-19 - Major updates have occurred to the kernel and many of the A2osX API's to support a greatly enhanced shell that boasts significant new scripting capabilities since 0.92. Also added is the the ability to redirect input and output, including errors, and the ability to pipe (|) the output of one command or operation to another (i.e. **ls \* | more** ). A2osX now provides for multiple virtual terminals as well as users/terminals via TCP (through TELNETD) and serial devices (through a SSC driver).
As great as the changes to A2osX itself, we are also please to report that great strides have been made in terms of documentation. While much of it is in draft form, there is a new **[Users Guide](.Docs/User%20Guide.md)**, **[Developers Guide](.Docs/Developers%20Guide.md)**, **[Shell Developers Guide](.Docs/Shell%20Developers%20Guide.md)**, **[Technical Spec](.Docs/Technical%20Spec.md)** and **[Command Guide](.Docs/Command%20Guide.md)**. See the **[Documentation](#documentation)** Section below for more details.
A great new networking utility, *wget* is now available which can be used to access/post to web servers. This utility can be used in combination with services like IFTTT to send tweets from A2osX, or send message to apps like Slack.
If you would like to read all the past news articles for A2osX, you can read the news article found **[here](.Docs/News.md)**.
@ -56,11 +54,7 @@ You can use and/or install A2osX from the media in our Media directory found **[
## Documentation...
A lot of work has been done to expand and enhance the documentation for A2osX. Some of this documentation is still in the rough draft stage, provided to you to bring you as much information about A2osX as quickly as possible. We happily welcome any help and contributions from others to this or any area of the A2osX project.
The repository all A2osX documentation can be found **[here](.Docs)**. This directory includes the system generated specifications for all the A2osX APIs as well as all our other documentation.
Of special note please check out our brand new **[Users Guide](.Docs/User%20Guide.md)** and **[Developers Guide](.Docs/Developers%20Guide.md)**.
The A2osX team is pleased to report that great strides have been made in terms of documentation. While much of it is in draft form, there is a new **[Users Guide](.Docs/User%20Guide.md)**, **[Developers Guide](.Docs/Developers%20Guide.md)**, **[Shell Developers Guide](.Docs/Shell%20Developers%20Guide.md)**, **[Technical Spec](.Docs/Technical%20Spec.md)** and **[Command Guide](.Docs/Command%20Guide.md)**. Work continues to expand and enhance the documentation for A2osX. While still under construction, it is provided to you to bring you as much information about A2osX as quickly as possible. We happily welcome any help and contributions from others to this or any area of the A2osX project. The repository all A2osX documentation can be found **[here](.Docs)**. This directory includes the system generated specifications for all the A2osX APIs as well as all our other documentation.
### Technical Documentation...
@ -89,4 +83,4 @@ The full A2osX license can be found **[Here](../LICENSE)**.
## Copyright
Copyright 2015 - 2019, Remy Gibert and the A2osX contributors.
Copyright 2015 - 2020, Remy Gibert and the A2osX contributors.