
; **********************************
; **                              **
; **  ATARI BASIC ROM: A000-BFFF  **
; **                              **
; **********************************

LOMEM		=	$80	; pointer to BASIC's low memory
VNTP		=	$82	; start of variable name table
VNTD		=	$84	; end of variable name table
VVTP		=	$86	; start of variable value table
STMTAB		=	$88	; start of the statement table
STMCUR		=	$8A	; current statement pointer
STARP		=	$8C	; strings/arrays pointer
RUNSTK		=	$8E	; runtime stack
MEMTOP		=	$90	; memtop
POKADR		=	$95	; address of last POKE location
DATAD		=	$B6	; data element being read
DATALN		=	$B7	; data statement line number
STOPLN		=	$BA	; line where the program was stopped
ERRSAVE		=	$C3	; number of the error code
PTABW		=	$C9	;  number of cols between tab stops
	
		.org $A000
		.segment "A000BFFF"

		.include "atari.inc"
		.include "pokey.inc"

		.import DA48,DA51,DBA1,DBAF,DE95,DF6C,DFAE,DFEA
		.import AFP,FMOVE,FADD,FSUB,FMUL,LOG,LOG10,DC00
		.import EXP,EXP10,ZF1,PLYEVL,FSTOR,FLD0R,CIOV
		.import ZFR0,FLD1R,FASC,IFP,FPI,FDIV
	
		
		.export	BFF0,BFFA,BFFC,BFFE

A000:		lda	$CA
		bne	@1
		lda	$8
		bne	L3
@1:		ldx	#$FF
		txs
		cld

A00C:		ldx	MEMLO
		ldy	MEMLO+1
		stx	LOMEM
		sty	LOMEM+1
		lda	#0
		sta	$92
		sta	$CA
		iny
		txa

		ldx	#$82
@2:		sta	0,X
		inx
		sty	0,X
		inx
		cpx	#$92
		bcc	@2

		ldx	#$86
		ldy	#1
		jsr	A87A

		ldx	#$8C
		ldy	#3
		jsr	A87A

		lda	#0
		tay
		sta	(VNTD),Y
		sta	(STMCUR),Y
		iny
		lda	#$80
		sta	(STMCUR),Y
		iny
		lda	#3
		sta	(STMCUR),Y
		lda	#10		;  tab stops -> 10
		sta	PTABW
L3:		jsr	B8F1
A050:		jsr	BD45
A053:		jsr	BD5B
		lda	$92
		beq	A05D
		jsr	BD9D
A05D:		jsr	BD62
A060:		lda	$CA
		bne	A000
		ldx	#$FF
		txs
		jsr	DA51
		lda	#$5D
		sta	$C2
		jsr	BDED
		jsr	A9F2
		beq	A060

		lda	#0
		sta	CIX
		sta	$9F
		sta	$94
		sta	$A6
		sta	$B3
		sta	$B0
		sta	$B1

		lda	VNTD
		sta	$AD
		lda	VNTD+1
		sta	$AE

		jsr	DBA1
		jsr	A19A
		jsr	A2C4
		lda	FR0+1
		bpl	@4
		sta	$A6
@4:		jsr	DBA1
		ldy	CIX
		sty	$A8
		lda	(INBUFF),Y
		cmp	#$9B
		bne	A0B1
		bit	$A6
		bmi	A060
		jmp	A186

A0B1:		lda	$94
		sta	$A7
		jsr	A2C4
		jsr	DBA1
		lda	#>A49F
		ldy	#<A49F
		ldx	#2
		jsr	A454
		stx	CIX
		lda	$AF
		jsr	A2C4
		jsr	DBA1
		jsr	A1BE
		bcc	L7
		ldy	$9F
		lda	(INBUFF),Y
		cmp	#$9B
		bne	@5
		iny
		sta	(INBUFF),Y
		dey
		lda	#$20
@5:		ora	#$80
		sta	(INBUFF),Y
		lda	#$40
		ora	$A6
		sta	$A6
		ldy	$A8
		sty	CIX
		ldx	#3
		stx	$A7
		inx
		stx	$94
		lda	#$37
L6:		jsr	A2C4
A0FB:		ldy	CIX
		lda	(INBUFF),Y
		inc	CIX
		cmp	#$9B
		bne	L6
		jsr	A2C4
L7:		lda	$94
		ldy	$A7
		sta	(LOMEM),Y
		ldy	CIX
		dey
		lda	(INBUFF),Y
		cmp	#$9B
		bne	A0B1
		ldy	#2
		lda	$94
		sta	(LOMEM),Y
		jsr	A9A2
		lda	#0
		bcs	@8
		jsr	A9DC
@8:		sec
		sbc	$94
		beq	@10
		bcs	@9
		eor	#$FF
		tay
		iny
		ldx	#$8A
		jsr	A87A
		lda	$97
		sta	STMCUR
		lda	$98
		sta	STMCUR+1
		bne	@10
@9:		tay
		jsr	A9D0
		ldx	#$8A
		jsr	A8F8
@10:		ldy	$94
@11:		dey
		lda	(LOMEM),Y
		sta	(STMCUR),Y
		tya
		bne	@11
		bit	$A6
		bvc	L13
		lda	$B1
		asl	A
		asl	A
		asl	A
		ldx	#$88
		jsr	A8F7
		sec
		lda	VNTD
		sbc	$AD
		tay
		lda	VNTD+1
		sbc	$AE
		ldx	#$84
		jsr	A8FA
		bit	$A6
		bpl	@12
		jsr	B5AA
		jmp	A060
@12:		jsr	B58E

A17E:		jmp	A060
L13:		bpl	A17E
		jmp	A95E

A186:		jsr	A9A2
		bcs	A17E
		jsr	A9DC
		tay
		jsr	A9D0
		ldx	#$8A
		jsr	A8F8
		jmp	A060

A19A:		jsr	AFP
		bcc	@2
@1:		lda	#0
		sta	CIX
		ldy	#$80
		bmi	@3
@2:		jsr	AD41
		ldy	FR0+1
		bmi	@1
		lda	FR0
@3:		sty	$A1
		sta	$A0
		jsr	A2C4
		lda	$A1
		sta	FR0+1
		jmp	A2C4

A1BE:		ldy	#1
		lda	(POKADR),Y
		sta	$9E
		sta	$483
		dey
		lda	(POKADR),Y
		sta	$9D
		sta	$482
		sty	$A9
		lda	$94
		sta	$481
		lda	CIX
		sta	$480
A1DB:		jsr	A293
		bmi	@2
		cmp	#1
		bcc	@4
		bne	@1
		jsr	@4
		jmp	A259

@1:		cmp	#5
		bcc	A245
		jsr	A29B
		jmp	A259

@2:		sec
		sbc	#$C1
		bcs	@3
		ldx	#$FF
@3:		clc
		adc	$9D
		pha
		txa
		adc	$9E
		pha
		jmp	A21B

@4:		jsr	A293
		pha
		jsr	A293
		pha
		bcc	A21B
		pla
		tay
		pla
		tax
		tya
		pha
		txa
		pha
A21A:		rts

A21B:		ldx	$A9
		inx
		inx
		inx
		inx
		beq	@1
		stx	$A9
		lda	CIX
		sta	$480,X
		lda	$94
		sta	$481,X
		lda	$9D
		sta	$482,X
		lda	$9E
		sta	$483,X
		pla
		sta	$9E
		pla
		sta	$9D
		jmp	A1DB
@1:		jmp	B918

A245:		ldx	$A9
		beq	A21A
		lda	$482,X
		sta	$9D
		lda	$483,X
		sta	$9E
		dex
		dex
		dex
		dex
		stx	$A9
A259:		bcs	A25E
		jmp	A1DB

A25E:		jsr	A293
		bmi	A25E
		cmp	#2
		bcs	A26F
		jsr	A28C
		jsr	A28C
		bne	A25E
A26F:		cmp	#3
		beq	A245
		bcs	A25E
		lda	CIX
		cmp	$9F
		bcc	A27D
		sta	$9F
A27D:		ldx	$A9
		lda	$480,X
		sta	CIX
		lda	$481,X
		sta	$94
		jmp	A1DB

A28C:		inc	$9D
		bne	A292
		inc	$9E
A292:		rts

A293:		jsr	A28C
		ldx	#0
		lda	($9D,X)
		rts

A29B:		cmp	#$F
		beq	A2B6
		bcs	A2E1
		cmp	#$D
		bne	A2AB
		jsr	A28C
		jmp	A2E4

A2AB:		pla
		pla
		lda	#4
		pha
		lda	#$A6
		pha
		jmp	A21B

A2B6:		jsr	A28C
		ldy	#0
		lda	($9D),Y
		ldy	$94
		dey
		sta	(LOMEM),Y
		clc
A2C3:		rts

A2C4:		ldy	$94
		sta	(LOMEM),Y
		inc	$94
		bne	A2C3
		jmp	B918

		ldx	#$FF
		txs
		lda	$94
		ldy	$A7
		sta	(LOMEM),Y
		jmp	A0B1
		ldx	#$FF
		txs
		jmp	A0FB

A2E1:		jsr	DBA1
A2E4:		lda	CIX
		cmp	$B3
		beq	A2FF
		sta	$B3
		lda	#>A7DE
		ldy	#<A7DE
		ldx	#0
		jsr	A454
		bcs	A31A
		stx	$B2
		lda	$AF
		adc	#$10
		sta	$B0
A2FF:		ldy	#0
		lda	($9D),Y
		cmp	$B0
		beq	A311
		cmp	#$44
		bne	A31E
		lda	$B0
		cmp	#$44
		bcc	A31E
A311:		jsr	A2C4
		ldx	$B2
		stx	CIX
		clc
		rts

A31A:		lda	#0
		sta	$B0
A31E:		sec
		rts

		lda	#0
		beq	A326
		lda	#$80
A326:		sta	$D2
		jsr	DBA1
		lda	CIX
		sta	$AC
		jsr	A3E8
		bcs	A359
		jsr	A2E1
		lda	$B0
		beq	A343
		ldy	$B2
		lda	(INBUFF),Y
		cmp	#$30
		bcc	A359
A343:		inc	CIX
		jsr	A3E8
		bcc	A343
		jsr	DBAF
		bcc	A343
		lda	(INBUFF),Y
		cmp	#$24
		beq	A35B
		bit	$D2
		bpl	A362
A359:		sec
		rts

A35B:		bit	$D2
		bpl	A359
		iny
		bne	A36F
A362:		lda	(INBUFF),Y
		cmp	#$28
		bne	A36F
		iny
		lda	#$40
		ora	$D2
		sta	$D2
A36F:		lda	$AC
		sta	CIX
		sty	$AC
		lda	VNTP+1
		ldy	VNTP
		ldx	#0
		jsr	A454
A37E:		bcs	A38A
		cpx	$AC
		beq	A3D1
		jsr	A482
		jmp	A37E

A38A:		sec
		lda	$AC
		sbc	CIX
		sta	CIX
		tay
		ldx	#$84
		jsr	A87A
		lda	$AF
		sta	$D3
		ldy	CIX
		dey
		ldx	$AC
		dex
A3A1:		lda	$580,X
		sta	($97),Y
		dex
		dey
		bpl	A3A1
		ldy	CIX
		dey
		lda	($97),Y
		ora	#$80
		sta	($97),Y
		ldy	#$8
		ldx	#$88
		jsr	A87A
		inc	$B1
		ldy	#2
		lda	#0
A3C0:		sta	$0D2,Y
		iny
		cpy	#$8
		bcc	A3C0
		dey
A3C9:		lda	$0D2,Y
		sta	($97),Y
		dey
		bpl	A3C9
A3D1:		bit	$D2
		bvc	A3D7
		dec	$AC
A3D7:		lda	$AC
		sta	CIX
		lda	$AF
		bmi	A3E5
		ora	#$80
		clc
		jmp	A2C4
A3E5:		jmp	B92C
A3E8:		ldy	CIX
		lda	(INBUFF),Y
A3EC:		cmp	#$41
		bcc	A3F3
		cmp	#$5B
		rts
A3F3:		sec
		rts

		jsr	DBA1
		lda	CIX
		sta	$AC
		jsr	AFP
		bcc	A406
		lda	$AC
		sta	CIX
		rts

A406:		lda	#$E
		jsr	A2C4
		iny
		ldx	#0
A40E:		lda	FR0,X
		sta	(LOMEM),Y
		iny
		inx
		cpx	#6
		bcc	A40E
		sty	$94
		clc
		rts

		jsr	DBA1
		ldy	CIX
		lda	(INBUFF),Y
		cmp	#$22
		bne	A3F3
		lda	#15
		jsr	A2C4
		lda	$94
		sta	$AB
		jsr	A2C4
A433:		inc	CIX
		ldy	CIX
		lda	(INBUFF),Y
		cmp	#$9B
		beq	A449
		cmp	#$22
		beq	A447
		jsr	A2C4
		jmp	A433

A447:		inc	CIX
A449:		clc
		lda	$94
		sbc	$AB
		ldy	$AB
		sta	(LOMEM),Y
A452:		clc
		rts

A454:		stx	$AA
		ldx	#$FF
		stx	$AF
A45A:		sta	POKADR+1
		sty	POKADR
		inc	$AF
		ldx	CIX
		ldy	$AA
		lda	(POKADR),Y
		beq	A48D
		lda	#0
		php
A46B:		lda	$580,X
		and	#$7F
		cmp	#$2E
		beq	A48F
A474:		eor	(POKADR),Y
		asl	A
		beq	A47B
		pla
		php
A47B:		iny
		inx
		bcc	A46B
		plp
		beq	A452
A482:		clc
		tya
		adc	POKADR
		tay
		lda	POKADR+1
		adc	#0
		bne	A45A
A48D:		sec
		rts

A48F:		lda	#2
		cmp	$AA
		bne	A474
A495:		lda	(POKADR),Y
		bmi	A49C
		iny
		bne	A495
A49C:		sec
		bcs	A47B

A49F:		.word	A7C2
		.byte	'R','E','M'+$80				; REM
		.word	A7C5
		.byte	'D','A','T','A'+$80			; DATA
		.word	A6EE
		.byte	'I','N','P','U','T'+$80			; INPUT
		.word	A6B7
		.byte	'C','O','L','O','R'+$80			; COLOR
		.word	A72C
		.byte	'L','I','S','T'+$80			; LIST
		.word	A71D
		.byte	'E','N','T','E','R'+$80			; ENTER
		.word	A6BA
		.byte	'L','E','T'+$80				; LET
		.word	A78E
		.byte	'I','F'+$80				; IF
		.word	A6CC
		.byte	'F','O','R'+$80				; FOR
		.word	A6E4
		.byte	'N','E','X','T'+$80			; NEXT
		.word	A6B7
		.byte	'G','O','T','O'+$80			; GOTO
		.word	A6B7
		.byte	'G','O',' ','T','O'+$80			; GO TO
		.word	A6B7
		.byte	'G','O','S','U','B'+$80			; GOSUB
		.word	A6B7
		.byte	'T','R','A','P'+$80			; TRAP
		.word	A6B8
		.byte	'B','Y','E'+$80				; BYE
		.word	A6B8
		.byte	'C','O','N','T'+$80			; CONT
		.word	A759
		.byte	'C','O','M'+$80				; COM
		.word	A71A
		.byte	'C','L','O','S','E'+$80			; CLOSE
		.word	A6B8
		.byte	'C','L','R'+$80				; CLR
		.word	A6B8
		.byte	'D','E','G'+$80				; DEG
		.word	A759
		.byte	'D','I','M'+$80				; DIM
		.word	A6B8
		.byte	'E','N','D'+$80				; END
		.word	A6B8
		.byte	'N','E','W'+$80				; NEW
		.word	A713
		.byte	'O','P','E','N'+$80			; OPEN
		.word	A71D
		.byte	'L','O','A','D'+$80			; LOAD
		.word	A71D
		.byte	'S','A','V','E'+$80			; SAVE
		.word	A73A
		.byte	'S','T','A','T','U','S'+$80		; STATUS
		.word	A743
		.byte	'N','O','T','E'+$80			; NOTE
		.word	A743
		.byte	'P','O','I','N','T'+$80			; POINT
		.word	A711
		.byte	'X','I','O'+$80				; XIO
		.word	A75C
		.byte	'O','N'+$80				; ON
		.word	A756
		.byte	'P','O','K','E'+$80			; POKE
		.word	A6F6
		.byte	'P','R','I','N','T'+$80			; PRINT
		.word	A6B8
		.byte	'R','A','D'+$80				; RAD
		.word	A6EF
		.byte	'R','E','A','D'+$80			; READ
		.word	A6E9
		.byte	'R','E','S','T','O','R','E'+$80		; RESTORE
		.word	A6B8
		.byte	'R','E','T','U','R','N'+$80		; RETURN
		.word	A720
		.byte	'R','U','N'+$80				; RUN
		.word	A6B8
		.byte	'S','T','O','P'+$80			; STOP
		.word	A6B8
		.byte	'P','O','P'+$80				; POP
		.word	A6F6
		.byte	'?'+$80					; ?
		.word	A6E2
		.byte	'G','E','T'+$80				; GET
		.word	A6B4
		.byte	'P','U','T'+$80				; PUT
		.word	A6B7
		.byte	'G','R','A','P','H','I','C','S'+$80	; GRAPHICS
		.word	A756
		.byte	'P','L','O','T'+$80			; PLOT
		.word	A756
		.byte	'P','O','S','I','T','I','O','N'+$80	; POSITION
		.word	A6B8
		.byte	'D','O','S'+$80				; DOS
		.word	A756
		.byte	'D','R','A','W','T','O'+$80		; DRAWTO
		.word	A754
		.byte	'S','E','T','C','O','L','O','R'+$80	; SETCOLOR
		.word	A6DC
		.byte	'L','O','C','A','T','E'+$80		; LOCATE
		.word	A752
		.byte	'S','O','U','N','D'+$80			; SOUND
		.word	A6FA
		.byte	'L','P','R','I','N','T'+$80		; LPRINT
		.word	A6B8
		.byte	'C','S','A','V','E'+$80			; CSAVE
		.word	A6B8
		.byte	'C','L','O','A','D'+$80			; CLOAD
		.word	A6BA

		.byte	$00,$80,$00,$2A

		.byte	'E','R','R','O','R','-',' ',' '+$80	; ERROR-
		.byte	'S','T','O','P','P','E','D',' '+$80	; STOPPED

		.byte	$CD,$C4,$02,$C2,$03,$2B,$BA,$2C,$DB,$02
		.byte	$CD,$D8,$03,$25,$0F,$35,$02,$26,$0F,$36,$02,$28,$03,$FE,$02,$E8
		.byte	$02,$01,$F4,$A3,$02,$00,$78,$A6,$03,$C4,$9C,$02,$03,$23,$02,$25
		.byte	$02,$26,$02,$24,$02,$27,$02,$1D,$02,$1F,$02,$1E,$02,$20,$02,$21
		.byte	$02,$22,$02,$2A,$02,$29,$03,$01,$1F,$A3,$C2,$03,$0D,$2B,$0F,$38
		.byte	$0E,$C4,$2C,$02,$03,$12,$0F,$3C,$0E,$02,$03,$44,$D2,$02,$00,$C8
		.byte	$A7,$D3,$02,$C2,$03,$3F,$2B,$0F,$3A,$00,$D4,$A7,$2C,$03,$2B,$0F
		.byte	$3A,$0E,$2C,$03,$2B,$0F,$3A,$C7,$2C,$03,$C4,$E3,$C2,$03,$C8,$02
		.byte	$CB,$02,$01,$1B,$A4,$03,$00,$D0,$A7,$A5,$03,$01,$23,$A3,$C2,$03
		.byte	$2B,$0F,$37,$0E,$C4,$2C,$02,$03,$12,$0F,$3C,$0E,$02,$03,$1D,$0F
		.byte	$2F,$02,$1E,$0F,$30,$02,$1F,$0F,$31,$02,$20,$0F,$32,$02,$21,$0F
		.byte	$33,$02,$22,$0F,$34

A6B4:		.byte	$03,$1C,$0E
A6B7:		.byte	$12
A6B8:		.byte	$0E,$FA
A6BA:		.byte	$03,$00,$45,$A6,$22,$0F,$2D,$0E,$F1,$02,$86,$22,$0F,$2E,$00,$7C
		.byte	$A6,$E8
A6CC:		.byte	$03,$01,$1F,$A3,$22,$0F,$2D,$0E,$19,$0E,$C3,$DC,$03,$1A,$0E,$02
A6DC:		.byte	$03,$0E,$12,$0E,$12,$C4
A6E2:		.byte	$03,$DD
A6E4:		.byte	$12,$01,$1F,$A3,$CB
A6E9:		.byte	$03,$0E,$C8,$02,$C6
A6EE:		.byte	$03
A6EF:		.byte	$F7,$DB,$C2,$03,$14,$02,$16
A6F6:		.byte	$03,$C9,$BB,$02
A6FA:		.byte	$EC,$00,$9A,$A7,$B5,$03,$1C,$0E,$03,$01,$1F,$A3,$02,$01,$23,$A3
		.byte	$03,$B8,$C2,$03,$12,$BC,$02
A711:		.byte	$03,$0E
A713:		.byte	$12,$AC,$12,$F9,$12,$F3,$9A
A71A:		.byte	$03,$A5,$97
A71D:		.byte	$03,$ED,$94
A720:		.byte	$03,$EA,$91,$02,$8F,$03,$9A,$12,$02,$97,$15,$02
A72C:		.byte	$03,$DE,$85,$02,$DB,$12,$C4,$02,$C2,$03,$00,$BA,$A7,$F4
A73A:		.byte	$03,$C3,$F1,$03,$82,$12,$00,$45,$A6
A743:		.byte	$03,$BA,$12,$00,$45,$A6,$E4,$03,$00,$7C,$A6,$03,$0E,$12,$0E
A752:		.byte	$03,$0E
A754:		.byte	$12,$0E
A756:		.byte	$12,$B8,$D5
A759:		.byte	$03,$ED,$D2
A75C:		.byte	$03,$0E,$C4,$C7,$CD,$03,$17,$02,$18,$03,$0E,$C2,$03,$12,$BC,$02
		.byte	$03,$14,$02,$16,$03,$01,$1F,$A3,$0D,$2B,$0F,$39,$0E,$00,$53,$A6
		.byte	$2C,$02,$01,$23,$A3,$2B,$0F,$3B,$0E,$2C,$03,$AA,$C3,$02,$03,$12
		.byte	$BB,$02
A78E:		.byte	$03,$0E,$1B,$C3,$9B,$03,$01,$F4,$A3,$02,$01,$CE,$A2,$C9,$02,$D4
		.byte	$C3,$02,$03,$C3,$02,$03,$C3,$C8,$03,$0E,$02,$00,$7C,$A6,$03,$C4
		.byte	$B3,$02,$03,$C6,$C2,$03,$BD,$02,$03,$12,$02,$15,$03,$0E,$C3,$02
		.byte	$03,$12,$0E,$02

A7C2:		.byte	$03,$01,$DA

A7C5:		.byte	$A2,$01,$DA,$A2,$40,$02,$41,$02,$43,$02
		.byte	$42,$03,$3D,$02,$3E,$03,$0E,$C2,$03,$12,$0F,$3C,$BA,$02,$03

A7DE:		.byte	$02+$80			;
		.byte	$00+$80			;
		.byte	$2C+$80			; ,
		.byte	'$'+$80			; $
		.byte	':'+$80			; :
		.byte	$3B+$80			; ;
		.byte	$1B+$80			; Escape
		.byte	'G','O','T','O'+$80	; GOTO
		.byte	'G','O','S','U','B'+$80	; GOSUB
		.byte	'T','O'+$80		; TO
		.byte	'S','T','E','P'+$80	; STEP
		.byte	'T','H','E','N'+$80	; THEN
		.byte	'#'+$80			; #
		.byte	'<','='+$80		; <=
		.byte	'<','>'+$80		; <>
		.byte	'>','='+$80		; >=
		.byte	'<'+$80			; <
		.byte	'>'+$80			; >
		.byte	'='+$80			; =
		.byte	'^'+$80			; ^
		.byte	'*'+$80			; *
		.byte	'+'+$80			; +
		.byte	'-'+$80			; -
		.byte	'/'+$80			; /

		.byte	'N','O','T'+$80		; NOT
		.byte	'O','R'+$80		; OR
		.byte	'A','N','D'+$80		; AND
		.byte	'('+$80			; (
		.byte	')'+$80			; )
		.byte	'='+$80			; =
		.byte	'='+$80			; =
		.byte	'<','='+$80		; <=
		.byte	'<','>'+$80		; <>
		.byte	'>','='+$80		; >=
		.byte	'<'+$80			; <
		.byte	'>'+$80			; >
		.byte	'='+$80			; =
		.byte	'+'+$80			; +
		.byte	'-'+$80			; -

		.byte	$A8,$80,$80,$A8,$A8,$AC

		.byte	'S','T','R','$'+$80		; STR$
		.byte	'C','H','R','$'+$80		; CHR$
		.byte	'U','S','R'+$80			; USR
		.byte	'A','S','C'+$80			; ASC
		.byte	'V','A','L'+$80			; VAL
		.byte	'L','E','N'+$80			; LEN
		.byte	'A','D','R'+$80			; ADR
		.byte	'A','T','N'+$80			; ATN
		.byte	'C','O','S'+$80			; COS
		.byte	'P','E','E','K'+$80		; PEEK
		.byte	'S','I','N'+$80			; SIN
		.byte	'R','N','D'+$80			; RND
		.byte	'F','R','E'+$80			; FRE
		.byte	'E','X','P'+$80			; EXP
		.byte	'L','O','G'+$80			; LOG
		.byte	'C','L','O','G'+$80		; CLOG
		.byte	'S','Q','R'+$80			; SQR
		.byte	'S','G','N'+$80			; SGN
		.byte	'A','B','S'+$80			; ABS
		.byte	'I','N','T'+$80			; INT
		.byte	'P','A','D','D','L','E'+$80	; PADDLE
		.byte	'S','T','I','C','K'+$80		; STICK
		.byte	'P','T','R','I','G'+$80		; PTRIG
		.byte	'S','T','R','I','G'+$80		; STRIG

		.byte	0

A87A:		lda	#0
A87C:		sty	$A4
		sta	$A5
		tya
		sec
		adc	MEMTOP
		tay
		lda	MEMTOP+1
		adc	$A5
		cmp	HIMEM+1
		bcc	A89A
		bne	A897
		cpy	HIMEM
		bcc	A89A
		beq	A89A
A897:		jmp	B930

A89A:		sec
		lda	MEMTOP
		sbc	0,X
		sta	$A2
		lda	MEMTOP+1
		sbc	1,X
		sta	$A3
		clc
		adc	1,X
		sta	$9A
		lda	0,X
		sta	$99
		sta	$97
		adc	$A4
		sta	$9B
		lda	1,X
		sta	$98
		adc	$A5
		adc	$A3
		sta	$9C
A8C0:		lda	0,X
		adc	$A4
		sta	0,X
		lda	1,X
		adc	$A5
		sta	1,X
		inx
		inx
		cpx	#$92
		bcc	A8C0
		sta	APPMHI+1
		lda	MEMTOP
		sta	APPMHI
		ldx	$A3
		inx
		ldy	$A2
		bne	A8EC
		nop			; huh?
		beq	A8F3
		nop			; This is Rev. B BASIC!
A8E3:		dey
		dec	$9A
		dec	$9C
A8E8:		lda	($99),Y
		sta	($9B),Y
A8EC:		dey
		bne	A8E8
		lda	($99),Y
		sta	($9B),Y
A8F3:		dex
		bne	A8E3
		rts

A8F7:		tay
A8F8:		lda	#0
A8FA:		sty	$A4
		sta	$A5
		sec
		lda	MEMTOP
		sbc	0,X
		eor	#$FF
		tay
		iny
		sty	$A2
		lda	MEMTOP+1
		sbc	1,X
		sta	$A3
		lda	0,X
		sbc	$A2
		sta	$99
		lda	1,X
		sbc	#0
		sta	$9A
		stx	$9B
A91D:		sec
		lda	0,X
		sbc	$A4
		sta	0,X
		lda	1,X
		sbc	$A5
		sta	1,X
		inx
		inx
		cpx	#$92
		bcc	A91D
		sta	APPMHI+1
		lda	MEMTOP
		sta	APPMHI
		ldx	$9B
		lda	0,X
		sbc	$A2
		sta	$9B
		lda	1,X
		sbc	#0
		sta	$9C
A944:		ldx	$A3
		inx
		ldy	$A2
		bne	A953
		dex
		bne	A953
		rts

A94F:		inc	$9A
		inc	$9C
A953:		lda	($99),Y
		sta	($9B),Y
		iny
		bne	A953
		dex
		bne	A94F
		rts

A95E:		jsr	B819
A961:		jsr	A9F2
		beq	A99C
		ldy	$A7
		cpy	$9F
		bcs	A989
		lda	(STMCUR),Y
		sta	$A7
		tya
		iny
		lda	(STMCUR),Y
		iny
		sty	$A8
		jsr	A97E
		nop	; huh?
		jmp	A961

A97E:		asl	A
		tax
		lda	A9FA,X
		pha
		lda	A9FA+1,X
		pha
		rts

A989:		ldy	#1
		lda	(STMCUR),Y
		bmi	A99F
		lda	$9F
		jsr	A9D0
		jsr	A9E1
		bpl	A95E
		jmp	B78C
A99C:		jmp	B792
A99F:		jmp	A05D

A9A2:		lda	STMCUR
		sta	$BE
		lda	STMCUR+1
		sta	$BF
		lda	STMTAB+1
		ldy	STMTAB
		sta	STMCUR+1
		sty	STMCUR
A9B2:		ldy	#1
		lda	(STMCUR),Y
		cmp	$A1
		bcc	A9C7
		bne	A9C6
		dey
		lda	(STMCUR),Y
		cmp	$A0
		bcc	A9C7
		bne	A9C6
		clc
A9C6:		rts

A9C7:		jsr	A9DC
		jsr	A9D0
		jmp	A9B2

A9D0:		clc			; STMCUR += accu
		adc	STMCUR
		sta	STMCUR
		lda	STMCUR+1
		adc	#0
		sta	STMCUR+1
		rts

A9DC:		ldy	#2
		lda	(STMCUR),Y
		rts

A9E1:		ldy	#1
		lda	(STMCUR),Y
A9E5:		rts

A9E6:		jsr	BD45
		jmp	$E471

A9EC:		jsr	BD45
		jmp	($00A)

A9F2:		ldy	BRKKEY
		bne	A9F9
		dec	BRKKEY
		tya
A9F9:		rts

A9FA:		.dbyt	A9E5-1,A9E5-1,B33E-1,BA1F-1,B4B5-1,BAC5-1,AADA-1,B778-1
		.dbyt	B67D-1,B700-1,B6D5-1,B6D5-1,B6D2-1,B7D8-1,A9E6-1,B7B5-1
		.dbyt	B206-1,BC22-1,B766-1,B28D-1,B206-1,B78C-1,A00C-1,BBF2-1
		.dbyt	BAFB-1,BB6D-1,BC2F-1,BC3D-1,BC54-1,BBEC-1,B7E4-1,B278-1
		.dbyt	B3DA-1,B291-1,B2AE-1,B296-1,BDA8-1,B74C-1,B792-1,B83E-1
		.dbyt	B3DA-1,BC85-1,BC78-1,BA46-1,BA6C-1,BA0C-1,A9EC-1,BA27-1
		.dbyt	B9AD-1,BC9E-1,B9D3-1,B496-1,BBD1-1,BB64-1,AADA-1,B912-1

AA6A:		.dbyt	ACA3-1,ACAC-1,ACC2-1,ACB2-1,ACB9-1,ACC9-1,B15E-1,AC83-1
		.dbyt	BDFA-1,AC7A-1,AC8C-1,ACE4-1,ACD9-1,ACCF-1,AB35-1,AD66-1
		.dbyt	AD4A-1,AE8E-1,ACA3-1,ACAC-1,ACC2-1,ACB2-1,ACB9-1,ACC9-1
		.dbyt	AB35-1,AC95-1,AE11-1,AD71-1,AD6D-1,AD66-1,AD6D-1,AD64-1
		.dbyt	B034-1,B052-1,B0A5-1,AFFD-1,AFEB-1,AFB5-1,B007-1,B118-1
		.dbyt	B10F-1,AFCC-1,B106-1,B076-1,AFD6-1,B14A-1,B121-1,B13D-1
		.dbyt	B153-1,AD04-1,B099-1,B0C8-1,B00D-1,B011-1,B015-1,B019-1

AADA:		jsr	AB26
AADD:		jsr	AB36
		bcs	AAE7
		jsr	ABB2
		bmi	AADD
AAE7:		sta	$AB
		tax
		lda	AC35-$10,X
		lsr	A
		lsr	A
		lsr	A
		lsr	A
		sta	$AC
AAF3:		ldy	$A9
		lda	(LOMEM),Y
		tax
		lda	AC35-$10,X
		and	#$F
		cmp	$AC
		bcc	AB0E
		tax
		beq	AB35
AB04:		lda	(LOMEM),Y
		inc	$A9
		jsr	AB18
		jmp	AAF3
AB0E:		lda	$AB
		dey
		sta	(LOMEM),Y
		sty	$A9
		jmp	AADD

AB18:		sec
		sbc	#$1D
		asl	A
		tax
		lda	AA6A,X
		pha
		lda	AA6A+1,X
		pha
		rts

AB26:		ldy	#$FF
		lda	#$11
		sta	(LOMEM),Y
		sty	$A9
		iny
		sty	$B0
		sty	$AA
		sty	$B1
AB35:		rts

AB36:		ldy	$A8
		inc	$A8
		lda	(STMCUR),Y
		bmi	AB81
		cmp	#$F
		bcc	AB45
		beq	AB57
		rts

AB45:		ldx	#0
AB47:		iny
		lda	(STMCUR),Y
		sta	FR0,X
		inx
		cpx	#6
		bcc	AB47

		iny
		lda	#0
		tax
		beq	AB79
AB57:		iny
		lda	(STMCUR),Y
		ldx	#$8A
AB5C:		sta	$D6
		sta	$D8
		iny
		tya
		clc
		adc	$0,X
		sta	FR0
		lda	#0
		sta	$D7
		sta	$D9
		adc	$1,X
		sta	FR0+1
		tya
		adc	$D6
		tay
		ldx	#0
		lda	#$83
AB79:		sta	$D2
		stx	$D3
		sty	$A8
		clc
		rts

AB81:		jsr	AC1E
AB84:		lda	($9D),Y
		sta	$0D2,Y
		iny
		cpy	#$8
		bcc	AB84
		clc
		rts

AB90:		jsr	ABE9
AB93:		lda	#2
		bit	$D2
		bne	ABAE
		ora	$D2
		sta	$D2
		ror	A
		bcc	ABAF
		clc
		lda	FR0
		adc	$8C
		sta	FR0
		tay
		lda	FR0+1
		adc	$8D
		sta	FR0+1
ABAE:		rts

ABAF:		jsr	B922
ABB2:		inc	$AA
		lda	$AA
		asl	A
		asl	A
		asl	A
		cmp	$A9
		bcs	ABCA
		tay
		dey
		ldx	#$7
ABC1:		lda	$D2,X
		sta	(LOMEM),Y
		dey
		dex
		bpl	ABC1
ABC9:		rts
ABCA:		jmp	B920

ABCD:		jsr	ABD7
		lda	FR0+1
		bpl	ABC9
		jmp	B926
ABD7:		jsr	AADA
ABDA:		jsr	ABE9
		jmp	AD41
ABE0:		jsr	ABCD
		bne	ABE6
		rts
ABE6:		jsr	B92E
ABE9:		lda	$AA
		dec	$AA
		asl	A
		asl	A
		asl	A
		tay
		dey
		ldx	#7
ABF4:		lda	(LOMEM),Y
		sta	$D2,X
		dey
		dex
		bpl	ABF4
		rts

ABFD:		jsr	ABE9
		jsr	FMOVE
		jmp	ABE9
AC06:		jsr	AADA
		jmp	ABE9
AC0C:		lda	$D3
		jsr	AC1E
		ldx	#0
AC13:		lda	$D2,X
		sta	($9D),Y
		iny
		inx
		cpx	#8
		bcc	AC13
		rts

AC1E:		ldy	#0
		sty	$9E
		asl	A
		asl	A
		rol	$9E
		asl	A
		rol	$9E
		clc
		adc	VVTP
		sta	$9D
		lda	VVTP+1
		adc	$9E
		sta	$9E
		rts

AC35:		.byte	$00,$00,$00,$00,$00,$00,$00,$00
		.byte	$00,$00,$00,$00,$00,$88,$88,$88
		.byte	$88,$88,$88,$CC,$AA,$99,$99,$AA
		.byte	$DD,$55,$66,$F2,$4E,$F1,$F1,$EE
		.byte	$EE,$EE,$EE,$EE,$EE,$DD,$DD,$F2
		.byte	$F2,$F2,$F2,$F2,$43,$F2,$F2,$F2
		.byte	$F2,$F2,$F2,$F2,$F2,$F2,$F2,$F2
		.byte	$F2,$F2,$F2,$F2,$F2,$F2,$F2,$F2
		.byte	$F2,$F2,$F2,$F2,$F2

AC7A:		jsr	ABFD
		jsr	AD2C
		jmp	ABB2

AC83:		jsr	ABFD
		jsr	AD32
		jmp	ABB2

AC8C:		jsr	ABFD
		jsr	AD38
		jmp	ABB2

AC95:		jsr	ABE9
		lda	FR0
		beq	ACA0
		eor	#$80
		sta	FR0
ACA0:		jmp	ABB2

ACA3:		jsr	AD11
		bmi	ACF0
		beq	ACF0
		bpl	ACEB

ACAC:		jsr	AD11
		jmp	ACE0

ACB2:		jsr	AD11
		bmi	ACF0
		bpl	ACEB

ACB9:		jsr	AD11
		bmi	ACEB
		beq	ACEB
		bpl	ACF0

ACC2:		jsr	AD11
		bmi	ACEB
		bpl	ACF0

ACC9:		jsr	AD11
		jmp	ACE9

ACCF:		jsr	ABFD
		lda	FR0
		and	FR1
		jmp	ACE0

ACD9:		jsr	ABFD
		lda	FR0
		ora	FR1
ACE0:		beq	ACEB
		bne	ACF0

ACE4:		jsr	ABE9
		lda	FR0
ACE9:		beq	ACF0
ACEB:		lda	#0
		tay
		beq	ACF4
ACF0:		lda	#$40
ACF2:		ldy	#1
ACF4:		sta	FR0
		sty	FR0+1
		ldx	#$D6
		ldy	#4
		jsr	DA48
		sta	$D2
AD01:		jmp	ABB2

AD04:		jsr	ABE9
		lda	FR0
		beq	AD01
		bpl	ACF0
		lda	#$C0
		bmi	ACF2
AD11:		ldy	$A9
		dey
		lda	(LOMEM),Y
		cmp	#$2F
		bcc	AD1D
		jmp	AF6C

AD1D:		jsr	ABFD
AD20:		jsr	AD2C
		lda	FR0
		rts

AD26:		jsr	FADD
		bcs	AD3E
		rts

AD2C:		jsr	FSUB
		bcs	AD3E
		rts

AD32:		jsr	FMUL
		bcs	AD3E
		rts

AD38:		jsr	FDIV
		bcs	AD3E
		rts

AD3E:		jsr	B91E
AD41:		jsr	FPI
		bcs	AD47
		rts

AD47:		jsr	B92E
AD4A:		lda	$A9
		cmp	#$FF
		bne	AD5F
		jsr	ABFD

		ldx	#5	; copy FR1 -> FR0
AD55:		lda	FR1,X
		sta	FR0,X
		dex
		bpl	AD55
		jmp	AC0C

AD5F:		lda	#$80
		sta	$B1
		rts

AD64:		inc	$B0
AD66:		ldy	$A9
		pla
		pla
		jmp	AB04

AD6D:		lda	#$40
		sta	$B1
AD71:		bit	$B1
		bpl	AD7B
		lda	$AA
		sta	$AF
		dec	$AA
AD7B:		lda	#0
		tay
		cmp	$B0
		beq	AD8D
		dec	$B0
		jsr	ABDA
		lda	FR0+1
		bmi	ADAE
		ldy	FR0
AD8D:		sta	$98
		sty	$97
		jsr	ABDA
		lda	FR0
		sta	$F5
		lda	FR0+1
		bmi	ADAE
		sta	$F6
		jsr	ABE9
		bit	$B1
		bvc	ADAA
		lda	#0
		sta	$B1
		rts
ADAA:		ror	$D2
		bcs	ADB1
ADAE:		jsr	B922
ADB1:		lda	$F6
		cmp	$D7
		bcc	ADBF
		bne	ADAE
		lda	$F5
		cmp	$D6
		bcs	ADAE
ADBF:		lda	$98
		cmp	$D9
		bcc	ADCD
		bne	ADAE
		lda	$97
		cmp	$D8
		bcs	ADAE
ADCD:		jsr	AF48
		lda	$97
		ldy	$98
		jsr	AF3D
		jsr	AF31
		lda	FR0
		ldy	FR0+1
		jsr	AF3D
		lda	$8C
		ldy	$8D
		jsr	AF3D
		bit	$B1
		bpl	AE01
		lda	$AF
		sta	$AA
		jsr	ABE9
		ldy	#5
ADF5:		lda	FR0,Y
		sta	($F5),Y
		dey
		bpl	ADF5
		iny
		sty	$B1
		rts
AE01:		ldy	#5
AE03:		lda	($F5),Y
		sta	$0D4,Y
		dey
		bpl	AE03
		iny
		sty	$D2
		jmp	ABB2
AE11:		lda	$B0
		beq	AE1C
		jsr	AE81
		sty	$98
		sta	$97
AE1C:		jsr	AE81
		sec
		sbc	#1
		sta	$F5
		tya
		sbc	#0
		sta	$F6
		jsr	ABE9
		lda	$B1
		bpl	AE3B
		ora	$B0
		sta	$B1
		ldy	$D9
		lda	$D8
		jmp	AE3F
AE3B:		lda	$D6
		ldy	$D7
AE3F:		ldx	$B0
		beq	AE53
		dec	$B0
		cpy	$98
		bcc	AE7E
		bne	AE4F
		cmp	$97
		bcc	AE7E
AE4F:		ldy	$98
		lda	$97
AE53:		sec
		sbc	$F5
		sta	$D6
		tax
		tya
		sbc	$F6
		sta	$D7
		bcc	AE7E
		tay
		bne	AE66
		txa
		beq	AE7E
AE66:		jsr	AB93
		clc
		lda	FR0
		adc	$F5
		sta	FR0
		lda	FR0+1
		adc	$F6
		sta	FR0+1
		bit	$B1
		bpl	AE7B
		rts
AE7B:		jmp	ABB2
AE7E:		jsr	B92A
AE81:		jsr	ABDA
		lda	FR0
		ldy	FR0+1
		bne	AE8D
		tax
		beq	AE7E
AE8D:		rts

AE8E:		jsr	AB90
AE91:		lda	FR0
		sta	$99
		lda	FR0+1
		sta	$9A
		lda	FR0+2
		sta	$A2
		ldy	FR0+3
		sty	$A3
		ldy	$A9
		cpy	#$FF
		beq	AEB6
		lda	#$80
		sta	$B1
		jsr	AB04
		lda	$D7
		ldy	$D6
		rol	$B1
		bcs	AEBD
AEB6:		jsr	AB90
		lda	$D9
		ldy	$D8
AEBD:		cmp	$A3
		bcc	AEC7
		bne	AECB
		cpy	$A2
		bcs	AECB
AEC7:		sta	$A3
		sty	$A2
AECB:		clc
		lda	FR0
		adc	$A2
		tay
		lda	FR0+1
		adc	$A3
		tax
		sec
		tya
		sbc	$8C
		sta	$F9
		txa
		sbc	$8D
		sta	$FA
		sec
		lda	#0
		sbc	$A2
		sta	$A2
		sec
		lda	$99
		sbc	$A2
		sta	$99
		lda	$9A
		sbc	#0
		sta	$9A
		sec
		lda	FR0
		sbc	$A2
		sta	$9B
		lda	FR0+1
		sbc	#0
		sta	$9C
		jsr	A944
		lda	$D3
		jsr	AB81
		sec
		lda	$F9
		sbc	FR0
		tay
		lda	$FA
		sbc	FR0+1
		tax
		lda	#2
		and	$B1
		beq	AF2A
		lda	#0
		sta	$B1
		cpx	$D7
		bcc	AF29
		bne	AF2A
		cpy	$D6
		bcs	AF2A
AF29:		rts
AF2A:		sty	$D6
		stx	$D7
		jmp	AC0C
AF31:		asl	$F5
		rol	$F6
		ldy	$F6
		lda	$F5
		asl	$F5
		rol	$F6
AF3D:		clc
		adc	$F5
		sta	$F5
		tya
		adc	$F6
		sta	$F6
		rts
AF48:		lda	#0
		sta	$F7
		sta	$F8
		ldy	#$10
AF50:		lda	$F5
		lsr	A
		bcc	AF61
		clc
		ldx	#$FE
AF58:		lda	$F9,X
		adc	$DA,X
		sta	$F9,X
		inx
		bne	AF58
AF61:		ldx	#3
AF63:		ror	$F5,X
		dex
		bpl	AF63
		dey
		bne	AF50
		rts
AF6C:		jsr	AB90
		jsr	FMOVE
		jsr	AB90
AF75:		ldx	#$D6
		jsr	AFA7
		php
		ldx	#$E2
		jsr	AFA7
		beq	AF95
		plp
		beq	AF92
		ldy	#0
		lda	(FR0),Y
		cmp	(FR1),Y
		beq	AF99
		bcc	AF92
AF8F:		lda	#1
		rts
AF92:		lda	#$80
		rts
AF95:		plp
		bne	AF8F
		rts
AF99:		inc	FR0
		bne	AF9F
		inc	FR0+1
AF9F:		inc	FR1
		bne	AF75
		inc	FR1+1
		bne	AF75

AFA7:		lda	0,X
		bne	AFB1
		lda	1,X
		beq	AFB4
		dec	1,X
AFB1:		dec	0,X
		tay
AFB4:		rts

AFB5:		jsr	AB90
		lda	FR0+2
		ldy	FR0+3
AFBC:		sta	FR0
		sty	FR0+1
AFC0:		jsr	IFP
AFC3:		lda	#0
		sta	$D2
		sta	$D3
		jmp	ABB2

AFCC:		jsr	ABDA
		ldy	#0
		lda	($D4),Y
		jmp	AFBC

AFD6:		jsr	ABE9
		sec
		lda	HIMEM
		sbc	MEMTOP
		sta	FR0
		lda	HIMEM+1
		sbc	MEMTOP+1
		sta	FR0+1
		jmp	AFC0

AFEB:		jsr	BD7D
		lda	#0
		sta	CIX
		jsr	AFP
		jsr	BD9D
		bcc	AFC3
		jsr	B910
AFFD:		jsr	AB90
		ldy	#0
		lda	(FR0),Y
		jmp	AFBC

B007:		jsr	AB90
		jmp	AFC0

B00D:		lda	#0
		beq	B01B

B011:		lda	#8
		bne	B01B
B015:		lda	#12
		bne	B01B
B019:		lda	#20
B01B:		pha
		jsr	ABDA
		lda	FR0+1
		bne	B031
		lda	FR0
		pla
		clc
		adc	FR0
		tax
		lda	$270,X
		ldy	#0
		beq	AFBC
B031:		jsr	B92E
B034:		jsr	ABE9
		jsr	FASC
		lda	INBUFF
		sta	FR0
		lda	INBUFF+1
		sta	FR0+1
		ldy	#$FF
B044:		iny
		lda	(INBUFF),Y
		bpl	B044
		and	#$7F
		sta	(INBUFF),Y
		iny
		sty	$D6
		bne	B069
B052:		jsr	ABE9
		jsr	AD41
		lda	FR0
		sta	$5C0
		lda	#5
		sta	FR0+1
		lda	#$C0
		sta	FR0
		lda	#1
		sta	FR0+2
B069:		lda	#0
		sta	FR0+3
		sta	$D3
		lda	#$83
		sta	$D2
		jmp	ABB2

B076:		ldx	#<B093		; random!
		ldy	#>B093
		jsr	FLD1R
		jsr	ABE9
		ldy	RANDOM
		sty	FR0
		ldy	RANDOM
		sty	FR0+1
		jsr	IFP
		jsr	AD38
		jmp	ABB2

B093:		.byte	$42,$06,$55,$36,$00,$00

B099:		jsr	ABE9
		lda	FR0
		and	#$7F
		sta	FR0
		jmp	ABB2

B0A5:		jsr	B0AE
		jsr	IFP
		jmp	ABB2
B0AE:		lda	$B0
		sta	$C6
B0B2:		jsr	ABDA
		dec	$C6
		bmi	B0C2
		lda	FR0
		pha
		lda	FR0+1
		pha
		jmp	B0B2
B0C2:		lda	$B0
		pha
		jmp	(FR0)

B0C8:		jsr	ABE9
		jsr	B0D1
		jmp	ABB2
B0D1:		lda	FR0
		and	#$7F
		sec
		sbc	#$3F
		bpl	B0DC
		lda	#0
B0DC:		tax
		lda	#0
		tay
B0E0:		cpx	#5
		bcs	B0EB
		ora	FR0+1,X
		sty	FR0+1,X
		inx
		bne	B0E0
B0EB:		ldx	FR0
		bpl	B103
		tax
		beq	B103
		ldx	#$E0
		jsr	ZF1
		lda	#$C0
		sta	$E0
		lda	#1
		sta	$E1
		jsr	AD26
		rts

B103:		jmp	DC00

B106:		jsr	ABE9
		jsr	BE05
		jmp	B159

B10F:		jsr	ABE9
		jsr	BE0F
		jmp	B159

B118:		jsr	ABE9
		jsr	BED5
		jmp	B159

B121:		jsr	ABE9
		lda	FR0
		beq	B15B
		jsr	LOG
B12B:		bcs	B15B
		lda	FR0
		eor	#$3B
		bne	B16C
		lda	FR0+1
		and	#$F8
		bne	B16C
		sta	FR0
		beq	B16C

B13D:		jsr	ABE9	; CLOG
		lda	FR0
		beq	B15B
		jsr	LOG10
		jmp	B12B

B14A:		jsr	ABE9	; EXP
		jsr	EXP
		jmp	B159

B153:		jsr	ABE9
		jsr	BF43
B159:		bcc	B16C
B15B:		jsr	B92E

B15E:		jsr	ABFD
		lda	FR1
		beq	B16F
		rol	A
		ldy	FR0
		bne	B172
		bcs	B15B
B16C:		jmp	ABB2
B16F:		jmp	ACF0
B172:		ldx	#$D4
		jsr	BA76
		ror	A
		pha
		ldx	#$E0
		jsr	BA76
		tya
		bpl	B19F
		and	#$7F
		sta	FR0
		bcs	B18A
		pla
		bcc	B15B
B18A:		lda	FR1
		bpl	B18F
		clc
B18F:		php
		ldx	$F7
		cpx	#5
		bcs	B1A5
		lda	$E1,X
		ror	A
		bcc	B1A5
		lda	#$80
		bne	B1A7
B19F:		lda	$E0
		bpl	B1A4
		clc
B1A4:		php
B1A5:		lda	#0
B1A7:		pha
		ldx	#5

B1AA:		lda	FR1,X
		pha
		dex
		bpl	B1AA
		jsr	LOG10
		ldx	#0
		ldy	#5
B1B7:		pla
		sta	FR1,X
		inx
		dey
		bpl	B1B7
		jsr	AD32
		jsr	EXP10
		bcs	B203
		pla
		ora	$D4
		sta	$D4
		plp
		pla
		bpl	B16C
		bcc	B16C
		ldx	#$D4
		jsr	BA76
		bcs	B16C
		lda	FR0
		sec
		and	#$7F
		sbc	#$3F
		cmp	#6
		bcs	B200
		tax
		tay
		sed
		sec
B1E7:		lda	FR0,X
		adc	#0
		sta	FR0,X
		dex
		bne	B1E7
		cld
		bcc	B1F7
		inc	FR0
		inc	FR0+1
B1F7:		iny
		cpy	#6
		bcs	B200
		stx	FR0,Y
		bcc	B1F7
B200:		jmp	ABB2
B203:		jsr	B91E
B206:		ldy	$A8
		cpy	$A7
		bcc	B20D
		rts
B20D:		jsr	AADA
		lda	$D2
		ror	A
		bcc	B218
B215:		jsr	B922
B218:		sec
		rol	A
		sta	$D2
		bmi	B24C
		ldy	$F5
		ldx	$F6
		iny
		bne	B228
		inx
		bmi	B215
B228:		sty	$D6
		stx	$D7
		sty	$F5
		stx	$F6
		ldy	$97
		ldx	$98
		iny
		bne	B23A
		inx
		bmi	B215
B23A:		sty	$D8
		stx	$D9
		jsr	AF48
		jsr	AF31
		ldy	$F5
		lda	$F6
		bmi	B215
		bpl	B260
B24C:		lda	#0
		sta	$D6
		sta	$D7
		ldy	$F5
		sty	$D8
		lda	$F6
		sta	$D9
		bne	B260
		cpy	#0
		beq	B215
B260:		ldx	#$8E
		jsr	A87C
		sec
		lda	$97
		sbc	$8C
		sta	FR0
		lda	$98
		sbc	$8D
		sta	FR0+1
		jsr	AC0C
		jmp	B206

B278:		jsr	ABD7		; poke
		lda	FR0
		sta	POKADR
		lda	FR0+1
		sta	POKADR+1
		jsr	ABE0
		lda	FR0
		ldy	#0
		sta	(POKADR),Y
		rts

B28D:		lda	#6
		bne	B293
B291:		lda	#0
B293:		sta	$FB
		rts

B296:		lda	#0		; restore
		sta	DATAD
		jsr	B904
		bcc	B2A2
		tay
		beq	B2A9
B2A2:		jsr	ABCD
		lda	FR0+1
		ldy	FR0
B2A9:		sta	DATALN+1
		sty	DATALN
		rts

B2AE:		lda	$A8
		pha
		jsr	B6F9
		lda	DATALN
		sta	$A0
		lda	DATALN+1
		sta	$A1
		jsr	A9A2
		lda	STMCUR
		sta	INBUFF
		lda	STMCUR+1
		sta	INBUFF+1
		jsr	BDA8
		pla
		sta	$A8
B2CD:		ldy	#0
		sty	CIX
		jsr	B32F
		sta	DATALN
		jsr	B32D
		sta	DATALN+1
		jsr	B32D
		sta	$F5
B2E0:		jsr	$B32D
		sta	$F6
		jsr	B32D
		eor	#1
		beq	B312
		ldy	$F6
		cpy	$F5
		bcs	B2F7
		dey
		sty	CIX
		bcc	B2E0
B2F7:		sty	CIX
		dec	CIX
B2FB:		ldy	#1
		lda	(INBUFF),Y
		bmi	B33B
		sec
		lda	CIX
		adc	INBUFF
		sta	INBUFF
		lda	#0
		sta	DATAD
		adc	INBUFF+1
		sta	INBUFF+1
		bcc	B2CD
B312:		sta	$F5
B314:		lda	$F5
		cmp	DATAD
		bcs	B325
B31A:		jsr	B32D
		bne	B31A
		bcs	B2FB
		inc	$F5
		bne	B314
B325:		lda	#$40
		sta	$A6
		inc	CIX
		bcs	B35F
B32D:		inc	CIX
B32F:		ldy	CIX
		lda	(INBUFF),Y
		cmp	#$2C
		clc
		beq	B33A
		cmp	#$9B
B33A:		rts
B33B:		jsr	B928

B33E:		lda	#$3F
		sta	$C2
		jsr	AB36
		dec	$A8
		bcc	B34E
		jsr	BD07
		sta	$B4
B34E:		jsr	DA51
		jsr	BDE4
		jsr	A9F2
		beq	B378
		ldy	#0
		sty	$A6
		sty	CIX
B35F:		jsr	AB36
		inc	$A8
		lda	$D2
		bmi	B382
		jsr	AFP
		bcs	B37B
		jsr	B32F
		bne	B37B
		jsr	AC0C
		jmp	B3AD
B378:		jmp	B792
B37B:		lda	#0
		sta	$B4
		jsr	B924
B382:		jsr	AB26
		jsr	ABB2
		dec	CIX
		lda	CIX
		sta	$F5
		ldx	#$FF
B390:		inx
		jsr	B32D
		bne	B390
		bcs	B39C
		bit	$A6
		bvc	B390
B39C:		ldy	$F5
		lda	$A8
		pha
		txa
		ldx	#INBUFF
		jsr	AB5C
		pla
		sta	$A8
		jsr	AE91
B3AD:		bit	$A6
		bvc	B3C0
		inc	DATAD
		jsr	B904
		bcs	B3C5
		jsr	B32F
		bcc	B3D5
		jmp	B2FB
B3C0:		jsr	B904
		bcc	B3CD
B3C5:		jsr	DA51
		lda	#0
		sta	$B4
		rts
B3CD:		jsr	B32F
		bcc	B3D5
		jmp	B34E
B3D5:		inc	CIX
		jmp	B35F
B3DA:		lda	PTABW
		sta	$AF
		lda	#0
		sta	$94
B3E2:		ldy	$A8
		lda	(STMCUR),Y
		cmp	#$12
		beq	B449
		cmp	#$16
		beq	B467
		cmp	#$14
		beq	B467
		cmp	#$15
		beq	B474
		cmp	#$1C
		beq	B46A
		jsr	AADA
		jsr	ABE9
		dec	$A8
		bit	$D2
		bmi	B428
		lda	FR0+1
		cmp	#$10
		bcc	B412
		lda	$D9
		and	#$F0
		sta	$D9
B412:		jsr	FASC
		lda	#0
		sta	CIX
B419:		ldy	CIX
		lda	(INBUFF),Y
		pha
		inc	CIX
		jsr	B48F
		pla
		bpl	B419
		bmi	B3E2
B428:		jsr	AB93
		lda	#0
		sta	CIX
B42F:		lda	$D6
		bne	B437
		dec	$D7
		bmi	B3E2
B437:		dec	$D6
		ldy	CIX
		lda	(FR0),Y
		inc	CIX
		bne	B443
		inc	FR0+1
B443:		jsr	B491
		jmp	B42F
B449:		ldy	$94
		iny
		cpy	$AF
		bcc	B459
		clc
		lda	PTABW
		adc	$AF
		sta	$AF
		bcc	B449
B459:		ldy	$94
		cpy	$AF
		bcs	B474
		lda	#$20
		jsr	B48F
		jmp	B459
B467:		jmp	B485
B46A:		jsr	BD07
		sta	$B5
		dec	$A8
		jmp	B3E2
B474:		inc	$A8
		ldy	$A8
		lda	(STMCUR),Y
		cmp	#$16
		beq	B48A
		cmp	#$14
		beq	B48A
		jmp	B3E2
B485:		lda	#$9B
		jsr	B491
B48A:		lda	#0
		sta	$B5
		rts
B48F:		and	#$7F
B491:		inc	$94
		jmp	BA99

B496:		lda	#<B4B2
		sta	INBUFF
		lda	#>B4B2
		sta	INBUFF+1
		ldx	#7
		stx	$B5
		lda	#0
		ldy	#8
		jsr	BBD8
		jsr	BCBB
		jsr	B3DA
		jmp	BCF7

B4B2:		.byte	"P:",$9B

B4B5:		ldy	#0
		sty	$A0
		sty	$A1
		dey
		sty	$AD
		lda	#$7F
		sta	$AE
		sta	$2FE
		lda	#$9B
		jsr	BA99
		jsr	B6F9
B4CD:		ldy	$A8
		iny
		cpy	$A7
		bcs	B501
		lda	$A8
		pha
		jsr	AC06
		pla
		sta	$A8
		lda	$D2
		bpl	B4E7
		jsr	BACF
		jmp	B4CD

B4E7:		jsr	ABCD
		sta	$A1
		lda	FR0
		sta	$A0
		ldy	$A8
		cpy	$A7
		beq	B4F9
		jsr	ABCD
B4F9:		lda	FR0
		sta	$AD
		lda	FR0+1
		sta	$AE
B501:		jsr	A9A2
B504:		jsr	A9E1
		bmi	B52D
		ldy	#1
		lda	(STMCUR),Y
		cmp	$AE
		bcc	B51C
		bne	B52D
		dey
		lda	(STMCUR),Y
		cmp	$AD
		bcc	B51C
		bne	B52D
B51C:		jsr	B58E
		jsr	A9F2
		beq	B52D
		jsr	A9DC
		jsr	A9D0
		jmp	B504
B52D:		lda	$B5
		beq	B538
		jsr	BCF7
		lda	#0
		sta	$B5
B538:		sta	$2FE
		jmp	BDA8
B53E:		stx	$AA
		jsr	B562
B543:		ldy	$AA
		dec	$AF
		bmi	B557
B549:		lda	(POKADR),Y
		bmi	B550
		iny
		bne	B549
B550:		iny
		jsr	B557
		jmp	B543
B557:		clc
		tya
		adc	POKADR
		sta	POKADR
		tay
		lda	POKADR+1
		adc	#0
B562:		sta	POKADR+1
		sty	POKADR
		rts
B567:		ldy	#$FF
		sty	$AF
B56B:		inc	$AF
		ldy	$AF
		lda	(POKADR),Y
		pha
		cmp	#$9B
		beq	B57A
		and	#$7F
		beq	B57D
B57A:		jsr	BA99
B57D:		pla
		bpl	B56B
		rts
B581:		lda	#$20
		jsr	BA99
B586:		jsr	B567
		lda	#$20
		jmp	BA99

B58E:		ldy	#0
		lda	(STMCUR),Y
		sta	FR0
		iny
		lda	(STMCUR),Y
		sta	FR0+1
		jsr	IFP
		jsr	FASC
		lda	INBUFF
		sta	POKADR
		lda	INBUFF+1
		sta	POKADR+1
		jsr	B586
B5AA:		ldy	#2
		lda	(STMCUR),Y
		sta	$9F
		iny
B5B1:		lda	(STMCUR),Y
		sta	$A7
		iny
		sty	$A8
		jsr	B5C2
		ldy	$A7
		cpy	$9F
		bcc	B5B1
		rts
B5C2:		jsr	B663
		cmp	#$36
		beq	B5E0
		jsr	B66F
		jsr	B663
		cmp	#$37
		beq	B5D7
		cmp	#2
		bcs	B5E0
B5D7:		jsr	B661
		jsr	BA99
		jmp	B5D7
B5E0:		jsr	B661
		bpl	B5FF
		and	#$7F
		sta	$AF
		ldx	#0
		lda	VNTP+1
		ldy	VNTP
		jsr	B53E
		jsr	B567
		cmp	#$A8
		bne	B5E0
		jsr	B661
		jmp	B5E0
B5FF:		cmp	#15
		beq	B61B
		bcs	B63B
		jsr	AB45
		dec	$A8
		jsr	FASC
		lda	INBUFF
		sta	POKADR
		lda	INBUFF+1
		sta	POKADR+1
B615:		jsr	B567
		jmp	B5E0
B61B:		jsr	B661
		sta	$AF
		lda	#$22
		jsr	BA99
		lda	$AF
		beq	B633
B629:		jsr	B661
		jsr	BA99
		dec	$AF
		bne	B629
B633:		lda	#$22
		jsr	BA99
		jmp	B5E0
B63B:		sec
		sbc	#$10
		sta	$AF
		ldx	#0
		lda	#$A7
		ldy	#$DE
		jsr	B53E
		jsr	B663
		cmp	#$3D
		bcs	B615
		ldy	#0
		lda	(POKADR),Y
		and	#$7F
		jsr	A3EC
		bcs	B615
		jsr	B581
		jmp	B5E0
B661:		inc	$A8
B663:		ldy	$A8
		cpy	$A7
		bcs	B66C
		lda	(STMCUR),Y
		rts

B66C:		pla
		pla
		rts
B66F:		sta	$AF
		ldx	#2
		lda	#>A49F
		ldy	#<A49F
		jsr	B53E
		jmp	B586

B67D:		jsr	B883
		jsr	AADA
		lda	$D3
		ora	#$80
		pha
		jsr	B823
		lda	#$C
		jsr	B871
		jsr	AC06
		ldx	#$D4
		ldy	#0
		jsr	B888
		jsr	ZFR0
		lda	#1
		sta	FR0+1
		lda	#$40
		sta	FR0
		jsr	B904
		bcs	B6AD
		jsr	AC06
B6AD:		ldx	#$D4
		ldy	#6
		jsr	B888
		pla
B6B5:		pha
		lda	#4
		jsr	B871
		pla
		ldy	#0
		sta	($C4),Y
		lda	(STMCUR),Y
		iny
		sta	($C4),Y
		lda	(STMCUR),Y
		iny
		sta	($C4),Y
		ldx	$B3
		dex
		txa
		iny
		sta	($C4),Y
		rts

B6D2:		jsr	B6F9
B6D5:		jsr	ABCD
B6D8:		lda	FR0+1
		sta	$A1
		lda	FR0
		sta	$A0
B6E0:		jsr	A9A2
		bcs	B6EA
		pla
		pla
		jmp	A95E
B6EA:		jsr	B6F0
		jsr	B91C
B6F0:		lda	$BE
		sta	STMCUR
		lda	$BF
		sta	STMCUR+1
		rts
B6F9:		jsr	B883
B6FC:		lda	#0
		beq	B6B5
B700:		ldy	$A8
		lda	(STMCUR),Y
		sta	$C7
B706:		jsr	B83E
		bcs	B749
		beq	B749
		cmp	$C7
		bne	B706
		ldy	#6
		jsr	B897
		lda	$E0
		pha
		lda	$C7
		jsr	AB81
		jsr	AD26
		jsr	AC0C
		ldy	#0
		jsr	B897
		pla
		bpl	B732
		jsr	AD20
		bpl	B73A
		rts
B732:		jsr	AD20
		beq	B73A
		bmi	B73A
B739:		rts
B73A:		lda	#$10
		jsr	B871
		jsr	BDCB
		cmp	#8
		beq	B739
		jmp	BDC2
B749:		jsr	B91A
B74C:		jsr	B904
		bcs	B754
		jsr	BAF7
B754:		nop
		lda	#0
		sta	$A0
		sta	$A1
		jsr	B816
		jsr	A9E1
		bmi	B775
		jsr	B8F1
B766:		jsr	B8B9
		jsr	B8A8
		lda	#0
		sta	DATALN
		sta	DATALN+1
		sta	DATAD
		rts
B775:		jmp	A050

B778:		jsr	AC06
		lda	FR0+1
		beq	B787
		jsr	B904
		bcs	B78B
		jmp	B6D5
B787:		lda	$9F
		sta	$A7
B78B:		rts
B78C:		jsr	B7A6
		jmp	A050
B792:		jsr	B7A6
		jsr	BD79
		lda	#$FD
		sta	POKADR
		lda	#$A5
		sta	POKADR+1
		jsr	B567
		jmp	B968
B7A6:		jsr	A9E1
		bmi	B7B2
		sta	STOPLN+1
		dey
		lda	(STMCUR),Y
		sta	STOPLN
B7B2:		jmp	BD5B

B7B5:		jsr	A9E1
		bpl	B7B2
		lda	STOPLN
		sta	$A0
		lda	STOPLN+1
		sta	$A1
		jsr	A9A2
		jsr	A9E1
		bmi	B775
		jsr	A9DC
		jsr	A9D0
		jsr	A9E1
		bmi	B775
		jmp	B819
B7D8:		jsr	ABD7
		lda	FR0
		sta	$BC
		lda	FR0+1
		sta	$BD
		rts

B7E4:		jsr	B883
		jsr	ABE0
		lda	FR0
		beq	B811
		ldy	$A8
		dey
		lda	(STMCUR),Y
		cmp	#$17
		php
		beq	B7FB
		jsr	B6FC
B7FB:		lda	FR0
		sta	$B3
B7FF:		jsr	ABCD
		dec	$B3
		beq	B812
		jsr	B904
		bcc	B7FF
		plp
		beq	B811
		jsr	B83E
B811:		rts
B812:		plp
		jmp	B6D8
B816:		jsr	A9A2
B819:		ldy	#2
		lda	(STMCUR),Y
		sta	$9F
		iny
		sty	$A7
		rts
B823:		sta	$C7
		jsr	B87A
B828:		jsr	B83E
		bcs	B835
		beq	B835
		cmp	$C7
		beq	B83D
		bne	B828
B835:		lda	$C4
		sta	MEMTOP
		lda	$C5
		sta	MEMTOP+1
B83D:		rts
B83E:		lda	RUNSTK+1
		cmp	MEMTOP+1
		bcc	B84A
		lda	RUNSTK
		cmp	MEMTOP
		bcs	B83D
B84A:		lda	#4
		ldx	#$90
		jsr	A8F7
		ldy	#3
		lda	(MEMTOP),Y
		sta	$B2
		dey
		lda	(MEMTOP),Y
		sta	$A1
		dey
		lda	(MEMTOP),Y
		sta	$A0
		dey
		lda	(MEMTOP),Y
		beq	B86F
		pha
		lda	#12
		ldx	#$90
		jsr	A8F7
		pla
B86F:		clc
		rts
B871:		jsr	B87A
		tay
		ldx	#$90
		jmp	A87A
B87A:		ldx	MEMTOP
		stx	$C4
		ldx	MEMTOP+1
		stx	$C5
		rts
B883:		ldy	$A8
		sty	$B3
		rts

B888:		lda	#6
		sta	$C6
B88C:		lda	0,X
		sta	($C4),Y
		inx
		iny
		dec	$C6
		bne	B88C
		rts

B897:		lda	#$6
		sta	$C6
		ldx	#$E0
B89D:		lda	(MEMTOP),Y
		sta	$0,X
		inx
		iny
		dec	$C6
		bne	B89D
		rts

B8A8:		lda	STARP
		sta	RUNSTK
		sta	MEMTOP
		sta	APPMHI
		lda	STARP+1
		sta	RUNSTK+1
		sta	MEMTOP+1
		sta	APPMHI+1
		rts

B8B9:		ldx	VVTP
		stx	$F5
		ldy	VVTP+1
		sty	$F6
B8C1:		ldx	$F6
		cpx	STMTAB+1
		bcc	B8CE
		ldx	$F5
		cpx	STMTAB
		bcc	B8CE
		rts

B8CE:		ldy	#0
		lda	($F5),Y
		and	#$FE
		sta	($F5),Y
		ldy	#2
		ldx	#6
		lda	#0
B8DC:		sta	($F5),Y
		iny
		dex
		bne	B8DC
		lda	$F5
		clc
		adc	#8
		sta	$F5
		lda	$F6
		adc	#0
		sta	$F6
		bne	B8C1

B8F1:		ldx	#5	; fill B6..BB -> 0
		ldy	#0
B8F5:		sty	$B6,X
		dex
		bpl	B8F5

		sty	$FB
		dey
		sty	$BD
		sty	BRKKEY
		jmp	BD45

B904:		ldx	$A8
		inx
		cpx	$A7
		rts

B90A:		inc	$B9
B90C:		inc	$B9
B90E:		inc	$B9
B910:		inc	$B9
B912:		inc	$B9
B914:		inc	$B9
B916:		inc	$B9
B918:		inc	$B9
B91A:		inc	$B9
B91C:		inc	$B9
B91E:		inc	$B9
B920:		inc	$B9
B922:		inc	$B9
B924:		inc	$B9
B926:		inc	$B9
B928:		inc	$B9
B92A:		inc	$B9
B92C:		inc	$B9
B92E:		inc	$B9
B930:		inc	$B9
		inc	$B9
B934:		lda	#0
		sta	$2FE
		jsr	B7A6
		lda	$BD
		bmi	B955
		sta	$A1
		lda	$BC
		sta	$A0
		lda	#$80
		sta	$BD
		lda	$B9
		sta	ERRSAVE
		lda	#0
		sta	$B9
		jmp	B6E0
B955:		jsr	BD79
		lda	#$37
		jsr	B66F
		lda	$B9
		sta	FR0
		lda	#0
		sta	FR0+1
		jsr	B993
B968:		jsr	A9E1
		bmi	B986
		lda	#<B9A4
		sta	POKADR
		lda	#>B9A4
		sta	POKADR+1
		jsr	B567
		ldy	#1
		lda	(STMCUR),Y
		sta	FR0+1
		dey
		lda	(STMCUR),Y
		sta	FR0
		jsr	B993
B986:		jsr	BD79
		lda	#0
		sta	$B9
		jsr	BD5B
		jmp	A060
B993:		jsr	IFP
		jsr	FASC
		lda	INBUFF
		sta	POKADR
		lda	INBUFF+1
		sta	POKADR+1
		jmp	B567

B9A4:		.byte	' ','A','T',' ','L','I','N','E',' '+$80

B9AD:		jsr	ABE0
		lda	FR0
		cmp	#5
		bcs	B9D0
		pha
		jsr	ABD7
		lda	FR0
		asl	A
		asl	A
		asl	A
		asl	A
		pha
		jsr	ABD7
		pla
		clc
		adc	FR0
		tay
		pla
		tax
		tya
		sta	$2C4,X
		rts

B9D0:		jsr	B92E
B9D3:		jsr	ABE0
		lda	FR0
		cmp	#4
		bcs	B9D0
		asl	A
		pha
		lda	#0
		sta	AUDCTL
		lda	#3
		sta	SKCTL
		jsr	ABD7
		pla
		pha
		tax
		lda	$D4
		sta	$D200,X
		jsr	ABD7
		lda	$D4
		asl	A
		asl	A
		asl	A
		asl	A
		pha
		jsr	ABD7
		pla
		tay
		pla
		tax
		tya
		clc
		adc	FR0
		sta	$D201,X
		rts

BA0C:		jsr	ABD7
		lda	FR0
		sta	$55
		lda	FR0+1
		sta	$56
		jsr	ABE0
		lda	FR0
		sta	$54
		rts

BA1F:		jsr	ABD7
		lda	FR0
		sta	$C8
		rts

BA27:		jsr	BA0C
		lda	$C8
		sta	$2FB
		lda	#$11
		ldx	#6
		jsr	BABE
		lda	#12
		sta	$34A,X
		lda	#0
		sta	$34B,X
		jsr	BD29
		jmp	BCBB

BA46:		ldx	#6
		stx	$C1
		jsr	BCF7
		jsr	ABD7
		ldx	#<BA69
		ldy	#>BA69
		stx	INBUFF
		sty	INBUFF+1
		ldx	#6
		lda	FR0
		and	#$F0
		eor	#$1C
		tay
		lda	FR0
		jsr	BBD8
		jmp	BCBB

BA69:		.byte	"S:",$9B

BA6C:		jsr	BA0C
		lda	$C8
		ldx	#6
		jmp	BA9B

BA76:		sec
		lda	0,X
		and	#$7F
		sbc	#$40
		bcc	BA98
		sta	$F5
		sta	$F7
		txa
		adc	$F5
		inx
		inx
		inx
		inx
		inx
		inx
		stx	$F5
		tax
BA8F:		inx
		cpx	$F5
		bcs	BA98
		lda	0,X
		beq	BA8F
BA98:		rts

BA99:		ldx	$B5
BA9B:		pha
		jsr	BAC0
		lda	$34A,X
		sta	ICAX1Z
		lda	$34B,X
		sta	ICAX2Z
		pla
		tay
		jsr	BAB2
		tya
		jmp	BCBE

BAB2:		lda	$347,X
		pha
		lda	$346,X
		pha
		tya
		ldy	#$92
		rts

BABE:		sta	$C0
BAC0:		stx	$C1
		jmp	BCAF

BAC5:		lda	#4
		jsr	BAD7
		sta	$B4
		jmp	A060

BACF:		lda	#8
		jsr	BAD7
		sta	$B5
		rts

BAD7:		pha
		ldy	#7
		sty	$C1
		jsr	BCAF
		lda	#12
		jsr	BD2B
		ldy	#3
		sty	$C0
		pla
		ldy	#0
		jsr	BC02
		lda	#7
		rts

BAF1:		.byte	$40,$02,$00,$00,$00,$00

BAF7:		lda	#$FF
		bne	W1
BAFB:		lda	#0
W1:		pha
		lda	#4
		jsr	BAD7
		pla
W2:		pha
		lda	#7
		sta	$C0
		sta	$CA
		jsr	BCAF
		ldy	#14
		jsr	BD15
		jsr	BCBB
		lda	$580
		ora	$581
		bne	@7
		ldx	#$8C
@3:		clc
		lda	LOMEM
		adc	$500,X
		php
		clc
		adc	#0
		tay
		lda	LOMEM+1
		adc	$501,X
		plp
		adc	#0
		cmp	HIMEM+1
		bcc	@5
		bne	@4
		cpy	HIMEM
		bcc	@5
@4:		jmp	B90E
@5:		sta	1,X
		sty	0,X
		dex
		dex
		cpx	#$82
		bcs	@3
		jsr	W9
		jsr	B766
		lda	#0
		sta	$CA
		pla
		beq	@6
		rts
@6:		jmp	A050

@7:		lda	#0
		sta	$CA
		jsr	B90A
BB64:		lda	#4
		jsr	BBB4
		lda	#0
		beq	W2
BB6D:		lda	#8
		jsr	BAD7
BB72:		lda	#$B
		sta	$C0
		ldx	#$80
@8:		sec
		lda	0,X
		sbc	LOMEM
		sta	$500,X
		inx
		lda	0,X
		sbc	LOMEM+1
		sta	$500,X
		inx
		cpx	#$8E
		bcc	@8
		jsr	BCAF
		ldy	#$E
		jsr	BD15
		jsr	BCBB
W9:		jsr	BCAF
		lda	VNTP
		sta	INBUFF
		lda	VNTP+1
		sta	INBUFF+1
		ldy	$58D
		dey
		tya
		ldy	$58C
		jsr	BD17
		jsr	BCBB
		jmp	BCF7

BBB4:		nop
		nop
		pha
		ldx	#<BBCE
		stx	INBUFF
		ldx	#>BBCE
		stx	INBUFF+1
		ldx	#7
		pla
		tay
		lda	#$80
		jsr	BBD8
		jsr	BCBB
		lda	#7
		rts

BBCE:		.byte	"C:",$9B

BBD1:		lda	#8
		jsr	BBB4
		bne	BB72
BBD8:		pha
		lda	#3
		jsr	BABE
		pla
		sta	$34B,X
		tya
		sta	$34A,X
		jsr	BD1E
		jmp	DA51

BBEC:		jsr	BD09
		jmp	BBF4

BBF2:		lda	#3
BBF4:		sta	$C0
		jsr	BCA8
		jsr	BD09
		pha
		jsr	BD09
		tay
		pla
BC02:		pha
		tya
		pha
		jsr	AADA
		jsr	BD7D
		jsr	BCAF
		pla
		sta	$34B,X
		pla
		sta	$34A,X
		jsr	BD0F
		jsr	BD9D
		jsr	DA51
		jmp	BCBB

BC22:		lda	#12
BC24:		sta	$C0
		jsr	BCA8
BC29:		jsr	BD29
		jmp	BCBB

BC2F:		jsr	BCA8
		lda	#13
		jsr	BD2B
		jsr	BD00
		jmp	BD31

BC3D:		lda	#$26
		jsr	BC24
		lda	$34C,X
		ldy	$34D,X
		jsr	BD33
		jsr	BCAF
		lda	$34E,X
		jmp	BD31
BC54:		jsr	BCA8
		jsr	ABCD
		jsr	BCAF
		lda	FR0
		sta	$34C,X
		lda	FR0+1
		sta	$34D,X
		jsr	ABCD
		jsr	BCAF
		lda	FR0
		sta	$34E,X
		lda	#$25
		sta	$C0
		bne	BC29
BC78:		jsr	BCA8
		jsr	ABD7
		lda	FR0
		ldx	$C1
		jmp	BA9B
BC85:		jsr	DA51
		jsr	BCA8
BC8B:		lda	#7
		sta	$C0
		ldy	#1
		jsr	BD15
		jsr	BCBB
		ldy	#0
		lda	(INBUFF),Y
		jmp	BD31
BC9E:		jsr	BA0C
		ldx	#6
		jsr	BAC0
		bne	BC8B
BCA8:		jsr	BD07
		sta	$C1
		beq	BCB8
BCAF:		lda	$C1
		asl	A
		asl	A
		asl	A
		asl	A
		tax
		bpl	BD06
BCB8:		jsr	B90C
BCBB:		jsr	BD00
BCBE:		bpl	BD06
		ldy	#0
		sty	$2FE
		cmp	#$80
		bne	BCD2
		sty	BRKKEY
		lda	$CA
		beq	BD06
		jmp	A000

BCD2:		ldy	$C1
BCD3:		cmp	#$88
		beq	BCE7
BCD8:		sta	$B9
		cpy	#7
		bne	BCE1
		jsr	BCF7
BCE1:		jsr	BD5B
		jmp	B934
BCE7:		cpy	#7
		bne	BCD8
		ldx	#$5D
		cpx	$C2
		bne	BCD8
		jsr	BCF7
		jmp	A053
BCF7:		jsr	BCAF
		beq	BD06
		lda	#12
		bne	BD2B
BD00:		jsr	BCAF
		lda	ICSTA,X
BD06:		rts

BD07:		inc	$A8
BD09:		jsr	ABCD
		lda	FR0
		rts
BD0F:		ldy	#$FF
		bne	BD15
		ldy	#0
BD15:		lda	#0
BD17:		sta	ICBLH,X
		tya
		sta	ICBLL,X
BD1E:		lda	INBUFF+1
		ldy	INBUFF
		sta	ICBAH,X
		tya
		sta	ICBAL,X
BD29:		lda	$C0
BD2B:		sta	ICCOM,X
		jmp	CIOV
BD31:		ldy	#0
BD33:		pha
		tya
		pha
		jsr	AC06
		pla
		sta	FR0+1
		pla
		sta	FR0
		jsr	IFP
		jmp	AC0C

BD45:		lda	#0
		ldx	#7
BD49:		sta	$D200,X
		dex
		bne	BD49
		ldy	#7
		sty	$C1
BD53:		jsr	BCF7
		dec	$C1
		bne	BD53
		rts
BD5B:		lda	#0
		sta	$B4
		sta	$B5
		rts
BD62:		ldx	#6
BD64:		stx	CIX
		lda	BD72,X
		jsr	BA99
		ldx	CIX
		dex
		bpl	BD64
		rts

BD72:		.byte	$9B,"YDAER",$9B

BD79:		ldx	#0
		beq	BD64
BD7D:		jsr	AB90
		lda	FR0
		sta	INBUFF
		lda	FR0+1
		sta	INBUFF+1
		ldy	FR0+2
		ldx	FR0+3
		beq	BD90
		ldy	#$FF
BD90:		lda	(INBUFF),Y
		sta	$97
		sty	$98
		lda	#$9B
		sta	(INBUFF),Y
		sta	$92
		rts
BD9D:		ldy	$98
		lda	$97
		sta	(INBUFF),Y
		lda	#0
		sta	$92
		rts
BDA8:		jsr	B83E
		bcs	BDC8
		bne	BDA8
		jsr	BDCB
		cmp	#12
		beq	BDDA
		cmp	#$1E
		beq	BDDA
		cmp	#4
		beq	BDDA
		cmp	#$22
		beq	BDDA
BDC2:		jsr	B6F0
		jsr	B916
BDC8:		jsr	B914
BDCB:		jsr	B816
		bcs	BDC2
		ldy	$B2
		dey
		lda	(STMCUR),Y
		sta	$A7
		iny
		lda	(STMCUR),Y
BDDA:		rts
		ldx	$B4
		bne	BDED
		lda	#$9B
		jsr	BA99
BDE4:		ldx	$B4
		bne	BDED
		lda	$C2
		jsr	BA99
BDED:		ldx	$B4
		lda	#5
		jsr	BABE
		jsr	BD0F
		jmp	BCBB

BDFA:		jsr	ABFD
		jsr	AD26
		jmp	ABB2
BE03:		sec
		rts
BE05:		lda	#4
		bit	FR0
		bpl	BE11
		lda	#2
		bne	BE11
BE0F:		lda	#1
BE11:		sta	$F0
		lda	FR0
		and	#$7F
		sta	FR0
		lda	#$BD
		clc
		adc	$FB
		tax
		ldy	#$BE
		jsr	FLD1R
		jsr	FDIV
		bcc	BE2A
		rts
BE2A:		lda	FR0
		and	#$7F
		sec
		sbc	#$40
		bmi	BE5E
		cmp	#4
		bpl	BE03
		tax
		lda	FR0+1,X
		sta	$F1
		and	#$10
		beq	BE42
		lda	#2
BE42:		clc
		adc	$F1
		and	#3
		adc	$F0
		sta	$F0
		stx	$F1
		jsr	FMOVE
		ldx	$F1
		lda	#0
BE54:		sta	$E2,X
		inx
		cpx	#3
		bcc	BE54
		jsr	FSUB
BE5E:		lsr	$F0
		bcc	BE6F
		jsr	FMOVE
		ldx	#<BECF
		ldy	#>BECF
		jsr	FLD0R
		jsr	FSUB
BE6F:		ldx	#$E6
		ldy	#5
		jsr	FSTOR
		jsr	FMOVE
		jsr	FMUL
		bcs	BE03
		lda	#6
		ldx	#<BE9F
		ldy	#>BE9F
		jsr	PLYEVL
		ldx	#$E6
		ldy	#5
		jsr	FLD1R
		jsr	FMUL
		lsr	$F0
		bcc	BE9E
		clc
		lda	FR0
		beq	BE9E
		eor	#$80
		sta	FR0
BE9E:		rts

BE9F:		.byte	$BD,$03,$55,$14,$99,$39
		.byte	$3E,$01,$60,$44,$27,$52
		.byte	$BE,$46,$81,$75,$43,$55
		.byte	$3F,$07,$96,$92,$62,$39
		.byte	$BF,$64,$59,$64,$08,$67
		.byte	$40,$01,$57,$07,$96,$32	;  1.57079632
		.byte	$40,$90,$00,$00,$00,$00	; 90.00000000
BEC9:		.byte	$3F,$01,$74,$53,$29,$25
BECF:		.byte	$40,$01,$00,$00,$00,$00	;  1.00000000

BED5:		lda	#0
		sta	$F0
		sta	$F1
		lda	FR0
		and	#$7F
		cmp	#$40
		bmi	BEF8
		lda	FR0
		and	#%10000000
		sta	$F0
		inc	$F1
		lda	#%01111111
		and	FR0
		sta	FR0
		ldx	#<DFEA
		ldy	#>DFEA
		jsr	DE95
BEF8:		ldx	#$E6
		ldy	#5
		jsr	FSTOR
		jsr	FMOVE
		jsr	FMUL
		bcs	BF40
		lda	#11
		ldx	#<DFAE
		ldy	#>DFAE
		jsr	PLYEVL
		bcs	BF40
		ldx	#$E6
		ldy	#5
		jsr	FLD1R
		jsr	FMUL
		bcs	BF40
		lda	$F1
		beq	BF32
		ldx	#$F0
		ldy	#$DF
		jsr	FLD1R
		jsr	FADD
		lda	$F0
		ora	FR0
		sta	FR0
BF32:		lda	$FB
		beq	BF40
		ldx	#<BEC9
		ldy	#>BEC9
		jsr	FLD1R
		jsr	FDIV
BF40:		rts
BF41:		sec
		rts

BF43:		lda	#0
		sta	$F1
		lda	FR0
		bmi	BF41
		cmp	#$3F
		beq	BF66
		clc
		adc	#1
		sta	$F1
		sta	$E0
		lda	#1
		sta	$E1
		ldx	#4
		lda	#0
BF5E:		sta	$E2,X
		dex
		bpl	BF5E
		jsr	FDIV
BF66:		lda	#6
		sta	$EF
		ldx	#$E6
		ldy	#5
		jsr	FSTOR
		jsr	FMOVE
		ldx	#<BAF1
		ldy	#>BAF1
		jsr	FLD0R
		jsr	FSUB
		ldx	#$E6
		ldy	#5
		jsr	FLD1R
		jsr	FMUL
BF88:		ldx	#$EC
		ldy	#5
		jsr	FSTOR
		jsr	FMOVE
		ldx	#$E6
		ldy	#5
		jsr	FLD0R
		jsr	FDIV
		ldx	#$EC
		ldy	#5
		jsr	FLD1R
		jsr	FSUB
		ldx	#<DF6C
		ldy	#>DF6C
		jsr	FLD1R
		jsr	FMUL
		lda	FR0
		beq	BFC2
		ldx	#$EC
		ldy	#5
		jsr	FLD1R
		jsr	FADD
		dec	$EF
		bpl	BF88
BFC2:		ldx	#$EC
		ldy	#5
		jsr	FLD0R
		lda	$F1
		beq	BFF0
		sec
		sbc	#$40
		clc
		ror	A
		clc
		adc	#$40
		and	#$7F
		sta	$E0
		lda	$F1
		ror	A
		lda	#1
		bcc	BFE2
		lda	#$10
BFE2:		sta	$E1
		ldx	#4
		lda	#0
BFE8:		sta	$E2,X
		dex
		bpl	BFE8
		jsr	FMUL
BFF0:		rts

		.byte	0,0,0,0,0,0,0,0,0

BFFA:		.word	A000
BFFC:		.word	$500
BFFE:		.word	BFF0

		.end

