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

20 Commits

Author SHA1 Message Date
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
b844572159 Moved most of the tgi_colors.s files into the libsrc/common/ directory.
Only the Apple2 and Lynx platforms use different codes for the white color; they have their own files.
2018-03-27 07:28:46 -04:00
Oliver Schmidt
1d1ba3ed3b Adjusted constructors.
The constructors are _NOT_ allowed anymore to access the BSS. Rather they must use the DATA segment or the INIT segment. The latter isn't cleared at any point so the constructors may use it to expose values to the main program. However they must make sure to always write the values as they are not pre-initialized.
2016-03-16 16:28:32 +01:00
Oliver Schmidt
419eb700b5 Renamed INITBSS to INIT and INIT to ONCE.
The way we want to use the INITBSS segment - and especially the fact that it won't have the type bss on all ROM based targets - means that the name INITBSS is misleading. After all INIT is the best name from my perspective as it serves several purposes and therefore needs a rather generic name.

Unfortunately this means that the current INIT segment needs to be renamed too. Looking for a short (ideally 4 letter) name I came up with ONCE as it contains all code (and data) accessed only once during initialization.
2016-03-06 21:27:19 +01:00
Greg King
c7969a78b0 Refined the comments in the target start-up files.
Fixed typo errors.  Made the comments consistent across all those files.
2014-08-24 10:10:20 -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
85885001b1 Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
Oliver Schmidt
008b4c4e1d Replaced whole bunch for Makefiles with a single generic Makefile.
- No complex shell logic.
- "Source file shadowing" for all targets via vpath.
- Dependency handling.
- True incremental build.
- Don't write into source directories.
- Easy cleanup by just removing 'wrk'.
2013-05-04 22:10:48 +02:00
ol.sc
46f1085e2d Fixed several aspects of the GEOS CONIO implementation:
- cputc was drawing at the wrong position, therefore one line had to be removed as a workaround.
- chline, cvline were drawing one pixel to large lines.
- cclear was drawing an in both directions one pixel to big rect.
- the cursor was drawn at wrong times at wrong places in a wrong size.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5874 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-23 19:42:57 +00:00
ol.sc
ffc06fcea3 Apple GEOS reserves beside the main app area at $4000-$C000 a secondary app area at $0C00-$2000. While it was an elegant idea to use that secondary area for overlays at the end of the day those 5 kB are just too small. So now overlays go at the end of the main area (as with GEOS 64/128).
However the stack (usually 1 kB) can be securely placed in the secondary area without effort from the side of the developer. The rest of the secondary area (usually 4 kB) is made available to the developer as (uninitialized) 'EXTBSS'.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5696 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-08 21:46:51 +00:00
ol.sc
f6825b244a Added screen initialization on Apple GEOS.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5568 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-28 21:24:17 +00:00
ol.sc
c8f3b16f99 Minor style adjustment.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5544 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-22 22:59:38 +00:00
ol.sc
db0cf2b8d1 Greg King: SHORTCUT is a graphic character (it is displayed in menues); it is not a control character.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5534 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-20 22:48:02 +00:00
ol.sc
fb7d8a7c37 My recent decision to reuse the character specification table from the base target was based on the fact that CBM GEOS used a copy of the CBM character specification table for the last ten years.
However now I understand that CBM GEOS does _not_ use PETSCII so the CBM character specification table doesn't make sense at all. After all this is very plausible because GEOS wants to enable the user to share his files across GEOS variants - so we can share the character specification table too.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5527 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-17 20:23:35 +00:00
ol.sc
1ccfe46892 Normalized coding style.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5515 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-09 10:54:40 +00:00
ol.sc
129d3bf872 - The address given for GetSerialNumber in the "Hitchhiker's Guide To GEOS" is obviously wrong: $4b38.
- According to the "Hitchhiker's Guide To GEOS" GetSerialNumber returns a string on Apple GEOS (in contrast to a number on CBM GEOS).
Given both facts and that the API is presumably not important at all it seems reasonable to just go without it on Apple GEOS.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5503 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-08 19:48:31 +00:00
ol.sc
5149fea3e1 Normalized coding style.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5500 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-08 16:56:54 +00:00
ol.sc
9082aa8d99 'setoserror' is used by routines residing both 'disk' and 'file'. Therefore move it to 'system' - where the other oserr-related stuff resides.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5489 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-07 16:50:23 +00:00
ol.sc
4494a930e3 Moved non-driver files from 'geos-cbm/devel' to 'geos-common/system' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5488 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-07 16:42:59 +00:00
ol.sc
e6d886750b Moved the 'system' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5446 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-02-04 20:58:15 +00:00