Created
October 24, 2023 21:39
-
-
Save cocus/c6305ea07c51966476ed3a5a8334ec62 to your computer and use it in GitHub Desktop.
i51f.cfg
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; Note, add this to the i51.cfg on your ida installation dir. | |
; The aim is to add support for the Intel 80C51FA CPU, which is a | |
; 80C51 variant. | |
; This is the revision 1 of this gist | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
.80C51FA | |
; https://www.keil.com/dd/docs/c51/intel/reg51f.h | |
; MEMORY MAP | |
area CODE code 0x0000:0x10000 | |
area DATA RAM 0x0000:0x0100 | |
area DATA FSR 0x0080:0x0100 | |
; Interrupt and reset vector assignments | |
entry RESET 0x0000 RESET | |
entry X0 0x0003 External interrupt 0 | |
entry T0 0x000B Timer 0 overflow | |
entry X1 0x0013 External interrupt 1 | |
entry T1 0x001B Timer 1 overflow | |
entry SP0 0x0023 Serial Port | |
entry T2 0x002B Timer 2 | |
entry PCA 0x0033 PCA | |
; INPUT/OUTPUT PORTS | |
P0 0x0080 Port 0 | |
P0.AD7 7 | |
P0.AD6 6 | |
P0.AD5 5 | |
P0.AD4 4 | |
P0.AD3 3 | |
P0.AD2 2 | |
P0.AD1 1 | |
P0.AD0 0 | |
SP 0x0081 Stack Pointer | |
DPL 0x0082 Data Pointer, Low Byte | |
DPH 0x0083 Data Pointer, High Byte | |
RESERVED0084 0x0084 RESERVED | |
RESERVED0085 0x0085 RESERVED | |
RESERVED0086 0x0086 RESERVED | |
PCON 0x0087 Power control | |
TCON 0x0088 Timer control | |
TCON.TF1 7 | |
TCON.TR1 6 | |
TCON.TF0 5 | |
TCON.TR0 4 | |
TCON.IE1 3 | |
TCON.IT1 2 | |
TCON.IE0 1 | |
TCON.IT0 0 | |
TMOD 0x0089 Timer mode | |
TL0 0x008A Timer low 0 | |
TL1 0x008B Timer low 1 | |
TH0 0x008C Timer high 0 | |
TH1 0x008D Timer high 1 | |
AUXR 0x008E Auxiliary | |
RESERVED008F 0x008F RESERVED | |
P1 0x0090 Port 1 | |
P1.CEX4 7 | |
P1.CEX3 6 | |
P1.CEX2 5 | |
P1.CEX1 4 | |
P1.CEX0 3 | |
P1.ECI 2 | |
P1.T2EX 1 | |
P1.T2 0 | |
RESERVED0091 0x0091 RESERVED | |
RESERVED0092 0x0092 RESERVED | |
RESERVED0093 0x0093 RESERVED | |
RESERVED0094 0x0094 RESERVED | |
RESERVED0095 0x0095 RESERVED | |
RESERVED0096 0x0096 RESERVED | |
RESERVED0097 0x0097 RESERVED | |
SCON 0x0098 Serial control | |
SCON.SM0 7 | |
SCON.SM1 6 | |
SCON.SM2 5 | |
SCON.REN 4 | |
SCON.TB8 3 | |
SCON.RB8 2 | |
SCON.TI 1 | |
SCON.RI 0 | |
SBUF 0x0099 Serial data buffer | |
RESERVED009A 0x009A RESERVED | |
RESERVED009B 0x009B RESERVED | |
RESERVED009C 0x009C RESERVED | |
RESERVED009D 0x009D RESERVED | |
RESERVED009E 0x009E RESERVED | |
RESERVED009F 0x009F RESERVED | |
P2 0x00A0 Port 2 | |
P2.AD15 7 | |
P2.AD14 6 | |
P2.AD13 5 | |
P2.AD12 4 | |
P2.AD11 3 | |
P2.AD10 2 | |
P2.AD9 1 | |
P2.AD8 0 | |
RESERVED00A1 0x00A1 RESERVED | |
AUXR1 0x00A2 Auxiliary 1 | |
RESERVED00A3 0x00A3 RESERVED | |
RESERVED00A4 0x00A4 RESERVED | |
RESERVED00A5 0x00A5 RESERVED | |
RESERVED00A6 0x00A6 RESERVED | |
RESERVED00A7 0x00A7 RESERVED | |
IE 0x00A8 Interrupt Enable | |
IE.EA 7 | |
IE.EC 6 | |
IE.ET2 5 | |
IE.ES 4 | |
IE.ET1 3 | |
IE.EX1 2 | |
IE.ET0 1 | |
IE.EX0 0 | |
SADDR 0x00A9 Slave Address | |
RESERVED00AA 0x00AA RESERVED | |
RESERVED00AB 0x00AB RESERVED | |
RESERVED00AC 0x00AC RESERVED | |
RESERVED00AD 0x00AD RESERVED | |
RESERVED00AE 0x00AE RESERVED | |
RESERVED00AF 0x00AF RESERVED | |
P3 0x00B0 Port 3 | |
P3.RD 7 | |
P3.WR 6 | |
P3.T1 5 | |
P3.T0 4 | |
P3.INT1 3 | |
P3.INT0 2 | |
P3.TXD 1 | |
P3.RXD 0 | |
RESERVED00B1 0x00B1 RESERVED | |
RESERVED00B2 0x00B2 RESERVED | |
RESERVED00B3 0x00B3 RESERVED | |
RESERVED00B4 0x00B4 RESERVED | |
RESERVED00B5 0x00B5 RESERVED | |
RESERVED00B6 0x00B6 RESERVED | |
IPH 0x00B7 Interrupt Priority High | |
IP 0x00B8 Interrupt priority | |
IP.PPC 6 | |
IP.PT2 5 | |
IP.PS 4 | |
IP.PT1 3 | |
IP.PX1 2 | |
IP.PT0 1 | |
IP.PX0 0 | |
SADEN 0x00B9 Slave Address Mask | |
RESERVED00BA 0x00BA RESERVED | |
RESERVED00BB 0x00BB RESERVED | |
RESERVED00BC 0x00BC RESERVED | |
RESERVED00BD 0x00BD RESERVED | |
RESERVED00BE 0x00BE RESERVED | |
RESERVED00BF 0x00BF RESERVED | |
RESERVED00C0 0x00C0 RESERVED | |
RESERVED00C1 0x00C1 RESERVED | |
RESERVED00C2 0x00C2 RESERVED | |
RESERVED00C3 0x00C3 RESERVED | |
RESERVED00C4 0x00C4 RESERVED | |
RESERVED00C5 0x00C5 RESERVED | |
RESERVED00C6 0x00C6 RESERVED | |
RESERVED00C7 0x00C7 RESERVED | |
T2CON 0x00C8 Timer 2 Control | |
T2CON.TF2 7 | |
T2CON.EXF2 6 | |
T2CON.RCLK 5 | |
T2CON.TCLK 4 | |
T2CON.EXEN2 3 | |
T2CON.TR2 2 | |
T2CON.CT2 1 | |
T2CON.CPRL2 0 | |
T2MOD 0x00C9 Timer 2 Mode Control | |
RACAP2L 0x00CA Timer 2 Capture Low | |
RACAP2H 0x00CB Timer 2 Capture High | |
TL2 0x00CC Timer Low 2 | |
TH2 0x00CD Timer High 2 | |
RESERVED00CE 0x00CE RESERVED | |
RESERVED00CF 0x00CF RESERVED | |
PSW 0x00D0 Program Status Word Register | |
PSW.CY 7 Carry Flag | |
PSW.AC 6 Auxiliary Carry Flag | |
PSW.F0 5 General Purpose Flag | |
PSW.RS1 4 Register Bank Select Control Bit 1 | |
PSW.RS0 3 Register Bank Select Control Bit 0 | |
PSW.OV 2 Overflow Flag | |
PSW.P 0 Parity Flag | |
RESERVED00D1 0x00D1 RESERVED | |
RESERVED00D2 0x00D2 RESERVED | |
RESERVED00D3 0x00D3 RESERVED | |
RESERVED00D4 0x00D4 RESERVED | |
RESERVED00D5 0x00D5 RESERVED | |
RESERVED00D6 0x00D6 RESERVED | |
RESERVED00D7 0x00D7 RESERVED | |
CCON 0x00D8 PCA Counter Control | |
CCON.CF 7 | |
CCON.CR 6 | |
CCON.CCF4 4 | |
CCON.CCF3 3 | |
CCON.CCF2 2 | |
CCON.CCF1 1 | |
CCON.CCF0 0 | |
CMOD 0x00D9 PCA Counter Mode | |
CCAPM0 0x00DA Module 0 Mode | |
CCAPM1 0x00DB Module 1 Mode | |
CCAPM2 0x00DC Module 2 Mode | |
CCAPM3 0x00DD Module 3 Mode | |
CCAPM4 0x00DE Module 4 Mode | |
RESERVED00DF 0x00DF RESERVED | |
ACC 0x00E0 Accumulator | |
ACC.ACC7 7 | |
ACC.ACC6 6 | |
ACC.ACC5 5 | |
ACC.ACC4 4 | |
ACC.ACC3 3 | |
ACC.ACC2 2 | |
ACC.ACC1 1 | |
ACC.ACC0 0 | |
RESERVED00E1 0x00E1 RESERVED | |
RESERVED00E2 0x00E2 RESERVED | |
RESERVED00E3 0x00E3 RESERVED | |
RESERVED00E4 0x00E4 RESERVED | |
RESERVED00E5 0x00E5 RESERVED | |
RESERVED00E6 0x00E6 RESERVED | |
RESERVED00E7 0x00E7 RESERVED | |
RESERVED00E8 0x00E8 RESERVED | |
CL 0x00E9 PCA Counter Low | |
CCAP0L 0x00EA Module 0 Capture Low | |
CCAP1L 0x00EB Module 1 Capture Low | |
CCAP2L 0x00EC Module 2 Capture Low | |
CCAP3L 0x00ED Module 3 Capture Low | |
CCAP4L 0x00EE Module 4 Capture Low | |
RESERVED00EF 0x00EF RESERVED | |
B 0x00F0 B Register | |
B.B7 7 | |
B.B6 6 | |
B.B5 5 | |
B.B4 4 | |
B.B3 3 | |
B.B2 2 | |
B.B1 1 | |
B.B0 0 | |
RESERVED00F1 0x00F1 RESERVED | |
RESERVED00F2 0x00F2 RESERVED | |
RESERVED00F3 0x00F3 RESERVED | |
RESERVED00F4 0x00F4 RESERVED | |
RESERVED00F5 0x00F5 RESERVED | |
RESERVED00F6 0x00F6 RESERVED | |
RESERVED00F7 0x00F7 RESERVED | |
RESERVED00F8 0x00F8 RESERVED | |
CH 0x00F9 PCA Counter High | |
CCAP0H 0x00FA Module 0 Capture High | |
CCAP1H 0x00FB Module 1 Capture High | |
CCAP2H 0x00FC Module 2 Capture High | |
CCAP3H 0x00FD Module 3 Capture High | |
CCAP4H 0x00FE Module 4 Capture High | |
RESERVED00FF 0x00FF RESERVED |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment