diff --git a/.Docs/Developers Guide.md b/.Docs/Developers Guide.md index 9b41e0e7..fc9a6977 100644 --- a/.Docs/Developers Guide.md +++ b/.Docs/Developers Guide.md @@ -81,7 +81,7 @@ A2osX supports additional connected users via either Super Serial Cards or the p The A2osX development team use Notepad++ to edit and maintain many of the source files. You can learn about and download NotePad++ from **https://notepad-plus-plus.org** . If you use Notepad++ a language specific color scheme plugin for S-C MASM has been made available to easy Apple Assembly development for A2osX. This tool can be found in the .Tools folder of the A2osX repository. You will need to copy this file (.Tools/userDefineLang.xml) into your %APPDATA%\Notepad++ directory on your PC. Then in Notepad++ change your language to S-C MASM 65C02 and notepad++ will do the proper highlighting. ## 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 it under the terms of the GNU General Public License as published by diff --git a/.Docs/Media Guide.md b/.Docs/Media Guide.md index 1a49d42a..2a74a484 100644 --- a/.Docs/Media Guide.md +++ b/.Docs/Media Guide.md @@ -9,7 +9,7 @@ We have changed the media set for A2osX. New A2osX Users should download the mo | Edition | Description | Build No | Date | | --- | --- | --- | --- | | RELEASE | This is a locked down set of media that will change infrequently, only upon a major update. | | * | -| **RC** | **This is a RELEASE candidate, if available, for the next coming major release. There should be very few RC releases before one of them becomes the actual RELEASE media. RC releases should be relatively bug free and feature complete (to the scope planned for that release).** | **1931** | **Feb-10-2020** | +| **RC** | **This is a RELEASE candidate, if available, for the next coming major release. There should be very few RC releases before one of them becomes the actual RELEASE media. RC releases should be relatively bug free and feature complete (to the scope planned for that release).** | **1937** | **Feb-10-2020** | | STABLE | Stable releases are significant updates over the last RELEASE but may not included in their own scope. STABLE releases will be made from BLEED builds that have no significant bugs, but may have documented issues that have not yet been resolved, especially in new features. This will likely become RC shortly. | 1919 | Feb-07-2020 | | BLEED| The media in this edition are very cutting edge, changing almost daily, particularly A2OSX.BUILD.po. This edition is targeted at core developers who are creating and maintaining A2osX. For most users, it is recommended that you use one of the other editions. | | * | @@ -45,7 +45,7 @@ You can use and/or install A2osX from the media found in our Media directory fou The A2osX team has developed and now includes on its media new versions of ProDOS for use with A2osX. Please consult the document **[A2osX and ProDOS](.Docs/ProDOS.md)** for detailed information on these versions. Briefly 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 ProDOS 2.03tc version is included on the 800K media images listed above and provides the maximum compatibility with existing systems. The ProDOS FX version is included on the 32MB media images which are designed to be standalone bootable images. In addition, there is a very special ProDOS FX PAKED version, that is the same as the standard FX image once running, but the file has been compressed and contains a special loader to uncompress ProDOS as it initializes. This version uses less disk space and is used on 140K media where space is at a premium. ## 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 it under the terms of the GNU General Public License as published by diff --git a/.Docs/News.md b/.Docs/News.md index 25823837..1dccf9f5 100644 --- a/.Docs/News.md +++ b/.Docs/News.md @@ -241,7 +241,7 @@ Anyway, i'm convinced that a small team of developers could reach "version 1.0" Well, let me know if you can bring "fresh blood" to this stuff... ## 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 it under the terms of the GNU General Public License as published by diff --git a/.Docs/ProDOS.md b/.Docs/ProDOS.md index fc1b810b..9c7272e2 100644 --- a/.Docs/ProDOS.md +++ b/.Docs/ProDOS.md @@ -1,6 +1,6 @@ # A2osX and ProDOS -### Updated February 9, 2020 +### Updated February 10, 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. diff --git a/.Docs/Shell Developers Guide.md b/.Docs/Shell Developers Guide.md index 9de1cbb0..abd06a42 100644 --- a/.Docs/Shell Developers Guide.md +++ b/.Docs/Shell Developers Guide.md @@ -1,6 +1,6 @@ # A2osX Shell Developers Guide -### Updated February 9, 2020 +### Updated February 10, 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: @@ -410,7 +410,6 @@ In addition to the special codes above that can used to manage all displays (bot # This example displays HELLO COLOR WORLD with the word COLOR in Bright Yellow on a Dark Blue Background. echo "HELLO \e[7mINVERSE\e[0m WORLD" - As you can see \e[0m turns off all character attributes. It is like a reset. The following table shows color codes that can be used with VT-100 emulators like PuTTY. ![image](https://user-images.githubusercontent.com/180313/70875571-5fb40980-1f84-11ea-8b2a-f537fce6c07c.png) @@ -476,12 +475,13 @@ The **fi** command is used at the end of an **if** script block. See the **if** ### FOR - for + for = "constant string of space separated words" + for = + for in (file) + for in `command` The **FOR** command is used - - #!/bin/sh # # for Command Examples diff --git a/.Docs/TERM.md b/.Docs/TERM.md index d115d8a9..4d7cbd05 100644 --- a/.Docs/TERM.md +++ b/.Docs/TERM.md @@ -91,7 +91,7 @@ A2osX terminal capabilities are based off of the standard VT-100 Terminal. This |Escc |Reset terminal to initial state| RIS |OK| ## 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 it under the terms of the GNU General Public License as published by diff --git a/.Docs/User Guide.md b/.Docs/User Guide.md index 7cbd8b2f..c064e3f3 100644 --- a/.Docs/User Guide.md +++ b/.Docs/User Guide.md @@ -1,6 +1,6 @@ # A2osX User Guide -### Updated February 9, 2020 +### Updated February 10, 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. @@ -102,8 +102,6 @@ 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 @@ -247,13 +245,6 @@ The Virtual Serial Over IP emulation uses port 1977. If you are not using *km.v If you use AppleWin and want to enable support for networking (AW supports the UtherNet I network card protocol) you must install a network shim that enables AppleWin to talk to the Internet. You can search with Google how to do this, but basically you need to install WinPcap 4.1.3. -VSDrive, Localhostmode ADTPro and setting this up... -make a bat file called adtlocal.bat and put in it -@call "%~dp0adtpro.bat" localhost - - - - ### 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. @@ -282,7 +273,7 @@ All of the commands above are documented in the A2osX Command Guide or the Shell ### Configuring A2osX -There are several ways you can configure A2osX to suit your needs. Some of these +There are several ways you can configure A2osX to suit your needs. The two must common are 1) via the *kconfig* utility and 2) by modifying the */etc/init* file. ## Exploring A2osX @@ -294,63 +285,6 @@ In A2osX, using a command like *telnet* involves loading a driver for your hardw >A more technical note: When you start networking, you load a driver and then you execute *networkd* passing it the names of the network libraries you want loaded (typically *libtcpip*). After loading the library, *networkd* reads *etc/tcpip.conf* to configure TCP/IP and if not present requests settings via DHCP. If for some reason the DHCP lease did not work you can use the command *ipconfig* to repeat the network config stage. As stated above you can unload networking, this note explains what actually occurs under the covers (the internals). When *networkd* starts and loads *libtcpip* a lock is placed on *libtcpip* to indicate a process is using it (in this case *networkd*). Then when you load other network programs such as *telnetd*, the telnet server daemon, another lock is placed on *libtcpip*. If you then run *ping* or *telnet* another lock is added, but then when they finish and exit, that lock is removed. When all locks have been removed the library automatically unloads (this is how you recover the memory the library uses). It is VERY important that you stop all the applications using *libtcpip* before stopping *networkd*. This is because if you stop *networkd* first, then *telnetd* will be left in an unknown state (it is waiting on pulses from *networkd* which you just stopped) **and** it is holding a lock *libtcpip* so it never gets unloaded. -install the drivers for the hardware (uther, lances, ssc, etc.) -then NETWORKD lib lib (and the libs are tcpip or etalk maybe) libs are protocalls here - in the LIB directory now are LIBTCPIP and LIBETALK -NETWORKD will read ETC/NETWORK will load network programs - right now it contains IPCONFIG, you can also add to it HTTPD TELNETD etc, they are loaded in order and each needs to complete its full load before next one happens (assuring IPCONFIG happends before TELNETD tries to load) -IPCONFIG will then look for ETC/TCPIP.CONF, if found uses those settings, if not does dhcp. in addition ipconfig uses ETC/HOSTNAME and ETC/HOSTS for setting hostname and doing DNSloopups - -Hardware Drivers - MAC Address -TCPIPD -Fixed IP - TCPIP.CONF file - Internet Addresses -DHCP -HOSTS file -HOSTNAME file -Configuring Network at Boot Time - ETC/INIT -Configuring Network on Demand - NET script -Telnet Server -Telnet Client -PING -ARP -NETSTAT -HTTPGET -dhcpclnt -Telnetd -httpd - - -### Utilities - -#### Using Text Editors -EDIT - -#### Commands for navigating the file system -CD -CD .. -PWD -PATH -PUSHD -POPD -LS -LS -L or L - -#### Commands for working with files - -MV -CP -RM - -#### Commands for working with directories - -MD -RD - ## Error Messages * No Error : $00 diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index e1e14bb0..bdf2bd00 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.MAKE.po b/.Floppies/A2OSX.MAKE.po index b02034da..60c38a72 100644 Binary files a/.Floppies/A2OSX.MAKE.po and b/.Floppies/A2OSX.MAKE.po differ diff --git a/.Floppies/DEBUG.po b/.Floppies/DEBUG.po index 197411ad..b0a1c4ae 100644 Binary files a/.Floppies/DEBUG.po and b/.Floppies/DEBUG.po differ diff --git a/.Floppies/RC.140.po b/.Floppies/RC.140.po index c0ebf56a..fc685875 100644 Binary files a/.Floppies/RC.140.po and b/.Floppies/RC.140.po differ diff --git a/.Floppies/RC.32MB.po b/.Floppies/RC.32MB.po index e3384465..3ae969eb 100644 Binary files a/.Floppies/RC.32MB.po and b/.Floppies/RC.32MB.po differ diff --git a/.Floppies/RC.800.po b/.Floppies/RC.800.po index f7636020..41e0ada5 100644 Binary files a/.Floppies/RC.800.po and b/.Floppies/RC.800.po differ diff --git a/.Floppies/TDBOOT.po b/.Floppies/TDBOOT.po index b2e0bb34..aa4fd335 100644 Binary files a/.Floppies/TDBOOT.po and b/.Floppies/TDBOOT.po differ diff --git a/README.md b/README.md index 18622ca7..7993434a 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# A2osX (0.93) Multi-Tasking OS for Apple II +# A2osX Multi-Tasking OS for Apple II -### Updated January 27, 2020 +### Updated February 10, 2020 -## A2osX Release Candidate now available +## A2osX Final Release Candidate for 0.93 now available See the **[news](#news)** section below for more information. @@ -24,23 +24,9 @@ Consult the **[documentation](#documentation)** section below to find other reso ## News... -**2020-01-27** - **Major update to A2osX 0.93** +A2osX Version 0.93 Release Candidate has been finalized. Media for this release, based on Build 193x are now available. Future STABLE and BLEED builds will be based on work to complete 0.94. Work has already started to make the A2osX API fully C compliant. This will allow a new CSH shell and CC compiler to be added to A2osX as well as an enhanced web server (*httpd*) that can serve active server pages formed by user created CSH scripts. In addition, Double High Graphics Resolution (DHGR) and Mouse drivers are being finalized which will allow developers to create games and new user interfaces for their A2osX applications. -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. - -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. - -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. - -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 - -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). - -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. - -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)**. - -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. +>Note, an issue has been found in the user management system, specifically with the *useradd* command. This is being investigated and will be fixed in 0.94. A potential work around is being tested. This issue is being tracked in GitHub as **[Issue #148](https://github.com/A2osX/A2osX/issues/148)**. If you would like to read all the past news articles for A2osX, you can read the news article found **[here](.Docs/News.md)**. @@ -64,10 +50,10 @@ In addition, there is the developer generated Technical Specifications that docu ## How You Can Help -The A2osX Team welcomes your help in making this the best operating enviroment for the Apple 2! Specifically, the more users who can test the most current RELEASE, CANDIDATE or STABLE media on their unique and report back their findings, the better A2osX becomes. In additions, comments on, suggestions, or contributions to our documentation are greatly appreciated. Lastly, A2osX would not be what it is without our great core development team. We could certainly use more developers, especially in Assembly (S-C Assembler familiar even better) to contribute new utilities, applications and features for A2osX. +The A2osX Team welcomes your help in making this the best operating environment for the Apple 2! Specifically, the more users who can test the most current RELEASE, CANDIDATE or STABLE media on their unique hardware and report back their findings, the better A2osX becomes. In additions, comments on, suggestions, or contributions to our documentation are greatly appreciated. Lastly, A2osX would not be what it is without our great core development team. We could certainly use more developers, especially in Assembly (S-C Assembler familiar even better) to contribute new utilities, applications and features for A2osX. ## 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 it under the terms of the GNU General Public License as published by