BASIC:bugfixes & reorg

This commit is contained in:
burniouf 2022-04-07 19:19:48 +02:00
parent 905ebf9a2b
commit d249f0c0b9
12 changed files with 194 additions and 166 deletions

Binary file not shown.

Binary file not shown.

View File

@ -1172,118 +1172,6 @@ LA1F2 clc
sbc AS.STRINGSTART+1 sbc AS.STRINGSTART+1
rts rts
*-------------------------------------- *--------------------------------------
BS.GetSysBuf lda #$04
LA1FB sta XBBB5
jsr BS.KW.FRE
bcs LA24E
lda AS.STRINGSTART+1
sbc AS.ARRAYEND+1
cmp XBBB5
lda #BS.E.NOBUFFER
bcc LA24E
lda AS.STRINGSTART+1
sta ZP.PCH
sbc XBBB5
sta ZP.A1H
sta AS.STRINGSTART+1
lda AS.STRINGSTART
sta ZP.PCL
sta ZP.A1L
lda AS.HIMEM
sbc ZP.PCL
sta XBBED
lda AS.HIMEM+1
sbc ZP.PCH
sta BS.BUFPAGEs
jsr BS.MoveMemUp
lda #$00
sec
sbc XBBB5
sta XBBE2
jsr LA3A3
lda AS.HIMEM+1
sta XBBB7
sec
sbc XBBB5
sta AS.HIMEM+1
clc
adc #$04
sta BS.BUFPAGE
rts
LA24E sec
rts
XBBB5 .BS 1
*--------------------------------------
LA250 jsr BS.KW.FRE
bcs LA29D
lda AS.HIMEM+1
sbc #$00
sta ZP.PCH
adc #$03
sta ZP.A1H
lda AS.STRINGSTART
sta ZP.PCL
sta ZP.A1L
lda AS.HIMEM
sec
sbc AS.STRINGSTART
sta XBBED
lda AS.HIMEM+1
sbc AS.STRINGSTART+1
sta BS.BUFPAGEs
jsr BS.MoveMemDown
lda #$04
sta XBBE2
clc
adc AS.HIMEM+1
sta AS.HIMEM+1
jsr LA3A3
lda BS.BUFPAGE
cmp AS.HIMEM+1
beq LA2B7
pha
ldx GP.OPENCNT
beq LA29B
lda AS.HIMEM+1
LA293 cmp BS.BUFPAGEs,x
beq LA29E
dex
bne LA293
LA29B pla
sec
LA29D rts
LA29E pla
*--------------------------------------
BS.SetFileBuf sta GP.SBUFADR+1
sta BS.BUFPAGEs,x
stz GP.SBUFADR
lda BS.REFNUMs,x
sta GP.MLIMRKEOFBUF.REFNUM
lda #MLI.C.SETBUF
jmp GP.GOSYSTEM
LA2B7 clc
rts
*--------------------------------------
MAN MAN
SAVE usr/src/basic.fx/basic.s.a SAVE usr/src/basic.fx/basic.s.a
LOAD usr/src/basic.fx/basic.s LOAD usr/src/basic.fx/basic.s

View File

@ -1,6 +1,123 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
BS.GetSysBuf lda #$04
LA1FB sta XBBB5
jsr BS.KW.FRE
bcs LA24E
lda AS.STRINGSTART+1
sbc AS.ARRAYEND+1
cmp XBBB5
lda #BS.E.NOBUFFER
bcc LA24E
lda AS.STRINGSTART+1
sta ZP.PCH
sbc XBBB5
sta ZP.A1H
sta AS.STRINGSTART+1
lda AS.STRINGSTART
sta ZP.PCL
sta ZP.A1L
lda AS.HIMEM
sbc ZP.PCL
sta BS.ReqMem
lda AS.HIMEM+1
sbc ZP.PCH
sta BS.ReqMem+1
jsr BS.MoveMemDown
lda #$00
sec
sbc XBBB5
sta XBBE2
jsr LA3A3
lda AS.HIMEM+1
sta XBBB7
sec
sbc XBBB5
sta AS.HIMEM+1
clc
adc #$04
sta BS.BUFPAGE
rts
LA24E sec
rts
XBBB5 .BS 1
*--------------------------------------
BS.FreeSysBuf jsr BS.KW.FRE
bcs LA29D
lda AS.HIMEM+1
sbc #$00
sta ZP.PCH
adc #$03
sta ZP.A1H
lda AS.STRINGSTART
sta ZP.PCL
sta ZP.A1L
lda AS.HIMEM
sec
sbc AS.STRINGSTART
sta BS.ReqMem
lda AS.HIMEM+1
sbc AS.STRINGSTART+1
sta BS.ReqMem+1
jsr BS.MoveMemUp
lda #$04
sta XBBE2
clc
adc AS.HIMEM+1
sta AS.HIMEM+1
jsr LA3A3
lda BS.BUFPAGE
cmp AS.HIMEM+1
beq LA2B7
pha
ldx GP.OPENCNT
beq LA29B
lda AS.HIMEM+1
LA293 cmp BS.BUFPAGEs-1,x
beq LA29E
dex
bne LA293
LA29B pla
sec
LA29D rts
LA29E pla
*--------------------------------------
BS.SetFileBuf sta GP.SBUFADR+1
sta BS.BUFPAGEs-1,x
stz GP.SBUFADR
lda BS.REFNUMs,x
sta GP.MLIMRKEOFBUF.REFNUM
lda #MLI.C.SETBUF
jmp GP.GOSYSTEM
LA2B7 clc
rts
*--------------------------------------
BS.GETBUFR jsr LA1FB BS.GETBUFR jsr LA1FB
bcs LA304 bcs LA304
@ -18,7 +135,7 @@ LA2C5 sta GP.SBUFADR+1
adc #$04 adc #$04
sta XBBB7 sta XBBB7
LA2D6 cmp BS.BUFPAGEs,x LA2D6 cmp BS.BUFPAGEs-1,x
bne LA2EB bne LA2EB
lda GP.SBUFADR+1 lda GP.SBUFADR+1
@ -67,7 +184,7 @@ LA327 lda XBBB7
ldx GP.OPENCNT ldx GP.OPENCNT
beq LA351 beq LA351
LA32F cmp BS.BUFPAGEs,x LA32F cmp BS.BUFPAGEs-1,x
bne LA34E bne LA34E
lda AS.HIMEM+1 lda AS.HIMEM+1
@ -97,8 +214,8 @@ LA356 pha
pla pla
rts rts
*-------------------------------------- *--------------------------------------
BS.MoveMemUp ldy #$00 BS.MoveMemDown ldy #$00
cpy BS.BUFPAGEs cpy BS.ReqMem+1
beq .2 beq .2
.1 lda (ZP.PCL),y .1 lda (ZP.PCL),y
@ -108,10 +225,10 @@ BS.MoveMemUp ldy #$00
inc ZP.PCH inc ZP.PCH
inc ZP.A1H inc ZP.A1H
dec BS.BUFPAGEs dec BS.ReqMem+1
bne .1 bne .1
.2 cpy XBBED .2 cpy BS.ReqMem
beq .8 beq .8
lda (ZP.PCL),y lda (ZP.PCL),y
@ -121,17 +238,17 @@ BS.MoveMemUp ldy #$00
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
BS.MoveMemDown ldy XBBED BS.MoveMemUp ldy BS.ReqMem
XA386 beq LA38F SELF MODIFIED XA386 beq LA38F SELF MODIFIED
LA388 jsr LA39A LA388 jsr LA39A
dec ZP.A1H dec ZP.A1H
dec ZP.PCH dec ZP.PCH
LA38F cpy BS.BUFPAGEs LA38F cpy BS.ReqMem+1
beq LA3A2 beq LA3A2
dec BS.BUFPAGEs dec BS.ReqMem+1
bra LA388 bra LA388
*-------------------------------------- *--------------------------------------
LA39A dey LA39A dey
@ -227,12 +344,12 @@ LA411 jsr LA021
sec sec
sbc AS.VARSTART sbc AS.VARSTART
sta BS.BAS.HDR sta BS.BAS.HDR
sta XBBED sta BS.ReqMem
lda AS.ARRAYEND+1 lda AS.ARRAYEND+1
sbc AS.VARSTART+1 sbc AS.VARSTART+1
sta BS.BAS.HDR+1 sta BS.BAS.HDR+1
sta BS.BUFPAGEs sta BS.ReqMem+1
lda AS.ARRAYSTART lda AS.ARRAYSTART
sbc AS.VARSTART sbc AS.VARSTART
@ -243,7 +360,7 @@ LA411 jsr LA021
sta BS.BAS.HDR+3 sta BS.BAS.HDR+3
lda AS.STRINGSTART lda AS.STRINGSTART
sbc XBBED sbc BS.ReqMem
sta ZP.A1L sta ZP.A1L
lda AS.STRINGSTART+1 lda AS.STRINGSTART+1
@ -251,7 +368,7 @@ LA411 jsr LA021
sta ZP.A1H sta ZP.A1H
lda AS.ARRAYEND lda AS.ARRAYEND
sbc XBBED sbc BS.ReqMem
sta ZP.PCL sta ZP.PCL
lda AS.ARRAYEND+1 lda AS.ARRAYEND+1
@ -260,12 +377,15 @@ LA411 jsr LA021
lda #$03 lda #$03
sta XA386+1 sta XA386+1
jsr BS.MoveMemDown
jsr BS.MoveMemUp
lda #$07 lda #$07
sta XA386+1 sta XA386+1
lda ZP.A1L lda ZP.A1L
sta XBBE9 sta XBBE9
inc ZP.A1H inc ZP.A1H
lda ZP.A1H lda ZP.A1H
sta XBBEA sta XBBEA
@ -284,13 +404,13 @@ LA411 jsr LA021
LA47F rts LA47F rts
*-------------------------------------- *--------------------------------------
LA480 lda BS.BAS.HDR LA480 lda BS.BAS.HDR
sta XBBED sta BS.ReqMem
clc clc
adc AS.VARSTART adc AS.VARSTART
sta AS.ARRAYEND sta AS.ARRAYEND
lda BS.BAS.HDR+1 lda BS.BAS.HDR+1
sta BS.BUFPAGEs sta BS.ReqMem+1
adc AS.VARSTART+1 adc AS.VARSTART+1
sta AS.ARRAYEND+1 sta AS.ARRAYEND+1
@ -308,9 +428,10 @@ LA480 lda BS.BAS.HDR
sta ZP.PCL sta ZP.PCL
lda XBBEA lda XBBEA
sta ZP.PCH sta ZP.PCH
jsr BS.MoveMemUp
lda XBBED jsr BS.MoveMemDown
lda BS.ReqMem
clc clc
adc ZP.PCL adc ZP.PCL
sta AS.STRINGSTART sta AS.STRINGSTART

View File

@ -731,7 +731,7 @@ LB2D5 jsr BS.GetSysBuf
adc BS.BUFPAGE adc BS.BUFPAGE
pha pha
LB2F2 cmp BS.BUFPAGEs,x LB2F2 cmp BS.BUFPAGEs-1,x
beq LB2FB beq LB2FB
dex dex
@ -740,7 +740,7 @@ LB2F2 cmp BS.BUFPAGEs,x
brk brk
LB2FB tya LB2FB tya
sta BS.BUFPAGEs,x sta BS.BUFPAGEs-1,x
lda BS.REFNUMs,x lda BS.REFNUMs,x
sta GP.MLIMRKEOFBUF.REFNUM sta GP.MLIMRKEOFBUF.REFNUM
lda #MLI.C.SETBUF lda #MLI.C.SETBUF
@ -750,6 +750,7 @@ LB2FB tya
brk brk
LB30D pla LB30D pla
LB30E sta BS.BUFPAGE LB30E sta BS.BUFPAGE
sta GP.OSYSBUF+1 sta GP.OSYSBUF+1
@ -760,7 +761,7 @@ LB30E sta BS.BUFPAGE
bcc LB327 bcc LB327
pha pha
jsr LA250 jsr BS.FreeSysBuf
pla pla
sec sec
rts rts
@ -906,14 +907,16 @@ LB41D jsr BS.GetSysBuf
lda BS.BUFPAGE lda BS.BUFPAGE
sta GP.OSYSBUF+1 sta GP.OSYSBUF+1
lda #$07 lda #$07
sta MLI.LEVEL sta MLI.LEVEL
lda #MLI.C.OPEN lda #MLI.C.OPEN
jsr GP.GOSYSTEM jsr GP.GOSYSTEM
bcc LB43B bcc LB43B
pha pha
jsr LA250 jsr BS.FreeSysBuf
pla pla
sec sec
rts rts
@ -929,7 +932,7 @@ LB443 lda #$00
sta GP.DIRFLG sta GP.DIRFLG
ldx GP.OPENCNT ldx GP.OPENCNT
lda BS.BUFPAGE lda BS.BUFPAGE
sta BS.BUFPAGEs+1,x sta BS.BUFPAGEs,x
lda GP.OREFNUM lda GP.OREFNUM
sta BS.REFNUMs+1,x sta BS.REFNUMs+1,x
inc GP.OPENCNT inc GP.OPENCNT
@ -1056,17 +1059,17 @@ BS.KW.CLOSE lda GP.FoundBITS
bcs LB4B1 bcs LB4B1
LB515 sta GP.MLICF.REFNUM LB515 sta GP.MLICF.REFNUM
lda BS.BUFPAGEs,x lda BS.BUFPAGEs-1,x
sta BS.BUFPAGE sta BS.BUFPAGE
bit GP.EXECFILE bit GP.EXECFILE
bmi LB53F bmi LB53F
ldy GP.OPENCNT ldy GP.OPENCNT
pha pha
lda BS.BUFPAGEs,y lda BS.BUFPAGEs-1,y
sta BS.BUFPAGEs,x sta BS.BUFPAGEs-1,x
pla pla
sta BS.BUFPAGEs,y sta BS.BUFPAGEs-1,y
lda BS.REFNUMs,x lda BS.REFNUMs,x
pha pha
lda BS.REFNUMs,y lda BS.REFNUMs,y
@ -1079,7 +1082,7 @@ LB53F stz MLI.LEVEL
jsr BS.MLIClose jsr BS.MLIClose
bcs LB572 bcs LB572
jsr LA250 jsr BS.FreeSysBuf
bit GP.EXECFILE bit GP.EXECFILE
bpl LB55E bpl LB55E

View File

@ -158,12 +158,16 @@ XBBE2 .BS 1
BS.BUFPAGE .BS 1 BS.BUFPAGE .BS 1
BS.BAS.HDR .BS 5 BS.BAS.HDR .BS 5
XBBE9 .BS 1 XBBE9 .BS 1
XBBEA .BS 1 XBBEA .BS 1
XBBEB .BS 1 XBBEB .BS 1
XBBEC .BS 1 XBBEC .BS 1
XBBED .BS 1
BS.BUFPAGEs .BS 8 BS.ReqMem .BS 2
BS.BUFPAGEs .BS 7
BS.REFNUMs .BS 8 BS.REFNUMs .BS 8
BS.REFNUM .BS 1 BS.REFNUM .BS 1
BS.RecordSize .BS 2 BS.RecordSize .BS 2

View File

@ -121,6 +121,7 @@ J.ESC .DA CS.RUN.CHARIN.LEFT
.DO TLS=1 .DO TLS=1
L.MSG.TLS .DA MSG.TLS L.MSG.TLS .DA MSG.TLS
L.MSG.TLS.1 .DA MSG.TLS.1 L.MSG.TLS.1 .DA MSG.TLS.1
L.MSG.TLSKO .DA MSG.TLSKO
L.TLS.CHELLO .DA TLS.CHELLO L.TLS.CHELLO .DA TLS.CHELLO
L.TLS.CHELLO.UT .DA TLS.CHELLO.UT L.TLS.CHELLO.UT .DA TLS.CHELLO.UT
.FIN .FIN
@ -362,28 +363,37 @@ CS.RUN.TLS jsr CS.RUN.TLS.init
>LIBCALL hLIBTCPIP,LIBTCPIP.Write >LIBCALL hLIBTCPIP,LIBTCPIP.Write
bcs .9 bcs .9
.1 >SLEEP lda #TIMEOUT.MAX
sta TimeOut
lda TimeOut .1 >SLEEP
bne .1
>PUSHB hSocket >PUSHB hSocket
>PUSHW ZPBufPtr >PUSHW ZPBufPtr
>PUSHWI 2048 >PUSHWI 2048
>LIBCALL hLIBTCPIP,LIBTCPIP.Read >LIBCALL hLIBTCPIP,LIBTCPIP.Read
bcs .9 bcc .2
ldx TimeOut
bne .1
>STYA ZPPtr2 RCVD len bra .9
.2 >STYA ZPPtr2 RCVD len
>PUSHW L.MSG.TLS.1 >PUSHW L.MSG.TLS.1
>PUSHW ZPPtr2 >PUSHW ZPPtr2
>PUSHBI 2 >PUSHBI 2
>SYSCALL PrintF >SYSCALL PrintF
sec sec
rts rts
.8 clc .9 pha
.9 rts >LDYA L.MSG.TLSKO
>SYSCALL PutS
pla
sec
rts
*-------------------------------------- *--------------------------------------
CS.RUN.TLS.init >LDYA L.MSG.TLS CS.RUN.TLS.init >LDYA L.MSG.TLS
>SYSCALL PutS >SYSCALL PutS
@ -1095,6 +1105,7 @@ MSG.SKTERR .AZ "Socket Error : $%h\r\n"
.DO TLS=1 .DO TLS=1
MSG.TLS .AZ "TLS:Negociation..." MSG.TLS .AZ "TLS:Negociation..."
MSG.TLS.1 .AZ "TLS:Received %D bytes.\r\n" MSG.TLS.1 .AZ "TLS:Received %D bytes.\r\n"
MSG.TLSKO .AZ "TLS:Negotiation failed."
.FIN .FIN
MSG.REGISTER .AZ "Registering User..." MSG.REGISTER .AZ "Registering User..."
MSG.JOIN .AZ "Joining Channel..." MSG.JOIN .AZ "Joining Channel..."
@ -1162,13 +1173,13 @@ TLS.CHELLO.UT .BS 4
TLS.CHELLO.R .BS 28 TLS.CHELLO.R .BS 28
.DA #0 SID .DA #0 SID
.DA #0,#2 CSL .DA #0,#2 CSL
.DA #0,#TLS.HS.CH.CS.RSAAES128GCMSHA256 .DA #0,#TLS.HS.CH.CS.RSAAES128CBCSHA256
.DA TLS.HS.CH.CM.NONE .DA TLS.HS.CH.CM.NONE
.DA /TLS.CHELLO.LE,#TLS.CHELLO.LE .DA /TLS.CHELLO.LE,#TLS.CHELLO.LE
TLS.CHELLO.E .HS 000D T=sig alg TLS.CHELLO.E .HS 000D T=sig alg
.HS 0004 sig alg Len .HS 0004 sig alg Len
.HS 0002 sig hash alg len .HS 0002 sig hash alg len
.HS 0401 RSA PKCS1 SHA256 .HS 0401 SHA256 RSA
TLS.CHELLO.L .EQ *-TLS.CHELLO TLS.CHELLO.L .EQ *-TLS.CHELLO
TLS.CHELLO.L1 .EQ *-TLS.CHELLO.1 TLS.CHELLO.L1 .EQ *-TLS.CHELLO.1
TLS.CHELLO.L2 .EQ *-TLS.CHELLO.2 TLS.CHELLO.L2 .EQ *-TLS.CHELLO.2

View File

@ -789,11 +789,11 @@ WRITE php
* dey * dey
* bpl .21 * bpl .21
lda #192 lda #255
sta W5100.DR,x sta W5100.DR,x
lda #168 lda #255
sta W5100.DR,x sta W5100.DR,x
lda #1 lda #255
sta W5100.DR,x sta W5100.DR,x
lda #255 lda #255
sta W5100.DR,x sta W5100.DR,x
@ -900,8 +900,8 @@ DCB .DA #S.DCB.T.NIC
.DA #S.DCB.NIC.SPEED.100 .DA #S.DCB.NIC.SPEED.100
.HS 0008DC123456 MAC .HS 0008DC123456 MAC
.DA #0,#0,#0,#0 IP .DA #0,#0,#0,#0 IP
.DA #255,#255,#255,#0 MASK .DA #0,#0,#0,#0 MASK
.DA #192,#168,#1,#254 GW .DA #255,#255,#255,#255 GW
*-------------------------------------- *--------------------------------------
FRM.HDR .HS 0800 S.ETH.EII.TYPE FRM.HDR .HS 0800 S.ETH.EII.TYPE
.HS 4500 .HS 4500

View File

@ -37,6 +37,9 @@ TLS.HS.CH.SID .EQ 36
TLS.HS.CH.CSL .EQ 37 TLS.HS.CH.CSL .EQ 37
TLS.HS.CH.CS .EQ 39 TLS.HS.CH.CS .EQ 39
TLS.HS.CH.CS.RSAAES128CBCSHA .EQ $2F TLS.HS.CH.CS.RSAAES128CBCSHA .EQ $2F
TLS.HS.CH.CS.RSAAES256CBCSHA .EQ $35
TLS.HS.CH.CS.RSAAES128CBCSHA256 .EQ $3C
TLS.HS.CH.CS.RSAAES256CBCSHA256 .EQ $3D
TLS.HS.CH.CS.RSAAES128GCMSHA256 .EQ $9C TLS.HS.CH.CS.RSAAES128GCMSHA256 .EQ $9C
TLS.HS.CH.CM .EQ 41 TLS.HS.CH.CM .EQ 41
TLS.HS.CH.CM.NONE .EQ 1 Len=1, value=0 TLS.HS.CH.CM.NONE .EQ 1 Len=1, value=0

View File

@ -334,11 +334,9 @@ BB.Seek lda BB.HdrTrk get track we're on
jsr .20 we are on 0/4 or 2/4 track jsr .20 we are on 0/4 or 2/4 track
lda #1 bra .10 no wait, next operation will be phy/plx/Ph0On,y
bra .9 no wait, next operation will be phy/plx/Ph0On,y
.1 cmp BB.TargetQTrack we are on 1/4 or 3/4 .1 cmp BB.TargetQTrack we are on 1/4 or 3/4
bcs .2 if CS, C > T, must move out bcs .2 if CS, C > T, must move out
inc CC: C < T, ON next PH inc CC: C < T, ON next PH
@ -386,7 +384,7 @@ BB.Seek lda BB.HdrTrk get track we're on
.9 jsr BB.Wait100usecA ...wait... .9 jsr BB.Wait100usecA ...wait...
lda BB.CurrentQTrack .10 lda BB.CurrentQTrack
cmp BB.TargetQTrack cmp BB.TargetQTrack
bne .3 bne .3
@ -395,12 +393,12 @@ BB.Seek lda BB.HdrTrk get track we're on
lda #0 lda #0
jsr BB.Wait100usecA jsr BB.Wait100usecA
bcc .10 bcc .11
sta IO.D2.Ph0Off,x lda IO.D2.Ph0Off,x
nop nop
nop nop
.10 lda IO.D2.Ph0Off,y .11 lda IO.D2.Ph0Off,y
*-------------------------------------- *--------------------------------------
BB.Read ldx BB.Slotn0 BB.Read ldx BB.Slotn0

View File

@ -138,7 +138,7 @@ D2.MoveHead.SEI lda D2.CurrentQTrack
bcc .90 bcc .90
sta IO.D2.Ph0Off,x lda IO.D2.Ph0Off,x
nop nop
nop nop
.90 lda IO.D2.Ph0Off,y .90 lda IO.D2.Ph0Off,y

View File

@ -838,7 +838,7 @@ XRW.SeekYA sta XRW.D2Trk-1,x will be current track at the end
bcc .90 bcc .90
sta IO.D2.Ph0Off,x lda IO.D2.Ph0Off,x
nop nop
clc Exit wit CC (recalibrate) clc Exit wit CC (recalibrate)