⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 z.asm

📁 holtek mouse .asm firewave
💻 ASM
字号:
;		SNZ		TIMER_COUNT.0
;		JMP		NOT_Z_CHECK
;		SNZ		TIMER_COUNT.1
;		JMP		NOT_Z_CHECK
;		SNZ		TIMER_COUNT.2
;		JMP		NOT_Z_CHECK
;		SNZ		TIMER_COUNT.3
;		JMP		NOT_Z_CHECK
;		SNZ		TIMER_COUNT.4
;		JMP		NOT_Z_CHECK
;		;SNZ		TIMER_COUNT.5
;		;JMP		NOT_Z_CHECK
;
;		;SZ		Z_WHEEL
;		;JMP		NOT_Z_CHECK
;
;		CLR		Z_STATUS
;
;		SZ		PA.5
;		SET		Z_STATUS.0
;		SZ		PA.6
;		SET		Z_STATUS.1		
;
;		MOV		A, 0
;		XOR		A, OLD_Z
;		SZ		ACC
;		JMP		CHECK_IF_11
;
;		MOV		A, 1
;		XOR		A, Z_STATUS
;		SZ		ACC
;		JMP		CHECK_IF_N10
;
;		JMP		Z_UP
;
;	CHECK_IF_N10:
;		MOV		A, 2
;		XOR		A, Z_STATUS
;		SZ		ACC
;		JMP		EXIT_Z_CHECK
;
;		JMP		Z_DN
;
;
;	CHECK_IF_11:
;		MOV		A, 3
;		XOR		A, OLD_Z
;		SZ		ACC
;		JMP		EXIT_Z_CHECK
;
;		MOV		A, 1
;		XOR		A, Z_STATUS
;		SZ		ACC
;		JMP		CHECK_IF_N110
;
;		JMP		Z_DN
;
;	CHECK_IF_N110:
;		MOV		A, 2
;		XOR		A, Z_STATUS
;		SZ		ACC
;		JMP		EXIT_Z_CHECK
;
;		JMP		Z_UP
;
;	Z_DN:
;		SET		Z_WHEEL.0
;		SET		MOVEMENT.1
;		JMP		EXIT_Z_CHECK
;
;	Z_UP:
;		SET		Z_WHEEL
;		SET		MOVEMENT.1
;
;	EXIT_Z_CHECK:
;		MOV		A, Z_STATUS
;		MOV		OLD_Z, A

;		MOV		A, TIMER_COUNT
;		AND		A, 003H
;		XOR		A, 002H
;		SZ		ACC
;		JMP		CHECK_IF_ZERO
;
;		CLR		Z_STATUS
;	
;		SZ		PA.5
;		SET		Z_STATUS.0
;		SZ		PA.6
;		SET		Z_STATUS.1

		SZ		TIMER_COUNT.0
		JMP		NOT_Z_CHECK;NOT_PUSH

		CLR		STABLE

		RL		FS
		RL		BS
		CLR		FS.0
		CLR		BS.0

		SZ		PA.5
		SET		FS.0
		SZ		PA.6
		SET		BS.1

		MOV		A, 0FFH
		XOR		A, FS
		SZ		ACC
		JMP		IF_FS_ALL_ZERO

		SET		Z_STATUS.0
		SET		STABLE.0		

	IF_FS_ALL_ZERO:
		CLR		ACC
		XOR		A, FS
		SZ		ACC
		JMP		IF_BS_ALL_ONE

		CLR		Z_STATUS.0
		SET		STABLE.0

	IF_BS_ALL_ONE:
		MOV		A, 0FFH
		XOR		A, BS
		SZ		ACC
		JMP		IF_BS_ALL_ZERO

		SET		Z_STATUS.1
		SET		STABLE.1

	IF_BS_ALL_ZERO:
		CLR		ACC
		XOR		A, BS
		SZ		ACC
		JMP		IF_STABLE

		CLR		Z_STATUS.1
		SET		STABLE.1

	IF_STABLE:
		MOV		A, 3
		XOR		A, STABLE
		SZ		ACC
		JMP		NOT_STABLE

		MOV		A, Z_STATUS
		SZ		ACC
		JMP		IF_11_UPDATE
		JMP		UPDATE_Z

	IF_11_UPDATE:
		MOV		A, 3
		XOR		A, Z_STATUS
		SZ		ACC
		JMP		NOT_PUSH

	UPDATE_Z:
		CLR		OLD_Z

		SZ		Z_STATUS.1
		SET		OLD_Z.0
		SZ		Z_STATUS.0
		SET		OLD_Z.1

	NOT_PUSH:

		MOV		A, OLD_Z
		RL		ACC
		RL		ACC
		OR		A, Z_STATUS
		MOV		Z_COMBINE, A

		MOV		A, 1
		XOR		A, Z_COMBINE
		SZ		ACC
		JMP		CHECK_IF_7

		JMP		B_STEP

	CHECK_IF_7:		

		MOV		A, 7
		XOR		A, Z_COMBINE
		SZ		ACC
		JMP		CHECK_IF_8

		JMP		B_STEP

	CHECK_IF_8:		

		MOV		A, 8
		XOR		A, Z_COMBINE
		SZ		ACC
		JMP		CHECK_IF_E

		JMP		B_STEP

	CHECK_IF_E:		

		MOV		A, 00EH
		XOR		A, Z_COMBINE
		SZ		ACC
		JMP		CHECK_IF_2

		JMP		B_STEP

	CHECK_IF_2:		

		MOV		A, 2
		XOR		A, Z_COMBINE
		SZ		ACC
		JMP		CHECK_IF_4

		JMP		F_STEP

	CHECK_IF_4:		

		MOV		A, 4
		XOR		A, Z_COMBINE
		SZ		ACC
		JMP		CHECK_IF_B

		JMP		F_STEP

	CHECK_IF_B:		

		MOV		A, 00BH
		XOR		A, Z_COMBINE
		SZ		ACC
		JMP		CHECK_IF_D

		JMP		F_STEP

	CHECK_IF_D:		

		MOV		A, 00DH
		XOR		A, Z_COMBINE
		SZ		ACC
		JMP		NOT_Z_CHECK

	F_STEP:
		SET		Z_WHEEL.0
		SET		MOVEMENT.1

;		CLR		OLD_Z

;		SZ		Z_STATUS.0
;		SET		OLD_Z.0
;		SZ		Z_STATUS.1
;		SET		OLD_Z.1

		JMP		NOT_Z_CHECK

	B_STEP:
		SET		Z_WHEEL
		SET		MOVEMENT.1

;		CLR		OLD_Z

;		SZ		Z_STATUS.0
;		SET		OLD_Z.0
;		SZ		Z_STATUS.1
;		SET		OLD_Z.1


		JMP		NOT_Z_CHECK

	NOT_STABLE:

;	CHECK_IF_ZERO:
;		MOV		A, TIMER_COUNT
;		AND		A, 00FH
;		XOR		A, 000H
;		SZ		ACC
;		JMP		NOT_Z_CHECK
;
;		CLR		OLD_Z
;	
;		SZ		PA.5
;		SET		OLD_Z.0
;		SZ		PA.6
;		SET		OLD_Z.1

	NOT_Z_CHECK:
	
	
=====================================================================================
		SZ		TIMER_COUNT.0
		JMP		NOT_Z_CHECK

		RL		FS
		CLR		FS.0
		RL		BS
		CLR		BS.0

		SZ		PA.6
		SET		FS.0
		SZ		PA.5
		SET		BS.0

		MOV		A, 0FFH
		XOR		A, FS
		SZ		ACC
		JMP		IF_FS_ALL_ZERO

		SET		Z_TEMP.0
		SET		STABLE.0		

	IF_FS_ALL_ZERO:
		CLR		ACC
		XOR		A, FS
		SZ		ACC
		JMP		IF_BS_ALL_ONE

		CLR		Z_TEMP.0
		SET		STABLE.0

	IF_BS_ALL_ONE:
		MOV		A, 0FFH
		XOR		A, BS
		SZ		ACC
		JMP		IF_BS_ALL_ZERO

		SET		Z_TEMP.1
		SET		STABLE.1

	IF_BS_ALL_ZERO:
		CLR		ACC
		XOR		A, BS
		SZ		ACC
		JMP		IF_STABLE

		CLR		Z_TEMP.1
		SET		STABLE.1

	IF_STABLE:
		MOV		A, 3
		XOR		A, STABLE
		SZ		ACC
		JMP		NOT_Z_CHECK

		MOV		A, 3
		XOR		A, Z_TEMP
		SZ		ACC
		JMP		CHECK_IF_ALL_ZERO

		SET		OLD_Z.0
		SET		OLD_Z.1
		JMP		NOT_Z_CHECK

	CHECK_IF_ALL_ZERO:
		MOV		A, Z_TEMP
		SZ		ACC
		JMP		NOT_UPDATE_OLDZ

		CLR		OLD_Z

		JMP		NOT_Z_CHECK

	NOT_UPDATE_OLDZ:
		MOV		A, OLD_Z
		RL		ACC
		RL		ACC
		OR		A, Z_TEMP
		MOV		Z_COMBINE, A

		MOV		A, 1
		XOR		A, Z_COMBINE
		SZ		ACC
		JMP		CHECK_E

		JMP		Z_UP

	CHECK_E:
		MOV		A, 00EH
		XOR		A, Z_COMBINE
		SZ		ACC
		JMP		CHECK_2

		JMP		Z_UP

	CHECK_2:
		MOV		A, 002H
		XOR		A, Z_COMBINE
		SZ		ACC
		JMP		CHECK_D

		JMP		Z_DN

	CHECK_D:
		MOV		A, 00DH
		XOR		A, Z_COMBINE
		SZ		ACC
		JMP		NOT_Z_CHECK

	Z_DN:
		SET		Z_WHEEL
		SET		MOVEMENT.1

		JMP		NOT_Z_CHECK		

	Z_UP:
		SET		Z_WHEEL.0
		SET		MOVEMENT.1
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -