_SetHookFunction=16528:FCN/NULL    
_RealLoadCheck=16683:FCN/VOID
_FatReadFile=28142:FCN/SHORT
MonitorIntBreak=32125:FCN/NULL    
MonitorBreak=31850:FCN/NULL    
MonitorPutch15=32144:FCN/NULL    
tim0_int=32300:FCN/NULL    
_MapperReadDiskSector=32178:FCN/NULL    
_UserInterfaceIdleHook=17432:FCN/VOID
_Restart=16384:FCN/NULL    
_SinTest=32322:FCN/VOID
_mallocAreaX=9216:FCN/NULL    
_mallocAreaY=7168:FCN/NULL    
rx_int=16482:FCN/NULL    
MonitorJumpWithStack=31938:FCN/NULL    
_haltTime=6836:ULONG   
_NullHook=16435:FCN/NULL    
__yrommux0=26620:SHORT
__irommux0=16480:FCN/NULL
MonitorJumpLr1Lr0=31941:FCN/NULL    
__irommux1=35453:FCN/NULL    
_RealMSCPacketFromPC=30315:FCN/VOID
MonitorPutch=32148:FCN/NULL    
_MemTests=32365:FCN/NULL    
_FatInitFileSystem=27991:FCN/NULL    
_rommain=18003:FCN/VOID
MonitorPutWord=32163:FCN/NULL    
_BusyWait1=16550:FCN/NULL    
_RealScsiTaskHandler=30074:FCN/VOID
_OldStereoCopy=32193:FCN/NULL    
_treeBuild=7168:ARY/NULL
Monitor=31848:FCN/NULL
_RealPowerOff=33383:FCN/VOID
_fmfCache=0:ARY/NULL
_RealMassStorage=17832:FCN/VOID
_g_dcthi=4096:ARY/NULL    
__stack=6144:ARY/NULL    
_RealDecodeSetupPacket=29494:FCN/VOID
_Sleep=16505:FCN/NULL    
_exit=16388:FCN/NULL    
_g_dctlo=4096:ARY/NULL    
_g_others=2048:ARY/NULL    
MonitorGetWord=32169:FCN/NULL    
MonitorGetch=32131:FCN/NULL    
_RealInitUSBDescriptors=28925:FCN/VOID
_Disable=16496:FCN/NULL    
_g_yprev0=0:ARY/NULL    
_RealSetRate=32571:FCN/VOID
_g_yprev1=1024:ARY/NULL    
_RealSetVolume=32720:FCN/VOID
_Enable=16498:FCN/NULL    
_DefUnsupportedFile=16433:FCN/NULL    
__xrommux0=19452:ARY/NULL    
_FatSeek=28465:FCN/NULL    
MonitorGetch15=32129:FCN/NULL    
_FatTell=28461:FCN/NULL    
dac_int=32239:FCN/NULL    
_RealKeyEventHandler=17138:FCN/VOID
_RealUSBHandler=29855:FCN/VOID
_RealPlayCurrentFile=16981:FCN/USHORT
_FatOpenFile=28108:FCN/NULL    
MonitorRestoreContext=31894:FCN/NULL    
_BusyWait10=16541:FCN/NULL    
_RealUSBSuspend=17673:FCN/VOID
MonitorBpTable=32077:FCN/NULL    
MonitorGetInput=31882:FCN/NULL    
_CsRead=16553:FCN/USHORT
_CsSeek=16588:FCN/SHORT
_PlayerVolume=16645:FCN/VOID
_sixKeyMap=16432:ARY/STRUCT
_fiveKeyMap=16460:ARY/STRUCT
_shiftFourKeyMap=16484:ARY/STRUCT
_threeKeyMap=16508:ARY/STRUCT
_defSupportedFiles=16526:ARY/ULONG
_fontPtrs=16532:ARY/USHORT
_fontData=16634:ARY/USHORT
_CsOutput=16831:FCN/SHORT
_ReadGPIO=17062:FCN/USHORT
_VorbisSkip=17092:FCN/VOID
_KeyScan=17323:FCN/VOID
_AudioPacketFromUSB=17481:FCN/VOID
_CleanDisk=17599:FCN/VOID
_tmpBuf=6656:ARY/SHORT
_player=6720:STRUCT  
_currentKeyMap=6731:PTR/STRUCT
_keyOld=6732:USHORT  
_keyOldTime=6733:SHORT   
_supportedFiles=6734:PTR/ULONG
_ph=6735:PTR/STRUCT
_map=6736:PTR/STRUCT
_cod=6737:PTR/STRUCT
_cs=6738:STRUCT  
_lastLoadCheck=6775:ULONG   
_underflowCount=6777:USHORT  
_keyCheck=6778:USHORT  
_rateCheckCount=6779:USHORT  
_volumeReg=7395:USHORT  
_clockX=6829:USHORT  
_audioPtr=6822:STRUCT  
_AudioBufFill=32223:FCN/NULL    
_ReadTimeCount=32313:FCN/NULL    
_hwSampleRate=6832:USHORT  
_earSpeaker=6839:STRUCT  
_voltages=7404:ARY/USHORT
_PowerSetVoltages=33342:FCN/VOID
_memset=18390:FCN/NULL    
_AudioOutputSamples=32984:FCN/VOID
_CodVorbisCreate=18505:FCN/PTR/STRUCT
_earSpeakerReg=7394:USHORT  
_srand=18413:FCN/NULL    
_QsortLog2=18416:FCN/NULL    
_USBIsAttached=29971:FCN/USHORT
_uiTrigger=6834:USHORT  
_uiTime=6833:USHORT  
_USB=7036:STRUCT  
_extClock4KHz=6828:USHORT  
_curFctl=6830:ULONG   
_minifatInfo=6765:STRUCT  
_BootFromX=33426:FCN/NULL    
_FatIterateOverFreeSectors=28472:FCN/SHORT
_FsMapFlCreate=18719:FCN/PTR/STRUCT
_FsMapRamCreate=33467:FCN/PTR/STRUCT
_InitUSB=28960:FCN/VOID
_USBWantsSuspend=30027:FCN/USHORT
_USBIsDetached=30006:FCN/USHORT
_FsMapTnCreate=19335:FCN/PTR/STRUCT
_uartByteSpeed=6838:USHORT  
_memcpyYX=18423:FCN/NULL    
_applAddr=7393:PTR/FCN/SHORT
_bassReg=7396:USHORT  
_SpiSendReceive=33607:FCN/NULL    
_SpiLoad=33632:FCN/NULL    
_InitAudio=32497:FCN/VOID
_FsPhNandCreate=30565:FCN/PTR/STRUCT
_rand=18402:FCN/NULL    
divide16signed=18435:FCN/NULL    
divide16unsigned=18459:FCN/NULL    
__divide16signed=18435:FCN/NULL    
_div16approx=17079:ARY/NULL    
__divide16unsigned=18459:FCN/NULL    
_CodVorbisDelete=18550:FCN/NULL    
_CodVorbisDecode=18552:FCN/INT
_codecVorbis=7549:STRUCT  
_WindowInit=19671:FCN/NULL    
_vFirstFrame=7987:SHORT   
_ogg=7587:STRUCT  
_MallocInit=21079:FCN/VOID
_VorbisDecode=19964:FCN/SHORT
_CodVorbisGoTo=21343:FCN/INT
_OggDecode=21660:FCN/INT
_FsMapFlWrite=19087:FCN/SHORT
_FsMapFlRead=19202:FCN/SHORT
_FsMapFlDelete=19295:FCN/SHORT
_FsMapFlFlush=19318:FCN/SHORT
_fsMapFlash=7988:STRUCT  
_FsMapFlFree=23402:FCN/SHORT
divide32unsigned=34417:FCN/NULL    
_FsMapFlCacheClear=22395:FCN/USHORT
_FsMapFlFindRoot=24219:FCN/SHORT
_FsMapFlCacheRead=22447:FCN/USHORT
_FsMapFlUpdateNonFullBlocks=23673:FCN/VOID
_fsMapFlTmpMeta=8021:ARY/STRUCT
_FsMapFlMarkBlockBad=23511:FCN/SHORT
_FsMapFlErasePhys=23451:FCN/SHORT
_FsMapFlNextFree=22268:FCN/ULONG
_FsMapFlConnectLogToPhys=22803:FCN/SHORT
_memcpy=34437:FCN/NULL    
_FsMapFlCacheFlush=22509:FCN/SHORT
_FsMapTnRead=19425:FCN/SHORT
_fsMapTiny=7426:STRUCT  
_FsMapTnDelete=24340:FCN/NULL    
_FsMapTnWrite=24338:FCN/NULL    
_FsMapTnFlush=24340:FCN/NULL    
_FsMapTnFree=24338:FCN/NULL    
_mInt=7455:ARY/STRUCT
_CreateWindow=19688:FCN/PTR/UINT
_WindowReverse=19708:FCN/NULL    
_WindowChannel=19730:FCN/INT
_winPtr=20428:ARY/PTR/UINT
_WindowActual=24342:FCN/NULL    
_CodVComment=19834:FCN/VOID
_OutputSamples=19863:FCN/VOID
_comment=18451:ARY/ARY/UCHAR
_memcpyXY=34449:FCN/NULL    
_BitReadInit=24373:FCN/VOID
_BitRead16=24418:FCN/USHORT
_BitRead32=24516:FCN/ULONG
_BitRead1=24603:FCN/NULL    
_BitReadSkip=24555:FCN/USHORT
_IPow=24622:FCN/UINT
_Calloc=21155:FCN/PTR/VOID
_DecodeCodeBook=24664:FCN/INT
_DecodeFloor1Header=25288:FCN/SHORT
_DecodeResidueHeader=26066:FCN/INT
_DecodeMapHeader=26910:FCN/INT
_vorBits=8053:STRUCT  
_PrepareResidueStructures=26172:FCN/INT
_DecodeFloor1Audio=25707:FCN/PTR/USHORT
_DecodeResidueAudio=26883:FCN/INT
_CoupleChannels=27048:FCN/NULL    
_memswap=34461:FCN/NULL    
_ApplyFloor1Audio=25960:FCN/SHORT
_dct=27075:FCN/NULL    
_VorbisSeekScale=27424:FCN/NULL    
_VorbisPostShuffle=27465:FCN/NULL    
_VorbisScaleDown=27439:FCN/NULL    
_FreeStack=21304:FCN/VOID
_BitLeft=24586:FCN/USHORT
_Malloc=21102:FCN/PTR/VOID
_MallocStack=21187:FCN/PTR/VOID
_CallocStack=21236:FCN/PTR/VOID
_Free=21267:FCN/VOID
_memsetY=34475:FCN/NULL    
_OggSeekHeader=21475:FCN/INT
_GetLe=21625:FCN/UINT
_CodVGetChar=21584:FCN/INT
_FsMapFlBuildPartialTreeComp=21932:FCN/INT
_FsMapFlBuildPartialTree=21969:FCN/SHORT
_FsMapFlClearDataMeta=22237:FCN/VOID
_FsMapFlCachePropagateDirty=22642:FCN/USHORT
_FsMapFlFreeRec=23045:FCN/INT
_FsMapFlWritePhys=23571:FCN/SHORT
_FsMapFlAddPages=23619:FCN/LONG
_fmfCachePairs=24542:ARY/USHORT
_qsortxy=34487:FCN/NULL    
_FsMapFlNullOk=24340:FCN/NULL    
_FsMapFlNullFail=24338:FCN/NULL    
_win64=16396:ARY/UINT
_win128=16460:ARY/UINT
_win256=16588:ARY/UINT
_win512=16844:ARY/UINT
_win1024=17356:ARY/UINT
_win2048=18380:ARY/UINT
_FLOOR1_fromdB_LOOKUP_i=17189:ARY/UINT
_FltUnpackToInt=24639:FCN/UINT
_decodeVQMasks=20434:ARY/UINT
_CreateTree=27498:FCN/INT
_FloorSortComp=25271:FCN/INT
_RenderPoint=25628:FCN/USHORT
_RenderLine=25661:FCN/VOID
_RenderLineAsm=27592:FCN/NULL    
_DecodeBook=27644:FCN/NULL    
_MultAndShift=27577:FCN/NULL    
_vorbis_book_decodev_add=26363:FCN/INT
_vorbis_book_decodevv_add=26413:FCN/INT
_DecodeResidue01Audio=26513:FCN/INT
_DecodeResidue2Audio=26720:FCN/INT
_CountBitsLong=34792:FCN/NULL    
_DecodeVQAsm=27631:FCN/NULL    
_DecodeVvStereo=27711:FCN/NULL    
_costable_ii=18528:ARY/NULL    
_costable_iv=18560:ARY/NULL    
_i_twiddle_iv=20438:ARY/INT
_dctiv=27355:FCN/NULL    
_dctii=27402:FCN/NULL    
_dcttype=17876:ARY/PTR/UINT
_dctfir=27255:FCN/NULL    
_dctivpost=27304:FCN/NULL    
_codeAndLen=7985:PTR/UINT
_huffMax=7986:UINT    
_tree=6657:PTR/INT
_tidx=6658:INT     
_invalid=6659:INT     
_Rec=27764:FCN/NULL    
_TreePrune=27851:FCN/NULL    
_minifatBuffer=6780:ARY/USHORT
_FatGetWord=28664:FCN/NULL    
_FatGetLong=28659:FCN/NULL    
_FatGetByte=28653:FCN/NULL    
_FatFragmentList=28678:FCN/NULL    
_FatHandleDir=28238:FCN/SHORT
_minifatFragments=6660:ARY/STRUCT
_FatFindSector=28773:FCN/NULL    
_MemCopyPackedBigEndian=28794:FCN/NULL    
_MemWritePackedY=28868:FCN/NULL    
_FatCheckFileType=28883:FCN/NULL    
_ResetBulkEndpoints=28902:FCN/VOID
_send_map=17905:ARY/PTR/USHORT
_deviceDescriptor_Audio=17909:ARY/USHORT
_configurationDescriptor_Audio=17918:ARY/USHORT
_deviceDescriptor_MassStorage=17968:ARY/USHORT
_configurationDescriptor_MassStorage=17977:ARY/USHORT
_stringDescriptor0=17993:ARY/USHORT
_stringDescriptor1=17995:ARY/USHORT
_stringDescriptor2=18000:ARY/USHORT
_stringDescriptor3=18008:ARY/USHORT
_USBResetEndpoint=29031:FCN/VOID
_USBStallEndpoint=29073:FCN/VOID
_USBResetStall=29100:FCN/VOID
_USBIsEndpointStalled=29127:FCN/USHORT
_USBStartTransmission=29152:FCN/INT
_USBContinueTransmission=29229:FCN/VOID
_USBCheckForSetupPacket=29325:FCN/VOID
_USBReceivePacket=29380:FCN/USHORT
_USBSendZeroLengthPacketToEndpoint0=29444:FCN/VOID
_USBXmitLeft=29838:FCN/USHORT
_ScsiReset=31078:FCN/NULL    
_RingBufCopyX=31161:FCN/NULL    
_SwapWord=31173:FCN/NULL    
_ScsiState=31154:FCN/INT
_USBSingleStallEndpoint=31179:FCN/NULL    
_ScsiInquiry=30223:FCN/VOID
_ScsiReadCapacity10=30282:FCN/VOID
_SCSI=7324:STRUCT  
_MscSendCsw=31109:FCN/UINT
_DiskProtocolCommand=30849:FCN/NULL    
_DiskDataReceived=30706:FCN/NULL    
_NandPutPage=30396:FCN/SHORT
_fsNandPhys=7380:STRUCT  
_NandPutCommand=31255:FCN/NULL    
_NandPutDataAddress=31419:FCN/NULL    
_NandPutOctets=31312:FCN/NULL    
_NandGetStatus=31459:FCN/UINT
_NandPutLargePageSpareAddress=31443:FCN/NULL    
_NandSwapBad=31236:FCN/NULL    
_FsPhNandRead=31479:FCN/INT
_FsPhNandWrite=31719:FCN/INT
_FsPhNandErase=31785:FCN/INT
_ScsiOrBlock=31831:FCN/NULL    
_ScsiLbab=31842:FCN/NULL    
_NandWaitIdle=31212:FCN/NULL    
_NandSetWaits=31351:FCN/NULL    
_NandMingle=31222:FCN/NULL    
_NandPutAddressOctet=31253:FCN/NULL    
_NandGetOctets=31278:FCN/NULL    
_NandPutBlockAddress=31375:FCN/NULL    
_getword=32169:FCN/NULL    
_putch=32148:FCN/NULL    
_getch=32131:FCN/NULL    
_putword=32163:FCN/NULL    
_Monitor=31848:FCN/NULL    
_audioBuffer=0:ARY/NULL    
_DB12=32283:FCN/NULL    
_timeCount=6820:ULONG
_AudioBufFree=32235:FCN/NULL
_dB=18149:ARY/SHORT
_Sine=33732:FCN/NULL
_YRomTest=33947:FCN/NULL    
_XRomTest=33935:FCN/NULL    
_IRomTest=33920:FCN/NULL    
_YRamTest=33776:FCN/NULL    
_XRamTest=33766:FCN/NULL    
_IRamTest=33786:FCN/NULL    
_UartDiv=32418:FCN/USHORT
_timeToRemovePDown2=6835:SHORT   
_oldClock4KHz=6844:USHORT  
_bassOn=6845:USHORT  
_trebleOn=6846:USHORT  
_uiCount=6847:USHORT  
_earSpeakerVal=7397:ARY/SHORT
_bassTrebleFreq=7403:USHORT  
_uartDivs=18021:ARY/USHORT
_z=6850:ARY/ARY/LONG
fr_div32=34800:FCN/NULL
_SetBass=33960:FCN/VOID
_SetTreble=34029:FCN/VOID
_Bass=34194:FCN/NULL
_Treble=34365:FCN/NULL
_CodVBlockSize=34865:FCN/INT
_InitXtern=34874:FCN/NULL
_Xtern=34946:FCN/NULL
_FsMapRamRead=33515:FCN/SHORT
_FsMapRamWrite=33555:FCN/SHORT
_fatInit=18161:ARY/USHORT
_fatSector2Init=18192:ARY/USHORT
_ramMapper=18214:STRUCT
_fsMapRamData=6848:PTR/USHORT
decide=33668:FCN/NULL
_SpiDelay=33617:FCN/NULL
_SpiReceiveWord=33723:FCN/NULL
_PrivSpiSendReceive=33622:FCN/NULL
spiexec=33692:FCN/NULL
spiy=33704:FCN/NULL
_filtPairs=18226:ARY/STRUCT
_bassCompandMaxGain=7416:USHORT
_bTrebleGain=6849:USHORT
_bassG=6868:ARY/ARY/USHORT
_btmp=6874:ARY/SHORT
_compandGo=6942:SHORT
_compandG=6941:SHORT
_trebleCoeff=18292:ARY/ARY/SHORT
_trebleFreqs=18418:ARY/SHORT
_trebleEmph=18425:ARY/SHORT
_lowEmph=18434:ARY/SHORT
_trebleIdx=6938:SHORT
_trebleFiltP=6939:PTR/SHORT
_trShift=6940:USHORT
fr_div=34830:FCN/NULL
_trebleFilt=6944:ARY/NULL
_trebleCoeffRam=7417:ARY/NULL
_memcpyXX=34437:FCN/NULL
_memswapy=34851:FCN/NULL
_er=8061:STRUCT
_halfBFUp=18638:ARY/NULL
_xternGains=18700:ARY/NULL
_xTalkDry=18592:ARY/NULL
_xternDelayConsts=18664:ARY/NULL
_halfBFDown=18612:ARY/NULL
_UpsampleBy2=35378:FCN/NULL
_RightDryMixer=35316:FCN/NULL
_LeftDryMixer=35254:FCN/NULL
#############################################################################
#
# audio_buffer: 2x2048 tai 2x1024
# dctlo/hi: 2x2048 (X/Y)
# stack: 2x256(192?) (X/Y)
#
#Player:
#   0000    0800    1000    1800    2000    2800    3000    3800    4000
# X |prev01 |others |dctlo  |S| bss..    |MallocAreaX   |3400
# Y |audio buffer   |dcthi  |S|  |MallocAreaY                       |4000
#With earspeaker:
# X |prev01 |others |dctlo  |S| bss..    |MallocAreaX   |3400
# Y |audio b|XXXXXXX|dct|XXX|S|  |MallocAreaY                       |4000
#
#USB:
#   0000    0800    1000    1800    2000    2800    3000    3800    4000
# X |fmfCache               |S| bss..    |       |USBMem|3400
# Y |audio buffer   |dcthi  |S|  |treeBuild                         |4000
#
#############################################################################
#
# For simulation
#
vsstdio=0xf000
#
# IRAM hooks
#
_IdleHook=0:FCN/NULL
_InitFileSystem=2:FCN/NULL
_OpenFile=4:FCN/NULL
_ReadFile=6:FCN/NULL
_Seek=8:FCN/NULL
_Tell=10:FCN/NULL
_ReadDiskSector=12:FCN/NULL
_StereoCopy=14:FCN/NULL
_SetRate=0x18:FCN/NULL
_PowerOff=0x1a:FCN/NULL
_PlayCurrentFile=0x1c:FCN/NULL
_USBHandler=0x1e:FCN/NULL
_MSCPacketFromPC=0x2c:FCN/NULL
_DecodeSetupPacket=0x2e:FCN/NULL
_ScsiTaskHandler=0x30:FCN/NULL
_LoadCheck=0x32:FCN/NULL
_UnsupportedFile=0x34:FCN/NULL
_KeyEventHandler=0x36:FCN/NULL
_MassStorage=0x38:FCN/NULL
_USBSuspend=0x3a:FCN/NULL
_InitUSBDescriptors=0x3c:FCN/NULL
_SetVolume=0x3e:FCN/NULL
#
#
#_stereoBuf:     .bss 160	.align 256
#_stereoDryOut:  .bss 64	.align 64
#_stereoXBuf:    .bss 160	.align 256
#_stereoUp:      .bss 64	.align 64
#_stereoHalfBuf: .bss 2048	.align 2048
#_stereoEROut:   .bss 62	.align 64
#_xternDelay:  .bss 38
#
#Note: short audio buffer and short framesize is required with earspeaker
#
_stereoBuf=0x1400:ARY/NULL
_stereoDryOut=0x14c0:ARY/NULL
_stereoXBuf=0x1500:ARY/NULL
_stereoUp=0x15c0:ARY/NULL
_stereoEROut=0x1600:ARY/NULL
_stereoHalfBuf=0x0800:ARY/NULL
_xternDelay=0x1640:ARY/NULL
_vs1000d_Latin1=0x6040:ARY/SHORT
_vs1000d_BitReverse=0x6340:ARY/SHORT
