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")

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

A/D interrupt vector.

◆ cmi0a_vector

void* cmi0a_vector

CMI0A interrupt vector.

◆ cmi0b_vector

void* cmi0b_vector

CMI0B interrupt vector.

◆ cmi1a_vector

void* cmi1a_vector

CMI1A interrupt vector.

◆ cmi1b_vector

void* cmi1b_vector

CMI1B interrupt vector.

◆ eri_vector

void* eri_vector

ERI interrupt vector.

◆ fovi_vector

void* fovi_vector

FOVI interrupt vector.

◆ icia_vector

void* icia_vector

ICIA interrupt vector.

◆ icib_vector

void* icib_vector

ICIB interrupt vector.

◆ icic_vector

void* icic_vector

ICIC interrupt vector.

◆ icid_vector

void* icid_vector

ICID interrupt vector.

◆ irq0_vector

void* irq0_vector

IRQ0 interrupt vector.

◆ irq1_vector

void* irq1_vector

IRQ1 interrupt vector.

◆ irq2_vector

void* irq2_vector

IRQ2 interrupt vector.

◆ nmi_vector

void* nmi_vector

NMI interrupt vector.

Referenced by systime_init().

◆ ocia_vector

void* ocia_vector

OCIA interrupt vector.

Referenced by systime_init().

◆ ocib_vector

void* ocib_vector

OCIB interrupt vector.

Referenced by systime_init().

◆ ovi0_vector

void* ovi0_vector

OVI0 interrupt vector.

◆ ovi1_vector

void* ovi1_vector

OVI1 interrupt vector.

◆ reset_vector

void* reset_vector

reset vector

◆ rom_reset_vector

void* rom_reset_vector

ROM reset vector.

◆ rxi_vector

void* rxi_vector

RXI interrupt vector.

◆ tei_vector

void* tei_vector

TEI interrupt vector.

◆ txi_vector

void* txi_vector

TXI interrupt vector.

◆ wovf_vector

void* wovf_vector

WOVF interrupt vector.

__asm__
__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\ ")

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

Generated for brickOS Kernel Developer by doxygen 1.8.16