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

308 Commits

Author SHA1 Message Date
Oliver Schmidt
8e75906737 Switched Apple II output format to AppleSingle.
Although the primary target OS for the Apple II for sure isn't DOS 3.3 but ProDOS 8 the Apple II binary files contained a DOS 3.3 4-byte header. Recently I was made aware of the AppleSingle file format. That format is a much better way to transport Apple II meta data from the cc65 toolchain to the ProDOS 8 file system. Therefore I asked AppleCommander to support the AppleSingle file format. Now that there's an AppleCommander BETA with AppleSingle support it's the right time for this change.

I bumped version to 2.17 because of this from the perspective of Apple II users of course incompatible change.
2018-03-07 23:05:21 +01:00
Oliver Schmidt
dacee3b9ed Removed IRQ support from TGI drivers.
All but one TGI drivers didn't use IRQs. Especially when the TGI driver kernel was the only .interruptor this meant quite some unnecessary overhead because it pulled in the whole IRQ infrastructure.

The one driver using IRQs (the graphics driver for the 160x102x16 mode on the Lynx) now uses a library reference to set up a JMP to its IRQ handler.
2018-02-02 18:15:45 +01:00
Oliver Schmidt
1976d6cd32 Removed IRQ support from joystick drivers.
All but one joystick drivers didn't use IRQs. Espsecially when the joystick driver kernel was the only .interruptor this meant quite some unnecessary overhead because it pulled in the whole IRQ infrastructure.

I was told that the one driver using IRQs (the DXS/HIT-4 Player joystick driver for the C64) can be reworked to not do it. Until this is done that driver is defunct.
2018-02-01 22:38:36 +01:00
Oliver Schmidt
19ed94fe25 Adjust alternative ProDOS 8 I/O buffer allocation module to linker configs.
The Apple II linker configs don't define symbols for the STARTP segment anymore. There refer to the load/start address in the same way the executable file header does.
2018-01-31 15:06:37 +01:00
Oliver Schmidt
bd9b4ef60c Replaced three (logically) identical files with a single file. 2017-10-23 18:35:06 +02: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
Oliver Schmidt
e47485f925 Added CONIO cursor support.
For quite some time I deliberately didn't add cursor support to the Apple II CONIO imöplementation. I consider it inappropriate to increase the size of cgetc() unduly for a rather seldom used feature.

There's no hardware cursor on the Apple II so displaying a cursor during keyboard input means reading the character stored at the cursor location, writing the cursor character, reading the keyboard and finally writing back the character read initially.

The naive approach is to reuse the part of cputc() that determines the memory location of the character at the cursor position in order to read the character stored there. However that means to add at least one additional JSR / RTS pair to cputc() adding 4 bytes and 12 cycles :-( Apart from that this approach means still a "too" large cgetc().

The approach implemented instead is to include all functionality required by cgetc() into cputc() - which is to read the current character before writing a new one. This may seem surprising at first glance but an LDA(),Y / TAX sequence adds only 3 bytes and 7 cycles so it cheaper than the JSR / RTS pair and allows to brings down the code increase in cgetc() down to a reasonable value.

However so far the internal cputc() code in question saved the X register. Now it uses the X register to return the old character present before writing the new character for cgetc(). This requires some rather small adjustments in other functions using that internal cputc() code.
2016-06-19 15:03:20 +02:00
Christian Groessler
94ba9575ec Implement exec() for Atari XDOS.
- Adds new ENOEXEC error code, also used by Apple2 targets.
- Maximum command line length is 40, incl. program name. This is
  an XDOS restriction.
- testcode/lib/tinyshell.c has been extended to be able to run
  programs.
2016-06-13 20:40:01 +02:00
Oliver Schmidt
13482984ca Introduced internal gotoxy that pops both parameters.
About all CONIO functions offering a <...>xy variant call
  popa
  _gotoxy

By providing an internal gotoxy variant that starts with a popa all those CONIO function can be shortened by 3 bytes. As soon as program calls more than one CONIO function this means an overall code size reduction.
2016-06-05 14:58:38 +02:00
Oliver Schmidt
d670998814 Added Apple II version of doesclrscrafterexit().
The prototype and documentation is supposed to be provided together with the ATARI version.
2016-06-05 13:01:42 +02:00
Oliver Schmidt
89329f1519 Merge pull request #287 from silverdr/target_goodies
moved output of target utils and drivers to separate directory
2016-06-01 11:01:56 +02:00
Oliver Schmidt
b979fb5763 Minor adjustment to recent change. 2016-05-30 14:31:53 +02:00
Christian Groessler
a6c306500a Small optimization in apple2 exec.s. 2016-05-30 14:16:37 +02:00
Patrycjusz R. Łogiewa
ba10c74a7a directory structure changed from driver-centric to target-centric 2016-05-16 19:49:43 +02:00
Patrycjusz R. Łogiewa
93f55c274b moved output of target utils and drivers to separate directory 2016-05-13 14:28:58 +02:00
Oliver Schmidt
e92f354740 Made use of recently added Apple scrcode macro. 2016-03-27 18:27:53 +02:00
Oliver Schmidt
29d1400340 Allow _sys() to call ROM routines.
_sys() is supposed to be (primarily) intended to call ROM routines. Leveraging the "file overlay" mechanism of the cc65 build system allows to provide a Apple II specific _sys() implementation that temporarily switches in the ROM.
2016-03-25 21:57:06 +01:00
Oliver Schmidt
e3cbc7e8b8 Moved run location of ONCE segment.
Make the same changes to the Apple II that were done with 0ee9b2e446 to the C64.

Notes:
- The startup code deliberately doesn't make use of symbols defined for the LC segment as that segment is optional.
- The <...>-asm.cfg configs move the segment BSS to an own memory area BSS although this doesn't seem necessary. However the benefit is that the size of the memeory area MAIN is identical to the number of bytes loaded from disk into RAM. To keep this an invariant for all Apple II configs allows to simplify the EXEHDR to just refer to the symbols defined for MAIN.
2016-03-17 21:07:19 +01: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
Oliver Schmidt
76a5a72403 Adjusted current working directory initialization on Apple and Atari.
Moving __cwd from BSS into INITBSS does of course ;-) not only impact the CBM targets but all targets with disk I/O support.

Note: Code using `__cwd-1` may trigger an ld65 range error because __cwd may end up at the very begining of a segment. As far as I see this is an ld65 bug which I'm not try to fix - at least here.
2015-10-15 00:15:38 +02:00
Oliver Schmidt
0f1c3b0181 Fixed comment. 2015-04-27 09:39:50 +02:00
Oliver Schmidt
1748bb1ab6 Use well-known location BLTU2 for "memmove()". 2015-04-26 14:09:21 +02:00
Oliver Schmidt
3c1cd0d867 Added cmdline support to exec().
The starting point is the CALL2051:REM <cmdline> approach. It uses the BASIC input buffer at $200. ProDOS stores the name of the loaded program at $280 (which we want for argv[0]) leaving us with 128 char buffer. If we run the program via exec() we don't need the CALL2051 but only the REM token (which is just one char). So have a maximum cmdline length of 126 (plus a terminating zero).

There's no specification for ProDOS BIN file cmdline parameters so exec() just supports the CALL2051:REM <cmdline> approach. In contrast ProDOS SYS files allow for a 'startup filename'. A ProDOS filename is short than 126 chars so having exec() general cut the cmdline after 126 chars seems reasonable. If the SYS file we exec() allows for less we cut the cmdline further.

Our 'loader.system' SYS file however allows for an unusually 126 char long "startup filename" as it is targeted towards cc65 BIN porgrams with their 126 cmdline length.
2015-04-26 14:09:20 +02:00
Oliver Schmidt
ae4f9336b3 Behave more like BASIC.SYSTEM and allow for argv[0]. 2015-04-19 21:59:05 +02:00
Oliver Schmidt
24e902059c Allow up 127 chars of cmdline for programs started by the loader. 2015-04-19 21:17:46 +02:00
Oliver Schmidt
3ed3e98ec7 Moved interrupt enabling to the interrupt constructor. 2015-02-16 15:43:08 +01:00
peterferrie
bbd419f365 assert parm count 2014-11-24 10:07:16 -08:00
peterferrie
0c204725bc implement ProDOS seek 2014-11-21 16:04:11 -08: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
2c975d3642 Create static drivers directly from source files.
Up to now static drivers were created via co65 from dynamic drivers. However there was an issue with that approach:

The dynamic drivers are "o65 simple files" which obligates that they start with the 'code' segment. However dynamic drivers need to start with the module header - which is written to. For dynamic drivers this isn't more than a conceptual issue because they are always contain a 'data' segment and may therefore only be loaded into writable memory.

However when dynamic drivers are converted to static drivers using co65 then that issue becomes a real problem as then the 'code' segment may end up in non-writable memory - and thus writing to the module header fails.

Instead of changing the way dynamic drivers work I opted to rather make static driver creation totally independent from dynamic drivers. This allows to place the module header in the 'data' segment (see 'module.mac').
2014-06-04 23:50:18 +02:00
Oliver Schmidt
d6c3bd29ac Renamed JUMPTABLE and cleaned up module.cfg.
This change was suppsed to fix the issue that the former JUMPTABLE is merked as 'ro' while it is actually written to in several scenarios. When drivers are converted using co65 and then compiled into ROMs the JUMPTABLE isn't copied to RAM and therefore the write operations in question fail.

However unfortunately I didn't succeed in changing that :-( Just setting the former JUMPTABLE to 'rw' broke the drivers. So I placed the DATA segment directly after the former JUMPTABLE segment. This made the drivers converted with co65 work again - obviously after changing libsrc/Makefile:235 from '--code-label' to '--data-label'. But the actual dynamic drivers still didn't work as the former JUMPTABLE wasn't placed as the beginning of the loaded file anymore. That effect could be changed by exchanging src/ld65/o65.c:1391 with src/ld65/o65.c:1394 but doing so broke the drivers again :-((
2014-05-01 21:44:39 +02:00
Oliver Schmidt
9da0e8e600 Moved LOADER.SYSTEM description.
The LOADER.SYSTEM description is now available in the cc65 Wiki (https://github.com/cc65/cc65/wiki/LOADER.SYSTEM).
2014-03-15 18:09:55 +01:00
Oliver Schmidt
3f0af9b241 Have src/Makefile and libsrc/Make use disjoint work directories.
Building the clean target in src or libsrc should only delete stuff created by the make in those directories. Having both separated allows the Travis CI build to replace the native binaries with cross built binaries while keeping everything else.
2014-03-05 23:24:35 +01:00
Oliver Schmidt
4452156d1a Avoid indirect jmp with unknown vector address. 2014-01-26 18:10:01 +01:00
Oliver Schmidt
94eb2a2ed7 Some fine tuning of the mouse driver interface harmonization. 2014-01-17 21:09:15 +01:00
Oliver Schmidt
4065cb1983 Harmonized interface between mouse drivers and callbacks.
The Apple2 doesn't have sprites so the Apple2 mouse callbacks place a special character on the text screen to indicate the mouse position. In order to support the necessary character removing and redrawing the Apple2 mouse driver called the Apple2 mouse callbacks in an "unusual way". So far so (sort of) good.

However the upcoming Atari mouse driver aims to support both "sprite-type" mouse callbacks as well as "text-char-type" mouse callbacks. Therefore the interface between mouse drivers and callbacks needs to be extended to allow the mouse callbacks to hide their different types from the mouse driver.

The nature of this change can be seen best by looking at the Apple2 file modifications. The CBM drivers and callbacks (at least the current ones) don't benefit from this change.
2014-01-15 22:47:59 +01: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
Oliver Schmidt
5ed1fac0d6 Use unique variables for cc65 toolchain.
Originally I used the usual variables (like $(CC) and $(CFLAGS) ) but after
all this doesn't make sense as any predefined values and/or user defined
settings can only be wrong.
2013-06-04 23:39:00 +02:00
Oliver Schmidt
b0dd6c614f Added library reference tgi_libref to TGI interface. 2013-06-01 12:42:00 +02:00
Oliver Schmidt
ae409e4978 Added library reference ser_libref to SER interface. 2013-06-01 11:03:14 +02:00
Oliver Schmidt
744abda24f Added library reference mouse_libref to MOU interface. 2013-06-01 00:53:17 +02:00
Oliver Schmidt
23650cb946 Added library reference joy_libref to JOY interface. 2013-06-01 00:36:08 +02:00
Oliver Schmidt
619b215260 Added library reference em_libref to EMD interface.
Occasionally dynamically drivers suffer from not being to refer to
content in the C library. Therefore I added a mechanism to allow
a C library for a certian target to define a symbol that will be
handed over to dynamic drivers for that target. Then the drivers
can use their refernce to that symbol to access content in the C
library.
2013-06-01 00:11:31 +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
54c54f8499 Include targetutil intermediates in dependency handling. 2013-05-09 09:27:36 +02:00
Oliver Schmidt
e4347b5c74 Removed unintentionally committed intermediate file. 2013-05-09 09:18:19 +02:00
Oliver Schmidt
092653cb5b Added support for building targetutils. 2013-05-09 01:12:26 +02:00
Oliver Schmidt
81e467cdc2 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:15:30 +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
Oliver Schmidt
b1c38729d0 Exclude apple2enh-only functionality from apple2 biuld on source code level. 2013-05-01 22:02:47 +02:00
Oliver Schmidt
6891862bbe Adjusted include directive for local header. 2013-05-01 21:53:30 +02:00
ol.sc
4a5bd362ac Removed unnecessary include.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5988 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-14 16:16:57 +00:00
ol.sc
7c9171ee87 Moved IRQ hooking / unhooking from startup code to constructor / destructor to avoid linking in the hooking / unhooking code (and callirq) for the majority of cc65 prorams not linking in interruptors.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5985 b7a2c559-68d2-44c3-8de9-860c34a00d81
2013-02-12 22:39:38 +00:00
ol.sc
6860ac7dfd Introduced static standard drivers.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5891 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-11-01 19:53:47 +00:00
ol.sc
1bba8355da Fixed typo.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5889 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-31 23:39:58 +00:00
ol.sc
a3c940e315 Convert dynamically loadable drivers into statically linkable drivers and add them to the target libraries.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5887 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-29 20:26:26 +00:00
ol.sc
89d4f4a90c Introduced getcurrentdevice() and implemented it for CBM and Apple.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5863 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-21 14:35:17 +00:00
ol.sc
272b8e7185 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.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5852 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-15 21:59:51 +00:00
ol.sc
e0efad70bf Removed TABs.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5849 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-14 12:51:02 +00:00
ol.sc
61d4b6b03f Removed DIO specific typedefs which were just aliases to basic types and replaced the term 'drive' with 'device' in order to harmonize with the recently added device.h.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5847 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-10-11 18:22:49 +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
dccb0c8dde We now don't define the memory area RAM anymore. So use the segment STARTUP - as done in crt0.s.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5729 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 22:58:03 +00:00
ol.sc
610bb14988 Avoid mixing of memory areas and segments in address computations (and made move of segment INIT somewhat more readable).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5726 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-16 22:13:58 +00:00
ol.sc
95686b169e Moved actual computation of DOS 3.3 header to linker configurations:
- This will allow for different "formulas".
- This brings things together in one place.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5716 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-14 20:44:35 +00:00
ol.sc
9cc99876b2 Moved Apple EXEHDR to separate module (similiar to CBMs).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5708 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-06-10 21:05:51 +00:00
ol.sc
80a7a8df00 Moving the quit-hook towards the end of page 3 as far as possible slightly increases the compatibility with BIN programs making use of page 3 themselves.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5358 b7a2c559-68d2-44c3-8de9-860c34a00d81
2012-01-02 11:09:25 +00:00
uz
7ed3fdc803 Fixed range errors when negative numbers where used as bytes. This wasn't
flagged by older ca65 versions because of errors in the range checks.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5166 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-08-15 15:23:31 +00:00
uz
4026a28c60 Added a new flags byte to the TGI headers. Bumped the API version.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5083 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-07-17 11:23:27 +00:00
ol.sc
ba7b4d5e86 Back to revision 3818: The value of COLOR_WHITE changed back from 3 to 1.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5023 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-05 20:43:10 +00:00
ol.sc
b4fda77b6c The TGI kernel will call SETVIEWPAGE(0) after calling INIT so there's no need to switch to the first page here.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5022 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-03 21:40:51 +00:00
ol.sc
4aa00e84e1 Removed tgi_load() and all corresponding infrastructure. The idea behind tgi_load() was to be able to describe a TGI mode in a target-neutral way by resolution and colordepth. However it turned out that there arn't any cc65 targets sharing any resolution. As a result the only working target-independent approach for a TGI program is to call tgi_loaddriver(tgi_stddrv); and then look up the resolution provided - and to adapt to that resolution.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5016 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-05-02 10:38:48 +00:00
ol.sc
14cfadbc75 Computed pixel aspect ratio (PAR) by presuming a display aspect ratio (DAR) of 4/3 for a classic CRT and using the given driver resolutions as storage aspect ratio (SAR).
git-svn-id: svn://svn.cc65.org/cc65/trunk@5001 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-04-30 12:46:03 +00:00
ol.sc
905c1252f5 No need to explicitly set two page in 40 column mode as two pages are the default anyway.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4999 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-04-28 13:06:37 +00:00
ol.sc
5e37ed1a16 Target-specific black & white values for use by the target-shared TGI kernel
git-svn-id: svn://svn.cc65.org/cc65/trunk@4993 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-04-25 17:11:23 +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
98fdd6f792 Added toascii().
git-svn-id: svn://svn.cc65.org/cc65/trunk@4991 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-04-22 12:14:28 +00:00
ol.sc
a25d9bdf4b Improved exec():
- Copy the pathname to $280 for SYS programs
- Make sure 80 column firmware is off (which btw. switches to the normal character set) which should increase program compatibility
Now "only" cmdline support should be left to do.

git-svn-id: svn://svn.cc65.org/cc65/trunk@4976 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-02-11 23:22:26 +00:00
ol.sc
e4aa2a549b Added MACHID - we'll need it sooner or later...
git-svn-id: svn://svn.cc65.org/cc65/trunk@4975 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-02-11 23:15:20 +00:00
ol.sc
56d04f523f Added first implementation of exec(). No support for commandline parameters so far.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4969 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-02-06 22:27:31 +00:00
ol.sc
110f911ccb Introduced constructor to raise the ProDOS 8 file level - and extended the destructor to restore the file level again. This is a prerequisite to allow the upcoming exec() to open a file before the destructors run and continue reading from of it after the destructors have run.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4955 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-29 21:43:26 +00:00
ol.sc
9e31f7fb63 Set the priority of the main() args constructor to 24 simply be cause most other targets do - and adjust the priority of the dos detection constructor to stay higher than the main() args constructor.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4954 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-29 21:39:17 +00:00
ol.sc
d2f59fb8b0 The constructor doesn't have any interaction with other constructors so there seems to be no need for a priority at all.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4953 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-29 21:36:18 +00:00
uz
a9990fbcf3 Changed priorities of destructors so atexit will be called before open files
are closed on exit, so atexit handlers may close the files themselves or
whatever is necessary for a clean shutdown.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4939 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-28 10:55:03 +00:00
ol.sc
76c543a26f Saved two bytes.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4924 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-26 22:11:23 +00:00
ol.sc
b4c237b2b1 Minor beautification.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4922 b7a2c559-68d2-44c3-8de9-860c34a00d81
2011-01-26 21:37:42 +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
uz
fa1b5047dd Fixed order of options in call to ld65, which became important after the
latest changes.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4843 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-09 21:33:14 +00:00
ol.sc
07680d2376 Read number of total blocks from ProDOS 8 volume directory header - and fall back on the constant 280 only for non-ProDOS 8 disks.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4750 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-17 19:16:25 +00:00
ol.sc
f15910e5f1 Made use of the new common __directerrno and __mappederrno function.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4749 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-17 19:13:07 +00:00
ol.sc
b1dab3a37d Use MLI error names from ProDOS 8 Technical Reference Manual Quick Reference Card (and not Section 4.8 !).
git-svn-id: svn://svn.cc65.org/cc65/trunk@4748 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-17 19:11:51 +00:00
ol.sc
b9740f52e2 Saved one byte.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4747 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-17 19:07:57 +00:00
ol.sc
f1d7044b7c Adjusted parameter handling to match prototype.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4733 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-07 22:28:14 +00:00
ol.sc
51d4a5bf79 Use MLI error names from ProDOS 8 Technical Reference Manual (and ProDOS 8 Technical Note #21).
git-svn-id: svn://svn.cc65.org/cc65/trunk@4724 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-16 21:21:01 +00:00
ol.sc
a0359724ff - Use ProDOS 8 unit number as parameter.
- Don't access the drive, just check its presence.

git-svn-id: svn://svn.cc65.org/cc65/trunk@4723 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-16 21:19:47 +00:00
ol.sc
ab068d43e3 Use MLI error names from ProDOS 8 Technical Reference Manual (and ProDOS 8 Technical Note #21).
git-svn-id: svn://svn.cc65.org/cc65/trunk@4722 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-16 21:16:14 +00:00
ol.sc
148a6569e5 Clear __oserror on success.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4721 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-15 21:44:18 +00:00
ol.sc
155c5629a9 Make use of the new common __directerrno and __mappederrno function.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4720 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-15 20:38:05 +00:00