_Docs | ||
_Fonts | ||
_Tools | ||
BIN | ||
DRV | ||
ETC | ||
INC | ||
LIB | ||
SBIN | ||
SYS | ||
_MAKEDIR.txt | ||
_MAKESYS.txt | ||
_RUN.txt | ||
A2OSX.BOOT.po | ||
A2OSX.BUILD.po | ||
A2OSX.DEV.po | ||
A2osX.S.QC.txt | ||
A2osX.S.txt | ||
A2OSX.SRC.po | ||
A2osX.STARTUP.txt | ||
README.md | ||
ScreenShot.EDIT.bmp | ||
ScreenShot.IP1.bmp | ||
ScreenShot.IP2.bmp | ||
ScreenShot.LS.bmp | ||
X.ERRORS.S.txt | ||
X.PRINTF.S.txt |
A2osX (0.9)
Multi-Tasking OS for Apple II
Requires :
Enhanced IIe (65c02 cpu) with 128k, //c, IIgs
Introduction...
A2osX is a cooperative, event-driven multitasking kernel (meaning it is applications that are responsible to give back control to kernel)
Its principal goal is to collect all "genius" 65c02 pieces of code ever written here and there, concentrated in the same environment.
(including IP Stack & HTTPD/TELNETD..., GUI & graphical tools...)
"Complete working place", no needing any more to reboot to switch between tons of diskettes!!!
A2osX is designed to work on any "stock" 128k Apple //e with no hardware modification. As VBL signal is NOT available as an IRQ on //e (it is on //c & IIgs)
it makes preemptive multitasking impossible.
(Well, GSosX, 16 bits equivalent for IIgs, another project which is "cooking" in my mind, could do it!)
Kernel, loading in Aux LC on top of ProDOS provide API inspired from Linux/Unix World to allow writing applications & command line tools on top of it.
This kernel provides an advanced "Memory Manager" able to relocate 65c02 code.
"Event Manager" makes TCPIP stack able to listen on several ports, manage ARP,DNS...cache expiration and any background processes.
"Task Manager" is responsible to "distribute" CPU time to several loaded processes.
"Device Manager" handles event collected from builtin devices as well as devices added by loadable drivers.
If you're 65c02 or Z80 code writer, how to contribute ?
Several subprojects are now indentified :
- Hardware Support : adding drivers to support more & more hardware (RAM cards, storage....)
- Z80 support : Kernel could pass control to any Z80 detected on the system.
- TCPIP stack : TCP still missing!
- AppleTalk Support
- GUI & Printing
- Archive, Disk Image transfer tools (ADT client!)...
- Question : Pascal or C Compiler?
- ...sure there is some more!
Screenshots
General Information:
** Kernel 0.9 complete rewrite in progress **
(Kernel 0.8 has been archived)
It is confined in Aux LC Bank 1 & 2 to leave enough room at $EOOO for Drivers.
Network drivers, Mouse, DHGR.DRV can load and fit in Aux LC.
Now it's time to make all external BINs use new API, then GUI development will resume.
A2OSX.BOOT.po : 140k BOOT disk image with all binaries
A2OSX.DEV.po : 140k disk image with ASM binaries, Debug Tools & INClude files
A2OSX.SRC.po : 800k S-C MASM boot disk image with all sources
OApple+1,OApple+2,OApple+3 to switch between screens : Kernel Log, text, DHGR.
(OApple+shift+1,OApple+shift+2,OApple+shift+3 on FR keyboard)
**** Developers WANTED ****
!!! Help on writing this code should be greatly appreciated !!!
...
In Progress : Document API...
In Progress : moving TCPIP to socket API
...
SYS/KM* Supported Hardware At Kernel Level (ProDOS):
KM.Name | Status | Comment |
---|---|---|
KM.NSC | Working | No-Slot-Clock/DS1216E |
KM.RAMWORKS | Working | AE-Ramworks I,II,III |
KM.VSDRIVE | Working | ADTPro Virtual Drive for SSC |
KM.APPLETALK | Working | AppleTalk Support for ProDOS |
SBIN,Daemons/Commands:
Name | Status | Comment | K.Ver |
---|---|---|---|
INSDRV | Working | 0.9 | |
GETTY | Working | 0.9 | |
LOGIN | In Progress | no auth using /etc/passd yet | 0.9 |
SHELL | Working | (See Internal Shell commands) | 0.9 |
TCPIP | In Progress | New Socket API. ARP,IP,ICMP,UDP ok, TCP in progress | 0.9 |
DHCPCLNT | Working | rewritten to use new Socket API | 0.9 |
TELNETD | |||
HTTPD |
Internal Shell commands:
Name | Status | Comment |
---|---|---|
CD | Working | Improved syntax : now, 'CD ../BIN' works |
PWD | Working | |
DATE | Working | |
ECHO | Working | \b,\e,\f,\n,\ and % supported |
EXIT | Working | |
IF | ||
PAUSE | Working | |
READ | Working | -S : no echo (password) |
-P : "prompt message" | ||
TIME | Working | |
SET | Working | |
STARTPROC | Working | Used in A2osX.startup |
Shell variables:
Name | Status | Comment |
---|---|---|
$PWD | Working | 'Working Directory' |
$* | Working | All Args |
$1-$9 | Working | Arg[n] |
$# | Working | Arg Count |
$? | Working | Return Code |
$@ | Working | Parent PID |
|
Working | PID |
$! | Working | Child PID |
note : '$VAR' does NOT expand Variable
DRV,Drivers:
Name | Status | Comment | K.Ver |
---|---|---|---|
Console.DRV | Working | ANSI support in Progress. | 0.9 |
SSC.DRV | Working | Apple "Super Serial Card" Driver | 0.9 |
SSC.I.DRV | Working | Apple "Super Serial Card" Driver (IRQ enabled) | 0.9 |
PIC.DRV | In Progress | Apple "Parallel Interface Card" Driver, renamed from PPIC.DRV | 0.8 |
Mouse.DRV | Working | Apple Mouse Card,//c Mouse Port | 0.9 |
DHGR.DRV | In Progress | except bitblt... | 0.8 |
---- | ------ | ------- | ----- |
Uthernet.DRV | Working | 0.9 | |
Uthernet2.DRV | Working | 0.9 | |
Uther2.AI.DRV | In Progress | With ARP/IP Offloading | 0.8 |
LanCeGS.DRV | Working | 0.8 |
BIN,External Shell commands:
Name | Status | Comment | K.Ver |
---|---|---|---|
MEM | Working | Old dump behavior is now MEMDUMP. New MEM command displays MEMSTAT (Main, Aux & Kernel Memory) | 0.9 |
LSDEV | Working | 0.9 | |
PS | Working | 0.9 | |
MD | Working | 0.9 | |
LS | Working | -A : Do Not Print . & .. | 0.9 |
-L : long listing with size/date... | |||
-R : Recurse subdirectories | |||
RM | Working | -C : Continue On Error | 0.9 |
-R : Recurse subdirectories | |||
CP | In Progress | -C : Continue On Error | 0.9 |
-R : Recurse subdirectories | |||
-Y : Dont't Prompt For Override | |||
MV | In Progress | -C : Continue On Error | 0.9 |
-R : Recurse subdirectories | |||
-Y : Dont't Prompt For Override | |||
CAT | Working | -A : Show All non printable caracters | 0.9 |
-N : Number all output lines | |||
-S : Suppress repeated empty output lines | |||
EDIT | Working | still missing : find/replace | 0.9 |
NSCUTIL | Working | Tool for setting time in NSC/DL1216E | 0.9 |
---- | ------ | ------- | ----- |
ARP | Working | dump ARP cache, setup a static ARP entry | 0.9 |
PING | Working | 0.9 | |
DNSINFO | Working | dump DNS cache, setup a static DNS entry | 0.9 |
IPCONFIG | Working | renamed from NETINFO | 0.9 |
NETSTAT | Working | 0.9 |
BIN,External DEV Shell commands:
Name | Status | Comment | K.Ver |
---|---|---|---|
ASM | In Progress | S-C MASM based multi CPU assembler | |
DEVDUMP | 0.8 | ||
MEMDUMP | Working | 0.9 | |
RPCDUMP | Working | tool based on UDP socket API, renamed from RPCINFO | 0.9 |
Misc
S-C MASM color scheme for Notepad++
...drop _Tools/userDefineLang.xml in %APPDATA%\Notepad++
;-)