Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-09-07 22:40:50 +02:00
parent efab21a425
commit 9dc0c1c279
17 changed files with 252 additions and 79 deletions

Binary file not shown.

Binary file not shown.

View File

@ -137,13 +137,13 @@ CS.RUN.LookupName
jsr CS.RUN.GOATLK jsr CS.RUN.GOATLK
.99 bcs .9 .99 bcs .9
>LDA.G P.LookupName+$17
beq .8
>LDYA L.MSG.DUMP0 >LDYA L.MSG.DUMP0
>SYSCALL PutS >SYSCALL PutS
bcs .9 bcs .9
>LDA.G P.LookupName+$17
beq .8
.1 >PUSHW L.MSG.DUMP .1 >PUSHW L.MSG.DUMP
ldy #0 ldy #0

View File

@ -27,7 +27,7 @@ hSocket .BS 1
hReqBuf .BS 1 hReqBuf .BS 1
ZPReqBufPtr .BS 2 ZPReqBufPtr .BS 2
ZPReqBufLen .BS 2 ZPReqBufLen .BS 2
bResponse .BS 1 bHeader .BS 1
TimeOut .BS 1 TimeOut .BS 1
bURI .BS 1 bURI .BS 1
@ -75,6 +75,8 @@ L.MSG.SKTKO .DA MSG.SKTKO
L.MSG.CONNECTED .DA MSG.CONNECTED L.MSG.CONNECTED .DA MSG.CONNECTED
L.MSG.SKTERR .DA MSG.SKTERR L.MSG.SKTERR .DA MSG.SKTERR
L.MSG.IOERR .DA MSG.IOERR L.MSG.IOERR .DA MSG.IOERR
L.MSG.FileLength .DA MSG.FileLength
L.MSG.Progress .DA MSG.Progress
L.HTTP.GET .DA HTTP.GET L.HTTP.GET .DA HTTP.GET
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
@ -470,49 +472,25 @@ CS.RUN.RESPONSE jsr Init.TimeOut
bcc .2 bcc .2
cmp #E.NODATA cmp #E.NODATA
bne .8 bne .80
lda TimeOut lda TimeOut
bne .1 bne .1
bit bResponse bit bHeader
bmi .1 bmi .1
bra .8 .80 jmp .8
.2 jsr CS.RUN.GETRESPONSE .2 jsr CS.RUN.GETRESPONSE
bit bResponse bit bHeader
bmi .6 bmi .6
.3 ldx #0 jsr CS.RUN.GETHEADER
.4 dex
lda (ZPRespBufPtr)
inc ZPRespBufPtr
bne .5
inc ZPRespBufPtr+1
.5 cmp #C.LF
bne .4
txa
* sec
adc ZPRespBufLen
sta ZPRespBufLen
lda ZPRespBufLen+1
adc #$ff
sta ZPRespBufLen+1
inx
inx
bne .3
sec sec
ror bResponse ror bHeader
.6 >PUSHW ZPRespBufLen .6 >PUSHW ZPRespBufLen
>PUSHW ZPRespBufPtr >PUSHW ZPRespBufPtr
@ -530,9 +508,32 @@ CS.RUN.RESPONSE jsr Init.TimeOut
stz hRespBuf stz hRespBuf
>SYSCALL FreeMem >SYSCALL FreeMem
lda ZPRespBufLen
clc
adc Received
sta Received
lda ZPRespBufLen+1
adc Received+1
sta Received+1
bcc .70
inc Received+2
bne .70
inc Received+3
.70 >PUSHW L.MSG.Progress
>PUSHL Received
>PUSHL Length
>PUSHBI 8
>SYSCALL PrintF
jmp CS.RUN.RESPONSE jmp CS.RUN.RESPONSE
.8 bit bResponse .8 bit bHeader
bpl .99 bpl .99
clc clc
@ -569,6 +570,76 @@ CS.RUN.GETRESPONSE
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
CS.RUN.GETHEADER
.1 ldy #$ff
.2 iny
lda (ZPRespBufPtr),y
eor #C.CR
bne .2
sta (ZPRespBufPtr),y
iny skip CR
iny skip LF
sty ArgIndex
>LDYA ZPRespBufPtr
>STYA ZPPtr
lda ZPRespBufLen
sec
sbc ArgIndex
sta ZPRespBufLen
bcs .3
dec ZPRespBufLen+1
.3 lda ArgIndex
tay
clc
adc ZPRespBufPtr
sta ZPRespBufPtr
bcc .4
inc ZPRespBufPtr+1
.4 dey
dey
beq .8
ldy #$ff
.5 iny
lda (ZPPtr),y
cmp HEAD.ContentLength,y
bne .1
cmp #C.SPACE
bne .5
tya
sec skip SPACE
adc ZPPtr
tay
lda ZPPtr+1
adc #0
>SYSCALL AToL
>PULLL Length
>PUSHW L.MSG.FileLength
>PUSHL Length
>PUSHBI 4
>SYSCALL PrintF
jmp .1
.8 clc
.9 rts
*--------------------------------------
CS.DOEVENT lda (pEvent) CS.DOEVENT lda (pEvent)
bpl .9 is it a TIMER event? bpl .9 is it a TIMER event?
@ -630,6 +701,8 @@ MSG.SKTKO .AZ "Failed to Open Socket."
MSG.CONNECTED .AZ "Connected." MSG.CONNECTED .AZ "Connected."
MSG.SKTERR .AZ "Socket Error : $%h\r\n" MSG.SKTERR .AZ "Socket Error : $%h\r\n"
MSG.IOERR .AZ "I/O Error : $%h\r\n" MSG.IOERR .AZ "I/O Error : $%h\r\n"
MSG.FileLength .AZ "File Length : %u Bytes\r\n"
MSG.Progress .AZ "Received %u/%u\r\n"
*-------------------------------------- *--------------------------------------
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
.BS 1 .BS 1
@ -645,6 +718,8 @@ URI.ToEncode .DA #C.LF,#C.CR,#C.SPACE,#'"'
.AS "%-.\^_`{|}~" .AS "%-.\^_`{|}~"
URI.ToEncode.Cnt .EQ *-URI.ToEncode URI.ToEncode.Cnt .EQ *-URI.ToEncode
*-------------------------------------- *--------------------------------------
HEAD.ContentLength .AZ "Content-Length: "
*--------------------------------------
HTTP.GET .AS "GET /%s HTTP/1.1" HTTP.GET .AS "GET /%s HTTP/1.1"
.DA #C.CR,#C.LF .DA #C.CR,#C.LF
.AS "User-Agent: A2osX.HTTPGET" .AS "User-Agent: A2osX.HTTPGET"
@ -655,10 +730,13 @@ HTTP.GET .AS "GET /%s HTTP/1.1"
.DA #C.CR,#C.LF .DA #C.CR,#C.LF
.DA #C.CR,#C.LF .DA #C.CR,#C.LF
.DA #0 .DA #0
*--------------------------------------
Received .BS 4
Length .BS 4
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR 0 .OR 0
DS.START DS.START
DS.END .ED DS.END .ED
*-------------------------------------- *--------------------------------------
MAN MAN

View File

@ -1,7 +1,8 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
IO.D2.SeekTime .EQ 85 IO.D2.SeekTimeF .EQ 90 Track Formatter
IO.D2.SeekTimeB .EQ 60 Boot Block
*-------------------------------------- *--------------------------------------
IO.D2.Ph0Off .EQ $C080 IO.D2.Ph0Off .EQ $C080
IO.D2.Ph0On .EQ $C081 IO.D2.Ph0On .EQ $C081

View File

@ -50,13 +50,12 @@ S.RECT.Y2 .EQ 6
S.RECT .EQ 8 S.RECT .EQ 8
*-------------------------------------- *--------------------------------------
S.OBJ.T .EQ 0 S.OBJ.T .EQ 0
S.OBJ.T.SCREEN .EQ 0 S.OBJ.T.WND .EQ 0
S.OBJ.T.WND .EQ 2 S.OBJ.T.MENUBAR .EQ 2
S.OBJ.T.MENUBAR .EQ 4 S.OBJ.T.MENU .EQ 4
S.OBJ.T.MENU .EQ 6 S.OBJ.T.MITEM .EQ 6
S.OBJ.T.MITEM .EQ 8 S.OBJ.T.BUT .EQ 8
S.OBJ.T.BUT .EQ 10 S.OBJ.T.TEXT .EQ 10
S.OBJ.T.TEXT .EQ 12
S.OBJ.F .EQ 1 S.OBJ.F .EQ 1
S.OBJ.S .EQ 2 S.OBJ.S .EQ 2
@ -150,4 +149,4 @@ S.TEXT.TEXT .EQ S.OBJ+8
* ... * ...
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE inc/libgui.i SAVE inc/libgui.i

View File

@ -349,6 +349,8 @@ BB.Seek lda BB.HdrTrk get track we're on
tax tax
lda IO.D2.Ph0On,y lda IO.D2.Ph0On,y
nop
nop
lda IO.D2.Ph0On,x lda IO.D2.Ph0On,x
jsr BB.WaitSeekTime jsr BB.WaitSeekTime
@ -365,7 +367,7 @@ BB.AllPhasesOff ldx BB.Slotn0
bit IO.D2.Ph3Off,x bit IO.D2.Ph3Off,x
rts rts
*-------------------------------------- *--------------------------------------
BB.WaitSeekTime lda #IO.D2.SeekTime BB.WaitSeekTime lda #IO.D2.SeekTimeB
.HS 2C BIT ABS .HS 2C BIT ABS
BB.Wait25600usec BB.Wait25600usec
lda #0 lda #0

View File

@ -42,10 +42,10 @@ D2Recalibrate >PULLB DrvSlt
tax tax
lda IO.D2.Ph0On,x lda IO.D2.Ph0On,x
lda #IO.D2.SeekTime lda #IO.D2.SeekTimeF
jsr D2.Wait100usecA jsr D2.Wait100usecA
lda #IO.D2.SeekTime lda #IO.D2.SeekTimeF
jsr D2.Wait100usecA jsr D2.Wait100usecA
tya tya
@ -74,8 +74,11 @@ D2MoveHead >PULLB MoveTo
beq .7 beq .7
bit IO.D2.Ph0Off,x bit IO.D2.Ph0Off,x
nop
nop
ldx IO.D2.Ph0Off,y ldx IO.D2.Ph0Off,y
nop
nop
bcs .2 bcs .2
* Current < Target, must move in * Current < Target, must move in
@ -115,17 +118,26 @@ D2MoveHead >PULLB MoveTo
tax tax
lda IO.D2.Ph0On,y lda IO.D2.Ph0On,y
nop
nop
lda IO.D2.Ph0On,x lda IO.D2.Ph0On,x
nop
lda #IO.D2.SeekTime nop
lda #IO.D2.SeekTimeF
jsr D2.Wait100usecA jsr D2.Wait100usecA
bra .1 bra .1
.7 jsr D2.Wait25600usec .7 jsr D2.Wait25600usec
lda IO.D2.Ph0Off,y lda IO.D2.Ph0Off,y
nop
nop
lda IO.D2.Ph0Off,x lda IO.D2.Ph0Off,x
nop
nop
jsr D2.Wait25600usec
clc clc
.9 rts .9 rts

View File

@ -27,10 +27,13 @@ BUT.New >STYA ZPPtr1
clc clc
rts rts
*-------------------------------------- *--------------------------------------
BUT.Draw BUT.Paint
*-------------------------------------- *--------------------------------------
BUT.Close
clc
rts
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE usr/src/lib/libgui.s.but SAVE usr/src/lib/libgui.s.but

View File

@ -13,7 +13,20 @@ MENU.New >STYA ZPPtr1
clc clc
rts rts
*-------------------------------------- *--------------------------------------
MENU.SysMenu MENU.Paint
MENU.Close
*--------------------------------------
MENUBAR.New
MENUBAR.Paint
MENUBAR.Close
*--------------------------------------
MENUITEM.New
MENUITEM.Paint
MENUITEM.Close
clc
rts
*-------------------------------------- *--------------------------------------
MENU.MenuEditor .AZ "File" MENU.MenuEditor .AZ "File"
.DA #02 ID .DA #02 ID

14
LIB/LIBGUI.S.TEXT.txt Normal file
View File

@ -0,0 +1,14 @@
NEW
AUTO 3,1
*--------------------------------------
TEXT.New
TEXT.Paint
TEXT.Close
clc
rts
*--------------------------------------
MAN
SAVE usr/src/lib/libgui.s.text
LOAD usr/src/lib/libgui.s
ASM

View File

@ -120,6 +120,37 @@ CS.START cld
J.Cmds .DA DrawLine J.Cmds .DA DrawLine
.DA DrawText2 .DA DrawText2
*-------------------------------------- *--------------------------------------
J.OBJ .DA J.WND
.DA J.MENUBAR
.DA J.MENU
.DA J.MENUITEM
.DA J.BUT
.DA J.TEXT
*--------------------------------------
J.WND .DA WND.New
.DA WND.Paint
.DA WND.Close
*--------------------------------------
J.MENUBAR .DA MENUBAR.New
.DA MENUBAR.Paint
.DA MENUBAR.Close
*--------------------------------------
J.MENU .DA MENU.New
.DA MENU.Paint
.DA MENU.Close
*--------------------------------------
J.MENUITEM .DA MENUITEM.New
.DA MENUITEM.Paint
.DA MENUITEM.Close
*--------------------------------------
J.BUT .DA BUT.New
.DA BUT.Paint
.DA BUT.Close
*--------------------------------------
J.TEXT .DA TEXT.New
.DA TEXT.Paint
.DA TEXT.Close
*--------------------------------------
L.DEVNAME.GFX .DA DEVNAME.GFX L.DEVNAME.GFX .DA DEVNAME.GFX
L.DEVNAME.MOUSE .DA DEVNAME.MOUSE L.DEVNAME.MOUSE .DA DEVNAME.MOUSE
L.SYSX7 .DA SYSX7 L.SYSX7 .DA SYSX7
@ -289,6 +320,7 @@ GetScreenGC >LDYA L.WND.Screen
.INB usr/src/lib/libgui.s.menu .INB usr/src/lib/libgui.s.menu
.INB usr/src/lib/libgui.s.mou .INB usr/src/lib/libgui.s.mou
.INB usr/src/lib/libgui.s.pat .INB usr/src/lib/libgui.s.pat
.INB usr/src/lib/libgui.s.text
.INB usr/src/lib/libgui.s.wnd .INB usr/src/lib/libgui.s.wnd
*-------------------------------------- *--------------------------------------
CS.END CS.END
@ -335,7 +367,7 @@ MouseClamp .BS 8
CB.Cache .BS S.CB CB.Cache .BS S.CB
OBJ.Cache .BS S.OBJ OBJ.Cache .BS S.OBJ
*-------------------------------------- *--------------------------------------
WND.Screen .DA #S.OBJ.T.SCREEN WND.Screen .DA #S.OBJ.T.WND
.BS S.WND-1 .BS S.WND-1
*-------------------------------------- *--------------------------------------
WND.Screen.Childs WND.Screen.Childs

View File

@ -831,17 +831,26 @@ SKT.Recv clc
ldy #S.SOCKET.T ldy #S.SOCKET.T
lda (ZPPtrSKT),y lda (ZPPtrSKT),y
cmp #S.SOCKET.T.SEQPKT cmp #S.SOCKET.T.SEQPKT
bcc .10 bcc .10 RAW,DGRAM
bne .99 STREAM bne .99 STREAM
jsr SKT.GetFromQueue SEQPKT
bcc .1
jsr SKT.CheckTCP jsr SKT.CheckTCP
bcs .91 bcs .91
lda #E.NODATA
plp
sec
rts
.10 jsr SKT.GetFromQueue .10 jsr SKT.GetFromQueue
bcs .90 bcs .91
plp if CS, RecvFrom .1 plp if CS, RecvFrom
bcc .9 Exit with CC and A=hFrame bcc .9 CC, Recv : Exit with CC and A=hFrame
pha pha
>SYSCALL2 GetMemPtr >SYSCALL2 GetMemPtr
@ -891,11 +900,6 @@ SKT.Recv clc
.91 plp .91 plp
sec sec
rts rts
.90 lda #E.NODATA
plp
sec
rts
*/-------------------------------------- */--------------------------------------
* # Send (RAW,DGRAM,SEQPKT) * # Send (RAW,DGRAM,SEQPKT)
* # SendTo (RAW,DGRAM,SEQPKT) * # SendTo (RAW,DGRAM,SEQPKT)

View File

@ -192,8 +192,9 @@ TCP.IN.JMP.ESTBLSH
.5 lda (ZPFrameInPtr),y .5 lda (ZPFrameInPtr),y
eor SKT.Cache+S.SOCKET.TCP.INSEQNUM,x eor SKT.Cache+S.SOCKET.TCP.INSEQNUM,x
bne .90 Missed a frame..... * bne .90 Missed a frame.....
bne .8
dey dey
dex dex
bpl .5 bpl .5
@ -238,18 +239,13 @@ TCP.IN.JMP.ESTBLSH
.8 ldy #S.SOCKET.TCP.O .8 ldy #S.SOCKET.TCP.O
lda (ZPPtrSKT),y lda (ZPPtrSKT),y
beq .80 bne .91
jmp TCP.OUT.SendOptA
.80 clc .80 clc
rts .99 rts
.90 lda #S.TCP.OPTIONS.ACK .90 lda #S.TCP.OPTIONS.ACK
jsr TCP.OUT.SendOptA .91 jmp TCP.OUT.SendOptA
.9 sec
.99 rts
*-------------------------------------- *--------------------------------------
TCP.IN.JMP.LASTACK TCP.IN.JMP.LASTACK
ldy #S.TCP.OPTIONS only accept ACK packet ldy #S.TCP.OPTIONS only accept ACK packet

View File

@ -1,7 +1,7 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
XRWDBG .EQ 1 XRWDBG .EQ 0
*-------------------------------------- *--------------------------------------
XRW.START cld $D8 to flag language card bank 1 (main) XRW.START cld $D8 to flag language card bank 1 (main)
@ -777,7 +777,11 @@ XRW.Seek ldx XRW.UnitIndex
beq .7 beq .7
bit IO.D2.Ph0Off,x bit IO.D2.Ph0Off,x
nop
nop
ldx IO.D2.Ph0Off,y ldx IO.D2.Ph0Off,y
nop
nop
bcs .2 bcs .2
@ -818,14 +822,24 @@ XRW.Seek ldx XRW.UnitIndex
tax tax
lda IO.D2.Ph0On,y lda IO.D2.Ph0On,y
nop
nop
lda IO.D2.Ph0On,x lda IO.D2.Ph0On,x
nop
nop
jsr XRW.WaitSeekTime jsr XRW.WaitSeekTime
bra .1 bra .1
.7 jsr XRW.Wait25600usec .7 jsr XRW.Wait25600usec
lda IO.D2.Ph0Off,y lda IO.D2.Ph0Off,y
nop
nop
lda IO.D2.Ph0Off,x lda IO.D2.Ph0Off,x
nop
nop
rts rts
*-------------------------------------- *--------------------------------------
XRW.Trk2Qtrk asl x2 XRW.Trk2Qtrk asl x2

View File

@ -81,7 +81,9 @@ IO.WRITE.REG ldx #MLIWRITE
bcs .9 bcs .9
>LDYA K.MLI.PARAMS+6 >LDYA K.MLI.PARAMS+6
.9 rts .9
IO.WRITE.REG.RTS
rts
*-------------------------------------- *--------------------------------------
IO.CLOSE.REG IO.CLOSE.REG
IO.CLOSE.DIR ldy #S.FD.REG.REF IO.CLOSE.DIR ldy #S.FD.REG.REF
@ -89,6 +91,7 @@ IO.CLOSE.DIR ldy #S.FD.REG.REF
beq .1 beq .1
sta K.MLI.PARAMS+1 sta K.MLI.PARAMS+1
>MLICALL MLICLOSE >MLICALL MLICLOSE
bcs IO.WRITE.REG.RTS
.1 ldy #S.FD.REG.IOBUF .1 ldy #S.FD.REG.IOBUF
lda (pFD),y lda (pFD),y

View File

@ -123,8 +123,10 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL #
.1 jmp $ffff SELF MODIFIED .1 jmp $ffff SELF MODIFIED
.8 lda (pFD) #S.FD.T .8 lda (pFD) #S.FD.T
bne .80 cmp #S.FD.T.CDEV
ldy #S.FD.REG.REF bcs .80
ldy #S.FD.REG.REF REG or DIR
lda (pFD),y lda (pFD),y
sta K.MLI.PARAMS+1 sta K.MLI.PARAMS+1