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

📄 key.lst

📁 calculator code ,use toshibaor nec LSI
💻 LST
📖 第 1 页 / 共 5 页
字号:
  00000008                       +0  623    623 RET_IC		equ	0y00001000	;V1.23return for IC key
  00000007                       +0  624    624 SCAN_IC		equ	0x07		;V1.23 scan for IC key
  00000001                       +0  625    625 RET_RATE	equ	0y00000001	;return for RATE key
  00000004                       +0  626    626 RETV1205_RATE	equ	0y00000100	;V1.28
  0000000A                       +0  627    627 SCAN_RATE	equ	0x0a		;scan for RATE key
  00000005                       +0  628    628 SCANV1205_RATE	equ	0x05		;V1.28
  00000001                       +0  629    629 RET_FEED	equ	0y00000001	;return for FEED key
  0000000B                       +0  630    630 SCAN_FEED	equ	0x0b		;scan for FEED key
  00000008                       +0  631    631 RET_SET		equ	0y00001000	;return for set(time) key
  0000000A                       +0  632    632 SCAN_SET	equ	0x0a		;scan for set(time) key
  00000003                       +0  633    633 COLOR		equ	3
                                 +0  634    634 ;==============================================================================
                                 +0  635    635 ;		Key scan interrupt (set 800us interval for TC4)
                                 +0  636    636 ;==============================================================================
00000000                         +0  637    637 init_scan:
00000000  0A0000               R +0  638    638 		ld	(P9DR),0y00000000	;data latch to 0 (for initial value)
00000003  E000663F             R +0  639    639 		or	(P1DR),0y00111111	;
00000007  0A0000               R +0  640    640 		ld	(P5CR),0y00000000	;
0000000A  0A0000               R +0  641    641 		ld	(P5DR),0y00000000	;set P50-P53 as input port
                                 +0  642    642 ;T4CR: bit7(TFF4) bit654(TC4CK) bit3(TC4S) bit210(TC4M)
0000000D  CA00                 R +0  643    643 		clr	(ILH).IL10			;clear TC4 interrupt flag
0000000F  0A0064               R +0  644    644 		ld	(TC4DR),100			;16MHz/2^7/100 = 125Hz(800us)
00000012  C83A                   +0  645    645 		di				;V2.05
00000014  C200                 R +0  646    646 		set	(EIRH).EF10			;TC4 interrupt enable
00000016  C03A                   +0  647    647 		ei				;V2.05
00000018  0A0004               R +0  648    648 		ld	(TC4CR),0y00000100
0000001B  0A0024               R +0  649    649 		ld	(TC4CR),0y00100100		;TC4S=1(count start) TC4CK=001(select fc/2^7) TC4M=000(select 8bittimer mode)
0000001E  FA                     +0  650    650 		ret
                                 +0  651    651 
                                 +0  652    652 ;==============================================================================
                                 +0  653    653 ;		Initialize key buffer pointer, counter
                                 +0  654    654 ;==============================================================================
0000001F                         +0  655    655 init_keybuf:
0000001F  C83A                   +0  656    656 		di
00000021  F10000F900           R +0  657    657 		ld	(KEY_CT),0	;key counter clear
00000026  F10000F900           R +0  658    658 		ld	(KEY_WPTR),0	;key bufeer write pointer clear
0000002B  F10000F900           R +0  659    659 		ld	(KEY_RPTR),0	;key buffer read pointer clear
00000030  C03A                   +0  660    660 		ei
00000032  FA                     +0  661    661 		ret
                                 +0  662    662 
                                 +0  663    663 ;==============================================================================
                                 +0  664    664 ;		Get key code from key buffer
                                 +0  665    665 ;		out: reg.a <- key code
                                 +0  666    666 ;		     KEYIN <- key code
                                 +0  667    667 ;		     c clear: illegal key
                                 +0  668    668 ;		use register:	c,hl
                                 +0  669    669 ;==============================================================================
00000033                         +0  670    670 key_get:
00000033  E1000042             R +0  671    671 		ld	c,(KEY_RPTR)	;key buffer read pointer-->c
00000037  4B0000               R +0  672    672 		ld	hl,KEY_BUF	;key buffer start address-->hl
0000003A  E740                   +0  673    673 		ld	a,(hl+c)	;key code wanted-->a
0000003C  F1000078             R +0  674    674 		ld	(KEYIN),a	;key code in a-->register KEYIN
00000040  22                     +0  675    675 		inc	c		;prepared for next key code
00000041  EA643F                 +0  676    676 		and	c,0x3f		;\recycle KEY_RPTR in key buffer(3fh)
00000044  F100007A             R +0  677    677 		ld	(KEY_RPTR),c	;/
00000048  E10000F8             R +0  678    678 		dec	(KEY_CT)	;key counter decrease one
0000004C  6730                   +0  679    679 		cmp	a,K_MAX		;over the max key code? no, set c is OK
0000004E  FA                     +0  680    680 		ret
                                 +0  681    681 
                                 +0  682    682 ;==============================================================================
                                 +0  683    683 ;		and update MDFLG,DP_POS from MDFLG_RT,DP_POS_RT
                                 +0  684    684 ;==============================================================================
                                 +0  685    685 ;MDFLG_0:
                                 +0  686    686 ;SW_DP0	;SW_DP1;SW_DP2;SW_DP3;SW_DP4;SW_DP5;SW_DP6;SW_ADM
                                 +0  687    687 ;MDFLG_1:
                                 +0  688    688 ;SW_SGT,SW_SGM,SW_SGG,SW_SGK,SW_GT,SW_MGT,SW_RNDUP,SW_RND54
                                 +0  689    689 ;MDFLG_2:
                                 +0  690    690 ;SW_SG,SW_ICPM,SW_IC,SW_NP,SW_OFF,SW_AC,SW_V15,SW_FEED,SW_A,SW_M2,SW_AMZ
                                 +0  691    691 ;MDFLG_3:
                                 +0  692    692 ;SW_DTST,SW_ADM12,SW_EUTX,SW_D14,SW_D10,SW_TA,SW_M2,SW_FIN
                                 +0  693    693 ;MDFLG_01:no use
                                 +0  694    694 ;MDFLG_11:no use
                                 +0  695    695 ;MDFLG_21:no use
                                 +0  696    696 ;------------------------------------------
                                 +0  697    697 ;===========================================================
0000004F                         +0  698    698 update_md:
0000004F  E1000040             R +0  699    699 		ld	a,(MDFLG_RT0)	;
00000053  0E00                 R +0  700    700 		ld	(MDFLG_0),a
00000055  E1000040             R +0  701    701 		ld	a,(MDFLG_RT1)	;
00000059  0E00                 R +0  702    702 		ld	(MDFLG_1),a	
0000005B  E1000040             R +0  703    703 		ld	a,(MDFLG_RT2)	;
0000005F  0E00                 R +0  704    704 		ld	(MDFLG_2),a	
00000061  E1000040             R +0  705    705 		ld	a,(MDFLG_RT3)	;
00000065  0E00                 R +0  706    706 		ld	(MDFLG_3),a
00000067  0C00                 R +0  707    707 		ld	a,(DP_POS_RT)	;
00000069  0E00                 R +0  708    708 		ld	(DP_POS),a
0000006B  480000               R +0  709    709 	ld	wa,M_FX_SGM
0000006E  E10000FC             R +0  710    710 	test	(M_FX_SGM>>4).a		;bit -reverse-> jump status
00000072  86                     +0  711    711 	j	t,to_fix_ac		;if jump status is 1 -> branch
00000073                         +0  712    712 to_fix_sgm:					;V2.06
00000073  480000               R +0  713    713 	ld	wa,SW_SGM
00000076  E10000F2             R +0  714    714 	set	(SW_SGM>>4).a
                                 +0  715    715 		
0000007A                         +0  716    716 to_fix_ac:
0000007A  480000               R +0  717    717 	ld	wa,M_FX_AC
0000007D  E10000FC             R +0  718    718 	test	(M_FX_AC>>4).a		;bit -reverse-> jump status
00000081  86                     +0  719    719 	j	t,to_fix_m14		;if jump status is 1 -> branch
00000082  480000               R +0  720    720 	ld	wa,SW_AC
00000085  E10000F2             R +0  721    721 	set	(SW_AC>>4).a
00000089                         +0  722    722 to_fix_m14:
00000089  480000               R +0  723    723 	ld	wa,M_FX_M14
0000008C  E10000FC             R +0  724    724 	test	(M_FX_M14>>4).a		;bit -reverse-> jump status
00000090  86                     +0  725    725 	j	t,to_fix_54		;if jump status is 1 -> branch
00000091  480000               R +0  726    726 	ld	wa,M14
00000094  E10000F2             R +0  727    727 	set	(M14>>4).a
00000098                         +0  728    728 to_fix_54:					;V2.06
                                 +0  729    729 ;V3.00		@BBC	(M_FX_54,to_fix_sd)	;V2.06
                                 +0  730    730 ;V3.00		@SEB	(SW_RND54)		;V2.06
                                 +0  731    731 ;V3.00to_fix_sd:					;V2.06
                                 +0  732    732 ;V3.00		@BBC	(M_FX_SD,to_set_icpm)	;V2.06
                                 +0  733    733 ;V3.00		@SEB	(SW_DTST)		;V2.06
                                 +0  734    734 ;V3.00to_set_icpm:
                                 +0  735    735 ;V3.00		@BBC	(SW_V15,to_fix_end)	;V2.07
                                 +0  736    736 ;V3.00		@BBC	(F_ICPM,to_set_icpm_1)	;V2.07 to set IC_PM
                                 +0  737    737 ;V3.00		@SEB	(SW_ICPM_RT)		;V2.07
                                 +0  738    738 ;V3.00		@SEB	(SW_ICPM)		;V2.07
                                 +0  739    739 ;V3.00		jp	to_fix_end		;V2.07
                                 +0  740    740 ;V3.00to_set_icpm_1:
                                 +0  741    741 ;V3.00		@CLB	(SW_ICPM_RT)		;V2.07
                                 +0  742    742 ;V3.00		@CLB	(SW_ICPM)		;V2.07			
                                 +0  743    743 ;V3.00to_fix_end:
00000098  FA                     +0  744    744 		ret
                                 +0  745    745 
                                 +0  746    746 ;V2.00disp_rate_blink:
                                 +0  747    747 
                                 +0  748    748 ;V2.00	ret
                                 +0  749    749 ;==============================================================================
                                 +0  750    750 ;auto switch off time check, 5 minutes=300000us. (AUTO_OFF_TIME)=300000/400=750
                                 +0  751    751 ;==============================================================================
                                 +0  752    752 ;V2.03auto_off_check:				;V1.08
                                 +0  753    753 ;V2.03	@BBC	(M_HAND,auto_off_check_end)	;V1.18
                                 +0  754    754 ;V2.03	ld	wa,(AUTO_OFF_TIM)
                                 +0  755    755 ;V2.03	cmp	wa,0
                                 +0  756    756 ;V2.03	jr	eq,auto_off_check_end
                                 +0  757    757 ;V2.03	dec	wa
                                 +0  758    758 ;V2.03	ld	(AUTO_OFF_TIM),wa
                                 +0  759    759 ;V2.03	cmp	wa,0
                                 +0  760    760 ;V2.03	jr	ne,auto_off_check_end
                                 +0  761    761 ;V2.03	ld	wa,AUTOOFFTIME	;750 x 400=300000us=5 minutes
                                 +0  762    762 ;V2.03	ld	(AUTO_OFF_TIM),wa
                                 +0  763    763 ;V2.03	@SEB	(F_WAKE)
                                 +0  764    764 ;V2.03auto_off_check_end:
                                 +0  765    765 ;V2.03	ret
                                 +0  766    766 ;==============================================================================
                                 +0  767    767 ;display backlight color control green, green+red=salmon pink
                                 +0  768    768 ;==============================================================================
00000099                         +0  769    769 blink_vfd:
                                 +0  770    770 ;V4.11	@BBS	(F_OFF,blink_vfd_off)		;V2.06
                                 +0  771    771 ;V4.11	@BBS	(IO_MT,blink_vfd_off)		;V2.07
                                 +0  772    772 ;V3.00	@BBS	(RATE_PROG,blink_vfd_start)
                                 +0  773    773 ;V3.00	@BBS	(EURO_PROG,blink_vfd_start)
                                 +0  774    774 ;V4.11	@BBS	(IC_PROG,blink_vfd_start)
                                 +0  775    775 ;V3.00	@BBS	(RTC_SET,blink_vfd_start)
                                 +0  776    776 ;V4.11	@CLB	(F_BLINK)	;V2.10
                                 +0  777    777 ;V4.11	ret
00000099                         +0  778    778 blink_vfd_start:
                                 +0  779    779 ;V4.11	inc	(BLK_CT)
                                 +0  780    780 ;V4.11	inc	(BLK_CT)
                                 +0  781    781 ;V4.11	ld	a,(BLK_CT)
                                 +0  782    782 ;V4.11	and	a,0x7f
                                 +0  783    783 ;V4.11	cmp	a,0x40
                                 +0  784    784 ;V4.11	j	ge,blink_vfd_on
                                 +0  785    785 ;V4.11	@CLB	(F_BLINK)	;V2.10
                                 +0  786    786 ;V4.11	jp	blink_vfd_end	;V2.10
00000099                         +0  787    787 blink_vfd_on:
                                 +0  788    788 ;V4.11	@SEB	(F_BLINK)	;V2.10

⌨️ 快捷键说明

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