REPO Cleanup, 2x 6-pack earned :-)

This commit is contained in:
Rémy GIBERT 2021-06-19 19:46:36 +02:00
parent f2f170660a
commit a336e2122f
9 changed files with 458 additions and 356 deletions

Binary file not shown.

View File

@ -35,7 +35,7 @@ CS.START cld
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.EVENT
.DA CS.EVENT
.DA CS.QUIT
L.LIBTCPIP .DA LIBTCPIP
L.MSG.IPKO .DA MSG.IPKO
@ -63,7 +63,7 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
>LDYA L.MSG.IPKO
>SYSCALL PutS
lda #E.SYN
sec
sec
rts
CS.RUN.IPOK ldy #S.PS.ARGC
@ -87,7 +87,7 @@ CS.RUN.ADD lda #2
>SYSCALL ArgV
>PUSHYA
>PUSHW L.SSCANF.IP
>PUSHEA.G DST.IP
>PUSHEA.G DST.IP+1
>PUSHEA.G DST.IP+2
@ -104,7 +104,7 @@ CS.RUN.ADD lda #2
>LIBCALL hLIBTCPIP,LIBTCPIP.DNS.Add
bcs .99
lda #0 tell TSKMGR that all done ok, but
lda #0 tell TSKMGR that all done ok, but
sec we do not want to stay in memory
rts
@ -130,14 +130,14 @@ CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GetCache
asl
tax
.5 >PUSHW L.MSG1.Status,x
ldy #S.DNSCACHE.ID
>PUSHB (ZPPTR1),y
iny
>PUSHB (ZPPTR1),y
ldy #S.DNSCACHE.hNAME
lda (ZPPTR1),y
>SYSCALL GetMemPtr
@ -168,7 +168,7 @@ CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GetCache
sta ZPPTR1
bcc .7
inc ZPPTR1+1
.7 dec EntryCount
bne .1
@ -185,7 +185,7 @@ CS.QUIT lda hLIBTCPIP
.8 clc
rts
*--------------------------------------
CS.END
CS.END
LIBTCPIP .AZ "libtcpip"
hLIBTCPIP .BS 1
MSG.IPKO .AZ "TCP/IP Not Loaded/Configured."

View File

@ -71,7 +71,7 @@ CS.RUN ldy #S.PS.ARGC
.1 inc ArgIndex
lda ArgIndex
>SYSCALL ArgV
plx
bcs .8

View File

@ -52,7 +52,7 @@ CS.START cld
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.DOEVENT
.DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE
L.MSG.DIR .DA MSG.DIR
@ -98,7 +98,7 @@ s1
.1 pla
.11 jsr CS.RUN.OpenArc
bcs .9
>LDYAI 256
>SYSCALL GetMem
bcc .15
@ -150,7 +150,7 @@ CS.RUN.SetupPath
>STYA ZPPtr1
ldy #$ff
.2 iny
lda (ZPPtr1),y
sta (ZPFullPathPtr),y
@ -178,17 +178,19 @@ CS.RUN.LOOP jsr CS.RUN.GetByte
jsr CS.RUN.GetFileName
bcs .99
ldx #0
jsr CS.RUN.PrintFN
jsr CS.RUN.CheckDir
bcs .99
lda ZPProgress
bne CS.RUN.LOOP
>LDYA L.MSG.OK
>SYSCALL PutS
bra CS.RUN.LOOP
clc
.99 rts
.9 jmp CS.RUN.E.IARC
@ -208,23 +210,27 @@ CS.RUN.LOOP jsr CS.RUN.GetByte
bcs .99
*--------------------------------------
jsr CS.RUN.GetByte DATA
bcs .8 eof
bcs CS.RUN.Exit eof
.2 cmp #CHNK.T.DATA
bne .3 Could be a 0 byte file
.20 lda ZPProgress
beq .21
jsr CS.RUN.Spinner
bra .22
.21 lda #'.'
>SYSCALL PutChar
.22 jsr CS.RUN.GetByte DataLen LO
bcs .99
sta ZPInBufLen
jsr CS.RUN.GetByte DataLen HI
bcs .99
sta ZPInBufLen+1
jsr CS.RUN.ReadData
@ -233,7 +239,7 @@ CS.RUN.LOOP jsr CS.RUN.GetByte
ldy #1
lda (ZPInBufPtr),y
sta ZPOutBufLen
iny
lda (ZPInBufPtr),y
sta ZPOutBufLen+1
@ -241,31 +247,32 @@ CS.RUN.LOOP jsr CS.RUN.GetByte
>LDA.G hOutBuf
>SYSCALL GetMemPtr
>STYA ZPOutBufPtr
jsr X.Unpak
bcs .9
jsr CS.RUN.WriteFile
bcs .99
jsr CS.RUN.GetByte
bcs .8
bcs CS.RUN.Exit
cmp #CHNK.T.DATA
beq .20
.3 pha
jsr .8
jsr CS.RUN.Exit
pla
jmp .10
.8 >LDA.G hFile
jmp .10
*--------------------------------------
CS.RUN.Exit >LDA.G hFile
>SYSCALL FClose
LDA ZPProgress
bne S1
lda ZPProgress
bne .9
>LDYA L.MSG.OK
>SYSCALL PutS
S1 rts
.9 rts
*--------------------------------------
CS.RUN.PrintFN lda ZPProgress
bne .9
@ -307,10 +314,10 @@ CS.RUN.TidyUp lda ZPProgress
CS.RUN.OpenArc >PUSHYA
>PUSHBI O.RDONLY
>PUSHBI $CF PAK
>PUSHWZ Aux type
>PUSHWZ Aux type
>SYSCALL FOpen
bcs .9
>STA.G hArcFile
>PUSHA
>PUSHW ZPInBufPtr
@ -351,7 +358,7 @@ CS.RUN.GetFileName
jsr CS.RUN.GetByte
bcs .9
pha
>PUSHB.G hArcFile
>PUSHW ZPRelPathPtr
@ -387,7 +394,7 @@ CS.RUN.CheckDir >PUSHW ZPFullPathPtr
>PUSHW ZPFullPathPtr
>PUSHWI S.STAT.MODE.FO+S.STAT.MODE.FG+S.STAT.MODE.FU
>SYSCALL MKDir
>SYSCALL MKDir
rts
@ -444,7 +451,7 @@ CS.QUIT >LDA.G hFile
.4 >LDA.G hArcFile
beq .8
>SYSCALL FClose
.8 clc
rts
*--------------------------------------

View File

@ -14,9 +14,7 @@ S.SMB.H.CMD.CLOSE .EQ $04
S.SMB.H.CMD.FLUSH .EQ $05
S.SMB.H.CMD.DELETE .EQ $06
S.SMB.H.CMD.RENAME .EQ $07
S.SMB.H.CMD.SEEK .EQ $12
S.SMB.H.CMD.READ.ANDX .EQ $2E
S.SMB.H.CMD.WRITE.ANDX .EQ $2F
S.SMB.H.CMD.TRANS2 .EQ $32

View File

@ -18,7 +18,7 @@ CIFS.Stat >STYA pPath resolved path
jsr ClearSocket
jsr GetGTX
jsr GetCTX
jsr MakeTrans2Req
@ -35,18 +35,7 @@ CIFS.Stat >STYA pPath resolved path
jsr AppendPathPtr2
tya
inc +1 for \0
clc
adc ZPReqLen
sta ZPReqLen
bcc .2
inc ZPReqLen+1
.2 jsr SetT2ReqLen
jsr SetT2ReqLen
jsr WriteSocket
bcs .9
@ -59,17 +48,10 @@ CIFS2.Stat jsr ReadSocket
jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
beq .1
jsr CheckSMBStatus
bcs .90
lda hResp
>SYSCALL2 FreeMem
lda #MLI.E.FNOTFND
bra .99
.1 jsr GetRespDataOffset
jsr GetRespDataPtr1
jsr FileInfo2StatBuf
>PULLW ZPPtr2 Stat Buffer
@ -79,32 +61,18 @@ CIFS2.Stat jsr ReadSocket
jsr StatBuf2Ptr2
lda hResp
>SYSCALL2 FreeMem
jmp Exit.OK
stz CIFS.Status
clc
rts
.9 jsr Exit.NODATA
beq .99
.90 >POP 4
.9 cmp #E.NODATA
bne .99
dec CIFS.Retries
beq .90
lda #0
sec
rts
.90 lda #MLI.E.IO
.99 sec
stz CIFS.Status
>RET 4
.99 rts
*--------------------------------------
CIFS.MKDir >STYA pPath resolved path
jsr GetGTX
jsr GetCtx
jsr MakeTrans2Req
@ -137,34 +105,17 @@ CIFS2.MKDir jsr ReadSocket
jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
clc
beq .8
jsr CheckSMBStatus
bcs .90
lda #MLI.E.DUPFILE
sec
jmp Exit.OK
.8 jsr FreeRespData
.9 jsr Exit.NODATA
beq .99
.90 >POP 4
stz CIFS.Status
>RET 4
.9 cmp #E.NODATA
bne .99
dec CIFS.Retries
beq .98
lda #0
sec
rts
.98 lda #MLI.E.IO
.99 sec
stz CIFS.Status
>RET 4
.99 rts
*--------------------------------------
CIFS.OpenDir >STYA pPath resolved path
@ -205,7 +156,7 @@ CIFS.ReadDir jsr GetPFD
jsr ClearSocket
jsr GetGTX
jsr GetCtx
ldy #S.FD.DIR.EPB
lda (pFD),y
@ -290,19 +241,14 @@ CIFS.ReadDir.Send
CIFS2.ReadDir jsr GetPFD
jsr ReadSocket
bcs .90
bcs .9
jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
beq .1
jsr CheckSMBStatus
bcs .90
.91 sec
lda #MLI.E.IO
bra .9
.1 ldy #S.FD.DIR.FC
ldy #S.FD.DIR.FC
lda (pFD),y
iny
ora (pFD),y
@ -314,7 +260,7 @@ CIFS2.ReadDir jsr GetPFD
tax
dey
ora (ZPRespPtr),y
beq .91
beq .90
lda (ZPRespPtr),y
@ -324,11 +270,11 @@ CIFS2.ReadDir jsr GetPFD
txa
sta (pFD),y
.2 jsr GetRespDataOffset
.2 jsr GetRespDataPtr1
jsr CIFS2.ReadDir.GetBuf
bcs .9
bcs .99
jsr GetRespDataOffset
jsr GetRespDataPtr1
jsr CIFS2.ReadDir.FillBuf
lda hResp
@ -339,27 +285,11 @@ CIFS2.ReadDir jsr GetPFD
stz CIFS.Status
clc
rts
.90 rts
.9 stz CIFS.Status
.9 jmp Exit.NODATA
jmp FreeRespData
.90 cmp #E.NODATA
bne .99
dec CIFS.Retries
beq .98
lda #0
sec
rts
.98 lda #MLI.E.IO
.99 stz CIFS.Status
sec
rts
.99 jmp Exit.KO
*--------------------------------------
CIFS2.ReadDir.GetBuf
ldy #S.NETBIOS+S.SMB.H+S.TRANS2.H Search Count
@ -533,7 +463,7 @@ CIFS2.ChOwn
*--------------------------------------
CIFS.FOpen >STYA pPath resolved path
jsr GetGTX
jsr GetCtx
ldx #S.SMB.H.CMD.NT.CREATE.ANDX
jsr RequestSetupX
@ -561,14 +491,7 @@ CIFS.FOpen >STYA pPath resolved path
ldy ByteCountOfs
sta (ZPReqPtr),y
clc
adc ZPReqLen
sta ZPReqLen
bcc .2
inc ZPReqLen+1
.2 lda #0
lda #0
ror
iny ByteCountOfs+1
sta (ZPReqPtr),y
@ -605,18 +528,12 @@ CIFS2.FOpen jsr ReadSocket
jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
clc
beq .8
lda #MLI.E.DUPFILE
sec
bra .80
.8 >LDYAI S.FD.REG
jsr CheckSMBStatus
bcs .90
>DEBUG
>LDYAI S.FD.REG
>SYSCALL2 GetMem
bcs .99
bcs .91
>STYA pFD
@ -651,30 +568,19 @@ CIFS2.FOpen jsr ReadSocket
>PUSHA
>SYSCALL2 mknod
.80 jsr FreeRespData
.91 jsr FreeRespData
bra .90
stz CIFS.Status
>RET 6
.9 cmp #E.NODATA
bne .99
dec CIFS.Retries
beq .98
lda #0
sec
rts
.98 lda #MLI.E.IO
.99 sec
stz CIFS.Status
>RET 6
.9 jsr Exit.NODATA
beq .99
.90 >POP 6
.99 rts
*--------------------------------------
CIFS.FClose jsr GetPFD
jsr GetGtx
jsr GetCtx
ldx #S.SMB.H.CMD.CLOSE
jsr RequestSetupX
@ -719,40 +625,20 @@ CIFS2.FClose sta hFILE
jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
clc
beq .8
jsr CheckSMBStatus
bcs .99
lda #MLI.E.DUPFILE
sec
bra .80
.8 lda hFILE
lda hFILE
jsr CIFS.CloseDir
lda hResp
>SYSCALL2 FreeMem
clc
jmp Exit.OK
.80 jsr FreeRespData
.9 jmp Exit.NODATA
stz CIFS.Status
rts
.9 cmp #E.NODATA
bne .99
dec CIFS.Retries
beq .98
lda #0
sec
rts
.98 lda #MLI.E.IO
.99 sec
stz CIFS.Status
rts
.99 rts
*--------------------------------------
CIFS.FRead
clc
@ -767,7 +653,7 @@ CIFS.FWrite ldy #4 hNod
jsr GetPFD
jsr GetGTX
jsr GetCtx
ldx #S.SMB.H.CMD.WRITE.ANDX
jsr RequestSetupX
@ -865,40 +751,33 @@ CIFS.FWrite ldy #4 hNod
lda (pStack),y
beq .7
dec
dec DataLen - $100
sta (pStack),y
ldy #3 DataPtr HI
lda (pStack),y
inc
inc DataPtr + $100
sta (pStack),y
bra .8
jmp Sleep
.7 lda #0
sta (pStack) DataLen LO
sta (pStack) DataLen = 0
.8 jmp Sleep
jmp Sleep
.9 >RET 5
*--------------------------------------
CIFS2.FWrite ldy #4
lda (pStack),y
jsr ReadSocket
CIFS2.FWrite jsr ReadSocket
bcs .9
jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
clc
beq .8
jsr CheckSMBStatus
bcs .90
lda #MLI.E.IO
sec
.8 jsr FreeRespData
lda hResp
>SYSCALL2 FreeMem
ldy #1
lda (pStack),y
@ -908,23 +787,11 @@ CIFS2.FWrite ldy #4
jmp Sleep2
.9 cmp #E.NODATA
bne .99
.9 jsr Exit.NODATA
beq .99
dec CIFS.Retries
beq .98
lda #0
sec
rts
.98 lda #MLI.E.IO
.99 sec
.90 stz CIFS.Status
>RET 5
.90 >POP 5
.99 rts
*--------------------------------------
CIFS.FFlush
CIFS2.FFlush
@ -933,15 +800,136 @@ CIFS2.FSeek
CIFS.FTell
CIFS2.FTell
CIFS.FEOF
CIFS2.FEOF
CIFS.Remove
CIFS2.Remove
CIFS.Rename
CIFS2.Rename >DEBUG
CIFS2.FEOF >DEBUG
lda #MLI.E.BADCALL
sec
rts
*--------------------------------------
CIFS.Remove >STYA pPath resolved path
jsr ClearSocket
jsr GetCTX
ldx #S.SMB.H.CMD.DELETE
jsr RequestSetupX
ldx #0
.1 lda SMB.ComDelete.H,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.ComDelete.H.Len
bne .1
jsr ReqSetupPtr2
lda #$04 BufferFormat
jsr PutBytePtr2
jsr AppendPathPtr2
tya
inc +1 for BufferFormat
inc +1 for \0
jsr Add2ByteCount
jsr SetReqLen
jsr WriteSocket
bcs .9
jmp Sleep
.9 rts
*--------------------------------------
CIFS2.Remove jsr ReadSocket
bcs .9
jsr GetRespData
jsr CheckSMBStatus
bcs .99
jmp Exit.OK
.9 jmp Exit.NODATA
.99 rts
*--------------------------------------
CIFS.Rename >STYA pPath resolved src path
jsr ClearSocket
jsr GetCTX
ldx #S.SMB.H.CMD.RENAME
jsr RequestSetupX
ldx #0
.1 lda SMB.ComRename.H,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.ComRename.H.Len
bne .1
jsr ReqSetupPtr2
lda #$04 BufferFormat
jsr PutBytePtr2
jsr AppendPathPtr2
tya
inc +1 for BufferFormat
inc +1 for \0
jsr Add2ByteCount
lda (pStack)
sta pPath
ldy #1
lda (pStack),y
sta pPath+1
lda #$04 BufferFormat
jsr PutBytePtr2
jsr AppendPathPtr2
tya
inc +1 for BufferFormat
inc +1 for \0
jsr Add2ByteCount
jsr SetReqLen
jsr WriteSocket
bcs .9
jmp Sleep
.9 >RET 4
*--------------------------------------
CIFS2.Rename jsr ReadSocket
bcs .9
jsr GetRespData
jsr CheckSMBStatus
bcs .99
jmp Exit.OK
.9 jmp Exit.NODATA
.99 >RET 4
*--------------------------------------
MAN
SAVE usr/src/lib/libcifs.io.s
LOAD usr/src/lib/libcifs.s

View File

@ -570,7 +570,7 @@ GetPFD tax
>STYA pFD
rts
*--------------------------------------
GetGTX lda MountTable+2
GetCTX lda MountTable+2
>SYSCALL2 GetMemPtr
>STYA ZPCtxPtr
rts
@ -635,6 +635,19 @@ ReqT2SetupPtr2 sty ZPReqLen
rts
*--------------------------------------
PutBytePtr2 sta (ZPPtr2)
inc ZPPtr2
bne .1
inc ZPPtr2+1
.1 inc ZPReqLen
bne .8
inc ZPReqLen+1
.8 rts
*--------------------------------------
AppendPathPtr2 ldx #0
ldy #$ff
@ -657,10 +670,41 @@ AppendPathPtr2 ldx #0
dey
.5
* lda #0
sta (ZPPtr2),y
.5 sta (ZPPtr2),y A = 0
tya
sec +1 for \0
adc ZPReqLen
sta ZPReqLen
bcc .6
inc ZPReqLen+1
.6 tya
sec +1 for \0
adc ZPPtr2
sta ZPPtr2
bcc .8
inc ZPPtr2+1
.8 rts
*--------------------------------------
Add2ByteCount ldy ByteCountOfs
clc
adc (ZPReqPtr),y
sta (ZPReqPtr),y
iny ByteCountOfs+1
lda #0
adc (ZPReqPtr),y
sta (ZPReqPtr),y
rts
*--------------------------------------
AppendPath ldx #0
@ -760,6 +804,38 @@ Sleep2 stz CIFS.Retries
sec
rts
*--------------------------------------
Exit.OK lda hResp
>SYSCALL2 FreeMem
stz CIFS.Status
clc
rts
*--------------------------------------
Exit.KO pha
lda hResp
>SYSCALL2 FreeMem
pla
stz CIFS.Status
sec
rts
*--------------------------------------
Exit.NODATA cmp #E.NODATA
bne .99
dec CIFS.Retries
beq .98
lda #0
sec
rts
.98 lda #MLI.E.OFFLINE
.99 stz CIFS.Status
sec
rts
*--------------------------------------
GetRespData sta hResp
>SYSCALL2 GetMemPtr
@ -773,8 +849,48 @@ GetRespData sta hResp
sta ZPRespPtr+1
rts
*--------------------------------------
GetRespDataOffset
ldy #S.NETBIOS+S.SMB.H+15 Data Offset
CheckSMBStatus ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
clc
beq FreeRespData.RTS
stz CIFS.Status
cmp #2 SRV
bcs .9
iny
iny
lda (ZPRespPtr),y ERR CODE
ldx #MLIERR01-SMBERR01
.1 cmp SMBERR01-1,x
beq .2
dex
bne .1
sec
bra .9
.2 lda MLIERR01-1,x
sec
bra FreeRespData
.9 lda #MLI.E.IO
*--------------------------------------
FreeRespData php
pha
lda hResp
>SYSCALL2 FreeMem
pla
plp
FreeRespData.RTS
rts
*--------------------------------------
GetRespDataPtr1 ldy #S.NETBIOS+S.SMB.H+15 Data Offset
lda (ZPRespPtr),y
clc
adc ZPRespPtr
@ -794,16 +910,6 @@ GetRespDataOffset
adc /S.NETBIOS
sta ZPPtr1+1
rts
*--------------------------------------
FreeRespData php
pha
lda hResp
>SYSCALL2 FreeMem
pla
plp
rts
*--------------------------------------
FileInfo2StatBuf
@ -945,6 +1051,9 @@ CIFS.BADCALL lda #MLI.E.BADCALL
*--------------------------------------
CS.END
*--------------------------------------
SMBERR01 .DA #2,#3,#32
MLIERR01 .DA #MLI.E.FNOTFND,#MLI.E.PNOTFND,#MLI.E.OPEN
*--------------------------------------
NETBIOS .DA #0 DIRECT TCP TRANSPORT
.DA #0 24 BITS LENGTH
.DA /SMB.NegReq.end-SMB.H

View File

@ -28,7 +28,7 @@ PFT.CheckPathYA >PUSHYA
beq .8
sta ZPPtr1+1
lda Flt.Table.pftLO-1,x
sta ZPPtr1
@ -56,9 +56,9 @@ PFT.CheckPathYA >PUSHYA
lda Flt.Table.cbHI-1,x
sta .7+2
stx hHandler
pla discard JSR return @
pla
@ -117,10 +117,10 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL #
sta .7+1
lda Flt.Table.cbHI-1,x
sta .7+2
sta .7+2
stx hHandler
pla discard JSR return @
pla
ldx .80+1 restore SYSCALL #

View File

@ -10,7 +10,7 @@ NEW
* `>PUSHB stream`
* `>PUSHB character`
* `>SYSCALL fputc`
* ## RETURN VALUE
* ## RETURN VALUE
* CC = success
*\--------------------------------------
K.FPutC lda (pStack) character
@ -22,7 +22,7 @@ K.FPutC lda (pStack) character
jsr STDIO.Put1
bcc .8
tay
beq .9 BLOCKING, keep parms on stack
@ -38,7 +38,7 @@ K.FPutC lda (pStack) character
* **In:**
* `lda character`
* `>SYSCALL putchar`
* ## RETURN VALUE
* ## RETURN VALUE
* CC = success
*\--------------------------------------
K.PutChar sta K.IOBuf character
@ -72,7 +72,7 @@ STDIO.Write jsr K.FWrite
* ## ASM
* `>LDYAI str`
* `>SYSCALL PutS`
* ## RETURN VALUE
* ## RETURN VALUE
* CC = success
*\--------------------------------------
K.PutS >STYA .1+1
@ -119,18 +119,18 @@ K.PutS >STYA .1+1
* `>PUSHB stream`
* `>PUSHW str`
* `>SYSCALL fputs`
* ## RETURN VALUE
* ## RETURN VALUE
* CC = success
*\--------------------------------------
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
@ -151,7 +151,7 @@ K.FPutS lda (pStack)
>PUSHA
>PUSHW ZPPtr2
txa
>PUSHA push len HI
@ -160,8 +160,8 @@ K.FPutS lda (pStack)
jsr STDIO.Write
bcs K.FPutS.RTS
.8 >POP 2
.8 >POP 2
K.FPutS.RTS rts
*/--------------------------------------
@ -178,8 +178,8 @@ K.FPutS.RTS rts
* `>PUSHW s`
* `>PUSHW n`
* `>SYSCALL fgets`
* ## RETURN VALUE
* Y,A: s
* ## RETURN VALUE
* Y,A: s
* CC = success
*\--------------------------------------
* (pStack)+4 h
@ -192,10 +192,10 @@ K.FGetS ldy #3
sta ZPPtr1,y
dey
bpl .1
lda ZPPtr1+1
bmi .4 already something in buffer
.2 ldy #4
lda (pStack),y
jsr STDIO.Get1
@ -218,7 +218,7 @@ K.FGetS ldy #3
eor #$ff
adc #0
sta ZPPtr1+1
bra .5
*--------------------------------------
.4 ldy #4
@ -229,19 +229,19 @@ K.FGetS ldy #3
.5 lda K.IOBuf
cmp #C.CR
beq .8
jsr SHARED.PutCP2
inc ZPPtr1
bne .4
inc ZPPtr1+1
bne .4
beq .8 Buffer full
.6 tay
beq .70
cmp #MLI.E.EOF
beq .8 String terminated by EOF
@ -272,12 +272,12 @@ K.FGetS ldy #3
* ## ASM
* **In:**
* `>SYSCALL getchar`
* ## RETURN VALUE
* ## RETURN VALUE
* CC = success
* A = char
*\--------------------------------------
K.GetChar ldy #S.PS.hStdIn
lda (pPS),y
lda (pPS),y
*/--------------------------------------
* # getc (BLOCKING)
* Get char from Node
@ -287,13 +287,13 @@ K.GetChar ldy #S.PS.hStdIn
* **In:**
* `lda stream`
* `>SYSCALL getc`
* ## RETURN VALUE
* ## RETURN VALUE
* CC = success
* A = char
*\--------------------------------------
K.GetC jsr STDIO.Get1
bcc .8
tay
bne .9 I/O error
@ -322,7 +322,7 @@ STDIO.Get1 >PUSHA
* `>PUSHB c`
* `>PUSHB stream`
* `>SYSCALL ungetc`
* ## RETURN VALUE
* ## RETURN VALUE
* CC = success
* A = char
*\--------------------------------------
@ -354,20 +354,20 @@ K.UngetC clc
* + a+ = O_RDWR | O_CREAT | O_APPEND
* + ,t=123 or t=$ff or t=TXT
* + ,x=12345 or x=$ffff
* ## RETURN VALUE
* ## RETURN VALUE
* CC : A = hFILE
* CS : A = EC
*\--------------------------------------
K.FOpen jsr PFT.CheckPath4
bcs .9
>PULLW IO.Open.AUXTYPE
>PULLB IO.Open.TYPE
>PULLB IO.Open.FLAGS
inc pStack discard filename
inc pStack
jmp UNISTD.Open
.9 >POP 6
@ -407,7 +407,7 @@ K.FRead jsr PFT.CheckNode4
jsr UNISTD.Read
bcs K.FWrite.9
K.FRead.RTS rts
K.FRead.RTS rts
*/--------------------------------------
* # FWrite (BLOCKING)
* Write bytes to file
@ -424,7 +424,7 @@ K.FRead.RTS rts
*\--------------------------------------
K.FWrite jsr PFT.CheckNode4
bcs K.FWrite.RET5
jsr UNISTD.Write
bcc K.FRead.RTS
@ -482,10 +482,10 @@ K.FSeek ldy #5
.11 lda (pFD)
bne STDIO.IOERR
>PULLA whence
tax
>PULLL ACC32
cpx #SEEK.END
beq .30
@ -522,7 +522,7 @@ K.FSeek ldy #5
eor #3
bne .81
bcs .99 Offset out of range!
bcs .99 Offset out of range!
.82 >MLICALL MLISETMARK
bcc .9
@ -547,7 +547,7 @@ K.FSeek.RTS rts
* `lda stream`
* `>SYSCALL feof`
* ## RETURN VALUE
* CC :
* CC :
* A = $ff EOF
* A = 0 NOT EOF
* CS :
@ -627,11 +627,11 @@ K.Rename jsr PFT.CheckPath2
lda (pStack)
sta ZPPtr1
ldy #1
lda (pStack),y
sta ZPPtr1+1
dey ldy #0
.1 lda (ZPPtr1),y
@ -659,20 +659,20 @@ K.Rename jsr PFT.CheckPath2
* `int sprintf ( char *str, const char *format, ... );`
* ## ASM
* **In:**
* PrintF : (example is for printing Y,A as integer : format="%I", 2 bytes)
* PrintF : (example is for printing Y,A as integer : format="%I", 2 bytes)
* `>PUSHW format`
* `>PUSHW i`
* `...`
* `>PUSHBI 2` #bytecount
* `>SYSCALL PrintF`
* FPrintF :
* FPrintF :
* `>PUSHB hFILE`
* `>PUSHW format`
* `>PUSHW i`
* `...`
* `>PUSHBI 2` #bytecount
* `>SYSCALL fprintf`
* SPrintF :
* SPrintF :
* `>PUSHW str`
* `>PUSHW format`
* `>PUSHW i`
@ -683,7 +683,7 @@ K.Rename jsr PFT.CheckPath2
* CC : success, Y,A = bytes sent
* CS : error, A = code from Output
* Specifiers :
* + %b : pull 1 byte to Print BIN
* + %b : pull 1 byte to Print BIN
* + %d : pull 1 byte unsigned DEC 0..255
* + %D : pull 2 bytes unsigned DEC 0..65535
* + %u : pull 4 bytes long unsigned DEC 0..4294967295
@ -706,11 +706,11 @@ K.Rename jsr PFT.CheckPath2
* + \xHH : Print byte with hexadecimal value HH (1 to 2 digits)
* + \\\\ : Print \
* + \\% : Print %
* Modifiers for len and padding :
* Modifiers for len and padding :
* + %d : '9' '12'
* + %2d : ' 9' '12'
* + %02d : '09' '12'
* + %11s : 'ABCDEFGH '
* + %11s : 'ABCDEFGH '
* + %011s : 'ABCDEFGH000'
* + %2f : '3.14'
*\--------------------------------------
@ -799,7 +799,7 @@ K.PrintF.1 sec format string->ptr2
bra .99
.7 lda #'%'
bra .20
*--------------------------------------
*--------------------------------------
.10 cmp #'\'
bne .20
@ -841,7 +841,7 @@ K.PrintF.1 sec format string->ptr2
tay
bne .9
>RET 5 0=BLOCKING
.80 ldy PrintF.Cnt A=0, Writing to buffer, append \0
@ -918,10 +918,10 @@ PrintF.NUM sty .2+1
sta ACC32-1,y PULL 4,2 or 1
dey
bne .1
bit ACC32.Sign
bpl .4
.2 ldy #$ff SELF MODIFIED
lda ACC32-1,y Get highest Byte
@ -935,17 +935,17 @@ PrintF.NUM sty .2+1
iny
sta ACC32-1,y
bra .3
.4 ldx K.PrintF.PadL
ldy K.PrintF.PadC
rol ACC32.Sign get back signed/unsigned flag
jsr MATH.ACC322STR10
bra PrintF.StrNum
*--------------------------------------
*--------------------------------------
* EXP(8) 1(s) 1significants(31)
* http://apple2.org.za/gswv/a2zine/GS.WorldView/Resources/GS.TECH.INFO/AppleSoft/
*--------------------------------------
*--------------------------------------
PrintF.E sec Force "E+12"
.HS 90 BCC
PrintF.F clc
@ -965,7 +965,7 @@ PrintF.F clc
ldy #FOUTBuf+1 FOUT.1 will do a DEY
ldx #FPU.FOUT
jsr GP.ROMCALL
PrintF.StrNum ldy #0
.2 lda FOUTBuf,y
beq .8
@ -987,7 +987,7 @@ PrintF.S ldy #$ff CSTR
PrintF.SS ldy #$00 PSTR
sty .1+1
jsr STDIO.GetStkB
bcs .9
@ -996,24 +996,24 @@ PrintF.SS ldy #$00 PSTR
bcs .9
sta ZPPtr1
lda (ZPPtr1) if CSTR:last char=0, if PSTR:len=0
beq .8
ldy .1+1
.1 lda #$ff Self Modified
bne .11 CSTR
tya PSTR
cmp (ZPPtr1) len check
beq .2
.11 iny
lda (ZPPtr1),y
beq .2
jsr PrintF.PutC
bcs .9
@ -1023,17 +1023,17 @@ PrintF.SS ldy #$00 PSTR
bne .1
.8 clc
rts
.2 lda K.PrintF.PadL
beq .8
.3 cpy K.PrintF.PadL
beq .8
lda K.PrintF.PadC
jsr PrintF.PutC
bcs .9
iny
bne .3
@ -1079,7 +1079,7 @@ PrintF.PutC phy
.9 lda #E.BUF
sec
STDIO.RTS rts
STDIO.RTS rts
*/--------------------------------------
* # ScanF (BLOCKING)
* # FScanF (BLOCKING)
@ -1128,7 +1128,7 @@ STDIO.RTS rts
K.ScanF ldy #S.PS.hStdIn
lda (pPS),y
sta PrintF.hFILE
ldx #1
.HS 2C BIT ABS
*--------------------------------------
@ -1144,21 +1144,21 @@ K.SScanF.1 clc format string->ptr1
sta ZPPtr2+1 Output buffer->ZPPtr2
sty STDIO.PopCnt Total bytes to POP
ldx PrintF.hFILE
beq .1
txa
>PUSHA
>PUSHW pIOBuf
>PUSHWI 256
>PUSHWI 256
jsr K.FGetS
bcc .1
tax
bne STDIO.RTS
>RET 4
.1 jsr SHARED.GetCP1 End Of format?
beq .8
@ -1167,26 +1167,26 @@ K.SScanF.1 clc format string->ptr1
cmp #C.SPACE Space ?
beq .12
sta .11+1
jsr SHARED.GetCP2
beq .9
.11 cmp #$ff Same char in string?
beq .1
bra .9
.12 jsr SHARED.GetCP2
beq .9
cmp #C.SPACE
bne .9
.13 jsr SHARED.GetCP2
cmp #C.SPACE another space ?
beq .13
bra .1
.2 jsr SHARED.GetCP1 Get specifier after %
@ -1210,7 +1210,7 @@ K.SScanF.1 clc format string->ptr1
jsr STDIO.GetStkB
bcs .9
sta ZPPtr3
jsr .5
bcs .9 out of Ptr on stack
@ -1234,8 +1234,8 @@ K.SScanFJMP .DA K.SScanF.I
.DA K.SScanF.HH
.DA K.SScanF.S
*--------------------------------------
K.SScanF.I
K.SScanF.D
K.SScanF.I
K.SScanF.D
K.SScanF.II
K.SScanF.DD
K.SScanF.L
@ -1253,7 +1253,7 @@ K.SScanF.H lda K.SScanFTBL+1,x Get VAR size
K.SScanF.GetVAL jsr SHARED.AddY2P2 Y=char count parsed
.1 ply get back VAL size
.1 ply get back VAL size
.2 lda ACC32-1,y
dey
@ -1268,13 +1268,13 @@ K.SScanF.S ldy #$ff
lda (ZPPtr2),y Get char in string to scan
sta (ZPPtr3),y store in param ptr
beq K.SScanF.Fwd end of string to scan ?
cmp (ZPPtr1) match format next char ?
cmp (ZPPtr1) match format next char ?
beq .2
cmp #C.SPACE is it a space ?
bne .1
.2 lda #0 add \0 to param ptr
sta (ZPPtr3),y
@ -1296,7 +1296,7 @@ STDIO.GetParams stz PrintF.Cnt
stz PrintF.Cnt+1
lda (pStack) Bytecount
tay
sty STDIO.iStkB
@ -1307,7 +1307,7 @@ STDIO.GetParams stz PrintF.Cnt
iny
lda (pStack),y format HI
bcs .10
sta ZPPtr1+1
pla
sta ZPPtr1
@ -1316,22 +1316,22 @@ STDIO.GetParams stz PrintF.Cnt
.10 sta ZPPtr2+1
pla
sta ZPPtr2
.11 dex
beq .1
dex
beq .2
.3 stz PrintF.hFILE
iny
lda (pStack),y str LO
tax
iny
lda (pStack),y str HI
rts
.2 iny
@ -1340,7 +1340,7 @@ STDIO.GetParams stz PrintF.Cnt
.1 ldx #K.IOBuf
lda /K.IOBuf
rts
*--------------------------------------
STDIO.GetStkB phy
@ -1363,12 +1363,12 @@ STDIO.GetStkB phy
*--------------------------------------
STDIO.Exit php
pha
lda pStack
sec
adc STDIO.PopCnt
sta pStack
pla
plp
rts