1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-18 00:07:21 +00:00
Commit Graph

161 Commits

Author SHA1 Message Date
Oliver Schmidt
3ffefb0f0d
Fixed reference to clock_settime(). 2018-11-16 12:45:45 +01:00
Oliver Schmidt
83768a1e8a Fixed two typos. 2018-11-13 18:33:51 +01:00
Oliver Schmidt
8fd1db4d78 Added basic docs on the clock_... functions. 2018-11-08 20:43:46 +01:00
Oliver Schmidt
6cce110345 Adjusted URL to use https (and removed obsolete dates). 2018-09-20 12:45:15 +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
842c151edd Replaced _systime with clock_gettime.
We want to add the capability to not only get the time but also set the time, but there's no "setter" for the "getter" time().

The first ones that come into mind are gettimeofday() and settimeofday(). However, they take a struct timezone argument that doesn't make sense - even the man pages says "The use of the timezone structure is obsolete; the tz argument should normally be specified as NULL." And POSIX says "Applications should use the clock_gettime() function instead of the obsolescent gettimeofday() function."

The ...timeofday() functions work with microseconds while the clock_...time() functions work with nanoseconds. Given that we expect our targets to support only 1/10 of seconds the microseconds look preferable at first sight. However, already microseconds require the cc65 data type 'long' so it's not such a relevant difference to nanoseconds. Additionally clock_getres() seems useful.

In order to avoid code duplication clock_gettime() takes over the role of the actual time getter from _systime(). So time() now calls clock_gettime() instead of _systime().

For some reason beyond my understanding _systime() was mentioned in time.h. _systime() worked exactly like e.g. _sysremove() and those _sys...() functions are all considered internal. The only reason I could see would be a performance gain of bypassing the time() wrapper. However, all known _systime() implementations internally called mktime(). And mktime() is implemented in C using an iterative algorithm so I really can't see what would be left to gain here. From that perspective I decided to just remove _systime().
2018-08-15 16:06:44 +02:00
Greg King
6d87370881 Fixed strpbrk().
Added its prototype.  Documented it.
2018-05-29 14:29:50 -04:00
Bas Wassink
b98517f90b Add __fastcall__ to cbm_k_second() documentation 2018-05-25 13:17:12 +02:00
compyx
8ffe623e74 Add CBM kernal call SECOND to CBM library (see issue #525) 2018-05-23 17:32:02 +02:00
Oliver Schmidt
4459b8973b
Merge pull request #659 from polluks/patch-10
Fixed typos and added references for #655
2018-05-23 15:51:25 +02:00
Stefan
d28fce082d
Update funcref.sgml 2018-05-23 13:40:14 +00:00
Stefan
714a347dc9
Update funcref.sgml 2018-05-23 13:32:17 +00:00
Stefan
0a1e68d7a9
Update funcref.sgml 2018-05-23 13:30:57 +00:00
Stefan
9e4833e21f
Added documentation of cbm_k_untlk 2018-05-23 04:27:05 +00:00
Stefan
37e6b05b4a
Fixed typos and added references for #655 2018-05-23 01:51:54 +00:00
compyx
30ada49458 Add CBM kernal call TKSA to CBM library
This adds the CBM kernal call TKSA as cbm_k_tksa() to the CBM library.
2018-05-22 14:16:00 +02:00
Marco van den Heuvel
04675fca2a Order fix. 2018-05-02 11:23:43 -07:00
Marco van den Heuvel
b1c3daca3a Fixed the order of some functions. 2018-05-01 14:45:51 -07:00
Marco van den Heuvel
b12678e90d Fixed a typo. 2018-04-30 14:34:46 -07:00
Marco van den Heuvel
ad7b339c44 Added C64 Turbo Master accelerator code and documentation. 2018-04-30 14:30:35 -07:00
Marco van den Heuvel
11629bcf99 Added C65/C64DX accelerator code and documentation. 2018-04-27 14:22:41 -07:00
Marco van den Heuvel
f2e46f0fdf Added C64 Chameleon accelerator code and documentation. 2018-04-25 12:53:29 -07:00
Marco van den Heuvel
cc2bcb8a4d Changed c128 accelerator code and documention to include both C64 and C128 support. 2018-04-23 19:25:11 -07:00
Marco van den Heuvel
28f26991ac Updated c128 accelerator code and documentation. 2018-04-21 09:52:50 -07:00
Marco van den Heuvel
3f5683b391 Added C128 in C64 mode accelerator code and documentation. 2018-04-20 12:08:28 -07:00
Marco van den Heuvel
c5f15fa1d5 Fixed some comment and documentation errors. 2018-04-15 11:55:58 -07:00
Marco van den Heuvel
6076316f38 Added c64dtv accelerator code and documentation. 2018-04-14 10:40:13 -07:00
Marco van den Heuvel
89c3ed6d7f Added C64/C128 SuperCPU accelerator functions and started on a generic framework for accelerators. 2018-04-09 19:36:53 -07:00
Marco van den Heuvel
03ba3f7473 Added c16/plus4 fast(), isfast() and slow() functions, and updated the documentation accordingly. 2018-03-23 14:27:15 -07:00
Marco van den Heuvel
5d4116f05f Added isfast function which returns a 1 when the C128 is in 2MHz mode. 2018-03-20 13:11:24 -07:00
Marco van den Heuvel
5a9d908007 Added 2a03/2a07 and HuC6280 detection. 2018-03-01 14:57:42 -08:00
Marco van den Heuvel
102d486207 Updated getcpu() function documentation. 2018-03-01 08:55:29 -08:00
Stefan
89799cd02e More notes 2018-02-10 00:08:28 +01:00
Stefan
46bdc016db Removed empty notes 2018-02-07 18:08:40 +01:00
Stefan
54f8dea29b Added note 2018-02-07 17:23:23 +01:00
Stefan
4d7098f2f2 Requested changes 2018-02-07 16:23:49 +01:00
Stefan
b69ee802fd Sorted 2018-02-07 03:07:30 +01:00
Stefan
a48f998162 Added missing function 2018-02-07 01:55:56 +01:00
Stefan
a227089ba1 Added missing documentation of header 2018-02-07 00:11:55 +01:00
Oliver Schmidt
fb193933cb
Merge pull request #552 from polluks/master
Added Oric-1 compatibility #550
2017-12-16 18:26:34 +00:00
Stefan
6faef87b49 Fixed Oric-1 compatibility #550 2017-12-15 23:51:39 +01:00
mrdudz
8902730756 cbm stuff from greggs pull request 2017-12-11 19:52:11 +01:00
Oliver Schmidt
7e834a47b0
Merge pull request #533 from polluks/master
Splitting of funcref
2017-11-26 20:16:29 +00:00
Stefan
41df21855a Splitting of funcref 2017-11-25 19:31:36 +01:00
Stefan
61b2264327
Fix docs for #526
funcref.sgml is still growing and growing, how about outsourcing all TGI functions into tgi.sgml?
2017-11-22 01:35:42 +01:00
Stefan
e9c16e62e7
Fix docs for #453 2017-11-21 09:51:35 +01:00
Greg King
3c0b8c4e86 Made the CBM Pet kbrepeat() work on both 40-column and 80-column machines.
Put the kbrepeat() description in an alphabetical position in the function document.
2017-09-05 09:19:01 -04:00
Oliver Schmidt
4aa19494f5 Removed dysfunctional kbrepeatdelay() and kbrepeatrate().
As discussed in https://github.com/cc65/cc65/pull/452 after my premature merge the two functions in question don't work as expected.

Additionally I adjusted several style deviations in the pull request in question.
2017-08-30 16:37:59 +02:00
mrdudz
3c3558892e add note on fastcall 2017-08-19 19:16:31 +02:00
Bob Andrews
5dcebbccb6 Merge branch 'master' into kbrepeat 2017-08-06 20:22:52 +02:00