GP-4879 Initial M16C commit

This commit is contained in:
emteere 2024-08-28 14:52:30 -04:00
parent 403619065c
commit c941eb027c
13 changed files with 9494 additions and 0 deletions

View File

@ -0,0 +1 @@
MODULE DEPENDENCY: Ghidra/Framework/SoftwareModeling

View File

@ -0,0 +1,23 @@
/* ###
* IP: GHIDRA
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
apply from: "$rootProject.projectDir/gradle/distributableGhidraModule.gradle"
apply from: "$rootProject.projectDir/gradle/processorProject.gradle"
apply plugin: 'eclipse'
eclipse.project.name = 'Processors M16C'
sleighCompileOptions = [
'-l'
]

View File

@ -0,0 +1,12 @@
##VERSION: 2.0
Module.manifest||GHIDRA||||END|
data/languages/M16C_60.cspec||GHIDRA||||END|
data/languages/M16C_60.ldefs||GHIDRA||||END|
data/languages/M16C_60.pspec||GHIDRA||||END|
data/languages/M16C_60.slaspec||GHIDRA||||END|
data/languages/M16C_80.cspec||GHIDRA||||END|
data/languages/M16C_80.ldefs||GHIDRA||||END|
data/languages/M16C_80.pspec||GHIDRA||||END|
data/languages/M16C_80.slaspec||GHIDRA||||END|
data/manuals/M16C_60.idx||GHIDRA||||END|
data/manuals/M16C_80.idx||GHIDRA||||END|

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<compiler_spec>
<global>
<range space="RAM"/>
</global>
<stackpointer register="SP" space="RAM"/>
<default_proto>
<prototype name="__stdcall" extrapop="unknown" stackshift="0">
<input>
<pentry maxsize="2" minsize="1">
<register name="R0"/>
</pentry>
<pentry maxsize="2" minsize="1">
<register name="R1"/>
</pentry>
<pentry maxsize="2" minsize="1">
<register name="R2"/>
</pentry>
<pentry maxsize="500" minsize="1" align="2"> <!-- TODO: Alignment should be 1, waiting for decompiler change -->
<addr space="stack" offset="0"/>
</pentry>
</input>
<output>
<pentry maxsize="2" minsize="1">
<register name="R3"/>
</pentry>
</output>
<unaffected>
<register name="SP"/>
<register name="A0"/>
<register name="A1"/>
<register name="INTB"/>
<register name="FB"/>
<register name="SB"/>
<register name="FLG"/>
</unaffected>
</prototype>
</default_proto>
</compiler_spec>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<language_definitions>
<!--
Version-1.1 12-Dec-2008 - complete rewrite of M16C_60.slaspec
-->
<language processor="M16C/60"
endian="little"
size="16"
variant="default"
version="1.1"
slafile="M16C_60.sla"
processorspec="M16C_60.pspec"
manualindexfile="../manuals/M16C_60.idx"
id="M16C/60:LE:16:default">
<description>Renesas M16C/60 16-Bit MicroComputer</description>
<compiler name="default" spec="M16C_60.cspec" id="default"/>
<external_name tool="gnu" name="m16c"/>
</language>
</language_definitions>

View File

@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8"?>
<processor_spec>
<programcounter register="PC"/>
<default_symbols>
<symbol name="PM0" address="RAM:0004"/>
<symbol name="PM1" address="RAM:0005"/>
<symbol name="CM0" address="RAM:0006"/>
<symbol name="CM1" address="RAM:0007"/>
<symbol name="CSR" address="RAM:0008"/>
<symbol name="AIER" address="RAM:0009"/>
<symbol name="PRCR" address="RAM:000A"/>
<symbol name="WDTS" address="RAM:000E"/>
<symbol name="WDC" address="RAM:000F"/>
<symbol name="RMAD0" address="RAM:0010"/>
<symbol name="RMAD0" address="RAM:0011"/>
<symbol name="RMAD0" address="RAM:0012"/>
<symbol name="RMAD1" address="RAM:0014"/>
<symbol name="RMAD1" address="RAM:0015"/>
<symbol name="RMAD1" address="RAM:0016"/>
<symbol name="SAR0" address="RAM:0020"/>
<symbol name="SAR0" address="RAM:0021"/>
<symbol name="SAR0" address="RAM:0022"/>
<symbol name="DAR0" address="RAM:0024"/>
<symbol name="DAR0" address="RAM:0025"/>
<symbol name="DAR0" address="RAM:0026"/>
<symbol name="TCR0" address="RAM:0028"/>
<symbol name="TCR0" address="RAM:0029"/>
<symbol name="DM0CON" address="RAM:002C"/>
<symbol name="SAR1" address="RAM:0030"/>
<symbol name="SAR1" address="RAM:0031"/>
<symbol name="SAR1" address="RAM:0032"/>
<symbol name="DAR1" address="RAM:0034"/>
<symbol name="DAR1" address="RAM:0035"/>
<symbol name="DAR1" address="RAM:0036"/>
<symbol name="TCR1" address="RAM:0038"/>
<symbol name="TCR1" address="RAM:0039"/>
<symbol name="DM1CON" address="RAM:003C"/>
<symbol name="DM0IC" address="RAM:004B"/>
<symbol name="DM1IC" address="RAM:004C"/>
<symbol name="KUPIC" address="RAM:004D"/>
<symbol name="ADIC" address="RAM:004E"/>
<symbol name="S0TIC" address="RAM:0051"/>
<symbol name="S0RIC" address="RAM:0052"/>
<symbol name="S1TIC" address="RAM:0053"/>
<symbol name="S1RIC" address="RAM:0054"/>
<symbol name="TA0IC" address="RAM:0055"/>
<symbol name="TA1IC" address="RAM:0056"/>
<symbol name="TA2IC" address="RAM:0057"/>
<symbol name="TA3IC" address="RAM:0058"/>
<symbol name="TA4IC" address="RAM:0059"/>
<symbol name="TB0IC" address="RAM:005A"/>
<symbol name="TB1IC" address="RAM:005B"/>
<symbol name="TB2IC" address="RAM:005C"/>
<symbol name="INT0IC" address="RAM:005D"/>
<symbol name="INT1IC" address="RAM:005E"/>
<symbol name="INT2IC" address="RAM:005F"/>
<symbol name="TABSR" address="RAM:0380"/>
<symbol name="CPSRF" address="RAM:0381"/>
<symbol name="ONSF" address="RAM:0382"/>
<symbol name="TRGSR" address="RAM:0383"/>
<symbol name="UDF" address="RAM:0384"/>
<symbol name="TA0" address="RAM:0386"/>
<symbol name="TA0" address="RAM:0387"/>
<symbol name="TA1" address="RAM:0388"/>
<symbol name="TA1" address="RAM:0389"/>
<symbol name="TA2" address="RAM:038A"/>
<symbol name="TA2" address="RAM:038B"/>
<symbol name="TA3" address="RAM:038C"/>
<symbol name="TA3" address="RAM:038D"/>
<symbol name="TA4" address="RAM:038E"/>
<symbol name="TA4" address="RAM:038F"/>
<symbol name="TB0" address="RAM:0390"/>
<symbol name="TB0" address="RAM:0391"/>
<symbol name="TB1" address="RAM:0392"/>
<symbol name="TB1" address="RAM:0393"/>
<symbol name="TB2" address="RAM:0394"/>
<symbol name="TB2" address="RAM:0395"/>
<symbol name="TA0MR" address="RAM:0396"/>
<symbol name="TA1MR" address="RAM:0397"/>
<symbol name="TA2MR" address="RAM:0398"/>
<symbol name="TA3MR" address="RAM:0399"/>
<symbol name="TA4MR" address="RAM:039A"/>
<symbol name="TB0MR" address="RAM:039B"/>
<symbol name="TB1MR" address="RAM:039C"/>
<symbol name="TB2MR" address="RAM:039D"/>
<symbol name="U0MR" address="RAM:03A0"/>
<symbol name="U0BRG" address="RAM:03A1"/>
<symbol name="U0TB" address="RAM:03A2"/>
<symbol name="U0TB" address="RAM:03A3"/>
<symbol name="U0C0" address="RAM:03A4"/>
<symbol name="U0C1" address="RAM:03A5"/>
<symbol name="U0RB" address="RAM:03A6"/>
<symbol name="U0RB" address="RAM:03A7"/>
<symbol name="U1MR" address="RAM:03A8"/>
<symbol name="U1BRG" address="RAM:03A9"/>
<symbol name="U1TB" address="RAM:03AA"/>
<symbol name="U1TB" address="RAM:03AB"/>
<symbol name="U1C0" address="RAM:03AC"/>
<symbol name="U1C1" address="RAM:03AD"/>
<symbol name="U1RB" address="RAM:03AE"/>
<symbol name="U1RB" address="RAM:03AF"/>
<symbol name="UCON" address="RAM:03B0"/>
<symbol name="DM0SL" address="RAM:03B8"/>
<symbol name="DM1SL" address="RAM:03BA"/>
<symbol name="CRCD" address="RAM:03BC"/>
<symbol name="CRCD" address="RAM:03BD"/>
<symbol name="CRCIN" address="RAM:03BE"/>
<symbol name="AD0" address="RAM:03C0"/>
<symbol name="AD0" address="RAM:03C1"/>
<symbol name="AD1" address="RAM:03C2"/>
<symbol name="AD1" address="RAM:03C3"/>
<symbol name="AD2" address="RAM:03C4"/>
<symbol name="AD2" address="RAM:03C5"/>
<symbol name="AD3" address="RAM:03C6"/>
<symbol name="AD3" address="RAM:03C7"/>
<symbol name="AD4" address="RAM:03C8"/>
<symbol name="AD4" address="RAM:03C9"/>
<symbol name="AD5" address="RAM:03CA"/>
<symbol name="AD5" address="RAM:03CB"/>
<symbol name="AD6" address="RAM:03CC"/>
<symbol name="AD6" address="RAM:03CD"/>
<symbol name="AD7" address="RAM:03CE"/>
<symbol name="AD7" address="RAM:03CF"/>
<symbol name="ADCON2" address="RAM:03D4"/>
<symbol name="ADCON0" address="RAM:03D6"/>
<symbol name="ADCON1" address="RAM:03D7"/>
<symbol name="DA0" address="RAM:03D8"/>
<symbol name="DA1" address="RAM:03DA"/>
<symbol name="DACON" address="RAM:03DC"/>
<symbol name="P0" address="RAM:03E0"/>
<symbol name="P1" address="RAM:03E1"/>
<symbol name="PD0" address="RAM:03E2"/>
<symbol name="PD1" address="RAM:03E3"/>
<symbol name="P2" address="RAM:03E4"/>
<symbol name="P3" address="RAM:03E5"/>
<symbol name="PD2" address="RAM:03E6"/>
<symbol name="PD3" address="RAM:03E7"/>
<symbol name="P4" address="RAM:03E8"/>
<symbol name="P5" address="RAM:03E9"/>
<symbol name="PD4" address="RAM:03EA"/>
<symbol name="PD5" address="RAM:03EB"/>
<symbol name="P6" address="RAM:03EC"/>
<symbol name="P7" address="RAM:03ED"/>
<symbol name="PD6" address="RAM:03EE"/>
<symbol name="PD7" address="RAM:03EF"/>
<symbol name="P8" address="RAM:03F0"/>
<symbol name="P9" address="RAM:03F1"/>
<symbol name="PD8" address="RAM:03F2"/>
<symbol name="PD9" address="RAM:03F3"/>
<symbol name="P10" address="RAM:03F4"/>
<symbol name="PD10" address="RAM:03F6"/>
<symbol name="PUR0" address="RAM:03FC"/>
<symbol name="PUR1" address="RAM:03FD"/>
<symbol name="PUR2" address="RAM:03FE"/>
<symbol name="UNDEFINED_INSTRUCTION_INT_VECTOR" address="RAM:FFFDC" entry="true" type="code_ptr"/>
<symbol name="OVERFLOW_INT_VECTOR" address="RAM:FFFE0" entry="true" type="code_ptr"/>
<symbol name="BRK_INSTRUCTION_INT_VECTOR" address="RAM:FFFE4" entry="true" type="code_ptr"/>
<symbol name="ADDRESS_MATCH_INT_VECTOR" address="RAM:FFFE8" entry="true" type="code_ptr"/>
<symbol name="SINGLE_STEP_INT_VECTOR" address="RAM:FFFEC" entry="true" type="code_ptr"/>
<symbol name="WATCHDOG_TIMER_INT_VECTOR" address="RAM:FFFF0" entry="true" type="code_ptr"/>
<symbol name="NOT_DBC_INT_VECTOR" address="RAM:FFFF4" entry="true" type="code_ptr"/>
<symbol name="NOT_NMI_INT_VECTOR" address="RAM:FFFF8" entry="true" type="code_ptr"/>
<symbol name="RESET_INT_VECTOR" address="RAM:FFFFC" entry="true" type="code_ptr"/>
</default_symbols>
<default_memory_blocks>
<memory_block name="SFR" start_address="RAM:0000" mode="rw" length="0x03FF" initialized="false"/>
</default_memory_blocks>
</processor_spec>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<compiler_spec>
<global>
<range space="RAM"/>
</global>
<stackpointer register="SP" space="RAM"/>
<default_proto>
<prototype name="__stdcall" extrapop="4" stackshift="4">
<input>
<pentry maxsize="2" minsize="1">
<register name="R0"/>
</pentry>
<pentry maxsize="500" minsize="1" align="4"> <!-- TODO: Alignment should be 2, waiting for decompiler change -->
<addr space="stack" offset="4"/>
</pentry>
</input>
<output>
<pentry maxsize="4" minsize="1">
<register name="R2R0"/>
</pentry>
</output>
<unaffected>
<register name="SP"/>
<register name="FB"/>
<register name="SB"/>
<register name="FLG"/>
</unaffected>
</prototype>
</default_proto>
</compiler_spec>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<language_definitions>
<!--
Version-1.1 17-Nov-2008 - complete rewrite of M16C_80.slaspec
-->
<language processor="M16C/80"
endian="little"
size="16"
variant="default"
version="1.1"
slafile="M16C_80.sla"
processorspec="M16C_80.pspec"
manualindexfile="../manuals/M16C_80.idx"
id="M16C/80:LE:16:default">
<description>Renesas M16C/80 16-Bit MicroComputer</description>
<compiler name="default" spec="M16C_80.cspec" id="default"/>
<external_name tool="gnu" name="m16c"/>
</language>
</language_definitions>

View File

@ -0,0 +1,296 @@
<?xml version="1.0" encoding="UTF-8"?>
<processor_spec>
<programcounter register="PC"/>
<volatile outputop="write_sfr" inputop="read_sfr">
<range space="RAM" first="0x0" last="0x03ff"/>
</volatile>
<default_symbols>
<symbol name="PM0" address="RAM:0004"/>
<symbol name="PM1" address="RAM:0005"/>
<symbol name="CM0" address="RAM:0006"/>
<symbol name="CM1" address="RAM:0007"/>
<symbol name="WCR" address="RAM:0008"/>
<symbol name="AIER" address="RAM:0009"/>
<symbol name="PRCR" address="RAM:000A"/>
<symbol name="DS" address="RAM:000B"/>
<symbol name="MCD" address="RAM:000C"/>
<symbol name="WDTS" address="RAM:000E"/>
<symbol name="WDC" address="RAM:000F"/>
<symbol name="RMAD0" address="RAM:0010"/>
<symbol name="RMAD0" address="RAM:0011"/>
<symbol name="RMAD0" address="RAM:0012"/>
<symbol name="RMAD1" address="RAM:0014"/>
<symbol name="RMAD1" address="RAM:0015"/>
<symbol name="RMAD1" address="RAM:0016"/>
<symbol name="RMAD2" address="RAM:0018"/>
<symbol name="RMAD2" address="RAM:0019"/>
<symbol name="RMAD2" address="RAM:001A"/>
<symbol name="RMAD3" address="RAM:001C"/>
<symbol name="RMAD3" address="RAM:001D"/>
<symbol name="RMAD3" address="RAM:001E"/>
<symbol name="EIAD" address="RAM:0020"/>
<symbol name="EIAD" address="RAM:0021"/>
<symbol name="EIAD" address="RAM:0022"/>
<symbol name="EITD" address="RAM:0023"/>
<symbol name="EPRR" address="RAM:0024"/>
<symbol name="ROA" address="RAM:0030"/>
<symbol name="DBA" address="RAM:0031"/>
<symbol name="EXA0" address="RAM:0032"/>
<symbol name="EXA1" address="RAM:0033"/>
<symbol name="EXA2" address="RAM:0034"/>
<symbol name="EXA3" address="RAM:0035"/>
<symbol name="DRAMCONT" address="RAM:0040"/>
<symbol name="REFCNT" address="RAM:0041"/>
<symbol name="DM0IC" address="RAM:0068"/>
<symbol name="TB5IC" address="RAM:0069"/>
<symbol name="DM1IC" address="RAM:006A"/>
<symbol name="S2RIC" address="RAM:006B"/>
<symbol name="TA0IC" address="RAM:006C"/>
<symbol name="S3RIC" address="RAM:006D"/>
<symbol name="TA2IC" address="RAM:006E"/>
<symbol name="SR4RIC" address="RAM:006F"/>
<symbol name="TA4IC" address="RAM:0070"/>
<symbol name="BCN3IC" address="RAM:0071"/>
<symbol name="S0RIC" address="RAM:0072"/>
<symbol name="ADIC" address="RAM:0073"/>
<symbol name="S1RIC" address="RAM:0074"/>
<symbol name="TB1IC" address="RAM:0076"/>
<symbol name="TB3IC" address="RAM:0078"/>
<symbol name="INT5IC" address="RAM:007A"/>
<symbol name="INT3IC" address="RAM:007C"/>
<symbol name="INT1IC" address="RAM:007E"/>
<symbol name="DM1IC" address="RAM:0088"/>
<symbol name="S2TIC" address="RAM:0089"/>
<symbol name="DM3IC" address="RAM:008A"/>
<symbol name="S3TIC" address="RAM:008B"/>
<symbol name="TA1IC" address="RAM:008C"/>
<symbol name="S4TIC" address="RAM:008D"/>
<symbol name="TA3IC" address="RAM:008E"/>
<symbol name="BCN2IC" address="RAM:008F"/>
<symbol name="S0TIC" address="RAM:0090"/>
<symbol name="BCN4IC" address="RAM:0091"/>
<symbol name="S1TIC" address="RAM:0092"/>
<symbol name="KUPIC" address="RAM:0093"/>
<symbol name="TB0IC" address="RAM:0094"/>
<symbol name="TB2IC" address="RAM:0096"/>
<symbol name="TB4IC" address="RAM:0098"/>
<symbol name="INT4IC" address="RAM:009A"/>
<symbol name="INT2IC" address="RAM:009C"/>
<symbol name="INT0IC" address="RAM:009E"/>
<symbol name="RLVL" address="RAM:009F"/>
<symbol name="Y0R" address="RAM:02C0"/>
<symbol name="Y0R" address="RAM:02C1"/>
<symbol name="Y1R" address="RAM:02C2"/>
<symbol name="Y1R" address="RAM:02C3"/>
<symbol name="Y2R" address="RAM:02C4"/>
<symbol name="Y2R" address="RAM:02C5"/>
<symbol name="Y3R" address="RAM:02C6"/>
<symbol name="Y3R" address="RAM:02C7"/>
<symbol name="Y4R" address="RAM:02C8"/>
<symbol name="Y4R" address="RAM:02C9"/>
<symbol name="Y5R" address="RAM:02CA"/>
<symbol name="Y5R" address="RAM:02CB"/>
<symbol name="Y6R" address="RAM:02CC"/>
<symbol name="Y6R" address="RAM:02CD"/>
<symbol name="Y7R" address="RAM:02CE"/>
<symbol name="Y7R" address="RAM:02CF"/>
<symbol name="Y8R" address="RAM:02D0"/>
<symbol name="Y8R" address="RAM:02D1"/>
<symbol name="Y9R" address="RAM:02D2"/>
<symbol name="Y9R" address="RAM:02D3"/>
<symbol name="Y10R" address="RAM:02D4"/>
<symbol name="Y10R" address="RAM:02D5"/>
<symbol name="Y11R" address="RAM:02D6"/>
<symbol name="Y11R" address="RAM:02D7"/>
<symbol name="Y12R" address="RAM:02D8"/>
<symbol name="Y12R" address="RAM:02D9"/>
<symbol name="Y13R" address="RAM:02DA"/>
<symbol name="Y13R" address="RAM:02DB"/>
<symbol name="Y14R" address="RAM:02DC"/>
<symbol name="Y14R" address="RAM:02DD"/>
<symbol name="Y15R" address="RAM:02DE"/>
<symbol name="Y15R" address="RAM:02DF"/>
<symbol name="XYC" address="RAM:02E0"/>
<symbol name="U4SMR3" address="RAM:02F5"/>
<symbol name="U4SMR2" address="RAM:02F6"/>
<symbol name="U4SMR" address="RAM:02F7"/>
<symbol name="U4MR" address="RAM:02F8"/>
<symbol name="U4BRG" address="RAM:02F9"/>
<symbol name="U4TB" address="RAM:02FA"/>
<symbol name="U4TB" address="RAM:02FB"/>
<symbol name="U4C0" address="RAM:02FC"/>
<symbol name="U4C1" address="RAM:02FD"/>
<symbol name="U4RB" address="RAM:02FE"/>
<symbol name="U4RB" address="RAM:02FF"/>
<symbol name="TBSR" address="RAM:0300"/>
<symbol name="TA11" address="RAM:0302"/>
<symbol name="TA11" address="RAM:0303"/>
<symbol name="TA21" address="RAM:0304"/>
<symbol name="TA21" address="RAM:0305"/>
<symbol name="TA41" address="RAM:0306"/>
<symbol name="TA41" address="RAM:0307"/>
<symbol name="INVC0" address="RAM:0308"/>
<symbol name="INVC1" address="RAM:0309"/>
<symbol name="IDB0" address="RAM:030A"/>
<symbol name="IDB1" address="RAM:030B"/>
<symbol name="DTT" address="RAM:030C"/>
<symbol name="ICTB2" address="RAM:030D"/>
<symbol name="TB3" address="RAM:0310"/>
<symbol name="TB3" address="RAM:0311"/>
<symbol name="TB4" address="RAM:0312"/>
<symbol name="TB4" address="RAM:0313"/>
<symbol name="TB5" address="RAM:0314"/>
<symbol name="TB5" address="RAM:0315"/>
<symbol name="TB3MR" address="RAM:031B"/>
<symbol name="TB4MR" address="RAM:031C"/>
<symbol name="TB5MR" address="RAM:031D"/>
<symbol name="IFSR" address="RAM:031F"/>
<symbol name="U3SMR3" address="RAM:0325"/>
<symbol name="U3SMR2" address="RAM:0326"/>
<symbol name="U3SMR" address="RAM:0327"/>
<symbol name="U3MR" address="RAM:0328"/>
<symbol name="U3BRG" address="RAM:0329"/>
<symbol name="U3TB" address="RAM:032A"/>
<symbol name="U3TB" address="RAM:032B"/>
<symbol name="U3C0" address="RAM:032C"/>
<symbol name="U3C1" address="RAM:032D"/>
<symbol name="U3RB" address="RAM:032E"/>
<symbol name="U3RB" address="RAM:032F"/>
<symbol name="U2SMR3" address="RAM:0335"/>
<symbol name="U2SMR2" address="RAM:0336"/>
<symbol name="U2SMR" address="RAM:0337"/>
<symbol name="U2MR" address="RAM:0338"/>
<symbol name="U2BRG" address="RAM:0339"/>
<symbol name="U2TB" address="RAM:033A"/>
<symbol name="U2TB" address="RAM:033B"/>
<symbol name="U2C0" address="RAM:033C"/>
<symbol name="U2C1" address="RAM:033D"/>
<symbol name="U2RB" address="RAM:033E"/>
<symbol name="U2RB" address="RAM:033F"/>
<symbol name="TABSR" address="RAM:0340"/>
<symbol name="CPSRF" address="RAM:0341"/>
<symbol name="ONSF" address="RAM:0342"/>
<symbol name="TGSR" address="RAM:0343"/>
<symbol name="UDF" address="RAM:0344"/>
<symbol name="TA0" address="RAM:0346"/>
<symbol name="TA0" address="RAM:0347"/>
<symbol name="TA1" address="RAM:0348"/>
<symbol name="TA1" address="RAM:0349"/>
<symbol name="TA2" address="RAM:034A"/>
<symbol name="TA2" address="RAM:034B"/>
<symbol name="TA3" address="RAM:034C"/>
<symbol name="TA3" address="RAM:034D"/>
<symbol name="TA4" address="RAM:034E"/>
<symbol name="TA4" address="RAM:034F"/>
<symbol name="TB0" address="RAM:0350"/>
<symbol name="TB0" address="RAM:0351"/>
<symbol name="TB1" address="RAM:0352"/>
<symbol name="TB1" address="RAM:0353"/>
<symbol name="TB2" address="RAM:0354"/>
<symbol name="TB2" address="RAM:0355"/>
<symbol name="TA0MR" address="RAM:0356"/>
<symbol name="TA1MR" address="RAM:0357"/>
<symbol name="TA2MR" address="RAM:0358"/>
<symbol name="TA3MR" address="RAM:0359"/>
<symbol name="TA4MR" address="RAM:035A"/>
<symbol name="TB0MR" address="RAM:035B"/>
<symbol name="TB1MR" address="RAM:035C"/>
<symbol name="TB2MR" address="RAM:035D"/>
<symbol name="U0MR" address="RAM:0360"/>
<symbol name="U0BRG" address="RAM:0361"/>
<symbol name="U0TB" address="RAM:0362"/>
<symbol name="U0TB" address="RAM:0363"/>
<symbol name="U0C0" address="RAM:0364"/>
<symbol name="U0C1" address="RAM:0365"/>
<symbol name="U0RB" address="RAM:0366"/>
<symbol name="U0RB" address="RAM:0367"/>
<symbol name="U1MR" address="RAM:0367"/>
<symbol name="U1BRG" address="RAM:0369"/>
<symbol name="U1TB" address="RAM:036A"/>
<symbol name="U1TB" address="RAM:036B"/>
<symbol name="U1C0" address="RAM:036C"/>
<symbol name="U1C1" address="RAM:036D"/>
<symbol name="U1RB" address="RAM:036E"/>
<symbol name="U1RB" address="RAM:036F"/>
<symbol name="FMR1" address="RAM:0376"/>
<symbol name="FMR0" address="RAM:0377"/>
<symbol name="DM0SL" address="RAM:0378"/>
<symbol name="DM1SL" address="RAM:0379"/>
<symbol name="DM2SL" address="RAM:037A"/>
<symbol name="DM3SL" address="RAM:037B"/>
<symbol name="CRCD" address="RAM:037C"/>
<symbol name="CRCD" address="RAM:037D"/>
<symbol name="CRCIN" address="RAM:037E"/>
<symbol name="AD0" address="RAM:0380"/>
<symbol name="AD0" address="RAM:0381"/>
<symbol name="AD1" address="RAM:0382"/>
<symbol name="AD1" address="RAM:0383"/>
<symbol name="AD2" address="RAM:0384"/>
<symbol name="AD2" address="RAM:0385"/>
<symbol name="AD3" address="RAM:0386"/>
<symbol name="AD3" address="RAM:0387"/>
<symbol name="AD4" address="RAM:0388"/>
<symbol name="AD4" address="RAM:0389"/>
<symbol name="AD5" address="RAM:038A"/>
<symbol name="AD5" address="RAM:039B"/>
<symbol name="AD6" address="RAM:039C"/>
<symbol name="AD6" address="RAM:039D"/>
<symbol name="AD7" address="RAM:039E"/>
<symbol name="AD7" address="RAM:039F"/>
<symbol name="ADCON2" address="RAM:0394"/>
<symbol name="ADCON0" address="RAM:0396"/>
<symbol name="ADCON1" address="RAM:0397"/>
<symbol name="DA0" address="RAM:0398"/>
<symbol name="DA1" address="RAM:039A"/>
<symbol name="DACON" address="RAM:039C"/>
<symbol name="PSC" address="RAM:03AF"/>
<symbol name="PS0" address="RAM:03B0"/>
<symbol name="PS1" address="RAM:03B1"/>
<symbol name="PSL0" address="RAM:03B2"/>
<symbol name="PSL1" address="RAM:03B3"/>
<symbol name="PS2" address="RAM:03B4"/>
<symbol name="PS3" address="RAM:03B5"/>
<symbol name="PSL2" address="RAM:03B6"/>
<symbol name="PSL3" address="RAM:03B7"/>
<symbol name="P6" address="RAM:03C0"/>
<symbol name="P7" address="RAM:03C1"/>
<symbol name="PD6" address="RAM:03C2"/>
<symbol name="PD7" address="RAM:03C3"/>
<symbol name="P8" address="RAM:03C4"/>
<symbol name="P9" address="RAM:03C5"/>
<symbol name="PD8" address="RAM:03C6"/>
<symbol name="PD9" address="RAM:03C7"/>
<symbol name="P10" address="RAM:03C8"/>
<symbol name="PD10" address="RAM:03CA"/>
<symbol name="PUR2" address="RAM:03DA"/>
<symbol name="PUR3" address="RAM:03DB"/>
<symbol name="P0" address="RAM:03E0"/>
<symbol name="P1" address="RAM:03E1"/>
<symbol name="PD0" address="RAM:03E2"/>
<symbol name="PD1" address="RAM:03E3"/>
<symbol name="P2" address="RAM:03E4"/>
<symbol name="P3" address="RAM:03E5"/>
<symbol name="PD2" address="RAM:03E6"/>
<symbol name="PD3" address="RAM:03E7"/>
<symbol name="P4" address="RAM:03E8"/>
<symbol name="P5" address="RAM:03E9"/>
<symbol name="PD4" address="RAM:03EA"/>
<symbol name="PD5" address="RAM:03EB"/>
<symbol name="PUR0" address="RAM:03F0"/>
<symbol name="PUR1" address="RAM:03F1"/>
<symbol name="PCR" address="RAM:03FF"/>
<symbol name="UNDEFINED_INSTRUCTION_INT_VECTOR" address="RAM:FFFFDC" entry="true" type="code_ptr"/>
<symbol name="OVERFLOW_INTO_VECTOR" address="RAM:FFFFE0" entry="true" type="code_ptr"/>
<symbol name="BRK_INSTRUCTION_INT_VECTOR" address="RAM:FFFFE4" entry="true" type="code_ptr"/>
<symbol name="ADDRESS_MATCH_INT_VECTOR" address="RAM:FFFFE8" entry="true" type="code_ptr"/>
<symbol name="SINGLE_STEP_INT_VECTOR" address="RAM:FFFFEC" entry="true" type="code_ptr"/>
<symbol name="WATCHDOG_TIMER_INT_VECTOR" address="RAM:FFFFF0" entry="true" type="code_ptr"/>
<symbol name="NOT_DBC_INT_VECTOR" address="RAM:FFFFF4" entry="true" type="code_ptr"/>
<symbol name="NOT_NMI_INT_VECTOR" address="RAM:FFFFF8" entry="true" type="code_ptr"/>
<symbol name="RESET_INT_VECTOR" address="RAM:FFFFFC" eentry="true" type="code_ptr"/>
</default_symbols>
<default_memory_blocks>
<memory_block name="SFR" start_address="RAM:0000" mode="rw" length="0x03FF" initialized="false"/>
</default_memory_blocks>
</processor_spec>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,95 @@
@m16csm.pdf
ABS, 55
ADC, 56
ADCF, 57
ADD, 58
ADJNZ, 60
AND, 61
BAND, 63
BCLR, 64
BM, 65
BNAND, 66
BNOR, 67
BNOT, 68
BNTST, 69
BNXOR, 70
BOR, 71
BRK, 72
BSET, 73
BTST, 74
BTSTC, 75
BTSTS, 76
BXOR, 77
CMP, 78
DADC, 80
DADD, 81
DEC, 82
DIV, 83
DIVU, 84
DIVX, 85
DSBB, 86
DSUB, 87
ENTER, 88
EXITD, 89
EXTS, 90
FCLR, 91
FSET, 92
INC, 93
INT, 94
INTO, 95
J, 96
JMP, 97
JMPI, 98
JMPS, 99
JSR, 100
JSRI, 101
JSRS, 102
LDC, 103
LDCTX, 104
LDE, 105
LDINTB, 106
LDIPL, 107
MOV, 108
MOVA, 110
MOVHH, 111
MOVHL, 111
MOVLH, 111
MOVLL, 111
MUL, 112
MULU, 113
NEG, 114
NOP, 115
NOT, 116
OR, 117
POP, 119
POPC, 120
POPM, 121
PUSH, 122
PUSHA, 123
PUSHC, 124
PUSHM, 125
REIT, 126
RMPA, 127
ROLC, 128
RORC, 129
ROT, 130
RTS, 131
SBB, 132
SBJNZ, 133
SHA, 134
SHL, 135
SMOVB, 136
SMOVF, 137
SSTR, 138
STC, 139
STCTX, 140
STE, 141
STNZ, 142
STZ, 143
STZX, 144
SUB, 145
TST, 147
UND, 148
WAIT, 149
XCHG, 150
XOR, 151

View File

@ -0,0 +1,110 @@
@m16c80.pdf
ABS, 60
ADC, 61
ADCF, 62
ADD, 63
ADDX, 65
ADJNZ, 66
AND, 67
BAND, 69
BCLR, 70
BITINDEX, 71
BM, 72
BNAND, 73
BNOR, 74
BNOT, 75
BNTST, 76
BNXOR, 77
BOR, 78
BRK, 79
BRK2, 80
BSET, 81
BTST, 82
BTSTC, 83
BTSTS, 84
BXOR, 85
CLIP, 86
CMP, 87
CMPX, 89
DADC, 90
DADD, 91
DEC, 92
DIV, 93
DIVU, 94
DIVX, 95
DSBB, 96
DSUB, 97
ENTER, 98
EXITD, 99
EXTS, 100
EXTZ, 101
FLCR, 102
FREIT, 103
FSET, 104
INC, 105
INDEX, 175
INT, 107
INTO, 108
J, 109
JMP, 110
JMPI, 111
JMPS, 112
JSR, 113
JSRI, 114
JSRS, 115
LDC, 116
LDCTX, 117
LDIPL, 118
MAX, 119
MIN, 120
MOV, 121
MOVA, 123
MOVHH, 124
MOVHL, 124
MOVLH, 124
MOVLL, 124
MOVX, 125
MUL, 126
MULEX, 127
MULU, 128
NEG, 129
NOP, 130
NOT, 131
OR, 132
POP, 134
POPC, 135
POPM, 136
PUSH, 137
PUSHA, 138
PUSHC, 139
PUSHM, 140
REIT, 141
RMPA, 142
ROLC, 143
RORC, 144
ROT, 145
RTS, 146
SBB, 147
SBJNZ, 148
SC, 149
SCMPU, 150
SHA, 151
SHL, 153
SIN, 155
SMOVB, 156
SMOVF, 157
SMOVU, 158
SOUT, 159
SSTR, 160
STC, 161
STCTX, 162
STNZ, 163
STZ, 164
STZX, 165
SUB, 166
SUBX, 168
TST, 169
UND, 171
WAIT, 172
XCHG, 173
XOR, 174