; ---- END USER DEFINED ---- ; Common stuff: seems mostly common to all firmware. No guarantee ; about correctness of the global variables for all firmwares. ; Routines in ROM: l 001e rom_001e ; might not exist: l 0911 rom_0911 ; Likely some JPEG decoding l 0a27 rom_0a27 l 0a85 rom_0a85 l 0add rom_0add l 0d38 rom_0d38 l 0d65 rom_0d65 l 0e02 rom_0e02 l 0f5c rom_0f5c l 0fa9 rom_0fa9 l 0c0a rom_bootload ; Called from IRQ routines: l 0e1a rom_0e1a l 0e72 rom_0e72 l 0ef4 rom_0ef4 l 0f16 rom_0f16 ; Writes a byte to the LCD port p3 l 0f25 rom_lcdwrite ; Probably alternative write function l 0f34 rom_0f34 ; Called from bank switching code: l 0fae rom_0fae s 0e00 common_xdata_0e00 s 0e40 common_xdata_0e40 s 0e80 common_xdata_0e80 s 1600 common_xdata_0e00_cseg ; s 1640 common_xdata_0e40_cseg ; s 1680 common_xdata_0e80_cseg ; Common functions that seem to be called from all modules: l 124a g_var0 l 1280 lcd_setcontext ; Those might differ between different DPF firmware s 1800 common_usb_1800 s 1818 common_usb_resume_1818 ; Most important: module loader trampoline l 1934 tramp_return l 1938 tramp_jsr l 193a tramp_jmp l 193e tramp_dyn ; Global register variables(flags): ; _oi: Probably initialized in OTP ; G_: Very likely global over all modules (not overlayed) ; g_: Global (shared) among some modules, may be overlayed ; i_: Accessed from IRQ handler r 0f G_ptr0_oi r 10 G_count0 r 11 G_adcbufadr r 12 G_count1 r 13 G_curp_l r 14 G_curp_h r 19 G_seconds? r 1b G_internal r 1d G_var r 1e G_button r 1f G_bankno r 20 i_G_f r 21 G_adc_flags r 22 G_irqh6_flags r 25 G_usbflg r 26 g_sector_h r 27 g_sector_m r 28 g_sector_l r 29 flags_29 r 2a flags_2a r 2b flags_2b r 2c flags_2c r 2d flags_2d r 2e flags_2e r 2f flags_2f r 73 G_language ; The following registers denote the LCD controller context area ; See lcd_setcontext() r 77 G_lcd_cxL r 78 G_lcd_cxH r 79 G_lcd_cyL r 7a G_lcd_cyH r 7b G_lcd_dxL r 7c G_lcd_dxH r 7d G_lcd_dyL r 7e G_lcd_dyH ; AX206 SFRs f 86 dpcon f 87 pcon f 91 _mulres0 f 92 _mulres1 f 93 _mulres2 f 94 _mulres3 f 9a _wkpnd f 9b _wken f 9c _wkedg f a4 _pie f a5 _ckcon f a8 _ien0 f b0 _p3 f b1 _tmr0con f b3 _tmr0cnt f b4 _tmr0pr f b5 _tmr0psr f b8 _ip f bb _wdtcon f c0 _p4 f c1 _tmr2con f c2 _tmr2cntl f c3 _tmr2cnth f c4 _tmr2perl f c5 _tmr2perh f c6 _tmr2pwml f c7 _tmr2pwmh f c8 _usbcon0 f c9 _usbdata f ca _usbaddr f d1 _rtcnt f d2 _adccon f d3 _adcbaud f d4 _adcbufh f d6 _spibaud f d7 _spibuf f d8 _spicon f dc _adcbufl f e1 _tmr1con f e2 _tmr1cntl f e3 _tmr1cnth f e4 _tmr1perl f e5 _tmr1perh f e6 _tmr1pwml f e7 _tmr1pwmh f e8 _eif0 f e9 _p0dir f ea _p1dir f eb _p2dir f ec _p3dir f ed _p4dir f f1 _uartsta f f2 _uartcon f f3 _uartbaud f f4 _uartbuf f f8 _tmr3con f f9 _p0up f fa _p1up f fb _p2up f fc _p3up f fd _p4up ; Addressable bits: m 00 i_G_f.0 m 01 i_G_f.1 m 02 i_G_f.adcready m 03 i_G_f.usbon m 04 i_G_f.usbact m 05 i_G_f.wkup m 06 i_G_f.6 m 07 i_G_f.7 m 0f G_rtc2_flags.7 m 10 sflags.0 m 11 i_G_flag.1 m 12 g_sflags.2 m 13 sflags.3 m 14 sflags.4 m 15 sflags.5 m 16 sflags.6 m 17 sflags.7 m 18 G_flags23.0 m 19 G_flags23.1 m 1a G_flags23.2 m 20 bit_24.0 m 21 bit_24.1 m 22 bit_24.2 m 23 bit_24.3 m 24 bit_24.4 m 25 bit_24.5 m 26 bit_24.6 m 27 bit_24.7 m 28 G_usbflg.0 m 29 G_usbflg.1 m 2a G_usbflg.2 m 2b G_usbflg.3 m 2c G_usbflg.4 m 2d G_usbflg.5 ; I/O mappings: k 86 _BUT_MENU k 90 _LCD_RST k 91 _LCD_WR k 92 _LCD_RD k 94 _LCD_A0 k a0 _SPI_CS k a1 _LCD_CS k ce _USB_DONE k df _SPIPND k fb _T3CP k e8 _T0P