TITLE LOGICGEN.MAC 08-29-84 18:25:00
.Z80
	ASEG
	ORG 100H
;
PROMPT:
	CALL PRINT
	DB 'RUN or SET or DUMP ',0
	CALL INBUF
	CP 'S'
	JP Z,SETMEM
	CP 'R'		; RUN
	JP Z,RUN
	CP 'D'
	CALL Z,DUMPI
	JR PROMPT
;
SETMEM:			; PRINT ADDRESS AND WAIT
			; FOR INPUT.
			; EXIT ON TIME = 00
			; GET DATA IN HEX
			; GET TIME IN DEC
			; TIME IN 5uS INCREMENTS
			; MIN = 15uS
	CALL NLDHL	; SEE IF ADDRESS PRESSENT
	JR NC,ADDS
			; NO USE START
	LD HL,MEMST
ADDS:
	LD (INPTR),HL
LOOP:
	CALL PRINT
	DB 'ENTER DATA, TIME IN 5uS INCREMENTS ',0
	LD HL,(INPTR)
	CALL PRRP	; PRINT ADDRESS WITH SP
	CALL INBUF
	CALL HEX_M	; GET DATA
	JR C,PROMPT	; BACK TO PROMPT WAY OUT
	LD HL,(INPTR)
	LD (HL),A
	INC HL
	PUSH HL
	CALL FFDEC	; GET TIME
	POP HL
	JR C,LOOP	; ERROR
	LD (HL),A	; STORE 00 END FLAG
	OR A
	JP Z,PROMPT	; END
;
	CP 3		; MUST BE MORE THAN 3
	JP C,LOOP
	SUB 2
	LD (HL),A
	INC HL
	LD (INPTR),HL
	JP LOOP
;
RUN:			; SEND FIRST BYTE TO
			; 8FH PRINTER PORT
			; COUNT 2ND BYTE
	LD C,8FH
	LD HL,MEMST
	JR START
;
ADEC:
	NOP		; 4
	DEC A		; 4
	JR NZ,ADEC	; 12
;
start:
	OUTI		; 16
	LD A,(HL)	;  7
	INC HL		;  6
	OR A		;  4 TEST FOR END
	JR NZ,ADEC
	JP PROMPT
;
INPTR:	DW	MEMST
;
	EXTERNAL DUMPI
	EXTERNAL FFDEC
	EXTERNAL HEX_M
	EXTERNAL INBUF
	EXTERNAL NLDHL
	EXTERNAL PRINT
	EXTERNAL PRRP
;
MEMST	EQU 0800H
;
;
	END
