1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-07 23:29:39 +00:00
Commit Graph

45 Commits

Author SHA1 Message Date
Colin Leroy-Mira
2ba176372e Add beep for apple2 2024-01-23 23:04:50 +01:00
Colin Leroy-Mira
75461e1319 Apple2: implement stat(2) and statvfs(3) 2024-01-01 19:12:51 +01:00
Colin Leroy-Mira
e16a5e0dbe Add Apple IIgs serial driver 2023-10-03 18:34:22 +02:00
Oliver Schmidt
d90c7e9853 Introduced the notion of a standard serial driver.
There's no target with more than one serial driver (and I don't see that change anytime soon) so it's a no-brainer to apply the standard driver concept to serial drivers.
2022-12-22 18:13:24 +01:00
Bob Andrews
e0cc3650e4
Merge branch 'master' into missing-purple 2022-05-17 15:34:51 +02:00
mrdudz
3c1641e3e3 remove dangling spaces 2022-04-17 16:05:19 +02:00
polluks
8e60102e8e Removed the colour purple
This commit may break compatibility.
2022-02-02 00:58:50 +01:00
polluks
a29a1b0a59 Added more purple (rain) 2022-01-31 02:18:01 +01: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
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
Oliver Schmidt
f8c6c58373 Made Apple II CONIO more flexible.
Originally the Apple II had a 64 char set and used the upper two bits to control inverse and blinking. The Apple //e brought then an alternate char set without blinking but more individual chars. However, it does _not_ contain 128 chars and use the upper bit to control inverse as one would assume. Rather it contains more than 128 chars - the MouseText chars. And because Apple wanted to provide as much backward compatibility as possible with the original char set, the alternate char set has a rather weird layout for chars > 128 with the inverse lowercase chars _not_ at (normal lowercase char + 128).

So far the Apple II CONIO implementation mapped chars 128-255 to chars 0-127 (with the exception of \r and \n). It made use of alternate chars > 128 transparently for the user via reverse(1). The user didn't have direct access to the MouseText chars, they were only used interally for things like chline() and cvline().

Now the mapping of chars 128-255 to 0-127 is removed. Using chars > 128 gives the user direct access to the "raw" alternate chars > 128. This especially give the use direct access to the MouseText chars. But this clashes with the exsisting (and still desirable) revers(1) logic. Combining reverse(1) with chars > 128 just doesn't result in anything usable!

What motivated this change? When I worked on the VT100 line drawing support for Telnet65 on the Apple //e (not using CONIO at all) I finally understood how MouseText is intended to be used to draw arbitrary grids with just three chars: A special "L" type char, the underscore and a vertical bar at the left side of the char box. I notice that with those chars it is possible to follow the CONIO approach to boxes and grids: Combining chline()/cvline() with special CH_... char constants for edges and intersections.

But in order to actually do so I needed to be able to define CH_... constants that when fed into the ordinary cputc() pipeline end up as MouseText chars. The obvious approach was to allow chars > 128 to directly access MouseText chars :-)

Now that the native CONIO box/grid approach works I deleted the Apple //e proprietary textframe() function that I added as replacement quite some years ago.

Again: Please note that chline()/cvline() and the CH... constants don't work with reverse(1)!
2018-08-20 00:30:17 +02:00
Oliver Schmidt
935f68f686 Harmonized the style of including headers from headers.
We surely don't care about some file I/O on host machines in 2018 ;-)
2018-02-02 12:28:22 +01:00
Oliver Schmidt
811424cc1b
Added recently published ProDOS version. 2018-01-18 12:37:21 +01:00
Oliver Schmidt
7f52a770d9 Removed joy_masks array.
So far the joy_masks array allowed several joystick drivers for a single target to each have different joy_read return values. However this meant that every call to joy_read implied an additional joy_masks lookup to post-process the return value.

Given that almost all targets only come with a single joystick driver this seems an inappropriate overhead. Therefore now the target header files contain constants matching the return value of the joy_read of the joystick driver(s) on that target.

If there indeed are several joystick drivers for a single target they must agree on a common return value for joy_read. In some cases this was alredy the case as there's a "natural" return value for joy_read. However a few joystick drivers need to be adjusted. This may cause some overhead inside the driver. But that is for sure smaller than the overhead introduced by the joy_masks lookup before.

!!! ToDo !!!

The following three joystick drivers become broken with this commit and need to be adjusted:
- atrmj8.s
- c64-numpad.s
- vic20-stdjoy.s
2017-08-19 19:11:28 +02:00
Bill Chatfield
abb2e8034b Moved file type variables to apple2_filetype.h 2017-07-28 12:09:58 -04:00
Bill Chatfield
a623169477 Added ProDOS file type definitions 2017-07-26 11:15:49 -04:00
Greg King
0390c34e88 Changed multi-line C comments into another style.
The left side doesn't look unbalanced.
2014-06-30 16:51:07 -04:00
Oliver Schmidt
5602cf742f Adjusted comment. 2013-08-08 18:46:21 +02:00
Mario Patiño
7d9bba213b Comments added 2013-08-08 18:23:48 +02:00
Mario Patiño
9b157a5b1e Defined a struct to contain the date and time data
To keep backward compatibility auxtype and the date/time are kept
separated.
A struct similar to the one used in dirent.h is used to access the
create_date and create_time fields.
2013-08-03 19:08:36 +02:00
Mario Patiño
be7c24177c Promoted _auxtype to a struct to gain access to additional fields
While creating files there was no possibility to explicitly set the
time or date.
This is necessary for example while copying files since the original
time and date should be kept.
2013-08-03 15:42:16 +02:00
Oliver Schmidt
83280e1ee2 Have __APPLE2ENH__ imply __APPLE2__ and __ATARIXL__ imply __ATARI__. 2013-06-17 21:34:08 +02:00
Oliver Schmidt
85885001b1 Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
Oliver Schmidt
44fd1082ae Adjusted C declarations to the changed static driver names. 2013-05-09 10:20:03 +02:00
ol.sc
fa6dae8fa9 Added declarations for target-specific static drivers being part of the C library.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5925 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-07 23:20:58 +00:00
ol.sc
d99d5f3337 Replaced Apple II specific solution with implementation of recently introduced devicedir().
git-svn-id: svn://svn.cc65.org/cc65/trunk@5846 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-10 20:55:56 +00:00
ol.sc
0f1cd50883 Replaced Apple II specific solution with implementation of recently introduced mass-storage device enumaration.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5821 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-09-09 13:38:32 +00:00
ol.sc
012e3e456a Added TGI_COLOR_... macros to be used both for hires and lores. Introduced color mapping on lores to allow for common color macros.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4992 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-04-25 11:16:56 +00:00
ol.sc
bee54df029 Allow to set the ProDOS type and auxtype on creating new files in a similiar way done on the CBMs.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4902 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-05 16:09:08 +00:00
ol.sc
710f59b654 Align rootdir() return value rather with POSIX functions than with DIO functions.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4680 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-02 07:03:54 +00:00
ol.sc
05b23194d9 Added function to find out the volume name of a ProDOS 8 disk in a ProDOS 8 device.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4668 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-26 21:02:35 +00:00
ol.sc
1bbbed5e96 Added functions to learn about the unit numbers of the ProDOS 8 devices found.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4663 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-24 20:10:19 +00:00
ol.sc
10e810b623 Added macro for ssc slot selection.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4527 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-12-13 11:21:59 +00:00
ol.sc
4c1cd875ee Added ioctl for mixing graphics with 4 lines of text.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4522 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-12-12 23:07:21 +00:00
ol.sc
0c161a6cdd Now that cc65 programs can run as SYS files themselves my ProDOS Loader ulimately has to change from a minimalistic shell replacement to a pure loader (without exit hook). This approach simplifies several things. However the "reboot after exit" option now present as a ProDOS Loader variant has to move into the cc65 program.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4172 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-14 19:58:06 +00:00
cuz
feae688346 Oliver Schmidt updated the graphics drivers and part of the C library for the
Apple machines.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3816 b7a2c559-68d2-44c3-8de9-860c34a00d81
2008-03-16 09:37:22 +00:00
cuz
5363f9bee3 Allow to replace the color functions in conio.h by macros for platforms
where these functions are dummies anyway.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3422 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-03-26 17:20:27 +00:00
cuz
8188795240 New code from Oliver Schmidt
git-svn-id: svn://svn.cc65.org/cc65/trunk@3351 b7a2c559-68d2-44c3-8de9-860c34a00d81
2005-01-06 12:26:47 +00:00
cuz
b5fe24f255 Added CH_ENTER
git-svn-id: svn://svn.cc65.org/cc65/trunk@2937 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-03-18 09:42:02 +00:00
cuz
3846e8c536 Fixed inclusion order
git-svn-id: svn://svn.cc65.org/cc65/trunk@2918 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-03-13 21:39:01 +00:00
cuz
a57deeb58a Reworked version by Oliver Schmidt
git-svn-id: svn://svn.cc65.org/cc65/trunk@2913 b7a2c559-68d2-44c3-8de9-860c34a00d81
2004-03-11 21:54:22 +00:00
cuz
1c2bea7c13 Added get_ostype
git-svn-id: svn://svn.cc65.org/cc65/trunk@2417 b7a2c559-68d2-44c3-8de9-860c34a00d81
2003-08-26 20:36:44 +00:00
cuz
63b2c252a5 Added/updated header blocks
git-svn-id: svn://svn.cc65.org/cc65/trunk@1000 b7a2c559-68d2-44c3-8de9-860c34a00d81
2001-10-02 18:48:54 +00:00
cuz
3dc0fb59bc Check for wrong header file inclusions, add CBM510 stuff
git-svn-id: svn://svn.cc65.org/cc65/trunk@948 b7a2c559-68d2-44c3-8de9-860c34a00d81
2001-09-19 08:46:07 +00:00
uz
53dd513176 This commit was generated by cvs2svn to compensate for changes in r2,
which included commits to RCS files with non-trunk default branches.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3 b7a2c559-68d2-44c3-8de9-860c34a00d81
2000-05-28 13:40:48 +00:00