Last active
March 31, 2025 01:27
-
-
Save cocus/b64bd087e51b6f67f358b92cba8b0761 to your computer and use it in GitHub Desktop.
IDA MSM80C31F CPU definition
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 OKI MSM80C31F CPU, which is a | |
; 80C51 variant. | |
; This is the revision 1 of this gist | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
.MSM80C31F | |
; https://www.keil.com/dd/docs/datashts/oki/msm80cx1f_ds.pdf | |
; MEMORY MAP | |
area CODE code 0x0000:0x10000 | |
area DATA RAM 0x0000:0x0080 | |
area DATA FSR 0x0080:0x0100 | |
; Interrupt and reset vector assignments | |
entry RESET 0x0000 RESET | |
entry IE0 0x0003 External interrupt 0 | |
entry TF0 0x000B Timer 0 interrupt | |
entry IE1 0x0013 External interrupt 1 | |
entry TF1 0x001B Timer 1 interrupt | |
entry RI_TI 0x0023 Serial port interrupt | |
; INPUT/OUTPUT PORTS | |
P0 0x0080 Port 0 | |
P0.P07 7 | |
P0.P06 6 | |
P0.P05 5 | |
P0.P04 4 | |
P0.P03 3 | |
P0.P02 2 | |
P0.P01 1 | |
P0.P00 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 Register | |
TCON 0x0088 Timer 0/1 Control Register | |
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 Register | |
TL0 0x008A Timer 0, Low Byte | |
TL1 0x008B Timer 1, Low Byte | |
TH0 0x008C Timer 0, High Byte | |
TH1 0x008D Timer 1, High Byte | |
RESERVED008E 0x008E RESERVED | |
RESERVED008F 0x008F RESERVED | |
P1 0x0090 Port 1 | |
P1.P17 7 | |
P1.P16 6 | |
P1.P15 5 | |
P1.P14 4 | |
P1.P13 3 | |
P1.P12 2 | |
P1.P11 1 | |
P1.P10 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 Channel Control Register | |
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 Channel Buffer Register | |
RESERVED009A 0x009A RESERVED | |
RESERVED009B 0x009B RESERVED | |
RESERVED009C 0x009C RESERVED | |
RESERVED009D 0x009D RESERVED | |
RESERVED009E 0x009E RESERVED | |
RESERVED009F 0x009F RESERVED | |
P2 0x00A0 Port 2 | |
P2.P27 7 | |
P2.P26 6 | |
P2.P25 5 | |
P2.P24 4 | |
P2.P23 3 | |
P2.P22 2 | |
P2.P21 1 | |
P2.P20 0 | |
RESERVED00A1 0x00A1 RESERVED | |
RESERVED00A2 0x00A2 RESERVED | |
RESERVED00A3 0x00A3 RESERVED | |
RESERVED00A4 0x00A4 RESERVED | |
RESERVED00A5 0x00A5 RESERVED | |
RESERVED00A6 0x00A6 RESERVED | |
RESERVED00A7 0x00A7 RESERVED | |
IE 0x00A8 Interrupt Enable Register | |
IE.EA 7 | |
IE.ES 4 | |
IE.ET1 3 | |
IE.EX1 2 | |
IE.ET0 1 | |
IE.EX0 0 | |
RESERVED00A9 0x00A9 RESERVED | |
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 | |
RESERVED00B7 0x00B7 RESERVED | |
IP 0x00B8 Interrupt Priority Register | |
IP.PS 4 | |
IP.PT1 3 | |
IP.PX1 2 | |
IP.PT0 1 | |
IP.PX0 0 | |
RESERVED00B9 0x00B9 RESERVED | |
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 | |
RESERVED00C8 0x00C8 RESERVED | |
RESERVED00C9 0x00C9 RESERVED | |
RESERVED00CA 0x00CA RESERVED | |
RESERVED00CB 0x00CB RESERVED | |
RESERVED00CC 0x00CC RESERVED | |
RESERVED00CD 0x00CD RESERVED | |
RESERVED00CE 0x00CE RESERVED | |
RESERVED00CF 0x00CF RESERVED | |
PSW 0x00D0 Program Status Word Register | |
PSW.CY 7 | |
PSW.AC 6 | |
PSW.F0 5 | |
PSW.RS1 4 | |
PSW.RS0 3 | |
PSW.OV 2 | |
PSW.F1 1 | |
PSW.P 0 | |
RESERVED00D1 0x00D1 RESERVED | |
RESERVED00D2 0x00D2 RESERVED | |
RESERVED00D3 0x00D3 RESERVED | |
RESERVED00D4 0x00D4 RESERVED | |
RESERVED00D5 0x00D5 RESERVED | |
RESERVED00D6 0x00D6 RESERVED | |
RESERVED00D7 0x00D7 RESERVED | |
RESERVED00D8 0x00D8 RESERVED | |
RESERVED00D9 0x00D9 RESERVED | |
RESERVED00DA 0x00DA RESERVED | |
RESERVED00DB 0x00DB RESERVED | |
RESERVED00DC 0x00DC RESERVED | |
RESERVED00DD 0x00DD RESERVED | |
RESERVED00DE 0x00DE RESERVED | |
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 | |
RESERVED00E9 0x00E9 RESERVED | |
RESERVED00EA 0x00EA RESERVED | |
RESERVED00EB 0x00EB RESERVED | |
RESERVED00EC 0x00EC RESERVED | |
RESERVED00ED 0x00ED RESERVED | |
RESERVED00EE 0x00EE RESERVED | |
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 | |
RESERVED00F9 0x00F9 RESERVED | |
RESERVED00FA 0x00FA RESERVED | |
RESERVED00FB 0x00FB RESERVED | |
RESERVED00FC 0x00FC RESERVED | |
RESERVED00FD 0x00FD RESERVED | |
RESERVED00FE 0x00FE RESERVED | |
RESERVED00FF 0x00FF RESERVED |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment