1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-27 00:29:31 +00:00
Commit Graph

821 Commits

Author SHA1 Message Date
polluks
a29a1b0a59 Added more purple (rain) 2022-01-31 02:18:01 +01:00
Sven Michael Klose
666f266e90 Move strnlen() to non-ANSI section. 2021-12-25 14:21:47 +01:00
Sven Michael Klose
c9ccc82b9f strnlen(): Add comment with POSIX standard. 2021-12-25 09:12:13 +01:00
Sven Michael Klose
921e549172 Add standard C library function strnlen(). 2021-12-24 23:44:57 +01:00
Oliver Schmidt
8b0de8a931
Merge branch 'master' into master 2021-11-23 22:56:51 +01:00
Wayne Parham
11d81b1f43 Stylistic changes 2021-06-15 16:39:28 -05:00
Christian Groessler
c90c3c9133 stdio.inc,stdio.h: set CBM PATH_MAX/FILENAME_MAX value to 255
Some parts of the runtime library cannot handle larger paths.
2021-06-10 20:08:58 +02:00
Christian Groessler
ae9101961e stdio.inc,stdio.h: increase CBM PATH_MAX/FILENAME_MAX value to 256+1 2021-06-10 20:08:58 +02:00
Christian Groessler
9a523abbfb limits.h: provide PATH_MAX
- stdio.h: define FILENAME_MAX to PATH_MAX
- stdio.h, stdio.inc: increase FILENAME_MAX/PATH_MAX for Atari
  (For DOSes with subdirectory support.)
2021-06-10 20:08:58 +02:00
Wayne Parham
7d6541274d Changes to I/O access 2021-06-09 10:23:42 -05:00
Wayne Parham
33af3d7997 sym1.h updates 2021-06-06 23:53:53 -05:00
Wayne Parham
6c4c959141 Sym-1 lib changes 2021-06-06 21:28:03 -05:00
Greg King
6bedade593 Fixed the creativision function prototypes.
Added const to a pointer parameter.
2021-05-29 08:37:38 -04:00
Wayne Parham
ae9434e02e seven-segment display update 2021-05-23 15:22:33 -05:00
mrdudz
6d560f4236 change prototype for GraphicsString() to void __fastcall__ GraphicsString(const void *myGfxString); 2021-05-18 15:16:14 +02:00
mrdudz
5fc9d3f048 change driver _install calls from taking "void*" to "const void*" 2021-05-16 22:57:28 +02:00
Wayne Parham
f81aefe8bd Synertek Systems Sym-1 config files 2021-05-09 17:13:24 -05:00
Oliver Schmidt
07bd5089ec Define CLOCKS_PER_SEC as _clocks_per_sec() if _clocks_per_sec() is actually available.
There are programs checking for the existence of CLOCKS_PER_SEC before usage. We don't want to mislead them.
2021-05-09 19:27:33 +02:00
Oliver Schmidt
5d84a4ba13 Removed non-ASCII chars. 2021-04-19 16:06:10 +02:00
Oliver Schmidt
f272bc8f42 Removed non-ASCII chars. 2021-04-19 15:50:52 +02:00
Greg King
ffc30c0c6e Added RAM_BANK and ROM_BANK macro definitions to cx16.h header. 2021-04-18 01:39:44 -04:00
acqn
31c1172a3a zlib: Use correct (un)signedness of char in prototypes and functions.
Also ensure we are using the same constness qualifiers.
2021-03-30 19:41:20 +02:00
mrdudz
7d528d9eb0 fix typo 2021-03-19 22:26:49 +01:00
jede
41f796bbe1 left and right mask are inverted : fix in telestrat.h 2021-03-15 21:10:29 -04:00
jede
872739b5f4 Fix comments, return line and bordercolor return 2021-03-03 22:14:29 +01:00
jedeoric
ba4310f589
Merge branch 'master' into master 2021-03-01 23:03:34 +01:00
jede
02e52fe24d Fix many bugs 2021-03-01 22:33:12 +01:00
Christian Groessler
b12758fe53 include/atari.h: fix typo in _setcolor() prototype 2021-02-16 14:07:47 +01:00
Greg King
98f8064b83 Made the directory functions compatible with the Commander X16's DOS.
It's directory listing's last line says, "mb free."
2021-02-15 08:56:31 -05:00
baktrasf
2e9bada1f2 Atari 5200 OS header refinements 2020-12-25 01:35:38 +01:00
baktrasf
1c72da4904 Add operating system symbols for the Atari 5200 target 2020-12-25 01:35:38 +01:00
Polluks
c59e8277ae Added prototype 2020-11-18 10:28:19 +01:00
Christian Groessler
262631039d atari.h, atari5200.h: style fixes 2020-10-28 21:12:32 +01:00
Christian Groessler
3537210674 add waitvsync() for atari and atari5200 2020-10-28 21:12:32 +01:00
Oliver Schmidt
f723147f04 Streamlined clock rate handling.
* Docs say that CLK_TCK is an obsolete alias of CLOCKS_PER_SEC so there's no point in individual definitions.
* All targets determining the clock rate at runtime can use a common handling.
2020-10-25 14:06:44 +01:00
Greg King
0f66f7569e Updated the cx16 library to the upstream project's prerelease 38. 2020-10-17 14:48:01 -04:00
Greg King
4905329ff6 Fixed the misspelling of "height" in a GEOS header. 2020-10-12 08:33:45 -04:00
mrdudz
83cc115112 re-add define for pad bits hw address, which was accidently removed in some refactor commit 2020-08-26 15:51:20 +02:00
Greg King
75dc234988 Guarded the static_assert macro with a C standards test. 2020-08-21 15:15:19 -04:00
Jesse Rosenstock
3df6c383c0 Add support for static_assert
Add C11's _Static_assert and static_assert macro.

This is like #error, but is handled at a later stage
of translation, so it is possible to check sizes of
types, values of enums, etc.

https://en.cppreference.com/w/c/language/_Static_assert
https://port70.net/~nsz/c/c11/n1570.html#6.7.10
2020-07-30 19:17:11 +02:00
Greg King
b60b303c5d Added a missing asterisk to a "hardware" struct definition. 2020-07-20 21:40:44 -04:00
Greg King
4296cbaf82 Added a 320x200x256 TGI driver to the Commander X16 library.
Made the mandelbrot sample program handle the X16's 256 colors.
2020-07-15 17:30:58 -04:00
Christian Groessler
72fff0cfbc atari.h: fix definition of KEY_UP
noticed by Stefan Wessels
2020-07-15 23:00:12 +02:00
Oliver Schmidt
04cc463452 Implemented some CONIO peek functions.
Please refer to https://github.com/cc65/cc65/pull/532 for background info.

I wrote in https://sourceforge.net/p/cc65/mailman/message/35873183/

===
cputs() wraps to the next line if the strings is too long to fit in the current line. I don't know if it's worth the effort to allow cpeeks() to continue reading from the next line. I'd like to discuss this aspect with the actual implementers.
===

This is still as unclear today as it was when I wrote the above. Therefore this change just doesn't add cpeeks() at all.

Since f8c6c58373 the Apple II CONIO implementation doesn't "need" revers() anymore - meaning that (nearly) every possible value can be placed in VRAM with a straight cputc() (without the need for a previous revers(1)).

The implementation of cpeekc() leverages that cputc() ability by always returning the value that can be fed into cputc() without a previous revers(1). Accordingly, cpeekrevers() always returns 0.

So after the sequence revers(1); cputc(x); a cpeekc() will return a value different from x! However, I don't see this behavior braking the cpeekc() contract. I see the cpeekc() contract being defined by the sequence textcolor(cpeekcolor()); revers(cpeekrevers()); cputc(cpeekc()); placing the very same value in VRAM that there was before. And that contract is fulfilled.
2020-07-12 22:19:55 +02:00
Greg King
410e4502ee Added a 160x192x2 TGI (graphics) driver to the VIC-20 library.
The driver requires a special linker configuration: "vic20-tgi.cfg".
The VIC-20 computer needs at least 8K of expansion RAM!

"tgidemo.c" needed to be adjusted because the VIC-20's vertical (y) range is greater than its horizontal (x) range -- the opposite of most other platforms.  Also, the circle demo would jam on the VIC-20.
2020-07-08 05:55:30 -04:00
Dirk Jagdmann
6465c3b687 change order of declarations. 2020-06-22 23:55:45 +02:00
Dirk Jagdmann
ba79b2db9b add kerberos em driver variable. 2020-06-22 23:55:45 +02:00
Oliver Schmidt
37107174c6 Added waitvsync() for the Enhanced Apple //e.
The implementation is a bit tricky as it requires to take different code paths for the //e, the //c and the IIgs. Additionally the //c only provides a VBL IRQ flag supposed to be used by an IRQ handler to determine what triggered the IRQ. However, masking IRQs on the CPU, activating the VBL IRQ, clearing any pending VBL IRQs and then polling for the IRQ flag does the trick.
2020-06-18 21:44:57 +02:00
Oliver Schmidt
6adf175691 Optimized get_ostype() return values for asm usage.
Making sure that all but //c machines have bit 6 clear allows to use BIT/BVS to detect the //c machines.
2020-06-15 19:31:18 +02:00
Greg King
14c62f1368 Allowed the TGI API to support 256 colors. 2020-06-04 12:58:05 -04:00
Greg King
68eb0f2cdc Put the Telestrat static drivers names together. 2020-05-28 10:33:08 -04:00
Greg King
3890492a9b Added a JOY_FIRE() macro to the Atmos and Telestrat C headers. 2020-05-28 09:59:21 -04:00
jede
532240a2db Telestrat joystick management 2020-05-28 08:50:20 -04:00
Greg King
cbf0c1d1dd Updated the cx16 library to the Commander X16's ROM prerelease 37. 2020-05-02 13:46:06 -04:00
itaych
31daa706b7 PMG_SIZE_QUAD is 3, not 2.
From "Mapping the Atari": "Size of player. POKE with zero or two for normal size (eight color clocks wide), POKE with one to double a player's width (sixteen color clocks wide), and POKE with three for quadruple width (32 color clocks wide). Each player can have its own width set."
2020-04-16 17:06:18 +02:00
IrgendwerA8
ce80624f62 ctype size optimization 2020-02-03 20:45:09 +01:00
Daniel Serpell
f68cc06ec7 Fixes Atari OS devhdl_t, init field needs an JMP byte.
This fixes issue #1002.
2020-01-29 13:58:10 +01:00
Greg King
b66f7272af Updated the cx16 library to the ROM's prerelease 36. 2020-01-11 02:20:52 -05:00
Greg King
3fa253d31f Updated the cx16 library to the Commander X16 Kernal's prerelease 35. 2019-12-25 10:56:32 -05:00
Greg King
cab4910a7d Added the missing BANK_RAM array to the Commander X16's header. 2019-12-10 05:59:33 -05:00
mc78
db971d8a65 Removed unnecessary #include <cc65.h> from convert.c
Adjusted block comments to predominant style
2019-11-19 14:08:00 +01:00
mc78
1dee2360fa added additional empty line after header guard in cc65.h to conform to other headers 2019-11-19 14:08:00 +01:00
mc78
8d2617110f Removed additional exit constants definitions from cc65.h to stdlih.h. Guarded the definitions by #ifdef. Removed cc65.h includes from abort and assert implementations. 2019-11-19 14:08:00 +01:00
mc78
a139c4057c Removed CC65_ prefixes from exit statements in abort and assert code as well from definition 2019-11-19 14:08:00 +01:00
mc78
16a66f19e1 Replaced enum in cc65.h by defines. added comment that cc65 exit constants should not redefine 0 and 1 as they are reserved for exit_success and exit_failure 2019-11-19 14:08:00 +01:00
mc78
3daecfb3dd Added enum for cc65 exit codes. replaced stdlib exit code names constants in libsrc with cc65 exit code named constants 2019-11-19 14:08:00 +01:00
Greg King
5da525e0ea Added a standard mouse driver to the cx16 library. 2019-11-16 14:51:24 -05:00
Greg King
d78133e1f0 Updated cx16 to match the Commander X16 ROMs and emulator, release 34. 2019-11-16 13:11:40 -05:00
Greg King
9fa90e2265 Added VERA peek() and poke() to the cx16 library.
They simplify C programs' direct access to VERA's internal address space.
2019-10-24 05:15:42 -04:00
Stefan
96547d1dd4 Fix colors for #948 2019-10-09 06:15:38 -04:00
Greg King
3cece61525 Added character codes to change between the two CBM fonts. 2019-10-01 04:16:44 -04:00
Greg King
18afc7c703 Created a target and a library for the Commander X16 prototype computer. 2019-09-27 03:38:51 -04:00
Greg King
c53b167307 Added a charmap header that converts no character encodings.
It can be used in programs, on non-ASCII machines, that need to send/write ASCII strings.
2019-09-07 23:02:31 -04:00
Björn Esser
93b6efcb2f zlib: Use correct (un)signedness of char in prototypes and functions.
Also ensure we are using the same constness qualifiers.
2019-06-19 19:01:30 +02:00
Oliver Schmidt
a01c4231f2
Fixed _textcolor definition.
The _textcolor() macro doesn't just turn on the macro optimization. It defines the return value of textcolor() - and that is supposed to be a COLOR_... value.
2019-05-08 10:22:12 +02:00
Oliver Schmidt
ac0b452834 Added '_' prefix to sin and cos.
Users complained that otherwise the names might clash with their functions.
2019-04-13 11:25:54 +02:00
Christian Groessler
8590de5cf3 Revert "atari5200: fix COLOR defines' names"
This reverts commit 87e653f47b.
2019-04-12 12:49:38 +02:00
Christian Groessler
dfb7c0f24d atari5200: fix COLOR defines' names
COLOR_RED -> COLOR_LIGHTRED and COLOR_GREEN -> COLOR_LIGHTGREEN
2019-04-12 12:49:38 +02:00
Christian Groessler
be6bba66a9 atari5200: conio now uses just four colors altogether
See discussion in PR #870.
2019-04-12 12:49:38 +02:00
Christian Groessler
ec5e38617a atari5200: implement bgcolor() and textcolor()
Includes some other small fixes/cleanups.
2019-04-12 12:49:38 +02:00
Christian Groessler
edd596b2a4 atari: split color.s into bordercolor.s and bgcolor.s 2019-04-12 12:49:38 +02:00
IrgendwerA8
df80d071e8 Added space after function name. 2019-03-29 22:53:04 +01:00
IrgendwerA8
3d8c3a4948 Code review adaptations, removed "cc65_" prefix from functions 2019-03-29 22:53:04 +01:00
IrgendwerA8
db8bd84a82 Changes due to code review. 2019-03-29 22:53:04 +01:00
IrgendwerA8
399250a105 Optimized mul20 & mul40 and extracted to new library. 2019-03-29 22:53:04 +01:00
IrgendwerA8
5c8854fff6 Changed enum for FP-register index. 2019-03-16 20:37:42 +01:00
IrgendwerA8
bcbcbbd9c0 AtariOS: Fix for FPIDX enum 2019-03-13 08:19:04 +01:00
Greg King
2617e9a3c0 Added a C header that translates from the source file's encoding to PetSCII.
It can be used to undo what "cbm_screen_charmap.h" does.  Together, those headers let you mix screen-code and PetSCII string and character literals in a C source file's Assembly output.
2019-03-11 09:00:49 -04:00
Christian Groessler
fc7e79d2cc Merge remote-tracking branch 'irgendwer/AtariOS_Structure' into master 2019-03-11 12:23:09 +01:00
IrgendwerA8
203f4c80d4 Code review changes and improved formatting. 2019-03-09 21:40:57 +01:00
IrgendwerA8
1359ad793d Atari OS: Reestablished DCB structure, fixed union span and timer2. 2019-03-08 11:48:37 +01:00
Greg King
2362db22f7 Renamed a C header.
All of Commodore's 8-bit computer models use the same screen-codes.
2019-03-05 21:20:05 -05:00
Greg King
7e298e347d Fixed the CBM screen-code C header.
Changed the number literals from Assembly format to C format.  Swapped the (upper-/lower-case) mappings of letters because the header converts from ASCII, not PetSCII.
2019-03-05 21:20:05 -05:00
IrgendwerA8
3d9ac21b80 Added missing pointer star for Basic structure. 2019-03-05 00:26:14 +01:00
IrgendwerA8
e1a4910580 Code review changes and build fix. 2019-03-04 23:32:56 +01:00
IrgendwerA8
8ead5f2f5a Access Atari OS variables by structure. 2019-03-03 22:50:57 +01:00
Bill Kendrick
417ef278a3 Move Atari-specific PIA reg vals to atari.h
PIA is also used in the Commodore PET, and for different
purposes (see http://www.6502.org/users/andre/petindex/progmod.html#pia1),
so extracted Atari-specific register #defines and placed them in atari.h.
2019-02-17 23:23:30 +01:00
Oliver Schmidt
10a31d006b Add translation from PETSCII to screen codes. 2019-02-12 17:47:17 +01:00
Christian Groessler
58484449b4 remove TABs 2019-02-05 23:27:52 +01:00
Bill Kendrick
9a83284b7b Cleaned up _pia.h register stuff a bit
Most documentation say that most of the bits are normally set to 1 or 0,
so just mentioning that in the comments.

A.N.A.L.O.G. issue 59 (April 1988) "Bits & Pieces" column, "Atari Zucchini"
(https://www.atarimagazines.com/analog/issue59/bits_pieces.php) implies
that they are used for specific things, but it's not clear enough to be
useful (or specifically states "Too complex and not pertinent").

This is probably sufficient for most purposes; if any PIA / PACTL/PBCTL
experts pop up, they can tell us exactly how those 4 bits can be utilized.
2019-01-17 23:53:53 -08:00