mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-31 23:09:33 +00:00
1688 lines
23 KiB
Plaintext
1688 lines
23 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
BS.GETBUFR jsr LA1FB
|
||
bcs LA304
|
||
pha
|
||
sbc #$03
|
||
sta XBBB8
|
||
pla
|
||
|
||
LA2C5 sta GP.SBUFADR+1
|
||
ldx GP.OPENCNT
|
||
beq LA2EE
|
||
|
||
lda XBBB7
|
||
clc
|
||
adc #$04
|
||
sta XBBB7
|
||
|
||
LA2D6 cmp XBBEE,x
|
||
bne LA2EB
|
||
|
||
lda GP.SBUFADR+1
|
||
jsr LA356
|
||
jsr LA29F
|
||
lda GP.SBUFADR+1
|
||
adc #$04
|
||
bcc LA2C5
|
||
|
||
LA2EB dex
|
||
bne LA2D6
|
||
|
||
LA2EE lda GP.SBUFADR+1
|
||
bit GP.EXECACTV
|
||
bpl LA303
|
||
|
||
LA2F6 ldx #$08
|
||
jsr LA356
|
||
jsr LA29F
|
||
lda GP.SBUFADR+1
|
||
adc #$04
|
||
|
||
LA303 clc
|
||
LA304 rts
|
||
|
||
BS.FREEBUFR lda GP.OPENCNT
|
||
asl
|
||
asl
|
||
adc AS.HIMEM+1
|
||
sta XBBB7
|
||
lda AS.HIMEM+1
|
||
sta XBBB8
|
||
lda GP.RSHIMEM
|
||
cmp AS.HIMEM+1
|
||
beq LA354
|
||
|
||
sta AS.HIMEM+1
|
||
bit GP.EXECACTV
|
||
bpl LA327
|
||
|
||
jsr LA2F6
|
||
bcc LA345
|
||
|
||
LA327 lda XBBB7
|
||
ldx GP.OPENCNT
|
||
beq LA351
|
||
|
||
LA32F cmp XBBEE,x
|
||
bne LA34E
|
||
|
||
lda AS.HIMEM+1
|
||
jsr LA356
|
||
jsr LA29F
|
||
sec
|
||
lda XBBB7
|
||
sbc #$04
|
||
sta XBBB7
|
||
|
||
LA345 lda AS.HIMEM+1
|
||
sec
|
||
sbc #$04
|
||
sta AS.HIMEM+1
|
||
bcs LA327
|
||
|
||
LA34E dex
|
||
bne LA32F
|
||
|
||
LA351 jsr BS.KW.01
|
||
LA354 clc
|
||
rts
|
||
|
||
LA356 pha
|
||
lda XBBB8
|
||
jsr LA29F
|
||
pla
|
||
rts
|
||
|
||
LA35F ldy #$00
|
||
cpy XBBEE
|
||
beq LA376
|
||
|
||
LA366 lda (ZP.PCL),y
|
||
sta (ZP.A1L),y
|
||
iny
|
||
bne LA366
|
||
|
||
inc ZP.PCH
|
||
inc ZP.A1H
|
||
dec XBBEE
|
||
bne LA366
|
||
|
||
LA376 cpy XBBED
|
||
beq LA382
|
||
|
||
lda (ZP.PCL),y
|
||
sta (ZP.A1L),y
|
||
iny
|
||
bne LA376
|
||
|
||
LA382 rts
|
||
|
||
LA383 ldy XBBED
|
||
XA386 beq LA38F SELF MODIFIED
|
||
|
||
LA388 jsr LA39A
|
||
dec ZP.A1H
|
||
dec ZP.PCH
|
||
|
||
LA38F cpy XBBEE
|
||
beq LA3A2
|
||
|
||
dec XBBEE
|
||
jmp LA388
|
||
|
||
LA39A dey
|
||
lda (ZP.PCL),y
|
||
sta (ZP.A1L),y
|
||
tya
|
||
bne LA39A
|
||
|
||
LA3A2 rts
|
||
|
||
LA3A3 lda AS.VARSTART+1
|
||
sta ZP.A2H
|
||
lda AS.VARSTART
|
||
ldx AS.ARRAYSTART+1
|
||
clc
|
||
bcc LA3B3
|
||
|
||
LA3AE clc
|
||
lda ZP.A2L
|
||
adc #$07
|
||
|
||
LA3B3 sta ZP.A2L
|
||
bcc LA3B9
|
||
|
||
inc ZP.A2H
|
||
|
||
LA3B9 eor AS.ARRAYSTART
|
||
bne LA3BF
|
||
|
||
cpx ZP.A2H
|
||
|
||
LA3BF clc
|
||
beq LA3D6
|
||
|
||
ldy #$00
|
||
lda (ZP.A2L),y
|
||
iny
|
||
eor (ZP.A2L),y
|
||
bpl LA3AE
|
||
|
||
lda (ZP.A2L),y
|
||
bpl LA3AE
|
||
|
||
iny
|
||
jsr LA3FD
|
||
jmp LA3AE
|
||
|
||
LA3D6 lda ZP.A2L
|
||
sta XBBDC
|
||
|
||
LA3DB clc
|
||
jsr LA160
|
||
bcs LA410
|
||
|
||
LA3E1 ldy #$00
|
||
clc
|
||
jsr LA3FD
|
||
clc
|
||
lda #$03
|
||
adc ZP.A2L
|
||
sta ZP.A2L
|
||
bcc LA3F2
|
||
|
||
inc ZP.A2H
|
||
|
||
LA3F2 cmp XBBDC
|
||
bne LA3E1
|
||
|
||
cpx ZP.A2H
|
||
bne LA3E1
|
||
|
||
beq LA3DB
|
||
|
||
LA3FD lda (ZP.A2L),y
|
||
beq LA410
|
||
|
||
iny
|
||
iny
|
||
lda AS.VARSTART+1
|
||
cmp (ZP.A2L),y
|
||
bcs LA410
|
||
|
||
lda (ZP.A2L),y
|
||
adc XBBE2
|
||
sta (ZP.A2L),y
|
||
|
||
LA410 rts
|
||
|
||
LA411 jsr LA021
|
||
bcs LA47F
|
||
|
||
lda AS.ARRAYEND
|
||
sec
|
||
sbc AS.VARSTART
|
||
sta BS.BAS.HDR
|
||
sta XBBED
|
||
lda AS.ARRAYEND+1
|
||
sbc AS.VARSTART+1
|
||
sta BS.BAS.HDR+1
|
||
sta XBBEE
|
||
lda AS.ARRAYSTART
|
||
sbc AS.VARSTART
|
||
sta BS.BAS.HDR+2
|
||
lda AS.ARRAYSTART+1
|
||
sbc AS.VARSTART+1
|
||
sta BS.BAS.HDR+3
|
||
lda AS.STRINGSTART
|
||
sbc XBBED
|
||
sta ZP.A1L
|
||
lda AS.STRINGSTART+1
|
||
sbc #$00
|
||
sta ZP.A1H
|
||
lda AS.ARRAYEND
|
||
sbc XBBED
|
||
sta ZP.PCL
|
||
lda AS.ARRAYEND+1
|
||
sbc #$00
|
||
sta ZP.PCH
|
||
lda #$03
|
||
sta XA386+1
|
||
jsr LA383
|
||
lda #$07
|
||
sta XA386+1
|
||
lda ZP.A1L
|
||
sta XBBE9
|
||
inc ZP.A1H
|
||
lda ZP.A1H
|
||
sta XBBEA
|
||
lda AS.HIMEM
|
||
sec
|
||
sbc ZP.A1L
|
||
sta XBBEB
|
||
lda AS.HIMEM+1
|
||
sta BS.BAS.HDR+4
|
||
sbc ZP.A1H
|
||
sta XBBEC
|
||
clc
|
||
LA47F rts
|
||
|
||
LA480 lda BS.BAS.HDR
|
||
sta XBBED
|
||
clc
|
||
adc AS.VARSTART
|
||
sta AS.ARRAYEND
|
||
lda BS.BAS.HDR+1
|
||
sta XBBEE
|
||
adc AS.VARSTART+1
|
||
sta AS.ARRAYEND+1
|
||
lda AS.VARSTART
|
||
sta ZP.A1L
|
||
adc BS.BAS.HDR+2
|
||
sta AS.ARRAYSTART
|
||
lda AS.VARSTART+1
|
||
sta ZP.A1H
|
||
adc BS.BAS.HDR+3
|
||
sta AS.ARRAYSTART+1
|
||
lda XBBE9
|
||
sta ZP.PCL
|
||
lda XBBEA
|
||
sta ZP.PCH
|
||
jsr LA35F
|
||
lda XBBED
|
||
clc
|
||
adc ZP.PCL
|
||
sta AS.STRINGSTART
|
||
lda ZP.PCH
|
||
adc #$00
|
||
sta AS.STRINGSTART+1
|
||
sec
|
||
lda AS.HIMEM+1
|
||
sbc BS.BAS.HDR+4
|
||
beq LA4D0
|
||
|
||
sta XBBE2
|
||
jsr LA3A3
|
||
|
||
LA4D0 clc
|
||
rts
|
||
|
||
LA4D2 jsr BS.LINEBUFCLR80
|
||
lda #$A2
|
||
sta IO.LINEBUF
|
||
lda DIRENTBUF
|
||
and #$0F
|
||
tay
|
||
|
||
LA4E0 lda DIRENTBUF,y
|
||
ora #$80
|
||
sta IO.LINEBUF+1,y
|
||
dey
|
||
bne LA4E0
|
||
|
||
sty BS.TMPBUF4+2
|
||
lda DIRENTBUF.TYPE
|
||
ldx #$0E
|
||
|
||
LA4F3 iny
|
||
iny
|
||
cmp BS.PRODOSTYPES.H,x
|
||
beq LA505
|
||
|
||
iny
|
||
dex
|
||
bpl LA4F3
|
||
|
||
ldy #$13
|
||
jsr BS.AHEX2LINEBUFY
|
||
bne LA549
|
||
|
||
LA505 ldx #$02
|
||
pha
|
||
|
||
LA508 lda BS.PRODOSTYPES.ASC,y
|
||
sta $212,x
|
||
dey
|
||
dex
|
||
bpl LA508
|
||
pla
|
||
bit BS.CATWIDTH
|
||
bvc LA561
|
||
|
||
ldy #$4E
|
||
cmp #$06
|
||
beq LA533
|
||
|
||
cmp #$04
|
||
bne LA549
|
||
|
||
lda #$D2
|
||
sta $249
|
||
lda DIRENTBUF.AUXT
|
||
ldx DIRENTBUF.AUXT+1
|
||
jsr BS.AXDEC2LINEBUFY
|
||
jmp LA544
|
||
|
||
LA533 lda #$C1
|
||
sta $249
|
||
lda DIRENTBUF.AUXT
|
||
jsr BS.AHEX2LINEBUFY
|
||
lda DIRENTBUF.AUXT+1
|
||
jsr BS.AHEX2LINEBUFY
|
||
|
||
LA544 lda #$BD
|
||
sta $24A
|
||
|
||
LA549 lda DIRENTBUF.EOF+2
|
||
sta BS.TMPBUF4+2
|
||
lda DIRENTBUF.EOF
|
||
ldx DIRENTBUF.EOF+1
|
||
ldy #$46
|
||
jsr BS.AXDEC2LINEBUFY
|
||
ldx #$18
|
||
ldy #$3D
|
||
jsr LA57E
|
||
|
||
LA561 ldy #$1B
|
||
lda DIRENTBUF.UBLK
|
||
ldx DIRENTBUF.UBLK+1
|
||
jsr BS.AXDEC2LINEBUFY
|
||
lda DIRENTBUF.ACCESS
|
||
and #$C2
|
||
cmp #$C2
|
||
beq LA57A
|
||
|
||
lda #$AA
|
||
sta IO.LINEBUF+1
|
||
|
||
LA57A ldx #$21
|
||
ldy #$2C
|
||
|
||
LA57E lda $25A,x
|
||
lsr
|
||
sta XBC10
|
||
lda DIRENTBUF,x
|
||
pha
|
||
and #$1F
|
||
sta XBC0F
|
||
pla
|
||
rol
|
||
rol
|
||
rol
|
||
rol
|
||
and #$0F
|
||
beq LA5B1
|
||
|
||
cmp #$0D
|
||
bcs LA5B1
|
||
|
||
sta XBC0E
|
||
asl
|
||
adc XBC0E
|
||
sta XBC0E
|
||
lda XBC0F
|
||
beq LA5B1
|
||
|
||
lda XBC10
|
||
cmp #$64
|
||
bcc LA5C3
|
||
|
||
LA5B1 tya
|
||
sec
|
||
sbc #$06
|
||
tay
|
||
ldx #$08
|
||
|
||
LA5B8 lda BS.NODATE,x
|
||
sta IO.LINEBUF+1,y
|
||
dey
|
||
dex
|
||
bpl LA5B8
|
||
|
||
rts
|
||
|
||
LA5C3 lda $25C,x
|
||
pha
|
||
lda $25B,x
|
||
ldx #$00
|
||
cmp #$3C
|
||
bcc LA5D1
|
||
|
||
txa
|
||
|
||
LA5D1 jsr LA618
|
||
lda #$BA
|
||
sta IO.LINEBUF+1,y
|
||
dey
|
||
pla
|
||
ldx #$00
|
||
cmp #$18
|
||
bcc LA5E2
|
||
|
||
txa
|
||
|
||
LA5E2 cmp #$0A
|
||
php
|
||
jsr BS.AXDEC2LINEBUFY
|
||
plp
|
||
bcs LA5EC
|
||
|
||
dey
|
||
|
||
LA5EC dey
|
||
lda XBC10
|
||
jsr LA618
|
||
dey
|
||
ldx XBC0E
|
||
inx
|
||
inx
|
||
inx
|
||
|
||
LA5FA lda BS.MONTHS-4,x
|
||
sta IO.LINEBUF+1,y
|
||
dey
|
||
dex
|
||
cpx XBC0E
|
||
bne LA5FA
|
||
|
||
lda #$AD
|
||
sta IO.LINEBUF+1,y
|
||
sta $205,y
|
||
dey
|
||
lda XBC0F
|
||
ldx #$00
|
||
jmp BS.AXDEC2LINEBUFY
|
||
|
||
LA618 clc
|
||
adc #$64
|
||
jsr BS.AXDEC2LINEBUFY
|
||
iny
|
||
rts
|
||
|
||
BS.AHEX2LINEBUFY
|
||
pha
|
||
and #$0F
|
||
jsr LA62B
|
||
pla
|
||
lsr
|
||
lsr
|
||
lsr
|
||
lsr
|
||
|
||
LA62B ora #$B0
|
||
cmp #$BA
|
||
bcc LA633
|
||
|
||
adc #$06
|
||
|
||
LA633 sta IO.LINEBUF+1,y
|
||
dey
|
||
lda #$A4
|
||
sta IO.LINEBUF+1,y
|
||
rts
|
||
|
||
BS.AXDEC2LINEBUFY
|
||
stx BS.TMPBUF4+1
|
||
sta BS.TMPBUF4
|
||
|
||
LA643 jsr LA65B
|
||
lda BS.TMPBUF4+3
|
||
ora #$B0
|
||
sta IO.LINEBUF+1,y
|
||
dey
|
||
lda BS.TMPBUF4
|
||
ora BS.TMPBUF4+1
|
||
ora BS.TMPBUF4+2
|
||
bne LA643
|
||
|
||
rts
|
||
|
||
LA65B ldx #$18
|
||
lda #$00
|
||
sta BS.TMPBUF4+3
|
||
|
||
LA662 jsr BS.TMPBUF3x2
|
||
rol BS.TMPBUF4+3
|
||
sec
|
||
lda BS.TMPBUF4+3
|
||
sbc #$0A
|
||
bcc LA676
|
||
|
||
sta BS.TMPBUF4+3
|
||
inc BS.TMPBUF4
|
||
|
||
LA676 dex
|
||
bne LA662
|
||
|
||
rts
|
||
|
||
BS.LINEBUFCLR80 lda #$A0
|
||
ldx #$4F
|
||
|
||
LA67E sta IO.LINEBUF+1,x
|
||
dex
|
||
bpl LA67E
|
||
|
||
rts
|
||
|
||
BS.DOSCMD lda #$FF
|
||
sta GP.XCNUM
|
||
lda #$20
|
||
sta BS.GetCharSep
|
||
lda #$08
|
||
sta BS.GetCharMax
|
||
jsr BS.GetKWInCmdBuf
|
||
lda BS.CMDBUF
|
||
cmp #$41
|
||
bcs LA6A5
|
||
|
||
eor #$2D
|
||
beq LA6A5
|
||
|
||
LA6A2 jmp BS.ERR10
|
||
|
||
LA6A5 jsr BS.IsIntCmdMTR
|
||
bcs LA6A2
|
||
|
||
lda GP.STATE
|
||
bne LA6BA
|
||
|
||
lda GP.EXECACTV
|
||
bne LA6BA
|
||
|
||
jsr MON.CLREOL
|
||
jsr BS.CROUT
|
||
|
||
LA6BA lda #$00
|
||
sta GP.FoundBITS
|
||
sta GP.FoundBITS+1
|
||
sta BS.CMDBUF
|
||
sta MLI.PATHBUF
|
||
lda GP.VDEFSLT
|
||
sta GP.ParamS
|
||
lda GP.VDEFDRV
|
||
sta GP.ParamD
|
||
lda AS.HIMEM+1
|
||
sta XBBE3
|
||
ldx GP.XLEN
|
||
inx
|
||
inx
|
||
stx BS.GetCharMax
|
||
lda GP.AllowedBITS
|
||
beq LA744
|
||
|
||
asl
|
||
bmi LA747
|
||
|
||
jsr BS.GetKWInCmdBuf
|
||
php
|
||
pha
|
||
lda GP.AllowedBITS
|
||
bpl LA6F8
|
||
|
||
lda #MLI.C.GETPREFIX
|
||
jsr GP.GOSYSTEM
|
||
|
||
LA6F8 pla
|
||
plp
|
||
beq LA744
|
||
|
||
cmp #$2C
|
||
bne LA703
|
||
jmp LA795
|
||
|
||
LA703 cmp #$2F
|
||
beq LA70B
|
||
|
||
cmp #$41
|
||
bcc LA73D
|
||
|
||
LA70B dex
|
||
lda #$82
|
||
sta BS.GetCharSep
|
||
lsr
|
||
sta BS.GetCharMax
|
||
ldy #$00
|
||
jsr LAA2D
|
||
dey
|
||
sty BS.CMDBUF.LEN
|
||
lda #$01
|
||
sta GP.FoundBITS
|
||
|
||
LA723 lda BS.CMDBUF.LEN,y
|
||
sta MLI.PATHBUF,y
|
||
dey
|
||
bpl LA723
|
||
|
||
dex
|
||
jsr BS.GetCharSpaceSep
|
||
bne LA73A
|
||
|
||
bcc LA7A6
|
||
|
||
lda GP.AllowedBITS
|
||
lsr
|
||
bcs LA770
|
||
|
||
LA73A jmp BS.ERR10
|
||
|
||
LA73D lda GP.XCNUM
|
||
cmp #$06
|
||
bne LA73A
|
||
|
||
LA744 jmp LA7A6
|
||
|
||
LA747 jsr BS.GetKWInCmdBuf
|
||
beq LA73A
|
||
|
||
cmp #$41
|
||
beq LA79A
|
||
|
||
jsr BS.TMPBUF3Reset
|
||
sty XBC08
|
||
ldy #$13
|
||
sty XBC09
|
||
ldy #$40
|
||
sty GP.FoundBITS
|
||
jsr LA96E
|
||
bcs LA76F
|
||
|
||
lda GP.ParamINPR
|
||
cmp #$08
|
||
bcc LA79F
|
||
|
||
LA76C lda #$02
|
||
sec
|
||
LA76F rts
|
||
|
||
LA770 lsr
|
||
bcc LA795
|
||
|
||
jsr BS.GetCharSpaceSep
|
||
beq LA73A
|
||
|
||
dex
|
||
lda #$82
|
||
sta BS.GetCharSep
|
||
ldy #$01
|
||
jsr BS.GetPathInPathBuf
|
||
dey
|
||
dey
|
||
sty MLI.PATHBUF
|
||
lda #$03
|
||
sta GP.FoundBITS
|
||
dex
|
||
jsr BS.GetCharSpaceSep
|
||
bne LA73A
|
||
|
||
bcc LA7A6
|
||
|
||
LA795 jsr BS.GetCharSpaceSep
|
||
beq LA73A
|
||
|
||
LA79A jsr LA8F6
|
||
bcs LA76F
|
||
|
||
LA79F jsr BS.GetCharSpaceSep
|
||
bne LA73A
|
||
|
||
bcs LA795
|
||
|
||
LA7A6 lda GP.ParamS
|
||
beq LA76C
|
||
|
||
cmp #$08
|
||
bcs LA76C
|
||
|
||
lda GP.ParamD
|
||
beq LA76C
|
||
|
||
cmp #$03
|
||
bcs LA76C
|
||
|
||
lda GP.AllowedBITS
|
||
and #$21
|
||
lsr
|
||
beq LA7C9
|
||
|
||
lda GP.STATE
|
||
bne LA7C9
|
||
|
||
lda #$0F
|
||
sec
|
||
rts
|
||
|
||
LA7C9 bcc LA80B
|
||
|
||
lda GP.AllowedBITS+1
|
||
and #$04
|
||
beq LA80B
|
||
|
||
lda GP.FoundBITS
|
||
lsr
|
||
bcs LA7E1
|
||
|
||
lda GP.AllowedBITS
|
||
and #$90
|
||
beq BS.ERR10
|
||
|
||
bpl LA80B
|
||
|
||
LA7E1 lda BS.CMDBUF
|
||
eor #$2F
|
||
beq LA7ED
|
||
|
||
lda MLI.PFIXPTR
|
||
beq LA806
|
||
|
||
LA7ED lda GP.FoundBITS+1
|
||
and #$04
|
||
beq LA80B
|
||
|
||
bcs LA806
|
||
|
||
lda #$00
|
||
sta BS.CMDBUF.LEN
|
||
sta BS.CMDBUF
|
||
lda #$01
|
||
ora GP.FoundBITS
|
||
sta GP.FoundBITS
|
||
|
||
LA806 jsr BS.GetVolAtSxDy
|
||
bcs LA849
|
||
|
||
LA80B lda GP.XCNUM
|
||
asl
|
||
tax
|
||
lda BS.KW.JMP,x
|
||
sta BS.KW.JMPADDR
|
||
lda BS.KW.JMP+1,x
|
||
sta BS.KW.JMPADDR+1
|
||
clc
|
||
txa
|
||
beq LA844
|
||
|
||
eor #$32
|
||
beq LA844
|
||
|
||
lda GP.AllowedBITS+1
|
||
and #$04
|
||
|
||
beq LA844
|
||
lda GP.FoundBITS
|
||
lsr
|
||
bcc LA844
|
||
|
||
jsr BS.GetFileInfo
|
||
bcc LA844
|
||
|
||
cmp #$07
|
||
bne LA849
|
||
|
||
lda GP.AllowedBITS
|
||
and #$08
|
||
bne LA844
|
||
|
||
lda #$06
|
||
rts
|
||
|
||
LA844 jmp (BS.KW.JMPADDR)
|
||
|
||
BS.ERR10 lda #$10
|
||
LA849 sec
|
||
rts
|
||
|
||
BS.GetVolAtSxDy lda GP.ParamS
|
||
asl
|
||
asl
|
||
asl
|
||
asl
|
||
asl
|
||
pha
|
||
lda GP.ParamD
|
||
eor #$01
|
||
lsr
|
||
pla
|
||
ror
|
||
sta GP.MLIMRKEOFBUF.REFNUM
|
||
lda #$01
|
||
sta GP.SBUFADR
|
||
lda #$02
|
||
sta GP.SBUFADR+1
|
||
lda #MLI.C.ONLINE
|
||
jsr GP.GOSYSTEM
|
||
bcs LA849
|
||
|
||
lda GP.ParamD
|
||
sta GP.VDEFDRV
|
||
lda GP.ParamS
|
||
sta GP.VDEFSLT
|
||
lda BS.CMDBUF
|
||
eor #$2F
|
||
beq LA8F4
|
||
|
||
lda IO.LINEBUF+1
|
||
and #$0F
|
||
adc #$02
|
||
sta IO.LINEBUF+1
|
||
adc BS.CMDBUF.LEN
|
||
cmp #$40
|
||
tax
|
||
lda #$10
|
||
bcs LA8F5
|
||
|
||
ldy BS.CMDBUF.LEN
|
||
stx BS.CMDBUF.LEN
|
||
|
||
LA89D dex
|
||
dey
|
||
bmi LA8AA
|
||
|
||
lda BS.CMDBUF,y
|
||
sta BS.CMDBUF,x
|
||
jmp LA89D
|
||
|
||
LA8AA lda #$2F
|
||
sta BS.CMDBUF
|
||
|
||
LA8AF sta BS.CMDBUF,x
|
||
lda IO.LINEBUF,x
|
||
dex
|
||
bne LA8AF
|
||
|
||
lda GP.XCNUM
|
||
cmp #$0B
|
||
beq LA8F4
|
||
|
||
cmp #$16
|
||
beq LA8F4
|
||
|
||
cmp #$08
|
||
beq LA8F4
|
||
|
||
lda MLI.PATHBUF
|
||
tay
|
||
clc
|
||
adc IO.LINEBUF+1
|
||
cmp #$40
|
||
tax
|
||
lda #$10
|
||
bcs LA8F5
|
||
|
||
stx MLI.PATHBUF
|
||
|
||
LA8D9 dex
|
||
dey
|
||
bmi LA8E6
|
||
|
||
lda MLI.PATHBUF+1,y
|
||
sta MLI.PATHBUF+1,x
|
||
jmp LA8D9
|
||
|
||
LA8E6 lda #$2F
|
||
sta MLI.PATHBUF+1
|
||
|
||
LA8EB sta MLI.PATHBUF+1,x
|
||
lda IO.LINEBUF,x
|
||
dex
|
||
bne LA8EB
|
||
|
||
LA8F4 clc
|
||
|
||
LA8F5 rts
|
||
|
||
LA8F6 jsr BS.TMPBUF3Reset
|
||
ldy #$09
|
||
|
||
LA8FB cmp BS.KW.OPT,y
|
||
beq LA935
|
||
|
||
dey
|
||
bpl LA8FB
|
||
|
||
cmp #$54
|
||
beq LA90A
|
||
|
||
LA907 jmp BS.ERR10
|
||
|
||
LA90A lda #$04
|
||
and GP.AllowedBITS
|
||
beq LA931
|
||
|
||
ora GP.FoundBITS
|
||
sta GP.FoundBITS
|
||
lda #$00
|
||
sta XBC08
|
||
lda #$12
|
||
sta XBC09
|
||
jsr BS.GetCharSpaceSep
|
||
beq LA907
|
||
|
||
cmp #$24
|
||
beq LA984
|
||
|
||
cmp #$41
|
||
bcc LA96E
|
||
|
||
jmp BS.GetFTypeASC
|
||
|
||
LA931 sec
|
||
lda #$0B
|
||
rts
|
||
|
||
LA935 lda BS.KW.OPT.PBITSLO,y
|
||
beq LA955
|
||
|
||
and GP.AllowedBITS+1
|
||
beq LA931
|
||
|
||
cmp #$04
|
||
bne LA94F
|
||
|
||
and GP.FoundBITS+1
|
||
bne LA955
|
||
|
||
lda #$01
|
||
sta GP.ParamD
|
||
lda #$04
|
||
|
||
LA94F ora GP.FoundBITS+1
|
||
sta GP.FoundBITS+1
|
||
|
||
LA955 lda BS.KW.OPT.PBITSHI,y
|
||
and #$03
|
||
sta XBC08
|
||
lda BS.KW.OPT.PBITSHI,y
|
||
lsr
|
||
lsr
|
||
sta XBC09
|
||
jsr BS.GetCharSpaceSep
|
||
beq LA9BE
|
||
|
||
cmp #$24
|
||
beq LA984
|
||
|
||
LA96E stx GP.INPTR
|
||
jsr LAA6A
|
||
bcc LA97A
|
||
|
||
bmi LA9C1
|
||
|
||
bcs LA9BE
|
||
|
||
LA97A ldx GP.INPTR
|
||
jsr BS.GetCharSpaceSep
|
||
bne LA96E
|
||
|
||
beq LA99D
|
||
|
||
LA984 jsr BS.GetCharSpaceSep
|
||
beq LA9BE
|
||
|
||
LA989 stx GP.INPTR
|
||
jsr LAABC
|
||
bcc LA995
|
||
|
||
bmi LA9C1
|
||
|
||
bcs LA9BE
|
||
|
||
LA995 ldx GP.INPTR
|
||
jsr BS.GetCharSpaceSep
|
||
bne LA989
|
||
|
||
LA99D ldx #$02
|
||
LA99F cpx XBC08
|
||
beq LA9AC
|
||
|
||
lda BS.TMPBUF4,x
|
||
bne LA9C1
|
||
|
||
dex
|
||
bne LA99F
|
||
|
||
LA9AC ldy XBC09
|
||
LA9AF lda BS.TMPBUF4,x
|
||
sta GP.ParamA,y
|
||
dey
|
||
dex
|
||
bpl LA9AF
|
||
|
||
ldx GP.INPTR
|
||
clc
|
||
rts
|
||
|
||
LA9BE jmp BS.ERR10
|
||
LA9C1 jmp LA76C
|
||
|
||
BS.GetFTypeASC ldy #$00
|
||
|
||
LA9C6 sta BS.TMPBUF4,y
|
||
iny
|
||
cpy #$03
|
||
beq LA9D5
|
||
|
||
jsr BS.GetCharSpaceSep
|
||
bne LA9C6
|
||
|
||
beq LA9BE
|
||
|
||
LA9D5 stx GP.INPTR
|
||
LA9D8 ldx #$00
|
||
lda XBC08
|
||
cmp #$0F
|
||
beq LA9BE
|
||
|
||
asl
|
||
adc XBC08
|
||
tay
|
||
|
||
LA9E6 lda BS.TMPBUF4,x
|
||
eor BS.PRODOSTYPES.ASC,y
|
||
asl
|
||
bne LA9F7
|
||
|
||
iny
|
||
inx
|
||
cpx #$03
|
||
bne LA9E6
|
||
|
||
beq LA9FC
|
||
|
||
LA9F7 inc XBC08
|
||
bne LA9D8
|
||
|
||
LA9FC lda #$0E
|
||
sec
|
||
sbc XBC08
|
||
tay
|
||
lda BS.PRODOSTYPES.H,y
|
||
sta GP.ParamT
|
||
ldx GP.INPTR
|
||
clc
|
||
rts
|
||
|
||
BS.GetPathInPathBuf
|
||
jsr BS.GetCharUC
|
||
sta MLI.PATHBUF,y
|
||
iny
|
||
cmp #$2C
|
||
beq LAA45
|
||
|
||
cmp #$20
|
||
beq LAA45
|
||
|
||
cmp #$0D
|
||
beq LAA56
|
||
|
||
cpy BS.GetCharMax
|
||
bcc BS.GetPathInPathBuf
|
||
|
||
ora #$00
|
||
rts
|
||
|
||
BS.GetKWInCmdBuf
|
||
ldx #$00
|
||
ldy #$00
|
||
|
||
LAA2D jsr BS.GetCharUC
|
||
sta BS.CMDBUF,y
|
||
iny
|
||
cmp #$2C
|
||
beq LAA45
|
||
|
||
cmp #$20
|
||
beq LAA45
|
||
|
||
cmp #$0D
|
||
beq LAA56
|
||
|
||
cpy BS.GetCharMax
|
||
bcc LAA2D
|
||
|
||
LAA45 ora #$00
|
||
rts
|
||
|
||
BS.GetCharSpaceSep
|
||
lda #$20
|
||
sta BS.GetCharSep
|
||
jsr BS.GetCharUC
|
||
cmp #$2C
|
||
beq LAA57
|
||
|
||
cmp #$0D
|
||
|
||
LAA56 clc
|
||
LAA57 rts
|
||
|
||
BS.GetCharUC lda IO.LINEBUF,x
|
||
and #$7F
|
||
cmp #$61
|
||
bcc LAA63
|
||
|
||
and #$5F
|
||
|
||
LAA63 inx
|
||
cmp BS.GetCharSep
|
||
beq BS.GetCharUC
|
||
|
||
rts
|
||
|
||
LAA6A cmp #$30
|
||
bcc LAA72
|
||
|
||
cmp #$3A
|
||
bcc LAA76
|
||
|
||
LAA72 sec
|
||
ora #$00
|
||
rts
|
||
|
||
LAA76 and #$0F
|
||
pha
|
||
lda BS.TMPBUF4+2
|
||
cmp #$1A
|
||
bcs LAAA2
|
||
|
||
ldx #$02
|
||
|
||
LAA82 lda BS.TMPBUF4,x
|
||
pha
|
||
dex
|
||
bpl LAA82
|
||
|
||
jsr BS.TMPBUF3x2
|
||
jsr BS.TMPBUF3x2
|
||
ldx #$00
|
||
clc
|
||
|
||
LAA92 pla
|
||
adc BS.TMPBUF4,x
|
||
sta BS.TMPBUF4,x
|
||
inx
|
||
txa
|
||
eor #$03
|
||
bne LAA92
|
||
|
||
jsr BS.TMPBUF3x2
|
||
|
||
LAAA2 pla
|
||
bcs LAAB8
|
||
|
||
adc BS.TMPBUF4
|
||
sta BS.TMPBUF4
|
||
bcc LAABB
|
||
|
||
clc
|
||
inc BS.TMPBUF4+1
|
||
bne LAABB
|
||
|
||
inc BS.TMPBUF4+2
|
||
bne LAABB
|
||
|
||
LAAB8 lda #$FF
|
||
sec
|
||
LAABB rts
|
||
|
||
LAABC cmp #$30
|
||
bcc LAACC
|
||
|
||
cmp #$3A
|
||
bcc LAAD2
|
||
|
||
cmp #$41
|
||
bcc LAACC
|
||
|
||
cmp #$47
|
||
bcc LAAD0
|
||
|
||
LAACC sec
|
||
ora #$00
|
||
rts
|
||
|
||
LAAD0 sbc #$06
|
||
LAAD2 and #$0F
|
||
ldx #$03
|
||
|
||
LAAD6 jsr BS.TMPBUF3x2
|
||
bcs LAAB8
|
||
|
||
dex
|
||
bpl LAAD6
|
||
|
||
ora BS.TMPBUF4
|
||
sta BS.TMPBUF4
|
||
rts
|
||
|
||
BS.TMPBUF3x2 asl BS.TMPBUF4
|
||
rol BS.TMPBUF4+1
|
||
rol BS.TMPBUF4+2
|
||
rts
|
||
|
||
BS.IsIntCmd ldx #$1F
|
||
stx GP.XCNUM
|
||
lda BS.CMDBUF
|
||
eor #$2D
|
||
bne LAB03
|
||
|
||
inc GP.XCNUM
|
||
sta GP.XLEN
|
||
bne LAB20
|
||
|
||
LAB03 ldy #$08
|
||
sty GP.XLEN
|
||
|
||
LAB08 lda BS.KW.LEN,x
|
||
bpl LAB13
|
||
|
||
and #$7F
|
||
dey
|
||
dec GP.XLEN
|
||
|
||
LAB13 tax
|
||
LAB14 lda BS.CMDBUF,y
|
||
cmp BS.KW.TABLE,x
|
||
bne LAB33
|
||
|
||
dex
|
||
dey
|
||
bpl LAB14
|
||
|
||
LAB20 lda GP.XCNUM
|
||
asl
|
||
tax
|
||
lda BS.KW.PBITS-1,x
|
||
sta GP.AllowedBITS+1
|
||
lda BS.KW.PBITS-2,x
|
||
sta GP.AllowedBITS
|
||
clc
|
||
rts
|
||
|
||
LAB33 ldy GP.XLEN
|
||
dec GP.XCNUM
|
||
ldx GP.XCNUM
|
||
bne LAB08
|
||
|
||
dec GP.XCNUM
|
||
sec
|
||
jmp GP.EXTRNCMD
|
||
|
||
BS.TMPBUF3Reset ldy #$00
|
||
sty BS.TMPBUF4
|
||
sty BS.TMPBUF4+1
|
||
sty BS.TMPBUF4+2
|
||
rts
|
||
|
||
BS.KW.APPEND lda GP.FITYPE
|
||
cmp #$FC
|
||
beq BS.KW.02
|
||
|
||
cmp #$06
|
||
beq LABA3
|
||
|
||
cmp #$04
|
||
bne LAB63
|
||
|
||
jmp BS.KW.EXEC
|
||
|
||
LAB63 cmp #$FF
|
||
beq LAB6F
|
||
cmp #$B3
|
||
beq LAB6F
|
||
lda #$0D
|
||
sec
|
||
rts
|
||
|
||
LAB6F pha
|
||
jsr LB562
|
||
jsr LB36B
|
||
lda #$00
|
||
sta GP.ParamA
|
||
sta MLI.MEMTABL+19
|
||
sta MLI.MEMTABL+20
|
||
sta MLI.MEMTABL+21
|
||
sta MLI.MEMTABL+22
|
||
lda #$01
|
||
sta MLI.MEMTABL+23
|
||
lda #$20
|
||
sta GP.ParamA+1
|
||
pla
|
||
cmp #$FF
|
||
bne LABA6
|
||
|
||
sta GP.ParamT
|
||
lda #$80
|
||
sta GP.FoundBITS+1
|
||
lda #$05
|
||
sta GP.FoundBITS
|
||
LABA3 jmp BS.KW.BRUN
|
||
|
||
LABA6 sec
|
||
jsr MON.IIGSID
|
||
bcs LABA3
|
||
|
||
jmp LB099
|
||
|
||
BS.KW.X05 jsr LA411
|
||
lda AS.HIMEM+1
|
||
sta BS.AS.HIMEMSave
|
||
ldx XBBEA
|
||
dex
|
||
stx AS.HIMEM+1
|
||
jsr LAC22
|
||
ldx BS.AS.HIMEMSave
|
||
stx AS.HIMEM+1
|
||
bcs LAC33
|
||
|
||
jsr AS.CLEAR1
|
||
jsr LA480
|
||
lda #$00
|
||
beq LABE6
|
||
|
||
BS.KW.02 lda #$00
|
||
sta GP.IFILACTV
|
||
sta AS.ERRNUM
|
||
lda GP.FoundBITS
|
||
lsr
|
||
bcc LABF4
|
||
|
||
jsr LAC1D
|
||
bcs LAC33
|
||
|
||
jsr AS.CLEAR1
|
||
|
||
LABE6 sta AS.ERRFLG
|
||
jsr LACB6
|
||
jsr BS.SaveCSWKSW
|
||
jsr LABF4
|
||
jmp AS.NEXTSTMT
|
||
|
||
LABF4 jsr AS.NORMAL
|
||
lda #$A3
|
||
sta X9F65
|
||
lda #$FF
|
||
sta GP.XCNUM
|
||
sta ZP.PROMPT
|
||
ldx #$04
|
||
jsr BS.SetState
|
||
jmp BS.ERR10
|
||
|
||
BS.KW.RESTORE jsr LAC1D
|
||
bcs LAC33
|
||
|
||
BS.ENTRY jsr AS.CLEAR1
|
||
jsr BS.SetState0
|
||
lda #$00
|
||
sta ZP.CH
|
||
jmp AS.RESTART1
|
||
|
||
LAC1D jsr LB562
|
||
bcs LAC33
|
||
|
||
LAC22 jsr LAC34
|
||
bcs LAC33
|
||
|
||
sty AS.ARRAYSTART
|
||
sty AS.VARSTART
|
||
sty AS.ARRAYEND
|
||
stx AS.ARRAYSTART+1
|
||
stx AS.VARSTART+1
|
||
stx AS.ARRAYEND+1
|
||
|
||
LAC33 rts
|
||
|
||
LAC34 lda #$01
|
||
ldx #$FC
|
||
jsr BS.CheckFTypeXAccessA
|
||
bcs LAC33
|
||
|
||
lda #MLI.C.GETEOF
|
||
jsr GP.GOSYSTEM
|
||
bcs LAC33
|
||
|
||
lda AS.PGRMSTART
|
||
sta GP.MLIRW.DATAPTR
|
||
adc GP.SBUFADR
|
||
sta GP.ParamA
|
||
lda AS.PGRMSTART+1
|
||
sta GP.MLIRW.DATAPTR+1
|
||
adc GP.SBUFADR+1
|
||
sta GP.ParamA+1
|
||
bcs LAC5E
|
||
|
||
cmp AS.HIMEM+1
|
||
|
||
LAC5E lda #$0E
|
||
bcs LAC33
|
||
|
||
ldx GP.SBUFADR
|
||
ldy GP.SBUFADR+1
|
||
jsr BS.ReadXYBytes
|
||
bcs LAC33
|
||
|
||
jsr BS.FileClose
|
||
bcs LAC33
|
||
|
||
jsr LAC80
|
||
ldx GP.ParamA+1
|
||
ldy GP.ParamA
|
||
stx AS.PGRMEND+1
|
||
sty AS.PGRMEND
|
||
rts
|
||
|
||
LAC80 sec
|
||
lda AS.PGRMSTART
|
||
sbc GP.FIAUXTYPE
|
||
sta ZP.A1L
|
||
lda AS.PGRMSTART+1
|
||
sbc GP.FIAUXTYPE+1
|
||
sta ZP.A1H
|
||
ora ZP.A1L
|
||
clc
|
||
beq LACD9
|
||
|
||
ldx AS.PGRMSTART
|
||
lda AS.PGRMSTART+1
|
||
|
||
LAC98 stx ZP.PCL
|
||
sta ZP.PCH
|
||
ldy #$01
|
||
lda (ZP.PCL),y
|
||
dey
|
||
ora (ZP.PCL),y
|
||
beq LACD9
|
||
|
||
lda (ZP.PCL),y
|
||
adc ZP.A1L
|
||
tax
|
||
sta (ZP.PCL),y
|
||
iny
|
||
lda (ZP.PCL),y
|
||
adc ZP.A1H
|
||
sta (ZP.PCL),y
|
||
clc
|
||
bcc LAC98
|
||
|
||
LACB6 lda GP.FoundBITS+1
|
||
and #$08
|
||
clc
|
||
beq LACD9
|
||
|
||
lda GP.ParamAT
|
||
sta AS.LINNUM
|
||
lda GP.ParamAT+1
|
||
sta AS.LINNUM+1
|
||
jsr AS.FINDLINE
|
||
clc
|
||
lda AS.LOWTR
|
||
adc #$FF
|
||
sta AS.TXTPTR
|
||
lda AS.LOWTR+1
|
||
adc #$FF
|
||
sta AS.TXTPTR+1
|
||
clc
|
||
LACD9 rts
|
||
|
||
BS.KW.STORE bcc LACFE
|
||
|
||
lda #$FC
|
||
sta GP.ParamT
|
||
sta GP.FITYPE
|
||
lda #$C3
|
||
sta GP.FIACCESS
|
||
lda AS.PGRMSTART
|
||
sta GP.CRAUXTYPE
|
||
sta GP.FIAUXTYPE
|
||
lda AS.PGRMSTART+1
|
||
sta GP.CRAUXTYPE+1
|
||
sta GP.FIAUXTYPE+1
|
||
jsr BS.CreateFileOrDir
|
||
bcs LAD47
|
||
|
||
LACFE lda #$02
|
||
ldx #$FC
|
||
jsr BS.CheckFTypeXAccessA
|
||
bcs LAD47
|
||
|
||
lda AS.PGRMEND
|
||
sec
|
||
sbc AS.PGRMSTART
|
||
tax
|
||
sta GP.SBUFADR
|
||
lda AS.PGRMEND+1
|
||
sbc AS.PGRMSTART+1
|
||
tay
|
||
sta GP.SBUFADR+1
|
||
lda #$00
|
||
sta GP.SBUFADR+2
|
||
lda AS.PGRMSTART
|
||
sta GP.MLIRW.DATAPTR
|
||
lda AS.PGRMSTART+1
|
||
sta GP.MLIRW.DATAPTR+1
|
||
jsr BS.WriteXYBytes
|
||
bcs LAD47
|
||
|
||
lda #MLI.C.SETEOF
|
||
jsr GP.GOSYSTEM
|
||
bcs LAD47
|
||
|
||
jsr BS.FileClose
|
||
bcs LAD47
|
||
|
||
lda AS.PGRMSTART+1
|
||
ldx AS.PGRMSTART
|
||
cmp GP.FIAUXTYPE+1
|
||
bne LAD48
|
||
|
||
cpx GP.FIAUXTYPE
|
||
clc
|
||
bne LAD48
|
||
|
||
LAD47 rts
|
||
|
||
LAD48 stx GP.FIAUXTYPE
|
||
sta GP.FIAUXTYPE+1
|
||
jmp BS.SetFileInfoNoDate
|
||
|
||
BS.KW.CREATE lda #$00
|
||
sta GP.CRAUXTYPE
|
||
sta GP.CRAUXTYPE+1
|
||
lda GP.FoundBITS
|
||
and #$04
|
||
bne BS.CreateFileOrDir
|
||
|
||
lda #$0F
|
||
sta GP.ParamT
|
||
BS.CreateFileOrDir
|
||
lda GP.EXECACTV
|
||
asl
|
||
lda #$00
|
||
adc GP.OPENCNT
|
||
cmp #$08
|
||
bcs LAD8D
|
||
|
||
lda GP.ParamT
|
||
sta GP.CRTYPE
|
||
ldx #$C3
|
||
ldy #$01
|
||
cmp #$0F
|
||
bne LAD82
|
||
|
||
ldy #$0D
|
||
|
||
LAD82 stx GP.CRACCESS
|
||
sty GP.CRSTTYPE
|
||
lda #MLI.C.CREATE
|
||
jmp GP.GOSYSTEM
|
||
|
||
LAD8D lda #$0C
|
||
rts
|
||
|
||
BS.KW.RENAME lda GP.FoundBITS
|
||
lsr
|
||
lsr
|
||
lda #MLI.C.RENAME
|
||
bcs LAD9E
|
||
|
||
jmp BS.ERR10
|
||
|
||
BS.KW.DELETE lda #MLI.C.DESTROY
|
||
|
||
LAD9E jmp GP.GOSYSTEM
|
||
|
||
BS.KW.LOCK jsr BS.GetFileInfo
|
||
lda GP.FIACCESS
|
||
and #$3C
|
||
ora #$01
|
||
sta GP.FIACCESS
|
||
jmp BS.SetFileInfo
|
||
|
||
BS.KW.UNLOCK jsr BS.GetFileInfo
|
||
lda #$C3
|
||
ora GP.FIACCESS
|
||
sta GP.FIACCESS
|
||
jmp BS.SetFileInfo
|
||
|
||
BS.KW.PREFIX lda GP.FoundBITS+1
|
||
and #$04
|
||
sec
|
||
bne LADCB
|
||
|
||
lda GP.FoundBITS
|
||
lsr
|
||
|
||
LADCB lda #$C6
|
||
bcs LAD9E
|
||
|
||
lda ZP.PROMPT
|
||
beq LADF0
|
||
|
||
jsr BS.CROUT
|
||
ldx #$00
|
||
|
||
LADD8 cpx BS.CMDBUF.LEN
|
||
beq LADE8
|
||
|
||
lda BS.CMDBUF,x
|
||
ora #$80
|
||
jsr BS.COUT
|
||
inx
|
||
bne LADD8
|
||
|
||
LADE8 jsr BS.CROUT
|
||
jsr BS.CROUT
|
||
clc
|
||
rts
|
||
|
||
LADF0 lda #$FF
|
||
sta GP.PFXACTV
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/basic.15/basic.s.b
|
||
LOAD usr/src/basic.15/basic.s
|
||
ASM
|