irq.h File Reference

Internal LNP Interface: RCX redirected IRQ vectors. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define HANDLER_WRAPPER(wrapstring, handstring)
 

Functions

void rom_ocia_handler ()
 ROM OCIA interrupt handler. More...
 
void rom_ocia_return ()
 return address in ROM OCIA handler More...
 
void rom_dummy_handler ()
 address of an RTS instruction More...
 
void disable_irqs ()
 disable interrupt processing More...
 
void enable_irqs ()
 enable interrupt processing More...
 

Variables

void * reset_vector
 reset vector More...
 
void * nmi_vector
 NMI interrupt vector. More...
 
void * irq0_vector
 IRQ0 interrupt vector. More...
 
void * irq1_vector
 IRQ1 interrupt vector. More...
 
void * irq2_vector
 IRQ2 interrupt vector. More...
 
void * icia_vector
 ICIA interrupt vector. More...
 
void * icib_vector
 ICIB interrupt vector. More...
 
void * icic_vector
 ICIC interrupt vector. More...
 
void * icid_vector
 ICID interrupt vector. More...
 
void * ocia_vector
 OCIA interrupt vector. More...
 
void * ocib_vector
 OCIB interrupt vector. More...
 
void * fovi_vector
 FOVI interrupt vector. More...
 
void * cmi0a_vector
 CMI0A interrupt vector. More...
 
void * cmi0b_vector
 CMI0B interrupt vector. More...
 
void * ovi0_vector
 OVI0 interrupt vector. More...
 
void * cmi1a_vector
 CMI1A interrupt vector. More...
 
void * cmi1b_vector
 CMI1B interrupt vector. More...
 
void * ovi1_vector
 OVI1 interrupt vector. More...
 
void * eri_vector
 ERI interrupt vector. More...
 
void * rxi_vector
 RXI interrupt vector. More...
 
void * txi_vector
 TXI interrupt vector. More...
 
void * tei_vector
 TEI interrupt vector. More...
 
void * ad_vector
 A/D interrupt vector. More...
 
void * wovf_vector
 WOVF interrupt vector. More...
 
void * rom_reset_vector
 ROM reset vector. More...
 

Detailed Description

Internal LNP Interface: RCX redirected IRQ vectors.

Author
Markus L. Noga marku.nosp@m.s@no.nosp@m.ga.de

Lego Mindstorms RCX IRQ redirection vector table All redirected handlers can assume r6 to be saved All redirected handlers must return with rts, not rte.

Warning
Incomplete.

Definition in file irq.h.

Macro Definition Documentation

◆ HANDLER_WRAPPER

#define HANDLER_WRAPPER (   wrapstring,
  handstring 
)
Value:
__asm__ (".text\n.align 1\n.global _" wrapstring "\n_" wrapstring \
": push r0\npush r1\npush r2\npush r3\njsr @_" handstring \
"\npop r3\npop r2\npop r1\npop r0\nrts\n")
__asm__("\n\ .text\n\ .globl _atomic_inc\n\ _atomic_inc:\n\ stc ccr, r1h ; save flags\n\ orc #0x80, ccr ; disable all but NMI\n\ mov.b @r0, r1l\n\ inc r1l\n\ mov.b r1l, @r0\n\ ldc r1h, ccr ; restore flags\n\ rts\n\ ")

Definition at line 48 of file irq.h.

Function Documentation

◆ disable_irqs()

void disable_irqs ( )
inline

disable interrupt processing

Definition at line 98 of file irq.h.

References __asm__().

Referenced by rom_reset().

◆ enable_irqs()

void enable_irqs ( )
inline

enable interrupt processing

Definition at line 103 of file irq.h.

References __asm__().

◆ rom_dummy_handler()

void rom_dummy_handler ( )

address of an RTS instruction

Referenced by systime_init().

◆ rom_ocia_handler()

void rom_ocia_handler ( )

ROM OCIA interrupt handler.

◆ rom_ocia_return()

void rom_ocia_return ( )

return address in ROM OCIA handler

Variable Documentation

◆ ad_vector

void* ad_vector
extern

A/D interrupt vector.

◆ cmi0a_vector

void* cmi0a_vector
extern

CMI0A interrupt vector.

◆ cmi0b_vector

void* cmi0b_vector
extern

CMI0B interrupt vector.

◆ cmi1a_vector

void* cmi1a_vector
extern

CMI1A interrupt vector.

◆ cmi1b_vector

void* cmi1b_vector
extern

CMI1B interrupt vector.

◆ eri_vector

void* eri_vector
extern

ERI interrupt vector.

◆ fovi_vector

void* fovi_vector
extern

FOVI interrupt vector.

◆ icia_vector

void* icia_vector
extern

ICIA interrupt vector.

◆ icib_vector

void* icib_vector
extern

ICIB interrupt vector.

◆ icic_vector

void* icic_vector
extern

ICIC interrupt vector.

◆ icid_vector

void* icid_vector
extern

ICID interrupt vector.

◆ irq0_vector

void* irq0_vector
extern

IRQ0 interrupt vector.

◆ irq1_vector

void* irq1_vector
extern

IRQ1 interrupt vector.

◆ irq2_vector

void* irq2_vector
extern

IRQ2 interrupt vector.

◆ nmi_vector

void* nmi_vector
extern

NMI interrupt vector.

Referenced by systime_init().

◆ ocia_vector

void* ocia_vector
extern

OCIA interrupt vector.

Referenced by systime_init().

◆ ocib_vector

void* ocib_vector
extern

OCIB interrupt vector.

Referenced by systime_init().

◆ ovi0_vector

void* ovi0_vector
extern

OVI0 interrupt vector.

◆ ovi1_vector

void* ovi1_vector
extern

OVI1 interrupt vector.

◆ reset_vector

void* reset_vector
extern

reset vector

◆ rom_reset_vector

void* rom_reset_vector
extern

ROM reset vector.

◆ rxi_vector

void* rxi_vector
extern

RXI interrupt vector.

◆ tei_vector

void* tei_vector
extern

TEI interrupt vector.

◆ txi_vector

void* txi_vector
extern

TXI interrupt vector.

◆ wovf_vector

void* wovf_vector
extern

WOVF interrupt vector.


brickOS is released under the Mozilla Public License.
Original code copyright 1998-2005 by the authors.

Generated for brickOS Kernel Developer by doxygen 1.9.4