diff --git a/Sources/FlySim.g3a b/Sources/FlySim.g3a index f982f5c..c82913a 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 ee37ac8..a8a7aa9 100644 --- a/Sources/build-cg/map +++ b/Sources/build-cg/map @@ -120,9 +120,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 - 0x0000000000002e80 _srom = (((SIZEOF (.text) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) + 0x0000000000002f60 _srom = (((SIZEOF (.text) + SIZEOF (.rodata)) + SIZEOF (.gint.drivers)) + SIZEOF (.gint.blocks)) -.text 0x0000000000300000 0x2398 +.text 0x0000000000300000 0x2478 *(.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) @@ -149,202 +149,202 @@ 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 0x4f8 build-cg/src/main.o - 0x0000000000300604 _reset_comm - 0x0000000000300618 _display_comm - 0x0000000000300674 _add - 0x00000000003006b8 _fill - 0x00000000003006fc _communication - .text.startup 0x0000000000300afc 0x6c build-cg/src/main.o - 0x0000000000300afc _main - .text 0x0000000000300b68 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 0x0000000000300b68 0xf8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(mmu.c.o) - 0x0000000000300b68 _utlb_addr - 0x0000000000300b78 _utlb_data - 0x0000000000300b88 _utlb_mapped_memory - .text 0x0000000000300c60 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 0x0000000000300c60 0x4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dvram.c.o) - 0x0000000000300c60 _dvram - .text 0x0000000000300c64 0x30 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dupdate.c.o) - 0x0000000000300c64 _dupdate - 0x0000000000300c7c _dupdate_noint - .text 0x0000000000300c94 0x48 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dclear.c.o) - 0x0000000000300c94 _dclear - .text 0x0000000000300cdc 0xc4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(drect.c.o) - 0x0000000000300cdc _drect - .text 0x0000000000300da0 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 0x0000000000300da0 0x1e8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(getkey.c.o) - 0x0000000000300da0 _getkey_opt - 0x0000000000300f40 _getkey - 0x0000000000300f4c _getkey_repeat - .text 0x0000000000300f88 0x9c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(topti.c.o) - 0x0000000000300f88 _dsize - .text 0x0000000000301024 0xd6 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(memory.c.o) - 0x0000000000301024 _memcpy - 0x00000000003010d8 __memmove - 0x00000000003010dc __memcmp - 0x00000000003010e0 _memset - .text 0x00000000003010fa 0x26 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(string.c.o) - 0x00000000003010fa _strlen - 0x000000000030110a _strncpy - .text 0x0000000000301120 0x2cc /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(r61524.c.o) - 0x0000000000301170 _r61524_win_get - 0x0000000000301228 _r61524_win_set - 0x00000000003012e8 _r61524_display - .text 0x00000000003013ec 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 0x00000000003013ec 0xf0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(setup.c.o) - 0x0000000000301458 _gint_install - 0x00000000003014c4 _gint_unload - .text 0x00000000003014dc 0x2c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(vbr.s.o) - 0x00000000003014dc _gint_setvbr - .text 0x0000000000301508 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 0x0000000000301508 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 0x0000000000301508 0x288 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(keysc.c.o) - 0x0000000000301684 _pollevent - 0x0000000000301758 _waitevent - .text 0x0000000000301790 0x4d0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(tmu.c.o) - 0x0000000000301a18 _timer_setup - 0x0000000000301aac _timer_delay - 0x0000000000301b0c _timer_start - 0x0000000000301b40 _timer_reload - 0x0000000000301b60 _timer_pause - 0x0000000000301b94 _timer_stop - 0x0000000000301bf0 _timer_timeout - 0x0000000000301bfc _timer_address - 0x0000000000301c30 _timer_clear - .text 0x0000000000301c60 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 0x0000000000301c60 0x268 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dma.c.o) - 0x0000000000301c60 _dma_transfer_wait - 0x0000000000301d3c _dma_transfer - 0x0000000000301dec _dma_transfer_noint - .text 0x0000000000301ec8 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 0x0000000000301ec8 0x5c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(gint.c.o) - 0x0000000000301ec8 _gint_intlevel - 0x0000000000301f00 _gint_inthandler - .text 0x0000000000301f24 0xc8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(cpg.c.o) - 0x0000000000301fe0 _clock_freq - .text 0x0000000000301fec 0x78 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_movmem.o) - 0x0000000000301fec ___movmem - 0x0000000000301fec ___movstr - 0x0000000000302020 ___movmemSI64 - 0x0000000000302020 ___movstrSI64 - 0x0000000000302024 ___movmemSI60 - 0x0000000000302024 ___movstrSI60 - 0x0000000000302028 ___movstrSI56 - 0x0000000000302028 ___movmemSI56 - 0x000000000030202c ___movmemSI52 - 0x000000000030202c ___movstrSI52 - 0x0000000000302030 ___movstrSI48 - 0x0000000000302030 ___movmemSI48 - 0x0000000000302034 ___movmemSI44 - 0x0000000000302034 ___movstrSI44 - 0x0000000000302038 ___movstrSI40 - 0x0000000000302038 ___movmemSI40 - 0x000000000030203c ___movstrSI36 - 0x000000000030203c ___movmemSI36 - 0x0000000000302040 ___movstrSI32 - 0x0000000000302040 ___movmemSI32 - 0x0000000000302044 ___movmemSI28 - 0x0000000000302044 ___movstrSI28 - 0x0000000000302048 ___movmemSI24 - 0x0000000000302048 ___movstrSI24 - 0x000000000030204c ___movmemSI20 - 0x000000000030204c ___movstrSI20 - 0x0000000000302050 ___movstrSI16 - 0x0000000000302050 ___movmemSI16 - 0x0000000000302054 ___movmemSI12 - 0x0000000000302054 ___movstrSI12 - 0x0000000000302058 ___movstrSI8 - 0x0000000000302058 ___movmemSI8 - 0x000000000030205c ___movstrSI4 - 0x000000000030205c ___movmemSI4 - *fill* 0x0000000000302064 0x1c - .text 0x0000000000302080 0x60 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_movmem_i4.o) - 0x0000000000302088 ___movmem_i4_even - 0x0000000000302088 ___movstr_i4_even - 0x000000000030208e ___movmem_i4_odd - 0x000000000030208e ___movstr_i4_odd - 0x00000000003020c0 ___movmemSI12_i4 - 0x00000000003020c0 ___movstrSI12_i4 - .text 0x00000000003020e0 0x1ec /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_udivdi3.o) - 0x00000000003020e0 ___udivdi3 - .text 0x00000000003022cc 0x6c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_udivsi3.o) - 0x00000000003022ee ___udivsi3 - .text 0x0000000000302338 0x60 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_udiv_qrnnd_16.o) - 0x0000000000302338 ___udiv_qrnnd_16 - .text 0x0000000000302398 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_clz.o) + .text 0x0000000000300604 0x5d8 build-cg/src/main.o + 0x0000000000300604 _add + 0x0000000000300648 _fill + 0x0000000000300680 _fill_char + 0x00000000003006aa _display_comm + 0x0000000000300760 _communication + .text.startup 0x0000000000300bdc 0x74 build-cg/src/main.o + 0x0000000000300bdc _main + .text 0x0000000000300c50 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 0x0000000000300c50 0xf8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(mmu.c.o) + 0x0000000000300c50 _utlb_addr + 0x0000000000300c60 _utlb_data + 0x0000000000300c70 _utlb_mapped_memory + .text 0x0000000000300d48 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 0x0000000000300d48 0x4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dvram.c.o) + 0x0000000000300d48 _dvram + .text 0x0000000000300d4c 0x30 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dupdate.c.o) + 0x0000000000300d4c _dupdate + 0x0000000000300d64 _dupdate_noint + .text 0x0000000000300d7c 0x48 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dclear.c.o) + 0x0000000000300d7c _dclear + .text 0x0000000000300dc4 0xc4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(drect.c.o) + 0x0000000000300dc4 _drect + .text 0x0000000000300e88 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 0x0000000000300e88 0x1e8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(getkey.c.o) + 0x0000000000300e88 _getkey_opt + 0x0000000000301028 _getkey + 0x0000000000301034 _getkey_repeat + .text 0x0000000000301070 0x9c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(topti.c.o) + 0x0000000000301070 _dsize + .text 0x000000000030110c 0xd6 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(memory.c.o) + 0x000000000030110c _memcpy + 0x00000000003011c0 __memmove + 0x00000000003011c4 __memcmp + 0x00000000003011c8 _memset + .text 0x00000000003011e2 0x26 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(string.c.o) + 0x00000000003011e2 _strlen + 0x00000000003011f2 _strncpy + .text 0x0000000000301208 0x2cc /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(r61524.c.o) + 0x0000000000301258 _r61524_win_get + 0x0000000000301310 _r61524_win_set + 0x00000000003013d0 _r61524_display + .text 0x00000000003014d4 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 0x00000000003014d4 0xf0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(setup.c.o) + 0x0000000000301540 _gint_install + 0x00000000003015ac _gint_unload + .text 0x00000000003015c4 0x2c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(vbr.s.o) + 0x00000000003015c4 _gint_setvbr + .text 0x00000000003015f0 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 0x00000000003015f0 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 0x00000000003015f0 0x288 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(keysc.c.o) + 0x000000000030176c _pollevent + 0x0000000000301840 _waitevent + .text 0x0000000000301878 0x4d0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(tmu.c.o) + 0x0000000000301b00 _timer_setup + 0x0000000000301b94 _timer_delay + 0x0000000000301bf4 _timer_start + 0x0000000000301c28 _timer_reload + 0x0000000000301c48 _timer_pause + 0x0000000000301c7c _timer_stop + 0x0000000000301cd8 _timer_timeout + 0x0000000000301ce4 _timer_address + 0x0000000000301d18 _timer_clear + .text 0x0000000000301d48 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 0x0000000000301d48 0x268 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dma.c.o) + 0x0000000000301d48 _dma_transfer_wait + 0x0000000000301e24 _dma_transfer + 0x0000000000301ed4 _dma_transfer_noint + .text 0x0000000000301fb0 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 0x0000000000301fb0 0x5c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(gint.c.o) + 0x0000000000301fb0 _gint_intlevel + 0x0000000000301fe8 _gint_inthandler + .text 0x000000000030200c 0xc8 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(cpg.c.o) + 0x00000000003020c8 _clock_freq + .text 0x00000000003020d4 0x78 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_movmem.o) + 0x00000000003020d4 ___movmem + 0x00000000003020d4 ___movstr + 0x0000000000302108 ___movmemSI64 + 0x0000000000302108 ___movstrSI64 + 0x000000000030210c ___movmemSI60 + 0x000000000030210c ___movstrSI60 + 0x0000000000302110 ___movstrSI56 + 0x0000000000302110 ___movmemSI56 + 0x0000000000302114 ___movmemSI52 + 0x0000000000302114 ___movstrSI52 + 0x0000000000302118 ___movstrSI48 + 0x0000000000302118 ___movmemSI48 + 0x000000000030211c ___movmemSI44 + 0x000000000030211c ___movstrSI44 + 0x0000000000302120 ___movstrSI40 + 0x0000000000302120 ___movmemSI40 + 0x0000000000302124 ___movstrSI36 + 0x0000000000302124 ___movmemSI36 + 0x0000000000302128 ___movstrSI32 + 0x0000000000302128 ___movmemSI32 + 0x000000000030212c ___movmemSI28 + 0x000000000030212c ___movstrSI28 + 0x0000000000302130 ___movmemSI24 + 0x0000000000302130 ___movstrSI24 + 0x0000000000302134 ___movmemSI20 + 0x0000000000302134 ___movstrSI20 + 0x0000000000302138 ___movstrSI16 + 0x0000000000302138 ___movmemSI16 + 0x000000000030213c ___movmemSI12 + 0x000000000030213c ___movstrSI12 + 0x0000000000302140 ___movstrSI8 + 0x0000000000302140 ___movmemSI8 + 0x0000000000302144 ___movstrSI4 + 0x0000000000302144 ___movmemSI4 + *fill* 0x000000000030214c 0x14 + .text 0x0000000000302160 0x60 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_movmem_i4.o) + 0x0000000000302168 ___movmem_i4_even + 0x0000000000302168 ___movstr_i4_even + 0x000000000030216e ___movmem_i4_odd + 0x000000000030216e ___movstr_i4_odd + 0x00000000003021a0 ___movmemSI12_i4 + 0x00000000003021a0 ___movstrSI12_i4 + .text 0x00000000003021c0 0x1ec /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_udivdi3.o) + 0x00000000003021c0 ___udivdi3 + .text 0x00000000003023ac 0x6c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_udivsi3.o) + 0x00000000003023ce ___udivsi3 + .text 0x0000000000302418 0x60 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_udiv_qrnnd_16.o) + 0x0000000000302418 ___udiv_qrnnd_16 + .text 0x0000000000302478 0x0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_clz.o) -.gint.blocks 0x00000000003023a0 0x140 +.gint.blocks 0x0000000000302480 0x140 *(.gint.blocks) - .gint.blocks 0x00000000003023a0 0x20 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(exch.S.o) - 0x00000000003023a0 _exch_entry_7305 - .gint.blocks 0x00000000003023c0 0x20 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.S.o) - 0x00000000003023c0 _inth_entry_7305 - .gint.blocks 0x00000000003023e0 0xe0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.s.o) - 0x00000000003023e0 _inth_tmu - 0x0000000000302460 _inth_etmu2 - 0x0000000000302480 _inth_etmu_help - 0x00000000003024a0 _inth_etmux - .gint.blocks 0x00000000003024c0 0x20 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.s.o) - 0x00000000003024c0 _inth_dma_dma0 + .gint.blocks 0x0000000000302480 0x20 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(exch.S.o) + 0x0000000000302480 _exch_entry_7305 + .gint.blocks 0x00000000003024a0 0x20 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.S.o) + 0x00000000003024a0 _inth_entry_7305 + .gint.blocks 0x00000000003024c0 0xe0 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.s.o) + 0x00000000003024c0 _inth_tmu + 0x0000000000302540 _inth_etmu2 + 0x0000000000302560 _inth_etmu_help + 0x0000000000302580 _inth_etmux + .gint.blocks 0x00000000003025a0 0x20 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(inth.s.o) + 0x00000000003025a0 _inth_dma_dma0 -.gint.drivers 0x00000000003024e0 0xb4 - 0x00000000003024e0 _bdrv = . +.gint.drivers 0x00000000003025c0 0xb4 + 0x00000000003025c0 _bdrv = . *(.gint.drivers.0) *(.gint.drivers.1) .gint.drivers.1 - 0x00000000003024e0 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(cpg.c.o) - 0x00000000003024e0 _drv_cpg + 0x00000000003025c0 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(cpg.c.o) + 0x00000000003025c0 _drv_cpg *(.gint.drivers.2) .gint.drivers.2 - 0x0000000000302504 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(tmu.c.o) - 0x0000000000302504 _drv_tmu + 0x00000000003025e4 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(tmu.c.o) + 0x00000000003025e4 _drv_tmu .gint.drivers.2 - 0x0000000000302528 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dma.c.o) - 0x0000000000302528 _drv_dma + 0x0000000000302608 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dma.c.o) + 0x0000000000302608 _drv_dma *(.gint.drivers.3) *(.gint.drivers.4) .gint.drivers.4 - 0x000000000030254c 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(keysc.c.o) - 0x000000000030254c _drv_keysc + 0x000000000030262c 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(keysc.c.o) + 0x000000000030262c _drv_keysc *(.gint.drivers.5) .gint.drivers.5 - 0x0000000000302570 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(r61524.c.o) - 0x0000000000302570 _drv_r61524 + 0x0000000000302650 0x24 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(r61524.c.o) + 0x0000000000302650 _drv_r61524 *(.gint.drivers.6) - 0x0000000000302594 _edrv = . + 0x0000000000302674 _edrv = . -.rodata 0x0000000000302594 0x8f4 +.rodata 0x0000000000302674 0x8f4 *(.rodata.assets) *(.rodata .rodata.*) .rodata.str1.4 - 0x0000000000302594 0x321 build-cg/src/main.o - 0x329 (size before relaxing) - *fill* 0x00000000003028b5 0x3 - .rodata 0x00000000003028b8 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 0x00000000003028d0 0x49c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(font8x9.png.o) - 0x00000000003028d0 _gint_font8x9 - 0x0000000000302d6c _gint_font8x9_end + 0x0000000000302674 0x321 build-cg/src/main.o + 0x32d (size before relaxing) + *fill* 0x0000000000302995 0x3 + .rodata 0x0000000000302998 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 0x00000000003029b0 0x49c /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(font8x9.png.o) + 0x00000000003029b0 _gint_font8x9 + 0x0000000000302e4c _gint_font8x9_end .rodata.str1.4 - 0x0000000000302d6c 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* 0x0000000000302d73 0x1 + 0x0000000000302e4c 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* 0x0000000000302e53 0x1 .rodata.str1.4 - 0x0000000000302d74 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* 0x0000000000302d7a 0x2 + 0x0000000000302e54 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* 0x0000000000302e5a 0x2 .rodata.str1.4 - 0x0000000000302d7c 0x4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(tmu.c.o) + 0x0000000000302e5c 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 - 0x0000000000302d80 0x4 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgint-cg.a(dma.c.o) + 0x0000000000302e60 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 - 0x0000000000302d84 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 0x0000000000302d88 0x100 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_clz.o) - 0x0000000000302d88 ___clz_tab + 0x0000000000302e64 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 0x0000000000302e68 0x100 /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a(_clz.o) + 0x0000000000302e68 ___clz_tab -.rela.dyn 0x0000000000302e88 0x0 - .rela.text 0x0000000000302e88 0x0 build-cg/src/main.o +.rela.dyn 0x0000000000302f68 0x0 + .rela.text 0x0000000000302f68 0x0 build-cg/src/main.o .rela.pretext.entry - 0x0000000000302e88 0x0 build-cg/src/main.o - .rela.pretext 0x0000000000302e88 0x0 build-cg/src/main.o + 0x0000000000302f68 0x0 build-cg/src/main.o + .rela.pretext 0x0000000000302f68 0x0 build-cg/src/main.o 0x0000000008102000 . = ORIGIN (ram) .bss 0x0000000008102000 0x30 @@ -385,8 +385,8 @@ LOAD /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a 0x0000000008102030 . = ALIGN (0x10) 0x0000000000000030 _sbss = SIZEOF (.bss) -.data 0x0000000008102030 0x20 load address 0x0000000000302e88 - 0x0000000000302e88 _ldata = LOADADDR (.data) +.data 0x0000000008102030 0x20 load address 0x0000000000302f68 + 0x0000000000302f68 _ldata = LOADADDR (.data) 0x0000000008102030 _rdata = . *(.data .data.*) .data 0x0000000008102030 0x0 build-cg/src/main.o @@ -427,15 +427,15 @@ LOAD /Users/antoine/gcc/sh3eb-elf-2.32-8.3.0/lib/gcc/sh3eb-elf/8.3.0/libgcc.a 0x0000000008102050 . = ALIGN (0x10) *fill* 0x0000000008102044 0xc -.data.4 0x0000000008102050 0x0 load address 0x0000000000302ea8 +.data.4 0x0000000008102050 0x0 load address 0x0000000000302f88 *(.data.4) 0x0000000008102050 . = ALIGN (0x10) 0x0000000000000020 _sdata = (SIZEOF (.data) + SIZEOF (.data.4)) 0x000000008c15ff00 _gint_vbr = (ORIGIN (vbr) - 0x100) 0x000000008c161400 . = ORIGIN (rram) -.gint.data 0x000000008c161400 0xd0 load address 0x0000000000302ea8 - 0x0000000000302ea8 _lgdata = LOADADDR (.gint.data) +.gint.data 0x000000008c161400 0xd0 load address 0x0000000000302f88 + 0x0000000000302f88 _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) @@ -450,7 +450,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 0x0000000000302f78 +.gint.bss 0x000000008c1614d0 0x230 load address 0x0000000000303058 *(.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 2f50e6b..ac2d1ba 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 bb44772..4e0f6aa 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 20e955c..91b02d4 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 889e282..073301a 100755 --- a/Sources/src/main.c +++ b/Sources/src/main.c @@ -1,7 +1,7 @@ //----- // Nom du projet : Fly Simulator // Version : - dev - -// Dernière modification le : 19 juillet 2019 +// Dernière modification le : 22 juillet 2019 //----- #include @@ -14,13 +14,10 @@ //communication : gère les communications entre la tour et l'avion -int communication (int *com_id, int *ligne, int id); +void communication (int *com_id, int *id); //display_comm : affiche les communications -void display_comm (char *msg, int *ligne, int joueur); - -//reset_comm : vide l'historique des communications -void reset_comm (int *ligne); +void display_comm (char *msg_1, char *msg_2, char *msg_3, int *joueur); //add : concatène deux chaines de caractère, str >> dest char *add (char *dest, const char *src); @@ -28,231 +25,251 @@ char *add (char *dest, const char *src); //fill : initialise une chaine de caractère en écrasant le texte contenu dans dest char *fill (char *dest, const char *src); +//fill_char : initialise une chaine avec un nombre de caractères répétés 'n' fois +char *fill_char(char *dest, const char *src, unsigned int debut, unsigned int fin); + int main (void) { - int com_id = 1, ligne = 0, id = 0; - //int key = 0; + int com_id = 1, id = 0;// variables des communications + int key = 0;//variables diverses dclear(C_WHITE); dupdate(); - while(com_id < 26) + while(com_id <= 26) { - id = communication(&com_id, &ligne, id); - getkey(); + communication(&com_id, &id); + key = getkey().key; dupdate(); + if(key == KEY_EXIT) return 0; } getkey(); - return 1; + return 0; } -int communication(int *com_id, int *ligne, int id) +void communication(int *com_id, int *id) { //faire un choix de la langue Français / Anglais - 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 personnes a bord, ", msg[100] = ""; + 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 personnes a bord, ", msg_1[70], msg_2[70], msg_3[70]; + + fill_char(msg_1, " ", 0, 70); + fill_char(msg_2, " ", 0, 70); + fill_char(msg_3, " ", 0, 70); switch (*com_id) { case 1: - id = 1; - fill(msg, aipt_depart); - add(msg, "tour, "); - add(msg, immat); - add(msg, "bonjour."); + *id = 1; + + fill(msg_1, aipt_depart); + add(msg_1, "tour, "); + add(msg_1, immat); + add(msg_1, "bonjour."); break; case 2: - id = 0; - fill(msg, immat); - add(msg, aipt_depart); - add(msg, "bonjour."); + *id = 0; + + fill(msg_1, immat); + add(msg_1, aipt_depart); + add(msg_1, "bonjour."); break; case 3: - id = 1; - fill(msg, immat); - add(msg, avion); - add(msg, passagers); - add(msg, "demandons"); - display_comm(msg, &(*ligne), id); - fill(msg, "vol vers "); - add(msg, aipt_arrivee); + *id = 1; + + fill(msg_1, immat); + add(msg_1, avion); + add(msg_1, passagers); + add(msg_1, "demandons"); + fill(msg_2, "vol vers "); + add(msg_2, aipt_arrivee); break; case 4: - id = 0; - fill(msg, immat_courte); - add(msg, "vol autorise. Rappelez pret au depart"); + *id = 0; + + fill(msg_1, immat_courte); + add(msg_1, "vol autorise. Rappelez pret au depart."); break; case 5: - id = 1; - fill(msg, "Rappelons pret au depart, "); - add(msg, immat_courte); + *id = 1; + + fill(msg_1, "Rappelons pret au depart, "); + add(msg_1, immat_courte); break; case 6: - id = 1; - fill(msg, immat_courte); - add(msg, "pret au depart"); + *id = 1; + + fill(msg_1, immat_courte); + add(msg_1, "pret au depart."); break; case 7: - id = 0; - fill(msg, immat_courte); - add(msg, "autorise decollage."); + *id = 0; + + fill(msg_1, immat_courte); + add(msg_1, "autorise decollage."); break; case 8: - id = 1; - fill(msg, "Autorise decollage, "); - add(msg, immat_courte); + *id = 1; + + fill(msg_1, "Autorise decollage, "); + add(msg_1, immat_courte); break; case 9: - id = 0; - reset_comm (&(*ligne)); - fill(msg, immat_courte); - add(msg, "Vous quittez mon espace. Services radar"); - display_comm(msg, &(*ligne), id); - fill(msg, "et radio termines. Informations de vol avec"); - display_comm(msg, &(*ligne), id); - fill(msg, "Controle, "); - add(msg, freq_cont); - add(msg, "au revoir."); + *id = 0; + + fill(msg_1, immat_courte); + add(msg_1, "Vous quittez mon espace. Services radar"); + fill(msg_2, "et radio termines. Informations de vol avec"); + fill(msg_3, "Controle, "); + add(msg_3, freq_cont); + add(msg_3, "au revoir."); break; case 10: - id = 1; - fill(msg, "Controle "); - add(msg, freq_cont); - add(msg, "bonne journee. "); - add(msg, immat_courte); + *id = 1; + + fill(msg_1, "Controle "); + add(msg_1, freq_cont); + add(msg_1, "bonne journee. "); + add(msg_1, immat_courte); break; case 11: - id = 1; - fill(msg, "Controle "); - add(msg, immat); - add(msg, "bonjour."); + *id = 1; + + fill(msg_1, "Controle "); + add(msg_1, immat); + add(msg_1, "bonjour."); break; case 12: - id = 0; - fill(msg, immat_courte); - add(msg, "Controle, bienvenu."); + *id = 0; + + fill(msg_1, immat_courte); + add(msg_1, "Controle, bienvenu."); break; case 13: - id = 1; - fill(msg, immat); - add(msg, avion); - add(msg, passagers); - add(msg, "sortie de "); - display_comm(msg, &(*ligne), id); - add(msg, aipt_depart); - add(msg, "vers "); - add(msg, aipt_arrivee); + *id = 1; + + fill(msg_1, immat); + add(msg_1, avion); + add(msg_1, passagers); + add(msg_1, "sortie de "); + fill(msg_2, aipt_depart); + add(msg_2, "vers "); + add(msg_2, aipt_arrivee); break; case 14: - id = 0; - fill(msg, immat_courte); - add(msg, "identifie radar."); + *id = 0; + + fill(msg_1, immat_courte); + add(msg_1, "identifie radar."); break; case 15: - id = 0; - reset_comm(&(*ligne)); - fill(msg, immat_courte); - add(msg, "Vous quittez mon espace, contactez "); - add(msg, aipt_arrivee); - display_comm(msg, &(*ligne), id); - fill(msg, freq_arrivee); - add(msg, "bon vol."); + *id = 0; + + fill(msg_1, immat_courte); + add(msg_1, "Vous quittez mon espace, contactez "); + add(msg_1, aipt_arrivee); + fill(msg_2, freq_arrivee); + add(msg_2, "bon vol."); break; case 16: - id = 1; - fill(msg, aipt_arrivee); - add(msg, freq_arrivee); - add(msg, "au revoir. "); - add(msg, immat_courte); + *id = 1; + + fill(msg_1, aipt_arrivee); + add(msg_1, freq_arrivee); + add(msg_1, "au revoir. "); + add(msg_1, immat_courte); break; case 17: - id = 1; - fill(msg, aipt_arrivee); - add(msg, "tour, "); - add(msg, immat); - add(msg, "bonjour."); + *id = 1; + + fill(msg_1, aipt_arrivee); + add(msg_1, "tour, "); + add(msg_1, immat); + add(msg_1, "bonjour."); break; case 18: - id = 0; - fill(msg, immat_courte); - add(msg, aipt_arrivee); - add(msg, "bonjour."); + *id = 0; + + fill(msg_1, immat_courte); + add(msg_1, aipt_arrivee); + add(msg_1, "bonjour."); break; case 19: - id = 1; - fill(msg, immat); - add(msg, avion); - add(msg, passagers); - add(msg, "demandons"); - display_comm(msg, &(*ligne), id); - fill(msg, "consignes pour atterrissage sur "); - add(msg, aipt_arrivee); + *id = 1; + + fill(msg_1, immat); + add(msg_1, avion); + add(msg_1, passagers); + add(msg_1, "demandons"); + fill(msg_2, "consignes pour atterrissage sur "); + add(msg_2, aipt_arrivee); break; case 20: - id = 0; - fill(msg, immat_courte); - add(msg, "Commencez votre approche"); + *id = 0; + + fill(msg_1, immat_courte); + add(msg_1, "Commencez votre approche"); break; case 21: - id = 1; - fill(msg, "Commencons notre approche "); - add(msg, immat_courte); + *id = 1; + + fill(msg_1, "Commencons notre approche "); + add(msg_1, immat_courte); break; case 22: - id = 1; - reset_comm(&(*ligne)); - fill(msg, immat_courte); - add(msg, "en finale, demandons autorisation"); - display_comm(msg, &(*ligne), id); - fill(msg, "d'atterrissage"); + *id = 1; + + fill(msg_1, immat_courte); + add(msg_1, "en finale, demandons autorisation"); + fill(msg_2, "d'atterrissage"); break; case 23: - id = 0; - fill(msg, immat_courte); - add(msg, "autorise aterrissage. Rappelez au sol."); + *id = 0; + + fill(msg_1, immat_courte); + add(msg_1, "autorise aterrissage. Rappelez au sol."); break; case 24: - id = 1; - fill(msg, "Autorise aterrissage, rappelons au sol, "); - add(msg, immat_courte); + *id = 1; + + fill(msg_1, "Autorise aterrissage, rappelons au sol, "); + add(msg_1, immat_courte); break; case 25: - id = 1; - fill(msg, immat_courte); - add(msg, "au sol, pour quitter, merci."); + *id = 1; + + fill(msg_1, immat_courte); + add(msg_1, "au sol, pour quitter, merci."); break; case 26: - id = 0; - fill(msg, immat_courte); - add(msg, "quittez la frequence, a bientot."); - - - - + *id = 0; + fill(msg_1, immat_courte); + add(msg_1, "quittez la frequence, a bientot."); } - - display_comm(msg, &(*ligne), id); + display_comm(msg_1, msg_2, msg_3, &(*id)); *com_id += 1; - return id; } -void display_comm (char *msg, int *ligne, int joueur) + +void display_comm (char *msg_1, char *msg_2, char *msg_3, int *joueur) { - if (*ligne >= 5) reset_comm(&(*ligne)); + fill_char(msg_1, " ", strlen(msg_1), 70); + fill_char(msg_2, " ", strlen(msg_2), 70); + fill_char(msg_3, " ", strlen(msg_3), 70); - if (joueur)dtext(1, 1 + (*ligne * 12),msg, C_BLUE, C_NONE); - else dtext(1, 1 + (*ligne * 12),msg, C_BLACK, C_NONE); - - *ligne += 1; - msg[0] = '\0'; + if (*joueur == 1){ + dtext(1, 1, msg_1, C_BLUE, C_WHITE); + dtext(1, 12, msg_2, C_BLUE, C_WHITE); + dtext(1, 23, msg_3, C_BLUE, C_WHITE); + } + else{ + dtext(1, 1, msg_1, C_BLACK, C_WHITE); + dtext(1, 12, msg_2, C_BLACK, C_WHITE); + dtext(1, 23, msg_3, C_BLACK, C_WHITE); + } } -void reset_comm (int *ligne) -{ - *ligne = 0; - dclear(C_WHITE); -} char *add(char *dest, const char *src) { @@ -262,13 +279,22 @@ char *add(char *dest, const char *src) return dest; } + char *fill(char *dest, const char *src) { unsigned int i; - for (i = 0 ; i <= strlen(src) ; i++) - { - dest[i] = src[i]; - } - dest[strlen(dest) + 1] = '\0'; + for (i = 0 ; i <= strlen(src) ; i++) dest[i] = src[i]; + return dest; +} + + +char *fill_char(char *dest, const char *src, unsigned int debut, unsigned int fin) +{ + unsigned int i; + for (i = debut ; i < fin ; i++) + { + dest[i] = src[0]; + } + dest[fin] = '\0'; return dest; }