Skip to content

Priority of constructors, destructors, and interruptors

Oliver Schmidt edited this page Jan 24, 2024 · 9 revisions

For constructors, destructors, and interruptors, the linker generates a table of addresses sorted by increasing numeric value of the priorities (if not otherwise specified by the ORDER attribute in the linker config file). The library routines that process those tables work from rear to front. That means that routines with a higher numeric priority value are called first.

Constructors
priority function platform
30 initcurunit cbm
27 pm_init atari
26 detect atari
25 initdostype apple2
25 initmainargs atari
25 initstkchk runtime
24 __getdefdev atari
24 initheap common
24 initmainargs apple2, atmos, c16, c128, c64, cbm510, cbm610, geos, lynx, nes, pet, plus4, sim6502, vic20
11 initreboot apple2
10 irq_init runtime
9 initostype apple2
8 soft80_init c64
8 soft80mono_init c64
7 cwd_init common
7 disable_caps atmos
7 env_init common
7 init_clock lynx
7 init_pointer geos
7 initcgetc atmos, c128, osic1p
7 initclock pce
7 initconio apple2, atari5200, creativision, gamate, nes, pce
7 initiobuf apple2
7 initkbd c16, plus4
7 initmcb c128, c64, cbm510
7 initprompt apple2
7 inittime c128, c64
7 initscrsize geos
7 initstdin atmos, cbm
7 initstdout cbm
7 initvsync apple2
7 raisefilelevel apple2
Destructors
priority function platform
30 updatedevnum cx16
17 doatexit common
10 irq_done runtime
7 _ser_uninstall common
7 _reset_brk apple2, atari, c128, c16, c64, pet, vic20
7 donecgetc c128
7 donekbd c16, plus4
7 pm_down atari
7 restore_caps atmos
7 setsyscursor cbm610
7 soft80_shutdown c64
7 soft80mono_shutdown c64
5 closeallfiles apple2, atari, cbm
Interruptors
priority function platform
29 ser_irq serial
24 ticktock pce
7 _UpLoaderIRQ lynx
7 lynx_snd_handler lynx
7 mouse_irq mouse
7 tgi_irq lynx
2 update_clock lynx
1 clevel_irq common
Clone this wiki locally