diff --git a/.Docs/News.md b/.Docs/News.md index 1a9612d6..9a433fff 100644 --- a/.Docs/News.md +++ b/.Docs/News.md @@ -1,6 +1,19 @@ # A2osX Multi-Tasking OS for Apple II -### Updated February 10, 2020 +## Latest News 2024-01-17 + +It has been a long time since the news has been updated, but that doesn't mean that development on A2osX has ceased in the last 4 years! We've actually had quite a number of releases over this time. In general, stability has been greatly improved but there have also been additions like BASIC.FX which is a ProDOS BASIC.SYSTEM environment which supports a number of ProDOS FX extensions (RamWorks III and extension commands for starters). + +As far as where things are going now, development is underway on Kernel 1.0 which will finally bring support for breaking past the 128KB barrier of the //e series by supporting RamWorks-type memory cards. In the past, RamWorks boards were supported but would only allow for /RAM type storage. With Kernel 1.0, up to 8MB of RAM can now be used for code and applications! Early builds of the new kernel are expected in 1H 2024. + +With current builds and all going forward, the distributions are only shipped with [ProDOS FX](ProDOS.md) by default. While 2.0.3tc is still available and can be used with A2osX, the recommendation is now to use FX because of the filename case handling in addition to the number of under-the-hood improvements that FX offers. Both FX and 2.0.3tc's clock tables have been updated for 2024. + +We are currently looking for volunteers to help with flushing out the C libraries! A C89-compliant compiler is available, however, the API needs some work to be compliant and can result in changing the kernel's APIs too, so "the sooner, the better" as the saying goes. Want to help? Reach out on the Slack server! + +Finally, we are always looking for people to help! A project as complicated at A2osX requires a lot of testing, but we always need help with creating new applications, libraries, and documentation. If you have some applicable skills, let us know! + + +## Latest News February 10, 2020 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. @@ -257,4 +270,4 @@ The full A2osX license can be found **[Here](../LICENSE)**. ## Copyright -Copyright 2015 - 2020, Remy Gibert and the A2osX contributors. +Copyright 2015 - 2024, Remy Gibert and the A2osX contributors. diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 928d63b6..810982b9 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BASIC.FX/BASIC.S.C.txt b/BASIC.FX/BASIC.S.C.txt index da5de054..a021770a 100644 --- a/BASIC.FX/BASIC.S.C.txt +++ b/BASIC.FX/BASIC.S.C.txt @@ -1523,14 +1523,14 @@ BS.KW.MEM jsr MON.CROUT sta $260+11 lda #0 - sta XBC10 - -.2 ldx #BSX.Mem.X + +.2 pha + ldx #BSX.Mem.X jsr BS.ToAUX jsr BS.LINEBUFOUT - inc XBC10 - lda XBC10 + pla + inc cmp #6 bne .2 @@ -1763,16 +1763,16 @@ BS.KW.PATH lda GP.FoundBITS jsr BS.ToAUX jsr MON.CROUT - ldx #$00 + ldx #$ff -.1 cpx BS.CMDBUF.LEN +.1 inx + cpx BS.CMDBUF.LEN beq .2 - lda BS.CMDBUF+1,x + lda BS.CMDBUF,x ora #$80 jsr MON.COUT - inx - bne .1 + bra .1 .2 jsr MON.CROUT jsr MON.CROUT diff --git a/BASIC.FX/BASIC.S.GP..txt b/BASIC.FX/BASIC.S.GP..txt index 467c80a8..04edba3f 100644 --- a/BASIC.FX/BASIC.S.GP..txt +++ b/BASIC.FX/BASIC.S.GP..txt @@ -154,7 +154,9 @@ GP.MLIERR2 lda BS.BIERRTBL,x GP.COPYRIGHT .AS -"COPYRIGHT APPLE, 1983" jmp BS.GETBUFR GP.GETBUFR jmp BS.FREEBUFR GP.FREEBUFR - .BS 5 GP.RSHIMEM + .BS 1 GP.RSHIMEM + .BS 1 + jmp (BS.TBOX,x) GP.TBOX *-------------------------------------- MAN SAVE usr/src/basic.fx/basic.s.gp diff --git a/BASIC.FX/BASIC.S.XR.txt b/BASIC.FX/BASIC.S.XR.txt index 035d53e9..754f15e4 100644 --- a/BASIC.FX/BASIC.S.XR.txt +++ b/BASIC.FX/BASIC.S.XR.txt @@ -20,11 +20,9 @@ BSX.Rel lda GP.MLIRW.DATAPTR sbc GP.FIAUXTYPE+1 sta BSX.RelOfs+1 - ldy #2 - lda (ZP.A1L),y + lda GP.FIAUXTYPE sta BSX.RelStart - iny - lda (ZP.A1L),y + lda GP.FIAUXTYPE+1 sta BSX.RelStart+1 ldy #10 diff --git a/BASIC.FX/BASIC.S.txt b/BASIC.FX/BASIC.S.txt index 7cd0aa16..2b612a56 100644 --- a/BASIC.FX/BASIC.S.txt +++ b/BASIC.FX/BASIC.S.txt @@ -18,7 +18,7 @@ NEW .INB inc/as.i .INB inc/mon.i *-------------------------------------- -HIMEM .EQ $A000 +HIMEM .EQ $9F00 LOWERCASE .EQ 1 *-------------------------------------- ZPPtr1 .EQ 0 @@ -101,6 +101,10 @@ LDR.MAIN.DST .EQ * .INB usr/src/basic.fx/basic.s.a .INB usr/src/basic.fx/basic.s.b .INB usr/src/basic.fx/basic.s.c + +BS.TBOX .DA PrintFYA + .INB usr/src/shared/x.printf.s + .INB usr/src/basic.fx/basic.s.d MAIN.LEN .EQ *-LDR.MAIN.DST .EP diff --git a/BASIC.FX/TEST.S.txt b/BASIC.FX/TEST.S.txt index c3bbc17d..00b6e699 100644 --- a/BASIC.FX/TEST.S.txt +++ b/BASIC.FX/TEST.S.txt @@ -24,30 +24,43 @@ HEADER cld Allows BRUN at ORG=$2000 .DA 0 .DA 0 spare....16 bytes header *-------------------------------------- -R.MSG .DA MSG +R.MSG.HELLO .DA MSG.HELLO +R.MSG.RELOC .DA MSG.RELOC .DA 0 *-------------------------------------- CODE.START ldx #0 -.1 lda MSG,x ABS relocation required +.1 lda MSG.HELLO,x ABS relocation required beq .2 jsr MON.COUT inx bne .1 -.2 - - - +.2 lda R.MSG.HELLO + pha + lda R.MSG.HELLO+1 + pha + + lda HEADER+2 + pha + lda HEADER+3 + pha + + ldy R.MSG.RELOC + lda R.MSG.RELOC+1 + ldx #GP.TBOX.PrintF + jsr GP.TBOX .8 clc rts CODE.END .EQ * *-------------------------------------- -MSG .CZ -"\r\rHello from test EXT command.\r\r" - +MSG.HELLO .CZ -"\r\rHello from test EXT command.\r\r" +MSG.RELOC .CS "Code relocated at $%H\r" + .CZ "Data relocated at $%H\r" + DATA.END .EQ * *-------------------------------------- MAN diff --git a/BIN/TUITEST.S.txt b/BIN/TUITEST.S.txt index ff49e66e..aa475b82 100644 --- a/BIN/TUITEST.S.txt +++ b/BIN/TUITEST.S.txt @@ -52,6 +52,7 @@ L.TBOX1.Status .DA TBOX1.Status L.LBOX1.List .DA LBOX1.List L.LABEL.Label .DA LABEL.Label +L.TLINE.Default .DA TLINE.Default L.RADIO1.List .DA RADIO1.List L.CBOX1.Label .DA CBOX1.Label L.BUTQ.Label .DA BUTQ.Label @@ -215,6 +216,10 @@ CS.TLINE.Init >PUSHB hSCRN hParent >PUSHWI 65 Len >LIBCALL hLIBTUI,LIBTUI.NewTLine + >PUSHEA.G TLINE.Buf + >PUSHW L.TLINE.Default + >SYSCALL StrCpy + .9 rts *-------------------------------------- CS.RADIO.Init >PUSHB hSCRN hParent @@ -360,46 +365,28 @@ SCRN.Status .AZ "Status bar..." TBOX1.Title .AZ "Text Box Title" TBOX1.Status .AZ "Text Box Status" *-------------------------------------- -LBOX1.List .AS "Item 1" - .DA #C.CR - .AS "Item 2" - .DA #C.CR - .AS "Item 3" - .DA #C.CR - .AS "Item 4" - .DA #C.CR - .AS "Item 5" - .DA #C.CR - .AS "Item 6 very long line" - .DA #C.CR - .AS "Item 7" - .DA #C.CR - .AS "Item 8" - .DA #C.CR - .AS "Item 9" - .DA #C.CR - .AS "Item 10" - .DA #C.CR - .AS "Item 11" - .DA #C.CR - .AS "Item 12" - .DA #C.CR - .AS "Item 13" - .DA #C.CR - .AS "Item 14 last one" - .DA #0 +LBOX1.List .CS "Item 1\r" + .CS "Item 2\r" + .CS "Item 3\r" + .CS "Item 4\r" + .CS "Item 5\r" + .CS "Item 6 very long line\r" + .CS "Item 7\r" + .CS "Item 8\r" + .CS "Item 9\r" + .CS "Item 10\r" + .CS "Item 11\r" + .CS "Item 12\r" + .CS "Item 13\r" + .CZ "Item 14 last one\r" *-------------------------------------- LABEL.Label .AZ "This is a label." *-------------------------------------- -RADIO1.List .DA #C.ESC - .AS "[91mRed" - .DA #C.CR - .DA #C.ESC - .AS "[92mGreen" - .DA #C.CR - .DA #C.ESC - .AS "[96mBlue" - .DA #0 +TLINE.Default .AZ "This is a Line." +*-------------------------------------- +RADIO1.List .CS "\e[91mRed\r" + .CS "\e[92mGreen\r" + .CZ "\e[96mBlue\r" *-------------------------------------- CBOX1.Label .AZ "Check Me" *-------------------------------------- diff --git a/INC/BS.I.txt b/INC/BS.I.txt index 63054f93..0bf6e5ad 100644 --- a/INC/BS.I.txt +++ b/INC/BS.I.txt @@ -180,6 +180,8 @@ GP.CCCSPARE .EQ $BEDF GP.GETBUFR .EQ $BEF5 GP.FREEBUFR .EQ $BEF8 GP.RSHIMEM .EQ $BEFB +GP.TBOX .EQ $BEFD +GP.TBOX.PrintF .EQ 0 *-------------------------------------- MAN SAVE inc/bs.i diff --git a/LIB/LIBTUI.S.CBOX.txt b/LIB/LIBTUI.S.CBOX.txt index 70b5f725..15bc1d8c 100644 --- a/LIB/LIBTUI.S.CBOX.txt +++ b/LIB/LIBTUI.S.CBOX.txt @@ -92,7 +92,7 @@ CBOX.Run ldy #S.BUT.HotKey sec rts *-------------------------------------- -CBOX.Draw ldx #'(' +CBOX.Draw ldx #'<' ldy #S.OBJ.S lda (ZPObjPtr),y @@ -121,7 +121,7 @@ CBOX.Draw ldx #'(' .11 txa jsr LB.COut - ldx #')' + ldx #'>' plp bpl .12 diff --git a/LIB/LIBTUI.S.TLINE.txt b/LIB/LIBTUI.S.TLINE.txt index f283ad78..2e3409d2 100644 --- a/LIB/LIBTUI.S.TLINE.txt +++ b/LIB/LIBTUI.S.TLINE.txt @@ -43,6 +43,16 @@ TLINE.Run ldy #S.OBJ.S bpl .9 S.OBJ.S.bActive jsr OBJ.GetBuf + + ldy #$ff + +.1 iny + lda (ZPPtr1),y + bne .1 + + tya + ldy #S.TLINE.Len + sta (ZPObjPtr),y lda (pStack) Event cmp #C.DEL @@ -82,14 +92,14 @@ TLINE.Run ldy #S.OBJ.S ply -.1 dey +.3 dey lda (ZPPtr1),y iny sta (ZPPtr1),y dey cpy TempW - bne .1 + bne .3 lda (pStack) ldy TempW diff --git a/README.md b/README.md index 41fa4f97..ee0f4a1a 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # A2osX Multi-Tasking OS for Apple II -### Updated May 24, 2020 +### Updated January 17, 2024 -## A2osX 0.94 +## A2osX 0.95 ![](./.screen-shots/ScreenShot.Logo.png) @@ -22,16 +22,21 @@ Consult the **[documentation](#documentation)** section below to find other reso ## News -### KansasFest 2021 +### Lots of updates for 2024! -The A2osX team is proud to present "A2osX and the Languages of Development," a virtual KansasFest 2021 presentation by Patrick Kloepfer, which you can find **[here](https://www.youtube.com/watch?v=5OO9vj991vo)**. +It has been a long time since the news has been updated, but that doesn't mean that development on A2osX has ceased in the last 4 years! We've actually had quite a number of releases over this time. In general, stability has been greatly improved but there have also been additions like BASIC.FX which is a ProDOS BASIC.SYSTEM environment which supports a number of ProDOS FX extensions (RamWorks III and extension commands for starters). -### Upcoming Release - 0.94 Stable Alpha +As far as where things are going now, development is underway on Kernel 1.0 which will finally bring support for breaking past the 128KB barrier of the //e series by supporting RamWorks-type memory cards. In the past, RamWorks boards were supported but would only allow for /RAM type storage. With Kernel 1.0, up to 8MB of RAM can now be used for code and applications! Early builds of the new kernel are expected in 1H 2024. -The A2osX Team is preparing to issue the first Stable Alpha of A2osX Version 0.94. This new version will include an updated version of ProDOS FX, further kernel enhancements to improve memory usage and for the first time an included Assembler so developers can edit, assemble and test problems all from with A2osX. We are inviting interested developers and testers to [join us on Slack!](#join-us-on-slack) +With current builds and all going forward, the distributions are only shipped with [ProDOS FX](ProDOS.md) by default. While 2.0.3tc is still available and can be used with A2osX, the recommendation is now to use FX because of the filename case handling in addition to the number of under-the-hood improvements that FX offers. Both FX and 2.0.3tc's clock tables have been updated for 2024. + +We are currently looking for volunteers to help with flushing out the C libraries! A C89-compliant compiler is available, however, the API needs some work to be compliant and can result in changing the kernel's APIs too, so "the sooner, the better" as the saying goes. Want to help? Reach out on the Slack server! + +Finally, we are always looking for people to help! A project as complicated at A2osX requires a lot of testing, but we always need help with creating new applications, libraries, and documentation. If you have some applicable skills, let us know! If you would like to read all the past news articles for A2osX, you can read the news article found **[here](.Docs/News.md)**. + ## **Visit us at [A2osX](http://www.a2osx.com)** This is just a place holder and plug for our [A2osX](http://www.a2osx.com) internet site. Stay tuned here for news about this site. We have created a Page to discuss A2osX on **[Facebook](https://www.facebook.com/A2osx-372512896625840/)** and have a new **[Twitter](https://twitter.com/A2Osx)** handle to test new A2osX features which will soon be used as a messaging channel, so please follow. We have created a new forum for discussing A2osX, features, examples, use cases, etc. It can be found on **[Google Groups](https://groups.google.com/forum/#!forum/a2osx)**. @@ -75,4 +80,4 @@ The full A2osX license can be found **[Here](LICENSE)**. ## Copyright -Copyright 2015 - 2020, Remy Gibert and the A2osX contributors. +Copyright 2015 - 2024, Remy Gibert and the A2osX contributors. diff --git a/SHARED/X.PRINTF.S.txt b/SHARED/X.PRINTF.S.txt index 128a9217..452194ec 100644 --- a/SHARED/X.PRINTF.S.txt +++ b/SHARED/X.PRINTF.S.txt @@ -74,7 +74,7 @@ PrintFYA.92 ldx #$83 RRAMWRAMBNK2 lda $C000,x PrintFYA.98 lda #$ff Self modified RTS HI pha -PrintFYA.99 lda #$ff Self modified RTS LOPrintFYAPrintFYA +PrintFYA.99 lda #$ff Self modified RTS LO pha rts