From be74645b12c2a421f29946133ceaa751c4f69482 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 20 Jul 2020 17:19:32 +0200 Subject: [PATCH] Kernel 0.94 --- .Docs/KERNEL.md | 49 +++++++++++++++++++----------- .Docs/LIBBLKDEV.md | 12 ++++++-- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/LS.S.txt | 63 ++++++++++++++++++++++++++++++++++----- DRV/MOUSE.DRV.S.txt | 4 +-- SYS/KM.RAMWORKS.S.txt | 13 ++++++-- 6 files changed, 110 insertions(+), 31 deletions(-) diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index 9b040df0..db47472e 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -126,9 +126,9 @@ Create a hDEV ## ASM `>LDYA dirpath` -`>SYSCALL opendir` +`>SYSCALL opendir` -## RETURN VALUE +## RETURN VALUE CC : success A = hDIR CS : error @@ -144,7 +144,7 @@ Create a hDEV `lda hDIR` `>SYSCALL readdir` -## RETURN VALUE +## RETURN VALUE CC : success X = hDIRENT Y,A = PTR to S.DIRENT @@ -162,7 +162,7 @@ Create a hDEV `>SYSCALL closedir` ## RETURN VALUE - none, always succeed. + none, always succeed. # SetEnv Change or add an environment variable @@ -559,6 +559,18 @@ CS : not found ## RETURN VALUE +# OpenSession + +## C +`short int hSID opensession(const char *name, const char *passwd);` + +## ASM +`>PUSHW name` +`>PUSHW passwd` +`>SYSCALL OpenSession` + +## RETURN VALUE + # GetPWName ## C @@ -586,7 +598,7 @@ CS : not found # PutPW ## C -`int putpw( S.PW* passwd );` +`int putpw(S.PW* passwd);` ## ASM `>PUSHW passwd` @@ -605,18 +617,6 @@ CS : not found ## RETURN VALUE -# OpenSession - -## C -`short int hSID opensession(const char *name, const char *passwd);` - -## ASM -`>PUSHW name` -`>PUSHW passwd` -`>SYSCALL OpenSession` - -## RETURN VALUE - # CloseSession ## C @@ -903,6 +903,21 @@ Get char from Node `lda stream` `>SYSCALL getc` +## RETURN VALUE + CC = success + A = char + +# ungetc +push byte back into input stream + +## C +`int ungetc(short int c, hFILE stream); + +## ASM +`>PUSHB c` +`>PUSHB stream` +`>SYSCALL ungetc` + ## RETURN VALUE CC = success A = char diff --git a/.Docs/LIBBLKDEV.md b/.Docs/LIBBLKDEV.md index d7c1ccbd..25355f49 100644 --- a/.Docs/LIBBLKDEV.md +++ b/.Docs/LIBBLKDEV.md @@ -3,9 +3,18 @@ ## Copyright Copyright 2015 - 2020, Remy Gibert and the A2osX contributors. +# D2TrkRead16s +Write a track (16 sectors) + PUSHB = DSSS0000 + PUSHB = TrackNum * 4 : 0->136+ + PUSHW = Ptr to 16*256 buffer + +## RETURN VALUE + CC : success, A = VolNum + CS : A = Error + # D2TrkWrite16s Write a track (16 sectors) -**In:** PUSHB = DSSS0000 PUSHB = TrackNum * 4 : 0->136+ PUSHW = Ptr to 16*256 buffer @@ -13,7 +22,6 @@ Write a track (16 sectors) ## RETURN VALUE CC : success CS : A = Error - A=0, currently starting/seeking... # D2TrkWriteNIB Write a track (NIBBLE) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 652cc1a2d0cf2c271f11728a12105976b853fbf0..7bc08d97f8812b8db14805f19f7f915c37d31dbe 100644 GIT binary patch delta 14459 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 delta 14295 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 AdjJ3c diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index 298a6b42..f431522e 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -7,6 +7,7 @@ NEW *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i + .INB inc/kernel.i .INB inc/mli.i .INB inc/mli.e.i *-------------------------------------- @@ -25,6 +26,10 @@ ZPFileName .BS 2 ZPFileStat .BS 2 ZPPW .BS 2 + +bToDev .BS 1 +hLineBuf .BS 1 +ZPLineBuf .BS 2 ZS.END .ED *-------------------------------------- @@ -78,10 +83,12 @@ CS.RUN .1 >INC.G ArgCount >SYSCALL ArgV bcs .6 + >STYA ZPPtr1 lda (ZPPtr1) cmp #'-' bne .4 + ldy #1 lda (ZPPtr1),y @@ -124,6 +131,25 @@ CS.RUN >STYA ZPPW txa >STA.G hPW + + >LDYAI 256 + >SYSCALL GetMem + bcs .9 + >STYA ZPLineBuf + stx hLineBuf + + ldy #S.PS.hStdOut + lda (pPS),y + tax + lda OF.Table.hFD-1,x + >SYSCALL GetMemPtr + >STYA ZPPtr1 + lda (ZPPtr1) S.FD.T + beq CS.RUN.LOOP S.FD.T.REG + cmp #S.FD.T.PIPE + beq CS.RUN.LOOP + + dec bToDev *-------------------------------------- CS.RUN.LOOP ldy #S.PS.hStdIn lda (pPS),y @@ -222,7 +248,9 @@ CS.RUN.PRINT.REG bcs .9 jmp CS.RUN.UpdateColCnt *-------------------------------------- -.1 >PUSHW L.MSG.REGEXT +.1 +* >PUSHW ZPLineBuf + >PUSHW L.MSG.REGEXT jsr Mod2CSTR (2) @@ -255,7 +283,10 @@ CS.RUN.PRINT.REG >PUSHBI 20 >SYSCALL PrintF - + bcs .9 + + jmp CS.RUN.NewLine.1 + .9 rts *-------------------------------------- CS.RUN.PRINT.DIR @@ -318,7 +349,9 @@ CS.RUN.PRINT.DIR >PUSHW ZPFileName >PUSHBI 12 >SYSCALL PrintF - + bcs .90 + + jsr CS.RUN.NewLine.1 bcs .90 .5 >LDA.G bRecurse @@ -413,6 +446,9 @@ CS.RUN.PRINT.BDEV >SYSCALL PrintF bcs .90 + + jsr CS.RUN.NewLine.1 + bcs .90 ldy #bRecurse lda (pData),y @@ -592,10 +628,18 @@ CS.RUN.UpdateColCnt CS.RUN.NewLine >LDA.G ColCount beq CS.RUN.NewLine.8 CS.RUN.NewLine.1 + bit bToDev + bpl CS.RUN.NewLine.CR + >PUSHW L.MSG.CRLF >PUSHBI 0 >SYSCALL PrintF rts + +CS.RUN.NewLine.CR + lda #C.CR + >SYSCALL putchar + rts CS.RUN.NewLine.8 clc rts @@ -622,6 +666,11 @@ CS.QUIT jsr LeaveSubDir >SYSCALL FreeMem .3 >LDA.G hPW + beq .4 + + >SYSCALL FreeMem + +.4 lda hLineBuf beq .8 >SYSCALL FreeMem @@ -700,7 +749,7 @@ Mod2CSTR ldy #S.STAT.MODE+1 >PUSHEA.G MOD rts *-------------------------------------- - .INB USR/SRC/BIN/X.FILEENUM.S + .INB usr/src/bin/x.fileenum.s *-------------------------------------- CS.END *-------------------------------------- @@ -708,11 +757,11 @@ OptionList .AS "ACFLRacflr" OptionVars .DA #bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse,#bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse *-------------------------------------- MSG.REG .AZ "%19s" -MSG.REGEXT .AZ "%s %6s %6s %10u %s %s %S %H %s\r\n" +MSG.REGEXT .AZ "%s %6s %6s %10u %s %s %S %H %s" MSG.DIR .AZ "\e[32m%s/\e[0m" -MSG.DIREXT .AZ "%s %6s %6s %s %s \e[32m%s/\e[0m\r\n" +MSG.DIREXT .AZ "%s %6s %6s %s %s \e[32m%s/\e[0m" MSG.BDEV .AZ "\e[32m%s/\e[0m" -MSG.BDEVEXT .AZ "/%15s S%dD%d Blocks Used:%5D Total:%5D\r\n" +MSG.BDEVEXT .AZ "/%15s S%dD%d Blocks Used:%5D Total:%5D" MSG.ENTER .AS "Directory:%s" MSG.CRLF .AZ "\r\n" *-------------------------------------- diff --git a/DRV/MOUSE.DRV.S.txt b/DRV/MOUSE.DRV.S.txt index d93a2f07..79942801 100644 --- a/DRV/MOUSE.DRV.S.txt +++ b/DRV/MOUSE.DRV.S.txt @@ -90,7 +90,7 @@ Dev.Detect >LDYA L.MSG.DETECT >PUSHWI DRV.CS.START >LDYA L.DRV.CS.START >SYSCALL InsDrv - bcs .9 + bcs .99 >STYA FD.DEV+S.FD.DEV.DRVPTR @@ -98,7 +98,7 @@ Dev.Detect >LDYA L.MSG.DETECT >PUSHW L.FD.DEV.NAME >SYSCALL MKDEV - rts +.99 rts *-------------------------------------- CS.END MSG.DETECT .AZ "Apple Mouse Driver." diff --git a/SYS/KM.RAMWORKS.S.txt b/SYS/KM.RAMWORKS.S.txt index 7d2bdf18..7a709ebd 100644 --- a/SYS/KM.RAMWORKS.S.txt +++ b/SYS/KM.RAMWORKS.S.txt @@ -396,6 +396,7 @@ RWDRV.START cld ProDOS will check that byte!!! sbc RWDRV.MAXHI+1 bcs RWDRV.IOERR DRV.BLKNUM >= RW.DRV.SIZE, IO error +* bit RD80STORE save 80 Store status php Disable IRQ as no vector set in RW Banks sei @@ -437,7 +438,9 @@ RWDRV.W sta SETWRITEAUX RWDRV.RW stx RWDRV.RW.SRC+1 sta RWDRV.RW.DST+1 - ldx #2 2 pages to copy +* clc 2 pages to copy + .HS B0 BCS +RWDRV.RW.LOOP sec RWDRV.RW.SRC lda ($FF),y RWDRV.RW.DST sta ($FF),y @@ -446,8 +449,7 @@ RWDRV.RW.DST sta ($FF),y dec DRV.BUFF+1 dec DRV.A2H - dex - bne RWDRV.RW.SRC + bcc RWDRV.RW.LOOP stz RWBankSelect sta CLRREADAUX @@ -455,6 +457,9 @@ RWDRV.RW.DST sta ($FF),y plp restore IRQ +* bpl RMDRV.CMDSTATUS +* sta SET80STORE + RMDRV.CMDSTATUS RWDRV.MAXLO ldx #$FF return device block count in X,Y... RWDRV.MAXHI ldy #$FF @@ -492,7 +497,9 @@ RWDRV.GOAUX pha save BANK rts A & carry setup properly by RWDRVX.RESTORE RWDRV.END .EP RWDRV.B.END + .LIST ON RWDRV.SIZE .EQ RWDRV.B.END-RWDRV.B.START + .LIST OFF *-------------------------------------- * Driver for Ramworks in aux memory * $0200 -> $02FF TMP buffer for PAGE copy