	.PREL
	.IDENT	STDBAS
	.INSERT	HVG.LIB
	.INSERT	MACRO.LIB
	.INSERT	BBEQU.ASM
	.RELOC
GOTO::	RSTEXP
	PUSH	D
	CALL	FNDLN#
	JNZ	AHOW#
	POP	PSW
	JMP	RUNTSL#
; LIST AND PRINT
; NEW - IMPROVED LIST COMMAND
; LETS YOU PUT IT IN A PROGRAM
LIST::	LXI	H,0	; ASSUME AT EOL
	RSTIGN	; IGNORE
	CALL	ATNL#
	JRZ	LS3
	CPI	','	; LEADING COMMA?
	JRZ	LS3	; YEP - SKIP FIRST	EXPR GET
; NOT AT END - GET FIRST	EXPR
LS2:	RSTEXP
LS3:	PUSH	H
	LXI	H,0FFFFH
	TSTCC	COMMA,LS4
	RSTEXP
LS4:	PUSH	D
	POP	Y
	XTHL	
	CALL	FNDLN#
LS5:	JRC	LSQUIT
	XTHL	
	MOV	A,H
	ORA	L
	JRZ	LSQUIT
	DCX	H
	XTHL	
	CALL	PRTLN#
	CALL	PRTSTG#
	CALL	WHATSU#
	CALL	FNDLP#
	JMPR	LS5
LSQUIT:	PUSH	Y
	POP	D
	RSTFIN
PRINT::	MVI	C,8
	TSTCC	59,PR1
	CALL	CRLF#
	JMP	RUNSML#
PR1:	TSTCC   CR,PR6
	CALL	CRLF#
	JMP	RUNNXL#
PR2:	TSTC    '#',PR4
PR3:	RSTEXP
	MVI	A,0C0H
	ANA	L
	ORA	H
	JNZ	QHOW#
	MOV	C,L
	JMPR	PR5
PR4:	CALL	QTSTG
	JMPR	PR9
PR5:	TSTCC	COMMA,PR8
PR6:	TSTCC	COMMA,PR7
	MVI	A,' '
	RSTOCH
	JMPR	PR6
PR7:	CALL	FIN#
	JMPR	PR2
PR8:	CALL	CRLF#
	RSTFIN
PR9:	RSTEXP
	PUSH	B
	CALL	PRTNUM#
	POP	B
	JMPR	PR5
; GOSUB AND RETURN
GOSUB::	CALL	PUSHA
	RSTEXP
	PUSH	D
	CALL	FNDLN#
	JNZ	AHOW#
	LHLD	CURRNT#
	PUSH	H
	LHLD	STKGOS#
	PUSH	H
	LXI	H,0
	SHLD	LOPVAR#
	DAD	SP
	SHLD	STKGOS#
	JMP	RUNTSL#
RETURN:: LHLD	STKGOS#
	MOV	A,H
	ORA	L
	JZ	QWHAT#
	SPHL	
RESTO:	POP	H
	SHLD	STKGOS#
	POP	H
	SHLD	CURRNT#
	POP	D
	CALL	POPA
	RSTFIN
; FOR AND NEXT
FOR::	CALL	PUSHA
	CALL	SETVAL#
	DCX	H
	SHLD	LOPVAR#
	LXI	H,TAB4	; LOOK FOR 'TO'
	JMP	EXEC#
FR1:	RSTEXP
	SHLD	LOPLMT#
	LXI	H,TAB5	; CHECK FOR STEP
	JMP	EXEC#
FR2:	RSTEXP
	JMPR	FR4
FR3:	LXI	H,1	; DEFAULT STEPSIZE
FR4:	SHLD	LOPINC	#
	LHLD	CURRNT#
	SHLD	LOPLN#
	XCHG	
	SHLD	LOPPT#
	LXI	B,10
	LHLD	LOPVAR#
	XCHG	
	MOV	H,B
	MOV	L,B
	DAD	SP
	JMPR	FR6
FR5:	DAD	B
FR6:	MOV	A,M
	INX	H
	ORA	M
	JRZ	FR7
	MOV	A,M
	DCX	H
	CMP	D
	JRNZ	FR5
	MOV	A,M
	XRA	E
	JRNZ	FR5
	XCHG	
	MOV	H,A
	MOV	L,A
	DAD	SP
	MOV	B,H
	MOV	C,L
	LXI	H,10
	DAD	D
	CALL	HKMVD#
	SPHL	
FR7:	LHLD	LOPPT#
	XCHG	
	RSTFIN
; SEARCH TABLES FOR FOR COMMAND
TAB4:	TOKEN	77H,FR1
	ITEM	'TO',FR1
	TOKEN	7FH,QWHAT#
TAB5:	TOKEN	75H,FR2
	ITEM	'STEP',FR2
	TOKEN	7FH,FR3
NEXT::	CALL	TSTV#
	JC	QWHAT#
	SHLD	VARNXT#
NX1:	PUSH	D
	XCHG	
	LHLD	LOPVAR#
	MOV	A,H
	ORA	L
	JZ	AWHAT#
	CALL	COMP#
	JRZ	NX2
	POP	D
	CALL	POPA
	LHLD	VARNXT#
	JMPR	NX1
NX2:	XCHG	
	LDAX	D
	MOV	L,A
	INX	D
	LDAX	D
	MOV	H,A
	XCHG	
	LHLD	LOPINC	#
	PUSH	H
	MOV	A,H
	XRA	D
	MOV	A,D
	DAD	D
	JM	NX3
	XRA	H
	JM	NX5
NX3:	XCHG	
	LHLD	LOPVAR#
	MOV	A,E
	MOV	M,A
	INX	H
	MOV	A,D
	MOV	M,A
	LHLD	LOPLMT#
	POP	PSW
	ORA	A
	JP	NX4
	XCHG	
NX4:	CALL	CKHLDE#
	POP	D
	JRC	NX6
	LHLD	LOPLN#
	SHLD	CURRNT#
	LHLD	LOPPT#
	XCHG	
	RSTFIN
NX5:	POP	H
	POP	D
NX6:	CALL	POPA
	RSTFIN
; REM, IF, INPUT, LET
REM::	LXI	H,0
	JMPR	IF1
IFF::	RSTEXP
IF1:	MOV	A,H
	ORA	L
	JNZ	RUNSML#
	CALL	FNDSKP#
	JNC	RUNTSL#
	JMP	RSTART#
INPERR:: LHLD	STKINP#
	SPHL	
	POP	H
	SHLD	CURRNT#
	POP	D
	POP	D
INPUT	==:	.
IP1:	PUSH	D
	CALL	QTSTG#
	JMPR	IP8
IP2:	CALL	TSTV#
	JRC	IP5
IP3:	CALL	IP12
	LXI	D,BUFFER#
	RSTEXP
	POP	D
	XCHG	
	MOV	A,E
	MOV	M,A
	INX	H
	MOV	A,D
	MOV	M,A
IP4:	POP	H
	SHLD	CURRNT#
	POP	D
IP5:	POP	PSW
IP6:	TSTCC	COMMA,IP7
	JMPR	INPUT
IP7:	RSTFIN
IP8:	PUSH	D
	CALL	TSTV#
	JRNC	IP11
IP10:	JMP	QWHAT#
IP11:	MOV	B,E
	POP	D
	CALL	PRTCHS#
	JMPR	IP3
IP12:	POP	B
	PUSH	D
	XCHG	
	LHLD	CURRNT#
	PUSH	H
	LXI	H,IP1
	SHLD	CURRNT#
	LXI	H,0
	DAD	SP
	SHLD	STKINP#
	PUSH	D
	PUSH	B
	MVI	A,' '
	JMP	GETLN#
DEFLT::	LDAX	D
	CPI	CR
	JRZ	IP7
	JMP	QWHAT#
POPA:	POP	B
	POP	H
	SHLD	LOPVAR#
	MOV	A,H
	ORA	L
	JRZ	PP1
	POP	H
	SHLD	LOPINC#
	POP	H
	SHLD	LOPLMT#
	POP	H
	SHLD	LOPLN#
	POP	H
	SHLD	LOPPT#
PP1:	PUSH	B
	RET
PUSHA:	LXI	H,STKLMT#
	POP	B
	ANA	A
	DSBC	SP
	JNC	QSORRY#
	LHLD	LOPVAR#
	MOV	A,H
	ORA	L
	JRZ	PU1
	LHLD	LOPPT#
	PUSH	H
	LHLD	LOPLN#
	PUSH	H
	LHLD	LOPLMT#
	PUSH	H
	LHLD	LOPINC	#
	PUSH	H
	LHLD	LOPVAR#
PU1:	PUSH	H
	PUSH	B
	RET
	.END
                                  