;LED応用3-2(簡易2進4bit計算機・除算+余の導出機能付)
;動作未確認
	ORG	8000H

PORT_A	EQU	004H
PORT_B	EQU	005H
PORT_C	EQU	006H
CTRL_P	EQU	007H

MODE	EQU	098H

LED_NUM	EQU	00FH
LED_DEV	EQU	080H
LED_EQL	EQU	010H


START:
	LD	A, MODE
	OUT	(CTRL_P), A

RESET:
	IN	A, (PORT_A)
	OR	00H
	JP	NZ, RESET
	OUT	(PORT_B), A

GET_DEV:
	IN	A, (PORT_A)
	AND	LED_DEV
	JP	Z, RESET
	
GET_N1:
	IN	A, (PORT_A)
	AND	LED_NUM
	LD	B, A

CLEAR:
	IN	A, (PORT_A)
	AND	LED_DEV
	JP	Z, RESET

EQUAL:
	IN	A, (PORT_A)
	AND	LED_EQL
	JP	Z, CLEAR

GET_N2:
	IN	A, (PORT_A)
	AND	LED_NUM
	LD	H, A

CAL_DEV:
	LD	A, B
	LD	L, A

CAL_DEV1:
	SUB	H
	JP	M, CAL_DEV3
	INC	D
	JP	NZ, CAL_DEV1	

CAL_DEV2:
	RL	D
	RL	D
	RL	D
	RL	D
	LD	A, D

	JP	RESULT

CAL_DEV3:
	LD	A, H
	DEC	D

CAL_DEV4:
	ADD	A, H
	LD	B, A

	DEC	D
	JP	NZ, CAL_DEV4

	LD	A, L
	SUB	B

	RL	D
	RL	D
	RL	D
	RL	D
	ADD	A, D

	JP	RESULT

RESULT:
	OUT	(PORT_B), A
	JP	RESET

	END