mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-28 10:52:33 +00:00
1505 lines
22 KiB
Plaintext
1505 lines
22 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
BSX.JMPX jmp (BSX.JMP,x)
|
||
|
||
BSX.JMP
|
||
BSX.CheckOpt.X .EQ *-BSX.JMP
|
||
.DA BSX.CheckOpt
|
||
BSX.GetDecNum.X .EQ *-BSX.JMP
|
||
.DA BSX.GetDecNum
|
||
BSX.Expand.X .EQ *-BSX.JMP
|
||
.DA BSX.Expand
|
||
BSX.IsIntCmd.X .EQ *-BSX.JMP
|
||
.DA BSX.IsIntCmd
|
||
BSX.GetErrA.X .EQ *-BSX.JMP
|
||
.DA BSX.GetErrA
|
||
BSX.GetMsgY.X .EQ *-BSX.JMP
|
||
.DA BSX.GetMsgY
|
||
BSX.MkCatLine.X .EQ *-BSX.JMP
|
||
.DA BSX.MkCatLine
|
||
BSX.MkCatLineF.X .EQ *-BSX.JMP
|
||
.DA BSX.MkCatLineF
|
||
BSX.Online.X .EQ *-BSX.JMP
|
||
.DA BSX.Online
|
||
BSX.OnlineErr.X .EQ *-BSX.JMP
|
||
.DA BSX.OnlineErr
|
||
BSX.InitPath.X .EQ *-BSX.JMP
|
||
.DA BSX.InitPath
|
||
BSX.SetPath.X .EQ *-BSX.JMP
|
||
.DA BSX.SetPath
|
||
BSX.GetPath.X .EQ *-BSX.JMP
|
||
.DA BSX.GetPath
|
||
*--------------------------------------
|
||
BSX.FMT.CheckP.X .EQ *-BSX.JMP
|
||
.DA BSX.FMT.CheckP
|
||
BSX.FMT.D2.X .EQ *-BSX.JMP
|
||
.DA BSX.FMT.D2
|
||
BSX.FMT.GetCatBlk.X .EQ *-BSX.JMP
|
||
.DA BSX.FMT.GetCatBlk
|
||
*--------------------------------------
|
||
BSX.Mem.X .EQ *-BSX.JMP
|
||
.DA BSX.Mem
|
||
BSX.Fre0.X .EQ *-BSX.JMP
|
||
.DA BSX.Fre0
|
||
BSX.Fre1.X .EQ *-BSX.JMP
|
||
.DA BSX.Fre1
|
||
*--------------------------------------
|
||
BSX.Rel.X .EQ *-BSX.JMP
|
||
.DA BSX.Rel
|
||
*--------------------------------------
|
||
BSX.CheckOpt jsr BS.TMPBUF3Reset
|
||
|
||
jsr BSX.ToUpper
|
||
|
||
ldx BS.ToAUXSaveX
|
||
|
||
ldy #$09
|
||
|
||
LA8FB cmp BSX.KW.OPT,y
|
||
beq LA935
|
||
|
||
dey
|
||
bpl LA8FB
|
||
|
||
cmp #'T'
|
||
beq LA90A
|
||
|
||
LA907 lda #BS.E.SYNTAX
|
||
sec
|
||
rts
|
||
|
||
LA90A lda #CMDBITS0.T
|
||
and GP.AllowedBITS
|
||
beq LA931
|
||
|
||
tsb GP.FoundBITS
|
||
|
||
stz XBC08
|
||
|
||
lda #$12
|
||
sta XBC09
|
||
jsr BS.GetCharSpaceSep
|
||
beq LA907
|
||
|
||
cmp #'$'
|
||
beq LA984
|
||
|
||
cmp #'A'
|
||
bcc LA96E
|
||
|
||
jmp BSX.GetFTypeASC
|
||
|
||
LA931 lda #BS.E.INVOPT
|
||
sec
|
||
rts
|
||
|
||
LA935 lda BSX.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 #CMDBITS1.SD
|
||
|
||
LA94F tsb GP.FoundBITS+1
|
||
|
||
LA955 lda BSX.KW.OPT.PBITSHI,y
|
||
and #$03
|
||
sta XBC08
|
||
|
||
lda BSX.KW.OPT.PBITSHI,y
|
||
lsr
|
||
lsr
|
||
sta XBC09
|
||
jsr BS.GetCharSpaceSep
|
||
beq LA9BE
|
||
|
||
cmp #'$'
|
||
beq LA984
|
||
|
||
LA96E stx GP.INPTR
|
||
jsr BSX.GetDecDigit
|
||
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 BSX.GetHexDigit
|
||
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
|
||
|
||
LA9C1 lda #BS.E.RANGE
|
||
.HS 2C BIT ABS
|
||
|
||
LA9BE lda #BS.E.SYNTAX
|
||
sec
|
||
rts
|
||
*--------------------------------------
|
||
BSX.GetDecNum ldx BS.ToAUXSaveX
|
||
bra LA96E
|
||
*--------------------------------------
|
||
BSX.GetDecDigit cmp #'0'
|
||
bcc LAA72
|
||
|
||
cmp #'9'+1
|
||
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
|
||
*--------------------------------------
|
||
BSX.GetHexDigit cmp #'0'
|
||
bcc LAACC
|
||
|
||
cmp #'9'+1
|
||
bcc LAAD2
|
||
|
||
cmp #'A'
|
||
bcc LAACC
|
||
|
||
cmp #'F'+1
|
||
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
|
||
*--------------------------------------
|
||
BSX.KW.OPT .AS "ABEL@DFRVS"
|
||
*--------------------------------------
|
||
BSX.WHICHBITS
|
||
* .HS 8040201008040201
|
||
BSX.KW.OPT.PBITSLO
|
||
.DA #$80
|
||
.DA #$40
|
||
.DA #$20
|
||
.DA #$10
|
||
.DA #$08
|
||
.DA #$04
|
||
.DA #$02
|
||
.DA #$01
|
||
.DA #$00
|
||
.DA #$04
|
||
BSX.KW.OPT.PBITSHI
|
||
.DA #$05
|
||
.DA #$12
|
||
.DA #$19
|
||
.DA #$21
|
||
.DA #$45
|
||
.DA #$28
|
||
.DA #$31
|
||
.DA #$39
|
||
.DA #$40
|
||
.DA #$24
|
||
*--------------------------------------
|
||
BSX.GetFTypeASC ldy #$00
|
||
|
||
.1 sta BS.TMPBUF4,y
|
||
iny
|
||
cpy #$03
|
||
beq .3
|
||
|
||
jsr BS.GetCharSpaceSep
|
||
bne .1
|
||
|
||
.2 lda #BS.E.SYNTAX
|
||
sec
|
||
rts
|
||
|
||
.3 stx GP.INPTR
|
||
|
||
.4 ldx #$00
|
||
lda XBC08
|
||
cmp #$0F
|
||
beq .2
|
||
|
||
asl
|
||
adc XBC08
|
||
tay
|
||
|
||
.5 lda BS.TMPBUF4,x
|
||
eor BSX.PRODOSTYPES.ASC,y
|
||
asl
|
||
bne .6
|
||
|
||
iny
|
||
inx
|
||
cpx #$03
|
||
bne .5
|
||
|
||
beq .7
|
||
|
||
.6 inc XBC08
|
||
bne .4
|
||
|
||
.7 lda #$0E
|
||
sec
|
||
sbc XBC08
|
||
tay
|
||
lda BSX.PRODOSTYPES.H,y
|
||
sta GP.ParamT
|
||
ldx GP.INPTR
|
||
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
BSX.Expand stz BSX.Expand.Ptr start at first char of BS.CMDBUF
|
||
|
||
.2 jsr BSX.Expand.GetN
|
||
beq .8
|
||
|
||
cmp #'.'
|
||
bne .6
|
||
|
||
jsr BSX.Expand.GetN
|
||
beq .9
|
||
|
||
cmp #'/' /./ ???? discard
|
||
beq .2
|
||
|
||
cmp #'.' /.DIR....
|
||
bne .5
|
||
|
||
jsr BSX.Expand.GetN
|
||
beq .3 /..
|
||
|
||
cmp #'/'
|
||
bne .9
|
||
|
||
ldy MLI.PATHBUF remove /DIR/..
|
||
cpy #1
|
||
beq .9 only /
|
||
|
||
.3 dey
|
||
lda MLI.PATHBUF,y
|
||
cmp #'/'
|
||
bne .3
|
||
|
||
sty MLI.PATHBUF
|
||
bra .2
|
||
|
||
.5 pha
|
||
lda #'.'
|
||
jsr BSX.Expand.PutN
|
||
pla
|
||
|
||
.6 jsr BSX.Expand.PutN
|
||
|
||
.7 jsr BSX.Expand.GetN
|
||
beq .8
|
||
|
||
jsr BSX.Expand.PutN
|
||
|
||
cmp #'/'
|
||
bne .7
|
||
|
||
bra .2
|
||
|
||
.8 ldy MLI.PATHBUF
|
||
|
||
.80 lda MLI.PATHBUF,y
|
||
sta BS.CMDBUF.LEN,y
|
||
dey
|
||
bpl .80
|
||
|
||
clc
|
||
rts
|
||
|
||
.9 sec
|
||
rts
|
||
|
||
BSX.Expand.GetN ldx BSX.Expand.Ptr
|
||
cpx BS.CMDBUF.LEN
|
||
beq .8
|
||
|
||
inc BSX.Expand.Ptr
|
||
lda BS.CMDBUF,x NZ
|
||
|
||
.8 rts
|
||
|
||
BSX.Expand.PutN inc MLI.PATHBUF
|
||
ldy MLI.PATHBUF
|
||
sta MLI.PATHBUF,y
|
||
rts
|
||
|
||
BSX.Expand.Ptr .BS 1
|
||
*--------------------------------------
|
||
BSX.IsIntCmd lda #BSX.IntCmds
|
||
sta ZPXPtr1
|
||
|
||
lda /BSX.IntCmds
|
||
sta ZPXPtr1+1
|
||
|
||
ldx #38
|
||
stx GP.XCNUM
|
||
|
||
.1 ldy #$ff
|
||
|
||
.2 iny
|
||
lda BS.CMDBUF,y
|
||
jsr BSX.ToUpper
|
||
eor (ZPXPtr1),y
|
||
asl
|
||
bne .3
|
||
|
||
bcc .2
|
||
|
||
sty GP.XLEN
|
||
|
||
lda GP.XCNUM
|
||
asl
|
||
tax
|
||
|
||
lda BSX.KW.PBITS-2,x
|
||
sta GP.AllowedBITS
|
||
lda BSX.KW.PBITS-1,x
|
||
sta GP.AllowedBITS+1
|
||
|
||
lda BSX.KW.JMP,x
|
||
sta BS.KW.JMPADDR
|
||
lda BSX.KW.JMP+1,x
|
||
sta BS.KW.JMPADDR+1
|
||
|
||
clc
|
||
rts
|
||
|
||
.3 iny
|
||
bcs .4
|
||
|
||
lda (ZPXPtr1),y
|
||
asl
|
||
bra .3
|
||
|
||
.4 tya
|
||
clc
|
||
adc ZPXPtr1
|
||
sta ZPXPtr1
|
||
bcc .5
|
||
|
||
inc ZPXPtr1+1
|
||
|
||
.5 dec GP.XCNUM
|
||
bne .1
|
||
|
||
sec
|
||
rts
|
||
*--------------------------------------
|
||
BSX.IntCmds .AT "PATH"
|
||
.AT "FORMAT"
|
||
.AT "CD"
|
||
.AT "ONLINE"
|
||
.AT "MEM"
|
||
.AT "MTR"
|
||
.AT "-"
|
||
.AT "POSITION"
|
||
.AT "RESTORE"
|
||
.AT "CATALOG"
|
||
.AT "VERIFY"
|
||
.AT "UNLOCK"
|
||
.AT "RENAME"
|
||
.AT "PREFIX"
|
||
.AT "DELETE"
|
||
.AT "CREATE"
|
||
.AT "APPEND"
|
||
.AT "WRITE"
|
||
.AT "STORE"
|
||
.AT "NOMON"
|
||
.AT "FLUSH"
|
||
.AT "CLOSE"
|
||
.AT "CHAIN"
|
||
.AT "BSAVE"
|
||
.AT "BLOAD"
|
||
.AT "SAVE"
|
||
.AT "READ"
|
||
.AT "OPEN"
|
||
.AT "LOCK"
|
||
.AT "LOAD"
|
||
.AT "EXEC"
|
||
.AT "BRUN"
|
||
.AT "RUN"
|
||
.AT "BYE"
|
||
.AT "FRE"
|
||
.AT "CAT"
|
||
.AT "PR#"
|
||
.AT "IN#"
|
||
*--------------------------------------
|
||
BSX.KW.PBITS .DA $8040 IN
|
||
.DA $8040 PR
|
||
.DA $0495 CAT
|
||
.DA $0000 FRE
|
||
.DA $0000 BYE
|
||
.DA $0C11 RUN
|
||
.DA $F401 BRUN
|
||
.DA $0701 EXEC
|
||
.DA $0401 LOAD
|
||
.DA $0401 LOCK
|
||
.DA $142D OPEN
|
||
.DA $5321 READ
|
||
.DA $0409 SAVE
|
||
.DA $F405 BLOAD
|
||
.DA $F40D BSAVE
|
||
.DA $0C01 CHAIN
|
||
.DA $0001 CLOSE
|
||
.DA $0001 FLUSH
|
||
.DA $0000 NOMON
|
||
.DA $0409 STORE
|
||
.DA $4321 WRITE
|
||
.DA $142D APPEND
|
||
.DA $040D CREATE
|
||
.DA $0401 DELETE
|
||
.DA $0491 PREFIX
|
||
.DA $0403 RENAME
|
||
.DA $0401 UNLOCK
|
||
.DA $0411 VERIFY
|
||
.DA $0495 CATALOG
|
||
.DA $0401 RESTORE
|
||
.DA $0321 POSITION
|
||
.DA $0401 DASH
|
||
.DA $0000 MTR
|
||
.DA $0000 MEM
|
||
.DA $0000 ONLINE
|
||
.DA $0491 CD
|
||
|
||
.DA #$18 FORMAT
|
||
.DA #$F6
|
||
|
||
.DA $0091 PATH
|
||
*--------------------------------------
|
||
BSX.KW.JMP .DA BS.KW.EXTERNAL 0
|
||
.DA BS.KW.IN 1
|
||
.DA BS.KW.PR 2
|
||
.DA BS.KW.CAT 3
|
||
.DA BS.KW.FRE 4
|
||
.DA BS.KW.BYE 5
|
||
.DA BS.KW.RUN 6
|
||
.DA BS.KW.BRUN 7
|
||
.DA BS.KW.EXEC 8
|
||
.DA BS.KW.LOAD 9
|
||
.DA BS.KW.LOCK 10
|
||
.DA BS.KW.OPEN 11
|
||
.DA BS.KW.READ 12
|
||
.DA BS.KW.SAVE 13
|
||
.DA BS.KW.BLOAD 14
|
||
.DA BS.KW.BSAVE 15
|
||
.DA BS.KW.CHAIN 16
|
||
.DA BS.KW.CLOSE 17
|
||
.DA BS.KW.FLUSH 18
|
||
.DA BS.KW.NOMON 19
|
||
.DA BS.KW.STORE 20
|
||
.DA BS.KW.WRITE 21
|
||
.DA BS.KW.APPEND 22
|
||
.DA BS.KW.CREATE 23
|
||
.DA BS.KW.DELETE 24
|
||
.DA BS.KW.PREFIX 25
|
||
.DA BS.KW.RENAME 26
|
||
.DA BS.KW.UNLOCK 27
|
||
.DA BS.KW.VERIFY 28
|
||
.DA BS.KW.CATALOG 29
|
||
.DA BS.KW.RESTORE 30
|
||
.DA BS.KW.POSITION 31
|
||
.DA BS.KW.DASH 32
|
||
.DA BS.KW.MTR 33
|
||
.DA BS.KW.MEM 34
|
||
.DA BS.KW.ONLINE 35
|
||
.DA BS.KW.PREFIX 36 (CD)
|
||
.DA BS.KW.FORMAT 37
|
||
.DA BS.KW.PATH 38
|
||
*--------------------------------------
|
||
BSX.GetErrA tax
|
||
ldy BSX.MSG.IDX-2,x
|
||
|
||
BSX.GetMSGY ldx #$00
|
||
clc
|
||
stz GP.INPTR
|
||
|
||
.1 jsr .4
|
||
bne .2
|
||
|
||
jsr .4
|
||
ora #$10
|
||
|
||
.2 tax
|
||
lda BSX.TBL6-1,x
|
||
beq .3
|
||
|
||
ldx GP.INPTR
|
||
sta IO.LINEBUF+1,x
|
||
inc GP.INPTR
|
||
bne .1
|
||
|
||
.3 rts
|
||
*--------------------------------------
|
||
.4 lda BSX.MSG,y
|
||
bcs .6
|
||
|
||
beq .5
|
||
|
||
lsr
|
||
lsr
|
||
lsr
|
||
lsr
|
||
sec
|
||
rts
|
||
|
||
.5 iny
|
||
lda BSX.MSG,y
|
||
sta GP.INPTR
|
||
iny
|
||
bne .4
|
||
|
||
.6 iny
|
||
and #$0F
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
* .DA #$00 "Copyright..." (VERIFY with no arg)
|
||
* .DA #$10 CATALOG header
|
||
* .DA #$36 CATALOG footer
|
||
*--------------------------------------
|
||
BSX.MSG.IDX .DA #$54
|
||
.DA #$5B
|
||
.DA #$66
|
||
.DA #$6F
|
||
.DA #$75
|
||
.DA #$75
|
||
.DA #$7E
|
||
.DA #$84
|
||
.DA #$8A
|
||
.DA #$91
|
||
.DA #$9B
|
||
.DA #$A8
|
||
.DA #$B4
|
||
.DA #$BF
|
||
.DA #$C9
|
||
.DA #$D1
|
||
.DA #$D9
|
||
.DA #$E1
|
||
.DA #$EC
|
||
.DA #$F3
|
||
*--------------------------------------
|
||
BSX.TBL6 .AS -"ACDEFILMNORTU "
|
||
.DA #$00
|
||
*--------------------------------------
|
||
.DA #$00
|
||
.AS -"BGHKPSVWXY/().:"
|
||
*--------------------------------------
|
||
BSX.MSG .DA #$2A
|
||
.DA #$05
|
||
.DA #$0A
|
||
.DA #$B6
|
||
.DA #$02
|
||
.DA #$03
|
||
.DA #$CE
|
||
.DA #$10
|
||
.DA #$50
|
||
.DA #$57
|
||
.DA #$4E
|
||
.DA #$2A
|
||
.DA #$80
|
||
.DA #$5D
|
||
.DA #$C4
|
||
.DA #$BF
|
||
.DA #$E9
|
||
.DA #$18
|
||
.DA #$4E
|
||
.DA #$00
|
||
.DA #$10
|
||
.DA #$C0
|
||
.DA #$A0
|
||
.DA #$54
|
||
.DA #$EE
|
||
.DA #$01
|
||
.DA #$7A
|
||
.DA #$20
|
||
.DA #$40
|
||
.DA #$6E
|
||
.DA #$00
|
||
.DA #$1E
|
||
.DA #$8A
|
||
.DA #$36
|
||
.DA #$56
|
||
.DA #$43
|
||
.DA #$00
|
||
.DA #$2F
|
||
.DA #$2B
|
||
.DA #$41
|
||
.DA #$C4
|
||
.DA #$3E
|
||
.DA #$00
|
||
.DA #$40
|
||
.DA #$49
|
||
.DA #$35
|
||
.DA #$67
|
||
.DA #$4E
|
||
.DA #$06
|
||
.DA #$D0
|
||
.DA #$1C
|
||
.DA #$0A
|
||
.DA #$05
|
||
.DA #$4F
|
||
.DA #$01
|
||
.DA #$7A
|
||
.DA #$20
|
||
.DA #$40
|
||
.DA #$6E
|
||
.DA #$5B
|
||
.DA #$44
|
||
.DA #$0F
|
||
.DA #$00
|
||
.DA #$16
|
||
.DA #$01
|
||
.DA #$7A
|
||
.DA #$20
|
||
.DA #$40
|
||
.DA #$6E
|
||
.DA #$D0
|
||
.DA #$64
|
||
.DA #$30
|
||
.DA #$FE
|
||
.DA #$00
|
||
.DA #$2C
|
||
.DA #$CA
|
||
.DA #$C1
|
||
.DA #$7E
|
||
.DA #$01
|
||
.DA #$7A
|
||
.DA #$20
|
||
.DA #$40
|
||
.DA #$60
|
||
.DA #$FF
|
||
.DA #$B1
|
||
.DA #$90
|
||
.DA #$24
|
||
.DA #$E4
|
||
.DA #$BB
|
||
.DA #$AB
|
||
.DA #$F0
|
||
.DA #$9A
|
||
.DA #$E3
|
||
.DA #$40
|
||
.DA #$76
|
||
.DA #$24
|
||
.DA #$E2
|
||
.DA #$A9
|
||
.DA #$94
|
||
.DA #$2C
|
||
.DA #$43
|
||
.DA #$F0
|
||
.DA #$08
|
||
.DA #$B6
|
||
.DA #$C4
|
||
.DA #$E0
|
||
.DA #$5B
|
||
.DA #$AC
|
||
.DA #$42
|
||
.DA #$C4
|
||
.DA #$3F
|
||
.DA #$49
|
||
.DA #$3E
|
||
.DA #$A5
|
||
.DA #$E3
|
||
.DA #$1C
|
||
.DA #$1F
|
||
.DA #$05
|
||
.DA #$1C
|
||
.DA #$03
|
||
.DA #$E9
|
||
.DA #$AC
|
||
.DA #$E5
|
||
.DA #$AD
|
||
.DA #$93
|
||
.DA #$F0
|
||
.DA #$60
|
||
.DA #$BA
|
||
.DA #$E4
|
||
.DA #$BB
|
||
.DA #$AB
|
||
.DA #$F0
|
||
.DA #$36
|
||
.DA #$06
|
||
.DA #$04
|
||
.DA #$E5
|
||
.DA #$D7
|
||
.DA #$7F
|
||
.DA #$56
|
||
.DA #$74
|
||
.DA #$E7
|
||
.DA #$A2
|
||
.DA #$04
|
||
.DA #$43
|
||
.DA #$F0
|
||
.DA #$69
|
||
.DA #$07
|
||
.DA #$17
|
||
.DA #$63
|
||
.DA #$E0
|
||
.DA #$51
|
||
.DA #$B1
|
||
.DA #$84
|
||
.DA #$C4
|
||
.DA #$BF
|
||
.DA #$9A
|
||
.DA #$E0
|
||
.DA #$1D
|
||
.DA #$55
|
||
.DA #$4B
|
||
.DA #$06
|
||
.DA #$E1
|
||
.DA #$07
|
||
.DA #$16
|
||
.DA #$71
|
||
.DA #$01
|
||
.DA #$74
|
||
.DA #$F0
|
||
.DA #$56
|
||
.DA #$74
|
||
.DA #$EC
|
||
.DA #$0A
|
||
.DA #$05
|
||
.DA #$4E
|
||
.DA #$86
|
||
.DA #$06
|
||
.DA #$81
|
||
.DA #$C2
|
||
.DA #$03
|
||
.DA #$F0
|
||
.DA #$05
|
||
.DA #$BA
|
||
.DA #$02
|
||
.DA #$B1
|
||
.DA #$8E
|
||
.DA #$CA
|
||
.DA #$AE
|
||
.DA #$71
|
||
.DA #$B0
|
||
.DA #$24
|
||
.DA #$F0
|
||
.DA #$9A
|
||
.DA #$CE
|
||
.DA #$36
|
||
.DA #$B4
|
||
.DA #$2C
|
||
.DA #$E2
|
||
.DA #$A8
|
||
.DA #$81
|
||
.DA #$93
|
||
.DA #$F0
|
||
.DA #$06
|
||
.DA #$0A
|
||
.DA #$9C
|
||
.DA #$10
|
||
.DA #$9E
|
||
.DA #$4B
|
||
.DA #$BA
|
||
.DA #$BF
|
||
.DA #$36
|
||
.DA #$B4
|
||
.DA #$2C
|
||
.DA #$AB
|
||
.DA #$0A
|
||
.DA #$E5
|
||
.DA #$D7
|
||
.DA #$7F
|
||
.DA #$56
|
||
.DA #$74
|
||
.DA #$E9
|
||
.DA #$AC
|
||
.DA #$EA
|
||
.DA #$05
|
||
.DA #$49
|
||
.DA #$F0
|
||
.DA #$3D
|
||
.DA #$05
|
||
.DA #$76
|
||
.DA #$21
|
||
.DA #$C4
|
||
.DA #$E5
|
||
.DA #$67
|
||
.DA #$4E
|
||
.DA #$91
|
||
.DA #$84
|
||
.DA #$F0
|
||
.DA #$56
|
||
.DA #$74
|
||
.DA #$E0
|
||
.DA #$1D
|
||
.DA #$06
|
||
.DA #$0A
|
||
.DA #$F0
|
||
.DA #$56
|
||
.DA #$74
|
||
.DA #$0C
|
||
.DA #$06
|
||
.DA #$0D
|
||
.DA #$E0
|
||
.DA #$6C
|
||
.DA #$67
|
||
.DA #$7E
|
||
.DA #$A0
|
||
.DA #$54
|
||
.DA #$9F
|
||
*--------------------------------------
|
||
BSX.Online jsr BSX.OnlineInit
|
||
jsr BSX.OnlineSxDy
|
||
|
||
ldx BS.CMDBUF.LEN
|
||
|
||
.2 lda BS.CMDBUF.LEN,x
|
||
ora #$80
|
||
sta IO.LINEBUF+5,x
|
||
dex
|
||
bne .2
|
||
|
||
lda GP.FIBLOKS
|
||
ldx GP.FIBLOKS+1
|
||
ldy #28
|
||
jsr BSX.AXDEC2LINEBUFY
|
||
|
||
lda #"/"
|
||
sta IO.LINEBUF+30
|
||
|
||
lda GP.FIAUXTYPE
|
||
ldx GP.FIAUXTYPE+1
|
||
ldy #34
|
||
jsr BSX.AXDEC2LINEBUFY
|
||
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
BSX.OnlineErr pha
|
||
|
||
jsr BSX.OnlineInit
|
||
|
||
pla
|
||
pha
|
||
jsr BSX.GetErrA
|
||
|
||
ldx GP.INPTR
|
||
|
||
.10 lda IO.LINEBUF+1,x
|
||
sta IO.LINEBUF+11,x
|
||
dex
|
||
bpl .10
|
||
|
||
pla
|
||
|
||
ldx #12
|
||
|
||
.1 cmp BS.BIERRTBL,x
|
||
beq .2
|
||
|
||
dex
|
||
bpl .1
|
||
|
||
lda #$27
|
||
bra .3
|
||
|
||
.2 lda BS.MLIERTBL,x
|
||
|
||
.3 pha
|
||
lsr
|
||
lsr
|
||
lsr
|
||
lsr
|
||
ora #$B0
|
||
sta IO.LINEBUF+7
|
||
|
||
pla
|
||
|
||
and #$0F
|
||
ora #$B0
|
||
sta IO.LINEBUF+8
|
||
|
||
lda #"("
|
||
sta IO.LINEBUF+6
|
||
lda #")"
|
||
sta IO.LINEBUF+9
|
||
|
||
lda #" "
|
||
sta IO.LINEBUF+5
|
||
|
||
jsr BSX.OnlineSxDy
|
||
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
BSX.OnlineInit jsr BS.LINEBUFCLR80
|
||
|
||
lda #39
|
||
sta BS.CATWIDTH
|
||
rts
|
||
*--------------------------------------
|
||
BSX.OnlineSxDy lda #"S"
|
||
sta IO.LINEBUF+1
|
||
lda #"D"
|
||
sta IO.LINEBUF+3
|
||
|
||
lda GP.MLIMRKEOFBUF.REFNUM
|
||
asl
|
||
php
|
||
lsr
|
||
lsr
|
||
lsr
|
||
lsr
|
||
lsr
|
||
ora #$B0
|
||
sta IO.LINEBUF+2
|
||
|
||
lda #$B0
|
||
plp
|
||
adc #1
|
||
sta IO.LINEBUF+4
|
||
rts
|
||
*--------------------------------------
|
||
BSX.InitPath ldx #0
|
||
|
||
.1 inx
|
||
lda MLI.PATHBUF,x
|
||
sta BSX.PATH-1,x
|
||
cpx MLI.PATHBUF
|
||
bne .1
|
||
|
||
ldy #0
|
||
|
||
.2 lda BSX.BIN,y
|
||
beq .8
|
||
|
||
iny
|
||
|
||
inx
|
||
sta BSX.PATH-1,x
|
||
bra .2
|
||
|
||
.8 stx BSX.PATH.LEN
|
||
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
BSX.SetPath clc
|
||
rts
|
||
*--------------------------------------
|
||
BSX.GetPath ldx BSX.PATH.LEN
|
||
stx BS.CMDBUF.LEN
|
||
|
||
.1 lda BSX.PATH-1,x
|
||
sta BS.CMDBUF-1,x
|
||
dex
|
||
bne .1
|
||
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
BSX.Mem ldx #16+14
|
||
stx BS.CATWIDTH
|
||
|
||
ldx #0
|
||
|
||
asl
|
||
pha
|
||
asl
|
||
asl
|
||
asl
|
||
tay
|
||
|
||
.1 lda BS.MEM.MSG1,y
|
||
sta IO.LINEBUF+1,x
|
||
|
||
lda BS.MEM.MSG2,x
|
||
sta IO.LINEBUF+17,x
|
||
iny
|
||
inx
|
||
cpx #16
|
||
bne .1
|
||
|
||
ply
|
||
|
||
ldx $261,y
|
||
phx
|
||
lda $260,y
|
||
pha
|
||
|
||
ldy #20
|
||
jsr BSX.AXDEC2LINEBUFY
|
||
|
||
pla
|
||
ldy #27
|
||
jsr BSX.AHEX2LINEBUFY
|
||
|
||
pla
|
||
ldy #25
|
||
jsr BSX.AHEX2LINEBUFY
|
||
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
BS.MEM.MSG1 .AS -"Program Start : "
|
||
.AS -"Var Start : "
|
||
.AS -"Array Start : "
|
||
.AS -"Array End : "
|
||
.AS -"String Start : "
|
||
.AS -"Himem : "
|
||
|
||
BS.MEM.MSG2 .AS -" ( ) "
|
||
*--------------------------------------
|
||
BSX.MkCatLine 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
|
||
|
||
.DO LOWERCASE=1
|
||
lda DIRENTBUF+$1D
|
||
bpl .18
|
||
|
||
lda DIRENTBUF
|
||
and #$0f
|
||
tay
|
||
|
||
.10 cpy #8
|
||
bcs .13
|
||
|
||
lda DIRENTBUF+$1D
|
||
and BSX.WHICHBITS,y
|
||
beq .15
|
||
|
||
bne .14
|
||
|
||
.13 lda DIRENTBUF+$1C
|
||
and BSX.WHICHBITS-8,y
|
||
beq .15
|
||
|
||
.14 lda IO.LINEBUF+1,y
|
||
eor #$20
|
||
sta IO.LINEBUF+1,y
|
||
|
||
.15 dey
|
||
bne .10
|
||
|
||
.18 .FIN
|
||
|
||
stz BS.TMPBUF4+2
|
||
|
||
lda DIRENTBUF.TYPE
|
||
ldx #$0E
|
||
|
||
LA4F3 iny
|
||
iny
|
||
cmp BSX.PRODOSTYPES.H,x
|
||
beq LA505
|
||
|
||
iny
|
||
dex
|
||
bpl LA4F3
|
||
|
||
ldy #$13
|
||
jsr BSX.AHEX2LINEBUFY
|
||
bne LA549
|
||
|
||
LA505 ldx #$02
|
||
pha
|
||
|
||
LA508 lda BSX.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 BSX.AXDEC2LINEBUFY
|
||
bra LA544
|
||
|
||
LA533 lda #$C1
|
||
sta $249
|
||
lda DIRENTBUF.AUXT
|
||
jsr BSX.AHEX2LINEBUFY
|
||
lda DIRENTBUF.AUXT+1
|
||
jsr BSX.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 BSX.AXDEC2LINEBUFY
|
||
ldx #$18
|
||
ldy #$3D
|
||
jsr LA57E
|
||
|
||
LA561 ldy #$1B
|
||
lda DIRENTBUF.UBLK
|
||
ldx DIRENTBUF.UBLK+1
|
||
jsr BSX.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 BSX.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 BSX.AXDEC2LINEBUFY
|
||
plp
|
||
bcs LA5EC
|
||
|
||
dey
|
||
|
||
LA5EC dey
|
||
lda XBC10
|
||
jsr LA618
|
||
dey
|
||
ldx XBC0E
|
||
inx
|
||
inx
|
||
inx
|
||
|
||
LA5FA lda BSX.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 BSX.AXDEC2LINEBUFY
|
||
|
||
LA618 clc
|
||
adc #$64
|
||
jsr BSX.AXDEC2LINEBUFY
|
||
iny
|
||
rts
|
||
*--------------------------------------
|
||
BSX.MONTHS .AS -"JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
|
||
BSX.NODATE .AS -"<NO DATE>"
|
||
*--------------------------------------
|
||
BSX.MkCatLineF jsr BS.LINEBUFCLR80
|
||
|
||
ldy #$36
|
||
jsr BSX.GetMSGY
|
||
|
||
jsr BS.TMPBUF3Reset
|
||
lda GP.FIAUXTYPE
|
||
ldx GP.FIAUXTYPE+1
|
||
ldy #$3D
|
||
jsr BSX.AXDEC2LINEBUFY
|
||
lda GP.FIBLOKS
|
||
ldx GP.FIBLOKS+1
|
||
ldy #$26
|
||
jsr BSX.AXDEC2LINEBUFY
|
||
lda GP.FIAUXTYPE
|
||
sec
|
||
sbc GP.FIBLOKS
|
||
pha
|
||
lda GP.FIAUXTYPE+1
|
||
sbc GP.FIBLOKS+1
|
||
tax
|
||
pla
|
||
ldy #$10
|
||
jsr BSX.AXDEC2LINEBUFY
|
||
|
||
clc
|
||
rts
|
||
*--------------------------------------
|
||
BSX.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
|
||
*--------------------------------------
|
||
BSX.AXDEC2LINEBUFY
|
||
stx BS.TMPBUF4+1
|
||
sta BS.TMPBUF4
|
||
|
||
.1 jsr .2
|
||
|
||
lda BS.TMPBUF4+3
|
||
ora #$B0
|
||
sta IO.LINEBUF+1,y
|
||
dey
|
||
lda BS.TMPBUF4
|
||
ora BS.TMPBUF4+1
|
||
ora BS.TMPBUF4+2
|
||
bne .1
|
||
|
||
rts
|
||
|
||
.2 ldx #$18
|
||
lda #$00
|
||
sta BS.TMPBUF4+3
|
||
|
||
.3 jsr BS.TMPBUF3x2
|
||
rol BS.TMPBUF4+3
|
||
sec
|
||
lda BS.TMPBUF4+3
|
||
sbc #$0A
|
||
bcc .4
|
||
|
||
sta BS.TMPBUF4+3
|
||
inc BS.TMPBUF4
|
||
|
||
.4 dex
|
||
bne .3
|
||
|
||
rts
|
||
*--------------------------------------
|
||
BSX.PRODOSTYPES.H
|
||
.DA #$FF
|
||
.DA #$FE
|
||
.DA #$FD
|
||
.DA #$FC
|
||
.DA #$FB
|
||
.DA #$FA
|
||
.DA #$F0
|
||
.DA #$0F
|
||
.DA #$06
|
||
.DA #$04
|
||
.DA #$EF
|
||
.DA #$1A
|
||
.DA #$1B
|
||
.DA #$19
|
||
.DA #$B3
|
||
BSX.PRODOSTYPES.ASC
|
||
.AS -"S16ADBASPAWPPASTXTBINDIRCMDINTIVRBASVARRELSYS"
|
||
*--------------------------------------
|
||
BSX.ToUpper cmp #'a'
|
||
bcc .9
|
||
|
||
cmp #'z'+1
|
||
bcs .9
|
||
|
||
eor #$20
|
||
|
||
.9 rts
|
||
*--------------------------------------
|
||
BSX.BIN .AZ "/BIN/"
|
||
*--------------------------------------
|
||
.DUMMY
|
||
BSX.PATH.LEN .BS 1
|
||
BSX.PATH .BS 64
|
||
.ED
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/basic.fx/basic.s.x
|
||
LOAD usr/src/basic.fx/basic.s
|
||
ASM
|