diff --git a/Sources/FlySim.g3a b/Sources/FlySim.g3a index dc0810b..f34a319 100644 Binary files a/Sources/FlySim.g3a and b/Sources/FlySim.g3a differ diff --git a/Sources/build-cg/map b/Sources/build-cg/map index 0ab2aac..878dc98 100644 --- a/Sources/build-cg/map +++ b/Sources/build-cg/map @@ -121,9 +121,9 @@ LOAD build-cg/src/main.o LOAD /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a LOAD /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a 0x0000000000300000 _brom = 0x300000 - 0x00000000000039ec _srom = (((SIZEOF (.text) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) + 0x0000000000004090 _srom = (((SIZEOF (.text) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) -.text 0x0000000000300000 0x2e00 +.text 0x0000000000300000 0x30c0 *(.pretext.entry) .pretext.entry 0x0000000000300000 0x1a4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(start.c.o) @@ -150,204 +150,203 @@ LOAD /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a *(.dtors .dtors.*) 0x0000000000300604 _etors = . *(.text .text.*) - .text 0x0000000000300604 0x3d8 build-cg/src/main.o + .text 0x0000000000300604 0x644 build-cg/src/main.o 0x0000000000300604 _fill_char 0x000000000030062e _display_comm 0x00000000003006e4 _communication - .text.startup 0x00000000003009dc 0x74 build-cg/src/main.o - 0x00000000003009dc _main - .text 0x0000000000300a50 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(start.c.o) - .text 0x0000000000300a50 0xf8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(mmu.c.o) - 0x0000000000300a50 _utlb_addr - 0x0000000000300a60 _utlb_data - 0x0000000000300a70 _utlb_mapped_memory - .text 0x0000000000300b48 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(topti.c.o) - .text 0x0000000000300b48 0x4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dvram.c.o) - 0x0000000000300b48 _dvram - .text 0x0000000000300b4c 0x30 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dupdate.c.o) - 0x0000000000300b4c _dupdate - 0x0000000000300b64 _dupdate_noint - .text 0x0000000000300b7c 0x48 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dclear.c.o) - 0x0000000000300b7c _dclear - .text 0x0000000000300bc4 0xc4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(drect.c.o) - 0x0000000000300bc4 _drect - .text 0x0000000000300c88 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(topti-asm.s.o) - .text 0x0000000000300c88 0x1e8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(getkey.c.o) - 0x0000000000300c88 _getkey_opt - 0x0000000000300e28 _getkey - 0x0000000000300e34 _getkey_repeat - .text 0x0000000000300e70 0x9c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(topti.c.o) - 0x0000000000300e70 _dsize - .text 0x0000000000300f0c 0xbf4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(stdio.c.o) - 0x0000000000301838 _kprint_opt - 0x0000000000301962 _kprint - 0x0000000000301a3c _kvsprint - 0x0000000000301a80 _sprintf - 0x0000000000301aa8 _vsprintf - 0x0000000000301ac8 _snprintf - 0x0000000000301ae8 _vsnprintf - .text 0x0000000000301b00 0x26 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(string.c.o) - 0x0000000000301b00 _strlen - 0x0000000000301b10 _strncpy - *fill* 0x0000000000301b26 0x2 - .text 0x0000000000301b28 0x2cc /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(r61524.c.o) - 0x0000000000301b78 _r61524_win_get - 0x0000000000301c30 _r61524_win_set - 0x0000000000301cf0 _r61524_display - .text 0x0000000000301df4 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(hardware.c.o) - .text 0x0000000000301df4 0xf0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(setup.c.o) - 0x0000000000301e60 _gint_install - 0x0000000000301ecc _gint_unload - .text 0x0000000000301ee4 0x2c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(vbr.s.o) - 0x0000000000301ee4 _gint_setvbr - .text 0x0000000000301f10 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(exch.S.o) - .text 0x0000000000301f10 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.S.o) - .text 0x0000000000301f10 0x288 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(keysc.c.o) - 0x000000000030208c _pollevent - 0x0000000000302160 _waitevent - .text 0x0000000000302198 0xd6 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(memory.c.o) - 0x0000000000302198 _memcpy - 0x000000000030224c __memmove - 0x0000000000302250 __memcmp - 0x0000000000302254 _memset - *fill* 0x000000000030226e 0x2 - .text 0x0000000000302270 0x4d0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(tmu.c.o) - 0x00000000003024f8 _timer_setup - 0x000000000030258c _timer_delay - 0x00000000003025ec _timer_start - 0x0000000000302620 _timer_reload - 0x0000000000302640 _timer_pause - 0x0000000000302674 _timer_stop - 0x00000000003026d0 _timer_timeout - 0x00000000003026dc _timer_address - 0x0000000000302710 _timer_clear - .text 0x0000000000302740 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.s.o) - .text 0x0000000000302740 0x268 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dma.c.o) - 0x0000000000302740 _dma_transfer_wait - 0x000000000030281c _dma_transfer - 0x00000000003028cc _dma_transfer_noint - .text 0x00000000003029a8 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.s.o) - .text 0x00000000003029a8 0x5c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(gint.c.o) - 0x00000000003029a8 _gint_intlevel - 0x00000000003029e0 _gint_inthandler - .text 0x0000000000302a04 0xc8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(cpg.c.o) - 0x0000000000302ac0 _clock_freq - .text 0x0000000000302acc 0x78 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_movmem.o) - 0x0000000000302acc ___movmem - 0x0000000000302acc ___movstr - 0x0000000000302b00 ___movmemSI64 - 0x0000000000302b00 ___movstrSI64 - 0x0000000000302b04 ___movmemSI60 - 0x0000000000302b04 ___movstrSI60 - 0x0000000000302b08 ___movstrSI56 - 0x0000000000302b08 ___movmemSI56 - 0x0000000000302b0c ___movmemSI52 - 0x0000000000302b0c ___movstrSI52 - 0x0000000000302b10 ___movstrSI48 - 0x0000000000302b10 ___movmemSI48 - 0x0000000000302b14 ___movmemSI44 - 0x0000000000302b14 ___movstrSI44 - 0x0000000000302b18 ___movstrSI40 - 0x0000000000302b18 ___movmemSI40 - 0x0000000000302b1c ___movstrSI36 - 0x0000000000302b1c ___movmemSI36 - 0x0000000000302b20 ___movstrSI32 - 0x0000000000302b20 ___movmemSI32 - 0x0000000000302b24 ___movmemSI28 - 0x0000000000302b24 ___movstrSI28 - 0x0000000000302b28 ___movmemSI24 - 0x0000000000302b28 ___movstrSI24 - 0x0000000000302b2c ___movmemSI20 - 0x0000000000302b2c ___movstrSI20 - 0x0000000000302b30 ___movstrSI16 - 0x0000000000302b30 ___movmemSI16 - 0x0000000000302b34 ___movmemSI12 - 0x0000000000302b34 ___movstrSI12 - 0x0000000000302b38 ___movstrSI8 - 0x0000000000302b38 ___movmemSI8 - 0x0000000000302b3c ___movstrSI4 - 0x0000000000302b3c ___movmemSI4 - .text 0x0000000000302b44 0x1ec /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_udivdi3.o) - 0x0000000000302b44 ___udivdi3 - .text 0x0000000000302d30 0x6c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_udivsi3.o) - 0x0000000000302d52 ___udivsi3 - *fill* 0x0000000000302d9c 0x4 - .text 0x0000000000302da0 0x60 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_udiv_qrnnd_16.o) - 0x0000000000302da0 ___udiv_qrnnd_16 - .text 0x0000000000302e00 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_clz.o) + .text.startup 0x0000000000300c48 0xcc build-cg/src/main.o + 0x0000000000300c48 _main + .text 0x0000000000300d14 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(start.c.o) + .text 0x0000000000300d14 0xf8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(mmu.c.o) + 0x0000000000300d14 _utlb_addr + 0x0000000000300d24 _utlb_data + 0x0000000000300d34 _utlb_mapped_memory + .text 0x0000000000300e0c 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(topti.c.o) + .text 0x0000000000300e0c 0x4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dvram.c.o) + 0x0000000000300e0c _dvram + .text 0x0000000000300e10 0x30 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dupdate.c.o) + 0x0000000000300e10 _dupdate + 0x0000000000300e28 _dupdate_noint + .text 0x0000000000300e40 0x48 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dclear.c.o) + 0x0000000000300e40 _dclear + .text 0x0000000000300e88 0xc4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(drect.c.o) + 0x0000000000300e88 _drect + .text 0x0000000000300f4c 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(topti-asm.s.o) + .text 0x0000000000300f4c 0x1e8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(getkey.c.o) + 0x0000000000300f4c _getkey_opt + 0x00000000003010ec _getkey + 0x00000000003010f8 _getkey_repeat + .text 0x0000000000301134 0x9c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(topti.c.o) + 0x0000000000301134 _dsize + .text 0x00000000003011d0 0xbf4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(stdio.c.o) + 0x0000000000301afc _kprint_opt + 0x0000000000301c26 _kprint + 0x0000000000301d00 _kvsprint + 0x0000000000301d44 _sprintf + 0x0000000000301d6c _vsprintf + 0x0000000000301d8c _snprintf + 0x0000000000301dac _vsnprintf + .text 0x0000000000301dc4 0x26 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(string.c.o) + 0x0000000000301dc4 _strlen + 0x0000000000301dd4 _strncpy + *fill* 0x0000000000301dea 0x2 + .text 0x0000000000301dec 0x2cc /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(r61524.c.o) + 0x0000000000301e3c _r61524_win_get + 0x0000000000301ef4 _r61524_win_set + 0x0000000000301fb4 _r61524_display + .text 0x00000000003020b8 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(hardware.c.o) + .text 0x00000000003020b8 0xf0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(setup.c.o) + 0x0000000000302124 _gint_install + 0x0000000000302190 _gint_unload + .text 0x00000000003021a8 0x2c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(vbr.s.o) + 0x00000000003021a8 _gint_setvbr + .text 0x00000000003021d4 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(exch.S.o) + .text 0x00000000003021d4 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.S.o) + .text 0x00000000003021d4 0x288 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(keysc.c.o) + 0x0000000000302350 _pollevent + 0x0000000000302424 _waitevent + .text 0x000000000030245c 0xd6 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(memory.c.o) + 0x000000000030245c _memcpy + 0x0000000000302510 __memmove + 0x0000000000302514 __memcmp + 0x0000000000302518 _memset + *fill* 0x0000000000302532 0x2 + .text 0x0000000000302534 0x4d0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(tmu.c.o) + 0x00000000003027bc _timer_setup + 0x0000000000302850 _timer_delay + 0x00000000003028b0 _timer_start + 0x00000000003028e4 _timer_reload + 0x0000000000302904 _timer_pause + 0x0000000000302938 _timer_stop + 0x0000000000302994 _timer_timeout + 0x00000000003029a0 _timer_address + 0x00000000003029d4 _timer_clear + .text 0x0000000000302a04 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.s.o) + .text 0x0000000000302a04 0x268 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dma.c.o) + 0x0000000000302a04 _dma_transfer_wait + 0x0000000000302ae0 _dma_transfer + 0x0000000000302b90 _dma_transfer_noint + .text 0x0000000000302c6c 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.s.o) + .text 0x0000000000302c6c 0x5c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(gint.c.o) + 0x0000000000302c6c _gint_intlevel + 0x0000000000302ca4 _gint_inthandler + .text 0x0000000000302cc8 0xc8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(cpg.c.o) + 0x0000000000302d84 _clock_freq + .text 0x0000000000302d90 0x78 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_movmem.o) + 0x0000000000302d90 ___movmem + 0x0000000000302d90 ___movstr + 0x0000000000302dc4 ___movmemSI64 + 0x0000000000302dc4 ___movstrSI64 + 0x0000000000302dc8 ___movmemSI60 + 0x0000000000302dc8 ___movstrSI60 + 0x0000000000302dcc ___movstrSI56 + 0x0000000000302dcc ___movmemSI56 + 0x0000000000302dd0 ___movmemSI52 + 0x0000000000302dd0 ___movstrSI52 + 0x0000000000302dd4 ___movstrSI48 + 0x0000000000302dd4 ___movmemSI48 + 0x0000000000302dd8 ___movmemSI44 + 0x0000000000302dd8 ___movstrSI44 + 0x0000000000302ddc ___movstrSI40 + 0x0000000000302ddc ___movmemSI40 + 0x0000000000302de0 ___movstrSI36 + 0x0000000000302de0 ___movmemSI36 + 0x0000000000302de4 ___movstrSI32 + 0x0000000000302de4 ___movmemSI32 + 0x0000000000302de8 ___movmemSI28 + 0x0000000000302de8 ___movstrSI28 + 0x0000000000302dec ___movmemSI24 + 0x0000000000302dec ___movstrSI24 + 0x0000000000302df0 ___movmemSI20 + 0x0000000000302df0 ___movstrSI20 + 0x0000000000302df4 ___movstrSI16 + 0x0000000000302df4 ___movmemSI16 + 0x0000000000302df8 ___movmemSI12 + 0x0000000000302df8 ___movstrSI12 + 0x0000000000302dfc ___movstrSI8 + 0x0000000000302dfc ___movmemSI8 + 0x0000000000302e00 ___movstrSI4 + 0x0000000000302e00 ___movmemSI4 + .text 0x0000000000302e08 0x1ec /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_udivdi3.o) + 0x0000000000302e08 ___udivdi3 + .text 0x0000000000302ff4 0x6c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_udivsi3.o) + 0x0000000000303016 ___udivsi3 + .text 0x0000000000303060 0x60 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_udiv_qrnnd_16.o) + 0x0000000000303060 ___udiv_qrnnd_16 + .text 0x00000000003030c0 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_clz.o) -.gint.blocks 0x0000000000302e00 0x140 +.gint.blocks 0x00000000003030c0 0x140 *(.gint.blocks) - .gint.blocks 0x0000000000302e00 0x20 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(exch.S.o) - 0x0000000000302e00 _exch_entry_7305 - .gint.blocks 0x0000000000302e20 0x20 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.S.o) - 0x0000000000302e20 _inth_entry_7305 - .gint.blocks 0x0000000000302e40 0xe0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.s.o) - 0x0000000000302e40 _inth_tmu - 0x0000000000302ec0 _inth_etmu2 - 0x0000000000302ee0 _inth_etmu_help - 0x0000000000302f00 _inth_etmux - .gint.blocks 0x0000000000302f20 0x20 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.s.o) - 0x0000000000302f20 _inth_dma_dma0 + .gint.blocks 0x00000000003030c0 0x20 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(exch.S.o) + 0x00000000003030c0 _exch_entry_7305 + .gint.blocks 0x00000000003030e0 0x20 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.S.o) + 0x00000000003030e0 _inth_entry_7305 + .gint.blocks 0x0000000000303100 0xe0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.s.o) + 0x0000000000303100 _inth_tmu + 0x0000000000303180 _inth_etmu2 + 0x00000000003031a0 _inth_etmu_help + 0x00000000003031c0 _inth_etmux + .gint.blocks 0x00000000003031e0 0x20 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.s.o) + 0x00000000003031e0 _inth_dma_dma0 -.gint.drivers 0x0000000000302f40 0xb4 - 0x0000000000302f40 _bdrv = . +.gint.drivers 0x0000000000303200 0xb4 + 0x0000000000303200 _bdrv = . *(.gint.drivers.0) *(.gint.drivers.1) .gint.drivers.1 - 0x0000000000302f40 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(cpg.c.o) - 0x0000000000302f40 _drv_cpg + 0x0000000000303200 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(cpg.c.o) + 0x0000000000303200 _drv_cpg *(.gint.drivers.2) .gint.drivers.2 - 0x0000000000302f64 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(tmu.c.o) - 0x0000000000302f64 _drv_tmu + 0x0000000000303224 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(tmu.c.o) + 0x0000000000303224 _drv_tmu .gint.drivers.2 - 0x0000000000302f88 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dma.c.o) - 0x0000000000302f88 _drv_dma + 0x0000000000303248 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dma.c.o) + 0x0000000000303248 _drv_dma *(.gint.drivers.3) *(.gint.drivers.4) .gint.drivers.4 - 0x0000000000302fac 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(keysc.c.o) - 0x0000000000302fac _drv_keysc + 0x000000000030326c 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(keysc.c.o) + 0x000000000030326c _drv_keysc *(.gint.drivers.5) .gint.drivers.5 - 0x0000000000302fd0 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(r61524.c.o) - 0x0000000000302fd0 _drv_r61524 + 0x0000000000303290 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(r61524.c.o) + 0x0000000000303290 _drv_r61524 *(.gint.drivers.6) - 0x0000000000302ff4 _edrv = . + 0x00000000003032b4 _edrv = . -.rodata 0x0000000000302ff4 0x9f8 +.rodata 0x00000000003032b4 0xddc *(.rodata.assets) *(.rodata .rodata.*) .rodata.str1.4 - 0x0000000000302ff4 0x3f4 build-cg/src/main.o - .rodata 0x00000000003033e8 0x18 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(topti.c.o) + 0x00000000003032b4 0x7d8 build-cg/src/main.o + .rodata 0x0000000000303a8c 0x18 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(topti.c.o) .rodata.str1.4 - 0x0000000000303400 0x31 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(stdio.c.o) - *fill* 0x0000000000303431 0x3 - .rodata 0x0000000000303434 0x49c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(font8x9.png.o) - 0x0000000000303434 _gint_font8x9 - 0x00000000003038d0 _gint_font8x9_end + 0x0000000000303aa4 0x31 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(stdio.c.o) + *fill* 0x0000000000303ad5 0x3 + .rodata 0x0000000000303ad8 0x49c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(font8x9.png.o) + 0x0000000000303ad8 _gint_font8x9 + 0x0000000000303f74 _gint_font8x9_end .rodata.str1.4 - 0x00000000003038d0 0x7 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(r61524.c.o) - *fill* 0x00000000003038d7 0x1 + 0x0000000000303f74 0x7 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(r61524.c.o) + *fill* 0x0000000000303f7b 0x1 .rodata.str1.4 - 0x00000000003038d8 0x6 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(keysc.c.o) - *fill* 0x00000000003038de 0x2 + 0x0000000000303f7c 0x6 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(keysc.c.o) + *fill* 0x0000000000303f82 0x2 .rodata.str1.4 - 0x00000000003038e0 0x4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(tmu.c.o) + 0x0000000000303f84 0x4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(tmu.c.o) .rodata.str1.4 - 0x00000000003038e4 0x4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dma.c.o) + 0x0000000000303f88 0x4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dma.c.o) .rodata.str1.4 - 0x00000000003038e8 0x4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(cpg.c.o) - .rodata 0x00000000003038ec 0x100 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_clz.o) - 0x00000000003038ec ___clz_tab + 0x0000000000303f8c 0x4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(cpg.c.o) + .rodata 0x0000000000303f90 0x100 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_clz.o) + 0x0000000000303f90 ___clz_tab -.rela.dyn 0x00000000003039ec 0x0 - .rela.text 0x00000000003039ec 0x0 build-cg/src/main.o +.rela.dyn 0x0000000000304090 0x0 + .rela.text 0x0000000000304090 0x0 build-cg/src/main.o .rela.pretext.entry - 0x00000000003039ec 0x0 build-cg/src/main.o - .rela.pretext 0x00000000003039ec 0x0 build-cg/src/main.o + 0x0000000000304090 0x0 build-cg/src/main.o + .rela.pretext 0x0000000000304090 0x0 build-cg/src/main.o 0x0000000008102000 . = ORIGIN (ram) .bss 0x0000000008102000 0x150 @@ -389,8 +388,8 @@ LOAD /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a *fill* 0x0000000008102144 0xc 0x0000000000000150 _sbss = SIZEOF (.bss) -.data 0x0000000008102150 0x80 load address 0x00000000003039ec - 0x00000000003039ec _ldata = LOADADDR (.data) +.data 0x0000000008102150 0x80 load address 0x0000000000304090 + 0x0000000000304090 _ldata = LOADADDR (.data) 0x0000000008102150 _rdata = . *(.data .data.*) .data 0x0000000008102150 0x0 build-cg/src/main.o @@ -432,15 +431,15 @@ LOAD /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a 0x00000000081021d0 . = ALIGN (0x10) *fill* 0x00000000081021cc 0x4 -.data.4 0x00000000081021d0 0x0 load address 0x0000000000303a6c +.data.4 0x00000000081021d0 0x0 load address 0x0000000000304110 *(.data.4) 0x00000000081021d0 . = ALIGN (0x10) 0x0000000000000080 _sdata = (SIZEOF (.data) + SIZEOF (.data.4)) 0x000000008c15ff00 _gint_vbr = (ORIGIN (vbr) - 0x100) 0x000000008c161400 . = ORIGIN (rram) -.gint.data 0x000000008c161400 0xd0 load address 0x0000000000303a6c - 0x0000000000303a6c _lgdata = LOADADDR (.gint.data) +.gint.data 0x000000008c161400 0xd0 load address 0x0000000000304110 + 0x0000000000304110 _lgdata = LOADADDR (.gint.data) 0x000000008c161400 _rgdata = . *(.gint.data .gint.data.*) .gint.data 0x000000008c161400 0x8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(r61524.c.o) @@ -455,7 +454,7 @@ LOAD /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a *fill* 0x000000008c1614c4 0xc 0x00000000000000d0 _sgdata = SIZEOF (.gint.data) -.gint.bss 0x000000008c1614d0 0x230 load address 0x0000000000303b3c +.gint.bss 0x000000008c1614d0 0x230 load address 0x00000000003041e0 *(.gint.bss .gint.bss.*) .gint.bss 0x000000008c1614d0 0x8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(r61524.c.o) .gint.bss 0x000000008c1614d8 0x40 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(hardware.c.o) diff --git a/Sources/build-cg/src/FlySim.bin b/Sources/build-cg/src/FlySim.bin index 2bd08ee..9dc1bc3 100755 Binary files a/Sources/build-cg/src/FlySim.bin and b/Sources/build-cg/src/FlySim.bin differ diff --git a/Sources/build-cg/src/FlySim.elf b/Sources/build-cg/src/FlySim.elf index c29dd41..6536d86 100755 Binary files a/Sources/build-cg/src/FlySim.elf and b/Sources/build-cg/src/FlySim.elf differ diff --git a/Sources/build-cg/src/main.o b/Sources/build-cg/src/main.o index e9cf2cf..18f982e 100644 Binary files a/Sources/build-cg/src/main.o and b/Sources/build-cg/src/main.o differ diff --git a/Sources/src/main.c b/Sources/src/main.c index c3aa369..b34a6e8 100644 --- a/Sources/src/main.c +++ b/Sources/src/main.c @@ -13,15 +13,9 @@ #define C_GREEN 0x07e0 #define C_BLUE 0x001f -/* - Ameliorations : - - - Quand tu prends des pointeurs en paramètres, si tu n'as pas l'intention de modifier les données alors mets const - -*/ //communication : gère les communications entre la tour et l'avion -void communication (int *com_id, int *id); +void communication (int *com_id, int *id, const int langue); //display_comm : affiche les communications void display_comm (char *msg_1,char *msg_2,char *msg_3, const int *joueur); @@ -31,15 +25,24 @@ char *fill_char(char *dest, const char *src, unsigned int debut, unsigned int fi int main (void) { - int com_id = 1, id = 0;// variables des communications + int com_id = 1, id = 0, langue = 0;// variables des communications int key = 0;//variables diverses dclear(C_WHITE); + dtext(1, 1, "Choix de la langue", C_RED, C_NONE); + dtext(1, 12, " 1. Francais", C_BLUE, C_NONE); + dtext(1, 23, " 2. Anglais", C_BLACK, C_NONE); dupdate(); + while (langue == 0) + { + key = getkey().key; + if (key == KEY_1) langue = 1; + if (key == KEY_2) langue = 2; + } while(com_id <= 26) { - communication(&com_id, &id); + communication(&com_id, &id, langue); key = getkey().key; dupdate(); if(key == KEY_EXIT) return 0; @@ -49,7 +52,7 @@ int main (void) return 0; } -void communication(int *com_id, int *id) +void communication(int *com_id, int *id, const int langue) { //faire un choix de la langue Français / Anglais const char *avion = "Cessna 172", *immat = "F-GUXF", *immat_courte = "F-XF", *aipt_depart = "Caen", *aipt_arrivee = "Le Havre", *freq_cont = "117.15", *freq_arrivee = "122.80", *passagers = "4";//données de l'avion et de son trajet @@ -60,145 +63,292 @@ void communication(int *com_id, int *id) fill_char(msg_2, " ", 0, 70); fill_char(msg_3, " ", 0, 70); - switch (*com_id) + if (langue == 1) { - case 1: - *id = 1; - - sprintf(msg_1, "%s tour, %s. Bonjour.", aipt_depart, immat); - break; - case 2: - *id = 0; - - sprintf(msg_1, "%s, %s bonjour.", immat, aipt_depart); - break; - case 3: - *id = 1; - - sprintf(msg_1, "%s %s. %s passagers a bord. Demandons", immat, avion, passagers); - sprintf(msg_2, "vol vers %s.", aipt_arrivee); - break; - case 4: - *id = 0; - - sprintf(msg_1, "%s vol autorise. Rappelez pret au depart.", immat_courte); - break; - case 5: - *id = 1; - - sprintf(msg_1, "Rappelons pret au depart, %s.", immat_courte); - break; - case 6: - *id = 1; - - sprintf(msg_1, "%s, pret au depart.", immat_courte); - break; - case 7: - *id = 0; - - sprintf(msg_1, "%s, autorise decollage.", immat_courte); - break; - case 8: - *id = 1; - - sprintf(msg_1, "Autorise decollage, %s.", immat_courte); - break; - case 9: - *id = 0; - - sprintf(msg_1, "%s, Vous quittez mon espace. Services radar", immat_courte); - sprintf(msg_2, "et radio termines. Informations de vol avec"); - sprintf(msg_3, "Controle, %s. Au revoir.", freq_cont); - break; - case 10: - *id = 1; - - sprintf(msg_1, "Controle, %s. Bonne journee, %s.", freq_cont, immat_courte); - break; - case 11: - *id = 1; - - sprintf(msg_1, "Controle %s. Bonjour.", immat); - break; - case 12: - *id = 0; - - sprintf(msg_1, "%s Controle, bienvenu.", immat_courte); - break; - case 13: - *id = 1; - - sprintf(msg_1, "%s %s. %s passagers a bord. Sortie de", immat, avion, passagers); - sprintf(msg_2, "%s vers %s.", aipt_depart, aipt_arrivee); - break; - case 14: - *id = 0; - - sprintf(msg_1, "%s, identifie radar.", immat_courte); - break; - case 15: - *id = 0; - - sprintf(msg_1, "%s, vous quittez mon espace. Contactez", immat_courte); - sprintf(msg_2, "%s, %s. Bon vol.", aipt_arrivee, freq_arrivee); - break; - case 16: - *id = 1; - - sprintf(msg_1, "%s %s. Au revoir, %s.", aipt_arrivee, freq_arrivee, immat_courte); - break; - case 17: - *id = 1; - - sprintf(msg_1, "%s tour, %s. Bonjour.", aipt_arrivee, immat); - break; - case 18: - *id = 0; - - sprintf(msg_1, "%s, %s, a l'ecoute.", immat_courte, aipt_arrivee); - break; - case 19: - *id = 1; - - sprintf(msg_1, "%s %s. %s passagers a bord. Demandons", immat, avion, passagers); - sprintf(msg_2, "consignes pour atterrissage sur %s.", aipt_arrivee); - break; - case 20: - *id = 0; - - sprintf(msg_1, "%s, commencez votre approche.", immat_courte); - break; - case 21: - *id = 1; - - sprintf(msg_1, "Commencons notre approche, %s.", immat_courte); - break; - case 22: - *id = 1; - - sprintf(msg_1, "%s en finale, demandons autorisation", immat_courte); - sprintf(msg_2, "d'atterrissage."); - break; - case 23: - *id = 0; - - sprintf(msg_1, "%s, autorise atterrissage. Rappelez au sol.", immat_courte); - break; - case 24: - *id = 1; - - sprintf(msg_1, "Autorise atterrissage, rappelons au sol, %s.", immat_courte); - break; - case 25: - *id = 1; - sprintf(msg_1, "%s, au sol, pour quitter. Merci.", immat_courte); - break; - case 26: - *id = 0; - - sprintf(msg_1, "%s, quittez la frequence a bientot.", immat_courte); - break; + switch (*com_id) + { + case 1: + *id = 1; + + sprintf(msg_1, "%s tour, %s. Bonjour.", aipt_depart, immat); + break; + case 2: + *id = 0; + + sprintf(msg_1, "%s, %s bonjour.", immat, aipt_depart); + break; + case 3: + *id = 1; + + sprintf(msg_1, "%s %s. %s passagers a bord. Demandons", immat, avion, passagers); + sprintf(msg_2, "vol vers %s.", aipt_arrivee); + break; + case 4: + *id = 0; + + sprintf(msg_1, "%s vol autorise. Rappelez pret au depart.", immat_courte); + break; + case 5: + *id = 1; + + sprintf(msg_1, "Rappelons pret au depart, %s.", immat_courte); + break; + case 6: + *id = 1; + + sprintf(msg_1, "%s, pret au depart.", immat_courte); + break; + case 7: + *id = 0; + + sprintf(msg_1, "%s, autorise decollage.", immat_courte); + break; + case 8: + *id = 1; + + sprintf(msg_1, "Autorise decollage, %s.", immat_courte); + break; + case 9: + *id = 0; + + sprintf(msg_1, "%s, vous quittez mon espace. Services radar", immat_courte); + sprintf(msg_2, "et radio termines. Informations de vol avec"); + sprintf(msg_3, "Controle, %s. Au revoir.", freq_cont); + break; + case 10: + *id = 1; + + sprintf(msg_1, "Controle, %s. Bonne journee, %s.", freq_cont, immat_courte); + break; + case 11: + *id = 1; + + sprintf(msg_1, "Controle %s. Bonjour.", immat); + break; + case 12: + *id = 0; + + sprintf(msg_1, "%s Controle, bienvenu.", immat_courte); + break; + case 13: + *id = 1; + + sprintf(msg_1, "%s %s. %s passagers a bord. Sortie de", immat, avion, passagers); + sprintf(msg_2, "%s vers %s.", aipt_depart, aipt_arrivee); + break; + case 14: + *id = 0; + + sprintf(msg_1, "%s, identifie radar.", immat_courte); + break; + case 15: + *id = 0; + + sprintf(msg_1, "%s, vous quittez mon espace. Contactez", immat_courte); + sprintf(msg_2, "%s, %s. Bon vol.", aipt_arrivee, freq_arrivee); + break; + case 16: + *id = 1; + + sprintf(msg_1, "%s %s. Au revoir, %s.", aipt_arrivee, freq_arrivee, immat_courte); + break; + case 17: + *id = 1; + + sprintf(msg_1, "%s tour, %s. Bonjour.", aipt_arrivee, immat); + break; + case 18: + *id = 0; + + sprintf(msg_1, "%s, %s, a l'ecoute.", immat_courte, aipt_arrivee); + break; + case 19: + *id = 1; + + sprintf(msg_1, "%s %s. %s passagers a bord. Demandons", immat, avion, passagers); + sprintf(msg_2, "consignes pour atterrissage sur %s.", aipt_arrivee); + break; + case 20: + *id = 0; + + sprintf(msg_1, "%s, commencez votre approche.", immat_courte); + break; + case 21: + *id = 1; + + sprintf(msg_1, "Commencons notre approche, %s.", immat_courte); + break; + case 22: + *id = 1; + + sprintf(msg_1, "%s en finale, demandons autorisation", immat_courte); + sprintf(msg_2, "d'atterrissage."); + break; + case 23: + *id = 0; + + sprintf(msg_1, "%s, autorise atterrissage. Rappelez au sol.", immat_courte); + break; + case 24: + *id = 1; + + sprintf(msg_1, "Autorise atterrissage, rappelons au sol, %s.", immat_courte); + break; + case 25: + *id = 1; + sprintf(msg_1, "%s, au sol, pour quitter. Merci.", immat_courte); + break; + case 26: + *id = 0; + + sprintf(msg_1, "%s, quittez la frequence a bientot.", immat_courte); + break; + } } + else + { + switch (*com_id) + { + case 1: + *id = 1; + + sprintf(msg_1, "%s tower, %s. Good morning.", aipt_depart, immat); + break; + case 2: + *id = 0; + + sprintf(msg_1, "%s, %s Hello.", immat, aipt_depart); + break; + case 3: + *id = 1; + + sprintf(msg_1, "%s %s. %s passengers on board. Request", immat, avion, passagers); + sprintf(msg_2, "flight to %s.", aipt_arrivee); + break; + case 4: + *id = 0; + + sprintf(msg_1, "%s authorized flight. Call back clear to take off.", immat_courte); + break; + case 5: + *id = 1; + + sprintf(msg_1, "Call back clear to take off, %s.", immat_courte); + break; + case 6: + *id = 1; + + sprintf(msg_1, "%s, clear for take off.", immat_courte); + break; + case 7: + *id = 0; + + sprintf(msg_1, "%s, authorized take off.", immat_courte); + break; + case 8: + *id = 1; + + sprintf(msg_1, "Authorized take off, %s.", immat_courte); + break; + case 9: + *id = 0; + + sprintf(msg_1, "%s, you leave my airpace. Services radar", immat_courte); + sprintf(msg_2, "and radio terminated. Informations of flight"); + sprintf(msg_3, "with Controle, %s. Bye.", freq_cont); + break; + case 10: + *id = 1; + + sprintf(msg_1, "Controle, %s. See you, %s.", freq_cont, immat_courte); + break; + case 11: + *id = 1; + + sprintf(msg_1, "Controle %s. Hello.", immat); + break; + case 12: + *id = 0; + + sprintf(msg_1, "%s Controle, welcome.", immat_courte); + break; + case 13: + *id = 1; + + sprintf(msg_1, "%s %s. %s passengers on board. Exit", immat, avion, passagers); + sprintf(msg_2, "%s towards %s.", aipt_depart, aipt_arrivee); + break; + case 14: + *id = 0; + + sprintf(msg_1, "%s, identify radar.", immat_courte); + break; + case 15: + *id = 0; + + sprintf(msg_1, "%s, you leave my airspace. Contact", immat_courte); + sprintf(msg_2, "%s, %s. Have a good flight.", aipt_arrivee, freq_arrivee); + break; + case 16: + *id = 1; + + sprintf(msg_1, "%s %s. Good bye, %s.", aipt_arrivee, freq_arrivee, immat_courte); + break; + case 17: + *id = 1; + + sprintf(msg_1, "%s tower, %s. Hy.", aipt_arrivee, immat); + break; + case 18: + *id = 0; + + sprintf(msg_1, "%s, %s, listen.", immat_courte, aipt_arrivee); + break; + case 19: + *id = 1; + + sprintf(msg_1, "%s %s. %s passengers on board. Request", immat, avion, passagers); + sprintf(msg_2, "instructions for landing on %s.", aipt_arrivee); + break; + case 20: + *id = 0; + + sprintf(msg_1, "%s, starts your approach.", immat_courte); + break; + case 21: + *id = 1; + + sprintf(msg_1, "We start our approach, %s.", immat_courte); + break; + case 22: + *id = 1; + + sprintf(msg_1, "%s on final, request clearance", immat_courte); + sprintf(msg_2, "to landing."); + break; + case 23: + *id = 0; + + sprintf(msg_1, "%s, authorized landing. Call back on ground.", immat_courte); + break; + case 24: + *id = 1; + + sprintf(msg_1, "Authorized landing, call back on ground, %s.", immat_courte); + break; + case 25: + *id = 1; + sprintf(msg_1, "%s, on ground for leave. Thanks.", immat_courte); + break; + case 26: + *id = 0; + + sprintf(msg_1, "%s, leave frequence, see you.", immat_courte); + break; + } + } + + display_comm(msg_1, msg_2, msg_3, &(*id)); *com_id += 1; }