mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-06-09 18:29:36 +00:00
62 lines
2.2 KiB
INI
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
|