📄 jbg_tmrisr.asm
字号:
.section program;
.extern _tTicks;
.extern _getr;
_TimerIsr:
.global _TimerIsr;
[--sp] = p0;
[--sp] = r0;
p0 = 0;
p0.h = _tTicks;
p0.l = _tTicks;
r0 = [p0];
r0 += 1;
[p0] = r0;
r0 = [sp++];
p0 = [sp++];
rti;
_TimerIsr.end:
_SetTimer:
.global _SetTimer;
[--sp] = p0;
[--sp] = r1;
p0.h = 0xffe0;
p0.l = 0x2104;
r1 = 0x5f;
[p0] = r1; // Enable core timer interrupt
p0.l = 0x2018;
r1.h = _TimerIsr;
r1.l = _TimerIsr;
[p0] = r1; // Set core timer interrupt vector
p0.l = 0x3000;
r1 = 0x1;
[p0] = r1; // Activate core timer
p0.l = 0x300c;
[p0] = r0; // Set core timer count
p0.l = 0x3004;
[p0] = r0; // Set core timer period
p0.l = 0x3008;
r1 = 0;
[p0] = r1; // Set core timer scale
p0.l = 0x3000;
r1 = 0x7;
[p0] = r1; // Start timer and enable it auto-reload
r1 = [sp++];
p0 = [sp++];
_SetTimer.end:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -