📄 l51_bank.lst
字号:
689 IF ?B_MODE = 4 ;**************************************************************
690
0000 691 ?B_FACTOR EQU 0 ; Dummy Declarations
0000 692 ?B_FIRSTBIT EQU 0
0001 693 ?B_MASK EQU MASK
694
695 ?BANK?SELECT SEGMENT CODE
696 ?BANK?DATA SEGMENT DATA
---- 697 RSEG ?BANK?DATA
0000 698 ?B_CURRENTBANK: DS 1
699
700 BANK MACRO N
701 PUBLIC ?B_BANK&N
702 ?B_BANK&N:
703 PUSH ?B_CURRENTBANK
704 MOV A,#HIGH ?BANK?SWITCH
705 PUSH ACC
706 PUSH DPL
707 PUSH DPH
708 ENDM
709
710 SWITCH MACRO N
711 PUBLIC ?B_SWITCH&N
712 IF (LONG_MACRO = 1)
713 ?B_SWITCHJ&N:
714 ELSE
715 ?B_SWITCH&N:
716 ENDIF
717 MOV ?B_CURRENTBANK,#LOW ?B_SWITCH&N
718 SWITCH&N
719 RET
720 ENDM
721
ENDIF
728
729 ?BANK?SWITCH SEGMENT CODE PAGE
A51 MACRO ASSEMBLER L51_BANK 11/17/2005 23:12:26 PAGE 4
730
---- 731 RSEG ?BANK?SWITCH
0000 732 B_SWITCH_START EQU $
733
ENDIF
743
744
745 ; Generate ?B_SWITCHn functions
0000 746 CNT SET 0
747
748 REPT ?B_NBANKS
749 BANK %CNT
750 SWITCH %CNT
751 CNT SET CNT+1
752 ENDM
753+1 BANK %CNT
761+1 SWITCH %CNT
773+1 BANK %CNT
781+1 SWITCH %CNT
793
0022 794 B_SWITCH_SIZE EQU $-B_SWITCH_START
795
ENDIF
799
800 ENDIF ; close block IF ?B_MODE = 4 *******************************************
801
---- 802 RSEG ?BANK?SELECT
803
804 ;************************ SWITCHBANK FUNCTION *******************************
805 ; *
806 ; SWITCHBANK allows use of bank-switching for C programs *
807 ; *
808 ; prototype: extern switchbank (unsigned char bank_number); *
809 ; *
810 ;******************************************************************************
811 PUBLIC _SWITCHBANK, ?B_SWITCHBANK_A
812
0000 EF 813 _SWITCHBANK: MOV A,R7
814
ENDIF ; close block IF ?B_MODE = 0 *******************************************
831
ENDIF ; close block IF ?B_MODE = 1 *******************************************
847
848 IF ?B_MODE = 4 ;**************************************************************
849
ENDIF
857
0001 858 ?B_SWITCHBANK_A:
0001 900000 F 859 MOV DPTR,#switch_tab
0004 93 860 MOVC A,@A+DPTR
0005 861 ?B_RESTORE_BANK: ; entry for RTX-51/XBANKING bank restore
0005 900000 F 862 MOV DPTR,#?BANK?SWITCH
0008 73 863 JMP @A+DPTR
864
865 S_ENTRY MACRO N
866 DB LOW ?B_SWITCH&N
867 ENDM
868
0009 869 switch_tab:
0000 870 CNT SET 0
871
872 REPT ?B_NBANKS
873 S_ENTRY %CNT
874 CNT SET CNT+1
875 ENDM
876+1 S_ENTRY %CNT
A51 MACRO ASSEMBLER L51_BANK 11/17/2005 23:12:26 PAGE 5
879+1 S_ENTRY %CNT
882 ENDIF ; close block IF ?B_MODE = 4 *******************************************
883
884
ENDIF ; close block IF ?B_VAR_BANKING ****************************************
1297
A51 MACRO ASSEMBLER L51_BANK 11/17/2005 23:12:26 PAGE 6
XREF SYMBOL TABLE LISTING
---- ------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES / REFERENCES
?BANK?DATA . . . . D SEG 0001H REL=UNIT 696# 697
?BANK?SELECT . . . C SEG 000BH REL=UNIT 695# 802
?BANK?SWITCH . . . C SEG 0022H REL=PAGE 729# 731 757 777 862
?BANK?SWITCHING. . N NUMB ----- 165
?B_BANK0 . . . . . C ADDR 0000H R SEG=?BANK?SWITCH 754 755#
?B_BANK1 . . . . . C ADDR 0011H R SEG=?BANK?SWITCH 774 775#
?B_CURRENTBANK . . D ADDR 0000H R SEG=?BANK?DATA 167 698# 756 768 776 788
?B_FACTOR. . . . . N NUMB 0000H A 168 691#
?B_FIRSTBIT. . . . N NUMB 0000H A 220 227 233 238 244 251 258 264 300 307 314 320 325 331 338 345 483 490
496 501 507 514 521 527 560 566 573 580 586 591 597 604 692# 945 951 958
966 974 981 989 997
?B_MASK. . . . . . N NUMB 0001H A 167 693#
?B_MODE. . . . . . N NUMB 0004H A 14# 39 51 60 167 197 446 689 815 832 848 939 1008 1077 1125
?B_NBANKS. . . . . N NUMB 0002H A 9# 167 183 185 187 189 191 217 277 283 287 297 360 412 480 540 546 550
558 669 748 818 823 835 840 872
?B_RESTORE_BANK. . C ADDR 0005H R SEG=?BANK?SELECT 861#
?B_RST_BANK. . . . N NUMB 00FFH A 31# 168
?B_RTX . . . . . . N NUMB 0000H A 18# 169 217 297 412 420 678 818 823 1029 1040 1060 1068
?B_SWITCH0 . . . . C ADDR 000AH R SEG=?BANK?SWITCH 762 766# 768 877
?B_SWITCH1 . . . . C ADDR 001BH R SEG=?BANK?SWITCH 782 786# 788 880
?B_SWITCHBANK_A. . C ADDR 0001H R SEG=?BANK?SELECT 811 858#
?B_VAR_BANKING . . N NUMB 0000H A 21# 108 678 850 885
ACC. . . . . . . . D ADDR 00E0H A 174# 758 778
B. . . . . . . . . D ADDR 00F0H A 175#
B_SWITCH_SIZE. . . N NUMB 0022H A 794# 796
B_SWITCH_START . . C ADDR 0000H R SEG=?BANK?SWITCH 732# 794
CNT. . . . . . . . N NUMB 0002H A 746# 753 761 772# 772 773 781 792# 792 870# 876 878# 878 879 881# 881
DPH. . . . . . . . D ADDR 0083H A 177# 760 780
DPL. . . . . . . . D ADDR 0082H A 176# 759 779
EA . . . . . . . . B ADDR 00A8H.7 A 179#
IE . . . . . . . . D ADDR 00A8H A 178# 179
LONG_MACRO . . . . N NUMB 0000H A 89# 722 734 763 783 796
MASK . . . . . . . N NUMB 0001H A 184# 693
N. . . . . . . . . ---- ----- 278 280 283 287 357 360 541 543 546 550
P1 . . . . . . . . D ADDR 0090H A 93#
P3 . . . . . . . . D ADDR 00B0H A 94#
SFCF . . . . . . . D ADDR 00B1H A 95# 770 790
SWITCH_TAB . . . . C ADDR 0009H R SEG=?BANK?SELECT 859 869#
_SWITCHBANK. . . . C ADDR 0000H R SEG=?BANK?SELECT 811 813#
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -