From 9582ca9af087d56c64edc179b0190fb832997864 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 14 May 2021 22:58:20 +0200 Subject: [PATCH] Kernel 0.94++ --- .Docs/KERNEL.md | 65 ++++++---- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/ASM.S.FIO.txt | 54 ++++++-- BIN/ASM.S.OUT.txt | 10 +- BIN/CMP.S.txt | 18 +-- BIN/CSH.S.CORE.txt | 8 +- BIN/CSH.S.EXEC.txt | 16 ++- BIN/CSH.S.KW.txt | 8 ++ BIN/CSH.S.txt | 57 +++++++- BIN/EDIT.S.FILE.txt | 20 ++- BIN/FORTH.S.GFX.txt | 4 +- BIN/GTEST.S.txt | 8 +- BIN/HTTPGET.S.txt | 10 +- BIN/KCONFIG.S.txt | 4 +- BIN/MD5.S.txt | 4 +- BIN/PAK.S.txt | 31 +++-- BIN/PAKME.S.txt | 61 +++++---- BIN/PPPTEST.S.txt | 46 ++++--- BIN/SH.S.CL.txt | 17 ++- BIN/SH.S.HIS.txt | 69 +++++----- BIN/SH.S.txt | 7 +- BIN/TELNET.S.txt | 31 +++-- BIN/TERM.S.txt | 30 +++-- BIN/UNPAK.S.txt | 33 +++-- INC/MACROS.I.txt | 8 ++ INCLUDE/stdio.h.txt | 16 ++- INCLUDE/stdlib.h.txt | 6 +- INCLUDE/string.h.txt | 1 + INCLUDE/unistd.h.txt | 13 ++ SBIN/GETTY.S.txt | 27 ++-- SBIN/HTTPD.S.txt | 4 +- SBIN/NETWORKD.S.txt | 4 +- SHARED/X.CPMVRM.S.txt | 14 +- SYS/KERNEL.S.CORE.txt | 14 +- SYS/KERNEL.S.DEV.txt | 8 +- SYS/KERNEL.S.FS.txt | 9 +- SYS/KERNEL.S.INIT.txt | 1 - SYS/KERNEL.S.PFT.txt | 4 +- SYS/KERNEL.S.PIPE.txt | 74 +++++------ SYS/KERNEL.S.PS.txt | 15 ++- SYS/KERNEL.S.PWD.txt | 4 +- SYS/KERNEL.S.STDIO.txt | 273 ++++++++++++++++++++------------------- SYS/KERNEL.S.STRVX.txt | 2 +- SYS/KERNEL.S.UNISTD.txt | 62 ++++++--- 44 files changed, 703 insertions(+), 467 deletions(-) create mode 100644 INCLUDE/unistd.h.txt diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index 31af695c..6e13c228 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -829,6 +829,21 @@ A = hFILE CC = OK, CS = ERROR A = hFD +# fputc (BLOCKING) +Print A (char) to hFILE + +## C +`int fputc ( hFILE stream , short int character );` + +## ASM +**In:** +`>PUSHB stream` +`>PUSHB character` +`>SYSCALL fputc` + +## RETURN VALUE +CC = success + # putchar (BLOCKING) Print A (char) to StdOut @@ -843,21 +858,6 @@ Print A (char) to StdOut ## RETURN VALUE CC = success -# fputc (BLOCKING) -Print A (char) to hFILE - -## C -`int fputc ( hFILE stream , short int character );` - -## ASM -**In:** -`>PUSHB character` -`lda stream` -`>SYSCALL fputc` - -## RETURN VALUE -CC = success - # puts (BLOCKING) Write Str to StdOut, appends '\r\n' @@ -1004,9 +1004,9 @@ Read bytes from file ## ASM **In:** -`>PUSHWI count` +`>PUSHB stream` `>PUSHW ptr` -`lda stream` +`>PUSHW count` `>SYSCALL fread` ## RETURN VALUE @@ -1020,9 +1020,9 @@ Write bytes to file ## ASM **In:** -`>PUSHWI count` +`>PUSHB stream` `>PUSHW ptr` -`lda stream` +`>PUSHW count` `>SYSCALL fwrite` ## RETURN VALUE @@ -1046,9 +1046,9 @@ Set the file-position indicator for hFILE ## ASM **In:** -`>PUSHBI whence` +`>PUSHB stream` `>PUSHL offset` -`lda stream` +`>PUSHB whence` `>SYSCALL fseek` # FEOF @@ -1561,8 +1561,8 @@ Convert S.TIME struct to CSTR ## ASM **In:** +`>PUSHW pathname` `>PUSHB flags` -`>LDYA pathname` `>SYSCALL open` ## RETURN VALUE @@ -1586,9 +1586,9 @@ REG File created on ProDOS : T=TXT,X=$0000 ## ASM **In:** -`>PUSHWI count` +`>PUSHB fd` `>PUSHW buf` -`lda fd` +`>PUSHW count` `>SYSCALL read` ## RETURN VALUE @@ -1602,15 +1602,28 @@ CS: A = EC ## ASM **In:** -`>PUSHWI count` +`>PUSHB fd` `>PUSHW buf` -`lda fd` +`>PUSHW count` `>SYSCALL write` ## RETURN VALUE CC: Y,A = bytes written CS: A = EC +# LSeek +Set the file-position indicator for hFD + +## C +`int lseek( short int hFD, long offset, short int whence );` + +## ASM +**In:** +`>PUSHB hFD` +`>PUSHL offset` +`>PUSHB whence` +`>SYSCALL fseek` + # ChOwn ## C diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 4a2ed30a1c72bf236f2b364b48a56300319ceec5..3c64be386e2c0a6e365ac8ac284541395fdf0551 100644 GIT binary patch delta 135422 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 delta 130933 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 256 >SYSCALL GetMem bcs FIO.Init.RTS + >STYA ZPLineBuf txa >STA.G SRC.hLineBuf @@ -13,6 +14,7 @@ FIO.Init >LDYAI 256 >LDYAI 256 >SYSCALL GetMem bcs FIO.Init.RTS + >STYA ZPTmpBuf txa >STA.G SRC.hTmpBuf @@ -183,10 +185,12 @@ FIO.ReadLine >LDA.G SRC.Depth lda (pData),y bmi .10 - >PUSHWI 256 + jsr FIO.GethFile >PUSHW ZPLineBuf + >PUSHWI 256 jsr FIO.ReadFromFile bcs .19 + tya beq .13 @@ -194,17 +198,21 @@ FIO.ReadLine >LDA.G SRC.Depth lda (ZPLineBuf),y eor #C.CR beq .22 + iny .22 lda #0 replace ending $0D with $00 .13 sta (ZPLineBuf),y >INC.G SRC.LINENUM bne .19 + >INC.G SRC.LINENUM+1 + .19 rts *--------------------------------------- -.10 >PUSHWI 3 +.10 jsr FIO.GethFile >PUSHW ZPTmpBuf + >PUSHWI 3 jsr FIO.ReadFromFile bcs .19 @@ -216,61 +224,81 @@ FIO.ReadLine >LDA.G SRC.Depth >STA.G SRC.LINENUM+1 pla >STA.G SRC.LINENUM - lda (ZPTmpBuf) LEN + + + jsr FIO.GethFile + >PUSHW ZPTmpBuf + + lda #0 LENHI = 0 + >PUSHA + + lda (ZPTmpBuf) LEN sec sbc #3 - bcc .9 LEN should be at least 3 + bcc .9 LEN should be at least 3 - tay - lda #0 - >PUSHYA - >PUSHW ZPTmpBuf + >PUSHA jsr FIO.ReadFromFile bcs .9 + >LDYA ZPTmpBuf >STYA ZPPtr1 ldy #0 .1 lda (ZPPtr1) inc ZPPtr1 bne .11 + inc ZPPtr1+1 .11 tax bmi .2 + sta (ZPLineBuf),y beq .8 Ending 00 iny bne .1 + bra .99 + .2 cmp #$C0 REPEAT char? bne .5 lda (ZPPtr1) Get Repeat Count inc ZPPtr1 bne .3 + inc ZPPtr1+1 + .3 tax lda (ZPPtr1) Get Repeat Char inc ZPPtr1 bne .4 + inc ZPPtr1+1 + .4 sta (ZPLineBuf),y iny beq .99 + dex bne .4 bra .1 + .5 and #$3F Compute blank count tax lda #$20 + .6 sta (ZPLineBuf),y iny beq .99 + dex bne .6 + bra .1 + .8 clc .9 rts @@ -278,17 +306,21 @@ FIO.ReadLine >LDA.G SRC.Depth sec rts *-------------------------------------- -FIO.ReadFromFile - >LDA.G SRC.Depth +FIO.GethFile >LDA.G SRC.Depth clc adc #SRC.hFILES-1 tay lda (pData),y - + >PUSHA + rts +*-------------------------------------- +FIO.ReadFromFile >SYSCALL FRead bcs .9 + tax $100 byte transfered ? beq .9 + lda #E.LINE.TOO.LONG sec .9 rts diff --git a/BIN/ASM.S.OUT.txt b/BIN/ASM.S.OUT.txt index cb355a2c..de40fbd1 100644 --- a/BIN/ASM.S.OUT.txt +++ b/BIN/ASM.S.OUT.txt @@ -16,13 +16,13 @@ OUT.EmitByte phy >LDA.G ASM.DU.ON bmi .1 + >PUSHB.G DST.hREFNUM txa - pha >PUSHA - >LDA.G DST.hREFNUM + phx >SYSCALL FPutC plx - bcs .99 + bcs .9 .1 >INC.G ASM.PC bne .2 @@ -50,7 +50,7 @@ OUT.EmitByte phy phx jsr OUT.PrintBuf plx - bcs .99 + bcs .9 ldy #OUT.Buf lda #0 @@ -65,7 +65,7 @@ OUT.EmitByte phy .8 clc -.99 plx +.9 plx ply rts *--------------------------------------- diff --git a/BIN/CMP.S.txt b/BIN/CMP.S.txt index 5acae314..6c7fd739 100644 --- a/BIN/CMP.S.txt +++ b/BIN/CMP.S.txt @@ -239,32 +239,32 @@ CS.RUN.SEEK >LDYA ZPPtr1 bcs .9 >PULLL SeekOfs + lda bSkip1 bmi .1 - >PUSHBI SEEK.SET + >PUSHB hFile1 >PUSHL SeekOfs - lda hFile1 - + >PUSHBI SEEK.SET >SYSCALL FSeek bcs .9 -.1 >PUSHBI SEEK.SET +.1 >PUSHB hFile2 >PUSHL SeekOfs - lda hFile2 + >PUSHBI SEEK.SET >SYSCALL FSeek .9 rts *-------------------------------------- -CS.RUN.READ1 >PUSHWI 256 +CS.RUN.READ1 >PUSHB hFile1 >PUSHW ZPBufPtr1 - lda hFile1 + >PUSHWI 256 >SYSCALL FRead rts *-------------------------------------- -CS.RUN.READ2 >PUSHWI 256 +CS.RUN.READ2 >PUSHB hFile2 >PUSHW ZPBufPtr2 - lda hFile2 + >PUSHWI 256 >SYSCALL FRead rts *-------------------------------------- diff --git a/BIN/CSH.S.CORE.txt b/BIN/CSH.S.CORE.txt index 7bae2fe7..df37fd4d 100644 --- a/BIN/CSH.S.CORE.txt +++ b/BIN/CSH.S.CORE.txt @@ -346,6 +346,12 @@ CSH.fDeclaration lda #CSH.Q.FUNC tsb ZPVarType + + jsr CSH.SkipLine + clc + rts + + jsr CSH.GetNextCharNB Skip ( bcs .9 @@ -359,8 +365,6 @@ CSH.fDeclaration .5 jsr CSH.GetNextCharNB Skip ) - jsr CSH.SkipLine - clc rts diff --git a/BIN/CSH.S.EXEC.txt b/BIN/CSH.S.EXEC.txt index 35c3a428..ed743890 100644 --- a/BIN/CSH.S.EXEC.txt +++ b/BIN/CSH.S.EXEC.txt @@ -114,6 +114,10 @@ CSH.BOPS.LOR clc rts *-------------------------------------- +EXEC.pwr >FPU PWR + clc + rts +*-------------------------------------- EXEC.log >FPU LOG clc rts @@ -183,7 +187,17 @@ EXEC.malloc >PULLYA >PUSHYA rts *-------------------------------------- - +EXEC.fopen >SYSCALL FOpen + >PUSHYA +*-------------------------------------- +EXEC.fclose >SYSCALL FClose + >PUSHYA +*-------------------------------------- +EXEC.fread >SYSCALL FRead + >PUSHYA +*-------------------------------------- +EXEC.fwrite >SYSCALL FWrite + >PUSHYA *-------------------------------------- MAN SAVE usr/src/bin/csh.s.exec diff --git a/BIN/CSH.S.KW.txt b/BIN/CSH.S.KW.txt index eb928b9a..5980eb12 100644 --- a/BIN/CSH.S.KW.txt +++ b/BIN/CSH.S.KW.txt @@ -11,22 +11,29 @@ CSH.KW.JMP txa CSH.WHILE CSH.IF jsr CSH.GetCharNB bcs .9 + cmp #'(' bne .9 + jsr CSH.GetNextCharNB bcs .9 lda #0 Any var type jsr CSH.ExpEval bcs .99 + jsr CSH.GetCharNB bcs .99 + cmp #')' bne .9 + jsr CSH.GetNextCharNB skip ')' bcs .99 + cmp #'{' bne .9 + jsr CSH.GetNextCharNB Skip '{' bcs .99 @@ -44,6 +51,7 @@ CSH.IF jsr CSH.GetCharNB pla .1 jsr CSH.Push bcs .99 + lda #'}' Tell '}' is expected at the end of block jsr CSH.Push bcs .99 diff --git a/BIN/CSH.S.txt b/BIN/CSH.S.txt index 663575ae..f9b2e2f0 100644 --- a/BIN/CSH.S.txt +++ b/BIN/CSH.S.txt @@ -164,7 +164,8 @@ J.CSH.STYPES .DA CSH.SCHAR J.CSH.KW.END .DA CSH.IF.END .DA CSH.WHILE.END *-------------------------------------- -J.CSH.EXEC .DA EXEC.log +J.CSH.EXEC .DA EXEC.pwr + .DA EXEC.log .DA EXEC.sqr .DA EXEC.exp .DA EXEC.cos @@ -181,6 +182,10 @@ J.CSH.EXEC .DA EXEC.log .DA EXEC.unsetenv .DA EXEC.MD5 .DA EXEC.malloc + .DA EXEC.fopen + .DA EXEC.fclose + .DA EXEC.fread + .DA EXEC.fwrite .DA 0 *-------------------------------------- * Called once at process creation @@ -358,9 +363,10 @@ PrintErrMsg lda hDefine cmp ZPInputBufPtr+1 beq .8 -.6 >PUSHBI '-' - ldy #S.PS.hStdErr +.6 ldy #S.PS.hStdErr lda (pPS),y + >PUSHA + >PUSHBI '-' >SYSCALL FPutC inc ZPPtr3 bne .5 @@ -390,9 +396,10 @@ PrintDebugMsg >LDYA pStack *-------------------------------------- PrintTraceMsg >STYA ZPPtr3 -PrintTraceMsg.3 >PUSHBI '>' - ldy #S.PS.hStdErr +PrintTraceMsg.3 ldy #S.PS.hStdErr lda (pPS),y + >PUSHA + >PUSHBI '>' >SYSCALL FPutC ldy #$ff @@ -405,9 +412,12 @@ PrintTraceMsg.3 >PUSHBI '>' beq .8 phy - >PUSHA + pha ldy #S.PS.hStdErr lda (pPS),y + >PUSHA + pla + >PUSHA >SYSCALL FPutC ply bra .1 @@ -543,7 +553,13 @@ CSH.FTYPES >PSTR "fastcall" CSH.TYPESIZE .HS 0001010202040405 *-------------------------------------- CSH.FN -* float cos ( float x ); +* float pwr (float x, float y); + >PSTR "pwr" + .DA #CSH.T.FLOAT returned value + .DA #CSH.T.FLOAT + .DA #CSH.T.FLOAT + .DA #0 +* float cos (float x); >PSTR "log" .DA #CSH.T.FLOAT returned value .DA #CSH.T.FLOAT @@ -626,6 +642,33 @@ CSH.FN .DA #CSH.Q.POINTER+CSH.T.VOID returned value .DA #CSH.T.SINT .DA #0 +* short int fopen(const char*,short int,short int,int); + >PSTR "fopen" + .DA #CSH.T.SCHAR + .DA #CSH.Q.CONST+CSH.Q.POINTER+CSH.T.UCHAR + .DA #CSH.T.SCHAR + .DA #CSH.T.SCHAR + .DA #CSH.T.SINT + .DA #0 +* int fclose(short int); + >PSTR "fclose" + .DA #CSH.T.SINT + .DA #CSH.T.SCHAR + .DA #0 +* int fread (short int,void*,int); + >PSTR "fread" + .DA #CSH.T.SINT + .DA #CSH.T.SCHAR + .DA #CSH.Q.POINTER+CSH.T.VOID + .DA #CSH.T.SINT + .DA #0 +* int fwrite (short int,const void*,int); + >PSTR "fwrite" + .DA #CSH.T.SINT + .DA #CSH.T.SCHAR + .DA #CSH.Q.CONST+CSH.Q.POINTER+CSH.T.VOID + .DA #CSH.T.SINT + .DA #0 *-------------------------------------- .DA #0 *-------------------------------------- diff --git a/BIN/EDIT.S.FILE.txt b/BIN/EDIT.S.FILE.txt index 7d7155b3..840e551a 100644 --- a/BIN/EDIT.S.FILE.txt +++ b/BIN/EDIT.S.FILE.txt @@ -496,17 +496,25 @@ FILE.Open stz TmpIndex .9 rts *-------------------------------------- -FILE.ReadY lda #0 - >PUSHYA +FILE.ReadY phy + + >PUSHB TmpIndex >PUSHW ZPPTR1 - lda TmpIndex + + ply + lda #0 + >PUSHYA >SYSCALL FRead rts *-------------------------------------- -FILE.WriteY lda #0 - >PUSHYA +FILE.WriteY phy + + >PUSHB TmpIndex >PUSHW ZPPTR1 - lda TmpIndex + + ply + lda #0 + >PUSHYA >SYSCALL FWrite rts *-------------------------------------- diff --git a/BIN/FORTH.S.GFX.txt b/BIN/FORTH.S.GFX.txt index 581a7350..1807798d 100644 --- a/BIN/FORTH.S.GFX.txt +++ b/BIN/FORTH.S.GFX.txt @@ -1,8 +1,8 @@ NEW AUTO 3,1 *-------------------------------------- -GFX.Open >PUSHBI 0 - >LDYA L.DEV.GFX +GFX.Open >PUSHW L.DEV.GFX + >PUSHBI 0 >SYSCALL Open bcs .9 diff --git a/BIN/GTEST.S.txt b/BIN/GTEST.S.txt index 1db3b9e7..894d59c4 100644 --- a/BIN/GTEST.S.txt +++ b/BIN/GTEST.S.txt @@ -277,8 +277,8 @@ CS.QUIT lda hFont .7 lda hDevGFX beq .8 -* >DEBUG -* >SYSCALL close + + >SYSCALL close .8 clc rts @@ -310,8 +310,8 @@ LoadResources >LDYA L.FONTFILE .9 rts *-------------------------------------- -GFX.Open >PUSHBI 0 - >LDYA L.DEVNAME.GFX +GFX.Open >PUSHW L.DEVNAME.GFX + >PUSHBI 0 >SYSCALL Open bcs .9 sta hDevGFX diff --git a/BIN/HTTPGET.S.txt b/BIN/HTTPGET.S.txt index 248eb6bb..6287e522 100644 --- a/BIN/HTTPGET.S.txt +++ b/BIN/HTTPGET.S.txt @@ -512,16 +512,16 @@ CS.RUN.RESPONSE jsr Init.TimeOut sec ror bHeader -.6 >PUSHW ZPRespBufLen - >PUSHW ZPRespBufPtr - - lda hFile +.6 lda hFile bne .7 ldy #S.PS.hStdOut lda (pPS),y -.7 >SYSCALL FWrite +.7 >PUSHA + >PUSHW ZPRespBufPtr + >PUSHW ZPRespBufLen + >SYSCALL FWrite bcs .9 lda hRespBuf diff --git a/BIN/KCONFIG.S.txt b/BIN/KCONFIG.S.txt index 7cdfa552..3cbe449d 100644 --- a/BIN/KCONFIG.S.txt +++ b/BIN/KCONFIG.S.txt @@ -244,8 +244,9 @@ CS.RUN.Save >PUSHW L.FILENAME bcs .9 pha save hFile - >PUSHWI 16 LEN + >PUSHA >PUSHW ZPCfgPtr + >PUSHWI 16 LEN pla pha >SYSCALL FWrite @@ -258,6 +259,7 @@ CS.RUN.Save >PUSHW L.FILENAME pla sec rts + .1 pla >SYSCALL FClose diff --git a/BIN/MD5.S.txt b/BIN/MD5.S.txt index faf8bc3d..f31237f4 100644 --- a/BIN/MD5.S.txt +++ b/BIN/MD5.S.txt @@ -133,9 +133,9 @@ CS.RUN.FILE >LDYAI FILEBUF.SIZE .1 >SLEEP - >PUSHWI FILEBUF.SIZE Bytes To Read + >PUSHB hFile >PUSHW ZPDataBufPtr Dst Ptr - lda hFile + >PUSHWI FILEBUF.SIZE Bytes To Read >SYSCALL FRead bcc .2 diff --git a/BIN/PAK.S.txt b/BIN/PAK.S.txt index 30745309..795b2ca7 100644 --- a/BIN/PAK.S.txt +++ b/BIN/PAK.S.txt @@ -370,9 +370,9 @@ CS.RUN.OpenFile >PUSHW ZPFullPath .9 rts *-------------------------------------- -CS.RUN.ReadFile >PUSHWI CHNK.SIZE +CS.RUN.ReadFile >PUSHB.G hFile >PUSHW ZPSrcBufPtr - >LDA.G hFile + >PUSHWI CHNK.SIZE >SYSCALL FRead bcs .9 @@ -431,17 +431,15 @@ CS.RUN.AppendArc rts + >PUSHB.G hArcFile + >PUSHLZ >PUSHBI SEEK.SET - >PUSHWI 0 - >PUSHWI 0 - >LDA.G hArcFile >SYSCALL FSeek bcs CS.RUN.OpenArc.RTS - >PUSHWI 3 + >PUSHB.G hArcFile >PUSHW ZPSrcBufPtr - >LDA.G hArcFile - + >PUSHWI 3 >SYSCALL FRead bcs .9 @@ -456,10 +454,9 @@ CS.RUN.AppendArc dey bpl .2 + >PUSHB.G hArcFile + >PUSHLZ >PUSHBI SEEK.END - >PUSHWI 0 - >PUSHWI 0 - >LDA.G hArcFile >SYSCALL FSeek * bcc .9 * cmp #MLI.E.EOF @@ -547,9 +544,9 @@ CS.RUN.WriteSrcData jsr CS.RUN.WriteArcByteA bcs .9 - >PUSHW.G Shunk.SrcSize + >PUSHB.G hArcFile >PUSHW ZPSrcBufPtr - >LDA.G hArcFile + >PUSHW.G Shunk.SrcSize >SYSCALL FWrite .9 rts *-------------------------------------- @@ -566,9 +563,9 @@ CS.RUN.WritePakData jsr CS.RUN.WriteArcByteA bcs .9 - >PUSHW.G Shunk.DstSize + >PUSHB.G hArcFile >PUSHW ZPDstBufPtr - >LDA.G hArcFile + >PUSHW.G Shunk.DstSize >SYSCALL FWrite .9 rts *-------------------------------------- @@ -576,8 +573,10 @@ CS.RUN.WriteArcByteY lda (ZPFileStat),y CS.RUN.WriteArcByteA + pha + >PUSHB.G hArcFile + pla >PUSHA - >LDA.G hArcFile >SYSCALL FPutC rts *-------------------------------------- diff --git a/BIN/PAKME.S.txt b/BIN/PAKME.S.txt index 8f6729d4..43a55440 100644 --- a/BIN/PAKME.S.txt +++ b/BIN/PAKME.S.txt @@ -122,22 +122,21 @@ CS.RUN.START >PUSHW L.MSG.SRCFILE jsr CS.RUN.GetSrcBufYA bcs CS.RUN.RTS + >PUSHB hSrcFile + >PUSHLZ >PUSHBI SEEK.SET - >PUSHWZ - >PUSHWZ - lda hSrcFile >SYSCALL FSeek bcs CS.RUN.RTS - >PUSHW ZPDstTableOfs + >PUSHB hSrcFile >PUSHW ZPSrcBufPtr - lda hSrcFile + >PUSHW ZPDstTableOfs >SYSCALL FRead bcs CS.RUN.RTS - >PUSHW ZPDstTableOfs + >PUSHB hDstFile >PUSHW ZPSrcBufPtr - lda hDstFile + >PUSHW ZPDstTableOfs >SYSCALL FWrite bcs CS.RUN.RTS @@ -259,7 +258,7 @@ CS.RUN.CheckSrcFile CS.RUN.CheckSrcFile.RTS rts *-------------------------------------- -CS.RUN.CheckTAG >PUSHBI SEEK.SET +CS.RUN.CheckTAG >PUSHB hSrcFile >PUSHWZ lda ZPSrcFileSize @@ -270,13 +269,13 @@ CS.RUN.CheckTAG >PUSHBI SEEK.SET sbc #0 >PUSHYA - lda hSrcFile + >PUSHBI SEEK.SET >SYSCALL FSeek bcs CS.RUN.CheckSrcFile.RTS - >PUSHWI 10 + >PUSHB hSrcFile >PUSHEA.G PAKME.HEADER - lda hSrcFile + >PUSHWI 10 >SYSCALL FRead bcs CS.RUN.CheckSrcFile.RTS @@ -307,13 +306,15 @@ CS.RUN.GetTable >LDA.G PAKME.HEADER+8 >SBC.G PAKME.HEADER+6 sta ZPDstTableOfs+1 - >PUSHBI SEEK.SET + >PUSHB hSrcFile >PUSHWZ >PUSHW ZPDstTableOfs - lda hSrcFile + >PUSHBI SEEK.SET >SYSCALL FSeek bcs .9 + >PUSHB hSrcFile + >PUSHEA.G PAKME.TABLE >LDA.G PAKME.HEADER+7 sta ZPChunkCnt @@ -322,8 +323,6 @@ CS.RUN.GetTable >LDA.G PAKME.HEADER+8 lda #0 >PUSHYA - >PUSHEA.G PAKME.TABLE - lda hSrcFile >SYSCALL FRead .9 rts @@ -348,16 +347,16 @@ CS.RUN.GetChunk lda ZPChunkIndex sbc (pData),y sta ZPChunkOfs+1 - >PUSHBI SEEK.SET + >PUSHB hSrcFile >PUSHWZ >PUSHW ZPChunkOfs - lda hSrcFile + >PUSHBI SEEK.SET >SYSCALL FSeek bcs .9 - >PUSHWI 3 + >PUSHB hSrcFile >PUSHEA.G CHUNK.HEADER - lda hSrcFile + >PUSHWI 3 >SYSCALL FRead bcs .9 @@ -375,9 +374,9 @@ CS.RUN.GetChunk lda ZPChunkIndex jsr CS.RUN.GetSrcBufYA bcs .9 - >PUSHW ZPChunkLen + >PUSHB hSrcFile >PUSHW ZPSrcBufPtr - lda hSrcFile + >PUSHW ZPChunkLen >SYSCALL FRead bcs .9 @@ -412,21 +411,21 @@ CS.RUN.Pak >LDYA ZPChunkLen .9 rts *-------------------------------------- CS.RUN.RewriteTable - >PUSHBI SEEK.SET + >PUSHB hDstFile >PUSHWZ >PUSHW ZPDstTableOfs - lda hDstFile + >PUSHBI SEEK.SET >SYSCALL FSeek bcs CS.RUN.WriteTable.RTS *-------------------------------------- CS.RUN.WriteTable + >PUSHB hDstFile + >PUSHEA.G PAKME.TABLE >LDA.G PAKME.HEADER+7 asl tay lda #0 >PUSHYA - >PUSHEA.G PAKME.TABLE - lda hDstFile >SYSCALL FWrite CS.RUN.WriteTable.RTS rts @@ -439,9 +438,9 @@ CS.RUN.WritePak lda hDstFile inc pStack inc pStack - >PUSHW ZPChunkPakedLen + >PUSHB hDstFile >PUSHW ZPDstBufPtr - lda hDstFile + >PUSHW ZPChunkPakedLen >SYSCALL FWrite bcs .9 @@ -464,15 +463,15 @@ CS.RUN.WriteStore inc pStack inc pStack - >PUSHWI 3 + >PUSHB hDstFile >PUSHEA.G CHUNK.HEADER - lda hDstFile + >PUSHWI 3 >SYSCALL FWrite bcs .9 - >PUSHW ZPChunkLen + >PUSHB hDstFile >PUSHW ZPSrcBufPtr - lda hDstFile + >PUSHW ZPChunkLen >SYSCALL FWrite bcs .9 diff --git a/BIN/PPPTEST.S.txt b/BIN/PPPTEST.S.txt index 0f9b3944..21ff78e7 100644 --- a/BIN/PPPTEST.S.txt +++ b/BIN/PPPTEST.S.txt @@ -99,20 +99,20 @@ CS.RUN.TEST >LDYA L.PPP.1 jsr DumpBuf - >PUSHWI PPP.1.LEN + >PUSHB hDev >PUSHW L.PPP.1 - lda hDev - + >PUSHWI PPP.1.LEN >SYSCALL FWrite bcs .9 >SLEEP - >PUSHWI BUFSIZE + >PUSHB hDev >PUSHW ZPBufPtr - lda hDev + >PUSHWI BUFSIZE >SYSCALL FRead bcs .9 + >STYA ZPBufLen >LDYA ZPBufPtr @@ -132,17 +132,23 @@ CS.RUN.LOOP >SLEEP tay bne .1 EOF, no char - >PUSHWI BUFSIZE + >PUSHB hDev >PUSHW ZPBufPtr - lda hDev + >PUSHWI BUFSIZE >SYSCALL FRead bcs CS.RUN.RTS - >PUSHYA len - >PUSHW ZPBufPtr + phy + pha + ldy #S.PS.hStdOut lda (pPS),y + >PUSHA + >PUSHW ZPBufPtr + pla + ply + >PUSHYA len >SYSCALL FWrite bcs .9 @@ -154,10 +160,11 @@ CS.RUN.LOOP >SLEEP tay bne CS.RUN.LOOP EOF = true, no char from STDIN - >PUSHWI BUFSIZE - >PUSHW ZPBufPtr ldy #S.PS.hStdIn lda (pPS),y + >PUSHA + >PUSHW ZPBufPtr + >PUSHWI BUFSIZE >SYSCALL FRead bcs .9 @@ -168,11 +175,16 @@ CS.RUN.LOOP >SLEEP txa - >PUSHYA len + phy + pha + >PUSHB hDev >PUSHW ZPBufPtr - lda hDev + pla + ply + >PUSHYA len >SYSCALL FWrite bcs .9 + jmp CS.RUN.LOOP .9 rts @@ -203,9 +215,9 @@ CS.QUIT lda hDev ATInit lda #250 sta TimeOut - >PUSHWI MSG.AT.LEN + >PUSHB hDev >PUSHW L.MSG.AT - lda hDev + >PUSHWI MSG.AT.LEN >SYSCALL FWrite bcs .9 @@ -223,9 +235,9 @@ ATInit lda #250 rts -.2 >PUSHWI BUFSIZE +.2 >PUSHB hDev >PUSHW ZPBufPtr - lda hDev + >PUSHWI BUFSIZE >SYSCALL FRead bcs .9 diff --git a/BIN/SH.S.CL.txt b/BIN/SH.S.CL.txt index 95177d09..2f560d29 100644 --- a/BIN/SH.S.CL.txt +++ b/BIN/SH.S.CL.txt @@ -8,7 +8,7 @@ CL.Init >LDYAI 256 >STYA ZPCLBuf txa - >STA.G CL.hCLBuf + >STA.G CL.hBuf .9 rts *-------------------------------------- @@ -145,7 +145,10 @@ CL.Insert >LDA.G CL.Len bmi .7 txa + >SYSCALL PutChar + bcs .9 + jsr CL.PrintEOL .7 >LDA.G CL.MaxCnt READ N = 1, don't wait for CR @@ -156,7 +159,7 @@ CL.Insert >LDA.G CL.Len >STA.G CL.bReady .8 clc - rts +.9 rts *-------------------------------------- CL.CHARIN.CTRL cpx #C.CR beq .18 @@ -189,11 +192,12 @@ CL.CLR lda (ZPCLBuf) beq CL.Reset.1 >LDA.G CL.bSilent - bmi CL.Reset.1 + bmi CL.Reset .1 >LDA.G CL.Ptr >CMP.G CL.Len beq .2 + inc >STA.G CL.Ptr lda #C.FS @@ -209,12 +213,13 @@ CL.CLR lda (ZPCLBuf) lda (ZPCLBuf),y bne .3 - jsr CL.PrintCLBuf + jsr CL.Print *-------------------------------------- CL.Reset lda #0 sta (ZPCLBuf) CL.Reset.1 lda #0 + ldy #CL.Ptr .1 sta (pData),y @@ -228,7 +233,9 @@ CL.ReadResetV sec Verbose mode CL.ReadReset lda #$ff >STA.G CL.MaxCnt + adc #0 CC = silent + iny CL.bSilent sta (pData),y rts @@ -322,7 +329,7 @@ CL.PrintEOL >LDA.G CL.Ptr CL.PrintEOL.8 clc rts *-------------------------------------- -CL.PrintCLBuf ldy #S.PS.hStdOut +CL.Print ldy #S.PS.hStdOut lda (pPS),y >PUSHA >PUSHW ZPCLBuf diff --git a/BIN/SH.S.HIS.txt b/BIN/SH.S.HIS.txt index 9cc6c59c..8d1e0351 100644 --- a/BIN/SH.S.HIS.txt +++ b/BIN/SH.S.HIS.txt @@ -9,9 +9,9 @@ HIS.Init >LDYAI HISTORY.MAX Get a buffer for History >STA.G HIS.hBuf - >STZ.G HIS.Count - >STA.G HIS.Index - >STA.G HIS.LRU +* >STZ.G HIS.Count +* >STA.G HIS.Index +* >STA.G HIS.LRU .9 rts *-------------------------------------- HIS.Add >LDA.G HIS.hBuf @@ -22,18 +22,20 @@ HIS.Add >LDA.G HIS.hBuf bcc .2 >LDA.G HIS.LRU - tax - inc cmp #HIS.MAX bne .1 lda #0 -.1 >STA.G HIS.LRU +.1 inc + >STA.G HIS.LRU + tax + >DEBUG bra .7 -.2 tax - >INC.G HIS.Count +.2 inc + >STA.G HIS.Count + tax .7 >PUSHB.G HIS.hBuf >PUSHBI 0 @@ -51,19 +53,24 @@ HIS.Select >LDA.G HIS.Count clc .99 rts -.10 >STZ.G HIS.Index +.10 jsr CL.Reset -.1 jsr HIS.GetIndex + >STZ.G HIS.Index + +.1 >INC.G HIS.Index + jsr HIS.GetIndex bcs .99 >PUSHW L.MSG.HIS - >PUSHB.G HIS.Index + >LDA.G HIS.Index + dec + >PUSHA >PUSHW ZPCLBuf >PUSHBI 3 >SYSCALL PrintF bcs .9 - >INC.G HIS.Index + >LDA.G HIS.Index >CMP.G HIS.Count bne .1 @@ -83,6 +90,8 @@ HIS.Select >LDA.G HIS.Count bcs .7 and #$f + inc + >STA.G HIS.Index .7 >PUSHW L.MSG.HISROMPTCLR @@ -90,49 +99,37 @@ HIS.Select >LDA.G HIS.Count >SYSCALL PrintF jsr CL.PrintPrompt - bcs .9 - - >LDA.G HIS.Index - bne HIS.GetToCL1 - - jmp CL.Reset - -.8 clc - + bcc HIS.GetToCL1 .9 HIS.Select.RTS rts *-------------------------------------- -HIS.GetPrev >LDA.G HIS.hBuf - beq HIS.Select.RTS - - >LDA.G HIS.Count +HIS.GetPrev >LDA.G HIS.Count beq HIS.Select.RTS empty history,nothing to do >LDA.G HIS.Index bne .1 >LDA.G HIS.Count + bra HIS.GetToCL .1 dec bra HIS.GetToCL *-------------------------------------- -HIS.GetNext >LDA.G HIS.hBuf - beq HIS.Select.RTS - - >LDA.G HIS.Count +HIS.GetNext >LDA.G HIS.Count beq HIS.Select.RTS empty history,nothing to do + >EOR.G HIS.Index + beq HIS.GetToCL + >LDA.G HIS.Index inc - >CMP.G HIS.Count - bne HIS.GetToCL - -HIS.Reset >STZ.G HIS.Index - jmp CL.CLR *-------------------------------------- HIS.GetToCL >STA.G HIS.Index -HIS.GetToCL1 jsr CL.CLR + jsr CL.CLR + +HIS.GetToCL1 >LDA.G HIS.Index + beq .9 jsr HIS.GetIndex bcs .9 @@ -147,7 +144,7 @@ HIS.GetToCL1 jsr CL.CLR >STA.G CL.Ptr >STA.G CL.Len - jmp CL.PrintCLBuf + jmp CL.Print .9 rts *-------------------------------------- diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index 5703eb23..85f0a139 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -264,6 +264,7 @@ CS.RUN.LOOP >SLEEP tay bne CS.RUN.LOOP + >SYSCALL GetChar bcs .9 I/O err @@ -464,7 +465,7 @@ CS.QUIT jsr CORE.FUNCRESET >SYSCALL FreeStkObj -.1 ldy #CL.hCLBuf +.1 ldy #CL.hBuf jsr .7 .2 jsr CMD.POPD @@ -562,7 +563,7 @@ CS.END MSG.GREETINGS .AZ "\r\nA2osX-SH %d.%d\r\n\r\n" MSG.HIS .AZ "\r\n%3d : %s" MSG.HISPROMPT .AZ "\r\n\r\n? " -MSG.HISROMPTCLR .DA #C.BS,#C.BS,0 +MSG.HISROMPTCLR .DA #C.BS,#C.BS,#0 MSG.PROMPT .AZ "\e[?7h$ " Enable Line Wrap MSG.PROMPTCRLF .AZ "\e[?7l\r\n" Disable Line Wrap MSG.TRACE .AS ">" @@ -697,7 +698,7 @@ bSET.X .BS 1 Sleep .BS 4 -CL.hCLBuf .BS 1 +CL.hBuf .BS 1 CL.Ptr .BS 1 CL.Len .BS 1 diff --git a/BIN/TELNET.S.txt b/BIN/TELNET.S.txt index d1bb6d58..76824fb2 100644 --- a/BIN/TELNET.S.txt +++ b/BIN/TELNET.S.txt @@ -192,7 +192,8 @@ CS.RUN.LOOP >SLEEP lda hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.EOF - bcs .99 + bcs .98 + tay bne .2 EOF, no char @@ -200,30 +201,40 @@ CS.RUN.LOOP >SLEEP >PUSHW ZPBufPtr lda hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Read +.98 bcs .99 -.99 bcs .9 - - >PUSHYA len - >PUSHW ZPBufPtr + pha + phy + ldy #S.PS.hStdOut lda (pPS),y + >PUSHA + >PUSHW ZPBufPtr + + ply + pla + >PUSHYA len >SYSCALL FWrite bcs .11 .2 ldy #S.PS.hStdIn lda (pPS),y - >SYSCALL FEOF bcs .11 CS.RUN.IOERR + tay bne CS.RUN.LOOP EOF = true, no char from STDIN - >PUSHWI BUFSIZE - >PUSHW ZPBufPtr ldy #S.PS.hStdIn lda (pPS),y + >PUSHA + >PUSHW ZPBufPtr + >PUSHWI BUFSIZE >SYSCALL FRead -.11 bcs CS.RUN.IOERR +.11 bcc .3 + + bra CS.RUN.IOERR +.99 bra CS.RUN.SKTERR .3 >STYA ZPBufLen lda (ZPBufPtr) @@ -234,8 +245,8 @@ CS.RUN.LOOP >SLEEP >PUSHW ZPBufPtr lda hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Write - .9 bcs CS.RUN.SKTERR + jmp CS.RUN.LOOP *-------------------------------------- CS.RUN.SKTERR pha diff --git a/BIN/TERM.S.txt b/BIN/TERM.S.txt index f8d70d6c..2b4aea2c 100644 --- a/BIN/TERM.S.txt +++ b/BIN/TERM.S.txt @@ -85,17 +85,22 @@ CS.RUN.LOOP >SLEEP tay bne .1 EOF, no char - >PUSHWI BUFSIZE + >PUSHB hDev >PUSHW ZPBufPtr - lda hDev + >PUSHWI BUFSIZE >SYSCALL FRead bcs CS.RUN.RTS - >PUSHYA len - >PUSHW ZPBufPtr + pha + phy + ldy #S.PS.hStdOut lda (pPS),y - + >PUSHA + >PUSHW ZPBufPtr + ply + pla + >PUSHYA len >SYSCALL FWrite bcs .9 @@ -107,10 +112,11 @@ CS.RUN.LOOP >SLEEP tay bne CS.RUN.LOOP EOF = true, no char from STDIN - >PUSHWI BUFSIZE - >PUSHW ZPBufPtr ldy #S.PS.hStdIn lda (pPS),y + >PUSHA + >PUSHW ZPBufPtr + >PUSHWI BUFSIZE >SYSCALL FRead bcs .9 @@ -120,11 +126,17 @@ CS.RUN.LOOP >SLEEP beq .8 txa - >PUSHYA len + + pha + phy + >PUSHB hDev >PUSHW ZPBufPtr - lda hDev + ply + pla + >PUSHYA len >SYSCALL FWrite bcs .9 + jmp CS.RUN.LOOP .8 sec diff --git a/BIN/UNPAK.S.txt b/BIN/UNPAK.S.txt index 14d67b96..628ae327 100644 --- a/BIN/UNPAK.S.txt +++ b/BIN/UNPAK.S.txt @@ -243,20 +243,23 @@ CS.RUN.OpenArc >PUSHYA bcs .9 >STA.G hArcFile - pha - >PUSHWI 3 + >PUSHA >PUSHW ZPInBufPtr - pla + >PUSHWI 3 >SYSCALL FRead bcs .9 + cpy #3 bne .99 + dey .1 lda MSG.PAK,y cmp (ZPInBufPtr),y bne .99 + dey bpl .1 + clc .9 rts @@ -269,21 +272,23 @@ CS.RUN.E.IARC >PUSHW L.MSG.E.IARC rts *-------------------------------------- CS.RUN.GetFileType - >PUSHWI 3 + >PUSHB.G hArcFile >PUSHEA.G FileType - >LDA.G hArcFile + >PUSHWI 3 >SYSCALL FRead rts *-------------------------------------- CS.RUN.GetFileName jsr CS.RUN.GetByte bcs .9 - tay - lda #0 - - >PUSHYA + pha + + >PUSHB.G hArcFile >PUSHW ZPRelPathPtr - >LDA.G hArcFile + + ply + lda #0 + >PUSHYA >SYSCALL FRead bcs .9 @@ -293,12 +298,12 @@ CS.RUN.GetFileName * clc .9 rts *-------------------------------------- -CS.RUN.ReadData >PUSHW ZPInBufLen +CS.RUN.ReadData >PUSHB.G hArcFile >LDA.G hInBuf >SYSCALL GetMemPtr >STYA ZPInBufPtr >PUSHYA - >LDA.G hArcFile + >PUSHW ZPInBufLen >SYSCALL FRead rts *-------------------------------------- @@ -339,11 +344,11 @@ CS.RUN.OpenFile >PUSHW ZPFullPathPtr .9 rts *-------------------------------------- CS.RUN.WriteFile - >PUSHW ZPOutBufLen + >PUSHB.G hFile >LDA.G hOutBuf >SYSCALL GetMemPtr >PUSHYA - >LDA.G hFile + >PUSHW ZPOutBufLen >SYSCALL FWrite rts *-------------------------------------- diff --git a/INC/MACROS.I.txt b/INC/MACROS.I.txt index f5c9f1b6..7c44322a 100644 --- a/INC/MACROS.I.txt +++ b/INC/MACROS.I.txt @@ -530,6 +530,14 @@ FPU.FOUT .EQ 210 PrintF >PULLA sta ]1+1 .EM +*-------------------------------------- + .MA PUSHLZ + lda #0 + ldy #3 +:1 >PUSHA + dey + bpl :1 + .EM *-------------------------------------- .MA PUSHL ldy #3 diff --git a/INCLUDE/stdio.h.txt b/INCLUDE/stdio.h.txt index d778cf5a..df56a9d1 100644 --- a/INCLUDE/stdio.h.txt +++ b/INCLUDE/stdio.h.txt @@ -9,21 +9,25 @@ NEW #define O_TEXT 64 #define O_CREATE 128 +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 + int fastcall putchar(short int); -// int fputc ( hFILE stream , short int character ); +int fputc (short int, short int); int fastcall puts(const char*); -int fputs (short int, const char*); -char* fgets(short int, char* s, int n); +int fputs (short int,const char*); +char* fgets(short int,char* s,int n); short int getchar(); short int fastcall getc(short int); // short int ungetc(short int c, short int ); short int fopen(const char*,short int,short int,int); int fclose(short int); -// int fread (short int stream, void * ptr, int count ); -// int fwrite (short int stream, const void * ptr, int count ); +int fread (short int,void*,int); +int fwrite (short int,const void*,int); int fastcall fflush(short int); -// int fseek( short int stream, long offset, short int whence ); +int fseek(short int,long,short int); int fastcall feof(short int); long fastcall ftell(short int); int fastcall remove(const char*); diff --git a/INCLUDE/stdlib.h.txt b/INCLUDE/stdlib.h.txt index c3e11a20..9cda86a2 100644 --- a/INCLUDE/stdlib.h.txt +++ b/INCLUDE/stdlib.h.txt @@ -10,11 +10,11 @@ unsigned long strtoul(const char*,char**,int); long fastcall atol(const char*); int fastcall atoi(const char*); -char *realpath(const char*,char*); -char *expand(const char*,char*); +char* realpath(const char*,char*); +char* expand(const char*,char*); int setenv(const char*,const char*); -char *getenv(const char*, char*); +char* getenv(const char*, char*); int putenv(char*); int unsetenv(const char*); diff --git a/INCLUDE/string.h.txt b/INCLUDE/string.h.txt index b5f2ef2c..00cbf093 100644 --- a/INCLUDE/string.h.txt +++ b/INCLUDE/string.h.txt @@ -9,5 +9,6 @@ char* fastcall strupr (char*); char* fastcall strlwr (char*); int strcmp(const char*,const char*); int strcasecmp(const char*,const char *); + MAN TEXT include/string.h diff --git a/INCLUDE/unistd.h.txt b/INCLUDE/unistd.h.txt new file mode 100644 index 00000000..59a1531a --- /dev/null +++ b/INCLUDE/unistd.h.txt @@ -0,0 +1,13 @@ +NEW + AUTO 3,1 + +short int open(const char*, short int); +short int fastcall close(short int) +int read(short int, void*, int); +int write(short int, const void*, int); +// int lseek(short int,long,short int); + +short int chown(const char*, short int, short int);` + +MAN +TEXT include/unistd.h diff --git a/SBIN/GETTY.S.txt b/SBIN/GETTY.S.txt index e02b2f9f..99900e7f 100644 --- a/SBIN/GETTY.S.txt +++ b/SBIN/GETTY.S.txt @@ -131,10 +131,11 @@ CS.RUN.LOOP0 >SLEEP >PUSHW L.ENV.TERM >SYSCALL UnsetEnv -.1 >PUSHWI TELNETOPTS.LEN - >PUSHW L.TELNETOPTS - ldy #S.PS.hStdOut +.1 ldy #S.PS.hStdOut lda (pPS),y + >PUSHA + >PUSHW L.TELNETOPTS + >PUSHWI TELNETOPTS.LEN >SYSCALL FWrite bcs CS.RUN.EXIT I/O error @@ -156,8 +157,10 @@ CS.RUN.LOOP1 >SLEEP cmp #IAC beq CS.RUN.IACMODE + >SYSCALL PutChar bcs CS.RUN.EXIT + bra CS.RUN.LOOP1 .1 lda TimeOut @@ -206,23 +209,29 @@ CS.RUN.IAC.CMD cmp #WILL cpx #TN.O.TTYPE bne .2 - >PUSHWI TELNETOPT.TTYPE.LEN + ldy #S.PS.hStdOut + lda (pPS),y + >PUSHA >PUSHW L.TELNETOPT.TTYPE + >PUSHWI TELNETOPT.TTYPE.LEN bra .7 .2 cpx #TN.O.LINEMODE bne .8 - >PUSHWI TELNETOPT.LMODE.LEN - >PUSHW L.TELNETOPT.LMODE - -.7 ldy #S.PS.hStdOut + ldy #S.PS.hStdOut lda (pPS),y - >SYSCALL FWrite + >PUSHA + >PUSHW L.TELNETOPT.LMODE + >PUSHWI TELNETOPT.LMODE.LEN + +.7 >SYSCALL FWrite + .8 jmp CS.RUN.LOOP1 *-------------------------------------- CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND bcs .9 + sta IAC.SB.CMD stz IAC.SB.LEN .2 >SYSCALL GetChar diff --git a/SBIN/HTTPD.S.txt b/SBIN/HTTPD.S.txt index c64a0db0..91c4fb6f 100644 --- a/SBIN/HTTPD.S.txt +++ b/SBIN/HTTPD.S.txt @@ -574,9 +574,9 @@ CS.RUN.SendFile >PUSHW ZPRepPtr jsr CS.RUN.SendBuf Y,A = car count -.1 >PUSHWI 1024 +.1 >PUSHB REQ.hFile >PUSHW ZPRepPtr - lda REQ.hFile + >PUSHWI 1024 >SYSCALL FRead bcs .8 diff --git a/SBIN/NETWORKD.S.txt b/SBIN/NETWORKD.S.txt index 5852d8fd..13ac59aa 100644 --- a/SBIN/NETWORKD.S.txt +++ b/SBIN/NETWORKD.S.txt @@ -87,8 +87,8 @@ CS.INIT lda DevID sec rts *-------------------------------------- -CS.INIT.DEV >PUSHBI 0 - >LDYA L.DEVNAME +CS.INIT.DEV >PUSHW L.DEVNAME + >PUSHBI 0 >SYSCALL Open bcc .8 diff --git a/SHARED/X.CPMVRM.S.txt b/SHARED/X.CPMVRM.S.txt index 40d6a844..a7cabeed 100644 --- a/SHARED/X.CPMVRM.S.txt +++ b/SHARED/X.CPMVRM.S.txt @@ -516,7 +516,7 @@ CS.RUN.CopyStart ldy #hSrcFullPath lda #O.RDONLY jsr CS.RUN.Open - bcs CS.RUN.CopyEnd + bcs .9 >STA.G hSrcFile @@ -532,9 +532,9 @@ CS.RUN.CopyStart * clc rts *-------------------------------------- -CS.RUN.Copy >PUSHWI X.COPY.BUF.SIZE Bytes To Read +CS.RUN.Copy >PUSHB.G hSrcFile >PUSHW ZPPtr1 Dst Ptr - >LDA.G hSrcFile + >PUSHWI X.COPY.BUF.SIZE Bytes To Read >SYSCALL FRead bcc .1 @@ -545,9 +545,13 @@ CS.RUN.Copy >PUSHWI X.COPY.BUF.SIZE Bytes To Read clc bra .9 -.1 >PUSHYA Bytes To Write +.1 phy + pha + >PUSHB.G hDstFile >PUSHW ZPPtr1 Src Ptr - >LDA.G hDstFile + pla + ply + >PUSHYA Bytes To Write >SYSCALL FWrite bcs .9 diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 23e1f7a9..1ea8a324 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -87,13 +87,13 @@ CORE.Events jsr CORE.GetEvents >STYA pStack lda #Evt.Table sta pEvent + .1 lda (pEvent) beq .3 - bmi .2 Ignore & Discard any timer event + bpl .3 -* jsr CORE.DumpEvent -.2 jsr CORE.DestroyEvent + jsr CORE.DestroyEvent Discard any timer event .3 lda pEvent clc @@ -366,14 +366,6 @@ CORE.GetPS tay .8 clc rts *-------------------------------------- -*CORE.DumpEvent ldy #S.EVT-1 -*.1 >PUSHB (pEvent),y -* dey -* bpl .1 -* >LDYAI .2 -* jmp K.printf -*.2 .AZ "!Evt:F=%b,Dev=$%h,LO=$%h,HI=$%h,W1=$%H,W2=$%H\n" -*-------------------------------------- CORE.DestroyEvent lda (pEvent) beq .9 diff --git a/SYS/KERNEL.S.DEV.txt b/SYS/KERNEL.S.DEV.txt index be674f47..b59413ac 100644 --- a/SYS/KERNEL.S.DEV.txt +++ b/SYS/KERNEL.S.DEV.txt @@ -108,9 +108,11 @@ K.GetDevStatus >PULLW K.S.IOCTL+S.IOCTL.BUFPTR bcs K.GetDev.9 lda #S.IOCTL.S.GETDIB + .HS 2C BIT ABS *-------------------------------------- -DEV.GetDevStatus - sta K.S.IOCTL+S.IOCTL.S +DEV.EOF lda #S.IOCTL.S.EOF +*-------------------------------------- +DEV.GetStatus sta K.S.IOCTL+S.IOCTL.S ldy #S.FD.DEV.DEVID lda (pFD),y @@ -193,7 +195,7 @@ K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd jsr DEV.GetPDrv lda #S.IOCTL.S.STATUS - jsr DEV.GetDevStatus + jsr DEV.GetStatus bcs .99 lda K.IOBuf Get Status byte diff --git a/SYS/KERNEL.S.FS.txt b/SYS/KERNEL.S.FS.txt index 73c42dd8..0e97d8ca 100644 --- a/SYS/KERNEL.S.FS.txt +++ b/SYS/KERNEL.S.FS.txt @@ -128,15 +128,18 @@ FS.WRITE.REG ldx #MLIWRITE ldy #S.FD.REG.REF lda (pFD),y sta K.MLI.PARAMS+1 - >PULLW K.MLI.PARAMS+2 >PULLW K.MLI.PARAMS+4 - + >PULLW K.MLI.PARAMS+2 + lda #4 Param Count = 4 for MLIREAD & MLIWRITE jsr GP.MLICall bcs .9 + >LDYA K.MLI.PARAMS+6 -.9 rts +.9 inc pStack + + rts *-------------------------------------- FS.EOF.REG >MLICALL MLIGETMARK bcs .9 diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 9cd2e9de..e4f652a7 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -438,7 +438,6 @@ HW.Detect >PUSHWI MSG.HW >PUSHB A2osX.HWSubT >PUSHBI 2 >SYSCALL2 printf - rts *-------------------------------------- CPU.Init >PUSHWI MSG.CPU diff --git a/SYS/KERNEL.S.PFT.txt b/SYS/KERNEL.S.PFT.txt index 6a49dfa3..3600ec3c 100644 --- a/SYS/KERNEL.S.PFT.txt +++ b/SYS/KERNEL.S.PFT.txt @@ -1,8 +1,6 @@ NEW AUTO 3,1 *-------------------------------------- -PFT.CheckPath0 ldy #0 - .HS 2C BIT ABS PFT.CheckPath1 ldy #1 .HS 2C BIT ABS PFT.CheckPath2 ldy #2 @@ -98,7 +96,7 @@ PFT.CheckNode4 ldy #4 .HS 2C BIT ABS PFT.CheckNode2 ldy #2 - lda (pStack),y +PFT.CheckNodeY lda (pStack),y PFT.CheckNodeA stx .80+1 Save SYSCALL # sta .81+1 Save hFILE diff --git a/SYS/KERNEL.S.PIPE.txt b/SYS/KERNEL.S.PIPE.txt index e0f69419..d7fa5cf8 100644 --- a/SYS/KERNEL.S.PIPE.txt +++ b/SYS/KERNEL.S.PIPE.txt @@ -7,8 +7,9 @@ PIPE.CNT .EQ ZPDRV+4 PIPE.BASEH .EQ ZPDRV+6 PIPE.BUFH .EQ ZPDRV+7 PIPE.SIZEH .EQ ZPDRV+8 +PIPE.nCNT .EQ ZPDRV+10 *-------------------------------------- -IO.OPEN.PIPE ldy #S.FD.PIPE.S +PIPE.OPEN ldy #S.FD.PIPE.S lda (pFD),y inc sta (pFD),y @@ -17,7 +18,7 @@ IO.OPEN.PIPE ldy #S.FD.PIPE.S clc rts *-------------------------------------- -IO.CLOSE.PIPE ldy #S.FD.PIPE.S +PIPE.CLOSE ldy #S.FD.PIPE.S lda (pFD),y bmi .1 remote PS closed its end @@ -34,30 +35,27 @@ IO.CLOSE.PIPE ldy #S.FD.PIPE.S .2 jmp DEV.Destroy *-------------------------------------- -* (pStack)+2 count -* (pStack)+0 buf +* (pStack)+2 buf +* (pStack)+0 count *-------------------------------------- -IO.WRITE.PIPE ldy #S.FD.PIPE.S +PIPE.WRITE ldy #S.FD.PIPE.S lda (pFD),y bpl .10 - jmp IO.READ.PIPE.EOF Remote PS closed the Pipe + jmp PIPE.eEOF Remote PS closed the Pipe .10 ldy #S.FD.PIPE.Free lda (pFD),y - ldy #2 - cmp (pStack),y + cmp (pStack) ldy #S.FD.PIPE.Free+1 lda (pFD),y - ldy #3 + ldy #1 sbc (pStack),y - bcc IO.READ.PIPE.NODATA not enough room in PIPE - - >PULLW PIPE.SRCBUF + bcc PIPE.eNODATA not enough room in PIPE ldy #S.FD.PIPE.Head+1 - jsr PIPE.GET.BUF + jsr PIPE.GetBuf >STYA PIPE.DSTBUF @@ -70,6 +68,9 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S sta PIPE.CNT+1 eor #$ff pha + + >PULLW PIPE.SRCBUF + ldy #S.FD.PIPE.Head lda (pFD),y tay @@ -118,22 +119,20 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S lda PIPE.BUFH sta (pFD),y ldy #S.FD.PIPE.Free - jsr PIPE.SUB.CNT + jsr PIPE.SubCnt iny #S.FD.PIPE.Used - jsr PIPE.ADD.CNT - jmp IO.READ.PIPE.EXIT + jsr PIPE.AddCnt + jmp PIPE.EXIT -IO.READ.PIPE.EOF - lda #MLI.E.EOF +PIPE.eEOF lda #MLI.E.EOF .HS 2C BIT ABS -IO.READ.PIPE.NODATA - lda #E.NODATA +PIPE.eNODATA lda #E.NODATA sec - >RET 4 + >RET 5 *-------------------------------------- -IO.READ.PIPE ldy #S.FD.PIPE.Used+1 +PIPE.READ ldy #S.FD.PIPE.Used+1 lda (pFD),y Data ? dey ora (pFD),y @@ -141,13 +140,12 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1 ldy #S.FD.PIPE.S lda (pFD),y - bmi IO.READ.PIPE.EOF Remote PS closed the Pipe - bpl IO.READ.PIPE.NODATA - -.10 >PULLW PIPE.DSTBUF get dest buf + bmi PIPE.eEOF Remote PS closed the Pipe - ldy #S.FD.PIPE.Tail+1 - jsr PIPE.GET.BUF + bpl PIPE.eNODATA + +.10 ldy #S.FD.PIPE.Tail+1 + jsr PIPE.GetBuf >STYA PIPE.SRCBUF @@ -177,6 +175,9 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1 txa eor #$ff tax + + >PULLW PIPE.DSTBUF get dest buf + ldy #S.FD.PIPE.Tail lda (pFD),y tay @@ -225,17 +226,18 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1 lda PIPE.BUFH sta (pFD),y ldy #S.FD.PIPE.Free - jsr PIPE.ADD.CNT + jsr PIPE.AddCnt iny #S.FD.PIPE.Used - jsr PIPE.SUB.CNT -IO.READ.PIPE.EXIT - >LDYA PIPE.CNT Y,A = bytes written + jsr PIPE.SubCnt + +PIPE.EXIT >LDYA PIPE.CNT Y,A = bytes written + inc pStack clc rts *-------------------------------------- -PIPE.GET.BUF lda (pFD),y +PIPE.GetBuf lda (pFD),y sta PIPE.BUFH ldy #S.FD.PIPE.Size+1 @@ -252,7 +254,7 @@ PIPE.GET.BUF lda (pFD),y adc PIPE.BUFH rts *-------------------------------------- -PIPE.ADD.CNT clc +PIPE.AddCnt clc lda (pFD),y adc PIPE.CNT sta (pFD),y @@ -264,7 +266,7 @@ PIPE.ADD.CNT clc sta (pFD),y rts *-------------------------------------- -PIPE.SUB.CNT sec +PIPE.SubCnt sec lda (pFD),y sbc PIPE.CNT sta (pFD),y @@ -276,7 +278,7 @@ PIPE.SUB.CNT sec sta (pFD),y rts *-------------------------------------- -IO.EOF.PIPE clc +PIPE.EOF clc ldy #S.FD.PIPE.Used lda (pFD),y iny diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 56324456..6b9a645d 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -513,16 +513,19 @@ PS.LoadGetHeader sta .1+1 - >PUSHWI 128 + >PUSHA >PUSHWI K.IOBuf+128 -.1 lda #$ff SELF MODIFIED + >PUSHWI 128 + >SYSCALL2 fread + php pha - lda .1+1 +.1 lda #$FF SELF MODIFIED >SYSCALL2 fclose pla plp + .9 rts *-------------------------------------- PS.Load.ROOT .AZ "ROOT" @@ -823,10 +826,10 @@ K.LoadFile clc >STYA PS.MemPtr stx PS.hMem - >PUSHWI $ffff + >PUSHB PS.hFILE >PUSHW PS.MemPtr - lda PS.hFILE - >SYSCALL2 FRead + >PUSHWI $ffff + >SYSCALL2 fread bcs .96 sty .7+1 diff --git a/SYS/KERNEL.S.PWD.txt b/SYS/KERNEL.S.PWD.txt index ae48bf37..70fce7fa 100644 --- a/SYS/KERNEL.S.PWD.txt +++ b/SYS/KERNEL.S.PWD.txt @@ -149,11 +149,11 @@ PWD.Flush >STYA PWD.FileSize .1 sta .7+1 - >PUSHW PWD.FileSize + >PUSHA lda .8+1 jsr K.getmemptr >PUSHYA - lda .7+1 + >PUSHW PWD.FileSize >SYSCALL2 FWrite bcc .7 diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 7134a1f4..0d333b12 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -1,6 +1,35 @@ NEW AUTO 3,1 */-------------------------------------- +* # fputc (BLOCKING) +* Print A (char) to hFILE +* ## C +* `int fputc ( hFILE stream , short int character );` +* ## ASM +* **In:** +* `>PUSHB stream` +* `>PUSHB character` +* `>SYSCALL fputc` +* ## RETURN VALUE +* CC = success +*\-------------------------------------- +K.FPutC lda (pStack) character + sta K.IOBuf + + ldy #1 + lda (pStack),y hFile + >PUSHA + + jsr STDIO.Put1 + bcc .8 + + tay + beq .9 BLOCKING, keep parms on stack + +.8 >POP 2 + +.9 rts +*/-------------------------------------- * # putchar (BLOCKING) * Print A (char) to StdOut * ## C @@ -12,56 +41,28 @@ NEW * ## RETURN VALUE * CC = success *\-------------------------------------- -K.PutChar >PUSHA character +K.PutChar sta K.IOBuf character ldy #S.PS.hStdOut lda (pPS),y - jsr K.FPutC - bcc .8 - - tay - bne .8 - - >PULLA CS,A=0:BLOCKING, restore A - -.8 rts -*/-------------------------------------- -* # fputc (BLOCKING) -* Print A (char) to hFILE -* ## C -* `int fputc ( hFILE stream , short int character );` -* ## ASM -* **In:** -* `>PUSHB character` -* `lda stream` -* `>SYSCALL fputc` -* ## RETURN VALUE -* CC = success -*\-------------------------------------- -K.FPutC jsr PFT.CheckNodeA - bcs .8 - - lda (pStack) character - sta K.IOBuf + >PUSHA +*-------------------------------------- +STDIO.Put1 >PUSHWI K.IOBuf buf lda #0 >PUSHA inc write 1 byte >PUSHA - >PUSHWI K.IOBuf buf - jsr IO.Write - bcc .8 pop char... + jsr K.FWrite + bcc .9 - cmp #E.NODATA - sec - bne .8 + tay + bne .9 - inc CS,A=0:BLOCKING - rts + >POP 5 -.8 >POP 1 - rts +.9 rts */-------------------------------------- * # puts (BLOCKING) * Write Str to StdOut, appends '\r\n' @@ -76,13 +77,13 @@ K.FPutC jsr PFT.CheckNodeA *\-------------------------------------- K.PutS >STYA .1+1 - ldy #0 + ldx #0 -.1 lda $FFFF,y SELF MODIFIED +.1 lda $FFFF,x SELF MODIFIED beq .2 - sta K.IOBuf,y - iny + sta K.IOBuf,x + inx bne .1 .9 lda #E.BUF @@ -90,33 +91,32 @@ K.PutS >STYA .1+1 rts .2 lda #C.CR - sta K.IOBuf,y - iny + sta K.IOBuf,x + inx beq .9 lda #C.LF - sta K.IOBuf,y - iny + sta K.IOBuf,x + inx beq .9 - lda #0 - sta K.IOBuf,y - ldy #S.PS.hStdOut lda (pPS),y >PUSHA >PUSHWI K.IOBuf + >PUSHBI 0 + txa + >PUSHA - jsr K.FPutS + jsr K.FWrite + bcc .99 - bcc K.PutS.RTS tay - bne K.PutS.RTS + bne .99 - >LDYA .1+1 CS,A=0:BLOCKING, restore Y,A + >POP 5 pop hFile, buffer & len -K.PutS.RET3 >POP 3 pop StdOut & buffer -K.PutS.RTS rts +.99 rts */-------------------------------------- * # fputs (BLOCKING) * Write Str to hFILE @@ -130,42 +130,52 @@ K.PutS.RTS rts * ## RETURN VALUE * CC = success *\-------------------------------------- -K.FPutS jsr PFT.CheckNode2 set IO.hFD - bcs K.PutS.RET3 - - lda (pStack) - sta ZPPtr2 Get String +K.FPutS lda (pStack) + sta ZPPtr1 Get String + sta ZPPtr2 + ldy #1 lda (pStack),y + sta ZPPtr1+1 sta ZPPtr2+1 - + ldy #0 ldx #0 -.1 lda (ZPPtr2),y +.1 lda (ZPPtr1),y beq .2 iny bne .1 inx + inc ZPPtr1+1 bra .1 -.2 txa - >PUSHA push len HI +.2 phy - tya - >PUSHA push len LO + ldy #2 + lda (pStack),y + >PUSHA >PUSHW ZPPtr2 - jsr IO.Write - bcc K.PutS.RET3 - cmp #E.NODATA - sec - bne K.PutS.RET3 IO Error + txa + >PUSHA push len HI - inc FF-> 0 = BLOCKING + pla + >PUSHA push len LO + + jsr K.Write + bcc .8 + + tay + bne .8 + + >POP 5 + rts + +.8 >POP 2 K.FPutS.RTS rts */-------------------------------------- @@ -190,10 +200,7 @@ K.FPutS.RTS rts * (pStack)+2 s -> ZPPtr2 * (pStack)+0 n -> ZPPtr1 *-------------------------------------- -K.FGetS jsr PFT.CheckNode4 - bcs K.FPutS.RTS - - ldy #3 +K.FGetS ldy #3 .1 lda (pStack),y sta ZPPtr1,y @@ -203,18 +210,13 @@ K.FGetS jsr PFT.CheckNode4 lda ZPPtr1+1 bmi .4 already something in buffer -.2 jsr STDIO.Get.1 - bcc .3 +.2 ldy #4 + lda (pStack),y + jsr STDIO.Get1 + bcs .9 - cmp #MLI.E.EOF - beq .9 - - cmp #E.NODATA - sec - bne .9 IO error - - lda #0 BLOCKING - rts +* BLOCKING > POP 5 FREAD parms +* EOF or IOERR.... > POP 5 FGETS parms .3 lda K.IOBuf cmp #C.LF Discard any leading LF from a prev CR/LF @@ -233,7 +235,9 @@ K.FGetS jsr PFT.CheckNode4 bra .5 *-------------------------------------- -.4 jsr STDIO.Get.1 +.4 ldy #4 + lda (pStack),y + jsr STDIO.Get1 bcs .6 .5 lda K.IOBuf @@ -249,12 +253,15 @@ K.FGetS jsr PFT.CheckNode4 beq .8 Buffer full -.6 cmp #MLI.E.EOF +.6 tay + beq .70 + + cmp #MLI.E.EOF beq .8 String terminated by EOF - cmp #E.NODATA - sec - bne .9 I/O error + bra .9 I/O error > POP 5 FGETS parms + +.70 jsr .9 > POP 5 FREAD parms ldy #3 @@ -298,29 +305,27 @@ K.GetChar ldy #S.PS.hStdIn * CC = success * A = char *\-------------------------------------- -K.GetC jsr PFT.CheckNodeA - bcs .9 - - jsr STDIO.Get.1 +K.GetC jsr STDIO.Get1 bcc .8 - cmp #E.NODATA - sec + tay bne .9 I/O error - inc 0 = BLOCKING + >POP 5 BLOCKING rts .8 lda K.IOBuf .9 rts *-------------------------------------- -STDIO.Get.1 lda #0 +STDIO.Get1 >PUSHA + + >PUSHWI K.IOBuf + lda #0 >PUSHA inc read 1 byte >PUSHA - >PUSHWI K.IOBuf - jmp IO.Read + jmp K.FRead */-------------------------------------- * # ungetc * push byte back into input stream @@ -402,17 +407,17 @@ K.FClose jsr PFT.CheckNodeA * `int fread (short int stream, void * ptr, int count );` * ## ASM * **In:** -* `>PUSHWI count` +* `>PUSHB stream` * `>PUSHW ptr` -* `lda stream` +* `>PUSHW count` * `>SYSCALL fread` * ## RETURN VALUE * Y,A = Bytes Read *\-------------------------------------- -K.FRead jsr PFT.CheckNodeA - bcs K.FWrite.RET4 +K.FRead jsr PFT.CheckNode4 + bcs K.FWrite.RET5 - jsr IO.Read + jsr UNISTD.Read bcs K.FWrite.9 K.FRead.RTS rts @@ -423,32 +428,33 @@ K.FRead.RTS rts * `int fwrite ( short int stream, const void * ptr, int count );` * ## ASM * **In:** -* `>PUSHWI count` +* `>PUSHB stream` * `>PUSHW ptr` -* `lda stream` +* `>PUSHW count` * `>SYSCALL fwrite` * ## RETURN VALUE * Y,A = Bytes Written *\-------------------------------------- -K.FWrite jsr PFT.CheckNodeA - bcs K.FWrite.RET4 +K.FWrite jsr PFT.CheckNode4 + bcs K.FWrite.RET5 - jsr IO.Write - bcc K.FWrite.RTS + jsr UNISTD.Write + bcc K.FRead.RTS K.FWrite.9 cmp #E.NODATA sec - bne K.FWrite.RTS IO Error + bne K.FRead.RTS IO Error dec pStack FF = NODATA dec pStack dec pStack - dec pStack keep ptr & count on stack + dec pStack + dec pStack keep stream, ptr & count on stack inc 0 = BLOCKING * sec -K.FWrite.RTS rts + rts -K.FWrite.RET4 >RET 4 +K.FWrite.RET5 >RET 5 */-------------------------------------- * # FFlush * ## C @@ -476,25 +482,30 @@ STDIO.IOERR lda #MLI.E.IO * `int fseek( short int stream, long offset, short int whence );` * ## ASM * **In:** -* `>PUSHBI whence` +* `>PUSHB stream` * `>PUSHL offset` -* `lda stream` +* `>PUSHB whence` * `>SYSCALL fseek` *\------------------------------------- -K.FSeek jsr PFT.CheckNodeA +K.FSeek ldy #5 + jsr PFT.CheckNodeY bcc .11 >RET 5 .11 lda (pFD) bne STDIO.IOERR - >PULLL ACC32 + >PULLA whence - cmp #SEEK.END + tax + + >PULLL ACC32 + cpx #SEEK.END beq .30 + bcs .98 - dec + dex beq .20 stz K.MLI.PARAMS+2 @@ -557,17 +568,17 @@ K.FSeek.RTS rts K.FEOF jsr PFT.CheckNodeA bcs K.FSeek.RTS -IO.EOF lda (pFD) + lda (pFD) tax jmp (.1,x) .1 .DA FS.EOF.REG .DA STDIO.IOERR DIR - .DA IO.EOF.CDEV + .DA DEV.EOF .DA STDIO.IOERR BDEV .DA STDIO.IOERR LNK .DA STDIO.IOERR DSOCK .DA IO.EOF.SSOCK - .DA IO.EOF.PIPE + .DA PIPE.EOF */-------------------------------------- * # FTell * Return the current value of the file-position indicator @@ -831,20 +842,19 @@ K.PrintF.1 sec format string->ptr2 sec jmp STDIO.Exit *-------------------------------------- -.8 ldx PrintF.hFILE +.8 lda PrintF.hFILE beq .80 Writing to buffer, append \0 - >PUSHW PrintF.Cnt Writing to File/dev... + >PUSHA >PUSHWI K.IOBuf - - txa + >PUSHW PrintF.Cnt Writing to File/dev... jsr K.FWrite bcc .81 tay bne .9 - >RET 4 0=BLOCKING + >RET 5 0=BLOCKING .80 ldy PrintF.Cnt A=0, Writing to buffer, append \0 sta (pIOBuf),y @@ -1070,6 +1080,7 @@ PrintF.PutC phy ply inc PrintF.Cnt bne .8 + lda PrintF.hFILE bne .9 diff --git a/SYS/KERNEL.S.STRVX.txt b/SYS/KERNEL.S.STRVX.txt index c7882aa3..de89d7a8 100644 --- a/SYS/KERNEL.S.STRVX.txt +++ b/SYS/KERNEL.S.STRVX.txt @@ -182,7 +182,7 @@ STRVX.GetID jsr K.GetMemPtr rts *-------------------------------------- STRVX.Next lda (ZPPtr1) - sec + clc adc ZPPtr1 sta ZPPtr1 bcc .8 diff --git a/SYS/KERNEL.S.UNISTD.txt b/SYS/KERNEL.S.UNISTD.txt index d8ba4ace..a7bfec0b 100644 --- a/SYS/KERNEL.S.UNISTD.txt +++ b/SYS/KERNEL.S.UNISTD.txt @@ -6,14 +6,14 @@ NEW * `hFD open(const char *pathname, short int flags);` * ## ASM * **In:** +* `>PUSHW pathname` * `>PUSHB flags` -* `>LDYA pathname` * `>SYSCALL open` * ## RETURN VALUE * A = hFD * REG File created on ProDOS : T=TXT,X=$0000 *\-------------------------------------- -K.Open jsr PFT.YAToMLIPATH +K.Open jsr PFT.CheckPath1 >PULLB IO.Open.FLAGS lda #S.FI.T.TXT @@ -52,7 +52,7 @@ IO.Open ldx #5 /dev/ .DA STDIO.IOERR LNK .DA IO.OPEN.SOCK .DA IO.OPEN.SOCK - .DA IO.OPEN.PIPE + .DA PIPE.OPEN .8 jmp FS.OPEN.REG @@ -78,24 +78,27 @@ IO.Close lda (pFD) #S.FD.T .DA STDIO.IOERR LNK .DA IO.CLOSE.SOCK .DA IO.CLOSE.SOCK - .DA IO.CLOSE.PIPE + .DA PIPE.CLOSE */-------------------------------------- * # read * ## C * `int read(hFD fd, void *buf, int count);` * ## ASM * **In:** -* `>PUSHWI count` +* `>PUSHB fd` * `>PUSHW buf` -* `lda fd` +* `>PUSHW count` * `>SYSCALL read` * ## RETURN VALUE * CC: Y,A = bytes read * CS: A = EC *\-------------------------------------- -K.Read jsr DEV.GetPFD +K.Read ldy #4 hDev + lda (pStack),y + + jsr DEV.GetPFD -IO.Read lda (pFD) #S.FD.T +UNISTD.Read lda (pFD) #S.FD.T tax jmp (.1,x) .1 .DA FS.READ.REG @@ -105,24 +108,27 @@ IO.Read lda (pFD) #S.FD.T .DA STDIO.IOERR LNK .DA STDIO.IOERR DSOCK .DA IO.READ.SSOCK - .DA IO.READ.PIPE + .DA PIPE.READ */-------------------------------------- * # write * ## C * `int write(hFD fd, const void *buf, int count);` * ## ASM * **In:** -* `>PUSHWI count` +* `>PUSHB fd` * `>PUSHW buf` -* `lda fd` +* `>PUSHW count` * `>SYSCALL write` * ## RETURN VALUE * CC: Y,A = bytes written * CS: A = EC *\-------------------------------------- -K.Write jsr DEV.GetPFD +K.Write ldy #4 hDev + lda (pStack),y + + jsr DEV.GetPFD -IO.Write lda (pFD) #S.FD.T +UNISTD.Write lda (pFD) #S.FD.T tax jmp (.1,x) .1 .DA FS.WRITE.REG @@ -132,7 +138,7 @@ IO.Write lda (pFD) #S.FD.T .DA STDIO.IOERR LNK .DA STDIO.IOERR DSOCK .DA IO.WRITE.SSOCK - .DA IO.WRITE.PIPE + .DA PIPE.WRITE *-------------------------------------- IO.OPEN.DEV ldx #IOCTL.OPEN lda IO.hDevNod @@ -141,7 +147,8 @@ IO.OPEN.DEV ldx #IOCTL.OPEN *-------------------------------------- IO.OPEN.SOCK lda IO.hDevNod clc - rts + +IO.RTS rts *-------------------------------------- IO.CLOSE.DEV ldx #IOCTL.CLOSE lda IO.hDevNod @@ -152,16 +159,18 @@ IO.READ.CDEV ldx #IOCTL.READ *-------------------------------------- IO.WRITE.CDEV ldx #IOCTL.WRITE - >PULLW K.S.IOCTL+S.IOCTL.BUFPTR >PULLW K.S.IOCTL+S.IOCTL.BYTECNT + >PULLW K.S.IOCTL+S.IOCTL.BUFPTR + inc pStack pop hFD + >LDYAI K.S.IOCTL jsr DEV.pDrvJmp - bcs IO.RTS + bcs .9 >LDYA K.S.IOCTL+S.IOCTL.BYTECNT -IO.RTS rts +.9 rts *-------------------------------------- IO.CLOSE.SOCK ldy #S.FD.SSOCK.CLOSE .HS 2C BIT ABS @@ -183,9 +192,20 @@ IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE >STYA .1+1 lda IO.hFD .1 jmp $FFFF SELF MODIFIED -*-------------------------------------- -IO.EOF.CDEV lda #S.IOCTL.S.EOF - jmp DEV.GetDevStatus +*/------------------------------------- +* # LSeek +* Set the file-position indicator for hFD +* ## C +* `int lseek( short int hFD, long offset, short int whence );` +* ## ASM +* **In:** +* `>PUSHB hFD` +* `>PUSHL offset` +* `>PUSHB whence` +* `>SYSCALL fseek` +*\------------------------------------- +K.LSeek + */-------------------------------------- * # ChOwn * ## C