📄 business_fn.med
字号:
=1 662 ;V3.00S_TAX equ 0x12 ;'% '
=1 663 ;V3.00S_PRN equ 0x62 ;'<> '
=1 664 ;V3.00S_EUR equ 0x22 ;' '
=1 665 ;V3.00S_EUEQ equ 0xc2 ;'= '
=1 666 ;V3.00S_COST equ 0x2b ;' C'
=1 667 ;V3.00S_SELL equ 0x26 ;' <>'
=1 668 ;V3.00S_M equ 0x2a ;' M'
=1 669 ;V3.00S_MARG equ 0xa1 ;'M%'
=1 670 ;V3.00S_PERMARG equ 0x1a ;'%M'
=1 671 ;V3.00S_TAXA equ 0x27 ;' *'
=1 672 ;V3.00S_ICG equ 0x29 ;' G'
=1 673 ;V3.00S_ICGV equ 0x29 ;' G'
=1 674 ;V3.00S_ICM equ 0x2a ;' M'
=1 675 ;V3.00S_ASM equ 0x7a ;'*M'
=1 676 ;V3.00S_ASC equ 0x7b ;'*C'
=1 677 ;V3.00S_ASDL equ 0x78 ;'*'+delta
=1 678 ;V3.00S_MIPL equ 0x03 ;'-+'
=1 679 ;V3.00S_MIMI equ 0x00 ;'--'
=1 680 ;V3.00S_MIST equ 0x06 ;'-S'
=1 681 ;V3.00S_MITL equ 0x07 ;'-T'
=1 682 ;V3.00S_EUROS equ 0x29 ;' euro'
=1 683 ;V3.00S_G equ 0x9f ;'G '
=1 684 ;V3.00S_GPL equ 0x93 ;'G+'
=1 685 ;V3.00S_GAST equ 0x97 ;'G*'
=1 686 ;==============================================================================
=1 687 P_SPC equ 0x20 ;for print " "
=1 688 ;-----------------------------------------------------------
=1 689 ;interrupt enable flag set:
=1 690
=1 691 EF4 equ 4;(EIRL).4 /INT0
=1 692 EF5 equ 5;(EIRL).5 INTTC1
=1 693 EF6 equ 6;(EIRL).6 INT1
=1 694 EF7 equ 7;(EIRL).7 INTTBT
=1 695 EF8 equ 0;(EIRH).0 INTTC3
=1 696 EF9 equ 1;(EIRH).1 INTSIO(High speed SIO interrupt)
=1 697 EF10 equ 2;(EIRH).2 INTTC4
=1 698 EF11 equ 3;(EIRH).3 INT3
=1 699 EF12 equ 4;(EIRH).4 INT4
=1 700 EF13 equ 5;(EIRH).5 INTTC2
=1 701 EF14 equ 6;(EIRH).6 /INT5
=1 702 EF15 equ 7;(EIRH).7 INTADC or INT2
=1 703 ;interrupt request flag set:
=1 704 IL2 equ 2;(ILL).2 INTSWI
=1 705 IL3 equ 3;(ILL).3 INTATRAP
=1 706 IL4 equ 4;(ILL).4 /INT0
=1 707 IL5 equ 5;(ILL).5 INTTC1
=1 708 IL6 equ 6;(ILL).6 INT1
=1 709 IL7 equ 7;(ILL).7 INTTB
=1 710 IL8 equ 0;(ILH).0 INTTC3
=1 711 IL9 equ 1;(ILH).1 INTSIO
=1 712 IL10 equ 2;(ILH).2 INTTC4
=1 713 IL11 equ 3;(ILH).3 INT3
=1 714 IL12 equ 4;(ILH).4 INT4
=1 715 IL13 equ 5;(ILH).5 INTTC2
=1 716 IL14 equ 6;(ILH).6 /INT5
=1 717 IL15 equ 7;(ILH).7 INTADC or /INT2
=1 718 ; DBR_LCD_RATE equ (0x0f33<<4)+5 ;LCD DBR matrix point for "RATE"
=1 719 ; DBR_LCD1235_RATE equ (0x0f33<<4)+3 ;LCD DBR matrix point for "RATE"
=1 720 ; DBR_LCD1297_RATE equ (0x0f33<<4)+4 ;LCD DBR matrix point for "RATE"
=1 721 ; DBR_LCD120_RATE equ (0x0f33<<4)+4 ;LCD DBR matrix point for "RATE"
=1 722 ; DBR_LCD1297_GT equ (0x0f32<<4)+2 ;LCD DBR matrix point for "GT"
=1 723 ; ;LCD_PRN equ (0x0f31<<4)+3 ;LCD DBR matrix point for "PRINT"
=1 724 ; ;LCD_FIN equ (0x0f30<<4)+3 ;LCD DEB matrix point for "FIN"
=1 725
=1 726 AUTOOFFTIME equ 31250;1500
727 $list
728
729 public tax_plus,tax_minus,cost_key,sell_key,margin_key,tax_save,tax_recall,kychk_clcsm;wk_prn_2L
730 public rate_key,euro_key,local_key,check_dp_over2,rate_ten_key;,keychk_amortize
731 public euro_display,eurate_minus_key,eurate_plus_key,init_rate_dispaly,fix_euro_to_ten
732 public tax2_plus,tax2_minus,tax_plus,tax_minus,tax_plus_a,tax12_plus,tax12_minus,tax_minus_a
733 public keep_ten_6dig,euro_rate_recall_x,euro_set_sub
734 extern function_end,no_operation,wk_round_0
735 extern mem2_plus,mem2_minus,move_to_ten
736 extern edit_prn ;V2.08
737 public tax_plus_x,tax_minus_x ;V2.18
738 public rate_ten_key_01,fix_euro_to_ten,euro_print
739 extern euro_fix_rate_tbl,wk_print9
740 public rate_ten_key_01 ;V4.12
741
742 ROM section code
743 RATE_HOLD_TIM equ 150
744 ;===============================================================================
745 ; RATE key
746 ;===============================================================================
747 rate_ten_key:
748 cmp (KEYIN),K_ZERO2
749 j ge,no_operation
751 +1 ld wa,F_TNKEY
752 +1 test (F_TNKEY>>4).a ;bit -reverse-> jump status
753 +1 j t,rate_ten_key_00y ;if jump status is 1 -> branch
754 ld hl,TENKEY ;V3.07
755 call _zerock ;V3.07
756 j eq,rate_ten_key_01 ;V3.07
757 rate_ten_key_00y:
759 +1 ld wa,EURO_PROG
760 +1 clr (EURO_PROG>>4).a
762 +1 ld wa,F_COUNTRY
763 +1 test (F_COUNTRY>>4).a ;bit -reverse-> jump status
764 +1 j t,rate_ten_key_0 ;if jump status is 1 -> branch
766 +1 ld wa,F_COUNTRY
767 +1 clr (F_COUNTRY>>4).a
768 ;V4.18 ld w,(COUNTRY_TEN)
769 ;V4.18 ld a,10
770 ;V4.18 mul w,a
771 ;V4.18 clr cf
772 ld a,(COUNTRY_TEN) ;V4.18
773 add a,(KEYIN)
774 ld (COUNTRY_TEN),a ;get country code
775 cmp (COUNTRY_TEN),17
776 j ge,rate_ten_key_00
778 +1 ld wa,EURO_PROG
779 +1 set (EURO_PROG>>4).a
781 +1 ld wa,F_TNKEY
782 +1 test (F_TNKEY>>4).a ;bit -reverse-> jump status
783 +1 j f,rate_ten_key_000 ;if jump status is 0 -> branch
784 cmp (COUNTRY_TEN),12
785 j ge,rate_ten_key_00x
786
787 call fix_euro_to_ten
788
789 jp rate_ten_key_001
790 rate_ten_key_00x:
791 ld a,(COUNTRY_TEN)
792 set cf
793 sub a,12
794 call ee_to_ten
795 call keep_ten_6dig
796 jp rate_ten_key_001
797
798 rate_ten_key_000:
799
800 cmp (COUNTRY_TEN),12
801 j lt,rate_ten_key_00
802 rate_ten_key_001:
803 call euro_display
804 jp rate_key_end
805
806 rate_ten_key_00:
807 ld a,(KEYIN)
808 ld (DISP+6),a
809 ;V4.17 j rate_ten_key_01
810 j rate_ten_key_01x ;V4.17
811 rate_ten_key_0:
813 +1 ld wa,F_TNKEY
814 +1 test (F_TNKEY>>4).a ;bit -reverse-> jump status
815 +1 j f,rate_ten_key_0x ;if jump status is 0 -> branch
816 ld a,(KEYIN)
817 jp rate_ten_key_0y
818 rate_ten_key_0x:
819 ld hl,TENKEY ;V3.06
820 call _zerock ;V3.06
821 j eq,rate_ten_key_01 ;V3.06
822 ld a,(KEYIN)
823 ; cmp a,1
824 ; j lt,rate_ten_key_01
825 rate_ten_key_0y:
826 ld (DISP+5),a
827 ld (DISP+6),D_SPC
828 ld w,a ;V4.18
829 ld a,10 ;V4.18
830 mul w,a ;V4.18
831 ld (COUNTRY_TEN),a ;V4.18
832 cmp a,17 ;V4.18
833 ;V4.18 cmp a,2
834 j lt,rate_ten_key_1
835 j rate_ten_key_01x ;V4.17
836 rate_ten_key_01:
837 ld hl,TENKEY ;V4.12
838 call _zerock ;V4.12
839 j nz,rate_ten_key_01x ;V4.12
840 call ten_clear ;V4.12
841 ; @CLB (F_TNKEY) ;V4.12
843 +1 ld wa,F_DPIN
844 +1 clr (F_DPIN>>4).a
845 ; @CLB (F_MIN_TRA) ;V4.12
846 ld (TEN_CT),0 ;V4.12
847 ld (DT_CT),0 ;V4.12
848 call spc_disp ;V4.12
849 ld hl,TENKEY ;V4.12
850 call edit_disp ;V4.12
851 rate_ten_key_01x: ;V4.12
853 +1 ld wa,F_CALER
854 +1 set (F_CALER>>4).a
856 +1 ld wa,ICON_E
857 +1 set (ICON_E>>4).a
858 ld a,(KEYIN) ;V4.12a
859 ld (PRE_KEY),a ;V4.12a
860 j rate_key_end_99
861 rate_ten_key_1:
862 ld (COUNTRY_TEN),a
864 +1 ld wa,F_COUNTRY
865 +1 set (F_COUNTRY>>4).a
866 j rate_key_end_99
867 ;------------------------------
868 fix_euro_to_ten:
869 ld w,(COUNTRY_TEN)
870 ld a,8
871 mul w,a
872 ld c,a
873 ld b,0
874 ld ix,euro_fix_rate_tbl
875 clr cf
876 add ix,bc
877 call move_to_ten
878 ld hl,TENKEY
879 call stg_sfr49
880 ld hl,TENKEY
881 call stg_sfr49
882 ret
883 ;====================================================================
884 rate_key:
885 ld a,(FLG_E) ;V3.04
886 or a,(FLG_C) ;V3.04
887 and a,0y01111111 ;V3.04
888 j ne,no_operation ;V3.04
889 cmp (PRE_KEY),K_PLS
890 j eq,no_operation
891 cmp (PRE_KEY),K_MIN
892 j eq,no_operation
894 +1 ld wa,EURO_PROG
895 +1 test (EURO_PROG>>4).a ;bit -reverse-> jump status
896 +1 j f,no_operation ;if jump status is 0 -> branch
898 +1 ld wa,F_COUNTRY
899 +1 test (F_COUNTRY>>4).a ;bit -reverse-> jump status
900 +1 j f,no_operation ;if jump status is 0 -> branch
901
902 cmp (PRE_KEY),K_EURO_LOCAL_TAX_DUM
903 j ne,rate_key_0
904 call ten_clear
905 jp rate_key_enter_rate_mode
906 rate_key_0:
908 +1 ld wa,F_TNKEY
909 +1 test (F_TNKEY>>4).a ;bit -reverse-> jump status
910 +1 j f,rate_key_1 ;if jump status is 0 -> branch
911 ld hl,TENKEY
912 call _zerock
913 j ne,no_operation
914 ld a,(TENKEY+OFF_DP)
915 j ne,no_operation
917 +1 test (FLG_MODE).2
918 +1 j t,rate_key_1
919 test (TEN_S).0 ;V4.12
920 j f,no_operation ;V4.12
921 ;V3.01 call ten_clear ;V1.26
922 rate_key_1:
924 +1 ld wa,F_RATE
925 +1 set (F_RATE>>4).a
926 ld a,(TENKEY)
927 j ne,rate_key_2
928 call ten_to_w1
929 call w2_clear
930 ld (W2+4),0x01 ;set w2=1000000
931 xor (W2_S),1
932 call calc_add
933 test (W1_S).0
934 j f,rate_key_enter_rate_mode
935 rate_key_2:
937 +1 ld wa,ICON_E
938 +1 set (ICON_E>>4).a
940 +1 ld wa,F_CALER
941 +1 set (F_CALER>>4).a
942 call ten_clear
943 ld a,(KEYIN) ;V4.17
944 ld (PRE_KEY),a ;V4.17
945 jp rate_key_end_9
946 rate_key_enter_rate_mode:
948 +1 ld wa,F_RATE
949 +1 set (F_RATE>>4).a
950 call to_dec_ten_digit
951 ;V3.01 @CLB (RATE_PROG) ;V1.09
952 ;V3.01 @CLB (EURO_PROG) ;V1.09
953 ;V4.13 @CLB (M_TX2) ;V2.07
954 ;V4.13 @CLB (M_TX1) ;V2.07
955 ;V1.30 @SEB (SW_RAT_RT)
956 ld (DW_CT),RATE_HOLD_TIM
957 ;V1.09 @BBS (F_RATE,no_operation)
958
959 rate_key_end_9:
960 call spc_disp
961 ld hl,TENKEY
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -