; ---- 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
