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
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
SAVE usr/src/basic.fx/basic.s.a
LOAD usr/src/basic.fx/basic.s

View File

@ -1,6 +1,123 @@
NEW
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
bcs LA304
@ -18,7 +135,7 @@ LA2C5 sta GP.SBUFADR+1
adc #$04
sta XBBB7
LA2D6 cmp BS.BUFPAGEs,x
LA2D6 cmp BS.BUFPAGEs-1,x
bne LA2EB
lda GP.SBUFADR+1
@ -67,7 +184,7 @@ LA327 lda XBBB7
ldx GP.OPENCNT
beq LA351
LA32F cmp BS.BUFPAGEs,x
LA32F cmp BS.BUFPAGEs-1,x
bne LA34E
lda AS.HIMEM+1
@ -97,8 +214,8 @@ LA356 pha
pla
rts
*--------------------------------------
BS.MoveMemUp ldy #$00
cpy BS.BUFPAGEs
BS.MoveMemDown ldy #$00
cpy BS.ReqMem+1
beq .2
.1 lda (ZP.PCL),y
@ -108,10 +225,10 @@ BS.MoveMemUp ldy #$00
inc ZP.PCH
inc ZP.A1H
dec BS.BUFPAGEs
dec BS.ReqMem+1
bne .1
.2 cpy XBBED
.2 cpy BS.ReqMem
beq .8
lda (ZP.PCL),y
@ -121,17 +238,17 @@ BS.MoveMemUp ldy #$00
.8 rts
*--------------------------------------
BS.MoveMemDown ldy XBBED
BS.MoveMemUp ldy BS.ReqMem
XA386 beq LA38F SELF MODIFIED
LA388 jsr LA39A
dec ZP.A1H
dec ZP.PCH
LA38F cpy BS.BUFPAGEs
LA38F cpy BS.ReqMem+1
beq LA3A2
dec BS.BUFPAGEs
dec BS.ReqMem+1
bra LA388
*--------------------------------------
LA39A dey
@ -227,12 +344,12 @@ LA411 jsr LA021
sec
sbc AS.VARSTART
sta BS.BAS.HDR
sta XBBED
sta BS.ReqMem
lda AS.ARRAYEND+1
sbc AS.VARSTART+1
sta BS.BAS.HDR+1
sta BS.BUFPAGEs
sta BS.ReqMem+1
lda AS.ARRAYSTART
sbc AS.VARSTART
@ -243,7 +360,7 @@ LA411 jsr LA021
sta BS.BAS.HDR+3
lda AS.STRINGSTART
sbc XBBED
sbc BS.ReqMem
sta ZP.A1L
lda AS.STRINGSTART+1
@ -251,7 +368,7 @@ LA411 jsr LA021
sta ZP.A1H
lda AS.ARRAYEND
sbc XBBED
sbc BS.ReqMem
sta ZP.PCL
lda AS.ARRAYEND+1
@ -260,12 +377,15 @@ LA411 jsr LA021
lda #$03
sta XA386+1
jsr BS.MoveMemDown
jsr BS.MoveMemUp
lda #$07
sta XA386+1
lda ZP.A1L
sta XBBE9
inc ZP.A1H
lda ZP.A1H
sta XBBEA
@ -284,13 +404,13 @@ LA411 jsr LA021
LA47F rts
*--------------------------------------
LA480 lda BS.BAS.HDR
sta XBBED
sta BS.ReqMem
clc
adc AS.VARSTART
sta AS.ARRAYEND
lda BS.BAS.HDR+1
sta BS.BUFPAGEs
sta BS.ReqMem+1
adc AS.VARSTART+1
sta AS.ARRAYEND+1
@ -308,9 +428,10 @@ LA480 lda BS.BAS.HDR
sta ZP.PCL
lda XBBEA
sta ZP.PCH
jsr BS.MoveMemUp
lda XBBED
jsr BS.MoveMemDown
lda BS.ReqMem
clc
adc ZP.PCL
sta AS.STRINGSTART

View File

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

View File

@ -158,12 +158,16 @@ XBBE2 .BS 1
BS.BUFPAGE .BS 1
BS.BAS.HDR .BS 5
XBBE9 .BS 1
XBBEA .BS 1
XBBEB .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.REFNUM .BS 1
BS.RecordSize .BS 2

View File

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

View File

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

View File

@ -37,6 +37,9 @@ TLS.HS.CH.SID .EQ 36
TLS.HS.CH.CSL .EQ 37
TLS.HS.CH.CS .EQ 39
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.CM .EQ 41
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
lda #1
bra .9 no wait, next operation will be phy/plx/Ph0On,y
bra .10 no wait, next operation will be phy/plx/Ph0On,y
.1 cmp BB.TargetQTrack we are on 1/4 or 3/4
bcs .2 if CS, C > T, must move out
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...
lda BB.CurrentQTrack
.10 lda BB.CurrentQTrack
cmp BB.TargetQTrack
bne .3
@ -395,12 +393,12 @@ BB.Seek lda BB.HdrTrk get track we're on
lda #0
jsr BB.Wait100usecA
bcc .10
bcc .11
sta IO.D2.Ph0Off,x
lda IO.D2.Ph0Off,x
nop
nop
.10 lda IO.D2.Ph0Off,y
.11 lda IO.D2.Ph0Off,y
*--------------------------------------
BB.Read ldx BB.Slotn0

View File

@ -138,7 +138,7 @@ D2.MoveHead.SEI lda D2.CurrentQTrack
bcc .90
sta IO.D2.Ph0Off,x
lda IO.D2.Ph0Off,x
nop
nop
.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
sta IO.D2.Ph0Off,x
lda IO.D2.Ph0Off,x
nop
clc Exit wit CC (recalibrate)