mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-28 10:52:33 +00:00
1507 lines
21 KiB
Plaintext
1507 lines
21 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
BS.KW.BSAVE bcc LAE2D
|
||
|
||
lda GP.FoundBITS+1
|
||
and #$B0
|
||
cmp #$90
|
||
|
||
XAE00 bcc LAE31
|
||
|
||
lda GP.ParamA
|
||
sta GP.CRAUXTYPE
|
||
sta GP.FIAUXTYPE
|
||
lda GP.ParamA+1
|
||
sta GP.CRAUXTYPE+1
|
||
sta GP.FIAUXTYPE+1
|
||
lda #$06
|
||
sta GP.ParamT
|
||
sta GP.FITYPE
|
||
lda GP.FoundBITS
|
||
and #$04
|
||
bne LAE31
|
||
|
||
jsr BS.CreateFileOrDir
|
||
bcs LAE33
|
||
|
||
jsr BS.GetFileInfo
|
||
bcs LAE33
|
||
|
||
LAE2D lda #$02
|
||
bne LAE44
|
||
|
||
LAE31 lda #$06
|
||
|
||
LAE33 sec
|
||
rts
|
||
|
||
BS.KW.BRUN jsr BS.KW.BLOAD
|
||
bcs LAE33
|
||
|
||
jsr LAE3F
|
||
clc
|
||
rts
|
||
|
||
LAE3F jmp (GP.MLIRW.DATAPTR)
|
||
|
||
BS.KW.BLOAD lda #$01
|
||
LAE44 ldx #$06
|
||
jsr BS.CheckFTypeXAccessA
|
||
bcs LAE33
|
||
|
||
ldx GP.ParamA
|
||
ldy GP.ParamA+1
|
||
lda GP.FoundBITS+1
|
||
bmi LAE66
|
||
|
||
ldx GP.FIAUXTYPE
|
||
ldy GP.FIAUXTYPE+1
|
||
lda GP.FoundBITS
|
||
and #$04
|
||
bne LAEAB
|
||
|
||
lda GP.FoundBITS+1
|
||
|
||
LAE66 stx GP.MLIRW.DATAPTR
|
||
sty GP.MLIRW.DATAPTR+1
|
||
bit GP.FoundBITS+1
|
||
bvs LAE80
|
||
|
||
pha
|
||
lda GP.FITYPE
|
||
cmp #$06
|
||
bne LAE7F
|
||
|
||
stx GP.FIAUXTYPE
|
||
sty GP.FIAUXTYPE+1
|
||
|
||
LAE7F pla
|
||
LAE80 ldx GP.ParamL
|
||
ldy GP.ParamL+1
|
||
and #$30
|
||
beq LAEAF
|
||
|
||
eor #$30
|
||
beq LAEAB
|
||
|
||
and #$10
|
||
beq LAEC5
|
||
|
||
lda GP.ParamE
|
||
sec
|
||
sbc GP.ParamA
|
||
tax
|
||
lda GP.ParamE+1
|
||
sbc GP.ParamA+1
|
||
tay
|
||
inx
|
||
bne LAEA5
|
||
|
||
iny
|
||
|
||
LAEA5 bcs LAEC5
|
||
|
||
lda #$02
|
||
sec
|
||
rts
|
||
|
||
LAEAB lda #$0B
|
||
sec
|
||
rts
|
||
|
||
LAEAF lda #MLI.C.GETEOF
|
||
jsr GP.GOSYSTEM
|
||
bcs LAEC3
|
||
|
||
ldx GP.SBUFADR
|
||
ldy GP.SBUFADR+1
|
||
lda GP.SBUFADR+2
|
||
beq LAEC5
|
||
|
||
lda #$0E
|
||
LAEC3 sec
|
||
rts
|
||
|
||
LAEC5 stx GP.MLIRW.COUNT
|
||
sty GP.MLIRW.COUNT+1
|
||
lda GP.FoundBITS+1
|
||
and #$40
|
||
beq LAEF7
|
||
|
||
ldx #$02
|
||
LAED4 lda GP.ParamB,x
|
||
sta GP.SBUFADR,x
|
||
dex
|
||
bpl LAED4
|
||
|
||
LAEDD lda #MLI.C.SETMARK
|
||
jsr GP.GOSYSTEM
|
||
ldx GP.XCNUM
|
||
bcc LAEF7
|
||
|
||
cmp #$02
|
||
bne LAEC3
|
||
|
||
cpx #$0F
|
||
bne LAEC3
|
||
|
||
lda #MLI.C.SETEOF
|
||
jsr GP.GOSYSTEM
|
||
bcc LAEDD
|
||
rts
|
||
|
||
LAEF7 ldx GP.XCNUM
|
||
lda #$CA
|
||
cpx #$0F
|
||
bne LAF24
|
||
|
||
bit GP.FoundBITS+1
|
||
bvs LAF22
|
||
|
||
lda GP.FoundBITS+1
|
||
and #$30
|
||
beq LAF22
|
||
|
||
lda GP.MLIRW.COUNT
|
||
sta GP.SBUFADR
|
||
lda GP.MLIRW.COUNT+1
|
||
sta GP.SBUFADR+1
|
||
lda #$00
|
||
sta GP.SBUFADR+2
|
||
lda #MLI.C.SETEOF
|
||
jsr GP.GOSYSTEM
|
||
|
||
LAF22 lda #MLI.C.WRITE
|
||
|
||
LAF24 jsr GP.GOSYSTEM
|
||
bcs LAF38
|
||
bit GP.FoundBITS+1
|
||
bvs LAF35
|
||
|
||
cpx #$0F
|
||
bne LAF35
|
||
|
||
jsr BS.SetFileInfoNoDate
|
||
|
||
LAF35 jmp BS.FileClose
|
||
|
||
LAF38 sec
|
||
rts
|
||
|
||
BS.KW.SAVE bcc LAF4E
|
||
|
||
lda #$FD
|
||
sta GP.ParamT
|
||
sta GP.FITYPE
|
||
lda #$C3
|
||
sta GP.FIACCESS
|
||
jsr BS.CreateFileOrDir
|
||
bcs LAF9C
|
||
|
||
LAF4E jsr LA411
|
||
bcs LAF9C
|
||
|
||
ldx #$FD
|
||
lda #$02
|
||
jsr BS.CheckFTypeXAccessA
|
||
bcs LAF95
|
||
|
||
jsr BS.SetupRW5AtBBE4
|
||
jsr BS.WriteXYBytes
|
||
bcs LAF95
|
||
|
||
lda XBBE9
|
||
sta GP.MLIRW.DATAPTR
|
||
sta GP.FIAUXTYPE
|
||
lda XBBEA
|
||
sta GP.MLIRW.DATAPTR+1
|
||
sta GP.FIAUXTYPE+1
|
||
ldy XBBEC
|
||
ldx XBBEB
|
||
jsr BS.WriteXYBytes
|
||
bcs LAF95
|
||
|
||
lda #MLI.C.GETMARK
|
||
jsr GP.GOSYSTEM
|
||
lda #MLI.C.SETEOF
|
||
jsr GP.GOSYSTEM
|
||
bcs LAF95
|
||
|
||
jsr BS.SetFileInfoNoDate
|
||
bcs LAF95
|
||
|
||
jsr BS.FileClose
|
||
|
||
LAF95 php
|
||
pha
|
||
jsr LA480
|
||
pla
|
||
plp
|
||
LAF9C rts
|
||
|
||
BS.SetupRW5AtBBE4
|
||
lda #$E4
|
||
sta GP.MLIRW.DATAPTR
|
||
lda #$BB
|
||
sta GP.MLIRW.DATAPTR+1
|
||
ldy #$00
|
||
ldx #$05
|
||
rts
|
||
|
||
BS.KW.LOAD ldx #$FD
|
||
lda #$01
|
||
jsr BS.CheckFTypeXAccessA
|
||
bcs LAF9C
|
||
|
||
jsr BS.SetupRW5AtBBE4
|
||
jsr BS.ReadXYBytes
|
||
bcs LAF9C
|
||
|
||
lda GP.FIAUXTYPE
|
||
sta XBBE9
|
||
sta GP.MLIRW.DATAPTR
|
||
lda AS.HIMEM+1
|
||
sec
|
||
sbc BS.BAS.HDR+4
|
||
clc
|
||
adc GP.FIAUXTYPE+1
|
||
sta GP.MLIRW.DATAPTR+1
|
||
sta XBBEA
|
||
cmp AS.PGRMEND+1
|
||
bcc LAFF3
|
||
|
||
beq LAFF3
|
||
|
||
lda #$00
|
||
sbc XBBE9
|
||
tax
|
||
lda AS.HIMEM+1
|
||
sbc XBBEA
|
||
tay
|
||
jsr BS.ReadXYBytes
|
||
bcs LAF9C
|
||
|
||
jsr BS.FileClose
|
||
jmp LAF95
|
||
|
||
LAFF3 lda #$0E
|
||
sec
|
||
rts
|
||
|
||
BS.FileClose lda #MLI.C.CLOSE
|
||
bne LB007
|
||
|
||
BS.ReadXYBytes lda #MLI.C.READ
|
||
bne LB001
|
||
|
||
BS.WriteXYBytes lda #MLI.C.WRITE
|
||
LB001 sty GP.MLIRW.COUNT+1
|
||
stx GP.MLIRW.COUNT
|
||
|
||
LB007 jmp GP.GOSYSTEM
|
||
|
||
BS.KW.IN lda #$00
|
||
sta BS.GetCharSep
|
||
beq LB018
|
||
|
||
BS.KW.PR lda #$02
|
||
sta BS.GetCharSep
|
||
lda #$08
|
||
LB018 ora GP.ParamINPR
|
||
asl
|
||
tax
|
||
lda GP.FoundBITS
|
||
and #$40
|
||
beq LB035
|
||
|
||
lda GP.FoundBITS+1
|
||
bmi LB04A
|
||
|
||
lda GP.OUTVECT0,x
|
||
sta GP.ParamA
|
||
lda GP.OUTVECT0+1,x
|
||
sta GP.ParamA+1
|
||
|
||
LB035 jsr LB05C
|
||
bcs LB049
|
||
|
||
ldy BS.GetCharSep
|
||
lda GP.ParamA
|
||
sta ZP.CSW,y
|
||
lda GP.ParamA+1
|
||
sta ZP.CSW+1,y
|
||
LB049 rts
|
||
|
||
LB04A jsr LB05C
|
||
bcs LB05B
|
||
|
||
lda GP.ParamA+1
|
||
sta GP.OUTVECT0+1,x
|
||
lda GP.ParamA
|
||
sta GP.OUTVECT0,x
|
||
LB05B rts
|
||
|
||
LB05C lda GP.ParamA
|
||
sta ZP.PCL
|
||
lda GP.ParamA+1
|
||
sta ZP.PCH
|
||
ldy #$00
|
||
cmp #$C0
|
||
bcc LB081
|
||
|
||
lda $CFFF
|
||
sty ZP.A1L
|
||
lda (ZP.PCL),y
|
||
cmp #$FF
|
||
beq LB087
|
||
|
||
LB077 cmp (ZP.PCL),y
|
||
bne LB087
|
||
|
||
dec ZP.A1L
|
||
bne LB077
|
||
|
||
LB07F clc
|
||
rts
|
||
|
||
LB081 lda (ZP.PCL),y
|
||
cmp #$D8
|
||
beq LB07F
|
||
|
||
LB087 lda #$03
|
||
sec
|
||
rts
|
||
|
||
BS.KW.BYE jsr LB562
|
||
jsr LB36B
|
||
lda #$65
|
||
jsr MLI
|
||
.DA #MLI.C.QUIT
|
||
.DA GP.MLIRW
|
||
|
||
LB099 jsr MLI
|
||
.DA #MLI.C.QUIT
|
||
.DA BS.MLIQUIT2.Param
|
||
BS.MLIQUIT2.Param
|
||
.DA #4
|
||
.DA #$EE
|
||
.DA MLI.PATHBUF
|
||
.DA #0
|
||
.DA 0
|
||
|
||
BS.KW.CAT lda #$27
|
||
bne LB0AC
|
||
|
||
BS.KW.CATALOG lda #$4F
|
||
|
||
LB0AC sta BS.CATWIDTH
|
||
lda GP.FoundBITS
|
||
and #$05
|
||
lsr
|
||
bne LB0BA
|
||
|
||
sta GP.ParamT
|
||
|
||
LB0BA bcs LB0C1
|
||
|
||
jsr BS.GetFileInfo
|
||
bcs LB127
|
||
|
||
LB0C1 jsr LB1BA
|
||
bcs LB127
|
||
|
||
jsr BS.CROUT
|
||
jsr LB128
|
||
jsr BS.LINEBUFOUT
|
||
jsr BS.CROUT
|
||
jsr BS.LINEBUFCLR80
|
||
ldx #$10
|
||
jsr BS.PRINTERRMSGX
|
||
jsr BS.LINEBUFOUT
|
||
jsr BS.CROUT
|
||
lda XBC14
|
||
ora XBC15
|
||
nop
|
||
nop
|
||
|
||
LB0E8 jsr LB241
|
||
bcs LB113
|
||
|
||
lda GP.ParamT
|
||
beq LB0F7
|
||
|
||
cmp DIRENTBUF.TYPE
|
||
bne LB0FD
|
||
|
||
LB0F7 jsr LA4D2
|
||
jsr BS.LINEBUFOUT
|
||
|
||
LB0FD lda IO.KBD
|
||
cmp #$83
|
||
bne LB10E
|
||
|
||
lda GP.STATE
|
||
bne LB113
|
||
|
||
bit IO.KSTROBE
|
||
bcs LB113
|
||
|
||
LB10E nop
|
||
lda #$FF
|
||
bne LB0E8
|
||
|
||
LB113 jsr BS.FileClose
|
||
bcs LB127
|
||
|
||
jsr BS.CROUT
|
||
jsr LB157
|
||
bcs LB127
|
||
|
||
jsr BS.LINEBUFOUT
|
||
jsr BS.CROUT
|
||
|
||
clc
|
||
LB127 rts
|
||
|
||
LB128 jsr BS.LINEBUFCLR80
|
||
ldx #$01
|
||
ldy DIRENTBUF.STNL
|
||
lda #$AF
|
||
cpy #$F0
|
||
bcc LB13A
|
||
|
||
sta IO.LINEBUF,x
|
||
inx
|
||
|
||
LB13A tya
|
||
and #$0F
|
||
sta IO.LINEBUF
|
||
ldy #$05
|
||
|
||
LB142 lda DIRENTBUF,y
|
||
ora #$80
|
||
sta IO.LINEBUF,x
|
||
iny
|
||
inx
|
||
dec IO.LINEBUF
|
||
bne LB142
|
||
|
||
lda #$A2
|
||
sta IO.LINEBUF
|
||
rts
|
||
|
||
LB157 lda #$18
|
||
sta GP.SBUFADR
|
||
lda #$BC
|
||
sta GP.SBUFADR+1
|
||
lda MLI.DEVNUM
|
||
sta GP.MLIMRKEOFBUF.REFNUM
|
||
lda #MLI.C.ONLINE
|
||
jsr GP.GOSYSTEM
|
||
bcs LB127
|
||
|
||
lda BS.CMDBUF
|
||
and #$0F
|
||
tax
|
||
inx
|
||
stx BS.CMDBUF.LEN
|
||
lda #$AF
|
||
sta BS.CMDBUF
|
||
jsr BS.GetFileInfo
|
||
bcs LB127
|
||
|
||
jsr BS.LINEBUFCLR80
|
||
ldx #$36
|
||
jsr BS.PRINTERRMSGX
|
||
jsr BS.TMPBUF3Reset
|
||
lda GP.FIAUXTYPE
|
||
ldx GP.FIAUXTYPE+1
|
||
ldy #$3D
|
||
jsr BS.AXDEC2LINEBUFY
|
||
lda GP.FIBLOKS
|
||
ldx GP.FIBLOKS+1
|
||
ldy #$26
|
||
jsr BS.AXDEC2LINEBUFY
|
||
lda GP.FIAUXTYPE
|
||
sec
|
||
sbc GP.FIBLOKS
|
||
pha
|
||
lda GP.FIAUXTYPE+1
|
||
sbc GP.FIBLOKS+1
|
||
tax
|
||
pla
|
||
ldy #$10
|
||
jsr BS.AXDEC2LINEBUFY
|
||
clc
|
||
rts
|
||
|
||
LB1BA lda #$01
|
||
ldx #$0F
|
||
ldy GP.STTYPE
|
||
cpy #$0F
|
||
bne LB1C8
|
||
|
||
stx GP.FITYPE
|
||
|
||
LB1C8 jsr LB210
|
||
bcs LB203
|
||
|
||
BS.ReadDirEnt lda #$59
|
||
sta GP.MLIRW.DATAPTR
|
||
lda #$02
|
||
sta GP.MLIRW.DATAPTR+1
|
||
lda #$2B
|
||
sta GP.MLIRW.COUNT
|
||
lda #$00
|
||
sta GP.MLIRW.COUNT+1
|
||
lda #MLI.C.READ
|
||
jsr GP.GOSYSTEM
|
||
bcs LB203
|
||
|
||
ldx #$03
|
||
|
||
LB1EA lda $27C,x
|
||
sta XBC12,x
|
||
dex
|
||
bpl LB1EA
|
||
|
||
sta GP.MLIRW.COUNT
|
||
lda #$01
|
||
sta XBC16
|
||
lda #$00
|
||
sta GP.SBUFADR+1
|
||
sta GP.SBUFADR+2
|
||
LB203 rts
|
||
|
||
BS.CheckFTypeXAccessA
|
||
pha
|
||
lda GP.FoundBITS
|
||
and #$04
|
||
beq LB20F
|
||
|
||
ldx GP.ParamT
|
||
|
||
LB20F pla
|
||
|
||
LB210 cpx GP.FITYPE
|
||
bne LB239
|
||
|
||
and GP.FIACCESS
|
||
beq LB23D
|
||
|
||
lda XBBE3
|
||
sta GP.OSYSBUF+1
|
||
lda #$0F
|
||
sta MLI.LEVEL
|
||
lda #MLI.C.OPEN
|
||
jsr GP.GOSYSTEM
|
||
bcs LB238
|
||
|
||
lda GP.OREFNUM
|
||
sta GP.MLIRW.REFNUM
|
||
sta GP.MLICF.REFNUM
|
||
sta GP.MLIMRKEOFBUF.REFNUM
|
||
|
||
LB238 rts
|
||
|
||
LB239 lda #$0D
|
||
sec
|
||
rts
|
||
|
||
LB23D lda #$0A
|
||
sec
|
||
rts
|
||
|
||
LB241 lda GP.SBUFADR+1
|
||
and #$FE
|
||
sta GP.SBUFADR+1
|
||
ldy XBC16
|
||
lda #$00
|
||
cpy XBC13
|
||
bcc LB25D
|
||
|
||
tay
|
||
sty XBC16
|
||
inc GP.SBUFADR+1
|
||
|
||
LB25A inc GP.SBUFADR+1
|
||
|
||
LB25D dey
|
||
clc
|
||
bmi LB268
|
||
|
||
adc XBC12
|
||
bcc LB25D
|
||
|
||
bcs LB25A
|
||
|
||
LB268 adc #$04
|
||
sta GP.SBUFADR
|
||
lda #MLI.C.SETMARK
|
||
jsr GP.GOSYSTEM
|
||
bcs LB28D
|
||
|
||
lda #MLI.C.READ
|
||
jsr GP.GOSYSTEM
|
||
bcs LB28D
|
||
|
||
inc XBC16
|
||
lda DIRENTBUF
|
||
and #$F0
|
||
beq LB241
|
||
|
||
dec XBC14
|
||
bne LB28D
|
||
|
||
dec XBC15
|
||
|
||
LB28D rts
|
||
BS.JMP.XTRNADDR jmp (GP.XTRNADDR)
|
||
|
||
BS.KW.EXEC jsr BS.CheckFilename
|
||
bcs LB2C0
|
||
|
||
bit GP.EXECFILE
|
||
bpl LB2BC
|
||
|
||
sta GP.MLIMRKEOFBUF.REFNUM
|
||
lda #$00
|
||
sta GP.SBUFADR
|
||
sta GP.SBUFADR+1
|
||
sta GP.SBUFADR+2
|
||
lda #MLI.C.SETMARK
|
||
jsr GP.GOSYSTEM
|
||
bcs LB2B5
|
||
|
||
lda GP.MLIMRKEOFBUF.REFNUM
|
||
bne LB333
|
||
|
||
LB2B5 pha
|
||
jsr LB36B
|
||
pla
|
||
sec
|
||
rts
|
||
|
||
LB2BC lda #$14
|
||
sec
|
||
rts
|
||
|
||
LB2C0 bit GP.EXECACTV
|
||
bpl LB2CA
|
||
|
||
jsr LB36B
|
||
bcs LB2D3
|
||
|
||
LB2CA lda GP.FITYPE
|
||
cmp #$04
|
||
beq LB2D5
|
||
|
||
lda #$0D
|
||
LB2D3 sec
|
||
rts
|
||
|
||
LB2D5 jsr LA1F9
|
||
bcs LB2D3
|
||
|
||
lda #$00
|
||
sta GP.SBUFADR
|
||
lda XBBE3
|
||
sta GP.SBUFADR+1
|
||
ldx GP.OPENCNT
|
||
beq LB30E
|
||
|
||
tay
|
||
txa
|
||
asl
|
||
asl
|
||
adc XBBE3
|
||
pha
|
||
LB2F2 cmp XBBEE,x
|
||
beq LB2FB
|
||
|
||
dex
|
||
bne LB2F2
|
||
|
||
brk
|
||
|
||
LB2FB tya
|
||
sta XBBEE,x
|
||
lda XBBF6,x
|
||
sta GP.MLIMRKEOFBUF.REFNUM
|
||
lda #MLI.C.SETBUF
|
||
jsr GP.GOSYSTEM
|
||
bcc LB30D
|
||
|
||
brk
|
||
|
||
LB30D pla
|
||
LB30E sta XBBE3
|
||
sta GP.OSYSBUF+1
|
||
lda #$00
|
||
sta MLI.LEVEL
|
||
lda #MLI.C.OPEN
|
||
jsr GP.GOSYSTEM
|
||
bcc LB327
|
||
|
||
pha
|
||
jsr LA250
|
||
pla
|
||
sec
|
||
rts
|
||
|
||
LB327 ldx GP.OSYSBUF+1
|
||
stx XBBF6
|
||
lda GP.OREFNUM
|
||
sta XBBFE
|
||
LB333 sta GP.MLIRW.REFNUM
|
||
sta GP.MLIMRKEOFBUF.REFNUM
|
||
sta GP.NEWLREF
|
||
ldx GP.FIAUXTYPE
|
||
stx GP.ParamL
|
||
ldx GP.FIAUXTYPE+1
|
||
stx GP.ParamL+1
|
||
jsr LB45B
|
||
lda #$7F
|
||
sta GP.NLINEMASK
|
||
lda #MLI.C.NEWLINE
|
||
jsr GP.GOSYSTEM
|
||
lda GP.FoundBITS+1
|
||
and #$03
|
||
beq LB364
|
||
|
||
jsr LB592
|
||
bcc LB364
|
||
|
||
jmp LB2B5
|
||
|
||
LB364 lda #$FF
|
||
sta GP.EXECACTV
|
||
clc
|
||
rts
|
||
|
||
LB36B lda GP.EXECACTV
|
||
bpl LB37B
|
||
|
||
sta GP.EXECFILE
|
||
ldx #$08
|
||
lda XBBF6,x
|
||
jsr LB515
|
||
|
||
LB37B rts
|
||
|
||
BS.KW.X10 bcs LB3B7
|
||
|
||
lda GP.FoundBITS
|
||
and #$01
|
||
bne LB38D
|
||
|
||
ldx #$00
|
||
jsr BS.PRINTERRX
|
||
jsr BS.CROUT
|
||
|
||
LB38D clc
|
||
rts
|
||
|
||
lda #$00
|
||
beq LB39F
|
||
|
||
BS.KW.FLUSH lda GP.FoundBITS
|
||
and #$01
|
||
beq LB39F
|
||
|
||
jsr BS.CheckFilename
|
||
bcs LB3A7
|
||
|
||
LB39F sta GP.MLICF.REFNUM
|
||
lda #MLI.C.FLUSH
|
||
jsr GP.GOSYSTEM
|
||
|
||
LB3A7 rts
|
||
|
||
BS.KW.03 php
|
||
jsr BS.CheckFilename
|
||
bcs LB3BB
|
||
|
||
plp
|
||
lda #$14
|
||
sec
|
||
rts
|
||
|
||
LB3B3 lda #$0D
|
||
sec
|
||
rts
|
||
|
||
LB3B7 lda #$06
|
||
LB3B9 sec
|
||
rts
|
||
|
||
LB3BB plp
|
||
ldx #$00
|
||
ldy #$00
|
||
lda GP.FoundBITS+1
|
||
and #$10
|
||
bne LB3CD
|
||
|
||
stx GP.ParamL+1
|
||
sty GP.ParamL
|
||
|
||
LB3CD lda GP.FoundBITS
|
||
and #$04
|
||
eor #$04
|
||
beq LB3DB
|
||
|
||
lda #$04
|
||
sta GP.ParamT
|
||
|
||
LB3DB bcc LB3FE
|
||
|
||
beq LB3B7
|
||
|
||
sta GP.FITYPE
|
||
lda #$C3
|
||
sta GP.FIACCESS
|
||
ldx GP.ParamL+1
|
||
ldy GP.ParamL
|
||
stx GP.CRAUXTYPE+1
|
||
stx GP.FIAUXTYPE+1
|
||
sty GP.CRAUXTYPE
|
||
sty GP.FIAUXTYPE
|
||
jsr BS.CreateFileOrDir
|
||
bcs LB3B9
|
||
|
||
LB3FE lda GP.FITYPE
|
||
cmp GP.ParamT
|
||
bne LB3B3
|
||
|
||
cmp #$04
|
||
bne LB41D
|
||
|
||
ldx GP.FIAUXTYPE+1
|
||
ldy GP.FIAUXTYPE
|
||
lda GP.FoundBITS+1
|
||
and #$10
|
||
bne LB41D
|
||
|
||
stx GP.ParamL+1
|
||
sty GP.ParamL
|
||
|
||
LB41D jsr LA1F9
|
||
bcs LB3B9
|
||
|
||
lda XBBE3
|
||
sta GP.OSYSBUF+1
|
||
lda #$07
|
||
sta MLI.LEVEL
|
||
lda #MLI.C.OPEN
|
||
jsr GP.GOSYSTEM
|
||
bcc LB43B
|
||
|
||
pha
|
||
jsr LA250
|
||
pla
|
||
sec
|
||
rts
|
||
|
||
LB43B lda GP.FITYPE
|
||
cmp #$0F
|
||
beq LB443
|
||
|
||
clc
|
||
|
||
LB443 lda #$00
|
||
ror
|
||
sta GP.DIRFLG
|
||
ldx GP.OPENCNT
|
||
lda XBBE3
|
||
sta XBBEF,x
|
||
lda GP.OREFNUM
|
||
sta XBBF7,x
|
||
inc GP.OPENCNT
|
||
LB45B asl
|
||
asl
|
||
asl
|
||
asl
|
||
asl
|
||
tax
|
||
lda MLI.PATHBUF
|
||
ora GP.DIRFLG
|
||
sta XBC59,x
|
||
and #$7F
|
||
tay
|
||
cmp #$1E
|
||
bcc LB473
|
||
|
||
lda #$1D
|
||
|
||
LB473 sta ZP.PCL
|
||
lda GP.ParamL
|
||
sta XBC5A,x
|
||
lda GP.ParamL+1
|
||
sta XBC5B,x
|
||
|
||
LB481 inx
|
||
lda MLI.PATHBUF,y
|
||
sta XBC5B,x
|
||
dey
|
||
dec ZP.PCL
|
||
bne LB481
|
||
|
||
BS.KW.X07 clc
|
||
rts
|
||
|
||
BS.CheckFilename
|
||
lda GP.FoundBITS
|
||
and #$01
|
||
bne LB49A
|
||
|
||
lda #$10
|
||
sec
|
||
rts
|
||
|
||
LB49A ldx GP.OPENCNT
|
||
beq LB4B8
|
||
|
||
stx GP.EXECFILE
|
||
|
||
LB4A2 stx ZP.PCH
|
||
lda XBBF6,x
|
||
jsr LB4D2
|
||
bne LB4B3
|
||
|
||
ldx ZP.PCH
|
||
|
||
LB4AE lda XBBF6,x
|
||
LB4B1 clc
|
||
rts
|
||
|
||
LB4B3 ldx ZP.PCH
|
||
dex
|
||
bne LB4A2
|
||
|
||
LB4B8 lda GP.EXECACTV
|
||
bpl LB4CE
|
||
|
||
lda XBBFE
|
||
jsr LB4D2
|
||
bne LB4CE
|
||
|
||
lda #$FF
|
||
sta GP.EXECFILE
|
||
ldx #$08
|
||
bne LB4AE
|
||
|
||
LB4CE lda #$12
|
||
sec
|
||
rts
|
||
|
||
LB4D2 asl
|
||
asl
|
||
asl
|
||
asl
|
||
asl
|
||
tax
|
||
lda XBC59,x
|
||
sta GP.DIRFLG
|
||
and #$7F
|
||
cmp MLI.PATHBUF
|
||
bne LB508
|
||
|
||
tay
|
||
cmp #$1E
|
||
bcc LB4EC
|
||
|
||
lda #$1D
|
||
|
||
LB4EC sta ZP.PCL
|
||
lda XBC5A,x
|
||
sta XBBFF
|
||
lda XBC5B,x
|
||
sta XBC00
|
||
|
||
LB4FA inx
|
||
lda MLI.PATHBUF,y
|
||
cmp XBC5B,x
|
||
bne LB508
|
||
|
||
dey
|
||
dec ZP.PCL
|
||
bne LB4FA
|
||
|
||
LB508 rts
|
||
|
||
BS.KW.X06 lda GP.FoundBITS
|
||
and #$01
|
||
beq LB562
|
||
|
||
jsr BS.CheckFilename
|
||
bcs LB4B1
|
||
|
||
LB515 sta GP.MLICF.REFNUM
|
||
lda XBBEE,x
|
||
sta XBBE3
|
||
bit GP.EXECFILE
|
||
bmi LB53F
|
||
|
||
ldy GP.OPENCNT
|
||
pha
|
||
lda XBBEE,y
|
||
sta XBBEE,x
|
||
pla
|
||
sta XBBEE,y
|
||
lda XBBF6,x
|
||
pha
|
||
lda XBBF6,y
|
||
sta XBBF6,x
|
||
pla
|
||
sta XBBF6,y
|
||
|
||
LB53F lda #$00
|
||
sta MLI.LEVEL
|
||
lda #MLI.C.CLOSE
|
||
jsr GP.GOSYSTEM
|
||
bcs LB572
|
||
|
||
jsr LA250
|
||
bit GP.EXECFILE
|
||
bpl LB55E
|
||
|
||
pha
|
||
lda #$00
|
||
sta GP.EXECACTV
|
||
sta GP.EXECFILE
|
||
pla
|
||
rts
|
||
|
||
LB55E dec GP.OPENCNT
|
||
rts
|
||
|
||
LB562 ldx GP.OPENCNT
|
||
beq LB573
|
||
|
||
stx GP.EXECFILE
|
||
lda XBBF6,x
|
||
jsr LB515
|
||
bcc LB562
|
||
|
||
LB572 rts
|
||
|
||
LB573 lda #$00
|
||
sta GP.MLICF.REFNUM
|
||
lda #$07
|
||
sta MLI.LEVEL
|
||
lda #MLI.C.CLOSE
|
||
jmp GP.GOSYSTEM
|
||
|
||
BS.KW.CLOSE jsr BS.CheckFilename
|
||
bcs LB5EF
|
||
|
||
sta GP.MLIRW.REFNUM
|
||
sta GP.NEWLREF
|
||
bit GP.DIRFLG
|
||
bmi LB5F0
|
||
|
||
LB592 lda GP.FoundBITS+1
|
||
and #$03
|
||
beq LB5ED
|
||
|
||
cmp #$03
|
||
beq LB5ED
|
||
|
||
and #$01
|
||
beq LB5AD
|
||
|
||
lda GP.ParamR
|
||
sta GP.ParamF
|
||
lda GP.ParamR+1
|
||
sta GP.ParamF+1
|
||
|
||
LB5AD lda #$EF
|
||
sta GP.MLIRW.COUNT
|
||
lda #$00
|
||
sta GP.MLIRW.COUNT+1
|
||
sta GP.MLIRW.DATAPTR
|
||
lda #$02
|
||
sta GP.MLIRW.DATAPTR+1
|
||
lda #$7F
|
||
sta GP.NLINEMASK
|
||
lda #MLI.C.NEWLINE
|
||
jsr GP.GOSYSTEM
|
||
bcs LB5EF
|
||
|
||
LB5CB lda GP.ParamF
|
||
ora GP.ParamF+1
|
||
clc
|
||
beq LB5F0
|
||
|
||
lda #MLI.C.READ
|
||
jsr GP.GOSYSTEM
|
||
bcs LB5EF
|
||
|
||
lda GP.ParamF
|
||
sbc #$00
|
||
sta GP.ParamF
|
||
lda GP.ParamF+1
|
||
sbc #$00
|
||
sta GP.ParamF+1
|
||
bcs LB5CB
|
||
|
||
LB5ED lda #$0B
|
||
LB5EF sec
|
||
LB5F0 rts
|
||
|
||
LB5F1 lda XBBFF
|
||
sta BS.TMPBUF4
|
||
lda XBC00
|
||
sta BS.TMPBUF4+1
|
||
lda #$00
|
||
sta BS.TMPBUF4+2
|
||
sta BS.TMPBUF4+3
|
||
sta GP.SBUFADR
|
||
sta GP.SBUFADR+1
|
||
sta GP.SBUFADR+2
|
||
LB60E lsr GP.ParamR+1
|
||
ror GP.ParamR
|
||
ldx #$00
|
||
bcc LB62F
|
||
|
||
clc
|
||
|
||
LB619 lda BS.TMPBUF4,x
|
||
adc GP.SBUFADR,x
|
||
sta GP.SBUFADR,x
|
||
inx
|
||
txa
|
||
eor #$03
|
||
bne LB619
|
||
|
||
bcs LB642
|
||
|
||
ldx BS.TMPBUF4+3
|
||
bne LB642
|
||
|
||
LB62F rol BS.TMPBUF4,x
|
||
inx
|
||
txa
|
||
eor #$04
|
||
bne LB62F
|
||
|
||
lda GP.ParamR
|
||
ora GP.ParamR+1
|
||
bne LB60E
|
||
|
||
clc
|
||
rts
|
||
|
||
LB642 lda #$02
|
||
sec
|
||
rts
|
||
|
||
BS.KW.X04 jsr BS.CheckFilename
|
||
bcs LB69B
|
||
|
||
sta GP.MLIRW.REFNUM
|
||
sta GP.MLIMRKEOFBUF.REFNUM
|
||
sta GP.NEWLREF
|
||
bit GP.DIRFLG
|
||
bmi LB69C
|
||
|
||
jsr LB6D0
|
||
bcs LB69B
|
||
|
||
ldx #$7F
|
||
ldy #$EF
|
||
lda GP.FoundBITS+1
|
||
and #$10
|
||
beq LB67C
|
||
|
||
ldy GP.ParamL
|
||
ldx GP.ParamL+1
|
||
bne LB6CB
|
||
|
||
cpy #$EF
|
||
bcs LB6CB
|
||
|
||
lda #$22
|
||
sta IO.LINEBUF
|
||
|
||
lda #$01
|
||
|
||
LB67C sta GP.MLIRW.DATAPTR
|
||
sty GP.MLIRW.COUNT
|
||
stx GP.NLINEMASK
|
||
lda #$02
|
||
sta GP.MLIRW.DATAPTR+1
|
||
lda #$00
|
||
sta GP.MLIRW.COUNT+1
|
||
lda #MLI.C.NEWLINE
|
||
jsr GP.GOSYSTEM
|
||
bcs LB69B
|
||
|
||
LB696 lda #$FF
|
||
sta GP.IFILACTV
|
||
LB69B rts
|
||
|
||
LB69C lda #$59
|
||
sta GP.MLIRW.DATAPTR
|
||
lda #$02
|
||
sta GP.MLIRW.DATAPTR+1
|
||
lda #$01
|
||
sta GP.CATFLAG
|
||
lda GP.FoundBITS+1
|
||
and #$01
|
||
clc
|
||
beq LB696
|
||
|
||
lda #$00
|
||
sta GP.SBUFADR
|
||
sta GP.SBUFADR+1
|
||
sta GP.SBUFADR+2
|
||
lda #MLI.C.SETMARK
|
||
jsr GP.GOSYSTEM
|
||
bcs LB6CA
|
||
|
||
lda #$FF
|
||
sta GP.IFILACTV
|
||
|
||
LB6CA rts
|
||
|
||
LB6CB lda #$02
|
||
tax
|
||
sec
|
||
rts
|
||
|
||
LB6D0 lda GP.FoundBITS+1
|
||
and #$43
|
||
beq LB719
|
||
|
||
and #$01
|
||
beq LB6E5
|
||
|
||
jsr LB5F1
|
||
bcs LB6CB
|
||
|
||
LB6E0 jsr LB712
|
||
bcs LB71A
|
||
LB6E5
|
||
lda GP.FoundBITS+1
|
||
and #$02
|
||
beq LB6F1
|
||
|
||
jsr LB5AD
|
||
bcs LB71A
|
||
|
||
LB6F1 lda GP.FoundBITS+1
|
||
and #$40
|
||
beq LB719
|
||
|
||
lda #MLI.C.GETMARK
|
||
jsr GP.GOSYSTEM
|
||
bcs LB71A
|
||
|
||
ldx #$00
|
||
ldy #$02
|
||
|
||
LB703 lda GP.ParamB,x
|
||
adc GP.SBUFADR,x
|
||
sta GP.SBUFADR,x
|
||
inx
|
||
dey
|
||
bpl LB703
|
||
|
||
bcs LB6CB
|
||
|
||
LB712 lda #MLI.C.SETMARK
|
||
jsr GP.GOSYSTEM
|
||
bcs LB71A
|
||
|
||
LB719 clc
|
||
LB71A ldx #$00
|
||
rts
|
||
|
||
BS.KW.X08 jsr BS.CheckFilename
|
||
bcs LB732
|
||
|
||
sta GP.MLIRW.REFNUM
|
||
sta GP.MLIMRKEOFBUF.REFNUM
|
||
sta GP.NEWLREF
|
||
bit GP.DIRFLG
|
||
bpl LB734
|
||
|
||
lda #$0A
|
||
|
||
LB732 sec
|
||
rts
|
||
|
||
LB734 lda #$00
|
||
sta GP.MLIRW.DATAPTR
|
||
lda #$02
|
||
sta GP.MLIRW.DATAPTR+1
|
||
jsr LB6D0
|
||
bcc LB757
|
||
|
||
cmp #$02
|
||
bne LB732
|
||
|
||
cpx #$02
|
||
beq LB732
|
||
|
||
LB74B lda #MLI.C.SETEOF
|
||
jsr GP.GOSYSTEM
|
||
bcs LB732
|
||
|
||
jsr LB6E0
|
||
bcs LB732
|
||
|
||
LB757 lda AS.HIMEM
|
||
sta GP.MLIRW.DATAPTR
|
||
lda AS.HIMEM+1
|
||
sta GP.MLIRW.DATAPTR+1
|
||
lda #$FF
|
||
sta GP.OFILACTV
|
||
clc
|
||
rts
|
||
|
||
BS.KW.X09 php
|
||
jsr BS.CheckFilename
|
||
bcc LB77A
|
||
|
||
plp
|
||
jsr BS.KW.03
|
||
bcs LB788
|
||
|
||
lda GP.OREFNUM
|
||
bne LB77B
|
||
|
||
brk
|
||
|
||
LB77A plp
|
||
|
||
LB77B sta GP.MLIRW.REFNUM
|
||
sta GP.MLIMRKEOFBUF.REFNUM
|
||
bit GP.DIRFLG
|
||
bpl LB78A
|
||
|
||
lda #$0A
|
||
|
||
LB788 sec
|
||
rts
|
||
|
||
LB78A ldx GP.ParamL
|
||
ldy GP.ParamL+1
|
||
lda GP.FoundBITS+1
|
||
and #$10
|
||
bne LB79D
|
||
|
||
ldx GP.FIAUXTYPE
|
||
ldy GP.FIAUXTYPE+1
|
||
LB79D txa
|
||
pha
|
||
lda GP.MLIRW.REFNUM
|
||
lsr
|
||
ror
|
||
ror
|
||
ror
|
||
tax
|
||
pla
|
||
sta XBC5A,x
|
||
sta XBBFF
|
||
tya
|
||
sta XBC5B,x
|
||
sta XBC00
|
||
lda #MLI.C.GETEOF
|
||
jsr GP.GOSYSTEM
|
||
bcs LB788
|
||
|
||
lda XBC00
|
||
bne LB7C8
|
||
|
||
lda XBBFF
|
||
cmp #$02
|
||
bcc LB7CD
|
||
|
||
LB7C8 jsr LB7D0
|
||
bcs LB788
|
||
|
||
LB7CD jmp LB74B
|
||
|
||
LB7D0 ldx #$03
|
||
LB7D2 lda GP.MLIMRKEOFBUF.REFNUM,x
|
||
sta XBC09,x
|
||
dex
|
||
bne LB7D2
|
||
|
||
stx BS.TMPBUF4+3
|
||
stx XBC0E
|
||
ldy #$18
|
||
|
||
LB7E3 jsr BS.TMPBUF3x2
|
||
rol BS.TMPBUF4+3
|
||
rol XBC0E
|
||
sec
|
||
lda BS.TMPBUF4+3
|
||
sbc XBBFF
|
||
tax
|
||
lda XBC0E
|
||
sbc XBC00
|
||
bcc LB805
|
||
|
||
stx BS.TMPBUF4+3
|
||
sta XBC0E
|
||
inc BS.TMPBUF4
|
||
|
||
LB805 dey
|
||
bne LB7E3
|
||
|
||
lda BS.TMPBUF4+3
|
||
ora XBC0E
|
||
clc
|
||
beq LB839
|
||
|
||
lda XBBFF
|
||
sec
|
||
sbc BS.TMPBUF4+3
|
||
tax
|
||
lda XBC00
|
||
sbc XBC0E
|
||
tay
|
||
txa
|
||
clc
|
||
adc GP.SBUFADR
|
||
sta GP.SBUFADR
|
||
tya
|
||
adc GP.SBUFADR+1
|
||
sta GP.SBUFADR+1
|
||
lda GP.SBUFADR+2
|
||
adc #$00
|
||
sta GP.SBUFADR+2
|
||
lda #$02
|
||
|
||
LB839 rts
|
||
|
||
BS.GetFileInfo lda #$0A
|
||
sta GP.SSGINFO
|
||
lda #MLI.C.GETFILEINFO
|
||
bne LB858
|
||
|
||
BS.SetFileInfoNoDate
|
||
lda #$00
|
||
sta GP.FIMDATE
|
||
sta GP.FIMDATE+1
|
||
sta GP.FICDATE
|
||
sta GP.FICDATE+1
|
||
|
||
BS.SetFileInfo lda #$07
|
||
sta GP.SSGINFO
|
||
lda #MLI.C.SETFILEINFO
|
||
|
||
LB858 jmp GP.GOSYSTEM
|
||
|
||
BS.JMP.GP.VSYSO jmp (GP.VSYSO)
|
||
BS.JMP.GP.VSYSI jmp (GP.VSYSI)
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/basic.15/basic.s.c
|
||
LOAD usr/src/basic.15/basic.s
|
||
ASM
|