A2osX-1.00 PREVIEW : bugfix in Polling_Mode, ASM (65816), EDIT .....

This commit is contained in:
burniouf 2025-02-02 21:08:42 +01:00
parent 99ed68eebd
commit 4e30f3e5cc
19 changed files with 128 additions and 150 deletions

View File

@ -1281,6 +1281,7 @@ Return the current value of the file-position indicator
`long ftell(FILE *stream);`
## ASM
`>SL`
`>LDYA stream`
`>LIBC ftell`
@ -1331,25 +1332,31 @@ Prints C-Style String
## ASM
PrintF : (example is for printing Y,A as integer : format="%I", 2 bytes)
`>SS`
`>PUSHW format`
`>PUSHW i`
`...`
`>PUSHBI 2` #bytecount
`>LIBC PrintF`
`>SR`
FPrintF :
`>SS`
`>PUSHW FILE`
`>PUSHW format`
`>PUSHW i`
`...`
`>PUSHBI 2` #bytecount
`>LIBC fprintf`
`>SR`
SPrintF :
`>SS`
`>PUSHW str`
`>PUSHW format`
`>PUSHW i`
`...`
`>PUSHBI 2` #bytecount
`>LIBC sprintf`
`>SR`
## RETURN VALUE
CC : success, Y,A = bytes sent
@ -1393,25 +1400,31 @@ Read formatted data from string
## ASM
ScanF :
`>SS`
`>PUSHW format`
`>PUSHW ptr`
`...`
`>PUSHB bytecount`
`>LIBC scanf`
`>SR`
FScanF :
`>SS`
`>PUSHB stream`
`>PUSHW format`
`>PUSHW ptr`
`...`
`>PUSHB bytecount`
`>LIBC fscanf`
`>SR`
SScanF :
`>SS`
`>PUSHW s`
`>PUSHW format`
`>PUSHW ptr`
`...`
`>PUSHB bytecount`
`>LIBC sscanf`
`>SR`
Specifiers :
+ %i : short int
+ %d : byte

View File

@ -3,19 +3,6 @@
## Copyright
Copyright 2015 - 2020, Remy Gibert and the A2osX contributors.
# Pak
##ASM
`>PUSHW StatPtr`
`>PUSHW DstPtr`
`>PUSHW SrcLen`
`>PUSHW SrcPtr`
`>LIBCALL hLIBPAK,Pak`
## RETURN VALUE
CC, Y,A = CLEN
CS, Pak failure
## License
A2osX is licensed under the GNU General Public License.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -403,7 +403,8 @@ DIR.EP.ILLEGAL lda #E.ILLEGAL.DIR
sec
DIR.EP.RTS rts
*---------------------------------------
DIR.SE sec
DIR.SE >DEBUG
sec
.HS 90 BCC
*---------------------------------------
DIR.EQ clc

View File

@ -58,7 +58,7 @@ SRC.ParseLine.LABEL
.1 cpx #':' private symbol?
bne .8
>LDA.G SYM.BufPtr Not relative to Global label...
>LDA.G SYM.BufPtr Not relative to Global label...
beq SRC.ParseLine.InvLbl
>LDA.G MAC.StkPtr
@ -75,6 +75,9 @@ SRC.ParseLine.LABEL
bra SRC.ParseLine.DirOp
*---------------------------------------
.8 jsr SYM.NewGlobal
bcs SRC.ParseLine.RTS
*---------------------------------------
SRC.ParseLine.DirOp
@ -250,11 +253,16 @@ SRC.ParseLine.AM
ldx T.MODS.LEN-1,y
beq .75
phx
lda #'#'
.73 jsr SRC.AddToBuf
dex
bne .73
plx
bra .72
.75 jsr SRC.GetACCSize
@ -1032,6 +1040,7 @@ SRC.MODLookup >LDYA L.T.MODS
inc ZPLinePtr+1
.5 plx Keyword.ID
clc
rts

View File

@ -108,35 +108,13 @@ CS.RUN dec AttrAND set mask = $ff
>STYA ZPFullPath
*--------------------------------------
CS.RUN.LOOP ldy #S.PS.pStdIn
jsr A2osX.GetPSy
pha
iny
jsr A2osX.GetPSy
ply
>LIBC FEOF
CS.RUN.LOOP >SLEEP
jsr X.CheckCtrl
bcs .99
tay
bne .1
bvs CS.RUN.LOOP Pause...
>LIBC GetChar
bcs .99
cmp #$03 Ctrl-C
beq .99 Abort....
cmp #$13 Ctrl-S
bne .1
lda bPause
eor #$ff
sta bPause
bne CS.RUN.LOOP
.1 lda bPause
bmi CS.RUN.LOOP Pause...
*--------------------------------------
jsr X.GetEntry
bcs CS.RUN.LEAVE
@ -150,9 +128,6 @@ CS.RUN.LOOP ldy #S.PS.pStdIn
rts
.5 cmp /S.STAT.MODE.DIR DIR ?
beq .6
cmp /S.STAT.MODE.BDEV VOL ?
bne .9
.6 jsr CS.RUN.DIR
@ -301,13 +276,18 @@ CS.RUN.SetAttr >SS
rts
*--------------------------------------
CS.RUN.GetFilePath
>SS
>PUSHW ZPFullPath
>PUSHW.G pSrcBasePath
>LIBC StrCpy
>SR
>SS
>PUSHW ZPFullPath
>PUSHW ZPFileName
>LIBC StrCat
>SR
rts
*--------------------------------------
CS.RUN.CheckSwitch
@ -416,14 +396,7 @@ Access2CSTR ldy #S.STAT.P.ACCESS
CS.SIG sec
rts
*--------------------------------------
CS.QUIT jsr X.LeaveSubDir
bcc CS.QUIT
>LDYA.G pInclude
cmp #0
beq .1
>LIBC Free
CS.QUIT jsr X.Quit
.1 >LDYA ZPFullPath
beq .8
@ -433,6 +406,7 @@ CS.QUIT jsr X.LeaveSubDir
.8 clc
rts
*--------------------------------------
.INB usr/src/shared/x.checkctrl.s
.INB usr/src/shared/x.fileenum.s
*--------------------------------------
CS.END .EQ *

View File

@ -115,28 +115,10 @@ CS.RUN inc ArgCount
>STYA ZPBufPtr
ldy #S.PS.pStdOut
jsr A2osX.GetPSy
pha
iny
jsr A2osX.GetPSy
ply
>LIBC FileNo
bcs .9
>SS
>PUSHYA
>PUSHEA.G STATBUF
>LIBC FStat
>SR
jsr X.IsPipeY
bcs .9
>LDA.G STATBUF+S.STAT.MODE+1
and #$F0
beq CS.RUN.LOOP
cmp /S.STAT.MODE.FIFO
beq CS.RUN.LOOP
bvs CS.RUN.LOOP
>SS
>PUSHW L.MSG.INIT
@ -144,34 +126,12 @@ CS.RUN inc ArgCount
>LIBC PrintF
>SR
*--------------------------------------
CS.RUN.LOOP ldy #S.PS.pStdIn
jsr A2osX.GetPSy
pha
iny
jsr A2osX.GetPSy
ply
>LIBC FEOF
bcs .90 IO error
CS.RUN.LOOP >SLEEP
jsr X.CheckCtrl
bcs .99
tay
bne .10 no char
>LIBC GetChar
bcs .9 IO error
cmp #$03 Ctrl-C
beq .9 Abort....
cmp #$13 Ctrl-S
bne .10
lda bPause
eor #$ff
sta bPause
bne CS.RUN.LOOP
.10 lda bPause
bne CS.RUN.LOOP Pause...
bvs CS.RUN.LOOP Pause...
.11 lda pFile+1
bne .2
@ -179,7 +139,7 @@ CS.RUN.LOOP ldy #S.PS.pStdIn
.1 inc ArgIndex
lda ArgIndex
>LIBC ArgV
bcs .99 No more arg...the end!
bcs .8 No more arg...the end!
>STYA ZPPtr1
lda (ZPPtr1)
@ -188,7 +148,7 @@ CS.RUN.LOOP ldy #S.PS.pStdIn
>LDYA ZPPtr1
jsr CS.RUN.OPEN
.90 bcs .9
bcs .99
>STYA pFile
@ -201,19 +161,20 @@ CS.RUN.LOOP ldy #S.PS.pStdIn
bcs .7
jsr CS.RUN.PRINT
bcs .9
bcs .99
jmp CS.RUN.LOOP
.7 cmp #MLI.E.EOF
bne .9
sec
bne .99
jsr CS.RUN.CLOSE
jmp CS.RUN.LOOP
.99 lda #0 Exit with no Error
.9 sec
rts
.8 lda #0 Exit with no Error
sec
.99 rts
*--------------------------------------
CS.RUN.OPEN stz bPrintedBlankLine Reset this flag for the new file
@ -348,6 +309,9 @@ CS.RUN.CLOSE >LDYA pFile
*--------------------------------------
CS.DOEVENT sec
rts
*--------------------------------------
.INB usr/src/shared/x.checkctrl.s
.INB usr/src/shared/x.ispipein.s
*--------------------------------------
CS.END .EQ *
*--------------------------------------

View File

@ -571,6 +571,7 @@ BUF.BufPtrSetup >STYA TmpLen
.9 rts
*--------------------------------------
BUF.BufPtr.Realloc
>SS
>PUSHW.G pBuf
lda FileLen+1
@ -579,8 +580,8 @@ BUF.BufPtr.Realloc
sta BufLen+1
>PUSHA
>PUSHBI 0
>LIBC Realloc
>SR
bcs .9
>STYA.G pBuf

View File

@ -207,9 +207,13 @@ CMD.CD.YA >SS
>PUSHWZ Allocate
>LIBC RealPath
>SR
bcs .9
bcc .10
lda #MLI.E.INVPATH RealPath() returns NULL/ERRNO
* sec
rts
>STYA R1
.10 >STYA R1
ldy #1
lda (R1),y

View File

@ -2,7 +2,7 @@ NEW
AUTO 3,1
*--------------------------------------
* OUT:
* CS = Error (including Ctrl-C
* CS = Error (including Ctrl-C)
* CC/VC : NOT Paused
* CC/VS : Paused
*--------------------------------------

View File

@ -203,7 +203,7 @@ CORE.GetSig bit A2osX.bIRQ do we have IRQ enabled for Ticks ?
dec IRQ.Tick
bra .2
*--------------------------------------
.1 lda IO.VBL get VLINE status
tax
eor CORE.VBLState
@ -231,7 +231,7 @@ CORE.GetSig bit A2osX.bIRQ do we have IRQ enabled for Ticks ?
lda #S.PS.SIG.T1SEC
bra .4 Force Resync T1 & T10...
*--------------------------------------
.3 dec CORE.Tick10t
bne .6

View File

@ -115,6 +115,7 @@ ENV.SetEnv jsr ENV.UnsetEnv
bcs .22 env is large enough
>SS
sta IO.SETWRITEAUX
ldy #S.PS.pENV+1
lda (pPS),y
>PUSHA
@ -122,6 +123,7 @@ ENV.SetEnv jsr ENV.UnsetEnv
lda (pPS),y
>PUSHA
>PUSHW ZPPtr4
sta IO.CLRWRITEAUX
jsr K.Realloc
>SR
bcs .9

View File

@ -625,7 +625,11 @@ INIT3.IrqMgr >LDYAI MSG.IRQ
sec
bra .8
*--------------------------------------
.7 jsr IrqMgr.HZ2Tick
.7 sta IO.CLRWRITEAUX
jsr IrqMgr.HZ2Tick
sta IO.SETWRITEAUX
ldx #"P"
>LDYAI MSG.IRQP
@ -938,6 +942,7 @@ INIT3.TskMgr >LDYAI MSG.TSK
bcs .9
jsr INIT3.Hostname
>LDYAI I.ENV.HOSTNAME
>LIBC PutEnv
bcs .9
@ -1005,8 +1010,6 @@ INIT3.Hostname >SS
sta Buf256,y
bne .5
.8 rts
*--------------------------------------
INIT3.PwdMgr >LDYAI MSG.PWD

View File

@ -18,12 +18,18 @@ NEW
K.Realloc sta IO.SETREADAUX
sta IO.SETWRITEAUX
ldy #2
jsr RAMSW.GetStkYW ptr
ldy #2 ptr
lda (pStack),y
pha
iny
lda (pStack),y
ply
jsr MEM.GetPtrYA
bcs .99
stx .8+1
ldy #S.MEM.LEN
lda (ZPMemMgrSPtr),y
sta A4L
@ -35,8 +41,11 @@ K.Realloc sta IO.SETREADAUX
and #$7F
tax
ldy #0
jsr RAMSW.GetStkYW size
lda (pStack) size
pha
ldy #1
lda (pStack),y
ply
jsr MEM.Malloc.YAX
bcs .99
@ -46,6 +55,9 @@ K.Realloc sta IO.SETREADAUX
jsr MEM.CpyA1A2A4
.8 lda #$FF SELF MODIFIED
jsr MEM.FreeA
pla
ldy A2L
* clc
@ -581,18 +593,6 @@ MEM.GetRefCntX sta IO.SETREADAUX
.9 rts
*--------------------------------------
* Copy A4 bytes from A1 to A2
*--------------------------------------
MEM.CpyX2X sta IO.SETWRITEAUX
MEM.CpyX2M sta IO.SETREADAUX
jsr MEM.CpyA1A2A4
sta IO.CLRREADAUX
sta IO.CLRWRITEAUX
rts
*--------------------------------------
MEM.GetPtrYA >STYA A1L
lda MEM.LastSlot
@ -643,8 +643,8 @@ MEM.GetBestBnk lda A2osX.MaxBnk
.1 sta (pRWReg)
ldx MEM.Free+1
cpx /U.HiMem
ldx /U.HiMem
cpx MEM.Free+1
bne .2
sta MEM.BestSlot
@ -669,6 +669,18 @@ MEM.GetBestBnk lda A2osX.MaxBnk
.9 rts
*--------------------------------------
* Copy A4 bytes from A1 to A2
*--------------------------------------
MEM.CpyX2X sta IO.SETWRITEAUX
MEM.CpyX2M sta IO.SETREADAUX
jsr MEM.CpyA1A2A4
sta IO.CLRREADAUX
sta IO.CLRWRITEAUX
rts
*--------------------------------------
* A1L srcPtr
* A2L dstPtr
* A4L cnt
@ -770,6 +782,13 @@ MEM.MBDupYA sta IO.SETREADAUX
.2 lda A3L
sta (pRWReg)
* DEBUG DELAY !!!!!!!!!!
pha
pla
* DEBUG DELAY !!!!!!!!!!
lda (A1L),y
pha

View File

@ -6,6 +6,9 @@ IRQ.InLib .BS 1
*--------------------------------------
RAMSW.LIBC dec IRQ.InKernel Back To KERNEL
sec data in AUX RAM
ror A2osX.IOOpt
sta IO.CLRREADAUX
sta IO.CLRWRITEAUX
@ -22,9 +25,6 @@ RAMSW.LIBC dec IRQ.InKernel Back To KERNEL
tay
pla
sec data in AUX RAM
ror A2osX.IOOpt
jsr A2osX.LIBC2
inc IRQ.InKernel

View File

@ -229,18 +229,16 @@ K.RealPath ldy #2 get path
jsr SHARED.PathBuf2FORPNT
bcc .8
.HS 2C BIT ABS
.9 lda #E.BADPATH
ldy #S.PS.ERRNO
.9 ldy #S.PS.ERRNO set ERRNO...
sta (pPS),y
lda #0
tay NULL
* TODO: return NULL
* lda #0
* tay ..and return NULL
* sec
sec
.8 rts
*/--------------------------------------
* # Expand
@ -379,8 +377,7 @@ STDLIB.Expand jsr SHARED.Path2IO
jmp STDLIB.Expand
.8 clc
.9 rts
rts
*--------------------------------------
STDLIB.SysVar jsr ZP.IsDigit $0 ... $9 ?
bcs .1
@ -727,7 +724,11 @@ STDLIB.RealPath jsr SHARED.Path2IO
bne .5
.81 clc
.99 rts
rts
.99 lda #E.BADPATH
sec
rts
*--------------------------------------
STDLIB.RealPath..
txa X = "/something"
@ -748,7 +749,7 @@ STDLIB.RealPath..
sta K.PathBuf-1,x
bne .3
txa
dex
bne .8
lda #'/' Make sure we have a least '/' in the buffer

View File

@ -1323,7 +1323,7 @@ TERM.CheckOA lda IO.OPENAPPLE
lda (ZPDCBPtr),y
bmi .8
inc
dec
sta (ZPDCBPtr),y
ldx IO.hFD
@ -1372,7 +1372,7 @@ TERM.CheckOA lda IO.OPENAPPLE
lda (ZPDCBPtr),y
bpl .8
dec
inc
sta (ZPDCBPtr),y
ldx #0