NEW
  AUTO 3,1
				.LIST OFF
*--------------------------------------
FN.BYTE
FN.CLOCK
FN.DATEd
FN.FLAG
FN.CHRd
FN.INSTR
FN.KEY
				lda #E.CSYN
				sec
				rts
*--------------------------------------
FN.LEN			jsr CORE.GetCharNB
				bcs .90

				cmp #'('
				bne .90

				jsr EXP.Eval
				bcs .99
				
				lda EXP.TYPE
				beq .91

				ldx #0

.1				lda CCODE.LEN,x
				jsr CODE.EmitByte
				inx
				cpx #CCODE.LEN.LEN
				bne .1

				stz EXP.TYPE

				clc
				rts
				
.90				lda #E.CSYN
				sec
				rts

.91				lda #E.TMISMATCH
				sec
.99				rts				
*--------------------------------------
FN.LEFTd		jsr CORE.GetCharNB
				bcs .90

				cmp #'('
				bne .90

				jsr CORE.GetNextCharNB	skip (
				bcs .90

				jsr EXP.Eval
				bcs .99
				
				lda EXP.TYPE
				beq .91

				jsr CORE.GetCharNB
				bcs .90
				
				cmp #','
				bne .90
				
				jsr CORE.GetNextCharNB	skip ,
				bcs .90

				jsr EXP.Eval
				bcs .99
				
				lda EXP.TYPE
				bne .91

				jsr CORE.GetCharNB
				bcs .90

				cmp #')'
				bne .90

				jsr CORE.GetNextCharNB	skip )

				ldx #0

.1				lda CCODE.LEFT,x
				jsr CODE.EmitByte
				inx
				cpx #CCODE.LEFT.LEN
				bne .1

				lda #'$'
				sta EXP.TYPE

				clc
				rts
				
.90				lda #E.CSYN
				sec
				rts

.91				lda #E.TMISMATCH
				sec
.99				rts	
*--------------------------------------
FN.MIDd
FN.PDL
FN.PEEK
FN.RANDOM
FN.RIGHTd
FN.RNDd
FN.STRd
FN.TIMEd
FN.VAL
FN.WHENd
FN.WIDTH
				lda #E.CSYN
				sec
				rts
*--------------------------------------
MAN
SAVE usr/src/bin/acos.s.fn
LOAD usr/src/bin/acos.s
ASM
