Work on interrupts
This commit is contained in:
parent
15d9c568dc
commit
aa35098cdd
|
@ -70,6 +70,12 @@ cop_handler_native:
|
||||||
; right handler for the particular function being called, without
|
; right handler for the particular function being called, without
|
||||||
; modifying anything but the X register.
|
; modifying anything but the X register.
|
||||||
|
|
||||||
|
; Note that if a COP function takes a single 8/16-bit argument, it will be
|
||||||
|
; in A; if it takes two 8/16-bit arguments, they will be in A and Y.
|
||||||
|
; If the function takes more arguments, then the arguments will be packed
|
||||||
|
; into a structure, with the bank of the structure in A, and the
|
||||||
|
; address in that bank of the structure in Y.
|
||||||
|
|
||||||
; Now, we do an indirect, indexed jump through the jump table.
|
; Now, we do an indirect, indexed jump through the jump table.
|
||||||
jmp (.kbank(cop_jump_table),x)
|
jmp (.kbank(cop_jump_table),x)
|
||||||
|
|
||||||
|
@ -86,14 +92,10 @@ cop_exit:
|
||||||
|
|
||||||
; -----------------------------------------------------------------------------
|
; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
.extern version_major, version_minor, version_micro
|
.extern version_number
|
||||||
|
|
||||||
cop_get_version:
|
cop_get_version:
|
||||||
lda long:version_micro
|
lda long:version_number
|
||||||
tay
|
|
||||||
lda long:version_minor
|
|
||||||
tax
|
|
||||||
lda long:version_major
|
|
||||||
cop_rti
|
cop_rti
|
||||||
|
|
||||||
; -----------------------------------------------------------------------------
|
; -----------------------------------------------------------------------------
|
||||||
|
|
16
src/main.c
16
src/main.c
|
@ -11,9 +11,19 @@
|
||||||
#include "interrupts.h"
|
#include "interrupts.h"
|
||||||
#include "drivers/vera.h"
|
#include "drivers/vera.h"
|
||||||
|
|
||||||
const uint16_t version_major = 0;
|
// This structure essentially divides a uint16_t into four
|
||||||
const uint16_t version_minor = 1;
|
// fields, each of which holds a version number.
|
||||||
const uint16_t version_micro = 1;
|
struct version_number_s {
|
||||||
|
const uint8_t version_micro: 8;
|
||||||
|
const uint8_t version_minor: 4;
|
||||||
|
const uint8_t version_major: 4;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct version_number_s version_number = {
|
||||||
|
.version_major = 0,
|
||||||
|
.version_minor = 0,
|
||||||
|
.version_micro = 1,
|
||||||
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
main(void)
|
main(void)
|
||||||
|
|
Loading…
Reference in New Issue