Add additiona raster irq for kernal with potential no IO
This commit is contained in:
parent
3f9d042863
commit
1fa9828f6a
|
@ -248,6 +248,88 @@ ex2:
|
|||
jmp $ea31
|
||||
}
|
||||
|
||||
__asm irq3
|
||||
{
|
||||
lda $01
|
||||
pha
|
||||
lda #$36
|
||||
sta $01
|
||||
|
||||
lda $d019
|
||||
bpl ex2
|
||||
|
||||
ldx nextIRQ
|
||||
l1:
|
||||
lda rasterIRQNext, x
|
||||
cmp #$ff
|
||||
beq e1
|
||||
|
||||
ldy rasterIRQIndex + 1, x
|
||||
tax
|
||||
lda rasterIRQLow, y
|
||||
sta ji + 1
|
||||
lda rasterIRQHigh, y
|
||||
sta ji + 2
|
||||
|
||||
ji:
|
||||
jsr $0000
|
||||
jx:
|
||||
|
||||
inc nextIRQ
|
||||
ldx nextIRQ
|
||||
|
||||
lda rasterIRQNext, x
|
||||
cmp #$ff
|
||||
beq e2
|
||||
|
||||
tay
|
||||
|
||||
sec
|
||||
sbc #4
|
||||
cmp $d012
|
||||
bcc l1
|
||||
|
||||
dey
|
||||
sty $d012
|
||||
w1:
|
||||
jmp ex
|
||||
|
||||
e2:
|
||||
ldx npos
|
||||
stx tpos
|
||||
inc rirq_count
|
||||
|
||||
bit $d011
|
||||
bmi e1
|
||||
|
||||
sta $d012
|
||||
|
||||
jmp ex
|
||||
|
||||
e1:
|
||||
ldx #0
|
||||
stx nextIRQ
|
||||
lda rasterIRQNext, x
|
||||
sec
|
||||
sbc #1
|
||||
sta $d012
|
||||
|
||||
ex:
|
||||
asl $d019
|
||||
pla
|
||||
sta $01
|
||||
|
||||
jmp $ea81
|
||||
|
||||
ex2:
|
||||
LDA $DC0D
|
||||
cli
|
||||
pla
|
||||
sta $01
|
||||
|
||||
jmp $ea31
|
||||
}
|
||||
|
||||
// 0 lda #data0
|
||||
// 2 ldy #data1
|
||||
// 4 cpx $d012
|
||||
|
@ -410,6 +492,23 @@ void rirq_init_kernal(void)
|
|||
|
||||
}
|
||||
|
||||
void rirq_init_kernal_io(void)
|
||||
{
|
||||
rirq_init_tables();
|
||||
|
||||
__asm
|
||||
{
|
||||
sei
|
||||
}
|
||||
|
||||
*(void **)0x0314 = irq3;
|
||||
|
||||
vic.intr_enable = 1;
|
||||
vic.ctrl1 &= 0x7f;
|
||||
vic.raster = 255;
|
||||
|
||||
}
|
||||
|
||||
void rirq_init_io(void)
|
||||
{
|
||||
rirq_init_tables();
|
||||
|
|
|
@ -149,6 +149,8 @@ inline void rirq_init(bool kernalIRQ);
|
|||
|
||||
void rirq_init_kernal(void);
|
||||
|
||||
void rirq_init_kernal_io(void);
|
||||
|
||||
void rirq_init_io(void);
|
||||
|
||||
void rirq_init_memmap(void);
|
||||
|
|
|
@ -1739,14 +1739,17 @@ Expression* Parser::ParseInitExpression(Declaration* dtype)
|
|||
Expression* texp = ParseInitExpression(mdec->mBase);
|
||||
|
||||
Declaration* cdec = CopyConstantInitializer(mdec->mOffset, mdec->mBase, texp);
|
||||
cdec->mBits = mdec->mBits;
|
||||
cdec->mShift = mdec->mShift;
|
||||
if (cdec)
|
||||
{
|
||||
cdec->mBits = mdec->mBits;
|
||||
cdec->mShift = mdec->mShift;
|
||||
|
||||
if (last)
|
||||
last->mNext = cdec;
|
||||
else
|
||||
dec->mParams = cdec;
|
||||
last = cdec;
|
||||
if (last)
|
||||
last->mNext = cdec;
|
||||
else
|
||||
dec->mParams = cdec;
|
||||
last = cdec;
|
||||
}
|
||||
|
||||
if (!ConsumeTokenIf(TK_COMMA))
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue