Важная информация

User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 21

Тема: z88dk v1.99A Release Candidate

  1. #11
    Master
    Регистрация
    15.08.2009
    Адрес
    Чайковский
    Сообщений
    833
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Попытался скомпилировать тестовую прошивку.

    #include <spectrum.h>
    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
    printf ("Hello world!\n");
    printf ("\nTHIS TEST ROM\n");
    printf ("\n\n\nProgram end\n");
    while (1){ };
    }


    Делаю: zcc +zx zloader.c -subtype=rom -lndos -create-app -ozloader.bin -lm

    Компилятор выдает:
    Error at file 'c:/z88dk//lib/spec_crt0.asm' line 481: syntax error
    1 errors occurred during assembly
    Key to filenames:
    C:\Users\Sergey\AppData\Local\Temp\s670_.o = test.c
    Error at file 'c:/z88dk//lib/spec_crt0.asm' line 481: syntax error
    ^ ---- IF !DEFINED_HAVESEED

    Закоментировал в spec_crt0.asm
    ;IF !DEFINED_HAVESEED

    После этого програмка откомпилировалась

    Вставил полученную прошивку в ZXmak,
    в первом знакоместе символы меняются,
    но текст не выводит.


    Что не так?

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


    Profi v3.2 (SIMM 1024kB, Color CP/M, Turbo VG)
    Profi v3.2 256kB + PAL coder
    Плата ZXM Phoenix 1024kB + VGA converter
    ZX Evolution 4096kB + SSD-1Gb
    Плата Speccy 2010
    Плата Sprinter Sp2000s
    Плата Reverse U9 EP3C
    Плата Reverse U10 EP3C
    Плата Reverse U16 EP4CE22
    Плата Mist v1.31
    Terasic DE1
    Terasic DE1-SoC
    Terasic DE10-nano
    iCore 3
    [свернуть]

  2. #12
    Member
    Регистрация
    21.05.2006
    Адрес
    Canada
    Сообщений
    78
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Hi Anykey,

    Are you trying to create a binary destined for ROM?

    The compile line you are using " zcc +zx zloader.c -subtype=rom -lndos -create-app -ozloader.bin -lm" is not using the new part of z88dk -- it is using the classic part of z88dk. The rom subtype is for making IF1 cartridges and will have ORG 0. It also may not work with some functionality because the classic library is not able to generate ROMs using certain parts of the library.


    Especially if you are making a ROM, it is best to use the new c library in z88dk. It has been designed with generation of ROMs as one of its primary goals. I'd also suggest you get the latest nightly build instead of the version at sourceforge. z88dk is a very active project and there are quite a few changes since the last release. Of particular interest, if you are running on windows or mac osx, the nightly build comes with sdcc binaries that will allow you to compile using sdcc as well. z88dk's version of sdcc produces better code than sdcc does.

    Details for installing z88dk can be found here:
    http://www.z88dk.org/wiki/doku.php?i...t#installation

    There is a great deal of information on that page if you are comfortable with English. If I have understood you correctly and you want to create a ROM then of particular importance is this section that describes how code destined for ROM can be generated:
    http://www.z88dk.org/wiki/doku.php?i..._configuration


    First I will show you how to compile a program destined for RAM using the new c library and sdcc. This is how most zx programs would be compiled:

    zcc +zx -vn -SO3 -clib=sdcc_ix --reserve-regs-iy --max-allocs-per-node200000 test.c -o test

    The output will be "test_CODE.bin" which is a binary that should be loaded at address 32768 and started with "RAND USR 32768". You will see below how the ORG can be changed. If you need to make a tap out of that, you can use appmake ("appmake +zx -b test_CODE.bin -o test.tap --org 32768 --blockname test").



    Now I will show you how to make a ROM. You should use one of the CRTs designed for IF2 cartridges only because if you choose an ORG of 0, it will put the z80 restarts, im1 and nmi service routines in the correct places. If you choose an ORG that is not zero, those things will not be added.


    Код:
    #include <arch/zx.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    #pragma output CRT_ORG_CODE = 0
    #pragma output CRT_ORG_DATA = 32768
    #pragma output CRT_ORG_BSS = -1
    #pragma output REGISTER_SP = 0
    
    
    void main(void)
    {
    printf ("Hello world!\n");
    printf ("\nTHIS TEST ROM\n");
    printf ("\n\n\nProgram end\n");
    while (1){ };
    }

    zcc +zx -vn -startup=32 -SO3 -clib=sdcc_ix --reserve-regs-iy --max-allocs-per-node200000 test.c -o test --list -m

    "--list" will create asm files for each translated c file. "-m" will produce symbols. You can add "--opt-code-size" to make the output a little bit smaller; the code size will be significantly smaller if your program uses 64-bit integers. If you are not running the rom interrupt routine, use "clib=sdcc_iy" instead of "-clib=sdcc_ix --reserve-regs-iy" to reduce the program size further. To use sccz80 as compiler instead of sdcc, use "clib=new" instead of "-clib=sdcc_ix --reserve-regs-iy".

    There will be three binary outputs: "test_CODE.bin", "test_DATA.bin" and "test_BSS.bin". The pragmas I put in the source code above choose some crt options. "CRT_ORG_CODE = 0" means code origin will be 0 (and the z80 restarts, im1, nmi will be included). "CRT_ORG_DATA = 32768" is where the initialized variables will be placed in RAM. "CRT_ORG_BSS = -1" means the zeroed variables will follow DATA in ram. To create the binary image, you must first compress the DATA section: "zx7 test_DATA.bin" and then append that to the code to generate the final binary: "copy /B test_CODE.bin+test_DATA.bin.zx7 test_OUT.bin" (windows). The final output "test_OUT.bin" is what should be loaded at address 0 and run from address 0. The crt will initialize the DATA section by decompressing its copy to address 32768 and it will then zero the BSS section before calling main.

    "REGISTER_SP = 0" will cause the crt to set SP=0 so that the stack will grow downward from the top of memory. These values are the defaults for zx if2 cartridges.

    One other thing: The heap will be initialized to occupy the space between the end of the BSS section and the bottom of the stack, giving the stack 512 bytes of space to grow. This behaviour and stack size can be changed with pragmas. In particular you can control the size of the heap with "#pragma output CLIB_MALLOC_HEAP_SIZE = 0". This zero value means don't create a heap but if you use a positive value > 14, a heap of that size will be created in the BSS section.

    The zx if2 crts will restart the program on exit unless CRT_ENABLE_RESTART is set to 0.



    I used "-startup=32" above. This chooses the 32-column driver for stdio. There are other choices "-startup=33" is the 32 column terminal with control codes. "-startup=36" is the 64 column terminal. "-startup=37" is the 64-column terminal with control codes. "-startup=40" is the fzx terminal with proportional fonts. "-startup=41" is the fzx terminal with control codes. "-startup=63" is no terminals.

    You can also write your own crt to make windows on screen or change the behaviour on program exit.


    z88dk's environment is quite sophisticated so there is a lot to know If you have questions, just ask. If you're wondering if you can do something the answer is yes you can
    Последний раз редактировалось Alcoholics Anonymous; 23.05.2016 в 04:11.

  3. #13
    Member
    Регистрация
    21.05.2006
    Адрес
    Canada
    Сообщений
    78
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    I will just quickly add that you can customize the library somewhat.

    For the new c library, the library configuration for the zx is located in z88dk/libsrc/_DEVELOPMENT/target/zx/clib_cfg.asm. You can modify that to choose between fast library code or small library code.

    In particular, you can opt out of individual printf and scanf converters. By default printf includes %duxonipsc,ld,lu,lx,lo,li,ln,lp and scanf includes %duxonipsc,ld,lu,lx,lo,li,ln,lp,[

    If you don't need some of those converters, disabling them can reduce program size. If you need float or longlong converters, you will have to enable them.

    Another thing you can do to reduce size is to get rid of the error strings by defining "defc __CLIB_OPT_ERROR = 0".

    If you change this file you must rebuild the library by running "Winmake zx" (windows) or "make TARGET=zx" (non-windows) from the directory z88dk/libsrc/_DEVELOPMENT


    The new C library's headers are beginning to be documented but it is still very far from complete. You can also see available library functions by examining the headers directory.

  4. #14
    Master
    Регистрация
    15.08.2009
    Адрес
    Чайковский
    Сообщений
    833
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alcoholics Anonymous Посмотреть сообщение
    Hi Anykey,
    Are you trying to create a binary destined for ROM?
    Да, я пытался сделать ROM для Reverse-U16.
    Искал, Си компилятор для Z80, а тут даже Speccy поддерживается.
    Пока только начал разбираться ( В Си не очень силен ).

    Еще вопрос, как к портам IO обращаться?
    Можно ли как в PIC микроконтроллерах (или архитектуры разные)?

    Можно ли произвольно задавать адрес и биты интерфейса SD-card?

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


    Profi v3.2 (SIMM 1024kB, Color CP/M, Turbo VG)
    Profi v3.2 256kB + PAL coder
    Плата ZXM Phoenix 1024kB + VGA converter
    ZX Evolution 4096kB + SSD-1Gb
    Плата Speccy 2010
    Плата Sprinter Sp2000s
    Плата Reverse U9 EP3C
    Плата Reverse U10 EP3C
    Плата Reverse U16 EP4CE22
    Плата Mist v1.31
    Terasic DE1
    Terasic DE1-SoC
    Terasic DE10-nano
    iCore 3
    [свернуть]

  5. #15
    Member
    Регистрация
    21.05.2006
    Адрес
    Canada
    Сообщений
    78
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Anykey Посмотреть сообщение
    Еще вопрос, как к портам IO обращаться?
    Можно ли как в PIC микроконтроллерах (или архитектуры разные)?
    sdcc calls i/o ports "special function registers". You can assign an sfr to each i/o port you need and then write or read from them as if they are regular variables:

    Код:
    __sfr __at 0x1f IO8;               // 8-bit i/o port at 0x1f
    __sfr __banked __at 0xfbfe IO16;   // 16-bit i/o port at 0xfefe
       
    void main(void)
    {
       volatile unsigned char a;
       
       a = IO8;       // read port IO8
       IO8 = 100;     // write port IO8
        
       a = IO16;      // read port IO16
       IO16 = 200;    // write port IO16
    }
    The translated asm "zcc +zx -vn -a -SO3 -clib=sdcc_iy --max-allocs-per-node200000 zzzz.c --c-code-in-asm"

    (An issue was fixed today that affects this code; make sure you are running a nightly build from May 24 or later)

    Код:
    ;zzzz.c:9: a = IO8;       // read port IO8
    	in	a,(_IO8)
    	ld	(ix-1),a
    ;zzzz.c:10: IO8 = 100;     // write port IO8
    	ld	a,0x64
    	out	(_IO8),a
    ;zzzz.c:12: a = IO16;      // read port IO16
    	ld	a,+((_IO16) / 256)
    	in	a,(((_IO16) & 0xFF))
    	ld	(ix-1),a
    ;zzzz.c:13: IO16 = 200;    // write port IO16
    	ld	a,0xc8
    	ld	bc,_IO16
    	out	(c),a
    Unfortunately sdcc has a known bug when reading i/o ports into a global variable.

    This:

    Код:
    __sfr __at 0x1f IO8;               // 8-bit i/o port at 0x1f
    
    volatile unsigned char a;
    
    void main(void)
    {
       a = IO8;       // read port IO8
    }
    Leads to a fatal compiler error. To read into a global variable you must read into a local first and then copy that local to the global.


    You can also do port i/o through function calls, see z80.h. All port i/o done through these function calls is 16-bit.



    The z80 i/o space is 16-bits but usually the bottom 8-bits select a device and most devices operate decoding the bottom 8-bits only. However some devices will use the bottom 8 bits to identify themselves as i/o target and then the top 8 bits to select a particular register. The z80's 16-bit i/o instructions (inir, indr, otir, otdr) support that view.



    Можно ли произвольно задавать адрес и биты интерфейса SD-card?
    You can, but if you are making this for the zx you have to consider ports taken by the zx itself and its common peripherals. The basic zx spectrum has the ULA mapped to all even port addresses so you must avoid those for your device. Kempston joystick is at 0x1f, the sound chip at other address (0xbffd, 0xfffd) and the russian machines will have their own ports too. So you really have to try to pick i/o addresses that will not interfere with ones already used.

  6. #16
    Master
    Регистрация
    15.08.2009
    Адрес
    Чайковский
    Сообщений
    833
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alcoholics Anonymous Посмотреть сообщение
    You can, but if you are making this for the zx you have to consider ports taken by the zx itself and its common peripherals. The basic zx spectrum has the ULA mapped to all even port addresses so you must avoid those for your device. Kempston joystick is at 0x1f, the sound chip at other address (0xbffd, 0xfffd) and the russian machines will have their own ports too. So you really have to try to pick i/o addresses that will not interfere with ones already used.
    Это я понимаю. Я про sdcard.h из библиотеки z88dk.
    Как можно использовать эти функции, если у меня SD-card на другом порту?

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


    Profi v3.2 (SIMM 1024kB, Color CP/M, Turbo VG)
    Profi v3.2 256kB + PAL coder
    Плата ZXM Phoenix 1024kB + VGA converter
    ZX Evolution 4096kB + SSD-1Gb
    Плата Speccy 2010
    Плата Sprinter Sp2000s
    Плата Reverse U9 EP3C
    Плата Reverse U10 EP3C
    Плата Reverse U16 EP4CE22
    Плата Mist v1.31
    Terasic DE1
    Terasic DE1-SoC
    Terasic DE10-nano
    iCore 3
    [свернуть]

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Member
    Регистрация
    21.05.2006
    Адрес
    Canada
    Сообщений
    78
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Anykey Посмотреть сообщение
    Это я понимаю. Я про sdcard.h из библиотеки z88dk.
    Как можно использовать эти функции, если у меня SD-card на другом порту?
    Ah, now I understand. I did not port sdcard.h so I will have to ask how portable it is. It looks like the programmer is supposed to supply two functions that access the sd card hardware directly but there are a couple of places in the code that write that information into ram so there may be something else going on too. The other problem is sdcard.h is part of the classic c library and not the new c library and it's written such that ram variables are mixed with rom code so it will have to be redone for the new c library if it is to be used in a ROM environment. That's not hard to do and I don't mind doing it for you if it turns out to be suitable once I get some information from the other developers.

  9. #18
    Master
    Регистрация
    15.08.2009
    Адрес
    Чайковский
    Сообщений
    833
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Было бы здорово иметь возможность работы с SD card,
    указав библиотеке к каким портам подключены MISO,MOSI,SCK и CS.
    И использовать несколько функций, как проверка, инициализация,
    получение информации о карте (File system, Size), чтение секторов,
    каталога, файлов и запись.

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


    Profi v3.2 (SIMM 1024kB, Color CP/M, Turbo VG)
    Profi v3.2 256kB + PAL coder
    Плата ZXM Phoenix 1024kB + VGA converter
    ZX Evolution 4096kB + SSD-1Gb
    Плата Speccy 2010
    Плата Sprinter Sp2000s
    Плата Reverse U9 EP3C
    Плата Reverse U10 EP3C
    Плата Reverse U16 EP4CE22
    Плата Mist v1.31
    Terasic DE1
    Terasic DE1-SoC
    Terasic DE10-nano
    iCore 3
    [свернуть]

  10. #19
    Member
    Регистрация
    21.05.2006
    Адрес
    Canada
    Сообщений
    78
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Yes I agree you should be able to specify what ports are used and how and you should be able to instantiate more than one sd interface if there is more than one.

    The code in the classic c lib is not completely ported yet. I believe the code came from OSCA and it was being modified to work with any i/o ports but after looking at it I think there is still a way to go to finish the job right.

    If you want to play with it, I can rewrite it so that it is ROM friendly. If I have some time this weekend I may look more closely at it and dig up some sdcard ref materials.

  11. #20
    Member
    Регистрация
    21.05.2006
    Адрес
    Canada
    Сообщений
    78
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Z88DK v1.99B Released at Sourceforge:
    https://sourceforge.net/projects/z88dk/

    It's been a year since the last release so it was time for another. This is another transitional release on the way to version 2.0 and hopefully we'll get there for the next one.

    Some notes:

    ==========================
    Z88DK - v1.99B 10 Jan 2017
    ==========================

    Z88dk is a development kit for z80 computers that contains the tools and assembly language libraries necessary to develop code in either C or assembly language for z80-based machines.

    Over 50 different z80 machines have CRTs in the toolkit, allowing C programs to be compiled for them out-of-the-box.

    There are two C compilers supported (sccz80 and sdcc), two independent C libraries included (the classic and new), an assembler/linker/librarian (z80asm), and a data compression tool (zx7).

    This is the second transition release in anticipation of v2.0.

    Install Instructions:
    https://www.z88dk.org/wiki/doku.php?...t#installation

    Home Page:
    https://www.z88dk.org/forum/
    Includes link to the nightly builds.

    Forum:
    https://www.z88dk.org/forum/forums.php

    Introduction to Compiling Using the Classic C Library:
    https://www.z88dk.org/wiki/doku.php
    Examples in z88dk/examples

    Introduction to Compiling Using the New C Library:
    https://www.z88dk.org/wiki/doku.php?id=temp:front
    Examples in z88dk/libsrc/_DEVELOPMENT/EXAMPLES

    Compiling for Generic z80 Embedded Systems Using the New C Library:
    https://www.z88dk.org/wiki/doku.php?...arget_embedded


    --8<----- list of changes below -----------------------


    =======
    PACKAGE
    =======

    * The win32 and osx packages are complete and now include the zsdcc & zsdcpp binaries. zsdcc is z88dk's customization of the sdcc compiler. Other users can compile zsdcc from source.

    * A VS2015 solution file is now available in z88dk/win32 for building all z88dk binaries except zsdcc & zsdcpp. Instructions for building zsdcc & zsdcpp can be found in the install instructions link above.


    ========================
    ZCC - Compiler Front End
    ========================

    * M4 has been added as an optional macro pre-processor. Any filename ending with extension ".m4" will automatically be passed through M4 and its output written to the original source directory with the ".m4" extension stripped prior to further processing. The intention is to allow source files like "foo.c.m4", "foo.asm.m4", "foo.h.m4" and so on to be processed by M4 and then that result to be processed further according to the remaining file extension.

    * In conjunction with the above, a collection of useful M4 macros has been started in "z88dk.m4" that can be included in any ".m4" file processed by zcc. Currently macros implementing for-loops and foreach-loops are defined.

    * List files ending with extension ".lst" can be used to specify a list of source files for the current compile, one filename per line. The list file is specified on the compile line with prefix @ as in "@foo.lst". List files can contain any source files of any type understood by zcc and individual lines can be commented out with a leading semicolon. Paths of files listed in list files can be made relative to the list file itself (default) or relative to the directory where zcc was invoked (--listcwd). List files can list other list files, identified with leading '@'.

    * zcc now processes all files it is given to the final output file type specified. For example, with "-E" specified, all listed .c files will be run through the C pre-processor individually and all output copied to the output directory. Previous to this, only the first file listed was processed unless a binary was being built.

    * -v gives more information on what steps zcc takes to process each source file.

    * -x now builds a library out of the source files listed.

    * -c by itself will generate individual object files for each input source file. However, if -c is coupled with an output filename as in "-o name", a single consolidated object file will now be built instead of individual ones. The intention is to provide a means to generate identical code in separate compiles by allowing this single object file to be specified on different compile lines.

    * Better error reporting for source files with unrecognized types.

    * Better parsing for compile line pragmas; pragma integer parameters can now be in decimal, hexadecimal or octal.

    * -pragma-include added to allow a list of compile time pragmas to be read from a file as in "-pragma-include:zpragma.inc". This way projects can consolidate pragmas in one location; this is especially important for the new c library which uses pragmas extensively to customize the crt.

    * -pragma-export added, is similar to -pragma-define but the assembly label defined as a constant on the compile line is made public so that its value is visible across all source files.

    * --list will generate ".lis" files for each source file in a compile to a binary. The ".lis" file is an assembly listing of source prior to input to the linker.

    * --c-code-in-asm causes C code to be interspersed as comments in any generated assembly listing associated with C source files.

    * ".s" files are now understood by zcc to be asz80-syntax assembly language source files. This allows sdcc project files written in assembly language to be assembled by z88dk. asz80 mnemonics are non-standard so zcc attempts to translate to standard zilog mnemonics before assembling. You can see the translation to standard zilog form by using "-a" on a compile line. This is still a work-in-progress feature.

    * --no-crt allows compiles to proceed without using the library's supplied crt for a target. The first file listed on a compile line will stand in as the crt and will be responsible for initialization and setting up the memory map.

    * Temporary files are always created in the temp directory. The option "-notemp" has been removed.

    * Library and include search paths have been fixed to honour the order specified on the compile line. This allows the user to override library functions when desired.

    * Source files are now processed from their original location so that includes can be properly resolved. Previously this was only done for .c files but this now applies to other file types.

    * clang/llvm compilation is in an experimental state.

    Known issues:

    * Spaces in paths or filenames can be a problem.

    * When --c-code-in-asm is active, unicode characters from .c source files appearing as comments in translated asm may cause the tools to crash.


    ==========================
    SCCZ80 - Native C Compiler
    ==========================

    * Correct floating point constant handling.

    * New __SAVEFRAME__ function decorator to allow saving of ix during a function call.

    * -standard-escape-chars to make \n and \r output standard character codes


    ========================================
    ZSDCC - Customization of SDCC C Compiler
    ========================================

    * Updated to SDCC 3.6.5 #9824.

    * SDCC's native C pre-processor is now used so that line numbers corresponding to reported errors are accurate.

    * Peephole-z80 fixed to accurately report registers affected by instructions, allowing accurate application of peephole rules.

    * inSequence('stride' %1 %2 %3 ...) added as peephole rule qualifier to allow testing whether consecutive bytes in memory are being accessed.

    * Peephole-z80 made aware of z88dk special functions which represent code inlined by the library.

    * Approximately 300 new peephole rules added to the aggressive peephole set (-SO3).

    * Peephole rules added to fix some known code generation bugs and to fix SDCC's critical sections for nmos processors.

    * --opt-code-size now significantly reduces code size for programs using 32-bit longs, 64-bit longlongs and floats.

    * chars have been made unsigned by default. Use --fsigned-char to change to signed.

    * For loops can now declare variables in the initializer statement.

    * An rodata section has been properly implemented so that all constant data generated by sdcc is assigned there.


    =====================================
    Z80ASM - Assembler, Linker, Librarian
    =====================================

    * Handle input files more predictably: link .o files; assemble any other extension; append a .asm or .o option to the file name to allow just the basename.

    * Make a consolidated object file with -o and not -b: all the object modules are merged, the module local symbols are renamed <module>_<symbol>

    * Link the library modules in the command line sequence (it was depth-first).

    * Add directory of assembled file to the end the include path to allow includes relative to source location.

    * Remove all generated files at start of assembly to remove files from previous runs.

    * Remove deprecated directives: XREF and LIB (replaced by EXTERN), XDEF and XLIB (replaced by PUBLIC), OZ (keep CALL_OZ).

    * Rename DEFL to DEFQ to reserve DEFL for macro variables; rename DS.L by DS.Q

    * Constants for section sizes: prune empty sections, rename ASMHEAD, ASMTAIL and ASMSIZE to __head, __tail and __size respectively, rename ASM<HEAD|TAIL|SIZE>_<section_name> to __<section_name>_<head|tail|size>

    * Environment variables no longer used: Z80_OZFILES, Z80_STDLIB

    * Command line option -r, --origin: accept origin in decimal or hexadecimal with '0x' or '$' prefix

    * Command line options: -i, -x: require a library name

    * Command line options: remove -RCMX000, keep only --RCMX000

    * Command line options: remove -plus, keep only --ti83plus

    * Command line options: remove -IXIY and --swap-ix-iy, keep --IXIY

    * Command line options: remove --sdcc, -nm, --no-map, -ng, --no-globaldef, -ns, --no-symtable, -nv, --no-verbose, -nl, --no-list, -nb, --no-make-bin, -nd, --no-date-stamp, -a, --make-updated-bin, -e, --asm-ext, -M, --obj-ext, -t

    * Make symbol files, map files and reloc files optional; do not merge symbols in the list file; do not paginate and cross-reference symbols in list file; rename list file to file.lis (@file.lst is used as project list)

    * Unify format used in map files, symbol files and global define files, output list of symbols only once.

    * Include symbols computed at link time in the global define file.

    * Simplify output of --verbose


    ================================================== =========
    APPMAKE - Processes Output Binaries to Target Suitable Form
    ================================================== =========

    * +rom can now generate binaries for ROM chips mapped into a specific address range.

    * +sms now generates bankswitched .sms files as output.

    * +zx now has option to generate headerless .tap files.

    * Appmake now understands three compile models -- ram (destined for ram, no stored data section), rom (destined for rom, stored data section is a copy) and compressed rom (destined from rom, stored data section is compressed) -- and will form output files accordingly.


    =================
    CLASSIC C LIBRARY
    =================

    * SDCC can now be used to compile using the classic library.

    * Rewritten and modular printf core, added (v)snprintf.

    * Rewritten and modular scanf core.

    * Ports are now section aware.

    * Support for compressed data section model.

    * Support for copied data section model.

    * User overridable fputc_cons.

    * New target: Microbee. Support for various GFX modes and 1 bit sound.

    * New target: Robotron kc. Support for various GFX modes and 1 bit sound.

    * New target: z1013. Support for various GFX modes and 1 bit sound.

    * New target: z9001. Support for various GFX modes and 1 bit sound.

    * CP/M Plus on Spectrum.

    * CP/M extenstions forced to upper case.

    * CP/M extensions improved on Aussie Byte, trs-80 and Epson PX.

    * GFX Library: improved the vector rendering functions, now bigger pictures can be drawn and higher resolutions are supported. Various fixes.

    * Custom text configuration (font, resolution) can be done at compile time for targets with ansi VT support on graphics display.


    =============
    NEW C LIBRARY
    =============

    * 64-bit integers are now fully supported in the library.

    * The fprintf/fscanf cores can now have conversion specifiers individually enabled or disabled at compile time. This allows the printf/scanf cores to be tailored to the minimum size required.

    * fprintf %aefg precision formatting corrected.

    * Intrinsics have been introduced as a method to inline assembly code without disturbing optimization. This provides a means to insert assembly labels (whose addresses will appear in map files), simple assembly instructions such as "di" and "ei", and atomic loads/stores into C code without affecting the compiler's optimizer. See https://www.z88dk.org/wiki/doku.php?id=libnew:intrinsic

    * The library has had a preserves_registers attribute attached to every function that informs sdcc which registers will not be affected by a library call and allows sdcc to generate better code around library calls.

    * aplib added as another data decompression utility.

    * setjmp/longjmp state increased to include the value of IY for sdcc compiles. This was necessary as sdcc sometimes requires the value of IY to be preserved at points in the program.

    * New target: rc2014 (preliminary). This target is still being developed by rc2014 users.

    * New target: Sega Master System. The target is able to automatically create bankswitched rom cartridges with signatures.

    * ZX Spectrum target: interfaces to the bifrost and nirvana multicolour sprite engines added.

    * The CRT startup code has been made more flexible, allowing a wide range of features to be selected via pragmas at compile time. See https://www.z88dk.org/wiki/doku.php?..._configuration

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Testers for new z88dk C library
    от Alcoholics Anonymous в разделе RST#38
    Ответов: 0
    Последнее: 27.12.2014, 04:32
  2. Сборка z88dk под OS X
    от foxweb в разделе Программирование
    Ответов: 0
    Последнее: 21.02.2014, 00:21
  3. Forever release
    от Sinus в разделе Демо
    Ответов: 9
    Последнее: 13.05.2008, 04:49
  4. BASin Release 13a
    от SGO в разделе Эмуляторы
    Ответов: 4
    Последнее: 26.12.2006, 15:58
  5. SP1 for Z88DK
    от Alcoholics Anonymous в разделе RST#38
    Ответов: 7
    Последнее: 30.06.2006, 17:23

Ваши права

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