e1227aa402Fix list of CBM kernal level functions.
uz
2012-07-01 12:50:05 +00:00
ec8234c521Fixed naming of cbm_clall.
uz
2012-07-01 12:45:26 +00:00
e03feeefaeUnified names of CBM kernal level functions and completed the list of functions in the cbm.h header file.
uz
2012-07-01 12:36:44 +00:00
af799c922fFixed wrong filename for module c_getin.s
uz
2012-07-01 11:32:59 +00:00
49542644dfAdded missing function cbm_k_getin, which was in cbm.h but an implementation was missing.
uz
2012-07-01 11:30:41 +00:00
43ea0e3df9Move evaluation of the argument for .BANK into the linker. It is otherwise too restricted, since no imported symbols may be used.
uz
2012-06-30 17:18:03 +00:00
3e95d3048fIgnore generated files.
uz
2012-06-29 15:05:04 +00:00
c6ee5a8418Added dummy classification macros for the remaining targets - even for those that don't have the field 'd_type'.
ol.sc
2012-06-25 20:23:54 +00:00
92a0632634Added register info for the aslaxy and shlaxy routines.
uz
2012-06-24 22:05:56 +00:00
b9ffe5de13Add another entry point to the shift left routine, that shifts A/X by Y without going over the stack.
uz
2012-06-24 22:04:00 +00:00
e3fb0233c8Added secondary linker config for Atari overlays (located below main program like Apple II).
ol.sc
2012-06-24 21:23:25 +00:00
9b56f8086bMade overlaydemo compatible with the Atari: - 8.3 overlay filenames - exit only after keypress
ol.sc
2012-06-24 21:15:39 +00:00
1bafd55557Minor adjustment to Apple II coding style (two spaces for macro definitions).
ol.sc
2012-06-24 19:59:49 +00:00
15546f8880Added Apple II classification macros for file types from struct dirent.
ol.sc
2012-06-24 19:49:15 +00:00
43d0d2fb78Special handling for a few more runtime functions.
uz
2012-06-24 14:29:27 +00:00
7aefd9b4e7Added classification macros for file types from struct dirent.
uz
2012-06-24 14:23:33 +00:00
5bc67cdaeeMove definitions for CBM file types into its own header file, since these definitions are needed for file type macros in dirent.h. Unify names for the include files.
uz
2012-06-24 13:52:06 +00:00
87d19de33fOptSize2 needs an extra removal of duplicate transfers.
uz
2012-06-23 19:34:48 +00:00
ec900bc200Centralize generation of register infos for a code segment. This means that all optimizer functions can rely on it.
uz
2012-06-23 17:33:31 +00:00
d5810a818cAdded two replacements for negax. Shift right for signed values can be treated like unsigned if X is known to be zero.
uz
2012-06-23 16:58:05 +00:00
4333c76710The OptNegXXX function were actually handling bnega... runtime stuff. Renamed them accordingly.
uz
2012-06-23 16:17:56 +00:00
dccb0c8ddeWe now don't define the memory area RAM anymore. So use the segment STARTUP - as done in crt0.s.
ol.sc
2012-06-16 22:58:03 +00:00
f6ab932b32The Apple2 linker configs *-loader.cfg only differed in the presumed HIMEM from the default config. Rather have that value adjustable.
ol.sc
2012-06-16 22:48:45 +00:00
4647e98071Adjusted comment to recent changes.
ol.sc
2012-06-16 22:24:06 +00:00
610bb14988Avoid mixing of memory areas and segments in address computations (and made move of segment INIT somewhat more readable).
ol.sc
2012-06-16 22:13:58 +00:00
7691da610bI just don't like 'file = "" '.
ol.sc
2012-06-16 21:12:56 +00:00
b7b7de55d0Replaced "throwing away" of memeory area HEADER with the much more elegant "not referring" of symbol __EXEHDR__. This was recently made possible for the asm program config.
ol.sc
2012-06-16 21:06:13 +00:00
094ffa1984Renamed segment 'HIGHCODE' to 'LC because: 1. Its use isn't limited to code. It may as well be used for rodata. 2. This fits better to the new __LCADDR__ / __LCSIZE__ parameters.
ol.sc
2012-06-16 20:57:49 +00:00
c9555b328aThe Apple2 linker configs basically cover two dimension of settings: 1. BIN vs. SYS vs. Loader 2. With Quit code vs. w/o Quit code vs. full LC
ol.sc
2012-06-16 20:36:34 +00:00
ec1f955a6eFor commutative operators processed by hie_internal, if the left side is a constant, exchange the order of the operands so that better code can be generated.
uz
2012-06-16 18:12:24 +00:00
b5d88fdeddMark commutative operators as such (no change in code until now).
uz
2012-06-16 15:49:53 +00:00
c1d7ed26e8Unified the "store via pointer" optimization routines.
uz
2012-06-16 15:46:45 +00:00
7c9b27c048Be more flexible when detecting a special sequence that can be optimized.
uz
2012-06-15 20:51:14 +00:00
b014bd8196Added basic Apple linker config for assembler programs (similiar to C64).
ol.sc
2012-06-14 20:59:08 +00:00
95686b169eMoved actual computation of DOS 3.3 header to linker configurations: - This will allow for different "formulas". - This brings things together in one place.
ol.sc
2012-06-14 20:44:35 +00:00
9142a300c1Another optimization for array stores.
uz
2012-06-12 18:11:53 +00:00
383157e743Size optimizations.
uz
2012-06-11 18:16:17 +00:00
c66185259bExtend OPtShift3 to shift counts larger than 1.
uz
2012-06-11 17:58:32 +00:00
22078ba924The new module was missing from the Watcom makefile.
uz
2012-06-11 07:45:47 +00:00
cb9ef2f96aAdded a forgotten header file.
uz
2012-06-11 07:06:24 +00:00
8dc74f33daAnother optimization for right shift of the sum of two bytes.
uz
2012-06-10 22:15:00 +00:00
878f469fc8Removed a unnecessary duplicate call to one routine.
uz
2012-06-10 21:47:52 +00:00
9cc99876b2Moved Apple EXEHDR to separate module (similiar to CBMs).
ol.sc
2012-06-10 21:05:51 +00:00
cf509a775dMoved "store through pointers" optimizations into its own file and added another one.
uz
2012-06-10 20:09:40 +00:00
4b80a3b9cdAdded new pushl0 runtime function.
uz
2012-06-10 19:23:15 +00:00
85b25b3d22Added an entry point to push a 32 bit long value.
uz
2012-06-10 19:15:52 +00:00
efb4cc9e37Rearrangements for smaller size of generated code.
uz
2012-06-10 19:02:54 +00:00
c03fd881e3Changes for better code generation.
uz
2012-06-10 18:55:22 +00:00
130e8fd090Changed the code so that it better suits the code generation of the compiler (which means, the resulting code is shorter).
uz
2012-06-10 18:32:38 +00:00
bfd0f58686Shortened the code.
uz
2012-06-10 18:25:22 +00:00
cc5fd1dd72Replaced (broken) assert() with #error and added a source bitmap.
ol.sc
2012-06-10 17:52:23 +00:00
a9d1d51f56Added demo applicaion showcasing sp65 in combination with GEOS.
ol.sc
2012-06-10 14:49:13 +00:00
45bf954fbeBetter define 'EXTBSS' to allow developer to memset() set it to zero on startup.
ol.sc
2012-06-10 12:37:32 +00:00
ffc06fcea3Apple 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'.
ol.sc
2012-06-08 21:46:51 +00:00
5cf9f585a6In error or warning messages, output the name of the library if this is relevant. It's otherwise difficult to know what happens when ar65 is called from within a makefile or similar.
uz
2012-06-07 19:59:51 +00:00
4e0cbcf33fReorder variables to take advangate of improved code generation.
uz
2012-06-07 13:31:32 +00:00
b916fae1ccGenerate special memcpy code if the target is less than 256 bytes in size and located at the stack bottom.
uz
2012-06-07 13:30:21 +00:00
0f7f7796b1Added info about the subysp function.
uz
2012-06-07 13:14:49 +00:00
cff1a6ffdbBe sure to check the availability of code entries before accessing them.
uz
2012-06-06 22:01:04 +00:00
61c1f6b270Added more to the list of "harmless" calls that do not interrupt a pushax/stackop sequence.
uz
2012-06-06 21:52:54 +00:00
fa69f31982Don't emit special code because it doesn't work well with the optimizer.
uz
2012-06-06 21:52:09 +00:00
fe1c4cd46bDetect an additional sequence that is used with pointers in register variables.
uz
2012-06-06 21:51:10 +00:00
279dc29b45Output the optimization steps that had changes when debugging is enabled.
uz
2012-06-06 21:50:10 +00:00
e92356cb36Added the test program for the POSIX directory routines.
uz
2012-06-06 18:31:58 +00:00
e219190e39Document changed behaviour of the output processors for sp65.
uz
2012-06-04 22:09:03 +00:00
e416092f70Similar changes as for the C output target: If the attribute "ident" is given, place the data into a .PROC with this name. Add additional constants named COLORS, WIDTH and HEIGHT within this .PROC.
uz
2012-06-04 19:29:39 +00:00
2f87dbc27eAllow a third, optional filename argument for cbm_opendir.
uz
2012-06-04 18:32:38 +00:00
e5cdab4544Fixed a C99ism.
uz
2012-06-04 07:48:37 +00:00
95413d0350Small optimization for shorter code.
uz
2012-06-03 16:49:23 +00:00
ed7db04ca5Added descriptions for all functions in dirent.h.
uz
2012-06-03 16:45:37 +00:00
ea51c5a4e2Parse the name passed to opendir().
uz
2012-06-03 15:48:32 +00:00
2a53124b15Don't set errno when the regular end of directory is reached. Plus minor code cleanup.
uz
2012-06-03 15:31:19 +00:00
c40b54ee6cImplemented rewinddir/seekdir.
uz
2012-06-03 15:11:32 +00:00
5f43589885Fix two place where the directory offset wasn't tracked correctly.
uz
2012-06-03 15:01:32 +00:00
55463bbf91Removed unnecessary include files.
uz
2012-06-03 14:32:15 +00:00
3a8365c445Added the telldir() function.
uz
2012-06-03 14:03:22 +00:00
a83bf3dc04Implement special read function that sets errno in case of a short read. Drop _dirskip in favour of the new function.
uz
2012-06-03 13:59:31 +00:00
9d0a2c3007Add comment about meaning of directory entry type.
uz
2012-06-03 13:58:29 +00:00
d5cf83debaFix output of segment sizes. It was broken after some changes to the format.
uz
2012-06-03 13:39:28 +00:00
ebca2991a3Moved most of the file type detection from cbm_dir.c into a new function called _cbm_filetype(). Added an assembler include file with the file type definitions from cbm.h. Added a first implementation of readdir() for the CBMs.
uz
2012-06-02 22:56:14 +00:00
eab5f250adNew function _dirskip that allows to skip an amount of bytes from the directory with error check.
uz
2012-06-01 19:23:34 +00:00
8087959e18New entry point to push something pointed to by ptr1 with index in Y.
uz
2012-06-01 19:19:45 +00:00
08b4ed1035Added the POSIX functions opendir() and closedir().
uz
2012-05-30 19:37:57 +00:00
6952703d69Added a header file for the internal representation of DIR.
uz
2012-05-29 21:39:40 +00:00
f6209f1344Added a struct dirent for the CBMs.
uz
2012-05-29 21:19:50 +00:00
64d3d9e41fAdd provisions to open a disk directory using open().
uz
2012-05-29 20:52:18 +00:00
4663245219Change data generation for C output. The ident attribute is now optional. Without it, just the data is output. With an identifier given, there will be additional #defines for xxx_COLORS, xxx_WIDTH, xxx_HEIGHT, and the data is places into an array with the given name.
uz
2012-05-28 11:35:44 +00:00
808f86f49fFixed a warning caused by an empty <itemize> section.
uz
2012-05-28 11:14:10 +00:00
293c279416Tape load and save functions for the Oric Atmos. By Stefan Haubenthal.
uz
2012-05-28 11:11:39 +00:00
47c87eb335Fixed an error: When guessing the address size of an expression used in an instruction that contains undefined symbols, and the effective address allows just one address size, use this size instead of the default data segment size.
uz
2012-05-25 16:28:46 +00:00
7d62062bd2Added an optimization for signed shift right.
uz
2012-05-09 18:00:27 +00:00
914c6a0ad8At least in the context of compacted bitmap handling it seems appropriate to abstract that the Apple DHGR screen has these dimensions.
ol.sc
2012-04-29 15:37:06 +00:00
7a55fb2c9bAdded reference to sp65.
ol.sc
2012-04-29 15:29:47 +00:00