Fixed a problem in line info generation: Recorded token lists emitted the
tokens using the standard ASM line info, overwriting the existing one from the
real source line. Since this info was lost, and couldn't be recovered, the
original source location was omitted in error messages.
Added a new attribute IMPORT to the CONDES definition of the FEATURES section.
If this attribute is defined, an import for the given symbol is added to the
module that contains the condes declaraction. Using this feature, it is
possible to force linkage of a module that contains an export for the symbol.
ol.sc [Thu, 1 Nov 2012 20:25:23 +0000 (20:25 +0000)]
Refer to recently static drivers recently added to the C library and harmonized typing of static driver addresses with recent additions of static standard drivers to header files.
uz [Sun, 28 Oct 2012 19:04:09 +0000 (19:04 +0000)]
OptCmp3 removed a compare to zero instruction preceeded by a load despite the
fact that the carry flag (which is set by the compare but not by the load) had
been used later.
uz [Sat, 27 Oct 2012 19:16:35 +0000 (19:16 +0000)]
The message "Dropping x additional line infos" had been displayed even if
there weren't any more line infos to display, because they had the wrong type.
uz [Sat, 27 Oct 2012 11:49:37 +0000 (11:49 +0000)]
Fixed a problem reported by thefox: A symbol reference with an explicit scope
specification that is used when the scope is already closed, has be made a
trampoline symbol later, referencing a symbol outside of the scope explicit
specified.
ol.sc [Thu, 25 Oct 2012 20:08:18 +0000 (20:08 +0000)]
- Introduced Apple GEOS specific key codes.
- Reorganized color defines.
- Changed GEOS 64/128 'enter' key code from 10 to 13 (I've no idea how this could have been wrong but but at least VICE delivers 13).
ol.sc [Tue, 23 Oct 2012 19:42:57 +0000 (19:42 +0000)]
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.
ol.sc [Mon, 22 Oct 2012 17:37:10 +0000 (17:37 +0000)]
On Cywin with its (too) expensive fork() this change cuts down minimal re-build times from nearly 2 minutes to approx. 6 seconds. Additionally it looks in all directories in the first list for "override" files, not just in one.
ol.sc [Fri, 19 Oct 2012 07:19:08 +0000 (07:19 +0000)]
The 128+x character codes were very likely intended to be interpreted by cputs and translated into explicit drawing of short lines. However there was no code to do so at all. Given that the emulation of a characterbased API on a graphics system isn't the premier choice for a sophisticated UI it doesn't seem appropriate to invest into actually implementing the approach described above. Therefore I just replaced the character codes with a '+'.
ol.sc [Fri, 19 Oct 2012 06:53:55 +0000 (06:53 +0000)]
Removed cpputs/cpputsxy as they don't work and as there's really very little use for proprietary extensions of a character API emulated on a graphics systems.
ol.sc [Tue, 16 Oct 2012 21:39:40 +0000 (21:39 +0000)]
Implemented __syschdir on CBM. As getcwd returns a cached directory any direct access to __curunit would cause inconsistencies. Therefore __curunit was renamed to curunit to prohibit user access.
ol.sc [Tue, 16 Oct 2012 06:34:38 +0000 (06:34 +0000)]
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.
ol.sc [Mon, 15 Oct 2012 21:59:51 +0000 (21:59 +0000)]
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.
ol.sc [Thu, 11 Oct 2012 18:22:49 +0000 (18:22 +0000)]
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.
ol.sc [Wed, 10 Oct 2012 19:32:30 +0000 (19:32 +0000)]
initcwd will be called from the upcoming __syschdir so it has to be moved out of the INIT segment - and so it doesn't make sense anymore to keep devicestr as separate module anymore as the integration with initcwd allows to omit the jmp from the latter to the former.
ol.sc [Tue, 2 Oct 2012 16:41:40 +0000 (16:41 +0000)]
Turned the 'ST' status byte into a symbol resolved by the linker in order to allow to use it from code living in the 'cbm' directory.
Moved getdevice.s from 'c64'/'c128' to 'cbm' making use of the new 'ST' setup.
Turned the 'ST' status byte into a symbol resolved by the linker in order to allow to use it from code living in the 'cbm' directory.
Moved getdevice.s from 'c64'/'c128' to 'cbm' making use of the new 'ST' setup.
Adjusted according to the recently updated readdir() doc that now says:
"On several platforms, namely the CBMs and the Atari, the disk drives get confused when opening/closing files between directory reads. So for example a program that reads the list of files on a disk, and after each call to readdir, opens the file to process it, will fail.
Possible solutions are reading the directory into memory before processing the file list, or to reset the directory by seeking to the correct position after opening/closing a file:
seekdir (DIR, telldir (DIR));
Platforms known to work without problems are: Apple."
uz [Mon, 17 Sep 2012 15:09:39 +0000 (15:09 +0000)]
Fixed a bug reported by thefox: The .CHARMAP command must not accept indices
or character codes with a value of zero. The assembler runs into a CHECK in
tgttrans anyway if the index is zero.
Added a "fillval" attribute to the segment definition. When given, it
overrides the value from the memory area for all space that lies within the
segment itself.
uz [Wed, 22 Aug 2012 21:24:54 +0000 (21:24 +0000)]
Do not try to dump an expression that has errors (circular references in this
case) because the dump routine doesn't detect this and runs into an endless
recursion.
uz [Mon, 20 Aug 2012 20:07:05 +0000 (20:07 +0000)]
New option --relax-checks that disable the check for a match beween size oif
an expression and the address size. Will allow short branches between segments
among other things. Suggested by Spiro Trikaliotis.
ol.sc [Wed, 8 Aug 2012 21:23:18 +0000 (21:23 +0000)]
Added somewhat more complex demo. It looks for emdrivers in the current directory and tries to load them until one loads successfully. In that case it "streams" its overlay files into extended memory. Finally it loads its overlays from extended memory (or disk) and calls into them.