1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-06-03 07:29:37 +00:00
kickc/src/test/ref/irq-idx-problem.cfg
2024-01-02 19:21:16 +01:00

62 lines
2.2 KiB
INI

void __start()
__start: scope:[__start] from
[0] phi()
to:__start::__init1
__start::__init1: scope:[__start] from __start
[1] irq_idx = 0
to:__start::@1
__start::@1: scope:[__start] from __start::__init1
[2] phi()
[3] call main
to:__start::@return
__start::@return: scope:[__start] from __start::@1
[4] return
to:@return
__interrupt(rom_min_c64) void table_driven_irq()
table_driven_irq: scope:[table_driven_irq] from
[5] phi()
to:table_driven_irq::@1
table_driven_irq::@1: scope:[table_driven_irq] from table_driven_irq table_driven_irq::@2 table_driven_irq::@3
[6] table_driven_irq::idx#0 = IRQ_CHANGE_IDX[irq_idx]
[7] table_driven_irq::val#0 = IRQ_CHANGE_VAL[irq_idx]
[8] irq_idx = ++ irq_idx
[9] if(table_driven_irq::idx#0<VICII_SIZE) goto table_driven_irq::@2
to:table_driven_irq::@4
table_driven_irq::@4: scope:[table_driven_irq] from table_driven_irq::@1
[10] if(table_driven_irq::idx#0<VICII_SIZE+8) goto table_driven_irq::@3
to:table_driven_irq::@5
table_driven_irq::@5: scope:[table_driven_irq] from table_driven_irq::@4
[11] *IRQ_STATUS = IRQ_RASTER
[12] *RASTER = table_driven_irq::val#0
[13] if(table_driven_irq::val#0>=*RASTER) goto table_driven_irq::@return
to:table_driven_irq::@6
table_driven_irq::@6: scope:[table_driven_irq] from table_driven_irq::@5
[14] irq_idx = 0
to:table_driven_irq::@return
table_driven_irq::@return: scope:[table_driven_irq] from table_driven_irq::@5 table_driven_irq::@6
[15] return
to:@return
table_driven_irq::@3: scope:[table_driven_irq] from table_driven_irq::@4
[16] (SCREEN+-VICII_SIZE+$3f8)[table_driven_irq::idx#0] = table_driven_irq::val#0
to:table_driven_irq::@1
table_driven_irq::@2: scope:[table_driven_irq] from table_driven_irq::@1
[17] VICII_BASE[table_driven_irq::idx#0] = table_driven_irq::val#0
to:table_driven_irq::@1
void main()
main: scope:[main] from __start::@1
asm { sei }
[19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL
[20] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f
[21] *RASTER = $60
[22] *IRQ_ENABLE = IRQ_RASTER
[23] *IRQ_STATUS = IRQ_RASTER
[24] *KERNEL_IRQ = &table_driven_irq
asm { cli }
to:main::@return
main::@return: scope:[main] from main
[26] return
to:@return