[[start]]

This wiki is being migrated to http://www.github.com/z88dk/z88dk/wiki

 

Differences

This shows you the differences between two versions of the page.

start [2019/09/29 00:42]
dom
start [2020/04/19 20:28] (current)
dom
Line 5: Line 5:
z88dk is a collection of software development tools that targets z80 machines.  It consists of a C compiler, a set of libraries implementing the C standard library, an assembler / linker and a variety of utilities for profiling and generating executables in a number of formats.  Development in C, assembly language or a mixture of the two is directly supported. z88dk is a collection of software development tools that targets z80 machines.  It consists of a C compiler, a set of libraries implementing the C standard library, an assembler / linker and a variety of utilities for profiling and generating executables in a number of formats.  Development in C, assembly language or a mixture of the two is directly supported.
-The name z88dk originates from the time when the project was founded and targetted only the Cambridge z88 portable.  Today z88dk directly supports [[https://github.com/z88dk/z88dk/wiki/Platform|more than seventy z80 targets]] with the level of library support for each target varying with interest shown by users.  It is possible to add new targets with relative ease. +The main contents of this wiki can now be found at http://github.com/z88dk/z88dk/wiki
- +
-z88dk is known to run on a wide variety of platforms.  Binary releases are available for Win32 and MacOS X and packages are available for many Linux distributions. +
- +
-There are a few things that make z88dk unique: +
- +
-  * It comes with built-in support for [[https://github.com/z88dk/z88dk/wiki/Platform|more than seventy z80 targets]].  This includes customized libraries and crts so that programs can be compiled for the supported machines out-of-the-box. +
- +
-  * The libraries are extensive.  The aim is not only compliance with a large subset of C11 but also to supply useful specialized non-standard libraries. +
- +
-  * The majority of the libraries are written in assembly language.  This makes them fast and small.  C compiled code is in general three to five times larger and slower than hand-assembled code.  By supplying libraries written in assembler, executables generated by z88dk are both faster and smaller than those generated by other C compilers.  Make use of the libraries to gain these advantages! +
- +
-[[z88dk logo|About the z88dk logo]] +
- +
- +
-====== License ====== +
- +
-** [[license|The Clarified Artistic License]] ** +
- +
-The intent behind adoption of this license: +
- +
-1. Any modifications to z88dk eg in the form of new targets, toolchain improvements, bug fixes, extra functionality etc should be fed back to the project so that every user can benefit. +
- +
-2. You can use the compiler to generate products which are sold commercially and distributed for profit. +
- +
-3. We totally indemnify ourselves against any damage caused by deployment of the kit or any product generated by the kit. We don't guarantee that the software is fit for any purpose in any way whatsoever. +
- +
-Some modules have been imported into the project from other sources.  They may be covered under other licenses that are documented with their source code.  However in all cases, there is no restriction on generating software that can be sold commercially for profit. +
- +
- +
-====== Documentation ====== +
- +
-  - **[[https://github.com/z88dk/z88dk/wiki/installation|Installation]]** +
-  - **An Introduction to Using z88dk** +
-    * {{ptfdep.jpg|}} +
-    * Environment +
-    * [[zcc|The Compiler Front End: ZCC]] +
-    * ([[https://github.com/z88dk/z88dk/wiki/Tool-z80asmt|The Assembler and Linker (z80asm)]]) +
-    * [[https://github.com/z88dk/z88dk/wiki/Tool---copt|The Peep-Hole Optimizer]] +
-    * [[https://github.com/z88dk/z88dk/wiki/tools|Various Tools Included with z88dk]] +
-    * [[https://github.com/z88dk/z88dk/wiki/Classic:-Building-the-libraries|Building the z80 Libraries]] +
-  - **C Programming with z88dk** +
-    * Basic Types (char, int, long, far *, float, double) +
-    * [[https://github.com/z88dk/z88dk/wiki/Suite-deficiencies|Suite deficiencies]] +
-    * [[https://github.com/z88dk/z88dk/wiki/debugging|Debugging Tips]] +
-    * [[https://github.com/z88dk/z88dk/wiki/WritingOptimalCode|Optimization hints]] +
- +
-======= Library Documentation ======= +
-  - **Platform Independent Library Functions** +
-    * {{pli.jpg|}} +
-    * [[library:adt|Abstract Data Types]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/adt.h|adt.h]]) +
-    * [[library:algorithm|Algorithm]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/algorithm.h|algorithm.h]]) +
-    * [[library:conio|conio.h (MS-DOS compatibility)]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/conio.h|conio.h]]) +
-    * [[library:debug|Debug]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/debug.h|debug.h]]) +
-    * [[library:lib3d|Fast 3D rotation library]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/lib3d.h|lib3d.h]]) +
-    * [[library:input|Input]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/input.h|input.h]]) +
-    * [[library:interrupts|Interrupts]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/im2.h|im2.h]]) +
-    * [[library:maths|Maths]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/maths.h|maths.h]],[[https://raw.githubusercontent.com/z88dk/z88dk/master/include/float.h|float.h]]) +
-    * [[library:memory allocation|Memory Allocation]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/malloc.h|malloc.h]], [[https://raw.githubusercontent.com/z88dk/z88dk/master/include/balloc.h|balloc.h]]) +
-    * [[library:microc|microc.h (Micro C compatibility)]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/microc.h|microc.h]]) +
-    * [[library:monographics|Monochrome Graphics]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/graphics.h|graphics.h]]) +
-      * [[library:bgi|Turbo C BGI emulation functions]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/bgi.h|bgi.h]]) +
-      * [[library:wingui|GUI functions (windowing)]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/gui.h|gui.h]]) +
-      * [[library:xlib|Xlib emulation]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/X11/X.h|X.h]],[[https://raw.githubusercontent.com/z88dk/z88dk/master/include/X11/Xlib.h|Xlib.h]],[[https://raw.githubusercontent.com/z88dk/z88dk/master/include/X11/Xos.h|Xos.h]],[[https://raw.githubusercontent.com/z88dk/z88dk/master/include/X11/Xutil.h|Xutil.h ]],[[https://raw.githubusercontent.com/z88dk/z88dk/master/include/X11/Xz88dk.h|Xz88dk.h]]) +
-    * [[library:serial|RS232 Serial]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/rs232.h|rs232.h]]) +
-    * [[library:sound|Sound]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/sound.h|sound.h]]) +
-    * [[library:psg|Programmable Sound Generator (PSG)]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/psg.h|psg.h]]) +
-    * [[library:sprites|Sprites]] +
-      * Hardware +
-        * Amstrad CPC+ +
-        * MSX1 +
-      * Software +
-        * [[library:sprites:sp1|SP1]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/spectrum-sp1.h|sp1.h]]) +
-        * [[library:sprites:monosprites|Monochrome graphics sprite library]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/games.h|games.h]]) +
-    * [[library:fcntl|Low Level file I/O]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/fcntl.h|fcntl.h]]) +
-    * [[library:stdio|Standard I/O]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/stdio.h|stdio.h]]) +
-    * [[library:new_stdio|New Standard I/O]] +
-    * [[library:stdlib|Standard Library]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/stdlib.h|stdlib.h]]) +
-    * [[library:string|String Functions]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/string.h|string.h]]) +
-    * [[library:time|Time, clock and date functions]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/time.h|time.h]]) +
-  - **Platform Dependent Library Functions** +
-    * {{pld.jpg|}} +
-    * [[library:abc80|Luxor ABC 80]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/abc80.h|abc80.h]]) +
-    * [[library:abc800|Luxor ABC 800]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/abc800.h|abc800.h]]) +
-    * [[library:enterprise|Enterprise 64/128]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/enterprise.h|enterprise.h]]) +
-    * [[library:cpm|CP/M]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/cpm.h|cpm.h]]) +
-    * [[library:c128|Commodore 128]] +
-      * [[library:c128:sgtools|SG Tools library by Steve Goldsmith]] +
-    * [[library:msx|MSX]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/msx.h|msx.h]]) +
-      * [[library:msx:gfx|'gfx' library by Rafael de Oliveira Jannone]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/msx/gfx.h|msx/gfx.h]]) +
-    * [[library:newbrain|Grundy NewBrain]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/newbrain.h|newbrain.h]]) +
-    * [[library:zx81|Sinclair ZX 81]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/zx81.h|zx81.h]]) +
-      * [[library:graylib|Gray scale LCD library]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/gray.h|gray.h]]) +
-    * [[library:zxspectrum|Sinclair ZX Spectrum]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/spectrum.h|spectrum.h]]) +
-      * [[library:zxspectrum:zxlowgfx|Low resolution color graphics]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/zxlowgfx.h|zxlowgfx.h]]) +
-      * [[library:zxspectrum:currah|Currah uSpeech support]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/zxcurrah.h|zxcurrah.h]]) +
-      * [[library:zxspectrum:zxopus|Opus Discovery]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/zxopus.h|zxopus.h]])  +
-      * [[library:zxspectrum:zxinterface1|ZX Interface 1]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/zxinterface1.h|zxinterface1.h]]) +
-      * [[platform:zxvgs|The ZXVGS system]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/zxvgs.h|zxvgs.h]]) +
-      * [[library:zxspectrum:fcntl|Available fcntl drivers]] +
-    * [[library:x1|Sharp X1]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/x1.h|x1.h]]) +
-    * [[library:sos|S-OS]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/sos.h|sos.h]]) +
-    * [[library:sharpoz|Sharp OZ700 family, functions from the OZ development kit]] +
-    * [[TI calculators]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/ti.h|ti.h]]) +
-      * [[library:graylib|Gray scale LCD library]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/gray.h|gray.h]]) +
-    * [[library:z88|Z88]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/z88.h|z88.h]]) +
-    * [[library:vz200|VZ 200]] ([[https://raw.githubusercontent.com/z88dk/z88dk/master/include/vz.h|vz.h]]) +
-  - **Third Party Libraries** +
-    * {{extlib.gif|}} +
-    * (now integrated) [[http://www.worldofspectrum.org/infoseekid.cgi?id=0027996|ZX7, an optimal LZ77/LZSS data compressor]] ([[ftp://ftp.worldofspectrum.org/pub/sinclair/games-info/z/ZX7.txt|ZX7.txt]]) +
-    * [[http://www.amstrad.es/programacion/c/|Sprite Library and more for Amstrad CPC]] ([[http://code.google.com/p/cpcrslib/|cpcrslib v.2]]) +
-    * [[http://crococode.free.fr/pages/_crocolib.php|Crocolib, very low-level hardware support for Amstrad CPC/CPC+]] +
-    * [[http://www.worldofspectrum.org/infoseekid.cgi?id=0027405|BIFROST* ENGINE, Rainbow Graphics (Multicolor tiles) for the ZX Spectrum]] ([[ftp://ftp.worldofspectrum.org/pub/sinclair/games-info/b/BIFROSTENGINEV1.2.txt|BIFROSTENGINEV1.2.txt]]) +
-    * [[http://www.zxshed.co.uk/sinclairfaq/index.php5?title=NIRVANA_Engine|NIRVANA multicolor engine for the ZX Spectrum]] +
- +
-======= Advanced Topics ======= +
-  - **Mixing C and z80 Assembler** +
-    * {{mixcz80b.jpg|}} +
-    * Start-Up Code +
-    * [[https://github.com/z88dk/z88dk/wiki/Inline-assembler|The Inline Assembler]] +
-    * [[https://github.com/z88dk/z88dk/wiki/The-Stack-Frame|The Stack Frame (Parameter Passing)]] +
-    * [[usage:symnames|Translation of C Names to ASM Names (Accessing C Variables from z80 Asm)]] +
-    * [[https://github.com/z88dk/z88dk/wiki/Classic--Pragmas|Pragma Directives]] +
-    * [[usage:creating_libaries|Sharing Code by Creating Libraries]] +
-  - **Miscellaneous** +
-    * {{bulb.jpg|}} +
-    * [[porting:retargeting|Adding a New z80 Target]] +
-    * [[https://github.com/z88dk/z88dk/wiki/FarMemory|Handling More Than 64k]] +
-    * [[https://github.com/z88dk/z88dk/wiki/8080toz80|Importing routines written in 8080 assembly mnemonics]] +
-    * [[https://github.com/z88dk/z88dk/wiki/relformat|Using CP/M libraries in REL format with z88dk]] +
-      * [[https://github.com/z88dk/z88dk/wiki/libraries|Linking external libraries]] +
-      * [[https://github.com/z88dk/z88dk/wiki/programs|Linking Basic, Fortran, Pascal Programs with z88dk]] +
- +
-======= Examples ======= +
-      * {{writetyper.jpg|}} +
-      * [[examples:snippets|Code Snippets]] +
-      * [[examples:projects|Completed Projects with Screenshots]] +
- +
-======= Development Branch ======= +
- +
-  *{{:dev-branch.gif|}} +
- +
-The C libraries, assembler and compiler in z88dk are currently seeing significant updates. +
- +
-Among the changes are: +
- +
-  * z80asm, z88dk's assembler / linker, has been updated to support sections. +
-  * zcc, z88dk's project builder, has been modified to allow C compilation using one of two selectable C compilers: z88dk's native sccz80 and sdcc-z80. +
-  * A new c library is being completely rewritten in assembly language to be as fully C11 compliant as is reasonable. +
- +
-The new clib will exist in parallel with the current clib and selection of one or the other will be made with a compile line switch. +
- +
-You can read more about it and find details on how to try it [[temp:front|here]]. +
- +
-======= Supported Targets ======= +
- +
-Supplied by z88dk: +
- +
-      * [[https://github.com/z88dk/z88dk/wiki/Platform|Overview]] +
-     +
- +
-External projects: +
- +
-      * [[https://www.allthingsmicro.com/index.php/tutorials/creating-a-z80-development-environment|MK2 Z80 board project by Derek Baker at allthingsmicro.com]] +
-      * [[http://www.zilog80.eu/|MK3 Z80 board project by Stefano Bianchini]], based on MK2 +
-      * [[https://groups.google.com/forum/#!topic/rc2014-z80/cGiPYtc4O8o|rc2014 z80 hobby board]] +
-      * [[http://wiki.s1mp3.org/Loadram|S1MP3 MP3 Players]] +
-      * [[https://www.hackster.io/feilipu/yet-another-z180-yaz180-project-864253|YAZ180 hobby board]] +
- +
-======= Unsupported Targets ======= +
-      * [[https://github.com/z88dk/z88dk/wiki/Platform---Unsupported|Not yet supported]] +
-       +
- +
-====== Links ====== +
- +
-  * [[http://sourceforge.net/projects/z88dk|z88dk Sourceforge Page]] +
-  * [[http://www.rst38.org.uk/zsock/|ZSock]] (z88) The z88 TCP/IP stack - the reason why z88dk was started in the first place +
-  * [[http://www.worldofspectrum.org/z88forever/|z88 forever]] (z88) The site for everything z88 related  +
-  * [[http://www.cobb.uk.net/Rex/|Graham's Rex 6000 Notes]] (REX) Graham has written some extremely nice REX libraries +
-  * [[http://8bit.yarek.pl/tool/pc.borlandide/|z88dk with Borland C IDE]] (REX) A site telling you how to use z88dk with the Borland 3.1 IDE. +
-  * [[http://www.opencores.org/project,t80,overview|T80 Z80 CPU Core]] (embedded) Daniel Wallner's Z80 core which is supported by z88dk  +
-  * [[http://web.archive.org/web/20080705154048/http://www.circuitcellar.com/zilogdtd2000/second.htm|eZ-Stunt]] (embedded) Uses z88dk to target a z80s183 to do, well, [[http://web.archive.org/web/20100308063032/http://www.circuitcellar.com/zilogdtd2000/abstract/eZstunt.htm|take a look!]]  [[http://www.geocities.ws/robert_lacoste/download/ups0003.PDF|(+schematics)]] +
-  * [[http://spectrum.alioth.net/doc/index.php/Spectranet|Spectranet]] (ZX Spectrum) A project based around the W5100 IC to add ethernet capability to spectrums.  Software is targetted at asm, basic and C programmers using a socket API. +
-  * [[http://www.andykellett.com/category/software/z88dk/ | Music projects based on z88dk (??)]] +
-  * [[http://www.octoate.de/wp/articles/german/entwickeln-mit-z88dk/|Entwickeln mit z88dk]] +
-  * [[http://www.octoate.de/wp/tag/z88dk/ | z88dk related articles and game announcements for the Amstrad CPC]] (flip also to [[http://www.octoate.de/wp/tag/z88dk/page/4/|older pages]]) +
-  * [[http://www.worldofspectrum.org/infoseekpub.cgi?regexp=^The+Mojon+Twins$|The unbelievable ZX Spectrum titles list]] by [[http://www.mojontwins.com/?s=z88dk|"The Mojon Twins"]] (C sources are available) +
-  * [[http://www.mojontwins.com/|The Mojon Twins Dome]], z88dk being used in a great way " +
-  * [[http://www.worldofspectrum.org/infoseekpub.cgi?regexp=^Ubhres+Productions$|"Ubhres Productions" titles list]] (C sources are available) +
-  * [[http://www.worldofspectrum.org/infoseekpub.cgi?regexp=^Digital+Prawn$|"Digital Prawn" titles list]] (C sources are available) +
-  * [[http://www.allthingsmicro.com/tutorials/creating-a-z80-development-environment|Minimalistic tutorial at AllThingsMicro]], part of a [[http://www.allthingsmicro.com/projects/build-a-z80-based-computer|self-built z80 board]] project  +
-  * [[http://wischner.blogspot.it/|Yet Another tutorial on the z88dk and the ZX Spectrum for Linux]] +
-  * [[http://steveproxna.blogspot.it/2014/09/z88dk-and-programming-setup.html|Tutorial about using z88dk on CygWin to develop for the Sega Master System]] at "stevepro studios" +
-  * [[http://wiki.speccy.org/cursos/z88dk/indice|Curso de Z88DK de MagazineZX (z88dk course in Spanish)]] +
-  * [[http://www.latticesemi.com/~/media/LatticeSemi/Documents/ApplicationNotes/L/NZ/LatticeXPTri-SpeedEthernetMACDemo.PDF|Lattice Tri-Speed Ethernet Media Access Controller (TSMAC) IP demo]] Copyright 2006 Lattice Semiconductors, it includes a tutorial on how to use z88dk and uIP with their hardware +
-  * [[https://jacobielectronix.wordpress.com/category/zalt|ZALT, a Z80 computer prototype]], it also aims to provide a specific [[https://github.com/obiwanjacobi/Zalt/tree/master/Source/z88dk_target|z88dk extension]] +
- +
- +
-====== z88dk related articles in online magazines ====== +
- +
-  * [[http://futurice.com/blog/build-environment-like-its-1986|futurice]] +
-  * [[http://www.speccy.org/magazinezx/|Magazine ZX (Spanish)]] +
-  * [[ftp://ftp.cmo.de/pub/Computer/Amstrad_CPC/CPC-Magazine/Deutschland/CPC-Forever/|CPC Forever (German)]] +
-  * [[http://zxspectrum.altervista.org/notizie.htm|Sinclair ZX Notizie (Italian)]] +
-  * [[http://www.wolfotakar.com/HAX/HAX-3.pdf|HAX #3, Feb 2008 (Italian)]] +
-  * [[http://zxf.magazine.googlepages.com/home|ZX Format (Article about "minesweeper" in #6, English)]] +
-  * [[http://shaunbebbington.blogspot.com/2012/01/starting-with-c.html|"Starting With C"  in "My gaming blog"]] +
-  * [[http://tcyr.wordpress.com/?s=z88dk|Search the z88dk stuff on "Tetas, Culos y Retroinformática" (Spanish)]] +
- +
-====== z88dk related videos ====== +
- +
-  * [[https://www.youtube.com/watch?v=-ECnN7jdgA4|ZX Spectrum twitter client]] +
-  * [[https://www.youtube.com/watch?v=Y4PRiQq5VZs|Networking with a Sinclair ZX81: Network Filemanager and Web-Browser]] +
-  * [[https://www.youtube.com/watch?v=-ekUpkBVr8g|Matrix digital rain on ZX Spectrum]] +
-  * [[https://www.youtube.com/watch?v=pQUt7r5OMC8|Death Star running on the Jupiter Ace Computer]] +
-  * [[https://www.youtube.com/watch?v=HFGxFIgmwqg|MSX Sprite library test]] +
-  * [[https://www.youtube.com/watch?v=i1sAPT6IZ3U|MicroMan game running on the MC-1000]] +
-  * [[https://www.youtube.com/watch?v=7c0_q7OQ-YM|Radastán experiments with z88dk and his new game]] +
-  * [[https://www.youtube.com/watch?v=L322tYnXdiU|Double buffer implementation for ZX-Uno (ZX-SPectrum FPGA Clone) in Radastian Mode using Z88DK v199a]] +
-  * [[https://www.youtube.com/watch?v=ceDnamhnZio|Z88dk compile for Olduino/Z]] +
- +
- +
- +
-====== Support ====== +
- +
-{{:z88dk-qr.gif|}} +
- +
-  * The main [[http://www.z88dk.org/|z88dk page]] can be a source of more information. +
-  * The z88dk mailing lists can be joined via the [[http://sourceforge.net/projects/z88dk/|Sourceforge Project page]]. +
-  * The current [[https://github.com/z88dk/z88dk/|z88dk git repository]] can be browsed online. +
-  * The [[http://www.z88dk.org/forum/forums.php|forums]] are the best way to get a quick response from the developers and other users. +
 
start.txt · Last modified: 2020/04/19 20:28 by dom
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki