mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94
This commit is contained in:
parent
c341281864
commit
fada39d2c5
Binary file not shown.
|
@ -2,7 +2,7 @@ NEW
|
|||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
CFG.EtcFiles >LDYAI 256
|
||||
ETC.ReadFiles >LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
bcc .1
|
||||
rts
|
||||
|
@ -27,8 +27,11 @@ CFG.EtcFiles >LDYAI 256
|
|||
|
||||
lda IPCFG+S.IPCFG.IP
|
||||
beq .5
|
||||
|
||||
lda #S.IPCFG.STATUS.OK
|
||||
sta IPCFG+S.NETCFG.STATUS
|
||||
stz bDHCP
|
||||
|
||||
.5 >LDYA L.HOSTS
|
||||
jsr CFG.Read.PrintF
|
||||
jsr CFG.Read.HOSTS
|
||||
|
|
|
@ -189,7 +189,7 @@ CS.RUN.SETUP
|
|||
|
||||
lda bETC
|
||||
bpl .6
|
||||
jsr CFG.EtcFiles
|
||||
jsr ETC.ReadFiles
|
||||
|
||||
.6 lda bDHCP
|
||||
bpl .8
|
||||
|
|
|
@ -49,6 +49,7 @@ S.CB.CMD.GETRECTBUFSIZE .EQ 14
|
|||
S.CB.CMD.DRAWTEXT .EQ 16
|
||||
S.CB.CMD.GETTEXTSIZE .EQ 18
|
||||
S.CB.CMD.DRAWLINE .EQ 20
|
||||
S.CB.CMD.DRAWTEXT2 .EQ 22
|
||||
S.CB.CMD.OSD .EQ 128
|
||||
S.CB.OP .EQ 1
|
||||
S.CB.OP.XOR .EQ 0 screen EOR bitmap -> Screen
|
||||
|
|
|
@ -8,6 +8,7 @@ LIBGUI.HideCursor .EQ 10
|
|||
LIBGUI.ShowCursor .EQ 12
|
||||
LIBGUI.UpdateCursor .EQ 14
|
||||
LIBGUI.ReadMouse .EQ 16
|
||||
LIBGUI.GetScreenGC .EQ 18
|
||||
*--------------------------------------
|
||||
CUR.T.ARROW .EQ 0
|
||||
CUR.T.RESIZEX .EQ 2
|
||||
|
@ -69,13 +70,14 @@ S.OBJ.X2 .EQ 12
|
|||
S.OBJ.Y2 .EQ 14
|
||||
S.OBJ.W .EQ 16
|
||||
S.OBJ.H .EQ 18
|
||||
S.OBJ.Childs .EQ 20
|
||||
S.OBJ.Parent .EQ 20
|
||||
S.OBJ.Childs .EQ 22
|
||||
*
|
||||
S.OBJ .EQ 22
|
||||
S.OBJ .EQ 24
|
||||
*--------------------------------------
|
||||
S.SCREEN.hDEV .EQ S.OBJ
|
||||
S.SCREEN.hDEV .EQ S.OBJ.Parent
|
||||
*
|
||||
S.SCREEN .EQ S.OBJ+1
|
||||
S.SCREEN .EQ S.OBJ
|
||||
*--------------------------------------
|
||||
S.WND.F.RESIZE .EQ %00000001
|
||||
S.WND.F.MOVE .EQ %00000010
|
||||
|
@ -153,6 +155,4 @@ S.TEXT.TEXT .EQ S.OBJ+8
|
|||
* ...
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE inc/libgui.i
|
||||
LOAD usr/src/lib/libgui.s
|
||||
ASM
|
||||
SAVE inc/libgui.i
|
|
@ -10,19 +10,27 @@ NEW
|
|||
* CS : CB.Cache invisible
|
||||
*--------------------------------------
|
||||
CLIP.YA jsr CB.Get
|
||||
ldx CB.Cache+S.CB.CMD
|
||||
|
||||
CLIP.CB.Cache ldx CB.Cache+S.CB.CMD
|
||||
bpl CLIP.X
|
||||
|
||||
txa
|
||||
and #$7F
|
||||
tax
|
||||
|
||||
CLIP.X jmp (J.CLIP-2,x)
|
||||
*--------------------------------------
|
||||
CLIP.Point
|
||||
CLIP.HLine
|
||||
CLIP.VLine
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CLIP.Rect
|
||||
CLIP.Text
|
||||
|
||||
* >DEBUG
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -48,6 +56,7 @@ CLIP.BitBlt lda CB.Cache+S.CB.DstX
|
|||
lda OBJ.Cache+S.OBJ.X1+1
|
||||
sbc CB.Cache+S.CB.DstX+1
|
||||
sta D+1 ....always positive
|
||||
|
||||
lda CB.Cache+S.CB.SrcW S.CB.SrcW-=D
|
||||
sec
|
||||
sbc D
|
||||
|
@ -56,6 +65,7 @@ CLIP.BitBlt lda CB.Cache+S.CB.DstX
|
|||
sbc D+1
|
||||
sta CB.Cache+S.CB.SrcW+1
|
||||
bcc CLIP.BitBlt.99 Negative!!!! nothing to do,exit...
|
||||
|
||||
lda CB.Cache+S.CB.DstX S.CB.DstX+=D
|
||||
clc
|
||||
adc D
|
||||
|
@ -81,7 +91,9 @@ CLIP.BitBlt lda CB.Cache+S.CB.DstX
|
|||
sbc CB.Cache+S.CB.DstX+1
|
||||
inx
|
||||
bne .2
|
||||
|
||||
inc
|
||||
|
||||
.2 tay
|
||||
cpx CB.Cache+S.CB.SrcW
|
||||
sbc CB.Cache+S.CB.SrcW+1
|
||||
|
@ -89,17 +101,21 @@ CLIP.BitBlt lda CB.Cache+S.CB.DstX
|
|||
|
||||
stx CB.Cache+S.CB.SrcW SrcW < D, make SrcW=D
|
||||
sty CB.Cache+S.CB.SrcW+1
|
||||
|
||||
CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY
|
||||
ldx CB.Cache+S.CB.DstY+1
|
||||
pha
|
||||
>SCMPAX OBJ.Cache+S.OBJ.Y2 DestY after Y2....exit
|
||||
bmi .10
|
||||
|
||||
pla
|
||||
sec
|
||||
rts
|
||||
|
||||
.10 pla
|
||||
>SCMPAX OBJ.Cache+S.OBJ.Y1
|
||||
bpl .1 DestY Inside Y1-Y2, go check if Y1+H fit in
|
||||
|
||||
* S.CB.DstY above S.OBJ.Y1: D=S.OBJ.Y1-S.CB.DstY, S.CB.SrcH-=D, S.CB.DstY=0, S.CB.Y1+=D
|
||||
lda OBJ.Cache+S.OBJ.Y1 Compute D....
|
||||
sec
|
||||
|
@ -108,6 +124,7 @@ CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY
|
|||
lda OBJ.Cache+S.OBJ.Y1+1
|
||||
sbc CB.Cache+S.CB.DstY+1
|
||||
sta D+1 ....always positive
|
||||
|
||||
lda CB.Cache+S.CB.SrcH S.CB.SrcH-=D
|
||||
sec
|
||||
sbc D
|
||||
|
@ -116,6 +133,7 @@ CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY
|
|||
sbc D+1
|
||||
sta CB.Cache+S.CB.SrcH+1
|
||||
bcc .99 Negative!!!! nothing to do,exit...
|
||||
|
||||
lda CB.Cache+S.CB.DstY Dst.Y+=D
|
||||
clc
|
||||
adc D
|
||||
|
@ -142,6 +160,7 @@ CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY
|
|||
|
||||
inx
|
||||
bne .2
|
||||
|
||||
inc
|
||||
|
||||
.2 tay
|
||||
|
@ -151,8 +170,10 @@ CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY
|
|||
|
||||
stx CB.Cache+S.CB.SrcH SrcH < D, make SrcH=D
|
||||
sty CB.Cache+S.CB.SrcH+1
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 pla
|
||||
.99 sec
|
||||
rts
|
||||
|
|
|
@ -5,14 +5,15 @@ Draw >PULLW ZPCBPtr Get CB
|
|||
>PULLYA Get GC
|
||||
jsr OBJ.Get
|
||||
|
||||
.1 >LDYA ZPCBPtr
|
||||
jsr CB.Get
|
||||
|
||||
ldx CB.Cache+S.CB.CMD Get Cmd
|
||||
.1 lda (ZPCBPtr)
|
||||
beq .8
|
||||
|
||||
jsr CLIP.X
|
||||
>LDYA ZPCBPtr
|
||||
jsr CB.Get
|
||||
|
||||
jsr CLIP.CB.Cache
|
||||
bcs .7
|
||||
|
||||
ldx CB.Cache+S.CB.CMD
|
||||
cpx #S.CB.CMD.DRAWLINE
|
||||
bcc .2 Native DRV Cmd
|
||||
|
@ -23,9 +24,10 @@ Draw >PULLW ZPCBPtr Get CB
|
|||
.2 jsr GFXWrite.CB
|
||||
|
||||
.7 lda (ZPCBPtr) Get Cmd
|
||||
lsr
|
||||
tax
|
||||
lda CB.CmdLen-1,x
|
||||
sec
|
||||
sec +1
|
||||
adc ZPCBPtr
|
||||
sta ZPCBPtr
|
||||
bcc .1
|
||||
|
@ -36,7 +38,7 @@ Draw >PULLW ZPCBPtr Get CB
|
|||
.8 clc
|
||||
.9 rts
|
||||
|
||||
Draw.Jmp jmp (J.Cmds-S.CB.CMD.DRAWLINE,x)
|
||||
Draw.Jmp jmp (J.Cmds-S.CB.CMD.DRAWLINE-2,x)
|
||||
*--------------------------------------
|
||||
* In: Control Block in CB.Cache
|
||||
* CMD
|
||||
|
@ -268,7 +270,7 @@ DrawLine.IncX lda DX
|
|||
bra .1
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
DrawText jsr GFXWrite.CB
|
||||
DrawText2 jsr GFXWrite.CB
|
||||
bcs .9
|
||||
jsr GFXWrite.CB
|
||||
lda CB.Cache+S.CB.SrcPtr
|
||||
|
|
|
@ -42,11 +42,7 @@ MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1
|
|||
>LDYA L.CUR.SaveBuf
|
||||
>STYA CUR.CB+S.CB.DstPtr
|
||||
|
||||
lda #CUR.T.ARROW
|
||||
jsr SetCursor
|
||||
jsr ShowCursor
|
||||
|
||||
clc
|
||||
* clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
MOU.Quit lda hDevMouse
|
||||
|
|
|
@ -72,9 +72,10 @@ CS.START cld
|
|||
.DA ShowCursor
|
||||
.DA UpdateCursor
|
||||
.DA MOU.ReadMouse
|
||||
.DA GetScreenGC
|
||||
*--------------------------------------
|
||||
J.Cmds .DA DrawLine
|
||||
.DA DrawText
|
||||
.DA DrawText2
|
||||
*--------------------------------------
|
||||
L.DEVNAME.GFX .DA DEVNAME.GFX
|
||||
L.DEVNAME.MOUSE .DA DEVNAME.MOUSE
|
||||
|
@ -135,6 +136,10 @@ LIB.LOAD lda LibCount
|
|||
|
||||
.1 jsr WND.Setup
|
||||
|
||||
lda #CUR.T.ARROW
|
||||
jsr SetCursor
|
||||
jsr ShowCursor
|
||||
|
||||
inc LibCount
|
||||
|
||||
.8 clc
|
||||
|
@ -211,10 +216,12 @@ OBJ.SetX2Y2 >STYA ZPObjPtr
|
|||
CB.Get >STYA .1+1
|
||||
|
||||
ldx #S.CB-1
|
||||
|
||||
.1 lda $ffff,x SELF MODIFIED
|
||||
sta CB.Cache,x
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
GFXWrite.CB >LDYA L.CB.Cache
|
||||
|
@ -226,6 +233,9 @@ GFXWrite.YA pha
|
|||
>PUSHYA
|
||||
>SYSCALL2 IOCTL
|
||||
rts
|
||||
*--------------------------------------
|
||||
GetScreenGC >LDYA L.SCR
|
||||
rts
|
||||
*--------------------------------------
|
||||
.INB usr/src/lib/libgui.s.bm
|
||||
.INB usr/src/lib/libgui.s.but
|
||||
|
@ -264,15 +274,17 @@ Counter .BS 2
|
|||
CLIP.Line.P1 .BS 1
|
||||
CLIP.Line.P2 .BS 1
|
||||
*--------------------------------------
|
||||
CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
||||
.DA S.CB.Y1+1 GETPIXEL
|
||||
.DA S.CB.X2+1 HLINE
|
||||
.DA S.CB.Y2+1 VLINE
|
||||
.DA S.CB.Y2+1 FILLRECT
|
||||
.DA S.CB.DstPtr+1 BITBLT
|
||||
.DA S.CB.DstPtr+1 GETRECTBUFSIZE
|
||||
.DA S.CB.Y2+1 DRAWLINE
|
||||
.DA S.CB.TxtPtr+1 DRAWTEXT
|
||||
CB.CmdLen .DA #S.CB.Y1+1 SETPIXEL
|
||||
.DA #S.CB.Y1+1 GETPIXEL
|
||||
.DA #S.CB.X2+1 HLINE
|
||||
.DA #S.CB.Y2+1 VLINE
|
||||
.DA #S.CB.Y2+1 FILLRECT
|
||||
.DA #S.CB.DstPtr+1 BITBLT
|
||||
.DA #S.CB.DstPtr+1 GETRECTBUFSIZE
|
||||
.DA #S.CB.TxtPtr+1 DRAWTEXT
|
||||
.DA #S.CB.TxtPtr+1 GETTEXTSIZE
|
||||
.DA #S.CB.Y2+1 DRAWLINE
|
||||
.DA #S.CB.TxtPtr+1 DRAWTEXT2
|
||||
*--------------------------------------
|
||||
PAT.Buf .BS 1 S.BM.F
|
||||
.DA #1 S.BM.RowBytes
|
||||
|
@ -290,7 +302,9 @@ MouseClamp .BS 8
|
|||
CB.Cache .BS S.CB
|
||||
OBJ.Cache .BS S.OBJ
|
||||
*--------------------------------------
|
||||
SCR .BS S.SCREEN S.OBJ.T.SCREEN
|
||||
SCR .DA #S.OBJ.T.SCREEN
|
||||
.BS S.SCREEN-1
|
||||
*--------------------------------------
|
||||
SCR.Childs .BS 2 WND.Desktop
|
||||
.BS 2 WND.SysBar
|
||||
.DA 0
|
||||
|
|
|
@ -27,15 +27,8 @@ 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 GetMem
|
||||
bcs .9
|
||||
>STYA ZPTmpPtr1
|
||||
|
||||
jsr SKT.Socket.FindFree
|
||||
bcs .9
|
||||
bcs SKT.Socket.RTS
|
||||
|
||||
ldy #0
|
||||
|
||||
|
@ -44,17 +37,8 @@ SKT.Socket.DSOCK
|
|||
iny
|
||||
cpy #FD.DSOCK.SIZE
|
||||
bne .1
|
||||
|
||||
lda #0
|
||||
|
||||
.2 sta (ZPTmpPtr1),y
|
||||
iny
|
||||
cpy TmpDWord
|
||||
bne .2
|
||||
|
||||
txa
|
||||
clc
|
||||
.9 rts
|
||||
bra SKT.Socket.ZERO
|
||||
|
||||
SKT.Socket.SEQPKT
|
||||
SKT.Socket.STREAM
|
||||
|
@ -63,16 +47,9 @@ 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 GetMem
|
||||
bcs .9
|
||||
>STYA ZPTmpPtr1
|
||||
|
||||
jsr SKT.Socket.FindFree
|
||||
bcs .9
|
||||
bcs SKT.Socket.RTS
|
||||
|
||||
ldy #0
|
||||
|
||||
|
@ -82,32 +59,47 @@ SKT.Socket.STREAM
|
|||
cpy #FD.SSOCK.SIZE
|
||||
bne .1
|
||||
|
||||
lda #0
|
||||
|
||||
.2 sta (ZPTmpPtr1),y
|
||||
SKT.Socket.ZERO lda #0
|
||||
|
||||
.1 sta (ZPTmpPtr1),y
|
||||
iny
|
||||
cpy TmpDWord
|
||||
bne .2
|
||||
bne .1
|
||||
|
||||
txa
|
||||
clc
|
||||
.9 rts
|
||||
SKT.Socket.RTS rts
|
||||
*--------------------------------------
|
||||
SKT.Socket.FindFree
|
||||
ldy #0
|
||||
.1 lda SKT.TABLE,y
|
||||
sty TmpDWord Y = socket.size
|
||||
|
||||
ldx #0
|
||||
|
||||
.1 lda SKT.TABLE,x
|
||||
beq .2
|
||||
iny
|
||||
cpy #K.SKTTABLE.SIZE
|
||||
|
||||
inx
|
||||
cpx #K.SKTTABLE.SIZE
|
||||
bne .1
|
||||
txa
|
||||
>SYSCALL2 freemem
|
||||
|
||||
lda #E.OOH
|
||||
sec
|
||||
* sec
|
||||
rts
|
||||
|
||||
.2 txa
|
||||
.2 stx .8+1
|
||||
|
||||
* lda #0 Y,A = socket.size
|
||||
>SYSCALL2 GetMem
|
||||
bcs SKT.Socket.RTS
|
||||
|
||||
>STYA ZPTmpPtr1
|
||||
|
||||
txa
|
||||
|
||||
.8 ldy #$FF SELF MODIFIED
|
||||
sta SKT.TABLE,y
|
||||
clc
|
||||
|
||||
* clc
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # Bind
|
||||
|
@ -163,6 +155,7 @@ SKT.bind >SYSCALL2 GetMemPtr
|
|||
lda #ERR.SKT.BUSY
|
||||
* sec
|
||||
rts
|
||||
|
||||
.7 inx
|
||||
cpx #K.SKTTABLE.SIZE
|
||||
bne .2
|
||||
|
@ -201,21 +194,21 @@ SKT.connect.SEQPKT
|
|||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPtrSKT),y
|
||||
beq .1
|
||||
|
||||
|
||||
cmp #S.SOCKET.TCP.S.ESTBLSH
|
||||
beq SKT.listen.8
|
||||
bcs .9
|
||||
|
||||
|
||||
cmp #S.SOCKET.TCP.S.OPENED
|
||||
beq .2
|
||||
|
||||
|
||||
cmp #S.SOCKET.TCP.S.SYNSENT
|
||||
beq .99
|
||||
|
||||
.9 lda #ERR.SKT.BAD
|
||||
sec
|
||||
rts
|
||||
|
||||
|
||||
.1 jsr SKT.SetRemAddr
|
||||
jsr SKT.NewTCB
|
||||
bcs SKT.listen.RTS
|
||||
|
@ -226,10 +219,10 @@ SKT.connect.SEQPKT
|
|||
.2 lda #S.TCP.OPTIONS.SYN
|
||||
jsr TCP.OUT.SendOptA Send SYN
|
||||
bcs .99
|
||||
|
||||
|
||||
lda #S.SOCKET.TCP.S.SYNSENT
|
||||
jsr SKT.StoreTCB.S
|
||||
|
||||
|
||||
.99 lda #ERR.SKT.NOCONN
|
||||
sec
|
||||
rts
|
||||
|
@ -276,10 +269,10 @@ SKT.listen.RTS rts
|
|||
* ## C
|
||||
* `hFD Accept(hFD fd);`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* **In:**
|
||||
* `lda fd`
|
||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.accept`
|
||||
* ## RETURN VALUE
|
||||
* ## RETURN VALUE
|
||||
* A = hSocket
|
||||
*\--------------------------------------
|
||||
SKT.Accept >SYSCALL2 GetMemPtr
|
||||
|
@ -288,12 +281,33 @@ SKT.Accept >SYSCALL2 GetMemPtr
|
|||
ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
and #S.SOCKET.O.ACCEPTCONN
|
||||
beq .99
|
||||
beq SKT.listen.9
|
||||
*--------------------------------------
|
||||
SKT.GetFromQueue
|
||||
ldy #S.SOCKET.HQ.TAIL
|
||||
lda (ZPPtrSKT),y
|
||||
iny #S.SOCKET.HQ.HEAD
|
||||
cmp (ZPPtrSKT),y
|
||||
beq .9 CS
|
||||
|
||||
jmp SKT.GetFromQueue
|
||||
pha
|
||||
inc
|
||||
cmp #S.SOCKET.HQ.MAX
|
||||
bne .1
|
||||
|
||||
lda #0
|
||||
|
||||
.1 dey #S.SOCKET.HQ.TAIL
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
pla
|
||||
clc
|
||||
adc #S.SOCKET.HQ
|
||||
tay
|
||||
lda (ZPPtrSKT),y
|
||||
|
||||
* clc
|
||||
|
||||
.99 lda #ERR.SKT.BAD
|
||||
sec
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
* # Shutdown
|
||||
|
@ -325,9 +339,9 @@ SKT.shutdown pha
|
|||
|
||||
pla
|
||||
pha
|
||||
|
||||
|
||||
jsr SKT.shutdown.TCP
|
||||
|
||||
|
||||
* bcs SKT.shutdown.RTS
|
||||
*--------------------------------------
|
||||
SKT.shutdown.LISTEN
|
||||
|
@ -336,7 +350,7 @@ SKT.shutdown.DGRAM
|
|||
SKT.shutdown.SEQPKT
|
||||
.1 jsr SKT.GetFromQueue
|
||||
bcs .3
|
||||
|
||||
|
||||
>SYSCALL2 FreeMem
|
||||
bra .1
|
||||
|
||||
|
@ -359,7 +373,7 @@ SKT.shutdown.RTS
|
|||
*--------------------------------------
|
||||
SKT.shutdown.STREAM
|
||||
pla
|
||||
|
||||
|
||||
SKT.shutdown.TCP
|
||||
jsr SKT.GetTCB
|
||||
ldy #S.SOCKET.TCP.S
|
||||
|
@ -827,13 +841,13 @@ SKT.Recv clc
|
|||
cmp #S.SOCKET.T.SEQPKT
|
||||
bcc .10
|
||||
bne .99 STREAM
|
||||
|
||||
|
||||
jsr SKT.CheckTCP
|
||||
bcs .91
|
||||
|
||||
.10 jsr SKT.GetFromQueue
|
||||
bcs .90
|
||||
|
||||
|
||||
plp if CS, RecvFrom
|
||||
bcc .9 Exit with CC and A=hFrame
|
||||
|
||||
|
@ -951,7 +965,7 @@ SKT.Send.SEQPKT jsr SKT.CheckTCP
|
|||
jsr SKT.GetTCB
|
||||
|
||||
jsr SKT.CopyDataInToOut
|
||||
|
||||
|
||||
jmp TCP.OUT.SEQSEND
|
||||
*--------------------------------------
|
||||
SKT.Send.STREAM lda #ERR.SKT.BAD
|
||||
|
@ -1027,7 +1041,7 @@ SKT.EOF.I ldy #S.SOCKET.TCP.INUSED
|
|||
.9 rts
|
||||
*--------------------------------------
|
||||
SKT.CheckStream lda #S.SOCKET.T.STREAM
|
||||
|
||||
|
||||
ldy #S.SOCKET.T
|
||||
cmp (ZPPtrSKT),y
|
||||
bne SKT.BAD
|
||||
|
@ -1037,13 +1051,13 @@ SKT.CheckTCP ldy #S.SOCKET.O
|
|||
and #S.SOCKET.O.ACCEPTCONN
|
||||
bne .99
|
||||
|
||||
ldy #S.SOCKET.TCP.S
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.TCP.S.ESTBLSH
|
||||
beq .8
|
||||
|
||||
bcc .90
|
||||
|
||||
|
||||
lda #MLI.E.IO
|
||||
* sec
|
||||
rts
|
||||
|
@ -1077,7 +1091,7 @@ SKT.GetTable >LDYA L.SKT.Table
|
|||
SKT.PullhFDDataInPtrLen
|
||||
>SYSCALL2 GetMemPtr
|
||||
>STYA ZPPtrSKT
|
||||
>PULLW ZPDataInPtr !!!DataOut trashed when sending ACK in TCP.OUT
|
||||
>PULLW ZPDataInPtr !!!DataOut trashed when sending ACK in TCP.OUT
|
||||
>PULLW ZPDataInLen !!!use DataInPtr/Len
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -1120,8 +1134,8 @@ SKT.SetRemAddr ldy #S.SOCKET.REM.PORT+1
|
|||
|
||||
rts
|
||||
*--------------------------------------
|
||||
* SKT.REM.ADDR = Incoming Frame SRC
|
||||
* SKT.LOC.ADDR = Incoming Frame DST
|
||||
* SKT.REM.ADDR = Incoming Frame SRC
|
||||
* SKT.LOC.ADDR = Incoming Frame DST
|
||||
*--------------------------------------
|
||||
SKT.FindMatchingLocRem
|
||||
ldx #0
|
||||
|
@ -1191,7 +1205,7 @@ SKT.FindMatchingLocRem
|
|||
bne .44
|
||||
|
||||
.43 ldy #S.SOCKET.REM.PORT Frame is Broadcast, or listening is 0.0.0.0 check port only
|
||||
|
||||
|
||||
.42 lda (ZPPtrSKT),y
|
||||
|
||||
.44 cmp SKT.REM.ADDR+S.SOCKADDR.ADDR-S.SOCKET.REM.ADDR,y
|
||||
|
@ -1212,38 +1226,11 @@ SKT.FindMatchingLocRem
|
|||
* sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
SKT.GetFromQueue
|
||||
ldy #S.SOCKET.HQ.TAIL
|
||||
lda (ZPPtrSKT),y
|
||||
iny #S.SOCKET.HQ.HEAD
|
||||
cmp (ZPPtrSKT),y
|
||||
beq .9 CS
|
||||
|
||||
pha
|
||||
inc
|
||||
cmp #S.SOCKET.HQ.MAX
|
||||
bne .1
|
||||
|
||||
lda #0
|
||||
|
||||
.1 dey #S.SOCKET.HQ.TAIL
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
pla
|
||||
clc
|
||||
adc #S.SOCKET.HQ
|
||||
tay
|
||||
lda (ZPPtrSKT),y
|
||||
|
||||
* clc
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SKT.AddToQueueA pha
|
||||
ldy #S.SOCKET.HQ.HEAD
|
||||
lda (ZPPtrSKT),y
|
||||
tax
|
||||
inc
|
||||
inc
|
||||
cmp #S.SOCKET.HQ.MAX
|
||||
bne .1
|
||||
|
||||
|
@ -1282,20 +1269,20 @@ SKT.NewTCB ldx #S.SOCKET.TCP.INSEQNUM
|
|||
sta SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
|
||||
ldy #S.SOCKET.T
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.T.SEQPKT
|
||||
bcc .8
|
||||
|
||||
|
||||
tax
|
||||
|
||||
|
||||
>LDYAI K.TCP.WSIZE
|
||||
>STYA SKT.Cache+S.SOCKET.TCP.INFREE
|
||||
|
||||
|
||||
cpx #S.SOCKET.T.STREAM
|
||||
bcc .8
|
||||
|
||||
|
||||
.DO AUXPIPE=1
|
||||
>SYSCALL2 NewStkObj
|
||||
.ELSE
|
||||
|
@ -1398,7 +1385,7 @@ SKT.SetFrameOutTCPUDPPorts
|
|||
bra .2
|
||||
.1 lda SKT.REM.ADDR+S.SOCKADDR.PORT+1
|
||||
ldx SKT.REM.ADDR+S.SOCKADDR.PORT
|
||||
|
||||
|
||||
.2 ldy #S.TCPUDP.DSTPORT
|
||||
sta (ZPFrameOutPtr),y
|
||||
iny
|
||||
|
|
|
@ -9,6 +9,7 @@ AUTO 4,1
|
|||
.INB inc/io.i
|
||||
.INB inc/macros.i
|
||||
.INB inc/a2osx.i
|
||||
.INB inc/gfx.i
|
||||
.INB inc/libgui.i
|
||||
*--------------------------------------
|
||||
* Zero Page Segment, up to 32 bytes
|
||||
|
@ -42,6 +43,7 @@ CS.START cld
|
|||
.DA CS.QUIT
|
||||
L.LIBGUI .DA LIBGUI
|
||||
L.MouseData .DA MouseData
|
||||
L.CB.Paint .DA CB.Paint
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT >LDYA L.LIBGUI
|
||||
|
@ -96,10 +98,10 @@ CS.QUIT clc
|
|||
*--------------------------------------
|
||||
Destop.Paint >LIBCALL hLIBGUI,LIBGUI.HideCursor
|
||||
|
||||
* >LIBCALL hLIBGUI,LIBGUI.GetScreenGC
|
||||
* >PUSHYA
|
||||
* >PUSHW L.CB.Paint
|
||||
* >LIBCALL hLIBGUI,LIBGUI.Draw
|
||||
>LIBCALL hLIBGUI,LIBGUI.GetScreenGC
|
||||
>PUSHYA
|
||||
>PUSHW L.CB.Paint
|
||||
>LIBCALL hLIBGUI,LIBGUI.Draw
|
||||
|
||||
* >LIBCALL hLIBGUI,LIBGUI.GetScreenGC
|
||||
* >PUSHYA
|
||||
|
@ -116,6 +118,16 @@ LIBGUI .AZ "libgui"
|
|||
hLIBGUI .BS 1
|
||||
*--------------------------------------
|
||||
MouseData .BS S.MOUSE
|
||||
*--------------------------------------
|
||||
CB.Paint .DA #S.CB.CMD.FILLRECT
|
||||
.DA #S.CB.OP.SET
|
||||
.DA #S.CB.M.C16
|
||||
.DA #11 Color
|
||||
.DA 540
|
||||
.DA 10
|
||||
.DA 550
|
||||
.DA 30
|
||||
.DA #0
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
|
|
Loading…
Reference in New Issue