User Tag List

Страница 18 из 47 ПерваяПервая ... 141516171819202122 ... ПоследняяПоследняя
Показано с 171 по 180 из 466

Тема: Алан Кокс представил Unix-подобную ОС Fuzix, ядро которой потребляет около 40 Кб ОЗУ

  1. #171

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Всё остальное - статически прилинкованная библиотека.
    Неужели, все функции этой либы используются?! Может воспользоваться "умной линковкой?" .Я разрежу эту либу на кучу файлов по одной функции и SDAR`ом соберу либу, из которой линковаться будут только задействованные функции.
    Как тебе идея?
    Последний раз редактировалось Sergey; 23.11.2014 в 23:22.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  2. #172

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    Неужели, все функции этой либы используются?! Может воспользоваться "умной линковкой?" .Я разрежу эту либу на кучу файлов по одной функции и SDAR`ом соберу либу, из которой линковаться будут только задействованные функции.
    Как тебе идея?
    Это же стандартный путь. Там так и сделано.
    http://github.com/EtchedPixels/FUZIX...r/Library/libs
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  3. #173

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Засада!
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  4. #174

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Конечно это из серии "переписать все" совет, но я по своему опыту, использую HitechC:
    Код:
    HI-TECH C COMPILER (CP/M-80) V3.09
    Copyright (C) 1984-87 HI-TECH SOFTWARE
    Он на 30-40%% более компактный код делает, чем SDCC
    Вот, собрал утилиты в CP/M и для CP/M, вроде все работает. А это как-никак до 70% ядра (все что кроме процессов). Т.е. для сборки (F)UZI(X) он вполне пригоден. Можно прям на Орионе все собирать.
    Но собираю под Виндой, для удобства редактирования (исп. ProgrammersNotepad, проект - удобно) и компилирования:

    Скрытый текст



    Код:
    # Makefile for UZIX modules 
    
    .SUFFIXES:	.c .obj .as .lib
    
    CC	     = cpm -h c
    AS	     = cpm -h zas
    LINK	 = cpm -h link
    LIBR	 = cpm -h libr
    OBJHEX	 = cpm -h objtohex
    M80      = cpm m80n
    L80      = cpm l80m
    RM	     = rm
    DEFINES  = -DORI_UTIL
    #DEFINES  = -DORI_UZIX -DNO_ASM
    CFLAGS	 = -O -x
    ASFLAGS	 = -N
    OBJ_MKFS = MACHDEP.obj fs.obj dmisc.obj diskio.obj dio.obj dflop.obj dtty.obj sc1.obj
    OBJ_BD   = MACHDEP.obj fs.obj dmisc.obj diskio.obj dio.obj dflop.obj dtty.obj sc1.obj
    OBJ_FSCK = MACHDEP.obj fs.obj dmisc.obj diskio.obj dio.obj dflop.obj dtty.obj sc1.obj 
    OBJ_UCP  = MACHDEP.obj fs.obj XFS.obj ucs.obj dmisc.obj diskio.obj dio.obj dflop.obj dtty.obj sc1.obj sc2.obj
    
    .c.obj :
    	$(CC) $(CFLAGS) $(DEFINES) -c $*.c
    
    .as.obj : 
    	$(AS) $(ASFLAGS) -L$*.lst $*.as
    
    # devmisc.obj must be compiled without optimization (-O) because optimizer spoiling #asm blocks!
    dmisc.obj : dmisc.c
    	$(CC) $(DEFINES) -x -c dmisc.c
    
    idebdos.com : 
    	$(M80) idebdos,=idebdos
    	$(L80) /p:100,idebdos,idebdos/n/e
    	
    bd.com : $(OBJ_BD) bd.c
    	$(CC) $(CFLAGS) $(DEFINES) bd.c $(OBJ_BD)
    
    fsck.com : $(OBJ_FSCK) fsck.c
    	$(CC) $(CFLAGS) $(DEFINES) fsck.c $(OBJ_FSCK)
    
    mkfs.com : $(OBJ_MKFS) mkfs.c
    	$(CC) $(CFLAGS) $(DEFINES) mkfs.c $(OBJ_MKFS)
    
    ucp.com : $(OBJ_UCP) ucp.c 
    	$(CC) $(CFLAGS) $(DEFINES) ucp.c $(OBJ_UCP)
    
    all : idebdos.com bd.com fsck.com mkfs.com ucp.com 
    
    clean :
    	$(RM) $(OBJ_UCP) bd.obj fsck.obj mkfs.obj ucp.obj
    [свернуть]
    Последний раз редактировалось Error404; 24.11.2014 в 02:33. Причина: убрал под спойлер
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  5. #175

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Конечно это из серии "переписать все" совет, но я по своему опыту, использую HitechC:
    Лично, я готов переписать все либы на асме Там даже то, что изначально на асме, как будто, нарочно писалось, чтобы памяти больше занимало
    Токо это долго будет, не меньше месяца (если загонюсь).

    Цитата Сообщение от Error404 Посмотреть сообщение
    Код:
    HI-TECH C COMPILER (CP/M-80) V3.09
    Copyright (C) 1984-87 HI-TECH SOFTWARE
    Хорошая весчь.

    Цитата Сообщение от Error404 Посмотреть сообщение
    Но собираю под Виндой, для удобства редактирования (исп. ProgrammersNotepad, проект - удобно) и компилирования:
    Будь добр, поделись образом "среды" с хайтеком. Кстати, может ли он ассемблерный файлы выдавать, или сразу непосредственно в бинарники компилит?
    Кстати, наверное, можно будет этот CP/M HiTech и к Code::Blocks прикрутить.
    Последний раз редактировалось Sergey; 24.11.2014 в 06:34.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  6. #176

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Error404, как кросс средство (полукросс) хорошо использовать этот эмуль:
    http://homepage3.nifty.com/takeda-to...cpm/index.html
    он под винду. в нём сборка многих исходников hitech-c просто в пару секунд пролетает. при этом есть исходники, можно допиливать на своё усмотрение. удобна!
    да, зачисти свою личку, а то даже сообщение не отправить тебе.

    ---------- Post added at 11:05 ---------- Previous post was at 11:00 ----------

    Цитата Сообщение от Sergey Посмотреть сообщение
    Лично, я готов переписать все либы на асме Там даже то, что изначально на асме, как будто, нарочно писалось, чтобы памяти больше занимало
    Токо это долго будет, не меньше месяца (если загонюсь).


    Хорошая весчь.


    Будь добр, поделись образом "среды" с хайтеком. Кстати, может ли он ассемблерный файлы выдавать, или сразу непосредственно в бинарники компилит?
    Кстати, наверное, можно будет этот CP/M HiTech и к Code::Blocks прикрутить.
    HiTech-C 3.09 это древний компилятор под CP/M. однако, он ansi c совместимый. чтобы его прикрутить к какой-то среде, надо иметь хороший эмуль. если code::blocks под венду, то ссылка выше на эмуль. если под линь, для себя я определил только один достойный эмул цпма - zxcc:
    http://classiccmp.org/cpmarchives/cp...xcc/index.html
    0.5.7 я собрать не смог, 0.5.6. вроде без проблем собирается.

    ---------- Post added at 11:08 ---------- Previous post was at 11:05 ----------

    некое подобие make файла для сборки под вышеприведённым виндоэмулем:
    Код:
    @echo off
    if "%1" == "" goto error
    if not exist %1.c goto nofile
    if exist %1.asm del %1.asm
    if exist %1.obj del %1.obj
    if exist %1.com del %1.com
    if exist %1.map del %1.map
    @echo on
    cpm cpp -DHI_TECH_C -Dz80 -I %1.c C1.T
    cpm p1 C1.T C2.T C3.T
    cpm cgen C2.T %1.asm
    cpm zas -N -o%1.obj %1.asm
    cpm link -Z -M%1.map -C100H -O%1.com  crtcpm.obj %1.obj libс.lib
    del *.T
    @echo off
    goto end
    
    :nofile
    echo Source file does not exist.
    goto end
    
    :error
    echo usage: ucc sourcefile [-o] [library1] [library2...]
    echo        source filename must be supplied without extension.
    echo        option -o disables code optimization.
    echo        library1, library2, etc are other libraries to link
    echo        map file is automatically generated (sourcefile.map)
    
    :end
    ещё есть батник для сборки libc. если надо, есть исходники libc.
    Последний раз редактировалось Sayman; 24.11.2014 в 07:12.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  7. #177

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот интересно, почему во многих функциях параметр, представляющий собой одиночный символ, указывают как "int"?!


    void *memccpy(void *d, const void *s, int c, size_t n)
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  8. #178

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    Вот интересно, почему во многих функциях параметр, представляющий собой одиночный символ, указывают как "int"?!


    void *memccpy(void *d, const void *s, int c, size_t n)
    если я верно понял (сам этой функцией не пользовался), то третий аргумент (int c) это триггер, код при котором операция будет прервана. поскольку число знаковое, то от -32768 до +32767. потому и int. надо тебе прервать в какой-то момент копирование, ставишь ему параметр. например, у тебя какой- то код есть, число 1024, для примера. вот его и поставил. было бы char пришлось бы извращаться.
    вообще, некоторые стоковые операции из Libc я заменил на подобные из файла machdep.c у uzix. bcopy, bfill, bzero.и места меньше и работает быстрее, чем стоковая memcpy, например.
    Последний раз редактировалось Sayman; 24.11.2014 в 07:26.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  9. #179

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    если я верно понял (сам этой функцией не пользовался), то третий аргумент (int c) это триггер, код при котором операция будет прервана. поскольку число знаковое, то от -32768 до +32767. потому и int. надо тебе прервать в какой-то момент копирование, ставишь ему параметр. например, у тебя какой- то код есть, число 1024, для примера. вот его и поставил. было бы char пришлось бы извращаться.
    вообще, некоторые стоковые операции из Libc я заменил на подобные из файла machdep.c у uzix. bcopy, bfill, bzero.и места меньше и работает быстрее, чем стоковая memcpy, например.
    Странно, по описанию, копирует строку не более n или пока не встретится символ с.
    http://all-ht.ru/inf/prog/c/func/memccpy.html
    Главное, указывают, что массив БАЙТОВЫЙ, а int - это минимум 16 бит. Мне со стека слово снимать или байт?!

    Буду тут выкладывать оптимизированные функции по мере написания. Просьба, по возможности, оперативно делать тестовые сборки интерпретатора. Ну что бы хоть-какой прогресс наблюдать, есть разница в размере или нет.
    Вложения Вложения
    Последний раз редактировалось Sergey; 24.11.2014 в 09:19.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  10. #180

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    Главное, указывают, что массив БАЙТОВЫЙ, а int - это минимум 16 бит. Мне со стека слово снимать или байт?!

    void *memccpy(void *d, const void *s, int c, size_t n)
    слово. потому что описано как int - при вызове на стеке будет слово.
    а массив - да, байтовый.

    параметр с описан как инт с простой целью - ты можешь указть его равным -1 и тогда ни один символ строки не будет равен c.

Страница 18 из 47 ПерваяПервая ... 141516171819202122 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Куплю БК 0010 или подобную машинку в Украине
    от LeBohdan в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 06.07.2008, 23:29
  2. SDCC вокруг да около
    от andrews в разделе Программирование
    Ответов: 8
    Последнее: 26.03.2008, 08:16
  3. Ответов: 16
    Последнее: 02.08.2005, 12:20
  4. Ответов: 10
    Последнее: 18.02.2005, 17:45

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •