1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-11-15 22:34:58 +00:00
gnss-sdr/firmware/GN3S_v2/lib/isr.asm
Javier Arribas b849b20a8c Added optional support for Sparkfun SiGe GN3S USB GPS RF sampler:
- Added a pre-compiled custom GN3S firmware.
- Added a fully-compliant GNU Radio source block for GN3S USB dongle. It can be used also from GNU Radio companion and from Python applications.
- Added a new GN3S_Signal_Source block. It is possible to disable the GN3S signal source compilation. See README.

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@217 64b25241-fba3-4117-9849-534c7e92360d
2012-07-30 15:46:07 +00:00

1139 lines
23 KiB
NASM

;--------------------------------------------------------
; File Created by SDCC : free open source ANSI-C Compiler
; Version 2.9.0 #5416 (Feb 3 2010) (UNIX)
; This file was generated Mon Jul 30 11:40:53 2012
;--------------------------------------------------------
.module isr
.optsdcc -mmcs51 --model-small
;--------------------------------------------------------
; Public variables in this module
;--------------------------------------------------------
.globl _hook_fgv_PARM_2
.globl _hook_uv_PARM_2
.globl _hook_sv_PARM_2
.globl _EIPX6
.globl _EIPX5
.globl _EIPX4
.globl _PI2C
.globl _PUSB
.globl _EIEX6
.globl _EIEX5
.globl _EIEX4
.globl _EI2C
.globl _EIUSB
.globl _SMOD1
.globl _ERESI
.globl _RESI
.globl _INT6
.globl _CY
.globl _AC
.globl _F0
.globl _RS1
.globl _RS0
.globl _OV
.globl _FL
.globl _P
.globl _TF2
.globl _EXF2
.globl _RCLK
.globl _TCLK
.globl _EXEN2
.globl _TR2
.globl _C_T2
.globl _CP_RL2
.globl _SM01
.globl _SM11
.globl _SM21
.globl _REN1
.globl _TB81
.globl _RB81
.globl _TI1
.globl _RI1
.globl _PS1
.globl _PT2
.globl _PS0
.globl _PT1
.globl _PX1
.globl _PT0
.globl _PX0
.globl _D7
.globl _D6
.globl _D5
.globl _D4
.globl _D3
.globl _D2
.globl _D1
.globl _D0
.globl _EA
.globl _ES1
.globl _ET2
.globl _ES0
.globl _ET1
.globl _EX1
.globl _ET0
.globl _EX0
.globl _SM0
.globl _SM1
.globl _SM2
.globl _REN
.globl _TB8
.globl _RB8
.globl _TI
.globl _RI
.globl _TF1
.globl _TR1
.globl _TF0
.globl _TR0
.globl _IE1
.globl _IT1
.globl _IE0
.globl _IT0
.globl _SEL
.globl _A7
.globl _A6
.globl _A5
.globl _A4
.globl _A3
.globl _A2
.globl _A1
.globl _A0
.globl _EIP
.globl _B
.globl _EIE
.globl _ACC
.globl _EICON
.globl _PSW
.globl _TH2
.globl _TL2
.globl _RCAP2H
.globl _RCAP2L
.globl _T2CON
.globl _SBUF1
.globl _SCON1
.globl _GPIFSGLDATLNOX
.globl _GPIFSGLDATLX
.globl _GPIFSGLDATH
.globl _GPIFTRIG
.globl _EP01STAT
.globl _IP
.globl _OEE
.globl _OED
.globl _OEC
.globl _OEB
.globl _OEA
.globl _IOE
.globl _IOD
.globl _AUTOPTRSETUP
.globl _EP68FIFOFLGS
.globl _EP24FIFOFLGS
.globl _EP2468STAT
.globl _IE
.globl _INT4CLR
.globl _INT2CLR
.globl _IOC
.globl _AUTODAT2
.globl _AUTOPTRL2
.globl _AUTOPTRH2
.globl _AUTODAT1
.globl _APTR1L
.globl _APTR1H
.globl _SBUF0
.globl _SCON0
.globl _MPAGE
.globl _EXIF
.globl _IOB
.globl _CKCON
.globl _TH1
.globl _TH0
.globl _TL1
.globl _TL0
.globl _TMOD
.globl _TCON
.globl _PCON
.globl _DPS
.globl _DPH1
.globl _DPL1
.globl _DPH
.globl _DPL
.globl _SP
.globl _IOA
.globl _EP8FIFOBUF
.globl _EP6FIFOBUF
.globl _EP4FIFOBUF
.globl _EP2FIFOBUF
.globl _EP1INBUF
.globl _EP1OUTBUF
.globl _EP0BUF
.globl _CT4
.globl _CT3
.globl _CT2
.globl _CT1
.globl _USBTEST
.globl _TESTCFG
.globl _DBUG
.globl _UDMACRCQUAL
.globl _UDMACRCL
.globl _UDMACRCH
.globl _GPIFHOLDAMOUNT
.globl _FLOWSTBHPERIOD
.globl _FLOWSTBEDGE
.globl _FLOWSTB
.globl _FLOWHOLDOFF
.globl _FLOWEQ1CTL
.globl _FLOWEQ0CTL
.globl _FLOWLOGIC
.globl _FLOWSTATE
.globl _GPIFABORT
.globl _GPIFREADYSTAT
.globl _GPIFREADYCFG
.globl _XGPIFSGLDATLNOX
.globl _XGPIFSGLDATLX
.globl _XGPIFSGLDATH
.globl _EP8GPIFTRIG
.globl _EP8GPIFPFSTOP
.globl _EP8GPIFFLGSEL
.globl _EP6GPIFTRIG
.globl _EP6GPIFPFSTOP
.globl _EP6GPIFFLGSEL
.globl _EP4GPIFTRIG
.globl _EP4GPIFPFSTOP
.globl _EP4GPIFFLGSEL
.globl _EP2GPIFTRIG
.globl _EP2GPIFPFSTOP
.globl _EP2GPIFFLGSEL
.globl _GPIFTCB0
.globl _GPIFTCB1
.globl _GPIFTCB2
.globl _GPIFTCB3
.globl _GPIFADRL
.globl _GPIFADRH
.globl _GPIFCTLCFG
.globl _GPIFIDLECTL
.globl _GPIFIDLECS
.globl _GPIFWFSELECT
.globl _SETUPDAT
.globl _SUDPTRCTL
.globl _SUDPTRL
.globl _SUDPTRH
.globl _EP8FIFOBCL
.globl _EP8FIFOBCH
.globl _EP6FIFOBCL
.globl _EP6FIFOBCH
.globl _EP4FIFOBCL
.globl _EP4FIFOBCH
.globl _EP2FIFOBCL
.globl _EP2FIFOBCH
.globl _EP8FIFOFLGS
.globl _EP6FIFOFLGS
.globl _EP4FIFOFLGS
.globl _EP2FIFOFLGS
.globl _EP8CS
.globl _EP6CS
.globl _EP4CS
.globl _EP2CS
.globl _EP1INCS
.globl _EP1OUTCS
.globl _EP0CS
.globl _EP8BCL
.globl _EP8BCH
.globl _EP6BCL
.globl _EP6BCH
.globl _EP4BCL
.globl _EP4BCH
.globl _EP2BCL
.globl _EP2BCH
.globl _EP1INBC
.globl _EP1OUTBC
.globl _EP0BCL
.globl _EP0BCH
.globl _FNADDR
.globl _MICROFRAME
.globl _USBFRAMEL
.globl _USBFRAMEH
.globl _TOGCTL
.globl _WAKEUPCS
.globl _SUSPEND
.globl _USBCS
.globl _XAUTODAT2
.globl _XAUTODAT1
.globl _I2CTL
.globl _I2DAT
.globl _I2CS
.globl _PORTECFG
.globl _PORTCCFG
.globl _PORTACFG
.globl _INTSETUP
.globl _INT4IVEC
.globl _INT2IVEC
.globl _CLRERRCNT
.globl _ERRCNTLIM
.globl _USBERRIRQ
.globl _USBERRIE
.globl _GPIFIRQ
.globl _GPIFIE
.globl _EPIRQ
.globl _EPIE
.globl _USBIRQ
.globl _USBIE
.globl _NAKIRQ
.globl _NAKIE
.globl _IBNIRQ
.globl _IBNIE
.globl _EP8FIFOIRQ
.globl _EP8FIFOIE
.globl _EP6FIFOIRQ
.globl _EP6FIFOIE
.globl _EP4FIFOIRQ
.globl _EP4FIFOIE
.globl _EP2FIFOIRQ
.globl _EP2FIFOIE
.globl _OUTPKTEND
.globl _INPKTEND
.globl _EP8ISOINPKTS
.globl _EP6ISOINPKTS
.globl _EP4ISOINPKTS
.globl _EP2ISOINPKTS
.globl _EP8FIFOPFL
.globl _EP8FIFOPFH
.globl _EP6FIFOPFL
.globl _EP6FIFOPFH
.globl _EP4FIFOPFL
.globl _EP4FIFOPFH
.globl _EP2FIFOPFL
.globl _EP2FIFOPFH
.globl _EP8AUTOINLENL
.globl _EP8AUTOINLENH
.globl _EP6AUTOINLENL
.globl _EP6AUTOINLENH
.globl _EP4AUTOINLENL
.globl _EP4AUTOINLENH
.globl _EP2AUTOINLENL
.globl _EP2AUTOINLENH
.globl _EP8FIFOCFG
.globl _EP6FIFOCFG
.globl _EP4FIFOCFG
.globl _EP2FIFOCFG
.globl _EP8CFG
.globl _EP6CFG
.globl _EP4CFG
.globl _EP2CFG
.globl _EP1INCFG
.globl _EP1OUTCFG
.globl _REVCTL
.globl _REVID
.globl _FIFOPINPOLAR
.globl _UART230
.globl _BPADDRL
.globl _BPADDRH
.globl _BREAKPT
.globl _FIFORESET
.globl _PINFLAGSCD
.globl _PINFLAGSAB
.globl _IFCONFIG
.globl _CPUCS
.globl _RES_WAVEDATA_END
.globl _GPIF_WAVE_DATA
.globl _hook_sv
.globl _hook_uv
.globl _hook_fgv
.globl _setup_autovectors
;--------------------------------------------------------
; special function registers
;--------------------------------------------------------
.area RSEG (DATA)
_IOA = 0x0080
_SP = 0x0081
_DPL = 0x0082
_DPH = 0x0083
_DPL1 = 0x0084
_DPH1 = 0x0085
_DPS = 0x0086
_PCON = 0x0087
_TCON = 0x0088
_TMOD = 0x0089
_TL0 = 0x008a
_TL1 = 0x008b
_TH0 = 0x008c
_TH1 = 0x008d
_CKCON = 0x008e
_IOB = 0x0090
_EXIF = 0x0091
_MPAGE = 0x0092
_SCON0 = 0x0098
_SBUF0 = 0x0099
_APTR1H = 0x009a
_APTR1L = 0x009b
_AUTODAT1 = 0x009c
_AUTOPTRH2 = 0x009d
_AUTOPTRL2 = 0x009e
_AUTODAT2 = 0x009f
_IOC = 0x00a0
_INT2CLR = 0x00a1
_INT4CLR = 0x00a2
_IE = 0x00a8
_EP2468STAT = 0x00aa
_EP24FIFOFLGS = 0x00ab
_EP68FIFOFLGS = 0x00ac
_AUTOPTRSETUP = 0x00af
_IOD = 0x00b0
_IOE = 0x00b1
_OEA = 0x00b2
_OEB = 0x00b3
_OEC = 0x00b4
_OED = 0x00b5
_OEE = 0x00b6
_IP = 0x00b8
_EP01STAT = 0x00ba
_GPIFTRIG = 0x00bb
_GPIFSGLDATH = 0x00bd
_GPIFSGLDATLX = 0x00be
_GPIFSGLDATLNOX = 0x00bf
_SCON1 = 0x00c0
_SBUF1 = 0x00c1
_T2CON = 0x00c8
_RCAP2L = 0x00ca
_RCAP2H = 0x00cb
_TL2 = 0x00cc
_TH2 = 0x00cd
_PSW = 0x00d0
_EICON = 0x00d8
_ACC = 0x00e0
_EIE = 0x00e8
_B = 0x00f0
_EIP = 0x00f8
;--------------------------------------------------------
; special function bits
;--------------------------------------------------------
.area RSEG (DATA)
_A0 = 0x0080
_A1 = 0x0081
_A2 = 0x0082
_A3 = 0x0083
_A4 = 0x0084
_A5 = 0x0085
_A6 = 0x0086
_A7 = 0x0087
_SEL = 0x0086
_IT0 = 0x0088
_IE0 = 0x0089
_IT1 = 0x008a
_IE1 = 0x008b
_TR0 = 0x008c
_TF0 = 0x008d
_TR1 = 0x008e
_TF1 = 0x008f
_RI = 0x0098
_TI = 0x0099
_RB8 = 0x009a
_TB8 = 0x009b
_REN = 0x009c
_SM2 = 0x009d
_SM1 = 0x009e
_SM0 = 0x009f
_EX0 = 0x00a8
_ET0 = 0x00a9
_EX1 = 0x00aa
_ET1 = 0x00ab
_ES0 = 0x00ac
_ET2 = 0x00ad
_ES1 = 0x00ae
_EA = 0x00af
_D0 = 0x00b0
_D1 = 0x00b1
_D2 = 0x00b2
_D3 = 0x00b3
_D4 = 0x00b4
_D5 = 0x00b5
_D6 = 0x00b6
_D7 = 0x00b7
_PX0 = 0x00b8
_PT0 = 0x00b9
_PX1 = 0x00ba
_PT1 = 0x00bb
_PS0 = 0x00bc
_PT2 = 0x00bd
_PS1 = 0x00be
_RI1 = 0x00c0
_TI1 = 0x00c1
_RB81 = 0x00c2
_TB81 = 0x00c3
_REN1 = 0x00c4
_SM21 = 0x00c5
_SM11 = 0x00c6
_SM01 = 0x00c7
_CP_RL2 = 0x00c8
_C_T2 = 0x00c9
_TR2 = 0x00ca
_EXEN2 = 0x00cb
_TCLK = 0x00cc
_RCLK = 0x00cd
_EXF2 = 0x00ce
_TF2 = 0x00cf
_P = 0x00d0
_FL = 0x00d1
_OV = 0x00d2
_RS0 = 0x00d3
_RS1 = 0x00d4
_F0 = 0x00d5
_AC = 0x00d6
_CY = 0x00d7
_INT6 = 0x00db
_RESI = 0x00dc
_ERESI = 0x00dd
_SMOD1 = 0x00df
_EIUSB = 0x00e8
_EI2C = 0x00e9
_EIEX4 = 0x00ea
_EIEX5 = 0x00eb
_EIEX6 = 0x00ec
_PUSB = 0x00f8
_PI2C = 0x00f9
_EIPX4 = 0x00fa
_EIPX5 = 0x00fb
_EIPX6 = 0x00fc
;--------------------------------------------------------
; overlayable register banks
;--------------------------------------------------------
.area REG_BANK_0 (REL,OVR,DATA)
.ds 8
;--------------------------------------------------------
; internal ram data
;--------------------------------------------------------
.area DSEG (DATA)
;--------------------------------------------------------
; overlayable items in internal ram
;--------------------------------------------------------
.area OSEG (OVR,DATA)
_hook_sv_PARM_2::
.ds 2
.area OSEG (OVR,DATA)
_hook_uv_PARM_2::
.ds 2
.area OSEG (OVR,DATA)
_hook_fgv_PARM_2::
.ds 2
;--------------------------------------------------------
; indirectly addressable internal ram data
;--------------------------------------------------------
.area ISEG (DATA)
;--------------------------------------------------------
; absolute internal ram data
;--------------------------------------------------------
.area IABS (ABS,DATA)
.area IABS (ABS,DATA)
;--------------------------------------------------------
; bit data
;--------------------------------------------------------
.area BSEG (BIT)
_hook_sv_t_1_1:
.ds 1
_hook_uv_t_1_1:
.ds 1
_hook_fgv_t_1_1:
.ds 1
;--------------------------------------------------------
; paged external ram data
;--------------------------------------------------------
.area PSEG (PAG,XDATA)
;--------------------------------------------------------
; external ram data
;--------------------------------------------------------
.area XSEG (XDATA)
_GPIF_WAVE_DATA = 0xe400
_RES_WAVEDATA_END = 0xe480
_CPUCS = 0xe600
_IFCONFIG = 0xe601
_PINFLAGSAB = 0xe602
_PINFLAGSCD = 0xe603
_FIFORESET = 0xe604
_BREAKPT = 0xe605
_BPADDRH = 0xe606
_BPADDRL = 0xe607
_UART230 = 0xe608
_FIFOPINPOLAR = 0xe609
_REVID = 0xe60a
_REVCTL = 0xe60b
_EP1OUTCFG = 0xe610
_EP1INCFG = 0xe611
_EP2CFG = 0xe612
_EP4CFG = 0xe613
_EP6CFG = 0xe614
_EP8CFG = 0xe615
_EP2FIFOCFG = 0xe618
_EP4FIFOCFG = 0xe619
_EP6FIFOCFG = 0xe61a
_EP8FIFOCFG = 0xe61b
_EP2AUTOINLENH = 0xe620
_EP2AUTOINLENL = 0xe621
_EP4AUTOINLENH = 0xe622
_EP4AUTOINLENL = 0xe623
_EP6AUTOINLENH = 0xe624
_EP6AUTOINLENL = 0xe625
_EP8AUTOINLENH = 0xe626
_EP8AUTOINLENL = 0xe627
_EP2FIFOPFH = 0xe630
_EP2FIFOPFL = 0xe631
_EP4FIFOPFH = 0xe632
_EP4FIFOPFL = 0xe633
_EP6FIFOPFH = 0xe634
_EP6FIFOPFL = 0xe635
_EP8FIFOPFH = 0xe636
_EP8FIFOPFL = 0xe637
_EP2ISOINPKTS = 0xe640
_EP4ISOINPKTS = 0xe641
_EP6ISOINPKTS = 0xe642
_EP8ISOINPKTS = 0xe643
_INPKTEND = 0xe648
_OUTPKTEND = 0xe649
_EP2FIFOIE = 0xe650
_EP2FIFOIRQ = 0xe651
_EP4FIFOIE = 0xe652
_EP4FIFOIRQ = 0xe653
_EP6FIFOIE = 0xe654
_EP6FIFOIRQ = 0xe655
_EP8FIFOIE = 0xe656
_EP8FIFOIRQ = 0xe657
_IBNIE = 0xe658
_IBNIRQ = 0xe659
_NAKIE = 0xe65a
_NAKIRQ = 0xe65b
_USBIE = 0xe65c
_USBIRQ = 0xe65d
_EPIE = 0xe65e
_EPIRQ = 0xe65f
_GPIFIE = 0xe660
_GPIFIRQ = 0xe661
_USBERRIE = 0xe662
_USBERRIRQ = 0xe663
_ERRCNTLIM = 0xe664
_CLRERRCNT = 0xe665
_INT2IVEC = 0xe666
_INT4IVEC = 0xe667
_INTSETUP = 0xe668
_PORTACFG = 0xe670
_PORTCCFG = 0xe671
_PORTECFG = 0xe672
_I2CS = 0xe678
_I2DAT = 0xe679
_I2CTL = 0xe67a
_XAUTODAT1 = 0xe67b
_XAUTODAT2 = 0xe67c
_USBCS = 0xe680
_SUSPEND = 0xe681
_WAKEUPCS = 0xe682
_TOGCTL = 0xe683
_USBFRAMEH = 0xe684
_USBFRAMEL = 0xe685
_MICROFRAME = 0xe686
_FNADDR = 0xe687
_EP0BCH = 0xe68a
_EP0BCL = 0xe68b
_EP1OUTBC = 0xe68d
_EP1INBC = 0xe68f
_EP2BCH = 0xe690
_EP2BCL = 0xe691
_EP4BCH = 0xe694
_EP4BCL = 0xe695
_EP6BCH = 0xe698
_EP6BCL = 0xe699
_EP8BCH = 0xe69c
_EP8BCL = 0xe69d
_EP0CS = 0xe6a0
_EP1OUTCS = 0xe6a1
_EP1INCS = 0xe6a2
_EP2CS = 0xe6a3
_EP4CS = 0xe6a4
_EP6CS = 0xe6a5
_EP8CS = 0xe6a6
_EP2FIFOFLGS = 0xe6a7
_EP4FIFOFLGS = 0xe6a8
_EP6FIFOFLGS = 0xe6a9
_EP8FIFOFLGS = 0xe6aa
_EP2FIFOBCH = 0xe6ab
_EP2FIFOBCL = 0xe6ac
_EP4FIFOBCH = 0xe6ad
_EP4FIFOBCL = 0xe6ae
_EP6FIFOBCH = 0xe6af
_EP6FIFOBCL = 0xe6b0
_EP8FIFOBCH = 0xe6b1
_EP8FIFOBCL = 0xe6b2
_SUDPTRH = 0xe6b3
_SUDPTRL = 0xe6b4
_SUDPTRCTL = 0xe6b5
_SETUPDAT = 0xe6b8
_GPIFWFSELECT = 0xe6c0
_GPIFIDLECS = 0xe6c1
_GPIFIDLECTL = 0xe6c2
_GPIFCTLCFG = 0xe6c3
_GPIFADRH = 0xe6c4
_GPIFADRL = 0xe6c5
_GPIFTCB3 = 0xe6ce
_GPIFTCB2 = 0xe6cf
_GPIFTCB1 = 0xe6d0
_GPIFTCB0 = 0xe6d1
_EP2GPIFFLGSEL = 0xe6d2
_EP2GPIFPFSTOP = 0xe6d3
_EP2GPIFTRIG = 0xe6d4
_EP4GPIFFLGSEL = 0xe6da
_EP4GPIFPFSTOP = 0xe6db
_EP4GPIFTRIG = 0xe6dc
_EP6GPIFFLGSEL = 0xe6e2
_EP6GPIFPFSTOP = 0xe6e3
_EP6GPIFTRIG = 0xe6e4
_EP8GPIFFLGSEL = 0xe6ea
_EP8GPIFPFSTOP = 0xe6eb
_EP8GPIFTRIG = 0xe6ec
_XGPIFSGLDATH = 0xe6f0
_XGPIFSGLDATLX = 0xe6f1
_XGPIFSGLDATLNOX = 0xe6f2
_GPIFREADYCFG = 0xe6f3
_GPIFREADYSTAT = 0xe6f4
_GPIFABORT = 0xe6f5
_FLOWSTATE = 0xe6c6
_FLOWLOGIC = 0xe6c7
_FLOWEQ0CTL = 0xe6c8
_FLOWEQ1CTL = 0xe6c9
_FLOWHOLDOFF = 0xe6ca
_FLOWSTB = 0xe6cb
_FLOWSTBEDGE = 0xe6cc
_FLOWSTBHPERIOD = 0xe6cd
_GPIFHOLDAMOUNT = 0xe60c
_UDMACRCH = 0xe67d
_UDMACRCL = 0xe67e
_UDMACRCQUAL = 0xe67f
_DBUG = 0xe6f8
_TESTCFG = 0xe6f9
_USBTEST = 0xe6fa
_CT1 = 0xe6fb
_CT2 = 0xe6fc
_CT3 = 0xe6fd
_CT4 = 0xe6fe
_EP0BUF = 0xe740
_EP1OUTBUF = 0xe780
_EP1INBUF = 0xe7c0
_EP2FIFOBUF = 0xf000
_EP4FIFOBUF = 0xf400
_EP6FIFOBUF = 0xf800
_EP8FIFOBUF = 0xfc00
;--------------------------------------------------------
; absolute external ram data
;--------------------------------------------------------
.area XABS (ABS,XDATA)
;--------------------------------------------------------
; external initialized ram data
;--------------------------------------------------------
.area HOME (CODE)
.area GSINIT0 (CODE)
.area GSINIT1 (CODE)
.area GSINIT2 (CODE)
.area GSINIT3 (CODE)
.area GSINIT4 (CODE)
.area GSINIT5 (CODE)
.area GSINIT (CODE)
.area GSFINAL (CODE)
.area CSEG (CODE)
;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
.area HOME (CODE)
.area GSINIT (CODE)
.area GSFINAL (CODE)
.area GSINIT (CODE)
;--------------------------------------------------------
; Home
;--------------------------------------------------------
.area HOME (CODE)
.area HOME (CODE)
;--------------------------------------------------------
; code
;--------------------------------------------------------
.area CSEG (CODE)
;------------------------------------------------------------
;Allocation info for local variables in function 'hook_sv'
;------------------------------------------------------------
;addr Allocated with name '_hook_sv_PARM_2'
;vector_number Allocated to registers r2
;------------------------------------------------------------
; isr.c:40: hook_sv (unsigned char vector_number, unsigned short addr)
; -----------------------------------------
; function hook_sv
; -----------------------------------------
_hook_sv:
ar2 = 0x02
ar3 = 0x03
ar4 = 0x04
ar5 = 0x05
ar6 = 0x06
ar7 = 0x07
ar0 = 0x00
ar1 = 0x01
mov r2,dpl
; isr.c:46: if (vector_number < SV_MIN || vector_number > SV_MAX)
cjne r2,#0x03,00112$
00112$:
jc 00101$
mov a,r2
add a,#0xff - 0x63
jnc 00102$
00101$:
; isr.c:47: return;
ret
00102$:
; isr.c:49: if ((vector_number & 0x0f) != 0x03 && (vector_number & 0x0f) != 0x0b)
mov a,#0x0F
anl a,r2
mov r3,a
cjne r3,#0x03,00115$
sjmp 00105$
00115$:
mov a,#0x0F
anl a,r2
mov r3,a
; isr.c:50: return;
cjne r3,#0x0B,00107$
00105$:
; isr.c:52: t = EA;
mov c,_EA
mov _hook_sv_t_1_1,c
; isr.c:53: EA = 0;
clr _EA
; isr.c:54: _standard_interrupt_vector[vector_number] = LJMP_OPCODE;
mov a,r2
add a,#__standard_interrupt_vector
mov dpl,a
clr a
addc a,#(__standard_interrupt_vector >> 8)
mov dph,a
mov a,#0x02
movx @dptr,a
; isr.c:55: _standard_interrupt_vector[vector_number + 1] = addr >> 8;
mov r3,#0x00
mov a,#0x01
add a,r2
mov r4,a
clr a
addc a,r3
mov r5,a
mov a,r4
add a,#__standard_interrupt_vector
mov dpl,a
mov a,r5
addc a,#(__standard_interrupt_vector >> 8)
mov dph,a
mov a,(_hook_sv_PARM_2 + 1)
mov r4,a
movx @dptr,a
; isr.c:56: _standard_interrupt_vector[vector_number + 2] = addr & 0xff;
mov a,#0x02
add a,r2
mov r2,a
clr a
addc a,r3
mov r3,a
mov a,r2
add a,#__standard_interrupt_vector
mov dpl,a
mov a,r3
addc a,#(__standard_interrupt_vector >> 8)
mov dph,a
mov r2,_hook_sv_PARM_2
mov r3,#0x00
mov a,r2
movx @dptr,a
; isr.c:57: EA = t;
mov c,_hook_sv_t_1_1
mov _EA,c
00107$:
ret
;------------------------------------------------------------
;Allocation info for local variables in function 'hook_uv'
;------------------------------------------------------------
;addr Allocated with name '_hook_uv_PARM_2'
;vector_number Allocated to registers r2
;------------------------------------------------------------
; isr.c:67: hook_uv (unsigned char vector_number, unsigned short addr)
; -----------------------------------------
; function hook_uv
; -----------------------------------------
_hook_uv:
; isr.c:73: if (vector_number < UV_MIN || vector_number > UV_MAX)
mov a,dpl
mov r2,a
add a,#0xff - 0x7C
jnc 00102$
; isr.c:74: return;
ret
00102$:
; isr.c:76: if ((vector_number & 0x3) != 0)
mov a,r2
anl a,#0x03
jz 00105$
; isr.c:77: return;
ret
00105$:
; isr.c:79: t = EA;
mov c,_EA
mov _hook_uv_t_1_1,c
; isr.c:80: EA = 0;
clr _EA
; isr.c:81: _usb_autovector[vector_number] = LJMP_OPCODE;
mov a,r2
add a,#__usb_autovector
mov dpl,a
clr a
addc a,#(__usb_autovector >> 8)
mov dph,a
mov a,#0x02
movx @dptr,a
; isr.c:82: _usb_autovector[vector_number + 1] = addr >> 8;
mov r3,#0x00
mov a,#0x01
add a,r2
mov r4,a
clr a
addc a,r3
mov r5,a
mov a,r4
add a,#__usb_autovector
mov dpl,a
mov a,r5
addc a,#(__usb_autovector >> 8)
mov dph,a
mov a,(_hook_uv_PARM_2 + 1)
movx @dptr,a
; isr.c:83: _usb_autovector[vector_number + 2] = addr & 0xff;
mov a,#0x02
add a,r2
mov r2,a
clr a
addc a,r3
mov r3,a
mov a,r2
add a,#__usb_autovector
mov dpl,a
mov a,r3
addc a,#(__usb_autovector >> 8)
mov dph,a
mov r2,_hook_uv_PARM_2
mov a,r2
movx @dptr,a
; isr.c:84: EA = t;
mov c,_hook_uv_t_1_1
mov _EA,c
ret
;------------------------------------------------------------
;Allocation info for local variables in function 'hook_fgv'
;------------------------------------------------------------
;addr Allocated with name '_hook_fgv_PARM_2'
;vector_number Allocated to registers r2
;------------------------------------------------------------
; isr.c:94: hook_fgv (unsigned char vector_number, unsigned short addr)
; -----------------------------------------
; function hook_fgv
; -----------------------------------------
_hook_fgv:
mov r2,dpl
; isr.c:100: if (vector_number < FGV_MIN || vector_number > FGV_MAX)
cjne r2,#0x80,00110$
00110$:
jc 00101$
mov a,r2
add a,#0xff - 0xB4
jnc 00102$
00101$:
; isr.c:101: return;
ret
00102$:
; isr.c:103: if ((vector_number & 0x3) != 0)
mov a,r2
anl a,#0x03
jz 00105$
; isr.c:104: return;
ret
00105$:
; isr.c:106: t = EA;
mov c,_EA
mov _hook_fgv_t_1_1,c
; isr.c:107: EA = 0;
clr _EA
; isr.c:108: _fifo_gpif_autovector[vector_number] = LJMP_OPCODE;
mov a,r2
add a,#__fifo_gpif_autovector
mov dpl,a
clr a
addc a,#(__fifo_gpif_autovector >> 8)
mov dph,a
mov a,#0x02
movx @dptr,a
; isr.c:109: _fifo_gpif_autovector[vector_number + 1] = addr >> 8;
mov r3,#0x00
mov a,#0x01
add a,r2
mov r4,a
clr a
addc a,r3
mov r5,a
mov a,r4
add a,#__fifo_gpif_autovector
mov dpl,a
mov a,r5
addc a,#(__fifo_gpif_autovector >> 8)
mov dph,a
mov a,(_hook_fgv_PARM_2 + 1)
movx @dptr,a
; isr.c:110: _fifo_gpif_autovector[vector_number + 2] = addr & 0xff;
mov a,#0x02
add a,r2
mov r2,a
clr a
addc a,r3
mov r3,a
mov a,r2
add a,#__fifo_gpif_autovector
mov dpl,a
mov a,r3
addc a,#(__fifo_gpif_autovector >> 8)
mov dph,a
mov r2,_hook_fgv_PARM_2
mov a,r2
movx @dptr,a
; isr.c:111: EA = t;
mov c,_hook_fgv_t_1_1
mov _EA,c
ret
;------------------------------------------------------------
;Allocation info for local variables in function 'setup_autovectors'
;------------------------------------------------------------
;------------------------------------------------------------
; isr.c:122: setup_autovectors (void)
; -----------------------------------------
; function setup_autovectors
; -----------------------------------------
_setup_autovectors:
; isr.c:125: EIUSB = 0;
clr _EIUSB
; isr.c:126: EIEX4 = 0;
clr _EIEX4
; isr.c:128: hook_sv (SV_INT_2, (unsigned short) _usb_autovector);
mov _hook_sv_PARM_2,#__usb_autovector
mov (_hook_sv_PARM_2 + 1),#(__usb_autovector >> 8)
mov dpl,#0x43
lcall _hook_sv
; isr.c:129: hook_sv (SV_INT_4, (unsigned short) _fifo_gpif_autovector);
mov _hook_sv_PARM_2,#__fifo_gpif_autovector
mov (_hook_sv_PARM_2 + 1),#(__fifo_gpif_autovector >> 8)
mov dpl,#0x53
lcall _hook_sv
; isr.c:132: SYNCDELAY;
nop; nop; nop;
; isr.c:133: EP2FIFOIE = 0; SYNCDELAY;
mov dptr,#_EP2FIFOIE
clr a
movx @dptr,a
nop; nop; nop;
; isr.c:134: EP4FIFOIE = 0; SYNCDELAY;
mov dptr,#_EP4FIFOIE
clr a
movx @dptr,a
nop; nop; nop;
; isr.c:135: EP6FIFOIE = 0; SYNCDELAY;
mov dptr,#_EP6FIFOIE
clr a
movx @dptr,a
nop; nop; nop;
; isr.c:136: EP8FIFOIE = 0; SYNCDELAY;
mov dptr,#_EP8FIFOIE
clr a
movx @dptr,a
nop; nop; nop;
; isr.c:139: EP2FIFOIRQ = 0xff; SYNCDELAY;
mov dptr,#_EP2FIFOIRQ
mov a,#0xFF
movx @dptr,a
nop; nop; nop;
; isr.c:140: EP4FIFOIRQ = 0xff; SYNCDELAY;
mov dptr,#_EP4FIFOIRQ
mov a,#0xFF
movx @dptr,a
nop; nop; nop;
; isr.c:141: EP6FIFOIRQ = 0xff; SYNCDELAY;
mov dptr,#_EP6FIFOIRQ
mov a,#0xFF
movx @dptr,a
nop; nop; nop;
; isr.c:142: EP8FIFOIRQ = 0xff; SYNCDELAY;
mov dptr,#_EP8FIFOIRQ
mov a,#0xFF
movx @dptr,a
nop; nop; nop;
; isr.c:144: IBNIE = 0;
mov dptr,#_IBNIE
clr a
movx @dptr,a
; isr.c:145: IBNIRQ = 0xff;
mov dptr,#_IBNIRQ
mov a,#0xFF
movx @dptr,a
; isr.c:146: NAKIE = 0;
mov dptr,#_NAKIE
clr a
movx @dptr,a
; isr.c:147: NAKIRQ = 0xff;
mov dptr,#_NAKIRQ
mov a,#0xFF
movx @dptr,a
; isr.c:148: USBIE = 0;
mov dptr,#_USBIE
clr a
movx @dptr,a
; isr.c:149: USBIRQ = 0xff;
mov dptr,#_USBIRQ
mov a,#0xFF
movx @dptr,a
; isr.c:150: EPIE = 0;
mov dptr,#_EPIE
clr a
movx @dptr,a
; isr.c:151: EPIRQ = 0xff;
mov dptr,#_EPIRQ
mov a,#0xFF
movx @dptr,a
; isr.c:152: SYNCDELAY; GPIFIE = 0;
nop; nop; nop;
mov dptr,#_GPIFIE
clr a
movx @dptr,a
; isr.c:153: SYNCDELAY; GPIFIRQ = 0xff;
nop; nop; nop;
mov dptr,#_GPIFIRQ
mov a,#0xFF
movx @dptr,a
; isr.c:154: USBERRIE = 0;
mov dptr,#_USBERRIE
clr a
movx @dptr,a
; isr.c:155: USBERRIRQ = 0xff;
mov dptr,#_USBERRIRQ
mov a,#0xFF
movx @dptr,a
; isr.c:156: CLRERRCNT = 0;
mov dptr,#_CLRERRCNT
clr a
movx @dptr,a
; isr.c:158: INTSETUP = bmAV2EN | bmAV4EN | bmINT4IN;
mov dptr,#_INTSETUP
mov a,#0x0B
movx @dptr,a
; isr.c:161: EXIF &= ~bmEXIF_USBINT;
; isr.c:162: EXIF &= ~bmEXIF_IE4;
anl _EXIF,#(0xEF&0xBF)
; isr.c:165: EIUSB = 1;
setb _EIUSB
; isr.c:166: EIEX4 = 1;
setb _EIEX4
ret
.area CSEG (CODE)
.area CONST (CODE)
.area CABS (ABS,CODE)