More BASIC fixes

This commit is contained in:
burniouf 2022-03-15 20:33:19 +01:00
parent 14ef9a85fe
commit 38cbd00f7e
9 changed files with 263 additions and 234 deletions

Binary file not shown.

View File

@ -106,17 +106,29 @@ BS.SetCSWKSW2VDOS
rts rts
*-------------------------------------- *--------------------------------------
BS.IO.IN bit GP.EXECACTV BS.IO.IN bit GP.EXECACTV
bpl L9AC5 bpl .1
jsr BS.SaveAXY jsr BS.SaveAXY
jmp BS.IO.IN.EXEC jmp BS.IO.IN.EXEC
L9AC5 jsr BS.ResetCSWKSW .1 jsr BS.ResetCSWKSW
jsr MON.KEYIN0 jsr MON.KEYIN0
cmp #$8D cmp #$8D
bne L9AEB beq .5
cmp #$FF
bne L9AEB
jsr BS.SaveAXY lda #$88
jsr MON.COUT
lda #$A0
jsr MON.COUT
lda #$88
bra L9AEB
.5 jsr BS.SaveAXY
sta IO.LINEBUF,x sta IO.LINEBUF,x
BS.CheckDOSCMD jsr BS.DOSCMD BS.CheckDOSCMD jsr BS.DOSCMD
@ -131,8 +143,9 @@ BS.CheckDOSCMD jsr BS.DOSCMD
beq L9AEB beq L9AEB
L9AE8 jsr BS.RestoreAXY L9AE8 jsr BS.RestoreAXY
L9AEB jmp BS.SaveCSWKSW
L9AEB jmp BS.SaveCSWKSW
*--------------------------------------
BS.NODEVERR lda #$03 BS.NODEVERR lda #$03
BS.ERROUT sta GP.ERRCODE BS.ERROUT sta GP.ERRCODE
@ -148,8 +161,7 @@ BS.ERROUT sta GP.ERRCODE
stz GP.PFXACTV stz GP.PFXACTV
stz GP.MLICF.REFNUM stz GP.MLICF.REFNUM
lda #MLI.C.CLOSE jsr BS.MLIClose
jsr GP.GOSYSTEM
bcs L9B27 bcs L9B27
jsr LA004 jsr LA004
@ -191,7 +203,7 @@ L9B4D ldx AS.REMSTK
L9B53 lda #$03 L9B53 lda #$03
jmp AS.BITERRFLG jmp AS.BITERRFLG
*--------------------------------------
L9B58 stz AS.ERRNUM L9B58 stz AS.ERRNUM
lda #$A3 lda #$A3
sta X9F65 sta X9F65
@ -201,7 +213,7 @@ L9B58 stz AS.ERRNUM
jsr BS.SetState0 jsr BS.SetState0
jsr BS.RestoreAXY jsr BS.RestoreAXY
jmp BS.IO.IN jmp BS.IO.IN
*--------------------------------------
BS.IO.IN0 jsr BS.SaveAXY BS.IO.IN0 jsr BS.SaveAXY
bit GP.PFXACTV bit GP.PFXACTV
bpl L9B7E bpl L9B7E
@ -236,7 +248,7 @@ L9B94 lda GP.PREGA
L9BAA lda #$88 L9BAA lda #$88
L9BAC jmp BS.SaveCSWKSW L9BAC jmp BS.SaveCSWKSW
*--------------------------------------
BS.IO.IN.EXEC sta (ZP.BASL),y BS.IO.IN.EXEC sta (ZP.BASL),y
lda ZP.PROMPT lda ZP.PROMPT
cmp #$BE cmp #$BE
@ -298,7 +310,7 @@ L9C0E lda (ZP.BASL),y
jmp (ZP.KSW) jmp (ZP.KSW)
L9C13 jmp BS.ERROUT L9C13 jmp BS.ERROUT
*--------------------------------------
BS.IO.IN.FILE lda ZP.PROMPT BS.IO.IN.FILE lda ZP.PROMPT
cmp #$DD cmp #$DD
bne L9C1F bne L9C1F
@ -331,7 +343,7 @@ L9C42 jsr BS.ReadOneByte
bcs L9C13 bcs L9C13
rts rts
*--------------------------------------
BS.ReadOneByte lda GP.MLIRW.COUNT BS.ReadOneByte lda GP.MLIRW.COUNT
sta GP.ParamL sta GP.ParamL
lda #$01 lda #$01
@ -346,7 +358,7 @@ BS.ReadOneByte lda GP.MLIRW.COUNT
lda IO.LINEBUF,x lda IO.LINEBUF,x
L9C66 rts L9C66 rts
*--------------------------------------
L9C67 lda GP.PREGA L9C67 lda GP.PREGA
sta (ZP.BASL),y sta (ZP.BASL),y
@ -488,7 +500,7 @@ L9D5D dec GP.CATFLAG
L9D65 jsr LA4D2 L9D65 jsr LA4D2
jmp L9CF5 jmp L9CF5
*--------------------------------------
BS.IO.IN.CAT cmp #$DD BS.IO.IN.CAT cmp #$DD
bne L9D72 bne L9D72
@ -508,7 +520,7 @@ L9D7F lda BS.CMDBUF.LEN,x
ldx BS.CMDBUF.LEN ldx BS.CMDBUF.LEN
lda #$8D lda #$8D
rts rts
*--------------------------------------
BS.Setup4readEFBytesAt200 BS.Setup4readEFBytesAt200
lda XBBFE lda XBBFE
sta GP.MLIRW.REFNUM sta GP.MLIRW.REFNUM
@ -520,16 +532,16 @@ BS.Setup4readEFBytesAt200
stz GP.MLIRW.COUNT+1 stz GP.MLIRW.COUNT+1
stz GP.MLIRW.DATAPTR stz GP.MLIRW.DATAPTR
rts rts
*--------------------------------------
BS.VSYSO jsr BS.SaveAXY BS.VSYSO jsr BS.SaveAXY
cmp #$84 cmp #$84
bne L9DC5 bne L9DC5
jsr BS.WriteTBUF jsr BS.WriteTBUF
sta GP.INPTR stz GP.INPTR
sta GP.IFILACTV stz GP.IFILACTV
sta GP.OFILACTV stz GP.OFILACTV
sta GP.PFXACTV stz GP.PFXACTV
ldx #$08 ldx #$08
jsr BS.SetState jsr BS.SetState
jmp BS.RestoreAXY jmp BS.RestoreAXY
@ -538,7 +550,7 @@ L9DC5 ldx #$04
jsr BS.SetState jsr BS.SetState
jsr BS.RestoreAXY jsr BS.RestoreAXY
jmp BS.JMP.GP.VSYSO jmp BS.JMP.GP.VSYSO
*--------------------------------------
BS.IO.OUT.CAT jsr BS.SaveAXY BS.IO.OUT.CAT jsr BS.SaveAXY
ldx GP.INPTR ldx GP.INPTR
sta IO.LINEBUF,x sta IO.LINEBUF,x
@ -596,7 +608,7 @@ L9E15 ldy GP.TBUFPTR
jsr BS.RestoreAXY jsr BS.RestoreAXY
L9E2F rts L9E2F rts
*--------------------------------------
BS.IO.OUT.TRACE pha BS.IO.OUT.TRACE pha
stx GP.PREGX stx GP.PREGX
tsx tsx
@ -719,35 +731,36 @@ L9EF2 jmp AS.EXECSTMT
L9EF5 sta ZP.PROMPT L9EF5 sta ZP.PROMPT
tay tay
lda BS.BYTES-$80,y lda BS.AS.KW-$80,y
bmi L9EF2 bmi L9EF2
sta X9F00+1 sta X9F00+1
X9F00 bne L9F02 SELF MODIFIED X9F00 bne BS.AS.KW0 SELF MODIFIED
BS.AS.KW0
L9F02 sta ZP.PROMPT BS.AS.KW.IF
BS.AS.KW.PRINT
sta ZP.PROMPT
sta GP.CHRLAST sta GP.CHRLAST
lda BS.VSYSO.LO lda #BS.VSYSO
sta GP.VSYSO sta GP.VSYSO
lda BS.VSYSO.HI lda /BS.VSYSO
sta GP.VSYSO+1 sta GP.VSYSO+1
bne L9F32 bne L9F32
lda #$01 BS.AS.KW.LIST lda #$01
.HS 2C BIT ABS
BS.AS.KW.CALL lda #$02
sta ZP.PROMPT sta ZP.PROMPT
bne L9F32 bne L9F32
lda #$02 BS.AS.KW.LET tya
sta ZP.PROMPT
bne L9F32
tya
jmp L9ED2 jmp L9ED2
sty GP.DTRACE BS.AS.KW.TRACE sty GP.DTRACE
bne L9F2E bne L9F2E
BS.AS.KW.NOTRACE
sta GP.DTRACE sta GP.DTRACE
dey dey
@ -757,13 +770,9 @@ L9F2E lda #$4A
L9F32 tya L9F32 tya
jmp AS.EXECSTMT jmp AS.EXECSTMT
brk BS.AS.KW.RESUME stz AS.ERRNUM
tya
* UNREACHABLE CODE ???? bne L9EF0
* lda #$00
* sta AS.ERRNUM
* tya
* bne L9EF0
L9F3D jsr BS.ResetCSWKSW L9F3D jsr BS.ResetCSWKSW
lda #$A3 lda #$A3
@ -776,30 +785,29 @@ L9F3D jsr BS.ResetCSWKSW
jsr BS.SaveCSWKSW jsr BS.SaveCSWKSW
sec sec
jmp L9ECA jmp L9ECA
BS.AS.KW.FLASH
lda #$E3 lda #$E3
bne L9F5E bne L9F5E
BS.AS.KW.NORMAL
BS.AS.KW.INVERSE
lda #$A3 lda #$A3
L9F5E sta X9F65 L9F5E sta X9F65
tya tya
bne L9EF0 bne L9EF0
brk
X9F65 .DA #$A3 X9F65 .DA #$A3
*--------------------------------------
BS.SaveAXY sta GP.PREGA BS.SaveAXY sta GP.PREGA
stx GP.PREGX stx GP.PREGX
sty GP.PREGY sty GP.PREGY
rts rts
*--------------------------------------
BS.RestoreAXY lda GP.PREGA BS.RestoreAXY lda GP.PREGA
ldx GP.PREGX ldx GP.PREGX
ldy GP.PREGY ldy GP.PREGY
rts rts
*--------------------------------------
BS.SetState stx GP.STATE BS.SetState stx GP.STATE
ldy #$00 ldy #$00
@ -811,7 +819,7 @@ BS.SetState stx GP.STATE
bne .1 bne .1
rts rts
*--------------------------------------
BS.PRINTERR tay BS.PRINTERR tay
ldx BS.ERRCODES-1,y ldx BS.ERRCODES-1,y
@ -853,7 +861,7 @@ L9FC4 tay
bne L9FBA bne L9FBA
L9FD5 rts L9FD5 rts
*--------------------------------------
L9FD6 lda BS.TBL7,x L9FD6 lda BS.TBL7,x
bcs L9FED bcs L9FED
@ -879,7 +887,7 @@ L9FED inx
*-------------------------------------- *--------------------------------------
BS.WriteTBUF256 lda #$00 BS.WriteTBUF256 lda #$00
ldy #$01 ldy #$01
bne LA00B bne BS.WriteTBUFAY
BS.WriteTBUF jsr LA004 BS.WriteTBUF jsr LA004
bcc LA020 bcc LA020
@ -889,12 +897,12 @@ BS.WriteTBUF jsr LA004
pla pla
tya tya
jmp BS.ERROUT jmp BS.ERROUT
*--------------------------------------
LA004 ldy #$00 LA004 ldy #$00
lda GP.TBUFPTR lda GP.TBUFPTR
beq LA01F beq LA01F
LA00B sta GP.MLIRW.COUNT BS.WriteTBUFAY sta GP.MLIRW.COUNT
sty GP.MLIRW.COUNT+1 sty GP.MLIRW.COUNT+1
lda #MLI.C.WRITE lda #MLI.C.WRITE
jsr GP.GOSYSTEM jsr GP.GOSYSTEM
@ -905,7 +913,7 @@ LA00B sta GP.MLIRW.COUNT
LA01F clc LA01F clc
LA020 rts LA020 rts
*--------------------------------------
LA021 jsr BS.KW.01 LA021 jsr BS.KW.01
bcs LA047 bcs LA047

View File

@ -5,6 +5,7 @@ BS.WHICHBITS .HS 8040201008040201
BS.GETBUFR jsr LA1FB BS.GETBUFR jsr LA1FB
bcs LA304 bcs LA304
pha pha
sbc #$03 sbc #$03
sta XBBB8 sta XBBB8
@ -120,7 +121,7 @@ LA376 cpy XBBED
bne LA376 bne LA376
LA382 rts LA382 rts
*--------------------------------------
LA383 ldy XBBED LA383 ldy XBBED
XA386 beq LA38F SELF MODIFIED XA386 beq LA38F SELF MODIFIED
@ -133,7 +134,7 @@ LA38F cpy XBBEE
dec XBBEE dec XBBEE
jmp LA388 jmp LA388
*--------------------------------------
LA39A dey LA39A dey
lda (ZP.PCL),y lda (ZP.PCL),y
sta (ZP.A1L),y sta (ZP.A1L),y
@ -141,7 +142,7 @@ LA39A dey
bne LA39A bne LA39A
LA3A2 rts LA3A2 rts
*--------------------------------------
LA3A3 lda AS.VARSTART+1 LA3A3 lda AS.VARSTART+1
sta ZP.A2H sta ZP.A2H
lda AS.VARSTART lda AS.VARSTART
@ -823,8 +824,7 @@ LA7ED lda GP.FoundBITS+1
stz BS.CMDBUF stz BS.CMDBUF
lda #$01 lda #$01
ora GP.FoundBITS tsb GP.FoundBITS
sta GP.FoundBITS
LA806 jsr BS.GetVolAtSxDy LA806 jsr BS.GetVolAtSxDy
bcs LA849 bcs LA849
@ -993,8 +993,7 @@ LA90A lda #$04
and GP.AllowedBITS and GP.AllowedBITS
beq LA931 beq LA931
ora GP.FoundBITS tsb GP.FoundBITS
sta GP.FoundBITS
stz XBC08 stz XBC08
@ -1031,8 +1030,7 @@ LA935 lda BS.KW.OPT.PBITSLO,y
sta GP.ParamD sta GP.ParamD
lda #$04 lda #$04
LA94F ora GP.FoundBITS+1 LA94F tsb GP.FoundBITS+1
sta GP.FoundBITS+1
LA955 lda BS.KW.OPT.PBITSHI,y LA955 lda BS.KW.OPT.PBITSHI,y
and #$03 and #$03
@ -1327,7 +1325,7 @@ BS.IsIntCmd ldx #$1F
LAB03 ldy #$08 LAB03 ldy #$08
sty GP.XLEN sty GP.XLEN
LAB08 lda BS.KW.LEN,x LAB08 lda BS.KW.LEN-1,x
bpl LAB13 bpl LAB13
and #$7F and #$7F
@ -1383,8 +1381,10 @@ BS.KW.APPEND lda GP.FITYPE
LAB63 cmp #$FF LAB63 cmp #$FF
beq LAB6F beq LAB6F
cmp #$B3 cmp #$B3
beq LAB6F beq LAB6F
lda #$0D lda #$0D
sec sec
rts rts
@ -1517,7 +1517,7 @@ LAC5E lda #$0E
jsr BS.ReadXYBytes jsr BS.ReadXYBytes
bcs LAC33 bcs LAC33
jsr BS.FileClose jsr BS.MLIClose
bcs LAC33 bcs LAC33
jsr LAC80 jsr LAC80
@ -1626,7 +1626,7 @@ LACFE lda #$02
jsr GP.GOSYSTEM jsr GP.GOSYSTEM
bcs LAD47 bcs LAD47
jsr BS.FileClose jsr BS.MLIClose
bcs LAD47 bcs LAD47
lda AS.PGRMSTART+1 lda AS.PGRMSTART+1
@ -1646,7 +1646,7 @@ LAD48 stx GP.FIAUXTYPE
*-------------------------------------- *--------------------------------------
BS.KW.CREATE stz GP.CRAUXTYPE BS.KW.CREATE stz GP.CRAUXTYPE
stz GP.CRAUXTYPE+1 stz GP.CRAUXTYPE+1
>DEBUG
lda GP.FoundBITS lda GP.FoundBITS
and #CMDBITS0.T and #CMDBITS0.T
bne BS.CreateFileOrDir bne BS.CreateFileOrDir
@ -1677,7 +1677,7 @@ LAD82 stx GP.CRACCESS
LAD8D lda #$0C LAD8D lda #$0C
rts rts
*--------------------------------------
BS.KW.RENAME lda GP.FoundBITS BS.KW.RENAME lda GP.FoundBITS
lsr lsr
lsr lsr
@ -1685,24 +1685,24 @@ BS.KW.RENAME lda GP.FoundBITS
bcs LAD9E bcs LAD9E
jmp BS.ERR10 jmp BS.ERR10
*--------------------------------------
BS.KW.DELETE lda #MLI.C.DESTROY BS.KW.DELETE lda #MLI.C.DESTROY
LAD9E jmp GP.GOSYSTEM LAD9E jmp GP.GOSYSTEM
*--------------------------------------
BS.KW.LOCK jsr BS.GetFileInfo BS.KW.LOCK jsr BS.GetFileInfo
lda GP.FIACCESS lda GP.FIACCESS
and #$3C and #$3C
ora #$01 ora #$01
sta GP.FIACCESS bra BS.KW.UNLOCK1
jmp BS.SetFileInfo *--------------------------------------
BS.KW.UNLOCK jsr BS.GetFileInfo BS.KW.UNLOCK jsr BS.GetFileInfo
lda #$C3 lda #$C3
ora GP.FIACCESS ora GP.FIACCESS
sta GP.FIACCESS
jmp BS.SetFileInfo
BS.KW.UNLOCK1 sta GP.FIACCESS
jmp BS.SetFileInfo
*--------------------------------------
BS.KW.PREFIX lda GP.FoundBITS+1 BS.KW.PREFIX lda GP.FoundBITS+1
and #$04 and #$04
sec sec
@ -1711,7 +1711,7 @@ BS.KW.PREFIX lda GP.FoundBITS+1
lda GP.FoundBITS lda GP.FoundBITS
lsr lsr
LADCB lda #$C6 LADCB lda #MLI.C.SETPREFIX
bcs LAD9E bcs LAD9E
lda ZP.PROMPT lda ZP.PROMPT
@ -1734,8 +1734,8 @@ LADE8 jsr BS.CROUT
clc clc
rts rts
LADF0 lda #$FF LADF0 sec
sta GP.PFXACTV ror GP.PFXACTV
clc clc
rts rts
*-------------------------------------- *--------------------------------------

View File

@ -35,7 +35,7 @@ LAE31 lda #$06
LAE33 sec LAE33 sec
rts rts
*--------------------------------------
BS.KW.BRUN jsr BS.KW.BLOAD BS.KW.BRUN jsr BS.KW.BLOAD
bcs LAE33 bcs LAE33
@ -44,7 +44,7 @@ BS.KW.BRUN jsr BS.KW.BLOAD
rts rts
LAE3F jmp (GP.MLIRW.DATAPTR) LAE3F jmp (GP.MLIRW.DATAPTR)
*--------------------------------------
BS.KW.BLOAD lda #$01 BS.KW.BLOAD lda #$01
LAE44 ldx #$06 LAE44 ldx #$06
jsr BS.CheckFTypeXAccessA jsr BS.CheckFTypeXAccessA
@ -152,7 +152,7 @@ LAEDD lda #MLI.C.SETMARK
rts rts
LAEF7 ldx GP.XCNUM LAEF7 ldx GP.XCNUM
lda #$CA lda #MLI.C.READ
cpx #$0F cpx #$0F
bne LAF24 bne LAF24
@ -182,11 +182,11 @@ LAF24 jsr GP.GOSYSTEM
jsr BS.SetFileInfoNoDate jsr BS.SetFileInfoNoDate
LAF35 jmp BS.FileClose LAF35 jmp BS.MLIClose
LAF38 sec LAF38 sec
rts rts
*--------------------------------------
BS.KW.SAVE bcc LAF4E BS.KW.SAVE bcc LAF4E
lda #$FD lda #$FD
@ -230,7 +230,7 @@ LAF4E jsr LA411
jsr BS.SetFileInfoNoDate jsr BS.SetFileInfoNoDate
bcs LAF95 bcs LAF95
jsr BS.FileClose jsr BS.MLIClose
LAF95 php LAF95 php
pha pha
@ -238,7 +238,7 @@ LAF95 php
pla pla
plp plp
LAF9C rts LAF9C rts
*--------------------------------------
BS.SetupRW5AtBBE4 BS.SetupRW5AtBBE4
lda #$E4 lda #$E4
sta GP.MLIRW.DATAPTR sta GP.MLIRW.DATAPTR
@ -247,7 +247,7 @@ BS.SetupRW5AtBBE4
ldy #$00 ldy #$00
ldx #$05 ldx #$05
rts rts
*--------------------------------------
BS.KW.LOAD ldx #$FD BS.KW.LOAD ldx #$FD
lda #$01 lda #$01
jsr BS.CheckFTypeXAccessA jsr BS.CheckFTypeXAccessA
@ -281,29 +281,28 @@ BS.KW.LOAD ldx #$FD
jsr BS.ReadXYBytes jsr BS.ReadXYBytes
bcs LAF9C bcs LAF9C
jsr BS.FileClose jsr BS.MLIClose
jmp LAF95 jmp LAF95
LAFF3 lda #$0E LAFF3 lda #$0E
sec sec
rts rts
*--------------------------------------
BS.FileClose lda #MLI.C.CLOSE
bne LB007
BS.ReadXYBytes lda #MLI.C.READ BS.ReadXYBytes lda #MLI.C.READ
bne LB001 .HS 2C BIT ABS
BS.WriteXYBytes lda #MLI.C.WRITE BS.WriteXYBytes lda #MLI.C.WRITE
LB001 sty GP.MLIRW.COUNT+1 sty GP.MLIRW.COUNT+1
stx GP.MLIRW.COUNT stx GP.MLIRW.COUNT
LB007 jmp GP.GOSYSTEM .HS 2C BIT ABS
BS.MLIClose lda #MLI.C.CLOSE
jmp GP.GOSYSTEM
*--------------------------------------
BS.KW.IN lda #$00 BS.KW.IN lda #$00
sta BS.GetCharSep sta BS.GetCharSep
beq LB018 beq LB018
*--------------------------------------
BS.KW.PR lda #$02 BS.KW.PR lda #$02
sta BS.GetCharSep sta BS.GetCharSep
lda #$08 lda #$08
@ -341,7 +340,7 @@ LB04A jsr LB05C
lda GP.ParamA lda GP.ParamA
sta GP.OUTVECT0,x sta GP.OUTVECT0,x
LB05B rts LB05B rts
*--------------------------------------
LB05C lda GP.ParamA LB05C lda GP.ParamA
sta ZP.PCL sta ZP.PCL
lda GP.ParamA+1 lda GP.ParamA+1
@ -447,7 +446,7 @@ LB0FD lda IO.KBD
LB10E lda #$FF LB10E lda #$FF
bne LB0E8 bne LB0E8
LB113 jsr BS.FileClose LB113 jsr BS.MLIClose
bcs LB127 bcs LB127
jsr BS.CROUT jsr BS.CROUT
@ -488,10 +487,7 @@ LB142 lda DIRENTBUF,y
rts rts
LB157 ldx #BS.CMDBUF LB157 ldx #BS.CMDBUF
* sta GP.SBUFADR
ldy /BS.CMDBUF ldy /BS.CMDBUF
* sta GP.SBUFADR+1
jsr BS.SetSBUFADRXY jsr BS.SetSBUFADRXY
lda MLI.DEVNUM lda MLI.DEVNUM
@ -552,7 +548,7 @@ BS.ReadDirEnt lda #$59
sta GP.MLIRW.DATAPTR+1 sta GP.MLIRW.DATAPTR+1
lda #$2B lda #$2B
sta GP.MLIRW.COUNT sta GP.MLIRW.COUNT
stz GP.MLIRW.COUNT+1 stz GP.MLIRW.COUNT+1
lda #MLI.C.READ lda #MLI.C.READ
jsr GP.GOSYSTEM jsr GP.GOSYSTEM
@ -568,7 +564,7 @@ LB1EA lda $27C,x
sta GP.MLIRW.COUNT sta GP.MLIRW.COUNT
lda #$01 lda #$01
sta XBC16 sta XBC16
stz GP.SBUFADR+1 stz GP.SBUFADR+1
stz GP.SBUFADR+2 stz GP.SBUFADR+2
LB203 rts LB203 rts
@ -649,16 +645,18 @@ LB268 adc #$04
lda DIRENTBUF lda DIRENTBUF
and #$F0 and #$F0
beq LB241 beq LB241
* BUG on DEC word
dec XBC14 lda XBC14
bne LB28D bne .1
dec XBC15 dec XBC15
.1 dec XBC14
LB28D rts LB28D rts
BS.JMP.XTRNADDR jmp (GP.XTRNADDR) BS.JMP.XTRNADDR jmp (GP.XTRNADDR)
*--------------------------------------
BS.KW.EXEC jsr BS.CheckFilename BS.KW.EXEC jsr BS.CheckFilename
bcs LB2C0 bcs LB2C0
@ -666,9 +664,9 @@ BS.KW.EXEC jsr BS.CheckFilename
bpl LB2BC bpl LB2BC
sta GP.MLIMRKEOFBUF.REFNUM sta GP.MLIMRKEOFBUF.REFNUM
jsr BS.ZeroSBUFADR jsr BS.ZeroSBUFADR
lda #MLI.C.SETMARK lda #MLI.C.SETMARK
jsr GP.GOSYSTEM jsr GP.GOSYSTEM
bcs LB2B5 bcs LB2B5
@ -704,7 +702,7 @@ LB2D5 jsr LA1F9
bcs LB2D3 bcs LB2D3
stz GP.SBUFADR stz GP.SBUFADR
lda XBBE3 lda XBBE3
sta GP.SBUFADR+1 sta GP.SBUFADR+1
ldx GP.OPENCNT ldx GP.OPENCNT
@ -716,6 +714,7 @@ LB2D5 jsr LA1F9
asl asl
adc XBBE3 adc XBBE3
pha pha
LB2F2 cmp XBBEE,x LB2F2 cmp XBBEE,x
beq LB2FB beq LB2FB
@ -737,9 +736,9 @@ LB2FB tya
LB30D pla LB30D pla
LB30E sta XBBE3 LB30E sta XBBE3
sta GP.OSYSBUF+1 sta GP.OSYSBUF+1
stz MLI.LEVEL stz MLI.LEVEL
lda #MLI.C.OPEN lda #MLI.C.OPEN
jsr GP.GOSYSTEM jsr GP.GOSYSTEM
bcc LB327 bcc LB327
@ -780,7 +779,7 @@ LB364 lda #$FF
sta GP.EXECACTV sta GP.EXECACTV
clc clc
rts rts
*--------------------------------------
LB36B lda GP.EXECACTV LB36B lda GP.EXECACTV
bpl LB37B bpl LB37B
@ -1059,9 +1058,8 @@ LB515 sta GP.MLICF.REFNUM
sta XBBF6,y sta XBBF6,y
LB53F stz MLI.LEVEL LB53F stz MLI.LEVEL
lda #MLI.C.CLOSE jsr BS.MLIClose
jsr GP.GOSYSTEM
bcs LB572 bcs LB572
jsr LA250 jsr LA250
@ -1090,9 +1088,8 @@ LB573 stz GP.MLICF.REFNUM
lda #$07 lda #$07
sta MLI.LEVEL sta MLI.LEVEL
lda #MLI.C.CLOSE jmp BS.MLIClose
jmp GP.GOSYSTEM *--------------------------------------
BS.KW.CLOSE jsr BS.CheckFilename BS.KW.CLOSE jsr BS.CheckFilename
bcs LB5EF bcs LB5EF
@ -1100,7 +1097,7 @@ BS.KW.CLOSE jsr BS.CheckFilename
sta GP.NEWLREF sta GP.NEWLREF
bit GP.DIRFLG bit GP.DIRFLG
bmi LB5F0 bmi LB5F0
*--------------------------------------
LB592 lda GP.FoundBITS+1 LB592 lda GP.FoundBITS+1
and #$03 and #$03
beq LB5ED beq LB5ED
@ -1150,7 +1147,7 @@ LB5CB lda GP.ParamF
LB5ED lda #$0B LB5ED lda #$0B
LB5EF sec LB5EF sec
LB5F0 rts LB5F0 rts
*--------------------------------------
LB5F1 lda XBBFF LB5F1 lda XBBFF
sta BS.TMPBUF4 sta BS.TMPBUF4
lda XBC00 lda XBC00
@ -1158,9 +1155,9 @@ LB5F1 lda XBBFF
stz BS.TMPBUF4+2 stz BS.TMPBUF4+2
stz BS.TMPBUF4+3 stz BS.TMPBUF4+3
jsr BS.ZeroSBUFADR jsr BS.ZeroSBUFADR
LB60E lsr GP.ParamR+1 LB60E lsr GP.ParamR+1
ror GP.ParamR ror GP.ParamR
ldx #$00 ldx #$00
@ -1197,7 +1194,7 @@ LB62F rol BS.TMPBUF4,x
LB642 lda #$02 LB642 lda #$02
sec sec
rts rts
*--------------------------------------
BS.KW.X04 jsr BS.CheckFilename BS.KW.X04 jsr BS.CheckFilename
bcs LB69B bcs LB69B
@ -1233,7 +1230,7 @@ LB67C sta GP.MLIRW.DATAPTR
stx GP.NLINEMASK stx GP.NLINEMASK
lda #$02 lda #$02
sta GP.MLIRW.DATAPTR+1 sta GP.MLIRW.DATAPTR+1
stz GP.MLIRW.COUNT+1 stz GP.MLIRW.COUNT+1
lda #MLI.C.NEWLINE lda #MLI.C.NEWLINE
@ -1256,7 +1253,7 @@ LB69C lda #$59
beq LB696 beq LB696
jsr BS.ZeroSBUFADR jsr BS.ZeroSBUFADR
lda #MLI.C.SETMARK lda #MLI.C.SETMARK
jsr GP.GOSYSTEM jsr GP.GOSYSTEM
bcs LB6CA bcs LB6CA
@ -1270,7 +1267,7 @@ LB6CB lda #$02
tax tax
sec sec
rts rts
*--------------------------------------
LB6D0 lda GP.FoundBITS+1 LB6D0 lda GP.FoundBITS+1
and #$43 and #$43
beq LB719 beq LB719
@ -1318,7 +1315,7 @@ LB712 lda #MLI.C.SETMARK
LB719 clc LB719 clc
LB71A ldx #$00 LB71A ldx #$00
rts rts
*--------------------------------------
BS.KW.X08 jsr BS.CheckFilename BS.KW.X08 jsr BS.CheckFilename
bcs LB732 bcs LB732
@ -1360,7 +1357,7 @@ LB757 lda AS.HIMEM
sta GP.OFILACTV sta GP.OFILACTV
clc clc
rts rts
*--------------------------------------
BS.KW.X09 php BS.KW.X09 php
jsr BS.CheckFilename jsr BS.CheckFilename
bcc LB77A bcc LB77A
@ -1394,6 +1391,7 @@ LB78A ldx GP.ParamL
ldx GP.FIAUXTYPE ldx GP.FIAUXTYPE
ldy GP.FIAUXTYPE+1 ldy GP.FIAUXTYPE+1
LB79D txa LB79D txa
pha pha
jsr BS.GetFTableIdx jsr BS.GetFTableIdx
@ -1418,7 +1416,7 @@ LB7C8 jsr LB7D0
bcs LB788 bcs LB788
LB7CD jmp LB74B LB7CD jmp LB74B
*--------------------------------------
LB7D0 ldx #$03 LB7D0 ldx #$03
LB7D2 lda GP.MLIMRKEOFBUF.REFNUM,x LB7D2 lda GP.MLIMRKEOFBUF.REFNUM,x
sta XBC09,x sta XBC09,x
@ -1472,7 +1470,7 @@ LB805 dey
lda #$02 lda #$02
LB839 rts LB839 rts
*--------------------------------------
BS.GetFileInfo lda #$0A BS.GetFileInfo lda #$0A
sta GP.SSGINFO sta GP.SSGINFO
lda #MLI.C.GETFILEINFO lda #MLI.C.GETFILEINFO
@ -1495,13 +1493,13 @@ BS.JMP.GP.VSYSI jmp (GP.VSYSI)
*-------------------------------------- *--------------------------------------
BS.ToUpper cmp #'a' BS.ToUpper cmp #'a'
bcc .9 bcc .9
cmp #'z'+1 cmp #'z'+1
bcs .9 bcs .9
eor #$20 eor #$20
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
BS.GetFTableIdx lda GP.MLIRW.REFNUM BS.GetFTableIdx lda GP.MLIRW.REFNUM
lsr lsr
@ -1513,7 +1511,7 @@ BS.GetFTableIdx lda GP.MLIRW.REFNUM
*-------------------------------------- *--------------------------------------
BS.SetSBUFADRXY0 BS.SetSBUFADRXY0
stz GP.SBUFADR+2 stz GP.SBUFADR+2
BS.SetSBUFADRXY stx GP.SBUFADR BS.SetSBUFADRXY stx GP.SBUFADR
sty GP.SBUFADR+1 sty GP.SBUFADR+1
rts rts

View File

@ -12,29 +12,30 @@ BS.SYSIOVECTS .DA BS.IO.OUT
.DA BS.IO.IN0 .DA BS.IO.IN0
.DA BS.IO.OUT.CAT .DA BS.IO.OUT.CAT
.DA BS.IO.IN0 .DA BS.IO.IN0
BS.VSYSO.LO .DA #BS.VSYSO .DA BS.VSYSO
BS.VSYSO.HI .DA /BS.VSYSO *--------------------------------------
BS.ParamLByte .DA #$A0 BS.ParamLByte .DA #GP.SCREATE
.DA #$AC .DA #GP.SDSTROY
.DA #$AF .DA #GP.SRECNAME
.DA #$B4 .DA #GP.SSGINFO
.DA #$B4 .DA #GP.SSGINFO
.DA #$C6 .DA #GP.MLIMRKEOFBUF
.DA #$AC .DA #GP.SDSTROY
.DA #$AC .DA #GP.SDSTROY
.DA #$CB .DA #GP.SOPEN
.DA #$D1 .DA #GP.SNEWLIN
.DA #$D5 .DA #GP.MLIRW
.DA #$D5 .DA #GP.MLIRW
.DA #$DD .DA #GP.MLICF
.DA #$DD .DA #GP.MLICF
.DA #$C6 .DA #GP.MLIMRKEOFBUF
.DA #$C6 .DA #GP.MLIMRKEOFBUF
.DA #$C6 .DA #GP.MLIMRKEOFBUF
.DA #$C6 .DA #GP.MLIMRKEOFBUF
.DA #$C6 .DA #GP.MLIMRKEOFBUF
.DA #$C6 .DA #GP.MLIMRKEOFBUF
BS.BYTES .DA #$80 *--------------------------------------
BS.AS.KW .DA #$80
.DA #$81 .DA #$81
.DA #$82 .DA #$82
.DA #$83 .DA #$83
@ -46,7 +47,7 @@ BS.BYTES .DA #$80
.DA #$89 .DA #$89
.DA #$8A .DA #$8A
.DA #$8B .DA #$8B
.DA #$19 .DA #BS.AS.KW.CALL-BS.AS.KW0
.DA #$8D .DA #$8D
.DA #$8E .DA #$8E
.DA #$8F .DA #$8F
@ -61,25 +62,25 @@ BS.BYTES .DA #$80
.DA #$98 .DA #$98
.DA #$99 .DA #$99
.DA #$9A .DA #$9A
.DA #$23 .DA #BS.AS.KW.TRACE-BS.AS.KW0
.DA #$28 .DA #BS.AS.KW.NOTRACE-BS.AS.KW0
.DA #$5A .DA #BS.AS.KW.NORMAL-BS.AS.KW0
.DA #$5A .DA #BS.AS.KW.INVERSE-BS.AS.KW0
.DA #$56 .DA #BS.AS.KW.FLASH-BS.AS.KW0
.DA #$A0 .DA #$A0
.DA #$A1 .DA #$A1
.DA #$A2 .DA #$A2
.DA #$A3 .DA #$A3
.DA #$A4 .DA #$A4
.DA #$A5 .DA #$A5
.DA #$34 .DA #BS.AS.KW.RESUME-BS.AS.KW0
.DA #$A7 .DA #$A7
.DA #$A8 .DA #$A8
.DA #$A9 .DA #$A9
.DA #$1F .DA #BS.AS.KW.LET-BS.AS.KW0
.DA #$AB .DA #$AB
.DA #$AC .DA #$AC
.DA #$00 .DA #BS.AS.KW.IF-BS.AS.KW0
.DA #$AE .DA #$AE
.DA #$AF .DA #$AF
.DA #$B0 .DA #$B0
@ -92,13 +93,14 @@ BS.BYTES .DA #$80
.DA #$B7 .DA #$B7
.DA #$B8 .DA #$B8
.DA #$B9 .DA #$B9
.DA #$00 .DA #BS.AS.KW.PRINT-BS.AS.KW0
.DA #$BB .DA #$BB
.DA #$13 .DA #BS.AS.KW.LIST-BS.AS.KW0
.DA #$BD .DA #$BD
.DA #$BE .DA #$BE
BS.KW.LEN .DA #$BF .DA #$BF
.DA #$47 *--------------------------------------
BS.KW.LEN .DA #$47
.DA #$5F .DA #$5F
.DA #$18 .DA #$18
.DA #$30 .DA #$30
@ -129,7 +131,9 @@ BS.KW.LEN .DA #$BF
.DA #$1C .DA #$1C
.DA #$B5 .DA #$B5
.DA #$D8 .DA #$D8
*--------------------------------------
BS.KW.TABLE .AS "BSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND" BS.KW.TABLE .AS "BSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND"
*--------------------------------------
BS.KW.JMP .DA BS.JMP.XTRNADDR $00 BS.KW.JMP .DA BS.JMP.XTRNADDR $00
.DA BS.KW.PR .DA BS.KW.PR
.DA BS.KW.IN .DA BS.KW.IN
@ -163,6 +167,7 @@ BS.KW.JMP .DA BS.JMP.XTRNADDR $00
.DA BS.KW.LOAD .DA BS.KW.LOAD
.DA BS.KW.CLOSE .DA BS.KW.CLOSE
.DA BS.KW.APPEND $40 .DA BS.KW.APPEND $40
*--------------------------------------
BS.KW.PBITS .DA $8040 BS.KW.PBITS .DA $8040
.DA $8040 .DA $8040
.DA $0495 .DA $0495
@ -587,15 +592,19 @@ BS.TBL7 .DA #$2A
XBBB5 .BS 2 XBBB5 .BS 2
XBBB7 .BS 1 XBBB7 .BS 1
XBBB8 .BS 1 XBBB8 .BS 1
BS.IsIntCmdMTR ldy #$02 BS.IsIntCmdMTR ldy #$02
LBBBB lda BS.CMDBUF,y LBBBB lda BS.CMDBUF,y
cmp BS.MTR,y cmp BS.MTR,y
bne LBBCF bne LBBCF
dey dey
bpl LBBBB bpl LBBBB
jsr BS.SetState0 jsr BS.SetState0
jsr MON.CLREOL jsr MON.CLREOL
jmp MON.ENTERMON jmp MON.ENTERMON
LBBCF jmp BS.IsIntCmd LBBCF jmp BS.IsIntCmd
BS.MTR .AS "MTR" BS.MTR .AS "MTR"

View File

@ -100,6 +100,7 @@ LBE97 lda BS.BIERRTBL,x
GP.RTS rts GP.RTS rts
*-------------------------------------- *--------------------------------------
GP.CISPARE1 .BS 1 GP.CISPARE1 .BS 1
*--------------------------------------
GP.SCREATE .DA #7 GP.SCREATE .DA #7
GP.SCREATEPATH .DA BS.CMDBUF.LEN GP.SCREATEPATH .DA BS.CMDBUF.LEN
GP.CRACCESS .DA #$C3 GP.CRACCESS .DA #$C3
@ -107,11 +108,14 @@ GP.CRTYPE .BS 1
GP.CRAUXTYPE .BS 2 GP.CRAUXTYPE .BS 2
GP.CRSTTYPE .BS 1 GP.CRSTTYPE .BS 1
GP.DATETIME .BS 4 GP.DATETIME .BS 4
*--------------------------------------
GP.SDSTROY .DA #1 GP.SDSTROY .DA #1
GP.SDSTROYPATH .DA BS.CMDBUF.LEN GP.SDSTROYPATH .DA BS.CMDBUF.LEN
*--------------------------------------
GP.SRECNAME .DA #2 GP.SRECNAME .DA #2
GP.SRECNAMEOLD .DA BS.CMDBUF.LEN GP.SRECNAMEOLD .DA BS.CMDBUF.LEN
GP.SRECNAMENEW .DA MLI.PATHBUF GP.SRECNAMENEW .DA MLI.PATHBUF
*--------------------------------------
GP.SSGINFO .BS 1 GP.SSGINFO .BS 1
GP.SSGINFOPATH .DA BS.CMDBUF.LEN GP.SSGINFOPATH .DA BS.CMDBUF.LEN
GP.FIACCESS .BS 1 GP.FIACCESS .BS 1
@ -123,27 +127,33 @@ GP.FIMDATE .BS 2
GP.FICDATE .BS 2 GP.FICDATE .BS 2
.BS 4 .BS 4
*--------------------------------------
GP.MLIMRKEOFBUF .DA #2 GP.MLIMRKEOFBUF .DA #2
GP.MLIMRKEOFBUF.REFNUM GP.MLIMRKEOFBUF.REFNUM
.BS 1 .BS 1
GP.SBUFADR .BS 3 GP.SBUFADR .BS 3
*--------------------------------------
GP.SOPEN .DA #3 GP.SOPEN .DA #3
GP.TXTBUF .DA BS.CMDBUF.LEN GP.TXTBUF .DA BS.CMDBUF.LEN
GP.OSYSBUF .BS 2 GP.OSYSBUF .BS 2
GP.OREFNUM .BS 1 GP.OREFNUM .BS 1
*--------------------------------------
GP.SNEWLIN .DA #3 GP.SNEWLIN .DA #3
GP.NEWLREF .BS 1 GP.NEWLREF .BS 1
GP.NLINEMASK .DA #$7F GP.NLINEMASK .DA #$7F
GP.NLINECHAR .DA #13 GP.NLINECHAR .DA #13
*--------------------------------------
GP.MLIRW .DA #4 GP.MLIRW .DA #4
GP.MLIRW.REFNUM .BS 1 GP.MLIRW.REFNUM .BS 1
GP.MLIRW.DATAPTR .BS 2 GP.MLIRW.DATAPTR .BS 2
GP.MLIRW.COUNT .BS 2 GP.MLIRW.COUNT .BS 2
GP.MLIRW.TRANS .BS 2 GP.MLIRW.TRANS .BS 2
*--------------------------------------
GP.MLICF .DA #1 GP.MLICF .DA #1
GP.MLICF.REFNUM .BS 1 GP.MLICF.REFNUM .BS 1
*--------------------------------------
GP.CCCSPARE .BS 1 GP.CCCSPARE .BS 1
*--------------------------------------
GP.COPYRIGHT .AS -"COPYRIGHT APPLE, 1983" GP.COPYRIGHT .AS -"COPYRIGHT APPLE, 1983"
GP.GETBUFR jmp BS.GETBUFR GP.GETBUFR jmp BS.GETBUFR
GP.FREEBUFR jmp BS.FREEBUFR GP.FREEBUFR jmp BS.FREEBUFR

View File

@ -26,12 +26,12 @@ LDR.START1 lda #$9A
jsr MON.SETNORM jsr MON.SETNORM
jsr MON.INIT jsr MON.INIT
jsr MON.MON jsr MON.MON
ldx #$17
lda #$00
L2076 sta MLI.MEMTABL,x ldx #$17
.1 stz MLI.MEMTABL,x
dex dex
bne L2076 bne .1
lda #$CF lda #$CF
sta MLI.MEMTABL sta MLI.MEMTABL
@ -45,33 +45,33 @@ L2076 sta MLI.MEMTABL,x
sta MLI.MEMTABL+23 sta MLI.MEMTABL+23
lda AS.COLDBOOT lda AS.COLDBOOT
cmp #$4C cmp #$4C
bne L20B1 bne .3
lda MLI.MACHID lda MLI.MACHID
and #$20 and #$20
beq L20B1 beq .3
ldx #$03 ldx #$03
L20A6 lda LDR.CSWVECT,x .2 lda LDR.CSWVECT,x
sta ZP.CSW,x sta ZP.CSW,x
dex dex
bpl L20A6 bpl .2
jmp AS.COLDBOOT jmp AS.COLDBOOT
L20B1 ldx #$27 .3 ldx #$27
L20B3 lda LDR.UNABLE,x .4 lda LDR.UNABLE,x
sta $628,x sta $628,x
dex dex
bpl L20B3 bpl .4
sta MON.POWERUPBYTE sta MON.POWERUPBYTE
sta MON.POWERUP+1 sta MON.POWERUP+1
L20C2 bmi L20C2 bmi *
*--------------------------------------
LDR.MoveXpages dey LDR.MoveXpages dey
lda (Ptr1),y lda (Ptr1),y
sta (Ptr2),y sta (Ptr2),y
@ -272,7 +272,6 @@ LDR.KSW lda GP.INVECT0
LDR.CSWVECT .DA LDR.CSW LDR.CSWVECT .DA LDR.CSW
LDR.KSWVECT .DA LDR.KSW LDR.KSWVECT .DA LDR.KSW
LDR.GFINFO.P .DA #10 LDR.GFINFO.P .DA #10
LDR.GFINFO.P.PATHBUF
.DA LDR.STARTUP.LEN .DA LDR.STARTUP.LEN
.BS 16 .BS 16

View File

@ -271,9 +271,9 @@ DRV.U2.Read php
.1 >AR.SELECT S0.RX.RD .1 >AR.SELECT S0.RX.RD
lda W5100.DR,x get the received ptr HI lda W5100.DR,x get the received ptr HI
sta Offset+1 sta DRV.Offset+1
ldy W5100.DR,x get the received ptr LO ldy W5100.DR,x get the received ptr LO
sty Offset sty DRV.Offset
and /RXTX.MASK and /RXTX.MASK
ora /RX.BASE ora /RX.BASE
@ -282,50 +282,51 @@ DRV.U2.Read php
sta W5100.AR+1,x sta W5100.AR+1,x
lda W5100.DR,x get RX.Size HI (Frame size + 2) lda W5100.DR,x get RX.Size HI (Frame size + 2)
sta TotalSize+1 sta DRV.TotalSize+1
lda W5100.DR,x get RX.Size LO lda W5100.DR,x get RX.Size LO
sta TotalSize sta DRV.TotalSize
* lda DRV.TotalSize
sec sec
sbc #2 MACRAW:strip 2 bytes Header from Size sbc #2 MACRAW:strip 2 bytes Header from Size
sta ZPBufCnt sta DRV.BufSize
eor #$ff eor #$ff
sta ZPnCnt sta DRV.nCnt
lda TotalSize+1 lda DRV.TotalSize+1
sbc #0 sbc #0
sta ZPBufCnt sta DRV.BufSize+1
eor #$ff eor #$ff
sta ZPnCnt+1 sta DRV.nCnt+1
>LDYA DRV.InBuf
>STYA .4+1
lda ZPBufPtr+1
pha
ldy #0 ldy #0
.2 inc ZPnCnt .2 inc DRV.nCnt
bne .3 bne .3
inc ZPnCnt+1 inc DRV.nCnt+1
beq .8 beq .8
.3 lda W5100.DR,x .3 lda W5100.DR,x
sta (ZPBufPtr),y .4 sta $FFFF,y SELF MODIFIED
iny iny
bne .2 bne .2
inc ZPBufPtr+1 inc .4+2
bra .2 bra .2
.8 >AR.SELECT S0.RX.RD .8 >AR.SELECT S0.RX.RD
lda Offset lda DRV.Offset
clc clc
adc TotalSize adc DRV.TotalSize
pha save LO pha save LO
lda Offset+1 lda DRV.Offset+1
adc TotalSize+1 adc DRV.TotalSize+1
sta W5100.DR,x write HI sta W5100.DR,x write HI
pla pla
sta W5100.DR,x write LO sta W5100.DR,x write LO
@ -334,9 +335,6 @@ DRV.U2.Read php
lda #W5100.AR.Sn.CR.RCVD lda #W5100.AR.Sn.CR.RCVD
sta W5100.DR,x sta W5100.DR,x
pla
sta ZPBufPtr+1
plp plp
clc clc
rts rts
@ -348,17 +346,17 @@ DRV.U2.9 plp
DRV.U2.Write php DRV.U2.Write php
sei sei
>STYA ZPBufCnt >STYA DRV.BufSize
eor #$ff eor #$ff
sta ZPnCnt+1 sta DRV.nCnt+1
tya tya
eor #$ff eor #$ff
sta ZPnCnt sta DRV.nCnt
>LDYA DRV.OutBuf >LDYA DRV.OutBuf
>STYA ZPBufPtr >STYA .3+1
ldx DRV.START ldx DRV.START
@ -367,8 +365,8 @@ DRV.U2.Write php
nop nop
nop nop
ldy W5100.DR,x LO ldy W5100.DR,x LO
cpy ZPBufCnt cpy DRV.BufSize
sbc ZPBufCnt+1 sbc DRV.BufSize+1
bcc DRV.U2.9 bcc DRV.U2.9
>AR.SELECT S0.TX.WR >AR.SELECT S0.TX.WR
@ -379,34 +377,34 @@ DRV.U2.Write php
and /RXTX.MASK and /RXTX.MASK
ora /TX.BASE ora /TX.BASE
sta W5100.AR,x Write HI sta W5100.AR,x Write HI
sta Offset+1 sta DRV.Offset+1
tya tya
sta W5100.AR+1,x Write LO sta W5100.AR+1,x Write LO
sta Offset sta DRV.Offset
ldy #0 ldy #0
.2 inc ZPnCnt .2 inc DRV.nCnt
bne .3 bne .3
inc ZPnCnt+1 inc DRV.nCnt+1
beq .8 beq .8
.3 lda (ZPBufPtr),y .3 lda $FFFF,y SELF MODIFIED
sta W5100.DR,x sta W5100.DR,x
iny iny
bne .2 bne .2
inc ZPBufPtr+1 inc .3+2
bra .2 bra .2
.8 >AR.SELECT S0.TX.WR .8 >AR.SELECT S0.TX.WR
lda Offset lda DRV.Offset
clc clc
adc ZPBufCnt adc DRV.BufSize
pha save LO pha save LO
lda Offset+1 lda DRV.Offset+1
adc ZPBufCnt+1 adc DRV.BufSize+1
sta W5100.DR,x write HI sta W5100.DR,x write HI
pla pla
sta W5100.DR,x write LO sta W5100.DR,x write LO
@ -418,7 +416,12 @@ DRV.U2.Write php
plp plp
clc clc
rts rts
*--------------------------------------
DRV.Offset .BS 2
DRV.BufSize .BS 2
DRV.TotalSize .BS 2
DRV.nCnt .BS 2
*--------------------------------------
.EP .EP
.LIST ON .LIST ON

View File

@ -112,6 +112,7 @@ VEDRIVE.Init >LDYAI VEDRIVE.MSG0
jsr PrintFYA jsr PrintFYA
* jsr VEDRIVE.SetSlot * jsr VEDRIVE.SetSlot
sec
bcc .8 bcc .8
>LDYAI VEDRIVE.NOSLOT >LDYAI VEDRIVE.NOSLOT
@ -123,7 +124,7 @@ VEDRIVE.Init >LDYAI VEDRIVE.MSG0
>LDYAI VEDRIVE.DEVOK >LDYAI VEDRIVE.DEVOK
jsr PrintFYA jsr PrintFYA
jsr VEDRIVE.Install * jsr VEDRIVE.Install
bcc .9 bcc .9
>LDYAI VEDRIVE.DRVIKO >LDYAI VEDRIVE.DRVIKO
@ -285,10 +286,10 @@ VEDRIVE.SetSlot ldx #2 Starts at Slot1
*-------------------------------------- *--------------------------------------
VEDRIVE.Install ldx #PATCH.SIZE VEDRIVE.Install ldx #PATCH.SIZE
*.1 lda PATCH-1,x .1 lda PATCH-1,x
* sta DRV.EntryPoint-1,x sta DRV.EntryPoint-1,x
* dex dex
* bne .1 bne .1
bit RRAMWRAMBNK2 bit RRAMWRAMBNK2
bit RRAMWRAMBNK2 bit RRAMWRAMBNK2
@ -417,7 +418,7 @@ DRV.InBuf .EQ $DA00 Frame Buffer = 1536 bytes
DRV .PH $D001 Main LC Bnk 2 $D001->$DFFF DRV .PH $D001 Main LC Bnk 2 $D001->$DFFF
DRV.START .BS 1 SELF MODIFIED slot 0n DRV.START .BS 1 SELF MODIFIED slot 0n
>DEBUG
lda DRV.COMMAND S=0,R=1,W=2,F=3 lda DRV.COMMAND S=0,R=1,W=2,F=3
bne .1 bne .1
@ -458,6 +459,7 @@ DRV.START .BS 1 SELF MODIFIED slot 0n
*-------------------------------------- *--------------------------------------
DRV.DO.CMD.R ldy #S.UDP+5 DRV.DO.CMD.R ldy #S.UDP+5
lda /S.UDP+5 lda /S.UDP+5
jsr DRV.Write jsr DRV.Write