;:sys36864
	;.opt oo,p
;
; eval routine c 64 by nicki heusler
; -nh-230186-
; speziell fuer m. bochtler
; syntax = sys 52222,variable
; die variable muss vom typ real
; (also nicht $ oder %, sondern
; z.b. sys 52222,x) sein. nach dem
; sys befehl, der auch im programm
; stehen darf, kann mit dem cursor
; ein wert eingegeben werden, der
; nicht nur zahlen, sondern auch
; variablen und rechenzeichen ent-
; halten darf. nach druck auf return
; bekommt die variable den wert des
; eingegebenen ausdrucks.
; fuer c 64 oder c 128 (64er modus)
;
input	= $a560 	; zeile holen
chrget	= 115 	; zeichen lesen
chrptr	= 122 	; zeiger auf eingabe
frmnum	= $ad8a 	; ausdruck auswerten
komma	= $aefd 	; komma nach sys holen
adr1	= $49 	; zeiger auf variable
adr2	= $47
descr	= 251 	; speicher
crunch	= $a579 	; eingegebene zeile codieren
facvar	= $bbd0 	; fac nach variable
suchvar	= $b08b 	; variable holen
testnum	= $ad8d 	; auf real testen
	*= 52222 	; startadresse
init	jsr komma 	; komma holen
	jsr suchvar 	; variable holen
	jsr testnum 	; numerisch testen
	lda adr2 	; adresse speichern
	sta descr
	lda adr2+1
	sta descr+1
	jsr input 	; eingabe erwarten
	lda chrptr 	; zeiger auf basic merken
	pha
	lda chrptr+1
	pha
	stx chrptr 	; zeiger setzen
	sty chrptr+1
	jsr chrget 	; flags setzen
	jsr crunch 	; zeile codieren
	ldx #$ff 	; zeiger neu setzen
	ldy #1
	stx chrptr
	sty chrptr+1
	jsr chrget
	jsr frmnum 	; ausdruck ausrechnen
	pla 	; zeiger zurueckholen
	sta chrptr+1
	pla
	sta chrptr
	lda descr 	; var. adresse holen
	sta adr1
	lda descr+1
	sta adr1+1
	jmp facvar 	; wert an variable
; ende
