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
