N SI34
;
; SYSTEMINITIALISIERUNG
;
; KONSTANTEN
KOANZ:	DEF	11	;ANZAHL KOMMANDOARGUMENTE
;
; MAKRODEFINITIONEN
CRLF:	MACR		;NEUE ZEILE
	DB	L(MC.ZBEG)	;
	DB	L(MC.DOWN)	;
	ENDM		;
;
; SYSTEMANLAUF
;
RES:	LD	HL,0	;3 K IN RAM UMLAGERN
	LD	D,H	;
	LD	E,L	;
	LD	BC,0C00H	;
	LDIR		;
	LD	A,01H	;RAM EINSCHALTEN
	OUT	IO.SPSCH	;
	LD	A,00DH	;STANDARD FUER SPEICHERDEFINITION
	LD	(RM.SPDEF),A	;
	LD	SP,MC.STACK	;STACKPOINTER SETZEN
	LD	A,H(IV.CTC80)	;I-REGISTER SETZEN
	LD	I,A	;
	IM2		;INTERRUPTMODE FESTLEGEN
	CALL	TA.TAINI	;TASTATURINITIALISIERUNG
	EI		;INTERRUPT FREIGEBEN
	LD	A,(00E00H)	;TEST AUF EIGENSTAENDIGES RESET-
	CMP	0C3H	;PROGRAMM (JMP AUF ADR 0E00)
	CAZ	00E00H	;JA, AUSFUEHREN
	CALL	CH.PCS	;EPROM PRUEFEN
RE1:	LD	HL,TXT2	;SPEICHERDEFINITION
	CALL	MC.TXS	;
	CALL	MC.BKL	;KURSOR NACH DE
	PUSH	DE	;UND RETTEN
	LD	A,(RM.SPDEF)	;SPEICHERDEFINITION
	CALL	MC.HBS	;
	POP	DE	;
	CALL	MC.HBA	;WERT LESEN
	JRC	RE1-#	;WENN NICHT MIT ENTER BESTAETIGT
	LD	(RM.SPDEF),A	;WERT ABSPEICHERN
	OUT	IO.SPSCH	;SPEICHER UMSCHALTEN
MEN:	LD	HL,TXT0	;MELDUNG
	CALL	MC.TXS	;
	LD	HL,CB.DATE	;DATUM AUSGEBEN
	CALL	MC.TXS	;
	LD	HL,MENUE	;AUSWAHL ANZEIGEN
	CALL	MC.TXS	;
	CALL	MC.BKL	;KURSORPOSITION NACH DE
	LD	C,1	;1 ZEICHEN EINGEBEN
	CALL	MC.BBZ	;
	CALL	MC.BSL	;ZEICHEN LESEN
	LD	HL,KOARG	;ADRESSE KOMMANDOARGUMENTE
	LD	BC,KOANZ	;ZAEHLER KOMMANDOARGUMENTE
	CPIR		;KOMMANDO SUCHEN
	JRNZ	MEN-#	;ZYKLUS, WENN NICHT GEFUNDEN
	LD	HL,KOADR+KOANZ+KOANZ-2	;EINSPRUNGTABELLE
	XOR	A	;CY=0
	SBC	HL,BC	;EINTRITTSPUNKT BERECHNEN
	SBC	HL,BC	;
	LD	E,(HL)	;ADRESSE NACH DE
	INC	HL	;
	LD	D,(HL)	;
	LD	HL,MEN	;RUECKKEHRADRESSE AUF STACK
	PUSH	HL	;
	EX	DE,HL	;EINTRITTSPUNKT NACH HL
	LD	A,MC.CLEAR	;BILDSCHIRM LOESCHEN
	CALL	MC.BSN	;
	JMP	(HL)	;PROGRAMM AUSFUEHREN
;
KOARG:	DB	'TZIORBXCPLS'	;KOMMANDOS
KOADR:	DA	MC.BBS	;TASTE AUF DISPLAY/STEUERFUNKTION
	DA	CH.CHARS	;ZEICHENSATZ DARSTELLEN
	DA	CH.INIT	;SPEICHER INITIALISIEREN
	DA	CE.OCE	;OBJEKT-KODE EDITOR
	DA	CM.MEM	;SPEICHERMODIFIKATION
	DA	4000H	;BASIC
	DA	CH.EXEC	;DIREKTSTART
	DA	CT.SELEC	;MAGNETBAND
	DA	CP.EPR	;EPROM
	DA	PR.PRA	;MC EINLESEN
	DA	CR.TEST	;RAM-TEST
MENUE:	DB	L(MC.DOWN+80H)	;
	CRLF		;
	DB	' T - Tastentest'
	CRLF		;
	DB	' Z - Charaktersatz'
	CRLF		;
	DB	' I - Speicher loeschen'
	CRLF		;
	DB	' O - Objektkodeeditor'
	CRLF		;
	DB	' R - Speichermodifikation'
	CRLF		;
	DB	' B - Basic'
	CRLF		;
	DB	' X - Direktstart'
	CRLF		;
	DB	' C - Kassettenmagnetband'
	CRLF
	DB	' P - ROM-Behandlung'
	CRLF
	DB	' L - Lochband'
	CRLF
	DB	' S - RAM-Test'
	CRLF		;
	CRLF		;
	DB	' Auswahl:'
TXT0:	DB	L(MC.CLEAR+80H)	;
	DB	'MCS 80  Version'	;
TXT2:	DB	L(MC.CLEAR+80H)	;
	DB	'Speicherdefinition: '	;
	DB	080H	;
;
	END

