Browse Source

base-library: add minimal library example

Because referencing the bible is not the best idea. It would be best to
not duplicate stuff around, so:

* The base-library is a minimal, never-evolving set of files
* The community documentation is in the fxdoc repository
* The OS files are on the bible's common/ folder (cleaning needed)
Lephenixnoir 2 years ago
  1. 22
  2. 225
  3. 26
  4. 4
  5. 118
  6. 145
  7. 454
  8. 11


@ -42,10 +42,10 @@ public for the most part, but some of the reverse-engineering results of the
community are kept private.
A set of base files for a working library can be found in the
[`base-library` folder](base-library) of this repository,
which includes a suitable configuration file. Though unless you want to redo
the research by yourself, you can get shared community data from the
[fxdoc repository](/Lephenixnoir/fxdoc).
[`base-library` folder](base-library) of this repository, which includes a
suitable configuration file (but not the actual OS files because Git would not
appreciate it). But unless you want to redo the research by yourself, I suggest
using shared community data from the [fxdoc repository](/Lephenixnoir/fxdoc).
Next, fxos should be told where to find these files. A small configuration file
should be added at `$HOME/.config/fxos/config` to do this. The configuration
@ -57,16 +57,16 @@ file specifies two types of information:
With the default library, the configuration file should look like this:
library: /path/to/fxos-library
load: /path/to/fxos-library/asmtables
load: /path/to/fxos-library/targets
load: /path/to/fxos-library/symbols
library: /path/to/base-library
load: /path/to/base-library/asmtables
load: /path/to/base-library/targets
load: /path/to/base-library/symbols
This means that fxos data files will be automatically loaded at startup from
the `asmtables`, `targets` and `symbols` directories. Targets refer to OS files
and RAM dumps by path, and these paths will be interpreted relatively to the
`fxos-library` folder. If you create `$PREFIX/share/fxos`, it will also be used
`base-library` folder. If you create `$PREFIX/share/fxos`, it will also be used
as if mentioned on a `library:` line.
## Working with fxos data files
@ -117,8 +117,8 @@ The header of a target must contain:
The body of target consists of a list of *bindings*, which are mappings of
files into areas of the virtual memory. The syntax to specify a binding is
`<region>: <file>`, where:
* The region can be a named region such as `ROM` or `RAM_P2`. The name and
definitions of the available memory regions can be found in
* The region can be a named region such as `ROM` or `RAM_P2`. The names and
definitions of defined memory regions can be found in
* The region can be `<address>(<size>)`, where both address and size are
specified in hexadecimal without prefix. For example, `fd800000(800)` is


@ -0,0 +1,225 @@
type: assembly
name: sh-3
# Format: [01nmdi]{16}, followed by the mnemonic and the list of arguments.
# In each opcode, there should be at most one sequence of "m", "n", "d" and "i"
# each (representing the location of the argument).
# Possible argument strings are predefined and include:
# rn rm #imm
# jump8 jump12 disp pcdisp
# @rn @rm @rn+ @rm+ @-rn
# @(disp,rn) @(disp,rm) @(r0,rn) @(r0,rm) @(disp,gbr)
# The disassembler substitutes some elements as follows:
# rn -> value of the "n"-sequence
# rm -> value of the "m"-sequence
# #imm -> value of the "i"-sequence
# disp -> value of the "d"-sequence
# jump8 -> value of the 8-bit "d"-sequence x2 plus value of PC
# jump12 -> value of the 12-bit "d"-sequence x2 plus value of PC
# @(disp,pc) -> value of the 8-bit "d"-sequence x2 or x4, plus value of PC
# TODO: This list does not exactly reflect the behavior of the parser
0000000001001000 clrs
0000000000001000 clrt
0000000000101000 clrmac
0000000000011001 div0u
0000000000111000 ldtlb
0000000000001001 nop
0000000000101011 rte
0000000000001011 rts
0000000001011000 sets
0000000000011000 sett
0000000000011011 sleep
0100nnnn00010101 cmp/pl rn
0100nnnn00010001 cmp/pz rn
0100nnnn00010000 dt rn
0000nnnn00101001 movt rn
0100nnnn00000100 rotl rn
0100nnnn00000101 rotr rn
0100nnnn00100100 rotcl rn
0100nnnn00100101 rotcr rn
0100nnnn00100000 shal rn
0100nnnn00100001 shar rn
0100nnnn00000000 shll rn
0100nnnn00000001 shlr rn
0100nnnn00001000 shll2 rn
0100nnnn00001001 shlr2 rn
0100nnnn00011000 shll8 rn
0100nnnn00011001 shlr8 rn
0100nnnn00101000 shll16 rn
0100nnnn00101001 shlr16 rn
0011nnnnmmmm1100 add rm, rn
0011nnnnmmmm1110 addc rm, rn
0011nnnnmmmm1111 addv rm, rn
0010nnnnmmmm1001 and rm, rn
0011nnnnmmmm0000 cmp/eq rm, rn
0011nnnnmmmm0010 cmp/hs rm, rn
0011nnnnmmmm0011 cmp/ge rm, rn
0011nnnnmmmm0110 cmp/hi rm, rn
0011nnnnmmmm0111 cmp/gt rm, rn
0010nnnnmmmm1100 cmp/str rm, rn
0011nnnnmmmm0100 div1 rm, rn
0010nnnnmmmm0111 div0s rm, rn
0011nnnnmmmm1101 dmuls.l rm, rn
0011nnnnmmmm0101 dmulu.l rm, rn
0110nnnnmmmm1110 exts.b rm, rn
0110nnnnmmmm1111 exts.w rm, rn
0110nnnnmmmm1100 extu.b rm, rn
0110nnnnmmmm1101 extu.w rm, rn
0110nnnnmmmm0011 mov rm, rn
0000nnnnmmmm0111 mul.l rm, rn
0010nnnnmmmm1111 muls.w rm, rn
0010nnnnmmmm1110 mulu.w rm, rn
0110nnnnmmmm1011 neg rm, rn
0110nnnnmmmm1010 negc rm, rn
0110nnnnmmmm0111 not rm, rn
0010nnnnmmmm1011 or rm, rn
0100nnnnmmmm1100 shad rm, rn
0100nnnnmmmm1101 shld rm, rn
0011nnnnmmmm1000 sub rm, rn
0011nnnnmmmm1010 subc rm, rn
0011nnnnmmmm1011 subv rm, rn
0110nnnnmmmm1000 swap.b rm, rn
0110nnnnmmmm1001 swap.w rm, rn
0010nnnnmmmm1000 tst rm, rn
0010nnnnmmmm1010 xor rm, rn
0010nnnnmmmm1101 xtrct rm, rn
0100mmmm00001110 ldc rm, sr
0100mmmm00011110 ldc rm, gbr
0100mmmm00101110 ldc rm, vbr
0100mmmm00111110 ldc rm, ssr
0100mmmm01001110 ldc rm, spc
0100mmmm10001110 ldc rm, r0_bank
0100mmmm10011110 ldc rm, r1_bank
0100mmmm10101110 ldc rm, r2_bank
0100mmmm10111110 ldc rm, r3_bank
0100mmmm11001110 ldc rm, r4_bank
0100mmmm11011110 ldc rm, r5_bank
0100mmmm11101110 ldc rm, r6_bank
0100mmmm11111110 ldc rm, r7_bank
0100mmmm00001010 lds rm, mach
0100mmmm00011010 lds rm, macl
0100mmmm00101010 lds rm, pr
0000nnnn00000010 stc sr, rn
0000nnnn00010010 stc gbr, rn
0000nnnn00100010 stc vbr, rn
0000nnnn00110010 stc ssr, rn
0000nnnn01000010 stc spc, rn
0000nnnn10000010 stc r0_bank, rn
0000nnnn10010010 stc r1_bank, rn
0000nnnn10100010 stc r2_bank, rn
0000nnnn10110010 stc r3_bank, rn
0000nnnn11000010 stc r4_bank, rn
0000nnnn11010010 stc r5_bank, rn
0000nnnn11100010 stc r6_bank, rn
0000nnnn11110010 stc r7_bank, rn
0000nnnn00001010 sts mach, rn
0000nnnn00011010 sts macl, rn
0000nnnn00101010 sts pr, rn
0100nnnn00101011 jmp @rn
0100nnnn00001011 jsr @rn
0000nnnn10000011 pref @rn
0100nnnn00011011 tas.b @rn
0010nnnnmmmm0000 mov.b rm, @rn
0010nnnnmmmm0001 mov.w rm, @rn
0010nnnnmmmm0010 mov.l rm, @rn
0110nnnnmmmm0000 mov.b @rm, rn
0110nnnnmmmm0001 mov.w @rm, rn
0110nnnnmmmm0010 mov.l @rm, rn
0000nnnnmmmm1111 mac.l @rm+, @rn+
0100nnnnmmmm1111 mac.w @rm+, @rn+
0110nnnnmmmm0100 mov.b @rm+, rn
0110nnnnmmmm0101 mov.w @rm+, rn
0110nnnnmmmm0110 mov.l @rm+, rn
0100mmmm00000111 ldc.l @rm+, sr
0100mmmm00010111 ldc.l @rm+, gbr
0100mmmm00100111 ldc.l @rm+, vbr
0100mmmm00110111 ldc.l @rm+, ssr
0100mmmm01000111 ldc.l @rm+, spc
0100mmmm10000111 ldc.l @rm+, r0_bank
0100mmmm10010111 ldc.l @rm+, r1_bank
0100mmmm10100111 ldc.l @rm+, r2_bank
0100mmmm10110111 ldc.l @rm+, r3_bank
0100mmmm11000111 ldc.l @rm+, r4_bank
0100mmmm11010111 ldc.l @rm+, r5_bank
0100mmmm11100111 ldc.l @rm+, r6_bank
0100mmmm11110111 ldc.l @rm+, r7_bank
0100mmmm00000110 lds.l @rm+, mach
0100mmmm00010110 lds.l @rm+, macl
0100mmmm00100110 lds.l @rm+, pr
0010nnnnmmmm0100 mov.b rm, @-rn
0010nnnnmmmm0101 mov.w rm, @-rn
0010nnnnmmmm0110 mov.l rm, @-rn
0100nnnn00000011 stc.l sr, @-rn
0100nnnn00010011 stc.l gbr, @-rn
0100nnnn00100011 stc.l vbr, @-rn
0100nnnn00110011 stc.l ssr, @-rn
0100nnnn01000011 stc.l spc, @-rn
0100nnnn10000011 stc.l r0_bank, @-rn
0100nnnn10010011 stc.l r1_bank, @-rn
0100nnnn10100011 stc.l r2_bank, @-rn
0100nnnn10110011 stc.l r3_bank, @-rn
0100nnnn11000011 stc.l r4_bank, @-rn
0100nnnn11010011 stc.l r5_bank, @-rn
0100nnnn11100011 stc.l r6_bank, @-rn
0100nnnn11110011 stc.l r7_bank, @-rn
0100nnnn00000010 sts.l mach, @-rn
0100nnnn00010010 sts.l macl, @-rn
0100nnnn00100010 sts.l pr, @-rn
10000000nnnndddd mov.b r0, @(disp,rn)
10000001nnnndddd mov.w r0, @(disp,rn)
0001nnnnmmmmdddd mov.l rm, @(disp,rn)
10000100mmmmdddd mov.b @(disp,rm), r0
10000101mmmmdddd mov.w @(disp,rm), r0
0101nnnnmmmmdddd mov.l @(disp,rm), rn
0000nnnnmmmm0100 mov.b rm, @(r0,rn)
0000nnnnmmmm0101 mov.w rm, @(r0,rn)
0000nnnnmmmm0110 mov.l rm, @(r0,rn)
0000nnnnmmmm1100 mov.b @(r0,rm), rn
0000nnnnmmmm1101 mov.w @(r0,rm), rn
0000nnnnmmmm1110 mov.l @(r0,rm), rn
11000000dddddddd mov.b r0, @(disp,gbr)
11000001dddddddd mov.w r0, @(disp,gbr)
11000010dddddddd mov.l r0, @(disp,gbr)
11000100dddddddd mov.b @(disp,gbr), r0
11000101dddddddd mov.w @(disp,gbr), r0
11000110dddddddd mov.l @(disp,gbr), r0
11001101iiiiiiii and.b #imm, @(r0,gbr)
11001111iiiiiiii or.b #imm, @(r0,gbr)
11001100iiiiiiii tst.b #imm, @(r0,gbr)
11001110iiiiiiii xor.b #imm, @(r0,gbr)
1001nnnndddddddd mov.w @(disp,pc), rn
1101nnnndddddddd mov.l @(disp,pc), rn
11000111dddddddd mova.l @(disp,pc), r0
0000mmmm00100011 braf rm
0000mmmm00000011 bsrf rm
10001011dddddddd bf jump8
10001111dddddddd bf.s jump8
10001001dddddddd bt jump8
10001101dddddddd bt.s jump8
1010dddddddddddd bra jump12
1011dddddddddddd bsr jump12
0111nnnniiiiiiii add #imm, rn
11001001iiiiiiii and #imm, r0
10001000iiiiiiii cmp/eq #imm, r0
1110nnnniiiiiiii mov #imm, rn
11001011iiiiiiii or #imm, r0
11001000iiiiiiii tst #imm, r0
11001010iiiiiiii xor #imm, r0
11000011iiiiiiii trapa #imm


@ -0,0 +1,26 @@
type: assembly
name: sh-4a-extensions
0000nnnn01110011 movco.l r0, @rn
0000mmmm01100011 movli.l @rm, r0
0100mmmm10101001 movua.l @rm, r0
0100mmmm11101001 movua.l @rm+, r0
0000nnnn11000011 movca.l r0, @rn
0000nnnn11100011 icbi @rn
0000nnnn10010011 ocbi @rn
0000nnnn10100011 ocbp @rn
0000nnnn10110011 ocbwb @rn
0000nnnn11010011 prefi @rn
0000000010101011 synco
0100mmmm00111010 ldc rm, sgr
0100mmmm11111010 ldc rm, dbr
0100mmmm00110110 ldc.l @rm+, sgr
0100mmmm11110110 ldc.l @rm+, dbr
0000nnnn00111010 stc sgr, rn
0000nnnn11111010 stc dbr, rn
0100nnnn00110010 stc.l sgr, @-rn
0100nnnn11110010 stc.l dbr, @-rn


@ -0,0 +1,4 @@
library: /path/to/base-library
load: /path/to/base-library/asmtables
load: /path/to/base-library/targets
load: /path/to/base-library/symbols


@ -0,0 +1,118 @@
type: symbols
name: regs-sh7305
# T6K11 interface
b4000000 T6K11.REG
b4010000 T6K11.DATA
# Exception handling
ff000020 TRA
ff000024 EXPEVT
ff000028 INTEVT
ff2f0004 EXPMASK
# Memory Management Unit
ff000000 MMU.PTEH
ff000004 MMU.PTEL
ff00000c MMU.TEA
ff000010 MMU.MMUCR
ff000034 MMU.PTEA
ff000070 MMU.PASCR
ff000078 MMU.IRMCR
# Interrupt controller
a4140000 INTC.ICR0
a414001c INTC.ICR1
a4140010 INTC.INTPRI00
a4140024 INTC.INTREQ00
a4140044 INTC.INTMSK00
a41400c0 INTC.NMIFCR
a4080000 INTC.IPRA
a4080004 INTC.IPRB
a4080008 INTC.IPRC
a408000c INTC.IPRD
a4080010 INTC.IPRE
a4080014 INTC.IPRF
a4080018 INTC.IPRG
a408001c INTC.IPRH
a4080020 INTC.IPRI
a4080024 INTC.IPRJ
a4080028 INTC.IPRK
a408002c INTC.IPRL
a4080080 INTC.IMR0
a4080084 INTC.IMR1
a4080088 INTC.IMR2
a408008c INTC.IMR3
a4080090 INTC.IMR4
a4080094 INTC.IMR5
a4080098 INTC.IMR6
a408009c INTC.IMR7
a40800a0 INTC.IMR8
a40800a4 INTC.IMR9
a40800a8 INTC.IMR10
a40800ac INTC.IMR11
a40800b0 INTC.IMR12
a40800c0 INTC.IMCR0
a40800c4 INTC.IMCR1
a40800c8 INTC.IMCR2
a40800cc INTC.IMCR3
a40800d0 INTC.IMCR4
a40800d4 INTC.IMCR5
a40800d8 INTC.IMCR6
a40800dc INTC.IMCR7
a40800e0 INTC.IMCR8
a40800e4 INTC.IMCR9
a40800e8 INTC.IMCR10
a40800ec INTC.IMCR11
a40800f0 INTC.IMCR12
# Direct Memory Access Controller: TODO
# Reset and power-down modes
a4150020 POWER.STBCR
a4150030 POWER.MSTPCR0
a4150034 POWER.MSTPCR1
a4150038 POWER.MSTPCR2
a4150040 POWER.BAR
# Real-Time Clock
a413fec0 RTC.R64CNT
a413fec2 RTC.RSECCNT
a413fec4 RTC.RMINCNT
a413fec6 RTC.RHRCNT
a413fec8 RTC.RWKCNT
a413feca RTC.RDAYCNT
a413fecc RTC.RMONCNT
a413fece RTC.RYRCNT
a413fed0 RTC.RSECAR
a413fed2 RTC.RMINAR
a413fed4 RTC.RHRAR
a413fed6 RTC.RWKAR
a413fed8 RTC.RDAYAR
a413feda RTC.RMONAR
a413fedc RTC.RCR1
a413fede RTC.RCR2
a413fee0 RTC.RYRAR
a413fee4 RTC.RCR3
# User Break Controller
ff200000 UBC.CBR0
ff200004 UBC.CRR0
ff200008 UBC.CAR0
ff20000c UBC.CAMR0
ff200020 UBC.CBR1
ff200024 UBC.CRR1
ff200028 UBC.CAR1
ff20002c UBC.CAMR1
ff200030 UBC.CDR1
ff200034 UBC.CDMR1
ff200038 UBC.CETR1
ff200600 UBC.CCMFR
ff200620 UBC.CBCR
# RCLK Watchdog Timer
a4520000 RWDT.RWTCNT


@ -0,0 +1,145 @@
type: symbols
name: regs-simlo
# Processor version
ff2f0000 CPUOPM
ff000030 PVR
ff000040 CVR
ff000044 PRR
# Key Scan Interface
a44b0000 KEYSC.DATA
# Timer Unit
a4490004 TMU.TSTR
a4490008 TMU0.TCOR
a449000c TMU0.TCNT
a4490010 TMU0.TCR
a4490014 TMU1.TCOR
a4490018 TMU1.TCNT
a449001c TMU1.TCR
a4490020 TMU2.TCOR
a4490024 TMU2.TCNT
a4490028 TMU2.TCR
# Serial Communication Interface
a4410000 SCIF.SCSMR
a4410004 SCIF.SCBRR
a4410008 SCIF.SCSCR
a441000c SCIF.SCFTDR
a4410010 SCIF.SCFSR
a4410014 SCIF.SCFRDR
a4410018 SCIF.SCFCR
a441001c SCIF.SCFDR
a4410024 SCIF.SCLSR
# Pin Function Controller
a4050100 PFC.PACR
a4050102 PFC.PBCR
a4050104 PFC.PCCR
a4050106 PFC.PDCR
a4050108 PFC.PECR
a405010a PFC.PFCR
a405010c PFC.PGCR
a405010e PFC.PHCR
a4050110 PFC.PJCR
a4050112 PFC.PKCR
a4050114 PFC.PLCR
a4050116 PFC.PMCR
a4050118 PFC.PNCR
a405014c PFC.PPCR
a405011a PFC.PQCR
a405011c PFC.PRCR
a405011e PFC.PSCR
a4050140 PFC.PTCR
a4050142 PFC.PUCR
a4050144 PFC.PVCR
a405014e PFC.PSELA
a4050150 PFC.PSELB
a4050152 PFC.PSELC
a4050154 PFC.PSELD
a4050156 PFC.PSELE
a405015e PFC.PSELF
a40501c8 PFC.PSELG
a40501d6 PFC.PSELH
a4050158 PFC.HIZCRA
a405015a PFC.HIZCRB
a405015c PFC.HIZCRC
a4050180 PFC.MSELCRA
a4050182 PFC.MSELCRB
a4050184 PFC.DRVCRD
a4050186 PFC.DRVCRA
a4050188 PFC.DRVCRB
a405018a PFC.DRVCRC
a4050190 PFC.PULCRA
a4050191 PFC.PULCRB
a4050192 PFC.PULCRC
a4050193 PFC.PULCRD
a4050194 PFC.PULCRE
a4050195 PFC.PULCRF
a4050196 PFC.PULCRG
a4050197 PFC.PULCRH
a4050198 PFC.PULCRJ
a4050199 PFC.PULCRK
a405019a PFC.PULCRL
a405019b PFC.PULCRM
a405019c PFC.PULCRN
a40501c6 PFC.PULCRP
a405019d PFC.PULCRQ
a405019e PFC.PULCRR
a405019f PFC.PULCRS
a40501c0 PFC.PULCRT
a40501c1 PFC.PULCRU
a40501c2 PFC.PULCRV
# Bus State Controller
fec10000 BSC.CMNCR
fec10004 BSC.CS0BCR
fec10008 BSC.CS2BCR
fec1000c BSC.CS3BCR
fec10010 BSC.CS4BCR
fec10014 BSC.CS5ABCR
fec10018 BSC.CS5BBCR
fec1001c BSC.CS6ABCR
fec10020 BSC.CS6BBCR
fec10024 BSC.CS0WCR
fec10028 BSC.CS2WCR
fec1002c BSC.CS3WCR
fec10030 BSC.CS4WCR
fec10034 BSC.CS5AWCR
fec10038 BSC.CS5BWCR
fec1003c BSC.CS6AWCR
fec10040 BSC.CS6BWCR
fec10044 BSC.SDCR
fec10048 BSC.RTCSR
fec1004c BSC.RTCNT
fec10050 BSC.RTCOR
fec14000 BSC.SDMR2
fec15000 BSC.SDMR3
# Clock Pulse Generator
a4150000 CPG.FRQCR
a4150008 CPG.FCLKCR
a4150010 CPG.DDCLKCR
a4150024 CPG.PLLCR
a4150028 CPG.PLL2CR
a4150044 CPG.SSCGCR
a4150050 CPG.FLLFRQ
a4150060 CPG.LSTATS
# More addresses are around on Casiopeia.
# See


@ -0,0 +1,454 @@
type: symbols
name: syscalls-simlo
%001 vbr_tlb_error
%002 vbr_cpu_address
%003 vbr_tlb_exception
%005 App_RegisterAddins
%009 App_FindFreeAddinSlot
%00a App_GetAddinHeaderAddr
%00e App_GetAddindEstrip
%013 GlibAddinAplExecutionCheck
%014 GlibGetAddinLibInfo
%015 GlibGetOSVersionInfo
%018 MMU_FlushCache
%01b DD_Clear
%01c Bdisp_WriteGraph_VRAM
%01d Bdisp_WriteGraph_DD
%01e Bdisp_WriteGraph_DDVRAM
%022 Bdisp_ReadArea_VRAM
%023 Bdisp_ReadArea_DD
%024 Bdisp_GetDisp_DD
%025 DD_Read
%026 DD_ReadFromPage
%027 DD_WriteToPage
%028 Bdisp_PutDisp_DD
%02a Bdisp_DrawShapeToVRAM
%02f Bdisp_DrawShapeToVRAM
%030 Bdisp_DrawLineVRAM
%031 Bdisp_ClearLineVRAM
%032 Bdisp_DrawShapeToDD
%033 Bdisp_DrawShapeToVRAM_DD
%034 Bdisp_DrawShapeToDD
%035 Bdisp_DrawShapeToVRAM_DD
%039 RTC_Reset
%03a RTC_GetTime
%03b RTC_GetTicks
%03c RTC_Elapsed_ms
%05c Num_UIntToBCD
%05d Num_BCDToUInt
%118 Timer_Install
%119 Timer_Deinstall
%11a Timer_Start
%11b Timer_Stop
%11f Bdisp_PutDispArea_DD
%12d DD_Poweroff
%130 Wait_ms
%132 DD_SetContrast
%133 DD_SetFRS
%134 DD_SetBias
%135 GetVRAMAddress
%136 GetCharacterGlyph
%137 GetCharacterMiniGlyph
%138 Cursor_SetPosition
%139 Cursor_SetFlashStyle
%13a Cursor_SetFlashMode
%13b Cursor_GetSettings
%13c Print_OS
%142 Bdisp_AllClr_DD
%143 Bdisp_AllClr_VRAM
%144 Bdisp_AllClr_DDVRAM
%145 Bdisp_GetDisp_VRAM
%146 Bdisp_SetPoint_VRAM
%147 Bdisp_SetPoint_DD
%148 Bdisp_SetPoint_DDVRAM
%149 Bdisp_GetPoint_VRAM
%14a Bdisp_AreaClr_DD
%14b Bdisp_AreaClr_VRAM
%14c Bdisp_AreaClr_DDVRAM
%14d Bdisp_AreaReverseVRAM
%150 PrintXY
%153 Disp_Save
%154 Disp_Restore
%155 Disp_GetPtr
%156 PopUpWin
%158 Disp_Manage
%159 System_UpdateOS
%15d PrintCR
%15f atoi
%160 LongToAsc
%161 LongToAscHex
%162 pc_toupper
%163 pc_tolower
%172 strcmp
%173 strcmp
%175 some_datatable
%176 DiagnosticMode
%18a InvertMem
%19f SMEM_Optimization
%1a9 GUI_ProgressBar
%1b7 Get8x8BitmapPointer_1
%1b8 Get8x8BitmapPointer_2
%1b9 Get8x8BitmapPointer_3
%1ba Get8x8BitmapPointer_4
%1bb Get8x8BitmapPointer_5
%1bc Get8x8BitmapPointer_6
%1bd Get8x8BitmapPointer_7
%20e StorageMemory_GetFilePos
%236 RebootOS
%23d RTC_TriggerAlarm
%23e RTC_SetDateTime
%241 Keyboard_ClrBuffer
%242 Bkey_Set_RepeatTime
%243 Bkey_Get_RepeatTime
%244 Bkey_Set_RepeatTime_Default
%245 Keyboard_EnableAutoRepeat
%246 Keyboard_DisableAutoRepeat
%247 Keyboard_GetKeyWait
%248 Keyboard_PutKeycode
%249 Keyboard_GetKeyDownTime
%24a Keyboard_IsAnyKeyDown
%24b Keyboard_IsSpecialKeyDown
%24c Keyboard_IsSpecialKeyDown
%24d Keyboard_KeyDown
%24e Keyboard_SecondaryInterruptHandler
%24f Keyboard_PutKeymatrixCode
%251 Keyboard_TimerHandler
%25e Keyboard_PrimaryInterruptHandler
%268 GetFKeyIconPointer
%284 BCD_GetNaN
%285 Serial_Open_57600
%286 BCD_AnsToSerial
%28d Comm_Open
%28e Comm_Close
%28f Comm_WaitForAnyBuffer
%290 Comm_ReadOneByte
%291 Comm_TransmitOneByte
%292 Comm_WaitForAndReadNBytes
%293 Comm_TransmitNBytes
%294 Comm_ClearReceiveBuffer
%295 Comm_ClearTransmitBuffer
%296 Comm_IsValidPacketAvailable
%298 Comm_IsOpen
%299 Comm_GetCurrentSelector
%2a1 HexToByte
%2a2 HexToWord
%2a3 ByteToHex
%2a4 WordToHex
%2a5 Comm_Padding_5C
%2a6 Comm_ReversePadding_5C
%2a7 AscHexToNibble
%2a8 NibbleToAscHex
%2a9 strlen
%2aa slow_memcpy
%2ab Serial_Open2
%2af Comm_Spy0thByte
%2db Comm_ProcessInPacket
%2e1 Comm_PrepareAckPacket
%2e2 Comm_PrepareErrorPacket
%2e3 Comm_PrepareTerminatePacket
%2e4 Comm_PrepareRoleswapPacket
%2e5 Comm_PrepareCheckPacket
%2e6 Comm_PrepareCommandPacket
%2e7 Comm_PrepareDataPacket
%2ee System_GetOSVersion
%35e memset_range
%35f memset
%363 MCS_CreateDirectory
%364 MCS_WriteItem
%366 MCS_DeleteDirectory
%367 MCS_DeleteItem
%368 MCS_GetState
%369 MCS_GetSystemDirectoryInfo
%370 MCS_RenameItem
%371 MCS_OverwriteData
%372 MCS_GetItemData
%373 MCS_RenameDirectory
%374 BMCSRenameVariable
%375 MCS_SearchDirectory
%376 MCS_SearchDirectoryItem
%37c MCS_GetFirstDataPointerByDirno
%37d MCS_GetDirectoryEntryByNumber
%37e MCS_SearchItem
%37f MCS_str8cpy
%380 MCS_GetDirectoryEntryAddress
%381 MCS_GetCurrentBottomAddress
%383 MCS_GetCapa
%392 MCS_GetMainMemoryStart
%3dc Setup_GetInfo
%3ed Interrupt_SetOrClrStatusFlags
%3ee Interrupt_QueryStatusFlags
%3f4 PowerOff
%3f5 ClearMainMemory
%3f6 SH7337_TMU_Stop
%3f7 SH7337_TMU_int_handler
%3fa Hmem_SetMMU
%3fb MMU_ConfigureAndFlush
%3fc TLB_SetAddressValue
%3fe GetStackPtr
%3ff MMU_FlushCache
%400 MMU_ConfigureAndEnable
%404 GetPhysicalROMstart
%405 GetPhysicalRAMstart
%409 Serial_ResetAndDisable
%40a Serial_GetInterruptHandler
%40b Serial_SetInterruptHandler
%40c Serial_ReadOneByte
%40d Serial_ReadNBytes
%40e Serial_BufferedTransmitOneByte
%40f Serial_BufferedTransmitNBytes
%410 Serial_DirectTransmitOneByte
%411 Serial_GetReceivedBytesAvailable
%412 Serial_GetFreeTransmitSpace
%413 Serial_ClearReceiveBuffer
%414 Serial_ClearTransmitBuffer
%418 Serial_Open
%419 Serial_Close
%41b Serial_CallReceiveIntErrorResetHandler
%41c Serial_CallReceiveIntHandler
%41d Serial_CallTransmitIntErrorResetHandler
%41e Serial_CallTransmitIntHandler
%420 OS_inner_Sleep
%422 Serial_SpyNthByte
%423 Serial_GetStatus
%425 Serial_IsOpen
%429 Bfile_identify_device_OS
%42c Bfile_OpenFile_OS
%42d Bfile_CloseFile_OS
%42e Bfile_GetMediaFree_OS
%42f Bfile_GetFileSize_OS
%431 Bfile_SeekFile_OS
%432 Bfile_ReadFile_OS
%434 Bfile_CreateEntry_OS
%435 Bfile_WriteFile_OS
%438 Bfile_RenameEntry
%439 Bfile_DeleteEntry
%43b Bfile_FindFirst
%43c Bfile_FindNext
%43d Bfile_FindClose
%44e memcpy
%44f memcmp
%450 Bfile_GetFilenameLength
%451 Bfile_Name_cmp
%452 Bfile_Name_cpy
%453 Bfile_Name_ncpy
%456 Bfile_NameToStr_ncpy
%457 Bfile_StrToName_ncpy
%462 GetAppName
%463 SetAppName
%464 CmpAppName
%465 GetIntPtrContent
%467 LongToAscHex
%468 hasSDOption
%469 Battery_DisplayLowStatus
%46b App_BuiltInCount
%476 Battery_IsLow
%477 EnableGetkeyToMainFunctionReturn
%478 DisableGetkeyToMainFunctionReturn
%47f SetAutoPowerOffTime
%480 GetAutoPowerOffTime
%486 GetdatatablePtr
%48d SetAutoPowerOffFlag
%48e GetAutoPowerOffFlag
%492 Battery_IsLow
%494 CallbackAtQuitMainFunction
%495 Battery_DisplayLowStatus
%499 Heap_SetTopChunk
%49a App_Start
%49c Battery_GetStatus
%49e RebootOS
%4a0 AUX_DisplayErrorMessage
%4ad USB_InterruptHandler
%4ae USB_TimerHandler
%4b0 AUX_DisplayFKeyIcons
%4cb Keyboard_RemapFKeyCode
%4d1 AUX_DisplayFKeyIcon
%4dc Setup_GetEntry
%4dd Setup_SetEntry
%4de Setup_GetEntryPtr
%4df Alpha_GetData
%4e0 Alpha_SetData
%4e1 Alpha_ClearAll
%4e6 HourGlass
%4e9 LocalizeStringID
%4f5 BCD_ToStrAsNumber1
%4f6 BCD_ToStrAsNumber2
%500 BCDToInternal
%518 Setup_GetEntry_3E
%519 Setup_GetEntry_40
%51a Setup_SetEntry_3E
%51b Setup_SetEntry_40
%531 MB_IsLead
%533 MB_ElementCount
%534 MB_ByteCount
%536 MB_strcat
%537 MB_strncat
%538 MB_strcpy
%53c MB_GetSecondElemPtr
%53d MB_GetElement
%53e MB_CopyToHeap
%53f memcmp
%541 itoa
%542 to_uppercase
%543 to_lowercase
%544 BCD_0
%545 BCD_1
%546 BCD_2
%547 BCD_10
%548 BCD_1_over_3
%549 BCD_0.5
%54a BCD_32767
%54b BCD_m32768
%54c BCD_65536
%54d BCD_0x7fffffff
%54e BCD_m2Gi
%54f BCD_4Gi
%550 BCD_pi
%551 BCD_2pi
%552 BCD_pi_over_2
%553 BCD_e
%554 BCD_5
%5a6 BCD_SetAsInt
%5af BCD_pi_over_4
%5b0 BCD_ln10
%5b1 BCD_ln2
%5b2 BCD_9.99e99
%5b3 BCD_m9.99e99
%5b4 BCD_9.99999999999999e99
%5b5 BCD_227.85
%5b6 BCD_sqrt2
%5b7 BCD_sqrt2_over_2
%5b8 BCD_506.6282746310
%645 CalculateExpression
%64a CalculateExpression0
%652 PRGM_NextOpcode
%6a6 PRGM_IsEndOfLine
%6c4 Keyboard_PRGM_GetKey
%6d4 Alpha_GetData2
%713 Print_ClearLine
%763 Bdisp_DrawRectangle
%7fc OpcodeToStr
%804 CLIP_Store
%807 locate
%808 Print
%809 PrintRev
%80a PrintC
%80b PrintRevC
%80c PrintLine
%80d PrintRLine
%80e Cursor_GetFlashStyle
%80f Cursor_GetSettings
%811 Cursor_SetFlashOn
%812 Cursor_SetFlashOff
%813 SaveDisp
%814 RestoreDisp
%829 MCS_CreateDirectory
%82a MCS_PutInternalItem
%82b MCSPutVar2
%830 MCSOvwDat2
%832 MCS_OverwriteOpenItem
%833 MCS_ClearInternalDirectory
%834 MCS_ClearDirectory
%835 MCS_DeleteInternalItem
%836 MCSDelVar2
%83a MCS_GotoInternalItem
%83b MCS_OpenMainMemoryItem
%83c MCS_GotoHandleNeighbour
%83d MCS_CheckOpenedItem
%83e MCS_GetOpenItem
%83f MCS_OpenInternalDirectoryItem
%840 MCSGetDlen2
%841 MCSGetData1
%843 MCS_MapMCS_Result
%844 MCSGetCapa
%84d MCS_OpenAlphaMemItem
%852 MCS_DirtypeToItemtype
%853 MCS_ItemtypeToDirtype
%863 MCS_DirtypeToName
%866 MCS_MapError
%869 Alpha_ClearAllAndAns
%86f MCS_DeleteDirectoryItems
%8db EditExpression
%8dc EditValue
%8e6 EditMBStringCtrl
%8ea DisplayMBString
%8ec EditMBStringChar
%8f7 DisplayMBString2
%8fe PopupWin
%901 DisplayMessageBox
%905 DisplayErrorMessage
%90b SetShiftAlphaState
%90c GetInsOverwriteState
%90d SetInsOverwriteState
%90e ClrShiftAlphaState
%90f GetKey
%910 PutKey
%91b GetShiftAlphaState
%924 TestMode
%954 DisplayErrorMessage
%985 App_CONICS
%998 App_DYNA
%9ad PrintXY
%9df App_EACT
%9e1 App_Equation
%9e2 App_EQUA
%9f5 App_Program
%a00 App_FINANCE
%a1f Keyboard_RemapFKeyCode
%a35 AUX_DisplayMessage
%a4a App_LINK
%a6a App_Optimization
%a6b App_Memory
%a75 App_RECUR
%a97 App_RUN_MAT_EXE
%aae App_RUN_MAT
%ac6 App_STAT
%ac8 App_SYSTEM
%acc free
%acd malloc
%ace memcmp
%acf smart_memcpy
%ad0 memset
%ad4 strcat
%ad5 smart_strcmp
%ad6 strlen
%ad7 strncat
%ad8 strncmp
%ad9 strncpy
%ada strrchr
%ae8 CatalogDialog
%c4f PrintMiniSd
%ca7 OpcodeType
%cb0 Basic_Send_Send38k
%cb1 Basic_Receive_Receive38k
%cb2 Basic_OpenComPort38k_CloseComPort38k
%cc4 InputNumber
%cc5 InputString
%ccb GetRAMSize
%cd0 another_diagnostic_dialog
%d64 InputDateDialog
%d65 InputMonthDialog
%d66 InputDayDialog
%d67 InputYearDialog
%dab StoreExpressionToGraphFuncMemory
%e6b calloc
%e6c memmove
%e6d realloc
%e6e strchr
%e6f strstr


@ -0,0 +1,11 @@
type: target
name: fx@3.10
ROM: os/fx/3.10/3.10.bin
ROM_P2: os/fx/3.10/3.10.bin
RAM: os/fx/3.10/RAM.bin
RAM_P2: os/fx/3.10/RAM.bin
RS: os/fx/3.10/RS.bin