Kernel 0.93++

This commit is contained in:
Rémy GIBERT 2020-01-30 15:59:40 +01:00
parent eb00cdcee7
commit cf738c73a7
9 changed files with 230 additions and 88 deletions

Binary file not shown.

View File

@ -243,7 +243,7 @@ CS.RUN.LL >LDA.G DIB+S.DIB.T
*--------------------------------------
CS.RUN.LL.DISKII
>LDYAI 4096
>SYSCALL getmem0
>SYSCALL getmem
bcs .9
>STYA ZPPtr1
stx hMem
@ -296,7 +296,7 @@ CS.RUN.BuildCat jsr .7
stx CatBlkCnt
>SYSCALL GetMem0 BufferSize
>SYSCALL GetMem BufferSize
bcs .9
>STYA.G IOCTL+S.IOCTL.BUFPTR
stx hBuf

View File

@ -299,7 +299,7 @@ SYS.FlushEtcPasswd .EQ $D6
SYS.OSD .EQ $DE
*--------------------------------------
SYS.GetMem .EQ $E0
SYS.GetMem0 .EQ $E2
*SYS.GetMem0 .EQ $E2
SYS.GetMemPtr .EQ $E4
SYS.FreeMem .EQ $E6

View File

@ -165,8 +165,10 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf
bne .2
* Blk 1 : (SOS boot code)
inc ZPPtr1+1
inc ZPPtr1+1
jsr BuildProDOSCat.Nextpage
jsr BuildProDOSCat.Nextpage
BuildProDOSCat.DirBlocks
* Blk 2 : First Directory Block
* ldy #0
@ -223,6 +225,7 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf
* and #$0f make sure 15 bytes max
ora #$F0 Volume Directory Header
sta VolDirHdr.Name
ldy #VolDirHdr.size-1
.4 lda VolDirHdr,y
sta (ZPPtr1),y
@ -231,8 +234,14 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf
* Blk 3...n : additional Directory Blocks
lda #3 Actual Block ID
ldy #2 next blk ptr
.41 inc ZPPtr1+1
inc ZPPtr1+1 Next Block
.41 pha
phy
jsr BuildProDOSCat.NextPage
jsr BuildProDOSCat.NextPage
ply
pla
dex
bmi .40
@ -274,6 +283,7 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf
bne .5
iny
bne .50
.7 lda #%10000000
.8 inc Count
@ -295,8 +305,20 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf
iny
bne .7
inc ZPPtr1+1
jsr BuildProDOSCat.Nextpage
bra .7
BuildProDOSCat.Nextpage
inc ZPPtr1+1
ldy #0
.2 tya
sta (ZPPtr1),y
iny
bne .2
rts
*/--------------------------------------
*\--------------------------------------
D2TrkRNIB

View File

@ -9,7 +9,7 @@ NEW
*\--------------------------------------
ARP.Clear jsr ARP.GetCache
lda #0
ARP.Clear.I lda #0
tay
.2 sta (ZPCachePtr),y

View File

@ -32,20 +32,30 @@ SKT.Socket.DSOCK
stx FD.DSOCK+S.SOCKET.T save type
sta FD.DSOCK+S.SOCKET.PROTO ICMP,UDP,TCP
sty TmpDWord
lda #0 Y = socket.size
>SYSCALL2 GetMem0
>SYSCALL2 GetMem
bcs .9
>STYA ZPTmpPtr1
jsr SKT.Socket.FindFree
bcs .9
ldy #FD.DSOCK.SIZE-1
ldy #0
.1 lda FD.DSOCK,y
sta (ZPTmpPtr1),y
dey
bpl .1
iny
cpy #FD.DSOCK.SIZE
bne .1
lda #0
.2 sta (ZPTmpPtr1),y
iny
cpy TmpDWord
bne .2
txa
clc
@ -56,20 +66,31 @@ SKT.Socket.STREAM
stx FD.SSOCK+S.SOCKET.T save type
sta FD.SSOCK+S.SOCKET.PROTO
sty TmpDWord
lda #0 Y = socket.size
>SYSCALL2 GetMem0
>SYSCALL2 GetMem
bcs .9
>STYA ZPTmpPtr1
jsr SKT.Socket.FindFree
bcs .9
ldy #FD.SSOCK.SIZE-1
ldy #0
.1 lda FD.SSOCK,y
sta (ZPTmpPtr1),y
dey
bpl .1
iny
cpy #FD.SSOCK.SIZE
bne .1
lda #0
.2 sta (ZPTmpPtr1),y
iny
cpy TmpDWord
bne .2
txa
clc

View File

@ -170,11 +170,15 @@ LIB.LOAD ldx RefCount
sta FD.SSOCK+S.FD.SSOCK.IOHANDLER
>LDYAI K.ARPCACHE.SIZE*S.ARPCACHE
>SYSCALL2 GetMem0
>SYSCALL2 GetMem
bcs .9
>STYA ZPCachePtr
stx hARPCache
jsr ARP.Clear.I
jsr DNS.CLEAR
.8 inc RefCount

View File

@ -81,17 +81,26 @@ ZS.END .ED
.EM
*--------------------------------------
MD5X.Init >LDYAI S.MD5
>SYSCALL2 getmem0
>SYSCALL2 getmem
bcs .9
>STYA ZPCtxPtr
ldy #15
ldy #0
.1 lda MD5.ABCDINIT,y
sta (ZPCtxPtr),y
dey
bpl .1
iny
cpy #16
bne .1
lda #0
.2 sta (ZPCtxPtr),y
iny
cpy #S.MD5
bne .2
txa

View File

@ -1,71 +1,154 @@
NEW
AUTO 3,1
*/--------------------------------------
* # NewStrV
* **In:**
* A = Initial Size (Page)
* ## RETURN VALUE
* X = hStrV
* Y,A = Ptr
*\--------------------------------------
*K.NewStrV
*/--------------------------------------
* # StrVGet
* # StrVShift
* ## ASM
* `>PUSHB hSTRV`
* `>PUSHW index`
* `>SYSCALL StrVGet`
* `>PUSHB index`
* `>SYSCALL StrVShift`
* ## RETURN VALUE
* CC: Y,A = Ptr
* CS: Y,A = NULL
*\--------------------------------------
K.StrVGet >PULLA index
K.StrVShift >PULLA index
eor #$ff
sta ZPPtr2
>PULLA
eor #$ff
sta ZPPtr2+1
tax
>PULLA
>SYSCALL GetMemPtr
>STYA ZPPtr1 strV
.1 inc ZPPtr2
bne .2
.1 inx
beq .2
inc ZPPtr2
beq .8
.2 jsr STRV.NStrPtr1
jsr STRV.NStrPtr1
bcc .1
.9 rts
rts
.8 lda (ZPPtr1)
tay
dec
beq .9
.2 >LDYA ZPPtr1
>STYA ZPPtr2
>LDYA ZPPtr1
jsr STRV.NStrPtr1
jsr STRV.Ptr1Ptr2cpy
clc
rts
*/--------------------------------------
* # StrVGet
* ## ASM
* `>PUSHB hSTRV`
* `>PUSHB index`
* `>PUSHW ptr`
* `>SYSCALL StrVGet`
* ## RETURN VALUE
* CC: Y,A = Ptr
* CS: Y,A = NULL
*\--------------------------------------
K.StrVGet >PULLW ZPPtr2 ptr
>PULLA index
eor #$ff
tax
>PULLA
>SYSCALL GetMemPtr
>STYA ZPPtr1 strV
.1 inx
beq .2
jsr STRV.NStrPtr1
bcc .1
rts
.2 lda (ZPPtr1)
tay
sec
beq .9 Y,A = 0
lda ZPPtr2+1
beq .8
.4 ldy #$ff
.5 iny
lda (ZPPtr1),y
sta (ZPPtr2),y
bne .5
>LDYA ZPPtr2
clc
rts
.8 >LDYA ZPPtr1
clc
.9 rts
*/--------------------------------------
* # StrVAdd
* ## ASM
* `>PUSHB hSTRV`
* `>PUSHW str`
* `>SYSCALL StrVAdd`
* ## RETURN VALUE
*
* CC : str added to hSTRV
* CS : hSTRV full
*\--------------------------------------
*K.StrVAdd >PULLW ZPPtr2 str
* >PULLA
* >SYSCALL GetMemPtr
* >STYA ZPPtr1
K.StrVAdd >PULLW ZPPtr2 str
>PULLA
>SYSCALL GetMemPtr
>STYA ZPPtr1
lda #1 for \0
sta ZPPtr2
stz ZPPtr2+1
.1 jsr STRV.NStrPtr1
bcs .2
jsr SHARED.AddYp1ToPtr1
bra .1
.2 ldy #$ff
.3 iny
lda (ZPPtr1),y
bne .3
tya
sec
adc ZPPtr2
bcc .4
inc ZPPtr2+1
ldy #S.MEM.LEN
lda (ZPMemMgrSPtr),y
cmp ZPPtr2
iny
lda (ZPMemMgrSPtr),y
sbc ZPPtr2+1
bcs .4
lda #E.OOM
sec
rts
.4 ldy #$ff
.5 iny
lda (ZPPtr2),y
sta (ZPPtr1),y
bne .5
iny
sta (ZPPtr1),y
clc
rts
*/--------------------------------------
* # StrVDup
* **In:**
* ## ASM
* Y,A = Src StrV
* ## RETURN VALUE
* X = hMem of new StrV
@ -103,34 +186,9 @@ K.StrVDup >STYA ZPPtr1
>STYA ZPPtr2
phx
ldx #0
jsr STRV.Ptr1Ptr2cpy
ldy #0
.4 lda (ZPPtr1),y
.5 sta (ZPPtr2),y
beq .6
iny
bne .4
inc ZPPtr1+1
inc ZPPtr2+1
bra .4
.6 inx
iny
bne .7
inc ZPPtr1+1
inc ZPPtr2+1
.7 lda (ZPPtr1),y
bne .5
sta (ZPPtr2),y Ending \0
txa
txa Count
plx hMem
clc
@ -223,7 +281,35 @@ STRV.NStrPtr1 ldy #$ff
.8 clc
rts
.9 sec
.9 sec Y,A = 0
rts
*--------------------------------------
STRV.Ptr1Ptr2cpy
ldx #0
ldy #0
.4 lda (ZPPtr1),y
sta (ZPPtr2),y
beq .6
.5 iny
bne .4
inc ZPPtr1+1
inc ZPPtr2+1
bra .4
.6 inx
iny
bne .7
inc ZPPtr1+1
inc ZPPtr2+1
.7 lda (ZPPtr1),y
sta (ZPPtr2),y Ending \0 ?
bne .5
rts
*--------------------------------------
MAN