Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-11-17 15:39:55 +01:00
parent ee1dce2ce6
commit 7966543112
15 changed files with 413 additions and 308 deletions

Binary file not shown.

View File

@ -3,22 +3,18 @@ NEW
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
BUF.InsertA sta TmpByte BUF.InsertA sta TmpByte
jsr BUF.ComputeCOffset
cpy #255 cpy #255
beq .8 beq .8
lda BUF.COffset >LDYAI 1
clc jsr BUF.BufPtrSetup
>ADC.G BufBase bcs .9
tax
lda BUF.COffset+1
>ADC.G BufBase+1
sta BufPtr+1
inx inx
bne .1 bne .1
inc inc
.1 stx BufPtrDst .1 stx BufPtrDst
sta BufPtrDst+1 sta BufPtrDst+1
@ -34,18 +30,76 @@ BUF.InsertA sta TmpByte
.8 clc .8 clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
BUF.DelCharAtCursor BUF.InsertTAB >LDA.G FileX
lda (BufPtr) and #TABMASK
pha Save deleted char for later bne .1
>LDYA BufPtr lda #TABLEN
>STYA BufPtrDst
.1 sta TmpByte
jsr BUF.ComputeCOffset
tya
sec
adc TmpByte
bcs .8
ldy TmpByte
lda #0
jsr BUF.BufPtrSetup
bcs .9
pha
txa
clc
adc TmpByte
sta BufPtrDst
pla
adc #0
sta BufPtrDst+1
jsr BUF.MoveForwardTail
lda #C.SPACE
ldy TmpByte
dey
.2 sta (BufPtr),y
dey
bpl .2
.4 lda FileLen
clc
adc TmpByte
sta FileLen
bcc .8
inc FileLen+1
.8 clc
.9 rts
*--------------------------------------
BUF.DelCharAtCursor
lda BUF.COffset
clc
>ADC.G BufBase
sta BufPtrDst
lda BUF.COffset+1
>ADC.G BufBase+1
sta BufPtrDst+1
>LDYA BufPtrDst
iny iny
bne .1 bne .1
inc inc
.1 >STYA BufPtr .1 >STYA BufPtr
lda (BufPtr)
pha Save deleted char for later
jsr BUF.MoveBackTail jsr BUF.MoveBackTail
lda FileLen lda FileLen
@ -65,27 +119,65 @@ BUF.InsertClipboard
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
>STYA ClipboardPtr >STYA ClipboardPtr
jsr BUF.ComputeCOffset jsr BUF.ComputeCOffset
lda FileLen lda FileLen
sec sec
ldy #ClipboardLen >ADC.G ClipboardLen
adc (pData),y
pha pha
lda FileLen+1 lda FileLen+1
iny iny
adc (pData),y adc (pData),y
ply ply
jsr BUF.GetNewYA
cpy BufLen
sbc BufLen+1
bcc .8
>LDYA.G ClipboardLen
jsr BUF.BufPtrSetup
bcs .9 bcs .9
>LDYA BUF.COffset pha
jsr BUF.Start2YA txa
clc
>ADC.G ClipboardLen
sta BufPtrDst
pla
>ADC.G ClipboardLen+1
sta BufPtrDst+1
jsr BUF.CopyClipboard jsr BUF.MoveForwardTail
jsr BUF.CopyTail
>LDA.G ClipboardLen lda ClipboardLen
eor #$ff
tax
lda ClipboardLen+1
eor #$ff
pha
ldy #0
.1 inx
bne .2
pla
inc
beq .3
pha
.2 lda (ClipboardPtr),y
sta (BufPtr),y
iny
bne .1
inc ClipboardPtr+1
inc BufPtr+1
bra .1
.3 >LDA.G ClipboardLen
clc clc
adc FileLen adc FileLen
sta FileLen sta FileLen
@ -95,86 +187,44 @@ BUF.InsertClipboard
adc FileLen+1 adc FileLen+1
sta FileLen+1 sta FileLen+1
.8 clc
.9 rts
*--------------------------------------
BUF.InsertTAB jsr BUF.ComputeCOffset
cpy #256-TABLEN
beq .8
lda FileLen
sec
adc #TABLEN
tay
lda FileLen+1
adc #0
jsr BUF.GetNewYA
bcs .9
>LDYA BUF.COffset
jsr BUF.Start2YA
ldy #TABLEN
lda #C.SPACE
.1 sta (BufPtr)
inc BufPtr
bne .2
inc BufPtr+1
.2 dey
bne .1
.3 jsr BUF.CopyTail
.4 lda FileLen
clc
adc #TABLEN
sta FileLen
bcc .8
inc FileLen+1
.8 clc .8 clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
BUF.DelSel jsr BUF.GetSelLen BUF.DelSel jsr BUF.GetSelLen
bcs .8 bcs .8
lda FileLen lda SelStart
sec clc
sbc SelLen >ADC.G BufBase
tay sta BufPtrDst
lda FileLen+1
sbc SelLen+1
iny
bne .1
inc
.1 jsr BUF.GetNewYA lda SelStart+1
bcs .9 >ADC.G BufBase+1
sta BufPtrDst+1
>LDYA.G SelStart lda BufPtrDst
jsr BUF.Start2YA
lda BufPtrBackup
clc clc
adc SelLen adc SelLen
sta BufPtrBackup sta BufPtr
lda BufPtrBackup+1
lda BufPtrDst+1
adc SelLen+1 adc SelLen+1
sta BufPtrBackup+1 sta BufPtr+1
jsr BUF.CopyTail
jsr BUF.MoveBackTail
lda FileLen lda FileLen
sec sec
sbc SelLen sbc SelLen
sta FileLen sta FileLen
lda FileLen+1 lda FileLen+1
sbc SelLen+1 sbc SelLen+1
sta FileLen+1 sta FileLen+1
jsr BUF.ResetSel jsr BUF.ResetSel
jmp SCRN.CursorAdjust
.8 clc .8 clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
@ -289,54 +339,6 @@ BUF.CopyAddY tya
inc BufPtr+1 inc BufPtr+1
.2 rts .2 rts
*-------------------------------------- *--------------------------------------
BUF.Start2YA eor #$ff
pha
tya
eor #$ff
tax
ldy #0
.1 inx
bne .2
pla
inc
beq .3
pha
.2 lda (BufPtrBackup),y
sta (BufPtr),y
iny
bne .1
inc BufPtrBackup+1
inc BufPtr+1
bra .1
.3 tya
clc
adc BufPtrBackup
sta BufPtrBackup
bcc BUF.CopyAddY
inc BufPtrBackup+1
bra BUF.CopyAddY
*--------------------------------------
BUF.CopyTail ldy #0
.1 lda (BufPtrBackup),y
sta (BufPtr),y
beq .8
iny
bne .1
inc BufPtrBackup+1
inc BufPtr+1
bra .1
.8 rts
*--------------------------------------
BUF.MoveBackTail BUF.MoveBackTail
ldy #0 ldy #0
@ -366,7 +368,7 @@ BUF.MoveForwardTail
phx phx
.1 lda (BufPtr),y .1 lda (BufPtr),y
beq .4 beq .3
dex dex
bne .2 bne .2
@ -380,25 +382,27 @@ BUF.MoveForwardTail
inc BufPtrDst+1 inc BufPtrDst+1
bra .1 bra .1
.4 lda (BufPtr),y .3 lda (BufPtr),y
sta (BufPtrDst),y sta (BufPtrDst),y
tya
bne .5
dec BufPtr+1
dec BufPtrDst+1
.5 dey
inx inx
bne .4 bne .4
pla pla
inc inc
beq .8 beq .8
pha pha
bra .4
.4 tya
bne .5
dec BufPtr+1
dec BufPtrDst+1
.5 dey
bra .3
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
@ -446,8 +450,7 @@ BUF.GetLineAX sta BUF.TmpLine1 Requested Line
stz BUF.LOffset stz BUF.LOffset
stz BUF.LOffset+1 stz BUF.LOffset+1
>LDA.G hBuffer >LDYA.G BufBase
>SYSCALL GetMemPtr
>STYA BufPtr >STYA BufPtr
.1 ldy #0 .1 ldy #0
@ -501,48 +504,6 @@ BUF.GetLineAX sta BUF.TmpLine1 Requested Line
.9 sec .9 sec
rts rts
*-------------------------------------- *--------------------------------------
BUF.GetNewYA tax In 256 bytes page to avoid fragmentation
tya
beq .10
inx
.10 phx
>LDA.G hBufferBackup
beq .1
>SYSCALL FreeMem
.1 >LDA.G hBuffer
>STA.G hBufferBackup
>SYSCALL GetMemPtr
>STYA BufPtrBackup
>STZ.G hBuffer
pla
ldy #0
>SYSCALL GetMem
bcs .9
>STYA.G BufBase
txa
>STA.G hBuffer
>LDA.G bSaved
beq .8
lda #0
sta (pData),y
jsr SCRN.UpdateTopBar
bcs .9
.8
* clc
.9 rts
*--------------------------------------
BUF.ResetSel lda #$ff BUF.ResetSel lda #$ff
ldy #SelStart ldy #SelStart
@ -601,6 +562,18 @@ BUF.GetSelLen ldy #SelEnd
.9 sec .9 sec
rts rts
*-------------------------------------- *--------------------------------------
BUF.BufPtrSetup lda BUF.COffset
clc
>ADC.G BufBase
sta BufPtr
tax
lda BUF.COffset+1
>ADC.G BufBase+1
sta BufPtr+1
clc
rts
*--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/EDIT.S.BUF SAVE USR/SRC/BIN/EDIT.S.BUF
LOAD USR/SRC/BIN/EDIT.S LOAD USR/SRC/BIN/EDIT.S

View File

@ -34,6 +34,9 @@ Prompt.Editor cmp #C.DEL
cmp #C.SPACE cmp #C.SPACE
bcc .3 bcc .3
pha
jsr BUF.ComputeCOffset
pla
jsr BUF.InsertA jsr BUF.InsertA
bcs .9 bcs .9
@ -66,22 +69,28 @@ Ctrl.Invalid
Ctrl.Invalid.RTS Ctrl.Invalid.RTS
rts rts
*-------------------------------------- *--------------------------------------
Ctrl.A lda #PromptModeHelp Ctrl.A >LDYA L.MSG.HELP
>STA.G PromptMode
>LDYA L.MSG.HELP
>STYA ZPPTR1 >STYA ZPPTR1
stz .1+1
.1 ldy #0 stz TmpByte
.1
ldx #0 ldx #0
ldy TmpByte
jsr SCRN.GotoXY jsr SCRN.GotoXY
bcs .9
lda (ZPPTR1) lda (ZPPTR1)
beq .8 beq .8
>PUSHW ZPPTR1 >PUSHW ZPPTR1
>PUSHBI 2 >PUSHBI 2
>LDYA L.MSG.HELPLINE >LDYA L.MSG.HELPLINE
>SYSCALL printf >SYSCALL printf
bcs Ctrl.Invalid.RTS bcs .9
inc .1+1
inc TmpByte
lda (ZPPTR1) lda (ZPPTR1)
sec sec
adc ZPPTR1 adc ZPPTR1
@ -90,7 +99,18 @@ Ctrl.A lda #PromptModeHelp
inc ZPPTR1+1 inc ZPPTR1+1
bra .1 bra .1
.8 jmp SCRN.UpdateStatusBar .8 lda #PromptModeHelp
>STA.G PromptMode
jsr SCRN.UpdateStatusBar
bcs .9
>SYSCALL getchar
bcs .9
>STZ.G PromptMode
jmp SCRN.UpDateMain
.9 rts
*-------------------------------------- *--------------------------------------
Ctrl.B jsr BUF.ComputeCOffset Ctrl.B jsr BUF.ComputeCOffset
@ -162,20 +182,20 @@ Ctrl.TAB jsr BUF.InsertTAB
>LDA.G FileX >LDA.G FileX
clc clc
adc #TABLEN adc TmpByte
and #$FC
sta (pData),y sta (pData),y
>LDA.G CurX >LDA.G CurX
clc clc
adc #TABLEN adc TmpByte
and #$FC
sta (pData),y sta (pData),y
sec
>SBC.G ScreenX >SBC.G ScreenX
sec
>SBC.G ScreenW >SBC.G ScreenW
bcs .8 bcs .8
jsr SCRN.UpdateCurrentLine jsr SCRN.UpdateCurrentLine
bcs .9 bcs .9
jmp SCRN.UpdateStatusBar jmp SCRN.UpdateStatusBar
@ -241,13 +261,41 @@ Ctrl.L jsr BUF.GetLine
jmp SCRN.UpdateViewPort jmp SCRN.UpdateViewPort
*-------------------------------------- *--------------------------------------
Ctrl.CR lda #C.CR Ctrl.CR jsr BUF.ComputeCOffset
lda #C.CR
jsr BUF.InsertA jsr BUF.InsertA
bcs .9 bcs .9
>PUSHBI 0
>LDYA L.SEQ.CEOL
>SYSCALL printf
bcs .9
>INCW.G FileY
>STZ.G FileX >STZ.G FileX
jmp SCRN.UpdateMain >LDA.G ScreenH
dec
>PUSHA
>LDA.G CurY
inc
inc
>PUSHA
>PUSHBI 2
>LDYA L.SEQ.SCROLLCURDN
>SYSCALL printf
bcs .9
jsr SCRN.UpdateCurrentLine
>LDA.G ScreenH
dec
>PUSHA
>PUSHBI 1
>LDYA L.SEQ.SCROLLRGN
>SYSCALL printf
.9 rts .9 rts
*-------------------------------------- *--------------------------------------

View File

@ -7,6 +7,7 @@ FILE.New >LDYAI 4096
>SYSCALL GetMem >SYSCALL GetMem
bcs .9 bcs .9
>STYA BufPtr
>STYA.G BufBase >STYA.G BufBase
txa txa
@ -51,7 +52,7 @@ FILE.Load.TXT stz FileLen
jsr FILE.GetBuffer jsr FILE.GetBuffer
bcs .99 bcs .99
>LDYA 256 >LDYAI 256
>SYSCALL GetMem >SYSCALL GetMem
bcs .99 bcs .99
@ -72,97 +73,147 @@ FILE.Load.TXT stz FileLen
>PUSHW ZPPTR1 >PUSHW ZPPTR1
lda TmpIndex lda TmpIndex
>SYSCALL fread >SYSCALL fread
bcs .8 bcs .7
lda #0 lda #0
sta (ZPPTR1),y Y = line len sta (ZPPTR1),y Y = line len
ldx #0
ldy #0
lda (ZPPTR1) lda (ZPPTR1)
beq .8
clc
eor #C.LF eor #C.LF
bne .2 bne .2
phy
lda #2 lda #2
>STA.G FileType >STA.G FileType
sec
.2 lda ZPPTR1 ply
adc #0 iny
tay
lda ZPPTR1+1 .2 lda (ZPPTR1),y
adc #0 beq .4
>PUSHYA
>LDYA BufPtr sta (BufPtr)
>SYSCALL strcat inc BufPtr
bne .3
inc BufPtr+1
.3 inx
iny
bra .2
.4 txa
clc
adc FileLen
sta FileLen
bcc .1
inc FileLen+1
bra .1 bra .1
.8 cmp #MLI.E.EOF .7 cmp #MLI.E.EOF
bne .9 bne .9
>LDYA BufPtr .8 lda #0
>SYSCALL strlen sta (BufPtr)
>STYA FileLen
clc clc
.9 jmp FILE.Load.Cleanup .HS B0 BCS
.9 sec
jmp FILE.Close
*-------------------------------------- *--------------------------------------
FILE.Load.ASM FILE.Load.ASM
lda #MLI.E.INCFF lda #MLI.E.INCFF
sec sec
rts rts
*-------------------------------------- *--------------------------------------
FILE.Load.Cleanup FILE.Save >LDYAI 256
php >SYSCALL GetMem
pha bcs .9
lda TmpByte
beq .1
>SYSCALL freemem
.1 lda TmpIndex >STYA ZPPTR1
beq .2 stx TmpByte
>SYSCALL fclose >LDA.G FileType
tax
.2 pla jmp (J.SAVE,x)
plp .9 rts
rts
*-------------------------------------- *--------------------------------------
FILE.Save >PUSHWZ Aux type FILE.Save.CR clc
.HS B0 BCS
FILE.Save.CRLF sec
ror TmpIndex+1
>PUSHWZ Aux type
>PUSHBI S.FI.T.TXT >PUSHBI S.FI.T.TXT
>PUSHBI O.CREATE+O.WRONLY >PUSHBI O.CREATE+O.WRONLY
>LDA.G hFileName >LDA.G hFileName
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
>SYSCALL FOpen >SYSCALL FOpen
bcs .9 bcs .9
pha
>PUSHW FileLen sta TmpIndex
>LDA.G hBuffer
>SYSCALL GetMemPtr >LDYA.G BufBase
>STYA BufPtr
.1 lda (BufPtr)
beq .8
ldy #$ff
.2 iny
lda (BufPtr),y
sta (ZPPTR1),y
beq .3
cmp #C.CR
bne .2
iny
bit TmpIndex+1
bpl .3
iny
lda #C.LF
sta (ZPPTR1),y
.3 tya
beq .8
clc
adc BufPtr
sta BufPtr
bcc .4
inc BufPtr+1
.4 lda #0
>PUSHYA >PUSHYA
pla >PUSHW ZPPTR1
pha lda TmpIndex
>SYSCALL FWrite >SYSCALL FWrite
bcc .1 bcs .9
tax bra .1
pla
phx
>SYSCALL FClose
pla
sec
rts
.1 pla .8 lda #$80
>SYSCALL FClose
lda #$80
>STA.G bSaved >STA.G bSaved
jsr SCRN.UpdateTopBar jsr SCRN.UpdateTopBar
.9 rts clc
.9 jmp FILE.Close
*--------------------------------------
FILE.Save.ASM
clc
rts
*-------------------------------------- *--------------------------------------
FILE.GetBuffer >LDA.G STATBUF+S.STAT.SIZE+3 FILE.GetBuffer >LDA.G STATBUF+S.STAT.SIZE+3
dey dey
@ -183,6 +234,7 @@ FILE.GetBuffer >LDA.G STATBUF+S.STAT.SIZE+3
>SYSCALL GetMem >SYSCALL GetMem
bcs .99 bcs .99
>STYA BufPtr
>STYA.G BufBase >STYA.G BufBase
txa txa
>STA.G hBuffer >STA.G hBuffer
@ -196,6 +248,21 @@ FILE.GetBuffer >LDA.G STATBUF+S.STAT.SIZE+3
sec sec
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
FILE.Close php
pha
lda TmpByte
beq .1
>SYSCALL freemem
.1 lda TmpIndex
beq .2
>SYSCALL fclose
.2 pla
plp
rts
*--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/EDIT.S.FILE SAVE USR/SRC/BIN/EDIT.S.FILE
LOAD USR/SRC/BIN/EDIT.S LOAD USR/SRC/BIN/EDIT.S

View File

@ -14,12 +14,13 @@ SCRN.Init >LDA.G ScreenH
jsr SCRN.UpdateTopBar jsr SCRN.UpdateTopBar
bcs .9 bcs .9
jmp SCRN.UpdateMain jmp SCRN.UpdateMain
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
SCRN.Home lda #0 SCRN.Home lda #0
ldy #FileX Zero all ldy #FileX Zero FileXY,ScreenXY & CurXY
.1 sta (pData),y .1 sta (pData),y
iny iny
@ -89,6 +90,7 @@ SCRN.UpdateMain >LDA.G ScreenY
.1 lda TmpIndex .1 lda TmpIndex
ldx TmpIndex+1 ldx TmpIndex+1
jsr BUF.GetLineAX Y = line length jsr BUF.GetLineAX Y = line length
bcs .5 bcs .5
@ -167,9 +169,7 @@ SCRN.UpdateLineAtALenY
jsr SCRN.ToLineBuf jsr SCRN.ToLineBuf
bra .10 bra .10
.11 ldy #0 .11 >LDA.G ScreenW
>LDA.G ScreenW
tax tax
>LDA.G ScreenX >LDA.G ScreenX
cmp TmpLen cmp TmpLen

View File

@ -3,12 +3,16 @@ NEW
.LIST OFF .LIST OFF
.OP 65C02 .OP 65C02
.OR $2000 .OR $2000
.TF BIN/EDIT2 .TF BIN/EDIT
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB INC/MACROS.I
.INB INC/A2OSX.I .INB INC/A2OSX.I
.INB INC/MLI.I .INB INC/MLI.I
.INB INC/MLI.E.I .INB INC/MLI.E.I
*--------------------------------------
PROMPTBUFMAX .EQ 64
TABLEN .EQ 4
TABMASK .EQ 3
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR ZPBIN .OR ZPBIN
@ -40,9 +44,6 @@ bSelected .BS 1
ZS.END .ED ZS.END .ED
*-------------------------------------- *--------------------------------------
PROMPTBUFMAX .EQ 64
TABLEN .EQ 4
*--------------------------------------
PromptModeHelp .EQ 2 PromptModeHelp .EQ 2
PromptModeFind .EQ 4 PromptModeFind .EQ 4
PromptModeReplace .EQ 6 PromptModeReplace .EQ 6
@ -70,9 +71,11 @@ CS.START cld
.DA CS.QUIT .DA CS.QUIT
L.SEQ.DETECT .DA SEQ.DETECT L.SEQ.DETECT .DA SEQ.DETECT
L.SEQ.INIT .DA SEQ.INIT L.SEQ.INIT .DA SEQ.INIT
L.SEQ.SCROLLRGN .DA SEQ.SCROLLRGN
L.SEQ.RESET .DA SEQ.RESET L.SEQ.RESET .DA SEQ.RESET
L.SEQ.SCROLLUP .DA SEQ.SCROLLUP L.SEQ.SCROLLUP .DA SEQ.SCROLLUP
L.SEQ.SCROLLDN .DA SEQ.SCROLLDN L.SEQ.SCROLLDN .DA SEQ.SCROLLDN
L.SEQ.SCROLLCURDN .DA SEQ.SCROLLCURDN
L.SEQ.CEOL .DA SEQ.CEOL L.SEQ.CEOL .DA SEQ.CEOL
L.SEQ.BAR .DA SEQ.BAR L.SEQ.BAR .DA SEQ.BAR
L.MSG.TOPBAR .DA MSG.TOPBAR L.MSG.TOPBAR .DA MSG.TOPBAR
@ -89,6 +92,9 @@ L.MSG.NEWFILE .DA MSG.NEWFILE
L.MSG.GOTOXY .DA MSG.GOTOXY L.MSG.GOTOXY .DA MSG.GOTOXY
L.MSG.HELPLINE .DA MSG.HELPLINE L.MSG.HELPLINE .DA MSG.HELPLINE
L.MSG.HELP .DA MSG.HELP L.MSG.HELP .DA MSG.HELP
J.SAVE .DA FILE.Save.CR
.DA FILE.Save.CRLF
.DA FILE.Save.ASM
J.PROMPT .DA Prompt.Editor J.PROMPT .DA Prompt.Editor
.DA Prompt.Help .DA Prompt.Help
.DA Prompt.Find .DA Prompt.Find
@ -357,10 +363,12 @@ CharIn.Esc >STZ.G bEscMode
*-------------------------------------- *--------------------------------------
CS.END CS.END
SEQ.DETECT .AZ "Querying terminal capabilities...\e[999;999H\e[6n" SEQ.DETECT .AZ "Querying terminal capabilities...\e[999;999H\e[6n"
SEQ.INIT .AZ "\ec\e[?7l\e[2;%dr"
SEQ.RESET .AZ "\ec" SEQ.RESET .AZ "\ec"
SEQ.INIT .AS "\ec"
SEQ.SCROLLRGN .AZ "\e[?7l\e[2;%dr"
SEQ.SCROLLUP .AZ "\eD" SEQ.SCROLLUP .AZ "\eD"
SEQ.SCROLLDN .AZ "\eM" SEQ.SCROLLDN .AZ "\eM"
SEQ.SCROLLCURDN .AZ "\e[?7l\e[%d;%dr\eM"
SEQ.BAR .AS "\e[40;37m\e[7m%s" +SEQ.NORM SEQ.BAR .AS "\e[40;37m\e[7m%s" +SEQ.NORM
SEQ.NORM .AZ "\e[0m" SEQ.NORM .AZ "\e[0m"
SEQ.INV .AZ "\e[7m" SEQ.INV .AZ "\e[7m"
@ -370,7 +378,7 @@ MSG.TOPBAR .AZ "A2osX Edit:%s %s"
MSG.TXTCR .AZ "TXT/CR" MSG.TXTCR .AZ "TXT/CR"
MSG.TXTCRLF .AZ "TXT/CRLF" MSG.TXTCRLF .AZ "TXT/CRLF"
MSG.TXTASM .AZ "S-C/ASM" MSG.TXTASM .AZ "S-C/ASM"
MSG.STATUSBAR .AZ "(Press Ctrl-A For Help) Len: %5D Pos: %5D Col: %3d Line: %5D" MSG.STATUSBAR .AZ "Press Ctrl-A For Help Len: %5D Pos: %5D Col: %3d Line: %5D"
MSG.STATUSBAR.H .AZ "Press any key to exit this screen:" MSG.STATUSBAR.H .AZ "Press any key to exit this screen:"
MSG.STATUSBAR.F .AZ "Find:%s" MSG.STATUSBAR.F .AZ "Find:%s"
MSG.STATUSBAR.R .AZ "Replace:%s" MSG.STATUSBAR.R .AZ "Replace:%s"

View File

@ -117,13 +117,7 @@ ARP.IN ldy #S.ARP.TPA+3
cmp #S.ARP.OPERATION.REP cmp #S.ARP.OPERATION.REP
beq ARP.IN.REP beq ARP.IN.REP
ARP.IN.EXIT lda hFrameIn ARP.IN.EXIT jmp FRM.DiscardIn
beq .8
stz hFrameIn
>SYSCALL2 FreeMem
.8 clc
rts
ARP.IN.REQ ldy #S.ARP.SPA+3 ARP.IN.REQ ldy #S.ARP.SPA+3
ldx #3 ldx #3

View File

@ -493,10 +493,8 @@ DNS.POLL lda hDNSSocket
cpx #4 cpx #4
bne .5 bne .5
jsr DNS.UPDATE.BY.ID jsr DNS.UPDATE.BY.ID
.9 lda hFrameIn
>SYSCALL2 FreeMem .9 jmp FRM.DiscardIn
clc
rts
*-------------------------------------- *--------------------------------------
DNS.NextCache lda ZPCachePtr DNS.NextCache lda ZPCachePtr
clc clc

View File

@ -275,8 +275,8 @@ FRM.Queue plp
FRM.Discard lda hFrameOut FRM.Discard lda hFrameOut
beq FRM.Discard.9 beq FRM.Discard.9
>SYSCALL2 FreeMem
stz hFrameOut stz hFrameOut
>SYSCALL2 FreeMem
FRM.Discard.9 sec FRM.Discard.9 sec
rts rts
@ -313,6 +313,7 @@ FRM.Retry ldx FRM.QUEUE.Tail
inx inx
cpx #K.FRMQUEUE.SIZE cpx #K.FRMQUEUE.SIZE
bne .5 bne .5
ldx #0 ldx #0
.5 stx FRM.QUEUE.Tail .5 stx FRM.QUEUE.Tail
>SYSCALL2 FreeMem >SYSCALL2 FreeMem
@ -333,6 +334,14 @@ FRM.Send.IOCTL >PUSHW L.IOCTL
>SYSCALL2 IOCTL >SYSCALL2 IOCTL
rts rts
*-------------------------------------- *--------------------------------------
FRM.DiscardIn lda hFrameIn
beq .8
stz hFrameIn
>SYSCALL2 FreeMem
.8 clc
rts
*--------------------------------------
MAN MAN
SAVE USR/SRC/LIB/LIBTCPIP.S.FRM SAVE USR/SRC/LIB/LIBTCPIP.S.FRM
LOAD USR/SRC/LIB/LIBTCPIP.S LOAD USR/SRC/LIB/LIBTCPIP.S

View File

@ -37,11 +37,8 @@ ICMP.IN.ECHOREQ ldy #S.IP.DST+3
bpl .3 bpl .3
clc Queue if fail clc Queue if fail
jmp FRM.SendIP jmp FRM.SendIP
ICMP.IN.EXIT lda hFrameIn
beq .8 ICMP.IN.EXIT jmp FRM.DiscardIn
>SYSCALL2 FreeMem
stz hFrameIn
.8 rts
*-------------------------------------- *--------------------------------------
ICMP.IN.ECHOREP jsr FRM.GetTargetSKT.RAW ICMP.IN.ECHOREP jsr FRM.GetTargetSKT.RAW
ldy #S.ICMP.IDENTIFIER ldy #S.ICMP.IDENTIFIER
@ -53,9 +50,12 @@ ICMP.IN.ECHOREP jsr FRM.GetTargetSKT.RAW
jsr SKT.FindMatchingLocRem jsr SKT.FindMatchingLocRem
bcs ICMP.IN.EXIT bcs ICMP.IN.EXIT
ldy #S.SOCKET.PROTO ldy #S.SOCKET.PROTO
lda (ZPPtrSKT),y lda (ZPPtrSKT),y
cmp #S.IP.PROTOCOL.ICMP bne ICMP.IN.EXIT cmp #S.IP.PROTOCOL.ICMP
bne ICMP.IN.EXIT
lda hFrameIn lda hFrameIn
jsr SKT.AddToQueueA jsr SKT.AddToQueueA
bcs ICMP.IN.EXIT Q full, discard... bcs ICMP.IN.EXIT Q full, discard...

View File

@ -18,15 +18,15 @@ IP.IN ldy #S.IP.PROTOCOL
lda hFrameIn lda hFrameIn
jsr SKT.AddToQueueA jsr SKT.AddToQueueA
bcs .9 Q full, discard... bcs .9 Q full, discard...
rts rts
.3 cmp #S.IP.PROTOCOL.TCP .3 cmp #S.IP.PROTOCOL.TCP
bne .9 bne .9
jsr TCP.IN TCP may NOT discard FrameIn jsr TCP.IN TCP may NOT discard FrameIn
.9 lda hFrameIn
beq .8 .9 jmp FRM.DiscardIn
>SYSCALL2 FreeMem
.8 clc
rts
*-------------------------------------- *--------------------------------------
IP.ComputeICMPChecksum IP.ComputeICMPChecksum
stz IP.CHECKSUM stz IP.CHECKSUM

View File

@ -340,7 +340,7 @@ SKT.shutdown.SEQPACKET
pla pla
inc inc
cmp #S.SOCKET.HQ.MAX cmp #S.SOCKET.HQ.MAX
beq .2 bne .2
lda #0 lda #0
@ -954,6 +954,7 @@ SKT.Send clc
jsr SKT.PullhFDDataInPtrLen jsr SKT.PullhFDDataInPtrLen
plp plp
bcc .1 bcc .1
jsr SKT.PullRemAddr jsr SKT.PullRemAddr
.1 ldy #S.SOCKET.T .1 ldy #S.SOCKET.T
@ -993,9 +994,14 @@ SKT.Send.SEQPACKET
jsr SKT.CopyDataInToOut jsr SKT.CopyDataInToOut
jmp TCP.OUT.Send ldy #S.TCP.WINDOW
lda /K.TCP.WSIZE
sta (ZPFrameOutPtr),y
iny
lda #K.TCP.WSIZE
sta (ZPFrameOutPtr),y
* TODO add ZPDataInLen to SEQ jmp TCP.OUT.SEQSEND
*/-------------------------------------- */--------------------------------------
* # GetSockOpt * # GetSockOpt
* Set Socket Options * Set Socket Options

View File

@ -23,10 +23,7 @@ TCP.IN.RST lda SKT.TABLE,x
TCP.IN.JMP.OPENED TCP.IN.JMP.OPENED
TCP.IN.JMP.CLOSED TCP.IN.JMP.CLOSED
TCP.IN.JMP.DISCARD TCP.IN.JMP.DISCARD
lda hFrameIn jmp FRM.DiscardIn
stz hFrameIn
>SYSCALL2 FreeMem
rts
*-------------------------------------- *--------------------------------------
TCP.IN.JMP.LISTEN TCP.IN.JMP.LISTEN
ldy #S.SOCKET.T Create a new client socket ldy #S.SOCKET.T Create a new client socket
@ -465,15 +462,18 @@ TCP.OUT lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1
bcs .9 bcs .9
jsr SKT.GetDataFromSktOut jsr SKT.GetDataFromSktOut
ldy #S.TCP.WINDOW ldy #S.TCP.WINDOW
lda SKT.Cache+S.SOCKET.TCP.INFREE+1 lda SKT.Cache+S.SOCKET.TCP.INFREE+1
sta (ZPFrameOutPtr),y sta (ZPFrameOutPtr),y
iny iny
lda SKT.Cache+S.SOCKET.TCP.INFREE lda SKT.Cache+S.SOCKET.TCP.INFREE
sta (ZPFrameOutPtr),y sta (ZPFrameOutPtr),y
lda #S.TCP.OPTIONS.ACK+S.TCP.OPTIONS.PSH
TCP.OUT.SEQSEND lda #S.TCP.OPTIONS.ACK+S.TCP.OPTIONS.PSH
jsr TCP.OUT.Send jsr TCP.OUT.Send
bcs .9 bcs TCP.OUT.Send.RTS
lda ZPDataOutLen lda ZPDataOutLen
ldy ZPDataOutLen+1 ldy ZPDataOutLen+1
ldx #S.SOCKET.TCP.OUTNEXTSEQ ldx #S.SOCKET.TCP.OUTNEXTSEQ
@ -486,7 +486,7 @@ TCP.OUT.SendOptA
>LDYAI 0 >LDYAI 0
jsr TCP.NewFrame jsr TCP.NewFrame
bcs TCP.OUT.Send.9 bcs TCP.OUT.Send.RTS
ldy #S.SOCKET.TCP.INFREE+1 ldy #S.SOCKET.TCP.INFREE+1
lda (ZPPtrSKT),y lda (ZPPtrSKT),y
@ -528,13 +528,14 @@ TCP.OUT.Send ldy #S.TCP.OPTIONS
sec DONT Queue if fail sec DONT Queue if fail
jsr FRM.SendIP jsr FRM.SendIP
bcs TCP.OUT.Send.9 bcs TCP.OUT.Send.RTS
ldy #S.SOCKET.TCP.O ldy #S.SOCKET.TCP.O
lda #0 lda #0
sta (ZPPtrSKT),y sta (ZPPtrSKT),y
* clc * clc
TCP.OUT.Send.9 rts TCP.OUT.Send.RTS
rts
*-------------------------------------- *--------------------------------------
TCP.SetSocketTCPO.ACK TCP.SetSocketTCPO.ACK
lda #S.TCP.OPTIONS.ACK lda #S.TCP.OPTIONS.ACK

View File

@ -225,6 +225,7 @@ CS.RUN.CLIENT
.3 jsr CS.RUN.MSG.GetStr .3 jsr CS.RUN.MSG.GetStr
bcs .7 bcs .7
>PUSHYA
>PUSHW ZPStrPtr >PUSHW ZPStrPtr
ldy #S.PS.hStdOut ldy #S.PS.hStdOut
lda (pPS),y lda (pPS),y
@ -305,7 +306,7 @@ CS.RUN.MSG.GetStr
.31 eor #C.LF .31 eor #C.LF
bne .9 bne .9
sta (ZPStrPtr),y sta (ZPStrPtr),y Y,A = StrLen
clc clc
rts rts
@ -359,7 +360,7 @@ HTTP.200OK .AS "HTTP/1.1 200 OK"
.AS "Connection: Close" .AS "Connection: Close"
.DA #C.CR,#C.LF .DA #C.CR,#C.LF
.DA #C.CR,#C.LF .DA #C.CR,#C.LF
.AS "<HTML><BODY>Hello!</BODY></HTML>" .AS "<HTML><BODY>Hello From A2osX-HTTPD 0.93 !</BODY></HTML>"
.DA #C.CR,#C.LF .DA #C.CR,#C.LF
HTTP.200OK.len .EQ *-HTTP.200OK HTTP.200OK.len .EQ *-HTTP.200OK
*-------------------------------------- *--------------------------------------

View File

@ -1197,7 +1197,7 @@ DOWILL.CNT .EQ *-DOWILL
DOWONT .DA #TELOPT.ECHO,#TELOPT.NEWENVIRON,#TELOPT.XDISPLOC,#TELOPT.TSPEED,#TELOPT.LFLOW DOWONT .DA #TELOPT.ECHO,#TELOPT.NEWENVIRON,#TELOPT.XDISPLOC,#TELOPT.TSPEED,#TELOPT.LFLOW
DOWONT.CNT .EQ *-DOWONT DOWONT.CNT .EQ *-DOWONT
SB.IS.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.IS SB.IS.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.IS
ENQ.String .AS "xterm" ENQ.String .AS "vt100"
ENQ.String.Len .EQ *-ENQ.String ENQ.String.Len .EQ *-ENQ.String
.DA #IAC,#SE .DA #IAC,#SE
SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE