diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index 7bb4d0dc..9d742ef1 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -452,6 +452,13 @@ A = hMem Y,A = ZPMemMgrSPtr = PTR to S.MEM (X unmodified) +# GetMemStat +**In:** + Y,A = Ptr to 24 bytes buffer + +## RETURN VALUE + Buffer filled with memory stats + # NewStr Create a new copy of this C-String Y,A = Ptr to source C-String @@ -570,13 +577,6 @@ A = Child PSID ## RETURN VALUE A = Child PSID -# GetMemStat -**In:** - Y,A = Ptr to 24 bytes buffer - -## RETURN VALUE - Buffer filled with memory stats - # GetPSStatus **In:** A = PID diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 7bd33196..d7d1f0ba 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 453272c1..35f19013 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index f8894bba..13ed701e 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -28,7 +28,8 @@ CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 - .DA 0 + .DA #0 + .DA #0 .DA CS.END-CS.START CS .DA DS.END-DS.START DS .DA #16 SS @@ -99,41 +100,13 @@ J.CTRL .DA Ctrl.Invalid .DA Ctrl.Invalid .DA 0 *-------------------------------------- -CS.INIT lda #$ff - >STA.G bSaved - - ldy #S.PS.ARGC - lda (pPs),y - beq .1 No arg, new file.... - - lda #1 - >SYSCALL ArgV - - >SYSCALL RealPath - txa - >STA.G hFileName - - jsr LoadFile - bcc .8 if CS, Failed to load file, keep name, but new file.... - -.1 >LDYAI 1 buffer size = 0 (+ 1 for ending 0) - >SYSCALL GetMem0 - bcs .9 - - txa - ldy #hBuffer FileLen already set to 0 - sta (pData),y - -.8 lda (pPs) - ora #S.PS.F.EVENT Now accept events - sta (pPs) - clc -.9 rts +CS.INIT clc + rts *-------------------------------------- CS.RUN >PUSHBI 0 >LDYA L.SEQ.DETECT >SYSCALL printf Send Query for term W & H - bcs .9 + bcs CS.RUN.RTS .1 >SLEEP >SYSCALL GetChar @@ -144,22 +117,47 @@ CS.RUN >PUSHBI 0 >LDA.G ScreenW Wait for Response from terminal for W & H beq .1 - jsr SCRN.Init - bcs .9 + lda #1 + >SYSCALL ArgV + bcs .2 No arg, new file.... + + >SYSCALL RealPath + txa + >STA.G hFileName -.2 >LDA.G bCancel - bne .99 - - >SLEEP + jsr LoadFile + bcc .3 if CS, Failed to load file, keep name, but new file.... + +.2 >LDYAI 1 buffer size = 0 (+ 1 for ending 0) + >SYSCALL GetMem0 + bcs CS.RUN.RTS + + txa + >STA.G hBuffer FileLen already set to 0 + +.3 lda #$ff + >STA.G bSaved + + jsr SCRN.Init + bcs CS.RUN.RTS + +CS.RUN.LOOP >SLEEP >SYSCALL GetChar - bcs .2 + bcs CS.RUN.LOOP jsr CharIn - bra .2 -.99 lda #0 -.9 + >LDA.G bCancel + bpl CS.RUN.LOOP + + >PUSHBI 0 + >LDYA L.SEQ.RESET + >SYSCALL printf + + lda #0 + sec +CS.RUN.RTS rts *-------------------------------------- CS.DOEVENT sec rts @@ -174,12 +172,6 @@ CS.QUIT ldy #hBuffer jsr .8 ldy #hFileName - jsr .8 - - >PUSHBI 0 - >LDYA L.SEQ.RESET - >SYSCALL printf - rts .8 lda (pData),y beq .9 diff --git a/BIN/IPCONFIG.S.txt b/BIN/IPCONFIG.S.txt index d6ce203e..2988925b 100644 --- a/BIN/IPCONFIG.S.txt +++ b/BIN/IPCONFIG.S.txt @@ -125,7 +125,7 @@ CS.RUN.DUMP >LDYA L.MSG0.L >LDYA L.MSG1.DEV >SYSCALL printf - lda DCB.NIC+S.DCB.NIC.FLAGS + >LDA.G DCB.NIC+S.DCB.NIC.FLAGS and #S.DCB.NIC.FLAGS.ARPOFFLOAD beq .2 @@ -136,7 +136,7 @@ CS.RUN.DUMP >LDYA L.MSG0.L >LDYA L.MSG1.DEV.ARP >SYSCALL printf - lda DCB.NIC+S.DCB.NIC.FLAGS + >LDA.G DCB.NIC+S.DCB.NIC.FLAGS and #S.DCB.NIC.FLAGS.IPOFFLOAD beq .3 @@ -148,7 +148,7 @@ CS.RUN.DUMP >LDYA L.MSG0.L >LDYA L.MSG1.DEV.IP >SYSCALL printf - lda DCB.NIC+S.DCB.NIC.LINK + >LDA.G DCB.NIC+S.DCB.NIC.LINK and #S.DCB.NIC.LINK.OK bne CS.RUN.LINK @@ -163,7 +163,7 @@ CS.RUN.LINK >LDYA L.MSG1.LINK.OK >LDYA L.MSG1.LINKSPEED >SYSCALL printf - lda DCB.NIC+S.DCB.NIC.SPEED + >LDA.G DCB.NIC+S.DCB.NIC.SPEED and #$0F tax @@ -174,7 +174,7 @@ CS.RUN.LINK >LDYA L.MSG1.LINK.OK dex bne .4 - lda DCB.NIC+S.DCB.NIC.LINK + >LDA.G DCB.NIC+S.DCB.NIC.LINK and #S.DCB.NIC.LINK.FD bne .5 diff --git a/BIN/PING.S.txt b/BIN/PING.S.txt index 639f03e1..93821309 100644 --- a/BIN/PING.S.txt +++ b/BIN/PING.S.txt @@ -157,7 +157,7 @@ CS.RUN.OPENSKT ldx #3 sta (pData),y >PUSHW L.Socket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New + >LIBCALL hLIBTCPIP,LIBTCPIP.socket bcc .2 >LDYA L.MSG.SKTKO @@ -194,7 +194,7 @@ CS.RUN.SEND.ECHO >PUSHWI ICMP.RequestLen >PUSHW L.ICMP.Request >LDA.G hSocket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Send + >LIBCALL hLIBTCPIP,LIBTCPIP.send bcs CS.RUN.ERR jsr Init.Timeout @@ -207,7 +207,7 @@ CS.RUN.WAIT.REPLY beq CS.RUN.ERR CS .1 >LDA.G hSocket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Rcvd + >LIBCALL hLIBTCPIP,LIBTCPIP.Recv bcc .2 jsr Wait.Timeout bcc CS.RUN.WAIT.REPLY @@ -316,7 +316,7 @@ CS.QUIT >LDA.G hFrame .1 >LDA.G hSocket beq .2 - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close + >SYSCALL fclose .2 lda hLIBTCPIP beq .8 @@ -338,7 +338,7 @@ Wait.TimeOut sec .9 rts *-------------------------------------- CS.END -LIBTCPIP .AZ "libtcpip.o" +LIBTCPIP .AZ "libtcpip" MSG.IPKO .AZ "TCP/IP Not Loaded/Configured." MSG.USAGE .AS "Usage : PING \r\n" .AZ " -1-9 : Ping Count\r\n" diff --git a/DRV/CONSOLE.DRV.S.txt b/DRV/CONSOLE.DRV.S.txt index 53232746..38b450e5 100644 --- a/DRV/CONSOLE.DRV.S.txt +++ b/DRV/CONSOLE.DRV.S.txt @@ -151,11 +151,6 @@ OPEN sta A2osX.SCRNDEVS DEV.ID in A lda #S.DIB.S.OPENED tsb DIB+S.DIB.S - stz CURON - - stz bEscMode - stz bEscModeCSI - stz OutPtr stz OutCnt @@ -358,7 +353,8 @@ COUT.EscMode bit bEscModeCSI .2 cmp EscCodes,x beq .3 dex - bne .2 + bpl .2 + clc rts @@ -589,7 +585,13 @@ COUT.IAC.DONT clc rts *-------------------------------------- -RESET jsr CLRSCR +RESET stz CURON + + stz bEscMode + stz bEscModeCSI + + jsr CLRSCR + lda #23 sta SCROLLBOT lda #0 @@ -647,6 +649,7 @@ ClrScr stz CH sta SETWRITEAUX ldy #39 + .2 sta (ZPBaseL1),y dey bpl .2 diff --git a/SBIN/DHCPCLNT.S.txt b/SBIN/DHCPCLNT.S.txt index c9a04b92..e9e13aaa 100644 --- a/SBIN/DHCPCLNT.S.txt +++ b/SBIN/DHCPCLNT.S.txt @@ -107,7 +107,7 @@ CS.INIT >LDYA L.LIBTCPIP *-------------------------------------- CS.RUN >PUSHW L.Socket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New + >LIBCALL hLIBTCPIP,LIBTCPIP.Socket bcc .1 jmp CS.RUN.KO @@ -122,7 +122,7 @@ CS.RUN.SDISC >PUSHWI DHCP.DISC.LEN >PUSHW L.DHCP.DISC >LDA.G hSocket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Send + >LIBCALL hLIBTCPIP,LIBTCPIP.Send bcc .1 jmp CS.RUN.KO @@ -159,7 +159,7 @@ CS.RUN.SREQ ldx #3 >PUSHWI DHCP.REQ.LEN >PUSHW L.DHCP.REQ >LDA.G hSocket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Send + >LIBCALL hLIBTCPIP,LIBTCPIP.Send bcs CS.RUN.KO lda #S.IPCFG.STATUS.SREQ @@ -212,7 +212,7 @@ CS.RUN.KO pha rts *-------------------------------------- CS.RUN.SKT.RCVD >LDA.G hSocket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Rcvd + >LIBCALL hLIBTCPIP,LIBTCPIP.Recv bcs .9 >STA.G hFrame @@ -236,7 +236,7 @@ CS.DOEVENT lda (pEvent) CS.QUIT >LDA.G hSocket beq .1 - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close + >SYSCALL fclose .1 lda hLIBTCPIP >SYSCALL UnloadLib diff --git a/SBIN/KCONFIG.S.txt b/SBIN/KCONFIG.S.txt index 42573ce0..c0fef752 100644 --- a/SBIN/KCONFIG.S.txt +++ b/SBIN/KCONFIG.S.txt @@ -111,9 +111,9 @@ CS.RUN.Loop >SLEEP jsr CS.RUN.Save bcc .8 >PUSHA - >PUSHBI 0 + >PUSHBI 1 >LDYA L.MSG.QUIT.ERR - >SYSCALL printf + bra .9 .1 cmp #20 Ctrl-T @@ -157,9 +157,10 @@ CS.RUN.Loop >SLEEP .8 >PUSHBI 0 >LDYA L.MSG.QUIT - >SYSCALL printf -.9 lda #0 +.9 >SYSCALL printf + + lda #0 sec rts *-------------------------------------- @@ -327,13 +328,11 @@ CS.RUN.DumpConfYA CS.DOEVENT sec do not discard TIMER event rts *-------------------------------------- -CS.QUIT ldy #hFileBuf - lda (pData),y +CS.QUIT >LDA.G hFileBuf beq .1 >SYSCALL FreeMem -.1 ldy #hFileName - lda (pData),y +.1 >LDA.G hFileName beq .8 >SYSCALL FreeMem diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index d0fba61b..329e9262 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -8,10 +8,22 @@ CMD.Init >LDYAI 256 bcs .9 >STYA ZPCMDBuf txa - >STA.G hCmdBuf + >STA.G CMD.hCmdBuf + + >LDYAI 256 + >SYSCALL GetMem + bcs .9 + >STYA ZPArgVBuf + txa + >STA.G CMD.hArgVBuf + .9 rts *-------------------------------------- -CMD.Quit >LDA.G hCmdBuf +CMD.Quit >LDA.G CMD.hArgVBuf + beq .1 + >SYSCALL FreeMem + +.1 >LDA.G CMD.hCmdBuf beq .9 >SYSCALL FreeMem .9 rts @@ -24,7 +36,7 @@ CMD.Quit >LDA.G hCmdBuf * - or - * intcmd\0 arg1\0 arg2\0 ... \0 *-------------------------------------- -Cmd.Parse >STZ.G CMD.bCmd +Cmd.Parse >STZ.G CMD.IntCmd lda #S.PS.F.HOLD+S.PS.F.DUPENV >STA.G CMD.PSFlags @@ -34,13 +46,6 @@ Cmd.Parse >STZ.G CMD.bCmd >SYSCALL Args2ArgV - >LDYAI 256 - >SYSCALL GetMem - bcs .9 - >STYA ZPArgVBuf - txa - >STA.G CMD.hArgVBuf - lda #0 sta (ZPArgVBuf) @@ -50,7 +55,7 @@ Cmd.Parse >STZ.G CMD.bCmd .1 cmp #'#' comment ? beq .8 yes, ignore remaining - >LDA.G CMD.bCmd + >LDA.G CMD.IntCmd bne .6 we already have Cmd, go check args ldy #2 @@ -72,7 +77,7 @@ Cmd.Parse >STZ.G CMD.bCmd rts -.6 jsr CMD.AddTokenToArgV +.6 jsr CMD.AddCmdBufTokenToArgV bcs .9 .7 jsr CMD.NextCmdBufToken @@ -107,13 +112,19 @@ Cmd.CheckCmd ldy #$ff phx plx - beq .3 if STARTPROC, skip keyword + bne .3 - jsr CMD.AddYAToArgV X unmodified + >LDA.G CMD.PSFlags if STARTPROC, skip keyword... + and #$ff^S.PS.F.HOLD + sta (pData),y ...and toggle S.PS.F.HOLD flag + clc + rts + +.3 jsr CMD.AddYAToArgV X unmodified bcs .9 - -.3 txa - >STA.G CMD.bCmd + + txa + >STA.G CMD.IntCmd clc .9 rts @@ -144,6 +155,9 @@ Cmd.CheckCmd ldy #$ff >SYSCALL STAT bcs Cmd.CheckCmd.90 + lda #$ff + >STA.G CMD.IntCmd + ldy #CMD.Stat+S.STAT.P.TYPE lda (pData),y cmp #S.FI.T.TXT @@ -180,9 +194,7 @@ Cmd.CheckCmd.BIN >LDA.G CMD.hCmdLine >SYSCALL GetMemPtr jsr CMD.AddYAToArgV - bcs Cmd.CheckCmd.90 - lda #$ff - >STA.G CMD.bCmd + bra Cmd.CheckCmd.90 *-------------------------------------- Cmd.CheckCmd.SYS @@ -202,11 +214,8 @@ Cmd.SearchExt pha >SYSCALL FileSearch rts *-------------------------------------- -Cmd.Exec lda (ZPArgVBuf) - cmp #'/' - beq .1 - - >LDA.G CMD.bCmd +Cmd.Exec >LDA.G CMD.IntCmd + bmi .1 tax jmp (J.CMD.INT,x) @@ -218,10 +227,6 @@ Cmd.Exec lda (ZPArgVBuf) * STARTPROC : intcmd = 0 *-------------------------------------- Cmd.INT.STARTPROC - >LDA.G CMD.PSFlags - and #$ff^S.PS.F.HOLD - sta (pData),y - clc rts *-------------------------------------- @@ -263,6 +268,23 @@ Cmd.INT.CD ldx #1 cmp #S.FI.T.DIR bne Cmd.Exec.ERRSYN + ldy #0 + +.5 iny + lda (ZPCMDBuf),y + bne .5 + + dey + lda #'/' + cmp (ZPCMDBuf),y + beq .8 + + iny + sta (ZPCMDBuf),y + iny + lda #0 + sta (ZPCMDBuf),y + .8 >LDYA ZPCMDBuf >SYSCALL NewStr bcs .90 @@ -370,7 +392,6 @@ Cmd.INT.SETVAR >STYA ZPPTR1 sta (ZPPTR1),y >LDYA ZPPTR1 String is "VAR"... - >DEBUG >SYSCALL UnsetEnv rts @@ -450,10 +471,10 @@ Cmd.INT.ECHO ldx #1 .71 >LDA.G bECHO.N bmi .8 -* >PUSHBI 0 -* >LDYA L.MSG.ECHOCRLF -* >SYSCALL printf -* rts + >PUSHBI 0 + >LDYA L.MSG.ECHOCRLF + >SYSCALL printf + rts .8 clc .9 rts @@ -632,7 +653,7 @@ CMD.NextCmdBufToken bne CMD.NextCmdBufToken rts *-------------------------------------- -CMD.AddTokenToArgV +CMD.AddCmdBufTokenToArgV >LDYA ZPCmdBuf CMD.AddYAToArgV >STYA ZPPtr1 diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index ed275a2c..ddc72d38 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -198,6 +198,9 @@ CS.RUN >LDA.G bReadMode READ Command ? >LDA.G bCmdBufExec Something to execute ? bpl .1 + lda (ZPCMDBuf) + beq .10 Empty line + jsr HIS.Add jsr CMD.Parse @@ -286,6 +289,9 @@ CS.RUN.BATCH >SYSCALL GetChar .7 >LDA.G bCmdBufExec bpl .8 Empty line....nothing to do.... + lda (ZPCMDBuf) + beq .8 + jsr CMD.Parse bcs .8 @@ -412,7 +418,6 @@ EscChars.Cnt .EQ *-EscChars .DUMMY .OR 0 DS.START -hCmdBuf .BS 1 CmdBufPtr .BS 1 CmdBuflen .BS 1 bCmdBufexec .BS 1 @@ -427,8 +432,9 @@ bSecureRead .BS 1 Sleep .BS 4 +CMD.IntCmd .BS 1 CMD.hCmdLine .BS 1 -CMD.bCmd .BS 1 +CMD.hCmdBuf .BS 1 CMD.hArgVBuf .BS 1 CMD.PSFlags .BS 1 diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index 9187939c..de569ff0 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -319,21 +319,15 @@ K.SetEnv.I jsr K.UnsetEnv.I iny bne .16 -.17 tya - sec - adc ZPPtr4 - sta ZPPtr4 - bcc .18 - inc ZPPtr4+1 - -.18 ldy #0 +.17 jsr ENV.NextEnvP4Y -.19 lda (ZPPtr2),y - beq .20 - iny + ldy #$ff + +.19 iny + lda (ZPPtr2),y bne .19 -.20 tya + tya sec adc ZPPtr4 tax @@ -352,14 +346,9 @@ K.SetEnv.I jsr K.UnsetEnv.I sta (ZPPtr3),y bne .22 - tya - sec - adc ZPPtr3 - sta ZPPtr3 - bcc .23 - inc ZPPtr3+1 + jsr ENV.NextEnvP3Y -.23 ldy #$ff + ldy #$ff .24 iny lda (ZPPtr2),y @@ -615,27 +604,19 @@ ENV.DelVarP3 >LDYA ZPPtr3 save actual Ptr jsr ENV.NextEnvP3 Skip current NAME.... jsr ENV.NextEnvP3 Skip current VALUE.... - ldy #0 +.1 ldy #$ff -.1 lda (ZPPtr3),y Move back CSTRs... - -.2 sta (ZPPtr4),y - beq .3 0 ended.... - iny - bne .1 - inc ZPPtr3+1 - inc ZPPtr4+1 - bra .1 - -.3 iny - bne .4 - - inc ZPPtr3+1 - inc ZPPtr4+1 - -.4 lda (ZPPtr3),y - bne .2 Until array ending 0 +.2 iny + lda (ZPPtr3),y Move back CSTRs... sta (ZPPtr4),y + bne .2 + + tya + beq .8 we moved back ending \0 + + jsr ENV.NextEnvP3Y + jsr ENV.NextEnvP4Y + bra .1 .8 rts *-------------------------------------- @@ -651,7 +632,7 @@ ENV.NextEnvP3 ldy #$ff lda (ZPPtr3),y bne .1 - tya +ENV.NextEnvP3Y tya sec adc ZPPtr3 sta ZPPtr3 @@ -659,6 +640,14 @@ ENV.NextEnvP3 ldy #$ff inc ZPPtr3+1 .8 rts *-------------------------------------- +ENV.NextEnvP4Y tya + sec + adc ZPPtr4 + sta ZPPtr4 + bcc .8 + inc ZPPtr4+1 +.8 rts +*-------------------------------------- ENV.AddAToBuf30 ora #$30 ENV.AddAToBuf ldx ENV.BufLen diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index 09465f96..603e84fb 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -293,6 +293,7 @@ STDLIB.32.Clear ldx #3 * CS : A = Error Code *\-------------------------------------- K.realpath >STYA ZPPtr1 + ldx #$ff lda (ZPPtr1)