1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-05 21:29:03 +00:00
cc65/libsrc/apple2
Oliver Schmidt f40dcb5883 Added clock_getres() / clock_settime() for the Apple II.
The situation on the Apple II is rather special: There are several types of RTCs. It's not desirable to have specific code for all of them. As the OS supports file timestamps RTC owners usually use OS drivers for their RTC. Those drivers read the RTC and write the result in a "date/time location" in RAM. The OS reads the date/time from the RAM location. If there's no RTC the RAM location keeps containing zeros. The OS uses those zeros as timestamps and the files show up in a directory as "<NO DATE>".

There's no common interface to set RTCs so if an RTC _IS_ present there's just nothing to do. However, if there's _NO_ RTC present the user might very well be interest to "manually" set the RAM location in order to have timestamps. But he surely doesn't want to manually set the RAM location over an over again. Rather he wants to set it just once after booting the OS.

From that perspective it makes most sense to not set both the date and the time but rather only set the date and have the time just stay zero. Then files show up in a directory as "DD-MON-YY  0:00".

So clock_settime() checks if the current time equals 0:00. If it does _NOT_ then an RTC is supposed to be active and clock_settime() fails with ERANGE. Otherwise clock_settime() ignores sets the date - and completely ignores the time provided as parameter.

clock_getres() too checks if the current time equals 0:00. If it does _NOT_ then an RTC is supposed to be active and clock_getres() returns a time resolution of one minute. Otherwise clock_getres() presumes that the only one who sets the RAM location is clock_settime() and therefore returns a time resolution of one day.
2018-08-15 21:34:35 +02:00
..
emd Create static drivers directly from source files. 2014-06-04 23:50:18 +02:00
extra Resolved conflict and removed adaptation for strpbrk for time being. 2018-05-21 13:30:27 +02:00
joy Removed IRQ support from joystick drivers. 2018-02-01 22:38:36 +01:00
mou Create static drivers directly from source files. 2014-06-04 23:50:18 +02:00
ser Create static drivers directly from source files. 2014-06-04 23:50:18 +02:00
targetutil directory structure changed from driver-centric to target-centric 2016-05-16 19:49:43 +02:00
tgi Indicate a dummy outtext 2018-05-22 21:18:10 +00:00
_scrsize.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
_sys.s Allow _sys() to call ROM routines. 2016-03-25 21:57:06 +01:00
break.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
cclear.s Introduced internal gotoxy that pops both parameters. 2016-06-05 14:58:38 +02:00
cgetc.s Added CONIO cursor support. 2016-06-19 15:03:20 +02:00
chline.s Added CONIO cursor support. 2016-06-19 15:03:20 +02:00
close.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
closedir.c Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
clrscr.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
color.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
cout.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
cputc.s Added CONIO cursor support. 2016-06-19 15:03:20 +02:00
crt0.s Moved run location of ONCE segment. 2016-03-17 21:07:19 +01:00
ctype.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
curdevice.s Introduced getcurrentdevice() and implemented it for CBM and Apple. 2012-10-21 14:35:17 +00:00
cvline.s Added CONIO cursor support. 2016-06-19 15:03:20 +02:00
devicedir.s Fixed regression introduced by https://github.com/cc65/cc65/pull/652. 2018-07-26 14:31:17 +02:00
dioclose.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
diocommon.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
dioopen.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
dioread.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
diosectcount.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
diosectsize.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
diowrite.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
dir.h Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
doesclrscr.s Added Apple II version of doesclrscrafterexit(). 2016-06-05 13:01:42 +02:00
dosdetect.s Adjusted constructors. 2016-03-16 16:28:32 +01:00
exec.s Minor adjustment to recent change. 2016-05-30 14:31:53 +02:00
exehdr.s Switched Apple II output format to AppleSingle. 2018-03-07 23:05:21 +01:00
filedes.inc Cosmetic changes from Oliver Schmidt 2005-04-15 08:27:09 +00:00
filedes.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
filename.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
get_ostype.s Adjusted constructors. 2016-03-16 16:28:32 +01:00
getdevice.s I wasn't aware that the unit numbers in the ProDOS device list contain device type identifiers in the low nibble. So if we can't use the device list entries as-is we can as well present the high nibble as low nibble to the user thus providing more meaningful device numbers. 2012-10-15 21:59:51 +00:00
getres.s Added clock_getres() / clock_settime() for the Apple II. 2018-08-15 21:34:35 +02:00
gettime.s Minor style fix. 2018-08-15 19:40:56 +02:00
gotoxy.s Introduced internal gotoxy that pops both parameters. 2016-06-05 14:58:38 +02:00
gotoy.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
home.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
initcwd.s Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
iobuf.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
irq.s Made use of recently added Apple scrcode macro. 2016-03-27 18:27:53 +02:00
isdevice.s I wasn't aware that the unit numbers in the ProDOS device list contain device type identifiers in the low nibble. So if we can't use the device list entries as-is we can as well present the high nibble as low nibble to the user thus providing more meaningful device numbers. 2012-10-15 21:59:51 +00:00
joy_stat_stddrv.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
joy_stddrv.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
kbhit.s Cosmetic changes requested by Oliver Schmidt 2005-03-30 18:17:57 +00:00
libref.s Added library reference tgi_libref to TGI interface. 2013-06-01 12:42:00 +02:00
lseek.s Added "popptr1" which is of common use to save some bytes. 2018-05-20 15:30:18 +02:00
mainargs.s Adjusted constructors. 2016-03-16 16:28:32 +01:00
mcbdefault.s Some fine tuning of the mouse driver interface harmonization. 2014-01-17 21:09:15 +01:00
mli.inc Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
mli.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
mouse_stat_stddrv.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
mouse_stddrv.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
open.s Renamed INITBSS to INIT and INIT to ONCE. 2016-03-06 21:27:19 +01:00
opendir.c Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
oserrlist.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
oserror.s Implement exec() for Atari XDOS. 2016-06-13 20:40:01 +02:00
randomize.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
rdkey.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
read.s Renamed INITBSS to INIT and INIT to ONCE. 2016-03-06 21:27:19 +01:00
readdir.c Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
reboot.s Renamed INITBSS to INIT and INIT to ONCE. 2016-03-06 21:27:19 +01:00
revers.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
rewinddir.c Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
rwcommon.s Added "popptr1" which is of common use to save some bytes. 2018-05-20 15:30:18 +02:00
settime.s Added clock_getres() / clock_settime() for the Apple II. 2018-08-15 21:34:35 +02:00
syschdir.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
sysmkdir.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
sysremove.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
sysrename.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
sysrmdir.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
sysuname.s New uname function 2003-08-12 17:24:02 +00:00
textframe.s Added CONIO cursor support. 2016-06-19 15:03:20 +02:00
tgi_colors.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
tgi_stat_stddrv.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
tgi_stddrv.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
videomode.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
vtabz.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
wherex.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
wherey.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
write.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00