mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-03 05:55:42 +00:00
Kernel 0.93++
This commit is contained in:
parent
eb00cdcee7
commit
cf738c73a7
Binary file not shown.
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -9,7 +9,7 @@ NEW
|
||||
*\--------------------------------------
|
||||
ARP.Clear jsr ARP.GetCache
|
||||
|
||||
lda #0
|
||||
ARP.Clear.I lda #0
|
||||
tay
|
||||
|
||||
.2 sta (ZPCachePtr),y
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user