31d2fff060Rename SegRange to span. Write out the size instead of the end offset so we can save some bytes in the object file.
uz
2011-08-04 12:49:59 +00:00
f04d65a662Generalized the CodeRange structure used for line infos and renamed it to Span.
uz
2011-08-04 12:31:37 +00:00
f0eaf6b1b4Fixed an off-by-one error.
uz
2011-08-03 19:37:53 +00:00
3cf41ed2e7Fix a problem reported by Christopher Pow: cc65_lineinfo_byname doesn't handle multiple line infos for one line correctly. It did only return one randomly chosen line info instead of all.
uz
2011-08-03 18:39:08 +00:00
ca0877adb6Fixed an error in the special purpose allocator in expr.c.
uz
2011-08-02 16:46:47 +00:00
1df46aed11Fixed a memory leak.
uz
2011-08-02 16:16:37 +00:00
7d69135896Fixed another memory leak.
uz
2011-08-02 15:00:33 +00:00
c25694f54dFixed another memory leak.
uz
2011-08-02 14:49:33 +00:00
417a57fabdNew tgi_settextdir() function.
uz
2011-08-01 21:00:51 +00:00
03b147e71eFixed a bug (Greg King).
uz
2011-08-01 20:59:33 +00:00
1f95085ffeRead scopes from the object files.
uz
2011-08-01 20:54:42 +00:00
67692e51f1Fixed a rather large memory leak.
uz
2011-08-01 20:49:59 +00:00
edca940a86Declaration of tgi_settextdir() added.
uz
2011-07-31 22:17:21 +00:00
2b32c14661Preparations for adding scopes.
uz
2011-07-31 21:32:46 +00:00
0dbe4454a5There is no longer a scope type SCOPE_PROC.
uz
2011-07-31 17:11:10 +00:00
97cb025964Remove SCOPE_PROC. It's a .SCOPE with an owner symbol.
uz
2011-07-31 17:10:33 +00:00
72a13e1a21Write scopes in id order, so we don't need to write out the id itself. Add the size of the scope to the output file and a flag bit that tells us if the scope has a size.
uz
2011-07-31 15:37:51 +00:00
8ec6f66bf0Output the scope type in readable format.
uz
2011-07-31 14:01:27 +00:00
4191eb7718Move scope type definitions to common/
uz
2011-07-31 14:01:11 +00:00
dd3a841b1aAdd the parent scope/symbol to the debug symbol attributes.
uz
2011-07-31 13:28:54 +00:00
7466b89ed1Document new command line switches.
uz
2011-07-31 12:27:44 +00:00
4ad597ff39Allow to dump scope information.
uz
2011-07-31 12:25:44 +00:00
359e119a6bWrite scope information to the object file.
uz
2011-07-31 12:25:02 +00:00
9c55586569Renamed tgi_textheight -> tgi_gettextheight, tgi_textwidth -> tgi_gettextwidth tgi_textstyle -> tgi_settextstyle and tgi_textscale -> tgi_settextscale.
uz
2011-07-17 18:36:12 +00:00
83d67e930aWorked on text scaling. This is an intermediate version which doesn't work.
uz
2011-07-17 18:27:01 +00:00
928f675e4bSmall change in the vector font format.
uz
2011-07-17 17:15:54 +00:00
e33bd9a44cCheck for end-of-data while reading the vector definitions. Other small changes.
uz
2011-07-17 16:46:06 +00:00
dcd91b5d53Updated link to reference document for illegal opcodes.
uz
2011-07-17 15:26:22 +00:00
313e27035dFix meaning of ALR.
uz
2011-07-17 15:24:53 +00:00
4026a28c60Added a new flags byte to the TGI headers. Bumped the API version.
uz
2011-07-17 11:23:27 +00:00
fea0ac67c3Parse #pragma align() (does nothing currently).
uz
2011-07-12 19:35:49 +00:00
f36f6922f2Fixed a typo.
uz
2011-07-10 15:00:37 +00:00
ca9d802d1eFix width calculation for bitmap font output. Use new 8x16 multiplication routines to save some cycles.
uz
2011-07-10 14:59:29 +00:00
655ffe5dcdMake the 8x32 unsigned multiplication routine C callable.
uz
2011-07-10 14:52:35 +00:00
3806cd472dAdded new 8x16 unsigned multiplication routine.
uz
2011-07-10 14:51:03 +00:00
3812c5c854Added labels for umul16x16r16 and umul16x16r16m.
uz
2011-07-10 14:50:18 +00:00
bf6b0b9eb7Check for macros within .STRUCT/.ENUM.
uz
2011-07-08 09:55:17 +00:00
241afdc738Don't search twice for a macro.
uz
2011-07-08 09:22:26 +00:00
49cdfcf5b0The BASIC stub does encode the start address with only 4 digits. Add a check so the linker will not generate an invalid header for program files with larger start addresses.
uz
2011-07-08 08:58:41 +00:00
e531e5abd1Removed __fastcall__ declarations for functions without parameters.
uz
2011-07-07 20:19:35 +00:00
d18fd210aaThe line counter got confused for lines with more than 256 chars. Removed the restriction alltogether, so lines with arbitrary length should be handled correctly. Not that it is of much use for an assembler, but this has really been a somewhat ancient limitation.
uz
2011-07-07 20:07:29 +00:00
9d7edad0ccFixes for program arguments and TAP header by Stefan Haubenthal.
uz
2011-07-03 13:23:07 +00:00
a08222048aInitialize variables to avoid compiler warnings.
uz
2011-07-03 12:24:54 +00:00
a6ca0b2093Fixed a bad styled sentence.
uz
2011-07-02 20:54:39 +00:00
ad1c31b049Fixed order of rules, so not only the tgi driver gets built.
uz
2011-06-22 08:19:59 +00:00
eae262b7c3NES character mode TGI driver. By Stefan Haubenthal.
uz
2011-06-21 20:34:18 +00:00
3f2f3baa27Removed an unused function.
uz
2011-06-17 19:58:53 +00:00
70d5eb7456Fix it's -> its where applicable. (Stefan Haubenthal).
uz
2011-06-17 18:56:55 +00:00
1a0571fdc3Change .CONDES -> .INTERRUPTOR (Stefan Haubenthal).
uz
2011-06-17 18:56:27 +00:00
44b829cc01Read and allow access to the segment for (segment based) symbols.
uz
2011-06-14 21:18:44 +00:00
c768fc7373For segment based symbols, add information about the segment to the debug info.
uz
2011-06-14 19:25:50 +00:00
82bab7fb89Merge duplicate file entries (same name, size and timestamp).
uz
2011-06-14 18:26:22 +00:00
57fb2571a1Accept a file attribute for symbols but don't do anything with it for now.
uz
2011-06-14 16:45:48 +00:00
244ca4daf7Allow to leave of the end address of a range if it is identical to the start address. Currently unused.
uz
2011-06-13 21:43:26 +00:00
51ccf2d576Accept a segment attribute for symbols, but don't do anything with it for now.
uz
2011-06-13 21:16:40 +00:00
795d9e1a1cMark the symbol that is the name of a scope with the size of that scope (previously only the scope itself had that size). Pass the size of symbols through the object file to the linker. Bump the object file version and adjust object file reading tools (od65, ar65) to this change. Read the size in the linker and output it in the debug info. Bump the minor version number of the debug info. Read the size and allow to access it via the API. Do better version checking for the debug info and try to be smarter when encountering unknown keywords to improve support for newer minor versions.
uz
2011-06-13 18:43:50 +00:00
7c2104c3cbAdded docs for interruptor support. By Stefan Haubenthal.
uz
2011-06-13 17:25:36 +00:00
6d0db06931interruptor support by Stefan Haubenthal
cpg
2011-06-13 16:42:45 +00:00
79fad36b41Use slightly optimized character translation settings for the CBM machines. Suggested by Greg King.
uz
2011-06-13 12:13:08 +00:00
00f57bbc87Fix/workaround for a problem with nested macros.
uz
2011-06-13 10:03:26 +00:00
4709e8251eFixed the same problem as in the last change for the final token of .define style macros.
uz
2011-06-13 08:55:48 +00:00
ff9841d7b5Fix wrong line info sometimes output for macros: When macro parameters were expanded, the line info came from the parameter replacement list, but was marked as coming from the macro. Now parameter replacement lists don't change the line info.
uz
2011-06-13 08:53:41 +00:00
d1426aaa43Finished implemenation of commands to delete macros. Added the new commands to the docs.
uz
2011-06-12 21:29:07 +00:00
eaa45269e7First implementation of .UNDEF for deleting a macro.
uz
2011-06-11 22:18:48 +00:00
279ad05150Added routines to remove an entry from the hash table.
uz
2011-06-11 18:17:54 +00:00
ce0d51d55aFixed an error: An .ELSE without an .IF caused a null pointer dereference.
uz
2011-06-09 11:27:33 +00:00
acb1699017Improve the performance of the routine that determines the overall .IF condition.
uz
2011-06-09 11:23:37 +00:00
15fc094c7aAdd recursive scanning for .define style macros: Replacement using .define is done not only when the macro is parsed, but also when it is expanded.
uz
2011-06-08 21:09:40 +00:00
7c926ada70Fixed a problem: Removing duplicate file entries (entries with the same name) isn't allowed, since these entries may be referenced. Since we must be able to handle duplicate names anyway (they may be old/new versions of one file), we can also have duplicates in general. Cleanup the list using time stamps and sizes before returning it to the caller.
uz
2011-06-08 20:53:29 +00:00
c65292b78dFixed an error: The amount of fill bytes for a section was declared as an unsigned char, so larger values got truncated making alignments larger than $100 unreliable.
uz
2011-06-08 18:33:34 +00:00
c17816fafdAdded more debug output.
uz
2011-06-08 18:28:21 +00:00
8cb4788e13Fix a compile problem with the Watcom compiler.
uz
2011-06-08 06:51:05 +00:00
f40c977623Added (again) IRQ support for the Oric Atmos by Stefan Haubenthal. This time with the correct patch for atmos.inc.
uz
2011-06-07 21:22:02 +00:00
5db7604effDon't allow too many nested macro expansions. Until now, it was possible to send the assembler in an endless loop by a recursive macro without end condition or a set of macros that called each other.
uz
2011-06-07 21:17:35 +00:00
f8089b98c1Limit the number of additional line infos printed in case of an error or warning.
uz
2011-06-07 21:15:16 +00:00
7db7f34d91Fix an error with .ELSEIF: The condition must only be evaluated if the .ELSEIF is inside an .IF which had a TRUE condition.
uz
2011-06-07 17:16:18 +00:00
f0a6653bd1Added a comment about the fix explaining why the given order of calls is necessary.
uz
2011-06-05 14:47:28 +00:00
46f1285208Fixed an error in macro expansion: If the first token after the macro name was a .define style macro, the assembler run into an internal error, because the expansion of the second macro was started before the first one
uz
2011-06-05 14:45:37 +00:00
6a48359d23Fix a problem with conditional assembly: The scanner has to be switched into raw token mode when skipping a section of input because otherwise pseudo functions may trigger errors.
uz
2011-06-05 14:28:56 +00:00
6a56201046Remove declarations for stuff that has never been there.
uz
2011-06-05 14:24:51 +00:00
9c53f8879cFixed a problem in GetSymParentScope, where an error in the assembler input somewhere before could lead to an invalid memory access.
uz
2011-05-31 14:51:21 +00:00
9c267dab89The terminating zero was missing in several places where a string buffer was copied to CurTok.SVal.
uz
2011-05-30 21:56:27 +00:00
f2517269adFix problem with output of sprintf when %s format spec is used.
uz
2011-05-30 21:37:34 +00:00
c4492130c4Reverted the last change, because it doesn't compile.
uz
2011-05-24 06:48:02 +00:00
5df93d5561Add support for interruptors (Stefan Haubenthal).
uz
2011-05-23 17:35:25 +00:00
9c17760227Corrected screensize function by Stefan Haubenthal.
uz
2011-05-13 15:31:26 +00:00
d6ac067afcDocument the aspect ratio functions.
uz
2011-05-10 18:39:06 +00:00
611563f899Fixed typoes in cl65's --help message. By Greg King.
uz
2011-05-09 16:33:38 +00:00
ba7b4d5e86Back to revision 3818: The value of COLOR_WHITE changed back from 3 to 1.
ol.sc
2011-05-05 20:43:10 +00:00
b4fda77b6cThe TGI kernel will call SETVIEWPAGE(0) after calling INIT so there's no need to switch to the first page here.
ol.sc
2011-05-03 21:40:51 +00:00
a4b6b6004aRemoved 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.
ol.sc
2011-05-03 21:28:20 +00:00
73a7cf8c8cAdded commands to copy the extra-object modules for all targets. These two patches speed up library building: Do the "runtime" directory before doing the platform directory, because platform drivers need a file from the runtime directory (the old code ran "runtime/Makefile" three times for each target!!!). Clean only the shared directories -- the target directories don't need cleaning. Changes by Greg King.
uz
2011-05-02 19:29:05 +00:00
bc9e55cbab_tgi_getaspectratio was declared global twice, while tgi_setaspectratio was missing (Greg King).
uz
2011-05-02 19:18:38 +00:00
d72d373e83Computed 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).
ol.sc
2011-05-02 11:23:30 +00:00
4aa00e84e1Removed 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.
ol.sc
2011-05-02 10:38:48 +00:00