Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-10-29 09:41:10 +01:00
parent 62ee438acb
commit 8bcf18386a
13 changed files with 172 additions and 161 deletions

View File

@ -452,6 +452,13 @@ A = hMem
Y,A = ZPMemMgrSPtr = PTR to S.MEM Y,A = ZPMemMgrSPtr = PTR to S.MEM
(X unmodified) (X unmodified)
# GetMemStat
**In:**
Y,A = Ptr to 24 bytes buffer
## RETURN VALUE
Buffer filled with memory stats
# NewStr # NewStr
Create a new copy of this C-String Create a new copy of this C-String
Y,A = Ptr to source C-String Y,A = Ptr to source C-String
@ -570,13 +577,6 @@ A = Child PSID
## RETURN VALUE ## RETURN VALUE
A = Child PSID A = Child PSID
# GetMemStat
**In:**
Y,A = Ptr to 24 bytes buffer
## RETURN VALUE
Buffer filled with memory stats
# GetPSStatus # GetPSStatus
**In:** **In:**
A = PID A = PID

Binary file not shown.

Binary file not shown.

View File

@ -28,7 +28,8 @@ CS.START cld
jmp (.1,x) jmp (.1,x)
.DA #$61 6502,Level 1 (65c02) .DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1 .DA #1 BIN Layout Version 1
.DA 0 .DA #0
.DA #0
.DA CS.END-CS.START CS .DA CS.END-CS.START CS
.DA DS.END-DS.START DS .DA DS.END-DS.START DS
.DA #16 SS .DA #16 SS
@ -99,41 +100,13 @@ J.CTRL .DA Ctrl.Invalid
.DA Ctrl.Invalid .DA Ctrl.Invalid
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
CS.INIT lda #$ff CS.INIT clc
>STA.G bSaved rts
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.RUN >PUSHBI 0 CS.RUN >PUSHBI 0
>LDYA L.SEQ.DETECT >LDYA L.SEQ.DETECT
>SYSCALL printf Send Query for term W & H >SYSCALL printf Send Query for term W & H
bcs .9 bcs CS.RUN.RTS
.1 >SLEEP .1 >SLEEP
>SYSCALL GetChar >SYSCALL GetChar
@ -144,22 +117,47 @@ CS.RUN >PUSHBI 0
>LDA.G ScreenW Wait for Response from terminal for W & H >LDA.G ScreenW Wait for Response from terminal for W & H
beq .1 beq .1
jsr SCRN.Init lda #1
bcs .9 >SYSCALL ArgV
bcs .2 No arg, new file....
>SYSCALL RealPath
txa
>STA.G hFileName
.2 >LDA.G bCancel jsr LoadFile
bne .99 bcc .3 if CS, Failed to load file, keep name, but new file....
>SLEEP .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 >SYSCALL GetChar
bcs .2 bcs CS.RUN.LOOP
jsr CharIn jsr CharIn
bra .2
.99 lda #0 >LDA.G bCancel
.9 bpl CS.RUN.LOOP
>PUSHBI 0
>LDYA L.SEQ.RESET
>SYSCALL printf
lda #0
sec
CS.RUN.RTS rts
*-------------------------------------- *--------------------------------------
CS.DOEVENT sec CS.DOEVENT sec
rts rts
@ -174,12 +172,6 @@ CS.QUIT ldy #hBuffer
jsr .8 jsr .8
ldy #hFileName ldy #hFileName
jsr .8
>PUSHBI 0
>LDYA L.SEQ.RESET
>SYSCALL printf
rts
.8 lda (pData),y .8 lda (pData),y
beq .9 beq .9

View File

@ -125,7 +125,7 @@ CS.RUN.DUMP >LDYA L.MSG0.L
>LDYA L.MSG1.DEV >LDYA L.MSG1.DEV
>SYSCALL printf >SYSCALL printf
lda DCB.NIC+S.DCB.NIC.FLAGS >LDA.G DCB.NIC+S.DCB.NIC.FLAGS
and #S.DCB.NIC.FLAGS.ARPOFFLOAD and #S.DCB.NIC.FLAGS.ARPOFFLOAD
beq .2 beq .2
@ -136,7 +136,7 @@ CS.RUN.DUMP >LDYA L.MSG0.L
>LDYA L.MSG1.DEV.ARP >LDYA L.MSG1.DEV.ARP
>SYSCALL printf >SYSCALL printf
lda DCB.NIC+S.DCB.NIC.FLAGS >LDA.G DCB.NIC+S.DCB.NIC.FLAGS
and #S.DCB.NIC.FLAGS.IPOFFLOAD and #S.DCB.NIC.FLAGS.IPOFFLOAD
beq .3 beq .3
@ -148,7 +148,7 @@ CS.RUN.DUMP >LDYA L.MSG0.L
>LDYA L.MSG1.DEV.IP >LDYA L.MSG1.DEV.IP
>SYSCALL printf >SYSCALL printf
lda DCB.NIC+S.DCB.NIC.LINK >LDA.G DCB.NIC+S.DCB.NIC.LINK
and #S.DCB.NIC.LINK.OK and #S.DCB.NIC.LINK.OK
bne CS.RUN.LINK bne CS.RUN.LINK
@ -163,7 +163,7 @@ CS.RUN.LINK >LDYA L.MSG1.LINK.OK
>LDYA L.MSG1.LINKSPEED >LDYA L.MSG1.LINKSPEED
>SYSCALL printf >SYSCALL printf
lda DCB.NIC+S.DCB.NIC.SPEED >LDA.G DCB.NIC+S.DCB.NIC.SPEED
and #$0F and #$0F
tax tax
@ -174,7 +174,7 @@ CS.RUN.LINK >LDYA L.MSG1.LINK.OK
dex dex
bne .4 bne .4
lda DCB.NIC+S.DCB.NIC.LINK >LDA.G DCB.NIC+S.DCB.NIC.LINK
and #S.DCB.NIC.LINK.FD and #S.DCB.NIC.LINK.FD
bne .5 bne .5

View File

@ -157,7 +157,7 @@ CS.RUN.OPENSKT ldx #3
sta (pData),y sta (pData),y
>PUSHW L.Socket >PUSHW L.Socket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New >LIBCALL hLIBTCPIP,LIBTCPIP.socket
bcc .2 bcc .2
>LDYA L.MSG.SKTKO >LDYA L.MSG.SKTKO
@ -194,7 +194,7 @@ CS.RUN.SEND.ECHO
>PUSHWI ICMP.RequestLen >PUSHWI ICMP.RequestLen
>PUSHW L.ICMP.Request >PUSHW L.ICMP.Request
>LDA.G hSocket >LDA.G hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Send >LIBCALL hLIBTCPIP,LIBTCPIP.send
bcs CS.RUN.ERR bcs CS.RUN.ERR
jsr Init.Timeout jsr Init.Timeout
@ -207,7 +207,7 @@ CS.RUN.WAIT.REPLY
beq CS.RUN.ERR CS beq CS.RUN.ERR CS
.1 >LDA.G hSocket .1 >LDA.G hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Rcvd >LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcc .2 bcc .2
jsr Wait.Timeout jsr Wait.Timeout
bcc CS.RUN.WAIT.REPLY bcc CS.RUN.WAIT.REPLY
@ -316,7 +316,7 @@ CS.QUIT >LDA.G hFrame
.1 >LDA.G hSocket .1 >LDA.G hSocket
beq .2 beq .2
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close >SYSCALL fclose
.2 lda hLIBTCPIP .2 lda hLIBTCPIP
beq .8 beq .8
@ -338,7 +338,7 @@ Wait.TimeOut sec
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBTCPIP .AZ "libtcpip.o" LIBTCPIP .AZ "libtcpip"
MSG.IPKO .AZ "TCP/IP Not Loaded/Configured." MSG.IPKO .AZ "TCP/IP Not Loaded/Configured."
MSG.USAGE .AS "Usage : PING <ip|host>\r\n" MSG.USAGE .AS "Usage : PING <ip|host>\r\n"
.AZ " -1-9 : Ping Count\r\n" .AZ " -1-9 : Ping Count\r\n"

View File

@ -151,11 +151,6 @@ OPEN sta A2osX.SCRNDEVS DEV.ID in A
lda #S.DIB.S.OPENED lda #S.DIB.S.OPENED
tsb DIB+S.DIB.S tsb DIB+S.DIB.S
stz CURON
stz bEscMode
stz bEscModeCSI
stz OutPtr stz OutPtr
stz OutCnt stz OutCnt
@ -358,7 +353,8 @@ COUT.EscMode bit bEscModeCSI
.2 cmp EscCodes,x .2 cmp EscCodes,x
beq .3 beq .3
dex dex
bne .2 bpl .2
clc clc
rts rts
@ -589,7 +585,13 @@ COUT.IAC.DONT
clc clc
rts rts
*-------------------------------------- *--------------------------------------
RESET jsr CLRSCR RESET stz CURON
stz bEscMode
stz bEscModeCSI
jsr CLRSCR
lda #23 lda #23
sta SCROLLBOT sta SCROLLBOT
lda #0 lda #0
@ -647,6 +649,7 @@ ClrScr stz CH
sta SETWRITEAUX sta SETWRITEAUX
ldy #39 ldy #39
.2 sta (ZPBaseL1),y .2 sta (ZPBaseL1),y
dey dey
bpl .2 bpl .2

View File

@ -107,7 +107,7 @@ CS.INIT >LDYA L.LIBTCPIP
*-------------------------------------- *--------------------------------------
CS.RUN >PUSHW L.Socket CS.RUN >PUSHW L.Socket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New >LIBCALL hLIBTCPIP,LIBTCPIP.Socket
bcc .1 bcc .1
jmp CS.RUN.KO jmp CS.RUN.KO
@ -122,7 +122,7 @@ CS.RUN.SDISC >PUSHWI DHCP.DISC.LEN
>PUSHW L.DHCP.DISC >PUSHW L.DHCP.DISC
>LDA.G hSocket >LDA.G hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Send >LIBCALL hLIBTCPIP,LIBTCPIP.Send
bcc .1 bcc .1
jmp CS.RUN.KO jmp CS.RUN.KO
@ -159,7 +159,7 @@ CS.RUN.SREQ ldx #3
>PUSHWI DHCP.REQ.LEN >PUSHWI DHCP.REQ.LEN
>PUSHW L.DHCP.REQ >PUSHW L.DHCP.REQ
>LDA.G hSocket >LDA.G hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Send >LIBCALL hLIBTCPIP,LIBTCPIP.Send
bcs CS.RUN.KO bcs CS.RUN.KO
lda #S.IPCFG.STATUS.SREQ lda #S.IPCFG.STATUS.SREQ
@ -212,7 +212,7 @@ CS.RUN.KO pha
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.SKT.RCVD >LDA.G hSocket CS.RUN.SKT.RCVD >LDA.G hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Rcvd >LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcs .9 bcs .9
>STA.G hFrame >STA.G hFrame
@ -236,7 +236,7 @@ CS.DOEVENT lda (pEvent)
CS.QUIT >LDA.G hSocket CS.QUIT >LDA.G hSocket
beq .1 beq .1
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close >SYSCALL fclose
.1 lda hLIBTCPIP .1 lda hLIBTCPIP
>SYSCALL UnloadLib >SYSCALL UnloadLib

View File

@ -111,9 +111,9 @@ CS.RUN.Loop >SLEEP
jsr CS.RUN.Save jsr CS.RUN.Save
bcc .8 bcc .8
>PUSHA >PUSHA
>PUSHBI 0 >PUSHBI 1
>LDYA L.MSG.QUIT.ERR >LDYA L.MSG.QUIT.ERR
>SYSCALL printf
bra .9 bra .9
.1 cmp #20 Ctrl-T .1 cmp #20 Ctrl-T
@ -157,9 +157,10 @@ CS.RUN.Loop >SLEEP
.8 >PUSHBI 0 .8 >PUSHBI 0
>LDYA L.MSG.QUIT >LDYA L.MSG.QUIT
>SYSCALL printf
.9 lda #0 .9 >SYSCALL printf
lda #0
sec sec
rts rts
*-------------------------------------- *--------------------------------------
@ -327,13 +328,11 @@ CS.RUN.DumpConfYA
CS.DOEVENT sec do not discard TIMER event CS.DOEVENT sec do not discard TIMER event
rts rts
*-------------------------------------- *--------------------------------------
CS.QUIT ldy #hFileBuf CS.QUIT >LDA.G hFileBuf
lda (pData),y
beq .1 beq .1
>SYSCALL FreeMem >SYSCALL FreeMem
.1 ldy #hFileName .1 >LDA.G hFileName
lda (pData),y
beq .8 beq .8
>SYSCALL FreeMem >SYSCALL FreeMem

View File

@ -8,10 +8,22 @@ CMD.Init >LDYAI 256
bcs .9 bcs .9
>STYA ZPCMDBuf >STYA ZPCMDBuf
txa txa
>STA.G hCmdBuf >STA.G CMD.hCmdBuf
>LDYAI 256
>SYSCALL GetMem
bcs .9
>STYA ZPArgVBuf
txa
>STA.G CMD.hArgVBuf
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CMD.Quit >LDA.G hCmdBuf CMD.Quit >LDA.G CMD.hArgVBuf
beq .1
>SYSCALL FreeMem
.1 >LDA.G CMD.hCmdBuf
beq .9 beq .9
>SYSCALL FreeMem >SYSCALL FreeMem
.9 rts .9 rts
@ -24,7 +36,7 @@ CMD.Quit >LDA.G hCmdBuf
* - or - * - or -
* intcmd\0 arg1\0 arg2\0 ... \0 * 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 lda #S.PS.F.HOLD+S.PS.F.DUPENV
>STA.G CMD.PSFlags >STA.G CMD.PSFlags
@ -34,13 +46,6 @@ Cmd.Parse >STZ.G CMD.bCmd
>SYSCALL Args2ArgV >SYSCALL Args2ArgV
>LDYAI 256
>SYSCALL GetMem
bcs .9
>STYA ZPArgVBuf
txa
>STA.G CMD.hArgVBuf
lda #0 lda #0
sta (ZPArgVBuf) sta (ZPArgVBuf)
@ -50,7 +55,7 @@ Cmd.Parse >STZ.G CMD.bCmd
.1 cmp #'#' comment ? .1 cmp #'#' comment ?
beq .8 yes, ignore remaining beq .8 yes, ignore remaining
>LDA.G CMD.bCmd >LDA.G CMD.IntCmd
bne .6 we already have Cmd, go check args bne .6 we already have Cmd, go check args
ldy #2 ldy #2
@ -72,7 +77,7 @@ Cmd.Parse >STZ.G CMD.bCmd
rts rts
.6 jsr CMD.AddTokenToArgV .6 jsr CMD.AddCmdBufTokenToArgV
bcs .9 bcs .9
.7 jsr CMD.NextCmdBufToken .7 jsr CMD.NextCmdBufToken
@ -107,13 +112,19 @@ Cmd.CheckCmd ldy #$ff
phx phx
plx 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 bcs .9
.3 txa txa
>STA.G CMD.bCmd >STA.G CMD.IntCmd
clc clc
.9 rts .9 rts
@ -144,6 +155,9 @@ Cmd.CheckCmd ldy #$ff
>SYSCALL STAT >SYSCALL STAT
bcs Cmd.CheckCmd.90 bcs Cmd.CheckCmd.90
lda #$ff
>STA.G CMD.IntCmd
ldy #CMD.Stat+S.STAT.P.TYPE ldy #CMD.Stat+S.STAT.P.TYPE
lda (pData),y lda (pData),y
cmp #S.FI.T.TXT cmp #S.FI.T.TXT
@ -180,9 +194,7 @@ Cmd.CheckCmd.BIN
>LDA.G CMD.hCmdLine >LDA.G CMD.hCmdLine
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
jsr CMD.AddYAToArgV jsr CMD.AddYAToArgV
bcs Cmd.CheckCmd.90
lda #$ff
>STA.G CMD.bCmd
bra Cmd.CheckCmd.90 bra Cmd.CheckCmd.90
*-------------------------------------- *--------------------------------------
Cmd.CheckCmd.SYS Cmd.CheckCmd.SYS
@ -202,11 +214,8 @@ Cmd.SearchExt pha
>SYSCALL FileSearch >SYSCALL FileSearch
rts rts
*-------------------------------------- *--------------------------------------
Cmd.Exec lda (ZPArgVBuf) Cmd.Exec >LDA.G CMD.IntCmd
cmp #'/' bmi .1
beq .1
>LDA.G CMD.bCmd
tax tax
jmp (J.CMD.INT,x) jmp (J.CMD.INT,x)
@ -218,10 +227,6 @@ Cmd.Exec lda (ZPArgVBuf)
* STARTPROC : intcmd = 0 * STARTPROC : intcmd = 0
*-------------------------------------- *--------------------------------------
Cmd.INT.STARTPROC Cmd.INT.STARTPROC
>LDA.G CMD.PSFlags
and #$ff^S.PS.F.HOLD
sta (pData),y
clc clc
rts rts
*-------------------------------------- *--------------------------------------
@ -263,6 +268,23 @@ Cmd.INT.CD ldx #1
cmp #S.FI.T.DIR cmp #S.FI.T.DIR
bne Cmd.Exec.ERRSYN 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 .8 >LDYA ZPCMDBuf
>SYSCALL NewStr >SYSCALL NewStr
bcs .90 bcs .90
@ -370,7 +392,6 @@ Cmd.INT.SETVAR >STYA ZPPTR1
sta (ZPPTR1),y sta (ZPPTR1),y
>LDYA ZPPTR1 String is "VAR"... >LDYA ZPPTR1 String is "VAR"...
>DEBUG
>SYSCALL UnsetEnv >SYSCALL UnsetEnv
rts rts
@ -450,10 +471,10 @@ Cmd.INT.ECHO ldx #1
.71 >LDA.G bECHO.N .71 >LDA.G bECHO.N
bmi .8 bmi .8
* >PUSHBI 0 >PUSHBI 0
* >LDYA L.MSG.ECHOCRLF >LDYA L.MSG.ECHOCRLF
* >SYSCALL printf >SYSCALL printf
* rts rts
.8 clc .8 clc
.9 rts .9 rts
@ -632,7 +653,7 @@ CMD.NextCmdBufToken
bne CMD.NextCmdBufToken bne CMD.NextCmdBufToken
rts rts
*-------------------------------------- *--------------------------------------
CMD.AddTokenToArgV CMD.AddCmdBufTokenToArgV
>LDYA ZPCmdBuf >LDYA ZPCmdBuf
CMD.AddYAToArgV >STYA ZPPtr1 CMD.AddYAToArgV >STYA ZPPtr1

View File

@ -198,6 +198,9 @@ CS.RUN >LDA.G bReadMode READ Command ?
>LDA.G bCmdBufExec Something to execute ? >LDA.G bCmdBufExec Something to execute ?
bpl .1 bpl .1
lda (ZPCMDBuf)
beq .10 Empty line
jsr HIS.Add jsr HIS.Add
jsr CMD.Parse jsr CMD.Parse
@ -286,6 +289,9 @@ CS.RUN.BATCH >SYSCALL GetChar
.7 >LDA.G bCmdBufExec .7 >LDA.G bCmdBufExec
bpl .8 Empty line....nothing to do.... bpl .8 Empty line....nothing to do....
lda (ZPCMDBuf)
beq .8
jsr CMD.Parse jsr CMD.Parse
bcs .8 bcs .8
@ -412,7 +418,6 @@ EscChars.Cnt .EQ *-EscChars
.DUMMY .DUMMY
.OR 0 .OR 0
DS.START DS.START
hCmdBuf .BS 1
CmdBufPtr .BS 1 CmdBufPtr .BS 1
CmdBuflen .BS 1 CmdBuflen .BS 1
bCmdBufexec .BS 1 bCmdBufexec .BS 1
@ -427,8 +432,9 @@ bSecureRead .BS 1
Sleep .BS 4 Sleep .BS 4
CMD.IntCmd .BS 1
CMD.hCmdLine .BS 1 CMD.hCmdLine .BS 1
CMD.bCmd .BS 1 CMD.hCmdBuf .BS 1
CMD.hArgVBuf .BS 1 CMD.hArgVBuf .BS 1
CMD.PSFlags .BS 1 CMD.PSFlags .BS 1

View File

@ -319,21 +319,15 @@ K.SetEnv.I jsr K.UnsetEnv.I
iny iny
bne .16 bne .16
.17 tya .17 jsr ENV.NextEnvP4Y
sec
adc ZPPtr4
sta ZPPtr4
bcc .18
inc ZPPtr4+1
.18 ldy #0
.19 lda (ZPPtr2),y ldy #$ff
beq .20
iny .19 iny
lda (ZPPtr2),y
bne .19 bne .19
.20 tya tya
sec sec
adc ZPPtr4 adc ZPPtr4
tax tax
@ -352,14 +346,9 @@ K.SetEnv.I jsr K.UnsetEnv.I
sta (ZPPtr3),y sta (ZPPtr3),y
bne .22 bne .22
tya jsr ENV.NextEnvP3Y
sec
adc ZPPtr3
sta ZPPtr3
bcc .23
inc ZPPtr3+1
.23 ldy #$ff ldy #$ff
.24 iny .24 iny
lda (ZPPtr2),y 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 NAME....
jsr ENV.NextEnvP3 Skip current VALUE.... jsr ENV.NextEnvP3 Skip current VALUE....
ldy #0 .1 ldy #$ff
.1 lda (ZPPtr3),y Move back CSTRs... .2 iny
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
sta (ZPPtr4),y sta (ZPPtr4),y
bne .2
tya
beq .8 we moved back ending \0
jsr ENV.NextEnvP3Y
jsr ENV.NextEnvP4Y
bra .1
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
@ -651,7 +632,7 @@ ENV.NextEnvP3 ldy #$ff
lda (ZPPtr3),y lda (ZPPtr3),y
bne .1 bne .1
tya ENV.NextEnvP3Y tya
sec sec
adc ZPPtr3 adc ZPPtr3
sta ZPPtr3 sta ZPPtr3
@ -659,6 +640,14 @@ ENV.NextEnvP3 ldy #$ff
inc ZPPtr3+1 inc ZPPtr3+1
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
ENV.NextEnvP4Y tya
sec
adc ZPPtr4
sta ZPPtr4
bcc .8
inc ZPPtr4+1
.8 rts
*--------------------------------------
ENV.AddAToBuf30 ora #$30 ENV.AddAToBuf30 ora #$30
ENV.AddAToBuf ldx ENV.BufLen ENV.AddAToBuf ldx ENV.BufLen

View File

@ -293,6 +293,7 @@ STDLIB.32.Clear ldx #3
* CS : A = Error Code * CS : A = Error Code
*\-------------------------------------- *\--------------------------------------
K.realpath >STYA ZPPtr1 K.realpath >STYA ZPPtr1
ldx #$ff ldx #$ff
lda (ZPPtr1) lda (ZPPtr1)