]> git.sur5r.net Git - cc65/commitdiff
Changed multi-line C comments into another style. 128/head
authorGreg King <gregdk@users.sf.net>
Mon, 30 Jun 2014 09:10:35 +0000 (05:10 -0400)
committerGreg King <gregdk@users.sf.net>
Mon, 30 Jun 2014 20:51:07 +0000 (16:51 -0400)
The left side doesn't look unbalanced.

502 files changed:
include/6502.h
include/_6522.h
include/_6525.h
include/_6526.h
include/_heap.h
include/_vic2.h
include/apple2.h
include/apple2enh.h
include/c128.h
include/cbm.h
include/cbm610.h
include/cbm_filetype.h
include/cc65.h
include/conio.h
include/ctype.h
include/dbg.h
include/dio.h
include/em.h
include/em/em-kernel.h
include/errno.h
include/inttypes.h
include/joystick.h
include/joystick/joy-kernel.h
include/modload.h
include/mouse.h
include/o65.h
include/pen.h
include/pet.h
include/serial.h
include/stdint.h
include/stdlib.h
include/string.h
include/supervision.h
include/sys/utsname.h
include/tgi.h
include/tgi/tgi-vectorfont.h
include/time.h
libsrc/apple2/systime.s
libsrc/atari/exetrailer.s
libsrc/atari/system_check.s
libsrc/atari/systime.s
libsrc/atari/targetutil/w2cas.c
libsrc/atmos/systime.s
libsrc/c128/fast.s
libsrc/c128/systime.s
libsrc/c16/systime.s
libsrc/c64/systime.s
libsrc/cbm/cbm_load.c
libsrc/cbm/cbm_open.s
libsrc/cbm/cbm_read.s
libsrc/cbm/cbm_save.c
libsrc/cbm/dir.h
libsrc/cbm/dir.s
libsrc/cbm/opendir.c
libsrc/cbm/readdir.c
libsrc/cbm/seekdir.c
libsrc/cbm510/systime.s
libsrc/cbm610/systime.s
libsrc/common/_afailed.c
libsrc/common/_file.h
libsrc/common/_hextab.c
libsrc/common/_longminstr.c
libsrc/common/_printf.h
libsrc/common/_scanf.c
libsrc/common/_scanf.h
libsrc/common/abort.c
libsrc/common/bsearch.c
libsrc/common/errno.s
libsrc/common/errormsg.c
libsrc/common/fdopen.c
libsrc/common/fgetc.c
libsrc/common/fgetpos.c
libsrc/common/fgets.c
libsrc/common/fputc.c
libsrc/common/fputs.c
libsrc/common/free.s
libsrc/common/freopen.c
libsrc/common/fscanf.s
libsrc/common/fseek.c
libsrc/common/fsetpos.c
libsrc/common/ftell.c
libsrc/common/getchar.c
libsrc/common/getopt.c
libsrc/common/gets.c
libsrc/common/locale.c
libsrc/common/localtime.c
libsrc/common/malloc.s
libsrc/common/mktime.c
libsrc/common/pmemalign.c
libsrc/common/puts.c
libsrc/common/qsort.c
libsrc/common/realloc.c
libsrc/common/rewind.c
libsrc/common/sleep.c
libsrc/common/sscanf.s
libsrc/common/strqtok.c
libsrc/common/strtok.c
libsrc/common/strtol.c
libsrc/common/strtoul.c
libsrc/common/strxfrm.c
libsrc/common/system.c
libsrc/common/vfscanf.s
libsrc/common/vsscanf.s
libsrc/dbg/dbg.c
libsrc/em/em-kernel.s
libsrc/em/em_commit.s
libsrc/em/em_map.s
libsrc/em/em_use.s
libsrc/geos-common/common/_afailed.c
libsrc/geos-common/common/_poserror.c
libsrc/geos-common/common/abort.c
libsrc/geos-common/common/perror.c
libsrc/geos-common/common/sleep.c
libsrc/geos-common/dlgbox/messagebox.c
libsrc/geos-common/system/systime.c
libsrc/joystick/joy-kernel.s
libsrc/mouse/mouse_buttons.s
libsrc/mouse/mouse_hide.s
libsrc/mouse/mouse_ioctl.s
libsrc/mouse/mouse_move.s
libsrc/mouse/mouse_setbox.s
libsrc/plus4/systime.s
libsrc/serial/ser-kernel.s
libsrc/serial/ser_get.s
libsrc/serial/ser_put.s
libsrc/tgi/tgi-kernel.s
libsrc/tgi/tgi_arc.c
libsrc/tgi/tgi_ellipse.s
libsrc/tgi/tgi_getaspectratio.s
libsrc/tgi/tgi_getdefpalette.s
libsrc/tgi/tgi_geterror.s
libsrc/tgi/tgi_getmaxcolor.s
libsrc/tgi/tgi_getmaxx.s
libsrc/tgi/tgi_getmaxy.s
libsrc/tgi/tgi_getpalette.s
libsrc/tgi/tgi_gettextheight.s
libsrc/tgi/tgi_gettextwidth.s
libsrc/tgi/tgi_install_vectorfont.s
libsrc/tgi/tgi_ioctl.s
libsrc/tgi/tgi_lineto.s
libsrc/tgi/tgi_load_vectorfont.c
libsrc/tgi/tgi_pieslice.c
libsrc/tgi/tgi_setaspectratio.s
libsrc/tgi/tgi_setpalette.s
libsrc/tgi/tgi_settextdir.s
libsrc/tgi/tgi_settextstyle.s
libsrc/tgi/tgi_vectorchar.s
libsrc/zlib/uncompress.c
samples/enumdevdir.c
samples/fire.c
samples/geos/bitmap-demo.c
samples/geos/dialog.c
samples/geos/grphstr.c
samples/geos/inittab.c
samples/geos/menu.c
samples/geos/overlay-demo.c
samples/gunzip65.c
samples/hello.c
samples/mandelbrot.c
samples/multidemo.c
samples/nachtm.c
samples/overlaydemo.c
samples/plasma.c
samples/sieve.c
src/ar65/exports.c
src/ar65/exports.h
src/ar65/fileio.c
src/ar65/library.c
src/ar65/library.h
src/ar65/objdata.c
src/ar65/objdata.h
src/ar65/objfile.c
src/ar65/objfile.h
src/ca65/anonname.c
src/ca65/anonname.h
src/ca65/condasm.c
src/ca65/condasm.h
src/ca65/dbginfo.c
src/ca65/ea65.c
src/ca65/easw16.c
src/ca65/error.c
src/ca65/expr.c
src/ca65/expr.h
src/ca65/feature.c
src/ca65/feature.h
src/ca65/filetab.c
src/ca65/filetab.h
src/ca65/fragment.c
src/ca65/fragment.h
src/ca65/instr.c
src/ca65/instr.h
src/ca65/istack.c
src/ca65/istack.h
src/ca65/lineinfo.c
src/ca65/lineinfo.h
src/ca65/listing.c
src/ca65/macro.c
src/ca65/macro.h
src/ca65/main.c
src/ca65/nexttok.c
src/ca65/nexttok.h
src/ca65/objfile.c
src/ca65/pseudo.c
src/ca65/repeat.c
src/ca65/scanner.c
src/ca65/scanner.h
src/ca65/segment.c
src/ca65/segment.h
src/ca65/sizeof.c
src/ca65/sizeof.h
src/ca65/span.c
src/ca65/span.h
src/ca65/struct.c
src/ca65/studyexpr.c
src/ca65/symbol.c
src/ca65/symbol.h
src/ca65/symentry.c
src/ca65/symentry.h
src/ca65/symtab.c
src/ca65/symtab.h
src/ca65/token.c
src/ca65/token.h
src/ca65/toklist.c
src/ca65/toklist.h
src/ca65/ulabel.c
src/ca65/ulabel.h
src/cc65/anonname.c
src/cc65/anonname.h
src/cc65/asmcode.c
src/cc65/asmcode.h
src/cc65/asmlabel.c
src/cc65/asmlabel.h
src/cc65/asmstmt.c
src/cc65/asmstmt.h
src/cc65/assignment.c
src/cc65/casenode.c
src/cc65/casenode.h
src/cc65/codeent.c
src/cc65/codeent.h
src/cc65/codegen.c
src/cc65/codegen.h
src/cc65/codeinfo.c
src/cc65/codeinfo.h
src/cc65/codelab.c
src/cc65/codelab.h
src/cc65/codeopt.c
src/cc65/codeseg.c
src/cc65/codeseg.h
src/cc65/compile.c
src/cc65/coptadd.c
src/cc65/coptadd.h
src/cc65/coptc02.c
src/cc65/coptcmp.c
src/cc65/coptcmp.h
src/cc65/coptind.c
src/cc65/coptind.h
src/cc65/coptneg.c
src/cc65/coptneg.h
src/cc65/coptptrload.c
src/cc65/coptptrload.h
src/cc65/coptptrstore.c
src/cc65/coptptrstore.h
src/cc65/coptpush.c
src/cc65/coptpush.h
src/cc65/coptshift.c
src/cc65/coptshift.h
src/cc65/coptsize.c
src/cc65/coptsize.h
src/cc65/coptstop.c
src/cc65/coptstore.c
src/cc65/coptstore.h
src/cc65/coptsub.c
src/cc65/coptsub.h
src/cc65/copttest.c
src/cc65/copttest.h
src/cc65/datatype.c
src/cc65/datatype.h
src/cc65/declare.c
src/cc65/declare.h
src/cc65/declattr.c
src/cc65/error.c
src/cc65/error.h
src/cc65/expr.c
src/cc65/expr.h
src/cc65/exprdesc.c
src/cc65/exprdesc.h
src/cc65/function.c
src/cc65/function.h
src/cc65/hexval.c
src/cc65/hexval.h
src/cc65/input.c
src/cc65/input.h
src/cc65/lineinfo.c
src/cc65/lineinfo.h
src/cc65/litpool.c
src/cc65/litpool.h
src/cc65/loadexpr.c
src/cc65/locals.c
src/cc65/locals.h
src/cc65/macrotab.c
src/cc65/macrotab.h
src/cc65/main.c
src/cc65/opcodes.c
src/cc65/opcodes.h
src/cc65/output.c
src/cc65/output.h
src/cc65/pragma.c
src/cc65/preproc.c
src/cc65/reginfo.c
src/cc65/reginfo.h
src/cc65/scanner.c
src/cc65/scanner.h
src/cc65/scanstrbuf.c
src/cc65/scanstrbuf.h
src/cc65/segments.c
src/cc65/shiftexpr.c
src/cc65/standard.c
src/cc65/standard.h
src/cc65/stdfunc.c
src/cc65/stdfunc.h
src/cc65/stmt.c
src/cc65/stmt.h
src/cc65/swstmt.c
src/cc65/symentry.c
src/cc65/symentry.h
src/cc65/symtab.c
src/cc65/testexpr.c
src/cc65/testexpr.h
src/cc65/textseg.c
src/cc65/textseg.h
src/cc65/typecmp.c
src/cc65/typeconv.c
src/cc65/typeconv.h
src/cc65/util.c
src/cc65/util.h
src/chrcvt/main.c
src/cl65/main.c
src/co65/convert.c
src/co65/model.c
src/co65/model.h
src/co65/o65.c
src/co65/o65.h
src/common/abend.c
src/common/abend.h
src/common/addrsize.c
src/common/addrsize.h
src/common/alignment.c
src/common/alignment.h
src/common/cddefs.h
src/common/chartype.c
src/common/chartype.h
src/common/check.h
src/common/cmdline.c
src/common/cmdline.h
src/common/coll.c
src/common/coll.h
src/common/cpu.c
src/common/cpu.h
src/common/fileid.c
src/common/fileid.h
src/common/filepos.c
src/common/filepos.h
src/common/filestat.c
src/common/filestat.h
src/common/filetime.c
src/common/filetime.h
src/common/filetype.c
src/common/filetype.h
src/common/fname.c
src/common/fname.h
src/common/fp.c
src/common/fp.h
src/common/gentype.c
src/common/gentype.h
src/common/hashfunc.c
src/common/hashtab.c
src/common/hashtab.h
src/common/hlldbgsym.h
src/common/inttypes.h
src/common/matchpat.c
src/common/matchpat.h
src/common/mmodel.c
src/common/mmodel.h
src/common/searchpath.c
src/common/searchpath.h
src/common/shift.c
src/common/shift.h
src/common/strbuf.c
src/common/strbuf.h
src/common/strpool.c
src/common/strpool.h
src/common/strutil.c
src/common/strutil.h
src/common/target.c
src/common/target.h
src/common/tgttrans.c
src/common/tgttrans.h
src/common/xsprintf.c
src/common/xsprintf.h
src/da65/asminc.c
src/da65/code.c
src/da65/data.c
src/da65/handler.c
src/da65/labels.c
src/da65/labels.h
src/da65/main.c
src/da65/opc6502x.c
src/da65/output.c
src/da65/output.h
src/da65/segment.c
src/dbginfo/dbginfo.c
src/dbginfo/dbginfo.h
src/dbginfo/dbgsh.c
src/ld65/bin.c
src/ld65/cfgexpr.c
src/ld65/cfgexpr.h
src/ld65/condes.c
src/ld65/condes.h
src/ld65/config.c
src/ld65/config.h
src/ld65/dbgfile.c
src/ld65/dbgsyms.c
src/ld65/exports.c
src/ld65/exports.h
src/ld65/expr.c
src/ld65/expr.h
src/ld65/extsyms.c
src/ld65/extsyms.h
src/ld65/fileinfo.c
src/ld65/fileio.c
src/ld65/fileio.h
src/ld65/fragment.c
src/ld65/library.c
src/ld65/library.h
src/ld65/lineinfo.c
src/ld65/lineinfo.h
src/ld65/main.c
src/ld65/mapfile.c
src/ld65/mapfile.h
src/ld65/o65.c
src/ld65/objdata.c
src/ld65/objdata.h
src/ld65/objfile.c
src/ld65/scanner.h
src/ld65/segments.c
src/ld65/segments.h
src/ld65/span.c
src/ld65/span.h
src/ld65/spool.c
src/od65/dump.c
src/od65/fileio.c
src/sim65/6502.c
src/sim65/6502.h
src/sim65/memory.c
src/sim65/memory.h
src/sp65/attr.c
src/sp65/attr.h
src/sp65/bin.c
src/sp65/bitmap.c
src/sp65/bitmap.h
src/sp65/c.c
src/sp65/convert.c
src/sp65/convert.h
src/sp65/geosbitmap.c
src/sp65/geosbitmap.h
src/sp65/geosicon.c
src/sp65/geosicon.h
src/sp65/input.c
src/sp65/input.h
src/sp65/koala.c
src/sp65/koala.h
src/sp65/lynxsprite.c
src/sp65/lynxsprite.h
src/sp65/main.c
src/sp65/output.c
src/sp65/output.h
src/sp65/pcx.c
src/sp65/raw.c
src/sp65/raw.h
src/sp65/vic2sprite.c
src/sp65/vic2sprite.h
testcode/lib/atari/defdev.c
testcode/lib/atari/mem.c
testcode/lib/atari/ostype.c
testcode/lib/atari/sys.c
testcode/lib/clock.c
testcode/lib/cprintf.c
testcode/lib/cursor.c
testcode/lib/deb.c
testcode/lib/em-test.c
testcode/lib/ft.c
testcode/lib/getopt-test.c
testcode/lib/heaptest.c
testcode/lib/mul-test.c
testcode/lib/scanf-test.c
testcode/lib/seek.c
testcode/lib/sprintf-test.c
testcode/lib/strqtok-test.c
testcode/lib/strtol-test.c
testcode/lib/strtoul-test.c
testcode/lib/tinyshell.c
util/zlib/deflater.c

index 70641851644e31081289111e9c889191e014e851..6c104c83af512858cc0e3cdfb6a9ec77ff9ebc8b 100644 (file)
@@ -82,21 +82,21 @@ struct regs {
 #define F6502_C         0x01    /* C flag */
 
 /* Function to call any machine language subroutine. All registers in the
- * regs structure are passed into the routine and the results are passed
- * out. The B flag is ignored on input. The called routine must end with
- * an RTS.
- */
+** regs structure are passed into the routine and the results are passed
+** out. The B flag is ignored on input. The called routine must end with
+** an RTS.
+*/
 void __fastcall__ _sys (struct regs* r);
 
 
 
 /* Set and reset the break vector. The given user function is called if
- * a break occurs. The values of the registers may be read from the brk_...
- * variables. The value in brk_pc will point to the address that contains
- * the brk instruction.
- * The set_brk function will install an exit handler that will reset the
- * vector if the program ends.
- */
+** a break occurs. The values of the registers may be read from the brk_...
+** variables. The value in brk_pc will point to the address that contains
+** the brk instruction.
+** The set_brk function will install an exit handler that will reset the
+** vector if the program ends.
+*/
 
 extern unsigned char brk_a;     /* A register value */
 extern unsigned char brk_x;     /* X register value */
index 1072e677931b092081edd0c51bced4342db40003..d6eedcf751e49c6a49ac12c878068334c7080d2e 100644 (file)
 
 
 /* Define a structure with the 6522 register offsets.
- * NOTE: The timer registers are not declared as 16 bit registers, because
- * the order in which the two 8 bit halves are written is important, and
- * the compiler doesn't guarantee any order when writing 16 bit values.
- */
+** NOTE: The timer registers are not declared as 16 bit registers, because
+** the order in which the two 8 bit halves are written is important, and
+** the compiler doesn't guarantee any order when writing 16 bit values.
+*/
 struct __6522 {
     unsigned char       prb;            /* Port register B */
     unsigned char       pra;            /* Port register A */
index dee0ba4590a1e391242429e01f3a5e76c71f585b..128839c8342908ed8cd66eddf0890063fbcdd0d6 100644 (file)
@@ -39,9 +39,9 @@
 
 
 /* Define a structure with the 6525 register offsets. The shadow registers
- * (if port C is unused) are currently not implemented, we would need a
- * union to do that, however that would introduce an additional name.
- */
+** (if port C is unused) are currently not implemented, we would need a
+** union to do that, however that would introduce an additional name.
+*/
 struct __6525 {
     unsigned char       pra;            /* Port register A */
     unsigned char       prb;            /* Port register B */
index 5f8cb7d106b5211a56e9748d7ad3b62f05a9a947..aa3158dc8c3d69e53801f171ac08912f4ec36cde 100644 (file)
 
 
 /* Define a structure with the 6526 register offsets.
- * NOTE: The timer registers are not declared as 16 bit registers, because
- * the order in which the two 8 bit halves are written is important, and
- * the compiler doesn't guarantee any order when writing 16 bit values.
- */
+** NOTE: The timer registers are not declared as 16 bit registers, because
+** the order in which the two 8 bit halves are written is important, and
+** the compiler doesn't guarantee any order when writing 16 bit values.
+*/
 struct __6526 {
     unsigned char       pra;            /* Port register A */
     unsigned char       prb;            /* Port register B */
index 76bad35c369373a277dd0640890227a2c67e54a4..c054cfa34b7ed3e5cf47913b6ea8ce644626e0c1 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * _heap.h
- *
- * Ullrich von Bassewitz, 1998-06-03, 2004-12-19
- *
- */
+** _heap.h
+**
+** Ullrich von Bassewitz, 1998-06-03, 2004-12-19
+**
+*/
 
 
 
 
 
 
-/* Structure that preceeds a user block in most cases. 
- * The aligned_malloc function may generate blocks where the start pointer
- * and size are splitted to handle a memory hole that is needed for 
- * alignment.
- */
+/* Structure that preceeds a user block in most cases.
+** The aligned_malloc function may generate blocks where the start pointer
+** and size are splitted to handle a memory hole that is needed for
+** alignment.
+*/
 struct usedblock {
     unsigned            size;
     struct usedblock*   start;
@@ -26,8 +26,8 @@ struct usedblock {
 #define HEAP_ADMIN_SPACE        sizeof (struct usedblock)
 
 /* The data type used to implement the free list.
- * Beware: Field order is significant!
- */                                                      
+** Beware: Field order is significant!
+*/
 struct freeblock {
     unsigned            size;
     struct freeblock*   next;
index 2031944bbfd20d90806dd0c75d715830bead7a2f..a28067b24c1d2ad75d388a5a936d1ab6e76ca9ee 100644 (file)
@@ -39,8 +39,8 @@
 
 
 /* Define a structure with the vic register offsets. In cc65 mode, there
- * are aliases for the field accessible as arrays.
- */
+** are aliases for the field accessible as arrays.
+*/
 #if __CC65_STD__ == __CC65_STD_CC65__
 struct __vic2 {
     union {
index 310e697b1809341137d29bfa5f82b2713c0d660c..a1b094d4d3d8073941e72be2ca7d2bf22b02755d 100644 (file)
 
 extern unsigned char _dos_type;
 /* Valid _dos_type values:
- *
- * AppleDOS 3.3   - 0x00
- * ProDOS 8 1.0.1 - 0x10
- * ProDOS 8 1.0.2 - 0x10
- * ProDOS 8 1.1.1 - 0x11
- * ProDOS 8 1.2   - 0x12
- * ProDOS 8 1.3   - 0x13
- * ProDOS 8 1.4   - 0x14
- * ProDOS 8 1.5   - 0x15
- * ProDOS 8 1.6   - 0x16
- * ProDOS 8 1.7   - 0x17
- * ProDOS 8 1.8   - 0x18
- * ProDOS 8 1.9   - 0x18 (!)
- * ProDOS 8 2.0.1 - 0x21
- * ProDOS 8 2.0.2 - 0x22
- * ProDOS 8 2.0.3 - 0x23
- */
+**
+** AppleDOS 3.3   - 0x00
+** ProDOS 8 1.0.1 - 0x10
+** ProDOS 8 1.0.2 - 0x10
+** ProDOS 8 1.1.1 - 0x11
+** ProDOS 8 1.2   - 0x12
+** ProDOS 8 1.3   - 0x13
+** ProDOS 8 1.4   - 0x14
+** ProDOS 8 1.5   - 0x15
+** ProDOS 8 1.6   - 0x16
+** ProDOS 8 1.7   - 0x17
+** ProDOS 8 1.8   - 0x18
+** ProDOS 8 1.9   - 0x18 (!)
+** ProDOS 8 2.0.1 - 0x21
+** ProDOS 8 2.0.2 - 0x22
+** ProDOS 8 2.0.3 - 0x23
+*/
 
 
 
@@ -136,9 +136,9 @@ extern unsigned char _dos_type;
 
 
 /* The file stream implementation and the POSIX I/O functions will use the
- * following variables to determine the file type, aux type and creation time
- * stamp to use.
- */
+** following variables to determine the file type, aux type and creation time
+** stamp to use.
+*/
 extern unsigned char _filetype;  /* Default: 6 */
 extern unsigned int _auxtype;    /* Default: 0 */
 extern struct {
@@ -179,18 +179,18 @@ void rebootafterexit (void);
 
 #define ser_apple2_slot(num)  ser_ioctl (0, (void*) (num))
 /* Select a slot number from 1 to 7 prior to ser_open.
- * The default slot number is 2.
- */
+** The default slot number is 2.
+*/
 
 #define tgi_apple2_mix(onoff)  tgi_ioctl (0, (void*) (onoff))
 /* If onoff is 1, graphics/text mixed mode is enabled.
- * If onoff is 0, graphics/text mixed mode is disabled.
- */
+** If onoff is 0, graphics/text mixed mode is disabled.
+*/
 
 /* The following #defines will cause the matching functions calls in conio.h
- * to be overlaid by macros with the same names, saving the function call
- * overhead.
- */
+** to be overlaid by macros with the same names, saving the function call
+** overhead.
+*/
 #define _textcolor(color)    COLOR_WHITE
 #define _bgcolor(color)      COLOR_BLACK
 #define _bordercolor(color)  COLOR_BLACK
index 9fb093b4577eda61c425673d90166d2bc86b5bb3..cc62f70b7a0b83aa7cdc54ac4685569f86541de8 100644 (file)
@@ -109,8 +109,8 @@ extern void a2e_lo_tgi[];
 void __fastcall__ textframe (unsigned char width, unsigned char height,
                              unsigned char style);
 /* Output a frame on the text screen with the given width and height
- * starting at the current cursor position and using the given style.
- */
+** starting at the current cursor position and using the given style.
+*/
 
 void __fastcall__ textframexy (unsigned char x, unsigned char y,
                                unsigned char width, unsigned char height,
@@ -119,8 +119,8 @@ void __fastcall__ textframexy (unsigned char x, unsigned char y,
 
 unsigned __fastcall__ videomode (unsigned mode);
 /* Set the video mode, return the old mode. Call with one of the VIDEOMODE_xx
- * constants.
- */
+** constants.
+*/
 
 
 
index b1ef88fa3a37ccf65ccfca5b8ae857682d23747a..565fbc9ce71c42e63a7a01ee0f57837a9f64cc49 100644 (file)
@@ -141,21 +141,21 @@ extern void c128_vdc2_tgi[];
 
 unsigned __fastcall__ videomode (unsigned Mode);
 /* Set the video mode, return the old mode. Call with one of the VIDEOMODE_xx
- * constants.
- */
+** constants.
+*/
 
 void toggle_videomode (void);
 /* Toggle the video mode between 40 and 80 chars (calls SWAPPER).
- * THIS FUNCTION IS DEPRECATED, please use videomode instead!
- */
+** THIS FUNCTION IS DEPRECATED, please use videomode instead!
+*/
 
 void c64mode (void);
 /* Switch the C128 into C64 mode. Note: This function will not return! */
 
 void fast (void);
 /* Switch the CPU into 2MHz mode. Note: This will disable video when in
- * 40 column mode.
- */
+** 40 column mode.
+*/
 
 void slow (void);
 /* Switch the CPU into 1MHz mode. */
index ed7397849637ccd24cbc73ebac54f08f7ec6e4b9..730b0b49e6f06d5502bb2003b776a92309bdb7ab 100644 (file)
@@ -82,8 +82,8 @@
 
 
 /* The file stream implementation and the POSIX I/O functions will
- * use the following variable to determine the file type to use.
- */
+** use the following variable to determine the file type to use.
+*/
 extern char _filetype;          /* Defaults to 's' */
 
 
@@ -162,10 +162,10 @@ unsigned char get_tv (void);
 
 
 /* Constants to use with cbm_open() for openning a file for reading or
- * writing without the need to append ",r" or ",w" to the filename.
- *
- * e.g., cbm_open(2, 8, CBM_READ, "0:data,s");
- */
+** writing without the need to append ",r" or ",w" to the filename.
+**
+** e.g., cbm_open(2, 8, CBM_READ, "0:data,s");
+*/
 #define CBM_READ        0       /* default is ",p" */
 #define CBM_WRITE       1       /* ditto */
 #define CBM_SEQ         2       /* default is ",r" -- or ",s" when writing */
@@ -202,79 +202,79 @@ void cbm_k_unlsn (void);
 
 
 /* The cbm_* I/O functions below set _oserror (see errno.h),
- * in case of an error.
- *
- * error-code   BASIC error
- * ----------   -----------
- *       1  =   too many files
- *       2  =   file open
- *       3  =   file not open
- *       4  =   file not found
- *       5  =   device not present
- *       6  =   not input-file
- *       7  =   not output-file
- *       8  =   missing file-name
- *       9  =   illegal device-number
- *
- *      10  =   STOP-key pushed
- *      11  =   general I/O-error
- */
+** in case of an error.
+**
+** error-code   BASIC error
+** ----------   -----------
+**       1  =   too many files
+**       2  =   file open
+**       3  =   file not open
+**       4  =   file not found
+**       5  =   device not present
+**       6  =   not input-file
+**       7  =   not output-file
+**       8  =   missing file-name
+**       9  =   illegal device-number
+**
+**      10  =   STOP-key pushed
+**      11  =   general I/O-error
+*/
 
 
 
 unsigned int cbm_load (const char* name, unsigned char device, void* data);
 /* Loads file "name", from given device, to given address -- or, to the load
- * address of the file if "data" is the null pointer (like load"name",8,1
- * in BASIC).
- * Returns number of bytes that were loaded if loading was successful;
- * otherwise 0, "_oserror" contains an error-code, then (see table above).
- */
+** address of the file if "data" is the null pointer (like load"name",8,1
+** in BASIC).
+** Returns number of bytes that were loaded if loading was successful;
+** otherwise 0, "_oserror" contains an error-code, then (see table above).
+*/
 
 unsigned char __fastcall__ cbm_save (const char* name, unsigned char device,
                                      const void* addr, unsigned int size);
 /* Saves "size" bytes, starting at "addr", to a file.
- * Returns 0 if saving was successful, otherwise an error-code (see table
- * above).
- */
+** Returns 0 if saving was successful, otherwise an error-code (see table
+** above).
+*/
 
 unsigned char __fastcall__ cbm_open (unsigned char lfn, unsigned char device,
                                      unsigned char sec_addr, const char* name);
 /* Opens a file. Works just like the BASIC command.
- * Returns 0 if openning was successful, otherwise an error-code (see table
- * above).
- */
+** Returns 0 if openning was successful, otherwise an error-code (see table
+** above).
+*/
 
 void __fastcall__ cbm_close (unsigned char lfn);
 /* Closes a file */
 
 int __fastcall__ cbm_read (unsigned char lfn, void* buffer, unsigned int size);
 /* Reads up to "size" bytes from a file into "buffer".
- * Returns the number of actually-read bytes, 0 if there are no bytes left.
- * -1 in case of an error; then, _oserror contains an error-code (see table
- * above).  (Remember:  0 means end-of-file; -1 means error.)
- */
+** Returns the number of actually-read bytes, 0 if there are no bytes left.
+** -1 in case of an error; then, _oserror contains an error-code (see table
+** above).  (Remember:  0 means end-of-file; -1 means error.)
+*/
 
 int __fastcall__ cbm_write (unsigned char lfn, const void* buffer,
                             unsigned int size);
 /* Writes up to "size" bytes from "buffer" to a file.
- * Returns the number of actually-written bytes, or -1 in case of an error;
- * _oserror contains an error-code, then (see above table).
- */
+** Returns the number of actually-written bytes, or -1 in case of an error;
+** _oserror contains an error-code, then (see above table).
+*/
 
 unsigned char cbm_opendir (unsigned char lfn, unsigned char device, ...);
 /* Opens directory listing. Returns 0 if opening directory was successful;
- * otherwise, an error-code corresponding to cbm_open(). As an optional
- * argument, the name of the directory may be passed to the function. If
- * no explicit name is specified, "$" is used.
- */
+** otherwise, an error-code corresponding to cbm_open(). As an optional
+** argument, the name of the directory may be passed to the function. If
+** no explicit name is specified, "$" is used.
+*/
 
 unsigned char __fastcall__ cbm_readdir (unsigned char lfn,
                                         struct cbm_dirent* l_dirent);
 /* Reads one directory line into cbm_dirent structure.
- * Returns 0 if reading directory-line was successful.
- * Returns non-zero if reading directory failed, or no more file-names to read.
- * Returns 2 on last line.  Then, l_dirent->size = the number of "blocks free."
- */
+** Returns 0 if reading directory-line was successful.
+** Returns non-zero if reading directory failed, or no more file-names to read.
+** Returns 2 on last line.  Then, l_dirent->size = the number of "blocks free."
+*/
 
 void __fastcall__ cbm_closedir (unsigned char lfn);
 /* Closes directory by cbm_close(lfn) */
index 84ea12eceb445e67430c1ebc24e5d9e8e751981b..79d498431cb06f2b88e1820957b19be79c1f130e 100644 (file)
@@ -138,9 +138,9 @@ void __fastcall__ pokewsys (unsigned addr, unsigned val);
 
 
 /* The following #defines will cause the matching functions calls in conio.h
- * to be overlaid by macros with the same names, saving the function call
- * overhead.
- */
+** to be overlaid by macros with the same names, saving the function call
+** overhead.
+*/
 #define _textcolor(color)       COLOR_WHITE
 #define _bgcolor(color)         COLOR_BLACK
 #define _bordercolor(color)     COLOR_BLACK
index 0263f33ae4a4a342fe688f741e780fd972137772..e049eb306a58d5811d2bdfa6f63bd250ec272ef5 100644 (file)
@@ -52,9 +52,9 @@
 
 
 /* CBM FILE TYPES. The definitions are used within standard headers, so we
- * be careful with identifiers in the user name space.
- * "Regular" files have a special bit set so it's easier to pick them out.
- */
+** be careful with identifiers in the user name space.
+** "Regular" files have a special bit set so it's easier to pick them out.
+*/
 #define _CBM_T_REG      0x10U   /* Bit set for regular files */
 #define _CBM_T_SEQ      0x10U
 #define _CBM_T_PRG      0x11U
 
 unsigned char __fastcall__ _cbm_filetype (unsigned char c);
 /* Map the start character for a file type to one of the file types above.
- * Note: 'd' will always mapped to CBM_T_DEL. The calling function has to
- * look at the following character to determine if the file type is actually
- * CBM_T_DIR.
- * This is a function used by the implementation. There is usually no need
- * to call it from user code.
- */
+** Note: 'd' will always mapped to CBM_T_DEL. The calling function has to
+** look at the following character to determine if the file type is actually
+** CBM_T_DIR.
+** This is a function used by the implementation. There is usually no need
+** to call it from user code.
+*/
 
 
 
index 5607eab7bf340e7176ebbd609955e3a9b461735f..4f9f3067fe88c1c95127440b5c0dbbcc5f667ddb 100644 (file)
 
 long __fastcall__ cc65_idiv32by16r16 (long rhs, int lhs);
 /* Divide a 32 bit signed value by a 16 bit signed value yielding a 16
- * bit result and a 16 bit remainder. The former is returned in the lower 16
- * bit of the result, the latter in the upper. If you don't need the
- * remainder, just assign (or cast) to an int.
- */
+** bit result and a 16 bit remainder. The former is returned in the lower 16
+** bit of the result, the latter in the upper. If you don't need the
+** remainder, just assign (or cast) to an int.
+*/
 
 unsigned long __fastcall__ cc65_udiv32by16r16 (unsigned long rhs, unsigned lhs);
 /* Divide a 32 bit unsigned value by a 16 bit unsigned value yielding a 16
- * bit result and a 16 bit remainder. The former is returned in the lower 16
- * bit of the result, the latter in the upper. If you don't need the
- * remainder, just assign (or cast) to an unsigned.
- */
+** bit result and a 16 bit remainder. The former is returned in the lower 16
+** bit of the result, the latter in the upper. If you don't need the
+** remainder, just assign (or cast) to an unsigned.
+*/
 
 int __fastcall__ cc65_imul8x8r16 (signed char lhs, signed char rhs);
 /* Multiplicate two signed 8 bit to yield an signed 16 bit result */
@@ -69,21 +69,21 @@ unsigned __fastcall__ cc65_umul8x8r16 (unsigned char lhs, unsigned char rhs);
 
 unsigned long __fastcall__ cc65_umul16x8r32 (unsigned lhs, unsigned char rhs);
 /* Multiplicate an unsigned 16 bit by an unsigned 8 bit number yielding a 24
- * bit unsigned result that is extended to 32 bits for easier handling from C.
- */
+** bit unsigned result that is extended to 32 bits for easier handling from C.
+*/
 
 unsigned long __fastcall__ cc65_umul16x16r32 (unsigned lhs, unsigned rhs);
 /* Multiplicate two unsigned 16 bit to yield an unsigned 32 bit result */
 
 int __fastcall__ cc65_sin (unsigned x);
 /* Return the sine of the argument, which must be in range 0..360. The result
- * is in 8.8 fixed point format, which means that 1.0 = $100 and -1.0 = $FF00.
- */
+** is in 8.8 fixed point format, which means that 1.0 = $100 and -1.0 = $FF00.
+*/
 
 int __fastcall__ cc65_cos (unsigned x);
 /* Return the cosine of the argument, which must be in range 0..360. The result
- * is in 8.8 fixed point format, which means that 1.0 = $100 and -1.0 = $FF00.
- */
+** is in 8.8 fixed point format, which means that 1.0 = $100 and -1.0 = $FF00.
+*/
 
 
 
index cd6bf3651720c9b8d04fe4e630bc97e0ef8e9f35..54667a3ca90e8e8164b2e1d3a355d489c8ca8940 100644 (file)
 
 
 /*
- * This is the direct console interface for cc65. I do not like the function
- * names very much, but the first version started as a rewrite of Borland's
- * conio, and, even if the interface has changed, the names did not.
- *
- * The interface does direct screen I/O, so it is fast enough for most
- * programs. I did not implement text windows, since many applications do
- * not need them and should not pay for the additional overhead. It should
- * be easy to add text windows on a higher level if needed,
- *
- * Most routines do not check the parameters. This may be unfortunate but is
- * also related to speed. The coordinates are always 0/0 based.
- */
+** This is the direct console interface for cc65. I do not like the function
+** names very much, but the first version started as a rewrite of Borland's
+** conio, and, even if the interface has changed, the names did not.
+**
+** The interface does direct screen I/O, so it is fast enough for most
+** programs. I did not implement text windows, since many applications do
+** not need them and should not pay for the additional overhead. It should
+** be easy to add text windows on a higher level if needed,
+**
+** Most routines do not check the parameters. This may be unfortunate but is
+** also related to speed. The coordinates are always 0/0 based.
+*/
 
 
 
@@ -128,9 +128,9 @@ int __fastcall__ vcprintf (const char* format, va_list ap);
 
 char cgetc (void);
 /* Return a character from the keyboard. If there is no character available,
- * the function waits until the user does press a key. If cursor is set to
- * 1 (see below), a blinking cursor is displayed while waiting.
- */
+** the function waits until the user does press a key. If cursor is set to
+** 1 (see below), a blinking cursor is displayed while waiting.
+*/
 
 int cscanf (const char* format, ...);
 /* Like scanf(), but uses direct keyboard input */
@@ -140,14 +140,14 @@ int __fastcall__ vcscanf (const char* format, va_list ap);
 
 unsigned char __fastcall__ cursor (unsigned char onoff);
 /* If onoff is 1, a cursor is displayed when waiting for keyboard input. If
- * onoff is 0, the cursor is hidden when waiting for keyboard input. The
- * function returns the old cursor setting.
- */
+** onoff is 0, the cursor is hidden when waiting for keyboard input. The
+** function returns the old cursor setting.
+*/
 
 unsigned char __fastcall__ revers (unsigned char onoff);
 /* Enable/disable reverse character display. This may not be supported by
- * the output device. Return the old setting.
- */
+** the output device. Return the old setting.
+*/
 
 unsigned char __fastcall__ textcolor (unsigned char color);
 /* Set the color for text output. The old color setting is returned. */
@@ -160,16 +160,16 @@ unsigned char __fastcall__ bordercolor (unsigned char color);
 
 void __fastcall__ chline (unsigned char length);
 /* Output a horizontal line with the given length starting at the current
- * cursor position.
- */
+** cursor position.
+*/
 
 void __fastcall__ chlinexy (unsigned char x, unsigned char y, unsigned char length);
 /* Same as "gotoxy (x, y); chline (length);" */
 
 void __fastcall__ cvline (unsigned char length);
 /* Output a vertical line with the given length at the current cursor
- * position.
- */
+** position.
+*/
 
 void __fastcall__ cvlinexy (unsigned char x, unsigned char y, unsigned char length);
 /* Same as "gotoxy (x, y); cvline (length);" */
@@ -196,14 +196,14 @@ void __fastcall__ cputhex16 (unsigned val);
 
 
 /* On some platforms, functions are not available or are dummys. To suppress
- * the call to these functions completely, the platform header files may
- * define macros for these functions that start with an underline. If such a
- * macro exists, a new macro is defined here, that expands to the one with the
- * underline. The reason for this two stepped approach is that it is sometimes
- * necessary to take the address of the function, which is not possible when
- * using a macro. Since the function prototype is still present, #undefining
- * the macro will give access to the actual function.
- */
+** the call to these functions completely, the platform header files may
+** define macros for these functions that start with an underline. If such a
+** macro exists, a new macro is defined here, that expands to the one with the
+** underline. The reason for this two stepped approach is that it is sometimes
+** necessary to take the address of the function, which is not possible when
+** using a macro. Since the function prototype is still present, #undefining
+** the macro will give access to the actual function.
+*/
 
 #if defined(_textcolor)
 #  define textcolor(x)          _textcolor(x)
index 4c7f976d2a7d6e47790eeda5117ff9d2e718c6ec..b440bfb70f6fbcc72f2aae3fe86fb8e4949b4c73 100644 (file)
@@ -85,12 +85,12 @@ unsigned char __fastcall__ toascii (unsigned char c);
 
 
 /* When inlining-of-known-functions is enabled, overload most of the above
- * functions by macroes. The function prototypes are available again after
- * #undef'ing the macroes.
- * Please note that the following macroes do NOT handle EOF correctly, as
- * stated in the manual. If you need correct behaviour for EOF, don't
- * use -Os, or #undefine the following macroes.
- */
+** functions by macroes. The function prototypes are available again after
+** #undef'ing the macroes.
+** Please note that the following macroes do NOT handle EOF correctly, as
+** stated in the manual. If you need correct behaviour for EOF, don't
+** use -Os, or #undefine the following macroes.
+*/
 #ifdef __OPT_s__
 
 #define isalnum(c)  (__AX__ = (c),                      \
index 5156658f0a1a0fc7d70eb5382a3cc948bec4a7b7..734ca06b8950eb31af02851deec1342a303b92f2 100644 (file)
 
 
 /*
- * This is the interface to the cc65 debugger. Since many of the functions
- * used for the debugger are quite usable even in another context, they
- * are declared here.
- *
- * To use the debugger, just call DbgInit in your application. Once it has
- * been called, the debugger will catch any BRK opcode. Use the BREAK macro 
- * defined below to insert breakpoints into your code.
- *
- * There are currently a lot of things that cannot be debugged, graphical
- * applications are an example. The debugger does not save your screen
- * contents, so even your text screen gets destroyed. However, you can
- * debug the C and runtime library, even if the debugger is using this
- * stuff itself.
- *
- * Note: When using the debugger, there are some other identifiers with
- * external linkage, that start with Dbg. Avoid those names if you use the
- * module.
- */
+** This is the interface to the cc65 debugger. Since many of the functions
+** used for the debugger are quite usable even in another context, they
+** are declared here.
+**
+** To use the debugger, just call DbgInit in your application. Once it has
+** been called, the debugger will catch any BRK opcode. Use the BREAK macro 
+** defined below to insert breakpoints into your code.
+**
+** There are currently a lot of things that cannot be debugged, graphical
+** applications are an example. The debugger does not save your screen
+** contents, so even your text screen gets destroyed. However, you can
+** debug the C and runtime library, even if the debugger is using this
+** stuff itself.
+**
+** Note: When using the debugger, there are some other identifiers with
+** external linkage, that start with Dbg. Avoid those names if you use the
+** module.
+*/
 
 
 
 
 unsigned __fastcall__ DbgDisAsm (unsigned Addr, char* Buf, unsigned char Len);
 /* Disassemble one instruction at address addr into the given buffer.
- * The resulting line has the format, "AAAA__BB_BB_BB___OPC_OPERAND",
- * where AAAA is the hexadecimal representation of addr, BB are the
- * bytes (in hex) that make the instruction, OPC is the mnemonic, and
- * OPERAND is an operand for the instruction.
- * The buffer is filled with spaces up to the given length and terminated as
- * a usual C string. NOTE: Buf must be able to hold Len+1 characters.
- * The function returns the length of the disassembled instruction, so,
- * to disassemble the next instruction, add the return value to addr
- * and call the function again.
- */
+** The resulting line has the format, "AAAA__BB_BB_BB___OPC_OPERAND",
+** where AAAA is the hexadecimal representation of addr, BB are the
+** bytes (in hex) that make the instruction, OPC is the mnemonic, and
+** OPERAND is an operand for the instruction.
+** The buffer is filled with spaces up to the given length and terminated as
+** a usual C string. NOTE: Buf must be able to hold Len+1 characters.
+** The function returns the length of the disassembled instruction, so,
+** to disassemble the next instruction, add the return value to addr
+** and call the function again.
+*/
 
 unsigned __fastcall__ DbgDisAsmLen (unsigned Addr);
 /* Disassemble one instruction, but do only return the length, do not
- * create a visible representation. This function is useful when
- * disassembling backwards, it is much faster than DbgDisAsm.
- */
+** create a visible representation. This function is useful when
+** disassembling backwards, it is much faster than DbgDisAsm.
+*/
 
 int __fastcall__ DbgIsRAM (unsigned Addr);
 /* Return true if we can read and write the given address */
 
 char* DbgMemDump (unsigned Addr, char* Buf, unsigned char Len);
 /* Create a line of a memory dump in the given buffer. The buffer contains
- * the starting address (4 digits hex), then Len bytes in this format:
- * "AAAA__XX_YY_ZZ_...". The passed char buffer must hold Len*3+5 bytes
- * plus a terminator byte.
- * The function does not work correctly if the created string is longer
- * than 255 bytes.
- * The return value is Buf.
- */
+** the starting address (4 digits hex), then Len bytes in this format:
+** "AAAA__XX_YY_ZZ_...". The passed char buffer must hold Len*3+5 bytes
+** plus a terminator byte.
+** The function does not work correctly if the created string is longer
+** than 255 bytes.
+** The return value is Buf.
+*/
 
 
 
@@ -108,8 +108,8 @@ char* DbgMemDump (unsigned Addr, char* Buf, unsigned char Len);
 
 void __fastcall__ DbgInit (unsigned unused);
 /* Initialize the debugger. Use 0 as parameter. The debugger will popup on
- * next brk encountered.
- */
+** next brk encountered.
+*/
 
 #define BREAK()         __asm__ ("brk")
 /* Use this to insert breakpoints into your code */
index 1ccc1ab7ce88ea8dc19d1e90758b934ac6f9281f..4201728cc9812045688c9de106ceaf966e518e4a 100644 (file)
 
 
 /* Please note: All functions in this file will set _oserror *and* return its
- * value. The only exception is dio_open, which will return NULL, but _oserror
- * will be set. All function will also set _oserror in case of successful
- * execution, effectively clearing it.
- */
+** value. The only exception is dio_open, which will return NULL, but _oserror
+** will be set. All function will also set _oserror in case of successful
+** execution, effectively clearing it.
+*/
 
 
 
index 28836f2b159604b1e77832a2f44549c1388001a3..b151800aefe683e7a250de71c2788aff6e376b08 100644 (file)
 #define EM_ERR_INSTALLED        5       /* A driver is already installed */
 
 /* Parameters for the em_copy_... functions. NOTE: The first seven bytes
- * have the same order and alignment as needed for the Commodore REU, so
- * don't change the order without changing the assembler file that defines
- * the struct offsets and the code in the REU driver.
- */
+** have the same order and alignment as needed for the Commodore REU, so
+** don't change the order without changing the assembler file that defines
+** the struct offsets and the code in the REU driver.
+*/
 struct em_copy {
     void*           buf;        /* Memory buffer to copy from or to */
     unsigned char   offs;       /* Offset into page */
@@ -87,44 +87,44 @@ unsigned char __fastcall__ em_install (void* driver);
 
 unsigned char em_uninstall (void);
 /* Uninstall the currently loaded driver and return an error code.
- * Note: This call does not free allocated memory.
- */
+** Note: This call does not free allocated memory.
+*/
 
 unsigned em_pagecount (void);
 /* Return the total number of 256 byte pages available in extended memory. */
 
 void* __fastcall__ em_map (unsigned page);
 /* Unmap the current page from memory and map a new one. The function returns
- * a pointer to the location of the page in memory. Note: Without calling
- * em_commit, the old contents of the memory window may be lost!
- */
+** a pointer to the location of the page in memory. Note: Without calling
+** em_commit, the old contents of the memory window may be lost!
+*/
 
 void* __fastcall__ em_use (unsigned page);
 /* Tell the driver that the memory window is associated with a given page.
- * This call is very similar to em_map. The difference is that the driver
- * does not necessarily transfer the current contents of the extended
- * memory into the returned window. If you're going to just write to the
- * window and the current contents of the window are invalid or no longer
- * use, this call may perform better than em_map.
- */
+** This call is very similar to em_map. The difference is that the driver
+** does not necessarily transfer the current contents of the extended
+** memory into the returned window. If you're going to just write to the
+** window and the current contents of the window are invalid or no longer
+** use, this call may perform better than em_map.
+*/
 
 void em_commit (void);
 /* Commit changes in the memory window to extended storage. If the contents
- * of the memory window have been changed, these changes may be lost if
- * em_map, em_copyfrom or em_copyto are called without calling em_commit
- * first. Note: Not calling em_commit does not mean that the changes are
- * discarded, it does just mean that some drivers will discard the changes.
- */
+** of the memory window have been changed, these changes may be lost if
+** em_map, em_copyfrom or em_copyto are called without calling em_commit
+** first. Note: Not calling em_commit does not mean that the changes are
+** discarded, it does just mean that some drivers will discard the changes.
+*/
 
 void __fastcall__ em_copyfrom (const struct em_copy* copy_data);
 /* Copy from extended into linear memory. Note: This may invalidate the
- * currently mapped page.
- */
+** currently mapped page.
+*/
 
 void __fastcall__ em_copyto (const struct em_copy* copy_data);
 /* Copy from linear into extended memory. Note: This may invalidate the
- * currently mapped page.
- */
+** currently mapped page.
+*/
 
 
 
index 48cbbe8f7606d32d934ed22452178c3d9e089e76..e5df803216164be83aee5608462080a5625c3dfe 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2002-2003 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -45,8 +45,8 @@
 
 
 /* A structure that describes the header of an extended memory driver loaded
- * into memory.
- */
+** into memory.
+*/
 typedef struct {
 
     /* Driver header */
index 468e7d4eaca9e5ce7400ef4d308484fa0de13f9b..0b3d67bc7f97d4310a9762f40c078a7ab88eef4a 100644 (file)
@@ -84,23 +84,23 @@ extern int _errno;
 
 int __fastcall__ _osmaperrno (unsigned char oserror);
 /* Map an operating system specific error code (for example from _oserror) 
- * into one of the E... codes above. It is user callable.
- */
+** into one of the E... codes above. It is user callable.
+*/
 
 unsigned char __fastcall__ _seterrno (unsigned char code);
 /* Set errno to a specific error code and return zero. Used by the library */
 
 int __fastcall__ _directerrno (unsigned char code);
 /* Set errno to a specific error code, clear _oserror and return -1. Used
- * by the library.
- */
+** by the library.
+*/
 
 int __fastcall__ _mappederrno (unsigned char code);
 /* Set _oserror to the given platform specific error code. If it is a real
- * error code (not zero) set errno to the corresponding system error code
- * and return -1. Otherwise return zero.
- * Used by the library.
- */
+** error code (not zero) set errno to the corresponding system error code
+** and return -1. Otherwise return zero.
+** Used by the library.
+*/
 
 
 
index dd1ba822b7eca1a796cb502590cf44138f6bb336..65003f8870386f89fa7062b973abc73ad3cd3315 100644 (file)
@@ -34,9 +34,9 @@
 
 
 /* Note: This file is not fully ISO 9899-1999 compliant because cc65 lacks
- * a 64 bit data types and is not able to return structs > 4 bytes. The
- * declarations have been adjusted accordingly or left out.
- */
+** a 64 bit data types and is not able to return structs > 4 bytes. The
+** declarations have been adjusted accordingly or left out.
+*/
 
 
 
index 18b552f08f81818e142148678a797640857f3845..710d9b5a6b65852ae65101a72647a0888388f763 100644 (file)
@@ -99,8 +99,8 @@ unsigned char __fastcall__ joy_install (void* driver);
 
 unsigned char joy_uninstall (void);
 /* Uninstall the currently loaded driver and return an error code.
- * Note: This call does not free allocated memory.
- */
+** Note: This call does not free allocated memory.
+*/
 
 unsigned char joy_count (void);
 /* Return the number of joysticks supported by the driver */
index e617a43c565a201f8ef17777b9b236051651446d..bb571de3d9b7ecdc06c1b1af6fdb23ad84f0c958 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2002-2006, Ullrich von Bassewitz                                      */
-/*                Römerstrasse 52                                            */
+/*                Roemerstrasse 52                                           */
 /*                D-70794 Filderstadt                                        */
 /* EMail:         uz@cc65.org                                                */
 /*                                                                           */
@@ -45,8 +45,8 @@
 
 
 /* A structure that describes the header of a joystick driver loaded into
- * memory.
- */
+** memory.
+*/
 typedef struct {
 
     /* Driver header */
@@ -88,4 +88,3 @@ void joy_clear_ptr (void);
 
 
 
-
index 04ad54d79cdcd10024703779054d446abcb329ad..421641a90239f664490a1f152e7c70b9dd16a233 100644 (file)
@@ -34,8 +34,8 @@
 
 
 /* Exports structures and functions to load relocatable o65 modules at
- * runtime.
- */
+** runtime.
+*/
 
 
 
 
 
 /* The following struct is passed to the module loader. It contains stuff,
- * the loader needs to work, and another area where the loader will place
- * informational data if it was successful. You will have to check the return
- * code of mod_load before accessing any of these additional struct members.
- */
+** the loader needs to work, and another area where the loader will place
+** informational data if it was successful. You will have to check the return
+** code of mod_load before accessing any of these additional struct members.
+*/
 struct mod_ctrl {
     /* Parameters passed into the loader routine. The member callerdata
-     * is an opaque 16 bit datatype that may be used by the caller to
-     * pass data through to the read routine. The read routine is used by the
-     * loader to load any required data. There are several calls where the
-     * read routine is passed a count of 1, so you may choose to make this
-     * a special case when implementing read(). The read() should return the
-     * number of bytes actually read. If the return value differs from the
-     * passed count, this is considered an error.
-     * NOTE: read() is designed so that the POSIX read() routine can be used
-     * for this vector, if you're loading from disk.
-     */
+    ** is an opaque 16 bit datatype that may be used by the caller to
+    ** pass data through to the read routine. The read routine is used by the
+    ** loader to load any required data. There are several calls where the
+    ** read routine is passed a count of 1, so you may choose to make this
+    ** a special case when implementing read(). The read() should return the
+    ** number of bytes actually read. If the return value differs from the
+    ** passed count, this is considered an error.
+    ** NOTE: read() is designed so that the POSIX read() routine can be used
+    ** for this vector, if you're loading from disk.
+    */
     int __fastcall__  (*read) (int callerdata, void* buffer, unsigned count);
     int               callerdata;
 
@@ -74,15 +74,15 @@ struct mod_ctrl {
 
 unsigned char __fastcall__ mod_load (struct mod_ctrl* ctrl);
 /* Load a module into memory and relocate it. The function will return an
- * error code (see below). If MLOAD_OK is returned, the outgoing fields in
- * the passed mod_ctrl struct contain information about the module just
- * loaded.
- */
+** error code (see below). If MLOAD_OK is returned, the outgoing fields in
+** the passed mod_ctrl struct contain information about the module just
+** loaded.
+*/
 
 void __fastcall__ mod_free (void* module);
 /* Free a loaded module. Note: The given pointer is the pointer to the
- * module memory, not a pointer to a control structure.
- */
+** module memory, not a pointer to a control structure.
+*/
 
 
 
index 64581eda73fa422fe2cb4192da591b3b8edc9f18..ac75956c06263765538c8539eb483e720d49c7a8 100644 (file)
@@ -79,9 +79,9 @@ struct mouse_box {
 };
 
 /* Structure containing mouse callback functions. These functions are declared
- * in C notation here, but they cannot be C functions (at least not easily),
- * since they may be called from within an interrupt.
- */
+** in C notation here, but they cannot be C functions (at least not easily),
+** since they may be called from within an interrupt.
+*/
 struct mouse_callbacks {
 
     void (*hide) (void);
@@ -92,23 +92,23 @@ struct mouse_callbacks {
 
     void (*prep) (void);
     /* Prepare to move the mouse cursor. This function is called,
-     * even when the cursor is currently invisible.
-     */
+    ** even when the cursor is currently invisible.
+    */
 
     void (*draw) (void);
     /* Draw the mouse cursor. This function is called,
-     * even when the cursor is currently invisible.
-     */
+    ** even when the cursor is currently invisible.
+    */
 
     void __fastcall__ (*movex) (int x);
     /* Move the mouse cursor to the new X coordinate. This function is called,
-     * even when the cursor is currently invisible.
-     */
+    ** even when the cursor is currently invisible.
+    */
 
     void __fastcall__ (*movey) (int y);
     /* Move the mouse cursor to the new Y coordinate. This function is called,
-     * even when the cursor is currently invisible.
-     */
+    ** even when the cursor is currently invisible.
+    */
 };
 
 
@@ -155,43 +155,43 @@ const char* __fastcall__ mouse_geterrormsg (unsigned char code);
 
 void mouse_hide (void);
 /* Hide the mouse. The function manages a counter and may be called more than
- * once. For each call to mouse_hide there must be a call to mouse_show to make
- * the mouse visible again.
- */
+** once. For each call to mouse_hide there must be a call to mouse_show to make
+** the mouse visible again.
+*/
 
 void mouse_show (void);
 /* Show the mouse. See mouse_hide() for more information. */
 
 void __fastcall__ mouse_setbox (const struct mouse_box* box);
 /* Set the bounding box for the mouse pointer movement. The mouse X and Y
- * coordinates will never go outside the given box.
- * NOTE: The function does *not* check if the mouse is currently inside the
- * given margins. The proper way to use this function therefore is:
- *
- *      - Hide the mouse
- *      - Set the bounding box
- *      - Place the mouse at the desired position
- *      - Show the mouse again.
- *
- * NOTE2: When setting the box to something that is larger than the actual
- * screen, the positioning of the mouse cursor can fail. If such margins
- * are really what you want, you have to use your own cursor routines.
- */
+** coordinates will never go outside the given box.
+** NOTE: The function does *not* check if the mouse is currently inside the
+** given margins. The proper way to use this function therefore is:
+**
+**      - Hide the mouse
+**      - Set the bounding box
+**      - Place the mouse at the desired position
+**      - Show the mouse again.
+**
+** NOTE2: When setting the box to something that is larger than the actual
+** screen, the positioning of the mouse cursor can fail. If such margins
+** are really what you want, you have to use your own cursor routines.
+*/
 
 void __fastcall__ mouse_getbox (struct mouse_box* box);
 /* Get the current bounding box for the mouse pointer movement. */
 
 void __fastcall__ mouse_move (int x, int y);
 /* Set the mouse cursor to the given position. If a mouse cursor is defined
- * and currently visible, the mouse cursor is also moved.
- * NOTE: This function does not check if the given position is valid and
- * inside the bounding box.
- */
+** and currently visible, the mouse cursor is also moved.
+** NOTE: This function does not check if the given position is valid and
+** inside the bounding box.
+*/
 
 unsigned char mouse_buttons (void);
 /* Return a bit mask encoding the states of the mouse buttons. Use the
- * MOUSE_BTN_XXX flags to decode a specific button.
- */
+** MOUSE_BTN_XXX flags to decode a specific button.
+*/
 
 void __fastcall__ mouse_pos (struct mouse_pos* pos);
 /* Return the current mouse position. */
@@ -201,8 +201,8 @@ void __fastcall__ mouse_info (struct mouse_info* info);
 
 unsigned char __fastcall__ mouse_ioctl (unsigned char code, void* data);
 /* Call the driver-specific ioctl function. Return an error code.
- * NON-PORTABLE!
- */
+** NON-PORTABLE!
+*/
 
 
 
index 2321cfe10b161ef98c8150fb44f6d8998980fe9c..a50bf2fdde04b2d701304b5cc215683992c92450 100644 (file)
 
 
 /* This files exports structures and constants to handle the o65 relocatable
- * file format as defined by Andre Fachat. See the original document under
- *
- *      http://www.6502.org/users/andre/o65/fileformat.html
- *
- * for more information.
- */
+** file format as defined by Andre Fachat. See the original document under
+**
+**      http://www.6502.org/users/andre/o65/fileformat.html
+**
+** for more information.
+*/
 
 
 
index bab6997dfae7a54d6643f20df6c967de968097d2..e17f030b5d69d664e933f6a9f22b44a1430d7617 100644 (file)
@@ -54,20 +54,20 @@ extern void __fastcall__ (*pen_adjuster) (unsigned char *pValue);
 
 void __fastcall__ pen_calibrate (unsigned char *XOffset);
 /* Ask the user to help to calibrate a lightpen.  Changes the screen!
- * A pointer to this function can be put into pen_adjuster.
- */
+** A pointer to this function can be put into pen_adjuster.
+*/
 
 void __fastcall__ pen_adjust (const char *filename);
 /* Get a lightpen calibration value from a file if it exists.  Otherwise, call
- * pen_calibrate() to create a value; then, write it into a file, so that it
- * will be available at the next time that the lightpen is used.
- * Might change the screen.
- * pen_adjust() is optional; if you want to use its feature,
- * then it must be called before a driver is installed.
- * Note:  This function merely saves the file-name pointer, and sets
- * the pen_adjuster pointer.  The file will be read only when a driver
- * is installed, and only if that driver wants to be calibrated.
- */
+** pen_calibrate() to create a value; then, write it into a file, so that it
+** will be available at the next time that the lightpen is used.
+** Might change the screen.
+** pen_adjust() is optional; if you want to use its feature,
+** then it must be called before a driver is installed.
+** Note:  This function merely saves the file-name pointer, and sets
+** the pen_adjuster pointer.  The file will be read only when a driver
+** is installed, and only if that driver wants to be calibrated.
+*/
 
 
 
index 0588ee8bfb2b950337ba2fa9ef06cbd8f63e6f69..720e40a783bc6af3ab8761d86189fbcd31739873 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 1998-2005 Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -92,9 +92,9 @@ extern void pet_stdjoy_joy[];       /* Referred to by joy_static_stddrv[] */
 
 
 /* The following #defines will cause the matching functions calls in conio.h
- * to be overlaid by macros with the same names, saving the function call
- * overhead.
- */
+** to be overlaid by macros with the same names, saving the function call
+** overhead.
+*/
 #define _textcolor(color)       COLOR_WHITE
 #define _bgcolor(color)         COLOR_BLACK
 #define _bordercolor(color)     COLOR_BLACK
index cecba90c5d2d5526623175ee08b129e22975e1f8..990f665215197822fd646bc7e7c7d1416e7dd763 100644 (file)
@@ -92,8 +92,8 @@
 #define SER_HS_SW               0x02    /* Software handshake */
 
 /* Bit masks to mask out things from the status returned by ser_status.
- * These are 6551 specific and must be mapped by drivers for other chips.
- */
+** These are 6551 specific and must be mapped by drivers for other chips.
+*/
 #define SER_STATUS_PE           0x01    /* Parity error */
 #define SER_STATUS_FE           0x02    /* Framing error */
 #define SER_STATUS_OE           0x04    /* Overrun error */
@@ -141,8 +141,8 @@ unsigned char __fastcall__ ser_install (void* driver);
 
 unsigned char ser_uninstall (void);
 /* Uninstall the currently loaded driver and return an error code.
- * Note: This call does not free allocated memory.
- */
+** Note: This call does not free allocated memory.
+*/
 
 unsigned char __fastcall__ ser_open (const struct ser_params* params);
 /* "Open" the port by setting the port parameters and enable interrupts. */
@@ -152,14 +152,14 @@ unsigned char ser_close (void);
 
 unsigned char __fastcall__ ser_get (char* b);
 /* Get a character from the serial port. If no characters are available, the
- * function will return SER_ERR_NO_DATA, so this is not a fatal error.
- */
+** function will return SER_ERR_NO_DATA, so this is not a fatal error.
+*/
 
 unsigned char __fastcall__ ser_put (char b);
 /* Send a character via the serial port. There is a transmit buffer, but
- * transmitting is not done via interrupt. The function returns
- * SER_ERR_OVERFLOW if there is no space left in the transmit buffer.
- */
+** transmitting is not done via interrupt. The function returns
+** SER_ERR_OVERFLOW if there is no space left in the transmit buffer.
+*/
 
 unsigned char __fastcall__ ser_status (unsigned char* status);
 /* Return the serial port status. */
index 0053a9bbade50e2339eb5a85588e62dc0cbff134..5d6f04769225847951377eb7b00bc0d2474eb39c 100644 (file)
@@ -34,8 +34,8 @@
 
 
 /* Note: This file is not fully ISO 9899-1999 compliant because cc65 lacks
- * a 64 bit data types. The declarations have been adjusted accordingly.
- */
+** a 64 bit data types. The declarations have been adjusted accordingly.
+*/
 
 
 
index 026e19198b47e4928314d98e3240e9affb7f9128..eac5629a82542c18461d1f291deb6a7f9b309e46 100644 (file)
@@ -71,13 +71,13 @@ void __fastcall__ free (void* block);
 #if __CC65_STD__ == __CC65_STD_CC65__
 int __fastcall__ posix_memalign (void** memptr, size_t alignment, size_t size);
 /* Allocate a block of memory with the given "size", which is aligned to a
- * memory address that is a multiple of "alignment".  "alignment" MUST NOT be
- * zero, and MUST be a power of two; otherwise, this function will return
- * EINVAL.  The function returns ENOMEM if not enough memory is available
- * to satisfy the request.  "memptr" must point to a variable; that variable
- * will return the address of the allocated memory.  Use free() to release that
- * allocated block.
- */
+** memory address that is a multiple of "alignment".  "alignment" MUST NOT be
+** zero, and MUST be a power of two; otherwise, this function will return
+** EINVAL.  The function returns ENOMEM if not enough memory is available
+** to satisfy the request.  "memptr" must point to a variable; that variable
+** will return the address of the allocated memory.  Use free() to release that
+** allocated block.
+*/
 #endif
 
 void __fastcall__ _heapadd (void* mem, size_t size);
index be492667e59b549018bac917ff9b433dfb79e2c6..46095a52542ab7213a71808e988152dbd20e1486 100644 (file)
@@ -65,8 +65,8 @@ void* __fastcall__ memmove (void* dest, const void* src, size_t count);
 void* __fastcall__ memset (void* s, int c, size_t count);
 
 /* The following is an internal function, the compiler will replace memset
- * with it if the fill value is zero. Never use this one directly!
- */
+** with it if the fill value is zero. Never use this one directly!
+*/
 void* __fastcall__ _bzero (void* ptr, size_t n);
 
 /* Non standard: */
index 332fe973b5acc82929063ab8f775c4d15fea6547..ffece4ecbcfbebc2dc69ed4eb31a5cb5d09f4bdc 100644 (file)
@@ -98,9 +98,9 @@ struct __sv_dma {
 
 
 /* Counters incremented asynchronously!
- * If you want more complex, copy the crt0.s file from the libsrc/supervision
- * directory and code them yourself (in assembler)
- */
+** If you want more complex, copy the crt0.s file from the libsrc/supervision
+** directory and code them yourself (in assembler)
+*/
 extern unsigned char sv_nmi_counter;
 extern unsigned char sv_timer_irq_counter;
 extern unsigned char sv_timer_dma_counter;
index 28feecc4631eb38d2dcbabbd9ced370f9beba2a0..a601d9eedac3ed6b06cfced0d06b85f0a099a762 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2003      Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 
 
 /*
- * Suggested field contents:
- *
- *   sysname
- *      Should contain the name of the underlying operating system, or "cc65"
- *      if the program runs on the bare machine.
- *
- *   nodename
- *      Is empty or may be defined by the implementor.
- *
- *   release
- *      Contains the operating system release or the major/minor cc65 version
- *      if sysname contains "cc65".
- *
- *   version
- *      Contains the operating system version or the cc65 patch version if
- *      sysname contains "cc65".
- *
- *   machine
- *      Contains the complete name of the machine, like "Commodore 64",
- *      "Oric Atmos" or similar.
- *
- * Beware: The library sources written in assembler have knowledge about this
- * struct!
- */
+** Suggested field contents:
+**
+**   sysname
+**      Should contain the name of the underlying operating system, or "cc65"
+**      if the program runs on the bare machine.
+**
+**   nodename
+**      Is empty or may be defined by the implementor.
+**
+**   release
+**      Contains the operating system release or the major/minor cc65 version
+**      if sysname contains "cc65".
+**
+**   version
+**      Contains the operating system version or the cc65 patch version if
+**      sysname contains "cc65".
+**
+**   machine
+**      Contains the complete name of the machine, like "Commodore 64",
+**      "Oric Atmos" or similar.
+**
+** Beware: The library sources written in assembler have knowledge about this
+** struct!
+*/
 struct utsname {
     char sysname[17];
     char nodename[9];
index 51d0eaebc6b8c20e953fa48cee30042335341fea..02dff8868768b93ae7f2ec6f3a8caa22332449cf 100644 (file)
@@ -80,44 +80,44 @@ void __fastcall__ tgi_load_driver (const char* name);
 
 void tgi_unload (void);
 /* Uninstall, then unload the currently loaded driver. Will call tgi_done if
- * necessary.
- */
+** necessary.
+*/
 
 void __fastcall__ tgi_install (void* driver);
 /* Install an already loaded driver. */
 
 void tgi_uninstall (void);
 /* Uninstall the currently loaded driver but do not unload it. Will call
- * tgi_done if necessary.
- */
+** tgi_done if necessary.
+*/
 
 void tgi_init (void);
 /* Initialize the already loaded graphics driver. */
 
 void tgi_done (void);
 /* End graphics mode, switch back to text mode. Will NOT uninstall or unload
- * the driver!
- */
+** the driver!
+*/
 
 const tgi_vectorfont* __fastcall__ tgi_load_vectorfont (const char* name);
 /* Load a vector font into memory and return it. In case of errors, NULL is
- * returned and an error is set, which can be retrieved using tgi_geterror.
- * To use the font, it has to be installed using tgi_install_vectorfont.
- */
+** returned and an error is set, which can be retrieved using tgi_geterror.
+** To use the font, it has to be installed using tgi_install_vectorfont.
+*/
 
 void __fastcall__ tgi_install_vectorfont (const tgi_vectorfont* font);
 /* Install a vector font for use. More than one vector font can be loaded,
- * but only one can be active. This function is used to tell which one. Call
- * with a NULL pointer to uninstall the currently installed font.
- */
+** but only one can be active. This function is used to tell which one. Call
+** with a NULL pointer to uninstall the currently installed font.
+*/
 
 void __fastcall__ tgi_free_vectorfont (const tgi_vectorfont* font);
 /* Free a vector font that was previously loaded into memory. */
 
 unsigned char tgi_geterror (void);
 /* Return the error code for the last operation. This will also clear the
- * error.
- */
+** error.
+*/
 
 const char* __fastcall__ tgi_geterrormsg (unsigned char code);
 /* Get an error message describing the error in code. */
@@ -139,8 +139,8 @@ unsigned char tgi_getcolorcount (void);
 
 unsigned char tgi_getmaxcolor (void);
 /* Return the maximum supported color number (the number of colors would
- * then be getmaxcolor()+1).
- */
+** then be getmaxcolor()+1).
+*/
 
 void __fastcall__ tgi_setcolor (unsigned char color);
 /* Set the current drawing color. */
@@ -150,8 +150,8 @@ unsigned char tgi_getcolor (void);
 
 void __fastcall__ tgi_setpalette (const unsigned char* palette);
 /* Set the palette (not available with all drivers/hardware). palette is
- * a pointer to as many entries as there are colors.
- */
+** a pointer to as many entries as there are colors.
+*/
 
 const unsigned char* tgi_getpalette (void);
 /* Return the current palette. */
@@ -164,26 +164,26 @@ unsigned tgi_getxres (void);
 
 unsigned tgi_getmaxx (void);
 /* Return the maximum x coordinate. The resolution in x direction is
- * getmaxx() + 1
- */
+** getmaxx() + 1
+*/
 
 unsigned tgi_getyres (void);
 /* Return the resolution in Y direction. */
 
 unsigned tgi_getmaxy (void);
 /* Return the maximum y coordinate. The resolution in y direction is
- * getmaxy() + 1
- */
+** getmaxy() + 1
+*/
 
 unsigned tgi_getaspectratio (void);
 /* Returns the aspect ratio for the loaded driver. The aspect ratio is an
- * 8.8 fixed point value.
- */
+** 8.8 fixed point value.
+*/
 
 void __fastcall__ tgi_setaspectratio (unsigned aspectratio);
 /* Set a new aspect ratio for the loaded driver. The aspect ratio is an
- * 8.8 fixed point value.
- */
+** 8.8 fixed point value.
+*/
 
 unsigned char __fastcall__ tgi_getpixel (int x, int y);
 /* Get the color value of a pixel. */
@@ -196,89 +196,89 @@ void __fastcall__ tgi_gotoxy (int x, int y);
 
 void __fastcall__ tgi_line (int x1, int y1, int x2, int y2);
 /* Draw a line in the current drawing color. The graphics cursor will
- * be set to x2/y2 by this call.
- */
+** be set to x2/y2 by this call.
+*/
 
 void __fastcall__ tgi_lineto (int x2, int y2);
 /* Draw a line in the current drawing color from the graphics cursor to the
- * new end point. The graphics cursor will be updated to x2/y2.
- */
+** new end point. The graphics cursor will be updated to x2/y2.
+*/
 
 void __fastcall__ tgi_circle (int x, int y, unsigned char radius);
 /* Draw a circle in the current drawing color. */
 
 void __fastcall__ tgi_ellipse (int x, int y, unsigned char rx, unsigned char ry);
 /* Draw a full ellipse with center at x/y and radii rx/ry using the current
- * drawing color.
- */
+** drawing color.
+*/
 
 void __fastcall__ tgi_arc (int x, int y, unsigned char rx, unsigned char ry,
                            unsigned sa, unsigned ea);
 /* Draw an ellipse arc with center at x/y and radii rx/ry using the current
- * drawing color. The arc covers the angle between sa and ea (startangle and
- * endangle), which must be in the range 0..360 (otherwise the function may
- * bevave unextectedly).
- */
+** drawing color. The arc covers the angle between sa and ea (startangle and
+** endangle), which must be in the range 0..360 (otherwise the function may
+** bevave unextectedly).
+*/
 
 void __fastcall__ tgi_pieslice (int x, int y, unsigned char rx, unsigned char ry,
                                 unsigned sa, unsigned ea);
 /* Draw an ellipse pie slice with center at x/y and radii rx/ry using the
- * current drawing color. The pie slice covers the angle between sa and ea
- * (startangle and endangle), which must be in the range 0..360 (otherwise the
- * function may behave unextectedly).
- */
+** current drawing color. The pie slice covers the angle between sa and ea
+** (startangle and endangle), which must be in the range 0..360 (otherwise the
+** function may behave unextectedly).
+*/
 
 void __fastcall__ tgi_bar (int x1, int y1, int x2, int y2);
 /* Draw a bar (a filled rectangle) using the current color. */
 
 void __fastcall__ tgi_settextdir (unsigned char dir);
 /* Set the direction for text output. dir is one of the TGI_TEXT_XXX
- * constants.
- */
+** constants.
+*/
 
 void __fastcall__ tgi_settextscale (unsigned width, unsigned height);
 /* Set the scaling for text output. The scaling factors for width and height
- * are 8.8 fixed point values. This means that $100 = 1 $200 = 2 etc.
- */
+** are 8.8 fixed point values. This means that $100 = 1 $200 = 2 etc.
+*/
 
 void __fastcall__ tgi_settextstyle (unsigned width, unsigned height,
                                     unsigned char dir, unsigned char font);
 /* Set the style for text output. The scaling factors for width and height
- * are 8.8 fixed point values. This means that $100 = 1 $200 = 2 etc.
- * dir is one of the TGI_TEXT_XXX constants. font is one of the TGI_FONT_XXX
- * constants.
- */
+** are 8.8 fixed point values. This means that $100 = 1 $200 = 2 etc.
+** dir is one of the TGI_TEXT_XXX constants. font is one of the TGI_FONT_XXX
+** constants.
+*/
 
 unsigned __fastcall__ tgi_gettextwidth (const char* s);
 /* Calculate the width of the text in pixels according to the current text
- * style.
- */
+** style.
+*/
 
 unsigned __fastcall__ tgi_gettextheight (const char* s);
 /* Calculate the height of the text in pixels according to the current text
- * style.
- */
+** style.
+*/
 
 void __fastcall__ tgi_outtext (const char* s);
 /* Output text at the current graphics cursor position. The graphics cursor
- * is moved to the end of the text.
- */
+** is moved to the end of the text.
+*/
 
 void __fastcall__ tgi_outtextxy (int x, int y, const char* s);
 /* Output text at the given cursor position. The graphics cursor is moved to
- * the end of the text.
- */
+** the end of the text.
+*/
 
 unsigned __fastcall__ tgi_ioctl (unsigned char code, void* data);
 /* Call the driver specific control function. What this function does for
- * a specific code depends on the driver. The driver will set an error
- * for unknown codes or values.
- */
+** a specific code depends on the driver. The driver will set an error
+** for unknown codes or values.
+*/
 
 int __fastcall__ tgi_imulround (int rhs, int lhs);
 /* Helper function for functions using sine/cosine: Multiply two values, one
- * being an 8.8 fixed point one, and return the rounded and scaled result.
- */
+** being an 8.8 fixed point one, and return the rounded and scaled result.
+*/
 
 
 
index 82513b271cd17ebcf426366d74e0e5dc1243c144..9cbfc30fca197496613d0e8dabd195b3776da7fb 100644 (file)
@@ -78,8 +78,8 @@ struct tgi_vectorfont {
 
 void __fastcall__ tgi_vectorchar (char C);
 /* Draw one character of the vector font at the current graphics cursor
- * position using the current font magnification.
- */
+** position using the current font magnification.
+*/
 
 
 
index 3566cb7b5f2a62db5dc31761663479db0a0a9907..c70ffa718b6a2de36ab8016e198d20fcac1a3dcb 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 1998-2012 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -104,7 +104,8 @@ unsigned _clocks_per_sec (void);
 #  define CLOCKS_PER_SEC        1       /* ANSI */
 #elif defined(__LYNX__)
 /* The clock-rate depends on the video scan-rate;
-** so, read it at run-time. */
+** so, read it at run-time.
+*/
 extern clock_t _clk_tck (void);
 #  define CLK_TCK               _clk_tck()
 #  define CLOCKS_PER_SEC        _clk_tck()
@@ -114,10 +115,10 @@ extern clock_t _clk_tck (void);
 
 time_t _systime (void);
 /* Similar to time(), but:
- *   - Is not ISO C
- *   - Does not take the additional pointer
- *   - Does not set errno when returning -1
- */
+**   - Is not ISO C
+**   - Does not take the additional pointer
+**   - Does not set errno when returning -1
+*/
 
 /* ISO C function prototypes */
 char* __fastcall__ asctime (const struct tm* timep);
index 98d39a2787bf3fe1880f419bd7a8949ed8af43e4..9bf4fe904342805c473abdd6e28e27ed9071dbd6 100644 (file)
@@ -3,10 +3,10 @@
 ;
 ; time_t _systime (void);
 ; /* Similar to time(), but:
-;  *   - Is not ISO C
-;  *   - Does not take the additional pointer
-;  *   - Does not set errno when returning -1
-;  */
+; **   - Is not ISO C
+; **   - Does not take the additional pointer
+; **   - Does not set errno when returning -1
+; */
 ;
 
         .include        "time.inc"
index 8cae0bdf0b44f83b49ebae836070bbe271261235..bac9356f5d24039619cf56fa37424e9115aebc52 100644 (file)
@@ -1,7 +1,7 @@
 ; This file defines the EXE file "trailer" which sets the entry point
 
         .export         __AUTOSTART__: absolute = 1
-       .import         start
+        .import         start
 
         .include        "atari.inc"
 
index dbc0b5dfb87e7d04912fc8f1c8b83906136cef5f..2f1feefc4138a2deb3962756f86d4346cd6b88a9 100644 (file)
@@ -194,7 +194,7 @@ delay1: ldx     #0
 end:
 
 .ifndef __ATARIXL__
-tmp:           ; outside of the load chunk, some kind of poor man's .bss
+tmp:            ; outside of the load chunk, some kind of poor man's .bss
 .endif
 
 ; ------------------------------------------------------------------------
index d22b8c596c8dff2f4624405b064373c8d7e20663..273e394a40381ae35e5bc82c1219a460d8be0a60 100644 (file)
@@ -3,10 +3,10 @@
 ;
 ; time_t _systime (void);
 ; /* Similar to time(), but:
-;  *   - Is not ISO C
-;  *   - Does not take the additional pointer
-;  *   - Does not set errno when returning -1
-;  */
+; **   - Is not ISO C
+; **   - Does not take the additional pointer
+; **   - Does not set errno when returning -1
+; */
 ;
 
         .export         __systime
index 050218cfe633025881be7a82a30f65c90db5b5ec..4d574da073b9a4f93c8d776907e9b5c0ca2d3e95 100644 (file)
@@ -1,12 +1,12 @@
 /* w2cas.c -- write file to cassette
- *
- * This program writes a boot file (typically linked with
- * 'atari-cassette.cfg') to the cassette.
- * Only files < 32K are supported, since the loading of
- * larger files requires a special loader inside the program.
- *
- * Christian Groessler, chris@groessler.org, 2014
- */
+**
+** This program writes a boot file (typically linked with
+** 'atari-cassette.cfg') to the cassette.
+** Only files < 32K are supported, since the loading of
+** larger files requires a special loader inside the program.
+**
+** Christian Groessler, chris@groessler.org, 2014
+*/
 
 #include <stdio.h>
 #include <stdlib.h>
index d22b8c596c8dff2f4624405b064373c8d7e20663..273e394a40381ae35e5bc82c1219a460d8be0a60 100644 (file)
@@ -3,10 +3,10 @@
 ;
 ; time_t _systime (void);
 ; /* Similar to time(), but:
-;  *   - Is not ISO C
-;  *   - Does not take the additional pointer
-;  *   - Does not set errno when returning -1
-;  */
+; **   - Is not ISO C
+; **   - Does not take the additional pointer
+; **   - Does not set errno when returning -1
+; */
 ;
 
         .export         __systime
index 9e032f9152607d3de612b1631fd98af3015f316a..6c4c8c21ebf9a4465a02d1a0b23549004aa49e23 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; void fast (void);
 ; /* Switch the CPU into 2MHz mode. Note: This will disable video when in
-;  * 40 column mode.
-;  */
+; ** 40 column mode.
+; */
 ;
 
         .export         _fast
index bea2164f58c53cae45ba19bd6e22e93a0ad9cbad..0a7f8f367715f96079582f333ef637685cc276d1 100644 (file)
@@ -3,10 +3,10 @@
 ;
 ; time_t _systime (void);
 ; /* Similar to time(), but:
-;  *   - Is not ISO C
-;  *   - Does not take the additional pointer
-;  *   - Does not set errno when returning -1
-;  */
+; **   - Is not ISO C
+; **   - Does not take the additional pointer
+; **   - Does not set errno when returning -1
+; */
 ;
 
         .include        "time.inc"
index d22b8c596c8dff2f4624405b064373c8d7e20663..273e394a40381ae35e5bc82c1219a460d8be0a60 100644 (file)
@@ -3,10 +3,10 @@
 ;
 ; time_t _systime (void);
 ; /* Similar to time(), but:
-;  *   - Is not ISO C
-;  *   - Does not take the additional pointer
-;  *   - Does not set errno when returning -1
-;  */
+; **   - Is not ISO C
+; **   - Does not take the additional pointer
+; **   - Does not set errno when returning -1
+; */
 ;
 
         .export         __systime
index eb5f999f6d811f081ae1d6251cae07d78776cf3b..a00df13977fa828864d68137fffb18240792e672 100644 (file)
@@ -3,10 +3,10 @@
 ;
 ; time_t _systime (void);
 ; /* Similar to time(), but:
-;  *   - Is not ISO C
-;  *   - Does not take the additional pointer
-;  *   - Does not set errno when returning -1
-;  */
+; **   - Is not ISO C
+; **   - Does not take the additional pointer
+; **   - Does not set errno when returning -1
+; */
 ;
 
         .include        "time.inc"
index 297910615abb8999d114f4c96d8abd2414167bd6..695af504b61d0829e5ba7daa05c5738d9f256d0d 100644 (file)
@@ -1,20 +1,21 @@
 /*
- * Marc 'BlackJack' Rintsch, 06.03.2001
- *
- * unsigned int cbm_load(const char* name,
- *                       unsigned char device,
- *                       const unsigned char* data);
- */
+** Marc 'BlackJack' Rintsch, 06.03.2001
+**
+** unsigned int cbm_load(const char* name,
+**                       unsigned char device,
+**                       const unsigned char* data);
+*/
 
 #include <cbm.h>
 
 /* loads file "name" from given device to given address or to the load address
- * of the file if "data" is 0
- */
+** of the file if "data" is 0
+*/
 unsigned int cbm_load(const char* name, unsigned char device, void* data)
 {
-    /* LFN is set to 0 but it's not needed for loading.
-     * (BASIC V2 sets it to the value of the SA for LOAD) */
+    /* LFN is set to 0; but, it's not needed for loading
+    ** (BASIC V2 sets it to the value of the SA for LOAD).
+    */
     cbm_k_setlfs(0, device, data == 0);
     cbm_k_setnam(name);
     return (cbm_k_load(0, (unsigned int)data) - (unsigned int)data);
index 4d1cec040f91cb792c91b7a2bab117e656abd44e..1842fc149a52fca77d1881ccd365650cdc27035b 100644 (file)
@@ -8,9 +8,9 @@
 ;                                      unsigned char sec_addr,
 ;                                      const char* name);
 ; /* Opens a file. Works just like the BASIC command.
-;  * Returns 0 if opening was successful, otherwise an errorcode (see table
-;  * below).
-;  */
+; ** Returns 0 if opening was successful, otherwise an errorcode (see table
+; ** below).
+; */
 ; {
 ;     cbm_k_setlfs(lfn, device, sec_addr);
 ;     cbm_k_setnam(name);
index d97ccbd8b390fefd0cf6ea3e37e6be588ba825ee..c84ff65aa741d389289f294000c088817a94bec1 100644 (file)
@@ -5,10 +5,10 @@
 ;
 ; int __fastcall__ cbm_read (unsigned char lfn, void* buffer, unsigned int size)
 ; /* Reads up to "size" bytes from a file to "buffer".
-;  * Returns the number of actually read bytes, 0 if there are no bytes left
-;  * (EOF) or -1 in case of an error. _oserror contains an errorcode then (see
-;  * table below).
-;  */
+; ** Returns the number of actually read bytes, 0 if there are no bytes left
+; ** (EOF) or -1 in case of an error. _oserror contains an errorcode then (see
+; ** table below).
+; */
 ; {
 ;     static unsigned int bytesread;
 ;     static unsigned char tmp;
 ;         tmp = cbm_k_basin();
 ;
 ;         /* the kernal routine BASIN sets ST to EOF if the end of file
-;          * is reached the first time, then we have store tmp.
-;          * every subsequent call returns EOF and READ ERROR in ST, then
-;          * we have to exit the loop here immidiatly. */
+;         ** is reached the first time, then we have store tmp.
+;         ** every subsequent call returns EOF and READ ERROR in ST, then
+;         ** we have to exit the loop here immediatly.
+;         */
 ;         if (cbm_k_readst() & 0xBF) break;
 ;
 ;         ((unsigned char*)buffer)[bytesread++] = tmp;
index b88eed4eec9881e28b6dd199fcdb95cca7bd77e2..7f774b1b6a99ea9e4ef5a072cef9e7281a25cbfc 100644 (file)
@@ -1,17 +1,17 @@
 /*
- * Marc 'BlackJack' Rintsch, 11.03.2001
- *
- * unsigned char cbm_save(const char* name,
- *                        char device,
- *                        unsigned char* data,
- *                        unsigned int size);
- */
+** Marc 'BlackJack' Rintsch, 11.03.2001
+**
+** unsigned char cbm_save(const char* name,
+**                        char device,
+**                        unsigned char* data,
+**                        unsigned int size);
+*/
 
 #include <cbm.h>
 #include <errno.h>
 
 /* saves a memory area from start to end-1 to a file.
- */
+*/
 unsigned char __fastcall__ cbm_save (const char* name, 
                                      unsigned char device,
                                      const void* data, 
index c206e6ed9915fd783685417ab92e7622927eb0c7..08cb022a0f617de7050b260a7264fdc65c6396d6 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Internal include file, do not use directly.
- * Written by Ullrich von Bassewitz. Based on code by Groepaz.
- */
+** Internal include file, do not use directly.
+** Written by Ullrich von Bassewitz. Based on code by Groepaz.
+*/
 
 
 
@@ -36,15 +36,15 @@ struct DIR {
 
 unsigned char __fastcall__ _dirread (DIR* dir, void* buf, unsigned char count);
 /* Read characters from the directory into the supplied buffer. Makes sure,
- * errno is set in case of a short read. Return true if the read was
- * successful and false otherwise.
- */
+** errno is set in case of a short read. Return true if the read was
+** successful and false otherwise.
+*/
 
 unsigned char __fastcall__ _dirread1 (DIR* dir, void* buf);
 /* Read one byte from the directory into the supplied buffer. Makes sure,
- * errno is set in case of a short read. Return true if the read was
- * successful and false otherwise.
- */
+** errno is set in case of a short read. Return true if the read was
+** successful and false otherwise.
+*/
 
 
 
index 1916a410424511824acfa3919d0f066d17e09ce3..fddd71d7c1ce357f7d2e308ad0ed46e854c5b8e6 100644 (file)
@@ -16,9 +16,9 @@
 ;
 ; unsigned char __fastcall__ _dirread1 (DIR* dir, void* buf);
 ; /* Read one byte from the directory into the supplied buffer. Makes sure,
-;  * errno is set in case of a short read. Return true if the read was
-;  * successful and false otherwise.
-;  */
+; ** errno is set in case of a short read. Return true if the read was
+; ** successful and false otherwise.
+; */
 
 __dirread1:
 
@@ -31,9 +31,9 @@ __dirread1:
 ;
 ; unsigned char __fastcall__ _dirread (DIR* dir, void* buf, unsigned char count);
 ; /* Read characters from the directory into the supplied buffer. Makes sure,
-;  * errno is set in case of a short read. Return true if the read was
-;  * successful and false otherwise.
-;  */
+; ** errno is set in case of a short read. Return true if the read was
+; ** successful and false otherwise.
+; */
 
 __dirread:
 
index fe7fecb20a942e8fa2ff69c369267e9efef7fa11..b39e6b77ec76a502ceae0508e17791b94157937c 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Ullrich von Bassewitz, 2012-05-30. Based on code by Groepaz.
- */
+** Ullrich von Bassewitz, 2012-05-30. Based on code by Groepaz.
+*/
 
 #include <stdlib.h>
 #include <string.h>
@@ -18,8 +18,8 @@ DIR* __fastcall__ opendir (register const char* name)
     DIR d;
 
     /* Setup the actual file name that is sent to the disk. We accept "0:",
-     * "1:" and "." as directory names.
-     */
+    ** "1:" and "." as directory names.
+    */
     d.name[0] = '$';
     if (name == 0 || name[0] == '\0' || (name[0] == '.' && name[1] == '\0')) {
         d.name[1] = '\0';
index d6947316bf0039466b7c0ac7b810c787572b509b..8d69689770a2674ae3a81a37163c94bafb084e19 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Ullrich von Bassewitz, 2012-05-30. Based on code by Groepaz.
- */
+** Ullrich von Bassewitz, 2012-05-30. Based on code by Groepaz.
+*/
 
 
 
@@ -53,9 +53,9 @@ struct dirent* __fastcall__ readdir (register DIR* dir)
     dir->off += count + 4;
 
     /* End of directory is reached if the buffer contains "blocks free". It is
-     * sufficient here to check for the leading 'b'. buffer will contain at
-     * least one byte if we come here.
-     */
+    ** sufficient here to check for the leading 'b'. buffer will contain at
+    ** least one byte if we come here.
+    */
     if (buffer[0] == 'b') {
         goto exitpoint;
     }
index 0a4fe0781d35db1d2c1ae09ef050e90cdb4a0fbf..3ae206b4ef34f4875a46dbc5fd7ea7b78f785e8e 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Ullrich von Bassewitz, 2012-06-03. Based on code by Groepaz.
- */
+** Ullrich von Bassewitz, 2012-06-03. Based on code by Groepaz.
+*/
 
 #include <fcntl.h>
 #include <unistd.h>
index 8a3858cef981a6f180831cbd587ba87cbed79e7b..daac36d8dc2986f3e27bd67ff5ec46ac7915ef6c 100644 (file)
@@ -4,10 +4,10 @@
 ;
 ; time_t _systime (void);
 ; /* Similar to time(), but:
-;  *   - Is not ISO C
-;  *   - Does not take the additional pointer
-;  *   - Does not set errno when returning -1
-;  */
+; **   - Is not ISO C
+; **   - Does not take the additional pointer
+; **   - Does not set errno when returning -1
+; */
 ;
 
         .include        "time.inc"
index a6e72e8a56c83bf816e5eb44e830212972606e0b..be2bedf6f68e102b9a649683b36f06cb077a2817 100644 (file)
@@ -4,10 +4,10 @@
 ;
 ; time_t _systime (void);
 ; /* Similar to time(), but:
-;  *   - Is not ISO C
-;  *   - Does not take the additional pointer
-;  *   - Does not set errno when returning -1
-;  */
+; **   - Is not ISO C
+; **   - Does not take the additional pointer
+; **   - Does not set errno when returning -1
+; */
 ;
 
         .include        "time.inc"
index 6600bf86088873d2dac687086e03449f280685d4..4e56b93f23987e0affa6c7b1c54b023fdada10ea 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * _afailed.c
- *
- * Ullrich von Bassewitz, 06.06.1998
- */
+** _afailed.c
+**
+** Ullrich von Bassewitz, 06.06.1998
+*/
 
 
 
index 66c8af828ffc1c07b329090d331898a5669afedf..8cd12c15e1184ceaa2c9dd397ca73cc5bc735e38 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * _file.h
- *
- * (C) Copyright 1998, 2002 Ullrich von Bassewitz (uz@cc65.org)
- *
- */
+** _file.h
+**
+** (C) Copyright 1998, 2002 Ullrich von Bassewitz (uz@cc65.org)
+**
+*/
 
 
 
index d4f24b2ea71ca3ece196d2f0c7b7358c4a22f626..4c172abb5e1eda956f313305c8f6b518bc0e30a2 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * Ullrich von Bassewitz, 11.08.1998
- *
- * Hex conversion table. Must be in C since the compiler will convert
- * to the correct character set for the target platform.
- */
+** Ullrich von Bassewitz, 11.08.1998
+**
+** Hex conversion table. Must be in C since the compiler will convert
+** to the correct character set for the target platform.
+*/
 
 
 
index 290c7f1557d29d71d4d124b87b4624e4b6e17f2a..ffc35aa77e466ffedf03f0e96eaf55c10de26598 100644 (file)
@@ -1,11 +1,11 @@
 /*
- * Ullrich von Bassewitz, 2012-11-26
- *
- * Minimum value of a long. Is used in ascii conversions, since this value 
- * has no positive counterpart than can be represented in 32 bits. In C,
- * since the compiler will convert to the correct character set for the 
- * target platform.
- */
+** Ullrich von Bassewitz, 2012-11-26
+**
+** Minimum value of a long. Is used in ascii conversions, since this value 
+** has no positive counterpart than can be represented in 32 bits. In C,
+** since the compiler will convert to the correct character set for the 
+** target platform.
+*/
 
 
 
index e965b0d8529f9b9c2cb9752616ff296dda6ab698..ffb2443bd931b8dcaf3f9420439424bc834a96c6 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * _printf.h
- *
- * (C) Copyright 1998 Ullrich von Bassewitz (uz@cc65.org)
- *
- */
+** _printf.h
+**
+** (C) Copyright 1998 Ullrich von Bassewitz (uz@cc65.org)
+**
+*/
 
 
 
@@ -21,9 +21,9 @@ typedef void (*outfunc) (struct outdesc* desc, const char* buf, unsigned count);
 
 
 /* Control structure passed to the low level worker function.
- * Beware: This function will access the structure on the assembly level,
- * so check this when altering the structure.
- */
+** Beware: This function will access the structure on the assembly level,
+** so check this when altering the structure.
+*/
 struct outdesc {
     int         ccount;         /* Character counter */
     outfunc     fout;           /* Routine used to output data */
index 108fc6095e6694129b44a0a838e2114b596071de..9a3bf280ca605e9966b9106e938c32c2d6bf15e9 100644 (file)
@@ -1,13 +1,13 @@
 /*
- * _scanf.c
- *
- * (c) Copyright 2001-2005, Ullrich von Bassewitz <uz@cc65.org>
- * 2005-01-24, Greg King <gngking@erols.com>
- *
- * This is the basic layer for all scanf-type functions.  It should be
- * rewritten in assembly, at some time in the future.  So, some of the code
- * is not as elegant as it could be.
- */
+** _scanf.c
+**
+** (c) Copyright 2001-2005, Ullrich von Bassewitz <uz@cc65.org>
+** 2005-01-24, Greg King <greg.king5@ver5z6n.net>
+**
+** This is the basic layer for all scanf-type functions.  It should be
+** rewritten in assembly, at some time in the future.  So, some of the code
+** is not as elegant as it could be.
+*/
 
 
 
@@ -76,12 +76,12 @@ static const unsigned char Bits[CHAR_BIT] = {
 };
 
 /* We need C to be 16 bits since we cannot check for EOF otherwise.
- * Unfortunately, this causes the code to be quite larger, even if for most
- * purposes, checking the low byte would be enough, since if C is EOF, the
- * low byte will not match any useful character anyway (at least for the
- * supported platforms - I know that this is not portable). So the following
- * macro is used to access just the low byte of C.
- */
+** Unfortunately, this causes the code to be quite larger, even if for most
+** purposes, checking the low byte would be enough, since if C is EOF, the
+** low byte will not match any useful character anyway (at least for the
+** supported platforms - I know that this is not portable). So the following
+** macro is used to access just the low byte of C.
+*/
 #define CHAR(c)         (*((unsigned char*)&(c)))
 
 
@@ -93,16 +93,16 @@ static const unsigned char Bits[CHAR_BIT] = {
 
 
 /* We don't want the optimizer to ruin our "perfect" ;-)
- * assembly code!
- */
+** assembly code!
+*/
 #pragma optimize (push, off)
 
 static unsigned FindBit (void)
 /* Locate the character's bit in the charset array.
- * < .A - Argument character
- * > .X - Offset of the byte in the character-set mask
- * > .A - Bit-mask
- */
+** < .A - Argument character
+** > .X - Offset of the byte in the character-set mask
+** > .A - Bit-mask
+*/
 {
     asm ("pha");
     asm ("lsr a");              /* Divide by CHAR_BIT */
@@ -250,8 +250,8 @@ static void ReadChar (void)
     asm ("stx %v+1", C);
 
     /* If C is EOF, don't bump the character counter.
-     * Only the high-byte needs to be checked.
-     */
+    ** Only the high-byte needs to be checked.
+    */
     asm ("inx");
     asm ("beq %g", Done);
 
@@ -311,12 +311,12 @@ static void SkipWhite (void)
 
 static void ReadSign (void)
 /* Read an optional sign and skip it. Store 1 in Positive if the value is
- * positive, store 0 otherwise.
- */
+** positive, store 0 otherwise.
+*/
 {
     /* We can ignore the high byte of C here, since if it is EOF, the lower
-     * byte won't match anyway.
-     */
+    ** byte won't match anyway.
+    */
     asm ("lda %v", C);
     asm ("cmp #'-'");
     asm ("bne %g", NotNeg);
@@ -380,11 +380,11 @@ static void __fastcall__ ReadInt (unsigned char Base)
 
 static void AssignInt (void)
 /* Assign the integer value in Val to the next argument. The function makes
- * several non-portable assumptions, to reduce code size:
- *   - signed and unsigned types have the same representation.
- *   - short and int have the same representation.
- *   - all pointer types have the same representation.
- */
+** several non-portable assumptions, to reduce code size:
+**   - signed and unsigned types have the same representation.
+**   - short and int have the same representation.
+**   - all pointer types have the same representation.
+*/
 {
     if (NoAssign == false) {
 
@@ -416,8 +416,8 @@ Done:   ;
 
 static void __fastcall__ ScanInt (unsigned char Base)
 /* Scan an integer including white space, sign and optional base spec,
- * and store it into IntVal.
- */
+** and store it into IntVal.
+*/
 {
     /* Skip whitespace */
     SkipWhite ();
@@ -440,8 +440,8 @@ static void __fastcall__ ScanInt (unsigned char Base)
                     Base = 8;
 
                     /* Restart at the beginning of the number because it might
-                     * be only a single zero digit (which already was read).
-                     */
+                    ** be only a single zero digit (which already was read).
+                    */
                     PushBack ();
                     C = '0';
             }
@@ -483,8 +483,8 @@ static char GetFormat (void)
 int __fastcall__ _scanf (const struct scanfdata* D,
                          const char* format_, va_list ap_)
 /* This is the routine used to do the actual work. It is called from several
- * types of wrappers to implement the actual ISO xxscanf functions.
- */
+** types of wrappers to implement the actual ISO xxscanf functions.
+*/
 {
     register char* S;
              bool  HaveWidth;   /* True if a width was given */
@@ -492,9 +492,9 @@ int __fastcall__ _scanf (const struct scanfdata* D,
              char  Start;       /* Walks over a range */
 
     /* Place copies of the arguments into global variables. This is not very
-     * nice, but on a 6502 platform it gives better code, since the values
-     * do not have to be passed as parameters.
-     */
+    ** nice, but on a 6502 platform it gives better code, since the values
+    ** do not have to be passed as parameters.
+    */
     D_     = D;
     format = format_;
     ap     = ap_;
@@ -505,8 +505,8 @@ int __fastcall__ _scanf (const struct scanfdata* D,
     CharCount   = 0;
 
     /* Set up the jump "label".  CheckEnd() will use that label when EOF
-     * is reached.  ReadInt() will use it when number-conversion fails.
-     */
+    ** is reached.  ReadInt() will use it when number-conversion fails.
+    */
     if ((unsigned char) setjmp (JumpBuf) == RC_OK) {
 Again:
 
@@ -523,9 +523,9 @@ Again:
                 if ((bool) isspace ((int) F)) {
 
                     /* Special white space handling: Any whitespace in the
-                     * format string matches any amount of whitespace including
-                     * none(!). So this match will never fail.
-                     */
+                    ** format string matches any amount of whitespace including
+                    ** none(!). So this match will never fail.
+                    */
                     SkipWhite ();
                     continue;
                 }
@@ -537,8 +537,8 @@ Percent:
                 if (C != (int) F) {
 
                     /* A mismatch -- we will stop scanning the input,
-                     * and return the number of assigned conversions.
-                     */
+                    ** and return the number of assigned conversions.
+                    */
                     goto NoConv;
                 }
 
@@ -572,18 +572,18 @@ Percent:
                 if (Width == 0) {
                     /* Invalid specification */
                     /* Note:  This method of leaving the function might seem
-                     * to be crude, but it optimizes very well because
-                     * the four exits can share this code.
-                     */
+                    ** to be crude, but it optimizes very well because
+                    ** the four exits can share this code.
+                    */
                     _seterrno (EINVAL);
                     Assignments = EOF;
                     PushBack ();
                     return Assignments;
                 }
                 /* Increment-and-test makes better code than test-and-decrement
-                 * does.  So, change the width into a form that can be used in
-                 * that way.
-                 */
+                ** does.  So, change the width into a form that can be used in
+                ** that way.
+                */
                 Width = ~Width;
 
                 /* 3. Length modifier */
@@ -618,9 +618,9 @@ Percent:
                 /* 4. Conversion specifier */
                 switch (F) {
                     /* 'd' and 'u' conversions are actually the same, since the
-                     * standard says that even the 'u' modifier allows an
-                     * optionally signed integer.
-                     */
+                    ** standard says that even the 'u' modifier allows an
+                    ** optionally signed integer.
+                    */
                     case 'd':   /* Optionally signed decimal integer */
                     case 'u':
                         ScanInt (10);
@@ -676,9 +676,9 @@ Percent:
                         if (NoAssign == false) {
                             S = va_arg (ap, char*);
                             /* ## This loop is convenient for us, but it isn't
-                             * standard C.  The standard implies that a failure
-                             * shouldn't put anything into the array argument.
-                             */
+                            ** standard C.  The standard implies that a failure
+                            ** shouldn't put anything into the array argument.
+                            */
                             while (++Width) {
                                 CheckEnd ();  /* Is it a matching failure? */
                                 *S++ = C;
@@ -705,8 +705,8 @@ Percent:
                         }
                         if (F == ']') {
                             /* Empty sets aren't allowed; so, a right-bracket
-                             * at the beginning must be a member of the set.
-                             */
+                            ** at the beginning must be a member of the set.
+                            */
                             AddCharToSet (F);
                             GetFormat ();
                         }
@@ -725,8 +725,8 @@ Percent:
                                         break;
                                     default:
                                         /* Include all characters
-                                         * that are in the range.
-                                         */
+                                        ** that are in the range.
+                                        */
                                         while (1) {
                                             AddCharToSet (Start);
                                             if (Start == F) {
@@ -756,9 +756,9 @@ Percent:
                         }
 
                         /* We have the set in CharSet. Read characters and
-                         * store them into a string while they are part of
-                         * the set.
-                         */
+                        ** store them into a string while they are part of
+                        ** the set.
+                        */
                         Match = false;
                         if (NoAssign == false) {
                             S = va_arg (ap, char*);
@@ -782,10 +782,10 @@ Percent:
 
                     case 'p':
                         /* Pointer, general format is 0xABCD.
-                         * %hhp --> zero-page pointer
-                         * %hp --> near pointer
-                         * %lp --> far pointer
-                         */
+                        ** %hhp --> zero-page pointer
+                        ** %hp --> near pointer
+                        ** %lp --> far pointer
+                        */
                         SkipWhite ();
                         if (CHAR (C) != '0') {
                             goto NoConv;
@@ -806,8 +806,8 @@ Percent:
 
                     case 'n':
                         /* Store the number of characters consumed so far
-                         * (the read-ahead character hasn't been consumed).
-                         */
+                        ** (the read-ahead character hasn't been consumed).
+                        */
                         IntVal = (long) (CharCount - (C == EOF ? 0u : 1u));
                         AssignInt ();
                         /* Don't count it. */
@@ -849,9 +849,9 @@ Percent:
 NoConv:
 
         /* Coming here means a failure. If that happens at EOF, with no
-         * conversion attempts, then it is considered an error; otherwise,
-         * the number of assignments is returned (the default behaviour).
-         */
+        ** conversion attempts, then it is considered an error; otherwise,
+        ** the number of assignments is returned (the default behaviour).
+        */
         if (C == EOF && Converted == false) {
             Assignments = EOF;  /* Special case:  error */
         }
index 0a8b09b7dec24741799e971e8a6ff5a74a1ff479..179be5de7f1b39b0205f1652197cf082d524da25 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * _scanf.h
- *
- * (c) Copyright 2004, Ullrich von Bassewitz <uz@cc65.org>
- *
- */
+** _scanf.h
+**
+** (c) Copyright 2004, Ullrich von Bassewitz <uz@cc65.org>
+**
+*/
 
 
 
@@ -13,8 +13,8 @@
 
 
 /* Type of the function that is called to input data. The function will
- * return EOF if no more data is available.
- */
+** return EOF if no more data is available.
+*/
 typedef int __fastcall__ (*getfunc) (void* data);
 
 /* Type of the function that is called to put back unused data */
@@ -23,9 +23,9 @@ typedef int __fastcall__ (*ungetfunc) (int c, void* data);
 
 
 /* Control structure passed to the low level worker function.
- * Beware: This structure is mirrored in the _scanf.inc assembler include
- * file, so check this when altering the structure.
- */
+** Beware: This structure is mirrored in the _scanf.inc assembler include
+** file, so check this when altering the structure.
+*/
 struct scanfdata {
     getfunc     get;    /* Pointer to input routine */
     ungetfunc   unget;  /* Pointer to pushback routine */
index 298ff0adbd2ba1dbefbb3f9dd8ea41d39897fa3c..43ad676a71ec992e393d18bb7f89e12eeb2c8c92 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * abort.c
- *
- * Ullrich von Bassewitz, 02.06.1998
- */
+** abort.c
+**
+** Ullrich von Bassewitz, 02.06.1998
+*/
 
 
 
index 7d64dbbe9f5a0753317a22b124023b9cac8d31db..f6d32a5b51963cda50395bfc22bc6723627d6369 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * bsearch.c
- *
- * Ullrich von Bassewitz, 17.06.1998
- */
+** bsearch.c
+**
+** Ullrich von Bassewitz, 17.06.1998
+*/
 
 
 
@@ -33,9 +33,9 @@ void* __fastcall__ bsearch (const void* key, const void* base, size_t n,
             last = current - 1;
             if (result == 0) {
                 /* Found one entry that matches the search key. However there may be
-                 * more than one entry with the same key value and ANSI guarantees
-                 * that we return the first of a row of items with the same key.
-                 */
+                ** more than one entry with the same key value and ANSI guarantees
+                ** that we return the first of a row of items with the same key.
+                */
                 found = 1;
             }
         }
index 5c2bf288ec3a37bce06dc5e0585c55f80645eb58..3a1f1b6c8ab15cea01ca992c855198b2408a5c17 100644 (file)
@@ -12,8 +12,8 @@
 ; ----------------------------------------------------------------------------
 ; int __fastcall__ _directerrno (unsigned char code);
 ; /* Set errno to a specific error code, clear _oserror and return -1. Used
-;  * by the library.
-;  */
+; ** by the library.
+; */
 
 __directerrno:
         jsr     __seterrno              ; Set errno, returns with A = 0
@@ -23,10 +23,10 @@ __directerrno:
 ; ----------------------------------------------------------------------------
 ; int __fastcall__ _mappederrno (unsigned char code);
 ; /* Set _oserror to the given platform specific error code. If it is a real
-;  * error code (not zero) set errno to the corresponding system error code
-;  * and return -1. Otherwise return zero.
-;  * Used by the library.
-;  */
+; ** error code (not zero) set errno to the corresponding system error code
+; ** and return -1. Otherwise return zero.
+; ** Used by the library.
+; */
 
 __mappederrno:
         sta     __oserror               ; Store the error code
index d73ca652c30521c8a82ec2cf93df44693f933b54..162dad0854c0b2f01167870d7e769eab5345b125 100644 (file)
@@ -1,11 +1,8 @@
 /*
- * errormsg.c
- *
- * Ullrich von Bassewitz, 17.05.2000
- *
- * Must be a C function, since we have otherwise problems with the different
- * character sets.
- */
+** errormsg.c
+**
+** Ullrich von Bassewitz, 17.05.2000
+*/
 
 
 
index 43559ce8b92bb268caa575dc10777a3008ccf26d..a3e482ffea8cc1891d10f13ab885fde7df4c9ee3 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * fdopen.c
- *
- * Ullrich von Bassewitz, 17.06.1998
- */
+** fdopen.c
+**
+** Ullrich von Bassewitz, 17.06.1998
+*/
 
 
 
index c873cd1d052692f5e0ba75b02ea65879eb3bfead..b4ba18d7326949d3fbbd8ef5a7d5eabf654d18b0 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * fgetc.c
- *
- * (C) Copyright 1998, 2002 Ullrich von Bassewitz (uz@cc65.org)
- *
- */
+** fgetc.c
+**
+** (C) Copyright 1998, 2002 Ullrich von Bassewitz (uz@cc65.org)
+**
+*/
 
 
 
index 796792afa8e6a5b46dd5fd1db06a8ac41e94d5ce..67fee5907b484873c452921317d91f42bc780da2 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * fgetpos.c
- *
- * Christian Groessler, 07-Aug-2000
- */
+** fgetpos.c
+**
+** Christian Groessler, 07-Aug-2000
+*/
 
 
 
index 259f3904e0a927df841f00f7e2e5ff89ef1febd0..21a991fd6f186f4cf2fdde31cc23d5b0bb20a314 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * Ullrich von Bassewitz, 11.08.1998
- *
- * char* fgets (char* s, int size, FILE* f);
- */
+** Ullrich von Bassewitz, 11.08.1998
+**
+** char* fgets (char* s, int size, FILE* f);
+*/
 
 
 
index 73d4860a7c09720098b5a7669dd6f4bbf7e4e3d6..b623949d3e12a5bf8a4a9eb7f002f8e5e34612c5 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * fputc.c
- *
- * Ullrich von Bassewitz, 02.06.1998
- */
+** fputc.c
+**
+** Ullrich von Bassewitz, 02.06.1998
+*/
 
 
 
index 26c20cbe243944fef3bbb32df4fe38f1403f4011..be476a3f0be298eef14c2c192cf3ab74de35b4b5 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * int fputs (const char* s, FILE* f);
- *
- * Ullrich von Bassewitz, 11.08.1998
- */
+** int fputs (const char* s, FILE* f);
+**
+** Ullrich von Bassewitz, 11.08.1998
+*/
 
 
 
index b6b77aae81eea4a2f1d10e473182753964767661..00b5e63f8afec7363514befbba12908d656b413f 100644 (file)
@@ -10,8 +10,8 @@
 ;
 ; void free (void* block)
 ; /* Release an allocated memory block. The function will accept NULL pointers
-;  * (and do nothing in this case).
-;  */
+; ** (and do nothing in this case).
+; */
 ; {
 ;     unsigned* b;
 ;     unsigned size;
@@ -34,8 +34,8 @@
 ;         _hptr = (unsigned*) (((int) _hptr) - size);
 ;
 ;         /* Check if the last block in the freelist is now at heap top. If so,
-;          * remove this block from the freelist.
-;          */
+;         ** remove this block from the freelist.
+;         */
 ;         if (f = _hlast) {
 ;             if (((int) f) + f->size == (int) _hptr) {
 ;                 /* Remove the last block */
@@ -185,10 +185,10 @@ _free:  sta     ptr2
 ;
 ; void _hadd (void* mem, size_t size)
 ; /* Add an arbitrary memory block to the heap. This function is used by
-;  * free(), but it does also allow usage of otherwise unused memory
-;  * blocks as heap space. The given block is entered in the free list
-;  * without any checks, so beware!
-;  */
+; ** free(), but it does also allow usage of otherwise unused memory
+; ** blocks as heap space. The given block is entered in the free list
+; ** without any checks, so beware!
+; */
 ; {
 ;     struct freeblock* f;
 ;     struct freeblock* left;
@@ -212,10 +212,10 @@ _free:  sta     ptr2
 ;       } else {
 ;
 ;           /* We have to search the free list. As we are doing so, we check
-;            * if it is possible to combine this block with another already
-;            * existing block. Beware: The block may be the "missing link"
-;              * between *two* other blocks.
-;            */
+;           ** if it is possible to combine this block with another already
+;           ** existing block. Beware: The block may be the "missing link"
+;           ** between *two* other blocks.
+;           */
 ;           left = 0;
 ;           right = _hfirst;
 ;           while (right && f > right) {
@@ -224,10 +224,10 @@ _free:  sta     ptr2
 ;           }
 ;
 ;
-;           /* Ok, the current block must be inserted between left and right (but
-;            * beware: one of the two may be zero!). Also check for the condition
-;            * that we have to merge two or three blocks.
-;            */
+;           /* OK, the current block must be inserted between left and right (but
+;           ** beware: one of the two may be zero!). Also check for the condition
+;           ** that we have to merge two or three blocks.
+;           */
 ;           if (right) {
 ;               /* Check if we must merge the block with the right one */
 ;                       if (((unsigned) f) + size == (unsigned) right) {
index 3c4d92ee09c57878ec4bd76b6c2c50418803f483..d79d3cf1565266b4fcb897fb418117c6c5774455 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * freopen.c
- *
- * Ullrich von Bassewitz, 17.06.1998
- */
+** freopen.c
+**
+** Ullrich von Bassewitz, 17.06.1998
+*/
 
 
 
@@ -28,8 +28,8 @@ FILE* __fastcall__ freopen (const char* name, const char* mode, FILE* f)
     }
 
     /* Close the file. Don't bother setting the flag, it will get
-     * overwritten by _fopen.
-     */
+    ** overwritten by _fopen.
+    */
     if (close (f->f_fd) < 0) {
         /* An error occured, errno is already set */
         return 0;
index e519fbdd81002e8245df509565c9ff1bb50d4c74..a3d1ec0a1889276942372b3d1eccc16375677660 100644 (file)
@@ -27,8 +27,8 @@ ParamSize:      .res    1               ; Number of parameter bytes
 ;     va_start (ap, format);
 ;
 ;     /* Call vfscanf(). Since we know that va_end won't do anything, we will
-;      * save the call and return the value directly.
-;      */
+;     ** save the call and return the value directly.
+;     */
 ;     return vfscanf (f, format, ap);
 ; }
 ;
index bd47383fd7ffae8146cec3f4b3b0fa9a9d5048cf..5ad511ecd9a4b67b4e6b031244fb071a02b4d196 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * fseek.c
- *
- * Christian Groessler, 2000-08-07
- * Ullrich von Bassewitz, 2004-05-12
- */
+** fseek.c
+**
+** Christian Groessler, 2000-08-07
+** Ullrich von Bassewitz, 2004-05-12
+*/
 
 
 
@@ -31,8 +31,8 @@ int __fastcall__ fseek (register FILE* f, long offset, int whence)
     }
 
     /* If we have a pushed back character, and whence is relative to the
-     * current position, correct the offset.
-     */
+    ** current position, correct the offset.
+    */
     if ((f->f_flags & _FPUSHBACK) && whence == SEEK_CUR) {
         --offset;
     }
@@ -41,11 +41,11 @@ int __fastcall__ fseek (register FILE* f, long offset, int whence)
     res = lseek(f->f_fd, offset, whence);
 
     /* If the seek was successful. Discard any effects of the ungetc function,
-     * and clear the end-of-file indicator. Otherwise set the error indicator
-     * on the stream, and return -1. We will check for >= 0 here, because that
-     * saves some code, and we don't have files with 2 gigabytes in size
-     * anyway:-)
-     */
+    ** and clear the end-of-file indicator. Otherwise set the error indicator
+    ** on the stream, and return -1. We will check for >= 0 here, because that
+    ** saves some code, and we don't have files with 2 gigabytes in size
+    ** anyway:-)
+    */
     if (res >= 0) {
         f->f_flags &= ~(_FEOF | _FPUSHBACK);
         return 0;
index 9f57ca415b84a389e98aab5b3d5bcba6ccd2e77c..14690f520f7876df97bbf917efdedcf620ee2eef 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * fsetpos.c
- *
- * Christian Groessler, 07-Aug-2000
- */
+** fsetpos.c
+**
+** Christian Groessler, 07-Aug-2000
+*/
 
 
 
index efc2e7ce0928db201e16e9e0195028dee0552b1f..3a4134c727e3833eb2635ad8eededfe843c8c5b9 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * ftell.c
- *
- * Christian Groessler, 2000-08-07
- * Ullrich von Bassewitz, 2004-05-13
- */
+** ftell.c
+**
+** Christian Groessler, 2000-08-07
+** Ullrich von Bassewitz, 2004-05-13
+*/
 
 
 
@@ -34,8 +34,8 @@ long __fastcall__ ftell (register FILE* f)
     pos = lseek (f->f_fd, 0L, SEEK_CUR);
 
     /* If we didn't have an error, correct the return value in case we have
-     * a pushed back character.
-     */
+    ** a pushed back character.
+    */
     if (pos > 0 && (f->f_flags & _FPUSHBACK)) {
         --pos;
     }
index 363be02000eb900cf05fb054946b97bdee565c70..913a4f5d64bc0b6c21d20f743a410f4017ebb86d 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * getchar.c
- *
- * Ullrich von Bassewitz, 11.12.1998
- */
+** getchar.c
+**
+** Ullrich von Bassewitz, 11.12.1998
+*/
 
 
 
index 9faca33a2e2eb3f7c8a5da0cc7312eacb3b8162d..34b13b1e6b95b802d7327ab8caf05e09d778c608 100644 (file)
@@ -1,17 +1,17 @@
 /*
- * This is part of a changed public domain getopt implementation that
- * had the following text on top:
- *
- *      I got this off net.sources from Henry Spencer.
- *      It is a public domain getopt(3) like in System V.
- *      I have made the following modifications:
- *
- *      A test main program was added, ifdeffed by GETOPT.
- *      This main program is a public domain implementation
- *      of the getopt(1) program like in System V.  The getopt
- *      program can be used to standardize shell option handling.
- *              e.g.  cc -DGETOPT getopt.c -o getopt
- */
+** This is part of a changed public domain getopt implementation that
+** had the following text on top:
+**
+**      I got this off net.sources from Henry Spencer.
+**      It is a public domain getopt(3) like in System V.
+**      I have made the following modifications:
+**
+**      A test main program was added, ifdeffed by GETOPT.
+**      This main program is a public domain implementation
+**      of the getopt(1) program like in System V.  The getopt
+**      program can be used to standardize shell option handling.
+**              e.g.  cc -DGETOPT getopt.c -o getopt
+*/
 
 #include <stdio.h>
 #include <stdlib.h>
index 4da352430177d65d0620488876a413a88c3020a2..2936c70de1c570ce50155b457a57d7b80052aa3b 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * gets.c
- *
- * Ullrich von Bassewitz, 11.08.1998
- */
+** gets.c
+**
+** Ullrich von Bassewitz, 11.08.1998
+*/
 
 
 
index 3b9c7506ade125c3174f6783cc1e22e60ecd1ced..078d5411960598c0214268710ca7d9a72335668a 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * locale.c
- *
- * Ullrich von Bassewitz, 11.12.1998
- */
+** locale.c
+**
+** Ullrich von Bassewitz, 11.12.1998
+*/
 
 
 
index db25284441f8acbde7d3f6a4f0cc22651120b3cf..cc6298f8cc33f43bddac5b810c014d1e0e7097a1 100644 (file)
@@ -55,9 +55,9 @@ struct tm* __fastcall__ localtime (const time_t* timep)
     }
 
     /* Since our ints are just 16 bits, split the given time into seconds,
-     * hours and days. Each of the values will fit in a 16 bit variable.
-     * The mktime routine will then do the rest.
-     */
+    ** hours and days. Each of the values will fit in a 16 bit variable.
+    ** The mktime routine will then do the rest.
+    */
     timebuf.tm_sec  = t % 3600;
     timebuf.tm_min  = 0;
     timebuf.tm_hour = (t / 3600) % 24;
index 19add25a73ad8acf327ed622be8a8d500c177cc8..3118e2e56f95420c075cc019caa98c7b6834911a 100644 (file)
 ;
 ; void* malloc (size_t size)
 ; /* Allocate memory from the given heap. The function returns a pointer to the
-;  * allocated memory block or a NULL pointer if not enough memory is available.
-;  * Allocating a zero size block is not allowed.
-;  */
+; ** allocated memory block or a NULL pointer if not enough memory is available.
+; ** Allocating a zero size block is not allowed.
+; */
 ; {
 ;     struct freeblock* f;
 ;     unsigned* p;
 ;
 ;
 ;     /* Check for a size of zero, then add the administration space and round
-;      * up the size if needed.
-;      */
+;     ** up the size if needed.
+;     */
 ;     if (size == 0) {
 ;       return 0;
 ;     }
 ;     if (f) {
 ;
 ;         /* We found a block big enough. If the block can hold just the
-;          * requested size, use the block in full. Beware: When slicing blocks,
-;          * there must be space enough to create a new one! If this is not the
-;          * case, then use the complete block.
-;          */
+;         ** requested size, use the block in full. Beware: When slicing blocks,
+;         ** there must be space enough to create a new one! If this is not the
+;         ** case, then use the complete block.
+;         */
 ;         if (f->size - size < sizeof (struct freeblock)) {
 ;
 ;             /* Use the actual size */
@@ -66,9 +66,9 @@
 ;
 ;         } else {
 ;
-;             /* We must slice the block found. Cut off space from the upper
-;            * end, so we can leave the actual free block chain intact.
-;            */
+;           /* We must slice the block found. Cut off space from the upper
+;           ** end, so we can leave the actual free block chain intact.
+;           */
 ;
 ;           /* Decrement the size of the block */
 ;           f->size -= size;
@@ -84,8 +84,8 @@
 ;     } else {
 ;
 ;         /* We did not find a block big enough. Try to use new space from the
-;          * heap top.
-;          */
+;         ** heap top.
+;         */
 ;       if (((unsigned) _hend) - ((unsigned) _hptr) < size) {
 ;             /* Out of heap space */
 ;             return 0;
index 691e61f6d2dd315ff903674e27b81b06612c8619..42372775107fbf3fa2148bd7c6ec0e367ce43dd3 100644 (file)
@@ -77,9 +77,9 @@ static unsigned char __fastcall__ IsLeapYear (unsigned Year)
 
 time_t __fastcall__ mktime (register struct tm* TM)
 /* Make a time in seconds since 1/1/1970 from the broken down time in TM.
- * A call to mktime does also correct the time in TM to contain correct
- * values.
- */
+** A call to mktime does also correct the time in TM to contain correct
+** values.
+*/
 {
     register div_t D;
     int Max;
@@ -118,8 +118,8 @@ time_t __fastcall__ mktime (register struct tm* TM)
     TM->tm_mday += D.quot;
 
     /* Adjust month and year. This is an iterative process, since changing
-     * the month will change the allowed days for this month.
-     */
+    ** the month will change the allowed days for this month.
+    */
     while (1) {
 
         /* Make sure, month is in the range 0..11 */
@@ -131,8 +131,8 @@ time_t __fastcall__ mktime (register struct tm* TM)
         TM->tm_year += D.quot;
 
         /* Now check if mday is in the correct range, if not, correct month
-         * and eventually year and repeat the process.
-         */
+        ** and eventually year and repeat the process.
+        */
         if (TM->tm_mon == FEBRUARY && IsLeapYear (TM->tm_year + 1900)) {
             Max = 29;
         } else {
@@ -154,18 +154,18 @@ time_t __fastcall__ mktime (register struct tm* TM)
     }
 
     /* Ok, all time/date fields are now correct. Calculate the days in this
-     * year.
-     */
+    ** year.
+    */
     TM->tm_yday = MonthDays[TM->tm_mon] + TM->tm_mday - 1;
     if (TM->tm_mon > FEBRUARY && IsLeapYear (TM->tm_year + 1900)) {
         ++TM->tm_yday;
     }
 
     /* Calculate days since 1/1/1970. In the complete epoch (1/1/1970 to
-     * somewhere in 2038) all years dividable by 4 are leap years, so
-     * dividing by 4 gives the days that must be added cause of leap years.
-     * (and the last leap year before 1970 was 1968)
-     */
+    ** somewhere in 2038) all years dividable by 4 are leap years, so
+    ** dividing by 4 gives the days that must be added cause of leap years.
+    ** (and the last leap year before 1970 was 1968)
+    */
     DayCount = ((unsigned) (TM->tm_year-70)) * 365U +
                (((unsigned) (TM->tm_year-(68+1))) / 4) +
                TM->tm_yday;
index e1dc497a279cd13f191e17a5abfc2fa01f78a6c0..8f055a3fc54caefb0cc22e590b61a1b404c3a975 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2004-2005 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 
 
 /* This is a very simple version of an aligned memory allocator.  We will
- * allocate a greater block, so that we can place the aligned block (that is
- * returned) within it.  We use our knowledge about the internal heap
- * structures to free the unused parts of the bigger block (the two chunks
- * below and above the aligned block).
- */
+** allocate a greater block, so that we can place the aligned block (that is
+** returned) within it.  We use our knowledge about the internal heap
+** structures to free the unused parts of the bigger block (the two chunks
+** below and above the aligned block).
+*/
 
 
 
 int __fastcall__ posix_memalign (void** memptr, size_t alignment, size_t size)
 /* Allocate a block of memory with the given "size", which is aligned to a
- * memory address that is a multiple of "alignment".  "alignment" MUST NOT be
- * zero, and MUST be a power of two; otherwise, this function will return
- * EINVAL.  The function returns ENOMEM if not enough memory is available
- * to satisfy the request.  "memptr" must point to a variable; that variable
- * will return the address of the allocated memory.  Use free() to release that
- * allocated block.
- */
+** memory address that is a multiple of "alignment".  "alignment" MUST NOT be
+** zero, and MUST be a power of two; otherwise, this function will return
+** EINVAL.  The function returns ENOMEM if not enough memory is available
+** to satisfy the request.  "memptr" must point to a variable; that variable
+** will return the address of the allocated memory.  Use free() to release that
+** allocated block.
+*/
 {
     size_t rawsize;
     size_t uppersize;
@@ -81,11 +81,11 @@ int __fastcall__ posix_memalign (void** memptr, size_t alignment, size_t size)
     }
 
     /* Augment the block size up to the alignment, and allocate memory.
-     * We don't need to account for the additional admin. data that's needed to
-     * manage the used block, because the block returned by malloc() has that
-     * overhead added one time; and, the worst thing that might happen is that
-     * we cannot free the upper and lower blocks.
-     */
+    ** We don't need to account for the additional admin. data that's needed to
+    ** manage the used block, because the block returned by malloc() has that
+    ** overhead added one time; and, the worst thing that might happen is that
+    ** we cannot free the upper and lower blocks.
+    */
     b = malloc (size + alignment);
 
     /* Handle out-of-memory */
@@ -95,26 +95,26 @@ int __fastcall__ posix_memalign (void** memptr, size_t alignment, size_t size)
     }
 
     /* Create (and return) a new pointer that points to the user-visible
-     * aligned block.
-     */
+    ** aligned block.
+    */
     u = *memptr = (struct usedblock*) (((unsigned)b + alignment) & ~alignment);
 
     /* Get a pointer to the (raw) upper block */
     p = (struct usedblock*) ((char*)u + size);
 
     /* Get the raw-block pointer, which is located just below the visible
-     * unaligned block.  The first word of this raw block is the total size
-     * of the block, including the admin. space.
-     */
+    ** unaligned block.  The first word of this raw block is the total size
+    ** of the block, including the admin. space.
+    */
     b = (b-1)->start;
     rawsize = b->size;
 
     /* Check if we can free the space above the user block.  That is the case
-     * if the size of the block is at least sizeof (struct freeblock) bytes,
-     * and the size of the remaining block is at least that size, too.
-     * If the upper block is smaller, then we just will pass it to the caller,
-     * together with the requested aligned block.
-     */
+    ** if the size of the block is at least sizeof (struct freeblock) bytes,
+    ** and the size of the remaining block is at least that size, too.
+    ** If the upper block is smaller, then we just will pass it to the caller,
+    ** together with the requested aligned block.
+    */
     uppersize = rawsize - (lowersize = (char*)p - (char*)b);
     if (uppersize >= sizeof (struct freeblock) &&
         lowersize >= sizeof (struct freeblock)) {
@@ -131,20 +131,20 @@ int __fastcall__ posix_memalign (void** memptr, size_t alignment, size_t size)
     }
 
     /* Check if we can free the space below the user block.  That is the case
-     * if the size of the block is at least sizeof (struct freeblock) bytes,
-     * and the size of the remaining block is at least that size, too.  If the
-     * lower block is smaller, we just will pass it to the caller, together
-     * with the requested aligned block.
-     * Beware:  We need an additional struct usedblock, in the lower block,
-     * which is part of the block that is passed back to the caller.
-     */
+    ** if the size of the block is at least sizeof (struct freeblock) bytes,
+    ** and the size of the remaining block is at least that size, too.  If the
+    ** lower block is smaller, we just will pass it to the caller, together
+    ** with the requested aligned block.
+    ** Beware:  We need an additional struct usedblock, in the lower block,
+    ** which is part of the block that is passed back to the caller.
+    */
     lowersize = ((char*)u - (char*)b) - sizeof (struct usedblock);
     if (           lowersize  >= sizeof (struct freeblock) &&
         (rawsize - lowersize) >= sizeof (struct freeblock)) {
 
         /* b already points to the raw lower-block.
-         * Set up the usedblock structure.
-         */
+        ** Set up the usedblock structure.
+        */
         b->size  = lowersize;
         b->start = b;
 
@@ -159,11 +159,11 @@ int __fastcall__ posix_memalign (void** memptr, size_t alignment, size_t size)
     }
 
     /* u points to the user-visible block, while b points to the raw block,
-     * and rawsize contains the length of the raw block.  Set up the usedblock
-     * structure, but beware:  If we didn't free the lower block, then it is
-     * split; which means that we must use b to write the size,
-     * and u to write the start field.
-     */
+    ** and rawsize contains the length of the raw block.  Set up the usedblock
+    ** structure, but beware:  If we didn't free the lower block, then it is
+    ** split; which means that we must use b to write the size,
+    ** and u to write the start field.
+    */
     b->size = rawsize;
     (u-1)->start = b;
 
index b0ad5180f7e549f39b193d7f3777ea157f257f79..dbca603f28d1eea4746e424d78daea7a25f54351 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * puts.c
- *
- * Ullrich von Bassewitz, 11.08.1998
- */
+** puts.c
+**
+** Ullrich von Bassewitz, 11.08.1998
+*/
 
 
 
index 383962934fb91244594f329fd69ba6de98638e62..df02095edb36ba3862f2dac756fb6f8562525ebb 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * qsort.c
- *
- * Ullrich von Bassewitz, 09.12.1998
- */
+** qsort.c
+**
+** Ullrich von Bassewitz, 09.12.1998
+*/
 
 
 
@@ -14,8 +14,8 @@ static void QuickSort (register unsigned char* Base, int Lo, int Hi,
                        register size_t Size,
                        int (*Compare)(const void*, const void*))
 /* Internal recursive function. Works with ints, but this shouldn't be
- * a problem.
- */
+** a problem.
+*/
 {
     int I, J;
 
@@ -62,5 +62,3 @@ void __fastcall__ qsort (void* base, size_t nmemb, size_t size,
 
 
 
-
-
index d9850b591015ac6056b9270126311a23dc179b13..c47dbbb98e8aad343a5b78945e26efb90293f086 100644 (file)
@@ -66,10 +66,10 @@ void* __fastcall__ realloc (void* block, register size_t size)
     }
 
     /* The word below the user block contains a pointer to the start of the
-     * raw memory block. The first word of this raw memory block is the full
-     * size of the block. Get a pointer to the real block, get the old block
-     * size.
-     */
+    ** raw memory block. The first word of this raw memory block is the full
+    ** size of the block. Get a pointer to the real block, get the old block
+    ** size.
+    */
     b = (((struct usedblock*) block) - 1)->start;
     oldsize = b->size;
 
@@ -87,16 +87,16 @@ void* __fastcall__ realloc (void* block, register size_t size)
     }
 
     /* The given block was not located on top of the heap, or there's no
-     * room left. Try to allocate a new block and copy the data.
-     */
+    ** room left. Try to allocate a new block and copy the data.
+    */
     if (newblock = malloc (size)) {
 
         /* Adjust the old size to the user visible portion */
         oldsize -= HEAP_ADMIN_SPACE;
 
         /* If the new block is larger than the old one, copy the old
-         * data only
-         */
+        ** data only
+        */
         if (size > oldsize) {
             size = oldsize;
         }
@@ -110,4 +110,3 @@ void* __fastcall__ realloc (void* block, register size_t size)
 
 
 
-
index 583b779f9e900335968462148820ce71d243c21a..a4cdfa97c2e947444a72cb140f8dd88e562a83e1 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * rewind.c
- *
- * Christian Groessler, 07-Aug-2000
- */
+** rewind.c
+**
+** Christian Groessler, 07-Aug-2000
+*/
 
 
 
index 3a8e8e2e0e9d4546b74d63e622890888751308e7..b31174746d84b651c9e48cba3e37f99fff26b133 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * sleep.c
- *
- * Stefan Haubenthal, 2003-06-11
- * Ullrich von Bassewitz, 2003-06-12
- *
- */
+** sleep.c
+**
+** Stefan Haubenthal, 2003-06-11
+** Ullrich von Bassewitz, 2003-06-12
+**
+*/
 
 
 
index 5e580e91fef2ba1b3e04b94b29746b8ccf81827e..941f54e92766c9dfe579577c0c4dff2e98264372 100644 (file)
@@ -28,8 +28,8 @@ ParamSize:      .res    1               ; Number of parameter bytes
 ;     va_start (ap, format);
 ;
 ;     /* Call vsscanf(). Since we know that va_end won't do anything, we will
-;      * save the call and return the value directly.
-;      */
+;     ** save the call and return the value directly.
+;     */
 ;     return vsscanf (str, format, ap);
 ; }
 ;
index 6e791f898572a1b23a6292dea5efb0cfa964046b..1eb4fa80a88d4fdb56db6906a42ba6703074dfb1 100644 (file)
@@ -1,15 +1,15 @@
 /*
- * strqtok() is like strtok():  It finds pieces of text, in a string, that are
- * surrounded by given delimiter characters.  It returns each piece, in turn,
- * as a string, until every piece has been found.  Then, it returns NULL.  But,
- * strqtok() recognizes quotation marks.  A mark makes delimiters look ordinary
- * until another quotation mark is seen.  That allows us to include delimiters
- * in tokens.  (This version doesn't allow escaped quotation marks.)
- *
- * 2014-04-19, Daniel Serpell
- * 2014-04-21, Paul Foerster
- * 2014-04-25, Greg King
- */
+** strqtok() is like strtok():  It finds pieces of text, in a string, that are
+** surrounded by given delimiter characters.  It returns each piece, in turn,
+** as a string, until every piece has been found.  Then, it returns NULL.  But,
+** strqtok() recognizes quotation marks.  A mark makes delimiters look ordinary
+** until another quotation mark is seen.  That allows us to include delimiters
+** in tokens.  (This version doesn't allow escaped quotation marks.)
+**
+** 2014-04-19, Daniel Serpell
+** 2014-04-21, Paul Foerster
+** 2014-04-25, Greg King
+*/
 
 
 #include <string.h>
@@ -49,8 +49,8 @@ char* __fastcall__ strqtok (register char* s1, const char* s2)
     }
     if (c == '\0') {
         /* The end of the last token is the end of the token list;
-         * don't go beyond it.
-         */
+        ** don't go beyond it.
+        */
         goto found;
     }
 
@@ -70,8 +70,8 @@ char* __fastcall__ strqtok (register char* s1, const char* s2)
     /* Search for the end of a quoted token. */
     if ((s1 = strchr (s1, '\"')) == NULL) {
         /* The quoted token ended with '\0'; therefore, point to a '\0',
-         * so that the next call will return NULL.
-         */
+        ** so that the next call will return NULL.
+        */
         next = "";
         return start;
     }
index 30e3e81e425b98bbe4ba84470d4c379b4e93c69e..47a2829ed63ff7be6324c59f2aa09bdc209fe77b 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * strtok.c
- *
- * Ullrich von Bassewitz, 11.12.1998
- */
+** strtok.c
+**
+** Ullrich von Bassewitz, 11.12.1998
+*/
 
 
 
@@ -43,8 +43,8 @@ char* __fastcall__ strtok (register char* s1, const char* s2)
     }
 
     /* Search the address of the first element in s1 that equals none
-     * of the characters in s2.
-     */
+    ** of the characters in s2.
+    */
     while ((c = *s1) && strchr (s2, c) != 0) {
         ++s1;
     }
index f3ce08a355780192e660ec6620b8adbca204e4cd..bf328edfdfb00125f7a2d7ccac4b064c9de0ab24 100644 (file)
@@ -33,8 +33,8 @@ long __fastcall__ strtol (const char* nptr, char** endptr, int base)
     }
 
     /* If base is zero, we may have a 0 or 0x prefix. If base is 16, we may
-     * have a 0x prefix.
-     */
+    ** have a 0x prefix.
+    */
     if (base == 0) {
         if (*S == '0') {
             ++S;
@@ -52,8 +52,8 @@ long __fastcall__ strtol (const char* nptr, char** endptr, int base)
     }
 
     /* Determine the maximum valid number and (if the number is equal to this
-     * value) the maximum valid digit.
-     */
+    ** value) the maximum valid digit.
+    */
     if (Minus) {
         MaxVal = LONG_MIN;
     } else {
@@ -98,8 +98,8 @@ long __fastcall__ strtol (const char* nptr, char** endptr, int base)
     }
 
     /* Store the end pointer. If no conversion was performed, the value of
-     * nptr is returned in endptr.
-     */
+    ** nptr is returned in endptr.
+    */
     if (endptr) {
         if (CvtCount > 0) {
             *endptr = (char*) S;
index 54466db3601463bf6d90acf82f21eeee07f5f843..a186fc68172d74597eb8d3610701b805f81d454e 100644 (file)
@@ -33,8 +33,8 @@ unsigned long __fastcall__ strtoul (const char* nptr, char** endptr, int base)
     }
 
     /* If base is zero, we may have a 0 or 0x prefix. If base is 16, we may
-     * have a 0x prefix.
-     */
+    ** have a 0x prefix.
+    */
     if (base == 0) {
         if (*S == '0') {
             ++S;
@@ -52,8 +52,8 @@ unsigned long __fastcall__ strtoul (const char* nptr, char** endptr, int base)
     }
 
     /* Determine the maximum valid number and (if the number is equal to this
-     * value) the maximum valid digit.
-     */
+    ** value) the maximum valid digit.
+    */
     MaxDigit = ULONG_MAX % base;
     MaxVal   = ULONG_MAX / base;
 
@@ -93,8 +93,8 @@ unsigned long __fastcall__ strtoul (const char* nptr, char** endptr, int base)
     }
 
     /* Store the end pointer. If no conversion was performed, the value of
-     * nptr is returned in endptr.
-     */
+    ** nptr is returned in endptr.
+    */
     if (endptr) {
         if (CvtCount > 0) {
             *endptr = (char*) S;
index 8bf9795b91ee2c158a4a3be41bbf54ac49fa77d9..fb08919190664a53d5ba5c88e90875a16ed4cb03 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * strxfrm.c
- *
- * Ullrich von Bassewitz, 11.12.1998
- */
+** strxfrm.c
+**
+** Ullrich von Bassewitz, 11.12.1998
+*/
 
 
 
index 6626ace87672e3c4b785b0778dc90f9b8891a899..01dec1ad8cdce637566eef8e1a73b51241f24f8c 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * system.c
- *
- * Stefan Haubenthal, 2003-05-26
- * Ullrich von Bassewitz, 2003-05-27
- */
+** system.c
+**
+** Stefan Haubenthal, 2003-05-26
+** Ullrich von Bassewitz, 2003-05-27
+*/
 
 #include <stdio.h>
 #include <stdlib.h>
index 2123085c88bc7d0a28400d257ec29f11033b22de..c7d6e5564380da25a3a64ed57063695b3d74f662 100644 (file)
@@ -31,9 +31,9 @@ d:      .addr   _fgetc          ; GET
 ; /* Standard C function */
 ; {
 ;     /* Initialize the data struct. We do only need the given file as user data,
-;      * because the (getfunc) and (ungetfunc) functions are crafted so that they
-;      * match the standard-I/O fgetc() and ungetc().
-;      */
+;     ** because the (getfunc) and (ungetfunc) functions are crafted so that they
+;     ** match the standard-I/O fgetc() and ungetc().
+;     */
 ;     static struct scanfdata d = {
 ;         (  getfunc)  fgetc,
 ;         (ungetfunc) ungetc
index a04404a0a3fe0ec38c7ee1e91c60ca8ec2c1beb3..2bd967fa0a85629c8df304622865e6ccbab90376 100644 (file)
@@ -94,8 +94,8 @@ L1:     tax                             ; Save return value
 ; /* Push back a character onto the input stream */
 ; {
 ;     /* We do assume here that the _scanf routine will not push back anything
-;      * not read, so we can ignore c safely and won't check the index.
-;      */
+;     ** not read, so we can ignore c safely and won't check the index.
+;     */
 ;     --d->index;
 ;     return c;
 ; }
@@ -129,8 +129,8 @@ L1:     tax                             ; Save return value
 ; /* Standard C function */
 ; {
 ;     /* Initialize the data structs. The sscanfdata struct will be passed back
-;      * to the get and unget functions by _scanf().
-;      */
+;     ** to the get and unget functions by _scanf().
+;     */
 ;     static       struct sscanfdata sd;
 ;     static const struct  scanfdata  d = {
 ;         (  getfunc)   get,
index 00ff28722ef0b4cca9079390084fadc6015137fe..8b09484f67cdc4844993d28c74cfaf925d7f8d0d 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * dbg.c
- *
- * Ullrich von Bassewitz, 08.08.1998
- *
- */
+** dbg.c
+**
+** Ullrich von Bassewitz, 08.08.1998
+**
+*/
 
 
 
@@ -335,8 +335,8 @@ BreakPoint* DbgGetBreakSlot (void);
 
 BreakPoint* DbgIsBreak (unsigned Addr);
 /* Check if there is a user breakpoint at the given address, if so, return
- * a pointer to the slot, else return 0.
- */
+** a pointer to the slot, else return 0.
+*/
 
 
 
@@ -729,8 +729,8 @@ static void DbgResetTmpBreaks (void)
 
 static unsigned char DbgTmpBreaksOk (void)
 /* Check if the temporary breakpoints can be set, if so, return 1, if not,
- * reset them all and return 0.
- */
+** reset them all and return 0.
+*/
 {
     unsigned char i;
     BreakPoint* B = DbgBreaks;
@@ -755,8 +755,8 @@ static unsigned char DbgTmpBreaksOk (void)
 
 static unsigned AsmBack (unsigned mem, unsigned char lines)
 /* Go back in the assembler window the given number of lines (calculate
- * new start address).
- */
+** new start address).
+*/
 {
     unsigned cur;
     unsigned adr [32];
@@ -776,8 +776,8 @@ static unsigned AsmBack (unsigned mem, unsigned char lines)
                     return adr [(in - lines - 1) & 0x1F];
                 } else {
                     /* The requested address is inside an instruction, go back
-                     * one more byte and try again.
-                     */
+                    ** one more byte and try again.
+                    */
                     ++offs;
                     break;
                 }
@@ -1347,8 +1347,8 @@ static void SingleStep (char StepInto)
         case OPC_BNE:
         case OPC_BEQ:
             /* Be sure not to set the breakpoint twice if this is a jump to
-             * the following instruction.
-             */
+            ** the following instruction.
+            */
             Offs = ((signed char*)brk_pc)[1];
             if (Offs) {
                 DbgSetTmpBreak (brk_pc + Offs + 2);
@@ -1491,8 +1491,8 @@ void DbgEntry (void)
     }
 
     /* Only initialize variables here, don't do a display update. The actual
-     * display update will be done while waiting for user input.
-     */
+    ** display update will be done while waiting for user input.
+    */
     AsmHome ();
     UpdateReg ();               /* Must update this (static later) */
     StackHome ();
index 21203d25048e26829798ea7a8ae15ca11fbb5168..c982dac88caf820f7b7ed477b07212f2e2b1be55 100644 (file)
@@ -94,8 +94,8 @@ copy:   lda     (ptr1),y
 ;----------------------------------------------------------------------------
 ; unsigned char em_uninstall (void);
 ; /* Uninstall the currently loaded driver and return an error code.
-;  * Note: This call does not free allocated memory.
-;  */
+; ** Note: This call does not free allocated memory.
+; */
 
 _em_uninstall:
         jsr     emd_uninstall           ; Call driver routine
index 66af02df9505156a8795db26937d6e6185542141..8be970b3932cf4d0c8cab21da01ef1fe2b78b900 100644 (file)
@@ -3,11 +3,11 @@
 ;
 ; void em_commit (void);
 ; /* Commit changes in the memory window to extended storage. If the contents
-;  * of the memory window have been changed, these changes may be lost if
-;  * em_map, em_copyfrom or em_copyto are called without calling em_commit
-;  * first. Note: Not calling em_commit does not mean that the changes are
-;  * discarded, it does just mean that some drivers will discard the changes.
-;  */
+; ** of the memory window have been changed, these changes may be lost if
+; ** em_map, em_copyfrom or em_copyto are called without calling em_commit
+; ** first. Note: Not calling em_commit does not mean that the changes are
+; ** discarded, it does just mean that some drivers will discard the changes.
+; */
 
         .include        "em-kernel.inc"
 
index 9897243a3be0381b9dcc530d41ebdbbe3b883dc3..825d68efc0378575c69fd66f17473cbb3e41c605 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; void* __fastcall__ em_map (unsigned page);
 ; /* Unmap the current page from memory and map a new one. The function returns
-;  * a pointer to the location of the page in memory.
-;  */
+; ** a pointer to the location of the page in memory.
+; */
 
 
         .include        "em-kernel.inc"
index 8e4d57df074bd5c2adb6b6cf4208a710c9eadc6e..e4fb7722eb1d53fd2950400b690cb231c17ad642 100644 (file)
@@ -3,12 +3,12 @@
 ;
 ; void* __fastcall__ em_use (unsigned page);
 ; /* Tell the driver that the memory window is associated with a given page.
-;  * This call is very similar to em_map. The difference is that the driver
-;  * does not necessarily transfer the current contents of the extended
-;  * memory into the returned window. If you're going to just write to the
-;  * window and the current contents of the window are invalid or no longer
-;  * use, this call may perform better than em_map.
-;  */
+; ** This call is very similar to em_map. The difference is that the driver
+; ** does not necessarily transfer the current contents of the extended
+; ** memory into the returned window. If you're going to just write to the
+; ** window and the current contents of the window are invalid or no longer
+; ** use, this call may perform better than em_map.
+; */
 
 
         .include        "em-kernel.inc"
index e446cf565a8bc6fb62e97bb58e68e5c8f946ce2a..2448534c00b4817720cc8b2893ce7d218699c010 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * _afailed.c
- *
- * Maciej 'YTM/Elysium' Witkowiak 28.10.2001
- */
+** _afailed.c
+**
+** Maciej 'YTM/Elysium' Witkowiak 28.10.2001
+*/
 
 #include <stdio.h>
 #include <stdlib.h>
index e0a7723a1a205e5efcc52d8b97ac67807bc27e47..eeb3f368eccc28765b5aec9623185af8c98762bc 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * _poserror.c
- *
- * Maciej 'YTM/Elysium' Witkowiak, 25.04.2003
- */
+** _poserror.c
+**
+** Maciej 'YTM/Elysium' Witkowiak, 25.04.2003
+*/
 
 #include <stdio.h>
 #include <string.h>
index 9bc839c7abef1691bcaa042b57a5d21438d8d668..b7cb35eb90a768070268ca8c894796c79af34015 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * abort.c
- *
- * Maciej 'YTM/Elysium' Witkowiak 15.7.2001
- */
+** abort.c
+**
+** Maciej 'YTM/Elysium' Witkowiak 15.7.2001
+*/
 
 #include <stdlib.h>
 #include <geos.h>
index 022968bf2b36af82d5cd6bfc27901f715be5a4bf..5c6ec2117c31af3b0f9b4b0cb4df43d3c49fdabf 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * perror.c
- *
- * Maciej 'YTM/Elysium' Witkowiak, 15.07.2001
- */
+** perror.c
+**
+** Maciej 'YTM/Elysium' Witkowiak, 15.07.2001
+*/
 
 #include <stdio.h>
 #include <string.h>
index 94bd9fe79ddb51db2b6b301ed11cdda84fb7a01f..ea18f8ead0b7f0c56ba2bf3e51888f5acd505d71 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * sleep.c
- *
- * Maciej 'YTM/Elysium' Witkowiak, 16.08.2003
- *
- */
+** sleep.c
+**
+** Maciej 'YTM/Elysium' Witkowiak, 16.08.2003
+**
+*/
 
 #include <geos.h>
 
index a8774c3c05f23cde6a1cf8f1ceadd9e74cd43afa..533267be1336b9ec70e6bb4b0766394a3d09f6c2 100644 (file)
@@ -1,10 +1,9 @@
-
 /*
- * char MessageBox (char mode, const char *format, ...)
- *
- * Maciej 'YTM/Elysium' Witkowiak, 17.08.2003
- *
- */
+** char MessageBox (char mode, const char *format, ...)
+**
+** Maciej 'YTM/Elysium' Witkowiak, 17.08.2003
+**
+*/
 
 #include <geos.h>
 #include <stdio.h>
index 75b0fabb7da5dc365b2aac1d6d0207992db6bb91..5eb87fef8e1a175d37d7927c45266a2e5ba3d6f1 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * systime.c
- *
- * Maciej 'YTM/Elysium' Witkowiak, 22.11.2002
- */
+** systime.c
+**
+** Maciej 'YTM/Elysium' Witkowiak, 22.11.2002
+*/
 
 #include <time.h>
 #include <geos.h>
index d21727089a8fe87bc7bd8d59f4e9ec86d7ec6c87..1ba3056d8f66d3399c881eaa23d946720e0a8811 100644 (file)
@@ -116,8 +116,8 @@ set:    sta     joy_vectors,x
 ;----------------------------------------------------------------------------
 ; unsigned char joy_uninstall (void);
 ; /* Uninstall the currently loaded driver. Note: This call does not free
-;  * allocated memory.
-;  */
+; ** allocated memory.
+; */
 
 _joy_uninstall:
         lda     #$60                    ; RTS opcode
index 459c0a8e614227579433a30de8d5a0fc792c3aa4..afca40c3774da7db6d4571fc174a59a07300cc6b 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; unsigned char mouse_buttons (void);
 ; /* Return a bit mask encoding the states of the mouse buttons. Use the
-;  * MOUSE_BTN_XXX flags to decode a specific button.
-;  */
+; ** MOUSE_BTN_XXX flags to decode a specific button.
+; */
 ;
 
         .include        "mouse-kernel.inc"
index 81b3573b7a81536486b2eb169b3d50623c30b7e1..1f565867fd9d143688fb0a55eafe6388c476125b 100644 (file)
@@ -3,9 +3,9 @@
 ;
 ; void mouse_hide (void);
 ; /* Hide the mouse. The function manages a counter and may be called more than
-;  * once. For each call to mouse_hide there must be a call to mouse_show to make
-;  * the mouse visible again.
-;  */
+; ** once. For each call to mouse_hide there must be a call to mouse_show to make
+; ** the mouse visible again.
+; */
 ;
 
         .include        "mouse-kernel.inc"
index 31a8ba791596dd245ff0dddae77681861c96278d..52d201c48a022ce87c2f904c3160cfa1c1dd2b5a 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; unsigned char __fastcall__ mouse_ioctl (unsigned char code, void* data);
 ; /* Call the driver specific ioctl function. NON PORTABLE! Returns an error
-;  * code.
-;  */
+; ** code.
+; */
 ;
 
         .import         popa
index 2245221f6d50dab204177356512dc96948957a96..b25716b37fbd830c77b7879ac7680effa8ee72c4 100644 (file)
@@ -3,10 +3,10 @@
 ;
 ; void __fastcall__ mouse_move (int x, int y);
 ; /* Set the mouse cursor to the given position. If a mouse cursor is defined
-;  * and currently visible, the mouse cursor is also moved.
-;  * NOTE: This function does not check if the given position is valid and
-;  * inside the bounding box.
-;  */
+; ** and currently visible, the mouse cursor is also moved.
+; ** NOTE: This function does not check if the given position is valid and
+; ** inside the bounding box.
+; */
 ;
 
         .import         incsp2
index d211289b5643b5a5e461628a408985521f41bdee..6dafc83657c8eb036e7352ff072b62642b4404e7 100644 (file)
@@ -3,19 +3,19 @@
 ;
 ; void __fastcall__ mouse_setbox (const struct mouse_box* box);
 ; /* Set the bounding box for the mouse pointer movement. The mouse X and Y
-;  * coordinates will never go outside the given box.
-;  * NOTE: The function does *not* check if the mouse is currently inside the
-;  * given margins. The proper way to use this function therefore is:
-;  *
-;  *    - Hide the mouse
-;  *    - Set the bounding box
-;  *    - Place the mouse at the desired position
-;  *    - Show the mouse again.
-;  *
-;  * NOTE2: When setting the box to something that is larger than the actual
-;  * screen, the positioning of the mouse cursor can fail. If such margins
-;  * are really what you want, you have to use your own cursor routines.
-;  */
+; ** coordinates will never go outside the given box.
+; ** NOTE: The function does *not* check if the mouse is currently inside the
+; ** given margins. The proper way to use this function therefore is:
+; **
+; **    - Hide the mouse
+; **    - Set the bounding box
+; **    - Place the mouse at the desired position
+; **    - Show the mouse again.
+; **
+; ** NOTE2: When setting the box to something that is larger than the actual
+; ** screen, the positioning of the mouse cursor can fail. If such margins
+; ** are really what you want, you have to use your own cursor routines.
+; */
 ;
 ;
 
index d22b8c596c8dff2f4624405b064373c8d7e20663..273e394a40381ae35e5bc82c1219a460d8be0a60 100644 (file)
@@ -3,10 +3,10 @@
 ;
 ; time_t _systime (void);
 ; /* Similar to time(), but:
-;  *   - Is not ISO C
-;  *   - Does not take the additional pointer
-;  *   - Does not set errno when returning -1
-;  */
+; **   - Is not ISO C
+; **   - Does not take the additional pointer
+; **   - Does not set errno when returning -1
+; */
 ;
 
         .export         __systime
index 438189edb68b28070791ee3b8e58ff8d1e2376d4..4c5b455b6658b135430aa935c14b04d101005fc1 100644 (file)
@@ -103,8 +103,8 @@ copy:   lda     (ptr1),y
 ;----------------------------------------------------------------------------
 ; unsigned char ser_uninstall (void);
 ; /* Uninstall the currently loaded driver and return an error code.
-;  * Note: This call does not free allocated memory.
-;  */
+; ** Note: This call does not free allocated memory.
+; */
 
 _ser_uninstall:
         jsr     ser_uninstall           ; Call driver routine
index dccd92000a4d279bb88aa21df3be9c3b882f70bc..74a079eaade8929ca064d6410ed650c426008384 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; unsigned char __fastcall__ ser_get (char* b);
 ; /* Get a character from the serial port. If no characters are available, the
-;  * function will return SER_ERR_NO_DATA, so this is not a fatal error.
-;  */
+; ** function will return SER_ERR_NO_DATA, so this is not a fatal error.
+; */
 
 
         .importzp       ptr1
index 7bbdbdeb4042353aae2516024000791d46f38ae9..bab6062eba4c0b20cb68f69a5b39ad514ed93b33 100644 (file)
@@ -3,9 +3,9 @@
 ;
 ; unsigned char __fastcall__ ser_put (char b);
 ; /* Send a character via the serial port. There is a transmit buffer, but
-;  * transmitting is not done via interrupt. The function returns
-;  * SER_ERR_OVERFLOW if there is no space left in the transmit buffer.
-;  */
+; ** transmitting is not done via interrupt. The function returns
+; ** SER_ERR_OVERFLOW if there is no space left in the transmit buffer.
+; */
 
 
         .include        "ser-kernel.inc"
index 3781795f65acc40577b07abd106c4437edf3b622..ed65760af183bc08fb3ffa5394f554080f3cd9a5 100644 (file)
@@ -198,8 +198,8 @@ tgi_set_ptr:
 ;----------------------------------------------------------------------------
 ; void tgi_uninstall (void);
 ; /* Uninstall the currently loaded driver but do not unload it. Will call
-;  * tgi_done if necessary.
-;  */
+; ** tgi_done if necessary.
+; */
 
 _tgi_uninstall:
         jsr     _tgi_done               ; Switch off graphics
index d4bb84f2b4131120046a4a1d6553092992c6e84d..e505b7b6921ee6958afa6c92416854c2fc6dfddb 100644 (file)
 void __fastcall__ tgi_arc (int x, int y, unsigned char rx, unsigned char ry,
                            unsigned sa, unsigned ea)
 /* Draw an ellipse arc with center at x/y and radii rx/ry using the current
- * drawing color. The arc covers the angle between sa and ea (startangle and
- * endangle), which must be in the range 0..360 (otherwise the function may
- * bevave unextectedly).
- */
+** drawing color. The arc covers the angle between sa and ea (startangle and
+** endangle), which must be in the range 0..360 (otherwise the function may
+** bevave unextectedly).
+*/
 {
     int x1, y1, x2, y2;
     unsigned char inc;
index 1471f915621b172a7a51b0596a9d890cd512f6ac..dc6160aef575aa696555beef854b6230038ec44b 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; void __fastcall__ tgi_ellipse (int x, int y, unsigned char rx, unsigned char ry);
 ; /* Draw a full ellipse with center at x/y and radii rx/ry using the current
-;  * drawing color.
-;  */
+; ** drawing color.
+; */
 ;
 
 
index f6081b1eecbd4f6cc69affd91c6c8ffe41a88f1f..f4ac4814fda19c65142c097fcf9fb35534f203f3 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; unsigned tgi_getaspectratio (void);
 ; /* Returns the aspect ratio for the loaded driver. The aspect ratio is an
-;  * 8.8 fixed point value.
-;  */
+; ** 8.8 fixed point value.
+; */
 ;
 
         .include        "tgi-kernel.inc"
index a953013892a4d183059aa2d6a3ae89c132eafeb9..4df4f4b2634a863ed44992a24baf081e4210730d 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; const unsigned char* tgi_getdefpalette (void);
 ; /* Return the default palette. Will return NULL for drivers that do not
-;  * support palettes.
-;  */
+; ** support palettes.
+; */
 ;
 
         .include        "tgi-kernel.inc"
index c34b08ba9432990bb5e55874bcd69ba33001f82d..8d0e4db12f25ca68ef13d2fd69ea670a05cb7d16 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; unsigned char tgi_geterror (void);
 ; /* Return the error code for the last operation. This will also clear the
-;  * error.
-;  */
+; ** error.
+; */
 
         .include        "tgi-kernel.inc"
 
index d10ac0e3fbeedc0349d8a1aae81021bdb20fdf79..4db8078d22c841e253256d614c00f5b7e8f7c6cd 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; unsigned char tgi_getmaxcolor (void);
 ; /* Return the maximum supported color number (the number of colors would
-;  * then be getmaxcolor()+1).
-;  */
+; ** then be getmaxcolor()+1).
+; */
 ;
 
         .include        "tgi-kernel.inc"
index ccf0eb8d59023e0dae490ea4899983d1ade2a1ff..1a706956f3f6af2d54f292c2d675c90eaf17df0f 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; unsigned tgi_getmaxx (void);
 ; /* Return the maximum x coordinate. The resolution in x direction is
-;  * getmaxx() + 1
-;  */
+; ** getmaxx() + 1
+; */
 
         .include        "tgi-kernel.inc"
 
index 3fc7bdb863736a056d251ade80cc61f0687f1d35..6f28fc176b6960c6c270f044ff9334e7e8eed99b 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; unsigned tgi_getmaxy (void);
 ; /* Return the maximum y coordinate. The resolution in y direction is
-;  * getmaxy() + 1
-;  */
+; ** getmaxy() + 1
+; */
 
         .include        "tgi-kernel.inc"
 
index a91aefb71bf162b34834b30064bdb957d717017e..f28710ce3417e557c78a5fc1ada4f36f6611b443 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; const unsigned char* tgi_getpalette (void);
 ; /* Return the current palette. Will return NULL for drivers that do not
-;  * support palettes.
-;  */
+; ** support palettes.
+; */
 ;
 
         .include        "tgi-kernel.inc"
index 8daad941bea606fa477aa566dbb1c06bbb608817..38df6a69aad4f7317d34bcf8a63396db1ec4db58 100644 (file)
@@ -11,8 +11,8 @@
 ;-----------------------------------------------------------------------------
 ; unsigned __fastcall__ tgi_gettextheight (const char* s);
 ; /* Calculate the height of the text in pixels according to the current text
-;  * style.
-;  */
+; ** style.
+; */
 ;
 
 .proc   _tgi_gettextheight        
index c7bbcffd1b59d6e2993a234436299cf705ee04f8..9a935b6b7ec04037ad7b07e292779a259d71eb8d 100644 (file)
@@ -22,8 +22,8 @@ Text    := ptr3
 ;-----------------------------------------------------------------------------
 ; unsigned __fastcall__ tgi_gettextwidth (const char* s);
 ; /* Calculate the width of the text in pixels according to the current text
-;  * style.
-;  */
+; ** style.
+; */
 ;
 ; Result is  strlen (s) * tgi_textmagw * tgi_fontsizex
 ;
index ff174896e536ca15895407bea3c775e7abbe0e2d..91df3059a34364ac451aea7815ce47472c5dfcb5 100644 (file)
@@ -8,9 +8,9 @@
 ;-----------------------------------------------------------------------------
 ; void __fastcall__ tgi_install_vectorfont (const tgi_vectorfont* font);
 ; /* Install a vector font for use. More than one vector font can be loaded,
-;  * but only one can be active. This function is used to tell which one. Call
-;  * with a NULL pointer to uninstall the currently installed font.
-;  */
+; ** but only one can be active. This function is used to tell which one. Call
+; ** with a NULL pointer to uninstall the currently installed font.
+; */
 ;
 
 .code
index fd4db7dcde6ca2ea89c1eceeb8c555881d456a20..434c33757c33dfe6f9c8b22413c9fc3f6fc09df1 100644 (file)
@@ -3,9 +3,9 @@
 ;
 ; unsigned __fastcall__ tgi_ioctl (unsigned char code, void* data);
 ; /* Call the driver specific control function. What this function does for
-;  * a specific code depends on the driver. The driver will set an error
-;  * for unknown codes or values.
-;  */
+; ** a specific code depends on the driver. The driver will set an error
+; ** for unknown codes or values.
+; */
 ;
 
         .include        "tgi-kernel.inc"
index 868f4cf4222cd2ab05ad98bd78f52ee4302f940b..abe4b3f964de93989a62479ba26ebdd8765b2773 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; void __fastcall__ tgi_lineto (int x2, int y2);
 ; /* Draw a line in the current drawing color from the graphics cursor to the
-;  * new end point.
-;  */
+; ** new end point.
+; */
 
         .include        "tgi-kernel.inc"
 
index 0d5af23c95adb1dde5da81e0cb509eec78940bf4..55e1bf7b63c14af3317be49796f28ac3685bee43 100644 (file)
@@ -52,9 +52,9 @@
 
 const tgi_vectorfont* __fastcall__ tgi_load_vectorfont (const char* name)
 /* Load a vector font into memory and return it. In case of errors, NULL is
- * returned and an error is set, which can be retrieved using tgi_geterror.
- * To use the font, it has to be installed using tgi_install_vectorfont.
- */
+** returned and an error is set, which can be retrieved using tgi_geterror.
+** To use the font, it has to be installed using tgi_install_vectorfont.
+*/
 {
     static const char Magic[4] = {
         0x54, 0x43, 0x48, TGI_VF_VERSION
@@ -108,10 +108,10 @@ const tgi_vectorfont* __fastcall__ tgi_load_vectorfont (const char* name)
     close (F);
 
     /* Fix the offset pointers. When loaded, they contain numeric offsets
-     * into the VectorOps, with the start of the VectorOps at offset zero.
-     * We will add a pointer to the VectorOps to make them actual pointers
-     * that may be used independently from anything else.
-     */
+    ** into the VectorOps, with the start of the VectorOps at offset zero.
+    ** We will add a pointer to the VectorOps to make them actual pointers
+    ** that may be used independently from anything else.
+    */
     V = (unsigned) &Font->vec_ops;
     for (I = 0; I < TGI_VF_CCOUNT; ++I) {
         Font->chars[I] += V;
@@ -125,8 +125,8 @@ const tgi_vectorfont* __fastcall__ tgi_load_vectorfont (const char* name)
 
 LoadError:
     /* Some sort of load problem. If the file is still open, be sure to
-     * close it
-     */
+    ** close it
+    */
     if (F >= 0) {
         close (F);
     }
index f78d7a672a6cf4ed8c08cbab498402bf79ff2fbe..60d2f1d13c303f3fddead20ba8b416e072bd3341 100644 (file)
 void __fastcall__ tgi_pieslice (int x, int y, unsigned char rx, unsigned char ry,
                                 unsigned sa, unsigned ea)
 /* Draw an ellipse pie slice with center at x/y and radii rx/ry using the
- * current drawing color. The pie slice covers the angle between sa and ea
- * (startangle and endangle), which must be in the range 0..360 (otherwise the
- * function may behave unextectedly).
- */
+** current drawing color. The pie slice covers the angle between sa and ea
+** (startangle and endangle), which must be in the range 0..360 (otherwise the
+** function may behave unexpectedly).
+*/
 {
     /* Draw an arc ... */
     tgi_arc (x, y, rx, ry, sa, ea);
index c46d6dede727277b488104717c05fb850ca50559..bb511af0c2a304e16d3dec9fab53bf8eb7cb9009 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; void __fastcall__ tgi_setaspectratio (unsigned aspectratio);
 ; /* Set a new aspect ratio for the loaded driver. The aspect ratio is an
-;  * 8.8 fixed point value.
-;  */
+; ** 8.8 fixed point value.
+; */
 ;
 
         .include        "tgi-kernel.inc"
index b8f269b9e8b28a6532782bebf1c126f26ea4ef0c..86411a52a58c0affed1437e52296539dc2ef1e69 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; void __fastcall__ tgi_setpalette (const unsigned char* palette);
 ; /* Set the palette (not available with all drivers/hardware). palette is
-;  * a pointer to as many entries as there are colors.
-;  */
+; ** a pointer to as many entries as there are colors.
+; */
 ;
 
         .include        "tgi-kernel.inc"
index d6c6dc8381afa012827b98f7456320dd12a8c884..897e74e305cacce033307f86df79149844aa8dbe 100644 (file)
@@ -8,8 +8,8 @@
 ;-----------------------------------------------------------------------------
 ; void __fastcall__ tgi_settextdir (unsigned char dir);
 ; /* Set the direction for text output. dir is one of the TGI_TEXT_XXX
-;  * constants.
-;  */
+; ** constants.
+; */
 ;
 
 .proc   _tgi_settextdir
index ba3cb188bee8213f2aa40642fbc1485b5129b2b4..b62d6904c6ea4b7631572fc87abc06879ec3a644 100644 (file)
 ; void __fastcall__ tgi_settextstyle (unsigned width, unsigned height,
 ;                                     unsigned char dir, unsigned char font);
 ; /* Set the style for text output. The scaling factors for width and height
-;  * are 8.8 fixed point values. This means that $100 = 1 $200 = 2 etc.
-;  * dir is one of the TGI_TEXT_XXX constants. font is one of the TGI_FONT_XXX
-;  * constants.
-;  */
+; ** are 8.8 fixed point values. This means that $100 = 1 $200 = 2 etc.
+; ** dir is one of the TGI_TEXT_XXX constants. font is one of the TGI_FONT_XXX
+; ** constants.
+; */
 ;
 
 .proc   _tgi_settextstyle
@@ -36,8 +36,8 @@
 ;-----------------------------------------------------------------------------
 ; void __fastcall__ tgi_settextscale (unsigned width, unsigned height);
 ; /* Set the scaling for text output. The scaling factors for width and height
-;  * are 8.8 fixed point values. This means that $100 = 1 $200 = 2 etc.
-;  */
+; ** are 8.8 fixed point values. This means that $100 = 1 $200 = 2 etc.
+; */
 
 .proc   _tgi_settextscale
 
index 76f585dcdbfb07fc77beb16d9126c6af01069e7f..bd4cc84c41a43cb7458de048b74b67e1e5ee16ef 100644 (file)
@@ -3,8 +3,8 @@
 ;
 ; void __fastcall__ tgi_vectorchar (const unsigned char* Ops);
 ; /* Draw one character of the vector font at the current graphics cursor
-;  * position using the current font magnification.
-;  */
+; ** position using the current font magnification.
+; */
 ;
 
         .import         imul16x16r32, umul16x16r32, negax, negeax
index 3cff19ad3640ac31694a0a930144b67331c316c7..7810eb4f8a6b0c7b8b48763d6e53b081bb80397c 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * uncompress.c
- *
- * Piotr Fusik, 18.11.2001
- */
+** uncompress.c
+**
+** Piotr Fusik, 18.11.2001
+*/
 
 #include <zlib.h>
 
index 5969c2339423d3fe65018810048bc955d49b988c..f270b43aff9831f2f85c7197dea0e46cfc667772 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * Enumerate devices, directories and files.
- *
- * 2012-10-15, Oliver Schmidt (ol.sc@web.de)
- *
- */
+** Enumerate devices, directories and files.
+**
+** 2012-10-15, Oliver Schmidt (ol.sc@web.de)
+**
+*/
 
 
 
@@ -30,21 +30,21 @@ void printdir (char *newdir)
     if (chdir (newdir)) {
 
         /* If chdir() fails we just print the
-         * directory name - as done for files.
-         */
+        ** directory name - as done for files.
+        */
         printf ("  Dir  %s\n", newdir);
         return;
     }
 
     /* We call getcwd() in order to print the
-     * absolute pathname for a subdirectory.
-     */
+    ** absolute pathname for a subdirectory.
+    */
     getcwd (curdir, sizeof (curdir));
     printf (" Dir %s:\n", curdir);
 
     /* Calling opendir() always with "." avoids
-     * fiddling around with pathname separators.
-     */
+    ** fiddling around with pathname separators.
+    */
     dir = opendir (".");
     while (ent = readdir (dir)) {
 
@@ -54,9 +54,9 @@ void printdir (char *newdir)
         }
 
         /* We defer handling of subdirectories until we're done with the
-         * current one as several targets don't support other disk i/o
-         * while reading a directory (see cc65 readdir() doc for more).
-         */
+        ** current one as several targets don't support other disk i/o
+        ** while reading a directory (see cc65 readdir() doc for more).
+        */
         if (_DE_ISDIR (ent->d_type)) {
             subdirs = realloc (subdirs, FILENAME_MAX * (dirnum + 1));
             strcpy (subdirs + FILENAME_MAX * dirnum++, ent->d_name);
@@ -79,15 +79,15 @@ void main (void)
     char devicedir[FILENAME_MAX];
 
     /* Calling getfirstdevice()/getnextdevice() does _not_ turn on the motor
-     * of a drive-type device and does _not_ check for a disk in the drive.
-     */
+    ** of a drive-type device and does _not_ check for a disk in the drive.
+    */
     device = getfirstdevice ();
     while (device != INVALID_DEVICE) {
         printf ("Device %d:\n", device);
 
         /* Calling getdevicedir() _does_ check for a (formatted) disk in a
-         * floppy-disk-type device and returns NULL if that check fails.
-         */
+        ** floppy-disk-type device and returns NULL if that check fails.
+        */
         if (getdevicedir (device, devicedir, sizeof (devicedir))) {
             printdir (devicedir);
         } else {
index cae9225097cf047da79de3dbc8470cb6966deada..44eb07c880e5675e86c9a512e1f627095feabb16 100644 (file)
@@ -1,12 +1,12 @@
-/*****************************************************************************
- * fire test program for cc65.                                               *
- *                                                                           *
- * (w)2002 by groepaz/hitmen                                                 *
- *                                                                           *
- * Cleanup and porting by Ullrich von Bassewitz.                             *
- * 2004-06-08, Greg King                                                     *
- *                                                                           *
- *****************************************************************************/
+/*****************************************************************************\
+** fire test program for cc65.                                               **
+**                                                                           **
+** (w)2002 by groepaz/hitmen                                                 **
+**                                                                           **
+** Cleanup and porting by Ullrich von Bassewitz.                             **
+** 2004-06-08, Greg King                                                     **
+**                                                                           **
+\*****************************************************************************/
 
 
 
@@ -187,8 +187,8 @@ int main (void)
 #endif
 #if defined(__C128__)
     /* Save and change some flags, so that kernal/basic interrupt handler will
-     * not interfere with our routine.
-     */
+    ** not interfere with our routine.
+    */
     initflag = *(unsigned char*) 0xA04;
     *(unsigned char*) 0xA04 &= 0xFE;
     graphflag = *(unsigned char*) 0xD8;
index 0e7d0d2aa538a6c2f0edcc5dea1b647dec2cc877..48daede9dd4db330a3ec69509e4d02bc231f4ee6 100644 (file)
@@ -1,12 +1,12 @@
 /*
- * Minimalistic GEOSLib bitmap demo program
- *
- * 2012-06-10, Oliver Schmidt (ol.sc@web.de)
- *
- * To create bitmap.c use the sp65 sprite and bitmap utility:
- * sp65 -r logo.pcx -c geos-bitmap -w bitmap.c,ident=bitmap
- *
- */
+** Minimalistic GEOSLib bitmap demo program
+**
+** 2012-06-10, Oliver Schmidt (ol.sc@web.de)
+**
+** To create bitmap.c use the sp65 sprite and bitmap utility:
+** sp65 -r logo.pcx -c geos-bitmap -w bitmap.c,ident=bitmap
+**
+*/
 
 
 #include <conio.h>
index 55f98bf01bea579bfff9c8b8fa47b425ff800415..27199a49308c75d69269e5c6c6bb599a4f60340a 100644 (file)
@@ -1,7 +1,7 @@
 /* Note: 
- * This is just a sample piece of code that shows how to use some structs -
- * it may not even run.
- */
+** This is just a sample piece of code that shows how to use some structs -
+** it may not even run.
+*/
 
 
 #include <geos.h>
index 928e7a06c502463d6c8035b8d9365a2f5d4858f3..0e36ec021011545cdcab098c46ecdc199b92316d 100644 (file)
@@ -1,7 +1,7 @@
 /* Note:
- * This is just a sample piece of code that shows how to use some structs -
- * it may not even run.
- */
+** This is just a sample piece of code that shows how to use some structs -
+** it may not even run.
+*/
 
 
 #include <geos.h>
index 843275e69eefdab64e59238fa085af612a92b146..c0d75c2ec2c58f0cac5a518b2e9c69995a182002 100644 (file)
@@ -1,7 +1,7 @@
 /* Note:
- * This is just a sample piece of code that shows how to use some structs -
- * it may not even run.
- */
+** This is just a sample piece of code that shows how to use some structs -
+** it may not even run.
+*/
 
 
 #include <geos.h>
index 3b5f9da8202ea984be8d5d32b21e818cf0198105..54f72c4abde40bbe245035b59db20c721b98e670 100644 (file)
@@ -1,7 +1,7 @@
 /* Note:
- * This is just a sample piece of code that shows how to use some structs -
- * it may not even run.
- */
+** This is just a sample piece of code that shows how to use some structs -
+** it may not even run.
+*/
 
 
 #include <geos.h>
index 1f0bbf6f7ec2046e39287110442b9fdce86e3d89..a37f6bdcb697f434a9a4f0072b093d750172f476 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * Minimalistic GEOSLib overlay demo program
- *
- * 2012-01-01, Oliver Schmidt (ol.sc@web.de)
- *
- */
+** Minimalistic GEOSLib overlay demo program
+**
+** 2012-01-01, Oliver Schmidt (ol.sc@web.de)
+**
+*/
 
 
 #include <stdio.h>
@@ -12,9 +12,9 @@
 
 
 /* Functions resident in an overlay can call back functions resident in the
- * main program at any time without any precautions. The function show() is
- * an example for such a function resident in the main program.
- */
+** main program at any time without any precautions. The function show() is
+** an example for such a function resident in the main program.
+*/
 void show(char *name)
 {
     char line1[40];
@@ -24,18 +24,18 @@ void show(char *name)
 }
 
 /* In a real-world overlay program one would probably not use a #pragma but
- * rather place the all the code of certain source files into the overlay by
- * compiling them with --code-name OVERLAY1.
- */
+** rather place the all the code of certain source files into the overlay by
+** compiling them with --code-name OVERLAY1.
+*/
 #pragma code-name(push, "OVERLAY1");
 
 void foo(void)
 {
     /* Functions resident in an overlay can access all program variables and
-     * constants at any time without any precautions because those are never
-     * placed in overlays. The string constant "One" is an example for such 
-     * a constant resident in the main program.
-     */
+    ** constants at any time without any precautions because those are never
+    ** placed in overlays. The string constant "One" is an example for such 
+    ** a constant resident in the main program.
+    */
     show("One");
 }
 
@@ -78,18 +78,18 @@ void main(int /*argc*/, char *argv[])
     }
 
     /* The macro definitions OVERLAY_ADDR and OVERLAY_SIZE were generated in
-     * overlay-demores.h by grc65. They contain the overlay area address and
-     * size specific to a certain program.
-     */
+    ** overlay-demores.h by grc65. They contain the overlay area address and
+    ** size specific to a certain program.
+    */
     if (ReadRecord(OVERLAY_ADDR, OVERLAY_SIZE)) {
         _poserror("ReadRecord.1");
         return;
     }
 
     /* The linker makes sure that the call to foo() ends up at the right mem
-     * addr. However it's up to user to make sure that the - right - overlay
-     * is actually loaded before making the the call.
-     */
+    ** addr. However, it's up to user to make sure that the -- right -- overlay
+    ** actually is loaded before making the call.
+    */
     foo();
 
     DlgBoxOk(CBOLDON "Overlay Demo - Main" CPLAINTEXT,
@@ -101,8 +101,8 @@ void main(int /*argc*/, char *argv[])
     }
 
     /* Replacing one overlay with another one can only happen from the main
-     * program. This implies that an overlay can never load another overlay.
-     */
+    ** program. This implies that an overlay can never load another overlay.
+    */
     if (ReadRecord(OVERLAY_ADDR, OVERLAY_SIZE)) {
         _poserror("ReadRecord.2");
         return;
index bc515f0eee43bdb57bacf9a12059e25c8e209dcd..2ad0294674b76443b6b95b77106d8c7278876521 100644 (file)
@@ -1,14 +1,14 @@
 /*
- * gunzip65 - a gunzip utility for 6502-based machines.
- *
- * Piotr Fusik <fox@scene.pl>
- *
- * This should be considered as a test of my zlib-compatible library
- * rather than a real application.
- * It's not user-friendly, fault-tolerant, whatever.
- * However, it really works for real GZIP files, provided they are small
- * enough to fit in buffer[] (after decompression!).
- */
+** gunzip65 - a gunzip utility for 6502-based machines.
+**
+** Piotr Fusik <fox@scene.pl>
+**
+** This should be considered as a test of my zlib-compatible library
+** rather than a real application.
+** It's not user-friendly, fault-tolerant, whatever.
+** However, it really works for real GZIP files, provided they are small
+** enough to fit in buffer[] (after decompression!).
+*/
 
 #include <stdio.h>
 #include <string.h>
@@ -16,9 +16,9 @@
 
 #ifndef __CC65__
 /*
- * Emulate inflatemem() if using original zlib.
- * As you can see, this program is quite portable.
- */
+** Emulate inflatemem() if using original zlib.
+** As you can see, this program is quite portable.
+*/
 unsigned inflatemem(char* dest, const char* source)
 {
         z_stream stream;
@@ -41,26 +41,26 @@ unsigned inflatemem(char* dest, const char* source)
 #endif /* __CC65__ */
 
 /*
- * Structure of a GZIP file:
- *
- * 1. GZIP header:
- *    Offset 0: Signature (2 bytes: 0x1f, 0x8b)
- *    Offset 2: Compression method (1 byte: 8 == "deflate")
- *    Offset 3: Flags (1 byte: see below)
- *    Offset 4: File date and time (4 bytes)
- *    Offset 8: Extra flags (1 byte)
- *    Offset 9: Target OS (1 byte: DOS, Amiga, Unix, etc.)
- *    if (flags & FEXTRA) { 2 bytes of length, then length bytes }
- *    if (flags & FNAME) { ASCIIZ filename }
- *    if (flags & FCOMMENT) { ASCIIZ comment }
- *    if (flags & FHCRC) { 2 bytes of CRC }
- *
- * 2. Deflate compressed data.
- *
- * 3. GZIP trailer:
- *    Offset 0: CRC-32 (4 bytes)
- *    Offset 4: uncompressed file length (4 bytes)
- */
+** Structure of a GZIP file:
+**
+** 1. GZIP header:
+**    Offset 0: Signature (2 bytes: 0x1f, 0x8b)
+**    Offset 2: Compression method (1 byte: 8 == "deflate")
+**    Offset 3: Flags (1 byte: see below)
+**    Offset 4: File date and time (4 bytes)
+**    Offset 8: Extra flags (1 byte)
+**    Offset 9: Target OS (1 byte: DOS, Amiga, Unix, etc.)
+**    if (flags & FEXTRA) { 2 bytes of length, then length bytes }
+**    if (flags & FNAME) { ASCIIZ filename }
+**    if (flags & FCOMMENT) { ASCIIZ comment }
+**    if (flags & FHCRC) { 2 bytes of CRC }
+**
+** 2. Deflate compressed data.
+**
+** 3. GZIP trailer:
+**    Offset 0: CRC-32 (4 bytes)
+**    Offset 4: uncompressed file length (4 bytes)
+*/
 
 /* Flags in the GZIP header. */
 #define FTEXT     1     /* Extra text */
@@ -70,28 +70,28 @@ unsigned inflatemem(char* dest, const char* source)
 #define FCOMMENT 16     /* File comment */
 
 /*
- * We read whole GZIP file into this buffer.
- * Then we use this buffer for the decompressed data.
- */
+** We read whole GZIP file into this buffer.
+** Then we use this buffer for the decompressed data.
+*/
 static unsigned char buffer[26000];
 
 /*
- * Get a 16-bit little-endian unsigned number, using unsigned char* p.
- * On many machines this could be (*(unsigned short*) p),
- * but I really like portability. :-)
- */
+** Get a 16-bit little-endian unsigned number, using unsigned char* p.
+** On many machines this could be (*(unsigned short*) p),
+** but I really like portability. :-)
+*/
 #define GET_WORD(p) (*(p) + ((unsigned) (p)[1] << 8))
 
 /* Likewise, for a 32-bit number. */
 #define GET_LONG(p) (GET_WORD(p) + ((unsigned long) GET_WORD(p + 2) << 16))
 
 /*
- * Uncompress a GZIP file.
- * On entry, buffer[] should contain the whole GZIP file contents,
- * and the argument complen should be equal to the length of the GZIP file.
- * On return, buffer[] contains the uncompressed data, and the returned
- * value is the length of the uncompressed data.
- */
+** Uncompress a GZIP file.
+** On entry, buffer[] should contain the whole GZIP file contents,
+** and the argument complen should be equal to the length of the GZIP file.
+** On return, buffer[] contains the uncompressed data, and the returned
+** value is the length of the uncompressed data.
+*/
 unsigned uncompress_buffer(unsigned complen)
 {
         unsigned char* ptr;
@@ -134,19 +134,19 @@ unsigned uncompress_buffer(unsigned complen)
                 ptr += 2;
 
         /*
-         * calculate length of raw "deflate" data
-         * (without the GZIP header and 8-byte trailer)
-         */
+        ** calculate length of raw "deflate" data
+        ** (without the GZIP header and 8-byte trailer)
+        */
         complen -= (ptr - buffer) + 8;
 
         /*
-         * We will move the compressed data to the end of buffer[].
-         * Thus the compressed data and the decompressed data (written from
-         * the beginning of buffer[]) may overlap, as long as the decompressed
-         * data doesn't go further than unread compressed data.
-         * ptr2 points to the beginning of compressed data at the end
-         * of buffer[].
-         */
+        ** We will move the compressed data to the end of buffer[].
+        ** Thus the compressed data and the decompressed data (written from
+        ** the beginning of buffer[]) may overlap, as long as the decompressed
+        ** data doesn't go further than unread compressed data.
+        ** ptr2 points to the beginning of compressed data at the end
+        ** of buffer[].
+        */
         ptr2 = buffer + sizeof(buffer) - complen;
         /* move the compressed data to end of buffer[] */
         memmove(ptr2, ptr, complen);
@@ -173,8 +173,8 @@ unsigned uncompress_buffer(unsigned complen)
 }
 
 /*
- * Get a filename from standard input.
- */
+** Get a filename from standard input.
+*/
 char* get_fname(void)
 {
         static char filename[100];
index dcd6d6884250e248c60120fc024f19059593e562..90a1d4bdcee00562653ab64d1085c11b400db85c 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * Fancy hello world program using cc65.
- *
- * Ullrich von Bassewitz (ullrich@von-bassewitz.de)
- *
- */
+** Fancy hello world program using cc65.
+**
+** Ullrich von Bassewitz (ullrich@von-bassewitz.de)
+**
+*/
 
 
 
index 0ba4ebd2cc1cee76bd9e31ab9c9ca7dcef07ea7e..5d3d661c9c3c454e8401bacb7ad3fe1960d466fd 100644 (file)
@@ -1,8 +1,8 @@
-/*****************************************************************************
- * mandelbrot sample program for cc65.                                       *
- *                                                                           *
- * (w)2002 by groepaz/hitmen, TGI support by Stefan Haubenthal               *
- *****************************************************************************/
+/*****************************************************************************\
+** mandelbrot sample program for cc65.                                       **
+**                                                                           **
+** (w) 2002 by groepaz/hitmen, TGI support by Stefan Haubenthal              **
+\*****************************************************************************/
 
 
 
index 788270a1d56acb121bc8dc93a63fac160aca3c10..74039cfd6583c773274274335111d90835c7f40b 100644 (file)
@@ -1,12 +1,12 @@
 /*
- * Extended memory overlay demo program.
- *
- * Shows how to combine multiple cc65 features
- * incl. overlays and extended memory drivers.
- *
- * 2012-17-07, Oliver Schmidt (ol.sc@web.de)
- *
- */
+** Extended memory overlay demo program.
+**
+** Shows how to combine multiple cc65 features
+** incl. overlays and extended memory drivers.
+**
+** 2012-17-07, Oliver Schmidt (ol.sc@web.de)
+**
+*/
 
 
 
@@ -25,9 +25,9 @@
 
 
 /* The symbols _OVERLAY?_LOAD__ and _OVERLAY?_SIZE__ were generated by the
- * linker. They contain the overlay area address and size specific to a
- * certain program.
- */
+** linker. They contain the overlay area address and size specific to a
+** certain program.
+*/
 extern void _OVERLAY1_LOAD__[], _OVERLAY1_SIZE__[];
 extern void _OVERLAY2_LOAD__[], _OVERLAY2_SIZE__[];
 extern void _OVERLAY3_LOAD__[], _OVERLAY3_SIZE__[];
@@ -45,24 +45,24 @@ struct {
 
 
 /* Functions resident in an overlay can call back functions resident in the
- * main program at any time without any precautions. The function log() is
- * an example for such a function resident in the main program.
- */
+** main program at any time without any precautions. The function log() is
+** an example for such a function resident in the main program.
+*/
 void log (char *msg)
 {
     /* Functions resident in an overlay can access all program variables and
-     * constants at any time without any precautions because those are never
-     * placed in overlays. The string constant below is an example for such 
-     * a constant resident in the main program.
-     */
+    ** constants at any time without any precautions because those are never
+    ** placed in overlays. The string constant below is an example for such
+    ** a constant resident in the main program.
+    */
     printf ("Log: %s\n", msg);
 }
 
 
 /* In a real-world overlay program one would probably not use a #pragma but
- * rather place all the code of certain source files into the overlay by
- * compiling them with --code-name OVERLAY1.
- */
+** rather place all the code of certain source files into the overlay by
+** compiling them with --code-name OVERLAY1.
+*/
 #pragma code-name (push, "OVERLAY1");
 
 void foo (void)
@@ -235,15 +235,15 @@ void main (void)
         log ("Calling overlay 1 from main");
 
         /* The linker makes sure that the call to foo() ends up at the right mem
-         * addr. However it's up to user to make sure that the - right - overlay
-         * is actually loaded before making the the call.
-         */
+        ** addr. However it's up to user to make sure that the - right - overlay
+        ** is actually loaded before making the the call.
+        */
         foo ();
     }
 
     /* Replacing one overlay with another one can only happen from the main
-     * program. This implies that an overlay can never load another overlay.
-     */
+    ** program. This implies that an overlay can never load another overlay.
+    */
     if (loadoverlay (2)) {
         log ("Calling overlay 2 from main");
         bar ();
index 282df9abf77612b0f4620b6a503639ad3118c7b4..0b962fa5df93ea5e67994deea4df0d20342c9f77 100644 (file)
@@ -1,14 +1,14 @@
 /*
- * "Eine kleine Nachtmusik" by Wolfgang Amadeus Mozart, KV 525
- *
- * First version in 1987 by
- *   Joachim von Bassewitz (joachim@von-bassewitz.de) and
- *   Ullrich von Bassewitz (ullrich@von-bassewitz.de).
- *
- * C conversion in 1998 by
- *   Ullrich von Bassewitz (ullrich@von-bassewitz.de)
- *
- */
+** "Eine kleine Nachtmusik" by Wolfgang Amadeus Mozart, KV 525
+**
+** First version in 1987 by
+**   Joachim von Bassewitz (joachim@von-bassewitz.de) and
+**   Ullrich von Bassewitz (ullrich@von-bassewitz.de).
+**
+** C conversion in 1998 by
+**   Ullrich von Bassewitz (ullrich@von-bassewitz.de)
+**
+*/
 
 
 
 
 
 /* Tables with voice data.
- *
- *  Bit     Description
- * -------------------------------------------
- *  15      Pause bit.
- *  12-14   Octave
- *  8-11    Tone (index into frequency table)
- *  7       Unused. Was thought as a control bit in the original version to
- *          change SID parameters, but this was never implemented.
- *  0-6     Length of the tone in ticks.
- *
- */
+**
+**  Bit     Description
+** -------------------------------------------
+**  15      Pause bit.
+**  12-14   Octave
+**  8-11    Tone (index into frequency table)
+**  7       Unused. Was thought as a control bit in the original version to
+**          change SID parameters, but this was never implemented.
+**  0-6     Length of the tone in ticks.
+**
+*/
 
 
 
@@ -922,8 +922,8 @@ static clock_t StartTime;
 #define TICKS_PER_TONE  4
 
 /* Done flag. Contains one bit for each voice. Will contain 0x07 if all
- * voices have finished playing.
- */
+** voices have finished playing.
+*/
 static unsigned char Done;
 
 
@@ -1038,8 +1038,8 @@ static void DisplayTime (void)
 
 
 /* On the 510/610, the SID is in another bank (the system bank), so we cannot
- * just write to the memory space.
- */
+** just write to the memory space.
+*/
 #if defined(__CBM510__) || defined(__CBM610__)
 #  define outb(addr,val)        pokebsys ((unsigned)(addr), val)
 #  define outw(addr,val)        pokewsys ((unsigned)(addr), val)
@@ -1149,9 +1149,9 @@ int main (void)
                 }
             } else {
                 /* Decrement the ticks. If this is the last tick of a tone,
-                 * reset bit 0 of the trigger value and write it back to the
-                 * SID to start the release phase.
-                 */
+                ** reset bit 0 of the trigger value and write it back to the
+                ** SID to start the release phase.
+                */
                 if (--(VC->Ticks) == 0) {
                     outb (&Voice->ctrl, VC->Trigger & 0xFE);
                 }
index 4022eedd15b15b70c38b5795075470e4c13d34e4..42e7571531474392a07f0976fe2c478616d044ec 100644 (file)
@@ -1,11 +1,11 @@
 /*
- * Minimalistic overlay demo program.
- *
- * Shows how to load overlay files from disk.
- *
- * 2009-10-02, Oliver Schmidt (ol.sc@web.de)
- *
- */
+** Minimalistic overlay demo program.
+**
+** Shows how to load overlay files from disk.
+**
+** 2009-10-02, Oliver Schmidt (ol.sc@web.de)
+**
+*/
 
 
 
@@ -25,9 +25,9 @@ extern void _OVERLAY3_LOAD__[], _OVERLAY3_SIZE__[];
 
 
 /* Functions resident in an overlay can call back functions resident in the
- * main program at any time without any precautions. The function log() is
- * an example for such a function resident in the main program.
- */
+** main program at any time without any precautions. The function log() is
+** an example for such a function resident in the main program.
+*/
 void log (char *msg)
 {
     printf ("Log: %s\n", msg);
@@ -35,18 +35,18 @@ void log (char *msg)
 
 
 /* In a real-world overlay program one would probably not use a #pragma but
- * rather place all the code of certain source files into the overlay by
- * compiling them with --code-name OVERLAY1.
- */
+** rather place all the code of certain source files into the overlay by
+** compiling them with --code-name OVERLAY1.
+*/
 #pragma code-name (push, "OVERLAY1");
 
 void foo (void)
 {
     /* Functions resident in an overlay can access all program variables and
-     * constants at any time without any precautions because those are never
-     * placed in overlays. The string constant below is an example for such 
-     * a constant resident in the main program.
-     */
+    ** constants at any time without any precautions because those are never
+    ** placed in overlays. The string constant below is an example for such
+    ** a constant resident in the main program.
+    */
     log ("Calling main from overlay 1");
 }
 
@@ -104,23 +104,23 @@ void main (void)
     log ("Calling overlay 1 from main");
 
     /* The symbols _OVERLAY1_LOAD__ and _OVERLAY1_SIZE__ were generated by the
-     * linker. They contain the overlay area address and size specific to a
-     * certain program.
-     */
+    ** linker. They contain the overlay area address and size specific to a
+    ** certain program.
+    */
     if (loadfile ("ovrldemo.1", _OVERLAY1_LOAD__, _OVERLAY1_SIZE__)) {
 
         /* The linker makes sure that the call to foo() ends up at the right mem
-         * addr. However it's up to user to make sure that the - right - overlay
-         * is actually loaded before making the the call.
-         */
+        ** addr. However it's up to user to make sure that the - right - overlay
+        ** is actually loaded before making the the call.
+        */
         foo ();
     }
 
     log ("Calling overlay 2 from main");
 
     /* Replacing one overlay with another one can only happen from the main
-     * program. This implies that an overlay can never load another overlay.
-     */
+    ** program. This implies that an overlay can never load another overlay.
+    */
     if (loadfile ("ovrldemo.2", _OVERLAY2_LOAD__, _OVERLAY2_SIZE__)) {
         bar ();
     }
index ef21ef60ee227ada2bce1bfa276744de8c1c3845..7b092ec818d8b50178a73027d76e7675e5363a90 100644 (file)
@@ -1,11 +1,11 @@
-/*****************************************************************************
- * plasma test program for cc65.                                             *
- *                                                                           *
- * (w)2001 by groepaz/hitmen                                                 *
- *                                                                           *
- * Cleanup and porting by Ullrich von Bassewitz.                             *
- *                                                                           *
- *****************************************************************************/
+/*****************************************************************************\
+** plasma test program for cc65.                                             **
+**                                                                           **
+** (w)2001 by groepaz/hitmen                                                 **
+**                                                                           **
+** Cleanup and porting by Ullrich von Bassewitz.                             **
+**                                                                           **
+\*****************************************************************************/
 
 
 
@@ -121,9 +121,9 @@ static void doplasma (register unsigned char* scrn)
     c2B -= 3;
     for (ii = 0; ii < 25; ++ii) {
         /* Unrolling the following loop will give a speed increase of
-         * nearly 100% (~24fps), but it will also increase the code
-         * size a lot.
-         */
+        ** nearly 100% (~24fps), but it will also increase the code
+        ** size a lot.
+        */
         for (i = 0; i < 40; ++i, ++scrn) {
             *scrn = (xbuf[i] + ybuf[ii]);
         }
@@ -203,9 +203,9 @@ int main (void)
     outb (&CIA2.pra, (block & 0xFC) | ((SCREEN1 >> 14) ^ 0x03));
 #endif
 #if defined(__C128__)
-    /* Save and change some flags, so that kernal/basic interupt handler will
-     * not interfere with our routine.
-     */
+    /* Save and change some flags, so that kernal/basic interrupt handler will
+    ** not interfere with our routine.
+    */
     initflag = *(unsigned char*) 0xA04;
     *(unsigned char*) 0xA04 &= 0xFE;
     graphflag = *(unsigned char*) 0xD8;
index 9d166b768c721fcef07c5482cc182b74ab81a49b..9f110ec98c7ffa1b60c1a2fe47ab666286d40d59 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Calculate all primes up to a specific number.
- */
+** Calculate all primes up to a specific number.
+*/
 
 
 
index 11589a6218d4a1104cb20fcd1eebc8fff6571792..af176d019f0bcbf97e97f8d4f040fa57469c13eb 100644 (file)
@@ -130,8 +130,8 @@ void ExpInsert (const char* Name, const ObjData* Module)
 
 const ObjData* ExpFind (const char* Name)
 /* Check for an identifier in the list. Return NULL if not found, otherwise
- * return a pointer to the module, that exports the identifer.
- */
+** return a pointer to the module, that exports the identifer.
+*/
 {
     /* Get a pointer to the list with the symbols hash value */
     HashEntry* L = HashTab [HashStr (Name) % HASHTAB_SIZE];
index 2dcd8a49c69062ae6d37167db7d358ed502edb64..054b5153c4ce925df1bbe60dcdcdd667c2a8f8f8 100644 (file)
@@ -59,8 +59,8 @@ void ExpInsert (const char* Name, const struct ObjData* Module);
 
 const struct ObjData* ExpFind (const char* Name);
 /* Check for an identifier in the list. Return NULL if not found, otherwise
- * return a pointer to the module, that exports the identifer.
- */
+** return a pointer to the module, that exports the identifer.
+*/
 
 
 
index 5126d7fe2d861badfdaddfaf8ca104b451037920..8e17cbfac0251654e0393f77390112b53d6e3cba 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 1998-2003 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -84,10 +84,10 @@ void WriteVar (FILE* F, unsigned long V)
 /* Write a variable sized value to the file in special encoding */
 {
     /* We will write the value to the file in 7 bit chunks. If the 8th bit
-     * is clear, we're done, if it is set, another chunk follows. This will
-     * allow us to encode smaller values with less bytes, at the expense of
-     * needing 5 bytes if a 32 bit value is written to file.
-     */
+    ** is clear, we're done, if it is set, another chunk follows. This will
+    ** allow us to encode smaller values with less bytes, at the expense of
+    ** needing 5 bytes if a 32 bit value is written to file.
+    */
     do {
         unsigned char C = (V & 0x7F);
         V >>= 7;
@@ -156,8 +156,8 @@ unsigned long ReadVar (FILE* F)
 /* Read a variable size value from the file */
 {
     /* The value was written to the file in 7 bit chunks LSB first. If there
-     * are more bytes, bit 8 is set, otherwise it is clear.
-     */
+    ** are more bytes, bit 8 is set, otherwise it is clear.
+    */
     unsigned char C;
     unsigned long V = 0;
     unsigned Shift = 0;
index 8d92a1ec600591ea3e394c33b329690881520d77..c72e6e3cf3cad9761a9f21c2e433c07248d38bc3 100644 (file)
@@ -216,9 +216,9 @@ static void WriteIndex (void)
 
 void LibOpen (const char* Name, int MustExist, int NeedTemp)
 /* Open an existing library and a temporary copy. If MustExist is true, the
- * old library is expected to exist. If NeedTemp is true, a temporary library
- * is created.
- */
+** old library is expected to exist. If NeedTemp is true, a temporary library
+** is created.
+*/
 {
     /* Remember the name */
     LibName = xstrdup (Name);
@@ -268,8 +268,8 @@ void LibOpen (const char* Name, int MustExist, int NeedTemp)
 
 unsigned long LibCopyTo (FILE* F, unsigned long Bytes)
 /* Copy data from F to the temp library file, return the start position in
- * the temporary library file.
- */
+** the temporary library file.
+*/
 {
     unsigned char Buf [4096];
 
@@ -311,8 +311,8 @@ void LibCopyFrom (unsigned long Pos, unsigned long Bytes, FILE* F)
 
 static void LibCheckExports (ObjData* O)
 /* Insert all exports from the given object file into the global list
- * checking for duplicates.
- */
+** checking for duplicates.
+*/
 {
     unsigned I;
 
@@ -335,8 +335,8 @@ static void LibCheckExports (ObjData* O)
 
 void LibClose (void)
 /* Write remaining data, close both files and copy the temp file to the old
- * filename
- */
+** filename
+*/
 {
     /* Do we have a temporary library? */
     if (NewLib) {
@@ -346,9 +346,9 @@ void LibClose (void)
         size_t Count;
 
         /* Walk through the object file list, inserting exports into the
-         * export list checking for duplicates. Copy any data that is still
-         * in the old library into the new one.
-         */
+        ** export list checking for duplicates. Copy any data that is still
+        ** in the old library into the new one.
+        */
         for (I = 0; I < CollCount (&ObjPool); ++I) {
 
             /* Get a pointer to the object */
index f7b203aa49d92fd77926e9316e22e78414f2ae7c..861d56a785c2edb7b6d8bfc6080b2adc0832d517 100644 (file)
@@ -61,22 +61,22 @@ extern const char* LibName;
 
 void LibOpen (const char* Name, int MustExist, int NeedTemp);
 /* Open an existing library and a temporary copy. If MustExist is true, the
- * old library is expected to exist. If NeedTemp is true, a temporary library
- * is created.
- */
+** old library is expected to exist. If NeedTemp is true, a temporary library
+** is created.
+*/
 
 unsigned long LibCopyTo (FILE* F, unsigned long Bytes);
 /* Copy data from F to the temp library file, return the start position in
- * the temporary library file.
- */
+** the temporary library file.
+*/
 
 void LibCopyFrom (unsigned long Pos, unsigned long Bytes, FILE* F);
 /* Copy data from the library file into another file */
 
 void LibClose (void);
 /* Write remaining data, close both files and copy the temp file to the old
- * filename
- */
+** filename
+*/
 
 
 
index 2a7cf4ed4f896b035e0eeda6cf0495b5df2fe3d9..5a8f0c5fb1bf8ab9e157d84b0abf892b2da6683b 100644 (file)
@@ -122,8 +122,8 @@ void ClearObjData (ObjData* O)
 
 ObjData* FindObjData (const char* Module)
 /* Search for the module with the given name and return it. Return NULL if the
- * module is not in the list.
- */
+** module is not in the list.
+*/
 {
     unsigned I;
 
index 13590ee4d20a425a96cb2f4c2ff3e6189ca8d51e..3ae8e294978d031bdd3015b099627f0aa6f69f0d 100644 (file)
@@ -97,8 +97,8 @@ void ClearObjData (ObjData* O);
 
 ObjData* FindObjData (const char* Module);
 /* Search for the module with the given name and return it. Return NULL if the
- * module is not in the list.
- */
+** module is not in the list.
+*/
 
 void DelObjData (const char* Module);
 /* Delete the object module from the list */
index 933a68852f4c1391147efc7231cca265f419d438..0434f7e59fcc388a95d716cd7471bff798bfa821 100644 (file)
@@ -168,8 +168,8 @@ static void SkipLineInfoList (FILE* F)
 
 void ObjReadData (FILE* F, ObjData* O)
 /* Read object file data from the given file. The function expects the Name
- * and Start fields to be valid. Header and basic data are read.
- */
+** and Start fields to be valid. Header and basic data are read.
+*/
 {
     unsigned long Count;
 
@@ -239,14 +239,14 @@ void ObjAdd (const char* Name)
         Error ("Could not open `%s': %s", Name, strerror (errno));
     }
 
-    /* Get the modification time of the object file. There a race condition
-     * here, since we cannot use fileno() (non standard identifier in standard
-     * header file), and therefore not fstat. When using stat with the
-     * file name, there's a risk that the file was deleted and recreated
-     * while it was open. Since mtime and size are only used to check
-     * if a file has changed in the debugger, we will ignore this problem
-     * here.
-     */
+    /* Get the modification time of the object file. There's a race condition
+    ** here, since we cannot use fileno() (non-standard identifier in standard
+    ** header file), and therefore not fstat. When using stat with the
+    ** file name, there's a risk that the file was deleted and recreated
+    ** while it was open. Since mtime and size are only used to check
+    ** if a file has changed in the debugger, we will ignore this problem
+    ** here.
+    */
     if (FileStat (Name, &StatBuf) != 0) {
         Error ("Cannot stat object file `%s': %s", Name, strerror (errno));
     }
@@ -264,8 +264,8 @@ void ObjAdd (const char* Name)
         O = NewObjData ();
     } else {
         /* Found - check the file modification times of the internal copy
-         * and the external one.
-         */
+        ** and the external one.
+        */
         if (difftime ((time_t)O->MTime, StatBuf.st_mtime) > 0.0) {
             Warning ("Replacing module `%s' by older version in library `%s'",
                      O->Name, LibName);
@@ -289,8 +289,8 @@ void ObjAdd (const char* Name)
     ObjReadData (Obj, O);
 
     /* Copy the complete object data to the library file and update the
-     * starting offset
-     */
+    ** starting offset
+    */
     fseek (Obj, 0, SEEK_SET);
     O->Start    = LibCopyTo (Obj, O->Size);
 
@@ -323,8 +323,8 @@ void ObjExtract (const char* Name)
     }
 
     /* Copy the complete object file data from the library to the new object
-     * file.
-     */
+    ** file.
+    */
     LibCopyFrom (O->Start, O->Size, Obj);
 
     /* Close the file */
index f971d3ec6e51f0b27d1fbc5c36d30f91ae4de6f8..bc564c47050de4a1ef33e4f8d17e57e366dd5563 100644 (file)
@@ -60,8 +60,8 @@ struct ObjData;
 
 void ObjReadData (FILE* F, struct ObjData* O);
 /* Read object file data from the given file. The function expects the Name
- * and Start fields to be valid. Header and basic data are read.
- */
+** and Start fields to be valid. Header and basic data are read.
+*/
 
 void ObjAdd (const char* Name);
 /* Add an object file to the library */
index 2424869166c04615d923fa59cc560475680361b1..90b73fcabc2eeaeb4a9501ac232c1bbbd6ea9158 100644 (file)
@@ -59,9 +59,9 @@ static const char AnonTag[] = "$anon";
 
 StrBuf* AnonName (StrBuf* Buf, const char* Spec)
 /* Get a name for an anonymous scope, variable or type. Size is the size of
- * the buffer passed to the function, Spec will be used as part of the
- * identifier if given. A pointer to the buffer is returned.
- */
+** the buffer passed to the function, Spec will be used as part of the
+** identifier if given. A pointer to the buffer is returned.
+*/
 {
     static unsigned ACount = 0;
     SB_Printf (Buf, "%s-%s-%04X", AnonTag, Spec, ++ACount);
index fdb64159afe53f6f1aedd0480f43c511a8b591c7..142cd9f8730aad6fa825bfc5d07b098874fa6c98 100644 (file)
@@ -51,9 +51,9 @@
 
 StrBuf* AnonName (StrBuf* Buf, const char* Spec);
 /* Get a name for an anonymous scope, variable or type. Size is the size of
- * the buffer passed to the function, Spec will be used as part of the
- * identifier if given. A pointer to the buffer is returned.
- */
+** the buffer passed to the function, Spec will be used as part of the
+** identifier if given. A pointer to the buffer is returned.
+*/
 
 int IsAnonName (const StrBuf* Name);
 /* Check if the given symbol name is that of an anonymous symbol */
index c9506c316ec6068a9099ab9164960dbacd8ff039..24cbae69680b5b7ff9f126de0d4acb42a9132fb2 100644 (file)
@@ -104,9 +104,9 @@ static int GetOverallIfCond (void)
 /* Get the overall condition based on all conditions on the stack. */
 {
     /* Since the last entry contains the overall condition of the parent, we
-     * must check it in combination of the current condition. If there is no
-     * last entry, the overall condition is true.
-     */
+    ** must check it in combination of the current condition. If there is no
+    ** last entry, the overall condition is true.
+    */
     return (IfCount == 0) ||
            ((IfStack[IfCount-1].Flags & (ifCond | ifParentCond)) == (ifCond | ifParentCond));
 }
@@ -114,7 +114,7 @@ static int GetOverallIfCond (void)
 
 
 static void CalcOverallIfCond (void)
-/* Caclulate the overall condition based on all conditions on the stack. */
+/* Calculate the overall condition, based on all conditions on the stack. */
 {
     IfCond = GetOverallIfCond ();
 }
@@ -256,9 +256,9 @@ void DoConditionals (void)
                 NextTok ();
 
                 /* Ignore the new condition if we are inside a false .ELSE
-                 * branch. This way we won't get any errors about undefined
-                 * symbols or similar...
-                 */
+                ** branch. This way we won't get any errors about undefined
+                ** symbols or similar...
+                */
                 if (IfCond) {
                     SetIfCond (D, ConstExpression ());
                     ExpectSep ();
@@ -273,8 +273,8 @@ void DoConditionals (void)
                 FreeIf ();
 
                 /* Be sure not to read the next token until the .IF stack
-                 * has been cleanup up, since we may be at end of file.
-                 */
+                ** has been cleanup up, since we may be at end of file.
+                */
                 NextTok ();
                 ExpectSep ();
 
@@ -440,9 +440,9 @@ void DoConditionals (void)
 
 int CheckConditionals (void)
 /* Check if the current token is one that starts a conditional directive, and
- * call DoConditionals if so. Return true if a conditional directive was found,
- * return false otherwise.
- */
+** call DoConditionals if so. Return true if a conditional directive was found,
+** return false otherwise.
+*/
 {
     switch (CurTok.Tok) {
         case TOK_ELSE:
@@ -473,15 +473,15 @@ int CheckConditionals (void)
 
 void CheckOpenIfs (void)
 /* Called from the scanner before closing an input file. Will check for any
- * open .ifs in this file.
- */
+** open .ifs in this file.
+*/
 {
     const LineInfo* LI;
 
     while (1) {
         /* Get the current file number and check if the topmost entry on the
-         * .IF stack was inserted with this file number
-         */
+        ** .IF stack was inserted with this file number
+        */
         IfDesc* D = GetCurrentIf ();
         if (D == 0) {
             /* There are no open .IFs */
index fa1842bf3f41266d8035ba4b4bcdb024b8b82795..334ec862b89e12c527db36303574a69d46831016 100644 (file)
@@ -60,14 +60,14 @@ void DoConditionals (void);
 
 int CheckConditionals (void);
 /* Check if the current token is one that starts a conditional directive, and
- * call DoConditionals if so. Return true if a conditional directive was found,
- * return false otherwise.
- */
+** call DoConditionals if so. Return true if a conditional directive was found,
+** return false otherwise.
+*/
 
 void CheckOpenIfs (void);
 /* Called from the scanner before closing an input file. Will check for any
- * open .ifs in this file.
- */
+** open .ifs in this file.
+*/
 
 unsigned GetIfStack (void);
 /* Get the current .IF stack pointer */
index 5e1bf912ab4da25bfe8eae2d4e213a875f56b98c..8a55f9ddc6e836b538b033002d36c2c1642bc07b 100644 (file)
@@ -130,8 +130,8 @@ static unsigned HexValue (char C)
 
 static int ValidateType (StrBuf* Type)
 /* Check if the given type is valid and if so, return a string id for it. If
- * the type isn't valid, return -1. Type is overwritten when checking.
- */
+** the type isn't valid, return -1. Type is overwritten when checking.
+*/
 {
     unsigned        I;
     const char*     A;
@@ -311,8 +311,8 @@ void DbgInfoLine (void)
     }
 
     /* If a parameters follow, this is actual line info. If no parameters
-     * follow, the last line info is terminated.
-     */
+    ** follow, the last line info is terminated.
+    */
     if (CurTok.Tok == TOK_SEP) {
         return;
     }
@@ -445,10 +445,10 @@ void DbgInfoCheck (void)
 /* Do checks on all hll debug info symbols when assembly is complete */
 {
     /* When parsing the debug statements for HLL symbols, we have already
-     * tagged the functions to their asm counterparts. This wasn't done for
-     * C symbols, since we will allow forward declarations. So we have to
-     * resolve the normal C symbols now.
-     */
+    ** tagged the functions to their asm counterparts. This wasn't done for
+    ** C symbols, since we will allow forward declarations. So we have to
+    ** resolve the normal C symbols now.
+    */
     unsigned I;
     for (I = 0; I < CollCount (&HLLDbgSyms); ++I) {
 
@@ -456,8 +456,8 @@ void DbgInfoCheck (void)
         HLLDbgSym* S = CollAtUnchecked (&HLLDbgSyms, I);
 
         /* Ignore functions and auto symbols, because the later live on the
-         * stack and don't have corresponding asm symbols.
-         */
+        ** stack and don't have corresponding asm symbols.
+        */
         if (HLL_IS_FUNC (S->Flags) || HLL_GET_SC (S->Flags) == HLL_SC_AUTO) {
             continue;
         }
@@ -501,8 +501,8 @@ void WriteHLLDbgSyms (void)
             unsigned SC = HLL_GET_SC (S->Flags);
 
             /* Remember if the symbol has debug info attached
-             * ### This should go into DbgInfoCheck
-             */
+            ** ### This should go into DbgInfoCheck
+            */
             if (S->Sym && S->Sym->DebugSymId != ~0U) {
                 S->Flags |= HLL_DATA_SYM;
             }
index 71fea6296a6530256813c536a6ecc91f4da03aa8..5f76f2966ce1f49430b8763247d6fde68e543ff9 100644 (file)
@@ -157,12 +157,12 @@ void GetEA (EffAddr* A)
     } else {
 
         /* Remaining stuff:
-         *
-         * adr
-         * adr,x
-         * adr,y
-         * adr,s
-         */
+        **
+        ** adr
+        ** adr,x
+        ** adr,y
+        ** adr,s
+        */
         A->Expr = Expression ();
 
         if (CurTok.Tok == TOK_COMMA) {
index 6b3fe4f4c73f93774f6b553fe34a7b0a173fc827..578a25734fe29fde5d14ea437d594d20e4322adf 100644 (file)
@@ -51,9 +51,9 @@
 
 static long RegNum ()
 /* Try to read a register number specified not as a register (Rx) but as a
- * numeric value between 0 and 15. Return the register number or -1 on
- * failure.
- */
+** numeric value between 0 and 15. Return the register number or -1 on
+** failure.
+*/
 {
     long Val;
     ExprNode* Expr = Expression ();
@@ -126,8 +126,8 @@ void GetSweet16EA (EffAddr* A)
         A->AddrModeSet = AMSW16_BRA;
 
         /* If the value is a constant between 0 and 15, it may also be a
-         * register number.
-         */
+        ** register number.
+        */
         if (IsConstExpr (A->Expr, &Reg) && Reg >= 0 && Reg <= 15) {
             FreeExpr (A->Expr);
             A->Reg = (unsigned) Reg;
index 6731aa0e574e4abc01277c5ec65146d7ff5a3a3e..38195d6690f1c3cb6efc7b70afa0035a4668fc42 100644 (file)
@@ -128,10 +128,10 @@ static void AddNotifications (const Collection* LineInfos)
     unsigned Skipped;
 
     /* The basic line info is always in slot zero. It has been used to
-     * output the actual error or warning. The following slots may contain
-     * more information. Check them and print additional notifications if
-     * they're present, but limit the number to a reasonable value.
-     */
+    ** output the actual error or warning. The following slots may contain
+    ** more information. Check them and print additional notifications if
+    ** they're present, but limit the number to a reasonable value.
+    */
     for (I = 1, Output = 0, Skipped = 0; I < CollCount (LineInfos); ++I) {
         /* Get next line info */
         const LineInfo* LI = CollConstAt (LineInfos, I);
index 471700e4639efcaff5b9c5f06356833574792412..e4d6f7363a7161121fb35449816cb2475c0dce28 100644 (file)
 
 
 /* Since all expressions are first packed into expression trees, and each
- * expression tree node is allocated on the heap, we add some type of special
- * purpose memory allocation here: Instead of freeing the nodes, we save some
- * number of freed nodes for later and remember them in a single linked list
- * using the Left link.
- */
+** expression tree node is allocated on the heap, we add some type of special
+** purpose memory allocation here: Instead of freeing the nodes, we save some
+** number of freed nodes for later and remember them in a single linked list
+** using the Left link.
+*/
 #define MAX_FREE_NODES  64
 static ExprNode*        FreeExprNodes = 0;
 static unsigned         FreeNodeCount = 0;
@@ -172,9 +172,9 @@ int IsFarRange (long Val)
 
 int IsEasyConst (const ExprNode* E, long* Val)
 /* Do some light checking if the given node is a constant. Don't care if E is
- * a complex expression. If E is a constant, return true and place its value
- * into Val, provided that Val is not NULL.
- */
+** a complex expression. If E is a constant, return true and place its value
+** into Val, provided that Val is not NULL.
+*/
 {
     /* Resolve symbols, follow symbol chains */
     while (E->Op == EXPR_SYMBOL) {
@@ -322,8 +322,8 @@ static ExprNode* Symbol (SymEntry* S)
         /* Mark the symbol as referenced */
         SymRef (S);
         /* If the symbol is a variable, return just its value, otherwise
-         * return a reference to the symbol.
-         */
+        ** return a reference to the symbol.
+        */
         if (SymIsVar (S)) {
             return CloneExpr (GetSymExpr (S));
         } else {
@@ -355,16 +355,16 @@ static ExprNode* FuncBlank (void)
 /* Handle the .BLANK builtin function */
 {
     /* We have a list of tokens that ends with the closing paren. Skip
-     * the tokens, and count them. Allow optionally curly braces.
-     */
+    ** the tokens, and count them. Allow optionally curly braces.
+    */
     token_t Term = GetTokListTerm (TOK_RPAREN);
     unsigned Count = 0;
     while (CurTok.Tok != Term) {
 
         /* Check for end of line or end of input. Since the calling function
-         * will check for the closing paren, we don't need to print an error
-         * here, just bail out.
-         */
+        ** will check for the closing paren, we don't need to print an error
+        ** here, just bail out.
+        */
         if (TokIsSep (CurTok.Tok)) {
             break;
         }
@@ -458,9 +458,9 @@ static ExprNode* DoMatch (enum TC EqualityLevel)
     TokNode* Node;
 
     /* A list of tokens follows. Read this list and remember it building a
-     * single linked list of tokens including attributes. The list is
-     * either enclosed in curly braces, or terminated by a comma.
-     */
+    ** single linked list of tokens including attributes. The list is
+    ** either enclosed in curly braces, or terminated by a comma.
+    */
     token_t Term = GetTokListTerm (TOK_COMMA);
     while (CurTok.Tok != Term) {
 
@@ -494,9 +494,9 @@ static ExprNode* DoMatch (enum TC EqualityLevel)
     }
 
     /* Read the second list which is optionally enclosed in curly braces and
-     * terminated by the right parenthesis. Compare each token against the
-     * one in the first list.
-     */
+    ** terminated by the right parenthesis. Compare each token against the
+    ** one in the first list.
+    */
     Term = GetTokListTerm (TOK_RPAREN);
     Result = 1;
     Node = Root;
@@ -674,8 +674,8 @@ static ExprNode* FuncSizeOf (void)
         }
 
         /* If ScopeName is empty, no explicit scope was specified. We have to
-         * search upper scope levels in this case.
-         */
+        ** search upper scope levels in this case.
+        */
         NoScope = SB_IsEmpty (&ScopeName);
 
         /* First search for a scope with the given name */
@@ -686,8 +686,8 @@ static ExprNode* FuncSizeOf (void)
         }
 
         /* If we did find a scope with the name, read the symbol defining the
-         * size, otherwise search for a symbol entry with the name and scope.
-         */
+        ** size, otherwise search for a symbol entry with the name and scope.
+        */
         if (Scope) {
             /* Yep, it's a scope */
             SizeSym = GetSizeOfScope (Scope);
@@ -755,8 +755,8 @@ static ExprNode* FuncStrAt (void)
     }
 
     /* Get the char, handle as unsigned. Be sure to translate it into
-     * the target character set.
-     */
+    ** the target character set.
+    */
     C = TgtTranslateChar (SB_At (&Str, (unsigned)Index));
 
 ExitPoint:
@@ -803,16 +803,16 @@ static ExprNode* FuncTCount (void)
 /* Handle the .TCOUNT function */
 {
     /* We have a list of tokens that ends with the closing paren. Skip
-     * the tokens, and count them. Allow optionally curly braces.
-     */
+    ** the tokens, and count them. Allow optionally curly braces.
+    */
     token_t Term = GetTokListTerm (TOK_RPAREN);
     int Count = 0;
     while (CurTok.Tok != Term) {
 
         /* Check for end of line or end of input. Since the calling function
-         * will check for the closing paren, we don't need to print an error
-         * here, just bail out.
-         */
+        ** will check for the closing paren, we don't need to print an error
+        ** here, just bail out.
+        */
         if (TokIsSep (CurTok.Tok)) {
             break;
         }
@@ -1131,8 +1131,8 @@ static ExprNode* Term (void)
             }
 
             /* Generate a literal expression and delete the old left and
-             * right sides.
-             */
+            ** right sides.
+            */
             FreeExpr (Left);
             FreeExpr (Right);
             Root = GenLiteralExpr (Val);
@@ -1198,8 +1198,8 @@ static ExprNode* SimpleExpr (void)
             }
 
             /* Generate a literal expression and delete the old left and
-             * right sides.
-             */
+            ** right sides.
+            */
             FreeExpr (Left);
             FreeExpr (Right);
             Root = GenLiteralExpr (Val);
@@ -1264,8 +1264,8 @@ static ExprNode* BoolExpr (void)
             }
 
             /* Generate a literal expression and delete the old left and
-             * right sides.
-             */
+            ** right sides.
+            */
             FreeExpr (Left);
             FreeExpr (Right);
             Root = GenLiteralExpr (Val);
@@ -1327,8 +1327,8 @@ static ExprNode* Expr2 (void)
             }
 
             /* Generate a literal expression and delete the old left and
-             * right sides.
-             */
+            ** right sides.
+            */
             FreeExpr (Left);
             FreeExpr (Right);
             Root = GenLiteralExpr (Val);
@@ -1385,8 +1385,8 @@ static ExprNode* Expr1 (void)
             }
 
             /* Generate a literal expression and delete the old left and
-             * right sides.
-             */
+            ** right sides.
+            */
             FreeExpr (Left);
             FreeExpr (Right);
             Root = GenLiteralExpr (Val);
@@ -1453,8 +1453,8 @@ static ExprNode* Expr0 (void)
 
 ExprNode* Expression (void)
 /* Evaluate an expression, build the expression tree on the heap and return
- * a pointer to the root of the tree.
- */
+** a pointer to the root of the tree.
+*/
 {
     return Expr0 ();
 }
@@ -1463,9 +1463,9 @@ ExprNode* Expression (void)
 
 long ConstExpression (void)
 /* Parse an expression. Check if the expression is const, and print an error
- * message if not. Return the value of the expression, or a dummy, if it is
- * not constant.
- */
+** message if not. Return the value of the expression, or a dummy, if it is
+** not constant.
+*/
 {
     long Val;
 
@@ -1620,8 +1620,8 @@ ExprNode* GenSwapExpr (ExprNode* Expr)
 
 ExprNode* GenBranchExpr (unsigned Offs)
 /* Return an expression that encodes the difference between current PC plus
- * offset and the target expression (that is, Expression() - (*+Offs) ).
- */
+** offset and the target expression (that is, Expression() - (*+Offs) ).
+*/
 {
     ExprNode* N;
     ExprNode* Root;
@@ -1637,11 +1637,11 @@ ExprNode* GenBranchExpr (unsigned Offs)
         FreeExpr (N);
 
         /* Generate the final expression:
-         * Val - (* + Offs)
-         * Val - ((Seg + PC) + Offs)
-         * Val - Seg - PC - Offs
-         * (Val - PC - Offs) - Seg
-         */
+        ** Val - (* + Offs)
+        ** Val - ((Seg + PC) + Offs)
+        ** Val - Seg - PC - Offs
+        ** (Val - PC - Offs) - Seg
+        */
         Root = GenLiteralExpr (Val - GetPC () - Offs);
         if (GetRelocMode ()) {
             N = Root;
@@ -1653,11 +1653,11 @@ ExprNode* GenBranchExpr (unsigned Offs)
     } else {
 
         /* Generate the expression:
-         * N - (* + Offs)
-         * N - ((Seg + PC) + Offs)
-         * N - Seg - PC - Offs
-         * N - (PC + Offs) - Seg
-         */
+        ** N - (* + Offs)
+        ** N - ((Seg + PC) + Offs)
+        ** N - Seg - PC - Offs
+        ** N - (PC + Offs) - Seg
+        */
         Root = NewExprNode (EXPR_MINUS);
         Root->Left  = N;
         Root->Right = GenLiteralExpr (GetPC () + Offs);
@@ -1759,9 +1759,9 @@ ExprNode* GenNE (ExprNode* Expr, long Val)
 
 int IsConstExpr (ExprNode* Expr, long* Val)
 /* Return true if the given expression is a constant expression, that is, one
- * with no references to external symbols. If Val is not NULL and the
- * expression is constant, the constant value is stored here.
- */
+** with no references to external symbols. If Val is not NULL and the
+** expression is constant, the constant value is stored here.
+*/
 {
     int IsConst;
 
@@ -1785,8 +1785,8 @@ int IsConstExpr (ExprNode* Expr, long* Val)
 
 ExprNode* CloneExpr (ExprNode* Expr)
 /* Clone the given expression tree. The function will simply clone symbol
- * nodes, it will not resolve them.
- */
+** nodes, it will not resolve them.
+*/
 {
     ExprNode* Clone;
 
@@ -1843,8 +1843,8 @@ void WriteExpr (ExprNode* Expr)
     }
 
     /* If the is a leafnode, write the expression attribute, otherwise
-     * write the expression operands.
-     */
+    ** write the expression operands.
+    */
     switch (Expr->Op) {
 
         case EXPR_LITERAL:
@@ -1884,12 +1884,12 @@ void WriteExpr (ExprNode* Expr)
 
 void ExprGuessedAddrSize (const ExprNode* Expr, unsigned char AddrSize)
 /* Mark the address size of the given expression tree as guessed. The address
- * size passed as argument is the one NOT used, because the actual address
- * size wasn't known. Example: Zero page addressing was not used because symbol
- * is undefined, and absolute addressing was available.
- * This function will actually parse the expression tree for undefined symbols,
- * and mark these symbols accordingly.
- */
+** size passed as argument is the one NOT used, because the actual address
+** size wasn't known. Example: Zero page addressing was not used because symbol
+** is undefined, and absolute addressing was available.
+** This function will actually parse the expression tree for undefined symbols,
+** and mark these symbols accordingly.
+*/
 {
     /* Accept NULL expressions */
     if (Expr == 0) {
index 0105bb68ff1c859f32fe17db5242b02f779d3f5b..03c2c26d857d51ee274b767c8ff4a7c299a500dc 100644 (file)
@@ -62,14 +62,14 @@ struct ExprDesc;
 
 ExprNode* Expression (void);
 /* Evaluate an expression, build the expression tree on the heap and return
- * a pointer to the root of the tree.
- */
+** a pointer to the root of the tree.
+*/
 
 long ConstExpression (void);
 /* Parse an expression. Check if the expression is const, and print an error
- * message if not. Return the value of the expression, or a dummy, if it is
- * not constant.
- */
+** message if not. Return the value of the expression, or a dummy, if it is
+** not constant.
+*/
 
 void FreeExpr (ExprNode* Root);
 /* Free the expression tree, Root is pointing to. */
@@ -97,8 +97,8 @@ ExprNode* GenSwapExpr (ExprNode* Expr);
 
 ExprNode* GenBranchExpr (unsigned Offs);
 /* Return an expression that encodes the difference between current PC plus
- * offset and the target expression (that is, Expression() - (*+Offs) ).
- */
+** offset and the target expression (that is, Expression() - (*+Offs) ).
+*/
 
 ExprNode* GenULabelExpr (unsigned Num);
 /* Return an expression for an unnamed label with the given index */
@@ -120,9 +120,9 @@ ExprNode* GenNE (ExprNode* Expr, long Val);
 
 int IsConstExpr (ExprNode* Expr, long* Val);
 /* Return true if the given expression is a constant expression, that is, one
- * with no references to external symbols. If Val is not NULL and the
- * expression is constant, the constant value is stored here.
- */
+** with no references to external symbols. If Val is not NULL and the
+** expression is constant, the constant value is stored here.
+*/
 
 int IsByteExpr (ExprNode* Root);
 /* Return true if this is a byte expression */
@@ -138,26 +138,26 @@ int IsFarRange (long Val);
 
 int IsEasyConst (const ExprNode* E, long* Val);
 /* Do some light checking if the given node is a constant. Don't care if E is
- * a complex expression. If E is a constant, return true and place its value
- * into Val, provided that Val is not NULL.
- */
+** a complex expression. If E is a constant, return true and place its value
+** into Val, provided that Val is not NULL.
+*/
 
 ExprNode* CloneExpr (ExprNode* Expr);
 /* Clone the given expression tree. The function will simply clone symbol
- * nodes, it will not resolve them.
- */
+** nodes, it will not resolve them.
+*/
 
 void WriteExpr (ExprNode* Expr);
 /* Write the given expression to the object file */
 
 void ExprGuessedAddrSize (const ExprNode* Expr, unsigned char AddrSize);
 /* Mark the address size of the given expression tree as guessed. The address
- * size passed as argument is the one NOT used, because the actual address
- * size wasn't known. Example: Zero page addressing was not used because symbol
- * is undefined, and absolute addressing was available.
- * This function will actually parse the expression tree for undefined symbols,
- * and mark these symbols accordingly.
- */
+** size passed as argument is the one NOT used, because the actual address
+** size wasn't known. Example: Zero page addressing was not used because symbol
+** is undefined, and absolute addressing was available.
+** This function will actually parse the expression tree for undefined symbols,
+** and mark these symbols accordingly.
+*/
 
 ExprNode* FuncBankByte (void);
 /* Handle the .BANKBYTE builtin function */
index 9a6055cb90d9e21bd68cc4ddf5e21af557c3706d..c398d2b377adc42665a2f81cf4148d54fdcc57d2 100644 (file)
@@ -75,8 +75,8 @@ static const char* FeatureKeys[FEAT_COUNT] = {
 
 feature_t FindFeature (const StrBuf* Key)
 /* Find the feature in a table and return the corresponding enum value. If the
- * feature is invalid, return FEAT_UNKNOWN.
- */
+** feature is invalid, return FEAT_UNKNOWN.
+*/
 {
     feature_t F;
 
@@ -96,9 +96,9 @@ feature_t FindFeature (const StrBuf* Key)
 
 feature_t SetFeature (const StrBuf* Key)
 /* Find the feature and set the corresponding flag if the feature is known.
- * In any case, return the feature found. An invalid Key will return
- * FEAT_UNKNOWN.
- */
+** In any case, return the feature found. An invalid Key will return
+** FEAT_UNKNOWN.
+*/
 {
     /* Map the string to an enum value */
     feature_t Feature = FindFeature (Key);
index 563ef5c2d6922ba66ec9722731585e13e425206b..9682ad9b93314ee860beae01a31e8b31c046deb8 100644 (file)
@@ -80,14 +80,14 @@ typedef enum {
 
 feature_t FindFeature (const StrBuf* Key);
 /* Find the feature in a table and return the corresponding enum value. If the
- * feature is invalid, return FEAT_UNKNOWN.
- */
+** feature is invalid, return FEAT_UNKNOWN.
+*/
 
 feature_t SetFeature (const StrBuf* Key);
 /* Find the feature and set the corresponding flag if the feature is known.
- * In any case, return the feature found. An invalid Key will return
- * FEAT_UNKNOWN.
- */
+** In any case, return the feature found. An invalid Key will return
+** FEAT_UNKNOWN.
+*/
 
 
 
index 0b7d7eb80fc32cdc6857bb2143c3c602ac7a7cfb..fbe163f5126da3fafd6d0a543c174fecbc31874e 100644 (file)
@@ -66,9 +66,9 @@ static const void* HT_GetKey (const void* Entry);
 
 static int HT_Compare (const void* Key1, const void* Key2);
 /* Compare two keys. The function must return a value less than zero if
- * Key1 is smaller than Key2, zero if both are equal, and a value greater
- * than zero if Key1 is greater then Key2.
- */
+** Key1 is smaller than Key2, zero if both are equal, and a value greater
+** than zero if Key1 is greater then Key2.
+*/
 
 
 
@@ -132,9 +132,9 @@ static const void* HT_GetKey (const void* Entry)
 
 static int HT_Compare (const void* Key1, const void* Key2)
 /* Compare two keys. The function must return a value less than zero if
- * Key1 is smaller than Key2, zero if both are equal, and a value greater
- * than zero if Key1 is greater then Key2.
- */
+** Key1 is smaller than Key2, zero if both are equal, and a value greater
+** than zero if Key1 is greater then Key2.
+*/
 {
     return (int)*(const unsigned*)Key1 - (int)*(const unsigned*)Key2;
 }
@@ -183,9 +183,9 @@ const StrBuf* GetFileName (unsigned Name)
 
     if (Name == 0) {
         /* Name was defined outside any file scope, use the name of the first
-         * file instead. Errors are then reported with a file position of
-         * line zero in the first file.
-         */
+        ** file instead. Errors are then reported with a file position of
+        ** line zero in the first file.
+        */
         if (CollCount (&FileTab) == 0) {
             /* No files defined until now */
             return &ErrorMsg;
@@ -223,8 +223,8 @@ unsigned GetFileIndex (const StrBuf* Name)
 unsigned AddFile (const StrBuf* Name, FileType Type,
                   unsigned long Size, unsigned long MTime)
 /* Add a new file to the list of input files. Return the index of the file in
- * the table.
- */
+** the table.
+*/
 {
     /* Create a new file entry and insert it into the tables */
     FileEntry* F = NewFileEntry (GetStrBufId (Name), Type, Size, MTime);
@@ -295,8 +295,8 @@ static void WriteDep (FILE* F, FileType Types)
 
 static void CreateDepFile (const char* Name, FileType Types)
 /* Create a dependency file with the given name and place dependencies for
- * all files with the given types there.
- */
+** all files with the given types there.
+*/
 {
     /* Open the file */
     FILE* F = fopen (Name, "w");
index b6fd2b6a51b17b4b192d4fed84f9cfb6574effcf..4e8cf566844294168022a38f28331873f2005e81 100644 (file)
@@ -50,8 +50,8 @@
 
 
 /* An enum that describes different types of input files. The members are
- * choosen so that it is possible to combine them to bitsets
- */
+** choosen so that it is possible to combine them to bitsets
+*/
 typedef enum {
     FT_MAIN     = 0x01,         /* Main input file */
     FT_INCLUDE  = 0x02,         /* Normal include file */
@@ -76,8 +76,8 @@ unsigned GetFileIndex (const StrBuf* Name);
 unsigned AddFile (const StrBuf* Name, FileType Type,
                   unsigned long Size, unsigned long MTime);
 /* Add a new file to the list of input files. Return the index of the file in
- * the table.
- */
+** the table.
+*/
 
 void WriteFiles (void);
 /* Write the list of input files to the object file */
index b4997cb6d36dc05d6002a2b2f09bb3fe0df92262..6a14a4cfc0c7ee416286e1e012485be310a93bbd 100644 (file)
@@ -49,8 +49,8 @@
 
 Fragment* NewFragment (unsigned char Type, unsigned short Len)
 /* Create, initialize and return a new fragment. The fragment will be inserted
- * into the current segment.
- */
+** into the current segment.
+*/
 {
     /* Create a new fragment */
     Fragment* F = xmalloc (sizeof (*F));
index 2420d332ed2adeb31bedc7d0a00154efab7cb262..f89589501ed7f72615272a6d76c50f789bf3002c 100644 (file)
@@ -76,8 +76,8 @@ struct Fragment {
 
 Fragment* NewFragment (unsigned char Type, unsigned short Len);
 /* Create, initialize and return a new fragment. The fragment will be inserted
- * into the current segment.
- */
+** into the current segment.
+*/
 
 
 
index 1c7be086ba0ccfbad5e07e4d46ec9d44aba8f97b..c2482577ca9f37f76a79736428fc80f471ff3da1 100644 (file)
@@ -90,37 +90,37 @@ static void PutSEP (const InsDesc* Ins);
 
 static void PutTAMn (const InsDesc* Ins);
 /* Emit a TAMn instruction (HuC6280). Since this is a two byte instruction with
- * implicit addressing mode, the opcode byte in the table is actually the
- * second operand byte. The TAM instruction is the more generic form, it takes
- * an immediate argument.
- */
+** implicit addressing mode, the opcode byte in the table is actually the
+** second operand byte. The TAM instruction is the more generic form, it takes
+** an immediate argument.
+*/
 
 static void PutTMA (const InsDesc* Ins);
 /* Emit a TMA instruction (HuC6280) with an immediate argument. Only one bit
- * in the argument byte may be set.
- */
+** in the argument byte may be set.
+*/
 
 static void PutTMAn (const InsDesc* Ins);
 /* Emit a TMAn instruction (HuC6280). Since this is a two byte instruction with
- * implicit addressing mode, the opcode byte in the table is actually the
- * second operand byte. The TAM instruction is the more generic form, it takes
- * an immediate argument.
- */
+** implicit addressing mode, the opcode byte in the table is actually the
+** second operand byte. The TAM instruction is the more generic form, it takes
+** an immediate argument.
+*/
 
 static void PutTST (const InsDesc* Ins);
 /* Emit a TST instruction (HuC6280). */
 
 static void PutJMP (const InsDesc* Ins);
 /* Handle the jump instruction for the 6502. Problem is that these chips have
- * a bug: If the address crosses a page, the upper byte gets not corrected and
- * the instruction will fail. The PutJmp function will add a linker assertion
- * to check for this case and is otherwise identical to PutAll.
- */
+** a bug: If the address crosses a page, the upper byte gets not corrected and
+** the instruction will fail. The PutJmp function will add a linker assertion
+** to check for this case and is otherwise identical to PutAll.
+*/
 
 static void PutRTS (const InsDesc* Ins attribute ((unused)));
 /* Handle the RTS instruction for the 816. In smart mode emit a RTL opcode if
- * the enclosing scope is FAR.
- */
+** the enclosing scope is FAR.
+*/
 
 static void PutAll (const InsDesc* Ins);
 /* Handle all other instructions */
@@ -783,8 +783,8 @@ static const InsTable* InsTabs[CPU_COUNT] = {
 const InsTable* InsTab = (const InsTable*) &InsTab6502;
 
 /* Table to build the effective 65xx opcode from a base opcode and an
- * addressing mode.
- */
+** addressing mode.
+*/
 static unsigned char EATab[10][AM65I_COUNT] = {
     {   /* Table 0 */
         0x00, 0x00, 0x05, 0x0D, 0x0F, 0x15, 0x1D, 0x1F,
@@ -849,8 +849,8 @@ static unsigned char EATab[10][AM65I_COUNT] = {
 };
 
 /* Table to build the effective SWEET16 opcode from a base opcode and an
- * addressing mode.
- */
+** addressing mode.
+*/
 static unsigned char Sweet16EATab[2][AMSW16I_COUNT] = {
     {   /* Table 0 */
         0x00, 0x00, 0x00, 0x00, 0x00,
@@ -910,21 +910,21 @@ static unsigned char Sweet16ExtBytes[AMSW16I_COUNT] = {
 
 static int EvalEA (const InsDesc* Ins, EffAddr* A)
 /* Evaluate the effective address. All fields in A will be valid after calling
- * this function. The function returns true on success and false on errors.
- */
+** this function. The function returns true on success and false on errors.
+*/
 {
     /* Get the set of possible addressing modes */
     GetEA (A);
 
     /* From the possible addressing modes, remove the ones that are invalid
-     * for this instruction or CPU.
-     */
+    ** for this instruction or CPU.
+    */
     A->AddrModeSet &= Ins->AddrMode;
 
     /* If we have an expression, check it and remove any addressing modes that
-     * are too small for the expression size. Since we have to study the
-     * expression anyway, do also replace it by a simpler one if possible.
-     */
+    ** are too small for the expression size. Since we have to study the
+    ** expression anyway, do also replace it by a simpler one if possible.
+    */
     if (A->Expr) {
         ExprDesc ED;
         ED_Init (&ED);
@@ -937,10 +937,10 @@ static int EvalEA (const InsDesc* Ins, EffAddr* A)
 
         if (ED.AddrSize == ADDR_SIZE_DEFAULT) {
             /* We don't know how big the expression is. If the instruction
-             * allows just one addressing mode, assume this as address size
-             * for the expression. Otherwise assume the default address size
-             * for data.
-             */
+            ** allows just one addressing mode, assume this as address size
+            ** for the expression. Otherwise assume the default address size
+            ** for data.
+            */
             if ((A->AddrModeSet & ~AM65_ALL_ZP) == 0) {
                 ED.AddrSize = ADDR_SIZE_ZP;
             } else if ((A->AddrModeSet & ~AM65_ALL_ABS) == 0) {
@@ -950,12 +950,12 @@ static int EvalEA (const InsDesc* Ins, EffAddr* A)
             } else {
                 ED.AddrSize = DataAddrSize;
                 /* If the default address size of the data segment is unequal
-                 * to zero page addressing, but zero page addressing is 
-                 * allowed by the instruction, mark all symbols in the 
-                 * expression tree. This mark will be checked at end of 
-                 * assembly, and a warning is issued, if a zero page symbol
-                 * was guessed wrong here.
-                 */
+                ** to zero page addressing, but zero page addressing is 
+                ** allowed by the instruction, mark all symbols in the 
+                ** expression tree. This mark will be checked at end of 
+                ** assembly, and a warning is issued, if a zero page symbol
+                ** was guessed wrong here.
+                */
                 if (ED.AddrSize > ADDR_SIZE_ZP && (A->AddrModeSet & AM65_SET_ZP)) {
                     ExprGuessedAddrSize (A->Expr, ADDR_SIZE_ZP);
                 }
@@ -987,11 +987,11 @@ static int EvalEA (const InsDesc* Ins, EffAddr* A)
     A->AddrModeBit = (0x01UL << A->AddrMode);
 
     /* If the instruction has a one byte operand and immediate addressing is
-     * allowed but not used, check for an operand expression in the form
-     * <label or >label, where label is a far or absolute label. If found,
-     * emit a warning. This warning protects against a typo, where the '#'
-     * for the immediate operand is omitted.
-     */
+    ** allowed but not used, check for an operand expression in the form
+    ** <label or >label, where label is a far or absolute label. If found,
+    ** emit a warning. This warning protects against a typo, where the '#'
+    ** for the immediate operand is omitted.
+    */
     if (A->Expr && (Ins->AddrMode & AM65_ALL_IMM)                &&
         (A->AddrModeSet & (AM65_DIR | AM65_ABS | AM65_ABS_LONG)) &&
         ExtBytes[A->AddrMode] == 1) {
@@ -1011,8 +1011,8 @@ static int EvalEA (const InsDesc* Ins, EffAddr* A)
     A->Opcode = Ins->BaseCode | EATab[Ins->ExtCode][A->AddrMode];
 
     /* If feature force_range is active, and we have immediate addressing mode,
-     * limit the expression to the maximum possible value.
-     */
+    ** limit the expression to the maximum possible value.
+    */
     if (A->AddrMode == AM65I_IMM_ACCU || A->AddrMode == AM65I_IMM_INDEX ||
         A->AddrMode == AM65I_IMM_IMPLICIT) {
         if (ForceRange && A->Expr) {
@@ -1043,9 +1043,9 @@ static void EmitCode (EffAddr* A)
         case 2:
             if (CPU == CPU_65816 && (A->AddrModeBit & (AM65_ABS | AM65_ABS_X | AM65_ABS_Y))) {
                 /* This is a 16 bit mode that uses an address. If in 65816,
-                 * mode, force this address into 16 bit range to allow
-                 * addressing inside a 64K segment.
-                 */
+                ** mode, force this address into 16 bit range to allow
+                ** addressing inside a 64K segment.
+                */
                 Emit2 (A->Opcode, GenWordExpr (A->Expr));
             } else {
                 Emit2 (A->Opcode, A->Expr);
@@ -1067,8 +1067,8 @@ static void EmitCode (EffAddr* A)
 
 static long PutImmed8 (const InsDesc* Ins)
 /* Parse and emit an immediate 8 bit instruction. Return the value of the
- * operand if it's available and const.
- */
+** operand if it's available and const.
+*/
 {
     EffAddr A;
     long Val = -1;
@@ -1210,10 +1210,10 @@ static void PutSEP (const InsDesc* Ins)
 
 static void PutTAMn (const InsDesc* Ins)
 /* Emit a TAMn instruction (HuC6280). Since this is a two byte instruction with
- * implicit addressing mode, the opcode byte in the table is actually the
- * second operand byte. The TAM instruction is the more generic form, it takes
- * an immediate argument.
- */
+** implicit addressing mode, the opcode byte in the table is actually the
+** second operand byte. The TAM instruction is the more generic form, it takes
+** an immediate argument.
+*/
 {
     /* Emit the TAM opcode itself */
     Emit0 (0x53);
@@ -1226,8 +1226,8 @@ static void PutTAMn (const InsDesc* Ins)
 
 static void PutTMA (const InsDesc* Ins)
 /* Emit a TMA instruction (HuC6280) with an immediate argument. Only one bit
- * in the argument byte may be set.
- */
+** in the argument byte may be set.
+*/
 {
     /* Use the generic handler */
     long Val = PutImmed8 (Ins);
@@ -1248,10 +1248,10 @@ static void PutTMA (const InsDesc* Ins)
 
 static void PutTMAn (const InsDesc* Ins)
 /* Emit a TMAn instruction (HuC6280). Since this is a two byte instruction with
- * implicit addressing mode, the opcode byte in the table is actually the
- * second operand byte. The TAM instruction is the more generic form, it takes
- * an immediate argument.
- */
+** implicit addressing mode, the opcode byte in the table is actually the
+** second operand byte. The TAM instruction is the more generic form, it takes
+** an immediate argument.
+*/
 {
     /* Emit the TMA opcode itself */
     Emit0 (0x43);
@@ -1303,10 +1303,10 @@ static void PutTST (const InsDesc* Ins)
 
 static void PutJMP (const InsDesc* Ins)
 /* Handle the jump instruction for the 6502. Problem is that these chips have
- * a bug: If the address crosses a page, the upper byte gets not corrected and
- * the instruction will fail. The PutJmp function will add a linker assertion
- * to check for this case and is otherwise identical to PutAll.
- */
+** a bug: If the address crosses a page, the upper byte gets not corrected and
+** the instruction will fail. The PutJmp function will add a linker assertion
+** to check for this case and is otherwise identical to PutAll.
+*/
 {
     EffAddr A;
 
@@ -1317,9 +1317,9 @@ static void PutJMP (const InsDesc* Ins)
         if (A.AddrModeBit & AM65_ABS_IND) {
 
             /* Compare the low byte of the expression to 0xFF to check for
-             * a page cross. Be sure to use a copy of the expression otherwise
-             * things will go weird later.
-             */
+            ** a page cross. Be sure to use a copy of the expression otherwise
+            ** things will go weird later.
+            */
             ExprNode* E = GenNE (GenByteExpr (CloneExpr (A.Expr)), 0xFF);
 
             /* Generate the message */
@@ -1338,8 +1338,8 @@ static void PutJMP (const InsDesc* Ins)
 
 static void PutRTS (const InsDesc* Ins attribute ((unused)))
 /* Handle the RTS instruction for the 816. In smart mode emit a RTL opcode if
- * the enclosing scope is FAR.
- */
+** the enclosing scope is FAR.
+*/
 {
     if (SmartMode && CurrentScope->AddrSize == ADDR_SIZE_FAR) {
         Emit0 (0x6B);       /* RTL */
@@ -1379,8 +1379,8 @@ static void PutSweet16 (const InsDesc* Ins)
     GetSweet16EA (&A);
 
     /* From the possible addressing modes, remove the ones that are invalid
-     * for this instruction or CPU.
-     */
+    ** for this instruction or CPU.
+    */
     A.AddrModeSet &= Ins->AddrMode;
 
     /* Check if we have any adressing modes left */
@@ -1466,16 +1466,16 @@ cpu_t GetCPU (void)
 
 int FindInstruction (const StrBuf* Ident)
 /* Check if Ident is a valid mnemonic. If so, return the index in the
- * instruction table. If not, return -1.
- */
+** instruction table. If not, return -1.
+*/
 {
     unsigned I;
     const InsDesc* ID;
     char Key[sizeof (ID->Mnemonic)];
 
     /* Shortcut for the "none" CPU: If there are no instructions to search
-     * for, bail out early.
-     */
+    ** for, bail out early.
+    */
     if (InsTab->Count == 0) {
         /* Not found */
         return -1;
@@ -1485,8 +1485,8 @@ int FindInstruction (const StrBuf* Ident)
     I = 0;
     while (I < SB_GetLen (Ident)) {
         /* If the identifier is longer than the longest mnemonic, it cannot
-         * be one.
-         */
+        ** be one.
+        */
         if (I >= sizeof (Key) - 1) {
             /* Not found, no need for further action */
             return -1;
index 28809500fc9eb0cc4efcd4bc9554648562a9b94e..1f2ce262b91cd4811bdf7a410771058a7dcb887d 100644 (file)
 
 
 /* Constants for the addressing mode. If an opcode is available in zero page
- * and absolut adressing mode, both bits are set. When checking for valid
- * modes, the zeropage bit is checked first. Similar, the implicit bit is set
- * on accu adressing modes, so the 'A' for accu adressing is not needed (but
- * may be specified).
- * When assembling for the 6502 or 65C02, all addressing modes that are not
- * available on these CPUs are removed before doing any checks.
- */
+** and absolut adressing mode, both bits are set. When checking for valid
+** modes, the zeropage bit is checked first. Similar, the implicit bit is set
+** on accu adressing modes, so the 'A' for accu adressing is not needed (but
+** may be specified).
+** When assembling for the 6502 or 65C02, all addressing modes that are not
+** available on these CPUs are removed before doing any checks.
+*/
 #define AM65_IMPLICIT           0x00000003UL
 #define AM65_ACCU               0x00000002UL
 #define AM65_DIR                0x00000004UL
@@ -168,8 +168,8 @@ cpu_t GetCPU (void);
 
 int FindInstruction (const StrBuf* Ident);
 /* Check if Ident is a valid mnemonic. If so, return the index in the
- * instruction table. If not, return -1.
- */
+** instruction table. If not, return -1.
+*/
 
 void HandleInstruction (unsigned Index);
 /* Handle the mnemonic with the given index */
index 14cae0ac9db42c85a5ee19aac308573e7e9e522e..8cda7dd2fb4d633beef267557495b71f7a5e6e77 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2000-2003 Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -120,12 +120,12 @@ void PopInput (void)
 
 int InputFromStack (void)
 /* Try to get input from the input stack. Return true if we had such input,
- * return false otherwise.
- */
+** return false otherwise.
+*/
 {
     /* Repeatedly call the TOS routine until we have a token or if run out of
-     * routines.
-     */
+    ** routines.
+    */
     while (IStack) {
         if (IStack->Func (IStack->Data) != 0) {
             /* We have a token */
@@ -149,8 +149,8 @@ int HavePushedInput (void)
 
 void CheckInputStack (void)
 /* Called from the scanner before closing an input file. Will check for any
- * stuff on the input stack.
- */
+** stuff on the input stack.
+*/
 {
     if (IStack) {
         Error ("Open %s", IStack->Desc);
index dd982194ab54835ccdd33f5be6022bea1986079e..aa37bab146fb08b4f2936b2664dbc5a4ac9b220c 100644 (file)
@@ -52,16 +52,16 @@ void PopInput (void);
 
 int InputFromStack (void);
 /* Try to get input from the input stack. Return true if we had such input,
- * return false otherwise.
- */
+** return false otherwise.
+*/
 
 int HavePushedInput (void);
 /* Return true if we have stacked input available, return false if not */
 
 void CheckInputStack (void);
 /* Called from the scanner before closing an input file. Will check for any
- * stuff on the input stack.
- */
+** stuff on the input stack.
+*/
 
 
 
index acdaf04cc9050c3d23c4143c973dc75ae71ddf09..92fecec58951a91780cf458faac8065475951fb7 100644 (file)
@@ -65,9 +65,9 @@ static const void* HT_GetKey (const void* Entry);
 
 static int HT_Compare (const void* Key1, const void* Key2);
 /* Compare two keys. The function must return a value less than zero if
- * Key1 is smaller than Key2, zero if both are equal, and a value greater
- * than zero if Key1 is greater then Key2.
- */
+** Key1 is smaller than Key2, zero if both are equal, and a value greater
+** than zero if Key1 is greater then Key2.
+*/
 
 
 
@@ -145,9 +145,9 @@ static const void* HT_GetKey (const void* Entry)
 
 static int HT_Compare (const void* Key1, const void* Key2)
 /* Compare two keys. The function must return a value less than zero if
- * Key1 is smaller than Key2, zero if both are equal, and a value greater
- * than zero if Key1 is greater then Key2.
- */
+** Key1 is smaller than Key2, zero if both are equal, and a value greater
+** than zero if Key1 is greater then Key2.
+*/
 {
     /* Convert both parameters to FileInfoKey pointers */
     const LineInfoKey* K1 = Key1;
@@ -272,8 +272,8 @@ void InitLineInfo (void)
     CollGrow (&LineInfoList, 200);
 
     /* Create a LineInfo for the default source. This is necessary to allow
-     * error message to be generated without any input file open.
-     */
+    ** error message to be generated without any input file open.
+    */
     AsmLineInfo = StartLine (&DefaultPos, LI_TYPE_ASM, 0);
 }
 
@@ -289,9 +289,9 @@ void DoneLineInfo (void)
     }
 
     /* Walk over the entries in the hash table and sort them into used and
-     * unused ones. Add the used ones to the line info list and assign them
-     * an id.
-     */
+    ** unused ones. Add the used ones to the line info list and assign them
+    ** an id.
+    */
     HT_Walk (&LineInfoTab, CheckLineInfo, 0);
 }
 
@@ -304,14 +304,14 @@ void EndLine (LineInfo* LI)
     CloseSpanList (&LI->OpenSpans);
 
     /* Move the spans to the list of all spans for this line, then clear the
-     * list of open spans.
-     */
+    ** list of open spans.
+    */
     CollTransfer (&LI->Spans, &LI->OpenSpans);
     CollDeleteAll (&LI->OpenSpans);
 
     /* Line info is no longer active - remove it from the list of current
-     * line infos.
-     */
+    ** line infos.
+    */
     CollDeleteItem (&CurLineInfo, LI);
 }
 
@@ -328,8 +328,8 @@ LineInfo* StartLine (const FilePos* Pos, unsigned Type, unsigned Count)
     Key.Type  = LI_MAKE_TYPE (Type, Count);
 
     /* Try to find a line info with this position and type in the hash table.
-     * If so, reuse it. Otherwise create a new one.
-     */
+    ** If so, reuse it. Otherwise create a new one.
+    */
     LI = HT_Find (&LineInfoTab, &Key);
     if (LI == 0) {
         /* Allocate a new LineInfo */
@@ -350,9 +350,9 @@ LineInfo* StartLine (const FilePos* Pos, unsigned Type, unsigned Count)
 
 void NewAsmLine (void)
 /* Start a new assembler input line. Use this function when generating new
- * line of LI_TYPE_ASM. It will check if line and/or file have actually
- * changed, end the old and start the new line as necessary.
- */
+** line of LI_TYPE_ASM. It will check if line and/or file have actually
+** changed, end the old and start the new line as necessary.
+*/
 {
     /* Check if we can reuse the old line */
     if (AsmLineInfo) {
@@ -374,8 +374,8 @@ void NewAsmLine (void)
 
 LineInfo* GetAsmLineInfo (void)
 /* Return the line info for the current assembler file. The function will
- * bump the reference counter before returning the line info.
- */
+** bump the reference counter before returning the line info.
+*/
 {
     ++AsmLineInfo->RefCount;
     return AsmLineInfo;
@@ -395,9 +395,9 @@ void ReleaseLineInfo (LineInfo* LI)
 
 void GetFullLineInfo (Collection* LineInfos)
 /* Return full line infos, that is line infos for currently active Slots. The
- * infos will be added to the given collection, existing entries will be left
- * intact. The reference count of all added entries will be increased.
- */
+** infos will be added to the given collection, existing entries will be left
+** intact. The reference count of all added entries will be increased.
+*/
 {
     unsigned I;
 
@@ -414,8 +414,8 @@ void GetFullLineInfo (Collection* LineInfos)
 
 void ReleaseFullLineInfo (Collection* LineInfos)
 /* Decrease the reference count for a collection full of LineInfos, then clear
- * the collection.
- */
+** the collection.
+*/
 {
     unsigned I;
 
index 5998b12534a069f15b91d8fdbc9d6bbb9ffae0b7..c5cf49519fe01ec19002f428c3cbc9956064501b 100644 (file)
@@ -77,28 +77,28 @@ LineInfo* StartLine (const FilePos* Pos, unsigned Type, unsigned Count);
 
 void NewAsmLine (void);
 /* Start a new assembler input line. Use this function when generating new
- * line of LI_TYPE_ASM. It will check if line and/or file have actually
- * changed, end the old and start the new line as necessary.
- */
+** line of LI_TYPE_ASM. It will check if line and/or file have actually
+** changed, end the old and start the new line as necessary.
+*/
 
 LineInfo* GetAsmLineInfo (void);
 /* Return the line info for the current assembler file. The function will
- * bump the reference counter before returning the line info.
- */
+** bump the reference counter before returning the line info.
+*/
 
 void ReleaseLineInfo (LineInfo* LI);
 /* Decrease the reference count for a line info */
 
 void GetFullLineInfo (Collection* LineInfos);
 /* Return full line infos, that is line infos for currently active Slots. The
- * infos will be added to the given collection, existing entries will be left
- * intact. The reference count of all added entries will be increased.
- */
+** infos will be added to the given collection, existing entries will be left
+** intact. The reference count of all added entries will be increased.
+*/
 
 void ReleaseFullLineInfo (Collection* LineInfos);
 /* Decrease the reference count for a collection full of LineInfos, then clear
- * the collection.
- */
+** the collection.
+*/
 
 const FilePos* GetSourcePos (const LineInfo* LI);
 /* Return the source file position from the given line info */
index dc10882ac1bbe5c3837c269d14c2cdb10b954e83..b3f3d9282324579cebbf2c7ec92740f440182e4c 100644 (file)
@@ -131,8 +131,8 @@ void EnableListing (void)
 {
     if (SB_GetLen (&ListingName) > 0) {
         /* If we're about to enable the listing, do this for the current line
-         * also, so we will see the source line that did this.
-         */
+        ** also, so we will see the source line that did this.
+        */
         if (ListingEnabled++ == 0) {
             LineCur->Output = 1;
         }
@@ -172,9 +172,9 @@ void InitListingLine (void)
 {
     if (SB_GetLen (&ListingName) > 0) {
         /* Make the last loaded line the current line */
-        /* ###### This code is a hack! We really need to do it right
-         * as soon as we know, how:-(
-         */
+        /* ###### This code is a hack! We really need to do it right --
+        ** as soon as we know how. :-(
+        */
         if (LineCur && LineCur->Next && LineCur->Next != LineLast) {
             ListLine* L = LineCur;
             do {
@@ -217,8 +217,8 @@ static char* AddHex (char* S, unsigned Val)
 
 static void PrintPageHeader (FILE* F, const ListLine* L)
 /* Print the header for a new page. It is assumed that the given line is the
- * last line of the previous page.
- */
+** last line of the previous page.
+*/
 {
     /* Gte a pointer to the current input file */
     const StrBuf* CurFile = GetFileName (L->File);
@@ -250,8 +250,8 @@ static void PrintLine (FILE* F, const char* Header, const char* Line, const List
     ++PageLines;
 
     /* Switch to a new page if needed. Do not switch, if the current line is
-     * the last one, to avoid pages that consist of just the header.
-     */
+    ** the last one, to avoid pages that consist of just the header.
+    */
     if (PageLength > 0 && PageLines >= PageLength && L->Next != 0) {
         /* Do a formfeed */
         putc ('\f', F);
@@ -392,16 +392,16 @@ void CreateListing (void)
         }
 
         /* Output the data. The format of a listing line is:
-         *
-         *      PPPPPPm I  11 22 33 44
-         *
-         * where
-         *
-         *      PPPPPP  is the PC
-         *      m       is the mode ('r' or empty)
-         *      I       is the include level
-         *      11 ..   are code or data bytes
-         */
+        **
+        **      PPPPPPm I  11 22 33 44
+        **
+        ** where
+        **
+        **      PPPPPP  is the PC
+        **      m       is the mode ('r' or empty)
+        **      I       is the include level
+        **      11 ..   are code or data bytes
+        */
         Line = L->Line;
         B    = Buf;
         while (Count) {
@@ -420,9 +420,9 @@ void CreateListing (void)
             Count -= Chunk;
 
             /* Increment the program counter. Since we don't need the PC stored
-             * in the LineList object for anything else, just increment this
-             * variable.
-             */
+            ** in the LineList object for anything else, just increment this
+            ** variable.
+            */
             L->PC += Chunk;
 
             /* Copy the bytes into the line */
index c5c55228f3783ab5c2941de312e4b06110f7db34..634f2107ef32219b264df0064d29835965b4ecc7 100644 (file)
@@ -70,9 +70,9 @@ static const void* HT_GetKey (const void* Entry);
 
 static int HT_Compare (const void* Key1, const void* Key2);
 /* Compare two keys. The function must return a value less than zero if
- * Key1 is smaller than Key2, zero if both are equal, and a value greater
- * than zero if Key1 is greater then Key2.
- */
+** Key1 is smaller than Key2, zero if both are equal, and a value greater
+** than zero if Key1 is greater then Key2.
+*/
 
 
 
@@ -176,9 +176,9 @@ static const void* HT_GetKey (const void* Entry)
 
 static int HT_Compare (const void* Key1, const void* Key2)
 /* Compare two keys. The function must return a value less than zero if
- * Key1 is smaller than Key2, zero if both are equal, and a value greater
- * than zero if Key1 is greater then Key2.
- */
+** Key1 is smaller than Key2, zero if both are equal, and a value greater
+** than zero if Key1 is greater then Key2.
+*/
 {
     return SB_Compare (Key1, Key2);
 }
@@ -399,8 +399,8 @@ void MacDef (unsigned Style)
         return;
     } else if (!UbiquitousIdents && FindInstruction (&CurTok.SVal) >= 0) {
         /* The identifier is a name of a 6502 instruction, which is not
-         * allowed if not explicitly enabled.
-         */
+        ** allowed if not explicitly enabled.
+        */
         Error ("Cannot use an instruction as macro name");
         MacSkipDef (Style);
         return;
@@ -423,8 +423,8 @@ void MacDef (unsigned Style)
     NextTok ();
 
     /* If we have a DEFINE style macro, we may have parameters in braces,
-     * otherwise we may have parameters without braces.
-     */
+    ** otherwise we may have parameters without braces.
+    */
     if (Style == MAC_STYLE_CLASSIC) {
         HaveParams = 1;
     } else {
@@ -476,8 +476,8 @@ void MacDef (unsigned Style)
     }
 
     /* For class macros, we expect a separator token, for define style macros,
-     * we expect the closing paren.
-     */
+    ** we expect the closing paren.
+    */
     if (Style == MAC_STYLE_CLASSIC) {
         ConsumeSep ();
     } else if (HaveParams) {
@@ -485,10 +485,10 @@ void MacDef (unsigned Style)
     }
 
     /* Preparse the macro body. We will read the tokens until we reach end of
-     * file, or a .endmacro (or end of line for DEFINE style macros) and store
-     * them into an token list internal to the macro. For classic macros, there
-     * the .LOCAL command is detected and removed at this time.
-     */
+    ** file, or a .endmacro (or end of line for DEFINE style macros) and store
+    ** them into an token list internal to the macro. For classic macros, there
+    ** the .LOCAL command is detected and removed at this time.
+    */
     while (1) {
 
         /* Check for end of macro */
@@ -597,8 +597,8 @@ Done:
 
 void MacUndef (const StrBuf* Name, unsigned char Style)
 /* Undefine the macro with the given name and style. A style mismatch is
- * treated as if the macro didn't exist.
- */
+** treated as if the macro didn't exist.
+*/
 {
     /* Search for the macro */
     Macro* M = HT_Find (&MacroTab, Name);
@@ -624,9 +624,9 @@ void MacUndef (const StrBuf* Name, unsigned char Style)
 
 static int MacExpand (void* Data)
 /* If we're currently expanding a macro, set the the scanner token and
- * attribute to the next value and return true. If we are not expanding
- * a macro, return false.
- */
+** attribute to the next value and return true. If we are not expanding
+** a macro, return false.
+*/
 {
     /* Cast the Data pointer to the actual data structure */
     MacExp* Mac = (MacExp*) Data;
@@ -645,8 +645,8 @@ static int MacExpand (void* Data)
     }
 
     /* We're expanding a macro. Check if we are expanding one of the
-     * macro parameters.
-     */
+    ** macro parameters.
+    */
 ExpandParam:
     if (Mac->ParamExp) {
 
@@ -674,8 +674,8 @@ ExpandParam:
     }
 
     /* We're not expanding macro parameters. Check if we have tokens left from
-     * the macro itself.
-     */
+    ** the macro itself.
+    */
     if (Mac->Exp) {
 
         /* Use next macro token */
@@ -716,10 +716,10 @@ ExpandParam:
             while (I) {
                 if (SB_Compare (&CurTok.SVal, &I->Id) == 0) {
                     /* This is in fact a local symbol, change the name. Be sure
-                     * to generate a local label name if the original name was
-                     * a local label, and also generate a name that cannot be
-                     * generated by a user.
-                     */
+                    ** to generate a local label name if the original name was
+                    ** a local label, and also generate a name that cannot be
+                    ** generated by a user.
+                    */
                     if (SB_At (&I->Id, 0) == LocalStart) {
                         /* Must generate a local symbol */
                         SB_Printf (&CurTok.SVal, "%cLOCAL-MACRO_SYMBOL-%04X",
@@ -753,14 +753,14 @@ ExpandParam:
         Mac->Final = 0;
 
         /* Problem: When a .define style macro is expanded within the call
-         * of a classic one, the latter may be terminated and removed while
-         * the expansion of the .define style macro is still active. Because
-         * line info slots are "stacked", this runs into a CHECK FAILED. For
-         * now, we will fix that by removing the .define style macro expansion
-         * immediately, once the final token is placed. The better solution
-         * would probably be to not require AllocLineInfoSlot/FreeLineInfoSlot
-         * to be called in FIFO order, but this is a bigger change.
-         */
+        ** of a classic one, the latter may be terminated and removed while
+        ** the expansion of the .define style macro is still active. Because
+        ** line info slots are "stacked", this runs into a CHECK FAILED. For
+        ** now, we will fix that by removing the .define style macro expansion
+        ** immediately, once the final token is placed. The better solution
+        ** would probably be to not require AllocLineInfoSlot/FreeLineInfoSlot
+        ** to be called in FIFO order, but this is a bigger change.
+        */
         /* End of macro expansion and pop the input function */
         FreeMacExp (Mac);
         PopInput ();
@@ -836,8 +836,8 @@ static void StartExpClassic (MacExp* E)
         ++E->ParamCount;
 
         /* If the macro argument was enclosed in curly braces, end-of-line
-         * is an error. Skip the closing curly brace.
-         */
+        ** is an error. Skip the closing curly brace.
+        */
         if (Term == TOK_RCURLY) {
             if (CurTok.Tok == TOK_SEP) {
                 Error ("End of line encountered within macro argument");
@@ -867,8 +867,8 @@ static void StartExpDefine (MacExp* E)
 /* Start expanding a DEFINE style macro */
 {
     /* A define style macro must be called with as many actual parameters
-     * as there are formal ones. Get the parameter count.
-     */
+    ** as there are formal ones. Get the parameter count.
+    */
     unsigned Count = E->M->ParamCount;
 
     /* Skip the current token */
@@ -915,8 +915,8 @@ static void StartExpDefine (MacExp* E)
         ++E->ParamCount;
 
         /* If the macro argument was enclosed in curly braces, end-of-line
-         * is an error. Skip the closing curly brace.
-         */
+        ** is an error. Skip the closing curly brace.
+        */
         if (Term == TOK_RCURLY) {
             if (TokIsSep (CurTok.Tok)) {
                 Error ("End of line encountered within macro argument");
@@ -936,10 +936,10 @@ static void StartExpDefine (MacExp* E)
     }
 
     /* Macro expansion will overwrite the current token. This is a problem
-     * for define style macros since these are called from the scanner level.
-     * To avoid it, remember the current token and re-insert it, once macro
-     * expansion is done.
-     */
+    ** for define style macros since these are called from the scanner level.
+    ** To avoid it, remember the current token and re-insert it, once macro
+    ** expansion is done.
+    */
     E->Final = NewTokNode ();
 
     /* Insert a new token input function */
@@ -963,8 +963,8 @@ void MacExpandStart (Macro* M)
     }
 
     /* Don't allow too many nested macro expansions - otherwise it is possible
-     * to force an endless loop and assembler crash.
-     */
+    ** to force an endless loop and assembler crash.
+    */
     if (MacExpansions >= MAX_MACEXPANSIONS) {
         Error ("Too many nested macro expansions");
         return;
@@ -997,8 +997,8 @@ void MacAbort (void)
 
 Macro* FindMacro (const StrBuf* Name)
 /* Try to find the macro with the given name and return it. If no macro with
- * this name was found, return NULL.
- */
+** this name was found, return NULL.
+*/
 {
     Macro* M = HT_Find (&MacroTab, Name);
     return (M != 0 && M->Style == MAC_STYLE_CLASSIC)? M : 0;
@@ -1008,8 +1008,8 @@ Macro* FindMacro (const StrBuf* Name)
 
 Macro* FindDefine (const StrBuf* Name)
 /* Try to find the define style macro with the given name and return it. If no
- * such macro was found, return NULL.
- */
+** such macro was found, return NULL.
+*/
 {
     Macro* M;
 
@@ -1043,8 +1043,8 @@ void DisableDefineStyleMacros (void)
 
 void EnableDefineStyleMacros (void)
 /* Re-enable define style macros previously disabled with
- * DisableDefineStyleMacros.
- */
+** DisableDefineStyleMacros.
+*/
 {
     PRECONDITION (DisableDefines > 0);
     --DisableDefines;
index a526d6119406ea8b1120d123af2072c809d16842..bb7b817a8bfb0c034a82ea6aa34b0ecd3438b18e 100644 (file)
@@ -75,8 +75,8 @@ void MacDef (unsigned Style);
 
 void MacUndef (const struct StrBuf* Name, unsigned char Style);
 /* Undefine the macro with the given name and style. A style mismatch is
- * treated as if the macro didn't exist.
- */
+** treated as if the macro didn't exist.
+*/
 
 void MacExpandStart (Macro* M);
 /* Start expanding a macro */
@@ -86,13 +86,13 @@ void MacAbort (void);
 
 Macro* FindMacro (const struct StrBuf* Name);
 /* Try to find the macro with the given name and return it. If no macro with
- * this name was found, return NULL.
- */
+** this name was found, return NULL.
+*/
 
 Macro* FindDefine (const struct StrBuf* Name);
 /* Try to find the define style macro with the given name and return it. If no
- * such macro was found, return NULL.
- */
+** such macro was found, return NULL.
+*/
 
 int InMacExpansion (void);
 /* Return true if we're currently expanding a macro */
@@ -102,8 +102,8 @@ void DisableDefineStyleMacros (void);
 
 void EnableDefineStyleMacros (void);
 /* Re-enable define style macros previously disabled with
- * DisableDefineStyleMacros.
- */
+** DisableDefineStyleMacros.
+*/
 
 
 
index a0f45ac34378a3f16c74e7826db5149d821e95ab..3f31a2b88d203f2a0acb0422b139f3080c4bb5a8 100644 (file)
@@ -519,8 +519,8 @@ static void OptListing (const char* Opt, const char* Arg)
 /* Create a listing file */
 {
     /* Since the meaning of -l and --listing has changed, print an error if
-     * the filename is empty or begins with the option char.
-     */
+    ** the filename is empty or begins with the option char.
+    */
     if (Arg == 0 || *Arg == '\0' || *Arg == '-') {
         Fatal ("The meaning of `%s' has changed. It does now "
                "expect a file name as argument.", Opt);
@@ -635,8 +635,8 @@ static void OneLine (void)
     int           Instr = -1;
 
     /* Initialize the new listing line if we are actually reading from file
-     * and not from internally pushed input.
-     */
+    ** and not from internally pushed input.
+    */
     if (!HavePushedInput ()) {
         InitListingLine ();
     }
@@ -648,8 +648,8 @@ static void OneLine (void)
     }
 
     /* If the first token on the line is an identifier, check for a macro or
-     * an instruction.
-     */
+    ** an instruction.
+    */
     if (CurTok.Tok == TOK_IDENT) {
         if (UbiquitousIdents) {
             /* Macros CAN be instructions, so check for them first */
@@ -667,9 +667,9 @@ static void OneLine (void)
     }
 
     /* Handle an identifier. This may be a cheap local symbol, or a fully
-     * scoped identifier which may start with a namespace token (for global
-     * namespace)
-     */
+    ** scoped identifier which may start with a namespace token (for global
+    ** namespace)
+    */
     if (CurTok.Tok == TOK_LOCAL_IDENT ||
         CurTok.Tok == TOK_NAMESPACE   ||
         (CurTok.Tok == TOK_IDENT && Instr < 0 && Mac == 0)) {
@@ -681,8 +681,8 @@ static void OneLine (void)
         Sym = ParseAnySymName (SYM_ALLOC_NEW);
 
         /* If a colon follows, this is a label definition. If there
-         * is no colon, it's an assignment.
-         */
+        ** is no colon, it's an assignment.
+        */
         if (CurTok.Tok == TOK_EQ || CurTok.Tok == TOK_ASSIGN) {
 
             /* Determine the symbol flags from the assignment token */
@@ -709,8 +709,8 @@ static void OneLine (void)
             Expr = GenLiteralExpr (ConstExpression ());
 
             /* Define the symbol with the constant expression following
-             * the '='
-             */
+            ** the '='
+            */
             SymDef (Sym, Expr, ADDR_SIZE_DEFAULT, SF_VAR);
 
             /* Don't allow anything after a symbol definition */
@@ -720,8 +720,8 @@ static void OneLine (void)
         } else {
 
             /* A label. Remember the current segment, so we can later
-             * determine the size of the data stored under the label.
-             */
+            ** determine the size of the data stored under the label.
+            */
             Seg = ActiveSeg;
             PC  = GetPC ();
 
@@ -729,9 +729,9 @@ static void OneLine (void)
             SymDef (Sym, GenCurrentPC (), ADDR_SIZE_DEFAULT, SF_LABEL);
 
             /* Skip the colon. If NoColonLabels is enabled, allow labels
-             * without a colon if there is no whitespace before the
-             * identifier.
-             */
+            ** without a colon if there is no whitespace before the
+            ** identifier.
+            */
             if (CurTok.Tok != TOK_COLON) {
                 if (HadWS || !NoColonLabels) {
                     Error ("`:' expected");
@@ -746,8 +746,8 @@ static void OneLine (void)
             }
 
             /* If we come here, a new identifier may be waiting, which may
-             * be a macro or instruction.
-             */
+            ** be a macro or instruction.
+            */
             if (CurTok.Tok == TOK_IDENT) {
                 if (UbiquitousIdents) {
                     /* Macros CAN be instructions, so check for them first */
@@ -790,9 +790,9 @@ static void OneLine (void)
     }
 
     /* If we have defined a label, remember its size. Sym is also set by
-     * a symbol assignment, but in this case Done is false, so we don't
-     * come here.
-     */
+    ** a symbol assignment, but in this case Done is false, so we don't
+    ** come here.
+    */
     if (Sym) {
         unsigned long Size;
         if (Seg == ActiveSeg) {
@@ -916,13 +916,13 @@ int main (int argc, char* argv [])
     SegInit ();
 
     /* Enter the base lexical level. We must do that here, since we may
-     * define symbols using -D.
-     */
+    ** define symbols using -D.
+    */
     SymEnterLevel (&GlobalNameSpace, SCOPE_FILE, ADDR_SIZE_DEFAULT, 0);
 
     /* Initialize the line infos. Must be done here, since we need line infos
-     * for symbol definitions.
-     */
+    ** for symbol definitions.
+    */
     InitLineInfo ();
 
     /* Check the parameters */
@@ -1104,8 +1104,8 @@ int main (int argc, char* argv [])
     DoneLineInfo ();
 
     /* If we didn't have any errors, create the object, listing and
-     * dependency files
-     */
+    ** dependency files
+    */
     if (ErrorCount == 0) {
         CreateObjFile ();
         if (SB_GetLen (&ListingName) > 0) {
index 6d4af26af152dcdec785171a0ac15ff231e2fb3c..1521ed0c25b4e094d1c511e34a3058872d5da3c8 100644 (file)
@@ -70,9 +70,9 @@ static unsigned RawMode = 0;            /* Raw token mode flag/counter */
 
 static int LookAtStrCon (void)
 /* Make sure the next token is a string constant. If not, print an error
- * messages skip the remainder of the line and return false. Otherwise return
- * true.
- */
+** messages skip the remainder of the line and return false. Otherwise return
+** true.
+*/
 {
     if (CurTok.Tok != TOK_STRCON) {
         Error ("String constant expected");
@@ -93,10 +93,10 @@ static int LookAtStrCon (void)
 
 static TokList* CollectTokens (unsigned Start, unsigned Count)
 /* Read a list of tokens that is optionally enclosed in curly braces and
- * terminated by a right paren. For all tokens starting at the one with index
- * Start, and ending at (Start+Count-1), place them into a token list, and
- * return this token list.
- */
+** terminated by a right paren. For all tokens starting at the one with index
+** Start, and ending at (Start+Count-1), place them into a token list, and
+** return this token list.
+*/
 {
 
     /* Create the token list */
@@ -176,8 +176,8 @@ static void FuncConcat (void)
     }
 
     /* We expect a closing parenthesis, but will not skip it but replace it
-     * by the string token just created.
-     */
+    ** by the string token just created.
+    */
     if (CurTok.Tok != TOK_RPAREN) {
         Error ("`)' expected");
     } else {
@@ -220,8 +220,8 @@ static void FuncIdent (void)
     }
 
     /* Check that the string contains a valid identifier. While doing so,
-     * determine if it is a cheap local, or global one.
-     */
+    ** determine if it is a cheap local, or global one.
+    */
     SB_Reset (&CurTok.SVal);
 
     /* Check for a cheap local symbol */
@@ -248,8 +248,8 @@ static void FuncIdent (void)
     }
 
     /* If anything is ok, save and skip the string. Check that the next token
-     * is a right paren, then replace the token by an identifier token.
-     */
+    ** is a right paren, then replace the token by an identifier token.
+    */
     SB_Copy (&Buf, &CurTok.SVal);
     NextTok ();
     if (CurTok.Tok != TOK_RPAREN) {
@@ -289,12 +289,12 @@ static void FuncLeft (void)
     List = CollectTokens (0, (unsigned) Count);
 
     /* Since we want to insert the list before the now current token, we have
-     * to save the current token in some way and then skip it. To do this, we
-     * will add the current token at the end of the token list (so the list
-     * will never be empty), push the token list, and then skip the current
-     * token. This will replace the current token by the first token from the
-     * list (which will be the old current token in case the list was empty).
-     */
+    ** to save the current token in some way and then skip it. To do this, we
+    ** will add the current token at the end of the token list (so the list
+    ** will never be empty), push the token list, and then skip the current
+    ** token. This will replace the current token by the first token from the
+    ** list (which will be the old current token in case the list was empty).
+    */
     AddCurTok (List);
 
     /* Insert it into the scanner feed */
@@ -320,8 +320,8 @@ static void FuncMid (void)
     ConsumeLParen ();
 
     /* Start argument. Since the start argument can get negative with
-     * expressions like ".tcount(arg)-2", we correct it to zero silently.
-     */
+    ** expressions like ".tcount(arg)-2", we correct it to zero silently.
+    */
     Start = ConstExpression ();
     if (Start < 0 || Start > 100) {
         Start = 0;
@@ -329,8 +329,8 @@ static void FuncMid (void)
     ConsumeComma ();
 
     /* Count argument. Similar as above, we will accept negative counts and
-     * correct them to zero silently.
-     */
+    ** correct them to zero silently.
+    */
     Count = ConstExpression ();
     if (Count < 0) {
         Count = 0;
@@ -341,12 +341,12 @@ static void FuncMid (void)
     List = CollectTokens ((unsigned) Start, (unsigned) Count);
 
     /* Since we want to insert the list before the now current token, we have
-     * to save the current token in some way and then skip it. To do this, we
-     * will add the current token at the end of the token list (so the list
-     * will never be empty), push the token list, and then skip the current
-     * token. This will replace the current token by the first token from the
-     * list (which will be the old current token in case the list was empty).
-     */
+    ** to save the current token in some way and then skip it. To do this, we
+    ** will add the current token at the end of the token list (so the list
+    ** will never be empty), push the token list, and then skip the current
+    ** token. This will replace the current token by the first token from the
+    ** list (which will be the old current token in case the list was empty).
+    */
     AddCurTok (List);
 
     /* Insert it into the scanner feed */
@@ -396,12 +396,12 @@ static void FuncRight (void)
     }
 
     /* Since we want to insert the list before the now current token, we have
-     * to save the current token in some way and then skip it. To do this, we
-     * will add the current token at the end of the token list (so the list
-     * will never be empty), push the token list, and then skip the current
-     * token. This will replace the current token by the first token from the
-     * list (which will be the old current token in case the list was empty).
-     */
+    ** to save the current token in some way and then skip it. To do this, we
+    ** will add the current token at the end of the token list (so the list
+    ** will never be empty), push the token list, and then skip the current
+    ** token. This will replace the current token by the first token from the
+    ** list (which will be the old current token in case the list was empty).
+    */
     AddCurTok (List);
 
     /* Insert it into the scanner feed */
@@ -474,15 +474,15 @@ static void FuncSPrintF (void)
             break;
         }
 
-        /* Since a format specifier follows, we do expect anotehr argument for
-         * the .sprintf function.
-         */
+        /* Since a format specifier follows, we do expect another argument for
+        ** the .sprintf function.
+        */
         ConsumeComma ();
 
         /* We will copy the format spec into F1 checking for the things we
-         * support, and later use xsprintf to do the actual formatting. This
-         * is easier than adding another printf implementation...
-         */
+        ** support, and later use xsprintf to do the actual formatting. This
+        ** is easier than adding another printf implementation...
+        */
         SB_Clear (&F1);
         SB_AppendChar (&F1, '%');
 
@@ -522,8 +522,8 @@ static void FuncSPrintF (void)
             case 'X':
             case 'x':
                 /* Our ints are actually longs, so we use the 'l' modifier when
-                 * calling xsprintf later. Terminate the format string.
-                 */
+                ** calling xsprintf later. Terminate the format string.
+                */
                 SB_AppendChar (&F1, 'l');
                 SB_AppendChar (&F1, SB_Get (&Format));
                 SB_Terminate (&F1);
@@ -576,8 +576,8 @@ static void FuncSPrintF (void)
                 }
 
                 /* Format this argument according to the spec. Be sure to pass
-                 * an int as the char value.
-                 */
+                ** an int as the char value.
+                */
                 SB_Printf (&R1, SB_GetConstBuf (&F1), (int) IVal);
 
                 /* Append the formatted argument to the result */
@@ -597,8 +597,8 @@ static void FuncSPrintF (void)
     SB_Terminate (&R);
 
     /* We expect a closing parenthesis, but will not skip it but replace it
-     * by the string token just created.
-     */
+    ** by the string token just created.
+    */
     if (CurTok.Tok != TOK_RPAREN) {
         Error ("`)' expected");
     } else {
@@ -636,8 +636,8 @@ static void FuncString (void)
     } else if (CurTok.Tok == TOK_NAMESPACE || CurTok.Tok == TOK_IDENT) {
 
         /* Parse a fully qualified symbol name. We cannot use
-         * ParseScopedSymName here since the name may be invalid.
-         */
+        ** ParseScopedSymName here since the name may be invalid.
+        */
         int NameSpace;
         do {
             NameSpace = (CurTok.Tok == TOK_NAMESPACE);
@@ -657,8 +657,8 @@ static void FuncString (void)
     }
 
     /* We expect a closing parenthesis, but will not skip it but replace it
-     * by the string token just created.
-     */
+    ** by the string token just created.
+    */
     if (CurTok.Tok != TOK_RPAREN) {
         Error ("`)' expected");
     } else {
@@ -680,8 +680,8 @@ void NextTok (void)
     NextRawTok ();
 
     /* In raw mode, or when output is suppressed via conditional assembly,
-     * pass the token unchanged.
-     */
+    ** pass the token unchanged.
+    */
     if (RawMode == 0 && IfCond) {
 
         /* Execute token handling functions */
@@ -787,8 +787,8 @@ void SkipUntilSep (void)
 
 void ExpectSep (void)
 /* Check if we've reached a line separator, and output an error if not. Do
- * not skip the line separator.
- */
+** not skip the line separator.
+*/
 {
     if (!TokIsSep (CurTok.Tok)) {
         ErrorSkip ("Unexpected trailing garbage characters");
@@ -799,11 +799,11 @@ void ExpectSep (void)
 
 void EnterRawTokenMode (void)
 /* Enter raw token mode. In raw mode, token handling functions are not
- * executed, but the function tokens are passed untouched to the upper
- * layer. Raw token mode is used when storing macro tokens for later
- * use.
- * Calls to EnterRawTokenMode and LeaveRawTokenMode may be nested.
- */
+** executed, but the function tokens are passed untouched to the upper
+** layer. Raw token mode is used when storing macro tokens for later
+** use.
+** Calls to EnterRawTokenMode and LeaveRawTokenMode may be nested.
+*/
 {
     ++RawMode;
 }
index b948e505439b474e934bc238cf48813a3ef4c779..68a371a0bb22e43925d29f1127d980d9dcc98ad1 100644 (file)
@@ -71,16 +71,16 @@ void SkipUntilSep (void);
 
 void ExpectSep (void);
 /* Check if we've reached a line separator, and output an error if not. Do
- * not skip the line separator.
- */
+** not skip the line separator.
+*/
 
 void EnterRawTokenMode (void);
 /* Enter raw token mode. In raw mode, token handling functions are not
- * executed, but the function tokens are passed untouched to the upper
- * layer. Raw token mode is used when storing macro tokens for later
- * use.
- * Calls to EnterRawTokenMode and LeaveRawTokenMode may be nested.
- */
+** executed, but the function tokens are passed untouched to the upper
+** layer. Raw token mode is used when storing macro tokens for later
+** use.
+** Calls to EnterRawTokenMode and LeaveRawTokenMode may be nested.
+*/
 
 void LeaveRawTokenMode (void);
 /* Leave raw token mode. */
index c0e08996ffdcfcf43f16304b44864a773cf5f559..dfa0d146eef4e29f67df0f11ac5245b12d38070c 100644 (file)
@@ -100,8 +100,8 @@ static ObjHeader Header = {
 
 static void ObjWriteError (void)
 /* Called on a write error. Will try to close and remove the file, then
- * print a fatal error.
- */
+** print a fatal error.
+*/
 {
     /* Remember the error */
     int Error = errno;
@@ -162,8 +162,8 @@ void ObjOpen (void)
     /* Do we have a name for the output file? */
     if (OutFile == 0) {
         /* We don't have an output name explicitly given, construct one from
-         * the name of the input file.
-         */
+        ** the name of the input file.
+        */
         OutFile = MakeFilename (InFile, OBJ_EXT);
     }
 
@@ -269,10 +269,10 @@ void ObjWriteVar (unsigned long V)
 /* Write a variable sized value to the file in special encoding */
 {
     /* We will write the value to the file in 7 bit chunks. If the 8th bit
-     * is clear, we're done, if it is set, another chunk follows. This will
-     * allow us to encode smaller values with less bytes, at the expense of
-     * needing 5 bytes if a 32 bit value is written to file.
-     */
+    ** is clear, we're done, if it is set, another chunk follows. This will
+    ** allow us to encode smaller values with less bytes, at the expense of
+    ** needing 5 bytes if a 32 bit value is written to file.
+    */
     do {
         unsigned char C = (V & 0x7F);
         V >>= 7;
@@ -291,9 +291,9 @@ void ObjWriteStr (const char* S)
     unsigned Len = strlen (S);
 
     /* Write the string with the length preceeded (this is easier for
-     * the reading routine than the C format since the length is known in
-     * advance).
-     */
+    ** the reading routine than the C format since the length is known in
+    ** advance).
+    */
     ObjWriteVar (Len);
     ObjWriteData (S, Len);
 }
@@ -304,9 +304,9 @@ void ObjWriteBuf (const StrBuf* S)
 /* Write a string to the object file */
 {
     /* Write the string with the length preceeded (this is easier for
-     * the reading routine than the C format since the length is known in
-     * advance).
-     */
+    ** the reading routine than the C format since the length is known in
+    ** advance).
+    */
     ObjWriteVar (SB_GetLen (S));
     ObjWriteData (SB_GetConstBuf (S), SB_GetLen (S));
 }
index 55b5cfe03e06ea064e48c250c237e07abb2b175a..0b066c7bd9cc3b38ec1bae4f7b4d6f3493fe9d4b 100644 (file)
@@ -112,12 +112,12 @@ static void DoUnexpected (void);
 
 static void DoInvalid (void);
 /* Handle a token that is invalid here, since it should have been handled on
- * a much lower level of the expression hierarchy. Getting this sort of token
- * means that the lower level code has bugs.
- * This function differs to DoUnexpected in that the latter may be triggered
- * by the user by using keywords in the wrong location. DoUnexpected is not
- * an error in the assembler itself, while DoInvalid is.
- */
+** a much lower level of the expression hierarchy. Getting this sort of token
+** means that the lower level code has bugs.
+** This function differs to DoUnexpected in that the latter may be triggered
+** by the user by using keywords in the wrong location. DoUnexpected is not
+** an error in the assembler itself, while DoInvalid is.
+*/
 
 
 
@@ -129,8 +129,8 @@ static void DoInvalid (void);
 
 static unsigned char OptionalAddrSize (void)
 /* If a colon follows, parse an optional address size spec and return it.
- * Otherwise return ADDR_SIZE_DEFAULT.
- */
+** Otherwise return ADDR_SIZE_DEFAULT.
+*/
 {
     unsigned AddrSize = ADDR_SIZE_DEFAULT;
     if (CurTok.Tok == TOK_COLON) {
@@ -183,8 +183,8 @@ static void ExportWithAssign (SymEntry* Sym, unsigned char AddrSize, unsigned Fl
 /* Allow to assign the value of an export in an .export statement */
 {
     /* The name and optional address size spec may be followed by an assignment
-     * or equal token.
-     */
+    ** or equal token.
+    */
     if (CurTok.Tok == TOK_ASSIGN || CurTok.Tok == TOK_EQ) {
 
         /* Assignment means the symbol is a label */
@@ -249,8 +249,8 @@ static void ExportImport (void (*Func) (SymEntry*, unsigned char, unsigned),
 
 static long IntArg (long Min, long Max)
 /* Read an integer argument and check a range. Accept the token "unlimited"
- * and return -1 in this case.
- */
+** and return -1 in this case.
+*/
 {
     if (CurTok.Tok == TOK_IDENT && SB_CompareStr (&CurTok.SVal, "unlimited") == 0) {
         NextTok ();
@@ -301,9 +301,9 @@ static StrBuf* GenArrayType (StrBuf* Type, unsigned SpanSize,
                              const char* ElementType,
                              unsigned ElementTypeLen)
 /* Create an array (or single data) of the given type. SpanSize is the size
- * of the span, ElementType is a string that encodes the element data type.
- * The function returns Type.
- */
+** of the span, ElementType is a string that encodes the element data type.
+** The function returns Type.
+*/
 {
     /* Get the size of the element type */
     unsigned ElementSize = GT_GET_SIZE (ElementType[0]);
@@ -504,8 +504,8 @@ static void DoAssert (void)
     NextTok ();
 
     /* We can have an optional message. If no message is present, use
-     * "Assertion failed".
-     */
+    ** "Assertion failed".
+    */
     if (CurTok.Tok == TOK_COMMA) {
 
         /* Skip the comma */
@@ -518,8 +518,8 @@ static void DoAssert (void)
         }
 
         /* Translate the message into a string id. We can then skip the input
-         * string.
-         */
+        ** string.
+        */
         Msg = GetStrBufId (&CurTok.SVal);
         NextTok ();
 
@@ -1253,14 +1253,14 @@ static void DoIncBin (void)
     fseek (F, 0, SEEK_END);
     Size = ftell (F);
 
-    /* Stat the file and remember the values. There a race condition here,
-     * since we cannot use fileno() (non standard identifier in standard
-     * header file), and therefore not fstat. When using stat with the
-     * file name, there's a risk that the file was deleted and recreated
-     * while it was open. Since mtime and size are only used to check
-     * if a file has changed in the debugger, we will ignore this problem
-     * here.
-     */
+    /* Stat the file and remember the values. There's a race condition here,
+    ** since we cannot use fileno() (non-standard identifier in standard
+    ** header file), and therefore not fstat. When using stat with the
+    ** file name, there's a risk that the file was deleted and recreated
+    ** while it was open. Since mtime and size are only used to check
+    ** if a file has changed in the debugger, we will ignore this problem
+    ** here.
+    */
     SB_Terminate (&Name);
     if (FileStat (SB_GetConstBuf (&Name), &StatBuf) != 0) {
         Fatal ("Cannot stat input file `%m%p': %s", &Name, strerror (errno));
@@ -1364,12 +1364,12 @@ static void DoInterruptor (void)
 
 static void DoInvalid (void)
 /* Handle a token that is invalid here, since it should have been handled on
- * a much lower level of the expression hierarchy. Getting this sort of token
- * means that the lower level code has bugs.
- * This function differs to DoUnexpected in that the latter may be triggered
- * by the user by using keywords in the wrong location. DoUnexpected is not
- * an error in the assembler itself, while DoInvalid is.
- */
+** a much lower level of the expression hierarchy. Getting this sort of token
+** means that the lower level code has bugs.
+** This function differs to DoUnexpected in that the latter may be triggered
+** by the user by using keywords in the wrong location. DoUnexpected is not
+** an error in the assembler itself, while DoInvalid is.
+*/
 {
     Internal ("Unexpected token: %m%p", &Keyword);
 }
@@ -1494,8 +1494,8 @@ static void DoOut (void)
         ErrorSkip ("String constant expected");
     } else {
         /* Output the string and be sure to flush the output to keep it in
-         * sync with any error messages if the output is redirected to a file.
-         */
+        ** sync with any error messages if the output is redirected to a file.
+        */
         printf ("%.*s\n",
                 (int) SB_GetLen (&CurTok.SVal),
                 SB_GetConstBuf (&CurTok.SVal));
@@ -1794,8 +1794,8 @@ static void DoSetCPU (void)
         SetCPU (CPU);
 
         /* Skip the identifier. If the CPU switch was successful, the scanner
-         * will treat the input now correctly for the new CPU.
-         */
+        ** will treat the input now correctly for the new CPU.
+        */
         NextTok ();
     }
 }
@@ -1861,10 +1861,10 @@ static void DoUnDef (void)
 /* Undefine a define style macro */
 {
     /* The function is called with the .UNDEF token in place, because we need
-     * to disable .define macro expansions before reading the next token.
-     * Otherwise the name of the macro would be expanded, so we would never
-     * see it.
-     */
+    ** to disable .define macro expansions before reading the next token.
+    ** Otherwise the name of the macro would be expanded, so we would never
+    ** see it.
+    */
     DisableDefineStyleMacros ();
     NextTok ();
     EnableDefineStyleMacros ();
index a98d0c39d4877b8a3a36263b80e316a11979590d..90aa894f7f2e93d8d231f90bd8d505bfa230fe3d 100644 (file)
@@ -55,8 +55,8 @@
 
 static TokList* CollectRepeatTokens (void)
 /* Collect all tokens inside the .REPEAT body in a token list and return
- * this list. In case of errors, NULL is returned.
- */
+** this list. In case of errors, NULL is returned.
+*/
 {
     /* Create the token list */
     TokList* List = NewTokList ();
@@ -97,8 +97,8 @@ static TokList* CollectRepeatTokens (void)
 
 static void RepeatTokenCheck (TokList* L)
 /* Called each time a token from a repeat token list is set. Is used to check
- * for and replace identifiers that are the repeat counter.
- */
+** for and replace identifiers that are the repeat counter.
+*/
 {
     if (CurTok.Tok == TOK_IDENT &&
         L->Data != 0            &&
@@ -161,8 +161,8 @@ void ParseRepeat (void)
     List->Check  = RepeatTokenCheck;
 
     /* If the list is empty, or repeat count zero, there is nothing
-     * to repeat.
-     */
+    ** to repeat.
+    */
     if (List->Count == 0 || RepCount == 0) {
         FreeTokList (List);
         goto Done;
index 79055399edd08ebe8e16727ac46faa477b86b1ff..890e1c7a33c264434a65337a12612a48bf0fc444 100644 (file)
@@ -313,8 +313,8 @@ static void UseCharSource (CharSource* S)
     S->Func->NextChar (S);
 
     /* Setup the next token so it will be skipped on the next call to
-     * NextRawTok().
-     */
+    ** NextRawTok().
+    */
     CurTok.Tok = TOK_SEP;
 }
 
@@ -378,8 +378,8 @@ static void IFNextChar (CharSource* S)
                 }
 
                 /* No more data - add an empty line to the listing. This
-                 * is a small hack needed to keep the PC output in sync.
-                 */
+                ** is a small hack needed to keep the PC output in sync.
+                */
                 NewListingLine (&EmptyStrBuf, S->V.File.Pos.Name, FCount);
                 C = EOF;
                 return;
@@ -401,9 +401,9 @@ static void IFNextChar (CharSource* S)
 
 
         /* If we come here, we have a new input line. To avoid problems
-         * with strange line terminators, remove all whitespace from the
-         * end of the line, the add a single newline.
-         */
+        ** with strange line terminators, remove all whitespace from the
+        ** end of the line, the add a single newline.
+        */
         Len = SB_GetLen (&S->V.File.Line);
         while (Len > 0 && IsSpace (SB_AtUnchecked (&S->V.File.Line, Len-1))) {
             --Len;
@@ -435,11 +435,11 @@ void IFDone (CharSource* S)
 /* Close the current input file */
 {
     /* We're at the end of an include file. Check if we have any
-     * open .IFs, or any open token lists in this file. This
-     * enforcement is artificial, using conditionals that start
-     * in one file and end in another are uncommon, and don't
-     * allowing these things will help finding errors.
-     */
+    ** open .IFs, or any open token lists in this file. This
+    ** enforcement is artificial, using conditionals that start
+    ** in one file and end in another are uncommon, and don't
+    ** allowing these things will help finding errors.
+    */
     CheckOpenIfs ();
 
     /* If we've added search paths for this file, remove them */
@@ -454,8 +454,8 @@ void IFDone (CharSource* S)
     SB_Done (&S->V.File.Line);
 
     /* Close the input file and decrement the file count. We will ignore
-     * errors here, since we were just reading from the file.
-     */
+    ** errors here, since we were just reading from the file.
+    */
     (void) fclose (S->V.File.F);
     --FCount;
 }
@@ -473,8 +473,8 @@ static const CharSourceFunctions IFFunc = {
 
 int NewInputFile (const char* Name)
 /* Open a new input file. Returns true if the file could be successfully opened
- * and false otherwise.
- */
+** and false otherwise.
+*/
 {
     int         RetCode = 0;            /* Return code. Assume an error. */
     char*       PathName = 0;
@@ -487,8 +487,8 @@ int NewInputFile (const char* Name)
 
 
     /* If this is the main file, just try to open it. If it's an include file,
-     * search for it using the include path list.
-     */
+    ** search for it using the include path list.
+    */
     if (FCount == 0) {
         /* Main file */
         F = fopen (Name, "r");
@@ -497,8 +497,8 @@ int NewInputFile (const char* Name)
         }
     } else {
         /* We are on include level. Search for the file in the include
-         * directories.
-         */
+        ** directories.
+        */
         PathName = SearchFile (IncSearchPath, Name);
         if (PathName == 0 || (F = fopen (PathName, "r")) == 0) {
             /* Not found or cannot open, print an error and bail out */
@@ -510,14 +510,14 @@ int NewInputFile (const char* Name)
         Name = PathName;
     }
 
-    /* Stat the file and remember the values. There a race condition here,
-     * since we cannot use fileno() (non standard identifier in standard
-     * header file), and therefore not fstat. When using stat with the
-     * file name, there's a risk that the file was deleted and recreated
-     * while it was open. Since mtime and size are only used to check
-     * if a file has changed in the debugger, we will ignore this problem
-     * here.
-     */
+    /* Stat the file and remember the values. There's a race condition here,
+    ** since we cannot use fileno() (non-standard identifier in standard
+    ** header file), and therefore not fstat. When using stat with the
+    ** file name, there's a risk that the file was deleted and recreated
+    ** while it was open. Since mtime and size are only used to check
+    ** if a file has changed in the debugger, we will ignore this problem
+    ** here.
+    */
     if (FileStat (Name, &Buf) != 0) {
         Fatal ("Cannot stat input file `%s': %s", Name, strerror (errno));
     }
@@ -704,8 +704,8 @@ static int CmpDotKeyword (const void* K1, const void* K2)
 
 static token_t FindDotKeyword (void)
 /* Find the dot keyword in SVal. Return the corresponding token if found,
- * return TOK_NONE if not found.
- */
+** return TOK_NONE if not found.
+*/
 {
     struct DotKeyword K;
     struct DotKeyword* R;
@@ -733,10 +733,10 @@ static token_t FindDotKeyword (void)
 
 static void ReadIdent (void)
 /* Read an identifier from the current input position into Ident. Filling SVal
- * starts at the current position with the next character in C. It is assumed
- * that any characters already filled in are ok, and the character in C is
- * checked.
- */
+** starts at the current position with the next character in C. It is assumed
+** that any characters already filled in are ok, and the character in C is
+** checked.
+*/
 {
     /* Read the identifier */
     do {
@@ -787,8 +787,8 @@ static void ReadStringConst (int StringTerm)
 
 static int Sweet16Reg (const StrBuf* Id)
 /* Check if the given identifier is a sweet16 register. Return -1 if this is
- * not the case, return the register number otherwise.
- */
+** not the case, return the register number otherwise.
+*/
 {
     unsigned RegNum;
     char Check;
@@ -960,9 +960,9 @@ Again:
             }
             if (IsXDigit (C)) {
                 /* Buf is big enough to allow any decimal and hex number to
-                 * overflow, so ignore excess digits here, they will be detected
-                 * when we convert the value.
-                 */
+                ** overflow, so ignore excess digits here, they will be detected
+                ** when we convert the value.
+                */
                 if (Digits < sizeof (Buf)) {
                     Buf[Digits++] = C;
                 }
@@ -1034,8 +1034,8 @@ Again:
                 }
 
                 /* An identifier with a dot. Check if it's a define style
-                 * macro.
-                 */
+                ** macro.
+                */
                 if ((M = FindDefine (&CurTok.SVal)) != 0) {
                     /* This is a define style macro - expand it */
                     MacExpandStart (M);
@@ -1051,8 +1051,8 @@ Again:
     }
 
     /* Indirect op for sweet16 cpu. Must check this before checking for local
-     * symbols, because these may also use the '@' symbol.
-     */
+    ** symbols, because these may also use the '@' symbol.
+    */
     if (CPU == CPU_SWEET16 && C == '@') {
         NextChar ();
         CurTok.Tok = TOK_AT;
@@ -1084,8 +1084,8 @@ Again:
         ReadIdent ();
 
         /* Check for special names. Bail out if we have identified the type of
-         * the token. Go on if the token is an identifier.
-         */
+        ** the token. Go on if the token is an identifier.
+        */
         if (SB_GetLen (&CurTok.SVal) == 1) {
             switch (toupper (SB_AtUnchecked (&CurTok.SVal, 0))) {
 
@@ -1357,9 +1357,9 @@ CharAgain:
 
         case '\'':
             /* Hack: If we allow ' as terminating character for strings, read
-             * the following stuff as a string, and check for a one character
-             * string later.
-             */
+            ** the following stuff as a string, and check for a one character
+            ** string later.
+            */
             if (LooseStringTerm) {
                 ReadStringConst ('\'');
                 if (SB_GetLen (&CurTok.SVal) == 1) {
@@ -1424,8 +1424,8 @@ CharAgain:
     }
 
     /* If we go here, we could not identify the current character. Skip it
-     * and try again.
-     */
+    ** and try again.
+    */
     Error ("Invalid input character: 0x%02X", C & 0xFF);
     NextChar ();
     goto Again;
@@ -1435,10 +1435,10 @@ CharAgain:
 
 int GetSubKey (const char** Keys, unsigned Count)
 /* Search for a subkey in a table of keywords. The current token must be an
- * identifier and all keys must be in upper case. The identifier will be
- * uppercased in the process. The function returns the index of the keyword,
- * or -1 if the keyword was not found.
- */
+** identifier and all keys must be in upper case. The identifier will be
+** uppercased in the process. The function returns the index of the keyword,
+** or -1 if the keyword was not found.
+*/
 {
     unsigned I;
 
@@ -1466,9 +1466,9 @@ int GetSubKey (const char** Keys, unsigned Count)
 
 unsigned char ParseAddrSize (void)
 /* Check if the next token is a keyword that denotes an address size specifier.
- * If so, return the corresponding address size constant, otherwise output an
- * error message and return ADDR_SIZE_DEFAULT.
- */
+** If so, return the corresponding address size constant, otherwise output an
+** error message and return ADDR_SIZE_DEFAULT.
+*/
 {
     unsigned char AddrSize;
 
index 0985028fc71c40a8236e2ccdb7e361e23a55b6d2..c445aefa6f5ffb59e371d28d495de762ff688ed2 100644 (file)
@@ -69,8 +69,8 @@ int IsIdStart (int C);
 
 int NewInputFile (const char* Name);
 /* Open a new input file. Returns true if the file could be successfully opened
- * and false otherwise.
- */
+** and false otherwise.
+*/
 
 void NewInputData (char* Text, int Malloced);
 /* Add a chunk of input data to the input stream */
@@ -86,16 +86,16 @@ void NextRawTok (void);
 
 int GetSubKey (const char** Keys, unsigned Count);
 /* Search for a subkey in a table of keywords. The current token must be an
- * identifier and all keys must be in upper case. The identifier will be
- * uppercased in the process. The function returns the index of the keyword,
- * or -1 if the keyword was not found.
- */
+** identifier and all keys must be in upper case. The identifier will be
+** uppercased in the process. The function returns the index of the keyword,
+** or -1 if the keyword was not found.
+*/
 
 unsigned char ParseAddrSize (void);
 /* Check if the next token is a keyword that denotes an address size specifier.
- * If so, return the corresponding address size constant, otherwise output an
- * error message and return ADDR_SIZE_DEFAULT.
- */
+** If so, return the corresponding address size constant, otherwise output an
+** error message and return ADDR_SIZE_DEFAULT.
+*/
 
 void InitScanner (const char* InFile);
 /* Initialize the scanner, open the given input file */
index 742bbbbcd2f79ac467635405bd8e57dae9ced0e0..35a41ffe100c0ef444b72c93e070cf04335cec96 100644 (file)
@@ -68,8 +68,8 @@
 
 
 /* If OrgPerSeg is false, all segments share the RelocMode flag and a PC
- * used when in absolute mode. OrgPerSeg may be set by .feature org_per_seg
- */
+** used when in absolute mode. OrgPerSeg may be set by .feature org_per_seg
+*/
 static int              RelocMode = 1;
 static unsigned long    AbsPC     = 0;          /* PC if in absolute mode */
 
@@ -97,8 +97,8 @@ Segment* ActiveSeg;
 
 static Segment* NewSegFromDef (SegDef* Def)
 /* Create a new segment from a segment definition. Used only internally, no
- * checks.
- */
+** checks.
+*/
 {
     /* Create a new segment */
     Segment* S = xmalloc (sizeof (*S));
@@ -233,8 +233,8 @@ unsigned long GetPC (void)
 
 void EnterAbsoluteMode (unsigned long PC)
 /* Enter absolute (non relocatable mode). Depending on the OrgPerSeg flag,
- * this will either switch the mode globally or for the current segment.
- */
+** this will either switch the mode globally or for the current segment.
+*/
 {
     if (OrgPerSeg) {
         /* Relocatable mode is switched per segment */
@@ -265,8 +265,8 @@ int GetRelocMode (void)
 
 void EnterRelocMode (void)
 /* Enter relocatable mode. Depending on the OrgPerSeg flag, this will either
- * switch the mode globally or for the current segment.
- */
+** switch the mode globally or for the current segment.
+*/
 {
     if (OrgPerSeg) {
         /* Relocatable mode is switched per segment */
@@ -281,25 +281,25 @@ void EnterRelocMode (void)
 
 void SegAlign (unsigned long Alignment, int FillVal)
 /* Align the PC segment to Alignment. If FillVal is -1, emit fill fragments
- * (the actual fill value will be determined by the linker), otherwise use
- * the given value.
- */
+** (the actual fill value will be determined by the linker), otherwise use
+** the given value.
+*/
 {
     unsigned char Data [4];
     unsigned long CombinedAlignment;
     unsigned long Count;
 
     /* The segment must have the combined alignment of all separate alignments
-     * in the source. Calculate this alignment and check it for sanity.
-     */
+    ** in the source. Calculate this alignment and check it for sanity.
+    */
     CombinedAlignment = LeastCommonMultiple (ActiveSeg->Align, Alignment);
     if (CombinedAlignment > MAX_ALIGNMENT) {
         Error ("Combined alignment for active segment is %lu which exceeds %lu",
                CombinedAlignment, MAX_ALIGNMENT);
 
         /* Avoid creating large fills for an object file that is thrown away
-         * later.
-         */
+        ** later.
+        */
         Count = 1;
 
     } else {
@@ -410,10 +410,10 @@ void SegDone (void)
                 } else if (RelaxChecks == 0) {
 
                     /* We cannot evaluate the expression now, leave the job for
-                     * the linker. However, we can check if the address size
-                     * matches the fragment size. Mismatches are errors in 
-                     * most situations.
-                     */
+                    ** the linker. However, we can check if the address size
+                    ** matches the fragment size. Mismatches are errors in 
+                    ** most situations.
+                    */
                     if ((F->Len == 1 && ED.AddrSize > ADDR_SIZE_ZP)  ||
                         (F->Len == 2 && ED.AddrSize > ADDR_SIZE_ABS) ||
                         (F->Len == 3 && ED.AddrSize > ADDR_SIZE_FAR)) {
@@ -496,9 +496,9 @@ void SetSegmentSizes (void)
 /* Set the default segment sizes according to the memory model */
 {
     /* Initialize segment sizes. The segment definitions do already contain
-     * the correct values for the default case (near), so we must only change
-     * things that should be different.
-     */
+    ** the correct values for the default case (near), so we must only change
+    ** things that should be different.
+    */
     switch (MemoryModel) {
 
         case MMODEL_NEAR:
@@ -530,8 +530,8 @@ static void WriteOneSeg (Segment* Seg)
     unsigned long EndPos;
 
     /* Remember the file position, then write a dummy for the size of the
-     * following data
-     */
+    ** following data
+    */
     unsigned long SizePos = ObjGetFilePos ();
     ObjWrite32 (0);
 
@@ -544,8 +544,8 @@ static void WriteOneSeg (Segment* Seg)
     ObjWriteVar (Seg->FragCount);               /* Number of fragments */
 
     /* Now walk through the fragment list for this segment and write the
-     * fragments.
-     */
+    ** fragments.
+    */
     Frag = Seg->Root;
     while (Frag) {
 
index d7e8b737cf0db1704978767fde771018b788daca..231e43f8313bdef88958f60cb1c66b9a8842888f 100644 (file)
@@ -131,9 +131,9 @@ INLINE unsigned char GetCurrentSegAddrSize (void)
 
 void SegAlign (unsigned long Alignment, int FillVal);
 /* Align the PC segment to Alignment. If FillVal is -1, emit fill fragments
- * (the actual fill value will be determined by the linker), otherwise use
- * the given value.
- */
+** (the actual fill value will be determined by the linker), otherwise use
+** the given value.
+*/
 
 unsigned char GetSegAddrSize (unsigned SegNum);
 /* Return the address size of the segment with the given number */
@@ -146,13 +146,13 @@ int GetRelocMode (void);
 
 void EnterAbsoluteMode (unsigned long AbsPC);
 /* Enter absolute (non relocatable mode). Depending on the OrgPerSeg flag,
- * this will either switch the mode globally or for the current segment.
- */
+** this will either switch the mode globally or for the current segment.
+*/
 
 void EnterRelocMode (void);
 /* Enter relocatable mode. Depending on the OrgPerSeg flag, this will either
- * switch the mode globally or for the current segment.
- */
+** switch the mode globally or for the current segment.
+*/
 
 void SegDone (void);
 /* Check the segments for range and other errors. Do cleanup. */
index 479a00ccfc61c4415568d13e2cf9bcf7a49ea404..9a7d4024f902df012e0a4ef95e0affaae57645b6 100644 (file)
@@ -50,8 +50,8 @@
 
 
 /* The name of the symbol used to encode the size. The name of this entry is
- * choosen so that it cannot be accessed by the user.
- */
+** choosen so that it cannot be accessed by the user.
+*/
 static const StrBuf SizeEntryName = LIT_STRBUF_INITIALIZER (".size");
 
 
@@ -64,8 +64,8 @@ static const StrBuf SizeEntryName = LIT_STRBUF_INITIALIZER (".size");
 
 int IsSizeOfSymbol (const SymEntry* Sym)
 /* Return true if the given symbol is the one that encodes the size of some
- * entity. Sym may also be a NULL pointer in which case false is returned.
- */
+** entity. Sym may also be a NULL pointer in which case false is returned.
+*/
 {
     return (Sym != 0 && SB_Compare (GetSymName (Sym), &SizeEntryName) == 0);
 }
@@ -74,8 +74,8 @@ int IsSizeOfSymbol (const SymEntry* Sym)
 
 SymEntry* FindSizeOfScope (SymTable* Scope)
 /* Get the size of a scope. The function returns the symbol table entry that
- * encodes the size or NULL if there is no such entry.
- */
+** encodes the size or NULL if there is no such entry.
+*/
 {
     return SymFind (Scope, &SizeEntryName, SYM_FIND_EXISTING);
 }
@@ -84,8 +84,8 @@ SymEntry* FindSizeOfScope (SymTable* Scope)
 
 SymEntry* FindSizeOfSymbol (SymEntry* Sym)
 /* Get the size of a symbol table entry. The function returns the symbol table
- * entry that encodes the size of the symbol or NULL if there is no such entry.
- */
+** entry that encodes the size of the symbol or NULL if there is no such entry.
+*/
 {
     return SymFindLocal (Sym, &SizeEntryName, SYM_FIND_EXISTING);
 }
@@ -94,8 +94,8 @@ SymEntry* FindSizeOfSymbol (SymEntry* Sym)
 
 SymEntry* GetSizeOfScope (SymTable* Scope)
 /* Get the size of a scope. The function returns the symbol table entry that
- * encodes the size, and will create a new entry if it does not exist.
- */
+** encodes the size, and will create a new entry if it does not exist.
+*/
 {
     return SymFind (Scope, &SizeEntryName, SYM_ALLOC_NEW);
 }
@@ -104,9 +104,9 @@ SymEntry* GetSizeOfScope (SymTable* Scope)
 
 SymEntry* GetSizeOfSymbol (SymEntry* Sym)
 /* Get the size of a symbol table entry. The function returns the symbol table
- * entry that encodes the size of the symbol and will create a new one if it
- * does not exist.
- */
+** entry that encodes the size of the symbol and will create a new one if it
+** does not exist.
+*/
 {
     return SymFindLocal (Sym, &SizeEntryName, SYM_ALLOC_NEW);
 }
index 5ca8fcd1a95a35298b6a54df9c1388e8ff1d86b2..02eb31fb0b8617ea0eaa6005705423df2c5f0213 100644 (file)
@@ -62,29 +62,29 @@ struct SymTable;
 
 int IsSizeOfSymbol (const struct SymEntry* Sym);
 /* Return true if the given symbol is the one that encodes the size of some
- * entity. Sym may also be a NULL pointer in which case false is returned.
- */
+** entity. Sym may also be a NULL pointer in which case false is returned.
+*/
 
 struct SymEntry* FindSizeOfScope (struct SymTable* Scope);
 /* Get the size of a scope. The function returns the symbol table entry that
- * encodes the size or NULL if there is no such entry.
- */
+** encodes the size or NULL if there is no such entry.
+*/
 
 struct SymEntry* FindSizeOfSymbol (struct SymEntry* Sym);
 /* Get the size of a symbol table entry. The function returns the symbol table
- * entry that encodes the size of the symbol or NULL if there is no such entry.
- */
+** entry that encodes the size of the symbol or NULL if there is no such entry.
+*/
 
 struct SymEntry* GetSizeOfScope (struct SymTable* Scope);
 /* Get the size of a scope. The function returns the symbol table entry that
- * encodes the size, and will create a new entry if it does not exist.
- */
+** encodes the size, and will create a new entry if it does not exist.
+*/
 
 struct SymEntry* GetSizeOfSymbol (struct SymEntry* Sym);
 /* Get the size of a symbol table entry. The function returns the symbol table
- * entry that encodes the size of the symbol and will create a new one if it
- * does not exist.
- */
+** entry that encodes the size of the symbol and will create a new one if it
+** does not exist.
+*/
 
 struct SymEntry* DefSizeOfScope (struct SymTable* Scope, long Size);
 /* Define the size of a scope and return the size symbol */
index 5b42d9eb509f06cbf5a4595bc25aaa2e3b086226..a4faea1218a97a0078e3c9e89ff72e93520f869b 100644 (file)
@@ -61,9 +61,9 @@ static const void* HT_GetKey (const void* Entry);
 
 static int HT_Compare (const void* Key1, const void* Key2);
 /* Compare two keys. The function must return a value less than zero if
- * Key1 is smaller than Key2, zero if both are equal, and a value greater
- * than zero if Key1 is greater then Key2.
- */
+** Key1 is smaller than Key2, zero if both are equal, and a value greater
+** than zero if Key1 is greater then Key2.
+*/
 
 
 
@@ -113,9 +113,9 @@ static const void* HT_GetKey (const void* Entry)
 
 static int HT_Compare (const void* Key1, const void* Key2)
 /* Compare two keys. The function must return a value less than zero if
- * Key1 is smaller than Key2, zero if both are equal, and a value greater
- * than zero if Key1 is greater then Key2.
- */
+** Key1 is smaller than Key2, zero if both are equal, and a value greater
+** than zero if Key1 is greater then Key2.
+*/
 {
     /* Convert both parameters to Span pointers */
     const Span* S1 = Key1;
@@ -144,8 +144,8 @@ static int HT_Compare (const void* Key1, const void* Key2)
 
 static Span* NewSpan (Segment* Seg, unsigned long Start, unsigned long End)
 /* Create a new span. The segment is set to Seg, Start and End are set to the
- * current PC of the segment.
- */
+** current PC of the segment.
+*/
 {
     /* Allocate memory */
     Span* S = xmalloc (sizeof (Span));
@@ -174,13 +174,13 @@ static void FreeSpan (Span* S)
 
 static Span* MergeSpan (Span* S)
 /* Check if we have a span with the same data as S already. If so, free S and
- * return the already existing one. If not, remember S and return it.
- */
+** return the already existing one. If not, remember S and return it.
+*/
 {
     /* Check if we have such a span already. If so use the existing
-     * one and free the one from the collection. If not, add the one to
-     * the hash table and return it.
-     */
+    ** one and free the one from the collection. If not, add the one to
+    ** the hash table and return it.
+    */
     Span* E = HT_Find (&SpanTab, S);
     if (E) {
         /* If S has a type and E not, move the type */
@@ -223,9 +223,9 @@ Span* OpenSpan (void)
 
 Span* CloseSpan (Span* S)
 /* Close the given span. Be sure to replace the passed span by the one
- * returned, since the span will get deleted if it is empty or may be
- * replaced if a duplicate exists.
- */
+** returned, since the span will get deleted if it is empty or may be
+** replaced if a duplicate exists.
+*/
 {
     /* Set the end offset */
     if (S->Start == S->Seg->PC) {
@@ -237,9 +237,9 @@ Span* CloseSpan (Span* S)
         S->End = S->Seg->PC;
 
         /* Check if we have such a span already. If so use the existing
-         * one and free the one from the collection. If not, add the one to
-         * the hash table and return it.
-         */
+        ** one and free the one from the collection. If not, add the one to
+        ** the hash table and return it.
+        */
         return MergeSpan (S);
     }
 }
@@ -248,9 +248,9 @@ Span* CloseSpan (Span* S)
 
 void OpenSpanList (Collection* Spans)
 /* Open a list of spans for all existing segments to the given collection of
- * spans. The currently active segment will be inserted first with all others
- * following.
- */
+** spans. The currently active segment will be inserted first with all others
+** following.
+*/
 {
     unsigned I;
 
@@ -275,8 +275,8 @@ void OpenSpanList (Collection* Spans)
 
 void CloseSpanList (Collection* Spans)
 /* Close a list of spans. This will add new segments to the list, mark the end
- * of existing ones, and remove empty spans from the list.
- */
+** of existing ones, and remove empty spans from the list.
+*/
 {
     unsigned I, J;
 
@@ -385,9 +385,9 @@ void WriteSpans (void)
             CHECK (S->End > S->Start);
 
             /* Write data for the span We will write the size instead of the
-             * end offset to save some bytes, since most spans are expected
-             * to be rather small.
-             */
+            ** end offset to save some bytes, since most spans are expected
+            ** to be rather small.
+            */
             ObjWriteVar (S->Seg->Num);
             ObjWriteVar (S->Start);
             ObjWriteVar (S->End - S->Start);
index 5eb3affdca279b01fab274cf0e0b5017ff11c060..633592044be8abf3579c35bac55a812aeafddc6c 100644 (file)
@@ -93,15 +93,15 @@ Span* OpenSpan (void);
 
 Span* CloseSpan (Span* S);
 /* Close the given span. Be sure to replace the passed span by the one
- * returned, since the span will get deleted if it is empty or may be
- * replaced if a duplicate exists.
- */
+** returned, since the span will get deleted if it is empty or may be
+** replaced if a duplicate exists.
+*/
 
 void OpenSpanList (Collection* Spans);
 /* Open a list of spans for all existing segments to the given collection of
- * spans. The currently active segment will be inserted first with all others
- * following.
- */
+** spans. The currently active segment will be inserted first with all others
+** following.
+*/
 
 void CloseSpanList (Collection* Spans);
 /* Close all open spans by setting PC to the current PC for the segment. */
index 683bd067ca68f7d21043cea819eecb038894b4d1..195f29ba49ba845b41fe7ce4590093837f2565c4 100644 (file)
@@ -102,9 +102,9 @@ static long DoStructInternal (long Offs, unsigned Type)
     long Size = 0;
 
     /* Outside of other structs, we need a name. Inside another struct or
-     * union, the struct may be anonymous, in which case no new lexical level
-     * is started.
-     */
+    ** union, the struct may be anonymous, in which case no new lexical level
+    ** is started.
+    */
     int Anon = (CurTok.Tok != TOK_IDENT);
     if (!Anon) {
         /* Enter a new scope, then skip the name */
@@ -137,8 +137,8 @@ static long DoStructInternal (long Offs, unsigned Type)
         if (CurTok.Tok == TOK_IDENT) {
 
             /* Beware: An identifier may also be a macro, in which case we have
-             * to start over.
-             */
+            ** to start over.
+            */
             Macro* M = FindMacro (&CurTok.SVal);
             if (M) {
                 MacExpandStart (M);
@@ -245,11 +245,11 @@ static long DoStructInternal (long Offs, unsigned Type)
     }
 
     /* If this is not a anon struct, enter a special symbol named ".size"
-     * into the symbol table of the struct that holds the size of the
-     * struct. Since the symbol starts with a dot, it cannot be accessed
-     * by user code.
-     * Leave the struct scope level.
-     */
+    ** into the symbol table of the struct that holds the size of the
+    ** struct. Since the symbol starts with a dot, it cannot be accessed
+    ** by user code.
+    ** Leave the struct scope level.
+    */
     if (!Anon) {
         /* Add a symbol */
         SymEntry* SizeSym = GetSizeOfScope (CurrentScope);
index cb2795bd3b5224012a3b5cc8188be6b3b34d4cf7..366b50ff1ffcd55f314dc89524ed310875b5a9b6 100644 (file)
@@ -107,8 +107,8 @@ int ED_IsConst (const ExprDesc* D)
 
 static int ED_IsValid (const ExprDesc* D)
 /* Return true if the expression is valid, that is, neither the ERROR nor the
- * TOO_COMPLEX flags are set.
- */
+** TOO_COMPLEX flags are set.
+*/
 {
     return ((D->Flags & (ED_ERROR | ED_TOO_COMPLEX)) == 0);
 }
@@ -164,22 +164,22 @@ static void ED_MergeAddrSize (ExprDesc* ED, const ExprDesc* Right)
 {
     if (ED->AddrSize == ADDR_SIZE_DEFAULT) {
         /* If ED is valid, ADDR_SIZE_DEFAULT gets always overridden, otherwise
-         * it takes precedence over anything else.
-         */
+        ** it takes precedence over anything else.
+        */
         if (ED_IsValid (ED)) {
             ED->AddrSize = Right->AddrSize;
         }
     } else if (Right->AddrSize == ADDR_SIZE_DEFAULT) {
         /* If Right is valid, ADDR_SIZE_DEFAULT gets always overridden,
-         * otherwise it takes precedence over anything else.
-         */
+        ** otherwise it takes precedence over anything else.
+        */
         if (!ED_IsValid (Right)) {
             ED->AddrSize = Right->AddrSize;
         }
     } else {
         /* Neither ED nor Right has a default address size, use the larger of
-         * the two.
-         */
+        ** the two.
+        */
         if (Right->AddrSize > ED->AddrSize) {
             ED->AddrSize = Right->AddrSize;
         }
@@ -190,8 +190,8 @@ static void ED_MergeAddrSize (ExprDesc* ED, const ExprDesc* Right)
 
 static ED_SymRef* ED_FindSymRef (ExprDesc* ED, SymEntry* Sym)
 /* Find a symbol reference and return it. Return NULL if the reference does
- * not exist.
- */
+** not exist.
+*/
 {
     unsigned I;
     ED_SymRef* SymRef;
@@ -207,8 +207,8 @@ static ED_SymRef* ED_FindSymRef (ExprDesc* ED, SymEntry* Sym)
 
 static ED_SecRef* ED_FindSecRef (ExprDesc* ED, unsigned Sec)
 /* Find a section reference and return it. Return NULL if the reference does
- * not exist.
- */
+** not exist.
+*/
 {
     unsigned I;
     ED_SecRef* SecRef;
@@ -224,8 +224,8 @@ static ED_SecRef* ED_FindSecRef (ExprDesc* ED, unsigned Sec)
 
 static ED_SymRef* ED_AllocSymRef (ExprDesc* ED, SymEntry* Sym)
 /* Allocate a new symbol reference and return it. The count of the new
- * reference will be set to zero, and the reference itself to Sym.
- */
+** reference will be set to zero, and the reference itself to Sym.
+*/
 {
     ED_SymRef* SymRef;
 
@@ -251,8 +251,8 @@ static ED_SymRef* ED_AllocSymRef (ExprDesc* ED, SymEntry* Sym)
 
 static ED_SecRef* ED_AllocSecRef (ExprDesc* ED, unsigned Sec)
 /* Allocate a new section reference and return it. The count of the new
- * reference will be set to zero, and the reference itself to Sec.
- */
+** reference will be set to zero, and the reference itself to Sec.
+*/
 {
     ED_SecRef* SecRef;
 
@@ -278,8 +278,8 @@ static ED_SecRef* ED_AllocSecRef (ExprDesc* ED, unsigned Sec)
 
 static ED_SymRef* ED_GetSymRef (ExprDesc* ED, SymEntry* Sym)
 /* Get a symbol reference and return it. If the symbol reference does not
- * exist, a new one is created and returned.
- */
+** exist, a new one is created and returned.
+*/
 {
     ED_SymRef* SymRef = ED_FindSymRef (ED, Sym);
     if (SymRef == 0) {
@@ -292,8 +292,8 @@ static ED_SymRef* ED_GetSymRef (ExprDesc* ED, SymEntry* Sym)
 
 static ED_SecRef* ED_GetSecRef (ExprDesc* ED, unsigned Sec)
 /* Get a section reference and return it. If the section reference does not
- * exist, a new one is created and returned.
- */
+** exist, a new one is created and returned.
+*/
 {
     ED_SecRef* SecRef = ED_FindSecRef (ED, Sec);
     if (SecRef == 0) {
@@ -416,8 +416,8 @@ static void ED_Neg (ExprDesc* D)
 
 static void ED_Move (ExprDesc* From, ExprDesc* To)
 /* Move the data from one ExprDesc to another. Old data is freed, and From
- * is prepared to that ED_Done may be called safely.
- */
+** is prepared to that ED_Done may be called safely.
+*/
 {
     /* Delete old data */
     ED_Done (To);
@@ -460,12 +460,12 @@ static unsigned char GetConstAddrSize (long Val)
 
 static void StudyBinaryExpr (ExprNode* Expr, ExprDesc* D)
 /* Study a binary expression subtree. This is a helper function for StudyExpr
- * used for operations that succeed when both operands are known and constant.
- * It evaluates the two subtrees and checks if they are constant. If they
- * aren't constant, it will set the TOO_COMPLEX flag, and merge references.
- * Otherwise the first value is returned in D->Val, the second one in D->Right,
- * so the actual operation can be done by the caller.
- */
+** used for operations that succeed when both operands are known and constant.
+** It evaluates the two subtrees and checks if they are constant. If they
+** aren't constant, it will set the TOO_COMPLEX flag, and merge references.
+** Otherwise the first value is returned in D->Val, the second one in D->Right,
+** so the actual operation can be done by the caller.
+*/
 {
     ExprDesc Right;
 
@@ -516,10 +516,10 @@ static void StudySymbol (ExprNode* Expr, ExprDesc* D)
     SymEntry* Sym = Expr->V.Sym;
 
     /* If the symbol is defined somewhere, it has an expression associated.
-     * In this case, just study the expression associated with the symbol,
-     * but mark the symbol so if we encounter it twice, we know that we have
-     * a circular reference.
-     */
+    ** In this case, just study the expression associated with the symbol,
+    ** but mark the symbol so if we encounter it twice, we know that we have
+    ** a circular reference.
+    */
     if (SymHasExpr (Sym)) {
 
         if (SymHasUserMark (Sym)) {
@@ -542,9 +542,9 @@ static void StudySymbol (ExprNode* Expr, ExprDesc* D)
             }
 
             /* If the symbol has an explicit address size, use it. This may
-             * lead to range errors later (maybe even in the linker stage), if
-             * the user lied about the address size, but for now we trust him.
-             */
+            ** lead to range errors later (maybe even in the linker stage), if
+            ** the user lied about the address size, but for now we trust him.
+            */
             AddrSize = GetSymAddrSize (Sym);
             if (AddrSize != ADDR_SIZE_DEFAULT) {
                 D->AddrSize = AddrSize;
@@ -554,8 +554,8 @@ static void StudySymbol (ExprNode* Expr, ExprDesc* D)
     } else if (SymIsImport (Sym)) {
 
         /* The symbol is an import. Track the symbols used and update the
-         * address size.
-         */
+        ** address size.
+        */
         ED_SymRef* SymRef = ED_GetSymRef (D, Sym);
         ++SymRef->Count;
         ED_UpdateAddrSize (D, GetSymAddrSize (Sym));
@@ -566,17 +566,17 @@ static void StudySymbol (ExprNode* Expr, ExprDesc* D)
         SymTable* Parent;
 
         /* The symbol is undefined. Track symbol usage but set the "too
-         * complex" flag, since we cannot evaluate the final result.
-         */
+        ** complex" flag, since we cannot evaluate the final result.
+        */
         ED_SymRef* SymRef = ED_GetSymRef (D, Sym);
         ++SymRef->Count;
         ED_Invalidate (D);
 
         /* Since the symbol may be a forward, and we may need a statement
-         * about the address size, check higher lexical levels for a symbol
-         * with the same name and use its address size if we find such a
-         * symbol which is defined.
-         */
+        ** about the address size, check higher lexical levels for a symbol
+        ** with the same name and use its address size if we find such a
+        ** symbol which is defined.
+        */
         AddrSize = GetSymAddrSize (Sym);
         Parent = GetSymParentScope (Sym);
         if (AddrSize == ADDR_SIZE_DEFAULT && Parent != 0) {
@@ -612,8 +612,8 @@ static void StudyULabel (ExprNode* Expr, ExprDesc* D)
 /* Study an unnamed label expression node */
 {
     /* If we can resolve the label, study the expression associated with it,
-     * otherwise mark the expression as too complex to evaluate.
-     */
+    ** otherwise mark the expression as too complex to evaluate.
+    */
     if (ULabCanResolve ()) {
         /* We can resolve the label */
         StudyExprInternal (ULabResolve (Expr->V.IVal), D);
@@ -707,8 +707,8 @@ static void StudyMul (ExprNode* Expr, ExprDesc* D)
     StudyExprInternal (Expr->Right, &Right);
 
     /* We can handle the operation if at least one of both operands is const
-     * and the other one is valid.
-     */
+    ** and the other one is valid.
+    */
     if (ED_IsConst (D) && ED_IsValid (&Right)) {
 
         /* Multiplicate both, result goes into Right */
@@ -1480,24 +1480,24 @@ void StudyExpr (ExprNode* Expr, ExprDesc* D)
     }
 
     /* If we don't have an address size, assign one if the expression is a
-     * constant.
-     */
+    ** constant.
+    */
     if (D->AddrSize == ADDR_SIZE_DEFAULT && ED_IsConst (D)) {
         D->AddrSize = GetConstAddrSize (D->Val);
     }
 
     /* If the expression is valid, throw away the address size and recalculate
-     * it using the data we have. This is more exact than the on-the-fly
-     * calculation done when evaluating the tree, because symbols may have
-     * been removed from the expression, and the final numeric value is now
-     * known.
-     */
+    ** it using the data we have. This is more exact than the on-the-fly
+    ** calculation done when evaluating the tree, because symbols may have
+    ** been removed from the expression, and the final numeric value is now
+    ** known.
+    */
     if (ED_IsValid (D)) {
         unsigned char AddrSize;
 
         /* If there are symbols or sections, use the largest one. If the
-         * expression resolves to a const, use the address size of the value.
-         */
+        ** expression resolves to a const, use the address size of the value.
+        */
         if (D->SymCount > 0 || D->SecCount > 0) {
 
             D->AddrSize = ADDR_SIZE_DEFAULT;
index 5eed70bebff96a4fbfba2f537a5f1de6ed740bc3..0b02aab4568e798495d8c99079dfc521ca9fe50a 100644 (file)
 
 SymTable* ParseScopedIdent (StrBuf* Name, StrBuf* FullName)
 /* Parse a (possibly scoped) identifer. The scope of the name must exist and
- * is returned as function result, while the last part (the identifier) which
- * may be either a symbol or a scope depending on the context is returned in
- * Name. FullName is a string buffer that is used to store the full name of
- * the identifier including the scope. It is used internally and may be used
- * by the caller for error messages or similar.
- */
+** is returned as function result, while the last part (the identifier) which
+** may be either a symbol or a scope depending on the context is returned in
+** Name. FullName is a string buffer that is used to store the full name of
+** the identifier including the scope. It is used internally and may be used
+** by the caller for error messages or similar.
+*/
 {
     SymTable* Scope;
 
@@ -89,8 +89,8 @@ SymTable* ParseScopedIdent (StrBuf* Name, StrBuf* FullName)
         SB_Append (FullName, Name);
 
         /* The scope must exist, so search for it starting with the current
-         * scope.
-         */
+        ** scope.
+        */
         Scope = SymFindAnyScope (CurrentScope, Name);
         if (Scope == 0) {
             /* Scope not found */
@@ -125,8 +125,8 @@ SymTable* ParseScopedIdent (StrBuf* Name, StrBuf* FullName)
         NextTok ();
 
         /* If a namespace token follows, we search for another scope, otherwise
-         * the name is a symbol and we're done.
-         */
+        ** the name is a symbol and we're done.
+        */
         if (CurTok.Tok != TOK_NAMESPACE) {
             /* Symbol */
             return Scope;
@@ -153,8 +153,8 @@ SymTable* ParseScopedIdent (StrBuf* Name, StrBuf* FullName)
 
 SymEntry* ParseScopedSymName (SymFindAction Action)
 /* Parse a (possibly scoped) symbol name, search for it in the symbol table
- * and return the symbol table entry.
- */
+** and return the symbol table entry.
+*/
 {
     StrBuf    ScopeName = STATIC_STRBUF_INITIALIZER;
     StrBuf    Ident = STATIC_STRBUF_INITIALIZER;
@@ -171,12 +171,12 @@ SymEntry* ParseScopedSymName (SymFindAction Action)
     SB_Done (&ScopeName);
 
     /* Check if the scope is valid. Errors have already been diagnosed by
-     * the routine, so just exit.
-     */
+    ** the routine, so just exit.
+    */
     if (Scope) {
         /* Search for the symbol and return it. If no scope was specified,
-         * search also in the upper levels.
-         */
+        ** search also in the upper levels.
+        */
         if (NoScope && (Action & SYM_ALLOC_NEW) == 0) {
             Sym = SymFindAny (Scope, &Ident);
         } else {
@@ -184,9 +184,9 @@ SymEntry* ParseScopedSymName (SymFindAction Action)
         }
     } else {
         /* No scope ==> no symbol. To avoid errors in the calling routine that
-         * may not expect NULL to be returned if Action contains SYM_ALLOC_NEW,
-         * create a new symbol.
-         */
+        ** may not expect NULL to be returned if Action contains SYM_ALLOC_NEW,
+        ** create a new symbol.
+        */
         if (Action & SYM_ALLOC_NEW) { 
             Sym = NewSymEntry (&Ident, SF_NONE);
         } else {
@@ -205,8 +205,8 @@ SymEntry* ParseScopedSymName (SymFindAction Action)
 
 SymTable* ParseScopedSymTable (void)
 /* Parse a (possibly scoped) symbol table (scope) name, search for it in the
- * symbol space and return the symbol table struct.
- */
+** symbol space and return the symbol table struct.
+*/
 {
     StrBuf    ScopeName = STATIC_STRBUF_INITIALIZER;
     StrBuf    Name = STATIC_STRBUF_INITIALIZER;
@@ -223,9 +223,9 @@ SymTable* ParseScopedSymTable (void)
     SB_Done (&ScopeName);
 
     /* If we got no error, search for the child scope withint the enclosing one.
-     * Beware: If no explicit parent scope was specified, search in all upper
-     * levels.
-     */
+    ** Beware: If no explicit parent scope was specified, search in all upper
+    ** levels.
+    */
     if (Scope) {
         /* Search for the last scope */
         if (NoScope) {
@@ -246,8 +246,8 @@ SymTable* ParseScopedSymTable (void)
 
 SymEntry* ParseAnySymName (SymFindAction Action)
 /* Parse a cheap local symbol or a a (possibly scoped) symbol name, search
- * for it in the symbol table and return the symbol table entry.
- */
+** for it in the symbol table and return the symbol table entry.
+*/
 {
     SymEntry* Sym;
 
index 8ea5d7d204f7da839d19d272797ea548fd62b39e..2bbe87ce7f2ed9936ea38b7a78f0a9695b06b93f 100644 (file)
@@ -61,27 +61,27 @@ struct StrBuf;
 
 struct SymTable* ParseScopedIdent (struct StrBuf* Name, struct StrBuf* FullName);
 /* Parse a (possibly scoped) identifer. The scope of the name must exist and
- * is returned as function result, while the last part (the identifier) which
- * may be either a symbol or a scope depending on the context is returned in
- * Name. FullName is a string buffer that is used to store the full name of
- * the identifier including the scope. It is used internally and may be used
- * by the caller for error messages or similar.
- */
+** is returned as function result, while the last part (the identifier) which
+** may be either a symbol or a scope depending on the context is returned in
+** Name. FullName is a string buffer that is used to store the full name of
+** the identifier including the scope. It is used internally and may be used
+** by the caller for error messages or similar.
+*/
 
 struct SymEntry* ParseScopedSymName (SymFindAction Action);
 /* Parse a (possibly scoped) symbol name, search for it in the symbol table
- * and return the symbol table entry.
- */
+** and return the symbol table entry.
+*/
 
 struct SymTable* ParseScopedSymTable (void);
 /* Parse a (possibly scoped) symbol table (scope) name, search for it in the
- * symbol space and return the symbol table struct.
- */
+** symbol space and return the symbol table struct.
+*/
 
 struct SymEntry* ParseAnySymName (SymFindAction Action);
 /* Parse a cheap local symbol or a a (possibly scoped) symbol name, search
- * for it in the symbol table and return the symbol table entry.
- */
+** for it in the symbol table and return the symbol table entry.
+*/
 
 
 
index 411f3ac333a00ae2632ab3e8eca200e95ac08d9c..f1459dca079e740f7f6df332cb021b4fb2c19af2 100644 (file)
@@ -115,12 +115,12 @@ SymEntry* NewSymEntry (const StrBuf* Name, unsigned Flags)
 
 int SymSearchTree (SymEntry* T, const StrBuf* Name, SymEntry** E)
 /* Search in the given tree for a name. If we find the symbol, the function
- * will return 0 and put the entry pointer into E. If we did not find the
- * symbol, and the tree is empty, E is set to NULL. If the tree is not empty,
- * E will be set to the last entry, and the result of the function is <0 if
- * the entry should be inserted on the left side, and >0 if it should get
- * inserted on the right side.
- */
+** will return 0 and put the entry pointer into E. If we did not find the
+** symbol, and the tree is empty, E is set to NULL. If the tree is not empty,
+** E will be set to the last entry, and the result of the function is <0 if
+** the entry should be inserted on the left side, and >0 if it should get
+** inserted on the right side.
+*/
 {
     /* Is there a tree? */
     if (T == 0) {
@@ -196,8 +196,8 @@ static void SymReplaceExprRefs (SymEntry* S)
         CHECK (E->Op == EXPR_SYMBOL && E->V.Sym == S);
 
         /* We cannot touch the root node, since there are pointers to it.
-         * Replace it by a literal node.
-         */
+        ** Replace it by a literal node.
+        */
         E->Op = EXPR_LITERAL;
         E->V.IVal = Val;
     }
@@ -234,8 +234,8 @@ void SymDef (SymEntry* S, ExprNode* Expr, unsigned char AddrSize, unsigned Flags
                 return;
             }
             /* Delete the current symbol expression, since it will get
-             * replaced
-             */
+            ** replaced
+            */
             FreeExpr (S->Expr);
             S->Expr = 0;
         }
@@ -255,17 +255,17 @@ void SymDef (SymEntry* S, ExprNode* Expr, unsigned char AddrSize, unsigned Flags
     S->Expr = Expr;
 
     /* In case of a variable symbol, walk over all expressions containing
-     * this symbol and replace the (sub-)expression by the literal value of
-     * the tree. Be sure to replace the expression node in place, since there
-     * may be pointers to it.
-     */
+    ** this symbol and replace the (sub-)expression by the literal value of
+    ** the tree. Be sure to replace the expression node in place, since there
+    ** may be pointers to it.
+    */
     if (Flags & SF_VAR) {
         SymReplaceExprRefs (S);
     }
 
     /* If the symbol is marked as global, export it. Address size is checked
-     * below.
-     */
+    ** below.
+    */
     if (S->Flags & SF_GLOBAL) {
         S->Flags = (S->Flags & ~SF_GLOBAL) | SF_EXPORT;
         ReleaseFullLineInfo (&S->DefLines);
@@ -326,15 +326,15 @@ void SymImport (SymEntry* S, unsigned char AddrSize, unsigned Flags)
     }
 
     /* If no address size is given, use the address size of the enclosing
-     * segment.
-     */
+    ** segment.
+    */
     if (AddrSize == ADDR_SIZE_DEFAULT) {
         AddrSize = GetCurrentSegAddrSize ();
     }
 
     /* If the symbol is marked as import or global, check the address size,
-     * then do silently remove the global flag.
-     */
+    ** then do silently remove the global flag.
+    */
     if (S->Flags & SF_IMPORT) {
         if ((Flags & SF_FORCED) != (S->Flags & SF_FORCED)) {
             Error ("Redeclaration mismatch for symbol `%m%p'", GetSymName (S));
@@ -355,9 +355,9 @@ void SymImport (SymEntry* S, unsigned char AddrSize, unsigned Flags)
     S->AddrSize = AddrSize;
 
     /* Mark the position of the import as the position of the definition.
-     * Please note: In case of multiple .global or .import statements, the line
-     * infos add up.
-     */
+    ** Please note: In case of multiple .global or .import statements, the line
+    ** infos add up.
+    */
     GetFullLineInfo (&S->DefLines);
 }
 
@@ -379,8 +379,8 @@ void SymExport (SymEntry* S, unsigned char AddrSize, unsigned Flags)
     }
 
     /* If the symbol was marked as global before, remove the global flag and
-     * proceed, but check the address size.
-     */
+    ** proceed, but check the address size.
+    */
     if (S->Flags & SF_GLOBAL) {
         if (AddrSize != S->ExportSize) {
             Error ("Address size mismatch for symbol `%m%p'", GetSymName (S));
@@ -388,14 +388,14 @@ void SymExport (SymEntry* S, unsigned char AddrSize, unsigned Flags)
         S->Flags &= ~SF_GLOBAL;
 
         /* .GLOBAL remembers line infos in case an .IMPORT follows. We have
-         * to remove these here.
-         */
+        ** to remove these here.
+        */
         ReleaseFullLineInfo (&S->DefLines);
     }
 
     /* If the symbol was already marked as an export, but wasn't defined
-     * before, the address sizes in both definitions must match.
-     */
+    ** before, the address sizes in both definitions must match.
+    */
     if ((S->Flags & (SF_EXPORT|SF_DEFINED)) == SF_EXPORT) {
         if (S->ExportSize != AddrSize) {
             Error ("Address size mismatch for symbol `%m%p'", GetSymName (S));
@@ -404,8 +404,8 @@ void SymExport (SymEntry* S, unsigned char AddrSize, unsigned Flags)
     S->ExportSize = AddrSize;
 
     /* If the symbol is already defined, check symbol size against the
-     * exported size.
-     */
+    ** exported size.
+    */
     if (S->Flags & SF_DEFINED) {
         if (S->ExportSize == ADDR_SIZE_DEFAULT) {
             /* No export size given, use the real size of the symbol */
@@ -429,8 +429,8 @@ void SymExport (SymEntry* S, unsigned char AddrSize, unsigned Flags)
 
 void SymGlobal (SymEntry* S, unsigned char AddrSize, unsigned Flags)
 /* Mark the given symbol as a global symbol, that is, as a symbol that is
- * either imported or exported.
- */
+** either imported or exported.
+*/
 {
     if (S->Flags & SF_VAR) {
         /* Variable symbols cannot be exported or imported */
@@ -439,8 +439,8 @@ void SymGlobal (SymEntry* S, unsigned char AddrSize, unsigned Flags)
     }
 
     /* If the symbol is already marked as import, the address size must match.
-     * Apart from that, ignore the global declaration.
-     */
+    ** Apart from that, ignore the global declaration.
+    */
     if (S->Flags & SF_IMPORT) {
         if (AddrSize == ADDR_SIZE_DEFAULT) {
             /* Use the size of the current segment */
@@ -453,8 +453,8 @@ void SymGlobal (SymEntry* S, unsigned char AddrSize, unsigned Flags)
     }
 
     /* If the symbol is already an export: If it is not defined, the address
-     * sizes must match.
-     */
+    ** sizes must match.
+    */
     if (S->Flags & SF_EXPORT) {
         if ((S->Flags & SF_DEFINED) == 0) {
             /* Symbol is undefined */
@@ -471,9 +471,9 @@ void SymGlobal (SymEntry* S, unsigned char AddrSize, unsigned Flags)
     }
 
     /* If the symbol is already marked as global, the address size must match.
-     * Use the ExportSize here, since it contains the actual address size
-     * passed to this function.
-     */
+    ** Use the ExportSize here, since it contains the actual address size
+    ** passed to this function.
+    */
     if (S->Flags & SF_GLOBAL) {
         if (AddrSize != S->ExportSize) {
             Error ("Address size mismatch for symbol `%m%p'", GetSymName (S));
@@ -482,10 +482,10 @@ void SymGlobal (SymEntry* S, unsigned char AddrSize, unsigned Flags)
     }
 
     /* If we come here, the symbol was neither declared as export, import or
-     * global before. Check if it is already defined, in which case it will
-     * become an export. If it is not defined, mark it as global and remember
-     * the given address sizes.
-     */
+    ** global before. Check if it is already defined, in which case it will
+    ** become an export. If it is not defined, mark it as global and remember
+    ** the given address sizes.
+    */
     if (S->Flags & SF_DEFINED) {
         /* The symbol is defined, export it */
         S->ExportSize = AddrSize;
@@ -501,9 +501,9 @@ void SymGlobal (SymEntry* S, unsigned char AddrSize, unsigned Flags)
         S->Flags |= (SF_EXPORT | Flags);
     } else {
         /* Since we don't know if the symbol will get exported or imported,
-         * remember two different address sizes: One for an import in AddrSize,
-         * and the other one for an export in ExportSize.
-         */
+        ** remember two different address sizes: One for an import in AddrSize,
+        ** and the other one for an export in ExportSize.
+        */
         S->AddrSize = AddrSize;
         if (S->AddrSize == ADDR_SIZE_DEFAULT) {
             /* Use the size of the current segment */
@@ -513,8 +513,8 @@ void SymGlobal (SymEntry* S, unsigned char AddrSize, unsigned Flags)
         S->Flags |= (SF_GLOBAL | Flags);
 
         /* Remember the current location as location of definition in case
-         * an .IMPORT follows later.
-         */
+        ** an .IMPORT follows later.
+        */
         GetFullLineInfo (&S->DefLines);
     }
 }
@@ -523,8 +523,8 @@ void SymGlobal (SymEntry* S, unsigned char AddrSize, unsigned Flags)
 
 void SymConDes (SymEntry* S, unsigned char AddrSize, unsigned Type, unsigned Prio)
 /* Mark the given symbol as a module constructor/destructor. This will also
- * mark the symbol as an export. Initializers may never be zero page symbols.
- */
+** mark the symbol as an export. Initializers may never be zero page symbols.
+*/
 {
     /* Check the parameters */
 #if (CD_TYPE_MIN != 0)
@@ -547,9 +547,9 @@ void SymConDes (SymEntry* S, unsigned char AddrSize, unsigned Type, unsigned Pri
     }
 
     /* If the symbol was already marked as an export or global, check if
-     * this was done specifiying the same address size. In case of a global
-     * declaration, silently remove the global flag.
-     */
+    ** this was done specifiying the same address size. In case of a global
+    ** declaration, silently remove the global flag.
+    */
     if (S->Flags & (SF_EXPORT | SF_GLOBAL)) {
         if (S->ExportSize != AddrSize) {
             Error ("Address size mismatch for symbol `%m%p'", GetSymName (S));
@@ -559,8 +559,8 @@ void SymConDes (SymEntry* S, unsigned char AddrSize, unsigned Type, unsigned Pri
     S->ExportSize = AddrSize;
 
     /* If the symbol is already defined, check symbol size against the
-     * exported size.
-     */
+    ** exported size.
+    */
     if (S->Flags & SF_DEFINED) {
         if (S->ExportSize == ADDR_SIZE_DEFAULT) {
             /* Use the real size of the symbol */
@@ -571,8 +571,8 @@ void SymConDes (SymEntry* S, unsigned char AddrSize, unsigned Type, unsigned Pri
     }
 
     /* If the symbol was already declared as a condes, check if the new
-     * priority value is the same as the old one.
-     */
+    ** priority value is the same as the old one.
+    */
     if (S->ConDesPrio[Type] != CD_PRIO_NONE) {
         if (S->ConDesPrio[Type] != Prio) {
             Error ("Redeclaration mismatch for symbol `%m%p'", GetSymName (S));
@@ -593,10 +593,10 @@ void SymConDes (SymEntry* S, unsigned char AddrSize, unsigned Type, unsigned Pri
 
 void SymGuessedAddrSize (SymEntry* Sym, unsigned char AddrSize)
 /* Mark the address size of the given symbol as guessed. The address size
- * passed as argument is the one NOT used, because the actual address size
- * wasn't known. Example: Zero page addressing was not used because symbol
- * is undefined, and absolute addressing was available.
- */
+** passed as argument is the one NOT used, because the actual address size
+** wasn't known. Example: Zero page addressing was not used because symbol
+** is undefined, and absolute addressing was available.
+*/
 {
     /* We must have a valid address size passed */
     PRECONDITION (AddrSize != ADDR_SIZE_DEFAULT);
@@ -619,8 +619,8 @@ void SymGuessedAddrSize (SymEntry* Sym, unsigned char AddrSize)
 
 void SymExportFromGlobal (SymEntry* S)
 /* Called at the end of assembly. Converts a global symbol that is defined
- * into an export.
- */
+** into an export.
+*/
 {
     /* Remove the global flag and make the symbol an export */
     S->Flags &= ~SF_GLOBAL;
@@ -631,8 +631,8 @@ void SymExportFromGlobal (SymEntry* S)
 
 void SymImportFromGlobal (SymEntry* S)
 /* Called at the end of assembly. Converts a global symbol that is undefined
- * into an import.
- */
+** into an import.
+*/
 {
     /* Remove the global flag and make it an import */
     S->Flags &= ~SF_GLOBAL;
@@ -643,8 +643,8 @@ void SymImportFromGlobal (SymEntry* S)
 
 int SymIsConst (const SymEntry* S, long* Val)
 /* Return true if the given symbol has a constant value. If Val is not NULL
- * and the symbol has a constant value, store it's value there.
- */
+** and the symbol has a constant value, store it's value there.
+*/
 {
     /* Check for constness */
     return (SymHasExpr (S) && IsConstExpr (S->Expr, Val));
@@ -654,16 +654,16 @@ int SymIsConst (const SymEntry* S, long* Val)
 
 SymTable* GetSymParentScope (SymEntry* S)
 /* Get the parent scope of the symbol (not the one it is defined in). Return
- * NULL if the symbol is a cheap local, or defined on global level.
- */
+** NULL if the symbol is a cheap local, or defined on global level.
+*/
 {
     if ((S->Flags & SF_LOCAL) != 0) {
         /* This is a cheap local symbol */
         return 0;
     } else if (S->Sym.Tab == 0) {
         /* Symbol not in a table. This may happen if there have been errors
-         * before. Return NULL in this case to avoid further errors.
-         */
+        ** before. Return NULL in this case to avoid further errors.
+        */
         return 0;
     } else {
         /* This is a global symbol */
@@ -684,8 +684,8 @@ struct ExprNode* GetSymExpr (SymEntry* S)
 
 const struct ExprNode* SymResolve (const SymEntry* S)
 /* Helper function for DumpExpr. Resolves a symbol into an expression or return
- * NULL. Do not call in other contexts!
- */
+** NULL. Do not call in other contexts!
+*/
 {
     return SymHasExpr (S)? S->Expr : 0;
 }
@@ -694,8 +694,8 @@ const struct ExprNode* SymResolve (const SymEntry* S)
 
 long GetSymVal (SymEntry* S)
 /* Return the value of a symbol assuming it's constant. FAIL will be called
- * in case the symbol is undefined or not constant.
- */
+** in case the symbol is undefined or not constant.
+*/
 {
     long Val;
     CHECK (S != 0 && SymHasExpr (S) && IsConstExpr (GetSymExpr (S), &Val));
@@ -724,10 +724,10 @@ unsigned GetSymExportId (const SymEntry* S)
 
 unsigned GetSymInfoFlags (const SymEntry* S, long* ConstVal)
 /* Return a set of flags used when writing symbol information into a file.
- * If the SYM_CONST bit is set, ConstVal will contain the constant value
- * of the symbol. The result does not include the condes count.
- * See common/symdefs.h for more information.
- */
+** If the SYM_CONST bit is set, ConstVal will contain the constant value
+** of the symbol. The result does not include the condes count.
+** See common/symdefs.h for more information.
+*/
 {
     /* Setup info flags */
     unsigned Flags = 0;
index a5900bcd0b6bf7e41efd11ceeb1e17eafba6480f..5ac8f9c41160d8dd8db7a98e445900f8303b1ab5 100644 (file)
@@ -92,11 +92,11 @@ struct SymEntry {
     Collection          DefLines;       /* Line infos for definition */
     Collection          RefLines;       /* Line infos for references */
     FilePos*            GuessedUse[1];  /* File position where symbol
-                                         * address size was guessed, and the
-                                         * smallest possible addressing was NOT
-                                         * used. Currently only for zero page
-                                         * addressing
-                                         */
+                                        ** address size was guessed, and the
+                                        ** smallest possible addressing was NOT
+                                        ** used. Currently only for zero page
+                                        ** addressing
+                                        */
     struct HLLDbgSym*   HLLSym;         /* Symbol from high level language */
     unsigned            Flags;          /* Symbol flags */
     unsigned            DebugSymId;     /* Debug symbol id */
@@ -130,12 +130,12 @@ SymEntry* NewSymEntry (const StrBuf* Name, unsigned Flags);
 
 int SymSearchTree (SymEntry* T, const StrBuf* Name, SymEntry** E);
 /* Search in the given tree for a name. If we find the symbol, the function
- * will return 0 and put the entry pointer into E. If we did not find the
- * symbol, and the tree is empty, E is set to NULL. If the tree is not empty,
- * E will be set to the last entry, and the result of the function is <0 if
- * the entry should be inserted on the left side, and >0 if it should get
- * inserted on the right side.
- */
+** will return 0 and put the entry pointer into E. If we did not find the
+** symbol, and the tree is empty, E is set to NULL. If the tree is not empty,
+** E will be set to the last entry, and the result of the function is <0 if
+** the entry should be inserted on the left side, and >0 if it should get
+** inserted on the right side.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE void SymAddExprRef (SymEntry* Sym, struct ExprNode* Expr)
@@ -174,30 +174,30 @@ void SymExport (SymEntry* Sym, unsigned char AddrSize, unsigned Flags);
 
 void SymGlobal (SymEntry* Sym, unsigned char AddrSize, unsigned Flags);
 /* Mark the given symbol as a global symbol, that is, as a symbol that is
- * either imported or exported.
- */
+** either imported or exported.
+*/
 
 void SymConDes (SymEntry* Sym, unsigned char AddrSize, unsigned Type, unsigned Prio);
 /* Mark the given symbol as a module constructor/destructor. This will also
- * mark the symbol as an export. Initializers may never be zero page symbols.
- */
+** mark the symbol as an export. Initializers may never be zero page symbols.
+*/
 
 void SymGuessedAddrSize (SymEntry* Sym, unsigned char AddrSize);
 /* Mark the address size of the given symbol as guessed. The address size
- * passed as argument is the one NOT used, because the actual address size
- * wasn't known. Example: Zero page addressing was not used because symbol
- * is undefined, and absolute addressing was available.
- */
+** passed as argument is the one NOT used, because the actual address size
+** wasn't known. Example: Zero page addressing was not used because symbol
+** is undefined, and absolute addressing was available.
+*/
 
 void SymExportFromGlobal (SymEntry* S);
 /* Called at the end of assembly. Converts a global symbol that is defined
- * into an export.
- */
+** into an export.
+*/
 
 void SymImportFromGlobal (SymEntry* S);
 /* Called at the end of assembly. Converts a global symbol that is undefined
- * into an import.
- */
+** into an import.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE int SymIsDef (const SymEntry* S)
@@ -254,8 +254,8 @@ INLINE int SymIsVar (const SymEntry* S)
 
 int SymIsConst (const SymEntry* Sym, long* Val);
 /* Return true if the given symbol has a constant value. If Val is not NULL
- * and the symbol has a constant value, store it's value there.
- */
+** and the symbol has a constant value, store it's value there.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE int SymHasExpr (const SymEntry* S)
@@ -303,16 +303,16 @@ INLINE int SymHasUserMark (SymEntry* S)
 
 struct SymTable* GetSymParentScope (SymEntry* S);
 /* Get the parent scope of the symbol (not the one it is defined in). Return
- * NULL if the symbol is a cheap local, or defined on global level.
- */
+** NULL if the symbol is a cheap local, or defined on global level.
+*/
 
 struct ExprNode* GetSymExpr (SymEntry* Sym);
 /* Get the expression for a non-const symbol */
 
 const struct ExprNode* SymResolve (const SymEntry* Sym);
 /* Helper function for DumpExpr. Resolves a symbol into an expression or return
- * NULL. Do not call in other contexts!
- */
+** NULL. Do not call in other contexts!
+*/
 
 #if defined(HAVE_INLINE)
 INLINE const StrBuf* GetSymName (const SymEntry* S)
@@ -327,8 +327,8 @@ INLINE const StrBuf* GetSymName (const SymEntry* S)
 #if defined(HAVE_INLINE)
 INLINE unsigned char GetSymAddrSize (const SymEntry* S)
 /* Return the address size of the symbol. Beware: This function will just
- * return the AddrSize member, it will not look at the expression!
- */
+** return the AddrSize member, it will not look at the expression!
+*/
 {
     return S->AddrSize;
 }
@@ -338,8 +338,8 @@ INLINE unsigned char GetSymAddrSize (const SymEntry* S)
 
 long GetSymVal (SymEntry* Sym);
 /* Return the value of a symbol assuming it's constant. FAIL will be called
- * in case the symbol is undefined or not constant.
- */
+** in case the symbol is undefined or not constant.
+*/
 
 unsigned GetSymImportId (const SymEntry* Sym);
 /* Return the import id for the given symbol */
@@ -349,10 +349,10 @@ unsigned GetSymExportId (const SymEntry* Sym);
 
 unsigned GetSymInfoFlags (const SymEntry* Sym, long* ConstVal);
 /* Return a set of flags used when writing symbol information into a file.
- * If the SYM_CONST bit is set, ConstVal will contain the constant value
- * of the symbol. The result does not include the condes count.
- * See common/symdefs.h for more information.
- */
+** If the SYM_CONST bit is set, ConstVal will contain the constant value
+** of the symbol. The result does not include the condes count.
+** See common/symdefs.h for more information.
+*/
 
 
 
index 93d02c38a916ac51a7fd468f56a913a8f99069a4..7e21dd30910d6b0de4712e203fd4c230aa706bc6 100644 (file)
@@ -207,8 +207,8 @@ void SymEnterLevel (const StrBuf* ScopeName, unsigned char Type,
     }
 
     /* If we have a current scope, search for the given name and create a
-     * new one if it doesn't exist. If this is the root scope, just create it.
-     */
+    ** new one if it doesn't exist. If this is the root scope, just create it.
+    */
     if (CurrentScope) {
 
         /* Search for the scope, create a new one */
@@ -230,11 +230,11 @@ void SymEnterLevel (const StrBuf* ScopeName, unsigned char Type,
     CurrentScope->Label    = ScopeLabel;
 
     /* If this is a scope that allows to emit data into segments, add spans
-     * for all currently existing segments. Doing this for just a few scope
-     * types is not really necessary but an optimization, because it does not
-     * allocate memory for useless data (unhandled types here don't occupy
-     * space in any segment).
-     */
+    ** for all currently existing segments. Doing this for just a few scope
+    ** types is not really necessary but an optimization, because it does not
+    ** allocate memory for useless data (unhandled types here don't occupy
+    ** space in any segment).
+    */
     if (CurrentScope->Type <= SCOPE_HAS_DATA) {
         OpenSpanList (&CurrentScope->Spans);
     }
@@ -246,17 +246,17 @@ void SymLeaveLevel (void)
 /* Leave the current lexical level */
 {
     /* If this is a scope that allows to emit data into segments, close the
-     * open the spans.
-     */
+    ** open the spans.
+    */
     if (CurrentScope->Type <= SCOPE_HAS_DATA) {
         CloseSpanList (&CurrentScope->Spans);
     }
 
     /* If we have spans, the first one is the segment that was active, when the
-     * scope was opened. Set the size of the scope to the number of data bytes
-     * emitted into this segment. If we have an owner symbol set the size of
-     * this symbol, too.
-     */
+    ** scope was opened. Set the size of the scope to the number of data bytes
+    ** emitted into this segment. If we have an owner symbol set the size of
+    ** this symbol, too.
+    */
     if (CollCount (&CurrentScope->Spans) > 0) {
         const Span* S = CollAtUnchecked (&CurrentScope->Spans, 0);
         unsigned long Size = GetSpanSize (S);
@@ -304,9 +304,9 @@ SymTable* SymFindScope (SymTable* Parent, const StrBuf* Name, SymFindAction Acti
 
 SymTable* SymFindAnyScope (SymTable* Parent, const StrBuf* Name)
 /* Find a scope in the given or any of its parent scopes. The function will
- * never create a new symbol, since this can only be done in one specific
- * scope.
- */
+** never create a new symbol, since this can only be done in one specific
+** scope.
+*/
 {
     SymTable* Scope;
     do {
@@ -325,9 +325,9 @@ SymTable* SymFindAnyScope (SymTable* Parent, const StrBuf* Name)
 
 SymEntry* SymFindLocal (SymEntry* Parent, const StrBuf* Name, SymFindAction Action)
 /* Find a cheap local symbol. If Action contains SYM_ALLOC_NEW and the entry is
- * not found, create a new one. Return the entry found, or the new entry
- * created, or - in case Action is SYM_FIND_EXISTING - return 0.
- */
+** not found, create a new one. Return the entry found, or the new entry
+** created, or - in case Action is SYM_FIND_EXISTING - return 0.
+*/
 
 {
     SymEntry* S;
@@ -375,10 +375,10 @@ SymEntry* SymFindLocal (SymEntry* Parent, const StrBuf* Name, SymFindAction Acti
 
 SymEntry* SymFind (SymTable* Scope, const StrBuf* Name, SymFindAction Action)
 /* Find a new symbol table entry in the given table. If Action contains
- * SYM_ALLOC_NEW and the entry is not found, create a new one. Return the
- * entry found, or the new entry created, or - in case Action is
- * SYM_FIND_EXISTING - return 0.
- */
+** SYM_ALLOC_NEW and the entry is not found, create a new one. Return the
+** entry found, or the new entry created, or - in case Action is
+** SYM_FIND_EXISTING - return 0.
+*/
 {
     SymEntry* S;
 
@@ -399,9 +399,9 @@ SymEntry* SymFind (SymTable* Scope, const StrBuf* Name, SymFindAction Action)
     if (Action & SYM_ALLOC_NEW) {
 
         /* Otherwise create a new entry, insert and return it. If the scope is
-         * already closed, mark the symbol as fixed so it won't be resolved
-         * by a symbol in the enclosing scopes later.
-         */
+        ** already closed, mark the symbol as fixed so it won't be resolved
+        ** by a symbol in the enclosing scopes later.
+        */
         SymEntry* N = NewSymEntry (Name, SF_NONE);
         if (SymTabIsClosed (Scope)) {
             N->Flags |= SF_FIXED;
@@ -427,9 +427,9 @@ SymEntry* SymFind (SymTable* Scope, const StrBuf* Name, SymFindAction Action)
 
 SymEntry* SymFindAny (SymTable* Scope, const StrBuf* Name)
 /* Find a symbol in the given or any of its parent scopes. The function will
- * never create a new symbol, since this can only be done in one specific
- * scope.
- */
+** never create a new symbol, since this can only be done in one specific
+** scope.
+*/
 {
     /* Generate the name hash */
     unsigned Hash = HashBuf (Name);
@@ -438,9 +438,9 @@ SymEntry* SymFindAny (SymTable* Scope, const StrBuf* Name)
     SymEntry* Sym;
     do {
         /* Search in the current table. Ignore entries flagged with SF_UNUSED,
-         * because for such symbols there is a real entry in one of the parent
-         * scopes.
-         */
+        ** because for such symbols there is a real entry in one of the parent
+        ** scopes.
+        */
         if (SymSearchTree (Scope->Table[Hash % Scope->TableSlots], Name, &Sym) == 0) {
             if (Sym->Flags & SF_UNUSED) {
                 Sym = 0;
@@ -467,15 +467,15 @@ static void SymCheckUndefined (SymEntry* S)
 /* Handle an undefined symbol */
 {
     /* Undefined symbol. It may be...
-     *
-     *   - An undefined symbol in a nested lexical level. If the symbol is not
-     *     fixed to this level, search for the symbol in the higher levels and
-     *     make the entry a trampoline entry if we find one.
-     *
-     *   - If the symbol is not found, it is a real undefined symbol. If the
-     *     AutoImport flag is set, make it an import. If the AutoImport flag is
-     *     not set, it's an error.
-     */
+    **
+    **   - An undefined symbol in a nested lexical level. If the symbol is not
+    **     fixed to this level, search for the symbol in the higher levels and
+    **     make the entry a trampoline entry if we find one.
+    **
+    **   - If the symbol is not found, it is a real undefined symbol. If the
+    **     AutoImport flag is set, make it an import. If the AutoImport flag is
+    **     not set, it's an error.
+    */
     SymEntry* Sym = 0;
     if ((S->Flags & SF_FIXED) == 0) {
         SymTable* Tab = GetSymParentScope (S);
@@ -483,8 +483,8 @@ static void SymCheckUndefined (SymEntry* S)
             Sym = SymFind (Tab, GetStrBuf (S->Name), SYM_FIND_EXISTING | SYM_CHECK_ONLY);
             if (Sym && (Sym->Flags & (SF_DEFINED | SF_IMPORT)) != 0) {
                 /* We've found a symbol in a higher level that is
-                 * either defined in the source, or an import.
-                 */
+                ** either defined in the source, or an import.
+                */
                  break;
             }
             /* No matching symbol found in this level. Look further */
@@ -495,9 +495,9 @@ static void SymCheckUndefined (SymEntry* S)
     if (Sym) {
 
         /* We found the symbol in a higher level. Transfer the flags and
-         * address size from the local symbol to that in the higher level
-         * and check for problems.
-         */
+        ** address size from the local symbol to that in the higher level
+        ** and check for problems.
+        */
         if (S->Flags & SF_EXPORT) {
             if (Sym->Flags & SF_IMPORT) {
                 /* The symbol is already marked as import */
@@ -574,13 +574,13 @@ void SymCheck (void)
     }
 
     /* First pass: Walk through all symbols, checking for undefined's and
-     * changing them to trampoline symbols or make them imports.
-     */
+    ** changing them to trampoline symbols or make them imports.
+    */
     S = SymList;
     while (S) {
         /* If the symbol is marked as global, mark it as export, if it is
-         * already defined, otherwise mark it as import.
-         */
+        ** already defined, otherwise mark it as import.
+        */
         if (S->Flags & SF_GLOBAL) {
             if (S->Flags & SF_DEFINED) {
                 SymExportFromGlobal (S);
@@ -600,10 +600,10 @@ void SymCheck (void)
     }
 
     /* Second pass: Walk again through the symbols. Count exports and imports
-     * and set address sizes where this has not happened before. Ignore
-     * undefined's, since we handled them in the last pass, and ignore unused
-     * symbols, since we handled them in the last pass, too.
-     */
+    ** and set address sizes where this has not happened before. Ignore
+    ** undefined's, since we handled them in the last pass, and ignore unused
+    ** symbols, since we handled them in the last pass, too.
+    */
     S = SymList;
     while (S) {
         if ((S->Flags & SF_UNUSED) == 0 &&
@@ -639,8 +639,8 @@ void SymCheck (void)
             }
 
             /* If the symbol is defined but has an unknown address size,
-             * recalculate it.
-             */
+            ** recalculate it.
+            */
             if (SymHasExpr (S) && S->AddrSize == ADDR_SIZE_DEFAULT) {
                 ExprDesc ED;
                 ED_Init (&ED);
@@ -663,9 +663,9 @@ void SymCheck (void)
             }
 
             /* If the address size of the symbol was guessed, check the guess
-             * against the actual address size and print a warning if the two
-             * differ.
-             */
+            ** against the actual address size and print a warning if the two
+            ** differ.
+            */
             if (S->AddrSize != ADDR_SIZE_DEFAULT) {
                 /* Do we have data for this address size? */
                 if (S->AddrSize <= sizeof (S->GuessedUse) / sizeof (S->GuessedUse[0])) {
@@ -725,10 +725,10 @@ void WriteImports (void)
     ObjWriteVar (ImportCount);
 
     /* Walk throught list and write all valid imports to the file. An import
-     * is considered valid, if it is either referenced, or the forced bit is
-     * set. Otherwise, the import is ignored (no need to link in something
-     * that isn't used).
-     */
+    ** is considered valid, if it is either referenced, or the forced bit is
+    ** set. Otherwise, the import is ignored (no need to link in something
+    ** that isn't used).
+    */
     S = SymList;
     while (S) {
         if ((S->Flags & (SF_UNUSED | SF_IMPORT)) == SF_IMPORT &&
@@ -770,8 +770,8 @@ void WriteExports (void)
             unsigned SymFlags = GetSymInfoFlags (S, &ConstVal);
 
             /* Check if this symbol has a size. If so, remember it in the
-             * flags.
-             */
+            ** flags.
+            */
             long Size;
             SymEntry* SizeSym = FindSizeOfSymbol (S);
             if (SizeSym != 0 && SymIsConst (SizeSym, &Size)) {
@@ -855,8 +855,8 @@ void WriteDbgSyms (void)
         ObjWriteVar (Count);
 
         /* Walk through list and write all symbols to the file. Ignore size
-         * symbols.
-         */
+        ** symbols.
+        */
         S = SymList;
         while (S) {
             if (IsDbgSym (S)) {
@@ -866,8 +866,8 @@ void WriteDbgSyms (void)
                 unsigned SymFlags = GetSymInfoFlags (S, &ConstVal);
 
                 /* Check if this symbol has a size. If so, remember it in the
-                 * flags.
-                 */
+                ** flags.
+                */
                 long Size;
                 SymEntry* SizeSym = FindSizeOfSymbol (S);
                 if (SizeSym != 0 && SymIsConst (SizeSym, &Size)) {
@@ -881,8 +881,8 @@ void WriteDbgSyms (void)
                 ObjWrite8 (S->AddrSize);
 
                 /* Write the id of the parent. For normal symbols, this is a
-                 * scope (symbol table), for cheap locals, it's a symbol.
-                 */
+                ** scope (symbol table), for cheap locals, it's a symbol.
+                */
                 if (SYM_IS_STD (SymFlags)) {
                     ObjWriteVar (S->Sym.Tab->Id);
                 } else {
@@ -959,8 +959,8 @@ void WriteScopes (void)
             unsigned Flags = 0;
 
             /* Check if this scope has a size. If so, remember it in the
-             * flags.
-             */
+            ** flags.
+            */
             long Size;
             SymEntry* SizeSym = FindSizeOfScope (S);
             if (SizeSym != 0 && SymIsConst (SizeSym, &Size)) {
index de5806124e7cd0448d4abdcff8731b1b9ec49c37..7e7a9009c4fdc5294a7d5c700c0e059a8ba58c2b 100644 (file)
@@ -112,28 +112,28 @@ SymTable* SymFindScope (SymTable* Parent, const StrBuf* Name, SymFindAction Acti
 
 SymTable* SymFindAnyScope (SymTable* Parent, const StrBuf* Name);
 /* Find a scope in the given or any of its parent scopes. The function will
- * never create a new symbol, since this can only be done in one specific
- * scope.
- */
+** never create a new symbol, since this can only be done in one specific
+** scope.
+*/
 
 SymEntry* SymFindLocal (SymEntry* Parent, const StrBuf* Name, SymFindAction Action);
 /* Find a cheap local symbol. If Action contains SYM_ALLOC_NEW and the entry is
- * not found, create a new one. Return the entry found, or the new entry
- * created, or - in case Action is SYM_FIND_EXISTING - return 0.
- */
+** not found, create a new one. Return the entry found, or the new entry
+** created, or - in case Action is SYM_FIND_EXISTING - return 0.
+*/
 
 SymEntry* SymFind (SymTable* Scope, const StrBuf* Name, SymFindAction Action);
 /* Find a new symbol table entry in the given table. If Action contains
- * SYM_ALLOC_NEW and the entry is not found, create a new one. Return the
- * entry found, or the new entry created, or - in case Action is
- * SYM_FIND_EXISTING - return 0.
- */
+** SYM_ALLOC_NEW and the entry is not found, create a new one. Return the
+** entry found, or the new entry created, or - in case Action is
+** SYM_FIND_EXISTING - return 0.
+*/
 
 SymEntry* SymFindAny (SymTable* Scope, const StrBuf* Name);
 /* Find a symbol in the given or any of its parent scopes. The function will
- * never create a new symbol, since this can only be done in one specific
- * scope.
- */
+** never create a new symbol, since this can only be done in one specific
+** scope.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE unsigned char GetSymTabType (const SymTable* S)
index d3324d447e754f86e559fbf31ff636040fe589cf..db2a63fc7aaef6a643e71061b1a321852688b187 100644 (file)
@@ -62,8 +62,8 @@ int TokHasIVal (token_t Tok)
 
 void CopyToken (Token* Dst, const Token* Src)
 /* Copy a token from Src to Dst. The current value of Dst.SVal is free'd,
- * so Dst must be initialized.
- */
+** so Dst must be initialized.
+*/
 {
     /* Copy the fields */
     Dst->Tok  = Src->Tok;
index 56d780e567fdf46165e716f44bc036b34e52c8eb..803b12785d304cd93b3fd1e896f545f3f6411f4a 100644 (file)
@@ -306,8 +306,8 @@ INLINE int TokIsSep (enum token_t T)
 
 void CopyToken (Token* Dst, const Token* Src);
 /* Copy a token. The current value of Dst.SVal is free'd, so Dst must be
- * initialized.
- */
+** initialized.
+*/
 
 
 
index 43b3f3c7d400e7087455854beb5b778fb8e9be5b..16efd24dfa1e2fdb17db7327fa078f7d8ed1612a 100644 (file)
@@ -180,9 +180,9 @@ void FreeTokList (TokList* List)
 
 enum token_t GetTokListTerm (enum token_t Term)
 /* Determine if the following token list is enclosed in curly braces. This is
- * the case if the next token is the opening brace. If so, skip it and return
- * a closing brace, otherwise return Term.
- */
+** the case if the next token is the opening brace. If so, skip it and return
+** a closing brace, otherwise return Term.
+*/
 {
     if (CurTok.Tok == TOK_LCURLY) {
         NextTok ();
@@ -216,16 +216,16 @@ void AddCurTok (TokList* List)
 
 static int ReplayTokList (void* List)
 /* Function that gets the next token from a token list and sets it. This
- * function may be used together with the PushInput function from the istack
- * module.
- */
+** function may be used together with the PushInput function from the istack
+** module.
+*/
 {
     /* Cast the generic pointer to an actual list */
     TokList* L = List;
 
     /* If there are no more tokens, decrement the repeat counter. If it goes
-     * zero, delete the list and remove the function from the stack.
-     */
+    ** zero, delete the list and remove the function from the stack.
+    */
     if (L->Last == 0) {
         if (++L->RepCount >= L->RepMax) {
             /* Done with this list */
@@ -249,8 +249,8 @@ static int ReplayTokList (void* List)
     L->LI = StartLine (&CurTok.Pos, LI_TYPE_ASM, PushCounter);
 
     /* If a check function is defined, call it, so it may look at the token
-     * just set and changed it as apropriate.
-     */
+    ** just set and changed it as apropriate.
+    */
     if (L->Check) {
         L->Check (L);
     }
@@ -266,9 +266,9 @@ static int ReplayTokList (void* List)
 
 void PushTokList (TokList* List, const char* Desc)
 /* Push a token list to be used as input for InputFromStack. This includes
- * several initializations needed in the token list structure, so don't use
- * PushInput directly.
- */
+** several initializations needed in the token list structure, so don't use
+** PushInput directly.
+*/
 {
     /* If the list is empty, just delete it and bail out */
     if (List->Count == 0) {
index 84b4291f44d304b02152b8cee6a7e0d607a5ea37..6ee8b5f5f16dff5700a6b8a0f5f2606a4c6b3be4 100644 (file)
@@ -111,18 +111,18 @@ void FreeTokList (TokList* T);
 
 token_t GetTokListTerm (token_t Term);
 /* Determine if the following token list is enclosed in curly braces. This is
- * the case if the next token is the opening brace. If so, skip it and return
- * a closing brace, otherwise return Term.
- */
+** the case if the next token is the opening brace. If so, skip it and return
+** a closing brace, otherwise return Term.
+*/
 
 void AddCurTok (TokList* T);
 /* Add the current token to the token list */
 
 void PushTokList (TokList* List, const char* Desc);
 /* Push a token list to be used as input for InputFromStack. This includes
- * several initializations needed in the token list structure, so don't use
- * PushInput directly.
- */
+** several initializations needed in the token list structure, so don't use
+** PushInput directly.
+*/
 
 
 
index efebce56c7577c81de4862bbc346a6bb039a34c3..9712f494221bdd1bb10b44297b096756f050627a 100644 (file)
@@ -75,8 +75,8 @@ static unsigned ULabDefCount    = 0;    /* Number of defined labels */
 
 static ULabel* NewULabel (ExprNode* Val)
 /* Create a new ULabel and insert it into the collection. The created label
- * structure is returned.
- */
+** structure is returned.
+*/
 {
     /* Allocate memory for the ULabel structure */
     ULabel* L = xmalloc (sizeof (ULabel));
@@ -98,11 +98,11 @@ static ULabel* NewULabel (ExprNode* Val)
 
 ExprNode* ULabRef (int Which)
 /* Get an unnamed label. If Which is negative, it is a backreference (a
- * reference to an already defined label), and the function will return a
- * segment relative expression. If Which is positive, it is a forward ref,
- * and the function will return a expression node for an unnamed label that
- * must be resolved later.
- */
+** reference to an already defined label), and the function will return a
+** segment relative expression. If Which is positive, it is a forward ref,
+** and the function will return a expression node for an unnamed label that
+** must be resolved later.
+*/
 {
     int     Index;
     ULabel* L;
@@ -139,8 +139,8 @@ ExprNode* ULabRef (int Which)
     ++L->Ref;
 
     /* If the label is already defined, return its value, otherwise return
-     * just a reference.
-     */
+    ** just a reference.
+    */
     if (L->Val) {
         return CloneExpr (L->Val);
     } else {
@@ -155,9 +155,9 @@ void ULabDef (void)
 {
     if (ULabDefCount < CollCount (&ULabList)) {
         /* We did already have a forward reference to this label, so has
-         * already been generated, but doesn't have a value. Use the current
-         * PC for the label value.
-         */
+        ** already been generated, but doesn't have a value. Use the current
+        ** PC for the label value.
+        */
         ULabel* L = CollAtUnchecked (&ULabList, ULabDefCount);
         CHECK (L->Val == 0);
         L->Val = GenCurrentPC ();     
@@ -185,9 +185,9 @@ int ULabCanResolve (void)
 
 ExprNode* ULabResolve (unsigned Index)
 /* Return a valid expression for the unnamed label with the given index. This
- * is used to resolve unnamed labels when assembly is done, so it is an error
- * if a label is still undefined in this phase.
- */
+** is used to resolve unnamed labels when assembly is done, so it is an error
+** if a label is still undefined in this phase.
+*/
 {
     /* Get the label and check that it is defined */
     ULabel* L = CollAt (&ULabList, Index);
@@ -201,8 +201,8 @@ ExprNode* ULabResolve (unsigned Index)
 
 void ULabDone (void)
 /* Run through all unnamed labels, check for anomalies and errors and do 
- * necessary cleanups.
- */
+** necessary cleanups.
+*/
 {
     /* Check if there are undefined labels */
     unsigned I = ULabDefCount;
@@ -213,8 +213,8 @@ void ULabDone (void)
     }
 
     /* Walk over all labels and emit a warning if any unreferenced ones
-     * are found. Remove line infos because they're no longer needed.
-     */
+    ** are found. Remove line infos because they're no longer needed.
+    */
     for (I = 0; I < CollCount (&ULabList); ++I) {
         ULabel* L = CollAtUnchecked (&ULabList, I);
         if (L->Ref == 0) {
index a925a5f8760bda2c8a903957e5585e1486e8d23a..67ea308625eb5a91d4eca5a53545cd2d208b8f99 100644 (file)
 
 ExprNode* ULabRef (int Which);
 /* Get an unnamed label. If Which is negative, it is a backreference (a
- * reference to an already defined label), and the function will return a
- * segment relative expression. If Which is positive, it is a forward ref,
- * and the function will return a expression node for an unnamed label that
- * must be resolved later.
- */
+** reference to an already defined label), and the function will return a
+** segment relative expression. If Which is positive, it is a forward ref,
+** and the function will return a expression node for an unnamed label that
+** must be resolved later.
+*/
 
 void ULabDef (void);
 /* Define an unnamed label at the current PC */
@@ -60,14 +60,14 @@ int ULabCanResolve (void);
 
 ExprNode* ULabResolve (unsigned Index);
 /* Return a valid expression for the unnamed label with the given index. This
- * is used to resolve unnamed labels when assembly is done, so it is an error
- * if a label is still undefined in this phase.
- */
+** is used to resolve unnamed labels when assembly is done, so it is an error
+** if a label is still undefined in this phase.
+*/
 
 void ULabDone (void);
 /* Run through all unnamed labels, check for anomalies and errors and do
- * necessary cleanups.
- */
+** necessary cleanups.
+*/
 
 
 
index 8e46269d214fa84495bd8b6e19489bb20cef60d5..d02253d82edf73531f381709a4d10d3f0ffee8de 100644 (file)
@@ -63,8 +63,8 @@ static const char AnonTag[] = "$anon";
 
 char* AnonName (char* Buf, const char* Spec)
 /* Get a name for an anonymous variable or type. The given buffer is expected
- * to be IDENTSIZE characters long. A pointer to the buffer is returned.
- */
+** to be IDENTSIZE characters long. A pointer to the buffer is returned.
+*/
 {
     static unsigned ACount = 0;
     xsprintf (Buf, IDENTSIZE, "%s-%s-%04X", AnonTag, Spec, ++ACount);
index c7661f3363f0208e63a05b2a575b5700007a3cb8..dfaa1bdaa5ce1b171d7ce79386a5f8e5afcedf60 100644 (file)
@@ -46,8 +46,8 @@
 
 char* AnonName (char* Buf, const char* Spec);
 /* Get a name for an anonymous variable or type. The given buffer is expected
- * to be IDENTSIZE characters long. A pointer to the buffer is returned.
- */
+** to be IDENTSIZE characters long. A pointer to the buffer is returned.
+*/
 
 int IsAnonName (const char* Name);
 /* Check if the given symbol name is that of an anonymous symbol */
index 46bce4beddf6f48225b503e63c38023b1206d7f0..ee50d6faafd626112898065e5e08ec85fe12d122 100644 (file)
@@ -86,8 +86,8 @@ void RemoveCode (const CodeMark* M)
 
 void MoveCode (const CodeMark* Start, const CodeMark* End, const CodeMark* Target)
 /* Move the code between Start (inclusive) and End (exclusive) to
- * (before) Target. The code marks aren't updated.
- */
+** (before) Target. The code marks aren't updated.
+*/
 {
     CS_MoveEntries (CS->Code, Start->Pos, End->Pos - Start->Pos, Target->Pos);
 }
index 248381224f20c948f58762ebc0785f557b61c120..ad079d0c3351271a3dcac78d6d02f4c8fa369664 100644 (file)
@@ -76,8 +76,8 @@ void RemoveCode (const CodeMark* M);
 
 void MoveCode (const CodeMark* Start, const CodeMark* End, const CodeMark* Target);
 /* Move the code between Start (inclusive) and End (exclusive) to
- * (before) Target. The code marks aren't updated.
- */
+** (before) Target. The code marks aren't updated.
+*/
 
 int CodeRangeIsEmpty (const CodeMark* Start, const CodeMark* End);
 /* Return true if the given code range is empty (no code between Start and End) */
index da986c5ff60255a5404b8c98946c0c666dd7c6e1..09aee3b927c4a5ee50eb93f24c69879066f83c95 100644 (file)
@@ -70,9 +70,9 @@ unsigned GetLocalLabel (void)
 
 const char* LocalLabelName (unsigned L)
 /* Make a label name from the given label number. The label name will be
- * created in static storage and overwritten when calling the function
- * again.
- */
+** created in static storage and overwritten when calling the function
+** again.
+*/
 {
     static char Buf[64];
     sprintf (Buf, "L%04X", L);
index 88cbcd622c6d89887f083c03a7577aaa05e7eb90..4a76643a5abbd8d25749e24ab0cc44a9c8829707 100644 (file)
@@ -49,9 +49,9 @@ unsigned GetLocalLabel (void);
 
 const char* LocalLabelName (unsigned L);
 /* Make a label name from the given label number. The label name will be
- * created in static storage and overwritten when calling the function
- * again.
- */
+** created in static storage and overwritten when calling the function
+** again.
+*/
 
 int IsLocalLabelName (const char* Name);
 /* Return true if Name is the name of a local label */
index b3b452c1a9a339717ef9b2ea5ce49f12d9d6bb94..59c1332ffedf1663447ca7522edce6c0d7becd0f 100644 (file)
@@ -69,8 +69,8 @@ static void AsmRangeError (unsigned Arg)
 
 static void AsmErrorSkip (void)
 /* Called in case of an error, skips tokens until the closing paren or a
- * semicolon is reached.
- */
+** semicolon is reached.
+*/
 {
     static const token_t TokenList[] = { TOK_RPAREN, TOK_SEMI };
     SkipTokens (TokenList, sizeof(TokenList) / sizeof(TokenList[0]));
@@ -80,8 +80,8 @@ static void AsmErrorSkip (void)
 
 static SymEntry* AsmGetSym (unsigned Arg, unsigned Type)
 /* Find the symbol with the name currently in NextTok. The symbol must be of
- * the given type. On errors, NULL is returned.
- */
+** the given type. On errors, NULL is returned.
+*/
 {
     SymEntry* Sym;
 
@@ -257,9 +257,9 @@ static void ParseLVarArg (StrBuf* T, unsigned Arg)
     }
 
     /* The symbol may be a parameter to a variadic function. In this case, we
-     * don't have a fixed stack offset, so check it and bail out with an error
-     * if this is the case.
-     */
+    ** don't have a fixed stack offset, so check it and bail out with an error
+    ** if this is the case.
+    */
     if ((Sym->Flags & SC_PARAM) == SC_PARAM && F_IsVariadic (CurrentFunc)) {
         Error ("Argument %u has no fixed stack offset", Arg);
         AsmErrorSkip ();
@@ -352,16 +352,16 @@ static void ParseAsm (void)
     NextToken ();
 
     /* Parse the statement. It may contain several lines and one or more
-     * of the following place holders:
-     *   %b     - Numerical 8 bit value
-     *   %w     - Numerical 16 bit value
-     *   %l     - Numerical 32 bit value
-     *   %v     - Assembler name of a (global) variable
-     *   %o     - Stack offset of a (local) variable
-     *   %g     - Assembler name of a C label
-     *   %s     - Any argument converted to a string (almost)
-     *   %%     - The % sign
-     */
+    ** of the following place holders:
+    **   %b     - Numerical 8 bit value
+    **   %w     - Numerical 16 bit value
+    **   %l     - Numerical 32 bit value
+    **   %v     - Assembler name of a (global) variable
+    **   %o     - Stack offset of a (local) variable
+    **   %g     - Assembler name of a C label
+    **   %s     - Any argument converted to a string (almost)
+    **   %%     - The % sign
+    */
     Arg = 0;
     while ((C = SB_Get (&S)) != '\0') {
 
@@ -415,9 +415,9 @@ Done:
 
 void AsmStatement (void)
 /* This function parses ASM statements. The syntax of the ASM directive
- * looks like the one defined for C++ (C has no ASM directive), that is,
- * a string literal in parenthesis.
- */
+** looks like the one defined for C++ (C has no ASM directive), that is,
+** a string literal in parenthesis.
+*/
 {
     /* Skip the ASM */
     NextToken ();
@@ -434,8 +434,8 @@ void AsmStatement (void)
         Error ("String literal expected");
 
         /* Try some smart error recovery: Skip tokens until we reach the
-         * enclosing paren, or a semicolon.
-         */
+        ** enclosing paren, or a semicolon.
+        */
         AsmErrorSkip ();
 
     } else {
index 1d1936089cff942a8fe04e4f96879400d6f0d9aa..2884a38936173068160e62bfde66a20788255151 100644 (file)
@@ -46,9 +46,9 @@
 
 void AsmStatement (void);
 /* This function parses ASM statements. The syntax of the ASM directive
- * looks like the one defined for C++ (C has no ASM directive), that is,
- * a string literal in parenthesis.
- */
+** looks like the one defined for C++ (C has no ASM directive), that is,
+** a string literal in parenthesis.
+*/
 
 
 
index 7308fb693c5bfcb5a5c817a9fff0714d376755fd..f0607ac5806b92b0c0e0ef4710174db9d7cd1353 100644 (file)
@@ -75,18 +75,18 @@ void Assignment (ExprDesc* Expr)
     NextToken ();
 
     /* cc65 does not have full support for handling structs by value. Since
-     * assigning structs is one of the more useful operations from this
-     * family, allow it here.
-     */
+    ** assigning structs is one of the more useful operations from this
+    ** family, allow it here.
+    */
     if (IsClassStruct (ltype)) {
 
         /* Get the size of the left hand side. */
         unsigned Size = SizeOf (ltype);
 
         /* If the size is that of a basic type (char, int, long), we will copy
-         * the struct using the primary register, otherwise we use memcpy. In
-         * the former case, push the address only if really needed.
-         */
+        ** the struct using the primary register, otherwise we use memcpy. In
+        ** the former case, push the address only if really needed.
+        */
         int UseReg = 1;
         Type* stype;
         switch (Size) {
@@ -143,10 +143,10 @@ void Assignment (ExprDesc* Expr)
         } else {
 
             /* We have an rvalue. This can only happen if a function returns
-             * a struct, since there is no other way to generate an expression
-             * that as a struct as an rvalue result. We allow only 1, 2, and 4
-             * byte sized structs and do direct assignment.
-             */
+            ** a struct, since there is no other way to generate an expression
+            ** that has a struct as an rvalue result. We allow only 1, 2, and 4
+            ** byte sized structs, and do direct assignment.
+            */
             if (UseReg) {
                 /* Do the store */
                 Store (Expr, stype);
@@ -168,8 +168,8 @@ void Assignment (ExprDesc* Expr)
         unsigned Flags;
 
         /* If the bit-field fits within one byte, do the following operations
-         * with bytes.
-         */
+        ** with bytes.
+        */
         if (Expr->BitOffs / CHAR_BITS == (Expr->BitOffs + Expr->BitWidth - 1) / CHAR_BITS) {
             Expr->Type = type_uchar;
         }
@@ -197,14 +197,14 @@ void Assignment (ExprDesc* Expr)
         MarkedExprWithCheck (hie1, &Expr2);
 
         /* Do type conversion if necessary. Beware: Do not use char type
-         * here!
-         */
+        ** here!
+        */
         TypeConversion (&Expr2, ltype);
 
         /* Special treatment if the value is constant. */
         /* Beware: Expr2 may contain side effects, so there must not be
-         * code generated for Expr2.
-         */
+        ** code generated for Expr2.
+        */
         if (ED_IsConstAbsInt (&Expr2) && ED_CodeRangeIsEmpty (&Expr2)) {
 
             /* Get the value and apply the mask */
@@ -214,8 +214,8 @@ void Assignment (ExprDesc* Expr)
             RemoveCode (&PushPos);
 
             /* If the value is equal to the mask now, all bits are one, and we
-             * can remove the mask operation from above.
-             */
+            ** can remove the mask operation from above.
+            */
             if (Val == Mask) {
                 RemoveCode (&AndPos);
             }
index fd35a035b16b1b25b8870d664572209c6bc5d270..f5e751f0869220c77c21bf5d02be8e6ec30856ee 100644 (file)
@@ -94,10 +94,10 @@ void FreeCaseNodeColl (Collection* Nodes)
 
 int SearchCaseNode (const Collection* Nodes, unsigned char Key, int* Index)
 /* Search for a node in the given collection. If the node has been found,
- * set Index to the index of the node and return true. If the node was not
- * found, set Index the the insertion position of the node and return
- * false.
- */
+** set Index to the index of the node and return true. If the node was not
+** found, set Index the the insertion position of the node and return
+** false.
+*/
 {
     /* Do a binary search */
     int First = 0;
@@ -134,8 +134,8 @@ int SearchCaseNode (const Collection* Nodes, unsigned char Key, int* Index)
 
 unsigned InsertCaseValue (Collection* Nodes, unsigned long Val, unsigned Depth)
 /* Insert a new case value into a CaseNode tree with the given depth. Return
- * the code label for the value.
- */
+** the code label for the value.
+*/
 {
     CaseNode* N = 0;
     unsigned CaseLabel = GetLocalLabel ();  /* Code label */
@@ -155,8 +155,8 @@ unsigned InsertCaseValue (Collection* Nodes, unsigned long Val, unsigned Depth)
             CollInsert (Nodes, N, Index);
 
             /* If this is not the last round, create the collection for
-             * the subnodes, otherwise get a label for the code.
-             */
+            ** the subnodes, otherwise get a label for the code.
+            */
             if (Depth > 0) {
                 N->Nodes = NewCollection ();
             } else {
@@ -168,8 +168,8 @@ unsigned InsertCaseValue (Collection* Nodes, unsigned long Val, unsigned Depth)
             N = CollAt (Nodes, Index);
 
             /* If this is the last round and we found a node, we have a
-             * duplicate case label in a switch.
-             */
+            ** duplicate case label in a switch.
+            */
             if (Depth == 0) {
                 Error ("Duplicate case label");
             }
index 1b5ff3834e8e979dfb29bf6465e3db432104758d..aef546f197a7c8e4769808d81cecee1e15067cc1 100644 (file)
@@ -115,15 +115,15 @@ void FreeCaseNodeColl (Collection* Nodes);
 
 int SearchCaseNode (const Collection* Nodes, unsigned char Key, int* Index);
 /* Search for a node in the given collection. If the node has been found,
- * set Index to the index of the node and return true. If the node was not
- * found, set Index the the insertion position of the node and return
- * false.
- */
+** set Index to the index of the node and return true. If the node was not
+** found, set Index the the insertion position of the node and return
+** false.
+*/
 
 unsigned InsertCaseValue (Collection* Nodes, unsigned long Val, unsigned Depth);
 /* Insert a new case value into a CaseNode tree with the given depth. Return
- * the code label for the value.
- */
+** the code label for the value.
+*/
 
 
 
index e1ab965bc10c819ca2fdeaaaf8b631edf54f217b..729248e95afe14d75de1e0d80d695407a38f8929 100644 (file)
@@ -96,8 +96,8 @@ static char* GetArgCopy (const char* Arg)
 
 static int NumArg (const char* Arg, unsigned long* Num)
 /* If the given argument is numerical, convert it and return true. Otherwise
- * set Num to zero and return false.
- */
+** set Num to zero and return false.
+*/
 {
     char* End;
     unsigned long Val;
@@ -113,8 +113,8 @@ static int NumArg (const char* Arg, unsigned long* Num)
     }
 
     /* Convert the value. strtol is not exactly what we want here, but it's
-     * cheap and may be replaced by something fancier later.
-     */
+    ** cheap and may be replaced by something fancier later.
+    */
     Val = strtoul (Arg, &End, Base);
 
     /* Check if the conversion was successful */
@@ -141,16 +141,16 @@ static void SetUseChgInfo (CodeEntry* E, const OPCDesc* D)
     const ZPInfo* Info;
 
     /* If this is a subroutine call, or a jump to an external function,
-     * lookup the information about this function and use it. The jump itself
-     * does not change any registers, so we don't need to use the data from D.
-     */
+    ** lookup the information about this function and use it. The jump itself
+    ** does not change any registers, so we don't need to use the data from D.
+    */
     if ((E->Info & (OF_UBRA | OF_CALL)) != 0 && E->JumpTo == 0) {
         /* A subroutine call or jump to external symbol (function exit) */
         GetFuncInfo (E->Arg, &E->Use, &E->Chg);
     } else {
         /* Some other instruction. Use the values from the opcode description
-         * plus addressing mode info.
-         */
+        ** plus addressing mode info.
+        */
         E->Use = D->Use | GetAMUseInfo (E->AM);
         E->Chg = D->Chg;
 
@@ -218,11 +218,11 @@ static void SetUseChgInfo (CodeEntry* E, const OPCDesc* D)
 
 const char* MakeHexArg (unsigned Num)
 /* Convert Num into a string in the form $XY, suitable for passing it as an
- * argument to NewCodeEntry, and return a pointer to the string.
- * BEWARE: The function returns a pointer to a static buffer, so the value is
- * gone if you call it twice (and apart from that it's not thread and signal
- * safe).
- */
+** argument to NewCodeEntry, and return a pointer to the string.
+** BEWARE: The function returns a pointer to a static buffer, so the value is
+** gone if you call it twice (and apart from that it's not thread and signal
+** safe).
+*/
 {
     static char Buf[16];
     xsprintf (Buf, sizeof (Buf), "$%02X", (unsigned char) Num);
@@ -288,8 +288,8 @@ void FreeCodeEntry (CodeEntry* E)
 
 void CE_ReplaceOPC (CodeEntry* E, opc_t OPC)
 /* Replace the opcode of the instruction. This will also replace related info,
- * Size, Use and Chg, but it will NOT update any arguments or labels.
- */
+** Size, Use and Chg, but it will NOT update any arguments or labels.
+*/
 {
     /* Get the opcode descriptor */
     const OPCDesc* D = GetOPCDesc (OPC);
@@ -325,9 +325,9 @@ void CE_AttachLabel (CodeEntry* E, CodeLabel* L)
 
 void CE_ClearJumpTo (CodeEntry* E)
 /* Clear the JumpTo entry and the argument (which contained the name of the
- * label). Note: The function will not clear the backpointer from the label,
- * so use it with care.
- */
+** label). Note: The function will not clear the backpointer from the label,
+** so use it with care.
+*/
 {
     /* Clear the JumpTo entry */
     E->JumpTo = 0;
@@ -366,8 +366,8 @@ void CE_SetArg (CodeEntry* E, const char* Arg)
 
 void CE_SetNumArg (CodeEntry* E, long Num)
 /* Set a new numeric argument for the given code entry that must already
- * have a numeric argument.
- */
+** have a numeric argument.
+*/
 {
     char Buf[16];
 
@@ -404,8 +404,8 @@ int CE_IsConstImm (const CodeEntry* E)
 
 int CE_IsKnownImm (const CodeEntry* E, unsigned long Num)
 /* Return true if the argument of E is a constant immediate value that is
- * equal to Num.
- */
+** equal to Num.
+*/
 {
     return (E->AM == AM65_IMM && CE_HasNumArg (E) && E->Num == Num);
 }
@@ -414,12 +414,12 @@ int CE_IsKnownImm (const CodeEntry* E, unsigned long Num)
 
 int CE_UseLoadFlags (CodeEntry* E)
 /* Return true if the instruction uses any flags that are set by a load of
- * a register (N and Z).
- */
+** a register (N and Z).
+*/
 {
     /* Follow unconditional branches, but beware of endless loops. After this,
-     * E will point to the first entry that is not a branch.
-     */
+    ** E will point to the first entry that is not a branch.
+    */
     if (E->Info & OF_UBRA) {
         Collection C = AUTO_COLLECTION_INITIALIZER;
 
@@ -491,8 +491,8 @@ void CE_FreeRegInfo (CodeEntry* E)
 
 void CE_GenRegInfo (CodeEntry* E, RegContents* InputRegs)
 /* Generate register info for this instruction. If an old info exists, it is
- * overwritten.
- */
+** overwritten.
+*/
 {
     /* Pointers to the register contents */
     RegContents* In;
@@ -522,8 +522,8 @@ void CE_GenRegInfo (CodeEntry* E, RegContents* InputRegs)
 
         case OP65_ADC:
             /* We don't know the value of the carry, so the result is
-             * always unknown.
-             */
+            ** always unknown.
+            */
             Out->RegA = UNKNOWN_REGVAL;
             break;
 
index b2509863b996fd836d2542594d572d89a0216eb4..4d02890864c82bbb5dddbe05601f0b20c46107bd 100644 (file)
@@ -90,11 +90,11 @@ struct CodeEntry {
 
 const char* MakeHexArg (unsigned Num);
 /* Convert Num into a string in the form $XY, suitable for passing it as an
- * argument to NewCodeEntry, and return a pointer to the string.
- * BEWARE: The function returns a pointer to a static buffer, so the value is
- * gone if you call it twice (and apart from that it's not thread and signal
- * safe).
- */
+** argument to NewCodeEntry, and return a pointer to the string.
+** BEWARE: The function returns a pointer to a static buffer, so the value is
+** gone if you call it twice (and apart from that it's not thread and signal
+** safe).
+*/
 
 CodeEntry* NewCodeEntry (opc_t OPC, am_t AM, const char* Arg,
                          CodeLabel* JumpTo, LineInfo* LI);
@@ -105,8 +105,8 @@ void FreeCodeEntry (CodeEntry* E);
 
 void CE_ReplaceOPC (CodeEntry* E, opc_t OPC);
 /* Replace the opcode of the instruction. This will also replace related info,
- * Size, Use and Chg, but it will NOT update any arguments or labels.
- */
+** Size, Use and Chg, but it will NOT update any arguments or labels.
+*/
 
 int CodeEntriesAreEqual (const CodeEntry* E1, const CodeEntry* E2);
 /* Check if both code entries are equal */
@@ -116,9 +116,9 @@ void CE_AttachLabel (CodeEntry* E, CodeLabel* L);
 
 void CE_ClearJumpTo (CodeEntry* E);
 /* Clear the JumpTo entry and the argument (which contained the name of the
- * label). Note: The function will not clear the backpointer from the label,
- * so use it with care.
- */
+** label). Note: The function will not clear the backpointer from the label,
+** so use it with care.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE int CE_HasLabel (const CodeEntry* E)
@@ -198,16 +198,16 @@ void CE_SetArg (CodeEntry* E, const char* Arg);
 
 void CE_SetNumArg (CodeEntry* E, long Num);
 /* Set a new numeric argument for the given code entry that must already
- * have a numeric argument.
- */
+** have a numeric argument.
+*/
 
 int CE_IsConstImm (const CodeEntry* E);
 /* Return true if the argument of E is a constant immediate value */
 
 int CE_IsKnownImm (const CodeEntry* E, unsigned long Num);
 /* Return true if the argument of E is a constant immediate value that is
- * equal to Num.
- */
+** equal to Num.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE int CE_IsCallTo (const CodeEntry* E, const char* Name)
@@ -221,16 +221,16 @@ INLINE int CE_IsCallTo (const CodeEntry* E, const char* Name)
 
 int CE_UseLoadFlags (CodeEntry* E);
 /* Return true if the instruction uses any flags that are set by a load of
- * a register (N and Z).
- */
+** a register (N and Z).
+*/
 
 void CE_FreeRegInfo (CodeEntry* E);
 /* Free an existing register info struct */
 
 void CE_GenRegInfo (CodeEntry* E, RegContents* InputRegs);
 /* Generate register info for this instruction. If an old info exists, it is
- * overwritten.
- */
+** overwritten.
+*/
 
 void CE_Output (const CodeEntry* E);
 /* Output the code entry to the output file */
index 7ee2a972e16c9bbf43e0b24d1191af128ad9d707..6143b09fe9b6033e9610345e207887965282a6ea 100644 (file)
@@ -192,8 +192,8 @@ void g_fileinfo (const char* Name, unsigned long Size, unsigned long MTime)
 {
     if (DebugInfo) {
         /* We have to place this into the global text segment, so it will
-         * appear before all .dbg line statements.
-         */
+        ** appear before all .dbg line statements.
+        */
         TS_AddLine (GS->Text, "\t.dbg\t\tfile, \"%s\", %lu, %lu", Name, Size, MTime);
     }
 }
@@ -298,15 +298,15 @@ int push (unsigned flags)
 
 static unsigned MakeByteOffs (unsigned Flags, unsigned Offs)
 /* The value in Offs is an offset to an address in a/x. Make sure, an object
- * of the type given in Flags can be loaded or stored into this address by
- * adding part of the offset to the address in ax, so that the remaining
- * offset fits into an index register. Return the remaining offset.
- */
+** of the type given in Flags can be loaded or stored into this address by
+** adding part of the offset to the address in ax, so that the remaining
+** offset fits into an index register. Return the remaining offset.
+*/
 {
     /* If the offset is too large for a byte register, add the high byte
-     * of the offset to the primary. Beware: We need a special correction
-     * if the offset in the low byte will overflow in the operation.
-     */
+    ** of the offset to the primary. Beware: We need a special correction
+    ** if the offset in the low byte will overflow in the operation.
+    */
     unsigned O = Offs & ~0xFFU;
     if ((Offs & 0xFF) > 256 - sizeofarg (Flags)) {
         /* We need to add the low byte also */
@@ -351,8 +351,8 @@ void g_aliasdatalabel (unsigned label, unsigned baselabel, long offs)
 /* Define label as a local alias for baselabel+offs */
 {
     /* We need an intermediate buffer here since LocalLabelName uses a
-     * static buffer which changes with each call.
-     */
+    ** static buffer which changes with each call.
+    */
     StrBuf L = AUTO_STRBUF_INITIALIZER;
     SB_AppendStr (&L, LocalLabelName (label));
     SB_Terminate (&L);
@@ -427,10 +427,10 @@ void g_importmainargs (void)
 
 
 /* Remember the argument size of a function. The variable is set by g_enter
- * and used by g_leave. If the functions gets its argument size by the caller
- * (variable param list or function without prototype), g_enter will set the
- * value to -1.
- */
+** and used by g_leave. If the function gets its argument size by the caller
+** (variable param list or function without prototype), g_enter will set the
+** value to -1.
+*/
 static int funcargs;
 
 
@@ -602,9 +602,9 @@ void g_restore_regvars (int StackOffs, int RegOffs, unsigned Bytes)
     } else if (StackOffs <= RegOffs) {
 
         /* More bytes, but the relation between the register offset in the
-         * register bank and the stack offset allows us to generate short
-         * code that uses just one index register.
-         */
+        ** register bank and the stack offset allows us to generate short
+        ** code that uses just one index register.
+        */
         unsigned Label = GetLocalLabel ();
         AddCodeLine ("ldy #$%02X", StackOffs);
         g_defcodelabel (Label);
@@ -616,9 +616,9 @@ void g_restore_regvars (int StackOffs, int RegOffs, unsigned Bytes)
 
     } else {
 
-        /* Ok, this is the generic code. We need to save X because the
-         * caller will only save A.
-         */
+        /* OK, this is the generic code. We need to save X because the
+        ** caller will only save A.
+        */
         unsigned Label = GetLocalLabel ();
         AddCodeLine ("stx tmp1");
         AddCodeLine ("ldy #$%02X", (unsigned char) (StackOffs + Bytes - 1));
@@ -840,13 +840,13 @@ void g_getlocal (unsigned Flags, int Offs)
 
 void g_getind (unsigned Flags, unsigned Offs)
 /* Fetch the specified object type indirect through the primary register
- * into the primary register
- */
+** into the primary register
+*/
 {
     /* If the offset is greater than 255, add the part that is > 255 to
-     * the primary. This way we get an easy addition and use the low byte
-     * as the offset
-     */
+    ** the primary. This way we get an easy addition and use the low byte
+    ** as the offset
+    */
     Offs = MakeByteOffs (Flags, Offs);
 
     /* Handle the indirect fetch */
@@ -958,8 +958,8 @@ void g_leasp (int Offs)
 
 void g_leavariadic (int Offs)
 /* Fetch the address of a parameter in a variadic function into the primary
- * register
- */
+** register
+*/
 {
     unsigned ArgSizeOffs;
 
@@ -967,8 +967,8 @@ void g_leavariadic (int Offs)
     Offs -= StackPtr;
 
     /* Get the offset of the parameter which is stored at sp+0 on function
-     * entry and check if this offset is reachable with a byte offset.
-     */
+    ** entry and check if this offset is reachable with a byte offset.
+    */
     CHECK (StackPtr <= 0);
     ArgSizeOffs = -StackPtr;
     CheckLocalOffs (ArgSizeOffs);
@@ -1106,14 +1106,14 @@ void g_putlocal (unsigned Flags, int Offs, long Val)
 
 void g_putind (unsigned Flags, unsigned Offs)
 /* Store the specified object type in the primary register at the address
- * on the top of the stack
- */
+** on the top of the stack
+*/
 {
     /* We can handle offsets below $100 directly, larger offsets must be added
-     * to the address. Since a/x is in use, best code is achieved by adding
-     * just the high byte. Be sure to check if the low byte will overflow while
-     * while storing.
-     */
+    ** to the address. Since a/x is in use, best code is achieved by adding
+    ** just the high byte. Be sure to check if the low byte will overflow while
+    ** while storing.
+    */
     if ((Offs & 0xFF) > 256 - sizeofarg (Flags | CF_FORCECHAR)) {
 
         /* Overflow - we need to add the low byte also */
@@ -1321,9 +1321,9 @@ void g_reglong (unsigned Flags)
 
 unsigned g_typeadjust (unsigned lhs, unsigned rhs)
 /* Adjust the integer operands before doing a binary operation. lhs is a flags
- * value, that corresponds to the value on TOS, rhs corresponds to the value
- * in (e)ax. The return value is the the flags value for the resulting type.
- */
+** value, that corresponds to the value on TOS, rhs corresponds to the value
+** in (e)ax. The return value is the the flags value for the resulting type.
+*/
 {
     unsigned ltype, rtype;
     unsigned result;
@@ -1352,11 +1352,11 @@ unsigned g_typeadjust (unsigned lhs, unsigned rhs)
     }
 
     /* Determine the result type for the operation:
-     *  - The result is const if both operands are const.
-     *  - The result is unsigned if one of the operands is unsigned.
-     *  - The result is long if one of the operands is long.
-     *  - Otherwise the result is int sized.
-     */
+    **  - The result is const if both operands are const.
+    **  - The result is unsigned if one of the operands is unsigned.
+    **  - The result is long if one of the operands is long.
+    **  - Otherwise the result is int sized.
+    */
     result = (lhs & CF_CONST) & (rhs & CF_CONST);
     result |= (lhs & CF_UNSIGNED) | (rhs & CF_UNSIGNED);
     if (rtype == CF_LONG || ltype == CF_LONG) {
@@ -1371,8 +1371,8 @@ unsigned g_typeadjust (unsigned lhs, unsigned rhs)
 
 unsigned g_typecast (unsigned lhs, unsigned rhs)
 /* Cast the value in the primary register to the operand size that is flagged
- * by the lhs value. Return the result value.
- */
+** by the lhs value. Return the result value.
+*/
 {
     unsigned ltype, rtype;
 
@@ -1392,17 +1392,17 @@ unsigned g_typecast (unsigned lhs, unsigned rhs)
     }
 
     /* Do not need any other action. If the left type is int, and the primary
-     * register is long, it will be automagically truncated. If the right hand
-     * side is const, it is not located in the primary register and handled by
-     * the expression parser code.
-     */
+    ** register is long, it will be automagically truncated. If the right hand
+    ** side is const, it is not located in the primary register and handled by
+    ** the expression parser code.
+    */
 
     /* Result is const if the right hand side was const */
     lhs |= (rhs & CF_CONST);
 
     /* The resulting type is that of the left hand side (that's why you called
-     * this function :-)
-     */
+    ** this function :-)
+    */
     return lhs;
 }
 
@@ -1410,10 +1410,10 @@ unsigned g_typecast (unsigned lhs, unsigned rhs)
 
 void g_scale (unsigned flags, long val)
 /* Scale the value in the primary register by the given value. If val is positive,
- * scale up, is val is negative, scale down. This function is used to scale
- * the operands or results of pointer arithmetic by the size of the type, the
- * pointer points to.
- */
+** scale up, is val is negative, scale down. This function is used to scale
+** the operands or results of pointer arithmetic by the size of the type, the
+** pointer points to.
+*/
 {
     int p2;
 
@@ -1813,9 +1813,9 @@ void g_addeqind (unsigned flags, unsigned offs, unsigned long val)
 /* Emit += for the location with address in ax */
 {
     /* If the offset is too large for a byte register, add the high byte
-     * of the offset to the primary. Beware: We need a special correction
-     * if the offset in the low byte will overflow in the operation.
-     */
+    ** of the offset to the primary. Beware: We need a special correction
+    ** if the offset in the low byte will overflow in the operation.
+    */
     offs = MakeByteOffs (flags, offs);
 
     /* Check the size and determine operation */
@@ -2009,9 +2009,9 @@ void g_subeqind (unsigned flags, unsigned offs, unsigned long val)
 /* Emit -= for the location with address in ax */
 {
     /* If the offset is too large for a byte register, add the high byte
-     * of the offset to the primary. Beware: We need a special correction
-     * if the offset in the low byte will overflow in the operation.
-     */
+    ** of the offset to the primary. Beware: We need a special correction
+    ** if the offset in the low byte will overflow in the operation.
+    */
     offs = MakeByteOffs (flags, offs);
 
     /* Check the size and determine operation */
@@ -2168,8 +2168,8 @@ void g_restore (unsigned flags)
 
 void g_cmp (unsigned flags, unsigned long val)
 /* Immidiate compare. The primary register will not be changed, Z flag
- * will be set.
- */
+** will be set.
+*/
 {
     unsigned L;
 
@@ -2204,11 +2204,11 @@ void g_cmp (unsigned flags, unsigned long val)
 
 static void oper (unsigned Flags, unsigned long Val, const char** Subs)
 /* Encode a binary operation. subs is a pointer to four strings:
- *      0       --> Operate on ints
- *      1       --> Operate on unsigneds
- *      2       --> Operate on longs
- *      3       --> Operate on unsigned longs
- */
+**      0       --> Operate on ints
+**      1       --> Operate on unsigneds
+**      2       --> Operate on longs
+**      3       --> Operate on unsigned longs
+*/
 {
     /* Determine the offset into the array */
     if (Flags & CF_UNSIGNED) {
@@ -2326,8 +2326,8 @@ void g_push (unsigned flags, unsigned long val)
 
 void g_swap (unsigned flags)
 /* Swap the primary register and the top of the stack. flags give the type
- * of *both* values (must have same size).
- */
+** of *both* values (must have same size).
+*/
 {
     switch (flags & CF_TYPEMASK) {
 
@@ -2421,8 +2421,8 @@ void g_drop (unsigned Space)
 {
     if (Space > 255) {
         /* Inline the code since calling addysp repeatedly is quite some
-         * overhead.
-         */
+        ** overhead.
+        */
         AddCodeLine ("pha");
         AddCodeLine ("lda #$%02X", (unsigned char) Space);
         AddCodeLine ("clc");
@@ -2450,8 +2450,8 @@ void g_space (int Space)
         g_drop (-Space);
     } else if (Space > 255) {
         /* Inline the code since calling subysp repeatedly is quite some
-         * overhead.
-         */
+        ** overhead.
+        */
         AddCodeLine ("pha");
         AddCodeLine ("lda sp");
         AddCodeLine ("sec");
@@ -2547,8 +2547,8 @@ void g_mul (unsigned flags, unsigned long val)
     }
 
     /* If the right hand side is const, the lhs is not on stack but still
-     * in the primary register.
-     */
+    ** in the primary register.
+    */
     if (flags & CF_CONST) {
 
         switch (flags & CF_TYPEMASK) {
@@ -2624,8 +2624,8 @@ void g_mul (unsigned flags, unsigned long val)
         }
 
         /* If we go here, we didn't emit code. Push the lhs on stack and fall
-         * into the normal, non-optimized stuff.
-         */
+        ** into the normal, non-optimized stuff.
+        */
         flags &= ~CF_FORCECHAR; /* Handle chars as ints */
         g_push (flags & ~CF_CONST, 0);
 
@@ -2695,8 +2695,8 @@ void g_or (unsigned flags, unsigned long val)
     };
 
     /* If the right hand side is const, the lhs is not on stack but still
-     * in the primary register.
-     */
+    ** in the primary register.
+    */
     if (flags & CF_CONST) {
 
         switch (flags & CF_TYPEMASK) {
@@ -2744,9 +2744,9 @@ void g_or (unsigned flags, unsigned long val)
         }
 
         /* If we go here, we didn't emit code. Push the lhs on stack and fall
-         * into the normal, non-optimized stuff. Note: The standard stuff will
-         * always work with ints.
-         */
+        ** into the normal, non-optimized stuff. Note: The standard stuff will
+        ** always work with ints.
+        */
         flags &= ~CF_FORCECHAR;
         g_push (flags & ~CF_CONST, 0);
     }
@@ -2766,8 +2766,8 @@ void g_xor (unsigned flags, unsigned long val)
 
 
     /* If the right hand side is const, the lhs is not on stack but still
-     * in the primary register.
-     */
+    ** in the primary register.
+    */
     if (flags & CF_CONST) {
 
         switch (flags & CF_TYPEMASK) {
@@ -2812,9 +2812,9 @@ void g_xor (unsigned flags, unsigned long val)
         }
 
         /* If we go here, we didn't emit code. Push the lhs on stack and fall
-         * into the normal, non-optimized stuff. Note: The standard stuff will
-         * always work with ints.
-         */
+        ** into the normal, non-optimized stuff. Note: The standard stuff will
+        ** always work with ints.
+        */
         flags &= ~CF_FORCECHAR;
         g_push (flags & ~CF_CONST, 0);
     }
@@ -2833,8 +2833,8 @@ void g_and (unsigned Flags, unsigned long Val)
     };
 
     /* If the right hand side is const, the lhs is not on stack but still
-     * in the primary register.
-     */
+    ** in the primary register.
+    */
     if (Flags & CF_CONST) {
 
         switch (Flags & CF_TYPEMASK) {
@@ -2904,9 +2904,9 @@ void g_and (unsigned Flags, unsigned long Val)
         }
 
         /* If we go here, we didn't emit code. Push the lhs on stack and fall
-         * into the normal, non-optimized stuff. Note: The standard stuff will
-         * always work with ints.
-         */
+        ** into the normal, non-optimized stuff. Note: The standard stuff will
+        ** always work with ints.
+        */
         Flags &= ~CF_FORCECHAR;
         g_push (Flags & ~CF_CONST, 0);
     }
@@ -2925,8 +2925,8 @@ void g_asr (unsigned flags, unsigned long val)
     };
 
     /* If the right hand side is const, the lhs is not on stack but still
-     * in the primary register.
-     */
+    ** in the primary register.
+    */
     if (flags & CF_CONST) {
 
         switch (flags & CF_TYPEMASK) {
@@ -3035,9 +3035,9 @@ void g_asr (unsigned flags, unsigned long val)
         }
 
         /* If we go here, we didn't emit code. Push the lhs on stack and fall
-         * into the normal, non-optimized stuff. Note: The standard stuff will
-         * always work with ints.
-         */
+        ** into the normal, non-optimized stuff. Note: The standard stuff will
+        ** always work with ints.
+        */
         flags &= ~CF_FORCECHAR;
         g_push (flags & ~CF_CONST, 0);
     }
@@ -3057,8 +3057,8 @@ void g_asl (unsigned flags, unsigned long val)
 
 
     /* If the right hand side is const, the lhs is not on stack but still
-     * in the primary register.
-     */
+    ** in the primary register.
+    */
     if (flags & CF_CONST) {
 
         switch (flags & CF_TYPEMASK) {
@@ -3134,9 +3134,9 @@ void g_asl (unsigned flags, unsigned long val)
         }
 
         /* If we go here, we didn't emit code. Push the lhs on stack and fall
-         * into the normal, non-optimized stuff. Note: The standard stuff will
-         * always work with ints.
-         */
+        ** into the normal, non-optimized stuff. Note: The standard stuff will
+        ** always work with ints.
+        */
         flags &= ~CF_FORCECHAR;
         g_push (flags & ~CF_CONST, 0);
     }
@@ -3419,10 +3419,10 @@ void g_dec (unsigned flags, unsigned long val)
 
 
 /*
- * Following are the conditional operators. They compare the TOS against
- * the primary and put a literal 1 in the primary if the condition is
- * true, otherwise they clear the primary register
- */
+** Following are the conditional operators. They compare the TOS against
+** the primary and put a literal 1 in the primary if the condition is
+** true, otherwise they clear the primary register
+*/
 
 
 
@@ -3436,8 +3436,8 @@ void g_eq (unsigned flags, unsigned long val)
     unsigned L;
 
     /* If the right hand side is const, the lhs is not on stack but still
-     * in the primary register.
-     */
+    ** in the primary register.
+    */
     if (flags & CF_CONST) {
 
         switch (flags & CF_TYPEMASK) {
@@ -3467,9 +3467,9 @@ void g_eq (unsigned flags, unsigned long val)
         }
 
         /* If we go here, we didn't emit code. Push the lhs on stack and fall
-         * into the normal, non-optimized stuff. Note: The standard stuff will
-         * always work with ints.
-         */
+        ** into the normal, non-optimized stuff. Note: The standard stuff will
+        ** always work with ints.
+        */
         flags &= ~CF_FORCECHAR;
         g_push (flags & ~CF_CONST, 0);
     }
@@ -3490,8 +3490,8 @@ void g_ne (unsigned flags, unsigned long val)
     unsigned L;
 
     /* If the right hand side is const, the lhs is not on stack but still
-     * in the primary register.
-     */
+    ** in the primary register.
+    */
     if (flags & CF_CONST) {
 
         switch (flags & CF_TYPEMASK) {
@@ -3521,9 +3521,9 @@ void g_ne (unsigned flags, unsigned long val)
         }
 
         /* If we go here, we didn't emit code. Push the lhs on stack and fall
-         * into the normal, non-optimized stuff. Note: The standard stuff will
-         * always work with ints.
-         */
+        ** into the normal, non-optimized stuff. Note: The standard stuff will
+        ** always work with ints.
+        */
         flags &= ~CF_FORCECHAR;
         g_push (flags & ~CF_CONST, 0);
     }
@@ -3544,14 +3544,14 @@ void g_lt (unsigned flags, unsigned long val)
     unsigned Label;
 
     /* If the right hand side is const, the lhs is not on stack but still
-     * in the primary register.
-     */
+    ** in the primary register.
+    */
     if (flags & CF_CONST) {
 
         /* Because the handling of the overflow flag is too complex for
-         * inlining, we can handle only unsigned compares, and signed
-         * compares against zero here.
-         */
+        ** inlining, we can handle only unsigned compares, and signed
+        ** compares against zero here.
+        */
         if (flags & CF_UNSIGNED) {
 
             /* Give a warning in some special cases */
@@ -3683,9 +3683,9 @@ void g_lt (unsigned flags, unsigned long val)
         }
 
         /* If we go here, we didn't emit code. Push the lhs on stack and fall
-         * into the normal, non-optimized stuff. Note: The standard stuff will
-         * always work with ints.
-         */
+        ** into the normal, non-optimized stuff. Note: The standard stuff will
+        ** always work with ints.
+        */
         flags &= ~CF_FORCECHAR;
         g_push (flags & ~CF_CONST, 0);
     }
@@ -3705,8 +3705,8 @@ void g_le (unsigned flags, unsigned long val)
 
 
     /* If the right hand side is const, the lhs is not on stack but still
-     * in the primary register.
-     */
+    ** in the primary register.
+    */
     if (flags & CF_CONST) {
 
         /* Look at the type */
@@ -3718,8 +3718,8 @@ void g_le (unsigned flags, unsigned long val)
                         /* Unsigned compare */
                         if (val < 0xFF) {
                             /* Use < instead of <= because the former gives
-                             * better code on the 6502 than the latter.
-                             */
+                            ** better code on the 6502 than the latter.
+                            */
                             g_lt (flags, val+1);
                         } else {
                             /* Always true */
@@ -3730,8 +3730,8 @@ void g_le (unsigned flags, unsigned long val)
                         /* Signed compare */
                         if ((long) val < 0x7F) {
                             /* Use < instead of <= because the former gives
-                             * better code on the 6502 than the latter.
-                             */
+                            ** better code on the 6502 than the latter.
+                            */
                             g_lt (flags, val+1);
                         } else {
                             /* Always true */
@@ -3748,8 +3748,8 @@ void g_le (unsigned flags, unsigned long val)
                     /* Unsigned compare */
                     if (val < 0xFFFF) {
                         /* Use < instead of <= because the former gives
-                         * better code on the 6502 than the latter.
-                         */
+                        ** better code on the 6502 than the latter.
+                        */
                         g_lt (flags, val+1);
                     } else {
                         /* Always true */
@@ -3773,8 +3773,8 @@ void g_le (unsigned flags, unsigned long val)
                     /* Unsigned compare */
                     if (val < 0xFFFFFFFF) {
                         /* Use < instead of <= because the former gives
-                         * better code on the 6502 than the latter.
-                         */
+                        ** better code on the 6502 than the latter.
+                        */
                         g_lt (flags, val+1);
                     } else {
                         /* Always true */
@@ -3798,9 +3798,9 @@ void g_le (unsigned flags, unsigned long val)
         }
 
         /* If we go here, we didn't emit code. Push the lhs on stack and fall
-         * into the normal, non-optimized stuff. Note: The standard stuff will
-         * always work with ints.
-         */
+        ** into the normal, non-optimized stuff. Note: The standard stuff will
+        ** always work with ints.
+        */
         flags &= ~CF_FORCECHAR;
         g_push (flags & ~CF_CONST, 0);
     }
@@ -3820,8 +3820,8 @@ void g_gt (unsigned flags, unsigned long val)
 
 
     /* If the right hand side is const, the lhs is not on stack but still
-     * in the primary register.
-     */
+    ** in the primary register.
+    */
     if (flags & CF_CONST) {
 
         /* Look at the type */
@@ -3832,14 +3832,14 @@ void g_gt (unsigned flags, unsigned long val)
                     if (flags & CF_UNSIGNED) {
                         if (val == 0) {
                             /* If we have a compare > 0, we will replace it by
-                             * != 0 here, since both are identical but the
-                             * latter is easier to optimize.
-                             */
+                            ** != 0 here, since both are identical but the
+                            ** latter is easier to optimize.
+                            */
                             g_ne (flags, val);
                         } else if (val < 0xFF) {
                             /* Use >= instead of > because the former gives
-                             * better code on the 6502 than the latter.
-                             */
+                            ** better code on the 6502 than the latter.
+                            */
                             g_ge (flags, val+1);
                         } else {
                             /* Never true */
@@ -3849,8 +3849,8 @@ void g_gt (unsigned flags, unsigned long val)
                     } else {
                         if ((long) val < 0x7F) {
                             /* Use >= instead of > because the former gives
-                             * better code on the 6502 than the latter.
-                             */
+                            ** better code on the 6502 than the latter.
+                            */
                             g_ge (flags, val+1);
                         } else {
                             /* Never true */
@@ -3867,14 +3867,14 @@ void g_gt (unsigned flags, unsigned long val)
                     /* Unsigned compare */
                     if (val == 0) {
                         /* If we have a compare > 0, we will replace it by
-                         * != 0 here, since both are identical but the latter
-                         * is easier to optimize.
-                         */
+                        ** != 0 here, since both are identical but the latter
+                        ** is easier to optimize.
+                        */
                         g_ne (flags, val);
                     } else if (val < 0xFFFF) {
                         /* Use >= instead of > because the former gives better
-                         * code on the 6502 than the latter.
-                         */
+                        ** code on the 6502 than the latter.
+                        */
                         g_ge (flags, val+1);
                     } else {
                         /* Never true */
@@ -3898,14 +3898,14 @@ void g_gt (unsigned flags, unsigned long val)
                     /* Unsigned compare */
                     if (val == 0) {
                         /* If we have a compare > 0, we will replace it by
-                         * != 0 here, since both are identical but the latter
-                         * is easier to optimize.
-                         */
+                        ** != 0 here, since both are identical but the latter
+                        ** is easier to optimize.
+                        */
                         g_ne (flags, val);
                     } else if (val < 0xFFFFFFFF) {
                         /* Use >= instead of > because the former gives better
-                         * code on the 6502 than the latter.
-                         */
+                        ** code on the 6502 than the latter.
+                        */
                         g_ge (flags, val+1);
                     } else {
                         /* Never true */
@@ -3929,9 +3929,9 @@ void g_gt (unsigned flags, unsigned long val)
         }
 
         /* If we go here, we didn't emit code. Push the lhs on stack and fall
-         * into the normal, non-optimized stuff. Note: The standard stuff will
-         * always work with ints.
-         */
+        ** into the normal, non-optimized stuff. Note: The standard stuff will
+        ** always work with ints.
+        */
         flags &= ~CF_FORCECHAR;
         g_push (flags & ~CF_CONST, 0);
     }
@@ -3953,14 +3953,14 @@ void g_ge (unsigned flags, unsigned long val)
 
 
     /* If the right hand side is const, the lhs is not on stack but still
-     * in the primary register.
-     */
+    ** in the primary register.
+    */
     if (flags & CF_CONST) {
 
         /* Because the handling of the overflow flag is too complex for
-         * inlining, we can handle only unsigned compares, and signed
-         * compares against zero here.
-         */
+        ** inlining, we can handle only unsigned compares, and signed
+        ** compares against zero here.
+        */
         if (flags & CF_UNSIGNED) {
 
             /* Give a warning in some special cases */
@@ -4087,9 +4087,9 @@ void g_ge (unsigned flags, unsigned long val)
         }
 
         /* If we go here, we didn't emit code. Push the lhs on stack and fall
-         * into the normal, non-optimized stuff. Note: The standard stuff will
-         * always work with ints.
-         */
+        ** into the normal, non-optimized stuff. Note: The standard stuff will
+        ** always work with ints.
+        */
         flags &= ~CF_FORCECHAR;
         g_push (flags & ~CF_CONST, 0);
     }
index 256d1ff981e2c941c3801429e7c07b3387341a95..4ad3756187fe9fe2ab9d16470f0375a0f35ac355 100644 (file)
 
 
 /* Code generator flags.
- * Note: The type flags are designed so that a smaller type may override a
- * larger one by or'ing it into the existing one.
- * Note^2: The actual type including the sign flag is in the lower bits, so
- * we can mask the information and use them as a table index.
- */
+** Note: The type flags are designed so that a smaller type may override a
+** larger one by or'ing it into the existing one.
+** Note^2: The actual type including the sign flag is in the lower bits, so
+** we can mask the information and use them as a table index.
+*/
 #define CF_NONE         0x0000  /* No special flags */
 
 /* Values for the actual type */
@@ -208,21 +208,21 @@ void g_reglong (unsigned Flags);
 
 unsigned g_typeadjust (unsigned lhs, unsigned rhs);
 /* Adjust the integer operands before doing a binary operation. lhs is a flags
- * value, that corresponds to the value on TOS, rhs corresponds to the value
- *  in (e)ax. The return value is the the flags value for the resulting type.
- */
+** value, that corresponds to the value on TOS, rhs corresponds to the value
+**  in (e)ax. The return value is the the flags value for the resulting type.
+*/
 
 unsigned g_typecast (unsigned lhs, unsigned rhs);
 /* Cast the value in the primary register to the operand size that is flagged
- * by the lhs value. Return the result value.
- */
+** by the lhs value. Return the result value.
+*/
 
 void g_scale (unsigned flags, long val);
 /* Scale the value in the primary register by the given value. If val is positive,
- * scale up, is val is negative, scale down. This function is used to scale
- * the operands or results of pointer arithmetic by the size of the type, the
- * pointer points to.
- */
+** scale up, is val is negative, scale down. This function is used to scale
+** the operands or results of pointer arithmetic by the size of the type, the
+** pointer points to.
+*/
 
 
 
@@ -274,16 +274,16 @@ void g_getlocal (unsigned Flags, int Offs);
 
 void g_getind (unsigned Flags, unsigned Offs);
 /* Fetch the specified object type indirect through the primary register
- * into the primary register
- */
+** into the primary register
+*/
 
 void g_leasp (int Offs);
 /* Fetch the address of the specified symbol into the primary register */
 
 void g_leavariadic (int Offs);
 /* Fetch the address of a parameter in a variadic function into the primary
- * register
- */
+** register
+*/
 
 
 
@@ -301,8 +301,8 @@ void g_putlocal (unsigned Flags, int Offs, long Val);
 
 void g_putind (unsigned flags, unsigned offs);
 /* Store the specified object type in the primary register at the address
- * on the top of the stack
- */
+** on the top of the stack
+*/
 
 
 
@@ -376,8 +376,8 @@ void g_restore (unsigned flags);
 
 void g_cmp (unsigned flags, unsigned long val);
 /* Immidiate compare. The primary register will not be changed, Z flag
- * will be set.
- */
+** will be set.
+*/
 
 void g_test (unsigned flags);
 /* Test the value in the primary and set the condition codes */
@@ -387,8 +387,8 @@ void g_push (unsigned flags, unsigned long val);
 
 void g_swap (unsigned flags);
 /* Swap the primary register and the top of the stack. flags give the type
- * of *both* values (must have same size).
- */
+** of *both* values (must have same size).
+*/
 
 void g_call (unsigned Flags, const char* Label, unsigned ArgSize);
 /* Call the specified subroutine name */
index 161b44229d4e2d47e263a640074460fc71303553..be80319e7389c79c2f5ea5dbcf76fff74bbf12f7 100644 (file)
@@ -64,8 +64,8 @@ static const char CmpSuffixTab [][4] = {
 };
 
 /* Table listing the function names and code info values for known internally
- * used functions. This table should get auto-generated in the future.
- */
+** used functions. This table should get auto-generated in the future.
+*/
 typedef struct FuncInfo FuncInfo;
 struct FuncInfo {
     const char*     Name;       /* Function name */
@@ -74,9 +74,9 @@ struct FuncInfo {
 };
 
 /* Note for the shift functions: Shifts are done modulo 32, so all shift
- * routines are marked to use only the A register. The remainder is ignored
- * anyway.
- */
+** routines are marked to use only the A register. The remainder is ignored
+** anyway.
+*/
 static const FuncInfo FuncInfoTable[] = {
     { "addeq0sp",       REG_AX,               REG_AXY                        },
     { "addeqysp",       REG_AXY,              REG_AXY                        },
@@ -376,15 +376,15 @@ static int CompareFuncInfo (const void* Key, const void* Info)
 
 void GetFuncInfo (const char* Name, unsigned short* Use, unsigned short* Chg)
 /* For the given function, lookup register information and store it into
- * the given variables. If the function is unknown, assume it will use and
- * load all registers.
- */
+** the given variables. If the function is unknown, assume it will use and
+** load all registers.
+*/
 {
     /* If the function name starts with an underline, it is an external
-     * function. Search for it in the symbol table. If the function does
-     * not start with an underline, it may be a runtime support function.
-     * Search for it in the list of builtin functions.
-     */
+    ** function. Search for it in the symbol table. If the function does
+    ** not start with an underline, it may be a runtime support function.
+    ** Search for it in the list of builtin functions.
+    */
     if (Name[0] == '_') {
 
         /* Search in the symbol table, skip the leading underscore */
@@ -396,11 +396,11 @@ void GetFuncInfo (const char* Name, unsigned short* Use, unsigned short* Chg)
             FuncDesc* D = E->V.F.Func;
 
             /* A function may use the A or A/X registers if it is a fastcall
-             * function. If it is not a fastcall function but a variadic one,
-             * it will use the Y register (the parameter size is passed here).
-             * In all other cases, no registers are used. However, we assume
-             * that any function will destroy all registers.
-             */
+            ** function. If it is not a fastcall function but a variadic one,
+            ** it will use the Y register (the parameter size is passed here).
+            ** In all other cases, no registers are used. However, we assume
+            ** that any function will destroy all registers.
+            */
             if (IsQualFastcall (E->Type) && D->ParamCount > 0) {
                 /* Will use registers depending on the last param */
                 unsigned LastParamSize = CheckedSizeOf (D->LastParam->Type);
@@ -428,9 +428,9 @@ void GetFuncInfo (const char* Name, unsigned short* Use, unsigned short* Chg)
     } else if (IsDigit (Name[0]) || Name[0] == '$') {
 
         /* A call to a numeric address. Assume that anything gets used and
-         * destroyed. This is not a real problem, since numeric addresses
-         * are used mostly in inline assembly anyway.
-         */
+        ** destroyed. This is not a real problem, since numeric addresses
+        ** are used mostly in inline assembly anyway.
+        */
         *Use = REG_ALL;
         *Chg = REG_ALL;
         return;
@@ -448,10 +448,10 @@ void GetFuncInfo (const char* Name, unsigned short* Use, unsigned short* Chg)
             *Chg = Info->Chg;
         } else {
             /* It's an internal function we have no information for. If in
-             * debug mode, output an additional warning, so we have a chance
-             * to fix it. Otherwise assume that the internal function will
-             * use and change all registers.
-             */
+            ** debug mode, output an additional warning, so we have a chance
+            ** to fix it. Otherwise assume that the internal function will
+            ** use and change all registers.
+            */
             if (Debug) {
                 fprintf (stderr, "No info about internal function `%s'\n", Name);
             }
@@ -462,8 +462,8 @@ void GetFuncInfo (const char* Name, unsigned short* Use, unsigned short* Chg)
     }
 
     /* Function not found - assume that the primary register is input, and all
-     * registers are changed
-     */
+    ** registers are changed
+    */
     *Use = REG_EAXY;
     *Chg = REG_ALL;
 }
@@ -478,8 +478,8 @@ static int CompareZPInfo (const void* Name, const void* Info)
     const ZPInfo* E = (const ZPInfo*) Info;
 
     /* Do the compare. Be careful because of the length (Info may contain
-     * more than just the zeropage name).
-     */
+    ** more than just the zeropage name).
+    */
     if (E->Len == 0) {
         /* Do a full compare */
         return strcmp (N, E->Name);
@@ -498,8 +498,8 @@ static int CompareZPInfo (const void* Name, const void* Info)
 
 const ZPInfo* GetZPInfo (const char* Name)
 /* If the given name is a zero page symbol, return a pointer to the info
- * struct for this symbol, otherwise return NULL.
- */
+** struct for this symbol, otherwise return NULL.
+*/
 {
     /* Search for the zp location in the list */
     return bsearch (Name, ZPInfoTable, ZPInfoCount,
@@ -523,8 +523,8 @@ static unsigned GetRegInfo2 (CodeSeg* S,
         unsigned R;
 
         /* Check if we have already visited the current code entry. If so,
-         * bail out.
-         */
+        ** bail out.
+        */
         if (CE_HasMark (E)) {
             break;
         }
@@ -542,8 +542,8 @@ static unsigned GetRegInfo2 (CodeSeg* S,
         }
         if (R != REG_NONE) {
             /* We are not interested in the use of any register that has been
-             * used before.
-             */
+            ** used before.
+            */
             R &= ~Unused;
             /* Remember the remaining registers */
             Used |= R;
@@ -552,8 +552,8 @@ static unsigned GetRegInfo2 (CodeSeg* S,
         /* Evaluate the changed registers */
         if ((R = E->Chg) != REG_NONE) {
             /* We are not interested in the use of any register that has been
-             * used before.
-             */
+            ** used before.
+            */
             R &= ~Used;
             /* Remember the remaining registers */
             Unused |= R;
@@ -570,8 +570,8 @@ static unsigned GetRegInfo2 (CodeSeg* S,
         }
 
         /* If we have an unconditional branch, follow this branch if possible,
-         * otherwise we're done.
-         */
+        ** otherwise we're done.
+        */
         if ((E->Info & OF_UBRA) != 0) {
 
             /* Does this jump have a valid target? */
@@ -587,9 +587,9 @@ static unsigned GetRegInfo2 (CodeSeg* S,
             }
 
         /* In case of conditional branches, follow the branch if possible and
-         * follow the normal flow (branch not taken) afterwards. If we cannot
-         * follow the branch, we're done.
-         */
+        ** follow the normal flow (branch not taken) afterwards. If we cannot
+        ** follow the branch, we're done.
+        */
         } else if ((E->Info & OF_CBRA) != 0) {
 
             /* Recursively determine register usage at the branch target */
@@ -604,8 +604,8 @@ static unsigned GetRegInfo2 (CodeSeg* S,
             } else {
 
                 /* Jump to external label. This will effectively exit the
-                 * function, so we use the exitregs information here.
-                 */
+                ** function, so we use the exitregs information here.
+                */
                 U1 = S->ExitRegs;
 
             }
@@ -677,8 +677,8 @@ static unsigned GetRegInfo1 (CodeSeg* S,
 
 unsigned GetRegInfo (struct CodeSeg* S, unsigned Index, unsigned Wanted)
 /* Determine register usage information for the instructions starting at the
- * given index.
- */
+** given index.
+*/
 {
     CodeEntry*      E;
     Collection      Visited;    /* Visited entries */
@@ -748,9 +748,9 @@ int RegEAXUsed (struct CodeSeg* S, unsigned Index)
 
 unsigned GetKnownReg (unsigned Use, const RegContents* RC)
 /* Return the register or zero page location from the set in Use, thats
- * contents are known. If Use does not contain any register, or if the
- * register in question does not have a known value, return REG_NONE.
- */
+** contents are known. If Use does not contain any register, or if the
+** register in question does not have a known value, return REG_NONE.
+*/
 {
     if ((Use & REG_A) != 0) {
         return (RC == 0 || RC->RegA >= 0)? REG_A : REG_NONE;
@@ -796,9 +796,9 @@ static cmp_t FindCmpCond (const char* Code, unsigned CodeLen)
 
 cmp_t FindBoolCmpCond (const char* Name)
 /* Check if the given string is the name of one of the boolean transformer
- * subroutine, and if so, return the condition that is evaluated by this
- * routine. Return CMP_INV if the condition is not recognised.
- */
+** subroutine, and if so, return the condition that is evaluated by this
+** routine. Return CMP_INV if the condition is not recognised.
+*/
 {
     /* Check for the correct subroutine name */
     if (strncmp (Name, "bool", 4) == 0) {
@@ -814,8 +814,8 @@ cmp_t FindBoolCmpCond (const char* Name)
 
 cmp_t FindTosCmpCond (const char* Name)
 /* Check if this is a call to one of the TOS compare functions (tosgtax).
- * Return the condition code or CMP_INV on failure.
- */
+** Return the condition code or CMP_INV on failure.
+*/
 {
     unsigned Len = strlen (Name);
 
index 59fc8e05d6561bdd3b6d1d47154a92add3eace90..be0bfbf01f1482178cfb23ed4c73bff6a455d69b 100644 (file)
@@ -128,19 +128,19 @@ typedef enum {
 
 void GetFuncInfo (const char* Name, unsigned short* Use, unsigned short* Chg);
 /* For the given function, lookup register information and store it into
- * the given variables. If the function is unknown, assume it will use and
- * load all registers.
- */
+** the given variables. If the function is unknown, assume it will use and
+** load all registers.
+*/
 
 const ZPInfo* GetZPInfo (const char* Name);
 /* If the given name is a zero page symbol, return a pointer to the info
- * struct for this symbol, otherwise return NULL.
- */
+** struct for this symbol, otherwise return NULL.
+*/
 
 unsigned GetRegInfo (struct CodeSeg* S, unsigned Index, unsigned Wanted);
 /* Determine register usage information for the instructions starting at the
- * given index.
- */
+** given index.
+*/
 
 int RegAUsed (struct CodeSeg* S, unsigned Index);
 /* Check if the value in A is used. */
@@ -159,20 +159,20 @@ int RegEAXUsed (struct CodeSeg* S, unsigned Index);
 
 unsigned GetKnownReg (unsigned Use, const struct RegContents* RC);
 /* Return the register or zero page location from the set in Use, thats
- * contents are known. If Use does not contain any register, or if the
- * register in question does not have a known value, return REG_NONE.
- */
+** contents are known. If Use does not contain any register, or if the
+** register in question does not have a known value, return REG_NONE.
+*/
 
 cmp_t FindBoolCmpCond (const char* Name);
 /* Check if the given string is the name of one of the boolean transformer
- * subroutine, and if so, return the condition that is evaluated by this
- * routine. Return CMP_INV if the condition is not recognised.
- */
+** subroutine, and if so, return the condition that is evaluated by this
+** routine. Return CMP_INV if the condition is not recognised.
+*/
 
 cmp_t FindTosCmpCond (const char* Name);
 /* Check if this is a call to one of the TOS compare functions (tosgtax).
- * Return the condition code or CMP_INV on failure.
- */
+** Return the condition code or CMP_INV on failure.
+*/
 
 
 
index f528f666d567a123c6533f206b2abe00a8954927..f36520835bef31d126ec1d0e96f9469981c7225e 100644 (file)
@@ -101,8 +101,8 @@ void CL_AddRef (CodeLabel* L, struct CodeEntry* E)
 
 void CL_MoveRefs (CodeLabel* OldLabel, CodeLabel* NewLabel)
 /* Move all references to OldLabel to point to NewLabel. OldLabel will have no
- * more references on return.
- */
+** more references on return.
+*/
 {
     /* Walk through all instructions referencing the old label */
     unsigned Count = CL_GetRefCount (OldLabel);
index 480d3a15b131aa86adaf6cacfc330d0a7b82c2ee..103049b2323002599933b2efb73fe28a7e127664 100644 (file)
@@ -108,8 +108,8 @@ void CL_AddRef (CodeLabel* L, struct CodeEntry* E);
 
 void CL_MoveRefs (CodeLabel* OldLabel, CodeLabel* NewLabel);
 /* Move all references to OldLabel to point to NewLabel. OldLabel will have no
- * more references on return.
- */
+** more references on return.
+*/
 
 void CL_Output (const CodeLabel* L);
 /* Output the code label to the output file */
index 566fdf954dfbfa92ffe02c2d313dfdf62a24eacf..9eb17510504634eafd85d5d657b2929da52acfe9 100644 (file)
@@ -80,8 +80,8 @@
 
 static unsigned OptLoad1 (CodeSeg* S)
 /* Search for a call to ldaxysp where X is not used later and replace it by
- * a load of just the A register.
- */
+** a load of just the A register.
+*/
 {
     unsigned I;
     unsigned Changes = 0;
@@ -161,8 +161,8 @@ static unsigned OptLoad2 (CodeSeg* S)
                 !RegXUsed (S, I+3)) {
 
                 /* A/X are stored into memory somewhere and X is not used
-                 * later
-                 */
+                ** later
+                */
 
                 /* lda (sp),y */
                 X = NewCodeEntry (OP65_LDA, AM65_ZP_INDY, "sp", 0, L[0]->LI);
@@ -251,8 +251,8 @@ static unsigned OptLoad3 (CodeSeg* S)
             CodeEntry* N;
 
             /* If we had a preceeding load that is identical, remove this one.
-             * If it is not identical, or we didn't have one, remember it.
-             */
+            ** If it is not identical, or we didn't have one, remember it.
+            */
             if (Load != 0                               &&
                 E->OPC == Load->OPC                     &&
                 E->AM == Load->AM                       &&
@@ -299,21 +299,21 @@ static unsigned OptLoad3 (CodeSeg* S)
 
 static unsigned OptDecouple (CodeSeg* S)
 /* Decouple operations, that is, do the following replacements:
- *
- *   dex        -> ldx #imm
- *   inx        -> ldx #imm
- *   dey        -> ldy #imm
- *   iny        -> ldy #imm
- *   tax        -> ldx #imm
- *   txa        -> lda #imm
- *   tay        -> ldy #imm
- *   tya        -> lda #imm
- *   lda zp     -> lda #imm
- *   ldx zp     -> ldx #imm
- *   ldy zp     -> ldy #imm
- *
- * Provided that the register values are known of course.
- */
+**
+**   dex        -> ldx #imm
+**   inx        -> ldx #imm
+**   dey        -> ldy #imm
+**   iny        -> ldy #imm
+**   tax        -> ldx #imm
+**   txa        -> lda #imm
+**   tay        -> ldy #imm
+**   tya        -> lda #imm
+**   lda zp     -> lda #imm
+**   ldx zp     -> ldx #imm
+**   ldy zp     -> ldy #imm
+**
+** Provided that the register values are known of course.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -529,9 +529,9 @@ static unsigned OptDecouple (CodeSeg* S)
 
 static unsigned IsDecSP (const CodeEntry* E)
 /* Check if this is an insn that decrements the stack pointer. If so, return
- * the decrement. If not, return zero.
- * The function expects E to be a subroutine call.
- */
+** the decrement. If not, return zero.
+** The function expects E to be a subroutine call.
+*/
 {
     if (strncmp (E->Arg, "decsp", 5) == 0) {
         if (E->Arg[5] >= '1' && E->Arg[5] <= '8') {
@@ -549,8 +549,8 @@ static unsigned IsDecSP (const CodeEntry* E)
 
 static unsigned OptStackPtrOps (CodeSeg* S)
 /* Merge adjacent calls to decsp into one. NOTE: This function won't merge all
- * known cases!
- */
+** known cases!
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -851,8 +851,8 @@ static int CmpOptStep (const void* Key, const void* Func)
 
 static OptFunc* FindOptFunc (const char* Name)
 /* Find an optimizer step by name in the table and return a pointer. Return
- * NULL if no such step is found.
- */
+** NULL if no such step is found.
+*/
 {
     /* Search for the function in the list */
     OptFunc** O = bsearch (Name, OptFuncs, OPTFUNC_COUNT, sizeof (OptFuncs[0]), CmpOptStep);
@@ -863,8 +863,8 @@ static OptFunc* FindOptFunc (const char* Name)
 
 static OptFunc* GetOptFunc (const char* Name)
 /* Find an optimizer step by name in the table and return a pointer. Print an
- * error and call AbEnd if not found.
- */
+** error and call AbEnd if not found.
+*/
 {
     /* Search for the function in the list */
     OptFunc* F = FindOptFunc (Name);
@@ -1074,8 +1074,8 @@ static unsigned RunOptFunc (CodeSeg* S, OptFunc* F, unsigned Max)
     unsigned Changes, C;
 
     /* Don't run the function if it is disabled or if it is prohibited by the
-     * code size factor
-     */
+    ** code size factor
+    */
     if (F->Disabled || F->CodeSizeFactor > S->CodeSizeFactor) {
         return 0;
     }
@@ -1113,10 +1113,10 @@ static unsigned RunOptFunc (CodeSeg* S, OptFunc* F, unsigned Max)
 
 static unsigned RunOptGroup1 (CodeSeg* S)
 /* Run the first group of optimization steps. These steps translate known
- * patterns emitted by the code generator into more optimal patterns. Order
- * of the steps is important, because some of the steps done earlier cover
- * the same patterns as later steps as subpatterns.
- */
+** patterns emitted by the code generator into more optimal patterns. Order
+** of the steps is important, because some of the steps done earlier cover
+** the same patterns as later steps as subpatterns.
+*/
 {
     unsigned Changes = 0;
 
@@ -1168,10 +1168,10 @@ static unsigned RunOptGroup1 (CodeSeg* S)
 
 static unsigned RunOptGroup2 (CodeSeg* S)
 /* Run one group of optimization steps. This step involves just decoupling
- * instructions by replacing them by instructions that do not depend on
- * previous instructions. This makes it easier to find instructions that
- * aren't used.
- */
+** instructions by replacing them by instructions that do not depend on
+** previous instructions. This makes it easier to find instructions that
+** aren't used.
+*/
 {
     unsigned Changes = 0;
 
@@ -1185,9 +1185,9 @@ static unsigned RunOptGroup2 (CodeSeg* S)
 
 static unsigned RunOptGroup3 (CodeSeg* S)
 /* Run one group of optimization steps. These steps depend on each other,
- * that means that one step may allow another step to do additional work,
- * so we will repeat the steps as long as we see any changes.
- */
+** that means that one step may allow another step to do additional work,
+** so we will repeat the steps as long as we see any changes.
+*/
 {
     unsigned Changes, C;
 
@@ -1254,8 +1254,8 @@ static unsigned RunOptGroup3 (CodeSeg* S)
 
 static unsigned RunOptGroup4 (CodeSeg* S)
 /* Run another round of pattern replacements. These are done late, since there
- * may be better replacements before.
- */
+** may be better replacements before.
+*/
 {
     unsigned Changes = 0;
 
@@ -1287,9 +1287,9 @@ static unsigned RunOptGroup5 (CodeSeg* S)
         Changes += RunOptFunc (S, &DOpt65C02Stores, 1);
         if (Changes) {
             /* The 65C02 replacement codes do often make the use of a register
-             * value unnecessary, so if we have changes, run another load
-             * removal pass.
-             */
+            ** value unnecessary, so if we have changes, run another load
+            ** removal pass.
+            */
             Changes += RunOptFunc (S, &DOptUnusedLoads, 1);
         }
     }
@@ -1302,18 +1302,18 @@ static unsigned RunOptGroup5 (CodeSeg* S)
 
 static unsigned RunOptGroup6 (CodeSeg* S)
 /* This one is quite special. It tries to replace "lda (sp),y" by "lda (sp,x)".
- * The latter is ony cycle slower, but if we're able to remove the necessary
- * load of the Y register, because X is zero anyway, we gain 1 cycle and
- * shorten the code by one (transfer) or two bytes (load). So what we do is
- * to replace the insns, remove unused loads, and then change back all insns
- * where Y is still zero (meaning that the load has not been removed).
- */
+** The latter is ony cycle slower, but if we're able to remove the necessary
+** load of the Y register, because X is zero anyway, we gain 1 cycle and
+** shorten the code by one (transfer) or two bytes (load). So what we do is
+** to replace the insns, remove unused loads, and then change back all insns
+** where Y is still zero (meaning that the load has not been removed).
+*/
 {
     unsigned Changes = 0;
 
     /* This group will only run for a standard 6502, because the 65C02 has a
-     * better addressing mode that covers this case.
-     */
+    ** better addressing mode that covers this case.
+    */
     if ((CPUIsets[CPU] & CPU_ISET_65SC02) == 0) {
         Changes += RunOptFunc (S, &DOptIndLoads1, 1);
         Changes += RunOptFunc (S, &DOptUnusedLoads, 1);
@@ -1328,21 +1328,21 @@ static unsigned RunOptGroup6 (CodeSeg* S)
 
 static unsigned RunOptGroup7 (CodeSeg* S)
 /* The last group of optimization steps. Adjust branches, do size optimizations.
- */
+*/
 {
     unsigned Changes = 0;
     unsigned C;
 
     /* Optimize for size, that is replace operations by shorter ones, even
-     * if this does hinder further optimizations (no problem since we're
-     * done soon).
-     */
+    ** if this does hinder further optimizations (no problem since we're
+    ** done soon).
+    */
     C = RunOptFunc (S, &DOptSize1, 1);
     if (C) {
         Changes += C;
         /* Run some optimization passes again, since the size optimizations
-         * may have opened new oportunities.
-         */
+        ** may have opened new oportunities.
+        */
         Changes += RunOptFunc (S, &DOptUnusedLoads, 1);
         Changes += RunOptFunc (S, &DOptUnusedStores, 1);
         Changes += RunOptFunc (S, &DOptJumpTarget1, 5);
@@ -1353,8 +1353,8 @@ static unsigned RunOptGroup7 (CodeSeg* S)
     if (C) {
         Changes += C;
         /* Run some optimization passes again, since the size optimizations
-         * may have opened new oportunities.
-         */
+        ** may have opened new oportunities.
+        */
         Changes += RunOptFunc (S, &DOptUnusedLoads, 1);
         Changes += RunOptFunc (S, &DOptJumpTarget1, 5);
         Changes += RunOptFunc (S, &DOptStore5, 1);
@@ -1366,8 +1366,8 @@ static unsigned RunOptGroup7 (CodeSeg* S)
     Changes += RunOptFunc (S, &DOptBranchDist, 3);
 
     /* Replace conditional branches to RTS. If we had changes, we must run dead
-     * code elimination again, since the change may have introduced dead code.
-     */
+    ** code elimination again, since the change may have introduced dead code.
+    */
     C = RunOptFunc (S, &DOptRTSJumps2, 1);
     Changes += C;
     if (C) {
index 50d8938470f14f0dd9c98ec89dce24ca03450cdb..a808a26f7ed72dcfe02fc19f7e37250adb4a21cf 100644 (file)
@@ -87,8 +87,8 @@ static void CS_PrintFunctionHeader (const CodeSeg* S)
 
 static void CS_MoveLabelsToEntry (CodeSeg* S, CodeEntry* E)
 /* Move all labels from the label pool to the given entry and remove them
- * from the pool.
- */
+** from the pool.
+*/
 {
     /* Transfer the labels if we have any */
     unsigned I;
@@ -203,8 +203,8 @@ static const char* SkipSpace (const char* S)
 static const char* ReadToken (const char* L, const char* Term,
                               char* Buf, unsigned BufSize)
 /* Read the next token into Buf, return the updated line pointer. The
- * token is terminated by one of the characters given in term.
- */
+** token is terminated by one of the characters given in term.
+*/
 {
     /* Read/copy the token */
     unsigned I = 0;
@@ -214,8 +214,8 @@ static const char* ReadToken (const char* L, const char* Term,
             Buf[I] = *L;
         } else if (I == BufSize-1) {
             /* Cannot store this character, this is an input error (maybe
-             * identifier too long or similar).
-             */
+            ** identifier too long or similar).
+            */
             Error ("ASM code error: syntax error");
         }
         ++I;
@@ -238,11 +238,11 @@ static const char* ReadToken (const char* L, const char* Term,
 
 static CodeEntry* ParseInsn (CodeSeg* S, LineInfo* LI, const char* L)
 /* Parse an instruction nnd generate a code entry from it. If the line contains
- * errors, output an error message and return NULL.
- * For simplicity, we don't accept the broad range of input a "real" assembler
- * does. The instruction and the argument are expected to be separated by
- * white space, for example.
- */
+** errors, output an error message and return NULL.
+** For simplicity, we don't accept the broad range of input a "real" assembler
+** does. The instruction and the argument are expected to be separated by
+** white space, for example.
+*/
 {
     char                Mnemo[IDENTSIZE+10];
     const OPCDesc*      OPC;
@@ -265,8 +265,8 @@ static CodeEntry* ParseInsn (CodeSeg* S, LineInfo* LI, const char* L)
         CS_AddLabel (S, Mnemo);
 
         /* If we have reached end of line, bail out, otherwise a mnemonic
-         * may follow.
-         */
+        ** may follow.
+        */
         if (*L == '\0') {
             return 0;
         }
@@ -415,10 +415,10 @@ static CodeEntry* ParseInsn (CodeSeg* S, LineInfo* LI, const char* L)
     }
 
     /* If the instruction is a branch, check for the label and generate it
-     * if it does not exist. This may lead to unused labels (if the label
-     * is actually an external one) which are removed by the CS_MergeLabels
-     * function later.
-     */
+    ** if it does not exist. This may lead to unused labels (if the label
+    ** is actually an external one) which are removed by the CS_MergeLabels
+    ** function later.
+    */
     Label = 0;
     if (AM == AM65_BRA) {
 
@@ -434,8 +434,8 @@ static CodeEntry* ParseInsn (CodeSeg* S, LineInfo* LI, const char* L)
     }
 
     /* We do now have the addressing mode in AM. Allocate a new CodeEntry
-     * structure and initialize it.
-     */
+    ** structure and initialize it.
+    */
     E = NewCodeEntry (OPC->OPC, AM, Arg, Label, LI);
 
     /* Return the new code entry */
@@ -469,8 +469,8 @@ CodeSeg* NewCodeSeg (const char* SegName, SymEntry* Func)
     }
 
     /* If we have a function given, get the return type of the function.
-     * Assume ANY return type besides void will use the A and X registers.
-     */
+    ** Assume ANY return type besides void will use the A and X registers.
+    */
     if (S->Func && !IsTypeVoid ((RetType = GetFuncReturn (Func->Type)))) {
         if (SizeOf (RetType) == SizeOf (type_long)) {
             S->ExitRegs = REG_EAX;
@@ -564,8 +564,8 @@ void CS_AddLine (CodeSeg* S, LineInfo* LI, const char* Format, ...)
 
 void CS_InsertEntry (CodeSeg* S, struct CodeEntry* E, unsigned Index)
 /* Insert the code entry at the index given. Following code entries will be
- * moved to slots with higher indices.
- */
+** moved to slots with higher indices.
+*/
 {
     /* Insert the entry into the collection */
     CollInsert (&S->Entries, E, Index);
@@ -575,27 +575,27 @@ void CS_InsertEntry (CodeSeg* S, struct CodeEntry* E, unsigned Index)
 
 void CS_DelEntry (CodeSeg* S, unsigned Index)
 /* Delete an entry from the code segment. This includes moving any associated
- * labels, removing references to labels and even removing the referenced labels
- * if the reference count drops to zero.
- * Note: Labels are moved forward if possible, that is, they are moved to the
- * next insn (not the preceeding one).
- */
+** labels, removing references to labels and even removing the referenced labels
+** if the reference count drops to zero.
+** Note: Labels are moved forward if possible, that is, they are moved to the
+** next insn (not the preceeding one).
+*/
 {
     /* Get the code entry for the given index */
     CodeEntry* E = CS_GetEntry (S, Index);
 
     /* If the entry has a labels, we have to move this label to the next insn.
-     * If there is no next insn, move the label into the code segement label
-     * pool. The operation is further complicated by the fact that the next
-     * insn may already have a label. In that case change all reference to
-     * this label and delete the label instead of moving it.
-     */
+    ** If there is no next insn, move the label into the code segement label
+    ** pool. The operation is further complicated by the fact that the next
+    ** insn may already have a label. In that case change all reference to
+    ** this label and delete the label instead of moving it.
+    */
     unsigned Count = CE_GetLabelCount (E);
     if (Count > 0) {
 
         /* The instruction has labels attached. Check if there is a next
-         * instruction.
-         */
+        ** instruction.
+        */
         if (Index == CS_GetEntryCount (S)-1) {
 
             /* No next instruction, move to the codeseg label pool */
@@ -613,8 +613,8 @@ void CS_DelEntry (CodeSeg* S, unsigned Index)
     }
 
     /* If this insn references a label, remove the reference. And, if the
-     * the reference count for this label drops to zero, remove this label.
-     */
+    ** the reference count for this label drops to zero, remove this label.
+    */
     if (E->JumpTo) {
         /* Remove the reference */
         CS_RemoveLabelRef (S, E);
@@ -631,12 +631,12 @@ void CS_DelEntry (CodeSeg* S, unsigned Index)
 
 void CS_DelEntries (CodeSeg* S, unsigned Start, unsigned Count)
 /* Delete a range of code entries. This includes removing references to labels,
- * labels attached to the entries and so on.
- */
+** labels attached to the entries and so on.
+*/
 {
     /* Start deleting the entries from the rear, because this involves less
-     * memory moving.
-     */
+    ** memory moving.
+    */
     while (Count--) {
         CS_DelEntry (S, Start + Count);
     }
@@ -646,14 +646,14 @@ void CS_DelEntries (CodeSeg* S, unsigned Start, unsigned Count)
 
 void CS_MoveEntries (CodeSeg* S, unsigned Start, unsigned Count, unsigned NewPos)
 /* Move a range of entries from one position to another. Start is the index
- * of the first entry to move, Count is the number of entries and NewPos is
- * the index of the target entry. The entry with the index Start will later
- * have the index NewPos. All entries with indices NewPos and above are
- * moved to higher indices. If the code block is moved to the end of the
- * current code, and if pending labels exist, these labels will get attached
- * to the first instruction of the moved block (the first one after the
- * current code end)
- */
+** of the first entry to move, Count is the number of entries and NewPos is
+** the index of the target entry. The entry with the index Start will later
+** have the index NewPos. All entries with indices NewPos and above are
+** moved to higher indices. If the code block is moved to the end of the
+** current code, and if pending labels exist, these labels will get attached
+** to the first instruction of the moved block (the first one after the
+** current code end)
+*/
 {
     /* Transparently handle an empty range */
     if (Count == 0) {
@@ -661,8 +661,8 @@ void CS_MoveEntries (CodeSeg* S, unsigned Start, unsigned Count, unsigned NewPos
     }
 
     /* If NewPos is at the end of the code segment, move any labels from the
-     * label pool to the first instruction of the moved range.
-     */
+    ** label pool to the first instruction of the moved range.
+    */
     if (NewPos == CS_GetEntryCount (S)) {
         CS_MoveLabelsToEntry (S, CS_GetEntry (S, Start));
     }
@@ -675,8 +675,8 @@ void CS_MoveEntries (CodeSeg* S, unsigned Start, unsigned Count, unsigned NewPos
 
 struct CodeEntry* CS_GetPrevEntry (CodeSeg* S, unsigned Index)
 /* Get the code entry preceeding the one with the index Index. If there is no
- * preceeding code entry, return NULL.
- */
+** preceeding code entry, return NULL.
+*/
 {
     if (Index == 0) {
         /* This is the first entry */
@@ -691,8 +691,8 @@ struct CodeEntry* CS_GetPrevEntry (CodeSeg* S, unsigned Index)
 
 struct CodeEntry* CS_GetNextEntry (CodeSeg* S, unsigned Index)
 /* Get the code entry following the one with the index Index. If there is no
- * following code entry, return NULL.
- */
+** following code entry, return NULL.
+*/
 {
     if (Index >= CollCount (&S->Entries)-1) {
         /* This is the last entry */
@@ -708,8 +708,8 @@ struct CodeEntry* CS_GetNextEntry (CodeSeg* S, unsigned Index)
 int CS_GetEntries (CodeSeg* S, struct CodeEntry** List,
                    unsigned Start, unsigned Count)
 /* Get Count code entries into List starting at index start. Return true if
- * we got the lines, return false if not enough lines were available.
- */
+** we got the lines, return false if not enough lines were available.
+*/
 {
     /* Check if enough entries are available */
     if (Start + Count > CollCount (&S->Entries)) {
@@ -739,9 +739,9 @@ unsigned CS_GetEntryIndex (CodeSeg* S, struct CodeEntry* E)
 
 int CS_RangeHasLabel (CodeSeg* S, unsigned Start, unsigned Count)
 /* Return true if any of the code entries in the given range has a label
- * attached. If the code segment does not span the given range, check the
- * possible span instead.
- */
+** attached. If the code segment does not span the given range, check the
+** possible span instead.
+*/
 {
     unsigned EntryCount = CS_GetEntryCount(S);
 
@@ -752,8 +752,8 @@ int CS_RangeHasLabel (CodeSeg* S, unsigned Start, unsigned Count)
     }
 
     /* Check each entry. Since we have validated the index above, we may
-     * use the unchecked access function in the loop which is faster.
-     */
+    ** use the unchecked access function in the loop which is faster.
+    */
     while (Count--) {
         const CodeEntry* E = CollAtUnchecked (&S->Entries, Start++);
         if (CE_HasLabel (E)) {
@@ -805,8 +805,8 @@ CodeLabel* CS_AddLabel (CodeSeg* S, const char* Name)
 
 CodeLabel* CS_GenLabel (CodeSeg* S, struct CodeEntry* E)
 /* If the code entry E does already have a label, return it. Otherwise
- * create a new label, attach it to E and return it.
- */
+** create a new label, attach it to E and return it.
+*/
 {
     CodeLabel* L;
 
@@ -856,10 +856,10 @@ void CS_DelLabel (CodeSeg* S, CodeLabel* L)
     CollDeleteAll (&L->JumpFrom);
 
     /* Remove the reference to the owning instruction if it has one. The
-     * function may be called for a label without an owner when deleting
-     * unfinished parts of the code. This is unfortunate since it allows
-     * errors to slip through.
-     */
+    ** function may be called for a label without an owner when deleting
+    ** unfinished parts of the code. This is unfortunate since it allows
+    ** errors to slip through.
+    */
     if (L->Owner) {
         CollDeleteItem (&L->Owner->Labels, L);
     }
@@ -872,16 +872,16 @@ void CS_DelLabel (CodeSeg* S, CodeLabel* L)
 
 void CS_MergeLabels (CodeSeg* S)
 /* Merge code labels. That means: For each instruction, remove all labels but
- * one and adjust references accordingly.
- */
+** one and adjust references accordingly.
+*/
 {
     unsigned I;
     unsigned J;
 
     /* First, remove all labels from the label symbol table that don't have an
-     * owner (this means that they are actually external labels but we didn't
-     * know that previously since they may have also been forward references).
-     */
+    ** owner (this means that they are actually external labels but we didn't
+    ** know that previously since they may have also been forward references).
+    */
     for (I = 0; I < CS_LABEL_HASH_SIZE; ++I) {
 
         /* Get the first label in this hash chain */
@@ -898,9 +898,9 @@ void CS_MergeLabels (CodeSeg* S)
                     /* Get the entry referencing this label */
                     CodeEntry* E = CL_GetRef (X, J);
                     /* And remove the reference. Do NOT call CE_ClearJumpTo
-                     * here, because this will also clear the label name,
-                     * which is not what we want.
-                     */
+                    ** here, because this will also clear the label name,
+                    ** which is not what we want.
+                    */
                     E->JumpTo = 0;
                 }
 
@@ -937,10 +937,10 @@ void CS_MergeLabels (CodeSeg* S)
         RefLab = CE_GetLabel (E, 0);
 
         /* Walk through the remaining labels and change references to these
-         * labels to a reference to the one and only label. Delete the labels
-         * that are no longer used. To increase performance, walk backwards
-         * through the list.
-         */
+        ** labels to a reference to the one and only label. Delete the labels
+        ** that are no longer used. To increase performance, walk backwards
+        ** through the list.
+        */
         for (J = LabelCount-1; J >= 1; --J) {
 
             /* Get the next label */
@@ -954,9 +954,9 @@ void CS_MergeLabels (CodeSeg* S)
         }
 
         /* The reference label is the only remaining label. Check if there
-         * are any references to this label, and delete it if this is not
-         * the case.
-         */
+        ** are any references to this label, and delete it if this is not
+        ** the case.
+        */
         if (CollCount (&RefLab->JumpFrom) == 0) {
             /* Delete the label */
             CS_DelLabel (S, RefLab);
@@ -968,10 +968,10 @@ void CS_MergeLabels (CodeSeg* S)
 
 void CS_MoveLabels (CodeSeg* S, struct CodeEntry* Old, struct CodeEntry* New)
 /* Move all labels from Old to New. The routine will move the labels itself
- * if New does not have any labels, and move references if there is at least
- * a label for new. If references are moved, the old label is deleted
- * afterwards.
- */
+** if New does not have any labels, and move references if there is at least
+** a label for new. If references are moved, the old label is deleted
+** afterwards.
+*/
 {
     /* Get the number of labels to move */
     unsigned OldLabelCount = CE_GetLabelCount (Old);
@@ -1011,10 +1011,10 @@ void CS_MoveLabels (CodeSeg* S, struct CodeEntry* Old, struct CodeEntry* New)
 
 void CS_RemoveLabelRef (CodeSeg* S, struct CodeEntry* E)
 /* Remove the reference between E and the label it jumps to. The reference
- * will be removed on both sides and E->JumpTo will be 0 after that. If
- * the reference was the only one for the label, the label will get
- * deleted.
- */
+** will be removed on both sides and E->JumpTo will be 0 after that. If
+** the reference was the only one for the label, the label will get
+** deleted.
+*/
 {
     /* Get a pointer to the label and make sure it exists */
     CodeLabel* L = E->JumpTo;
@@ -1036,9 +1036,9 @@ void CS_RemoveLabelRef (CodeSeg* S, struct CodeEntry* E)
 
 void CS_MoveLabelRef (CodeSeg* S, struct CodeEntry* E, CodeLabel* L)
 /* Change the reference of E to L instead of the current one. If this
- * was the only reference to the old label, the old label will get
- * deleted.
- */
+** was the only reference to the old label, the old label will get
+** deleted.
+*/
 {
     /* Get the old label */
     CodeLabel* OldLabel = E->JumpTo;
@@ -1057,10 +1057,10 @@ void CS_MoveLabelRef (CodeSeg* S, struct CodeEntry* E, CodeLabel* L)
 
 void CS_DelCodeRange (CodeSeg* S, unsigned First, unsigned Last)
 /* Delete all entries between first and last, both inclusive. The function
- * can only handle basic blocks (First is the only entry, Last the only exit)
- * and no open labels. It will call FAIL if any of these preconditions are
- * violated.
- */
+** can only handle basic blocks (First is the only entry, Last the only exit)
+** and no open labels. It will call FAIL if any of these preconditions are
+** violated.
+*/
 {
     unsigned   I;
     CodeEntry* FirstEntry;
@@ -1069,17 +1069,17 @@ void CS_DelCodeRange (CodeSeg* S, unsigned First, unsigned Last)
     CHECK (First <= Last && Last < CS_GetEntryCount (S));
 
     /* If Last is actually the last insn, call CS_DelCodeAfter instead, which
-     * is more flexible in this case.
-     */
+    ** is more flexible in this case.
+    */
     if (Last == CS_GetEntryCount (S) - 1) {
         CS_DelCodeAfter (S, First);
         return;
     }
 
     /* Get the first entry and check if it has any labels. If it has, move
-     * them to the insn following Last. If Last is the last insn of the code
-     * segment, make them ownerless and move them to the label pool.
-     */
+    ** them to the insn following Last. If Last is the last insn of the code
+    ** segment, make them ownerless and move them to the label pool.
+    */
     FirstEntry = CS_GetEntry (S, First);
     if (CE_HasLabel (FirstEntry)) {
         /* Get the entry following last */
@@ -1094,8 +1094,8 @@ void CS_DelCodeRange (CodeSeg* S, unsigned First, unsigned Last)
     }
 
     /* First pass: Delete all references to labels. If the reference count
-     * for a label drops to zero, delete it.
-     */
+    ** for a label drops to zero, delete it.
+    */
     for (I = Last; I >= First; --I) {
 
         /* Get the next entry */
@@ -1114,9 +1114,9 @@ void CS_DelCodeRange (CodeSeg* S, unsigned First, unsigned Last)
     }
 
     /* Second pass: Delete the instructions. If a label attached to an
-     * instruction still has references, it must be references from outside
-     * the deleted area, which is an error.
-     */
+    ** instruction still has references, it must be references from outside
+    ** the deleted area, which is an error.
+    */
     for (I = Last; I >= First; --I) {
 
         /* Get the next entry */
@@ -1142,8 +1142,8 @@ void CS_DelCodeAfter (CodeSeg* S, unsigned Last)
     unsigned Count = CS_GetEntryCount (S);
 
     /* First pass: Delete all references to labels. If the reference count
-     * for a label drops to zero, delete it.
-     */
+    ** for a label drops to zero, delete it.
+    */
     unsigned C = Count;
     while (Last < C--) {
 
@@ -1153,8 +1153,8 @@ void CS_DelCodeAfter (CodeSeg* S, unsigned Last)
         /* Check if this entry has a label reference */
         if (E->JumpTo) {
             /* If the label is a label in the label pool and this is the last
-             * reference to the label, remove the label from the pool.
-             */
+            ** reference to the label, remove the label from the pool.
+            */
             CodeLabel* L = E->JumpTo;
             int Index = CollIndex (&S->Labels, L);
             if (Index >= 0 && CollCount (&L->JumpFrom) == 1) {
@@ -1169,10 +1169,10 @@ void CS_DelCodeAfter (CodeSeg* S, unsigned Last)
     }
 
     /* Second pass: Delete the instructions. If a label attached to an
-     * instruction still has references, it must be references from outside
-     * the deleted area. Don't delete the label in this case, just make it
-     * ownerless and move it to the label pool.
-     */
+    ** instruction still has references, it must be references from outside
+    ** the deleted area. Don't delete the label in this case, just make it
+    ** ownerless and move it to the label pool.
+    */
     C = Count;
     while (Last < C--) {
 
@@ -1207,10 +1207,10 @@ void CS_ResetMarks (CodeSeg* S, unsigned First, unsigned Last)
 
 int CS_IsBasicBlock (CodeSeg* S, unsigned First, unsigned Last)
 /* Check if the given code segment range is a basic block. That is, check if
- * First is the only entrance and Last is the only exit. This means that no
- * jump/branch inside the block may jump to an insn below First or after(!)
- * Last, and that no insn may jump into this block from the outside.
- */
+** First is the only entrance and Last is the only exit. This means that no
+** jump/branch inside the block may jump to an insn below First or after(!)
+** Last, and that no insn may jump into this block from the outside.
+*/
 {
     unsigned I;
 
@@ -1221,8 +1221,8 @@ int CS_IsBasicBlock (CodeSeg* S, unsigned First, unsigned Last)
     CS_ResetMarks (S, First, Last);
 
     /* Second pass: Walk over the range checking all labels. Note: There may be
-     * label on the first insn which is ok.
-     */
+    ** label on the first insn which is ok.
+    */
     I = First + 1;
     while (I <= Last) {
 
@@ -1230,8 +1230,8 @@ int CS_IsBasicBlock (CodeSeg* S, unsigned First, unsigned Last)
         CodeEntry* E = CS_GetEntry (S, I);
 
         /* Check if this entry has one or more labels, if so, check which
-         * entries jump to this label.
-         */
+        ** entries jump to this label.
+        */
         unsigned LabelCount = CE_GetLabelCount (E);
         unsigned LabelIndex;
         for (LabelIndex = 0; LabelIndex < LabelCount; ++LabelIndex) {
@@ -1240,8 +1240,8 @@ int CS_IsBasicBlock (CodeSeg* S, unsigned First, unsigned Last)
             CodeLabel* L = CE_GetLabel (E, LabelIndex);
 
             /* Walk over all entries that jump to this label. Check for each
-             * of the entries if it is out of the range.
-             */
+            ** of the entries if it is out of the range.
+            */
             unsigned RefCount = CL_GetRefCount (L);
             unsigned RefIndex;
             for (RefIndex = 0; RefIndex < RefCount; ++RefIndex) {
@@ -1250,10 +1250,10 @@ int CS_IsBasicBlock (CodeSeg* S, unsigned First, unsigned Last)
                 CodeEntry* Ref = CL_GetRef (L, RefIndex);
 
                 /* Walk over out complete range and check if we find the
-                 * refering entry. This is cheaper than using CS_GetEntryIndex,
-                 * because CS_GetEntryIndex will search the complete code
-                 * segment and not just our range.
-                 */
+                ** refering entry. This is cheaper than using CS_GetEntryIndex,
+                ** because CS_GetEntryIndex will search the complete code
+                ** segment and not just our range.
+                */
                 unsigned J;
                 for (J = First; J <= Last; ++J) {
                     if (Ref == CS_GetEntry (S, J)) {
@@ -1262,17 +1262,17 @@ int CS_IsBasicBlock (CodeSeg* S, unsigned First, unsigned Last)
                 }
                 if (J > Last) {
                     /* We did not find the entry. This means that the jump to
-                     * out code segment entry E came from outside the range,
-                     * which in turn means that the given range is not a basic
-                     * block.
-                     */
+                    ** out code segment entry E came from outside the range,
+                    ** which in turn means that the given range is not a basic
+                    ** block.
+                    */
                     CS_ResetMarks (S, First, Last);
                     return 0;
                 }
 
                 /* If we come here, we found the entry. Mark it, so we know
-                 * that the branch to the label is in range.
-                 */
+                ** that the branch to the label is in range.
+                */
                 CE_SetMark (Ref);
             }
         }
@@ -1282,9 +1282,9 @@ int CS_IsBasicBlock (CodeSeg* S, unsigned First, unsigned Last)
     }
 
     /* Third pass: Walk again over the range and check all branches. If we
-     * find a branch that is not marked, its target is not inside the range
-     * (since we checked all the labels in the range before).
-     */
+    ** find a branch that is not marked, its target is not inside the range
+    ** (since we checked all the labels in the range before).
+    */
     I = First;
     while (I <= Last) {
 
@@ -1295,8 +1295,8 @@ int CS_IsBasicBlock (CodeSeg* S, unsigned First, unsigned Last)
         if (E->Info & (OF_UBRA | OF_CBRA)) {
             if (!CE_HasMark (E)) {
                 /* No mark means not a basic block. Before bailing out, be sure
-                 * to remove the marks from the remaining entries.
-                 */
+                ** to remove the marks from the remaining entries.
+                */
                 CS_ResetMarks (S, I+1, Last);
                 return 0;
             }
@@ -1317,18 +1317,18 @@ int CS_IsBasicBlock (CodeSeg* S, unsigned First, unsigned Last)
 
 void CS_OutputPrologue (const CodeSeg* S)
 /* If the given code segment is a code segment for a function, output the
- * assembler prologue into the file. That is: Output a comment header, switch
- * to the correct segment and enter the local function scope. If the code
- * segment is global, do nothing.
- */
+** assembler prologue into the file. That is: Output a comment header, switch
+** to the correct segment and enter the local function scope. If the code
+** segment is global, do nothing.
+*/
 {
     /* Get the function associated with the code segment */
     SymEntry* Func = S->Func;
 
     /* If the code segment is associated with a function, print a function
-     * header and enter a local scope. Be sure to switch to the correct
-     * segment before outputing the function label.
-     */
+    ** header and enter a local scope. Be sure to switch to the correct
+    ** segment before outputing the function label.
+    */
     if (Func) {
         /* Get the function descriptor */
         CS_PrintFunctionHeader (S);
@@ -1347,8 +1347,8 @@ void CS_OutputPrologue (const CodeSeg* S)
 
 void CS_OutputEpilogue (const CodeSeg* S)
 /* If the given code segment is a code segment for a function, output the
- * assembler epilogue into the file. That is: Close the local function scope.
- */
+** assembler epilogue into the file. That is: Close the local function scope.
+*/
 {
     if (S->Func) {
         WriteOutput ("\n.endproc\n\n");
@@ -1383,16 +1383,16 @@ void CS_Output (CodeSeg* S)
         /* Get the next entry */
         const CodeEntry* E = CollConstAt (&S->Entries, I);
         /* Check if the line info has changed. If so, output the source line
-         * if the option is enabled and output debug line info if the debug
-         * option is enabled.
-         */
+        ** if the option is enabled and output debug line info if the debug
+        ** option is enabled.
+        */
         if (E->LI != LI) {
             /* Line info has changed, remember the new line info */
             LI = E->LI;
 
             /* Add the source line as a comment. Beware: When line continuation
-             * was used, the line may contain newlines.
-             */
+            ** was used, the line may contain newlines.
+            */
             if (AddSource) {
                 const char* L = LI->Line;
                 WriteOutput (";\n; ");
@@ -1466,8 +1466,8 @@ void CS_GenRegInfo (CodeSeg* S)
         CurrentRegs = &Regs;
 
         /* Walk over all insns and note just the changes from one insn to the
-         * next one.
-         */
+        ** next one.
+        */
         WasJump = 0;
         for (I = 0; I < CS_GetEntryCount (S); ++I) {
 
@@ -1481,13 +1481,13 @@ void CS_GenRegInfo (CodeSeg* S)
             if (LabelCount > 0) {
 
                 /* Loop over all entry points that jump here. If these entry
-                 * points already have register info, check if all values are
-                 * known and identical. If all values are identical, and the
-                 * preceeding instruction was not an unconditional branch, check
-                 * if the register value on exit of the preceeding instruction
-                 * is also identical. If all these values are identical, the
-                 * value of a register is known, otherwise it is unknown.
-                 */
+                ** points already have register info, check if all values are
+                ** known and identical. If all values are identical, and the
+                ** preceeding instruction was not an unconditional branch, check
+                ** if the register value on exit of the preceeding instruction
+                ** is also identical. If all these values are identical, the
+                ** value of a register is known, otherwise it is unknown.
+                */
                 CodeLabel* Label = CE_GetLabel (E, 0);
                 unsigned Entry;
                 if (WasJump) {
@@ -1509,11 +1509,11 @@ void CS_GenRegInfo (CodeSeg* S)
                     CodeEntry* J = CL_GetRef (Label, Entry);
                     if (J->RI == 0) {
                         /* No register info for this entry. This means that the
-                         * instruction that jumps here is at higher addresses and
-                         * the jump is a backward jump. We need a second run to
-                         * get the register info right in this case. Until then,
-                         * assume unknown register contents.
-                         */
+                        ** instruction that jumps here is at higher addresses and
+                        ** the jump is a backward jump. We need a second run to
+                        ** get the register info right in this case. Until then,
+                        ** assume unknown register contents.
+                        */
                         Done = 0;
                         RC_Invalidate (&Regs);
                         break;
@@ -1554,9 +1554,9 @@ void CS_GenRegInfo (CodeSeg* S)
             CurrentRegs = &E->RI->Out;
 
             /* If this insn is a branch on zero flag, we may have more info on
-             * register contents for one of both flow directions, but only if
-             * there is a previous instruction.
-             */
+            ** register contents for one of both flow directions, but only if
+            ** there is a previous instruction.
+            */
             if ((E->Info & OF_ZBRA) != 0 && (P = CS_GetPrevEntry (S, I)) != 0) {
 
                 /* Get the branch condition */
@@ -1584,8 +1584,8 @@ void CS_GenRegInfo (CodeSeg* S)
 
                     case OP65_CMP:
                         /* If this is an immidiate compare, the A register has
-                         * the value of the compare later.
-                         */
+                        ** the value of the compare later.
+                        */
                         if (CE_IsConstImm (P)) {
                             if (BC == BC_EQ) {
                                 E->RI->Out2.RegA = (unsigned char)P->Num;
@@ -1597,8 +1597,8 @@ void CS_GenRegInfo (CodeSeg* S)
 
                     case OP65_CPX:
                         /* If this is an immidiate compare, the X register has
-                         * the value of the compare later.
-                         */
+                        ** the value of the compare later.
+                        */
                         if (CE_IsConstImm (P)) {
                             if (BC == BC_EQ) {
                                 E->RI->Out2.RegX = (unsigned char)P->Num;
@@ -1610,8 +1610,8 @@ void CS_GenRegInfo (CodeSeg* S)
 
                     case OP65_CPY:
                         /* If this is an immidiate compare, the Y register has
-                         * the value of the compare later.
-                         */
+                        ** the value of the compare later.
+                        */
                         if (CE_IsConstImm (P)) {
                             if (BC == BC_EQ) {
                                 E->RI->Out2.RegY = (unsigned char)P->Num;
@@ -1648,9 +1648,9 @@ void CS_GenRegInfo (CodeSeg* S)
                     case OP65_TAX:
                     case OP65_TXA:
                         /* If the branch is a beq, both A and X are zero at the
-                         * branch target, otherwise they are zero at the next
-                         * insn.
-                         */
+                        ** branch target, otherwise they are zero at the next
+                        ** insn.
+                        */
                         if (BC == BC_EQ) {
                             E->RI->Out2.RegA = E->RI->Out2.RegX = 0;
                         } else {
@@ -1661,9 +1661,9 @@ void CS_GenRegInfo (CodeSeg* S)
                     case OP65_TAY:
                     case OP65_TYA:
                         /* If the branch is a beq, both A and Y are zero at the
-                         * branch target, otherwise they are zero at the next
-                         * insn.
-                         */
+                        ** branch target, otherwise they are zero at the next
+                        ** insn.
+                        */
                         if (BC == BC_EQ) {
                             E->RI->Out2.RegA = E->RI->Out2.RegY = 0;
                         } else {
index da6b6a82ee365e00bf43217aeb6fd207695793cd..0d73673698c29b502963a0e6dd02d4564ee711d1 100644 (file)
@@ -118,38 +118,38 @@ INLINE unsigned CS_GetEntryCount (const CodeSeg* S)
 
 void CS_InsertEntry (CodeSeg* S, struct CodeEntry* E, unsigned Index);
 /* Insert the code entry at the index given. Following code entries will be
- * moved to slots with higher indices.
- */
+** moved to slots with higher indices.
+*/
 
 void CS_DelEntry (CodeSeg* S, unsigned Index);
 /* Delete an entry from the code segment. This includes moving any associated
- * labels, removing references to labels and even removing the referenced labels
- * if the reference count drops to zero.
- * Note: Labels are moved forward if possible, that is, they are moved to the
- * next insn (not the preceeding one).
- */
+** labels, removing references to labels and even removing the referenced labels
+** if the reference count drops to zero.
+** Note: Labels are moved forward if possible, that is, they are moved to the
+** next insn (not the preceeding one).
+*/
 
 void CS_DelEntries (CodeSeg* S, unsigned Start, unsigned Count);
 /* Delete a range of code entries. This includes removing references to labels,
- * labels attached to the entries and so on.
- */
+** labels attached to the entries and so on.
+*/
 
 void CS_MoveEntries (CodeSeg* S, unsigned Start, unsigned Count, unsigned NewPos);
 /* Move a range of entries from one position to another. Start is the index
- * of the first entry to move, Count is the number of entries and NewPos is
- * the index of the target entry. The entry with the index Start will later
- * have the index NewPos. All entries with indices NewPos and above are
- * moved to higher indices. If the code block is moved to the end of the
- * current code, and if pending labels exist, these labels will get attached
- * to the first instruction of the moved block (the first one after the
- * current code end)
- */
+** of the first entry to move, Count is the number of entries and NewPos is
+** the index of the target entry. The entry with the index Start will later
+** have the index NewPos. All entries with indices NewPos and above are
+** moved to higher indices. If the code block is moved to the end of the
+** current code, and if pending labels exist, these labels will get attached
+** to the first instruction of the moved block (the first one after the
+** current code end)
+*/
 
 #if defined(HAVE_INLINE)
 INLINE void CS_MoveEntry (CodeSeg* S, unsigned OldPos, unsigned NewPos)
 /* Move an entry from one position to another. OldPos is the current position
- * of the entry, NewPos is the new position of the entry.
- */
+** of the entry, NewPos is the new position of the entry.
+*/
 {
     CollMove (&S->Entries, OldPos, NewPos);
 }
@@ -169,34 +169,34 @@ INLINE struct CodeEntry* CS_GetEntry (CodeSeg* S, unsigned Index)
 
 struct CodeEntry* CS_GetPrevEntry (CodeSeg* S, unsigned Index);
 /* Get the code entry preceeding the one with the index Index. If there is no
- * preceeding code entry, return NULL.
- */
+** preceeding code entry, return NULL.
+*/
 
 struct CodeEntry* CS_GetNextEntry (CodeSeg* S, unsigned Index);
 /* Get the code entry following the one with the index Index. If there is no
- * following code entry, return NULL.
- */
+** following code entry, return NULL.
+*/
 
 int CS_GetEntries (CodeSeg* S, struct CodeEntry** List,
                    unsigned Start, unsigned Count);
 /* Get Count code entries into List starting at index start. Return true if
- * we got the lines, return false if not enough lines were available.
- */
+** we got the lines, return false if not enough lines were available.
+*/
 
 unsigned CS_GetEntryIndex (CodeSeg* S, struct CodeEntry* E);
 /* Return the index of a code entry */
 
 int CS_RangeHasLabel (CodeSeg* S, unsigned Start, unsigned Count);
 /* Return true if any of the code entries in the given range has a label
- * attached. If the code segment does not span the given range, check the
- * possible span instead.
- */
+** attached. If the code segment does not span the given range, check the
+** possible span instead.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE int CS_HavePendingLabel (const CodeSeg* S)
 /* Return true if there are open labels that will get attached to the next
- * instruction that is added.
- */
+** instruction that is added.
+*/
 {
     return (CollCount (&S->Labels) > 0);
 }
@@ -209,43 +209,43 @@ CodeLabel* CS_AddLabel (CodeSeg* S, const char* Name);
 
 CodeLabel* CS_GenLabel (CodeSeg* S, struct CodeEntry* E);
 /* If the code entry E does already have a label, return it. Otherwise
- * create a new label, attach it to E and return it.
- */
+** create a new label, attach it to E and return it.
+*/
 
 void CS_DelLabel (CodeSeg* S, CodeLabel* L);
 /* Remove references from this label and delete it. */
 
 void CS_MergeLabels (CodeSeg* S);
 /* Merge code labels. That means: For each instruction, remove all labels but
- * one and adjust references accordingly.
- */
+** one and adjust references accordingly.
+*/
 
 void CS_MoveLabels (CodeSeg* S, struct CodeEntry* Old, struct CodeEntry* New);
 /* Move all labels from Old to New. The routine will move the labels itself
- * if New does not have any labels, and move references if there is at least
- * a label for new. If references are moved, the old label is deleted
- * afterwards.
- */
+** if New does not have any labels, and move references if there is at least
+** a label for new. If references are moved, the old label is deleted
+** afterwards.
+*/
 
 void CS_RemoveLabelRef (CodeSeg* S, struct CodeEntry* E);
 /* Remove the reference between E and the label it jumps to. The reference
- * will be removed on both sides and E->JumpTo will be 0 after that. If
- * the reference was the only one for the label, the label will get
- * deleted.
- */
+** will be removed on both sides and E->JumpTo will be 0 after that. If
+** the reference was the only one for the label, the label will get
+** deleted.
+*/
 
 void CS_MoveLabelRef (CodeSeg* S, struct CodeEntry* E, CodeLabel* L);
 /* Change the reference of E to L instead of the current one. If this
- * was the only reference to the old label, the old label will get
- * deleted.
- */
+** was the only reference to the old label, the old label will get
+** deleted.
+*/
 
 void CS_DelCodeRange (CodeSeg* S, unsigned First, unsigned Last);
 /* Delete all entries between first and last, both inclusive. The function
- * can only handle basic blocks (First is the only entry, Last the only exit)
- * and no open labels. It will call FAIL if any of these preconditions are
- * violated.
- */
+** can only handle basic blocks (First is the only entry, Last the only exit)
+** and no open labels. It will call FAIL if any of these preconditions are
+** violated.
+*/
 
 void CS_DelCodeAfter (CodeSeg* S, unsigned Last);
 /* Delete all entries including the given one */
@@ -268,22 +268,22 @@ INLINE void CS_ResetAllMarks (CodeSeg* S)
 
 int CS_IsBasicBlock (CodeSeg* S, unsigned First, unsigned Last);
 /* Check if the given code segment range is a basic block. That is, check if
- * First is the only entrance and Last is the only exit. This means that no
- * jump/branch inside the block may jump to an insn below First or after(!)
- * Last, and that no insn may jump into this block from the outside.
- */
+** First is the only entrance and Last is the only exit. This means that no
+** jump/branch inside the block may jump to an insn below First or after(!)
+** Last, and that no insn may jump into this block from the outside.
+*/
 
 void CS_OutputPrologue (const CodeSeg* S);
 /* If the given code segment is a code segment for a function, output the
- * assembler prologue into the file. That is: Output a comment header, switch
- * to the correct segment and enter the local function scope. If the code
- * segment is global, do nothing.
- */
+** assembler prologue into the file. That is: Output a comment header, switch
+** to the correct segment and enter the local function scope. If the code
+** segment is global, do nothing.
+*/
 
 void CS_OutputEpilogue (const CodeSeg* S);
 /* If the given code segment is a code segment for a function, output the
- * assembler epilogue into the file. That is: Close the local function scope.
- */
+** assembler epilogue into the file. That is: Close the local function scope.
+*/
 
 void CS_Output (CodeSeg* S);
 /* Output the code segment data to a file */
index c84082f4b0faab8347de2a2466b30eb023d64b9d..9f1ab29f55a0a89d1945f8e649f11ccd357364cb 100644 (file)
@@ -141,14 +141,14 @@ static void Parse (void)
             }
 
             /* Check if we must reserve storage for the variable. We do this,
-             *
-             *   - if it is not a typedef or function,
-             *   - if we don't had a storage class given ("int i")
-             *   - if the storage class is explicitly specified as static,
-             *   - or if there is an initialization.
-             *
-             * This means that "extern int i;" will not get storage allocated.
-             */
+            **
+            **   - if it is not a typedef or function,
+            **   - if we don't had a storage class given ("int i")
+            **   - if the storage class is explicitly specified as static,
+            **   - or if there is an initialization.
+            **
+            ** This means that "extern int i;" will not get storage allocated.
+            */
             if ((Decl.StorageClass & SC_FUNC) != SC_FUNC          &&
                 (Decl.StorageClass & SC_TYPEMASK) != SC_TYPEDEF    &&
                 ((Spec.Flags & DS_DEF_STORAGE) != 0         ||
@@ -161,10 +161,10 @@ static void Parse (void)
             }
 
             /* If this is a function declarator that is not followed by a comma
-             * or semicolon, it must be followed by a function body. If this is
-             * the case, convert an empty parameter list into one accepting no
-             * parameters (same as void) as required by the standard.
-             */
+            ** or semicolon, it must be followed by a function body. If this is
+            ** the case, convert an empty parameter list into one accepting no
+            ** parameters (same as void) as required by the standard.
+            */
             if ((Decl.StorageClass & SC_FUNC) != 0 &&
                 (CurTok.Tok != TOK_COMMA)          &&
                 (CurTok.Tok != TOK_SEMI)) {
@@ -191,8 +191,8 @@ static void Parse (void)
                 if (CurTok.Tok == TOK_ASSIGN) {
 
                     /* We cannot initialize types of unknown size, or
-                     * void types in non ANSI mode.
-                     */
+                    ** void types in ISO modes.
+                    */
                     if (Size == 0) {
                         if (!IsTypeVoid (Decl.Type)) {
                             if (!IsTypeArray (Decl.Type)) {
@@ -206,9 +206,9 @@ static void Parse (void)
                     }
 
                     /* Switch to the data or rodata segment. For arrays, check
-                      * the element qualifiers, since not the array but its
-                      * elements are const.
-                      */
+                     ** the element qualifiers, since not the array but its
+                     ** elements are const.
+                     */
                     if (IsQualConst (GetBaseElementType (Decl.Type))) {
                         g_userodata ();
                     } else {
@@ -303,8 +303,8 @@ void Compile (const char* FileName)
     struct tm*  TM;
 
     /* Since strftime is locale dependent, we need the abbreviated month names
-     * in english.
-     */
+    ** in english.
+    */
     static const char MonthNames[12][4] = {
         "Jan", "Feb", "Mar", "Apr", "May", "Jun",
         "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
@@ -320,9 +320,9 @@ void Compile (const char* FileName)
     DefineNumericMacro ("__CC65_STD__", IS_Get (&Standard));
 
     /* Optimization macros. Since no source code has been parsed for now, the
-     * IS_Get functions access the values in effect now, regardless of any
-     * changes using #pragma later.
-     */
+    ** IS_Get functions access the values in effect now, regardless of any
+    ** changes using #pragma later.
+    */
     if (IS_Get (&Optimize)) {
         long CodeSize = IS_Get (&CodeSizeFactor);
         DefineNumericMacro ("__OPT__", 1);
index f0acdc4c70c0902cf000cd381145f2bf0b7f70b8..07bd2bf981636e3e6afd33241e39a45d45e3750c 100644 (file)
 
 unsigned OptAdd1 (CodeSeg* S)
 /* Search for the sequence
- *
- *      ldy     #xx
- *      jsr     ldaxysp
- *      jsr     pushax
- *      ldy     #yy
- *      jsr     ldaxysp
- *      jsr     tosaddax
- *
- * and replace it by:
- *
- *      ldy     #xx-1
- *      lda     (sp),y
- *      ldy     #yy-3
- *      clc
- *      adc     (sp),y
- *      pha
- *      ldy     #xx
- *      lda     (sp),y
- *      ldy     #yy-2
- *      adc     (sp),y
- *      tax
- *      pla
- */
+**
+**      ldy     #xx
+**      jsr     ldaxysp
+**      jsr     pushax
+**      ldy     #yy
+**      jsr     ldaxysp
+**      jsr     tosaddax
+**
+** and replace it by:
+**
+**      ldy     #xx-1
+**      lda     (sp),y
+**      ldy     #yy-3
+**      clc
+**      adc     (sp),y
+**      pha
+**      ldy     #xx
+**      lda     (sp),y
+**      ldy     #yy-2
+**      adc     (sp),y
+**      tax
+**      pla
+*/
 {
     unsigned Changes = 0;
 
@@ -172,28 +172,28 @@ unsigned OptAdd1 (CodeSeg* S)
 
 unsigned OptAdd2 (CodeSeg* S)
 /* Search for the sequence
- *
- *      ldy     #xx
- *      jsr     ldaxysp
- *      ldy     #yy
- *      jsr     addeqysp
- *
- * and replace it by:
- *
- *      ldy     #xx-1
- *      lda     (sp),y
- *      ldy     #yy
- *      clc
- *      adc     (sp),y
- *      sta     (sp),y
- *      ldy     #xx
- *      lda     (sp),y
- *      ldy     #yy+1
- *      adc     (sp),y
- *      sta     (sp),y
- *
- * provided that a/x is not used later.
- */
+**
+**      ldy     #xx
+**      jsr     ldaxysp
+**      ldy     #yy
+**      jsr     addeqysp
+**
+** and replace it by:
+**
+**      ldy     #xx-1
+**      lda     (sp),y
+**      ldy     #yy
+**      clc
+**      adc     (sp),y
+**      sta     (sp),y
+**      ldy     #xx
+**      lda     (sp),y
+**      ldy     #yy+1
+**      adc     (sp),y
+**      sta     (sp),y
+**
+** provided that a/x is not used later.
+*/
 {
     unsigned Changes = 0;
 
@@ -288,20 +288,20 @@ unsigned OptAdd2 (CodeSeg* S)
 
 unsigned OptAdd3 (CodeSeg* S)
 /* Search for the sequence
- *
- *      jsr     pushax
- *      ldx     #$00
- *      lda     xxx
- *      jsr     tosaddax
- *
- * and replace it by
- *
- *      clc
- *      adc     xxx
- *      bcc     L1
- *      inx
- * L1:
- */
+**
+**      jsr     pushax
+**      ldx     #$00
+**      lda     xxx
+**      jsr     tosaddax
+**
+** and replace it by
+**
+**      clc
+**      adc     xxx
+**      bcc     L1
+**      inx
+** L1:
+*/
 {
     unsigned Changes = 0;
 
@@ -364,22 +364,22 @@ unsigned OptAdd3 (CodeSeg* S)
 
 unsigned OptAdd4 (CodeSeg* S)
 /* Search for the sequence
- *
- *      jsr     pushax
- *      lda     xxx
- *      ldx     yyy
- *      jsr     tosaddax
- *
- * and replace it by
- *
- *      clc
- *      adc     xxx
- *      pha
- *      txa
- *      adc     yyy
- *      tax
- *      pla
- */
+**
+**      jsr     pushax
+**      lda     xxx
+**      ldx     yyy
+**      jsr     tosaddax
+**
+** and replace it by
+**
+**      clc
+**      adc     xxx
+**      pha
+**      txa
+**      adc     yyy
+**      tax
+**      pla
+*/
 {
     unsigned Changes = 0;
 
@@ -453,8 +453,8 @@ unsigned OptAdd4 (CodeSeg* S)
 
 unsigned OptAdd5 (CodeSeg* S)
 /* Search for a call to incaxn and replace it by an 8 bit add if the X register
- * is not used later.
- */
+** is not used later.
+*/
 {
     unsigned Changes = 0;
 
@@ -506,14 +506,14 @@ unsigned OptAdd5 (CodeSeg* S)
 
 unsigned OptAdd6 (CodeSeg* S)
 /* Search for the sequence
- *
- *      adc     ...
- *      bcc     L
- *      inx
- * L:
- *
- * and remove the handling of the high byte if X is not used later.
- */
+**
+**      adc     ...
+**      bcc     L
+**      inx
+** L:
+**
+** and remove the handling of the high byte if X is not used later.
+*/
 {
     unsigned Changes = 0;
 
index d61fd023c10c6c51c057299aaf196c96a672471b..e4df3b304e4945fe73247071e3c02b2e8684905c 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2001-2005, Ullrich von Bassewitz                                      */
-/*                Römerstrasse 52                                            */
+/*                Roemerstrasse 52                                           */
 /*                D-70794 Filderstadt                                        */
 /* EMail:         uz@cc65.org                                                */
 /*                                                                           */
 
 unsigned OptAdd1 (CodeSeg* S);
 /* Search for the sequence
- *
- *      jsr     pushax
- *      ldy     xxx
- *      ldx     #$00
- *      lda     (sp),y
- *      jsr     tosaddax
- *
- * and replace it by:
- *
- *      ldy     xxx-2
- *      clc
- *      adc     (sp),y
- *      bcc     L
- *      inx
- * L:
- */
+**
+**      jsr     pushax
+**      ldy     xxx
+**      ldx     #$00
+**      lda     (sp),y
+**      jsr     tosaddax
+**
+** and replace it by:
+**
+**      ldy     xxx-2
+**      clc
+**      adc     (sp),y
+**      bcc     L
+**      inx
+** L:
+*/
 
 unsigned OptAdd2 (CodeSeg* S);
 /* Search for the sequence
- *
- *      ldy     #xx
- *      lda     (sp),y
- *      tax
- *      dey
- *      lda     (sp),y
- *      ldy     #$yy
- *      jsr     addeqysp
- *
- * and replace it by:
- *
- *      ldy     #xx-1
- *      lda     (sp),y
- *      ldy     #yy
- *      clc
- *      adc     (sp),y
- *      sta     (sp),y
- *      ldy     #xx
- *      lda     (sp),y
- *      ldy     #yy+1
- *      adc     (sp),y
- *      sta     (sp),y
- *
- * provided that a/x is not used later.
- */
+**
+**      ldy     #xx
+**      lda     (sp),y
+**      tax
+**      dey
+**      lda     (sp),y
+**      ldy     #$yy
+**      jsr     addeqysp
+**
+** and replace it by:
+**
+**      ldy     #xx-1
+**      lda     (sp),y
+**      ldy     #yy
+**      clc
+**      adc     (sp),y
+**      sta     (sp),y
+**      ldy     #xx
+**      lda     (sp),y
+**      ldy     #yy+1
+**      adc     (sp),y
+**      sta     (sp),y
+**
+** provided that a/x is not used later.
+*/
 
 unsigned OptAdd3 (CodeSeg* S);
 /* Search for the sequence
- *
- *      jsr     pushax
- *      ldx     #$00
- *      lda     xxx
- *      jsr     tosaddax
- *
- * and replace it by
- *
- *      clc
- *      adc     xxx
- *      bcc     L1
- *      inx
- * L1:
- */                           
+**
+**      jsr     pushax
+**      ldx     #$00
+**      lda     xxx
+**      jsr     tosaddax
+**
+** and replace it by
+**
+**      clc
+**      adc     xxx
+**      bcc     L1
+**      inx
+** L1:
+*/
 
 unsigned OptAdd4 (CodeSeg* S);
 /* Search for the sequence
- *
- *      jsr     pushax
- *      lda     xxx
- *      ldx     yyy
- *      jsr     tosaddax
- *
- * and replace it by
- *
- *      clc
- *      adc     xxx
- *      pha
- *      txa
- *      adc     yyy
- *      tax
- *      pla
- */
+**
+**      jsr     pushax
+**      lda     xxx
+**      ldx     yyy
+**      jsr     tosaddax
+**
+** and replace it by
+**
+**      clc
+**      adc     xxx
+**      pha
+**      txa
+**      adc     yyy
+**      tax
+**      pla
+*/
 
 unsigned OptAdd5 (CodeSeg* S);
 /* Search for a call to incaxn and replace it by an 8 bit add if the X register
- * is not used later.
- */
+** is not used later.
+*/
 
 unsigned OptAdd6 (CodeSeg* S);
 /* Search for the sequence
- *
- *      adc     ...
- *      bcc     L
- *      inx
- * L:
- *
- * and remove the handling of the high byte if X is not used later.
- */
+**
+**      adc     ...
+**      bcc     L
+**      inx
+** L:
+**
+** and remove the handling of the high byte if X is not used later.
+*/
 
 
 
index ecbafdcd20b3fbec717db43b1736df8e6b27ea35..71da5effa559057bb4d923a9e9705c2cbb8236aa 100644 (file)
@@ -75,9 +75,9 @@ unsigned Opt65C02Ind (CodeSeg* S)
         CodeEntry* E = CS_GetEntry (S, I);
 
         /* Check for addressing mode indirect indexed Y where Y is zero.
-         * Note: All opcodes that are available as (zp),y are also available
-         * as (zp), so we can ignore the actual opcode here.
-         */
+        ** Note: All opcodes that are available as (zp),y are also available
+        ** as (zp), so we can ignore the actual opcode here.
+        */
         if (E->AM == AM65_ZP_INDY && E->RI->In.RegY == 0) {
 
             /* Replace it by indirect addressing mode */
@@ -187,8 +187,8 @@ unsigned Opt65C02Stores (CodeSeg* S)
         CodeEntry* E = CS_GetEntry (S, I);
 
         /* Check for a store with a register value of zero and an addressing
-         * mode available with STZ.
-         */
+        ** mode available with STZ.
+        */
         if (((E->OPC == OP65_STA && E->RI->In.RegA == 0) ||
              (E->OPC == OP65_STX && E->RI->In.RegX == 0) ||
              (E->OPC == OP65_STY && E->RI->In.RegY == 0))       &&
index d365fb6820e56007967af8d530774d3d04ebb888..9e9c20502cf94e55296666099c7f2928ebca3bbc 100644 (file)
@@ -66,11 +66,11 @@ static const unsigned char CmpInvertTab [] = {
 
 static void ReplaceCmp (CodeSeg* S, unsigned I, cmp_t Cond)
 /* Helper function for the replacement of routines that return a boolean
- * followed by a conditional jump. Instead of the boolean value, the condition
- * codes are evaluated directly.
- * I is the index of the conditional branch, the sequence is already checked
- * to be correct.
- */
+** followed by a conditional jump. Instead of the boolean value, the condition
+** codes are evaluated directly.
+** I is the index of the conditional branch, the sequence is already checked
+** to be correct.
+*/
 {
     CodeEntry* N;
     CodeLabel* L;
@@ -91,10 +91,10 @@ static void ReplaceCmp (CodeSeg* S, unsigned I, cmp_t Cond)
 
         case CMP_GT:
             /* Replace by
-             *     beq @L
-             *     jpl Target
-             * @L: ...
-             */
+            **     beq @L
+            **     jpl Target
+            ** @L: ...
+            */
             if ((N = CS_GetNextEntry (S, I)) == 0) {
                 /* No such entry */
                 Internal ("Invalid program flow");
@@ -115,9 +115,9 @@ static void ReplaceCmp (CodeSeg* S, unsigned I, cmp_t Cond)
 
         case CMP_LE:
             /* Replace by
-             *     jmi Target
-             *     jeq Target
-             */
+            **     jmi Target
+            **     jeq Target
+            */
             CE_ReplaceOPC (E, OP65_JMI);
             L = E->JumpTo;
             N = NewCodeEntry (OP65_JEQ, AM65_BRA, L->Name, L, E->LI);
@@ -126,10 +126,10 @@ static void ReplaceCmp (CodeSeg* S, unsigned I, cmp_t Cond)
 
         case CMP_UGT:
             /* Replace by
-             *     beq @L
-             *     jcs Target
-             * @L: ...
-             */
+            **     beq @L
+            **     jcs Target
+            ** @L: ...
+            */
             if ((N = CS_GetNextEntry (S, I)) == 0) {
                 /* No such entry */
                 Internal ("Invalid program flow");
@@ -150,9 +150,9 @@ static void ReplaceCmp (CodeSeg* S, unsigned I, cmp_t Cond)
 
         case CMP_ULE:
             /* Replace by
-             *     jcc Target
-             *     jeq Target
-             */
+            **     jcc Target
+            **     jeq Target
+            */
             CE_ReplaceOPC (E, OP65_JCC);
             L = E->JumpTo;
             N = NewCodeEntry (OP65_JEQ, AM65_BRA, L->Name, L, E->LI);
@@ -169,10 +169,10 @@ static void ReplaceCmp (CodeSeg* S, unsigned I, cmp_t Cond)
 
 
 static int IsImmCmp16 (CodeEntry** L)
-/* Check if the instructions at L are an immidiate compare of a/x:
- *
- *
- */
+/* Check if the instructions at L are an immediate compare of a/x:
+**
+**
+*/
 {
     return (L[0]->OPC == OP65_CPX                              &&
             L[0]->AM == AM65_IMM                               &&
@@ -213,8 +213,8 @@ static int GetCmpRegVal (const CodeEntry* E)
 
 unsigned OptBoolTrans (CodeSeg* S)
 /* Try to remove the call to boolean transformer routines where the call is
- * not really needed.
- */
+** not really needed.
+*/
 {
     unsigned Changes = 0;
 
@@ -235,11 +235,11 @@ unsigned OptBoolTrans (CodeSeg* S)
             (N->Info & OF_ZBRA) != 0) {
 
             /* Make the boolean transformer unnecessary by changing the
-             * the conditional jump to evaluate the condition flags that
-             * are set after the compare directly. Note: jeq jumps if
-             * the condition is not met, jne jumps if the condition is met.
-             * Invert the code if we jump on condition not met.
-             */
+            ** the conditional jump to evaluate the condition flags that
+            ** are set after the compare directly. Note: jeq jumps if
+            ** the condition is not met, jne jumps if the condition is met.
+            ** Invert the code if we jump on condition not met.
+            */
             if (GetBranchCond (N->OPC) == BC_EQ) {
                 /* Jumps if condition false, invert condition */
                 Cond = CmpInvertTab [Cond];
@@ -275,15 +275,15 @@ unsigned OptBoolTrans (CodeSeg* S)
 
 unsigned OptCmp1 (CodeSeg* S)
 /* Search for the sequence
- *
- *      ldx     xx
- *      stx     tmp1
- *      ora     tmp1
- *
- * and replace it by
- *
- *      ora     xx
- */
+**
+**      ldx     xx
+**      stx     tmp1
+**      ora     tmp1
+**
+** and replace it by
+**
+**      ora     xx
+*/
 {
     unsigned Changes = 0;
 
@@ -332,16 +332,16 @@ unsigned OptCmp1 (CodeSeg* S)
 
 unsigned OptCmp2 (CodeSeg* S)
 /* Search for the sequence
- *
- *      stx     xx
- *      stx     tmp1
- *      ora     tmp1
- *
- * and replace it by
- *
- *      stx     xx
- *      ora     xx
- */
+**
+**      stx     xx
+**      stx     tmp1
+**      ora     tmp1
+**
+** and replace it by
+**
+**      stx     xx
+**      ora     xx
+*/
 {
     unsigned Changes = 0;
 
@@ -387,17 +387,17 @@ unsigned OptCmp2 (CodeSeg* S)
 
 unsigned OptCmp3 (CodeSeg* S)
 /* Search for
- *
- *      lda/and/ora/eor ...
- *      cmp #$00
- *      jeq/jne
- * or
- *      lda/and/ora/eor ...
- *      cmp #$00
- *      jsr boolxx
- *
- * and remove the cmp.
- */
+**
+**      lda/and/ora/eor ...
+**      cmp #$00
+**      jeq/jne
+** or
+**      lda/and/ora/eor ...
+**      cmp #$00
+**      jsr boolxx
+**
+** and remove the cmp.
+*/
 {
     unsigned Changes = 0;
 
@@ -432,9 +432,9 @@ unsigned OptCmp3 (CodeSeg* S)
             int Delete = 0;
 
             /* Check for the call to boolxx. We only remove the compare if
-             * the carry flag is not evaluated later, because the load will
-             * not set the carry flag.
-             */
+            ** the carry flag is not evaluated later, because the load will
+            ** not set the carry flag.
+            */
             if (L[2]->OPC == OP65_JSR) {
                 switch (FindBoolCmpCond (L[2]->Arg)) {
 
@@ -459,10 +459,10 @@ unsigned OptCmp3 (CodeSeg* S)
 
             } else if ((L[2]->Info & OF_FBRA) != 0) {
                 /* The following insn branches on the condition of the load,
-                 * so the compare instruction might be removed. For safety,
-                 * do some more checks if the carry isn't used later, since
-                 * the compare does set the carry, but the load does not.
-                 */
+                ** so the compare instruction might be removed. For safety,
+                ** do some more checks if the carry isn't used later, since
+                ** the compare does set the carry, but the load does not.
+                */
                 CodeEntry* E;
                 CodeEntry* N;
                 if ((E = CS_GetNextEntry (S, I+2)) != 0         &&
@@ -476,9 +476,9 @@ unsigned OptCmp3 (CodeSeg* S)
                     FindBoolCmpCond (N->Arg) == CMP_INV)) {
 
                     /* The following insn branches on the condition of a load,
-                     * and there's no use of the carry flag in sight, so the
-                     * compare instruction can be removed.
-                     */
+                    ** and there's no use of the carry flag in sight, so the
+                    ** compare instruction can be removed.
+                    */
                     Delete = 1;
                 }
             }
@@ -503,24 +503,24 @@ unsigned OptCmp3 (CodeSeg* S)
 
 unsigned OptCmp4 (CodeSeg* S)
 /* Search for
- *
- *      lda     x
- *      ldx     y
- *      cpx     #a
- *      bne     L1
- *      cmp     #b
- * L1:  jne/jeq L2
- *
- * If a is zero, we may remove the compare. If a and b are both zero, we may
- * replace it by the sequence
- *
- *      lda     x
- *      ora     x+1
- *      jne/jeq ...
- *
- * L1 may be either the label at the branch instruction, or the target label
- * of this instruction.
- */
+**
+**      lda     x
+**      ldx     y
+**      cpx     #a
+**      bne     L1
+**      cmp     #b
+** L1:  jne/jeq L2
+**
+** If a is zero, we may remove the compare. If a and b are both zero, we may
+** replace it by the sequence
+**
+**      lda     x
+**      ora     x+1
+**      jne/jeq ...
+**
+** L1 may be either the label at the branch instruction, or the target label
+** of this instruction.
+*/
 {
     unsigned Changes = 0;
 
@@ -547,9 +547,9 @@ unsigned OptCmp4 (CodeSeg* S)
                 CS_DelEntries (S, I+2, 3);
             } else {
                 /* Move the lda instruction after the first branch. This will
-                 * improve speed, since the load is delayed after the first
-                 * test.
-                 */
+                ** improve speed, since the load is delayed after the first
+                ** test.
+                */
                 CS_MoveEntry (S, I, I+4);
 
                 /* We will replace the ldx/cpx by lda/cmp */
@@ -557,8 +557,8 @@ unsigned OptCmp4 (CodeSeg* S)
                 CE_ReplaceOPC (L[1], OP65_CMP);
 
                 /* Beware: If the first LDA instruction had a label, we have
-                 * to move this label to the top of the sequence again.
-                 */
+                ** to move this label to the top of the sequence again.
+                */
                 if (CE_HasLabel (E)) {
                     CS_MoveLabels (S, E, L[0]);
                 }
@@ -581,14 +581,14 @@ unsigned OptCmp4 (CodeSeg* S)
 
 unsigned OptCmp5 (CodeSeg* S)
 /* Optimize compares of local variables:
- *
- *      ldy     #o
- *      jsr     ldaxysp
- *      cpx     #a
- *      bne     L1
- *      cmp     #b
- *      jne/jeq L2
- */
+**
+**      ldy     #o
+**      jsr     ldaxysp
+**      cpx     #a
+**      bne     L1
+**      cmp     #b
+**      jne/jeq L2
+*/
 {
     unsigned Changes = 0;
 
@@ -615,12 +615,12 @@ unsigned OptCmp5 (CodeSeg* S)
                 char Buf[20];
 
                 /* The value is zero, we may use the simple code version:
-                 *      ldy     #o-1
-                 *      lda     (sp),y
-                 *      ldy     #o
-                 *      ora     (sp),y
-                 *      jne/jeq ...
-                 */
+                **      ldy     #o-1
+                **      lda     (sp),y
+                **      ldy     #o
+                **      ora     (sp),y
+                **      jne/jeq ...
+                */
                 sprintf (Buf, "$%02X", (int)(L[0]->Num-1));
                 X = NewCodeEntry (OP65_LDY, AM65_IMM, Buf, 0, L[0]->LI);
                 CS_InsertEntry (S, X, I+1);
@@ -643,17 +643,17 @@ unsigned OptCmp5 (CodeSeg* S)
                 char Buf[20];
 
                 /* Change the code to just use the A register. Move the load
-                 * of the low byte after the first branch if possible:
-                 *
-                 *      ldy     #o
-                 *      lda     (sp),y
-                 *      cmp     #a
-                 *      bne     L1
-                 *      ldy     #o-1
-                 *      lda     (sp),y
-                 *      cmp     #b
-                 *      jne/jeq ...
-                 */
+                ** of the low byte after the first branch if possible:
+                **
+                **      ldy     #o
+                **      lda     (sp),y
+                **      cmp     #a
+                **      bne     L1
+                **      ldy     #o-1
+                **      lda     (sp),y
+                **      cmp     #b
+                **      jne/jeq ...
+                */
                 X = NewCodeEntry (OP65_LDY, AM65_IMM, L[0]->Arg, 0, L[0]->LI);
                 CS_InsertEntry (S, X, I+3);
 
@@ -690,10 +690,10 @@ unsigned OptCmp5 (CodeSeg* S)
 
 unsigned OptCmp6 (CodeSeg* S)
 /* Search for calls to compare subroutines followed by a conditional branch
- * and replace them by cheaper versions, since the branch means that the
- * boolean value returned by these routines is not needed (we may also check
- * that explicitly, but for the current code generator it is always true).
- */
+** and replace them by cheaper versions, since the branch means that the
+** boolean value returned by these routines is not needed (we may also check
+** that explicitly, but for the current code generator it is always true).
+*/
 {
     unsigned Changes = 0;
 
@@ -715,12 +715,12 @@ unsigned OptCmp6 (CodeSeg* S)
             !CE_HasLabel (N)) {
 
             /* The tos... functions will return a boolean value in a/x and
-             * the Z flag says if this value is zero or not. We will call
-             * a cheaper subroutine instead, one that does not return a
-             * boolean value but only valid flags. Note: jeq jumps if
-             * the condition is not met, jne jumps if the condition is met.
-             * Invert the code if we jump on condition not met.
-             */
+            ** the Z flag says if this value is zero or not. We will call
+            ** a cheaper subroutine instead, one that does not return a
+            ** boolean value but only valid flags. Note: jeq jumps if
+            ** the condition is not met, jne jumps if the condition is met.
+            ** Invert the code if we jump on condition not met.
+            */
             if (GetBranchCond (N->OPC) == BC_EQ) {
                 /* Jumps if condition false, invert condition */
                 Cond = CmpInvertTab [Cond];
@@ -752,8 +752,8 @@ unsigned OptCmp6 (CodeSeg* S)
 
 unsigned OptCmp7 (CodeSeg* S)
 /* Search for a sequence ldx/txa/branch and remove the txa if A is not
- * used later.
- */
+** used later.
+*/
 {
     unsigned Changes = 0;
 
@@ -796,8 +796,8 @@ unsigned OptCmp7 (CodeSeg* S)
 
 unsigned OptCmp8 (CodeSeg* S)
 /* Check for register compares where the contents of the register and therefore
- * the result of the compare is known.
- */
+** the result of the compare is known.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -817,8 +817,8 @@ unsigned OptCmp8 (CodeSeg* S)
             CE_IsConstImm (E)) {
 
             /* We are able to evaluate the compare at compile time. Check if
-             * one or more branches are ahead.
-             */
+            ** one or more branches are ahead.
+            */
             unsigned JumpsChanged = 0;
             CodeEntry* N;
             while ((N = CS_GetNextEntry (S, I)) != 0 &&   /* Followed by something.. */
@@ -855,10 +855,10 @@ unsigned OptCmp8 (CodeSeg* S)
                     case BC_VC:
                     case BC_VS:
                         /* Not set by the compare operation, bail out (Note:
-                         * Just skipping anything here is rather stupid, but
-                         * the sequence is never generated by the compiler,
-                         * so it's quite safe to skip).
-                         */
+                        ** Just skipping anything here is rather stupid, but
+                        ** the sequence is never generated by the compiler,
+                        ** so it's quite safe to skip).
+                        */
                         goto NextEntry;
 
                     default:
@@ -867,9 +867,9 @@ unsigned OptCmp8 (CodeSeg* S)
                 }
 
                 /* If the condition is false, we may remove the jump. Otherwise
-                 * the branch will always be taken, so we may replace it by a
-                 * jump (and bail out).
-                 */
+                ** the branch will always be taken, so we may replace it by a
+                ** jump (and bail out).
+                */
                 if (!Cond) {
                     CS_DelEntry (S, I+1);
                 } else {
@@ -906,16 +906,16 @@ NextEntry:
 
 unsigned OptCmp9 (CodeSeg* S)
 /* Search for the sequence
- *
- *    sbc       xx
- *    bvs/bvc   L
- *    eor       #$80
- * L: asl       a
- *    bcc/bcs   somewhere
- *
- * If A is not used later (which should be the case), we can branch on the N
- * flag instead of the carry flag and remove the asl.
- */
+**
+**    sbc       xx
+**    bvs/bvc   L
+**    eor       #$80
+** L: asl       a
+**    bcc/bcs   somewhere
+**
+** If A is not used later (which should be the case), we can branch on the N
+** flag instead of the carry flag and remove the asl.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
index dbfd74dd57629411d821103059869d963b6b9089..0cdcf2d3da1c1d9fdacd1b460318b352b3604e39 100644 (file)
@@ -51,8 +51,8 @@
 
 unsigned OptBoolTrans (CodeSeg* S);
 /* Try to remove the call to boolean transformer routines where the call is
- * not really needed.
- */
+** not really needed.
+*/
 
 
 
@@ -64,107 +64,107 @@ unsigned OptBoolTrans (CodeSeg* S);
 
 unsigned OptCmp1 (CodeSeg* S);
 /* Search for the sequence
- *
- *      ldx     xx
- *      stx     tmp1
- *      ora     tmp1
- *
- * and replace it by
- *
- *      ora     xx
- */
+**
+**      ldx     xx
+**      stx     tmp1
+**      ora     tmp1
+**
+** and replace it by
+**
+**      ora     xx
+*/
 
 unsigned OptCmp2 (CodeSeg* S);
 /* Search for the sequence
- *
- *      stx     xx
- *      stx     tmp1
- *      ora     tmp1
- *
- * and replace it by
- *
- *      stx     xx
- *      ora     xx
- */
+**
+**      stx     xx
+**      stx     tmp1
+**      ora     tmp1
+**
+** and replace it by
+**
+**      stx     xx
+**      ora     xx
+*/
 
 unsigned OptCmp3 (CodeSeg* S);
 /* Search for
- *
- *      lda/and/ora/eor ...
- *      cmp #$00
- *      jeq/jne
- * or
- *      lda/and/ora/eor ...
- *      cmp #$00
- *      jsr boolxx
- *
- * and remove the cmp.
- */
+**
+**      lda/and/ora/eor ...
+**      cmp #$00
+**      jeq/jne
+** or
+**      lda/and/ora/eor ...
+**      cmp #$00
+**      jsr boolxx
+**
+** and remove the cmp.
+*/
 
 unsigned OptCmp4 (CodeSeg* S);
 /* Search for
- *
- *      lda     x
- *      ldx     y
- *      cpx     #a
- *      bne     L1
- *      cmp     #b
- *      jne/jeq L2
- *
- * If a is zero, we may remove the compare. If a and b are both zero, we may
- * replace it by the sequence
- *
- *      lda     x
- *      ora     x+1
- *      jne/jeq ...
- *
- * L1 may be either the label at the branch instruction, or the target label
- * of this instruction.
- */
+**
+**      lda     x
+**      ldx     y
+**      cpx     #a
+**      bne     L1
+**      cmp     #b
+**      jne/jeq L2
+**
+** If a is zero, we may remove the compare. If a and b are both zero, we may
+** replace it by the sequence
+**
+**      lda     x
+**      ora     x+1
+**      jne/jeq ...
+**
+** L1 may be either the label at the branch instruction, or the target label
+** of this instruction.
+*/
 
 unsigned OptCmp5 (CodeSeg* S);
 /* Optimize compares of local variables:
- *
- *      ldy     #o
- *      lda     (sp),y
- *      tax
- *      dey
- *      lda     (sp),y
- *      cpx     #a
- *      bne     L1
- *      cmp     #b
- *      jne/jeq L2
- */
+**
+**      ldy     #o
+**      lda     (sp),y
+**      tax
+**      dey
+**      lda     (sp),y
+**      cpx     #a
+**      bne     L1
+**      cmp     #b
+**      jne/jeq L2
+*/
 
 unsigned OptCmp6 (CodeSeg* S);
 /* Search for calls to compare subroutines followed by a conditional branch
- * and replace them by cheaper versions, since the branch means that the
- * boolean value returned by these routines is not needed (we may also check
- * that explicitly, but for the current code generator it is always true).
- */
+** and replace them by cheaper versions, since the branch means that the
+** boolean value returned by these routines is not needed (we may also check
+** that explicitly, but for the current code generator it is always true).
+*/
 
 unsigned OptCmp7 (CodeSeg* S);
 /* Search for a sequence ldx/txa/branch and remove the txa if A is not
- * used later.
- */
+** used later.
+*/
 
 unsigned OptCmp8 (CodeSeg* S);
 /* Check for register compares where the contents of the register and therefore
- * the result of the compare is known.
- */
+** the result of the compare is known.
+*/
 
 unsigned OptCmp9 (CodeSeg* S);
 /* Search for the sequence
- *
- *    sbc       xx
- *    bvs/bvc   L
- *    eor       #$80
- * L: asl       a
- *    bcc/bcs   somewhere
- *
- * If A is not used later (which should be the case), we can branch on the N
- * flag instead of the carry flag and remove the asl.
- */
+**
+**    sbc       xx
+**    bvs/bvc   L
+**    eor       #$80
+** L: asl       a
+**    bcc/bcs   somewhere
+**
+** If A is not used later (which should be the case), we can branch on the N
+** flag instead of the carry flag and remove the asl.
+*/
 
 
 
index 46debca374680c479abd8164111d9924677ad24e..ca9d5effd0558028972c293e6f565b0fac5e6bce 100644 (file)
@@ -66,15 +66,15 @@ static int MemAccess (CodeSeg* S, unsigned From, unsigned To, const CodeEntry* N
 
 
     /* If the argument of N is a zero page location that ends with "+1", we
-     * must also check for word accesses to the location without +1.
-     */
+    ** must also check for word accesses to the location without +1.
+    */
     if (N->AM == AM65_ZP && NLen > 2 && strcmp (N->Arg + NLen - 2, "+1") == 0) {
         What |= Base;
     }
 
     /* If the argument is zero page indirect, we must also check for accesses
-     * to "arg+1"
-     */
+    ** to "arg+1"
+    */
     if (N->AM == AM65_ZP_INDY || N->AM == AM65_ZPX_IND || N->AM == AM65_ZP_IND) {
         What |= Word;
     }
@@ -86,8 +86,8 @@ static int MemAccess (CodeSeg* S, unsigned From, unsigned To, const CodeEntry* N
         CodeEntry* E = CS_GetEntry (S, From);
 
         /* Check if there is an argument and if this argument equals Arg in
-         * some variants.
-         */
+        ** some variants.
+        */
         if (E->Arg[0] != '\0') {
 
             unsigned ELen;
@@ -126,8 +126,8 @@ static int MemAccess (CodeSeg* S, unsigned From, unsigned To, const CodeEntry* N
 
 static int GetBranchDist (CodeSeg* S, unsigned From, CodeEntry* To)
 /* Get the branch distance between the two entries and return it. The distance
- * will be negative for backward jumps and positive for forward jumps.
- */
+** will be negative for backward jumps and positive for forward jumps.
+*/
 {
     /* Get the index of the branch target */
     unsigned TI = CS_GetEntryIndex (S, To);
@@ -265,8 +265,8 @@ unsigned OptRTSJumps2 (CodeSeg* S)
 
 
             /* Get the jump target and the next entry. There's always a next
-             * entry, because we don't cover the last entry in the loop.
-             */
+            ** entry, because we don't cover the last entry in the loop.
+            */
             CodeEntry* X = 0;
             CodeEntry* T = E->JumpTo->Owner;
             CodeEntry* N = CS_GetNextEntry (S, I);
@@ -275,15 +275,15 @@ unsigned OptRTSJumps2 (CodeSeg* S)
             if (T->OPC == OP65_RTS) {
 
                 /* It's a jump to RTS. Create a conditional branch around an
-                 * RTS insn.
-                 */
+                ** RTS insn.
+                */
                 X = NewCodeEntry (OP65_RTS, AM65_IMP, 0, 0, T->LI);
 
             } else if (T->OPC == OP65_JMP && T->JumpTo == 0) {
 
                 /* It's a jump to a label outside the function. Create a
-                 * conditional branch around a jump to the external label.
-                 */
+                ** conditional branch around a jump to the external label.
+                */
                 X = NewCodeEntry (OP65_JMP, AM65_ABS, T->Arg, T->JumpTo, T->LI);
 
             }
@@ -298,8 +298,8 @@ unsigned OptRTSJumps2 (CodeSeg* S)
                 CS_InsertEntry (S, X, I+1);
 
                 /* Create a conditional branch with the inverse condition
-                 * around the replacement insn
-                 */
+                ** around the replacement insn
+                */
 
                 /* Get the new branch opcode */
                 NewBranch = MakeShortBranch (GetInverseBranch (E->OPC));
@@ -350,8 +350,8 @@ unsigned OptDeadJumps (CodeSeg* S)
         CodeEntry* E = CS_GetEntry (S, I);
 
         /* Check if it's a branch, if it has a local target, and if the target
-         * is the next instruction.
-         */
+        ** is the next instruction.
+        */
         if (E->AM == AM65_BRA                               &&
             E->JumpTo                                       &&
             E->JumpTo->Owner == CS_GetNextEntry (S, I)) {
@@ -384,8 +384,8 @@ unsigned OptDeadJumps (CodeSeg* S)
 
 unsigned OptDeadCode (CodeSeg* S)
 /* Remove dead code (code that follows an unconditional jump or an rts/rti
- * and has no label)
- */
+** and has no label)
+*/
 {
     unsigned Changes = 0;
 
@@ -400,9 +400,9 @@ unsigned OptDeadCode (CodeSeg* S)
         CodeEntry* E = CS_GetEntry (S, I);
 
         /* Check if it's an unconditional branch, and if the next entry has
-         * no labels attached, or if the label is just used so that the insn
-         * can jump to itself.
-         */
+        ** no labels attached, or if the label is just used so that the insn
+        ** can jump to itself.
+        */
         if ((E->Info & OF_DEAD) != 0                     &&     /* Dead code follows */
             (N = CS_GetNextEntry (S, I)) != 0            &&     /* Has next entry */
             (!CE_HasLabel (N)                        ||         /* Don't has a label */
@@ -439,11 +439,11 @@ unsigned OptDeadCode (CodeSeg* S)
 
 unsigned OptJumpCascades (CodeSeg* S)
 /* Optimize jump cascades (jumps to jumps). In such a case, the jump is
- * replaced by a jump to the final location. This will in some cases produce
- * worse code, because some jump targets are no longer reachable by short
- * branches, but this is quite rare, so there are more advantages than
- * disadvantages.
- */
+** replaced by a jump to the final location. This will in some cases produce
+** worse code, because some jump targets are no longer reachable by short
+** branches, but this is quite rare, so there are more advantages than
+** disadvantages.
+*/
 {
     unsigned Changes = 0;
 
@@ -458,17 +458,17 @@ unsigned OptJumpCascades (CodeSeg* S)
         CodeEntry* E = CS_GetEntry (S, I);
 
         /* Check:
-         *   - if it's a branch,
-         *   - if it has a jump label,
-         *   - if this jump label is not attached to the instruction itself,
-         *   - if the target instruction is itself a branch,
-         *   - if either the first branch is unconditional or the target of
-         *     the second branch is internal to the function.
-         * The latter condition will avoid conditional branches to targets
-         * outside of the function (usually incspx), which won't simplify the
-         * code, since conditional far branches are emulated by a short branch
-         * around a jump.
-         */
+        **   - if it's a branch,
+        **   - if it has a jump label,
+        **   - if this jump label is not attached to the instruction itself,
+        **   - if the target instruction is itself a branch,
+        **   - if either the first branch is unconditional or the target of
+        **     the second branch is internal to the function.
+        ** The latter condition will avoid conditional branches to targets
+        ** outside of the function (usually incspx), which won't simplify the
+        ** code, since conditional far branches are emulated by a short branch
+        ** around a jump.
+        */
         if ((E->Info & OF_BRA) != 0             &&
             (OldLabel = E->JumpTo) != 0         &&
             (N = OldLabel->Owner) != E          &&
@@ -476,27 +476,27 @@ unsigned OptJumpCascades (CodeSeg* S)
             ((E->Info & OF_CBRA) == 0   ||
              N->JumpTo != 0)) {
 
-            /* Check if we can use the final target label. This is the case,
-             * if the target branch is an absolut branch, or if it is a
-             * conditional branch checking the same condition as the first one.
-             */
+            /* Check if we can use the final target label. That is the case,
+            ** if the target branch is an absolute branch; or, if it is a
+            ** conditional branch checking the same condition as the first one.
+            */
             if ((N->Info & OF_UBRA) != 0 ||
                 ((E->Info & OF_CBRA) != 0 &&
                  GetBranchCond (E->OPC)  == GetBranchCond (N->OPC))) {
 
                 /* This is a jump cascade and we may jump to the final target,
-                 * provided that the other insn does not jump to itself. If
-                 * this is the case, we can also jump to ourselves, otherwise
-                 * insert a jump to the new instruction and remove the old one.
-                 */
+                ** provided that the other insn does not jump to itself. If
+                ** this is the case, we can also jump to ourselves, otherwise
+                ** insert a jump to the new instruction and remove the old one.
+                */
                 CodeEntry* X;
                 CodeLabel* LN = N->JumpTo;
 
                 if (LN != 0 && LN->Owner == N) {
 
                     /* We found a jump to a jump to itself. Replace our jump
-                     * by a jump to itself.
-                     */
+                    ** by a jump to itself.
+                    */
                     CodeLabel* LE = CS_GenLabel (S, E);
                     X = NewCodeEntry (E->OPC, E->AM, LE->Name, LE, E->LI);
 
@@ -517,10 +517,10 @@ unsigned OptJumpCascades (CodeSeg* S)
                 ++Changes;
 
             /* Check if both are conditional branches, and the condition of
-             * the second is the inverse of that of the first. In this case,
-             * the second branch will never be taken, and we may jump directly
-             * to the instruction behind this one.
-             */
+            ** the second is the inverse of that of the first. In this case,
+            ** the second branch will never be taken, and we may jump directly
+            ** to the instruction behind this one.
+            */
             } else if ((E->Info & OF_CBRA) != 0 && (N->Info & OF_CBRA) != 0) {
 
                 CodeEntry* X;   /* Instruction behind N */
@@ -537,8 +537,8 @@ unsigned OptJumpCascades (CodeSeg* S)
                 }
 
                 /* We may jump behind this conditional branch. Get the
-                 * pointer to the next instruction
-                 */
+                ** pointer to the next instruction
+                */
                 if ((X = CS_GetNextEntry (S, CS_GetEntryIndex (S, N))) == 0) {
                     /* N is the last entry, bail out */
                     goto NextEntry;
@@ -575,9 +575,9 @@ NextEntry:
 
 unsigned OptRTS (CodeSeg* S)
 /* Optimize subroutine calls followed by an RTS. The subroutine call will get
- * replaced by a jump. Don't bother to delete the RTS if it does not have a
- * label, the dead code elimination should take care of it.
- */
+** replaced by a jump. Don't bother to delete the RTS if it does not have a
+** label, the dead code elimination should take care of it.
+*/
 {
     unsigned Changes = 0;
 
@@ -623,10 +623,10 @@ unsigned OptRTS (CodeSeg* S)
 
 unsigned OptJumpTarget1 (CodeSeg* S)
 /* If the instruction preceeding an unconditional branch is the same as the
- * instruction preceeding the jump target, the jump target may be moved
- * one entry back. This is a size optimization, since the instruction before
- * the branch gets removed.
- */
+** instruction preceeding the jump target, the jump target may be moved
+** one entry back. This is a size optimization, since the instruction before
+** the branch gets removed.
+*/
 {
     unsigned Changes = 0;
     CodeEntry* E1;              /* Entry 1 */
@@ -642,8 +642,8 @@ unsigned OptJumpTarget1 (CodeSeg* S)
         E2 = CS_GetNextEntry (S, I);
 
         /* Check if we have a jump or branch without a label attached, and
-         * a jump target, which is not attached to the jump itself
-         */
+        ** a jump target, which is not attached to the jump itself
+        */
         if (E2 != 0                     &&
             (E2->Info & OF_UBRA) != 0   &&
             !CE_HasLabel (E2)           &&
@@ -658,8 +658,8 @@ unsigned OptJumpTarget1 (CodeSeg* S)
             }
 
             /* The entry preceeding the branch target may not be the branch
-             * insn.
-             */
+            ** insn.
+            */
             if (T1 == E2) {
                 goto NextEntry;
             }
@@ -674,17 +674,17 @@ unsigned OptJumpTarget1 (CodeSeg* S)
             }
 
             /* Get the label for the instruction preceeding the jump target.
-             * This routine will create a new label if the instruction does
-             * not already have one.
-             */
+            ** This routine will create a new label if the instruction does
+            ** not already have one.
+            */
             TL1 = CS_GenLabel (S, T1);
 
             /* Change the jump target to point to this new label */
             CS_MoveLabelRef (S, E2, TL1);
 
             /* If the instruction preceeding the jump has labels attached,
-             * move references to this label to the new label.
-             */
+            ** move references to this label to the new label.
+            */
             if (CE_HasLabel (E1)) {
                 CS_MoveLabels (S, E1, T1);
             }
@@ -710,8 +710,8 @@ NextEntry:
 
 unsigned OptJumpTarget2 (CodeSeg* S)
 /* If a bcs jumps to a sec insn or a bcc jumps to clc, skip this insn, since
- * it's job is already done.
- */
+** it's job is already done.
+*/
 {
     unsigned Changes = 0;
 
@@ -748,8 +748,8 @@ unsigned OptJumpTarget2 (CodeSeg* S)
         }
 
         /* Get the owner insn of the jump target and check if it's the one, we
-         * will skip if present.
-         */
+        ** will skip if present.
+        */
         T = E->JumpTo->Owner;
         if (T->OPC != OPC) {
             goto NextEntry;
@@ -763,9 +763,9 @@ unsigned OptJumpTarget2 (CodeSeg* S)
         }
 
         /* Get the label for the instruction following the jump target.
-         * This routine will create a new label if the instruction does
-         * not already have one.
-         */
+        ** This routine will create a new label if the instruction does
+        ** not already have one.
+        */
         L = CS_GenLabel (S, N);
 
         /* Change the jump target to point to this new label */
@@ -787,9 +787,9 @@ NextEntry:
 
 unsigned OptJumpTarget3 (CodeSeg* S)
 /* Jumps to load instructions of a register, that do already have the matching
- * register contents may skip the load instruction, since it's job is already
- * done.
- */
+** register contents may skip the load instruction, since it's job is already
+** done.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -804,8 +804,8 @@ unsigned OptJumpTarget3 (CodeSeg* S)
         CodeEntry* E = CS_GetEntry (S, I);
 
         /* Check if this is a load insn with a label and the next insn is not
-         * a conditional branch that needs the flags from the load.
-         */
+        ** a conditional branch that needs the flags from the load.
+        */
         if ((E->Info & OF_LOAD) != 0            &&
             CE_IsConstImm (E)                   &&
             CE_HasLabel (E)                     &&
@@ -825,9 +825,9 @@ unsigned OptJumpTarget3 (CodeSeg* S)
                 CodeLabel* L = CE_GetLabel (E, J);
 
                 /* Loop over all insn that reference this label. Since we may
-                 * eventually remove a reference in the loop, we must loop
-                 * from end down to start.
-                 */
+                ** eventually remove a reference in the loop, we must loop
+                ** from end down to start.
+                */
                 for (K = CL_GetRefCount (L) - 1; K >= 0; --K) {
 
                     /* Get the entry that jumps here */
@@ -839,9 +839,9 @@ unsigned OptJumpTarget3 (CodeSeg* S)
                     /* Check if the outgoing value is the one thats's loaded */
                     if (Val == (unsigned char) E->Num) {
 
-                        /* Ok, skip the insn. First, generate a label for the
-                         * next insn after E.
-                         */
+                        /* OK, skip the insn. First, generate a label for the
+                        ** next insn after E.
+                        */
                         if (LN == 0) {
                             LN = CS_GenLabel (S, N);
                         }
@@ -875,16 +875,16 @@ unsigned OptJumpTarget3 (CodeSeg* S)
 
 unsigned OptCondBranches1 (CodeSeg* S)
 /* Performs several optimization steps:
- *
- *  - If an immidiate load of a register is followed by a conditional jump that
- *    is never taken because the load of the register sets the flags in such a
- *    manner, remove the conditional branch.
- *  - If the conditional branch is always taken because of the register load,
- *    replace it by a jmp.
- *  - If a conditional branch jumps around an unconditional branch, remove the
- *    conditional branch and make the jump a conditional branch with the
- *    inverse condition of the first one.
- */
+**
+**  - If an immediate load of a register is followed by a conditional jump that
+**    is never taken because the load of the register sets the flags in such a
+**    manner, remove the conditional branch.
+**  - If the conditional branch is always taken because of the register load,
+**    replace it by a jmp.
+**  - If a conditional branch jumps around an unconditional branch, remove the
+**    conditional branch and make the jump a conditional branch with the
+**    inverse condition of the first one.
+*/
 {
     unsigned Changes = 0;
 
@@ -940,11 +940,11 @@ unsigned OptCondBranches1 (CodeSeg* S)
             (N = CS_GetNextEntry (S, I)) != 0     &&  /* There is a following entry */
             (N->Info & OF_UBRA) != 0              &&  /* ..which is an uncond branch, */
             !CE_HasLabel (N)                      &&  /* ..has no label attached */
-            L->Owner == CS_GetNextEntry (S, I+1)) {/* ..and jump target follows */
+            L->Owner == CS_GetNextEntry (S, I+1)) {   /* ..and jump target follows */
 
             /* Replace the jump by a conditional branch with the inverse branch
-             * condition than the branch around it.
-             */
+            ** condition than the branch around it.
+            */
             CE_ReplaceOPC (N, GetInverseBranch (E->OPC));
 
             /* Remove the conditional branch */
@@ -968,8 +968,8 @@ unsigned OptCondBranches1 (CodeSeg* S)
 
 unsigned OptCondBranches2 (CodeSeg* S)
 /* If on entry to a "rol a" instruction the accu is zero, and a beq/bne follows,
- * we can remove the rol and branch on the state of the carry flag.
- */
+** we can remove the rol and branch on the state of the carry flag.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -1103,8 +1103,8 @@ unsigned OptUnusedStores (CodeSeg* S)
             (E->Chg & REG_ZP) != 0) {
 
             /* Check for the zero page location. We know that there cannot be
-             * more than one zero page location involved in the store.
-             */
+            ** more than one zero page location involved in the store.
+            */
             unsigned R = E->Chg & REG_ZP;
 
             /* Get register usage and check if the register value is used later */
@@ -1185,9 +1185,9 @@ unsigned OptDupLoads (CodeSeg* S)
 
             case OP65_STA:
                 /* If we store into a known zero page location, and this
-                 * location does already contain the value to be stored,
-                 * remove the store.
-                 */
+                ** location does already contain the value to be stored,
+                ** remove the store.
+                */
                 if (RegValIsKnown (In->RegA)          && /* Value of A is known */
                     E->AM == AM65_ZP                  && /* Store into zp */
                     In->RegA == ZPRegVal (E->Chg, In)) { /* Value identical */
@@ -1198,9 +1198,9 @@ unsigned OptDupLoads (CodeSeg* S)
 
             case OP65_STX:
                 /* If we store into a known zero page location, and this
-                 * location does already contain the value to be stored,
-                 * remove the store.
-                 */
+                ** location does already contain the value to be stored,
+                ** remove the store.
+                */
                 if (RegValIsKnown (In->RegX)          && /* Value of A is known */
                     E->AM == AM65_ZP                  && /* Store into zp */
                     In->RegX == ZPRegVal (E->Chg, In)) { /* Value identical */
@@ -1208,11 +1208,11 @@ unsigned OptDupLoads (CodeSeg* S)
                     Delete = 1;
 
                 /* If the value in the X register is known and the same as
-                 * that in the A register, replace the store by a STA. The
-                 * optimizer will then remove the load instruction for X
-                 * later. STX does support the zeropage,y addressing mode,
-                 * so be sure to check for that.
-                 */
+                ** that in the A register, replace the store by a STA. The
+                ** optimizer will then remove the load instruction for X
+                ** later. STX does support the zeropage,y addressing mode,
+                ** so be sure to check for that.
+                */
                 } else if (RegValIsKnown (In->RegX)   &&
                            In->RegX == In->RegA       &&
                            E->AM != AM65_ABSY         &&
@@ -1224,9 +1224,9 @@ unsigned OptDupLoads (CodeSeg* S)
 
             case OP65_STY:
                 /* If we store into a known zero page location, and this
-                 * location does already contain the value to be stored,
-                 * remove the store.
-                 */
+                ** location does already contain the value to be stored,
+                ** remove the store.
+                */
                 if (RegValIsKnown (In->RegY)          && /* Value of Y is known */
                     E->AM == AM65_ZP                  && /* Store into zp */
                     In->RegY == ZPRegVal (E->Chg, In)) { /* Value identical */
@@ -1234,12 +1234,12 @@ unsigned OptDupLoads (CodeSeg* S)
                     Delete = 1;
 
                 /* If the value in the Y register is known and the same as
-                 * that in the A register, replace the store by a STA. The
-                 * optimizer will then remove the load instruction for Y
-                 * later. If replacement by A is not possible try a
-                 * replacement by X, but check for invalid addressing modes
-                 * in this case.
-                 */
+                ** that in the A register, replace the store by a STA. The
+                ** optimizer will then remove the load instruction for Y
+                ** later. If replacement by A is not possible try a
+                ** replacement by X, but check for invalid addressing modes
+                ** in this case.
+                */
                 } else if (RegValIsKnown (In->RegY)) {
                     if (In->RegY == In->RegA) {
                         CE_ReplaceOPC (E, OP65_STA);
@@ -1253,9 +1253,9 @@ unsigned OptDupLoads (CodeSeg* S)
 
             case OP65_STZ:
                 /* If we store into a known zero page location, and this
-                 * location does already contain the value to be stored,
-                 * remove the store.
-                 */
+                ** location does already contain the value to be stored,
+                ** remove the store.
+                */
                 if ((CPUIsets[CPU] & CPU_ISET_65SC02) != 0 && E->AM == AM65_ZP) {
                     if (ZPRegVal (E->Chg, In) == 0) {
                         Delete = 1;
@@ -1348,8 +1348,8 @@ unsigned OptStoreLoad (CodeSeg* S)
         CodeEntry* E = CS_GetEntry (S, I);
 
         /* Check if it is a store instruction followed by a load from the
-         * same address which is itself not followed by a conditional branch.
-         */
+        ** same address which is itself not followed by a conditional branch.
+        */
         if ((E->Info & OF_STORE) != 0                       &&
             (N = CS_GetNextEntry (S, I)) != 0               &&
             !CE_HasLabel (N)                                &&
@@ -1409,9 +1409,9 @@ unsigned OptTransfers1 (CodeSeg* S)
                 (E->OPC == OP65_TYA && N->OPC == OP65_TAY && !RegAUsed (S, I+2))) {
 
                 /* If the next insn is a conditional branch, check if the insn
-                 * preceeding the first xfr will set the flags right, otherwise we
-                 * may not remove the sequence.
-                 */
+                ** preceeding the first xfr will set the flags right, otherwise we
+                ** may not remove the sequence.
+                */
                 if ((X = CS_GetNextEntry (S, I+1)) == 0) {
                     goto NextEntry;
                 }
@@ -1450,8 +1450,8 @@ NextEntry:
 
 unsigned OptTransfers2 (CodeSeg* S)
 /* Replace loads followed by a register transfer by a load with the second
- * register if possible.
- */
+** register if possible.
+*/
 {
     unsigned Changes = 0;
 
@@ -1465,8 +1465,8 @@ unsigned OptTransfers2 (CodeSeg* S)
         CodeEntry* E = CS_GetEntry (S, I);
 
         /* Check if we have a load followed by a transfer where the loaded
-         * register is not used later.
-         */
+        ** register is not used later.
+        */
         if ((E->Info & OF_LOAD) != 0                &&
             (N = CS_GetNextEntry (S, I)) != 0       &&
             !CE_HasLabel (N)                        &&
@@ -1499,8 +1499,8 @@ unsigned OptTransfers2 (CodeSeg* S)
                 X = NewCodeEntry (OP65_LDA, E->AM, E->Arg, 0, N->LI);
             } else if (E->OPC == OP65_LDX && N->OPC == OP65_TXA) {
                 /* LDX/TXA. LDA doesn't support zp,y, so we must map it to
-                 * abs,y instead.
-                 */
+                ** abs,y instead.
+                */
                 am_t AM = (E->AM == AM65_ZPY)? AM65_ABSY : E->AM;
                 X = NewCodeEntry (OP65_LDA, AM, E->Arg, 0, N->LI);
             }
@@ -1526,8 +1526,8 @@ unsigned OptTransfers2 (CodeSeg* S)
 
 unsigned OptTransfers3 (CodeSeg* S)
 /* Replace a register transfer followed by a store of the second register by a
- * store of the first register if this is possible.
- */
+** store of the first register if this is possible.
+*/
 {
     unsigned Changes      = 0;
     unsigned UsedRegs     = REG_NONE;   /* Track used registers */
@@ -1544,8 +1544,8 @@ unsigned OptTransfers3 (CodeSeg* S)
     } State = Initialize;
 
     /* Walk over the entries. Look for a xfer instruction that is followed by
-     * a store later, where the value of the register is not used later.
-     */
+    ** a store later, where the value of the register is not used later.
+    */
     unsigned I = 0;
     while (I < CS_GetEntryCount (S)) {
 
@@ -1570,8 +1570,8 @@ unsigned OptTransfers3 (CodeSeg* S)
 
             case FoundXfer:
                 /* If we find a conditional jump, abort the sequence, since
-                 * handling them makes things really complicated.
-                 */
+                ** handling them makes things really complicated.
+                */
                 if (E->Info & OF_CBRA) {
 
                     /* Switch back to searching */
@@ -1582,8 +1582,8 @@ unsigned OptTransfers3 (CodeSeg* S)
                 } else if ((E->Use & XferEntry->Chg) != 0) {
 
                     /* It it's a store instruction, and the block is a basic
-                     * block, proceed. Otherwise restart
-                     */
+                    ** block, proceed. Otherwise restart
+                    */
                     if ((E->Info & OF_STORE) != 0       &&
                         CS_IsBasicBlock (S, Xfer, I)) {
                         Store = I;
@@ -1598,9 +1598,9 @@ unsigned OptTransfers3 (CodeSeg* S)
                 } else if (E->Chg & XferEntry->Chg) {
 
                     /* We *may* add code here to remove the transfer, but I'm
-                     * currently not sure about the consequences, so I won't
-                     * do that and bail out instead.
-                     */
+                    ** currently not sure about the consequences, so I won't
+                    ** do that and bail out instead.
+                    */
                     I = Xfer;
                     State = Initialize;
 
@@ -1619,9 +1619,9 @@ unsigned OptTransfers3 (CodeSeg* S)
 
             case FoundStore:
                 /* We are at the instruction behind the store. If the register
-                 * isn't used later, and we have an address mode match, we can
-                 * replace the transfer by a store and remove the store here.
-                 */
+                ** isn't used later, and we have an address mode match, we can
+                ** replace the transfer by a store and remove the store here.
+                */
                 if ((GetRegInfo (S, I, XferEntry->Chg) & XferEntry->Chg) == 0   &&
                     (StoreEntry->AM == AM65_ABS         ||
                      StoreEntry->AM == AM65_ZP)                                 &&
@@ -1710,8 +1710,8 @@ unsigned OptTransfers3 (CodeSeg* S)
 
 unsigned OptTransfers4 (CodeSeg* S)
 /* Replace a load of a register followed by a transfer insn of the same register
- * by a load of the second register if possible.
- */
+** by a load of the second register if possible.
+*/
 {
     unsigned Changes      = 0;
     unsigned Load         = 0;  /* Index of load insn */
@@ -1726,8 +1726,8 @@ unsigned OptTransfers4 (CodeSeg* S)
     } State = Search;
 
     /* Walk over the entries. Look for a load instruction that is followed by
-     * a load later.
-     */
+    ** a load later.
+    */
     unsigned I = 0;
     while (I < CS_GetEntryCount (S)) {
 
@@ -1747,8 +1747,8 @@ unsigned OptTransfers4 (CodeSeg* S)
 
             case FoundLoad:
                 /* If we find a conditional jump, abort the sequence, since
-                 * handling them makes things really complicated.
-                 */
+                ** handling them makes things really complicated.
+                */
                 if (E->Info & OF_CBRA) {
 
                     /* Switch back to searching */
@@ -1759,8 +1759,8 @@ unsigned OptTransfers4 (CodeSeg* S)
                 } else if ((E->Use & LoadEntry->Chg) != 0) {
 
                     /* It it's a xfer instruction, and the block is a basic
-                     * block, proceed. Otherwise restart
-                     */
+                    ** block, proceed. Otherwise restart
+                    */
                     if ((E->Info & OF_XFR) != 0       &&
                         CS_IsBasicBlock (S, Load, I)) {
                         Xfer = I;
@@ -1775,9 +1775,9 @@ unsigned OptTransfers4 (CodeSeg* S)
                 } else if (E->Chg & LoadEntry->Chg) {
 
                     /* We *may* add code here to remove the load, but I'm
-                     * currently not sure about the consequences, so I won't
-                     * do that and bail out instead.
-                     */
+                    ** currently not sure about the consequences, so I won't
+                    ** do that and bail out instead.
+                    */
                     I = Load;
                     State = Search;
                 }
@@ -1785,9 +1785,9 @@ unsigned OptTransfers4 (CodeSeg* S)
 
             case FoundXfer:
                 /* We are at the instruction behind the xfer. If the register
-                 * isn't used later, and we have an address mode match, we can
-                 * replace the transfer by a load and remove the initial load.
-                 */
+                ** isn't used later, and we have an address mode match, we can
+                ** replace the transfer by a load and remove the initial load.
+                */
                 if ((GetRegInfo (S, I, LoadEntry->Chg) & LoadEntry->Chg) == 0   &&
                     (LoadEntry->AM == AM65_ABS          ||
                      LoadEntry->AM == AM65_ZP           ||
@@ -1880,14 +1880,14 @@ unsigned OptPushPop (CodeSeg* S)
     } State = Searching;
 
     /* Walk over the entries. Look for a push instruction that is followed by
-     * a pop later, where the pop is not followed by an conditional branch,
-     * and where the value of the A register is not used later on.
-     * Look out for the following problems:
-     *
-     *  - There may be another PHA/PLA inside the sequence: Restart it.
-     *  - If the PLA has a label, all jumps to this label must be inside
-     *    the sequence, otherwise we cannot remove the PHA/PLA.
-     */
+    ** a pop later, where the pop is not followed by an conditional branch,
+    ** and where the value of the A register is not used later on.
+    ** Look out for the following problems:
+    **
+    **  - There may be another PHA/PLA inside the sequence: Restart it.
+    **  - If the PLA has a label, all jumps to this label must be inside
+    **    the sequence, otherwise we cannot remove the PHA/PLA.
+    */
     unsigned I = 0;
     while (I < CS_GetEntryCount (S)) {
 
@@ -1916,8 +1916,8 @@ unsigned OptPushPop (CodeSeg* S)
                     /* Found a matching pop */
                     Pop = I;
                     /* Check that the block between Push and Pop is a basic
-                     * block (one entry, one exit). Otherwise ignore it.
-                     */
+                    ** block (one entry, one exit). Otherwise ignore it.
+                    */
                     if (CS_IsBasicBlock (S, Push, Pop)) {
                         State = FoundPop;
                     } else {
@@ -1931,16 +1931,16 @@ unsigned OptPushPop (CodeSeg* S)
 
             case FoundPop:
                 /* We're at the instruction after the PLA.
-                 * Check for the following conditions:
-                 *   - If this instruction is a store of A that doesn't use
-                 *     another register, if the instruction does not have a
-                 *     label, and A is not used later, we may replace the PHA
-                 *     by the store and remove pla if several other conditions
-                 *     are met.
-                 *   - If this instruction is not a conditional branch, and A
-                 *     is either unused later, or not changed by the code
-                 *     between push and pop, we may remove PHA and PLA.
-                 */
+                ** Check for the following conditions:
+                **   - If this instruction is a store of A that doesn't use
+                **     another register, if the instruction does not have a
+                **     label, and A is not used later, we may replace the PHA
+                **     by the store and remove pla if several other conditions
+                **     are met.
+                **   - If this instruction is not a conditional branch, and A
+                **     is either unused later, or not changed by the code
+                **     between push and pop, we may remove PHA and PLA.
+                */
                 if (E->OPC == OP65_STA                          &&
                     (E->AM == AM65_ABS || E->AM == AM65_ZP)     &&
                     !CE_HasLabel (E)                            &&
@@ -1995,8 +1995,8 @@ unsigned OptPushPop (CodeSeg* S)
 
 unsigned OptPrecalc (CodeSeg* S)
 /* Replace immediate operations with the accu where the current contents are
- * known by a load of the final value.
- */
+** known by a load of the final value.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -2052,11 +2052,11 @@ unsigned OptPrecalc (CodeSeg* S)
             case OP65_ADC:
             case OP65_SBC:
                 /* If this is an operation with an immediate operand of zero,
-                 * and the register is zero, the operation won't give us any
-                 * results we don't already have (including the flags), so
-                 * remove it. Something like this is generated as a result of
-                 * a compare where parts of the values are known to be zero.
-                 */
+                ** and the register is zero, the operation won't give us any
+                ** results we don't already have (including the flags), so
+                ** remove it. Something like this is generated as a result of
+                ** a compare where parts of the values are known to be zero.
+                */
                 if (In->RegA == 0 && CE_IsKnownImm (E, 0x00)) {
                     /* 0-0 or 0+0 -> remove */
                     CS_DelEntry (S, I);
@@ -2198,15 +2198,15 @@ unsigned OptBranchDist (CodeSeg* S)
 
 unsigned OptIndLoads1 (CodeSeg* S)
 /* Change
- *
- *     lda      (zp),y
- *
- * into
- *
- *     lda      (zp,x)
- *
- * provided that x and y are both zero.
- */
+**
+**     lda      (zp),y
+**
+** into
+**
+**     lda      (zp,x)
+**
+** provided that x and y are both zero.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -2246,15 +2246,15 @@ unsigned OptIndLoads1 (CodeSeg* S)
 
 unsigned OptIndLoads2 (CodeSeg* S)
 /* Change
- *
- *     lda      (zp,x)
- *
- * into
- *
- *     lda      (zp),y
- *
- * provided that x and y are both zero.
- */
+**
+**     lda      (zp,x)
+**
+** into
+**
+**     lda      (zp),y
+**
+** provided that x and y are both zero.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
index 509ae00809d5bfb917d94354605355744fd8cc66..90e27d5474c528366deb157202bc844a81fce4c7 100644 (file)
@@ -60,51 +60,51 @@ unsigned OptDeadJumps (CodeSeg* S);
 
 unsigned OptDeadCode (CodeSeg* S);
 /* Remove dead code (code that follows an unconditional jump or an rts/rti
- * and has no label)
- */
+** and has no label)
+*/
 
 unsigned OptJumpCascades (CodeSeg* S);
 /* Optimize jump cascades (jumps to jumps). In such a case, the jump is
- * replaced by a jump to the final location. This will in some cases produce
- * worse code, because some jump targets are no longer reachable by short
- * branches, but this is quite rare, so there are more advantages than
- * disadvantages.
- */
+** replaced by a jump to the final location. This will in some cases produce
+** worse code, because some jump targets are no longer reachable by short
+** branches, but this is quite rare, so there are more advantages than
+** disadvantages.
+*/
 
 unsigned OptRTS (CodeSeg* S);
 /* Optimize subroutine calls followed by an RTS. The subroutine call will get
- * replaced by a jump. Don't bother to delete the RTS if it does not have a
- * label, the dead code elimination should take care of it.
- */
+** replaced by a jump. Don't bother to delete the RTS if it does not have a
+** label, the dead code elimination should take care of it.
+*/
 
 unsigned OptJumpTarget1 (CodeSeg* S);
 /* If the instruction preceeding an unconditional branch is the same as the
- * instruction preceeding the jump target, the jump target may be moved
- * one entry back. This is a size optimization, since the instruction before
- * the branch gets removed.
- */
+** instruction preceeding the jump target, the jump target may be moved
+** one entry back. This is a size optimization, since the instruction before
+** the branch gets removed.
+*/
 
 unsigned OptJumpTarget2 (CodeSeg* S);
 /* If a bcs jumps to a sec insn or a bcc jumps to clc, skip this insn, since
- * it's job is already done.
- */
+** it's job is already done.
+*/
 
 unsigned OptJumpTarget3 (CodeSeg* S);
 /* Jumps to load instructions of a register, that do already have the matching
- * register contents may skip the load instruction, since it's job is already
- * done.
- */
+** register contents may skip the load instruction, since it's job is already
+** done.
+*/
 
 unsigned OptCondBranches1 (CodeSeg* S);
 /* If an immidiate load of a register is followed by a conditional jump that
- * is never taken because the load of the register sets the flags in such a
- * manner, remove the conditional branch.
- */
+** is never taken because the load of the register sets the flags in such a
+** manner, remove the conditional branch.
+*/
 
 unsigned OptCondBranches2 (CodeSeg* S);
 /* If on entry to a "rol a" instruction the accu is zero, and a beq/bne follows,
- * we can remove the rol and branch on the state of the carry.
- */
+** we can remove the rol and branch on the state of the carry.
+*/
 
 unsigned OptUnusedLoads (CodeSeg* S);
 /* Remove loads of registers where the value loaded is not used later. */
@@ -123,53 +123,53 @@ unsigned OptTransfers1 (CodeSeg* S);
 
 unsigned OptTransfers2 (CodeSeg* S);
 /* Replace loads followed by a register transfer by a load with the second
- * register if possible.
- */
+** register if possible.
+*/
 
 unsigned OptTransfers3 (CodeSeg* S);
 /* Replace a register transfer followed by a store of the second register by a
- * store of the first register if this is possible.
- */
+** store of the first register if this is possible.
+*/
 
 unsigned OptTransfers4 (CodeSeg* S);
 /* Replace a load of a register followed by a transfer insn of the same register
- * by a load of the second register if possible.
- */
+** by a load of the second register if possible.
+*/
 
 unsigned OptPushPop (CodeSeg* S);
 /* Remove a PHA/PLA sequence were A is not used later */
 
 unsigned OptPrecalc (CodeSeg* S);
 /* Replace immediate operations with the accu where the current contents are
- * known by a load of the final value.
- */
+** known by a load of the final value.
+*/
 
 unsigned OptBranchDist (CodeSeg* S);
 /* Change branches for the distance needed. */
 
 unsigned OptIndLoads1 (CodeSeg* S);
 /* Change
- *
- *     lda      (zp),y
- *
- * into
- *
- *     lda      (zp,x)
- *
- * provided that x and y are both zero.
- */
+**
+**     lda      (zp),y
+**
+** into
+**
+**     lda      (zp,x)
+**
+** provided that x and y are both zero.
+*/
 
 unsigned OptIndLoads2 (CodeSeg* S);
 /* Change
- *
- *     lda      (zp,x)
- *
- * into
- *
- *     lda      (zp),y
- *
- * provided that x and y are both zero.
- */
+**
+**     lda      (zp,x)
+**
+** into
+**
+**     lda      (zp),y
+**
+** provided that x and y are both zero.
+*/
 
 
 
index fe1683ceb6d0f35d214e0d58cc83ff168e7c36cf..03b39eb4202520289fe04d18c5c3f95a4146b1a7 100644 (file)
 
 unsigned OptBNegA1 (CodeSeg* S)
 /* Check for
- *
- *      ldx     #$00
- *      lda     ..
- *      jsr     bnega
- *
- * Remove the ldx if the lda does not use it.
- */
+**
+**      ldx     #$00
+**      lda     ..
+**      jsr     bnega
+**
+** Remove the ldx if the lda does not use it.
+*/
 {
     unsigned Changes = 0;
 
@@ -100,13 +100,13 @@ unsigned OptBNegA1 (CodeSeg* S)
 
 unsigned OptBNegA2 (CodeSeg* S)
 /* Check for
- *
- *      lda     ..
- *      jsr     bnega
- *      jeq/jne ..
- *
- * Adjust the conditional branch and remove the call to the subroutine.
- */
+**
+**      lda     ..
+**      jsr     bnega
+**      jeq/jne ..
+**
+** Adjust the conditional branch and remove the call to the subroutine.
+*/
 {
     unsigned Changes = 0;
 
@@ -167,9 +167,9 @@ unsigned OptBNegA2 (CodeSeg* S)
 
 unsigned OptBNegAX1 (CodeSeg* S)
 /* On a call to bnegax, if X is zero, the result depends only on the value in
- * A, so change the call to a call to bnega. This will get further optimized
- * later if possible.
- */
+** A, so change the call to a call to bnega. This will get further optimized
+** later if possible.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -205,20 +205,20 @@ unsigned OptBNegAX1 (CodeSeg* S)
 
 unsigned OptBNegAX2 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      ldy     #xx
- *      jsr     ldaxysp
- *      jsr     bnegax
- *      jne/jeq ...
- *
- * and replace it by
- *
- *      ldy     #xx
- *      lda     (sp),y
- *      dey
- *      ora     (sp),y
- *      jeq/jne ...
- */
+**
+**      ldy     #xx
+**      jsr     ldaxysp
+**      jsr     bnegax
+**      jne/jeq ...
+**
+** and replace it by
+**
+**      ldy     #xx
+**      lda     (sp),y
+**      dey
+**      ora     (sp),y
+**      jeq/jne ...
+*/
 {
     unsigned Changes = 0;
 
@@ -278,18 +278,18 @@ unsigned OptBNegAX2 (CodeSeg* S)
 
 unsigned OptBNegAX3 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      lda     xx
- *      ldx     yy
- *      jsr     bnegax
- *      jne/jeq ...
- *
- * and replace it by
- *
- *      lda     xx
- *      ora     xx+1
- *      jeq/jne ...
- */
+**
+**      lda     xx
+**      ldx     yy
+**      jsr     bnegax
+**      jne/jeq ...
+**
+** and replace it by
+**
+**      lda     xx
+**      ora     xx+1
+**      jeq/jne ...
+*/
 {
     unsigned Changes = 0;
 
@@ -339,17 +339,17 @@ unsigned OptBNegAX3 (CodeSeg* S)
 
 unsigned OptBNegAX4 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      jsr     xxx
- *      jsr     bnega(x)
- *      jeq/jne ...
- *
- * and replace it by:
- *
- *      jsr     xxx
- *      <boolean test>
- *      jne/jeq ...
- */
+**
+**      jsr     xxx
+**      jsr     bnega(x)
+**      jeq/jne ...
+**
+** and replace it by:
+**
+**      jsr     xxx
+**      <boolean test>
+**      jne/jeq ...
+*/
 {
     unsigned Changes = 0;
 
@@ -419,13 +419,13 @@ unsigned OptBNegAX4 (CodeSeg* S)
 
 unsigned OptNegAX1 (CodeSeg* S)
 /* Search for a call to negax and replace it by
- *
- *      eor     #$FF
- *      clc
- *      adc     #$01
- *
- * if X isn't used later.
- */
+**
+**      eor     #$FF
+**      clc
+**      adc     #$01
+**
+** if X isn't used later.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -475,17 +475,17 @@ unsigned OptNegAX1 (CodeSeg* S)
 
 unsigned OptNegAX2 (CodeSeg* S)
 /* Search for a call to negax and replace it by
- *
- *      ldx     #$FF
- *      eor     #$FF
- *      clc
- *      adc     #$01
- *      bne     L1
- *      inx
- * L1:
- *
- * if X is known and zero on entry.
- */
+**
+**      ldx     #$FF
+**      eor     #$FF
+**      clc
+**      adc     #$01
+**      bne     L1
+**      inx
+** L1:
+**
+** if X is known and zero on entry.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -565,11 +565,11 @@ unsigned OptNegAX2 (CodeSeg* S)
 
 unsigned OptComplAX1 (CodeSeg* S)
 /* Search for a call to complax and replace it by
- *
- *      eor     #$FF
- *
- * if X isn't used later.
- */
+**
+**      eor     #$FF
+**
+** if X isn't used later.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
index f4947bd929b106c94a5b0ea6dff7e67d2ccfb68f..f549fc553fc771ddbd0ea658a51db23c0542f802 100644 (file)
 
 unsigned OptBNegA1 (CodeSeg* S);
 /* Check for
- *
- *      ldx     #$00
- *      lda     ..
- *      jsr     bnega
- *
- * Remove the ldx if the lda does not use it.
- */
+**
+**      ldx     #$00
+**      lda     ..
+**      jsr     bnega
+**
+** Remove the ldx if the lda does not use it.
+*/
 
 unsigned OptBNegA2 (CodeSeg* S);
 /* Check for
- *
- *      lda     ..
- *      jsr     bnega
- *      jeq/jne ..
- *
- * Adjust the conditional branch and remove the call to the subroutine.
- */
+**
+**      lda     ..
+**      jsr     bnega
+**      jeq/jne ..
+**
+** Adjust the conditional branch and remove the call to the subroutine.
+*/
 
 
 
@@ -79,56 +79,56 @@ unsigned OptBNegA2 (CodeSeg* S);
 
 unsigned OptBNegAX1 (CodeSeg* S);
 /* On a call to bnegax, if X is zero, the result depends only on the value in
- * A, so change the call to a call to bnega. This will get further optimized
- * later if possible.
- */
+** A, so change the call to a call to bnega. This will get further optimized
+** later if possible.
+*/
 
 unsigned OptBNegAX2 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      lda     (xx),y
- *      tax
- *      dey
- *      lda     (xx),y
- *      jsr     bnegax
- *      jne/jeq ...
- *
- * and replace it by
- *
- *      lda     (xx),y
- *      dey
- *      ora     (xx),y
- *      jeq/jne ...
- */
+**
+**      lda     (xx),y
+**      tax
+**      dey
+**      lda     (xx),y
+**      jsr     bnegax
+**      jne/jeq ...
+**
+** and replace it by
+**
+**      lda     (xx),y
+**      dey
+**      ora     (xx),y
+**      jeq/jne ...
+*/
 
 unsigned OptBNegAX3 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      lda     xx
- *      ldx     yy
- *      jsr     bnegax
- *      jne/jeq ...
- *
- * and replace it by
- *
- *      lda     xx
- *      ora     xx+1
- *      jeq/jne ...
- */
+**
+**      lda     xx
+**      ldx     yy
+**      jsr     bnegax
+**      jne/jeq ...
+**
+** and replace it by
+**
+**      lda     xx
+**      ora     xx+1
+**      jeq/jne ...
+*/
 
 unsigned OptBNegAX4 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      jsr     xxx
- *      jsr     bnega(x)
- *      jeq/jne ...
- *
- * and replace it by:
- *
- *      jsr     xxx
- *      <boolean test>
- *      jne/jeq ...
- */
+**
+**      jsr     xxx
+**      jsr     bnega(x)
+**      jeq/jne ...
+**
+** and replace it by:
+**
+**      jsr     xxx
+**      <boolean test>
+**      jne/jeq ...
+*/
 
 
 
@@ -140,27 +140,27 @@ unsigned OptBNegAX4 (CodeSeg* S);
 
 unsigned OptNegAX1 (CodeSeg* S);
 /* Search for a call to negax and replace it by
- *
- *      eor     #$FF
- *      clc
- *      adc     #$01
- *
- * if X isn't used later.
- */
+**
+**      eor     #$FF
+**      clc
+**      adc     #$01
+**
+** if X isn't used later.
+*/
 
 unsigned OptNegAX2 (CodeSeg* S);
 /* Search for a call to negax and replace it by
- *
- *      ldx     #$FF
- *      eor     #$FF
- *      clc
- *      adc     #$01
- *      bne     L1
- *      inx
- * L1:
- *
- * if X is known and zero on entry.
- */
+**
+**      ldx     #$FF
+**      eor     #$FF
+**      clc
+**      adc     #$01
+**      bne     L1
+**      inx
+** L1:
+**
+** if X is known and zero on entry.
+*/
 
 
 
@@ -172,11 +172,11 @@ unsigned OptNegAX2 (CodeSeg* S);
 
 unsigned OptComplAX1 (CodeSeg* S);
 /* Search for a call to complax and replace it by
- *
- *      eor     #$FF
- *
- * if X isn't used later.
- */
+**
+**      eor     #$FF
+**
+** if X isn't used later.
+*/
 
 
 
index 1ab4b32599537f80f27775d8044dea66362be8e8..ee783c93f3ad3fd58f88660a14ea751f8e10e697 100644 (file)
 
 unsigned OptPtrLoad1 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      clc
- *      adc     xxx
- *      tay
- *      txa
- *      adc     yyy
- *      tax
- *      tya
- *      ldy     #$00
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      sta     ptr1
- *      txa
- *      clc
- *      adc     yyy
- *      sta     ptr1+1
- *      ldy     xxx
- *      ldx     #$00
- *      lda     (ptr1),y
- */
+**
+**      clc
+**      adc     xxx
+**      tay
+**      txa
+**      adc     yyy
+**      tax
+**      tya
+**      ldy     #$00
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      sta     ptr1
+**      txa
+**      clc
+**      adc     yyy
+**      sta     ptr1+1
+**      ldy     xxx
+**      ldx     #$00
+**      lda     (ptr1),y
+*/
 {
     unsigned Changes = 0;
 
@@ -115,9 +115,9 @@ unsigned OptPtrLoad1 (CodeSeg* S)
             CS_InsertEntry (S, X, IP++);
 
             /* If the instruction before the clc is a ldx, replace the
-             * txa by an lda with the same location of the ldx. Otherwise
-             * transfer the value in X to A.
-             */
+            ** txa by an lda with the same location of the ldx. Otherwise
+            ** transfer the value in X to A.
+            */
             if ((P = CS_GetPrevEntry (S, I)) != 0 &&
                 P->OPC == OP65_LDX                &&
                 !CE_HasLabel (P)) {
@@ -172,29 +172,29 @@ unsigned OptPtrLoad1 (CodeSeg* S)
 
 unsigned OptPtrLoad2 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      adc     xxx
- *      pha
- *      txa
- *      iny
- *      adc     yyy
- *      tax
- *      pla
- *      ldy
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      adc     xxx
- *      sta     ptr1
- *      txa
- *      iny
- *      adc     yyy
- *      sta     ptr1+1
- *      ldy
- *      ldx     #$00
- *      lda     (ptr1),y
- */
+**
+**      adc     xxx
+**      pha
+**      txa
+**      iny
+**      adc     yyy
+**      tax
+**      pla
+**      ldy
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      adc     xxx
+**      sta     ptr1
+**      txa
+**      iny
+**      adc     yyy
+**      sta     ptr1+1
+**      ldy
+**      ldx     #$00
+**      lda     (ptr1),y
+*/
 {
     unsigned Changes = 0;
 
@@ -260,22 +260,22 @@ unsigned OptPtrLoad2 (CodeSeg* S)
 
 unsigned OptPtrLoad3 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      lda     #<(label+0)
- *      ldx     #>(label+0)
- *      clc
- *      adc     xxx
- *      bcc     L
- *      inx
- * L:   ldy     #$00
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      ldy     xxx
- *      ldx     #$00
- *      lda     label,y
- */
+**
+**      lda     #<(label+0)
+**      ldx     #>(label+0)
+**      clc
+**      adc     xxx
+**      bcc     L
+**      inx
+** L:   ldy     #$00
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      ldy     xxx
+**      ldx     #$00
+**      lda     label,y
+*/
 {
     unsigned Changes = 0;
 
@@ -319,8 +319,8 @@ unsigned OptPtrLoad3 (CodeSeg* S)
             char* Label;
 
             /* We will create all the new stuff behind the current one so
-             * we keep the line references.
-             */
+            ** we keep the line references.
+            */
             X = NewCodeEntry (OP65_LDY, L[3]->AM, L[3]->Arg, 0, L[0]->LI);
             CS_InsertEntry (S, X, I+8);
 
@@ -354,25 +354,25 @@ unsigned OptPtrLoad3 (CodeSeg* S)
 
 unsigned OptPtrLoad4 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      lda     #<(label+0)
- *      ldx     #>(label+0)
- *      ldy     #$xx
- *      clc
- *      adc     (sp),y
- *      bcc     L
- *      inx
- * L:   ldy     #$00
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      ldy     #$xx
- *      lda     (sp),y
- *      tay
- *      ldx     #$00
- *      lda     label,y
- */
+**
+**      lda     #<(label+0)
+**      ldx     #>(label+0)
+**      ldy     #$xx
+**      clc
+**      adc     (sp),y
+**      bcc     L
+**      inx
+** L:   ldy     #$00
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      ldy     #$xx
+**      lda     (sp),y
+**      tay
+**      ldx     #$00
+**      lda     label,y
+*/
 {
     unsigned Changes = 0;
 
@@ -463,22 +463,22 @@ unsigned OptPtrLoad4 (CodeSeg* S)
 
 unsigned OptPtrLoad5 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      jsr     pushax
- *      ldx     #$00
- *      lda     yyy
- *      jsr     tosaddax
- *      ldy     #$00
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      sta     ptr1
- *      stx     ptr1+1
- *      ldy     yyy
- *      ldx     #$00
- *      lda     (ptr1),y
- */
+**
+**      jsr     pushax
+**      ldx     #$00
+**      lda     yyy
+**      jsr     tosaddax
+**      ldy     #$00
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      sta     ptr1
+**      stx     ptr1+1
+**      ldy     yyy
+**      ldx     #$00
+**      lda     (ptr1),y
+*/
 {
     unsigned Changes = 0;
 
@@ -549,25 +549,25 @@ unsigned OptPtrLoad5 (CodeSeg* S)
 
 unsigned OptPtrLoad6 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      jsr     pushax
- *      ldy     #xxx
- *      ldx     #$00
- *      lda     (sp),y
- *      jsr     tosaddax
- *      ldy     #$00
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      sta     ptr1
- *      stx     ptr1+1
- *      ldy     #xxx-2
- *      lda     (sp),y
- *      tay
- *      ldx     #$00
- *      lda     (ptr1),y
- */
+**
+**      jsr     pushax
+**      ldy     #xxx
+**      ldx     #$00
+**      lda     (sp),y
+**      jsr     tosaddax
+**      ldy     #$00
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      sta     ptr1
+**      stx     ptr1+1
+**      ldy     #xxx-2
+**      lda     (sp),y
+**      tay
+**      ldx     #$00
+**      lda     (ptr1),y
+*/
 {
     unsigned Changes = 0;
 
@@ -650,35 +650,35 @@ unsigned OptPtrLoad6 (CodeSeg* S)
 
 unsigned OptPtrLoad7 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      jsr     aslax1/shlax1
- *      clc
- *      adc     xxx
- *      tay
- *      txa
- *      adc     yyy
- *      tax
- *      tya
- *      ldy     zzz
- *      jsr     ldaxidx
- *
- * and replace it by:
- *
- *      stx     tmp1
- *      asl     a
- *      rol     tmp1
- *      clc
- *      adc     xxx
- *      sta     ptr1
- *      lda     tmp1
- *      adc     yyy
- *      sta     ptr1+1
- *      ldy     zzz
- *      lda     (ptr1),y
- *      tax
- *      dey
- *      lda     (ptr1),y
- */
+**
+**      jsr     aslax1/shlax1
+**      clc
+**      adc     xxx
+**      tay
+**      txa
+**      adc     yyy
+**      tax
+**      tya
+**      ldy     zzz
+**      jsr     ldaxidx
+**
+** and replace it by:
+**
+**      stx     tmp1
+**      asl     a
+**      rol     tmp1
+**      clc
+**      adc     xxx
+**      sta     ptr1
+**      lda     tmp1
+**      adc     yyy
+**      sta     ptr1+1
+**      ldy     zzz
+**      lda     (ptr1),y
+**      tax
+**      dey
+**      lda     (ptr1),y
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -715,15 +715,15 @@ unsigned OptPtrLoad7 (CodeSeg* S)
 
 
             /* If X is zero on entry to aslax1, we can generate:
-             *
-             *      asl     a
-             *      bcc     L1
-             *      inx
-             * L1:  clc
-             *
-             * instead of the code above. "lda tmp1" needs to be changed
-             * to "txa" in this case.
-             */
+            **
+            **      asl     a
+            **      bcc     L1
+            **      inx
+            ** L1:  clc
+            **
+            ** instead of the code above. "lda tmp1" needs to be changed
+            ** to "txa" in this case.
+            */
             int ShortCode = (L[0]->RI->In.RegX == 0);
 
             if (ShortCode) {
@@ -838,22 +838,22 @@ unsigned OptPtrLoad7 (CodeSeg* S)
 
 unsigned OptPtrLoad11 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      clc
- *      adc     xxx
- *      bcc     L
- *      inx
- * L:   ldy     #$00
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      ldy     xxx
- *      sta     ptr1
- *      stx     ptr1+1
- *      ldx     #$00
- *      lda     (ptr1),y
- */
+**
+**      clc
+**      adc     xxx
+**      bcc     L
+**      inx
+** L:   ldy     #$00
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      ldy     xxx
+**      sta     ptr1
+**      stx     ptr1+1
+**      ldx     #$00
+**      lda     (ptr1),y
+*/
 {
     unsigned Changes = 0;
 
@@ -884,8 +884,8 @@ unsigned OptPtrLoad11 (CodeSeg* S)
             CodeEntry* X;
 
             /* We will create all the new stuff behind the current one so
-             * we keep the line references.
-             */
+            ** we keep the line references.
+            */
             X = NewCodeEntry (OP65_LDY, L[1]->AM, L[1]->Arg, 0, L[0]->LI);
             CS_InsertEntry (S, X, I+6);
 
@@ -925,35 +925,35 @@ unsigned OptPtrLoad11 (CodeSeg* S)
 
 unsigned OptPtrLoad12 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      lda     regbank+n
- *      ldx     regbank+n+1
- *      sta     regsave
- *      stx     regsave+1
- *      clc
- *      adc     #$01
- *      bcc     L0005
- *      inx
- * L:   sta     regbank+n
- *      stx     regbank+n+1
- *      lda     regsave
- *      ldx     regsave+1
- *      ldy     #$00
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      ldy     #$00
- *      ldx     #$00
- *      lda     (regbank+n),y
- *      inc     regbank+n
- *      bne     L1
- *      inc     regbank+n+1
- * L1:  tay                     <- only if flags are used
- *
- * This function must execute before OptPtrLoad7!
- *
- */
+**
+**      lda     regbank+n
+**      ldx     regbank+n+1
+**      sta     regsave
+**      stx     regsave+1
+**      clc
+**      adc     #$01
+**      bcc     L0005
+**      inx
+** L:   sta     regbank+n
+**      stx     regbank+n+1
+**      lda     regsave
+**      ldx     regsave+1
+**      ldy     #$00
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      ldy     #$00
+**      ldx     #$00
+**      lda     (regbank+n),y
+**      inc     regbank+n
+**      bne     L1
+**      inc     regbank+n+1
+** L1:  tay                     <- only if flags are used
+**
+** This function must execute before OptPtrLoad7!
+**
+*/
 {
     unsigned Changes = 0;
 
@@ -1012,17 +1012,17 @@ unsigned OptPtrLoad12 (CodeSeg* S)
             CodeLabel* Label;
 
             /* Check if the instruction following the sequence uses the flags
-             * set by the load. If so, insert a test of the value in the
-             * accumulator.
-             */
+            ** set by the load. If so, insert a test of the value in the
+            ** accumulator.
+            */
             if (CE_UseLoadFlags (L[14])) {
                 X = NewCodeEntry (OP65_TAY, AM65_IMP, 0, 0, L[13]->LI);
                 CS_InsertEntry (S, X, I+14);
             }
 
             /* Attach a label to L[14]. This may be either the just inserted
-             * instruction, or the one following the sequence.
-             */
+            ** instruction, or the one following the sequence.
+            */
             Label = CS_GenLabel (S, L[14]);
 
             /* ldy #$xx */
@@ -1070,18 +1070,18 @@ unsigned OptPtrLoad12 (CodeSeg* S)
 
 unsigned OptPtrLoad13 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      lda     zp
- *      ldx     zp+1
- *      ldy     xx
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      ldy     xx
- *      ldx     #$00
- *      lda     (zp),y
- */
+**
+**      lda     zp
+**      ldx     zp+1
+**      ldy     xx
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      ldy     xx
+**      ldx     #$00
+**      lda     (zp),y
+*/
 {
     unsigned Changes = 0;
 
@@ -1138,23 +1138,22 @@ unsigned OptPtrLoad13 (CodeSeg* S)
 
 unsigned OptPtrLoad14 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      lda     zp
- *      ldx     zp+1
- *      (anything that doesn't change a/x)
- *      ldy     xx
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      lda     zp
- *      ldx     zp+1
- *      (anything that doesn't change a/x)
- *      ldy     xx
- *      ldx     #$00
- *      lda     (zp),y
- *
- */
+**
+**      lda     zp
+**      ldx     zp+1
+**      (anything that doesn't change a/x)
+**      ldy     xx
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      lda     zp
+**      ldx     zp+1
+**      (anything that doesn't change a/x)
+**      ldy     xx
+**      ldx     #$00
+**      lda     (zp),y
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -1212,24 +1211,24 @@ unsigned OptPtrLoad14 (CodeSeg* S)
 
 unsigned OptPtrLoad15 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      lda     zp
- *      ldx     zp+1
- *      jsr     pushax          <- optional
- *      ldy     xx
- *      jsr     ldaxidx
- *
- * and replace it by:
- *
- *      lda     zp              <- only if
- *      ldx     zp+1            <- call to
- *      jsr     pushax          <- pushax present
- *      ldy     xx
- *      lda     (zp),y
- *      tax
- *      dey
- *      lda     (zp),y
- */
+**
+**      lda     zp
+**      ldx     zp+1
+**      jsr     pushax          <- optional
+**      ldy     xx
+**      jsr     ldaxidx
+**
+** and replace it by:
+**
+**      lda     zp              <- only if
+**      ldx     zp+1            <- call to
+**      jsr     pushax          <- pushax present
+**      ldy     xx
+**      lda     (zp),y
+**      tax
+**      dey
+**      lda     (zp),y
+*/
 {
     unsigned Changes = 0;
 
@@ -1300,20 +1299,20 @@ unsigned OptPtrLoad15 (CodeSeg* S)
 
 unsigned OptPtrLoad16 (CodeSeg* S)
 /* Search for the sequence
- *
- *      ldy     ...
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      stx     ptr1+1
- *      sta     ptr1
- *      ldy     ...
- *      ldx     #$00
- *      lda     (ptr1),y
- *
- * This step must be executed *after* OptPtrLoad1!
- */
+**
+**      ldy     ...
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      stx     ptr1+1
+**      sta     ptr1
+**      ldy     ...
+**      ldx     #$00
+**      lda     (ptr1),y
+**
+** This step must be executed *after* OptPtrLoad1!
+*/
 {
     unsigned Changes = 0;
 
@@ -1375,25 +1374,25 @@ unsigned OptPtrLoad16 (CodeSeg* S)
 
 unsigned OptPtrLoad17 (CodeSeg* S)
 /* Search for the sequence
- *
- *      ldy     ...
- *      jsr     ldaxidx
- *
- * and replace it by:
- *
- *      sta     ptr1
- *      stx     ptr1+1
- *      ldy     ...
- *      lda     (ptr1),y
- *      tax
- *      dey
- *      lda     (ptr1),y
- *
- * This step must be executed *after* OptPtrLoad9! While code size increases
- * by more than 200%, inlining will greatly improve visibility for the
- * optimizer, so often part of the code gets improved later. So we will mark
- * the step with less than 200% so it gets executed when -Oi is in effect.
- */
+**
+**      ldy     ...
+**      jsr     ldaxidx
+**
+** and replace it by:
+**
+**      sta     ptr1
+**      stx     ptr1+1
+**      ldy     ...
+**      lda     (ptr1),y
+**      tax
+**      dey
+**      lda     (ptr1),y
+**
+** This step must be executed *after* OptPtrLoad9! While code size increases
+** by more than 200%, inlining will greatly improve visibility for the
+** optimizer, so often part of the code gets improved later. So we will mark
+** the step with less than 200% so it gets executed when -Oi is in effect.
+*/
 {
     unsigned Changes = 0;
 
index 1a4124ccbd3a5097d27dd0f498d0a5544df88e99..fd93bf5c2cf55e708dcf9166520c94dfc44f71c5 100644 (file)
 
 unsigned OptPtrLoad1 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      clc
- *      adc     xxx
- *      tay
- *      txa
- *      adc     yyy
- *      tax
- *      tya
- *      ldy
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      clc
- *      adc     xxx
- *      sta     ptr1
- *      txa
- *      adc     yyy
- *      sta     ptr1+1
- *      ldy
- *      ldx     #$00
- *      lda     (ptr1),y
- */
+**
+**      clc
+**      adc     xxx
+**      tay
+**      txa
+**      adc     yyy
+**      tax
+**      tya
+**      ldy
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      clc
+**      adc     xxx
+**      sta     ptr1
+**      txa
+**      adc     yyy
+**      sta     ptr1+1
+**      ldy
+**      ldx     #$00
+**      lda     (ptr1),y
+*/
 
 unsigned OptPtrLoad2 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      adc     xxx
- *      pha
- *      txa
- *      iny
- *      adc     yyy
- *      tax
- *      pla
- *      ldy
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      adc     xxx
- *      sta     ptr1
- *      txa
- *      iny
- *      adc     yyy
- *      sta     ptr1+1
- *      ldy
- *      ldx     #$00
- *      lda     (ptr1),y
- */
+**
+**      adc     xxx
+**      pha
+**      txa
+**      iny
+**      adc     yyy
+**      tax
+**      pla
+**      ldy
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      adc     xxx
+**      sta     ptr1
+**      txa
+**      iny
+**      adc     yyy
+**      sta     ptr1+1
+**      ldy
+**      ldx     #$00
+**      lda     (ptr1),y
+*/
 
 unsigned OptPtrLoad3 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      lda     #<(label+0)
- *      ldx     #>(label+0)
- *      clc
- *      adc     xxx
- *      bcc     L
- *      inx
- * L:   ldy     #$00
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      ldy     xxx
- *      ldx     #$00
- *      lda     label,y
- */
+**
+**      lda     #<(label+0)
+**      ldx     #>(label+0)
+**      clc
+**      adc     xxx
+**      bcc     L
+**      inx
+** L:   ldy     #$00
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      ldy     xxx
+**      ldx     #$00
+**      lda     label,y
+*/
 
 unsigned OptPtrLoad4 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      lda     #<(label+0)
- *      ldx     #>(label+0)
- *      ldy     #$xx
- *      clc
- *      adc     (sp),y
- *      bcc     L
- *      inx
- * L:   ldy     #$00
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      ldy     #$xx
- *      lda     (sp),y
- *      tay
- *      ldx     #$00
- *      lda     label,y
- */
+**
+**      lda     #<(label+0)
+**      ldx     #>(label+0)
+**      ldy     #$xx
+**      clc
+**      adc     (sp),y
+**      bcc     L
+**      inx
+** L:   ldy     #$00
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      ldy     #$xx
+**      lda     (sp),y
+**      tay
+**      ldx     #$00
+**      lda     label,y
+*/
 
 unsigned OptPtrLoad5 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      jsr     pushax
- *      ldx     #$00
- *      lda     yyy
- *      jsr     tosaddax
- *      ldy     #$00
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      sta     ptr1
- *      stx     ptr1+1
- *      ldy     yyy
- *      lda     (ptr1),y
- */
+**
+**      jsr     pushax
+**      ldx     #$00
+**      lda     yyy
+**      jsr     tosaddax
+**      ldy     #$00
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      sta     ptr1
+**      stx     ptr1+1
+**      ldy     yyy
+**      lda     (ptr1),y
+*/
 
 unsigned OptPtrLoad6 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      jsr     pushax
- *      ldy     xxx
- *      ldx     #$00
- *      lda     (sp),y
- *      jsr     tosaddax
- *      ldy     #$00
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      sta     ptr1
- *      stx     ptr1+1
- *      ldy     xxx
- *      lda     (sp),y
- *      tay
- *      lda     (ptr1),y
- */
+**
+**      jsr     pushax
+**      ldy     xxx
+**      ldx     #$00
+**      lda     (sp),y
+**      jsr     tosaddax
+**      ldy     #$00
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      sta     ptr1
+**      stx     ptr1+1
+**      ldy     xxx
+**      lda     (sp),y
+**      tay
+**      lda     (ptr1),y
+*/
 
 unsigned OptPtrLoad7 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      jsr     aslax1/shlax1
- *      clc
- *      adc     xxx
- *      tay
- *      txa
- *      adc     yyy
- *      tax
- *      tya
- *      ldy     zzz
- *      jsr     ldaxidx
- *
- * and replace it by:
- *
- *      stx     tmp1
- *      asl     a
- *      rol     tmp1
- *      clc
- *      adc     xxx
- *      sta     ptr1
- *      lda     tmp1
- *      adc     yyy
- *      sta     ptr1+1
- *      ldy     zzz
- *      lda     (ptr1),y
- *      tax
- *      dey
- *      lda     (ptr1),y
- */
+**
+**      jsr     aslax1/shlax1
+**      clc
+**      adc     xxx
+**      tay
+**      txa
+**      adc     yyy
+**      tax
+**      tya
+**      ldy     zzz
+**      jsr     ldaxidx
+**
+** and replace it by:
+**
+**      stx     tmp1
+**      asl     a
+**      rol     tmp1
+**      clc
+**      adc     xxx
+**      sta     ptr1
+**      lda     tmp1
+**      adc     yyy
+**      sta     ptr1+1
+**      ldy     zzz
+**      lda     (ptr1),y
+**      tax
+**      dey
+**      lda     (ptr1),y
+*/
 
 unsigned OptPtrLoad11 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      clc
- *      adc     xxx
- *      bcc     L
- *      inx
- * L:   ldy     #$00
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      ldy     xxx
- *      sta     ptr1
- *      stx     ptr1+1
- *      ldx     #$00
- *      lda     (ptr1),y
- */
+**
+**      clc
+**      adc     xxx
+**      bcc     L
+**      inx
+** L:   ldy     #$00
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      ldy     xxx
+**      sta     ptr1
+**      stx     ptr1+1
+**      ldx     #$00
+**      lda     (ptr1),y
+*/
 
 unsigned OptPtrLoad12 (CodeSeg* S);
 /* Search for the sequence:       
- *
- *      lda     regbank+n
- *      ldx     regbank+n+1
- *      sta     regsave
- *      stx     regsave+1
- *      clc
- *      adc     #$01
- *      bcc     L0005
- *      inx
- * L:   sta     regbank+n
- *      stx     regbank+n+1
- *      lda     regsave
- *      ldx     regsave+1
- *      ldy     #$00
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      ldy     #$00
- *      ldx     #$00
- *      lda     (regbank+n),y
- *      inc     regbank+n
- *      bne     L1
- *      inc     regbank+n+1
- * L1:  tay                     <- only if flags are used
- *
- * This function must execute before OptPtrLoad7!
- *
- */
+**
+**      lda     regbank+n
+**      ldx     regbank+n+1
+**      sta     regsave
+**      stx     regsave+1
+**      clc
+**      adc     #$01
+**      bcc     L0005
+**      inx
+** L:   sta     regbank+n
+**      stx     regbank+n+1
+**      lda     regsave
+**      ldx     regsave+1
+**      ldy     #$00
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      ldy     #$00
+**      ldx     #$00
+**      lda     (regbank+n),y
+**      inc     regbank+n
+**      bne     L1
+**      inc     regbank+n+1
+** L1:  tay                     <- only if flags are used
+**
+** This function must execute before OptPtrLoad7!
+**
+*/
 
 unsigned OptPtrLoad13 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      lda     zp
- *      ldx     zp+1
- *      ldy     xx
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      ldy     xx
- *      ldx     #$00
- *      lda     (zp),y
- */
+**
+**      lda     zp
+**      ldx     zp+1
+**      ldy     xx
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      ldy     xx
+**      ldx     #$00
+**      lda     (zp),y
+*/
 
 unsigned OptPtrLoad14 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      lda     zp
- *      ldx     zp+1
- *      (anything that doesn't change a/x)
- *      ldy     xx
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      lda     zp
- *      ldx     zp+1
- *      (anything that doesn't change a/x)
- *      ldy     xx
- *      ldx     #$00
- *      lda     (zp),y
- *
- * Must execute before OptPtrLoad10!
- */
+**
+**      lda     zp
+**      ldx     zp+1
+**      (anything that doesn't change a/x)
+**      ldy     xx
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      lda     zp
+**      ldx     zp+1
+**      (anything that doesn't change a/x)
+**      ldy     xx
+**      ldx     #$00
+**      lda     (zp),y
+**
+** Must execute before OptPtrLoad10!
+*/
 
 unsigned OptPtrLoad15 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      lda     zp
- *      ldx     zp+1
- *      ldy     xx
- *      jsr     ldaxidx
- *
- * and replace it by:
- *
- *      ldy     xx
- *      lda     (zp),y
- *      tax
- *      dey
- *      lda     (zp),y
- */
+**
+**      lda     zp
+**      ldx     zp+1
+**      ldy     xx
+**      jsr     ldaxidx
+**
+** and replace it by:
+**
+**      ldy     xx
+**      lda     (zp),y
+**      tax
+**      dey
+**      lda     (zp),y
+*/
 
 unsigned OptPtrLoad16 (CodeSeg* S);
 /* Search for the sequence
- *
- *      ldy     ...
- *      jsr     ldauidx
- *
- * and replace it by:
- *
- *      ldy     ...
- *      stx     ptr1+1
- *      sta     ptr1
- *      ldx     #$00
- *      lda     (ptr1),y
- *
- * This step must be executed *after* OptPtrLoad1!
- */
+**
+**      ldy     ...
+**      jsr     ldauidx
+**
+** and replace it by:
+**
+**      ldy     ...
+**      stx     ptr1+1
+**      sta     ptr1
+**      ldx     #$00
+**      lda     (ptr1),y
+**
+** This step must be executed *after* OptPtrLoad1!
+*/
 
 unsigned OptPtrLoad17 (CodeSeg* S);
 /* Search for the sequence
- *
- *      ldy     ...
- *      jsr     ldaxidx
- *
- * and replace it by:
- *
- *      ldy     ...
- *      sta     ptr1
- *      stx     ptr1+1
- *      lda     (ptr1),y
- *      tax
- *      dey
- *      lda     (ptr1),y
- *
- * This step must be executed *after* OptPtrLoad9! While code size increases
- * by more than 200%, inlining will greatly improve visibility for the
- * optimizer, so often part of the code gets improved later. So we will mark
- * the step with less than 200% so it gets executed when -Oi is in effect.
- */
+**
+**      ldy     ...
+**      jsr     ldaxidx
+**
+** and replace it by:
+**
+**      ldy     ...
+**      sta     ptr1
+**      stx     ptr1+1
+**      lda     (ptr1),y
+**      tax
+**      dey
+**      lda     (ptr1),y
+**
+** This step must be executed *after* OptPtrLoad9! While code size increases
+** by more than 200%, inlining will greatly improve visibility for the
+** optimizer, so often part of the code gets improved later. So we will mark
+** the step with less than 200% so it gets executed when -Oi is in effect.
+*/
 
 
 
index 0f89ce9dc6182d9faea94cd3fbfd0a83f1037e4b..11832910fcc5c0a0d8721a22bc2e72f0718c9118 100644 (file)
@@ -97,9 +97,9 @@ static unsigned OptPtrStore1Sub (CodeSeg* S, unsigned I, CodeEntry** const L)
 
 static const char* LoadAXZP (CodeSeg* S, unsigned I)
 /* If the two instructions preceeding S/I are a load of A/X from a two byte
- * zero byte location, return the name of the zero page location. Otherwise
- * return NULL.
- */
+** zero byte location, return the name of the zero page location. Otherwise
+** return NULL.
+*/
 {
     CodeEntry* L[2];
     unsigned Len;
@@ -131,11 +131,11 @@ static const char* LoadAXZP (CodeSeg* S, unsigned I)
 
 static const char* LoadAXImm (CodeSeg* S, unsigned I)
 /* If the instructions preceeding S/I are a load of A/X of a constant value
- * or a word sized address label, return the address of the location as a
- * string.
- * Beware: In case of a numeric value, the result is returned in static
- * storage which is overwritten with each call.
- */
+** or a word sized address label, return the address of the location as a
+** string.
+** Beware: In case of a numeric value, the result is returned in static
+** storage which is overwritten with each call.
+*/
 {
     static StrBuf Buf = STATIC_STRBUF_INITIALIZER;
     CodeEntry* L[2];
@@ -162,9 +162,9 @@ static const char* LoadAXImm (CodeSeg* S, unsigned I)
     }
 
     /* Search back for the two instructions loading A and X. Abort
-     * the search if the registers are changed in any other way or
-     * if a label is reached while we don't have both loads.
-     */
+    ** the search if the registers are changed in any other way or
+    ** if a label is reached while we don't have both loads.
+    */
     ALoad = 0;
     XLoad = 0;
     while (I-- > 0) {
@@ -223,49 +223,49 @@ static const char* LoadAXImm (CodeSeg* S, unsigned I)
 
 unsigned OptPtrStore1 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      clc
- *      adc     xxx
- *      bcc     L
- *      inx
- * L:   jsr     pushax
- *      ldx     #$00
- *      lda     yyy
- *      ldy     #$00
- *      jsr     staspidx
- *
- * and replace it by:
- *
- *      sta     ptr1
- *      stx     ptr1+1
- *      ldy     xxx
- *      ldx     #$00
- *      lda     yyy
- *      sta     (ptr1),y
- *
- * or by
- *
- *      ldy     xxx
- *      ldx     #$00
- *      lda     yyy
- *      sta     (zp),y
- *
- * or by
- *
- *      ldy     xxx
- *      ldx     #$00
- *      lda     yyy
- *      sta     label,y
- *
- * or by
- *
- *      ldy     xxx
- *      ldx     #$00
- *      lda     yyy
- *      sta     $xxxx,y
- *
- * depending on the code preceeding the sequence above.
- */
+**
+**      clc
+**      adc     xxx
+**      bcc     L
+**      inx
+** L:   jsr     pushax
+**      ldx     #$00
+**      lda     yyy
+**      ldy     #$00
+**      jsr     staspidx
+**
+** and replace it by:
+**
+**      sta     ptr1
+**      stx     ptr1+1
+**      ldy     xxx
+**      ldx     #$00
+**      lda     yyy
+**      sta     (ptr1),y
+**
+** or by
+**
+**      ldy     xxx
+**      ldx     #$00
+**      lda     yyy
+**      sta     (zp),y
+**
+** or by
+**
+**      ldy     xxx
+**      ldx     #$00
+**      lda     yyy
+**      sta     label,y
+**
+** or by
+**
+**      ldy     xxx
+**      ldx     #$00
+**      lda     yyy
+**      sta     $xxxx,y
+**
+** depending on the code preceeding the sequence above.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -309,22 +309,22 @@ unsigned OptPtrStore1 (CodeSeg* S)
             unsigned IP = I + 9;
             if ((Loc = LoadAXZP (S, I)) != 0) {
                 /* If the sequence is preceeded by a load of a ZP value,
-                 * we can use this ZP value as a pointer using ZP
-                 * indirect Y addressing.
-                 */
+                ** we can use this ZP value as a pointer using ZP
+                ** indirect Y addressing.
+                */
                 AM = AM65_ZP_INDY;
             } else if ((Loc = LoadAXImm (S, I)) != 0) {
                 /* If the sequence is preceeded by a load of an immediate
-                 * value, we can use this absolute value as an address
-                 * using absolute indexed Y addressing.
-                 */
+                ** value, we can use this absolute value as an address
+                ** using absolute indexed Y addressing.
+                */
                 AM = AM65_ABSY;
             }
 
             /* If we don't have a store location, we use ptr1 with zp
-             * indirect Y addressing. We must store the value in A/X into
-             * ptr1 in this case.
-             */
+            ** indirect Y addressing. We must store the value in A/X into
+            ** ptr1 in this case.
+            */
             if (Loc == 0) {
 
                 /* Must use ptr1 */
@@ -340,10 +340,10 @@ unsigned OptPtrStore1 (CodeSeg* S)
             }
 
             /* If the index is loaded from (zp),y, we cannot do that directly.
-             * Note: In this case, the Y register will contain the correct
-             * value after removing the old code, so we don't need to load
-             * it here.
-             */
+            ** Note: In this case, the Y register will contain the correct
+            ** value after removing the old code, so we don't need to load
+            ** it here.
+            */
             if (L[1]->AM == AM65_ZP_INDY) {
                 X = NewCodeEntry (OP65_LDA, L[1]->AM, L[1]->Arg, 0, L[1]->LI);
                 CS_InsertEntry (S, X, IP++);
@@ -388,54 +388,54 @@ unsigned OptPtrStore1 (CodeSeg* S)
 
 unsigned OptPtrStore2 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      clc
- *      adc     xxx
- *      bcc     L
- *      inx
- * L:   jsr     pushax
- *      ldy     yyy
- *      ldx     #$00
- *      lda     (sp),y
- *      ldy     #$00
- *      jsr     staspidx
- *
- * and replace it by:
- *
- *      sta     ptr1
- *      stx     ptr1+1
- *      ldy     yyy-2
- *      ldx     #$00
- *      lda     (sp),y
- *      ldy     xxx
- *      sta     (ptr1),y
- *
- * or by
- *
- *      ldy     yyy-2
- *      ldx     #$00
- *      lda     (sp),y
- *      ldy     xxx
- *      sta     (zp),y
- *
- * or by
- *
- *      ldy     yyy-2
- *      ldx     #$00
- *      lda     (sp),y
- *      ldy     xxx
- *      sta     label,y
- *
- * or by
- *
- *      ldy     yyy-2
- *      ldx     #$00
- *      lda     (sp),y
- *      ldy     xxx
- *      sta     $xxxx,y
- *
- * depending on the code preceeding the sequence above.
- */
+**
+**      clc
+**      adc     xxx
+**      bcc     L
+**      inx
+** L:   jsr     pushax
+**      ldy     yyy
+**      ldx     #$00
+**      lda     (sp),y
+**      ldy     #$00
+**      jsr     staspidx
+**
+** and replace it by:
+**
+**      sta     ptr1
+**      stx     ptr1+1
+**      ldy     yyy-2
+**      ldx     #$00
+**      lda     (sp),y
+**      ldy     xxx
+**      sta     (ptr1),y
+**
+** or by
+**
+**      ldy     yyy-2
+**      ldx     #$00
+**      lda     (sp),y
+**      ldy     xxx
+**      sta     (zp),y
+**
+** or by
+**
+**      ldy     yyy-2
+**      ldx     #$00
+**      lda     (sp),y
+**      ldy     xxx
+**      sta     label,y
+**
+** or by
+**
+**      ldy     yyy-2
+**      ldx     #$00
+**      lda     (sp),y
+**      ldy     xxx
+**      sta     $xxxx,y
+**
+** depending on the code preceeding the sequence above.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -486,22 +486,22 @@ unsigned OptPtrStore2 (CodeSeg* S)
             unsigned IP = I + 10;
             if ((Loc = LoadAXZP (S, I)) != 0) {
                 /* If the sequence is preceeded by a load of a ZP value,
-                 * we can use this ZP value as a pointer using ZP
-                 * indirect Y addressing.
-                 */
+                ** we can use this ZP value as a pointer using ZP
+                ** indirect Y addressing.
+                */
                 AM = AM65_ZP_INDY;
             } else if ((Loc = LoadAXImm (S, I)) != 0) {
                 /* If the sequence is preceeded by a load of an immediate
-                 * value, we can use this absolute value as an address
-                 * using absolute indexed Y addressing.
-                 */
+                ** value, we can use this absolute value as an address
+                ** using absolute indexed Y addressing.
+                */
                 AM = AM65_ABSY;
             }
 
             /* If we don't have a store location, we use ptr1 with zp
-             * indirect Y addressing. We must store the value in A/X into
-             * ptr1 in this case.
-             */
+            ** indirect Y addressing. We must store the value in A/X into
+            ** ptr1 in this case.
+            */
             if (Loc == 0) {
 
                 /* Must use ptr1 */
@@ -517,20 +517,20 @@ unsigned OptPtrStore2 (CodeSeg* S)
             }
 
             /* Generate four different replacements depending on the addressing
-             * mode of the store and from where the index is loaded:
-             *
-             * 1. If the index is not loaded ZP indirect Y, we can use Y for
-             *    the store index.
-             *
-             * 2. If the index is loaded ZP indirect Y and we store absolute
-             *    indexed, we need Y to load the index and will therefore
-             *    use X as index for the store. The disadvantage is that we
-             *    need to reload X later.
-             *
-             * 3. If the index is loaded ZP indirect Y and we store ZP indirect
-             *    Y, we must use Y for load and store and must therefore save
-             *    the A register when loading Y the second time.
-             */
+            ** mode of the store and from where the index is loaded:
+            **
+            ** 1. If the index is not loaded ZP indirect Y, we can use Y for
+            **    the store index.
+            **
+            ** 2. If the index is loaded ZP indirect Y and we store absolute
+            **    indexed, we need Y to load the index and will therefore
+            **    use X as index for the store. The disadvantage is that we
+            **    need to reload X later.
+            **
+            ** 3. If the index is loaded ZP indirect Y and we store ZP indirect
+            **    Y, we must use Y for load and store and must therefore save
+            **    the A register when loading Y the second time.
+            */
             if (L[1]->AM != AM65_ZP_INDY) {
 
                 /* Case 1 */
@@ -630,29 +630,28 @@ unsigned OptPtrStore2 (CodeSeg* S)
 
 unsigned OptPtrStore3 (CodeSeg* S)
 /* Search for the sequence:
- *
- *      jsr     pushax
- *      ldy     xxx
- *      jsr     ldauidx
- *      subop
- *      ldy     yyy
- *      jsr     staspidx
- *
- * and replace it by:
- *
- *      sta     ptr1
- *      stx     ptr1+1
- *      ldy     xxx
- *      ldx     #$00
- *      lda     (ptr1),y
- *      subop
- *      ldy     yyy
- *      sta     (ptr1),y
- *
- * In case a/x is loaded from the register bank before the pushax, we can even
- * use the register bank instead of ptr1.
- *
- */
+**
+**      jsr     pushax
+**      ldy     xxx
+**      jsr     ldauidx
+**      subop
+**      ldy     yyy
+**      jsr     staspidx
+**
+** and replace it by:
+**
+**      sta     ptr1
+**      stx     ptr1+1
+**      ldy     xxx
+**      ldx     #$00
+**      lda     (ptr1),y
+**      subop
+**      ldy     yyy
+**      sta     (ptr1),y
+**
+** In case a/x is loaded from the register bank before the pushax, we can even
+** use the register bank instead of ptr1.
+*/
 {
     unsigned Changes = 0;
 
@@ -689,10 +688,10 @@ unsigned OptPtrStore3 (CodeSeg* S)
 
 
             /* Get the preceeding two instructions and check them. We check
-             * for:
-             *          lda     regbank+n
-             *          ldx     regbank+n+1
-             */
+            ** for:
+            **          lda     regbank+n
+            **          ldx     regbank+n+1
+            */
             if (I > 1) {
                 CodeEntry* P[2];
                 P[0] = CS_GetEntry (S, I-2);
@@ -740,8 +739,8 @@ unsigned OptPtrStore3 (CodeSeg* S)
             }
 
             /* Delete more old code. Do it here to keep a label attached to
-             * entry I in place.
-             */
+            ** entry I in place.
+            */
             CS_DelEntry (S, I);         /* jsr pushax */
 
             /* Remember, we had changes */
index b784a889a880a8c0f957f6db09e8bf275e2d2c24..3f8fc91f975cba72a7a88848ea3e5ce12a8e6290 100644 (file)
 
 unsigned OptPtrStore1 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      clc
- *      adc     xxx
- *      bcc     L
- *      inx
- * L:   jsr     pushax
- *      ldx     #$00
- *      lda     yyy
- *      ldy     #$00
- *      jsr     staspidx
- *
- * and replace it by:
- *
- *      sta     ptr1
- *      stx     ptr1+1
- *      ldy     xxx
- *      ldx     #$00
- *      lda     yyy
- *      sta     (ptr1),y
- *
- * or by
- *
- *      ldy     xxx
- *      ldx     #$00
- *      lda     yyy
- *      sta     (zp),y
- *
- * or by
- *
- *      ldy     xxx
- *      ldx     #$00
- *      lda     yyy
- *      sta     label,y
- *
- * or by
- *
- *      ldy     xxx
- *      ldx     #$00
- *      lda     yyy
- *      sta     $xxxx,y
- *
- * depending on the two instructions preceeding the sequence above.
- */
+**
+**      clc
+**      adc     xxx
+**      bcc     L
+**      inx
+** L:   jsr     pushax
+**      ldx     #$00
+**      lda     yyy
+**      ldy     #$00
+**      jsr     staspidx
+**
+** and replace it by:
+**
+**      sta     ptr1
+**      stx     ptr1+1
+**      ldy     xxx
+**      ldx     #$00
+**      lda     yyy
+**      sta     (ptr1),y
+**
+** or by
+**
+**      ldy     xxx
+**      ldx     #$00
+**      lda     yyy
+**      sta     (zp),y
+**
+** or by
+**
+**      ldy     xxx
+**      ldx     #$00
+**      lda     yyy
+**      sta     label,y
+**
+** or by
+**
+**      ldy     xxx
+**      ldx     #$00
+**      lda     yyy
+**      sta     $xxxx,y
+**
+** depending on the two instructions preceeding the sequence above.
+*/
 
 unsigned OptPtrStore2 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      clc
- *      adc     xxx
- *      bcc     L
- *      inx
- * L:   jsr     pushax
- *      ldy     yyy
- *      ldx     #$00
- *      lda     (sp),y
- *      ldy     #$00
- *      jsr     staspidx
- *
- * and replace it by:
- *
- *      sta     ptr1
- *      stx     ptr1+1
- *      ldy     yyy-2
- *      ldx     #$00
- *      lda     (sp),y
- *      ldy     xxx
- *      sta     (ptr1),y
- *
- * or by
- *
- *      ldy     yyy-2
- *      ldx     #$00
- *      lda     (sp),y
- *      ldy     xxx
- *      sta     (zp),y
- *
- * or by
- *
- *      ldy     yyy-2
- *      ldx     #$00
- *      lda     (sp),y
- *      ldy     xxx
- *      sta     label,y
- *
- * or by
- *
- *      ldy     yyy-2
- *      ldx     #$00
- *      lda     (sp),y
- *      ldy     xxx
- *      sta     $xxxx,y
- *
- * depending on the code preceeding the sequence above.
- */
+**
+**      clc
+**      adc     xxx
+**      bcc     L
+**      inx
+** L:   jsr     pushax
+**      ldy     yyy
+**      ldx     #$00
+**      lda     (sp),y
+**      ldy     #$00
+**      jsr     staspidx
+**
+** and replace it by:
+**
+**      sta     ptr1
+**      stx     ptr1+1
+**      ldy     yyy-2
+**      ldx     #$00
+**      lda     (sp),y
+**      ldy     xxx
+**      sta     (ptr1),y
+**
+** or by
+**
+**      ldy     yyy-2
+**      ldx     #$00
+**      lda     (sp),y
+**      ldy     xxx
+**      sta     (zp),y
+**
+** or by
+**
+**      ldy     yyy-2
+**      ldx     #$00
+**      lda     (sp),y
+**      ldy     xxx
+**      sta     label,y
+**
+** or by
+**
+**      ldy     yyy-2
+**      ldx     #$00
+**      lda     (sp),y
+**      ldy     xxx
+**      sta     $xxxx,y
+**
+** depending on the code preceeding the sequence above.
+*/
 
 unsigned OptPtrStore3 (CodeSeg* S);
 /* Search for the sequence:
- *
- *      jsr     pushax
- *      ldy     xxx
- *      jsr     ldauidx
- *      subop
- *      ldy     yyy
- *      jsr     staspidx
- *
- * and replace it by:
- *
- *      sta     ptr1
- *      stx     ptr1+1
- *      ldy     xxx
- *      ldx     #$00
- *      lda     (ptr1),y
- *      subop
- *      ldy     yyy
- *      sta     (ptr1),y
- *
- * In case a/x is loaded from the register bank before the pushax, we can even
- * use the register bank instead of ptr1.
- *
- */
+**
+**      jsr     pushax
+**      ldy     xxx
+**      jsr     ldauidx
+**      subop
+**      ldy     yyy
+**      jsr     staspidx
+**
+** and replace it by:
+**
+**      sta     ptr1
+**      stx     ptr1+1
+**      ldy     xxx
+**      ldx     #$00
+**      lda     (ptr1),y
+**      subop
+**      ldy     yyy
+**      sta     (ptr1),y
+**
+** In case a/x is loaded from the register bank before the pushax, we can even
+** use the register bank instead of ptr1.
+*/
 
 
 
index c17dd30dfb792494db1a5f8a0e24e53ed8636b38..5c3daffca0d687e33b295194884ce733bc7f0b7f 100644 (file)
 
 unsigned OptPush1 (CodeSeg* S)
 /* Given a sequence
- *
- *     jsr     ldaxysp
- *     jsr     pushax
- *
- * If a/x are not used later, and Y is known, replace that by
- *
- *     ldy     #xx+2
- *     jsr     pushwysp
- *
- * saving 3 bytes and several cycles.
- */
+**
+**     jsr     ldaxysp
+**     jsr     pushax
+**
+** If a/x are not used later, and Y is known, replace that by
+**
+**     ldy     #xx+2
+**     jsr     pushwysp
+**
+** saving 3 bytes and several cycles.
+*/
 {
     unsigned I;
     unsigned Changes = 0;
@@ -115,15 +115,14 @@ unsigned OptPush1 (CodeSeg* S)
 
 unsigned OptPush2 (CodeSeg* S)
 /* A sequence
- *
- *     jsr     ldaxidx
- *     jsr     pushax
- *
- * may get replaced by
- *
- *     jsr     pushwidx
- *
- */
+**
+**     jsr     ldaxidx
+**     jsr     pushax
+**
+** may get replaced by
+**
+**     jsr     pushwidx
+*/
 {
     unsigned I;
     unsigned Changes = 0;
index 60403486a74e4745c8e4e003667a647663b16563..0d637e8245dad738371b5a7be8dd3e4ce3312a8b 100644 (file)
 
 unsigned OptPush1 (CodeSeg* S);
 /* Given a sequence
- *
- *     ldy     #xx
- *     jsr     ldaxysp
- *     jsr     pushax
- *
- * If a/x are not used later, replace that by
- *
- *     ldy     #xx+2
- *     jsr     pushwysp
- *
- * saving 3 bytes and several cycles.
- */
+**
+**     ldy     #xx
+**     jsr     ldaxysp
+**     jsr     pushax
+**
+** If a/x are not used later, replace that by
+**
+**     ldy     #xx+2
+**     jsr     pushwysp
+**
+** saving 3 bytes and several cycles.
+*/
 
 unsigned OptPush2 (CodeSeg* S);
 /* A sequence
- *
- *     jsr     ldaxidx
- *     jsr     pushax
- *
- * may get replaced by
- *
- *     jsr     pushwidx
- *
- */
+**
+**     jsr     ldaxidx
+**     jsr     pushax
+**
+** may get replaced by
+**
+**     jsr     pushwidx
+*/
 
 
 
index 825a09577febd718ab55a40f7e7cd748ac4f9226..a4b99307372874f0cf7b83a7823f9ae54a78cc9c 100644 (file)
@@ -190,15 +190,14 @@ static unsigned GetShift (const char* Name)
 
 unsigned OptShift1 (CodeSeg* S)
 /* A call to the shlaxN routine may get replaced by one or more asl insns
- * if the value of X is not used later. If X is used later, but it is zero
- * on entry and it's a shift by one, it may get replaced by:
- *
- *      asl     a
- *      bcc     L1
- *      inx
- *  L1:
- *
- */
+** if the value of X is not used later. If X is used later, but it is zero
+** on entry and it's a shift by one, it may get replaced by:
+**
+**      asl     a
+**      bcc     L1
+**      inx
+**  L1:
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -233,12 +232,12 @@ unsigned OptShift1 (CodeSeg* S)
                     }
 
                     /* Change into
-                     *
-                     * L1:  asl     a
-                     *      dey
-                     *      bpl     L1
-                     *      ror     a
-                     */
+                    **
+                    ** L1:  asl     a
+                    **      dey
+                    **      bpl     L1
+                    **      ror     a
+                    */
 
                     /* asl a */
                     X = NewCodeEntry (OP65_ASL, AM65_ACC, "a", 0, E->LI);
@@ -310,12 +309,11 @@ NextEntry:
 
 unsigned OptShift2(CodeSeg* S)
 /* A call to the asrax1 routines may get replaced by something simpler, if
- * X is not used later:
- *
- *      cmp     #$80
- *      ror     a
- *
- */
+** X is not used later:
+**
+**      cmp     #$80
+**      ror     a
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -372,21 +370,21 @@ unsigned OptShift2(CodeSeg* S)
 
 unsigned OptShift3 (CodeSeg* S)
 /* The sequence
- *
- *      bcc     L
- *      inx
- * L:   jsr     shrax1
- *
- * may get replaced by
- *
- *      ror     a
- *
- * if X is zero on entry. For shift counts > 1, more
- *
- *      shr     a
- *
- * must be added.
- */
+**
+**      bcc     L
+**      inx
+** L:   jsr     shrax1
+**
+** may get replaced by
+**
+**      ror     a
+**
+** if X is zero on entry. For shift counts > 1, more
+**
+**      shr     a
+**
+** must be added.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -444,8 +442,8 @@ unsigned OptShift3 (CodeSeg* S)
 
 unsigned OptShift4 (CodeSeg* S)
 /* Calls to the asraxN or shraxN routines may get replaced by one or more lsr
- * insns if the value of X is zero.
- */
+** insns if the value of X is zero.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -480,17 +478,17 @@ unsigned OptShift4 (CodeSeg* S)
                 }
 
                 /* Generate:
-                 *
-                 * L1: lsr     a
-                 *     dey
-                 *     bpl     L1
-                 *     rol     a
-                 *
-                 * A negative shift count or one that is greater or equal than
-                 * the bit width of the left operand (which is promoted to
-                 * integer before the operation) causes undefined behaviour, so
-                 * above transformation is safe.
-                 */
+                **
+                ** L1: lsr     a
+                **     dey
+                **     bpl     L1
+                **     rol     a
+                **
+                ** A negative shift count or one that is greater or equal than
+                ** the bit width of the left operand (which is promoted to
+                ** integer before the operation) causes undefined behaviour, so
+                ** above transformation is safe.
+                */
 
                 /* lsr a */
                 X = NewCodeEntry (OP65_LSR, AM65_ACC, "a", 0, E->LI);
@@ -540,24 +538,24 @@ NextEntry:
 
 unsigned OptShift5 (CodeSeg* S)
 /* Search for the sequence
- *
- *      lda     xxx
- *      ldx     yyy
- *      jsr     aslax1/asrax1/shlax1/shrax1
- *      sta     aaa
- *      stx     bbb
- *
- * and replace it by
- *
- *      lda     xxx
- *      asl     a
- *      sta     aaa
- *      lda     yyy
- *      rol     a
- *      sta     bbb
- *
- * or similar, provided that a/x is not used later
- */
+**
+**      lda     xxx
+**      ldx     yyy
+**      jsr     aslax1/asrax1/shlax1/shrax1
+**      sta     aaa
+**      stx     bbb
+**
+** and replace it by
+**
+**      lda     xxx
+**      asl     a
+**      sta     aaa
+**      lda     yyy
+**      rol     a
+**      sta     bbb
+**
+** or similar, provided that a/x is not used later
+*/
 {
     unsigned Changes = 0;
 
@@ -684,19 +682,19 @@ unsigned OptShift6 (CodeSeg* S)
             (Count = SHIFT_COUNT (Shift)) > 0) {
 
             /* Code is:
-             *
-             *      stx     tmp1
-             *      asl     a
-             *      rol     tmp1
-             *      (repeat ShiftCount-1 times)
-             *      ldx     tmp1
-             *
-             * which makes 4 + 3 * ShiftCount bytes, compared to the original
-             * 3 bytes for the subroutine call. However, in most cases, the
-             * final load of the X register gets merged with some other insn
-             * and replaces a txa, so for a shift count of 1, we get a factor
-             * of 200, which matches nicely the CodeSizeFactor enabled with -Oi
-             */
+            **
+            **      stx     tmp1
+            **      asl     a
+            **      rol     tmp1
+            **      (repeat ShiftCount-1 times)
+            **      ldx     tmp1
+            **
+            ** which makes 4 + 3 * ShiftCount bytes, compared to the original
+            ** 3 bytes for the subroutine call. However, in most cases, the
+            ** final load of the X register gets merged with some other insn
+            ** and replaces a txa, so for a shift count of 1, we get a factor
+            ** of 200, which matches nicely the CodeSizeFactor enabled with -Oi
+            */
             if (Count > 1 || S->CodeSizeFactor > 200) {
                 unsigned Size = 4 + 3 * Count;
                 if ((Size * 100 / 3) > S->CodeSizeFactor) {
index fa9788c19f3ad6773df61c5a206781a4bc247fc1..0410652a1567a15dd5d4058d29dc1d9d1965bde4 100644 (file)
 
 unsigned OptShift1 (CodeSeg* S);
 /* A call to the shlaxN routine may get replaced by one or more asl insns
- * if the value of X is not used later. If X is used later, but it is zero
- * on entry and it's a shift by one, it may get replaced by:
- *
- *      asl     a
- *      bcc     L1
- *      inx
- *  L1:
- *
- */                            
+** if the value of X is not used later. If X is used later, but it is zero
+** on entry and it's a shift by one, it may get replaced by:
+**
+**      asl     a
+**      bcc     L1
+**      inx
+**  L1:
+*/
 
 unsigned OptShift2(CodeSeg* S);
 /* A call to the asrax1 routines may get replaced by something simpler, if
- * X is not used later:
- *
- *      cmp     #$80
- *      ror     a
- *
- */
+** X is not used later:
+**
+**      cmp     #$80
+**      ror     a
+*/
 
 unsigned OptShift3 (CodeSeg* S);
 /* The sequence
- *
- *      bcc     L
- *      inx
- * L:   jsr     shrax1
- *
- * may get replaced by
- *
- *      ror     a
- *
- * if X is zero on entry and unused later. For shift counts > 1, more
- *
- *      shr     a
- *
- * must be added.
- */
+**
+**      bcc     L
+**      inx
+** L:   jsr     shrax1
+**
+** may get replaced by
+**
+**      ror     a
+**
+** if X is zero on entry and unused later. For shift counts > 1, more
+**
+**      shr     a
+**
+** must be added.
+*/
 
 unsigned OptShift4 (CodeSeg* S);
 /* Calls to the asraxN or shraxN routines may get replaced by one or more lsr
- * insns if the value of X is zero.
- */
+** insns if the value of X is zero.
+*/
 
 unsigned OptShift5 (CodeSeg* S);
 /* Search for the sequence
- *
- *      lda     xxx
- *      ldx     yyy
- *      jsr     aslax1/asrax1/shlax1/shrax1
- *      sta     aaa
- *      stx     bbb
- *
- * and replace it by
- *
- *      lda     xxx
- *      asl     a
- *      sta     aaa
- *      lda     yyy
- *      rol     a
- *      sta     bbb
- *
- * or similar, provided that a/x is not used later
- */
+**
+**      lda     xxx
+**      ldx     yyy
+**      jsr     aslax1/asrax1/shlax1/shrax1
+**      sta     aaa
+**      stx     bbb
+**
+** and replace it by
+**
+**      lda     xxx
+**      asl     a
+**      sta     aaa
+**      lda     yyy
+**      rol     a
+**      sta     bbb
+**
+** or similar, provided that a/x is not used later
+*/
 
 unsigned OptShift6 (CodeSeg* S);
 /* Inline the shift subroutines. */
index 8dd9cedee395db6a9f02268eab59b5407b474f18..5c23e637cc94a853acb2cde5924511f4d0e85851 100644 (file)
@@ -65,12 +65,12 @@ struct CallDesc {
 };
 
 /* Note: The table is sorted. If there is more than one entry with the same
- * name, entries are sorted best match first, so when searching linear for
- * a match, the first one can be used because it is also the best one (or
- * at least none of the following ones are better).
- * Note^2: Ptr1 and Tmp1 aren't evaluated, because runtime routines don't
- * expect parameters here.
- */
+** name, entries are sorted best match first, so when searching linear for
+** a match, the first one can be used because it is also the best one (or
+** at least none of the following ones are better).
+** Note^2: Ptr1 and Tmp1 aren't evaluated, because runtime routines don't
+** expect parameters here.
+*/
 static const CallDesc CallTable [] = {
     /* Name          A register      X register     Y register     flags     replacement */
     {
@@ -818,8 +818,8 @@ static const CallDesc CallTable [] = {
 
 static const CallDesc* FindCall (const char* Name)
 /* Find the function with the given name. Return a pointer to the table entry
- * or NULL if the function was not found.
- */
+** or NULL if the function was not found.
+*/
 {
     /* Do a binary search */
     int First = 0;
@@ -839,8 +839,8 @@ static const CallDesc* FindCall (const char* Name)
             Last = Current - 1;
             if (Result == 0) {
                 /* Found. Repeat the procedure until the first of all entries
-                 * with the same name is found.
-                 */
+                ** with the same name is found.
+                */
                 Found = 1;
             }
         }
@@ -854,8 +854,8 @@ static const CallDesc* FindCall (const char* Name)
 
 static int RegMatch (short Expected, short Actual)
 /* Check for a register match. If Expected has a value, it must be identical
- * to Actual.
- */
+** to Actual.
+*/
 {
     return RegValIsUnknown (Expected) || (Expected == Actual);
 }
@@ -870,9 +870,9 @@ static int RegMatch (short Expected, short Actual)
 
 unsigned OptSize1 (CodeSeg* S)
 /* Do size optimization by calling special subroutines that preload registers.
- * This routine does not work standalone, it needs a following register load
- * removal pass.
- */
+** This routine does not work standalone, it needs a following register load
+** removal pass.
+*/
 {
     CodeEntry* E;
     unsigned Changes = 0;
@@ -897,14 +897,14 @@ unsigned OptSize1 (CodeSeg* S)
             const RegContents* In = &E->RI->In;
 
             /* FindCall finds the first entry that matches our function name.
-             * The names are listed in "best match" order, so search for the
-             * first one, that fulfills our conditions.
-             */
+            ** The names are listed in "best match" order, so search for the
+            ** first one, that fulfills our conditions.
+            */
             while (1) {
 
                 /* Check the registers and allow slower code only if
-                 * optimizing for size.
-                 */
+                ** optimizing for size.
+                */
                 if ((OptForSize || (D->Flags & F_SLOWER) == 0)          &&
                     RegMatch (D->Regs.RegA,    In->RegA)                &&
                     RegMatch (D->Regs.RegX,    In->RegX)                &&
@@ -947,9 +947,9 @@ unsigned OptSize1 (CodeSeg* S)
 
 unsigned OptSize2 (CodeSeg* S)
 /* Do size optimization by using shorter code sequences, even if this
- * introduces relations between instructions. This step must be one of the
- * last steps, because it makes further work much more difficult.
- */
+** introduces relations between instructions. This step must be one of the
+** last steps, because it makes further work much more difficult.
+*/
 {
     unsigned Changes = 0;
     unsigned I;
index bece6db340439731c8effc3a2f3e427e7a20a1e9..7df866824bc9e5907f2cb9996a8d85d6fd042935 100644 (file)
 
 unsigned OptSize1 (CodeSeg* S);
 /* Do size optimization by calling special subroutines that preload registers.
- * This routine does not work standalone, it needs a following register load
- * removal pass.
- */
+** This routine does not work standalone, it needs a following register load
+** removal pass.
+*/
 
 unsigned OptSize2 (CodeSeg* S);
 /* Do size optimization by using shorter code sequences, even if this
- * introduces relations between instructions. This step must be one of the
- * last steps, because it makes further work much more difficult.
- */
+** introduces relations between instructions. This step must be one of the
+** last steps, because it makes further work much more difficult.
+*/
 
 
 
index f0075e8e41824f757a3015718ac3acc4a71a8b3b..cf6392bd33a930a426f7d22b77c6e0d8fbc998dd 100644 (file)
@@ -192,8 +192,8 @@ static void ClearLoadInfo (LoadInfo* LI)
 
 static void AdjustLoadRegInfo (LoadRegInfo* RI, int Index, int Change)
 /* Adjust a load register info struct after deleting or inserting an entry
- * with a given index
- */
+** with a given index
+*/
 {
     CHECK (abs (Change) == 1);
     if (Change < 0) {
@@ -276,9 +276,9 @@ static void TrackLoads (LoadInfo* LI, CodeEntry* E, int I)
         CHECK (RI != 0);
 
         /* If we had a load or xfer op before, this is a duplicate load which
-         * can cause problems if it encountered between the pushax and the op,
-         * so remember it.
-         */
+        ** can cause problems if it encountered between the pushax and the op,
+        ** so remember it.
+        */
         if (RI->LoadIndex >= 0 || RI->XferIndex >= 0) {
             RI->Flags |= LI_DUP_LOAD;
         }
@@ -296,11 +296,11 @@ static void TrackLoads (LoadInfo* LI, CodeEntry* E, int I)
                    RegValIsKnown (E->RI->In.RegY) &&
                    strcmp (E->Arg, "sp") == 0) {
             /* A load from the stack with known offset is also ok, but in this
-             * case we must reload the index register later. Please note that
-             * a load indirect via other zero page locations is not ok, since
-             * these locations may change between the push and the actual
-             * operation.
-             */
+            ** case we must reload the index register later. Please note that
+            ** a load indirect via other zero page locations is not ok, since
+            ** these locations may change between the push and the actual
+            ** operation.
+            */
             RI->Offs  = (unsigned char) E->RI->In.RegY;
             RI->Flags |= (LI_DIRECT | LI_RELOAD_Y);
         }
@@ -322,9 +322,9 @@ static void TrackLoads (LoadInfo* LI, CodeEntry* E, int I)
         }
 
         /* If we had a load or xfer op before, this is a duplicate load which
-         * can cause problems if it encountered between the pushax and the op,
-         * so remember it.
-         */
+        ** can cause problems if it encountered between the pushax and the op,
+        ** so remember it.
+        */
         if (Tgt->LoadIndex >= 0 || Tgt->XferIndex >= 0) {
             Tgt->Flags |= LI_DUP_LOAD;
         }
@@ -339,9 +339,9 @@ static void TrackLoads (LoadInfo* LI, CodeEntry* E, int I)
     } else if (CE_IsCallTo (E, "ldaxysp") && RegValIsKnown (E->RI->In.RegY)) {
 
         /* If we had a load or xfer op before, this is a duplicate load which
-         * can cause problems if it encountered between the pushax and the op,
-         * so remember it for both registers involved.
-         */
+        ** can cause problems if it encountered between the pushax and the op,
+        ** so remember it for both registers involved.
+        */
         if (LI->A.LoadIndex >= 0 || LI->A.XferIndex >= 0) {
             LI->A.Flags |= LI_DUP_LOAD;
         }
@@ -378,8 +378,8 @@ static void TrackLoads (LoadInfo* LI, CodeEntry* E, int I)
 
 static void InsertEntry (StackOpData* D, CodeEntry* E, int Index)
 /* Insert a new entry. Depending on Index, D->PushIndex and D->OpIndex will
- * be adjusted by this function.
- */
+** be adjusted by this function.
+*/
 {
     /* Insert the entry into the code segment */
     CS_InsertEntry (D->Code, E, Index);
@@ -401,8 +401,8 @@ static void InsertEntry (StackOpData* D, CodeEntry* E, int Index)
 
 static void DelEntry (StackOpData* D, int Index)
 /* Delete an entry. Depending on Index, D->PushIndex and D->OpIndex will be
- * adjusted by this function, and PushEntry/OpEntry may get invalidated.
- */
+** adjusted by this function, and PushEntry/OpEntry may get invalidated.
+*/
 {
     /* Delete the entry from the code segment */
     CS_DelEntry (D->Code, Index);
@@ -428,8 +428,8 @@ static void DelEntry (StackOpData* D, int Index)
 
 static void AdjustStackOffset (StackOpData* D, unsigned Offs)
 /* Adjust the offset for all stack accesses in the range PushIndex to OpIndex.
- * OpIndex is adjusted according to the insertions.
- */
+** OpIndex is adjusted according to the insertions.
+*/
 {
     /* Walk over all entries */
     int I = D->PushIndex + 1;
@@ -457,8 +457,8 @@ static void AdjustStackOffset (StackOpData* D, unsigned Offs)
         if (NeedCorrection) {
 
             /* Get the code entry before this one. If it's a LDY, adjust the
-             * value.
-             */
+            ** value.
+            */
             CodeEntry* P = CS_GetPrevEntry (D->Code, I);
             if (P && P->OPC == OP65_LDY && CE_IsConstImm (P)) {
 
@@ -490,8 +490,8 @@ static void AdjustStackOffset (StackOpData* D, unsigned Offs)
     }
 
     /* If we have rhs load insns that load from stack, we'll have to adjust
-     * the offsets for these also.
-     */
+    ** the offsets for these also.
+    */
     if (D->Rhs.A.Flags & LI_RELOAD_Y) {
         D->Rhs.A.Offs -= Offs;
     }
@@ -522,14 +522,14 @@ static void AddStoreX (StackOpData* D)
 
 static void ReplacePushByStore (StackOpData* D)
 /* Replace the call to the push subroutine by a store into the zero page
- * location (actually, the push is not replaced, because we need it for
- * later, but the name is still ok since the push will get removed at the
- * end of each routine).
- */
+** location (actually, the push is not replaced, because we need it for
+** later, but the name is still ok since the push will get removed at the
+** end of each routine).
+*/
 {
     /* Store the value into the zeropage instead of pushing it. Check high
-     * byte first so that the store is later in A/X order.
-     */
+    ** byte first so that the store is later in A/X order.
+    */
     if ((D->Lhs.X.Flags & LI_DIRECT) == 0) {
         AddStoreX (D);
     }
@@ -542,16 +542,16 @@ static void ReplacePushByStore (StackOpData* D)
 
 static void AddOpLow (StackOpData* D, opc_t OPC, LoadInfo* LI)
 /* Add an op for the low byte of an operator. This function honours the
- * OP_DIRECT and OP_RELOAD_Y flags and generates the necessary instructions.
- * All code is inserted at the current insertion point.
- */
+** OP_DIRECT and OP_RELOAD_Y flags and generates the necessary instructions.
+** All code is inserted at the current insertion point.
+*/
 {
     CodeEntry* X;
 
     if ((LI->A.Flags & LI_DIRECT) != 0) {
         /* Op with a variable location. If the location is on the stack, we
-         * need to reload the Y register.
-         */
+        ** need to reload the Y register.
+        */
         if ((LI->A.Flags & LI_RELOAD_Y) == 0) {
 
             /* opc ... */
@@ -588,9 +588,9 @@ static void AddOpLow (StackOpData* D, opc_t OPC, LoadInfo* LI)
 
 static void AddOpHigh (StackOpData* D, opc_t OPC, LoadInfo* LI, int KeepResult)
 /* Add an op for the high byte of an operator. Special cases (constant values
- * or similar) have to be checked separately, the function covers only the
- * generic case. Code is inserted at the insertion point.
- */
+** or similar) have to be checked separately, the function covers only the
+** generic case. Code is inserted at the insertion point.
+*/
 {
     CodeEntry* X;
 
@@ -651,8 +651,8 @@ static void RemoveRegLoads (StackOpData* D, LoadInfo* LI)
 /* Remove register load insns */
 {
     /* Both registers may be loaded with one insn, but DelEntry will in this
-     * case clear the other one.
-     */
+    ** case clear the other one.
+    */
     if ((LI->A.Flags & (LI_REMOVE | LI_DONT_REMOVE)) == LI_REMOVE) {
         if (LI->A.LoadIndex >= 0) {
             DelEntry (D, LI->A.LoadIndex);
@@ -689,9 +689,9 @@ static void RemoveRemainders (StackOpData* D)
 
 static int IsRegVar (StackOpData* D)
 /* If the value pushed is that of a zeropage variable, replace ZPLo and ZPHi
- * in the given StackOpData struct by the variable and return true. Otherwise
- * leave D untouched and return false.
- */
+** in the given StackOpData struct by the variable and return true. Otherwise
+** leave D untouched and return false.
+*/
 {
     CodeEntry*  LoadA = D->Lhs.A.LoadEntry;
     CodeEntry*  LoadX = D->Lhs.X.LoadEntry;
@@ -735,16 +735,16 @@ static unsigned Opt_toseqax_tosneax (StackOpData* D, const char* BoolTransformer
     CodeLabel* L;
 
     /* Create a call to the boolean transformer function and a label for this
-     * insn. This is needed for all variants. Other insns are inserted *before*
-     * the call.
-     */
+    ** insn. This is needed for all variants. Other insns are inserted *before*
+    ** the call.
+    */
     X = NewCodeEntry (OP65_JSR, AM65_ABS, BoolTransformer, 0, D->OpEntry->LI);
     InsertEntry (D, X, D->OpIndex + 1);
     L = CS_GenLabel (D->Code, X);
 
     /* If the lhs is direct (but not stack relative), encode compares with lhs
-     * effectively reverting the order (which doesn't matter for ==).
-     */
+    ** effectively reverting the order (which doesn't matter for ==).
+    */
     if ((D->Lhs.A.Flags & (LI_DIRECT | LI_RELOAD_Y)) == LI_DIRECT &&
         (D->Lhs.X.Flags & (LI_DIRECT | LI_RELOAD_Y)) == LI_DIRECT) {
 
@@ -848,8 +848,8 @@ static unsigned Opt_tosshift (StackOpData* D, const char* Name)
     ReplacePushByStore (D);
 
     /* If the lhs is direct (but not stack relative), we can just reload the
-     * data later.
-     */
+    ** data later.
+    */
     if ((D->Lhs.A.Flags & (LI_DIRECT | LI_RELOAD_Y)) == LI_DIRECT &&
         (D->Lhs.X.Flags & (LI_DIRECT | LI_RELOAD_Y)) == LI_DIRECT) {
 
@@ -882,8 +882,8 @@ static unsigned Opt_tosshift (StackOpData* D, const char* Name)
         AddStoreA (D);
 
         /* Be sure to setup IP after adding the stores, otherwise it will get
-         * messed up.
-         */
+        ** messed up.
+        */
         D->IP = D->OpIndex+1;
 
         /* tay */
@@ -928,8 +928,8 @@ static unsigned Opt___bzero (StackOpData* D)
     }
 
     /* If the return value of __bzero is used, we have to add code to reload
-     * a/x from the pointer variable.
-     */
+    ** a/x from the pointer variable.
+    */
     if (RegAXUsed (D->Code, D->OpIndex+1)) {
         X = NewCodeEntry (OP65_LDA, AM65_ZP, D->ZPLo, 0, D->OpEntry->LI);
         InsertEntry (D, X, D->OpIndex+1);
@@ -938,8 +938,8 @@ static unsigned Opt___bzero (StackOpData* D)
     }
 
     /* X is always zero, A contains the size of the data area to zero.
-     * Note: A may be zero, in which case the operation is null op.
-     */
+    ** Note: A may be zero, in which case the operation is null op.
+    */
     if (D->OpEntry->RI->In.RegA != 0) {
 
         /* lda #$00 */
@@ -1074,8 +1074,8 @@ static unsigned Opt_staxspidx (StackOpData* D)
     InsertEntry (D, X, D->OpIndex+4);
 
     /* If we remove staxspidx, we must restore the Y register to what the
-     * function would return.
-     */
+    ** function would return.
+    */
     X = NewCodeEntry (OP65_LDY, AM65_IMM, "$00", 0, D->OpEntry->LI);
     InsertEntry (D, X, D->OpIndex+5);
 
@@ -1098,16 +1098,16 @@ static unsigned Opt_tosaddax (StackOpData* D)
     CHECK (D->NextEntry != 0);
 
     /* Check if the X register is known and zero when the add is done, and
-     * if the add is followed by
-     *
-     *  ldy     #$00
-     *  jsr     ldauidx         ; or ldaidx
-     *
-     * If this is true, the addition does actually add an offset to a pointer
-     * before it is dereferenced. Since both subroutines take an offset in Y,
-     * we can pass the offset (instead of #$00) and remove the addition
-     * alltogether.
-     */
+    ** if the add is followed by
+    **
+    **  ldy     #$00
+    **  jsr     ldauidx         ; or ldaidx
+    **
+    ** If this is true, the addition does actually add an offset to a pointer
+    ** before it is dereferenced. Since both subroutines take an offset in Y,
+    ** we can pass the offset (instead of #$00) and remove the addition
+    ** alltogether.
+    */
     if (D->OpEntry->RI->In.RegX == 0                            &&
         D->NextEntry->OPC == OP65_LDY                           &&
         CE_IsKnownImm (D->NextEntry, 0)                         &&
@@ -1123,17 +1123,17 @@ static unsigned Opt_tosaddax (StackOpData* D)
         AddStoreA (D);
 
         /* Replace the ldy by a tay. Be sure to create the new entry before
-         * deleting the ldy, since we will reference the line info from this
-         * insn.
-         */
+        ** deleting the ldy, since we will reference the line info from this
+        ** insn.
+        */
         X = NewCodeEntry (OP65_TAY, AM65_IMP, 0, 0, D->NextEntry->LI);
         DelEntry (D, D->OpIndex + 1);
         InsertEntry (D, X, D->OpIndex + 1);
 
         /* Replace the call to ldaidx/ldauidx. Since X is already zero, and
-         * the ptr is in the zero page location, we just need to load from
-         * the pointer, and fix X in case of ldaidx.
-         */
+        ** the ptr is in the zero page location, we just need to load from
+        ** the pointer, and fix X in case of ldaidx.
+        */
         X = NewCodeEntry (OP65_LDA, AM65_ZP_INDY, D->ZPLo, 0, N->LI);
         DelEntry (D, D->OpIndex + 2);
         InsertEntry (D, X, D->OpIndex + 2);
@@ -1194,8 +1194,8 @@ static unsigned Opt_tosaddax (StackOpData* D)
                 X = NewCodeEntry (OP65_LDX, AM65_IMM, Arg, 0, D->OpEntry->LI);
             } else {
                 /* Value of first op high byte is unknown. Load from ZP or
-                 * original storage.
-                 */
+                ** original storage.
+                */
                 if (D->Lhs.X.Flags & LI_DIRECT) {
                     CodeEntry* LoadX = D->Lhs.X.LoadEntry;
                     X = NewCodeEntry (OP65_LDX, LoadX->AM, LoadX->Arg, 0, D->OpEntry->LI);
@@ -1690,8 +1690,8 @@ static int CmpFunc (const void* Key, const void* Func)
 
 static const OptFuncDesc* FindFunc (const char* Name)
 /* Find the function with the given name. Return a pointer to the table entry
- * or NULL if the function was not found.
- */
+** or NULL if the function was not found.
+*/
 {
     return bsearch (Name, FuncTable, FUNC_COUNT, sizeof(OptFuncDesc), CmpFunc);
 }
@@ -1708,8 +1708,8 @@ static int CmpHarmless (const void* Key, const void* Entry)
 
 static int HarmlessCall (const char* Name)
 /* Check if this is a call to a harmless subroutine that will not interrupt
- * the pushax/op sequence when encountered.
- */
+** the pushax/op sequence when encountered.
+*/
 {
     static const char* Tab[] = {
         "aslax1",
@@ -1784,9 +1784,9 @@ static void ResetStackOpData (StackOpData* Data)
 
 static int PreCondOk (StackOpData* D)
 /* Check if the preconditions for a call to the optimizer subfunction are
- * satisfied. As a side effect, this function will also choose the zero page
- * register to use.
- */
+** satisfied. As a side effect, this function will also choose the zero page
+** register to use.
+*/
 {
     /* Check the flags */
     unsigned UnusedRegs = D->OptFunc->UnusedRegs;
@@ -1882,20 +1882,20 @@ unsigned OptStackOps (CodeSeg* S)
     Data.Code = S;
 
     /* Look for a call to pushax followed by a call to some other function
-     * that takes it's first argument on the stack, and the second argument
-     * in the primary register.
-     * It depends on the code between the two if we can handle/transform the
-     * sequence, so check this code for the following list of things:
-     *
-     *  - the range must be a basic block (one entry, one exit)
-     *  - there may not be accesses to local variables with unknown
-     *    offsets (because we have to adjust these offsets).
-     *  - no subroutine calls
-     *  - no jump labels
-     *
-     * Since we need a zero page register later, do also check the
-     * intermediate code for zero page use.
-     */
+    ** that takes it's first argument on the stack, and the second argument
+    ** in the primary register.
+    ** It depends on the code between the two if we can handle/transform the
+    ** sequence, so check this code for the following list of things:
+    **
+    **  - the range must be a basic block (one entry, one exit)
+    **  - there may not be accesses to local variables with unknown
+    **    offsets (because we have to adjust these offsets).
+    **  - no subroutine calls
+    **  - no jump labels
+    **
+    ** Since we need a zero page register later, do also check the
+    ** intermediate code for zero page use.
+    */
     I = 0;
     while (I < (int)CS_GetEntryCount (S)) {
 
@@ -1913,8 +1913,8 @@ unsigned OptStackOps (CodeSeg* S)
 
             case Search:
                 /* While searching, track register load insns, so we can tell
-                 * what is in a register once pushax is encountered.
-                 */
+                ** what is in a register once pushax is encountered.
+                */
                 if (CE_HasLabel (E)) {
                     /* Currently we don't track across branches */
                     ClearLoadInfo (&Data.Lhs);
@@ -1930,9 +1930,9 @@ unsigned OptStackOps (CodeSeg* S)
 
             case FoundPush:
                 /* We' found a pushax before. Search for a stack op that may
-                 * follow and in the meantime, track zeropage usage and check
-                 * for code that will disable us from translating the sequence.
-                 */
+                ** follow and in the meantime, track zeropage usage and check
+                ** for code that will disable us from translating the sequence.
+                */
                 if (CE_HasLabel (E)) {
                     /* Currently we don't track across branches */
                     ClearLoadInfo (&Data.Rhs);
@@ -1940,8 +1940,8 @@ unsigned OptStackOps (CodeSeg* S)
                 if (E->OPC == OP65_JSR) {
 
                     /* Subroutine call: Check if this is one of the functions,
-                     * we're going to replace.
-                     */
+                    ** we're going to replace.
+                    */
                     Data.OptFunc = FindFunc (E->Arg);
                     if (Data.OptFunc) {
                         /* Remember the op index and go on */
@@ -1951,9 +1951,9 @@ unsigned OptStackOps (CodeSeg* S)
                         break;
                     } else if (!HarmlessCall (E->Arg)) {
                         /* A call to an unkown subroutine: We need to start
-                         * over after the last pushax. Note: This will also
-                         * happen if we encounter a call to pushax!
-                         */
+                        ** over after the last pushax. Note: This will also
+                        ** happen if we encounter a call to pushax!
+                        */
                         I = Data.PushIndex;
                         State = Initialize;
                         break;
@@ -1966,8 +1966,8 @@ unsigned OptStackOps (CodeSeg* S)
                 } else if (E->Info & OF_STORE && (E->Chg & REG_ZP) == 0) {
 
                     /* Too dangerous - there may be a change of a variable
-                     * within the sequence.
-                     */
+                    ** within the sequence.
+                    */
                     I = Data.PushIndex;
                     State = Initialize;
                     break;
@@ -1978,13 +1978,13 @@ unsigned OptStackOps (CodeSeg* S)
                             E->RI->In.RegY < 2)) {
 
                     /* If we are using the stack, and we don't have "indirect Y"
-                     * addressing mode, or the value of Y is unknown, or less
-                     * than two, we cannot cope with this piece of code. Having
-                     * an unknown value of Y means that we cannot correct the
-                     * stack offset, while having an offset less than two means
-                     * that the code works with the value on stack which is to
-                     * be removed.
-                     */
+                    ** addressing mode, or the value of Y is unknown, or less
+                    ** than two, we cannot cope with this piece of code. Having
+                    ** an unknown value of Y means that we cannot correct the
+                    ** stack offset, while having an offset less than two means
+                    ** that the code works with the value on stack which is to
+                    ** be removed.
+                    */
                     I = Data.PushIndex;
                     State = Initialize;
                     break;
@@ -1995,9 +1995,9 @@ unsigned OptStackOps (CodeSeg* S)
                     TrackLoads (&Data.Rhs, E, I);
                 }
                 /* If the registers from the push (A/X) are used before they're
-                 * changed, we cannot change the sequence, because this would
-                 * with a high probability change the register contents.
-                 */
+                ** changed, we cannot change the sequence, because this would
+                ** with a high probability change the register contents.
+                */
                 UsedRegs |= E->Use;
                 if ((UsedRegs & ~ChangedRegs) & REG_AX) {
                     I = Data.PushIndex;
@@ -2016,9 +2016,9 @@ unsigned OptStackOps (CodeSeg* S)
                 FinalizeLoadInfo (&Data.Rhs, S);
 
                 /* If the Lhs loads do load from zeropage, we have to include
-                 * them into UsedRegs registers used. The Rhs loads have already
-                 * been tracked.
-                 */
+                ** them into UsedRegs registers used. The Rhs loads have already
+                ** been tracked.
+                */
                 if (Data.Lhs.A.LoadEntry && Data.Lhs.A.LoadEntry->AM == AM65_ZP) {
                     Data.UsedRegs |= Data.Lhs.A.LoadEntry->Use;
                 }
@@ -2027,10 +2027,10 @@ unsigned OptStackOps (CodeSeg* S)
                 }
 
                 /* Check the preconditions. If they aren't ok, reset the insn
-                 * pointer to the pushax and start over. We will loose part of
-                 * load tracking but at least a/x has probably lost between
-                 * pushax and here and will be tracked again when restarting.
-                 */
+                ** pointer to the pushax and start over. We will loose part of
+                ** load tracking but at least a/x has probably lost between
+                ** pushax and here and will be tracked again when restarting.
+                */
                 if (!PreCondOk (&Data)) {
                     I = Data.PushIndex;
                     State = Initialize;
@@ -2050,16 +2050,16 @@ unsigned OptStackOps (CodeSeg* S)
                 AdjustStackOffset (&Data, 2);
 
                 /* Regenerate register info, since AdjustStackOffset changed
-                 * the code
-                 */
+                ** the code
+                */
                 CS_GenRegInfo (S);
 
                 /* Call the optimizer function */
                 Changes += Data.OptFunc->Func (&Data);
 
                 /* Since the function may have added or deleted entries,
-                 * correct the index.
-                 */
+                ** correct the index.
+                */
                 I += CS_GetEntryCount (S) - OldEntryCount;
 
                 /* Regenerate register info */
index fca153e968bde275c4962c6fba93f2fd044bb762..56343c95b7a03c847135583904ea2f97b2a50a65 100644 (file)
@@ -56,14 +56,14 @@ static void InsertStore (CodeSeg* S, unsigned* IP, LineInfo* LI)
 
 unsigned OptStore1 (CodeSeg* S)
 /* Search for the sequence
- *
- *      ldy     #n
- *      jsr     staxysp
- *      ldy     #n+1
- *      jsr     ldaxysp
- *
- * and remove the useless load.
- */
+**
+**      ldy     #n
+**      jsr     staxysp
+**      ldy     #n+1
+**      jsr     ldaxysp
+**
+** and remove the useless load.
+*/
 {
     unsigned Changes = 0;
 
@@ -108,9 +108,9 @@ unsigned OptStore1 (CodeSeg* S)
 
 unsigned OptStore2 (CodeSeg* S)
 /* Search for a call to staxysp. If the ax register is not used later, and
- * the value is constant, just use the A register and store directly into the
- * stack.
- */
+** the value is constant, just use the A register and store directly into the
+** stack.
+*/
 {
     unsigned I;
     unsigned Changes = 0;
@@ -142,8 +142,8 @@ unsigned OptStore2 (CodeSeg* S)
             unsigned    IP = I + 1;     /* Insertion point */
 
             /* Replace the store. We will not remove the loads, since this is
-             * too complex and will be done by other optimizer steps.
-             */
+            ** too complex and will be done by other optimizer steps.
+            */
             N = NewCodeEntry (OP65_LDA, AM65_IMM, MakeHexArg (A), 0, E->LI);
             CS_InsertEntry (S, N, IP++);
             InsertStore (S, &IP, E->LI);
@@ -178,9 +178,9 @@ unsigned OptStore2 (CodeSeg* S)
 
 unsigned OptStore3 (CodeSeg* S)
 /* Search for a call to steaxysp. If the eax register is not used later, and
- * the value is constant, just use the A register and store directly into the
- * stack.
- */
+** the value is constant, just use the A register and store directly into the
+** stack.
+*/
 {
     unsigned I;
     unsigned Changes = 0;
@@ -217,8 +217,8 @@ unsigned OptStore3 (CodeSeg* S)
             unsigned    IP = I + 1;     /* Insertion point */
 
             /* Replace the store. We will not remove the loads, since this is
-             * too complex and will be done by other optimizer steps.
-             */
+            ** too complex and will be done by other optimizer steps.
+            */
             N = NewCodeEntry (OP65_LDA, AM65_IMM, MakeHexArg (A), 0, E->LI);
             CS_InsertEntry (S, N, IP++);
             InsertStore (S, &IP, E->LI);
@@ -317,15 +317,15 @@ unsigned OptStore3 (CodeSeg* S)
 
 unsigned OptStore4 (CodeSeg* S)
 /* Search for the sequence
- *
- *      sta     xx
- *      stx     yy
- *      lda     xx
- *      ldx     yy
- *
- * and remove the useless load, provided that the next insn doesn't use flags
- * from the load.
- */
+**
+**      sta     xx
+**      stx     yy
+**      lda     xx
+**      ldx     yy
+**
+** and remove the useless load, provided that the next insn doesn't use flags
+** from the load.
+*/
 {
     unsigned Changes = 0;
 
@@ -374,22 +374,22 @@ unsigned OptStore4 (CodeSeg* S)
 
 unsigned OptStore5 (CodeSeg* S)
 /* Search for the sequence
- *
- *      lda     foo
- *      ldx     bar
- *      sta     something
- *      stx     something-else
- *
- * and replace it by
- *
- *      lda     foo
- *      sta     something
- *      lda     bar
- *      sta     something-else
- *
- * if X is not used later. This replacement doesn't save any cycles or bytes,
- * but it keeps the value of X, which may be reused later.
- */
+**
+**      lda     foo
+**      ldx     bar
+**      sta     something
+**      stx     something-else
+**
+** and replace it by
+**
+**      lda     foo
+**      sta     something
+**      lda     bar
+**      sta     something-else
+**
+** if X is not used later. This replacement doesn't save any cycles or bytes,
+** but it keeps the value of X, which may be reused later.
+*/
 {
     unsigned Changes = 0;
 
index 1f5f0174b382102a8d22b89ff75d749442c7abe7..fc93b40ea4122d5062f9d12943268d57b16c5b81 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2002-2006, Ullrich von Bassewitz                                      */
-/*                Römerstrasse 52                                            */
+/*                Roemerstrasse 52                                           */
 /*                D-70794 Filderstadt                                        */
 /* EMail:         uz@cc65.org                                                */
 /*                                                                           */
 
 unsigned OptStore1 (CodeSeg* S);
 /* Search for the sequence
- *
- *      ldy     #n
- *      jsr     staxysp
- *      ldy     #n+1
- *      jsr     ldaxysp
- *
- * and remove the useless load, provided that the next insn doesn't use flags
- * from the load.
- */
+**
+**      ldy     #n
+**      jsr     staxysp
+**      ldy     #n+1
+**      jsr     ldaxysp
+**
+** and remove the useless load, provided that the next insn doesn't use flags
+** from the load.
+*/
 
 unsigned OptStore2 (CodeSeg* S);
 /* Search for a call to staxysp. If the ax register is not used later, and
- * the value is constant, just use the A register and store directly into the
- * stack.
- */
+** the value is constant, just use the A register and store directly into the
+** stack.
+*/
 
 unsigned OptStore3 (CodeSeg* S);
 /* Search for a call to steaxysp. If the eax register is not used later, and
- * the value is constant, just use the A register and store directly into the
- * stack.
- */
+** the value is constant, just use the A register and store directly into the
+** stack.
+*/
 
 unsigned OptStore4 (CodeSeg* S);
 /* Search for the sequence
- *
- *      sta     xx
- *      stx     yy
- *      lda     xx
- *      ldx     yy
- *
- * and remove the useless load, provided that the next insn doesn't use flags
- * from the load.
- */
+**
+**      sta     xx
+**      stx     yy
+**      lda     xx
+**      ldx     yy
+**
+** and remove the useless load, provided that the next insn doesn't use flags
+** from the load.
+*/
 
 unsigned OptStore5 (CodeSeg* S);
 /* Search for the sequence
- *
- *      lda     foo
- *      ldx     bar
- *      sta     something
- *      stx     something-else
- *
- * and replace it by
- *
- *      lda     foo
- *      sta     something
- *      lda     bar
- *      sta     something-else
- *
- * if X is not used later. This replacement doesn't save any cycles or bytes,
- * but it keeps the value of X, which may be reused later.
- */
+**
+**      lda     foo
+**      ldx     bar
+**      sta     something
+**      stx     something-else
+**
+** and replace it by
+**
+**      lda     foo
+**      sta     something
+**      lda     bar
+**      sta     something-else
+**
+** if X is not used later. This replacement doesn't save any cycles or bytes,
+** but it keeps the value of X, which may be reused later.
+*/
 
 
 
index 57606eea2725a6892794873055b37081e7f98483..3d75c1f72708b9bdfb4a04d7319de5a73f7b66b9 100644 (file)
 
 unsigned OptSub1 (CodeSeg* S)
 /* Search for the sequence
- *
- *      sbc     ...
- *      bcs     L
- *      dex
- * L:
- *
- * and remove the handling of the high byte if X is not used later.
- */
+**
+**      sbc     ...
+**      bcs     L
+**      dex
+** L:
+**
+** and remove the handling of the high byte if X is not used later.
+*/
 {
     unsigned Changes = 0;
 
@@ -103,21 +103,21 @@ unsigned OptSub1 (CodeSeg* S)
 
 unsigned OptSub2 (CodeSeg* S)
 /* Search for the sequence
- *
- *      lda     xx
- *      sec
- *      sta     tmp1
- *      lda     yy
- *      sbc     tmp1
- *      sta     yy
- *
- * and replace it by
- *
- *      sec
- *      lda     yy
- *      sbc     xx
- *      sta     yy
- */
+**
+**      lda     xx
+**      sec
+**      sta     tmp1
+**      lda     yy
+**      sbc     tmp1
+**      sta     yy
+**
+** and replace it by
+**
+**      sec
+**      lda     yy
+**      sbc     xx
+**      sta     yy
+*/
 {
     unsigned Changes = 0;
 
@@ -150,14 +150,14 @@ unsigned OptSub2 (CodeSeg* S)
             CS_DelEntry (S, I+3);
 
             /* Move the lda to the position of the subtraction and change the
-             * op to SBC.
-             */
+            ** op to SBC.
+            */
             CS_MoveEntry (S, I, I+3);
             CE_ReplaceOPC (E, OP65_SBC);
 
             /* If the sequence head had a label, move this label back to the
-             * head.
-             */
+            ** head.
+            */
             if (CE_HasLabel (E)) {
                 CS_MoveLabels (S, E, L[0]);
             }
@@ -180,8 +180,8 @@ unsigned OptSub2 (CodeSeg* S)
 
 unsigned OptSub3 (CodeSeg* S)
 /* Search for a call to decaxn and replace it by an 8 bit sub if the X register
- * is not used later.
- */
+** is not used later.
+*/
 {
     unsigned Changes = 0;
 
index 724abaa3c80b683e3b0dcea43fc19df5efcd288f..5929612e6af471dd78b0aeca025262924736aaef 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2001-2006, Ullrich von Bassewitz                                      */
-/*                Römerstrasse 52                                            */
+/*                Roemerstrasse 52                                           */
 /*                D-70794 Filderstadt                                        */
 /* EMail:         uz@cc65.org                                                */
 /*                                                                           */
 
 unsigned OptSub1 (CodeSeg* S);
 /* Search for the sequence
- *
- *      sbc     ...
- *      bcs     L
- *      dex
- * L:
- *
- * and remove the handling of the high byte if X is not used later.
- */
+**
+**      sbc     ...
+**      bcs     L
+**      dex
+** L:
+**
+** and remove the handling of the high byte if X is not used later.
+*/
 
 unsigned OptSub2 (CodeSeg* S);
 /* Search for the sequence
- *
- *      lda     xx
- *      sec
- *      sta     tmp1
- *      lda     yy
- *      sbc     tmp1
- *      sta     yy
- *
- * and replace it by
- *
- *      sec
- *      lda     yy
- *      sbc     xx
- *      sta     yy
- */
+**
+**      lda     xx
+**      sec
+**      sta     tmp1
+**      lda     yy
+**      sbc     tmp1
+**      sta     yy
+**
+** and replace it by
+**
+**      sec
+**      lda     yy
+**      sbc     xx
+**      sta     yy
+*/
 
 unsigned OptSub3 (CodeSeg* S);
 /* Search for a call to decaxn and replace it by an 8 bit sub if the X register
- * is not used later.
- */
+** is not used later.
+*/
 
 
 
index 9a8ed05085e6a8053509539ec3995cb95d586235..5628a42c3f2c918c7cabc66b0f4e96923d2630d6 100644 (file)
 
 unsigned OptTest1 (CodeSeg* S)
 /* Given a sequence
- *
- *     stx     xxx
- *     ora     xxx
- *     beq/bne ...
- *
- * If X is zero, the sequence may be changed to
- *
- *     cmp     #$00
- *     beq/bne ...
- *
- * which may be optimized further by another step.
- *
- * If A is zero, the sequence may be changed to
- *
- *     txa
- *     beq/bne ...
- *
- */
+**
+**     stx     xxx
+**     ora     xxx
+**     beq/bne ...
+**
+** If X is zero, the sequence may be changed to
+**
+**     cmp     #$00
+**     beq/bne ...
+**
+** which may be optimized further by another step.
+**
+** If A is zero, the sequence may be changed to
+**
+**     txa
+**     beq/bne ...
+*/
 {
     unsigned Changes = 0;
     unsigned I;
@@ -131,9 +130,9 @@ unsigned OptTest1 (CodeSeg* S)
 
 unsigned OptTest2 (CodeSeg* S)
 /* Search for an inc/dec operation followed by a load and a conditional
- * branch based on the flags from the load. Remove the load if the insn
- * isn't used later.
- */
+** branch based on the flags from the load. Remove the load if the insn
+** isn't used later.
+*/
 {
     unsigned Changes = 0;
 
index aa70dc0fe6bf0d78686742b44eca4181d37a47ad..6f5810859c7e089960cb45013245344f39f252aa 100644 (file)
 
 unsigned OptTest1 (CodeSeg* S);
 /* Given a sequence
- *
- *     stx     xxx
- *     ora     xxx
- *     beq/bne ...
- *
- * If X is zero, the sequence may be changed to
- *
- *     cmp     #$00
- *     beq/bne ...
- *
- * which may be optimized further by another step.
- *
- * If A is zero, the sequence may be changed to
- *
- *     txa
- *     beq/bne ...
- *
- */
+**
+**     stx     xxx
+**     ora     xxx
+**     beq/bne ...
+**
+** If X is zero, the sequence may be changed to
+**
+**     cmp     #$00
+**     beq/bne ...
+**
+** which may be optimized further by another step.
+**
+** If A is zero, the sequence may be changed to
+**
+**     txa
+**     beq/bne ...
+*/
 
 unsigned OptTest2 (CodeSeg* S);
 /* Search for an inc/dec operation followed by a load and a conditional
- * branch based on the flags from the load. Remove the load if the insn
- * isn't used later.
- */
+** branch based on the flags from the load. Remove the load if the insn
+** isn't used later.
+*/
 
 
 
index 6cdaaf84f7f3b44b07cd957525672abdc01b3987..053810b50c0b1356825700dc8bf216abd6fa92d6 100644 (file)
@@ -118,8 +118,8 @@ Type* TypeDup (const Type* T)
 
 Type* TypeAlloc (unsigned Len)
 /* Allocate memory for a type string of length Len. Len *must* include the
- * trailing T_END.
- */
+** trailing T_END.
+*/
 {
     return xmalloc (Len * sizeof (Type));
 }
@@ -200,8 +200,8 @@ Type* GetImplicitFuncType (void)
 
 Type* PointerTo (const Type* T)
 /* Return a type string that is "pointer to T". The type string is allocated
- * on the heap and may be freed after use.
- */
+** on the heap and may be freed after use.
+*/
 {
     /* Get the size of the type string including the terminator */
     unsigned Size = TypeLen (T) + 1;
@@ -221,8 +221,8 @@ Type* PointerTo (const Type* T)
 
 static TypeCode PrintTypeComp (FILE* F, TypeCode C, TypeCode Mask, const char* Name)
 /* Check for a specific component of the type. If it is there, print the
- * name and remove it. Return the type with the component removed.
- */
+** name and remove it. Return the type with the component removed.
+*/
 {
     if ((C & Mask) == Mask) {
         fprintf (F, "%s ", Name);
@@ -459,9 +459,9 @@ unsigned PSizeOf (const Type* T)
 
 unsigned CheckedSizeOf (const Type* T)
 /* Return the size of a data type. If the size is zero, emit an error and
- * return some valid size instead (so the rest of the compiler doesn't have
- * to work with invalid sizes).
- */
+** return some valid size instead (so the rest of the compiler doesn't have
+** to work with invalid sizes).
+*/
 {
     unsigned Size = SizeOf (T);
     if (Size == 0) {
@@ -475,9 +475,9 @@ unsigned CheckedSizeOf (const Type* T)
 
 unsigned CheckedPSizeOf (const Type* T)
 /* Return the size of a data type that is pointed to by a pointer. If the
- * size is zero, emit an error and return some valid size instead (so the
- * rest of the compiler doesn't have to work with invalid sizes).
- */
+** size is zero, emit an error and return some valid size instead (so the
+** rest of the compiler doesn't have to work with invalid sizes).
+*/
 {
     unsigned Size = PSizeOf (T);
     if (Size == 0) {
@@ -540,8 +540,8 @@ unsigned TypeOf (const Type* T)
 
 Type* Indirect (Type* T)
 /* Do one indirection for the given type, that is, return the type where the
- * given type points to.
- */
+** given type points to.
+*/
 {
     /* We are expecting a pointer expression */
     CHECK (IsClassPtr (T));
@@ -563,8 +563,8 @@ Type* ArrayToPtr (Type* T)
 
 int IsVariadicFunc (const Type* T)
 /* Return true if this is a function type or pointer to function type with
- * variable parameter list
- */
+** variable parameter list
+*/
 {
     FuncDesc* F = GetFuncDesc (T);
     return (F->Flags & FD_VARIADIC) != 0;
@@ -625,8 +625,8 @@ Type* GetFuncReturn (Type* T)
 
 long GetElementCount (const Type* T)
 /* Get the element count of the array specified in T (which must be of
- * array type).
- */
+** array type).
+*/
 {
     CHECK (IsTypeArray (T));
     return T->A.L;
@@ -636,8 +636,8 @@ long GetElementCount (const Type* T)
 
 void SetElementCount (Type* T, long Count)
 /* Set the element count of the array specified in T (which must be of
- * array type).
- */
+** array type).
+*/
 {
     CHECK (IsTypeArray (T));
     T->A.L = Count;
@@ -656,9 +656,9 @@ Type* GetElementType (Type* T)
 
 Type* GetBaseElementType (Type* T)
 /* Return the base element type of a given type. If T is not an array, this
- * will return. Otherwise it will return the base element type, which means
- * the element type that is not an array.
- */
+** will return. Otherwise it will return the base element type, which means
+** the element type that is not an array.
+*/
 {     
     while (IsTypeArray (T)) {
         ++T;
@@ -694,15 +694,15 @@ void SetSymEntry (Type* T, SymEntry* S)
 
 Type* IntPromotion (Type* T)
 /* Apply the integer promotions to T and return the result. The returned type
- * string may be T if there is no need to change it.
- */
+** string may be T if there is no need to change it.
+*/
 {
     /* We must have an int to apply int promotions */
     PRECONDITION (IsClassInt (T));
 
     /* An integer can represent all values from either signed or unsigned char,
-     * so convert chars to int and leave all other types alone.
-     */
+    ** so convert chars to int and leave all other types alone.
+    */
     if (IsTypeChar (T)) {
         return type_int;
     } else {
@@ -714,9 +714,9 @@ Type* IntPromotion (Type* T)
 
 Type* PtrConversion (Type* T)
 /* If the type is a function, convert it to pointer to function. If the
- * expression is an array, convert it to pointer to first element. Otherwise
- * return T.
- */
+** expression is an array, convert it to pointer to first element. Otherwise
+** return T.
+*/
 {
     if (IsTypeFunc (T)) {
         return PointerTo (T);
index cfd0cb2beab0ad0024097bd1a49a27ab94246efb..598d0a22859919f66fc33a624f92e93835a4b2f2 100644 (file)
@@ -220,8 +220,8 @@ Type* TypeDup (const Type* T);
 
 Type* TypeAlloc (unsigned Len);
 /* Allocate memory for a type string of length Len. Len *must* include the
- * trailing T_END.
- */
+** trailing T_END.
+*/
 
 void TypeFree (Type* T);
 /* Free a type string */
@@ -240,8 +240,8 @@ Type* GetImplicitFuncType (void);
 
 Type* PointerTo (const Type* T);
 /* Return a type string that is "pointer to T". The type string is allocated
- * on the heap and may be freed after use.
- */
+** on the heap and may be freed after use.
+*/
 
 void PrintType (FILE* F, const Type* T);
 /* Output translation of type array. */
@@ -283,22 +283,22 @@ unsigned PSizeOf (const Type* T);
 
 unsigned CheckedSizeOf (const Type* T);
 /* Return the size of a data type. If the size is zero, emit an error and
- * return some valid size instead (so the rest of the compiler doesn't have
- * to work with invalid sizes).
- */
+** return some valid size instead (so the rest of the compiler doesn't have
+** to work with invalid sizes).
+*/
 unsigned CheckedPSizeOf (const Type* T);
 /* Return the size of a data type that is pointed to by a pointer. If the
- * size is zero, emit an error and return some valid size instead (so the
- * rest of the compiler doesn't have to work with invalid sizes).
- */
+** size is zero, emit an error and return some valid size instead (so the
+** rest of the compiler doesn't have to work with invalid sizes).
+*/
 
 unsigned TypeOf (const Type* T);
 /* Get the code generator base type of the object */
 
 Type* Indirect (Type* T);
 /* Do one indirection for the given type, that is, return the type where the
- * given type points to.
- */
+** given type points to.
+*/
 
 Type* ArrayToPtr (Type* T);
 /* Convert an array to a pointer to it's first element */
@@ -605,8 +605,8 @@ INLINE int IsQualCDecl (const Type* T)
 
 int IsVariadicFunc (const Type* T) attribute ((const));
 /* Return true if this is a function type or pointer to function type with
- * variable parameter list
- */
+** variable parameter list
+*/
 
 #if defined(HAVE_INLINE)
 INLINE TypeCode GetSizeModifier (const Type* T)
@@ -629,22 +629,22 @@ Type* GetFuncReturn (Type* T) attribute ((const));
 
 long GetElementCount (const Type* T);
 /* Get the element count of the array specified in T (which must be of
- * array type).
- */
+** array type).
+*/
 
 void SetElementCount (Type* T, long Count);
 /* Set the element count of the array specified in T (which must be of
- * array type).
- */
+** array type).
+*/
 
 Type* GetElementType (Type* T);
 /* Return the element type of the given array type. */
 
 Type* GetBaseElementType (Type* T);
 /* Return the base element type of a given type. If T is not an array, this
- * will return. Otherwise it will return the base element type, which means
- * the element type that is not an array.
- */
+** will return. Otherwise it will return the base element type, which means
+** the element type that is not an array.
+*/
 
 struct SymEntry* GetSymEntry (const Type* T) attribute ((const));
 /* Return a SymEntry pointer from a type */
@@ -654,14 +654,14 @@ void SetSymEntry (Type* T, struct SymEntry* S);
 
 Type* IntPromotion (Type* T);
 /* Apply the integer promotions to T and return the result. The returned type
- * string may be T if there is no need to change it.
- */
+** string may be T if there is no need to change it.
+*/
 
 Type* PtrConversion (Type* T);
 /* If the type is a function, convert it to pointer to function. If the
- * expression is an array, convert it to pointer to first element. Otherwise
- * return T.
- */
+** expression is an array, convert it to pointer to first element. Otherwise
+** return T.
+*/
 
 TypeCode AddrSizeQualifier (unsigned AddrSize);
 /* Return T_QUAL_NEAR or T_QUAL_FAR depending on the address size */
index 558fc55195aeafe31b568066df784f51ec9ad59f..693c2116e5c830ce836855089e7796ee336e517c 100644 (file)
@@ -108,8 +108,8 @@ static void DuplicateQualifier (const char* Name)
 
 static TypeCode OptionalQualifiers (TypeCode Allowed)
 /* Read type qualifiers if we have any. Allowed specifies the allowed
- * qualifiers.
- */
+** qualifiers.
+*/
 {
     /* We start without any qualifiers */
     TypeCode Q = T_QUAL_NONE;
@@ -286,9 +286,9 @@ static void NeedTypeSpace (Declaration* D, unsigned Count)
 {
     if (D->Index + Count >= MAXTYPELEN) {
         /* We must call Fatal() here, since calling Error() will try to
-         * continue, and the declaration type is not correctly terminated
-         * in case we come here.
-         */
+        ** continue, and the declaration type is not correctly terminated
+        ** in case we come here.
+        */
         Fatal ("Too many type specifiers");
     }
 }
@@ -311,9 +311,9 @@ static void FixQualifiers (Type* DataType)
     TypeCode Q;
 
     /* Using typedefs, it is possible to generate declarations that have
-     * type qualifiers attached to an array, not the element type. Go and
-     * fix these here.
-     */
+    ** type qualifiers attached to an array, not the element type. Go and
+    ** fix these here.
+    */
     T = DataType;
     Q = T_QUAL_NONE;
     while (T->C != T_END) {
@@ -341,8 +341,8 @@ static void FixQualifiers (Type* DataType)
                 /* Pointer to function which is not fastcall? */
                 if (IsTypeFunc (T+1) && !IsQualFastcall (T+1)) {
                     /* Move the fastcall qualifier from the pointer to
-                     * the function.
-                     */
+                    ** the function.
+                    */
                     T[0].C &= ~T_QUAL_FASTCALL;
                     T[1].C |= T_QUAL_FASTCALL;
                 } else {
@@ -356,8 +356,8 @@ static void FixQualifiers (Type* DataType)
                 /* No address size qualifiers specified */
                 if (IsTypeFunc (T+1)) {
                     /* Pointer to function. Use the qualifier from the function
-                     * or the default if the function don't has one.
-                     */
+                    ** or the default if the function don't has one.
+                    */
                     Q = (T[1].C & T_QUAL_ADDRSIZE);
                     if (Q == T_QUAL_NONE) {
                         Q = CodeAddrSizeQualifier ();
@@ -368,8 +368,8 @@ static void FixQualifiers (Type* DataType)
                 T[0].C |= Q;
             } else {
                 /* We have address size qualifiers. If followed by a function,
-                 * apply these also to the function.
-                 */
+                ** apply these also to the function.
+                */
                 if (IsTypeFunc (T+1)) {
                     TypeCode FQ = (T[1].C & T_QUAL_ADDRSIZE);
                     if (FQ == T_QUAL_NONE) {
@@ -490,8 +490,8 @@ static void ParseEnumDecl (void)
 
 static int ParseFieldWidth (Declaration* Decl)
 /* Parse an optional field width. Returns -1 if no field width is speficied,
- * otherwise the width of the field.
- */
+** otherwise the width of the field.
+*/
 {
     ExprDesc Expr;
 
@@ -531,8 +531,8 @@ static SymEntry* StructOrUnionForwardDecl (const char* Name, unsigned Type)
 /* Handle a struct or union forward decl */
 {
     /* Try to find a struct/union with the given name. If there is none,
-     * insert a forward declaration into the current lexical level.
-     */
+    ** insert a forward declaration into the current lexical level.
+    */
     SymEntry* Entry = FindTagSym (Name);
     if (Entry == 0) {
         Entry = AddStructSym (Name, Type, 0, 0);
@@ -547,8 +547,8 @@ static SymEntry* StructOrUnionForwardDecl (const char* Name, unsigned Type)
 
 static unsigned CopyAnonStructFields (const Declaration* Decl, int Offs)
 /* Copy fields from an anon union/struct into the current lexical level. The
- * function returns the size of the embedded struct/union.
- */
+** function returns the size of the embedded struct/union.
+*/
 {
     /* Get the pointer to the symbol table entry of the anon struct */
     SymEntry* Entry = GetSymEntry (Decl->Type);
@@ -557,8 +557,8 @@ static unsigned CopyAnonStructFields (const Declaration* Decl, int Offs)
     unsigned Size = Entry->V.S.Size;
 
     /* Get the symbol table containing the fields. If it is empty, there has
-     * been an error before, so bail out.
-     */
+    ** been an error before, so bail out.
+    */
     SymTable* Tab = Entry->V.S.SymTab;
     if (Tab == 0) {
         /* Incomplete definition - has been flagged before */
@@ -566,19 +566,19 @@ static unsigned CopyAnonStructFields (const Declaration* Decl, int Offs)
     }
 
     /* Get a pointer to the list of symbols. Then walk the list adding copies
-     * of the embedded struct to the current level.
-     */
+    ** of the embedded struct to the current level.
+    */
     Entry = Tab->SymHead;
     while (Entry) {
 
         /* Enter a copy of this symbol adjusting the offset. We will just
-         * reuse the type string here.
-         */
+        ** reuse the type string here.
+        */
         AddLocalSym (Entry->Name, Entry->Type, SC_STRUCTFIELD, Offs + Entry->V.Offs);
 
         /* Currently, there can not be any attributes, but if there will be
-         * some in the future, we want to know this.
-         */
+        ** some in the future, we want to know this.
+        */
         CHECK (Entry->Attr == 0);
 
         /* Next entry */
@@ -643,12 +643,12 @@ static SymEntry* ParseUnionDecl (const char* Name)
             /* Check for fields without a name */
             if (Decl.Ident[0] == '\0') {
                 /* In cc65 mode, we allow anonymous structs/unions within
-                 * a struct.
-                 */
+                ** a struct.
+                */
                 if (IS_Get (&Standard) >= STD_CC65 && IsClassStruct (Decl.Type)) {
                     /* This is an anonymous struct or union. Copy the fields
-                     * into the current level.
-                     */
+                    ** into the current level.
+                    */
                     CopyAnonStructFields (&Decl, 0);
 
                 } else {
@@ -735,8 +735,8 @@ static SymEntry* ParseStructDecl (const char* Name)
             ident       Ident;
 
             /* If we had a flexible array member before, no other fields can
-             * follow.
-             */
+            ** follow.
+            */
             if (FlexibleMember) {
                 Error ("Flexible array member must be last field");
                 FlexibleMember = 0;     /* Avoid further errors */
@@ -749,10 +749,10 @@ static SymEntry* ParseStructDecl (const char* Name)
             FieldWidth = ParseFieldWidth (&Decl);
 
             /* If this is not a bit field, or the bit field is too large for
-             * the remainder of the current member, or we have a bit field
-             * with width zero, align the struct to the next member by adding
-             * a member with an anonymous name.
-             */
+            ** the remainder of the current member, or we have a bit field
+            ** with width zero, align the struct to the next member by adding
+            ** a member with an anonymous name.
+            */
             if (BitOffs > 0) {
                 if (FieldWidth <= 0 || (BitOffs + FieldWidth) > (int) INT_BITS) {
 
@@ -760,8 +760,8 @@ static SymEntry* ParseStructDecl (const char* Name)
                     AnonName (Ident, "bit-field");
 
                     /* Add an anonymous bit-field that aligns to the next
-                     * storage unit.
-                     */
+                    ** storage unit.
+                    */
                     AddBitField (Ident, StructSize, BitOffs, INT_BITS - BitOffs);
 
                     /* No bits left */
@@ -771,15 +771,15 @@ static SymEntry* ParseStructDecl (const char* Name)
             }
 
             /* Apart from the above, a bit field with width 0 is not processed
-             * further.
-             */
+            ** further.
+            */
             if (FieldWidth == 0) {
                 goto NextMember;
             }
 
             /* Check if this field is a flexible array member, and
-             * calculate the size of the field.
-             */
+            ** calculate the size of the field.
+            */
             if (IsTypeArray (Decl.Type) && GetElementCount (Decl.Type) == UNSPECIFIED) {
                 /* Array with unspecified size */
                 if (StructSize == 0) {
@@ -794,13 +794,13 @@ static SymEntry* ParseStructDecl (const char* Name)
             if (Decl.Ident[0] == '\0') {
                 if (FieldWidth < 0) {
                     /* In cc65 mode, we allow anonymous structs/unions within
-                     * a struct.
-                     */
+                    ** a struct.
+                    */
                     if (IS_Get (&Standard) >= STD_CC65 && IsClassStruct (Decl.Type)) {
 
                         /* This is an anonymous struct or union. Copy the
-                         * fields into the current level.
-                         */
+                        ** fields into the current level.
+                        */
                         StructSize += CopyAnonStructFields (&Decl, StructSize);
 
                     } else {
@@ -817,9 +817,9 @@ static SymEntry* ParseStructDecl (const char* Name)
             /* Add a field entry to the table */
             if (FieldWidth > 0) {
                 /* Add full byte from the bit offset to the variable offset.
-                 * This simplifies handling he bit-field as a char type
-                 * in expressions.
-                 */
+                ** This simplifies handling he bit-field as a char type
+                ** in expressions.
+                */
                 unsigned Offs = StructSize + (BitOffs / CHAR_BITS);
                 AddBitField (Decl.Ident, Offs, BitOffs % CHAR_BITS, FieldWidth);
                 BitOffs += FieldWidth;
@@ -1103,8 +1103,8 @@ static void ParseTypeSpec (DeclSpec* D, long Default, TypeCode Qualifiers)
 
 static Type* ParamTypeCvt (Type* T)
 /* If T is an array, convert it to a pointer else do nothing. Return the
- * resulting type.
- */
+** resulting type.
+*/
 {
     if (IsTypeArray (T)) {
         T->C = T_PTR;
@@ -1152,8 +1152,8 @@ static void ParseOldStyleParamList (FuncDesc* F)
     }
 
     /* Skip right paren. We must explicitly check for one here, since some of
-     * the breaks above bail out without checking.
-     */
+    ** the breaks above bail out without checking.
+    */
     ConsumeRParen ();
 
     /* An optional list of type specifications follows */
@@ -1165,8 +1165,8 @@ static void ParseOldStyleParamList (FuncDesc* F)
         ParseDeclSpec (&Spec, SC_AUTO, T_INT);
 
         /* We accept only auto and register as storage class specifiers, but
-         * we ignore all this, since we use auto anyway.
-         */
+        ** we ignore all this, since we use auto anyway.
+        */
         if ((Spec.StorageClass & SC_AUTO) == 0 &&
             (Spec.StorageClass & SC_REGISTER) == 0) {
             Error ("Illegal storage class");
@@ -1185,8 +1185,8 @@ static void ParseOldStyleParamList (FuncDesc* F)
                 SymEntry* Sym = FindLocalSym (Decl.Ident);
                 if (Sym) {
                     /* Check if we already changed the type for this
-                     * parameter
-                     */
+                    ** parameter
+                    */
                     if (Sym->Flags & SC_DEFTYPE) {
                         /* Found it, change the default type to the one given */
                         ChangeSymType (Sym, ParamTypeCvt (Decl.Type));
@@ -1247,14 +1247,14 @@ static void ParseAnsiParamList (FuncDesc* F)
         }
 
         /* Allow parameters without a name, but remember if we had some to
-         * eventually print an error message later.
-         */
+        ** eventually print an error message later.
+        */
         ParseDecl (&Spec, &Decl, DM_ACCEPT_IDENT);
         if (Decl.Ident[0] == '\0') {
 
             /* Unnamed symbol. Generate a name that is not user accessible,
-             * then handle the symbol normal.
-             */
+            ** then handle the symbol normal.
+            */
             AnonName (Decl.Ident, "param");
             F->Flags |= FD_UNNAMED_PARAMS;
 
@@ -1290,8 +1290,8 @@ static void ParseAnsiParamList (FuncDesc* F)
     }
 
     /* Skip right paren. We must explicitly check for one here, since some of
-     * the breaks above bail out without checking.
-     */
+    ** the breaks above bail out without checking.
+    */
     ConsumeRParen ();
 }
 
@@ -1320,8 +1320,8 @@ static FuncDesc* ParseFuncDecl (void)
     } else if (CurTok.Tok == TOK_IDENT &&
                (NextTok.Tok == TOK_COMMA || NextTok.Tok == TOK_RPAREN)) {
         /* If the identifier is a typedef, we have a new style parameter list,
-         * if it's some other identifier, it's an old style parameter list.
-         */
+        ** if it's some other identifier, it's an old style parameter list.
+        */
         Sym = FindSym (CurTok.Ident);
         if (Sym == 0 || !SymIsTypeDef (Sym)) {
             /* Old style (K&R) function. */
@@ -1341,15 +1341,15 @@ static FuncDesc* ParseFuncDecl (void)
     }
 
     /* Remember the last function parameter. We need it later for several
-     * purposes, for example when passing stuff to fastcall functions. Since
-     * more symbols are added to the table, it is easier if we remember it
-     * now, since it is currently the last entry in the symbol table.
-     */
+    ** purposes, for example when passing stuff to fastcall functions. Since
+    ** more symbols are added to the table, it is easier if we remember it
+    ** now, since it is currently the last entry in the symbol table.
+    */
     F->LastParam = GetSymTab()->SymTail;
 
     /* Assign offsets. If the function has a variable parameter list,
-     * there's one additional byte (the arg size).
-     */
+    ** there's one additional byte (the arg size).
+    */
     Offs = (F->Flags & FD_VARIADIC)? 1 : 0;
     Sym = F->LastParam;
     while (Sym) {
@@ -1377,11 +1377,11 @@ static void Declarator (const DeclSpec* Spec, Declaration* D, declmode_t Mode)
 /* Recursively process declarators. Build a type array in reverse order. */
 {
     /* Read optional function or pointer qualifiers. These modify the
-     * identifier or token to the right. For convenience, we allow the fastcall
-     * qualifier also for pointers here. If it is a pointer-to-function, the
-     * qualifier will later be transfered to the function itself. If it's a
-     * pointer to something else, it will be flagged as an error.
-     */
+    ** identifier or token to the right. For convenience, we allow the fastcall
+    ** qualifier also for pointers here. If it is a pointer-to-function, the
+    ** qualifier will later be transfered to the function itself. If it's a
+    ** pointer to something else, it will be flagged as an error.
+    */
     TypeCode Qualifiers = OptionalQualifiers (T_QUAL_ADDRSIZE | T_QUAL_FASTCALL);
 
     /* Pointer to something */
@@ -1407,15 +1407,15 @@ static void Declarator (const DeclSpec* Spec, Declaration* D, declmode_t Mode)
         ConsumeRParen ();
     } else {
         /* Things depend on Mode now:
-         *  - Mode == DM_NEED_IDENT means:
-         *      we *must* have a type and a variable identifer.
-         *  - Mode == DM_NO_IDENT means:
-         *      we must have a type but no variable identifer
-         *      (if there is one, it's not read).
-         *  - Mode == DM_ACCEPT_IDENT means:
-         *      we *may* have an identifier. If there is an identifier,
-         *      it is read, but it is no error, if there is none.
-         */
+        **  - Mode == DM_NEED_IDENT means:
+        **      we *must* have a type and a variable identifer.
+        **  - Mode == DM_NO_IDENT means:
+        **      we must have a type but no variable identifer
+        **      (if there is one, it's not read).
+        **  - Mode == DM_ACCEPT_IDENT means:
+        **      we *may* have an identifier. If there is an identifier,
+        **      it is read, but it is no error, if there is none.
+        */
         if (Mode == DM_NO_IDENT) {
             D->Ident[0] = '\0';
         } else if (CurTok.Tok == TOK_IDENT) {
@@ -1597,8 +1597,8 @@ void ParseDecl (const DeclSpec* Spec, Declaration* D, declmode_t Mode)
         if ((Spec->Flags & DS_DEF_TYPE) != 0 &&
             RetType[0].C == T_INT && RetType[1].C == T_END) {
             /* Function has an implicit int return. Output a warning if we don't
-             * have the C89 standard enabled explicitly.
-             */
+            ** have the C89 standard enabled explicitly.
+            */
             if (IS_Get (&Standard) >= STD_C99) {
                 Warning ("Implicit `int' return type is an obsolete feature");
             }
@@ -1608,13 +1608,13 @@ void ParseDecl (const DeclSpec* Spec, Declaration* D, declmode_t Mode)
     }
 
     /* For anthing that is not a function or typedef, check for an implicit
-     * int declaration.
-     */
+    ** int declaration.
+    */
     if ((D->StorageClass & SC_FUNC) != SC_FUNC &&
         (D->StorageClass & SC_TYPEMASK) != SC_TYPEDEF) {
         /* If the standard was not set explicitly to C89, print a warning
-         * for variables with implicit int type.
-         */
+        ** for variables with implicit int type.
+        */
         if ((Spec->Flags & DS_DEF_TYPE) != 0 && IS_Get (&Standard) >= STD_C99) {
             Warning ("Implicit `int' is an obsolete feature");
         }
@@ -1658,9 +1658,9 @@ void ParseDeclSpec (DeclSpec* D, unsigned DefStorage, long DefType)
 
 void CheckEmptyDecl (const DeclSpec* D)
 /* Called after an empty type declaration (that is, a type declaration without
- * a variable). Checks if the declaration does really make sense and issues a
- * warning if not.
- */
+** a variable). Checks if the declaration does really make sense and issues a
+** warning if not.
+*/
 {
     if ((D->Flags & DS_EXTRA_TYPE) == 0) {
         Warning ("Useless declaration");
@@ -1671,8 +1671,8 @@ void CheckEmptyDecl (const DeclSpec* D)
 
 static void SkipInitializer (unsigned BracesExpected)
 /* Skip the remainder of an initializer in case of errors. Try to be somewhat
- * smart so we don't have too many following errors.
- */
+** smart so we don't have too many following errors.
+*/
 {
     while (CurTok.Tok != TOK_CEOF && CurTok.Tok != TOK_SEMI && BracesExpected > 0) {
         switch (CurTok.Tok) {
@@ -1688,9 +1688,9 @@ static void SkipInitializer (unsigned BracesExpected)
 
 static unsigned OpeningCurlyBraces (unsigned BracesNeeded)
 /* Accept any number of opening curly braces around an initialization, skip
- * them and return the number. If the number of curly braces is less than
- * BracesNeeded, issue a warning.
- */
+** them and return the number. If the number of curly braces is less than
+** BracesNeeded, issue a warning.
+*/
 {
     unsigned BraceCount = 0;
     while (CurTok.Tok == TOK_LCURLY) {
@@ -1707,9 +1707,9 @@ static unsigned OpeningCurlyBraces (unsigned BracesNeeded)
 
 static void ClosingCurlyBraces (unsigned BracesExpected)
 /* Accept and skip the given number of closing curly braces together with
- * an optional comma. Output an error messages, if the input does not contain
- * the expected number of braces.
- */
+** an optional comma. Output an error messages, if the input does not contain
+** the expected number of braces.
+*/
 {
     while (BracesExpected) {
         if (CurTok.Tok == TOK_RCURLY) {
@@ -1750,8 +1750,8 @@ static void DefineData (ExprDesc* Expr)
 
         case E_LOC_REGISTER:
             /* Register variable. Taking the address is usually not
-             * allowed.
-             */
+            ** allowed.
+            */
             if (IS_Get (&AllowRegVarAddr) == 0) {
                 Error ("Cannot take the address of a register variable");
             }
@@ -1791,15 +1791,15 @@ static void OutputBitFieldData (StructInitData* SI)
 
 static void ParseScalarInitInternal (Type* T, ExprDesc* ED)
 /* Parse initializaton for scalar data types. This function will not output the
- * data but return it in ED.
- */
+** data but return it in ED.
+*/
 {
     /* Optional opening brace */
     unsigned BraceCount = OpeningCurlyBraces (0);
 
     /* We warn if an initializer for a scalar contains braces, because this is
-     * quite unusual and often a sign for some problem in the input.
-     */
+    ** quite unusual and often a sign for some problem in the input.
+    */
     if (BraceCount > 0) {
         Warning ("Braces around scalar initializer");
     }
@@ -1874,8 +1874,8 @@ static unsigned ParseArrayInit (Type* T, int AllowFlexibleMembers)
         int NeedParen;
 
         /* If we initializer is enclosed in brackets, remember this fact and
-         * skip the opening bracket.
-         */
+        ** skip the opening bracket.
+        */
         NeedParen = (CurTok.Tok == TOK_LCURLY);
         if (NeedParen) {
             NextToken ();
@@ -1885,8 +1885,8 @@ static unsigned ParseArrayInit (Type* T, int AllowFlexibleMembers)
         TranslateLiteral (CurTok.SVal);
 
         /* If the array is one too small for the string literal, omit the
-         * trailing zero.
-         */
+        ** trailing zero.
+        */
         Count = GetLiteralSize (CurTok.SVal);
         if (ElementCount != UNSPECIFIED &&
             ElementCount != FLEXIBLE    &&
@@ -1902,8 +1902,8 @@ static unsigned ParseArrayInit (Type* T, int AllowFlexibleMembers)
         NextToken ();
 
         /* If the initializer was enclosed in curly braces, we need a closing
-         * one.
-         */
+        ** one.
+        */
         if (NeedParen) {
             ConsumeRCurly ();
         }
@@ -1917,9 +1917,9 @@ static unsigned ParseArrayInit (Type* T, int AllowFlexibleMembers)
         Count = 0;
         while (CurTok.Tok != TOK_RCURLY) {
             /* Flexible array members may not be initialized within
-             * an array (because the size of each element may differ
-             * otherwise).
-             */
+            ** an array (because the size of each element may differ
+            ** otherwise).
+            */
             ParseInitInternal (ElementType, 0);
             ++Count;
             if (CurTok.Tok != TOK_COMMA)
@@ -1937,8 +1937,8 @@ static unsigned ParseArrayInit (Type* T, int AllowFlexibleMembers)
         ElementCount = Count;
     } else if (ElementCount == FLEXIBLE && AllowFlexibleMembers) {
         /* In non ANSI mode, allow initialization of flexible array
-         * members.
-         */
+        ** members.
+        */
         ElementCount = Count;
     } else if (Count < ElementCount) {
         g_zerobytes ((ElementCount - Count) * ElementSize);
@@ -1968,8 +1968,8 @@ static unsigned ParseStructInit (Type* T, int AllowFlexibleMembers)
     SI.Size = Entry->V.S.Size;
 
     /* Check if this struct definition has a field table. If it doesn't, it
-     * is an incomplete definition.
-     */
+    ** is an incomplete definition.
+    */
     Tab = Entry->V.S.SymTab;
     if (Tab == 0) {
         Error ("Cannot initialize variables with incomplete type");
@@ -1996,8 +1996,8 @@ static unsigned ParseStructInit (Type* T, int AllowFlexibleMembers)
         }
 
         /* Parse initialization of one field. Bit-fields need a special
-         * handling.
-         */
+        ** handling.
+        */
         if (SymIsBitField (Entry)) {
 
             ExprDesc ED;
@@ -2012,8 +2012,8 @@ static unsigned ParseStructInit (Type* T, int AllowFlexibleMembers)
                    SI.Offs         * CHAR_BITS + SI.ValBits);
 
             /* This may be an anonymous bit-field, in which case it doesn't
-             * have an initializer.
-             */
+            ** have an initializer.
+            */
             if (IsAnonName (Entry->Name)) {
                 /* Account for the data and output it if we have a full word */
                 SI.ValBits += Entry->V.B.BitWidth;
@@ -2024,8 +2024,8 @@ static unsigned ParseStructInit (Type* T, int AllowFlexibleMembers)
                 goto NextMember;
             } else {
                 /* Read the data, check for a constant integer, do a range
-                 * check.
-                 */
+                ** check.
+                */
                 ParseScalarInitInternal (type_uint, &ED);
                 if (!ED_IsConstAbsInt (&ED)) {
                     Error ("Constant initializer expected");
@@ -2052,13 +2052,13 @@ static unsigned ParseStructInit (Type* T, int AllowFlexibleMembers)
         } else {
 
             /* Standard member. We should never have stuff from a
-             * bit-field left
-             */
+            ** bit-field left
+            */
             CHECK (SI.ValBits == 0);
 
             /* Flexible array members may only be initialized if they are
-             * the last field (or part of the last struct field).
-             */
+            ** the last field (or part of the last struct field).
+            */
             SI.Offs += ParseInitInternal (Entry->Type, AllowFlexibleMembers && Entry->NextSym == 0);
         }
 
@@ -2094,9 +2094,9 @@ NextMember:
     }
 
     /* Return the actual number of bytes initialized. This number may be
-     * larger than sizeof (Struct) if flexible array members are present and
-     * were initialized (possible in non ANSI mode).
-     */
+    ** larger than sizeof (Struct) if flexible array members are present and
+    ** were initialized (possible in non ANSI mode).
+    */
     return SI.Offs;
 }
 
@@ -2104,8 +2104,8 @@ NextMember:
 
 static unsigned ParseVoidInit (void)
 /* Parse an initialization of a void variable (special cc65 extension).
- * Return the number of bytes initialized.
- */
+** Return the number of bytes initialized.
+*/
 {
     ExprDesc Expr;
     unsigned Size;
@@ -2222,13 +2222,13 @@ unsigned ParseInit (Type* T)
 /* Parse initialization of variables. Return the number of data bytes. */
 {
     /* Parse the initialization. Flexible array members can only be initialized
-     * in cc65 mode.
-     */
+    ** in cc65 mode.
+    */
     unsigned Size = ParseInitInternal (T, IS_Get (&Standard) == STD_CC65);
 
     /* The initialization may not generate code on global level, because code
-     * outside function scope will never get executed.
-     */
+    ** outside function scope will never get executed.
+    */
     if (HaveGlobalCode ()) {
         Error ("Non constant initializers");
         RemoveGlobalCode ();
index ff092d87ff2232def4ef6fc2eb454dbafae956ff..117ac14a62ce49f238db042bf882f395b2db7d63 100644 (file)
@@ -104,14 +104,14 @@ void ParseDeclSpec (DeclSpec* D, unsigned DefStorage, long DefType);
 
 void CheckEmptyDecl (const DeclSpec* D);
 /* Called after an empty type declaration (that is, a type declaration without
- * a variable). Checks if the declaration does really make sense and issues a
- * warning if not.
- */
+** a variable). Checks if the declaration does really make sense and issues a
+** warning if not.
+*/
 
 unsigned ParseInit (Type* T);
 /* Parse initialization of variables. Return the number of initialized data
- * bytes.
- */
+** bytes.
+*/
 
 
 
index 7fc7f4fb83763747f7a1406152a00515c7bc914b..bdaea20d6a9978ac3c532b916015b09e096934cc 100644 (file)
@@ -104,8 +104,8 @@ static DeclAttr* NewDeclAttr (DeclAttrType AttrType)
 
 static const AttrDesc* FindAttribute (const char* Attr)
 /* Search the attribute and return the corresponding attribute descriptor.
- * Return NULL if the attribute name is not known.
- */
+** Return NULL if the attribute name is not known.
+*/
 {
     unsigned A;
 
@@ -235,8 +235,8 @@ void ParseAttribute (Declaration* D)
         }
 
         /* If a comma follows, there's a next attribute. Otherwise this is the
-         * end of the attribute list.
-         */
+        ** end of the attribute list.
+        */
         if (CurTok.Tok != TOK_COMMA) {
             break;
         }
index 56750367a61ad7fe4136f54a40f84c3782fd5c00..5218d195ca93a1160a339b897be5e69231390ba1 100644 (file)
@@ -283,8 +283,8 @@ void PPWarning (const char* Format, ...)
 
 IntStack* FindWarning (const char* Name)
 /* Search for a warning in the WarnMap table and return a pointer to the
- * intstack that holds its state. Return NULL if there is no such warning.
- */
+** intstack that holds its state. Return NULL if there is no such warning.
+*/
 {
     unsigned I;
 
index f85cdcae08e4c2d79704142300e9f01b2ffa5f8f..9aec10c77a38e6d374d7aed40ed1efa933f6740d 100644 (file)
@@ -105,8 +105,8 @@ void PPWarning (const char* Format, ...) attribute ((format (printf, 1, 2)));
 
 IntStack* FindWarning (const char* Name);
 /* Search for a warning in the WarnMap table and return a pointer to the
- * intstack that holds its state. Return NULL if there is no such warning.
- */
+** intstack that holds its state. Return NULL if there is no such warning.
+*/
 
 void ListWarnings (FILE* F);
 /* Print a list of warning types/names to the given file */
index a425c660230d6706c645dc9b0e6b886c6d22323d..03374a52147f86d48edbe648b4935cff8e1e371d 100644 (file)
@@ -1,7 +1,7 @@
 /* expr.c
- *
- * Ullrich von Bassewitz, 21.06.1998
- */
+**
+** Ullrich von Bassewitz, 21.06.1998
+*/
 
 
 
@@ -107,7 +107,7 @@ void ExprWithCheck (void (*Func) (ExprDesc*), ExprDesc* Expr)
     /* Call the expression function */
     (*Func) (Expr);
 
-    /* Do some checks if code generation is still constistent */
+    /* Do some checks to see if code generation is still consistent */
     if (StackPtr != OldSP) {
         if (Debug) {
             Error ("Code generation messed up: "
@@ -125,8 +125,8 @@ void ExprWithCheck (void (*Func) (ExprDesc*), ExprDesc* Expr)
 
 void MarkedExprWithCheck (void (*Func) (ExprDesc*), ExprDesc* Expr)
 /* Call an expression function with checks and record start and end of the
- * generated code.
- */
+** generated code.
+*/
 {
     CodeMark Start, End;
     GetCodePos (&Start);
@@ -141,10 +141,10 @@ static Type* promoteint (Type* lhst, Type* rhst)
 /* In an expression with two ints, return the type of the result */
 {
     /* Rules for integer types:
-     *   - If one of the values is a long, the result is long.
-     *   - If one of the values is unsigned, the result is also unsigned.
-     *   - Otherwise the result is an int.
-     */
+    **   - If one of the values is a long, the result is long.
+    **   - If one of the values is unsigned, the result is also unsigned.
+    **   - Otherwise the result is an int.
+    */
     if (IsTypeLong (lhst) || IsTypeLong (rhst)) {
         if (IsSignUnsigned (lhst) || IsSignUnsigned (rhst)) {
             return type_ulong;
@@ -164,13 +164,13 @@ static Type* promoteint (Type* lhst, Type* rhst)
 
 static unsigned typeadjust (ExprDesc* lhs, ExprDesc* rhs, int NoPush)
 /* Adjust the two values for a binary operation. lhs is expected on stack or
- * to be constant, rhs is expected to be in the primary register or constant.
- * The function will put the type of the result into lhs and return the
- * code generator flags for the operation.
- * If NoPush is given, it is assumed that the operation does not expect the lhs
- * to be on stack, and that lhs is in a register instead.
- * Beware: The function does only accept int types.
- */
+** to be constant, rhs is expected to be in the primary register or constant.
+** The function will put the type of the result into lhs and return the
+** code generator flags for the operation.
+** If NoPush is given, it is assumed that the operation does not expect the lhs
+** to be on stack, and that lhs is in a register instead.
+** Beware: The function does only accept int types.
+*/
 {
     unsigned ltype, rtype;
     unsigned flags;
@@ -219,18 +219,18 @@ static const GenDesc* FindGen (token_t Tok, const GenDesc* Table)
 
 static int TypeSpecAhead (void)
 /* Return true if some sort of type is waiting (helper for cast and sizeof()
- * in hie10).
- */
+** in hie10).
+*/
 {
     SymEntry* Entry;
 
     /* There's a type waiting if:
-     *
-     * We have an opening paren, and
-     *   a.  the next token is a type, or
-     *   b.  the next token is a type qualifier, or
-     *   c.  the next token is a typedef'd type
-     */
+    **
+    ** We have an opening paren, and
+    **   a.  the next token is a type, or
+    **   b.  the next token is a type qualifier, or
+    **   c.  the next token is a typedef'd type
+    */
     return CurTok.Tok == TOK_LPAREN && (
            TokIsType (&NextTok)                         ||
            TokIsTypeQual (&NextTok)                     ||
@@ -243,10 +243,10 @@ static int TypeSpecAhead (void)
 
 void PushAddr (const ExprDesc* Expr)
 /* If the expression contains an address that was somehow evaluated,
- * push this address on the stack. This is a helper function for all
- * sorts of implicit or explicit assignment functions where the lvalue
- * must be saved if it's not constant, before evaluating the rhs.
- */
+** push this address on the stack. This is a helper function for all
+** sorts of implicit or explicit assignment functions where the lvalue
+** must be saved if it's not constant, before evaluating the rhs.
+*/
 {
     /* Get the address on stack if needed */
     if (ED_IsLocExpr (Expr)) {
@@ -259,8 +259,8 @@ void PushAddr (const ExprDesc* Expr)
 
 static void WarnConstCompareResult (void)
 /* If the result of a comparison is constant, this is suspicious when not in
- * preprocessor mode.
- */
+** preprocessor mode.
+*/
 {
     if (!Preprocessing && IS_Get (&WarnConstComparison) != 0) {
         Warning ("Result of comparison is constant");
@@ -277,11 +277,11 @@ static void WarnConstCompareResult (void)
 
 static unsigned FunctionParamList (FuncDesc* Func, int IsFastcall)
 /* Parse a function parameter list and pass the parameters to the called
- * function. Depending on several criteria this may be done by just pushing
- * each parameter separately, or creating the parameter frame once and then
- * storing into this frame.
- * The function returns the size of the parameters pushed.
- */
+** function. Depending on several criteria this may be done by just pushing
+** each parameter separately, or creating the parameter frame once and then
+** storing into this frame.
+** The function returns the size of the parameters pushed.
+*/
 {
     ExprDesc Expr;
 
@@ -295,18 +295,18 @@ static unsigned FunctionParamList (FuncDesc* Func, int IsFastcall)
     int       Ellipsis    = 0;  /* Function is variadic */
 
     /* As an optimization, we may allocate the complete parameter frame at
-     * once instead of pushing each parameter as it comes. We may do that,
-     * if...
-     *
-     *  - optimizations that increase code size are enabled (allocating the
-     *    stack frame at once gives usually larger code).
-     *  - we have more than one parameter to push (don't count the last param
-     *    for __fastcall__ functions).
-     *
-     * The FrameSize variable will contain a value > 0 if storing into a frame
-     * (instead of pushing) is enabled.
-     *
-     */
+    ** once instead of pushing each parameter as it comes. We may do that,
+    ** if...
+    **
+    **  - optimizations that increase code size are enabled (allocating the
+    **    stack frame at once gives usually larger code).
+    **  - we have more than one parameter to push (don't count the last param
+    **    for __fastcall__ functions).
+    **
+    ** The FrameSize variable will contain a value > 0 if storing into a frame
+    ** (instead of pushing) is enabled.
+    **
+    */
     if (IS_Get (&CodeSizeFactor) >= 200) {
 
         /* Calculate the number and size of the parameters */
@@ -341,13 +341,13 @@ static unsigned FunctionParamList (FuncDesc* Func, int IsFastcall)
         /* Fetch the pointer to the next argument, check for too many args */
         if (ParamCount <= Func->ParamCount) {
             /* Beware: If there are parameters with identical names, they
-             * cannot go into the same symbol table, which means that in this
-             * case of errorneous input, the number of nodes in the symbol
-             * table and ParamCount are NOT equal. We have to handle this case
-             * below to avoid segmentation violations. Since we know that this
-             * problem can only occur if there is more than one parameter,
-             * we will just use the last one.
-             */
+            ** cannot go into the same symbol table, which means that in this
+            ** case of errorneous input, the number of nodes in the symbol
+            ** table and ParamCount are NOT equal. We have to handle this case
+            ** below to avoid segmentation violations. Since we know that this
+            ** problem can only occur if there is more than one parameter,
+            ** we will just use the last one.
+            */
             if (ParamCount == 1) {
                 /* First argument */
                 Param = Func->SymTab->SymHead;
@@ -363,8 +363,8 @@ static unsigned FunctionParamList (FuncDesc* Func, int IsFastcall)
                 Error ("Too many arguments in function call");
             }
             /* Assume an ellipsis even in case of errors to avoid an error
-             * message for each other argument.
-             */
+            ** message for each other argument.
+            */
             Ellipsis = 1;
         }
 
@@ -372,8 +372,8 @@ static unsigned FunctionParamList (FuncDesc* Func, int IsFastcall)
         hie1 (&Expr);
 
         /* If we don't have an argument spec, accept anything, otherwise
-         * convert the actual argument to the type needed.
-         */
+        ** convert the actual argument to the type needed.
+        */
         Flags = CF_NONE;
         if (!Ellipsis) {
 
@@ -386,8 +386,8 @@ static unsigned FunctionParamList (FuncDesc* Func, int IsFastcall)
         } else {
 
             /* No prototype available. Convert array to "pointer to first
-             * element", and function to "pointer to function".
-             */
+            ** element", and function to "pointer to function".
+            */
             Expr.Type = PtrConversion (Expr.Type);
 
         }
@@ -403,11 +403,11 @@ static unsigned FunctionParamList (FuncDesc* Func, int IsFastcall)
             unsigned ArgSize = sizeofarg (Flags);
             if (FrameSize > 0) {
                 /* We have the space already allocated, store in the frame.
-                 * Because of invalid type conversions (that have produced an
-                 * error before), we can end up here with a non aligned stack
-                 * frame. Since no output will be generated anyway, handle
-                 * these cases gracefully instead of doing a CHECK.
-                 */
+                ** Because of invalid type conversions (that have produced an
+                ** error before), we can end up here with a non-aligned stack
+                ** frame. Since no output will be generated anyway, handle
+                ** these cases gracefully instead of doing a CHECK.
+                */
                 if (FrameSize >= ArgSize) {
                     FrameSize -= ArgSize;
                 } else {
@@ -438,13 +438,13 @@ static unsigned FunctionParamList (FuncDesc* Func, int IsFastcall)
     }
 
     /* The function returns the size of all parameters pushed onto the stack.
-     * However, if there are parameters missing (which is an error and was
-     * flagged by the compiler) AND a stack frame was preallocated above,
-     * we would loose track of the stackpointer and generate an internal error
-     * later. So we correct the value by the parameters that should have been
-     * pushed to avoid an internal compiler error. Since an error was
-     * generated before, no code will be output anyway.
-     */
+    ** However, if there are parameters missing (which is an error and was
+    ** flagged by the compiler) AND a stack frame was preallocated above,
+    ** we would loose track of the stackpointer and generate an internal error
+    ** later. So we correct the value by the parameters that should have been
+    ** pushed to avoid an internal compiler error. Since an error was
+    ** generated before, no code will be output anyway.
+    */
     return ParamSize + FrameSize;
 }
 
@@ -458,7 +458,7 @@ static void FunctionCall (ExprDesc* Expr)
     unsigned      ParamSize;      /* Number of parameter bytes */
     CodeMark      Mark;
     int           PtrOffs = 0;    /* Offset of function pointer on stack */
-    int           IsFastcall = 0; /* True if it's a fast call function */
+    int           IsFastcall = 0; /* True if it's a fast-call function */
     int           PtrOnStack = 0; /* True if a pointer copy is on stack */
 
     /* Skip the left paren */
@@ -475,19 +475,19 @@ static void FunctionCall (ExprDesc* Expr)
         IsFastcall = IsQualFastcall (Expr->Type + 1) && (Func->ParamCount > 0);
 
         /* Things may be difficult, depending on where the function pointer
-         * resides. If the function pointer is an expression of some sort
-         * (not a local or global variable), we have to evaluate this
-         * expression now and save the result for later. Since calls to
-         * function pointers may be nested, we must save it onto the stack.
-         * For fastcall functions we do also need to place a copy of the
-         * pointer on stack, since we cannot use a/x.
-         */
+        ** resides. If the function pointer is an expression of some sort
+        ** (not a local or global variable), we have to evaluate this
+        ** expression now and save the result for later. Since calls to
+        ** function pointers may be nested, we must save it onto the stack.
+        ** For fastcall functions we do also need to place a copy of the
+        ** pointer on stack, since we cannot use a/x.
+        */
         PtrOnStack = IsFastcall || !ED_IsConst (Expr);
         if (PtrOnStack) {
 
             /* Not a global or local variable, or a fastcall function. Load
-             * the pointer into the primary and mark it as an expression.
-             */
+            ** the pointer into the primary and mark it as an expression.
+            */
             LoadExpr (CF_NONE, Expr);
             ED_MakeRValExpr (Expr);
 
@@ -530,16 +530,16 @@ static void FunctionCall (ExprDesc* Expr)
     if (IsFuncPtr) {
 
         /* If the function is not a fastcall function, load the pointer to
-         * the function into the primary.
-         */
+        ** the function into the primary.
+        */
         if (!IsFastcall) {
 
             /* Not a fastcall function - we may use the primary */
             if (PtrOnStack) {
                 /* If we have no parameters, the pointer is still in the
-                 * primary. Remove the code to push it and correct the
-                 * stack pointer.
-                 */
+                ** primary. Remove the code to push it and correct the
+                ** stack pointer.
+                */
                 if (ParamSize == 0) {
                     RemoveCode (&Mark);
                     PtrOnStack = 0;
@@ -558,10 +558,10 @@ static void FunctionCall (ExprDesc* Expr)
         } else {
 
             /* Fastcall function. We cannot use the primary for the function
-             * pointer and must therefore use an offset to the stack location.
-             * Since fastcall functions may never be variadic, we can use the
-             * index register for this purpose.
-             */
+            ** pointer and must therefore use an offset to the stack location.
+            ** Since fastcall functions may never be variadic, we can use the
+            ** index register for this purpose.
+            */
             g_callind (CF_LOCAL, ParamSize, PtrOffs);
         }
 
@@ -615,8 +615,8 @@ static void Primary (ExprDesc* E)
     }
 
     /* Process parenthesized subexpression by calling the whole parser
-     * recursively.
-     */
+    ** recursively.
+    */
     if (CurTok.Tok == TOK_LPAREN) {
         NextToken ();
         hie0 (E);
@@ -625,8 +625,8 @@ static void Primary (ExprDesc* E)
     }
 
     /* If we run into an identifier in preprocessing mode, we assume that this
-     * is an undefined macro and replace it by a constant value of zero.
-     */
+    ** is an undefined macro and replace it by a constant value of zero.
+    */
     if (Preprocessing && CurTok.Tok == TOK_IDENT) {
         NextToken ();
         ED_MakeConstAbsInt (E, 0);
@@ -634,8 +634,8 @@ static void Primary (ExprDesc* E)
     }
 
     /* All others may only be used if the expression evaluation is not called
-     * recursively by the preprocessor.
-     */
+    ** recursively by the preprocessor.
+    */
     if (Preprocessing) {
         /* Illegal expression in PP mode */
         Error ("Preprocessor expression expected");
@@ -683,9 +683,9 @@ static void Primary (ExprDesc* E)
                     E->Name = (unsigned long) Sym->Name;
                 } else if ((Sym->Flags & SC_AUTO) == SC_AUTO) {
                     /* Local variable. If this is a parameter for a variadic
-                     * function, we have to add some address calculations, and the
-                     * address is not const.
-                     */
+                    ** function, we have to add some address calculations, and the
+                    ** address is not const.
+                    */
                     if ((Sym->Flags & SC_PARAM) == SC_PARAM && F_IsVariadic (CurrentFunc)) {
                         /* Variadic parameter */
                         g_leavariadic (Sym->V.Offs - F_GetParamSize (CurrentFunc));
@@ -715,11 +715,11 @@ static void Primary (ExprDesc* E)
                 }
 
                 /* We've made all variables lvalues above. However, this is
-                 * not always correct: An array is actually the address of its
-                 * first element, which is a rvalue, and a function is a
-                 * rvalue, too, because we cannot store anything in a function.
-                 * So fix the flags depending on the type.
-                 */
+                ** not always correct: An array is actually the address of its
+                ** first element, which is a rvalue, and a function is a
+                ** rvalue, too, because we cannot store anything in a function.
+                ** So fix the flags depending on the type.
+                */
                 if (IsTypeArray (E->Type) || IsTypeFunc (E->Type)) {
                     ED_MakeRVal (E);
                 }
@@ -734,11 +734,11 @@ static void Primary (ExprDesc* E)
                 /* IDENT is either an auto-declared function or an undefined variable. */
                 if (CurTok.Tok == TOK_LPAREN) {
                     /* C99 doesn't allow calls to undefined functions, so
-                     * generate an error and otherwise a warning. Declare a
-                     * function returning int. For that purpose, prepare a
-                     * function signature for a function having an empty param
-                     * list and returning int.
-                     */
+                    ** generate an error and otherwise a warning. Declare a
+                    ** function returning int. For that purpose, prepare a
+                    ** function signature for a function having an empty param
+                    ** list and returning int.
+                    */
                     if (IS_Get (&Standard) >= STD_C99) {
                         Error ("Call to undefined function `%s'", Ident);
                     } else {
@@ -800,8 +800,8 @@ static void Primary (ExprDesc* E)
 
         default:
             /* Illegal primary. Be sure to skip the token to avoid endless
-             * error loops.
-             */
+            ** error loops.
+            */
             Error ("Expression expected");
             NextToken ();
             ED_MakeConstAbsInt (E, 1);
@@ -830,9 +830,9 @@ static void ArrayRef (ExprDesc* Expr)
     tptr1 = Expr->Type;
 
     /* We can apply a special treatment for arrays that have a const base
-     * address. This is true for most arrays and will produce a lot better
-     * code. Check if this is a const base address.
-     */
+    ** address. This is true for most arrays and will produce a lot better
+    ** code. Check if this is a const base address.
+    */
     ConstBaseAddr = ED_IsRVal (Expr) &&
                     (ED_IsLocConst (Expr) || ED_IsLocStack (Expr));
 
@@ -843,9 +843,9 @@ static void ArrayRef (ExprDesc* Expr)
         LoadExpr (CF_NONE, Expr);
 
         /* Get the array pointer on stack. Do not push more than 16
-         * bit, even if this value is greater, since we cannot handle
-         * other than 16bit stuff when doing indexing.
-         */
+        ** bit, even if this value is greater, since we cannot handle
+        ** other than 16bit stuff when doing indexing.
+        */
         GetCodePos (&Mark2);
         g_push (CF_PTR, 0);
     }
@@ -854,12 +854,12 @@ static void ArrayRef (ExprDesc* Expr)
     MarkedExprWithCheck (hie0, &Subscript);
 
     /* Check the types of array and subscript. We can either have a
-     * pointer/array to the left, in which case the subscript must be of an
-     * integer type, or we have an integer to the left, in which case the
-     * subscript must be a pointer/array.
-     * Since we do the necessary checking here, we can rely later on the
-     * correct types.
-     */
+    ** pointer/array to the left, in which case the subscript must be of an
+    ** integer type, or we have an integer to the left, in which case the
+    ** subscript must be a pointer/array.
+    ** Since we do the necessary checking here, we can rely later on the
+    ** correct types.
+    */
     Qualifiers = T_QUAL_NONE;
     if (IsClassPtr (Expr->Type)) {
         if (!IsClassInt (Subscript.Type))  {
@@ -875,8 +875,8 @@ static void ArrayRef (ExprDesc* Expr)
         if (!IsClassPtr (Subscript.Type)) {
             Error ("Subscripted value is neither array nor pointer");
             /* To avoid compiler errors, make the subscript a char[] at
-             * address 0.
-             */
+            ** address 0.
+            */
             ED_MakeConstAbs (&Subscript, 0, GetCharArrayType (1));
         } else if (IsTypeArray (Subscript.Type)) {
             Qualifiers = GetQualifier (Subscript.Type);
@@ -885,16 +885,16 @@ static void ArrayRef (ExprDesc* Expr)
     } else {
         Error ("Cannot subscript");
         /* To avoid compiler errors, fake both the array and the subscript, so
-         * we can just proceed.
-         */
+        ** we can just proceed.
+        */
         ED_MakeConstAbs (Expr, 0, GetCharArrayType (1));
         ED_MakeConstAbsInt (&Subscript, 0);
         ElementType = Indirect (Expr->Type);
     }
 
     /* The element type has the combined qualifiers from itself and the array,
-     * it is a member of (if any).
-     */
+    ** it is a member of (if any).
+    */
     if (GetQualifier (ElementType) != (GetQualifier (ElementType) | Qualifiers)) {
         ElementType = TypeDup (ElementType);
         ElementType->C |= Qualifiers;
@@ -910,9 +910,9 @@ static void ArrayRef (ExprDesc* Expr)
     if (ED_IsConstAbs (&Subscript) && ED_CodeRangeIsEmpty (&Subscript)) {
 
         /* The array subscript is a numeric constant. If we had pushed the
-         * array base address onto the stack before, we can remove this value,
-         * since we can generate expression+offset.
-         */
+        ** array base address onto the stack before, we can remove this value,
+        ** since we can generate expression+offset.
+        */
         if (!ConstBaseAddr) {
             RemoveCode (&Mark2);
         } else {
@@ -923,17 +923,17 @@ static void ArrayRef (ExprDesc* Expr)
         if (IsClassPtr (Expr->Type)) {
 
             /* Lhs is pointer/array. Scale the subscript value according to
-             * the element size.
-             */
+            ** the element size.
+            */
             Subscript.IVal *= CheckedSizeOf (ElementType);
 
             /* Remove the address load code */
             RemoveCode (&Mark1);
 
             /* In case of an array, we can adjust the offset of the expression
-             * already in Expr. If the base address was a constant, we can even
-             * remove the code that loaded the address into the primary.
-             */
+            ** already in Expr. If the base address was a constant, we can even
+            ** remove the code that loaded the address into the primary.
+            */
             if (IsTypeArray (Expr->Type)) {
 
                 /* Adjust the offset */
@@ -942,8 +942,8 @@ static void ArrayRef (ExprDesc* Expr)
             } else {
 
                 /* It's a pointer, so we do have to load it into the primary
-                 * first (if it's not already there).
-                 */
+                ** first (if it's not already there).
+                */
                 if (ConstBaseAddr || ED_IsLVal (Expr)) {
                     LoadExpr (CF_NONE, Expr);
                     ED_MakeRValExpr (Expr);
@@ -959,9 +959,9 @@ static void ArrayRef (ExprDesc* Expr)
             g_scale (TypeOf (tptr1), CheckedSizeOf (ElementType));
 
             /* Add the subscript. Since arrays are indexed by integers,
-             * we will ignore the true type of the subscript here and
-             * use always an int. #### Use offset but beware of LoadExpr!
-             */
+            ** we will ignore the true type of the subscript here and
+            ** use always an int. #### Use offset but beware of LoadExpr!
+            */
             g_inc (CF_INT | CF_CONST, Subscript.IVal);
 
         }
@@ -976,19 +976,19 @@ static void ArrayRef (ExprDesc* Expr)
         if (IsClassPtr (Expr->Type)) {
 
             /* Indexing is based on unsigneds, so we will just use the integer
-             * portion of the index (which is in (e)ax, so there's no further
-             * action required).
-             */
+            ** portion of the index (which is in (e)ax, so there's no further
+            ** action required).
+            */
             g_scale (CF_INT, CheckedSizeOf (ElementType));
 
         } else {
 
             /* Get the int value on top. If we come here, we're sure, both
-             * values are 16 bit (the first one was truncated if necessary
-             * and the second one is a pointer). Note: If ConstBaseAddr is
-             * true, we don't have a value on stack, so to "swap" both, just
-             * push the subscript.
-             */
+            ** values are 16 bit (the first one was truncated if necessary
+            ** and the second one is a pointer). Note: If ConstBaseAddr is
+            ** true, we don't have a value on stack, so to "swap" both, just
+            ** push the subscript.
+            */
             if (ConstBaseAddr) {
                 g_push (CF_INT, 0);
                 LoadExpr (CF_NONE, Expr);
@@ -1003,28 +1003,28 @@ static void ArrayRef (ExprDesc* Expr)
         }
 
         /* The offset is now in the primary register. It we didn't have a
-         * constant base address for the lhs, the lhs address is already
-         * on stack, and we must add the offset. If the base address was
-         * constant, we call special functions to add the address to the
-         * offset value.
-         */
+        ** constant base address for the lhs, the lhs address is already
+        ** on stack, and we must add the offset. If the base address was
+        ** constant, we call special functions to add the address to the
+        ** offset value.
+        */
         if (!ConstBaseAddr) {
 
             /* The array base address is on stack and the subscript is in the
-             * primary. Add both.
-             */
+            ** primary. Add both.
+            */
             g_add (CF_INT, 0);
 
         } else {
 
             /* The subscript is in the primary, and the array base address is
-             * in Expr. If the subscript has itself a constant address, it is
-             * often a better idea to reverse again the order of the
-             * evaluation. This will generate better code if the subscript is
-             * a byte sized variable. But beware: This is only possible if the
-             * subscript was not scaled, that is, if this was a byte array
-             * or pointer.
-             */
+            ** in Expr. If the subscript has itself a constant address, it is
+            ** often a better idea to reverse again the order of the
+            ** evaluation. This will generate better code if the subscript is
+            ** a byte sized variable. But beware: This is only possible if the
+            ** subscript was not scaled, that is, if this was a byte array
+            ** or pointer.
+            */
             if ((ED_IsLocConst (&Subscript) || ED_IsLocStack (&Subscript)) &&
                 CheckedSizeOf (ElementType) == SIZEOF_CHAR) {
 
@@ -1085,10 +1085,10 @@ static void ArrayRef (ExprDesc* Expr)
     Expr->Type = ElementType;
 
     /* An array element is actually a variable. So the rules for variables
-     * with respect to the reference type apply: If it's an array, it is
-     * a rvalue, otherwise it's an lvalue. (A function would also be a rvalue,
-     * but an array cannot contain functions).
-     */
+    ** with respect to the reference type apply: If it's an array, it is
+    ** a rvalue, otherwise it's an lvalue. (A function would also be a rvalue,
+    ** but an array cannot contain functions).
+    */
     if (IsTypeArray (Expr->Type)) {
         ED_MakeRVal (Expr);
     } else {
@@ -1130,8 +1130,8 @@ static void StructRef (ExprDesc* Expr)
     }
 
     /* If we have a struct pointer that is an lvalue and not already in the
-     * primary, load it now.
-     */
+    ** primary, load it now.
+    */
     if (ED_IsLVal (Expr) && IsTypePtr (Expr->Type)) {
 
         /* Load into the primary */
@@ -1155,8 +1155,8 @@ static void StructRef (ExprDesc* Expr)
     }
 
     /* A struct is usually an lvalue. If not, it is a struct in the primary
-     * register.
-     */
+    ** register.
+    */
     if (ED_IsRVal (Expr) && ED_IsLocExpr (Expr) && !IsTypePtr (Expr->Type)) {
 
         unsigned Flags = 0;
@@ -1178,15 +1178,15 @@ static void StructRef (ExprDesc* Expr)
         }
 
         /* Generate a shift to get the field in the proper position in the
-         * primary. For bit fields, mask the value.
-         */
+        ** primary. For bit fields, mask the value.
+        */
         BitOffs = Field->V.Offs * CHAR_BITS;
         if (SymIsBitField (Field)) {
             BitOffs += Field->V.B.BitOffs;
             g_asr (Flags, BitOffs);
             /* Mask the value. This is unnecessary if the shift executed above
-             * moved only zeroes into the value.
-             */
+            ** moved only zeroes into the value.
+            */
             if (BitOffs + Field->V.B.BitWidth != Size * CHAR_BITS) {
                 g_and (CF_INT | CF_UNSIGNED | CF_CONST,
                        (0x0001U << Field->V.B.BitWidth) - 1U);
@@ -1207,10 +1207,10 @@ static void StructRef (ExprDesc* Expr)
         Expr->Type = FinalType;
 
         /* An struct member is actually a variable. So the rules for variables
-         * with respect to the reference type apply: If it's an array, it is
-         * a rvalue, otherwise it's an lvalue. (A function would also be a rvalue,
-         * but a struct field cannot be a function).
-         */
+        ** with respect to the reference type apply: If it's an array, it is
+        ** a rvalue, otherwise it's an lvalue. (A function would also be a rvalue,
+        ** but a struct field cannot be a function).
+        */
         if (IsTypeArray (Expr->Type)) {
             ED_MakeRVal (Expr);
         } else {
@@ -1253,9 +1253,9 @@ static void hie11 (ExprDesc *Expr)
                     /* Not a function */
                     Error ("Illegal function call");
                     /* Force the type to be a implicitly defined function, one
-                     * returning an int and taking any number of arguments.
-                     * Since we don't have a name, invent one.
-                     */
+                    ** returning an int and taking any number of arguments.
+                    ** Since we don't have a name, invent one.
+                    */
                     ED_MakeConstAbs (Expr, 0, GetImplicitFuncType ());
                     Expr->Name = (long) IllegalFunc;
                 }
@@ -1292,9 +1292,9 @@ static void hie11 (ExprDesc *Expr)
 
 void Store (ExprDesc* Expr, const Type* StoreType)
 /* Store the primary register into the location denoted by Expr. If StoreType
- * is given, use this type when storing instead of Expr->Type. If StoreType
- * is NULL, use Expr->Type instead.
- */
+** is given, use this type when storing instead of Expr->Type. If StoreType
+** is NULL, use Expr->Type instead.
+*/
 {
     unsigned Flags;
 
@@ -1687,17 +1687,17 @@ void hie10 (ExprDesc* Expr)
             ExprWithCheck (hie10, Expr);
             if (ED_IsLVal (Expr) || !(ED_IsLocConst (Expr) || ED_IsLocStack (Expr))) {
                 /* Not a const, load it into the primary and make it a
-                 * calculated value.
-                 */
+                ** calculated value.
+                */
                 LoadExpr (CF_NONE, Expr);
                 ED_MakeRValExpr (Expr);
             }
             /* If the expression is already a pointer to function, the
-             * additional dereferencing operator must be ignored. A function
-             * itself is represented as "pointer to function", so any number
-             * of dereference operators is legal, since the result will
-             * always be converted to "pointer to function".
-             */
+            ** additional dereferencing operator must be ignored. A function
+            ** itself is represented as "pointer to function", so any number
+            ** of dereference operators is legal, since the result will
+            ** always be converted to "pointer to function".
+            */
             if (IsTypeFuncPtr (Expr->Type) || IsTypeFunc (Expr->Type)) {
                 /* Expression not storable */
                 ED_MakeRVal (Expr);
@@ -1716,8 +1716,8 @@ void hie10 (ExprDesc* Expr)
             NextToken ();
             ExprWithCheck (hie10, Expr);
             /* The & operator may be applied to any lvalue, and it may be
-             * applied to functions, even if they're no lvalues.
-             */
+            ** applied to functions, even if they're no lvalues.
+            */
             if (ED_IsRVal (Expr) && !IsTypeFunc (Expr->Type) && !IsTypeArray (Expr->Type)) {
                 Error ("Illegal address");
             } else {
@@ -1745,8 +1745,8 @@ void hie10 (ExprDesc* Expr)
                 GetCodePos (&Mark);
                 hie10 (Expr);
                 /* If the expression is a literal string, release it, so it
-                 * won't be output as data if not used elsewhere.
-                 */
+                ** won't be output as data if not used elsewhere.
+                */
                 if (ED_IsLocLiteral (Expr)) {
                     ReleaseLiteral (Expr->LVal);
                 }
@@ -1827,8 +1827,8 @@ static void hie_internal (const GenDesc* Ops,   /* List of generators */
             /* Constant value */
             GetCodePos (&Mark2);
             /* If the operator is commutative, don't push the left side, if
-             * it's a constant, since we will exchange both operands.
-             */
+            ** it's a constant, since we will exchange both operands.
+            */
             if ((Gen->Flags & GEN_COMM) == 0) {
                 g_push (ltype | CF_CONST, Expr->IVal);
             }
@@ -1943,10 +1943,10 @@ static void hie_internal (const GenDesc* Ops,   /* List of generators */
         } else if (lconst && (Gen->Flags & GEN_COMM) && !rconst) {
 
             /* The left side is constant, the right side is not, and the
-             * operator allows swapping the operands. We haven't pushed the
-             * left side onto the stack in this case, and will reverse the
-             * operation because this allows for better code.
-             */
+            ** operator allows swapping the operands. We haven't pushed the
+            ** left side onto the stack in this case, and will reverse the
+            ** operation because this allows for better code.
+            */
             unsigned rtype = ltype | CF_CONST;
             ltype = TypeOf (Expr2.Type);       /* Expr2 is now left */
             type = CF_CONST;
@@ -1969,9 +1969,9 @@ static void hie_internal (const GenDesc* Ops,   /* List of generators */
         } else {
 
             /* If the right hand side is constant, and the generator function
-             * expects the lhs in the primary, remove the push of the primary
-             * now.
-             */
+            ** expects the lhs in the primary, remove the push of the primary
+            ** now.
+            */
             unsigned rtype = TypeOf (Expr2.Type);
             type = 0;
             if (rconst) {
@@ -2063,8 +2063,8 @@ static void hie_compare (const GenDesc* Ops,    /* List of generators */
         } else if (IsClassPtr (Expr->Type)) {
             if (IsClassPtr (Expr2.Type)) {
                 /* Both pointers are allowed in comparison if they point to
-                 * the same type, or if one of them is a void pointer.
-                 */
+                ** the same type, or if one of them is a void pointer.
+                */
                 Type* left  = Indirect (Expr->Type);
                 Type* right = Indirect (Expr2.Type);
                 if (TypeCmp (left, right) < TC_EQUAL && left->C != T_VOID && right->C != T_VOID) {
@@ -2080,8 +2080,8 @@ static void hie_compare (const GenDesc* Ops,    /* List of generators */
         if (ED_IsConstAbs (Expr) && rconst) {
 
             /* If the result is constant, this is suspicious when not in
-             * preprocessor mode.
-             */
+            ** preprocessor mode.
+            */
             WarnConstCompareResult ();
 
             /* Both operands are constant, remove the generated code */
@@ -2127,9 +2127,9 @@ static void hie_compare (const GenDesc* Ops,    /* List of generators */
             int RightSigned = IsSignSigned (Expr2.Type);
 
             /* If the right hand side is constant, and the generator function
-             * expects the lhs in the primary, remove the push of the primary
-             * now.
-             */
+            ** expects the lhs in the primary, remove the push of the primary
+            ** now.
+            */
             unsigned flags = 0;
             if (rconst) {
                 flags |= CF_CONST;
@@ -2143,8 +2143,8 @@ static void hie_compare (const GenDesc* Ops,    /* List of generators */
             if (IsTypeChar (Expr->Type) && rconst) {
 
                 /* Left side is unsigned char, right side is constant.
-                 * Determine the minimum and maximum values
-                 */
+                ** Determine the minimum and maximum values
+                */
                 int LeftMin, LeftMax;
                 if (LeftSigned) {
                     LeftMin = -128;
@@ -2154,25 +2154,25 @@ static void hie_compare (const GenDesc* Ops,    /* List of generators */
                     LeftMax = 255;
                 }
                 /* An integer value is always represented as a signed in the
-                 * ExprDesc structure. This may lead to false results below,
-                 * if it is actually unsigned, but interpreted as signed
-                 * because of the representation. Fortunately, in this case,
-                 * the actual value doesn't matter, since it's always greater
-                 * than what can be represented in a char. So correct the
-                 * value accordingly.
-                 */
+                ** ExprDesc structure. This may lead to false results below,
+                ** if it is actually unsigned, but interpreted as signed
+                ** because of the representation. Fortunately, in this case,
+                ** the actual value doesn't matter, since it's always greater
+                ** than what can be represented in a char. So correct the
+                ** value accordingly.
+                */
                 if (!RightSigned && Expr2.IVal < 0) {
                     /* Correct the value so it is an unsigned. It will then
-                     * anyway match one of the cases below.
-                     */
+                    ** anyway match one of the cases below.
+                    */
                     Expr2.IVal = LeftMax + 1;
                 }
 
                 /* Comparing a char against a constant may have a constant
-                 * result. Please note: It is not possible to remove the code
-                 * for the compare alltogether, because it may have side
-                 * effects.
-                 */
+                ** result. Please note: It is not possible to remove the code
+                ** for the compare alltogether, because it may have side
+                ** effects.
+                */
                 switch (Tok) {
 
                     case TOK_EQ:
@@ -2228,9 +2228,9 @@ static void hie_compare (const GenDesc* Ops,    /* List of generators */
                 }
 
                 /* If the result is not already constant (as evaluated in the
-                 * switch above), we can execute the operation as a char op,
-                 * since the right side constant is in a valid range.
-                 */
+                ** switch above), we can execute the operation as a char op,
+                ** since the right side constant is in a valid range.
+                */
                 flags |= (CF_CHAR | CF_FORCECHAR);
                 if (!LeftSigned) {
                     flags |= CF_UNSIGNED;
@@ -2240,8 +2240,8 @@ static void hie_compare (const GenDesc* Ops,    /* List of generators */
                 GetSignedness (Expr->Type) == GetSignedness (Expr2.Type)) {
 
                 /* Both are chars with the same signedness. We can encode the
-                 * operation as a char operation.
-                 */
+                ** operation as a char operation.
+                */
                 flags |= CF_CHAR;
                 if (rconst) {
                     flags |= CF_FORCECHAR;
@@ -2255,9 +2255,9 @@ static void hie_compare (const GenDesc* Ops,    /* List of generators */
             }
 
             /* If the left side is an unsigned and the right is a constant,
-             * we may be able to change the compares to something more
-             * effective.
-             */
+            ** we may be able to change the compares to something more
+            ** effective.
+            */
             if (!LeftSigned && rconst) {
 
                 switch (Tok) {
@@ -2265,8 +2265,8 @@ static void hie_compare (const GenDesc* Ops,    /* List of generators */
                     case TOK_LT:
                         if (Expr2.IVal == 1) {
                             /* An unsigned compare to one means that the value
-                             * must be zero.
-                             */
+                            ** must be zero.
+                            */
                             GenFunc = g_eq;
                             Expr2.IVal = 0;
                         }
@@ -2275,8 +2275,8 @@ static void hie_compare (const GenDesc* Ops,    /* List of generators */
                     case TOK_LE:
                         if (Expr2.IVal == 0) {
                             /* An unsigned compare to zero means that the value
-                             * must be zero.
-                             */
+                            ** must be zero.
+                            */
                             GenFunc = g_eq;
                         }
                         break;
@@ -2284,8 +2284,8 @@ static void hie_compare (const GenDesc* Ops,    /* List of generators */
                     case TOK_GE:
                         if (Expr2.IVal == 1) {
                             /* An unsigned compare to one means that the value
-                             * must not be zero.
-                             */
+                            ** must not be zero.
+                            */
                             GenFunc = g_ne;
                             Expr2.IVal = 0;
                         }
@@ -2294,8 +2294,8 @@ static void hie_compare (const GenDesc* Ops,    /* List of generators */
                     case TOK_GT:
                         if (Expr2.IVal == 0) {
                             /* An unsigned compare to zero means that the value
-                             * must not be zero.
-                             */
+                            ** must not be zero.
+                            */
                             GenFunc = g_ne;
                         }
                         break;
@@ -2342,9 +2342,9 @@ static void hie9 (ExprDesc *Expr)
 
 static void parseadd (ExprDesc* Expr)
 /* Parse an expression with the binary plus operator. Expr contains the
- * unprocessed left hand side of the expression and will contain the
- * result of the expression on return.
- */
+** unprocessed left hand side of the expression and will contain the
+** result of the expression on return.
+*/
 {
     ExprDesc Expr2;
     unsigned flags;             /* Operation flags */
@@ -2392,14 +2392,14 @@ static void parseadd (ExprDesc* Expr)
         } else {
 
             /* lhs is a constant and rhs is not constant. Load rhs into
-             * the primary.
-             */
+            ** the primary.
+            */
             LoadExpr (CF_NONE, &Expr2);
 
             /* Beware: The check above (for lhs) lets not only pass numeric
-             * constants, but also constant addresses (labels), maybe even
-             * with an offset. We have to check for that here.
-             */
+            ** constants, but also constant addresses (labels), maybe even
+            ** with an offset. We have to check for that here.
+            */
 
             /* First, get the rhs type. */
             rhst = Expr2.Type;
@@ -2437,9 +2437,9 @@ static void parseadd (ExprDesc* Expr)
                 Expr->Type = Expr2.Type;
 
                 /* Since we do already have rhs in the primary, if lhs is
-                 * not a numeric constant, and the scale factor is not one
-                 * (no scaling), we must take the long way over the stack.
-                 */
+                ** not a numeric constant, and the scale factor is not one
+                ** (no scaling), we must take the long way over the stack.
+                */
                 if (ED_IsLocAbs (Expr)) {
                     /* Numeric constant, scale lhs */
                     Expr->IVal *= ScaleFactor;
@@ -2543,14 +2543,14 @@ static void parseadd (ExprDesc* Expr)
                 Expr->Type = Expr2.Type;
             } else if (IsClassInt (lhst) && IsClassInt (rhst)) {
                 /* Integer addition. Note: Result is never constant.
-                 * Problem here is that typeadjust does not know if the
-                 * variable is an rvalue or lvalue, so if both operands
-                 * are dereferenced constant numeric addresses, typeadjust
-                 * thinks the operation works on constants. Removing
-                 * CF_CONST here means handling the symptoms, however, the
-                 * whole parser is such a mess that I fear to break anything
-                 * when trying to apply another solution.
-                 */
+                ** Problem here is that typeadjust does not know if the
+                ** variable is an rvalue or lvalue, so if both operands
+                ** are dereferenced constant numeric addresses, typeadjust
+                ** thinks the operation works on constants. Removing
+                ** CF_CONST here means handling the symptoms, however, the
+                ** whole parser is such a mess that I fear to break anything
+                ** when trying to apply another solution.
+                */
                 flags = typeadjust (Expr, &Expr2, 0) & ~CF_CONST;
             } else {
                 /* OOPS */
@@ -2576,9 +2576,9 @@ static void parseadd (ExprDesc* Expr)
 
 static void parsesub (ExprDesc* Expr)
 /* Parse an expression with the binary minus operator. Expr contains the
- * unprocessed left hand side of the expression and will contain the
- * result of the expression on return.
- */
+** unprocessed left hand side of the expression and will contain the
+** result of the expression on return.
+*/
 {
     ExprDesc Expr2;
     unsigned flags;             /* Operation flags */
@@ -2647,8 +2647,8 @@ static void parsesub (ExprDesc* Expr)
         } else {
 
             /* Left hand side is not constant, right hand side is.
-             * Remove pushed value from stack.
-             */
+            ** Remove pushed value from stack.
+            */
             RemoveCode (&Mark2);
 
             if (IsClassPtr (lhst) && IsClassInt (rhst)) {
@@ -2715,9 +2715,9 @@ static void parsesub (ExprDesc* Expr)
             Expr->Type = type_int;
         } else if (IsClassInt (lhst) && IsClassInt (rhst)) {
             /* Integer subtraction. If the left hand side descriptor says that
-             * the lhs is const, we have to remove this mark, since this is no
-             * longer true, lhs is on stack instead.
-             */
+            ** the lhs is const, we have to remove this mark, since this is no
+            ** longer true, lhs is on stack instead.
+            */
             if (ED_IsLocAbs (Expr)) {
                 ED_MakeRValExpr (Expr);
             }
@@ -2832,8 +2832,8 @@ static void hie2 (ExprDesc* Expr)
 
 static void hieAndPP (ExprDesc* Expr)
 /* Process "exp && exp" in preprocessor mode (that is, when the parser is
- * called recursively from the preprocessor.
- */
+** called recursively from the preprocessor.
+*/
 {
     ExprDesc Expr2;
 
@@ -2855,8 +2855,8 @@ static void hieAndPP (ExprDesc* Expr)
 
 static void hieOrPP (ExprDesc *Expr)
 /* Process "exp || exp" in preprocessor mode (that is, when the parser is
- * called recursively from the preprocessor.
- */
+** called recursively from the preprocessor.
+*/
 {
     ExprDesc Expr2;
 
@@ -2962,8 +2962,8 @@ static void hieOr (ExprDesc *Expr)
         LoadExpr (CF_FORCECHAR, Expr);
 
         /* For each expression jump to TrueLab if true. Beware: If we
-         * had && operators, the jump is already in place!
-         */
+        ** had && operators, the jump is already in place!
+        */
         if (!BoolOp) {
             g_truejump (CF_NONE, TrueLab);
         }
@@ -3040,8 +3040,8 @@ static void hieQuest (ExprDesc* Expr)
         g_falsejump (CF_NONE, FalseLab);
 
         /* Parse second expression. Remember for later if it is a NULL pointer
-         * expression, then load it into the primary.
-         */
+        ** expression, then load it into the primary.
+        */
         ExprWithCheck (hie1, &Expr2);
         Expr2IsNULL = ED_IsNullPtr (&Expr2);
         if (!IsTypeVoid (Expr2.Type)) {
@@ -3063,8 +3063,8 @@ static void hieQuest (ExprDesc* Expr)
         g_defcodelabel (FalseLab);
 
         /* Parse third expression. Remember for later if it is a NULL pointer
-         * expression, then load it into the primary.
-         */
+        ** expression, then load it into the primary.
+        */
         ExprWithCheck (hie1, &Expr3);
         Expr3IsNULL = ED_IsNullPtr (&Expr3);
         if (!IsTypeVoid (Expr3.Type)) {
@@ -3075,18 +3075,18 @@ static void hieQuest (ExprDesc* Expr)
         }
 
         /* Check if any conversions are needed, if so, do them.
-         * Conversion rules for ?: expression are:
-         *   - if both expressions are int expressions, default promotion
-         *     rules for ints apply.
-         *   - if both expressions are pointers of the same type, the
-         *     result of the expression is of this type.
-         *   - if one of the expressions is a pointer and the other is
-         *     a zero constant, the resulting type is that of the pointer
-         *     type.
-         *   - if both expressions are void expressions, the result is of
-         *     type void.
-         *   - all other cases are flagged by an error.
-         */
+        ** Conversion rules for ?: expression are:
+        **   - if both expressions are int expressions, default promotion
+        **     rules for ints apply.
+        **   - if both expressions are pointers of the same type, the
+        **     result of the expression is of this type.
+        **   - if one of the expressions is a pointer and the other is
+        **     a zero constant, the resulting type is that of the pointer
+        **     type.
+        **   - if both expressions are void expressions, the result is of
+        **     type void.
+        **   - all other cases are flagged by an error.
+        */
         if (IsClassInt (Expr2.Type) && IsClassInt (Expr3.Type)) {
 
             CodeMark    CvtCodeStart;
@@ -3100,8 +3100,8 @@ static void hieQuest (ExprDesc* Expr)
             TypeConversion (&Expr3, ResultType);
 
             /* Emit conversion code for the second expression, but remember
-             * where it starts end ends.
-             */
+            ** where it starts end ends.
+            */
             GetCodePos (&CvtCodeStart);
             TypeConversion (&Expr2, ResultType);
             GetCodePos (&CvtCodeEnd);
@@ -3166,8 +3166,8 @@ static void opeq (const GenDesc* Gen, ExprDesc* Expr, const char* Op)
     if (!IsClassInt (Expr->Type) && !IsTypePtr (Expr->Type)) {
         Error ("Invalid left operand type");
         /* Continue. Wrong code will be generated, but the compiler won't
-         * break, so this is the best error recovery.
-         */
+        ** break, so this is the best error recovery.
+        */
     }
 
     /* Skip the operator token */
@@ -3194,15 +3194,15 @@ static void opeq (const GenDesc* Gen, ExprDesc* Expr, const char* Op)
     if (!IsClassInt (Expr2.Type)) {
         Error ("Invalid right operand for binary operator `%s'", Op);
         /* Continue. Wrong code will be generated, but the compiler won't
-         * break, so this is the best error recovery.
-         */
+        ** break, so this is the best error recovery.
+        */
     }
 
     /* Check for a constant expression */
     if (ED_IsConstAbs (&Expr2) && ED_CodeRangeIsEmpty (&Expr2)) {
         /* The resulting value is a constant. If the generator has the NOPUSH
-         * flag set, don't push the lhs.
-         */
+        ** flag set, don't push the lhs.
+        */
         if (Gen->Flags & GEN_NOPUSH) {
             RemoveCode (&Mark);
         }
@@ -3212,8 +3212,8 @@ static void opeq (const GenDesc* Gen, ExprDesc* Expr, const char* Op)
         }
 
         /* If the lhs is character sized, the operation may be later done
-         * with characters.
-         */
+        ** with characters.
+        */
         if (CheckedSizeOf (Expr->Type) == SIZEOF_CHAR) {
             flags |= CF_FORCECHAR;
         }
@@ -3244,8 +3244,8 @@ static void opeq (const GenDesc* Gen, ExprDesc* Expr, const char* Op)
         }
 
         /* If the lhs is character sized, the operation may be later done
-         * with characters.
-         */
+        ** with characters.
+        */
         if (CheckedSizeOf (Expr->Type) == SIZEOF_CHAR) {
             flags |= CF_FORCECHAR;
         }
@@ -3290,8 +3290,8 @@ static void addsubeq (const GenDesc* Gen, ExprDesc *Expr, const char* Op)
     if (!IsClassInt (Expr->Type) && !IsTypePtr (Expr->Type)) {
         Error ("Invalid left operand type");
         /* Continue. Wrong code will be generated, but the compiler won't
-         * break, so this is the best error recovery.
-         */
+        ** break, so this is the best error recovery.
+        */
     }
 
     /* Skip the operator */
@@ -3305,14 +3305,14 @@ static void addsubeq (const GenDesc* Gen, ExprDesc *Expr, const char* Op)
     rflags = 0;
 
     /* Evaluate the rhs. We expect an integer here, since float is not
-     * supported
-     */
+    ** supported
+    */
     hie1 (&Expr2);
     if (!IsClassInt (Expr2.Type)) {
         Error ("Invalid right operand for binary operator `%s'", Op);
         /* Continue. Wrong code will be generated, but the compiler won't
-         * break, so this is the best error recovery.
-         */
+        ** break, so this is the best error recovery.
+        */
     }
     if (ED_IsConstAbs (&Expr2)) {
         /* The resulting value is a constant. Scale it. */
@@ -3467,10 +3467,10 @@ void hie0 (ExprDesc *Expr)
 
 int evalexpr (unsigned Flags, void (*Func) (ExprDesc*), ExprDesc* Expr)
 /* Will evaluate an expression via the given function. If the result is a
- * constant, 0 is returned and the value is put in the Expr struct. If the
- * result is not constant, LoadExpr is called to bring the value into the
- * primary register and 1 is returned.
- */
+** constant, 0 is returned and the value is put in the Expr struct. If the
+** result is not constant, LoadExpr is called to bring the value into the
+** primary register and 1 is returned.
+*/
 {
     /* Evaluate */
     ExprWithCheck (Func, Expr);
@@ -3499,10 +3499,10 @@ void Expression0 (ExprDesc* Expr)
 
 void ConstExpr (void (*Func) (ExprDesc*), ExprDesc* Expr)
 /* Will evaluate an expression via the given function. If the result is not
- * a constant of some sort, a diagnostic will be printed, and the value is
- * replaced by a constant one to make sure there are no internal errors that
- * result from this input error.
- */
+** a constant of some sort, a diagnostic will be printed, and the value is
+** replaced by a constant one to make sure there are no internal errors that
+** result from this input error.
+*/
 {
     ExprWithCheck (Func, Expr);
     if (!ED_IsConst (Expr)) {
@@ -3516,10 +3516,10 @@ void ConstExpr (void (*Func) (ExprDesc*), ExprDesc* Expr)
 
 void BoolExpr (void (*Func) (ExprDesc*), ExprDesc* Expr)
 /* Will evaluate an expression via the given function. If the result is not
- * something that may be evaluated in a boolean context, a diagnostic will be
- * printed, and the value is replaced by a constant one to make sure there
- * are no internal errors that result from this input error.
- */
+** something that may be evaluated in a boolean context, a diagnostic will be
+** printed, and the value is replaced by a constant one to make sure there
+** are no internal errors that result from this input error.
+*/
 {
     ExprWithCheck (Func, Expr);
     if (!ED_IsBool (Expr)) {
@@ -3533,10 +3533,10 @@ void BoolExpr (void (*Func) (ExprDesc*), ExprDesc* Expr)
 
 void ConstAbsIntExpr (void (*Func) (ExprDesc*), ExprDesc* Expr)
 /* Will evaluate an expression via the given function. If the result is not
- * a constant numeric integer value, a diagnostic will be printed, and the
- * value is replaced by a constant one to make sure there are no internal
- * errors that result from this input error.
- */
+** a constant numeric integer value, a diagnostic will be printed, and the
+** value is replaced by a constant one to make sure there are no internal
+** errors that result from this input error.
+*/
 {
     ExprWithCheck (Func, Expr);
     if (!ED_IsConstAbsInt (Expr)) {
index 193fe39eb3182ea6233474ed251c6ece53d34f77..a6c183cbd9e4958819d9d89fb1c3f56804e3c76b 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * expr.h
- *
- * Ullrich von Bassewitz, 21.06.1998
- */
+** expr.h
+**
+** Ullrich von Bassewitz, 21.06.1998
+*/
 
 
 
@@ -28,52 +28,52 @@ void ExprWithCheck (void (*Func) (ExprDesc*), ExprDesc* Expr);
 
 void MarkedExprWithCheck (void (*Func) (ExprDesc*), ExprDesc* Expr);
 /* Call an expression function with checks and record start and end of the
- * generated code.
- */
+** generated code.
+*/
 
 void PushAddr (const ExprDesc* Expr);
 /* If the expression contains an address that was somehow evaluated,
- * push this address on the stack. This is a helper function for all
- * sorts of implicit or explicit assignment functions where the lvalue
- * must be saved if it's not constant, before evaluating the rhs.
- */
+** push this address on the stack. This is a helper function for all
+** sorts of implicit or explicit assignment functions where the lvalue
+** must be saved if it's not constant, before evaluating the rhs.
+*/
 
 void Store (ExprDesc* Expr, const Type* StoreType);
 /* Store the primary register into the location denoted by lval. If StoreType
- * is given, use this type when storing instead of lval->Type. If StoreType
- * is NULL, use lval->Type instead.
- */
+** is given, use this type when storing instead of lval->Type. If StoreType
+** is NULL, use lval->Type instead.
+*/
 
 int evalexpr (unsigned flags, void (*Func) (ExprDesc*), ExprDesc* Expr);
 /* Will evaluate an expression via the given function. If the result is a
- * constant, 0 is returned and the value is put in the Expr struct. If the
- * result is not constant, LoadExpr is called to bring the value into the
- * primary register and 1 is returned.
- */
+** constant, 0 is returned and the value is put in the Expr struct. If the
+** result is not constant, LoadExpr is called to bring the value into the
+** primary register and 1 is returned.
+*/
 
 void Expression0 (ExprDesc* Expr);
 /* Evaluate an expression via hie0 and put the result into the primary register */
 
 void ConstExpr (void (*Func) (ExprDesc*), ExprDesc* Expr);
 /* Will evaluate an expression via the given function. If the result is not
- * a constant of some sort, a diagnostic will be printed, and the value is
- * replaced by a constant one to make sure there are no internal errors that
- * result from this input error.
- */
+** a constant of some sort, a diagnostic will be printed, and the value is
+** replaced by a constant one to make sure there are no internal errors that
+** result from this input error.
+*/
 
 void BoolExpr (void (*Func) (ExprDesc*), ExprDesc* Expr);
 /* Will evaluate an expression via the given function. If the result is not
- * something that may be evaluated in a boolean context, a diagnostic will be
- * printed, and the value is replaced by a constant one to make sure there
- * are no internal errors that result from this input error.
- */
+** something that may be evaluated in a boolean context, a diagnostic will be
+** printed, and the value is replaced by a constant one to make sure there
+** are no internal errors that result from this input error.
+*/
 
 void ConstAbsIntExpr (void (*Func) (ExprDesc*), ExprDesc* Expr);
 /* Will evaluate an expression via the given function. If the result is not
- * a constant numeric integer value, a diagnostic will be printed, and the
- * value is replaced by a constant one to make sure there are no internal
- * errors that result from this input error.
- */
+** a constant numeric integer value, a diagnostic will be printed, and the
+** value is replaced by a constant one to make sure there are no internal
+** errors that result from this input error.
+*/
 
 void hie10 (ExprDesc* lval);
 /* Handle ++, --, !, unary - etc. */
index a5787d96745dc05c68ead8eb27fc5dcd85969175..405c277a0a3404d7e09f0d8d261042048d886a20 100644 (file)
@@ -104,9 +104,9 @@ int ED_CodeRangeIsEmpty (const ExprDesc* Expr)
 
 const char* ED_GetLabelName (const ExprDesc* Expr, long Offs)
 /* Return the assembler label name of the given expression. Beware: This
- * function may use a static buffer, so the name may get "lost" on the second
- * call to the function.
- */
+** function may use a static buffer, so the name may get "lost" on the second
+** call to the function.
+*/
 {
     static StrBuf Buf = STATIC_STRBUF_INITIALIZER;
 
@@ -157,8 +157,8 @@ const char* ED_GetLabelName (const ExprDesc* Expr, long Offs)
 
 int ED_GetStackOffs (const ExprDesc* Expr, int Offs)
 /* Get the stack offset of an address on the stack in Expr taking into account
- * an additional offset in Offs.
- */
+** an additional offset in Offs.
+*/
 {
     PRECONDITION (ED_IsLocStack (Expr));
     Offs += ((int) Expr->IVal) - StackPtr;
@@ -198,8 +198,8 @@ ExprDesc* ED_MakeConstAbsInt (ExprDesc* Expr, long Value)
 
 ExprDesc* ED_MakeRValExpr (ExprDesc* Expr)
 /* Convert Expr into a rvalue which is in the primary register without an
- * offset.
- */
+** offset.
+*/
 {
     Expr->Sym   = 0;
     Expr->Flags &= ~(E_MASK_LOC | E_MASK_RTYPE | E_BITFIELD | E_NEED_TEST | E_CC_SET);
@@ -214,8 +214,8 @@ ExprDesc* ED_MakeRValExpr (ExprDesc* Expr)
 
 ExprDesc* ED_MakeLValExpr (ExprDesc* Expr)
 /* Convert Expr into a lvalue which is in the primary register without an
- * offset.
- */
+** offset.
+*/
 {
     Expr->Sym   = 0;
     Expr->Flags &= ~(E_MASK_LOC | E_MASK_RTYPE | E_BITFIELD | E_NEED_TEST | E_CC_SET);
@@ -230,9 +230,9 @@ ExprDesc* ED_MakeLValExpr (ExprDesc* Expr)
 
 int ED_IsConst (const ExprDesc* Expr)
 /* Return true if the expression denotes a constant of some sort. This can be a
- * numeric constant, the address of a global variable (maybe with offset) or
- * similar.
- */
+** numeric constant, the address of a global variable (maybe with offset) or
+** similar.
+*/
 {
     return ED_IsRVal (Expr) && (Expr->Flags & E_LOC_CONST) != 0;
 }
@@ -261,8 +261,8 @@ int ED_IsNullPtr (const ExprDesc* Expr)
 
 int ED_IsBool (const ExprDesc* Expr)
 /* Return true of the expression can be treated as a boolean, that is, it can
- * be an operand to a compare operation.
- */
+** be an operand to a compare operation.
+*/
 {
     /* Either ints, floats, or pointers can be used in a boolean context */
     return IsClassInt (Expr->Type)   ||
index 021f9fcc2c7fe72281c2b31b817ff9c61e97b461..99a17313e169dfd44ae19358f54cbcb5200596e1 100644 (file)
@@ -315,14 +315,14 @@ int ED_CodeRangeIsEmpty (const ExprDesc* Expr);
 
 const char* ED_GetLabelName (const ExprDesc* Expr, long Offs);
 /* Return the assembler label name of the given expression. Beware: This
- * function may use a static buffer, so the name may get "lost" on the second
- * call to the function.
- */
+** function may use a static buffer, so the name may get "lost" on the second
+** call to the function.
+*/
 
 int ED_GetStackOffs (const ExprDesc* Expr, int Offs);
 /* Get the stack offset of an address on the stack in Expr taking into account
- * an additional offset in Offs.
- */
+** an additional offset in Offs.
+*/
 
 ExprDesc* ED_MakeConstAbs (ExprDesc* Expr, long Value, Type* Type);
 /* Make Expr an absolute const with the given value and type. */
@@ -332,25 +332,25 @@ ExprDesc* ED_MakeConstAbsInt (ExprDesc* Expr, long Value);
 
 ExprDesc* ED_MakeRValExpr (ExprDesc* Expr);
 /* Convert Expr into a rvalue which is in the primary register without an
- * offset.
- */
+** offset.
+*/
 
 ExprDesc* ED_MakeLValExpr (ExprDesc* Expr);
 /* Convert Expr into a lvalue which is in the primary register without an
- * offset.
- */
+** offset.
+*/
 
 int ED_IsConst (const ExprDesc* Expr);
 /* Return true if the expression denotes a constant of some sort. This can be a
- * numeric constant, the address of a global variable (maybe with offset) or
- * similar.
- */
+** numeric constant, the address of a global variable (maybe with offset) or
+** similar.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE int ED_IsConstAbs (const ExprDesc* Expr)
 /* Return true if the expression denotes a constant absolute value. This can be
- * a numeric constant, cast to any type.
- */
+** a numeric constant, cast to any type.
+*/
 {
     return (Expr->Flags & (E_MASK_LOC|E_MASK_RTYPE)) == (E_LOC_ABS|E_RTYPE_RVAL);
 }
@@ -367,8 +367,8 @@ int ED_IsNullPtr (const ExprDesc* Expr);
 
 int ED_IsBool (const ExprDesc* Expr);
 /* Return true of the expression can be treated as a boolean, that is, it can
- * be an operand to a compare operation.
- */
+** be an operand to a compare operation.
+*/
 
 void PrintExprDesc (FILE* F, ExprDesc* Expr);
 /* Print an ExprDesc */
index 97c421951f57183b7ff684bc7530dcf72af16802..d9f1eeac320455234147aec92e9c75f0c375741e 100644 (file)
@@ -228,8 +228,8 @@ int F_GetTopLevelSP (const Function* F)
 
 int F_ReserveLocalSpace (Function* F, unsigned Size)
 /* Reserve (but don't allocate) the given local space and return the stack
- * offset.
- */
+** offset.
+*/
 {
     F->Reserved += Size;
     return StackPtr - F->Reserved;
@@ -239,8 +239,8 @@ int F_ReserveLocalSpace (Function* F, unsigned Size)
 
 int F_GetStackPtr (const Function* F)
 /* Return the current stack pointer including reserved (but not allocated)
- * space on the stack.
- */
+** space on the stack.
+*/
 {
     return StackPtr - F->Reserved;
 }
@@ -249,8 +249,8 @@ int F_GetStackPtr (const Function* F)
 
 void F_AllocLocalSpace (Function* F)
 /* Allocate any local space previously reserved. The function will do
- * nothing if there is no reserved local space.
- */
+** nothing if there is no reserved local space.
+*/
 {
     if (F->Reserved > 0) {
 
@@ -269,9 +269,9 @@ void F_AllocLocalSpace (Function* F)
 
 int F_AllocRegVar (Function* F, const Type* Type)
 /* Allocate a register variable for the given variable type. If the allocation
- * was successful, return the offset of the register variable in the register
- * bank (zero page storage). If there is no register space left, return -1.
- */
+** was successful, return the offset of the register variable in the register
+** bank (zero page storage). If there is no register space left, return -1.
+*/
 {
     /* Allow register variables only on top level and if enabled */
     if (IS_Get (&EnableRegVars) && GetLexicalLevel () == LEX_LEVEL_FUNCTION) {
@@ -282,9 +282,9 @@ int F_AllocRegVar (Function* F, const Type* Type)
         /* Do we have space left? */
         if (F->RegOffs >= Size) {
             /* Space left. We allocate the variables from high to low addresses,
-             * so the adressing is compatible with the saved values on stack.
-             * This allows shorter code when saving/restoring the variables.
-             */
+            ** so the addressing is compatible with the saved values on stack.
+            ** This allows shorter code when saving/restoring the variables.
+            */
             F->RegOffs -= Size;
             return F->RegOffs;
         }
@@ -408,16 +408,16 @@ void NewFunc (SymEntry* Func)
     ReenterFunctionLevel (D);
 
     /* Check if the function header contains unnamed parameters. These are
-     * only allowed in cc65 mode.
-     */
+    ** only allowed in cc65 mode.
+    */
     if ((D->Flags & FD_UNNAMED_PARAMS) != 0 && (IS_Get (&Standard) != STD_CC65)) {
         Error ("Parameter name omitted");
     }
 
     /* Declare two special functions symbols: __fixargs__ and __argsize__.
-     * The latter is different depending on the type of the function (variadic
-     * or not).
-     */
+    ** The latter is different depending on the type of the function (variadic
+    ** or not).
+    */
     AddConstSym ("__fixargs__", type_uint, SC_DEF | SC_CONST, D->ParamSize);
     if (D->Flags & FD_VARIADIC) {
         /* Variadic function. The variable must be const. */
@@ -443,28 +443,28 @@ void NewFunc (SymEntry* Func)
         }
 
         /* If cc65 extensions aren't enabled, don't allow a main function that
-         * doesn't return an int.
-         */
+        ** doesn't return an int.
+        */
         if (IS_Get (&Standard) != STD_CC65 && CurrentFunc->ReturnType[0].C != T_INT) {
             Error ("`main' must always return an int");
         }
 
         /* Add a forced import of a symbol that is contained in the startup
-         * code. This will force the startup code to be linked in.
-         */
+        ** code. This will force the startup code to be linked in.
+        */
         g_importstartup ();
 
         /* If main() takes parameters, generate a forced import to a function
-         * that will setup these parameters. This way, programs that do not
-         * need the additional code will not get it.
-         */
+        ** that will setup these parameters. This way, programs that do not
+        ** need the additional code will not get it.
+        */
         if (D->ParamCount > 0 || (D->Flags & FD_VARIADIC) != 0) {
             g_importmainargs ();
         }
 
         /* Determine if this is a main function in a C99 environment that
-         * returns an int.
-         */
+        ** returns an int.
+        */
         if (IsTypeInt (F_GetReturnType (CurrentFunc)) &&
             IS_Get (&Standard) == STD_C99) {
             C99MainFunc = 1;
@@ -507,9 +507,9 @@ void NewFunc (SymEntry* Func)
     StackPtr = 0;
 
     /* Walk through the parameter list and allocate register variable space
-     * for parameters declared as register. Generate code to swap the contents
-     * of the register bank with the save area on the stack.
-     */
+    ** for parameters declared as register. Generate code to swap the contents
+    ** of the register bank with the save area on the stack.
+    */
     Param = D->SymTab->SymHead;
     while (Param && (Param->Flags & SC_PARAM) != 0) {
 
@@ -543,8 +543,8 @@ void NewFunc (SymEntry* Func)
     DeclareLocals ();
 
     /* Remember the current stack pointer. All variables allocated elsewhere
-     * must be dropped when doing a return from an inner block.
-     */
+    ** must be dropped when doing a return from an inner block.
+    */
     CurrentFunc->TopLevelSP = StackPtr;
 
     /* Now process statements in this block */
@@ -553,18 +553,18 @@ void NewFunc (SymEntry* Func)
     }
 
     /* If this is not a void function, and not the main function in a C99
-     * environment returning int, output a warning if we didn't see a return
-     * statement.
-     */
+    ** environment returning int, output a warning if we didn't see a return
+    ** statement.
+    */
     if (!F_HasVoidReturn (CurrentFunc) && !F_HasReturn (CurrentFunc) && !C99MainFunc) {
         Warning ("Control reaches end of non-void function");
     }
 
     /* If this is the main function in a C99 environment returning an int, let
-     * it always return zero. Note: Actual return statements jump to the return
-     * label defined below.
-     * The code is removed by the optimizer if unused.
-     */
+    ** it always return zero. Note: Actual return statements jump to the return
+    ** label defined below.
+    ** The code is removed by the optimizer if unused.
+    */
     if (C99MainFunc) {
         g_getimmed (CF_INT | CF_CONST, 0, 0);
     }
index c5174c78b5d08e1860ea23a3a46b027f414665a7..627457277e0040183a00ea2466115627aaca3a2d 100644 (file)
@@ -99,24 +99,24 @@ int F_GetTopLevelSP (const Function* F);
 
 int F_ReserveLocalSpace (Function* F, unsigned Size);
 /* Reserve (but don't allocate) the given local space and return the stack
- * offset.
- */
+** offset.
+*/
 
 int F_GetStackPtr (const Function* F);
 /* Return the current stack pointer including reserved (but not allocated)
- * space on the stack.
- */
+** space on the stack.
+*/
 
 void F_AllocLocalSpace (Function* F);
 /* Allocate any local space previously reserved. The function will do
- * nothing if there is no reserved local space.
- */
+** nothing if there is no reserved local space.
+*/
 
 int F_AllocRegVar (Function* F, const Type* Type);
 /* Allocate a register variable for the given variable type. If the allocation
- * was successful, return the offset of the register variable in the register
- * bank (zero page storage). If there is no register space left, return -1.
- */
+** was successful, return the offset of the register variable in the register
+** bank (zero page storage). If there is no register space left, return -1.
+*/
 
 void NewFunc (struct SymEntry* Func);
 /* Parse argument declarations and function body. */
index 9830e1863fa3a8df7d9db36581fb77037c6e3ec4..37e43da14e603d39350ac614e96aa858964d57a3 100644 (file)
@@ -50,8 +50,8 @@
 
 unsigned HexVal (int C)
 /* Convert a hex digit into a value. The function will emit an error for
- * invalid hex digits.
- */
+** invalid hex digits.
+*/
 {
     if (!IsXDigit (C)) {
         Error ("Invalid hexadecimal digit: `%c'", C);
index b0e65be4636e23d3b60fab87091e6ff904286d82..0361ee0cfa79634fc540ca517ee83bd6f425ccbd 100644 (file)
@@ -46,8 +46,8 @@
 
 unsigned HexVal (int C);
 /* Convert a hex digit into a value. The function will emit an error for 
- * invalid hex digits.
- */
+** invalid hex digits.
+*/
 
 
 
index f6554c48397c79e660d873ea7c35dd9a3ec7c997..005e0c668bd0120e849a8794493ccc8d6a97daab 100644 (file)
@@ -144,8 +144,8 @@ static IFile* NewIFile (const char* Name, InputType Type)
 
 static AFile* NewAFile (IFile* IF, FILE* F)
 /* Create a new AFile, push it onto the stack, add the path of the file to
- * the path search list, and finally return a pointer to the new AFile struct.
- */
+** the path search list, and finally return a pointer to the new AFile struct.
+*/
 {
     StrBuf Path = AUTO_STRBUF_INITIALIZER;
 
@@ -158,19 +158,19 @@ static AFile* NewAFile (IFile* IF, FILE* F)
     AF->Input = IF;
 
     /* Increment the usage counter of the corresponding IFile. If this
-     * is the first use, set the file data and output debug info if
-     * requested.
-     */
+    ** is the first use, set the file data and output debug info if
+    ** requested.
+    */
     if (IF->Usage++ == 0) {
 
         /* Get file size and modification time. There a race condition here,
-         * since we cannot use fileno() (non standard identifier in standard
-         * header file), and therefore not fstat. When using stat with the
-         * file name, there's a risk that the file was deleted and recreated
-         * while it was open. Since mtime and size are only used to check
-         * if a file has changed in the debugger, we will ignore this problem
-         * here.
-         */
+        ** since we cannot use fileno() (non standard identifier in standard
+        ** header file), and therefore not fstat. When using stat with the
+        ** file name, there's a risk that the file was deleted and recreated
+        ** while it was open. Since mtime and size are only used to check
+        ** if a file has changed in the debugger, we will ignore this problem
+        ** here.
+        */
         struct stat Buf;
         if (FileStat (IF->Name, &Buf) != 0) {
             /* Error */
@@ -187,9 +187,9 @@ static AFile* NewAFile (IFile* IF, FILE* F)
     CollAppend (&AFiles, AF);
 
     /* Get the path of this file and add it as an extra search path.
-     * To avoid file search overhead, we will add one path only once.
-     * This is checked by the PushSearchPath function.
-     */
+    ** To avoid file search overhead, we will add one path only once.
+    ** This is checked by the PushSearchPath function.
+    */
     SB_CopyBuf (&Path, IF->Name, FindName (IF->Name) - IF->Name);
     SB_Terminate (&Path);
     AF->SearchPath = PushSearchPath (UsrIncSearchPath, SB_GetConstBuf (&Path));
@@ -217,9 +217,9 @@ static void FreeAFile (AFile* AF)
 
 static IFile* FindFile (const char* Name)
 /* Find the file with the given name in the list of all files. Since the list
- * is not large (usually less than 10), I don't care about using hashes or
- * similar things and do a linear search.
- */
+** is not large (usually less than 10), I don't care about using hashes or
+** similar things and do a linear search.
+*/
 {
     unsigned I;
     for (I = 0; I < CollCount (&IFiles); ++I) {
@@ -261,8 +261,8 @@ void OpenMainFile (const char* Name)
     Line = NewStrBuf ();
 
     /* Update the line infos, so we have a valid line info even at start of
-     * the main file before the first line is read.
-     */
+    ** the main file before the first line is read.
+    */
     UpdateLineInfo (MainFile->Input, MainFile->Line, Line);
 }
 
@@ -289,8 +289,8 @@ void OpenIncludeFile (const char* Name, InputType IT)
     }
 
     /* Search the list of all input files for this file. If we don't find
-     * it, create a new IFile object.
-     */
+    ** it, create a new IFile object.
+    */
     IF = FindFile (N);
     if (IF == 0) {
         IF = NewIFile (N, IT);
@@ -318,8 +318,8 @@ void OpenIncludeFile (const char* Name, InputType IT)
 
 static void CloseIncludeFile (void)
 /* Close an include file and switch to the higher level file. Set Input to
- * NULL if this was the main file.
- */
+** NULL if this was the main file.
+*/
 {
     AFile* Input;
 
@@ -351,9 +351,9 @@ static void CloseIncludeFile (void)
 
 static void GetInputChar (void)
 /* Read the next character from the input stream and make CurC and NextC
- * valid. If end of line is reached, both are set to NUL, no more lines
- * are read by this function.
- */
+** valid. If end of line is reached, both are set to NUL, no more lines
+** are read by this function.
+*/
 {
     /* Drop all pushed fragments that don't have data left */
     while (SB_GetIndex (Line) >= SB_GetLen (Line)) {
@@ -389,9 +389,9 @@ static void GetInputChar (void)
 
 void NextChar (void)
 /* Skip the current input character and read the next one from the input
- * stream. CurC and NextC are valid after the call. If end of line is
- * reached, both are set to NUL, no more lines are read by this function.
- */
+** stream. CurC and NextC are valid after the call. If end of line is
+** reached, both are set to NUL, no more lines are read by this function.
+*/
 {
     /* Skip the last character read */
     SB_Skip (Line);
@@ -423,8 +423,8 @@ void ClearLine (void)
 
 StrBuf* InitLine (StrBuf* Buf)
 /* Initialize Line from Buf and read CurC and NextC from the new input line.
- * The function returns the old input line.
- */
+** The function returns the old input line.
+*/
 {
     StrBuf* OldLine = Line;
     Line  = Buf;
@@ -468,8 +468,8 @@ int NextLine (void)
             CloseIncludeFile ();
 
             /* If there is no file open, bail out, otherwise get the
-             * previous input file and start over.
-             */
+            ** previous input file and start over.
+            */
             if (CollCount (&AFiles) == 0) {
                 return 0;
             }
@@ -484,16 +484,16 @@ int NextLine (void)
             ++Input->Line;
 
             /* If the \n is preceeded by a \r, remove the \r, so we can read
-             * DOS/Windows files under *nix.
-             */
+            ** DOS/Windows files under *nix.
+            */
             if (SB_LookAtLast (Line) == '\r') {
                 SB_Drop (Line, 1);
             }
 
             /* If we don't have a line continuation character at the end,
-             * we're done with this line. Otherwise replace the character
-             * by a newline and continue reading.
-             */
+            ** we're done with this line. Otherwise replace the character
+            ** by a newline and continue reading.
+            */
             if (SB_LookAtLast (Line) == '\\') {
                 Line->Buf[Line->Len-1] = '\n';
             } else {
@@ -613,8 +613,8 @@ static void WriteDep (FILE* F, InputType Types)
 
 static void CreateDepFile (const char* Name, InputType Types)
 /* Create a dependency file with the given name and place dependencies for
- * all files with the given types there.
- */
+** all files with the given types there.
+*/
 {
     /* Open the file */
     FILE* F = fopen (Name, "w");
@@ -623,8 +623,8 @@ static void CreateDepFile (const char* Name, InputType Types)
     }
 
     /* If a dependency target was given, use it, otherwise use the output
-     * file name as target, followed by a tab character.
-     */
+    ** file name as target, followed by a tab character.
+    */
     if (SB_IsEmpty (&DepTarget)) {
         WriteEscaped (F, OutputFilename);
     } else {
index e6fcc618cd6df0ec10dcfaebc5288f67f6b8af31..a643800ba2088aae176dae9c41fadcf641541618 100644 (file)
@@ -52,8 +52,8 @@
 
 
 /* An enum that describes different types of input files. The members are
- * choosen so that it is possible to combine them to bitsets
- */
+** choosen so that it is possible to combine them to bitsets
+*/
 typedef enum {
     IT_MAIN   = 0x01,           /* Main input file */
     IT_SYSINC = 0x02,           /* System include file (using <>) */
@@ -86,17 +86,17 @@ void OpenIncludeFile (const char* Name, InputType IT);
 
 void NextChar (void);
 /* Read the next character from the input stream and make CurC and NextC
- * valid. If end of line is reached, both are set to NUL, no more lines
- * are read by this function.
- */
+** valid. If end of line is reached, both are set to NUL, no more lines
+** are read by this function.
+*/
 
 void ClearLine (void);
 /* Clear the current input line */
 
 StrBuf* InitLine (StrBuf* Buf);
 /* Initialize Line from Buf and read CurC and NextC from the new input line.
- * The function returns the old input line.
- */
+** The function returns the old input line.
+*/
 
 int NextLine (void);
 /* Get a line from the current input. Returns 0 on end of file. */
index 97aee949bab5357ddcd737236f8288b0e38568a6..f5c2e2689cdfbacb51b1beb4dbe679636d396166 100644 (file)
@@ -91,9 +91,9 @@ static LineInfo* NewLineInfo (struct IFile* F, unsigned LineNum, const StrBuf* L
     LI->LineNum   = LineNum;
 
     /* Copy the line, replacing tabs by spaces in the given line since tabs
-     * will give rather arbitrary results when used in the output later, and
-     * if we do it here, we won't need another copy later.
-     */
+    ** will give rather arbitrary results when used in the output later, and
+    ** if we do it here, we won't need another copy later.
+    */
     T = LI->Line;
     while (Len--) {
         if (*S == '\t') {
@@ -134,8 +134,8 @@ LineInfo* UseLineInfo (LineInfo* LI)
 
 void ReleaseLineInfo (LineInfo* LI)
 /* Release a reference to the given line info, free the structure if the
- * reference count drops to zero.
- */
+** reference count drops to zero.
+*/
 {
     CHECK (LI && LI->RefCount > 0);
     if (--LI->RefCount == 0) {
@@ -148,8 +148,8 @@ void ReleaseLineInfo (LineInfo* LI)
 
 LineInfo* GetCurLineInfo (void)
 /* Return a pointer to the current line info. The reference count is NOT
- * increased, use UseLineInfo for that purpose.
- */
+** increased, use UseLineInfo for that purpose.
+*/
 {
     return CurLineInfo;
 }
@@ -165,8 +165,8 @@ void UpdateLineInfo (struct IFile* F, unsigned LineNum, const StrBuf* Line)
     }
 
     /* If we have intermixed assembly switched off, use an empty line instead
-     * of the supplied one to save some memory.
-     */
+    ** of the supplied one to save some memory.
+    */
     if (!AddSource) {
         Line = &EmptyStrBuf;
     }
index 25c4e75561167b760885cda3d3fc36dcaf3c5f74..8dbe06846ff9f2885bf4709a60506b8e1c95b53b 100644 (file)
@@ -61,8 +61,8 @@ struct IFile;
 
 
 /* The text for the actual line is allocated at the end of the structure, so
- * the size of the structure varies.
- */
+** the size of the structure varies.
+*/
 typedef struct LineInfo LineInfo;
 struct LineInfo {
     unsigned        RefCount;             /* Reference counter */
@@ -84,13 +84,13 @@ LineInfo* UseLineInfo (LineInfo* LI);
 
 void ReleaseLineInfo (LineInfo* LI);
 /* Release a reference to the given line info, free the structure if the
- * reference count drops to zero.
- */
+** reference count drops to zero.
+*/
 
 LineInfo* GetCurLineInfo (void);
 /* Return a pointer to the current line info. The reference count is NOT
- * increased, use UseLineInfo for that purpose.
- */
+** increased, use UseLineInfo for that purpose.
+*/
 
 void UpdateLineInfo (struct IFile* F, unsigned LineNum, const StrBuf* Line);
 /* Update the line info - called if a new line is read */
index 171d8b5dd47b46b37814ff2495e6bea1e5a9e2f0..c427310d951515eb88f31028621df2e0ccaed838 100644 (file)
@@ -78,10 +78,10 @@ static LiteralPool*     GlobalPool = 0;
 static LiteralPool*     LP         = 0;
 
 /* Stack that contains the nested literal pools. Since TOS is in LiteralPool
- * and functions aren't nested in C, the maximum depth is 1. I'm using a
- * collection anyway, so the code is prepared for nested functions or
- * whatever.
- */
+** and functions aren't nested in C, the maximum depth is 1. I'm using a
+** collection anyway, so the code is prepared for nested functions or
+** whatever.
+*/
 static Collection       LPStack  = STATIC_COLLECTION_INITIALIZER;
 
 
@@ -286,8 +286,8 @@ void PushLiteralPool (struct SymEntry* Func)
 
 LiteralPool* PopLiteralPool (void)
 /* Pop the last literal pool from TOS and activate it. Return the old
- * literal pool.
- */
+** literal pool.
+*/
 {
     /* Remember the current literal pool */
     LiteralPool* Old = LP;
@@ -313,8 +313,8 @@ static void MoveLiterals (Collection* Source, Collection* Target)
         Literal* L = CollAt (Source, I);
 
         /* If it is referenced and not output, add it to the Target pool,
-         * otherwise free it
-         */
+        ** otherwise free it
+        */
         if (L->RefCount && !L->Output) {
             CollAppend (Target, L);
         } else {
@@ -327,8 +327,8 @@ static void MoveLiterals (Collection* Source, Collection* Target)
 
 void MoveLiteralPool (LiteralPool* LocalPool)
 /* Move all referenced literals in LocalPool to the global literal pool. This
- * function will free LocalPool after moving the used string literals.
- */
+** function will free LocalPool after moving the used string literals.
+*/
 {
     /* Move the literals */
     MoveLiterals (&LocalPool->WritableLiterals, &GlobalPool->WritableLiterals);
@@ -403,10 +403,10 @@ static void OutputReadOnlyLiterals (Collection* Literals)
         TranslateLiteral (L);
 
         /* Check if this literal is part of another one. Since the literals
-         * are sorted by size (larger ones first), it can only be part of a
-         * literal with a smaller index.
-         * Beware: Only check literals that have actually been referenced.
-         */
+        ** are sorted by size (larger ones first), it can only be part of a
+        ** literal with a smaller index.
+        ** Beware: Only check literals that have actually been referenced.
+        */
         C = 0;
         for (J = 0; J < I; ++J) {
 
@@ -474,8 +474,8 @@ Literal* AddLiteral (const char* S)
 
 Literal* AddLiteralBuf (const void* Buf, unsigned Len)
 /* Add a buffer containing a literal string to the literal pool. Return the
- * literal.
- */
+** literal.
+*/
 {
     /* Create a new literal */
     Literal* L = NewLiteral (Buf, Len);
index 9412beac8dba8c4d33d2a43f0bd3c4cb3875677d..6efdfb089ac685a46a8561f1f26021909d96c484 100644 (file)
@@ -105,13 +105,13 @@ void PushLiteralPool (struct SymEntry* Func);
 
 LiteralPool* PopLiteralPool (void);
 /* Pop the last literal pool from TOS and activate it. Return the old
- * literal pool.
- */
+** literal pool.
+*/
 
 void MoveLiteralPool (LiteralPool* LocalPool);
 /* Move all referenced literals in LocalPool to the global literal pool. This
- * function will free LocalPool after moving the used string literals.
- */
+** function will free LocalPool after moving the used string literals.
+*/
 
 void OutputLiteralPool (void);
 /* Output the literal pool */
@@ -121,8 +121,8 @@ Literal* AddLiteral (const char* S);
 
 Literal* AddLiteralBuf (const void* Buf, unsigned Len);
 /* Add a buffer containing a literal string to the literal pool. Return the
- * literal.
- */
+** literal.
+*/
 
 Literal* AddLiteralStr (const StrBuf* S);
 /* Add a literal string to the literal pool. Return the literal. */
index dfc89810871ed567eaa9a90aaae34b6686252cff..fa37c6bbd64281251b58e560df2f7b15cc086593 100644 (file)
@@ -71,8 +71,8 @@ static void LoadConstant (unsigned Flags, ExprDesc* Expr)
 
         case E_LOC_REGISTER:
             /* Register variable. Taking the address is usually not
-             * allowed.
-             */
+            ** allowed.
+            */
             if (IS_Get (&AllowRegVarAddr) == 0) {
                 Error ("Cannot take the address of a register variable");
             }
@@ -96,10 +96,10 @@ void LoadExpr (unsigned Flags, struct ExprDesc* Expr)
     if (ED_IsLVal (Expr)) {
 
         /* Dereferenced lvalue. If this is a bit field its type is unsigned.
-         * But if the field is completely contained in the lower byte, we will
-         * throw away the high byte anyway and may therefore load just the
-         * low byte.
-         */
+        ** But if the field is completely contained in the lower byte, we will
+        ** throw away the high byte anyway and may therefore load just the
+        ** low byte.
+        */
         if (ED_IsBitField (Expr)) {
             Flags |= (Expr->BitOffs + Expr->BitWidth <= CHAR_BITS)? CF_CHAR : CF_INT;
             Flags |= CF_UNSIGNED;
@@ -155,9 +155,9 @@ void LoadExpr (unsigned Flags, struct ExprDesc* Expr)
         }
 
         /* Handle bit fields. The actual type may have been casted or
-         * converted, so be sure to always use unsigned ints for the
-         * operations.
-         */
+        ** converted, so be sure to always use unsigned ints for the
+        ** operations.
+        */
         if (ED_IsBitField (Expr)) {
             unsigned F = CF_INT | CF_UNSIGNED | CF_CONST | (Flags & CF_TEST);
             /* Shift right by the bit offset */
@@ -177,8 +177,8 @@ void LoadExpr (unsigned Flags, struct ExprDesc* Expr)
         if (ED_IsLocExpr (Expr)) {
             if (Expr->IVal != 0) {
                 /* We have an expression in the primary plus a constant
-                 * offset. Adjust the value in the primary accordingly.
-                 */
+                ** offset. Adjust the value in the primary accordingly.
+                */
                 Flags |= TypeOf (Expr->Type);
                 g_inc (Flags | CF_CONST, Expr->IVal);
             }
index 38f8036079737b1ed24a9c60141d5c4a7e1eb2e8..ffadb1bd502f57eb47468fc679d61979a6307758 100644 (file)
@@ -96,8 +96,8 @@ static void AllocStorage (unsigned Label, void (*UseSeg) (), unsigned Size)
 
 static void ParseRegisterDecl (Declaration* Decl, int Reg)
 /* Parse the declaration of a register variable. Reg is the offset of the
- * variable in the register bank.
- */
+** variable in the register bank.
+*/
 {
     SymEntry* Sym;
 
@@ -112,9 +112,9 @@ static void ParseRegisterDecl (Declaration* Decl, int Reg)
     g_save_regvars (Reg, Size);
 
     /* Add the symbol to the symbol table. We do that now, because for register
-     * variables the current stack pointer is implicitly used as location for
-     * the save area.
-     */
+    ** variables the current stack pointer is implicitly used as location for
+    ** the save area.
+    */
     Sym = AddLocalSym (Decl->Ident, Decl->Type, Decl->StorageClass, Reg);
 
     /* Check for an optional initialization */
@@ -129,18 +129,18 @@ static void ParseRegisterDecl (Declaration* Decl, int Reg)
         if (IsCompound) {
 
             /* Switch to read only data and define a label for the
-             * initialization data.
-             */
+            ** initialization data.
+            */
             unsigned InitLabel = AllocLabel (g_userodata);
 
             /* Parse the initialization generating a memory image of the
-             * data in the RODATA segment. The function does return the size
-             * of the initialization data, which may be greater than the
-             * actual size of the type, if the type is a structure with a
-             * flexible array member that has been initialized. Since we must
-             * know the size of the data in advance for register variables,
-             * we cannot allow that here.
-             */
+            ** data in the RODATA segment. The function does return the size
+            ** of the initialization data, which may be greater than the
+            ** actual size of the type, if the type is a structure with a
+            ** flexible array member that has been initialized. Since we must
+            ** know the size of the data in advance for register variables,
+            ** we cannot allow that here.
+            */
             if (ParseInit (Sym->Type) != Size) {
                 Error ("Cannot initialize flexible array members of storage class `register'");
             }
@@ -192,8 +192,8 @@ static void ParseAutoDecl (Declaration* Decl)
     if (IS_Get (&StaticLocals) == 0) {
 
         /* Add the symbol to the symbol table. The stack offset we use here
-         * may get corrected later.
-         */
+        ** may get corrected later.
+        */
         Sym = AddLocalSym (Decl->Ident, Decl->Type,
                            Decl->StorageClass,
                            F_GetStackPtr (CurrentFunc) - (int) Size);
@@ -210,32 +210,32 @@ static void ParseAutoDecl (Declaration* Decl)
             if (IsCompound) {
 
                 /* Switch to read only data and define a label for the
-                 * initialization data.
-                 */
+                ** initialization data.
+                */
                 unsigned InitLabel = AllocLabel (g_userodata);
 
                 /* Parse the initialization generating a memory image of the
-                 * data in the RODATA segment. The function will return the
-                 * actual size of the initialization data, which may be
-                 * greater than the size of the variable if it is a struct
-                 * that contains a flexible array member and we're not in
-                 * ANSI mode.
-                 */
+                ** data in the RODATA segment. The function will return the
+                ** actual size of the initialization data, which may be
+                ** greater than the size of the variable if it is a struct
+                ** that contains a flexible array member and we're not in
+                ** ANSI mode.
+                */
                 Size = ParseInit (Sym->Type);
 
                 /* Now reserve space for the variable on the stack and correct
-                 * the offset in the symbol table entry.
-                 */
+                ** the offset in the symbol table entry.
+                */
                 Sym->V.Offs = F_ReserveLocalSpace (CurrentFunc, Size);
 
                 /* Next, allocate the space on the stack. This means that the
-                 * variable is now located at offset 0 from the current sp.
-                 */
+                ** variable is now located at offset 0 from the current sp.
+                */
                 F_AllocLocalSpace (CurrentFunc);
 
                 /* Generate code to copy the initialization data into the
-                 * variable space
-                 */
+                ** variable space
+                */
                 g_initauto (InitLabel, Size);
 
             } else {
@@ -253,8 +253,8 @@ static void ParseAutoDecl (Declaration* Decl)
                 TypeConversion (&Expr, Sym->Type);
 
                 /* If the value is not const, load it into the primary.
-                 * Otherwise pass the information to the code generator.
-                 */
+                ** Otherwise pass the information to the code generator.
+                */
                 if (ED_IsConstAbsInt (&Expr)) {
                     Flags |= CF_CONST;
                 } else {
@@ -272,8 +272,8 @@ static void ParseAutoDecl (Declaration* Decl)
 
         } else {
             /* Non-initialized local variable. Just keep track of
-             * the space needed.
-             */
+            ** the space needed.
+            */
             F_ReserveLocalSpace (CurrentFunc, Size);
         }
 
@@ -302,13 +302,13 @@ static void ParseAutoDecl (Declaration* Decl)
             if (IsCompound) {
 
                 /* Switch to read only data and define a label for the
-                 * initialization data.
-                 */
+                ** initialization data.
+                */
                 unsigned InitLabel = AllocLabel (g_userodata);
 
                 /* Parse the initialization generating a memory image of the
-                 * data in the RODATA segment.
-                 */
+                ** data in the RODATA segment.
+                */
                 Size = ParseInit (Sym->Type);
 
                 /* Allocate space for the variable */
@@ -371,9 +371,9 @@ static void ParseStaticDecl (Declaration* Decl)
     if (CurTok.Tok == TOK_ASSIGN) {
 
         /* Initialization ahead, switch to data segment and define the label.
-         * For arrays, we need to check the elements of the array for
-         * constness, not the array itself.
-         */
+        ** For arrays, we need to check the elements of the array for
+        ** constness, not the array itself.
+        */
         if (IsQualConst (GetBaseElementType (Sym->Type))) {
             g_userodata ();
         } else {
@@ -427,8 +427,8 @@ static void ParseOneDecl (const DeclSpec* Spec)
     }
 
     /* If we don't have a name, this was flagged as an error earlier.
-     * To avoid problems later, use an anonymous name here.
-     */
+    ** To avoid problems later, use an anonymous name here.
+    */
     if (Decl.Ident[0] == '\0') {
         AnonName (Decl.Ident, "param");
     }
@@ -443,8 +443,8 @@ static void ParseOneDecl (const DeclSpec* Spec)
          (Decl.StorageClass & SC_TYPEMASK) != SC_TYPEDEF) {
 
         /* If we have a register variable, try to allocate a register and
-         * convert the declaration to "auto" if this is not possible.
-         */
+        ** convert the declaration to "auto" if this is not possible.
+        */
         int Reg = 0;    /* Initialize to avoid gcc complains */
         if ((Decl.StorageClass & SC_REGISTER) != 0 &&
             (Reg = F_AllocRegVar (CurrentFunc, Decl.Type)) < 0) {
@@ -493,12 +493,12 @@ void DeclareLocals (void)
     while (1) {
 
         /* Check variable declarations. We need to distinguish between a
-         * default int type and the end of variable declarations. So we
-         * will do the following: If there is no explicit storage class
-         * specifier *and* no explicit type given, *and* no type qualifiers
-         * have been read, it is assumed that we have reached the end of
-         * declarations.
-         */
+        ** default int type and the end of variable declarations. So we
+        ** will do the following: If there is no explicit storage class
+        ** specifier *and* no explicit type given, *and* no type qualifiers
+        ** have been read, it is assumed that we have reached the end of
+        ** declarations.
+        */
         DeclSpec Spec;
         ParseDeclSpec (&Spec, SC_AUTO, T_INT);
         if ((Spec.Flags & DS_DEF_STORAGE) != 0 &&       /* No storage spec */
@@ -539,8 +539,8 @@ void DeclareLocals (void)
     F_AllocLocalSpace (CurrentFunc);
 
     /* In case we've allocated local variables in this block, emit a call to
-     * the stack checking routine if stack checks are enabled.
-     */
+    ** the stack checking routine if stack checks are enabled.
+    */
     if (IS_Get (&CheckStack) && InitialStack != StackPtr) {
         g_cstackcheck ();
     }
index e50c6c9921ece561ca7fac33a72895052550055a..53d08447ce5eaa6b2dd596bbc2c19ccdfaf04063 100644 (file)
@@ -55,9 +55,9 @@ void DeclareLocals (void);
 
 void RestoreRegVars (int HaveResult);
 /* Restore the register variables for the local function if there are any.
- * The parameter tells us if there is a return value in ax, in that case,
- * the accumulator must be saved across the restore.
- */
+** The parameter tells us if there is a return value in ax, in that case,
+** the accumulator must be saved across the restore.
+*/
 
 
 
index 44e20986625029754e117ef206306a05fccd93b9..daf5cd7b83926cdb98f130749dc0ae83575dd3a9 100644 (file)
@@ -66,8 +66,8 @@ static Macro* MacroTab[MACRO_TAB_SIZE];
 
 Macro* NewMacro (const char* Name)
 /* Allocate a macro structure with the given name. The structure is not
- * inserted into the macro table.
- */
+** inserted into the macro table.
+*/
 {
     /* Get the length of the macro name */
     unsigned Len = strlen(Name);
@@ -93,8 +93,8 @@ Macro* NewMacro (const char* Name)
 
 void FreeMacro (Macro* M)
 /* Delete a macro definition. The function will NOT remove the macro from the
- * table, use UndefineMacro for that.
- */
+** table, use UndefineMacro for that.
+*/
 {
     unsigned I;
 
@@ -152,9 +152,9 @@ void InsertMacro (Macro* M)
 
 int UndefineMacro (const char* Name)
 /* Search for the macro with the given name and remove it from the macro
- * table if it exists. Return 1 if a macro was found and deleted, return
- * 0 otherwise.
- */
+** table if it exists. Return 1 if a macro was found and deleted, return
+** 0 otherwise.
+*/
 {
     /* Get the hash value of the macro name */
     unsigned Hash = HashStr (Name) % MACRO_TAB_SIZE;
@@ -217,8 +217,8 @@ Macro* FindMacro (const char* Name)
 
 int FindMacroArg (Macro* M, const char* Arg)
 /* Search for a formal macro argument. If found, return the index of the
- * argument. If the argument was not found, return -1.
- */
+** argument. If the argument was not found, return -1.
+*/
 {
     unsigned I;
     for (I = 0; I < CollCount (&M->FormalArgs); ++I) {
@@ -238,9 +238,9 @@ void AddMacroArg (Macro* M, const char* Arg)
 /* Add a formal macro argument. */
 {
     /* Check if we have a duplicate macro argument, but add it anyway.
-     * Beware: Don't use FindMacroArg here, since the actual argument array
-     * may not be initialized.
-     */
+    ** Beware: Don't use FindMacroArg here, since the actual argument array
+    ** may not be initialized.
+    */
     unsigned I;
     for (I = 0; I < CollCount (&M->FormalArgs); ++I) {
         if (strcmp (CollAtUnchecked (&M->FormalArgs, I), Arg) == 0) {
index 746fc6f89269e4e88e93a4c173d6d4a66756984c..c3ff20ceb4e8466d3096f12aaf5f173e16179a33 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2000-2005, Ullrich von Bassewitz                                      */
-/*                Römerstraße 52                                             */
+/*                Roemerstrasse 52                                           */
 /*                D-70794 Filderstadt                                        */
 /* EMail:         uz@cc65.org                                                */
 /*                                                                           */
@@ -74,13 +74,13 @@ struct Macro {
 
 Macro* NewMacro (const char* Name);
 /* Allocate a macro structure with the given name. The structure is not
- * inserted into the macro table.
- */
+** inserted into the macro table.
+*/
 
 void FreeMacro (Macro* M);
 /* Delete a macro definition. The function will NOT remove the macro from the
- * table, use UndefineMacro for that.
- */
+** table, use UndefineMacro for that.
+*/
 
 void DefineNumericMacro (const char* Name, long Val);
 /* Define a macro for a numeric constant */
@@ -93,9 +93,9 @@ void InsertMacro (Macro* M);
 
 int UndefineMacro (const char* Name);
 /* Search for the macro with the given name and remove it from the macro
- * table if it exists. Return 1 if a macro was found and deleted, return
- * 0 otherwise.
- */
+** table if it exists. Return 1 if a macro was found and deleted, return
+** 0 otherwise.
+*/
 
 Macro* FindMacro (const char* Name);
 /* Find a macro with the given name. Return the macro definition or NULL */
@@ -112,8 +112,8 @@ INLINE int IsMacro (const char* Name)
 
 int FindMacroArg (Macro* M, const char* Arg);
 /* Search for a formal macro argument. If found, return the index of the
- * argument. If the argument was not found, return -1.
- */
+** argument. If the argument was not found, return -1.
+*/
 
 void AddMacroArg (Macro* M, const char* Arg);
 /* Add a formal macro argument. */
index 546c7f27e1339df98e4fa2852c823d024120f471..34688e97ebc325a739ccc1e86627236988c8b7a2 100644 (file)
@@ -306,9 +306,9 @@ static void DefineSym (const char* Def)
         DefineNumericMacro (Def, 1);
     } else {
         /* We have a value, P points to the '=' character. Since the argument
-         * is const, create a copy and replace the '=' in the copy by a zero
-         * terminator.
-         */
+        ** is const, create a copy and replace the '=' in the copy by a zero
+        ** terminator.
+        */
         char* Q;
         unsigned Len = strlen (Def)+1;
         char* S = (char*) xmalloc (Len);
@@ -468,13 +468,13 @@ static void OptDebugOpt (const char* Opt attribute ((unused)), const char* Arg)
     }
 
     /* Read line by line, ignore empty lines and switch optimization
-     * steps on/off.
-     */
+    ** steps on/off.
+    */
     while (fgets (Buf, sizeof (Buf), F) != 0) {
 
         /* Remove trailing control chars. This will also remove the
-         * trailing newline.
-         */
+        ** trailing newline.
+        */
         unsigned Len = strlen (Buf);
         while (Len > 0 && IsControl (Buf[Len-1])) {
             --Len;
@@ -488,8 +488,8 @@ static void OptDebugOpt (const char* Opt attribute ((unused)), const char* Arg)
         }
 
         /* Check the first character and enable/disable the step or
-         * ignore the line
-         */
+        ** ignore the line
+        */
         switch (*Line) {
 
             case '\0':
@@ -515,8 +515,8 @@ static void OptDebugOpt (const char* Opt attribute ((unused)), const char* Arg)
     }
 
     /* Close the file, no error check here since we were just reading and
-     * this is only a debug function.
-     */
+    ** this is only a debug function.
+    */
     (void) fclose (F);
 }
 
index c7661642fda5b521a954ad819ce376e2b25e18e1..a7b91ca9a696c7ef4c49746976afd52507286d83 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2001-2004 Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -451,8 +451,8 @@ const OPCDesc OPCTable[OP65_COUNT] = {
         OF_SETF | OF_NOIMP                      /* flags */
     },
     /* Mark RTI as "uses all registers but doesn't change them", so the
-     * optimizer won't remove preceeding loads.
-     */
+    ** optimizer won't remove preceeding loads.
+    */
     {   OP65_RTI,                               /* opcode */
         "rti",                                  /* mnemonic */
         1,                                      /* size */
@@ -599,15 +599,15 @@ static int FindCmp (const void* Key, const void* Desc)
 
 const OPCDesc* FindOP65 (const char* M)
 /* Find the given opcode and return the opcode number. If the opcode was not
- * found, return NULL.
- */
+** found, return NULL.
+*/
 {
     unsigned I;
     unsigned Len;
 
     /* Check the length of the given string, then copy it into local
-     * storage, converting it to upper case.
-     */
+    ** storage, converting it to upper case.
+    */
     char Mnemo[sizeof (OPCTable[0].Mnemo)];
     Len = strlen (M);
     if (Len >= sizeof (OPCTable[0].Mnemo)) {
@@ -658,8 +658,8 @@ unsigned GetInsnSize (opc_t OPC, am_t AM)
 
 unsigned char GetAMUseInfo (am_t AM)
 /* Get usage info for the given addressing mode (addressing modes that use
- * index registers return REG_r info for these registers).
- */
+** index registers return REG_r info for these registers).
+*/
 {
     /* Check the addressing mode. */
     switch (AM) {
@@ -705,8 +705,8 @@ opc_t GetInverseBranch (opc_t OPC)
 
 opc_t MakeShortBranch (opc_t OPC)
 /* Return the short version of the given branch. If the branch is already
- * a short branch, return the opcode unchanged.
- */
+** a short branch, return the opcode unchanged.
+*/
 {
     switch (OPC) {
         case OP65_BCC:
@@ -737,8 +737,8 @@ opc_t MakeShortBranch (opc_t OPC)
 
 opc_t MakeLongBranch (opc_t OPC)
 /* Return the long version of the given branch. If the branch is already
- * a long branch, return the opcode unchanged.
- */
+** a long branch, return the opcode unchanged.
+*/
 {
     switch (OPC) {
         case OP65_BCC:
index 4635c4703a57d54be4314bec07092545d2c1a55e..349de32a4dbba3e03d3546cac97f63bcac412288 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2001-2004 Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -203,8 +203,8 @@ extern const OPCDesc OPCTable[OP65_COUNT];
 
 const OPCDesc* FindOP65 (const char* OPC);
 /* Find the given opcode and return the opcode description. If the opcode was
- * not found, NULL is returned.
- */
+** not found, NULL is returned.
+*/
 
 unsigned GetInsnSize (opc_t OPC, am_t AM);
 /* Return the size of the given instruction */
@@ -233,21 +233,21 @@ INLINE unsigned GetOPCInfo (opc_t OPC)
 
 unsigned char GetAMUseInfo (am_t AM);
 /* Get usage info for the given addressing mode (addressing modes that use
- * index registers return REG_r info for these registers).
- */
+** index registers return REG_r info for these registers).
+*/
 
 opc_t GetInverseBranch (opc_t OPC);
 /* Return a branch that reverse the condition of the branch given in OPC */
 
 opc_t MakeShortBranch (opc_t OPC);
 /* Return the short version of the given branch. If the branch is already
- * a short branch, return the opcode unchanged.
- */
+** a short branch, return the opcode unchanged.
+*/
 
 opc_t MakeLongBranch (opc_t OPC);
 /* Return the long version of the given branch. If the branch is already
- * a long branch, return the opcode unchanged.
- */
+** a long branch, return the opcode unchanged.
+*/
 
 bc_t GetBranchCond (opc_t OPC);
 /* Get the condition for the conditional branch in OPC */
index fdde36467b3844ec790fce996cb33b74db68a1c6..e0b06ef997f0dee09db4bea80292b2fd294ef469 100644 (file)
@@ -81,8 +81,8 @@ void SetOutputName (const char* Name)
 
 void MakeDefaultOutputName (const char* InputFilename)
 /* If the name of the output file is empty or NULL, the name of the output
- * file is derived from the input file by adjusting the file name extension.
- */
+** file is derived from the input file by adjusting the file name extension.
+*/
 {
     if (OutputFilename == 0 || *OutputFilename == '\0') {
         /* We don't have an output file for now */
@@ -111,8 +111,8 @@ void OpenOutputFile ()
 
 void OpenDebugOutputFile (const char* Name)
 /* Open an output file for debugging purposes. Will call Fatal() in case of
- * failures.
- */
+** failures.
+*/
 {
     /* Output file must not be open and we must have a name*/
     PRECONDITION (OutputFile == 0);
@@ -147,8 +147,8 @@ void CloseOutputFile ()
 
 int WriteOutput (const char* Format, ...)
 /* Write to the output file using printf like formatting. Returns the number
- * of chars written.
- */
+** of chars written.
+*/
 {
     va_list ap;
     int CharCount;
index 59a9defb3d8f2012caa0fa2158b7a14fb03fc0a7..a3d2cca8a7cef38bc042a8cab0971161d754839b 100644 (file)
@@ -70,24 +70,24 @@ void SetOutputName (const char* Name);
 
 void MakeDefaultOutputName (const char* InputFilename);
 /* If the name of the output file is empty or NULL, the name of the output
- * file is derived from the input file by adjusting the file name extension.
- */
+** file is derived from the input file by adjusting the file name extension.
+*/
 
 void OpenOutputFile ();
 /* Open the output file. Will call Fatal() in case of failures. */
 
 void OpenDebugOutputFile (const char* Name);
-/* Open an output file for debugging purposes. Will call Fatal() in case of 
- * failures. 
- */
+/* Open an output file for debugging purposes. Will call Fatal() in case of
+** failures.
+*/
 
 void CloseOutputFile ();
 /* Close the output file. Will call Fatal() in case of failures. */
 
 int WriteOutput (const char* Format, ...) attribute ((format (printf, 1, 2)));
 /* Write to the output file using printf like formatting. Returns the number
- * of chars written.
- */
+** of chars written.
+*/
 
 
 /* End of output.h */
index 01e4ea3cf0d85a02b77d713e647fed2fb1d6708b..f42274922e66b549cd3c9d2642d601e4ed67fca7 100644 (file)
@@ -141,8 +141,8 @@ typedef enum {
 
 static void PragmaErrorSkip (void)
 /* Called in case of an error, skips tokens until the closing paren or a
- * semicolon is reached.
- */
+** semicolon is reached.
+*/
 {
     static const token_t TokenList[] = { TOK_RPAREN, TOK_SEMI };
     SkipTokens (TokenList, sizeof(TokenList) / sizeof(TokenList[0]));
@@ -160,8 +160,8 @@ static int CmpKey (const void* Key, const void* Elem)
 
 static pragma_t FindPragma (const StrBuf* Key)
 /* Find a pragma and return the token. Return PRAGMA_ILLEGAL if the keyword is
- * not a valid pragma.
- */
+** not a valid pragma.
+*/
 {
     struct Pragma* P;
     P = bsearch (SB_GetConstBuf (Key), Pragmas, PRAGMA_COUNT, sizeof (Pragmas[0]), CmpKey);
@@ -172,8 +172,8 @@ static pragma_t FindPragma (const StrBuf* Key)
 
 static int GetComma (StrBuf* B)
 /* Expects and skips a comma in B. Prints an error and returns zero if no
- * comma is found. Return a value <> 0 otherwise.
- */
+** comma is found. Return a value <> 0 otherwise.
+*/
 {
     SB_SkipWhite (B);
     if (SB_Get (B) != ',') {
@@ -188,8 +188,8 @@ static int GetComma (StrBuf* B)
 
 static int GetString (StrBuf* B, StrBuf* S)
 /* Expects and skips a string in B. Prints an error and returns zero if no
- * string is found. Returns a value <> 0 otherwise.
- */
+** string is found. Returns a value <> 0 otherwise.
+*/
 {
     if (!SB_GetString (B, S)) {
         Error ("String literal expected");
@@ -202,8 +202,8 @@ static int GetString (StrBuf* B, StrBuf* S)
 
 static int GetNumber (StrBuf* B, long* Val)
 /* Expects and skips a number in B. Prints an eror and returns zero if no
- * number is found. Returns a value <> 0 otherwise.
- */
+** number is found. Returns a value <> 0 otherwise.
+*/
 {
     if (!SB_GetNumber (B, Val)) {
         Error ("Constant integer expected");
@@ -216,9 +216,9 @@ static int GetNumber (StrBuf* B, long* Val)
 
 static IntStack* GetWarning (StrBuf* B)
 /* Get a warning name from the string buffer. Returns a pointer to the intstack
- * that holds the state of the warning, and NULL in case of errors. The
- * function will output error messages in case of problems.
- */
+** that holds the state of the warning, and NULL in case of errors. The
+** function will output error messages in case of problems.
+*/
 {
     IntStack* S = 0;
     StrBuf W = AUTO_STRBUF_INITIALIZER;
@@ -262,8 +262,8 @@ static int HasStr (StrBuf* B, const char* E)
 
 static PushPopResult ParsePushPop (StrBuf* B)
 /* Check for and parse the "push" and "pop" keywords. In case of "push", a
- * following comma is expected and skipped.
- */
+** following comma is expected and skipped.
+*/
 {
     StrBuf Ident      = AUTO_STRBUF_INITIALIZER;
     PushPopResult Res = PP_NONE;
@@ -330,8 +330,8 @@ static void PushInt (IntStack* S, long Val)
 
 static int BoolKeyword (StrBuf* Ident)
 /* Check if the identifier in Ident is a keyword for a boolean value. Currently
- * accepted are true/false/on/off.
- */
+** accepted are true/false/on/off.
+*/
 {
     if (SB_CompareStr (Ident, "true") == 0) {
         return 1;
@@ -676,8 +676,8 @@ static void ParsePragma (void)
     /* Do we know this pragma? */
     if (Pragma == PRAGMA_ILLEGAL) {
         /* According to the ANSI standard, we're not allowed to generate errors
-         * for unknown pragmas, but warn about them if enabled (the default).
-         */
+        ** for unknown pragmas, but warn about them if enabled (the default).
+        */
         if (IS_Get (&WarnUnknownPragma)) {
             Warning ("Unknown pragma `%s'", SB_GetConstBuf (&Ident));
         }
@@ -838,8 +838,8 @@ void DoPragma (void)
         Error ("String literal expected");
 
         /* Try some smart error recovery: Skip tokens until we reach the
-         * enclosing paren, or a semicolon.
-         */
+        ** enclosing paren, or a semicolon.
+        */
         PragmaErrorSkip ();
 
     } else {
index 1885bc02e3cb45209517020249c35a401a917cc1..a5ab4897eaeffc236cf713ebb5e41816ea82c069 100644 (file)
@@ -100,8 +100,8 @@ struct MacroExp {
 
 static unsigned Pass1 (StrBuf* Source, StrBuf* Target);
 /* Preprocessor pass 1. Remove whitespace. Handle old and new style comments
- * and the "defined" operator.
- */
+** and the "defined" operator.
+*/
 
 static void MacroReplacement (StrBuf* Source, StrBuf* Target);
 /* Perform macro replacement. */
@@ -169,8 +169,8 @@ static int CmpToken (const void* Key, const void* Elem)
 
 static pptoken_t FindPPToken (const char* Ident)
 /* Find a preprocessor token and return it. Return PP_ILLEGAL if the identifier
- * is not a valid preprocessor token.
- */
+** is not a valid preprocessor token.
+*/
 {
     struct PPToken* P;
     P = bsearch (Ident, PPTokens, PPTOKEN_COUNT, sizeof (PPTokens[0]), CmpToken);
@@ -213,8 +213,8 @@ static void DoneMacroExp (MacroExp* E)
 
 static void ME_AppendActual (MacroExp* E, StrBuf* Arg)
 /* Add a copy of Arg to the list of actual macro arguments.
- * NOTE: This function will clear Arg!
- */
+** NOTE: This function will clear Arg!
+*/
 {
     /* Create a new string buffer */
     StrBuf* A = NewStrBuf ();
@@ -253,8 +253,8 @@ static int ME_ArgIsVariadic (const MacroExp* E)
 
 static void Stringize (StrBuf* Source, StrBuf* Target)
 /* Stringize the given string: Add double quotes at start and end and preceed
- * each occurance of " and \ by a backslash.
- */
+** each occurance of " and \ by a backslash.
+*/
 {
     char C;
 
@@ -262,8 +262,8 @@ static void Stringize (StrBuf* Source, StrBuf* Target)
     SB_AppendChar (Target, '\"');
 
     /* Replace any characters inside the string may not be part of a string
-     * unescaped.
-     */
+    ** unescaped.
+    */
     while ((C = SB_Get (Source)) != '\0') {
         switch (C) {
             case '\"':
@@ -286,8 +286,8 @@ static void OldStyleComment (void)
 /* Remove an old style C comment from line. */
 {
     /* Remember the current line number, so we can output better error
-     * messages if the comment is not terminated in the current file.
-     */
+    ** messages if the comment is not terminated in the current file.
+    */
     unsigned StartingLine = GetCurrentLine();
 
     /* Skip the start of comment chars */
@@ -321,10 +321,10 @@ static void NewStyleComment (void)
 /* Remove a new style C comment from line. */
 {
     /* Beware: Because line continuation chars are handled when reading
-     * lines, we may only skip til the end of the source line, which
-     * may not be the same as the end of the input line. The end of the
-     * source line is denoted by a lf (\n) character.
-     */
+    ** lines, we may only skip til the end of the source line, which
+    ** may not be the same as the end of the input line. The end of the
+    ** source line is denoted by a lf (\n) character.
+    */
     do {
         NextChar ();
     } while (CurC != '\n' && CurC != '\0');
@@ -337,9 +337,9 @@ static void NewStyleComment (void)
 
 static int SkipWhitespace (int SkipLines)
 /* Skip white space in the input stream. Do also skip newlines if SkipLines
- * is true. Return zero if nothing was skipped, otherwise return a
- * value != zero.
- */
+** is true. Return zero if nothing was skipped, otherwise return a
+** value != zero.
+*/
 {
     int Skipped = 0;
     while (1) {
@@ -401,8 +401,8 @@ static void CopyQuotedString (StrBuf* Target)
 
 static int MacName (char* Ident)
 /* Get a macro symbol name into Ident.  If we have an error, print a
- * diagnostic message and clear the line.
- */
+** diagnostic message and clear the line.
+*/
 {
     if (IsSym (Ident) == 0) {
         PPError ("Identifier expected");
@@ -447,8 +447,8 @@ static void ReadMacroArgs (MacroExp* E)
                 NextChar ();
             } else if (CurC == ',' && ME_ArgIsVariadic (E)) {
                 /* It's a comma, but we're inside a variadic macro argument, so
-                 * just copy it and proceed.
-                 */
+                ** just copy it and proceed.
+                */
                 SB_AppendChar (&Arg, CurC);
                 NextChar ();
             } else {
@@ -458,8 +458,8 @@ static void ReadMacroArgs (MacroExp* E)
                 }
 
                 /* If this is not the single empty argument for a macro with
-                 * an empty argument list, remember it.
-                 */
+                ** an empty argument list, remember it.
+                */
                 if (CurC != ')' || SB_NotEmpty (&Arg) || E->M->ArgCount > 0) {
                     ME_AppendActual (E, &Arg);
                 }
@@ -539,8 +539,8 @@ static void MacroArgSubst (MacroExp* E)
                 HaveSpace = SkipWhitespace (0);
 
                 /* If a ## operator follows, we have to insert the actual
-                 * argument as is, otherwise it must be macro replaced.
-                 */
+                ** argument as is, otherwise it must be macro replaced.
+                */
                 if (CurC == '#' && NextC == '#') {
 
                     /* ### Add placemarker if necessary */
@@ -549,8 +549,8 @@ static void MacroArgSubst (MacroExp* E)
                 } else {
 
                     /* Replace the formal argument by a macro replaced copy
-                     * of the actual.
-                     */
+                    ** of the actual.
+                    */
                     SB_Reset (Arg);
                     MacroReplacement (Arg, &E->Replacement);
 
@@ -576,16 +576,16 @@ static void MacroArgSubst (MacroExp* E)
             SkipWhitespace (0);
 
             /* Since we need to concatenate the token sequences, remove
-             * any whitespace that was added to target, since it must come
-             * from the input.
-             */
+            ** any whitespace that was added to target, since it must come
+            ** from the input.
+            */
             while (IsSpace (SB_LookAtLast (&E->Replacement))) {
                 SB_Drop (&E->Replacement, 1);
             }
 
             /* If the next token is an identifier which is a macro argument,
-             * replace it, otherwise do nothing.
-             */
+            ** replace it, otherwise do nothing.
+            */
             if (IsSym (Ident)) {
 
                 /* Check if it's a macro argument */
@@ -605,9 +605,9 @@ static void MacroArgSubst (MacroExp* E)
         } else if (CurC == '#' && E->M->ArgCount >= 0) {
 
             /* A # operator within a macro expansion of a function like
-             * macro. Read the following identifier and check if it's a
-             * macro parameter.
-             */
+            ** macro. Read the following identifier and check if it's a
+            ** macro parameter.
+            */
             NextChar ();
             SkipWhitespace (0);
             if (!IsSym (Ident) || (ArgIdx = FindMacroArg (E->M, Ident)) < 0) {
@@ -673,8 +673,8 @@ static void MacroCall (StrBuf* Target, Macro* M)
     MacroArgSubst (&E);
 
     /* Do macro replacement on the macro that already has the parameters
-     * substituted.
-     */
+    ** substituted.
+    */
     M->Expanding = 1;
     MacroReplacement (&E.Replacement, Target);
     M->Expanding = 0;
@@ -717,8 +717,8 @@ static void ExpandMacro (StrBuf* Target, Macro* M)
         MacroArgSubst (&E);
 
         /* Do macro replacement on the macro that already has the parameters
-         * substituted.
-         */
+        ** substituted.
+        */
         M->Expanding = 1;
         MacroReplacement (&E.Replacement, Target);
         M->Expanding = 0;
@@ -776,8 +776,8 @@ static void DefineMacro (void)
             }
 
             /* The next token must be either an identifier, or - if not in
-             * C89 mode - the ellipsis.
-             */
+            ** C89 mode - the ellipsis.
+            */
             if (!C89 && CurC == '.') {
                 /* Ellipsis */
                 NextChar ();
@@ -790,8 +790,8 @@ static void DefineMacro (void)
                 NextChar ();
 
                 /* Remember that the macro is variadic and use __VA_ARGS__ as
-                 * the argument name.
-                 */
+                ** the argument name.
+                */
                 AddMacroArg (M, "__VA_ARGS__");
                 M->Variadic = 1;
 
@@ -812,8 +812,8 @@ static void DefineMacro (void)
             }
 
             /* If we had an ellipsis, or the next char is not a comma, we've
-             * reached the end of the macro argument list.
-             */
+            ** reached the end of the macro argument list.
+            */
             SkipWhitespace (0);
             if (M->Variadic || CurC != ',') {
                 break;
@@ -837,8 +837,8 @@ static void DefineMacro (void)
     InsertMacro (M);
 
     /* Remove whitespace and comments from the line, store the preprocessed
-     * line into the macro replacement buffer.
-     */
+    ** line into the macro replacement buffer.
+    */
     Pass1 (Line, &M->Replacement);
 
     /* Remove whitespace from the end of the line */
@@ -850,8 +850,8 @@ static void DefineMacro (void)
 #endif
 
     /* If we have an existing macro, check if the redefinition is identical.
-     * Print a diagnostic if not.
-     */
+    ** Print a diagnostic if not.
+    */
     if (Existing && MacroCmp (M, Existing) != 0) {
         PPError ("Macro redefinition is not identical");
     }
@@ -867,8 +867,8 @@ static void DefineMacro (void)
 
 static unsigned Pass1 (StrBuf* Source, StrBuf* Target)
 /* Preprocessor pass 1. Remove whitespace. Handle old and new style comments
- * and the "defined" operator.
- */
+** and the "defined" operator.
+*/
 {
     unsigned    IdentCount;
     ident       Ident;
@@ -984,8 +984,8 @@ static void PreprocessLine (void)
 /* Translate one line. */
 {
     /* Trim whitespace and remove comments. The function returns the number of
-     * identifiers found. If there were any, we will have to check for macros.
-     */
+    ** identifiers found. If there were any, we will have to check for macros.
+    */
     SB_Clear (MLine);
     if (Pass1 (Line, MLine) > 0) {
         MLine = InitLine (MLine);
@@ -1045,10 +1045,10 @@ static int DoIf (int Skip)
     ExprDesc Expr;
 
     /* We're about to abuse the compiler expression parser to evaluate the
-     * #if expression. Save the current tokens to come back here later.
-     * NOTE: Yes, this is a hack, but it saves a complete separate expression
-     * evaluation for the preprocessor.
-     */
+    ** #if expression. Save the current tokens to come back here later.
+    ** NOTE: Yes, this is a hack, but it saves a complete separate expression
+    ** evaluation for the preprocessor.
+    */
     Token SavedCurTok  = CurTok;
     Token SavedNextTok = NextTok;
 
@@ -1067,9 +1067,9 @@ static int DoIf (int Skip)
     PreprocessLine ();
 
     /* Add two semicolons as sentinels to the line, so the following
-     * expression evaluation will eat these two tokens but nothing from
-     * the following line.
-     */
+    ** expression evaluation will eat these two tokens but nothing from
+    ** the following line.
+    */
     SB_AppendStr (Line, ";;");
     SB_Terminate (Line);
 
@@ -1123,8 +1123,8 @@ static void DoInclude (void)
     SkipWhitespace (0);
 
     /* Get the next char and check for a valid file name terminator. Setup
-     * the include directory spec (SYS/USR) by looking at the terminator.
-     */
+    ** the include directory spec (SYS/USR) by looking at the terminator.
+    */
     switch (CurC) {
 
         case '\"':
@@ -1164,8 +1164,8 @@ Done:
     SB_Done (&Filename);
 
     /* Clear the remaining line so the next input will come from the new
-     * file (if open)
-     */
+    ** file (if open)
+    */
     ClearLine ();
 }
 
@@ -1173,8 +1173,8 @@ Done:
 
 static void DoPragma (void)
 /* Handle a #pragma line by converting the #pragma preprocessor directive into
- * the _Pragma() compiler operator.
- */
+** the _Pragma() compiler operator.
+*/
 {
     /* Skip blanks following the #pragma directive */
     SkipWhitespace (0);
@@ -1302,8 +1302,8 @@ void Preprocess (void)
                     case PP_ENDIF:
                         if (IfIndex >= 0) {
                             /* Remove any clauses on top of stack that do not
-                             * need a terminating #endif.
-                             */
+                            ** need a terminating #endif.
+                            */
                             while (IfIndex >= 0 && (IfStack[IfIndex] & IFCOND_NEEDTERM) == 0) {
                                 --IfIndex;
                             }
index 0bc8b5d640bdbb1be54e5e4305f794309cc4e807..383c6ec24df8d77486ff35a3f9251de3a8b3ca8a 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2001-2003 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -104,9 +104,9 @@ void RC_Dump (FILE* F, const RegContents* RC)
 
 RegInfo* NewRegInfo (const RegContents* RC)
 /* Allocate a new register info, initialize and return it. If RC is not
- * a NULL pointer, it is used to initialize both, the input and output
- * registers. If the pointer is NULL, all registers are set to unknown.
- */
+** a NULL pointer, it is used to initialize both, the input and output
+** registers. If the pointer is NULL, all registers are set to unknown.
+*/
 {
     /* Allocate memory */
     RegInfo* RI = xmalloc (sizeof (RegInfo));
index 31dc536c52c3779b001b06fd5a83f015c2a82b71..7354c301ff5c41bd72f0e1bdc6b6123a68240925 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2001-2003 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -114,9 +114,9 @@ INLINE int RegValIsUnknown (short Val)
 
 RegInfo* NewRegInfo (const RegContents* RC);
 /* Allocate a new register info, initialize and return it. If RC is not
- * a NULL pointer, it is used to initialize both, the input and output
- * registers. If the pointer is NULL, all registers are set to unknown.
- */
+** a NULL pointer, it is used to initialize both, the input and output
+** registers. If the pointer is NULL, all registers are set to unknown.
+*/
 
 void FreeRegInfo (RegInfo* RI);
 /* Free a RegInfo struct */
index 6bc6b898560b34bfbb15dde1677dbc7074f50cc9..16d43e2eae30df2e365f1ebfd2ed8e9151630cba 100644 (file)
@@ -166,8 +166,8 @@ static int CmpKey (const void* Key, const void* Elem)
 
 static token_t FindKey (const char* Key)
 /* Find a keyword and return the token. Return IDENT if the token is not a
- * keyword.
- */
+** keyword.
+*/
 {
     struct Keyword* K;
     K = bsearch (Key, Keywords, KEY_COUNT, sizeof (Keywords [0]), CmpKey);
@@ -182,8 +182,8 @@ static token_t FindKey (const char* Key)
 
 static int SkipWhite (void)
 /* Skip white space in the input stream, reading and preprocessing new lines
- * if necessary. Return 0 if end of file is reached, return 1 otherwise.
- */
+** if necessary. Return 0 if end of file is reached, return 1 otherwise.
+*/
 {
     while (1) {
         while (CurC == '\0') {
@@ -214,9 +214,9 @@ int TokIsFuncSpec (const Token* T)
 
 void SymName (char* S)
 /* Read a symbol from the input stream. The first character must have been
- * checked before calling this function. The buffer is expected to be at
- * least of size MAX_IDENTLEN+1.
- */
+** checked before calling this function. The buffer is expected to be at
+** least of size MAX_IDENTLEN+1.
+*/
 {
     unsigned Len = 0;
     do {
@@ -354,8 +354,8 @@ static int ParseChar (void)
                 Error ("Illegal character constant");
                 C = ' ';
                 /* Try to do error recovery, otherwise the compiler will spit
-                 * out thousands of errors in this place and abort.
-                 */
+                ** out thousands of errors in this place and abort.
+                */
                 if (CurC != '\'' && CurC != '\0') {
                     while (NextC != '\'' && NextC != '\"' && NextC != '\0') {
                         NextChar ();
@@ -417,9 +417,9 @@ static void StringConst (void)
     NextTok.Tok  = TOK_SCONST;
 
     /* Concatenate strings. If at least one of the concenated strings is a wide
-     * character literal, the whole string is a wide char literal, otherwise
-     * it's a normal string literal.
-     */
+    ** character literal, the whole string is a wide char literal, otherwise
+    ** it's a normal string literal.
+    */
     while (1) {
 
         /* Check if this is a normal or a wide char string */
@@ -477,8 +477,8 @@ static void NumericConst (void)
     unsigned long IVal;         /* Value */
 
     /* Check for a leading hex or octal prefix and determine the possible
-     * integer types.
-     */
+    ** integer types.
+    */
     if (CurC == '0') {
         /* Gobble 0 and examine next char */
         NextChar ();
@@ -494,10 +494,10 @@ static void NumericConst (void)
     }
 
     /* Because floating point numbers don't have octal prefixes (a number
-     * with a leading zero is decimal), we first have to read the number
-     * before converting it, so we can determine if it's a float or an
-     * integer.
-     */
+    ** with a leading zero is decimal), we first have to read the number
+    ** before converting it, so we can determine if it's a float or an
+    ** integer.
+    */
     while (IsXDigit (CurC) && HexVal (CurC) < Base) {
         SB_AppendChar (&S, CurC);
         NextChar ();
@@ -505,23 +505,23 @@ static void NumericConst (void)
     SB_Terminate (&S);
 
     /* The following character tells us if we have an integer or floating
-     * point constant. Note: Hexadecimal floating point constants aren't
-     * supported in C89.
-     */
+    ** point constant. Note: Hexadecimal floating point constants aren't
+    ** supported in C89.
+    */
     IsFloat = (CurC == '.' ||
                (Base == 10 && toupper (CurC) == 'E') ||
                (Base == 16 && toupper (CurC) == 'P' && IS_Get (&Standard) >= STD_C99));
 
     /* If we don't have a floating point type, an octal prefix results in an
-     * octal base.
-     */
+    ** octal base.
+    */
     if (!IsFloat && Prefix == 8) {
         Base = 8;
     }
 
     /* Since we do now know the correct base, convert the remembered input
-     * into a number.
-     */
+    ** into a number.
+    */
     SB_Reset (&S);
     IVal = 0;
     while ((C = SB_Get (&S)) != '\0') {
@@ -577,9 +577,9 @@ static void NumericConst (void)
             /* Out of range for int */
             Types &= ~IT_INT;
             /* If the value is in the range 0x8000..0xFFFF, unsigned int is not
-             * allowed, and we don't have a type specifying suffix, emit a
-             * warning, because the constant is of type long.
-             */
+            ** allowed, and we don't have a type specifying suffix, emit a
+            ** warning, because the constant is of type long.
+            */
             if (IVal <= 0xFFFF && (Types & IT_UINT) == 0 && !HaveSuffix) {
                 Warning ("Constant is long");
             }
@@ -653,11 +653,11 @@ static void NumericConst (void)
             }
 
             /* Read exponent digits. Since we support only 32 bit floats
-             * with a maximum exponent of +-/127, we read the exponent
-             * part as integer with up to 3 digits and drop the remainder.
-             * This avoids an overflow of Exp. The exponent is always
-             * decimal, even for hex float consts.
-             */
+            ** with a maximum exponent of +-/127, we read the exponent
+            ** part as integer with up to 3 digits and drop the remainder.
+            ** This avoids an overflow of Exp. The exponent is always
+            ** decimal, even for hex float consts.
+            */
             Digits = 0;
             Exp    = 0;
             while (IsDigit (CurC)) {
@@ -668,8 +668,8 @@ static void NumericConst (void)
             }
 
             /* Check for errors: We must have exponent digits, and not more
-             * than three.
-             */
+            ** than three.
+            */
             if (Digits == 0) {
                 Error ("Floating constant exponent has no digits");
             } else if (Digits > 3) {
@@ -705,10 +705,10 @@ void NextToken (void)
     ident token;
 
     /* We have to skip white space here before shifting tokens, since the
-     * tokens and the current line info is invalid at startup and will get
-     * initialized by reading the first time from the file. Remember if
-     * we were at end of input and handle that later.
-     */
+    ** tokens and the current line info is invalid at startup and will get
+    ** initialized by reading the first time from the file. Remember if
+    ** we were at end of input and handle that later.
+    */
     int GotEOF = (SkipWhite() == 0);
 
     /* Current token is the lookahead token */
@@ -718,9 +718,9 @@ void NextToken (void)
     CurTok = NextTok;
 
     /* When reading the first time from the file, the line info in NextTok,
-     * which was copied to CurTok is invalid. Since the information from
-     * the token is used for error messages, we must make it valid.
-     */
+    ** which was copied to CurTok is invalid. Since the information from
+    ** the token is used for error messages, we must make it valid.
+    */
     if (CurTok.LI == 0) {
         CurTok.LI = UseLineInfo (GetCurLineInfo ());
     }
@@ -1015,8 +1015,8 @@ void NextToken (void)
 
 void SkipTokens (const token_t* TokenList, unsigned TokenCount)
 /* Skip tokens until we reach TOK_CEOF or a token in the given token list.
- * This routine is used for error recovery.
- */
+** This routine is used for error recovery.
+*/
 {
     while (CurTok.Tok != TOK_CEOF) {
 
@@ -1039,8 +1039,8 @@ void SkipTokens (const token_t* TokenList, unsigned TokenCount)
 
 int Consume (token_t Token, const char* ErrorMsg)
 /* Eat token if it is the next in the input stream, otherwise print an error
- * message. Returns true if the token was found and false otherwise.
- */
+** message. Returns true if the token was found and false otherwise.
+*/
 {
     if (CurTok.Tok == Token) {
         NextToken ();
index eb835fd8436b0ddefb60930200ddc684beefa485..1242d78fde038d913a74c7f39af6231093fe89ed 100644 (file)
@@ -254,9 +254,9 @@ int TokIsFuncSpec (const Token* T);
 
 void SymName (char* S);
 /* Read a symbol from the input stream. The first character must have been
- * checked before calling this function. The buffer is expected to be at
- * least of size MAX_IDENTLEN+1.
- */
+** checked before calling this function. The buffer is expected to be at
+** least of size MAX_IDENTLEN+1.
+*/
 
 int IsSym (char* S);
 /* If a symbol follows, read it and return 1, otherwise return 0 */
@@ -266,13 +266,13 @@ void NextToken (void);
 
 void SkipTokens (const token_t* TokenList, unsigned TokenCount);
 /* Skip tokens until we reach TOK_CEOF or a token in the given token list.
- * This routine is used for error recovery.
- */
+** This routine is used for error recovery.
+*/
 
 int Consume (token_t Token, const char* ErrorMsg);
 /* Eat token if it is the next in the input stream, otherwise print an error
- * message. Returns true if the token was found and false otherwise.
- */
+** message. Returns true if the token was found and false otherwise.
+*/
 
 int ConsumeColon (void);
 /* Check for a colon and skip it. */
index 2749c10732a569969a0abd7a4e210e5f28a7ba04..91abc8cb30fbeb80b2e32cd2f3953650bb48a349 100644 (file)
@@ -164,12 +164,12 @@ void SB_SkipWhite (StrBuf* B)
 
 int SB_GetSym (StrBuf* B, StrBuf* Ident, const char* SpecialChars)
 /* Get a symbol from the string buffer. If SpecialChars is not NULL, it
- * points to a string that contains characters allowed within the string in
- * addition to letters, digits and the underline. Note: The identifier must
- * still begin with a letter.
- * Returns 1 if a symbol was found and 0 otherwise but doesn't output any
- * errors.
- */
+** points to a string that contains characters allowed within the string in
+** addition to letters, digits and the underline. Note: The identifier must
+** still begin with a letter.
+** Returns 1 if a symbol was found and 0 otherwise but doesn't output any
+** errors.
+*/
 {
     /* Handle a NULL argument for SpecialChars transparently */
     if (SpecialChars == 0) {
@@ -198,9 +198,9 @@ int SB_GetSym (StrBuf* B, StrBuf* Ident, const char* SpecialChars)
 
 int SB_GetString (StrBuf* B, StrBuf* S)
 /* Get a string from the string buffer. Returns 1 if a string was found and 0
- * otherwise. Errors are only output in case of invalid strings (missing end
- * of string).
- */
+** otherwise. Errors are only output in case of invalid strings (missing end
+** of string).
+*/
 {
     char C;
 
@@ -250,10 +250,10 @@ int SB_GetString (StrBuf* B, StrBuf* S)
 
 int SB_GetNumber (StrBuf* B, long* Val)
 /* Get a number from the string buffer. Accepted formats are decimal, octal,
- * hex and character constants. Numeric constants may be preceeded by a
- * minus or plus sign. The function returns 1 if a number was found and
- * zero otherwise. Errors are only output for invalid numbers.
- */
+** hex and character constants. Numeric constants may be preceeded by a
+** minus or plus sign. The function returns 1 if a number was found and
+** zero otherwise. Errors are only output for invalid numbers.
+*/
 {
     int      Sign;
     char     C;
@@ -281,8 +281,8 @@ int SB_GetNumber (StrBuf* B, long* Val)
     }
 
     /* Check for a sign. A sign must be followed by a digit, otherwise it's
-     * not a number
-     */
+    ** not a number
+    */
     Sign = 1;
     switch (SB_Peek (B)) {
         case '-':
index 10f05c6e8fa770444c9859b9540b735e31bd15cc..4fba5980e6d0d326db10dba5f532629ecc485d32 100644 (file)
@@ -54,25 +54,25 @@ void SB_SkipWhite (StrBuf* B);
 
 int SB_GetSym (StrBuf* B, StrBuf* Ident, const char* SpecialChars);
 /* Get a symbol from the string buffer. If SpecialChars is not NULL, it
- * points to a string that contains characters allowed within the string in
- * addition to letters, digits and the underline. Note: The identifier must
- * still begin with a letter.
- * Returns 1 if a symbol was found and 0 otherwise but doesn't output any
- * errors.
- */
+** points to a string that contains characters allowed within the string in
+** addition to letters, digits and the underline. Note: The identifier must
+** still begin with a letter.
+** Returns 1 if a symbol was found and 0 otherwise but doesn't output any
+** errors.
+*/
 
 int SB_GetString (StrBuf* B, StrBuf* S);
 /* Get a string from the string buffer. Returns 1 if a string was found and 0
- * otherwise. Errors are only output in case of invalid strings (missing end
- * of string).
- */
+** otherwise. Errors are only output in case of invalid strings (missing end
+** of string).
+*/
 
 int SB_GetNumber (StrBuf* B, long* Val);
 /* Get a number from the string buffer. Accepted formats are decimal, octal,
- * hex and character constants. Numeric constants may be preceeded by a
- * minus or plus sign. The function returns 1 if a number was found and
- * zero otherwise. Errors are only output for invalid numbers.
- */
+** hex and character constants. Numeric constants may be preceeded by a
+** minus or plus sign. The function returns 1 if a number was found and
+** zero otherwise. Errors are only output for invalid numbers.
+*/
 
 
 
index 252399f0ba02871fcfe1ca1faf19e3db789c7b76..5e493e8f52e2fd6102ee2c6377401cad99417046 100644 (file)
@@ -71,10 +71,10 @@ Segments* GS = 0;
 static StrStack SegmentNames[SEG_COUNT];
 
 /* We're using a collection for the stack instead of a linked list. Since
- * functions may not be nested (at least in the current implementation), the
- * maximum stack depth is 2, so there is not really a need for a better
- * implementation.
- */
+** functions may not be nested (at least in the current implementation), the
+** maximum stack depth is 2, so there is not really a need for a better
+** implementation.
+*/
 static Collection SegmentStack = STATIC_COLLECTION_INITIALIZER;
 
 
index a5e67fc669fcdba825871660d414169149a5f233..c61514f4397510179da371d9b9295f6c3ed5bed3 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2004-2006 Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -136,9 +136,9 @@ void ShiftExpr (struct ExprDesc* Expr)
             RemoveCode (&Mark2);
 
             /* If the shift count is greater or equal than the bit count of
-             * the operand, the behaviour is undefined according to the
-             * standard.
-             */
+            ** the operand, the behaviour is undefined according to the
+            ** standard.
+            */
             if (Expr2.IVal < 0 || Expr2.IVal >= (long) ExprBits) {
 
                 Warning ("Shift count too large for operand type");
@@ -174,11 +174,11 @@ void ShiftExpr (struct ExprDesc* Expr)
             }
 
             /* If we're shifting an integer or unsigned to the right, the
-             * lhs has a const address, and the shift count is larger than 8,
-             * we can load just the high byte as a char with the correct
-             * signedness, and reduce the shift count by 8. If the remaining
-             * shift count is zero, we're done.
-             */
+            ** lhs has a const address, and the shift count is larger than 8,
+            ** we can load just the high byte as a char with the correct
+            ** signedness, and reduce the shift count by 8. If the remaining
+            ** shift count is zero, we're done.
+            */
             if (Tok == TOK_SHR &&
                 IsTypeInt (Expr->Type) &&
                 ED_IsLVal (Expr) &&
@@ -192,8 +192,8 @@ void ShiftExpr (struct ExprDesc* Expr)
                 Expr2.IVal -= 8;
 
                 /* Replace the type of the expression temporarily by the
-                 * corresponding char type.
-                 */
+                ** corresponding char type.
+                */
                 OldType = Expr->Type;
                 if (IsSignUnsigned (Expr->Type)) {
                     Expr->Type = type_uchar;
index 91f39faaa25dccba4d3d0238bd96891160141c5f..36897a059b9b72f989bc1e5d74e2f3eb507e47cf 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2004      Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -64,8 +64,8 @@ static const char* StdNames[STD_COUNT] = {
 
 standard_t FindStandard (const char* Name)
 /* Find a standard by name. Returns one of the constants defined above.
- * STD_UNKNOWN is returned if Name doesn't match a standard.
- */
+** STD_UNKNOWN is returned if Name doesn't match a standard.
+*/
 {
     unsigned I;
 
index 587066cb42ae71390ccbc500d006009dcc2f3f43..b0bc8481f9cd2e8629a8f5523503829c2f8d2394 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2004      Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -74,8 +74,8 @@ extern IntStack         Standard;               /* Language standard */
 
 standard_t FindStandard (const char* Name);
 /* Find a standard by name. Returns one of the constants defined above.
- * STD_UNKNOWN is returned if Name doesn't match a standard.
- */
+** STD_UNKNOWN is returned if Name doesn't match a standard.
+*/
 
 
 
index 1730ee08ac08647502a14ae0dc0b31d71262db75..182cad1ef40da99a27fb80bae390ee928ba37cf7 100644 (file)
@@ -78,8 +78,8 @@ static void StdFunc_strlen (FuncDesc*, ExprDesc*);
 
 
 /* Table with all known functions and their handlers. Must be sorted
- * alphabetically!
- */
+** alphabetically!
+*/
 static struct StdFuncDesc {
     const char*         Name;
     void                (*Handler) (FuncDesc*, ExprDesc*);
@@ -122,8 +122,8 @@ static int CmpFunc (const void* Key, const void* Elem)
 
 static long ArrayElementCount (const ArgDesc* Arg)
 /* Check if the type of the given argument is an array. If so, and if the
- * element count is known, return it. In all other cases, return UNSPECIFIED.
- */
+** element count is known, return it. In all other cases, return UNSPECIFIED.
+*/
 {
     long Count;
 
@@ -143,8 +143,8 @@ static long ArrayElementCount (const ArgDesc* Arg)
 
 static void ParseArg (ArgDesc* Arg, Type* Type)
 /* Parse one argument but do not push it onto the stack. Make all fields in
- * Arg valid.
- */
+** Arg valid.
+*/
 {
     /* We have a prototype, so chars may be pushed as chars */
     Arg->Flags = CF_FORCECHAR;
@@ -165,8 +165,8 @@ static void ParseArg (ArgDesc* Arg, Type* Type)
     GetCodePos (&Arg->Load);
 
     /* If the value is a constant, set the flag, otherwise load it into the
-     * primary register.
-     */
+    ** primary register.
+    */
     if (ED_IsConstAbsInt (&Arg->Expr) && ED_CodeRangeIsEmpty (&Arg->Expr)) {
         /* Remember that we have a constant value */
         Arg->Flags |= CF_CONST;
@@ -219,10 +219,10 @@ static void StdFunc_memcpy (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
     ConsumeComma ();
 
     /* Argument #3. Since memcpy is a fastcall function, we must load the
-     * arg into the primary if it is not already there. This parameter is
-     * also ignored for the calculation of the parameter size, since it is
-     * not passed via the stack.
-     */
+    ** arg into the primary if it is not already there. This parameter is
+    ** also ignored for the calculation of the parameter size, since it is
+    ** not passed via the stack.
+    */
     ParseArg (&Arg3, Arg3Type);
     if (Arg3.Flags & CF_CONST) {
         LoadExpr (CF_NONE, &Arg3.Expr);
@@ -237,8 +237,8 @@ static void StdFunc_memcpy (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
         Warning ("Call to memcpy has no effect");
 
         /* Remove all of the generated code but the load of the first
-         * argument, which is what memcpy returns.
-         */
+        ** argument, which is what memcpy returns.
+        */
         RemoveCode (&Arg1.Push);
 
         /* Set the function result to the first argument */
@@ -249,10 +249,10 @@ static void StdFunc_memcpy (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
     }
 
     /* We've generated the complete code for the function now and know the
-     * types of all parameters. Check for situations where better code can
-     * be generated. If such a situation is detected, throw away the
-     * generated, and emit better code.
-     */
+    ** types of all parameters. Check for situations where better code can
+    ** be generated. If such a situation is detected, throw away the
+    ** generated, and emit better code.
+    */
     if (ED_IsConstAbsInt (&Arg3.Expr) && Arg3.Expr.IVal <= 256 &&
         ((ED_IsRVal (&Arg2.Expr) && ED_IsLocConst (&Arg2.Expr)) ||
          (ED_IsLVal (&Arg2.Expr) && ED_IsLocRegister (&Arg2.Expr))) &&
@@ -309,8 +309,8 @@ static void StdFunc_memcpy (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
         }
 
         /* memcpy returns the address, so the result is actually identical
-         * to the first argument.
-         */
+        ** to the first argument.
+        */
         *Expr = Arg1.Expr;
 
     } else if (ED_IsConstAbsInt (&Arg3.Expr) && Arg3.Expr.IVal <= 256 &&
@@ -319,12 +319,12 @@ static void StdFunc_memcpy (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
                (Arg1.Expr.IVal - StackPtr) + Arg3.Expr.IVal < 256) {
 
         /* It is possible to just use one index register even if the stack
-         * offset is not zero, by adjusting the offset to the constant
-         * address accordingly. But we cannot do this if the data in
-         * question is in the register space or at an absolute address less
-         * than 256. Register space is zero page, which means that the
-         * address calculation could overflow in the linker.
-         */
+        ** offset is not zero, by adjusting the offset to the constant
+        ** address accordingly. But we cannot do this if the data in
+        ** question is in the register space or at an absolute address less
+        ** than 256. Register space is zero page, which means that the
+        ** address calculation could overflow in the linker.
+        */
         int AllowOneIndex = !ED_IsLocRegister (&Arg2.Expr) &&
                             !(ED_IsLocAbs (&Arg2.Expr) && Arg2.Expr.IVal < 256);
 
@@ -383,8 +383,8 @@ static void StdFunc_memcpy (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
         }
 
         /* memcpy returns the address, so the result is actually identical
-         * to the first argument.
-         */
+        ** to the first argument.
+        */
         *Expr = Arg1.Expr;
 
     } else if (ED_IsConstAbsInt (&Arg3.Expr) && Arg3.Expr.IVal <= 256 &&
@@ -393,12 +393,12 @@ static void StdFunc_memcpy (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
                ED_IsRVal (&Arg1.Expr) && ED_IsLocConst (&Arg1.Expr)) {
 
         /* It is possible to just use one index register even if the stack
-         * offset is not zero, by adjusting the offset to the constant
-         * address accordingly. But we cannot do this if the data in
-         * question is in the register space or at an absolute address less
-         * than 256. Register space is zero page, which means that the
-         * address calculation could overflow in the linker.
-         */
+        ** offset is not zero, by adjusting the offset to the constant
+        ** address accordingly. But we cannot do this if the data in
+        ** question is in the register space or at an absolute address less
+        ** than 256. Register space is zero page, which means that the
+        ** address calculation could overflow in the linker.
+        */
         int AllowOneIndex = !ED_IsLocRegister (&Arg1.Expr) &&
                             !(ED_IsLocAbs (&Arg1.Expr) && Arg1.Expr.IVal < 256);
 
@@ -457,8 +457,8 @@ static void StdFunc_memcpy (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
         }
 
         /* memcpy returns the address, so the result is actually identical
-         * to the first argument.
-         */
+        ** to the first argument.
+        */
         *Expr = Arg1.Expr;
 
     } else if (ED_IsConstAbsInt (&Arg3.Expr) && Arg3.Expr.IVal <= 256   &&
@@ -540,8 +540,8 @@ static void StdFunc_memset (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
     ConsumeComma ();
 
     /* Argument #2. This argument is special in that we will call another
-     * function if it is a constant zero.
-     */
+    ** function if it is a constant zero.
+    */
     ParseArg (&Arg2, Arg2Type);
     if ((Arg2.Flags & CF_CONST) != 0 && Arg2.Expr.IVal == 0) {
         /* Don't call memset, call bzero instead */
@@ -555,10 +555,10 @@ static void StdFunc_memset (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
     ConsumeComma ();
 
     /* Argument #3. Since memset is a fastcall function, we must load the
-     * arg into the primary if it is not already there. This parameter is
-     * also ignored for the calculation of the parameter size, since it is
-     * not passed via the stack.
-     */
+    ** arg into the primary if it is not already there. This parameter is
+    ** also ignored for the calculation of the parameter size, since it is
+    ** not passed via the stack.
+    */
     ParseArg (&Arg3, Arg3Type);
     if (Arg3.Flags & CF_CONST) {
         LoadExpr (CF_NONE, &Arg3.Expr);
@@ -573,8 +573,8 @@ static void StdFunc_memset (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
         Warning ("Call to memset has no effect");
 
         /* Remove all of the generated code but the load of the first
-         * argument, which is what memset returns.
-         */
+        ** argument, which is what memset returns.
+        */
         RemoveCode (&Arg1.Push);
 
         /* Set the function result to the first argument */
@@ -585,14 +585,14 @@ static void StdFunc_memset (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
     }
 
     /* We've generated the complete code for the function now and know the
-     * types of all parameters. Check for situations where better code can
-     * be generated. If such a situation is detected, throw away the
-     * generated, and emit better code.
-     * Note: Lots of improvements would be possible here, but I will
-     * concentrate on the most common case: memset with arguments 2 and 3
-     * being constant numerical values. Some checks have shown that this
-     * covers nearly 90% of all memset calls.
-     */
+    ** types of all parameters. Check for situations where better code can
+    ** be generated. If such a situation is detected, throw away the
+    ** generated, and emit better code.
+    ** Note: Lots of improvements would be possible here, but I will
+    ** concentrate on the most common case: memset with arguments 2 and 3
+    ** being constant numerical values. Some checks have shown that this
+    ** covers nearly 90% of all memset calls.
+    */
     if (ED_IsConstAbsInt (&Arg3.Expr) && Arg3.Expr.IVal <= 256 &&
         ED_IsConstAbsInt (&Arg2.Expr) &&
         ((ED_IsRVal (&Arg1.Expr) && ED_IsLocConst (&Arg1.Expr)) ||
@@ -637,8 +637,8 @@ static void StdFunc_memset (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
         }
 
         /* memset returns the address, so the result is actually identical
-         * to the first argument.
-         */
+        ** to the first argument.
+        */
         *Expr = Arg1.Expr;
 
     } else if (ED_IsConstAbsInt (&Arg3.Expr) && Arg3.Expr.IVal <= 256 &&
@@ -665,8 +665,8 @@ static void StdFunc_memset (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
         AddCodeLine ("bne %s", LocalLabelName (Label));
 
         /* memset returns the address, so the result is actually identical
-         * to the first argument.
-         */
+        ** to the first argument.
+        */
         *Expr = Arg1.Expr;
 
     } else if (ED_IsConstAbsInt (&Arg3.Expr) && Arg3.Expr.IVal <= 256 &&
@@ -674,8 +674,8 @@ static void StdFunc_memset (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
                (Arg2.Expr.IVal != 0 || IS_Get (&CodeSizeFactor) > 200)) {
 
         /* Remove all of the generated code but the load of the first
-         * argument.
-         */
+        ** argument.
+        */
         RemoveCode (&Arg1.Push);
 
         /* We need a label */
@@ -702,8 +702,8 @@ static void StdFunc_memset (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
         }
 
         /* Load the function result pointer into a/x (x is still valid). This
-         * code will get removed by the optimizer if it is not used later.
-         */
+        ** code will get removed by the optimizer if it is not used later.
+        */
         AddCodeLine ("lda ptr1");
 
         /* The function result is an rvalue in the primary register */
@@ -759,10 +759,10 @@ static void StdFunc_strcmp (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
     ParseArg (&Arg2, Arg2Type);
 
     /* Since strcmp is a fastcall function, we must load the
-     * arg into the primary if it is not already there. This parameter is
-     * also ignored for the calculation of the parameter size, since it is
-     * not passed via the stack.
-     */
+    ** arg into the primary if it is not already there. This parameter is
+    ** also ignored for the calculation of the parameter size, since it is
+    ** not passed via the stack.
+    */
     if (Arg2.Flags & CF_CONST) {
         LoadExpr (CF_NONE, &Arg2.Expr);
     }
@@ -771,8 +771,8 @@ static void StdFunc_strcmp (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
     g_call (CF_FIXARGC, Func_strcmp, ParamSize);
 
     /* Get the element counts of the arguments. Then get the larger of the
-     * two into ECount1. This removes FLEXIBLE and UNSPECIFIED automatically
-     */
+    ** two into ECount1. This removes FLEXIBLE and UNSPECIFIED automatically
+    */
     ECount1 = ArrayElementCount (&Arg1);
     ECount2 = ArrayElementCount (&Arg2);
     if (ECount2 > ECount1) {
@@ -780,24 +780,24 @@ static void StdFunc_strcmp (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
     }
 
     /* If the second argument is the empty string literal, we can generate
-     * more efficient code.
-     */
+    ** more efficient code.
+    */
     if (ED_IsLocLiteral (&Arg2.Expr) &&
         IS_Get (&WritableStrings) == 0 &&
         GetLiteralSize (Arg2.Expr.LVal) == 1 &&
         GetLiteralStr (Arg2.Expr.LVal)[0] == '\0') {
 
         /* Drop the generated code so we have the first argument in the
-         * primary
-         */
+        ** primary
+        */
         RemoveCode (&Arg1.Push);
 
         /* We don't need the literal any longer */
         ReleaseLiteral (Arg2.Expr.LVal);
 
         /* We do now have Arg1 in the primary. Load the first character from
-         * this string and cast to int. This is the function result.
-         */
+        ** this string and cast to int. This is the function result.
+        */
         IsArray = IsTypeArray (Arg1.Type) && ED_IsRVal (&Arg1.Expr);
         if (IsArray && ED_IsLocStack (&Arg1.Expr) &&
             (Offs = ED_GetStackOffs (&Arg1.Expr, 0) < 256)) {
@@ -817,8 +817,8 @@ static void StdFunc_strcmp (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
             AddCodeLine ("lda %s", ED_GetLabelName (&Arg1.Expr, 0));
         } else {
             /* Drop part of the generated code so we have the first argument
-             * in the primary
-             */
+            ** in the primary
+            */
             RemoveCode (&Arg1.Push);
 
             /* Fetch the first char */
@@ -957,10 +957,10 @@ static void StdFunc_strcpy (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
     ConsumeComma ();
 
     /* Argument #2. Since strcpy is a fastcall function, we must load the
-     * arg into the primary if it is not already there. This parameter is
-     * also ignored for the calculation of the parameter size, since it is
-     * not passed via the stack.
-     */
+    ** arg into the primary if it is not already there. This parameter is
+    ** also ignored for the calculation of the parameter size, since it is
+    ** not passed via the stack.
+    */
     ParseArg (&Arg2, Arg2Type);
     if (Arg2.Flags & CF_CONST) {
         LoadExpr (CF_NONE, &Arg2.Expr);
@@ -973,10 +973,10 @@ static void StdFunc_strcpy (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
     ECount = ArrayElementCount (&Arg1);
 
     /* We've generated the complete code for the function now and know the
-     * types of all parameters. Check for situations where better code can
-     * be generated. If such a situation is detected, throw away the
-     * generated, and emit better code.
-     */
+    ** types of all parameters. Check for situations where better code can
+    ** be generated. If such a situation is detected, throw away the
+    ** generated, and emit better code.
+    */
     if (((ED_IsRVal (&Arg2.Expr) && ED_IsLocConst (&Arg2.Expr)) ||
          (ED_IsLVal (&Arg2.Expr) && ED_IsLocRegister (&Arg2.Expr))) &&
         ((ED_IsRVal (&Arg1.Expr) && ED_IsLocConst (&Arg1.Expr)) ||
@@ -1019,12 +1019,12 @@ static void StdFunc_strcpy (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
                ED_IsRVal (&Arg1.Expr) && ED_IsLocConst (&Arg1.Expr)) {
 
         /* It is possible to just use one index register even if the stack
-         * offset is not zero, by adjusting the offset to the constant
-         * address accordingly. But we cannot do this if the data in
-         * question is in the register space or at an absolute address less
-         * than 256. Register space is zero page, which means that the
-         * address calculation could overflow in the linker.
-         */
+        ** offset is not zero, by adjusting the offset to the constant
+        ** address accordingly. But we cannot do this if the data in
+        ** question is in the register space or at an absolute address less
+        ** than 256. Register space is zero page, which means that the
+        ** address calculation could overflow in the linker.
+        */
         int AllowOneIndex = !ED_IsLocRegister (&Arg1.Expr) &&
                             !(ED_IsLocAbs (&Arg1.Expr) && Arg1.Expr.IVal < 256);
 
@@ -1062,12 +1062,12 @@ static void StdFunc_strcpy (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
                StackPtr >= -255) {
 
         /* It is possible to just use one index register even if the stack
-         * offset is not zero, by adjusting the offset to the constant
-         * address accordingly. But we cannot do this if the data in
-         * question is in the register space or at an absolute address less
-         * than 256. Register space is zero page, which means that the
-         * address calculation could overflow in the linker.
-         */
+        ** offset is not zero, by adjusting the offset to the constant
+        ** address accordingly. But we cannot do this if the data in
+        ** question is in the register space or at an absolute address less
+        ** than 256. Register space is zero page, which means that the
+        ** address calculation could overflow in the linker.
+        */
         int AllowOneIndex = !ED_IsLocRegister (&Arg2.Expr) &&
                             !(ED_IsLocAbs (&Arg2.Expr) && Arg2.Expr.IVal < 256);
 
@@ -1140,8 +1140,8 @@ static void StdFunc_strlen (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
     hie1 (&Arg);
 
     /* Check if the argument is an array. If so, remember the element count.
-     * Otherwise set the element count to undefined.
-     */
+    ** Otherwise set the element count to undefined.
+    */
     IsArray = IsTypeArray (Arg.Type);
     if (IsArray) {
         ECount = GetElementCount (Arg.Type);
@@ -1156,19 +1156,19 @@ static void StdFunc_strlen (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
     }
 
     /* Check if the elements of an array can be addressed by a byte sized
-     * index. This is true if the size of the array is known and less than
-     * 256.
-     */
+    ** index. This is true if the size of the array is known and less than
+    ** 256.
+    */
     IsByteIndex = (ECount != UNSPECIFIED && ECount < 256);
 
     /* Do type conversion */
     TypeConversion (&Arg, ArgType);
 
     /* If the expression is a literal, and if string literals are read
-     * only, we can calculate the length of the string and remove it
-     * from the literal pool. Otherwise we have to calculate the length
-     * at runtime.
-     */
+    ** only, we can calculate the length of the string and remove it
+    ** from the literal pool. Otherwise we have to calculate the length
+    ** at runtime.
+    */
     if (ED_IsLocLiteral (&Arg) && IS_Get (&WritableStrings) == 0) {
 
         /* Constant string literal */
@@ -1178,9 +1178,9 @@ static void StdFunc_strlen (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
         ReleaseLiteral (Arg.LVal);
 
     /* We will inline strlen for arrays with constant addresses, if either the
-     * inlining was forced on the command line, or the array is smaller than
-     * 256, so the inlining is considered safe.
-     */
+    ** inlining was forced on the command line, or the array is smaller than
+    ** 256, so the inlining is considered safe.
+    */
     } else if (ED_IsLocConst (&Arg) && IsArray &&
                (IS_Get (&InlineStdFuncs) || IsByteIndex)) {
 
@@ -1199,8 +1199,8 @@ static void StdFunc_strlen (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
         Expr->Type = type_size_t;
 
     /* We will inline strlen for arrays on the stack, if the array is
-     * completely within the reach of a byte sized index register.
-     */
+    ** completely within the reach of a byte sized index register.
+    */
     } else if (ED_IsLocStack (&Arg) && IsArray && IsByteIndex &&
                (Arg.IVal - StackPtr) + ECount < 256) {
 
@@ -1224,9 +1224,9 @@ static void StdFunc_strlen (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
         Expr->Type = type_size_t;
 
     /* strlen for a string that is pointed to by a register variable will only
-     * get inlined if requested on the command line, since we cannot know how
-     * big the buffer actually is, so inlining is not always safe.
-     */
+    ** get inlined if requested on the command line, since we cannot know how
+    ** big the buffer actually is, so inlining is not always safe.
+    */
     } else if (ED_IsLocRegister (&Arg) && ED_IsLVal (&Arg) && IsPtr &&
                IS_Get (&InlineStdFuncs)) {
 
@@ -1245,9 +1245,9 @@ static void StdFunc_strlen (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
         Expr->Type = type_size_t;
 
     /* Last check: We will inline a generic strlen routine if inlining was
-     * requested on the command line, and the code size factor is more than
-     * 400 (code is 13 bytes vs. 3 for a jsr call).
-     */
+    ** requested on the command line, and the code size factor is more than
+    ** 400 (code is 13 bytes vs. 3 for a jsr call).
+    */
     } else if (IS_Get (&CodeSizeFactor) > 400 && IS_Get (&InlineStdFuncs)) {
 
         /* Load the expression into the primary */
@@ -1297,8 +1297,8 @@ static void StdFunc_strlen (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
 
 int FindStdFunc (const char* Name)
 /* Determine if the given function is a known standard function that may be
- * called in a special way. If so, return the index, otherwise return -1.
- */
+** called in a special way. If so, return the index, otherwise return -1.
+*/
 {
     /* Look into the table for known names */
     struct StdFuncDesc* D =
index baac616c3ad0547449fc0fc41f8dee25a009057c..7fc3abd3ecc7f0b20e3ef11a030088f6980231fb 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 1998-2004 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -52,8 +52,8 @@
 
 int FindStdFunc (const char* Name);
 /* Determine if the given function is a known standard function that may be
- * called in a special way. If so, return the index, otherwise return -1.
- */
+** called in a special way. If so, return the index, otherwise return -1.
+*/
 
 void HandleStdFunc (int Index, struct FuncDesc* F, ExprDesc* lval);
 /* Generate code for a known standard function. */
index f59eca2e433611e1aea5880e4dc703f0a86ae9f7..84b516dc30180f92f85cd449bed8142bd5993e22 100644 (file)
@@ -73,9 +73,9 @@
 
 static int CheckLabelWithoutStatement (void)
 /* Called from Statement() after a label definition. Will check for a
- * following closing curly brace. This means that a label is not followed
- * by a statement which is required by the standard. Output an error if so.
- */
+** following closing curly brace. This means that a label is not followed
+** by a statement which is required by the standard. Output an error if so.
+*/
 {
     if (CurTok.Tok == TOK_RCURLY) {
         Error ("Label at end of compound statement");
@@ -89,9 +89,9 @@ static int CheckLabelWithoutStatement (void)
 
 static void CheckTok (token_t Tok, const char* Msg, int* PendingToken)
 /* Helper function for Statement. Will check for Tok and print Msg if not
- * found. If PendingToken is NULL, it will the skip the token, otherwise
- * it will store one to PendingToken.
- */
+** found. If PendingToken is NULL, it will the skip the token, otherwise
+** it will store one to PendingToken.
+*/
 {
     if (CurTok.Tok != Tok) {
         Error ("%s", Msg);
@@ -106,12 +106,12 @@ static void CheckTok (token_t Tok, const char* Msg, int* PendingToken)
 
 static void CheckSemi (int* PendingToken)
 /* Helper function for Statement. Will check for a semicolon and print an
- * error message if not found (plus some error recovery). If PendingToken is
- * NULL, it will the skip the token, otherwise it will store one to
- * PendingToken.
- * This function is a special version of CheckTok with the addition of the
- * error recovery.
- */
+** error message if not found (plus some error recovery). If PendingToken is
+** NULL, it will the skip the token, otherwise it will store one to
+** PendingToken.
+** This function is a special version of CheckTok with the addition of the
+** error recovery.
+*/
 {
     int HaveToken = (CurTok.Tok == TOK_SEMI);
     if (!HaveToken) {
@@ -171,8 +171,8 @@ static int IfStatement (void)
         g_defcodelabel (Label1);
 
         /* Since there's no else clause, we're not sure, if the a break
-         * statement is really executed.
-         */
+        ** statement is really executed.
+        */
         return 0;
 
     } else {
@@ -185,8 +185,8 @@ static int IfStatement (void)
         NextToken ();
 
         /* If the if expression was always true, the code in the else branch
-         * is never executed. Output a warning if this is the case.
-         */
+        ** is never executed. Output a warning if this is the case.
+        */
         if (TestResult == TESTEXPR_TRUE) {
             Warning ("Unreachable code");
         }
@@ -261,13 +261,13 @@ static void WhileStatement (void)
     NextToken ();
 
     /* Add the loop to the loop stack. In case of a while loop, the condition
-     * label is used for continue statements.
-     */
+    ** label is used for continue statements.
+    */
     AddLoop (BreakLabel, CondLabel);
 
     /* We will move the code that evaluates the while condition to the end of
-     * the loop, so generate a jump here.
-     */
+    ** the loop, so generate a jump here.
+    */
     g_jump (CondLabel);
 
     /* Remember the current position */
@@ -296,8 +296,8 @@ static void WhileStatement (void)
     g_defcodelabel (BreakLabel);
 
     /* Eat remaining tokens that were delayed because of line info
-     * correctness
-     */
+    ** correctness
+    */
     SkipPending (PendingToken);
 
     /* Remove the loop from the loop stack */
@@ -318,9 +318,9 @@ static void ReturnStatement (void)
         hie0 (&Expr);
 
         /* If we return something in a void function, print an error and
-         * ignore the value. Otherwise convert the value to the type of the
-         * return.
-         */
+        ** ignore the value. Otherwise convert the value to the type of the
+        ** return.
+        */
         if (F_HasVoidReturn (CurrentFunc)) {
             Error ("Returning a value in function with return type void");
         } else {
@@ -429,8 +429,8 @@ static void ForStatement (void)
     NextToken ();
 
     /* Add the loop to the loop stack. A continue jumps to the start of the
-     * the increment condition.
-     */
+    ** the increment condition.
+    */
     AddLoop (BreakLabel, IncLabel);
 
     /* Skip the opening paren */
@@ -480,9 +480,9 @@ static void ForStatement (void)
     Statement (&PendingToken);
 
     /* If we had an increment expression, move the code to the bottom of
-     * the loop. In this case we don't need to jump there at the end of
-     * the loop body.
-     */
+    ** the loop. In this case we don't need to jump there at the end of
+    ** the loop body.
+    */
     if (HaveIncExpr) {
         CodeMark Here;
         GetCodePos (&Here);
@@ -506,8 +506,8 @@ static void ForStatement (void)
 
 static int CompoundStatement (void)
 /* Compound statement. Allow any number of statements inside braces. The
- * function returns true if the last statement was a break or return.
- */
+** function returns true if the last statement was a break or return.
+*/
 {
     int GotBreak;
 
@@ -549,13 +549,13 @@ static int CompoundStatement (void)
 
 int Statement (int* PendingToken)
 /* Statement parser. Returns 1 if the statement does a return/break, returns
- * 0 otherwise. If the PendingToken pointer is not NULL, the function will
- * not skip the terminating token of the statement (closing brace or
- * semicolon), but store true if there is a pending token, and false if there
- * is none. The token is always checked, so there is no need for the caller to
- * check this token, it must be skipped, however. If the argument pointer is
- * NULL, the function will skip the token.
- */
+** 0 otherwise. If the PendingToken pointer is not NULL, the function will
+** not skip the terminating token of the statement (closing brace or
+** semicolon), but store true if there is a pending token, and false if there
+** is none. The token is always checked, so there is no need for the caller to
+** check this token, it must be skipped, however. If the argument pointer is
+** NULL, the function will skip the token.
+*/
 {
     ExprDesc Expr;
     int GotBreak;
@@ -567,8 +567,8 @@ int Statement (int* PendingToken)
     }
 
     /* Check for a label. A label is always part of a statement, it does not
-     * replace one.
-     */
+    ** replace one.
+    */
     while (CurTok.Tok == TOK_IDENT && NextTok.Tok == TOK_COLON) {
         /* Handle the label */
         DoLabel ();
@@ -649,14 +649,14 @@ int Statement (int* PendingToken)
             /* Actual statement */
             ExprWithCheck (hie0, &Expr);
             /* Load the result only if it is an lvalue and the type is
-             * marked as volatile. Otherwise the load is useless.
-             */
+            ** marked as volatile. Otherwise the load is useless.
+            */
             if (ED_IsLVal (&Expr) && IsQualVolatile (Expr.Type)) {
                 LoadExpr (CF_NONE, &Expr);
             }
             /* If the statement didn't generate code, and is not of type
-             * void, emit a warning.
-             */
+            ** void, emit a warning.
+            */
             GetCodePos (&End);
             if (CodeRangeIsEmpty (&Start, &End) &&
                 !IsTypeVoid (Expr.Type)         &&
index 31a7c5f1997745c9835ededd5c03ed97b167468d..04ef728a369a500b49f1b58534e93daf5378fb15 100644 (file)
 
 int Statement (int* PendingToken);
 /* Statement parser. Returns 1 if the statement does a return/break, returns
- * 0 otherwise. If the PendingToken pointer is not NULL, the function will
- * not skip the terminating token of the statement (closing brace or
- * semicolon), but store true if there is a pending token, and false if there
- * is none. The token is always checked, so there is no need for the caller to
- * check this token, it must be skipped, however. If the argument pointer is
- * NULL, the function will skip the token.
- */
+** 0 otherwise. If the PendingToken pointer is not NULL, the function will
+** not skip the terminating token of the statement (closing brace or
+** semicolon), but store true if there is a pending token, and false if there
+** is none. The token is always checked, so there is no need for the caller to
+** check this token, it must be skipped, however. If the argument pointer is
+** NULL, the function will skip the token.
+*/
 
 
 
index d351738f55a9cff98903e6c0aa37736871eabe3b..0aefc051c760165f001185b220528d222e0c56e8 100644 (file)
@@ -102,8 +102,8 @@ void SwitchStatement (void)
     NextToken ();
 
     /* Read the switch expression and load it into the primary. It must have
-     * integer type.
-     */
+    ** integer type.
+    */
     ConsumeLParen ();
     Expression0 (&SwitchExpr);
     if (!IsClassInt (SwitchExpr.Type))  {
@@ -114,20 +114,20 @@ void SwitchStatement (void)
     ConsumeRParen ();
 
     /* Add a jump to the switch code. This jump is usually unnecessary,
-     * because the switch code will moved up just behind the switch
-     * expression. However, in rare cases, there's a label at the end of
-     * the switch expression. This label will not get moved, so the code
-     * jumps around the switch code, and after moving the switch code,
-     * things look really weird. If we add a jump here, we will never have
-     * a label attached to the current code position, and the jump itself
-     * will get removed by the optimizer if it is unnecessary.
-     */
+    ** because the switch code will moved up just behind the switch
+    ** expression. However, in rare cases, there's a label at the end of
+    ** the switch expression. This label will not get moved, so the code
+    ** jumps around the switch code, and after moving the switch code,
+    ** things look really weird. If we add a jump here, we will never have
+    ** a label attached to the current code position, and the jump itself
+    ** will get removed by the optimizer if it is unnecessary.
+    */
     SwitchCodeLabel = GetLocalLabel ();
     g_jump (SwitchCodeLabel);
 
     /* Remember the current code position. We will move the switch code
-     * to this position later.
-     */
+    ** to this position later.
+    */
     GetCodePos (&CaseCodeStart);
 
     /* Setup the control structure, save the old and activate the new one */
@@ -150,8 +150,8 @@ void SwitchStatement (void)
     }
 
     /* Parse the following statement, which will actually be a compound
-     * statement because of the curly brace at the current input position
-     */
+    ** statement because of the curly brace at the current input position
+    */
     HaveBreak = Statement (&RCurlyBrace);
 
     /* Check if we had any labels */
@@ -160,12 +160,12 @@ void SwitchStatement (void)
     }
 
     /* If the last statement did not have a break, we may have an open
-     * label (maybe from an if or similar). Emitting code and then moving
-     * this code to the top will also move the label to the top which is
-     * wrong. So if the last statement did not have a break (which would
-     * carry the label), add a jump to the exit. If it is useless, the
-     * optimizer will remove it later.
-     */
+    ** label (maybe from an if or similar). Emitting code and then moving
+    ** this code to the top will also move the label to the top which is
+    ** wrong. So if the last statement did not have a break (which would
+    ** carry the label), add a jump to the exit. If it is useless, the
+    ** optimizer will remove it later.
+    */
     if (!HaveBreak) {
         g_jump (ExitLabel);
     }
@@ -200,8 +200,8 @@ void SwitchStatement (void)
     FreeCaseNodeColl (SwitchData.Nodes);
 
     /* If the case statement was (correctly) terminated by a closing curly
-     * brace, skip it now.
-     */
+    ** brace, skip it now.
+    */
     if (RCurlyBrace) {
         NextToken ();
     }
index aca0ac63a90ba44fafa571f0c30dcb5f48011ba0..aa5949f9797f7c5f185776ef47ba0eb098909254 100644 (file)
@@ -158,8 +158,8 @@ int SymIsOutputFunc (const SymEntry* Sym)
 /* Return true if this is a function that must be output */
 {
     /* Symbol must be a function which is defined and either extern or
-     * static and referenced.
-     */
+    ** static and referenced.
+    */
     return IsTypeFunc (Sym->Type)               &&
            SymIsDef (Sym)                       &&
            (Sym->Flags & (SC_REF | SC_EXTERN));
index e4a2c87e2e9fd49644e3abeaacc2c1d1d3fe559e..4fa84255b4b4d8d1e07349dba19c49dce4a9f403 100644 (file)
@@ -123,8 +123,8 @@ struct SymEntry {
         unsigned                Label;
 
         /* Register bank offset and offset of the saved copy on stack for
-         * register variables.
-         */
+        ** register variables.
+        */
         struct {
             int                 RegOffs;
             int                 SaveOffs;
index f0b5fefe20037259c1183b64964f7cc1148813ee..191daddad50df5c213effd4617921f5891bbd38c 100644 (file)
@@ -159,8 +159,8 @@ static void CheckSymTable (SymTable* Tab)
         if (!SymIsTypeDef (Entry)) {
 
             /* Check if the symbol is one with storage, and it if it was
-             * defined but not used.
-             */
+            ** defined but not used.
+            */
             if (((Flags & SC_AUTO) || (Flags & SC_STATIC)) && (Flags & SC_EXTERN) == 0) {
                 if (SymIsDef (Entry) && !SymIsRef (Entry) &&
                     !SymHasAttr (Entry, atUnused)) {
@@ -375,9 +375,9 @@ void EnterStructLevel (void)
     SymTable* S;
 
     /* Get a new symbol table and make it current. Note: Structs and enums
-     * nested in struct scope are NOT local to the struct but visible in the
-     * outside scope. So we will NOT create a new struct or enum table.
-     */
+    ** nested in struct scope are NOT local to the struct but visible in the
+    ** outside scope. So we will NOT create a new struct or enum table.
+    */
     S = NewSymTable (SYMTAB_SIZE_BLOCK);
     S->PrevTab  = SymTab;
     SymTab      = S;
@@ -497,8 +497,8 @@ SymEntry* FindStructField (const Type* T, const char* Name)
         CHECK (Struct != 0);
 
         /* Now search in the struct symbol table. Beware: The table may not
-         * exist.
-         */
+        ** exist.
+        */
         if (Struct->V.S.SymTab) {
             Field = FindSymInTable (Struct->V.S.SymTab, Name, HashStr (Name));
         }
@@ -762,9 +762,9 @@ SymEntry* AddGlobalSym (const char* Name, const Type* T, unsigned Flags)
         EType = Entry->Type;
 
         /* If we are handling arrays, the old entry or the new entry may be an
-         * incomplete declaration. Accept this, and if the exsting entry is
-         * incomplete, complete it.
-         */
+        ** incomplete declaration. Accept this, and if the exsting entry is
+        ** incomplete, complete it.
+        */
         if (IsTypeArray (T) && IsTypeArray (EType)) {
 
             /* Get the array sizes */
@@ -792,17 +792,17 @@ SymEntry* AddGlobalSym (const char* Name, const Type* T, unsigned Flags)
             }
 
             /* In case of a function, use the new type descriptor, since it
-             * contains pointers to the new symbol tables that are needed if
-             * an actual function definition follows. Be sure not to use the
-             * new descriptor if it contains a function declaration with an
-             * empty parameter list.
-             */
+            ** contains pointers to the new symbol tables that are needed if
+            ** an actual function definition follows. Be sure not to use the
+            ** new descriptor if it contains a function declaration with an
+            ** empty parameter list.
+            */
             if (IsFunc) {
                 /* Get the function descriptor from the new type */
                 FuncDesc* F = GetFuncDesc (T);
                 /* Use this new function descriptor if it doesn't contain
-                 * an empty parameter list.
-                 */
+                ** an empty parameter list.
+                */
                 if ((F->Flags & FD_EMPTY) == 0) {
                     Entry->V.F.Func = F;
                     SetFuncDesc (EType, F);
@@ -822,8 +822,8 @@ SymEntry* AddGlobalSym (const char* Name, const Type* T, unsigned Flags)
         Entry->Type = TypeDup (T);
 
         /* If this is a function, set the function descriptor and clear
-         * additional fields.
-         */
+        ** additional fields.
+        */
         if (IsFunc) {
             Entry->V.F.Func = GetFuncDesc (Entry->Type);
             Entry->V.F.Seg  = 0;
@@ -956,8 +956,8 @@ void EmitDebugInfo (void)
     /* Output info for locals if enabled */
     if (DebugInfo) {
         /* For cosmetic reasons in the output file, we will insert two tabs
-         * on global level and just one on local level.
-         */
+        ** on global level and just one on local level.
+        */
         if (LexicalLevel == LEX_LEVEL_GLOBAL) {
             Head = "\t.dbg\t\tsym";
         } else {
index 537ca784d2af12f16b13d7bcf5160251e55b0ec0..5bb7bf7e44eabd3da7f27f42a792a329f2cecb52 100644 (file)
@@ -51,9 +51,9 @@
 
 unsigned Test (unsigned Label, int Invert)
 /* Evaluate a boolean test expression and jump depending on the result of
- * the test and on Invert. The function returns one of the TESTEXPR_xx codes
- * defined above. If the jump is always true, a warning is output.
- */
+** the test and on Invert. The function returns one of the TESTEXPR_xx codes
+** defined above. If the jump is always true, a warning is output.
+*/
 {
     ExprDesc Expr;
     unsigned Result;
@@ -104,10 +104,10 @@ unsigned Test (unsigned Label, int Invert)
 
 unsigned TestInParens (unsigned Label, int Invert)
 /* Evaluate a boolean test expression in parenthesis and jump depending on
- * the result of the test * and on Invert. The function returns one of the
- * TESTEXPR_xx codes defined above. If the jump is always true, a warning is
- * output.
- */
+** the result of the test * and on Invert. The function returns one of the
+** TESTEXPR_xx codes defined above. If the jump is always true, a warning is
+** output.
+*/
 {
     unsigned Result;
 
index 67613482f3afee3381478c1b0a7bf257f8fa354c..478280a280db13fe526a56a8f223ad5431126b57 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2004      Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 
 unsigned Test (unsigned Label, int Invert);
 /* Evaluate a boolean test expression and jump depending on the result of
- * the test and on Invert. The function returns one of the TESTEXPR_xx codes
- * defined above. If the jump is always true, a warning is output.
- */
+** the test and on Invert. The function returns one of the TESTEXPR_xx codes
+** defined above. If the jump is always true, a warning is output.
+*/
 
 unsigned TestInParens (unsigned Label, int Invert);
 /* Evaluate a boolean test expression in parenthesis and jump depending on
- * the result of the test * and on Invert. The function returns one of the
- * TESTEXPR_xx codes defined above. If the jump is always true, a warning is
- * output.
- */
+** the result of the test * and on Invert. The function returns one of the
+** TESTEXPR_xx codes defined above. If the jump is always true, a warning is
+** output.
+*/
 
 
 
index cbb393b50a55c8233d0e3d271eb53498cd8c37c8..e59bf2e06b28b2651e26f684acdf977a31b1108f 100644 (file)
@@ -34,8 +34,8 @@
 
 
 /* Note: This is NOT some sort of code segment, it is used to store lines of
- * output that are textual (not real code) instead.
- */
+** output that are textual (not real code) instead.
+*/
 
 
 
index 87b02ac8760141b812f6ec19b673dd8dcb884a30..83ef0bccf57edaa02bf775675e725056e127df82 100644 (file)
@@ -34,8 +34,8 @@
 
 
 /* Note: This is NOT some sort of code segment, it is used to store lines of
- * output that are textual (not real code) instead.
- */
+** output that are textual (not real code) instead.
+*/
 
 
 
index 310abe9f65065a581bc6cba7a3ba772881b23aa4..67941026bc8ee24fe6b2890154b86ef12d29256a 100644 (file)
@@ -61,9 +61,9 @@ static void SetResult (typecmp_t* Result, typecmp_t Val)
 
 static int ParamsHaveDefaultPromotions (const FuncDesc* F)
 /* Check if any of the parameters of function F has a default promotion. In
- * this case, the function is not compatible with an empty parameter name list
- * declaration.
- */
+** this case, the function is not compatible with an empty parameter name list
+** declaration.
+*/
 {
     /* Get the symbol table */
     const SymTable* Tab = F->SymTab;
@@ -75,8 +75,8 @@ static int ParamsHaveDefaultPromotions (const FuncDesc* F)
     while (Sym && (Sym->Flags & SC_PARAM)) {
 
         /* If this is an integer type, check if the promoted type is equal
-         * to the original type. If not, we have a default promotion.
-         */
+        ** to the original type. If not, we have a default promotion.
+        */
         if (IsClassInt (Sym->Type)) {
             if (IntPromotion (Sym->Type) != Sym->Type) {
                 return 1;
@@ -95,8 +95,8 @@ static int ParamsHaveDefaultPromotions (const FuncDesc* F)
 
 static int EqualFuncParams (const FuncDesc* F1, const FuncDesc* F2)
 /* Compare two function symbol tables regarding function parameters. Return 1
- * if they are equal and 0 otherwise.
- */
+** if they are equal and 0 otherwise.
+*/
 {
     /* Get the symbol tables */
     const SymTable* Tab1 = F1->SymTab;
@@ -114,8 +114,8 @@ static int EqualFuncParams (const FuncDesc* F1, const FuncDesc* F2)
         Type* Type2 = Sym2->Type;
 
         /* If either of both functions is old style, apply the default
-         * promotions to the parameter type.
-         */
+        ** promotions to the parameter type.
+        */
         if (F1->Flags & FD_OLDSTYLE) {
             if (IsClassInt (Type1)) {
                 Type1 = IntPromotion (Type1);
@@ -139,8 +139,8 @@ static int EqualFuncParams (const FuncDesc* F1, const FuncDesc* F2)
     }
 
     /* Check both pointers against NULL or a non parameter to compare the
-     * field count
-     */
+    ** field count
+    */
     return (Sym1 == 0 || (Sym1->Flags & SC_PARAM) == 0) &&
            (Sym2 == 0 || (Sym2->Flags & SC_PARAM) == 0);
 }
@@ -222,8 +222,8 @@ static void DoCompare (const Type* lhs, const Type* rhs, typecmp_t* Result)
         RightQual = GetQualifier (rhs);
 
         /* If the left type is a pointer and the right is an array, both
-         * are compatible.
-         */
+        ** are compatible.
+        */
         if (LeftType == T_TYPE_PTR && RightType == T_TYPE_ARRAY) {
             RightType = T_TYPE_PTR;
         }
@@ -235,8 +235,8 @@ static void DoCompare (const Type* lhs, const Type* rhs, typecmp_t* Result)
         }
 
         /* On indirection level zero, a qualifier or sign difference is
-         * accepted. The types are no longer equal, but compatible.
-         */
+        ** accepted. The types are no longer equal, but compatible.
+        */
         if (LeftSign != RightSign) {
             if (ElementCount == 0) {
                 SetResult (Result, TC_SIGN_DIFF);
@@ -247,12 +247,12 @@ static void DoCompare (const Type* lhs, const Type* rhs, typecmp_t* Result)
         }
         if (LeftQual != RightQual) {
             /* On the first indirection level, different qualifiers mean
-             * that the types are still compatible. On the second level,
-             * this is a (maybe minor) error, so we create a special
-             * return code, since a qualifier is dropped from a pointer.
-             * Starting from the next level, the types are incompatible
-             * if the qualifiers differ.
-             */
+            ** that the types are still compatible. On the second level,
+            ** this is a (maybe minor) error, so we create a special
+            ** return code, since a qualifier is dropped from a pointer.
+            ** Starting from the next level, the types are incompatible
+            ** if the qualifiers differ.
+            */
             /* printf ("Ind = %d    %06X != %06X\n", Indirections, LeftQual, RightQual); */
             switch (Indirections) {
 
@@ -262,8 +262,8 @@ static void DoCompare (const Type* lhs, const Type* rhs, typecmp_t* Result)
 
                 case 1:
                     /* A non const value on the right is compatible to a
-                     * const one to the left, same for volatile.
-                     */
+                    ** const one to the left, same for volatile.
+                    */
                     if ((LeftQual & T_QUAL_CONST) < (RightQual & T_QUAL_CONST) ||
                         (LeftQual & T_QUAL_VOLATILE) < (RightQual & T_QUAL_VOLATILE)) {
                         SetResult (Result, TC_QUAL_DIFF);
@@ -291,13 +291,13 @@ static void DoCompare (const Type* lhs, const Type* rhs, typecmp_t* Result)
                 F2 = GetFuncDesc (rhs);
 
                 /* If one of both functions has an empty parameter list (which
-                 * does also mean, it is not a function definition, because the
-                 * flag is reset in this case), it is considered equal to any
-                 * other definition, provided that the other has no default
-                 * promotions in the parameter list. If none of both parameter
-                 * lists is empty, we have to check the parameter lists and
-                 * other attributes.
-                 */
+                ** does also mean, it is not a function definition, because the
+                ** flag is reset in this case), it is considered equal to any
+                ** other definition, provided that the other has no default
+                ** promotions in the parameter list. If none of both parameter
+                ** lists is empty, we have to check the parameter lists and
+                ** other attributes.
+                */
                 if (F1->Flags & FD_EMPTY) {
                     if ((F2->Flags & FD_EMPTY) == 0) {
                         if (ParamsHaveDefaultPromotions (F2)) {
@@ -348,9 +348,9 @@ static void DoCompare (const Type* lhs, const Type* rhs, typecmp_t* Result)
             case T_TYPE_STRUCT:
             case T_TYPE_UNION:
                 /* Compare the fields recursively. To do that, we fetch the
-                 * pointer to the struct definition from the type, and compare
-                 * the fields.
-                 */
+                ** pointer to the struct definition from the type, and compare
+                ** the fields.
+                */
                 Sym1 = GetSymEntry (lhs);
                 Sym2 = GetSymEntry (rhs);
 
@@ -368,9 +368,9 @@ static void DoCompare (const Type* lhs, const Type* rhs, typecmp_t* Result)
                 Tab2 = Sym2->V.S.SymTab;
 
                 /* One or both structs may be forward definitions. In this case,
-                 * the symbol tables are both non existant. Assume that the
-                 * structs are equal in this case.
-                 */
+                ** the symbol tables are both non existant. Assume that the
+                ** structs are equal in this case.
+                */
                 if (Tab1 != 0 && Tab2 != 0) {
 
                     if (EqualSymTables (Tab1, Tab2) == 0) {
index 9a6f3ab23f10bd4f9ebb5539459dcb92e14dc1c8..e4edd6a2e9d1219d5ed9c0935d6989af7158156c 100644 (file)
@@ -67,8 +67,8 @@ static void DoConversion (ExprDesc* Expr, const Type* NewType)
     OldType = Expr->Type;
 
     /* If we're converting to void, we're done. Note: This does also cover a
-     * conversion void -> void.
-     */
+    ** conversion void -> void.
+    */
     if (IsTypeVoid (NewType)) {
         ED_MakeRVal (Expr);     /* Never an lvalue */
         goto ExitPoint;
@@ -81,22 +81,22 @@ static void DoConversion (ExprDesc* Expr, const Type* NewType)
     }
 
     /* Get the sizes of the types. Since we've excluded void types, checking
-     * for known sizes makes sense here.
-     */
+    ** for known sizes makes sense here.
+    */
     OldSize = CheckedSizeOf (OldType);
     NewSize = CheckedSizeOf (NewType);
 
     /* lvalue? */
     if (ED_IsLVal (Expr)) {
 
-        /* We have an lvalue. If the new size is smaller than the new one,
-         * we don't need to do anything. The compiler will generate code
-         * to load only the portion of the value that is actually needed.
-         * This works only on a little endian architecture, but that's
-         * what we support.
-         * If both sizes are equal, do also leave the value alone.
-         * If the new size is larger, we must convert the value.
-         */
+        /* We have an lvalue. If the new size is smaller than the old one,
+        ** we don't need to do anything. The compiler will generate code
+        ** to load only the portion of the value that is actually needed.
+        ** This works only on a little endian architecture, but that's
+        ** what we support.
+        ** If both sizes are equal, do also leave the value alone.
+        ** If the new size is larger, we must convert the value.
+        */
         if (NewSize > OldSize) {
             /* Load the value into the primary */
             LoadExpr (CF_NONE, Expr);
@@ -111,17 +111,17 @@ static void DoConversion (ExprDesc* Expr, const Type* NewType)
     } else if (ED_IsLocAbs (Expr)) {
 
         /* A cast of a constant numeric value to another type. Be sure
-         * to handle sign extension correctly.
-         */
+        ** to handle sign extension correctly.
+        */
 
         /* Get the current and new size of the value */
         unsigned OldBits = OldSize * 8;
         unsigned NewBits = NewSize * 8;
 
         /* Check if the new datatype will have a smaller range. If it
-         * has a larger range, things are ok, since the value is
-         * internally already represented by a long.
-         */
+        ** has a larger range, things are OK, since the value is
+        ** internally already represented by a long.
+        */
         if (NewBits <= OldBits) {
 
             /* Cut the value to the new size */
@@ -139,9 +139,9 @@ static void DoConversion (ExprDesc* Expr, const Type* NewType)
     } else {
 
         /* The value is not a constant. If the sizes of the types are
-         * not equal, add conversion code. Be sure to convert chars
-         * correctly.
-         */
+        ** not equal, add conversion code. Be sure to convert chars
+        ** correctly.
+        */
         if (OldSize != NewSize) {
 
             /* Load the value into the primary */
@@ -164,9 +164,9 @@ ExitPoint:
 
 void TypeConversion (ExprDesc* Expr, Type* NewType)
 /* Do an automatic conversion of the given expression to the new type. Output
- * warnings or errors where this automatic conversion is suspicious or
- * impossible.
- */
+** warnings or errors where this automatic conversion is suspicious or
+** impossible.
+*/
 {
 #if 0
     /* Debugging */
@@ -181,8 +181,8 @@ void TypeConversion (ExprDesc* Expr, Type* NewType)
     /* First, do some type checking */
     if (IsTypeVoid (NewType) || IsTypeVoid (Expr->Type)) {
         /* If one of the sides are of type void, output a more apropriate
-         * error message.
-         */
+        ** error message.
+        */
         Error ("Illegal type");
     }
 
@@ -228,10 +228,10 @@ void TypeConversion (ExprDesc* Expr, Type* NewType)
             }
 
             /* Pointer to pointer assignment is valid, if:
-             *   - both point to the same types, or
-             *   - the rhs pointer is a void pointer, or
-             *   - the lhs pointer is a void pointer.
-             */
+            **   - both point to the same types, or
+            **   - the rhs pointer is a void pointer, or
+            **   - the lhs pointer is a void pointer.
+            */
             if (!IsTypeVoid (Indirect (NewType)) && !IsTypeVoid (Indirect (Expr->Type))) {
                 /* Compare the types */
                 switch (TypeCmp (NewType, Expr->Type)) {
index dd819e638227438a91a2e67211d612863309ce1f..8321aded41633f640786c6053a1fdae4720478a2 100644 (file)
@@ -51,9 +51,9 @@
 
 void TypeConversion (ExprDesc* Expr, Type* NewType);
 /* Do an automatic conversion of the given expression to the new type. Output
- * warnings or errors where this automatic conversion is suspicious or
- * impossible.
- */
+** warnings or errors where this automatic conversion is suspicious or
+** impossible.
+*/
 
 void TypeCast (ExprDesc* Expr);
 /* Handle an explicit cast. */
index 67cd9c7ba50d5dc6356e9840023e3cb4baa86191..ccc7ccb71b29976903820bb155609d41b09868a0 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 1998-2004 Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -45,8 +45,8 @@
 
 int PowerOf2 (unsigned long Val)
 /* Return the exponent if val is a power of two. Return -1 if val is not a
- * power of two.
- */
+** power of two.
+*/
 {
     int I;
     unsigned long Mask = 0x0001;
index 213ebf28a0815adb010ae0eb0fd96c8d02982b16..2aa8a2f2a2f9ae2a3dfd2162387f30c901c6440a 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 1998-2004 Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -46,8 +46,8 @@
 
 int PowerOf2 (unsigned long Val);
 /* Return the exponent if val is a power of two. Return -1 if val is not a
- * power of two.
- */
+** power of two.
+*/
 
 
 
index bec905142cf75ca154d4d7283687f8190bd13664..7b1c3219e3f4407cf739f9e38299a34d27f9e159 100644 (file)
 
 
 /*
- * The following is a corrected doc from the BGI font editor toolkit:
- *
- *                      BGI Stroke File Format
- *
- * The structure of Borland .CHR (stroke) files is as follows:
- *
- * ;  offset 0h is a Borland header:
- * ;
- *         HeaderSize      equ     080h
- *         DataSize        equ     (size of font file)
- *         descr           equ     "Triplex font"
- *         fname           equ     "TRIP"
- *         MajorVersion    equ     1
- *         MinorVersion    equ     0
- *
- *         db      'PK',8,8
- *         db      'BGI ',descr,'  V'
- *         db      MajorVersion+'0'
- *         db      (MinorVersion / 10)+'0',(MinorVersion mod 10)+'0'
- *         db      ' - 19 October 1987',0DH,0AH
- *         db      'Copyright (c) 1987 Borland International', 0dh,0ah
- *         db      0,1ah                           ; null & ctrl-Z = end
- *
- *         dw      HeaderSize                      ; size of header
- *         db      fname                           ; font name
- *         dw      DataSize                        ; font file size
- *         db      MajorVersion,MinorVersion       ; version #'s
- *         db      1,0                             ; minimal version #'s
- *
- *         db      (HeaderSize - $) DUP (0)        ; pad out to header size
- *
- * At offset 80h starts data for the file:
- *
- * ;               80h     '+'  flags stroke file type
- * ;               81h-82h  number chars in font file (n)
- * ;               83h      undefined
- * ;               84h      ASCII value of first char in file
- * ;               85h-86h  offset to stroke definitions (8+3n)
- * ;               87h      scan flag (normally 0)
- * ;               88h      distance from origin to top of capital
- * ;               89h      distance from origin to baseline
- * ;               8Ah      distance from origin to bottom descender
- * ;               8Bh-8Fh  undefined
- * ;               90h      offsets to individual character definitions
- * ;               90h+2n   width table (one word per character)
- * ;               90h+3n   start of character definitions
- * ;
- * The individual character definitions consist of a variable number of words
- * describing the operations required to render a character. Each word
- * consists of an (x,y) coordinate pair and a two-bit opcode, encoded as shown
- * here:
- *
- * Byte 1          7   6   5   4   3   2   1   0     bit #
- *                op1  <seven bit signed X coord>
- *
- * Byte 2          7   6   5   4   3   2   1   0     bit #
- *                op2  <seven bit signed Y coord>
- *
- *
- *           Opcodes
- *
- *         op1=0  op2=0  End of character definition.
- *         op1=1  op2=0  Move the pointer to (x,y)
- *         op1=1  op2=1  Draw from current pointer to (x,y)
- */
+** The following is a corrected doc from the BGI font editor toolkit:
+**
+**                      BGI Stroke File Format
+**
+** The structure of Borland .CHR (stroke) files is as follows:
+**
+** ;  offset 0h is a Borland header:
+** ;
+**         HeaderSize      equ     080h
+**         DataSize        equ     (size of font file)
+**         descr           equ     "Triplex font"
+**         fname           equ     "TRIP"
+**         MajorVersion    equ     1
+**         MinorVersion    equ     0
+**
+**         db      'PK',8,8
+**         db      'BGI ',descr,'  V'
+**         db      MajorVersion+'0'
+**         db      (MinorVersion / 10)+'0',(MinorVersion mod 10)+'0'
+**         db      ' - 19 October 1987',0DH,0AH
+**         db      'Copyright (c) 1987 Borland International', 0dh,0ah
+**         db      0,1ah                           ; null & ctrl-Z = end
+**
+**         dw      HeaderSize                      ; size of header
+**         db      fname                           ; font name
+**         dw      DataSize                        ; font file size
+**         db      MajorVersion,MinorVersion       ; version #'s
+**         db      1,0                             ; minimal version #'s
+**
+**         db      (HeaderSize - $) DUP (0)        ; pad out to header size
+**
+** At offset 80h starts data for the file:
+**
+** ;               80h     '+'  flags stroke file type
+** ;               81h-82h  number chars in font file (n)
+** ;               83h      undefined
+** ;               84h      ASCII value of first char in file
+** ;               85h-86h  offset to stroke definitions (8+3n)
+** ;               87h      scan flag (normally 0)
+** ;               88h      distance from origin to top of capital
+** ;               89h      distance from origin to baseline
+** ;               8Ah      distance from origin to bottom descender
+** ;               8Bh-8Fh  undefined
+** ;               90h      offsets to individual character definitions
+** ;               90h+2n   width table (one word per character)
+** ;               90h+3n   start of character definitions
+** ;
+** The individual character definitions consist of a variable number of words
+** describing the operations required to render a character. Each word
+** consists of an (x,y) coordinate pair and a two-bit opcode, encoded as shown
+** here:
+**
+** Byte 1          7   6   5   4   3   2   1   0     bit #
+**                op1  <seven bit signed X coord>
+**
+** Byte 2          7   6   5   4   3   2   1   0     bit #
+**                op2  <seven bit signed Y coord>
+**
+**
+**           Opcodes
+**
+**         op1=0  op2=0  End of character definition.
+**         op1=1  op2=0  Move the pointer to (x,y)
+**         op1=1  op2=1  Draw from current pointer to (x,y)
+*/
 
 
 
 /* The target file format is designed to be read by a cc65 compiled program
- * more easily. It should not be necessary to load the whole file into a
- * buffer to parse it, or seek within the file. Also using less memory if
- * possible would be fine. Therefore we use the following structure:
- *
- * Header portion:
- *      .byte   $54, $43, $48, $00              ; "TCH" version
- *      .word   <size of data portion>
- * Data portion:
- *      .byte   <top>                           ; Baseline to top
- *      .byte   <bottom>                        ; Baseline to bottom
- *      .byte   <height>                        ; Maximum char height
- *      .byte   <width>, ...                    ; $5F width bytes
- *      .word   <char definition offset>, ...   ; $5F char def offsets
- * Character definitions:
- *      .word   <converted opcode>, ...
- *      .byte   $80
- *
- * The baseline of the character is assume to be at position zero. top and
- * bottom are both positive values. The former extends in positive, the other
- * in negative direction of the baseline. height contains the sum of top and
- * bottom and is stored here just for easier handling.
- *
- * The opcodes get converted for easier handling: END is marked by bit 7
- * set in the first byte. The second byte of this opcode is not needed.
- * Bit 7 of the second byte marks a MOVE (bit 7 = 0) or DRAW (bit 7 = 1).
- *
- * The number of characters is fixed to $20..$7E (space to tilde), so character
- * widths and offsets can be stored in fixed size preallocated tables. The
- * space for the character definitions is allocated on the heap, it's size
- * is stored in the header.
- *
- * Above structure allows a program to read the header portion of the file,
- * validate it, then read the remainder of the file into memory in one chunk.
- * The character definition offsets will then be converted into pointers by
- * adding the character definition base pointer to each.
- */
+** more easily. It should not be necessary to load the whole file into a
+** buffer to parse it, or seek within the file. Also using less memory if
+** possible would be fine. Therefore we use the following structure:
+**
+** Header portion:
+**      .byte   $54, $43, $48, $00              ; "TCH" version
+**      .word   <size of data portion>
+** Data portion:
+**      .byte   <top>                           ; Baseline to top
+**      .byte   <bottom>                        ; Baseline to bottom
+**      .byte   <height>                        ; Maximum char height
+**      .byte   <width>, ...                    ; $5F width bytes
+**      .word   <char definition offset>, ...   ; $5F char def offsets
+** Character definitions:
+**      .word   <converted opcode>, ...
+**      .byte   $80
+**
+** The baseline of the character is assume to be at position zero. top and
+** bottom are both positive values. The former extends in positive, the other
+** in negative direction of the baseline. height contains the sum of top and
+** bottom and is stored here just for easier handling.
+**
+** The opcodes get converted for easier handling: END is marked by bit 7
+** set in the first byte. The second byte of this opcode is not needed.
+** Bit 7 of the second byte marks a MOVE (bit 7 = 0) or DRAW (bit 7 = 1).
+**
+** The number of characters is fixed to $20..$7E (space to tilde), so character
+** widths and offsets can be stored in fixed size preallocated tables. The
+** space for the character definitions is allocated on the heap, it's size
+** is stored in the header.
+**
+** Above structure allows a program to read the header portion of the file,
+** validate it, then read the remainder of the file into memory in one chunk.
+** The character definition offsets will then be converted into pointers by
+** adding the character definition base pointer to each.
+*/
 
 
 
@@ -227,8 +227,8 @@ static void OptVersion (const char* Opt attribute ((unused)),
 
 static void ConvertChar (StrBuf* Data, const unsigned char* Buf, int Remaining)
 /* Convert data for one character. Original data is in Buf, converted data
- * will be placed in Data.
- */
+** will be placed in Data.
+*/
 {
     /* Convert all drawing vectors for this character */
     while (1) {
@@ -289,11 +289,12 @@ static void ConvertFile (const char* Input, const char* Output)
     /* The header of a BGI vector font file */
     static const unsigned char ChrHeader[] = {
         /* According to the Borland docs, the following should work, but it
-         * doesn't. Seems like there are fonts that work, but don't have the
-         * "BGI" string in the header. So we use just the PK\b\b mark as
-         * a header.
-         *
-         * 0x50, 0x4B, 0x08, 0x08, 0x42, 0x47, 0x49, 0x20 */
+        ** doesn't. Seems like there are fonts that work, but don't have the
+        ** "BGI" string in the header. So we use just the PK\b\b mark as
+        ** a header.
+        **
+        ** 0x50, 0x4B, 0x08, 0x08, 0x42, 0x47, 0x49, 0x20
+        */
         0x50, 0x4B, 0x08, 0x08
     };
 
@@ -380,8 +381,8 @@ static void ConvertFile (const char* Input, const char* Output)
     Print (stderr, 1, "%.*s\n", (int) (MsgEnd - Buf - 4), Buf+4);
 
     /* Get pointers to the width table, the offset table and the vector data
-     * table. The first two corrected for 0x20 as first entry.
-     */
+    ** table. The first two corrected for 0x20 as first entry.
+    */
     OffsetBuf = Buf + 0x90 + ((0x20 - FirstChar) * 2);
     WidthBuf  = Buf + 0x90 + (CharCount * 2) + (0x20 - FirstChar);
     VectorBuf = Buf + 0x90 + (CharCount * 3);
@@ -425,8 +426,8 @@ static void ConvertFile (const char* Input, const char* Output)
     }
 
     /* If the output file is NULL, use the name of the input file with ".tch"
-     * appended.
-     */
+    ** appended.
+    */
     if (Output == 0) {
         Output = MakeFilename (Input, ".tch");
     }
index b9b191dcda0791952d2120ae30ef81fa3853348f..a0a6ed02b5ad88f06a50b5b3e2983a5a24cb5226 100644 (file)
@@ -34,8 +34,8 @@
 
 
 /* Check out if we have a spawn() function on the system, or if we must use
- * our own.
- */
+** our own.
+*/
 #if defined(_WIN32)
 #  define HAVE_SPAWN 1
 #else
 #endif
 
 /* GCC strictly follows http://c-faq.com/ansi/constmismatch.html and issues an
- * 'incompatible pointer type' warning - that can't be suppressed via #pragma.
- * The spawnvp() prototype of MinGW (http://www.mingw.org/) differs from the
- * one of MinGW-w64 (http://mingw-w64.sourceforge.net/) regarding constness.
- * So there's no alternative to actually distinguish these environments :-(
- */
+** 'incompatible pointer type' warning - that can't be suppressed via #pragma.
+** The spawnvp() prototype of MinGW (http://www.mingw.org/) differs from the
+** one of MinGW-w64 (http://mingw-w64.sourceforge.net/) regarding constness.
+** So there's no alternative to actually distinguish these environments :-(
+*/
 #define SPAWN_ARGV_CONST_CAST
 #if defined(__MINGW32__)
 #  include <_mingw.h>
@@ -122,8 +122,8 @@ static const char* OutputName = 0;
 static const char* LinkerConfig = 0;
 
 /* The name of the first input file. This will be used to construct the
- * executable file name if no explicit name is given.
- */
+** executable file name if no explicit name is given.
+*/
 static const char* FirstInput = 0;
 
 /* The names of the files for dependency generation */
@@ -226,8 +226,8 @@ static void CmdAddArgList (CmdDesc* Cmd, const char* ArgList)
             ++Cmd->ArgCount;
 
             /* If the argument was terminated by a comma, skip it, otherwise
-             * we're done.
-             */
+            ** we're done.
+            */
             if (*P == ',') {
                 /* Start over at next char */
                 Arg = ++P;
@@ -270,10 +270,10 @@ static void CmdAddFile (CmdDesc* Cmd, const char* File)
     }
 
     /* If the file name is not NULL (which is legal and is used to terminate
-     * the file list), check if the file name does already exist in the file
-     * list and print a warning if so. Regardless of the search result, add
-     * the file.
-     */
+    ** the file list), check if the file name does already exist in the file
+    ** list and print a warning if so. Regardless of the search result, add
+    ** the file.
+    */
     if (File) {
         unsigned I;
         for (I = 0; I < Cmd->FileCount; ++I) {
@@ -407,9 +407,9 @@ static void Link (void)
     unsigned I;
 
     /* Since linking is always the final step, if we have an output file name
-     * given, set it here. If we don't have an explicit output name given,
-     * try to build one from the name of the first input file.
-     */
+    ** given, set it here. If we don't have an explicit output name given,
+    ** try to build one from the name of the first input file.
+    */
     if (OutputName) {
 
         CmdSetOutput (&LD65, OutputName);
@@ -424,8 +424,8 @@ static void Link (void)
     }
 
     /* If we have a linker config file given, add it to the command line.
-     * Otherwise pass the target to the linker if we have one.
-     */
+    ** Otherwise pass the target to the linker if we have one.
+    */
     if (LinkerConfig) {
         if (Module) {
             Error ("Cannot use -C and --module together");
@@ -461,9 +461,9 @@ static void Link (void)
 
 static void AssembleFile (const char* File, unsigned ArgCount)
 /* Common routine to assemble a file. Will be called by Assemble() and
- * AssembleIntermediate(). Adds options common for both routines and
- * assembles the file. Will remove excess arguments after assembly.
- */
+** AssembleIntermediate(). Adds options common for both routines and
+** assembles the file. Will remove excess arguments after assembly.
+*/
 {
     /* Set the target system */
     CmdSetTarget (&CA65, Target);
@@ -471,9 +471,9 @@ static void AssembleFile (const char* File, unsigned ArgCount)
     /* Check if this is the last processing step */
     if (DoLink) {
         /* We're linking later. Add the output file of the assembly
-         * the the file list of the linker. The name of the output
-         * file is that of the input file with ".s" replaced by ".o".
-         */
+        ** the the file list of the linker. The name of the output
+        ** file is that of the input file with ".s" replaced by ".o".
+        */
         char* ObjName = MakeFilename (File, ".o");
         CmdAddFile (&LD65, ObjName);
         xfree (ObjName);
@@ -501,13 +501,13 @@ static void AssembleFile (const char* File, unsigned ArgCount)
 
 static void AssembleIntermediate (const char* SourceFile)
 /* Assemble an intermediate file which was generated by a previous processing
- * step with SourceFile as input. The -dep options won't be added and
- * the intermediate assembler file is removed after assembly.
- */
+** step with SourceFile as input. The -dep options won't be added and
+** the intermediate assembler file is removed after assembly.
+*/
 {
     /* Generate the name of the assembler output file from the source file
-     * name. It's the same name with the extension replaced by ".s"
-     */
+    ** name. It's the same name with the extension replaced by ".s"
+    */
     char* AsmName = MakeFilename (SourceFile, ".s");
 
     /* Assemble the intermediate assembler file */
@@ -532,9 +532,9 @@ static void Assemble (const char* File)
     unsigned ArgCount = CA65.ArgCount;
 
     /* We aren't assembling an intermediate file, but one requested by the
-     * user. So add a few options here if they were given on the command
-     * line.
-     */
+    ** user. So add a few options here if they were given on the command
+    ** line.
+    */
     if (DepName && *DepName) {
         CmdAddArg2 (&CA65, "--create-dep", DepName);
     }
@@ -560,10 +560,10 @@ static void Compile (const char* File)
     /* Check if this is the final step */
     if (DoAssemble) {
         /* We will assemble this file later. If a dependency file is to be
-         * generated, set the dependency target to be the final object file,
-         * not the intermediate assembler file. But beware: There may be an
-         * output name specified for the assembler.
-         */
+        ** generated, set the dependency target to be the final object file,
+        ** not the intermediate assembler file. But beware: There may be an
+        ** output name specified for the assembler.
+        */
         if (DepName || FullDepName) {
             /* Was an output name for the assembler specified? */
             if (!DoLink && OutputName) {
@@ -578,8 +578,8 @@ static void Compile (const char* File)
         }
     } else {
         /* If we won't assemble, this is the final step. In this case, set
-         * the output name if it was given.
-         */
+        ** the output name if it was given.
+        */
         if (OutputName) {
             CmdSetOutput (&CC65, OutputName);
         }
@@ -598,8 +598,8 @@ static void Compile (const char* File)
     CmdDelArgs (&CC65, ArgCount);
 
     /* If this is not the final step, assemble the generated file, then
-     * remove it
-     */
+    ** remove it
+    */
     if (DoAssemble) {
         /* Assemble the intermediate file and remove it */
         AssembleIntermediate (File);
@@ -615,8 +615,8 @@ static void CompileRes (const char* File)
     unsigned ArgCount = GRC.ArgCount;
 
     /* Resource files need an geos-apple or geos-cbm target but this
-     * is checked within grc65.
-     */
+    ** is checked within grc65.
+    */
     CmdSetTarget (&GRC, Target);
 
     /* Add the file as argument for the resource compiler */
@@ -632,8 +632,8 @@ static void CompileRes (const char* File)
     CmdDelArgs (&GRC, ArgCount);
 
     /* If this is not the final step, assemble the generated file, then
-     * remove it
-     */
+    ** remove it
+    */
     if (DoAssemble) {
         /* Assemble the intermediate file and remove it */
         AssembleIntermediate (File);
@@ -649,8 +649,8 @@ static void ConvertO65 (const char* File)
     unsigned ArgCount = CO65.ArgCount;
 
     /* If we won't assemble, this is the final step. In this case, set the
-     * output name.
-     */
+    ** output name.
+    */
     if (!DoAssemble && OutputName) {
         CmdSetOutput (&CO65, OutputName);
     }
@@ -668,8 +668,8 @@ static void ConvertO65 (const char* File)
     CmdDelArgs (&CO65, ArgCount);
 
     /* If this is not the final step, assemble the generated file, then
-     * remove it
-     */
+    ** remove it
+    */
     if (DoAssemble) {
         /* Assemble the intermediate file and remove it */
         AssembleIntermediate (File);
index b5068d5c07f1fcec80f0788ec512a0912326df8f..af036ebf757b6fd328058d90efda94f1ee959cac 100644 (file)
@@ -114,9 +114,9 @@ static const char* LabelPlusOffs (const char* Label, long Offs)
 static const char* RelocExpr (const O65Data* D, unsigned char SegID,
                               unsigned long Val, const O65Reloc* R)
 /* Generate the segment relative relocation expression. R is only used if the
- * expression contains am import, and may be NULL if this is an error (which
- * is then flagged).
- */
+** expression contains am import, and may be NULL if this is an error (which
+** is then flagged).
+*/
 {
     const O65Import* Import;
 
@@ -346,10 +346,10 @@ static void ConvertZeropageSeg (FILE* F, const O65Data* D)
 
     if (Model == O65_MODEL_CC65_MODULE) {
         /* o65 files of type cc65-module are linked together with a definition
-         * file for the zero page, but the zero page is not allocated in the
-         * module itself, but the locations are mapped to the zp locations of
-         * the main file.
-         */
+        ** file for the zero page, but the zero page is not allocated in the
+        ** module itself, but the locations are mapped to the zp locations of
+        ** the main file.
+        */
         fprintf (F, ".import\t__ZP_START__\t\t; Linker generated symbol\n");
         fprintf (F, "%s = __ZP_START__\n", ZeropageLabel);
     } else {
@@ -372,8 +372,8 @@ void Convert (const O65Data* D)
     char*       Author = 0;
 
     /* For now, we do only accept o65 files generated by the ld65 linker which
-     * have a specific format.
-     */
+    ** have a specific format.
+    */
     if (!Debug && D->Header.mode != O65_MODE_CC65) {
         Error ("Cannot convert o65 files of this type");
     }
@@ -382,9 +382,9 @@ void Convert (const O65Data* D)
     PrintO65Stats (D);
 
     /* Walk through the options and print them if verbose mode is enabled.
-     * Check for a os=cc65 option and bail out if we didn't find one (for
-     * now - later we switch to special handling).
-     */
+    ** Check for a os=cc65 option and bail out if we didn't find one (for
+    ** now - later we switch to special handling).
+    */
     for (I = 0; I < CollCount (&D->Options); ++I) {
 
         /* Get the next option */
index 36ec574d69693eede2d9e34fd579a1f916320391..87a6966b7f6b16676b7341f4704caf497c264e5f 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2003      Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -80,8 +80,8 @@ const char* GetModelName (O65Model M)
 
 O65Model FindModel (const char* ModelName)
 /* Map a model name to its identifier. Return O65_MODEL_INVALID if the name
- * could not be found. Case is ignored when comparing names.
- */
+** could not be found. Case is ignored when comparing names.
+*/
 {
     O65Model M;
     for (M = O65_MODEL_NONE; M < O65_MODEL_COUNT; ++M) {
index 18ad136f1d7282daff3feb78c1d8912c206e170b..e727d064751de6bb00b655121705fd74865ed94a 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2003      Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -73,8 +73,8 @@ const char* GetModelName (O65Model M);
 
 O65Model FindModel (const char* ModelName);
 /* Map a model name to its identifier. Return O65_MODEL_INVALID if the name
- * could not be found. Case is ignored when comparing names.
- */
+** could not be found. Case is ignored when comparing names.
+*/
 
 
 
index 693dff44725203bd69475152b532bc5c18d8eee3..3496995a89dc4d393fd58249c1886f47a3d0c3bd 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2002-2004 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -83,8 +83,8 @@ static O65Data* NewO65Data (void)
 
 static unsigned long ReadO65Size (FILE* F, const O65Header* H)
 /* Read a size variable (16 or 32 bit, depending on the mode word in the
- * header) from the o65 file.
- */
+** header) from the o65 file.
+*/
 {
     unsigned long Size = 0;     /* Initialize to avoid warnings */
     switch (H->mode & O65_SIZE_MASK) {
@@ -99,8 +99,8 @@ static unsigned long ReadO65Size (FILE* F, const O65Header* H)
 
 static void ReadO65Header (FILE* F, O65Header* H)
 /* Read an o65 header from the given file. The function will call Error if
- * something is wrong.
- */
+** something is wrong.
+*/
 {
     static const char Magic[3] = {
         O65_MAGIC_0, O65_MAGIC_1, O65_MAGIC_2   /* "o65" */
@@ -145,9 +145,9 @@ static void ReadO65Header (FILE* F, O65Header* H)
 
 static O65Option* ReadO65Option (FILE* F)
 /* Read the next O65 option from the given file. The option is stored into a
- * dynamically allocated O65Option struct which is returned. On end of options,
- * NULL is returned. On error, Error is called which terminates the program.
- */
+** dynamically allocated O65Option struct which is returned. On end of options,
+** NULL is returned. On error, Error is called which terminates the program.
+*/
 {
     O65Option* O;
 
@@ -304,8 +304,8 @@ static O65Export* ReadO65Export (FILE* F, const O65Header* H)
 
 static O65Data* ReadO65Data (FILE* F)
 /* Read a complete o65 file into dynamically allocated memory and return the
- * created O65Data struct.
- */
+** created O65Data struct.
+*/
 {
     unsigned long Count;
     O65Option* O;
@@ -353,8 +353,8 @@ static O65Data* ReadO65Data (FILE* F)
 
 O65Data* ReadO65File (const char* Name)
 /* Read a complete o65 file into dynamically allocated memory and return the
- * created O65Data struct.
- */
+** created O65Data struct.
+*/
 {
     O65Data* D;
 
@@ -391,9 +391,9 @@ const char* GetO65OSName (unsigned char OS)
 
 const char* GetO65OptionText (const O65Option* O)
 /* Return the data of the given option as a readable text. The function returns
- * a pointer to a static buffer that is reused on the next call, so if in doubt,
- * make a copy (and no, the function is not thread safe).
- */
+** a pointer to a static buffer that is reused on the next call, so if in doubt,
+** make a copy (and no, the function is not thread safe).
+*/
 {
     static char Buf[256];
     unsigned I, J;
index d2361d34803b3a9cb6214e0b25cb65e73fcbb8d9..dd0ea61b774fea2f6ff7aca43edf8cdbf0d8a58b 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2002-2003 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 
 
 /* This files exports structures and constants to handle the o65 relocatable
- * file format as defined by Andre Fachat. See the original document under
- *
- *      http://www.6502.org/users/andre/o65/fileformat.html
- *
- * for more information.
- */
+** file format as defined by Andre Fachat. See the original document under
+**
+**      http://www.6502.org/users/andre/o65/fileformat.html
+**
+** for more information.
+*/
 
 
 
@@ -215,17 +215,17 @@ struct O65Data {
 
 O65Data* ReadO65File (const char* Name);
 /* Read a complete o65 file into dynamically allocated memory and return the
- * created O65Data struct.
- */
+** created O65Data struct.
+*/
 
 const char* GetO65OSName (unsigned char OS);
 /* Return the name of the operating system given by OS */
 
 const char* GetO65OptionText (const O65Option* O);
 /* Return the data of the given option as a readable text. The function returns
- * a pointer to a static buffer that is reused on the next call, so if in doubt,
- * make a copy (and no, the function is not thread safe).
- */
+** a pointer to a static buffer that is reused on the next call, so if in doubt,
+** make a copy (and no, the function is not thread safe).
+*/
 
 
 
index f3a0f4195b51624cc07fbbf54aedf90561052c85..278ab1a00f5742e12aeeebf189bd40a5836d984f 100644 (file)
@@ -50,8 +50,8 @@
 
 void AbEnd (const char* Format, ...)
 /* Print a message preceeded by the program name and terminate the program
- * with an error exit code.
- */
+** with an error exit code.
+*/
 {
     va_list ap;
 
index e80db03a70f99d1cefa1d20de6912b50be2a43b8..a232857829176cd9ace5da76395c4cae9f5b54f7 100644 (file)
@@ -50,8 +50,8 @@
 
 void AbEnd (const char* Format, ...) attribute ((format (printf, 1, 2), noreturn));
 /* Print a message preceeded by the program name and terminate the program
- * with an error exit code.
- */
+** with an error exit code.
+*/
 
 
 
index faa150b1dd6f1a282ed832821699e269e87efefd..d4eff22bbccc5bd20fd75f592a59b6bdd35905b2 100644 (file)
@@ -62,8 +62,8 @@ const char* AddrSizeToStr (unsigned char AddrSize)
 
 unsigned char AddrSizeFromStr (const char* Str)
 /* Return the address size for a given string. Returns ADDR_SIZE_INVALID if
- * the string cannot be mapped to an address size.
- */
+** the string cannot be mapped to an address size.
+*/
 {
     static const struct {
         const char*     Name;
index ff61db413cef95d8eb7f427b11570e0fc6eb3d10..e2e0fa9bbda95009693191d3eb5b8f39692fc36c 100644 (file)
@@ -64,8 +64,8 @@ const char* AddrSizeToStr (unsigned char AddrSize);
 
 unsigned char AddrSizeFromStr (const char* Str);
 /* Return the address size for a given string. Returns ADDR_SIZE_INVALID if
- * the string cannot be mapped to an address size.
- */
+** the string cannot be mapped to an address size.
+*/
 
 
 
index 5712fce327963c43c75ff70d0f4f176afa098d40..c61658a2556caeb926d68be86581142c554cc36d 100644 (file)
@@ -46,9 +46,9 @@
 
 
 /* To factorize an alignment, we will use the following prime table. It lists
- * all primes up to 256, which means we're able to factorize alignments up to
- * 0x10000. This is checked in the code.
- */
+** all primes up to 256, which means we're able to factorize alignments up to
+** 0x10000. This is checked in the code.
+*/
 static const unsigned char Primes[] = {
       2,   3,   5,   7,  11,  13,  17,  19,  23,  29,
      31,  37,  41,  43,  47,  53,  59,  61,  67,  71,
@@ -138,8 +138,8 @@ static void Factorize (unsigned long Value, FactorizedNumber* F)
 
 unsigned long LeastCommonMultiple (unsigned long Left, unsigned long Right)
 /* Calculate the least common multiple of two numbers and return
- * the result.
- */
+** the result.
+*/
 {
     unsigned I;
     FactorizedNumber L, R;
@@ -150,11 +150,11 @@ unsigned long LeastCommonMultiple (unsigned long Left, unsigned long Right)
     Factorize (Right, &R);
 
     /* Generate the result from the factors.
-     * Some thoughts on range problems: Since the largest numbers we can
-     * factorize are 2^16 (0x10000), the only numbers that could produce an
-     * overflow when using 32 bits are exactly these. But the LCM for 2^16
-     * and 2^16 is 2^16 so this will never happen and we're safe.
-     */
+    ** Some thoughts on range problems: Since the largest numbers we can
+    ** factorize are 2^16 (0x10000), the only numbers that could produce an
+    ** overflow when using 32 bits are exactly these. But the LCM for 2^16
+    ** and 2^16 is 2^16 so this will never happen and we're safe.
+    */
     Res = L.Remainder * R.Remainder;
     for (I = 0; I < PRIME_COUNT; ++I) {
         unsigned P = (L.Powers[I] > R.Powers[I])? L.Powers[I] : R.Powers[I];
index 587225f00a7b797b21e22fd3a5dec800dde27dbc..b77cd41133576aa8baf1b828f839613b80af6d99 100644 (file)
 
 
 /* Maximum possible alignment. Beware: To increase the possible alignment it
- * is not enough to bump this value. Check the code inside.
- */
+** is not enough to bump this value. Check the code inside.
+*/
 #define MAX_ALIGNMENT   0x10000UL
 
 /* The following value marks what is considered a "large alignment" and worth
- * a warning if not suppressed.
- */
+** a warning if not suppressed.
+*/
 #define LARGE_ALIGNMENT 0x101UL
 
 
@@ -69,8 +69,8 @@
 
 unsigned long LeastCommonMultiple (unsigned long Left, unsigned long Right);
 /* Calculate the least common multiple of two numbers and return
- * the result.
- */
+** the result.
+*/
 
 unsigned long AlignAddr (unsigned long Addr, unsigned long Alignment);
 /* Align an address to the given alignment */
index f59ac06c7f6cd09bc79187f7ed9c6d13fc966610..c44ec7b523473f61fd52ee8a6caf487b3cee9b55 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2000-2004 Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -50,8 +50,8 @@
 #define CD_TYPE_MAX     6               /* Maximum numeric type value */
 
 /* ConDes priorities, zero is no valid priority and used to mark an empty
- * (missing) decl for this type throughout the code.
- */
+** (missing) decl for this type throughout the code.
+*/
 #define CD_PRIO_NONE    0               /* No priority (no decl) */
 #define CD_PRIO_MIN     1               /* Lowest priority */
 #define CD_PRIO_DEF     7               /* Default priority */
@@ -63,8 +63,8 @@
 #define CD_TYPE_INT     2               /* Interruptor */
 
 /* When part of an export in an object file, type and priority are encoded in
- * one byte. In this case, the following macros access the fields:
- */
+** one byte. In this case, the following macros access the fields:
+*/
 #define CD_GET_TYPE(v)          (((v) >> 5) & 0x07)
 #define CD_GET_PRIO(v)          (((v) & 0x1F) + 1)
 
index b1571f3f7f6d6cab9d54d87813d3269e8d3a42bb..b55fcfb197ece833fc51055ebb2d78d9e329c0f7 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2000-2004 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 
 
 /* This module contains replacements for functions in ctype.h besides other
- * functions. There is a problem with using ctype.h directly:
- * The parameter must have a value of "unsigned char" or EOF.
- * So on platforms where a char is signed, this may give problems or at
- * least warnings. The wrapper functions below will have an "char" parameter
- * but handle it correctly. They will NOT work for EOF, but this is not a
- * problem, since EOF is always handled separately.
- */
+** functions. There is a problem with using ctype.h directly:
+** The parameter must have a value of "unsigned char" or EOF.
+** So on platforms where a char is signed, this may give problems or at
+** least warnings. The wrapper functions below will have an "char" parameter
+** but handle it correctly. They will NOT work for EOF, but this is not a
+** problem, since EOF is always handled separately.
+*/
 
 
 
index 9a45b2adda73e39c3d4297befcd71797f4039f9a..5278dbc59e7b361855f9067d00df4ad15781207a 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2000-2004 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 
 
 /* This module contains replacements for functions in ctype.h besides other
- * functions. There is a problem with using ctype.h directly:
- * The parameter must have a value of "unsigned char" or EOF.
- * So on platforms where a char is signed, this may give problems or at
- * least warnings. The wrapper functions below will have an "char" parameter
- * but handle it correctly. They will NOT work for EOF, but this is not a
- * problem, since EOF is always handled separately.
- */
+** functions. There is a problem with using ctype.h directly:
+** The parameter must have a value of "unsigned char" or EOF.
+** So on platforms where a char is signed, this may give problems or at
+** least warnings. The wrapper functions below will have an "char" parameter
+** but handle it correctly. They will NOT work for EOF, but this is not a
+** problem, since EOF is always handled separately.
+*/
 
 
 
index a201a28a039c3cfe17750ee95d9e88d5fb0e3f67..738fa262678d9fef091f06b6d1abe47480f815fd 100644 (file)
@@ -73,9 +73,9 @@ extern void (*CheckFailed) (const char* Msg, const char* Cond,
 
 #define ABORT(s) CheckFailed (MsgProgramAborted, s, __FILE__, __LINE__)
 /* Use this one instead of FAIL if there is no internal program error but an
- * error condition that is caused by the user or operating system (FAIL and
- * ABORT are essentially the same but the message differs).
- */
+** error condition that is caused by the user or operating system (FAIL and
+** ABORT are essentially the same but the message differs).
+*/
 
 #define PRECONDITION(c) \
     ((void) ((c)? 0 : (CheckFailed (MsgPrecondition, #c, __FILE__, __LINE__), 0)))
index a7485e0df6667db57badad7c2e3ed3dc7cb1d52f..716df1efb3331fb00f4369ad7a0f14050905934d 100644 (file)
@@ -106,8 +106,8 @@ static void AddArg (CmdLine* L, char* Arg)
 
 static void ExpandFile (CmdLine* L, const char* Name)
 /* Add the contents of a file to the command line. Each line is a separate
- * argument with leading and trailing whitespace removed.
- */
+** argument with leading and trailing whitespace removed.
+*/
 {
     char Buf [256];
 
@@ -124,8 +124,8 @@ static void ExpandFile (CmdLine* L, const char* Name)
         const char* B = Buf;
 
         /* Skip trailing whitespace (this will also kill the newline that is
-         * appended by fgets().
-         */
+        ** appended by fgets().
+        */
         unsigned Len = strlen (Buf);
         while (Len > 0 && IsSpace (Buf [Len-1])) {
             --Len;
@@ -148,8 +148,8 @@ static void ExpandFile (CmdLine* L, const char* Name)
     }
 
     /* Close the file, ignore errors here since we had the file open for
-     * reading only.
-     */
+    ** reading only.
+    */
     (void) fclose (F);
 }
 
@@ -163,9 +163,9 @@ static void ExpandFile (CmdLine* L, const char* Name)
 
 void InitCmdLine (int* aArgCount, char** aArgVec[], const char* aProgName)
 /* Initialize command line parsing. aArgVec is the argument array terminated by
- * a NULL pointer (as usual), ArgCount is the number of valid arguments in the
- * array. Both arguments are remembered in static storage.
- */
+** a NULL pointer (as usual), ArgCount is the number of valid arguments in the
+** array. Both arguments are remembered in static storage.
+*/
 {
     CmdLine     L;
     int         I;
@@ -187,9 +187,9 @@ void InitCmdLine (int* aArgCount, char** aArgVec[], const char* aProgName)
     NewCmdLine (&L);
 
     /* Walk over the parameters and add them to the CmdLine struct. Add a
-     * special handling for arguments preceeded by the '@' sign - these are
-     * actually files containing arguments.
-     */
+    ** special handling for arguments preceeded by the '@' sign - these are
+    ** actually files containing arguments.
+    */
     for (I = 0; I < *aArgCount; ++I) {
 
         /* Get the next argument */
@@ -254,8 +254,8 @@ void InvDef (const char* Def)
 
 const char* GetArg (unsigned* ArgNum, unsigned Len)
 /* Get an argument for a short option. The argument may be appended to the
- * option itself or may be separate. Len is the length of the option string.
- */
+** option itself or may be separate. Len is the length of the option string.
+*/
 {
     const char* Arg = ArgVec[*ArgNum];
     if (Arg[Len] != '\0') {
index cd8d5e71ed950d2f202864162e44822c979a1c2c..b18906c7a1b01d65ce093533d05edd5987c314e6 100644 (file)
@@ -73,9 +73,9 @@ struct LongOpt {
 
 void InitCmdLine (int* aArgCount, char** aArgVec[], const char* aProgName);
 /* Initialize command line parsing. aArgVec is the argument array terminated by
- * a NULL pointer (as usual), ArgCount is the number of valid arguments in the
- * array. Both arguments are remembered in static storage.
- */
+** a NULL pointer (as usual), ArgCount is the number of valid arguments in the
+** array. Both arguments are remembered in static storage.
+*/
 
 void UnknownOption (const char* Opt) attribute ((noreturn));
 /* Print an error about an unknown option and die. */
@@ -91,8 +91,8 @@ void InvDef (const char* Def) attribute ((noreturn));
 
 const char* GetArg (unsigned* ArgNum, unsigned Len);
 /* Get an argument for a short option. The argument may be appended to the
- * option itself or may be separate. Len is the length of the option string.
- */
+** option itself or may be separate. Len is the length of the option string.
+*/
 
 void LongOption (unsigned* ArgNum, const LongOpt* OptTab, unsigned OptCount);
 /* Handle a long command line option */
index 2f321e287015236f51692fc12d51524a32a636e7..aa2aa64707c7d2392f3a1a3e2a960784facd9b1b 100644 (file)
@@ -78,8 +78,8 @@ Collection* InitCollection (Collection* C)
 
 void DoneCollection (Collection* C)
 /* Free the data for a collection. This will not free the data contained in
- * the collection.
- */
+** the collection.
+*/
 {
     /* Free the pointer array */
     xfree (C->Items);
@@ -110,9 +110,9 @@ void FreeCollection (Collection* C)
 
 void CollGrow (Collection* C, unsigned Size)
 /* Grow the collection C so it is able to hold Size items without a resize
- * being necessary. This can be called for performance reasons if the number
- * of items to be placed in the collection is known in advance.
- */
+** being necessary. This can be called for performance reasons if the number
+** of items to be placed in the collection is known in advance.
+*/
 {
     void** NewItems;
 
@@ -225,8 +225,8 @@ const void* CollConstLast (const Collection* C)
 #if !defined(HAVE_INLINE)
 void* CollPop (Collection* C)
 /* Remove the last segment from the stack and return it. Calls FAIL if the
- * collection is empty.
- */
+** collection is empty.
+*/
 {
     /* We must have at least one entry */
     PRECONDITION (C->Count > 0);
@@ -240,8 +240,8 @@ void* CollPop (Collection* C)
 
 int CollIndex (Collection* C, const void* Item)
 /* Return the index of the given item in the collection. Return -1 if the
- * item was not found in the collection.
- */
+** item was not found in the collection.
+*/
 {
     /* Linear search */
     unsigned I;
@@ -260,9 +260,9 @@ int CollIndex (Collection* C, const void* Item)
 
 void CollDelete (Collection* C, unsigned Index)
 /* Remove the item with the given index from the collection. This will not
- * free the item itself, just the pointer. All items with higher indices
- * will get moved to a lower position.
- */
+** free the item itself, just the pointer. All items with higher indices
+** will get moved to a lower position.
+*/
 {
     /* Check the index */
     PRECONDITION (Index < C->Count);
@@ -276,8 +276,8 @@ void CollDelete (Collection* C, unsigned Index)
 
 void CollDeleteItem (Collection* C, const void* Item)
 /* Delete the item pointer from the collection. The item must be in the
- * collection, otherwise FAIL will be called.
- */
+** collection, otherwise FAIL will be called.
+*/
 {
     /* Get the index of the entry */
     int Index = CollIndex (C, Item);
@@ -293,8 +293,8 @@ void CollDeleteItem (Collection* C, const void* Item)
 #if !defined(HAVE_INLINE)
 void CollReplace (Collection* C, void* Item, unsigned Index)
 /* Replace the item at the given position. The old item will not be freed,
- * just the pointer will get replaced.
- */
+** just the pointer will get replaced.
+*/
 {
     /* Check the index */
     PRECONDITION (Index < C->Count);
@@ -308,10 +308,10 @@ void CollReplace (Collection* C, void* Item, unsigned Index)
 
 void CollReplaceExpand (Collection* C, void* Item, unsigned Index)
 /* If Index is a valid index for the collection, replace the item at this
- * position by the one passed. If the collection is too small, expand it,
- * filling unused pointers with NULL, then add the new item at the given
- * position.
- */
+** position by the one passed. If the collection is too small, expand it,
+** filling unused pointers with NULL, then add the new item at the given
+** position.
+*/
 {
     if (Index < C->Count) {
         /* Collection is already large enough */
@@ -341,10 +341,10 @@ void CollReplaceExpand (Collection* C, void* Item, unsigned Index)
 
 void CollMove (Collection* C, unsigned OldIndex, unsigned NewIndex)
 /* Move an item from one position in the collection to another. OldIndex
- * is the current position of the item, NewIndex is the new index after
- * the function has done it's work. Existing entries with indices NewIndex
- * and up are moved one position upwards.
- */
+** is the current position of the item, NewIndex is the new index after
+** the function has done it's work. Existing entries with indices NewIndex
+** and up are moved one position upwards.
+*/
 {
     /* Get the item and remove it from the collection */
     void* Item = CollAt (C, OldIndex);
@@ -364,11 +364,11 @@ void CollMove (Collection* C, unsigned OldIndex, unsigned NewIndex)
 
 void CollMoveMultiple (Collection* C, unsigned Start, unsigned Count, unsigned Target)
 /* Move a range of items from one position to another. Start is the index
- * of the first item to move, Count is the number of items and Target is
- * the index of the target item. The item with the index Start will later
- * have the index Target. All items with indices Target and above are moved
- * to higher indices.
- */
+** of the first item to move, Count is the number of items and Target is
+** the index of the target item. The item with the index Start will later
+** have the index Target. All items with indices Target and above are moved
+** to higher indices.
+*/
 {
     void** TmpItems;
     unsigned Bytes;
@@ -391,9 +391,9 @@ void CollMoveMultiple (Collection* C, unsigned Start, unsigned Count, unsigned T
     memcpy (TmpItems, C->Items + Start, Bytes);
 
     /* Check if the range has to be moved upwards or downwards. Move the
-     * existing items to their final location, so that the space needed
-     * for the items now in temporary storage is unoccupied.
-     */
+    ** existing items to their final location, so that the space needed
+    ** for the items now in temporary storage is unoccupied.
+    */
     if (Target < Start) {
 
         /* Move downwards */
@@ -473,9 +473,9 @@ static void QuickSort (Collection* C, int Lo, int Hi,
 
 void CollTransfer (Collection* Dest, const Collection* Source)
 /* Transfer all items from Source to Dest. Anything already in Dest is left
- * untouched. The items in Source are not changed and are therefore in both
- * Collections on return.
- */
+** untouched. The items in Source are not changed and are therefore in both
+** Collections on return.
+*/
 {
     /* Be sure there's enough room in Dest */
     CollGrow (Dest, Dest->Count + Source->Count);
@@ -495,10 +495,10 @@ void CollSort (Collection* C,
                int (*Compare) (void*, const void*, const void*),
                void* Data)
 /* Sort the collection using the given compare function. The data pointer is
- * passed as *first* element to the compare function, it's not used by the
- * sort function itself. The other two pointer passed to the Compare function
- * are pointers to objects.
- */
+** passed as *first* element to the compare function, it's not used by the
+** sort function itself. The other two pointer passed to the Compare function
+** are pointers to objects.
+*/
 {
     if (C->Count > 1) {
         QuickSort (C, 0, C->Count-1, Compare, Data);
index b0a64557ddafd9bc8c5b873f4e3385c7857bca0b..5114862c47e21acc1137b66ed5ad51c08cb9e175 100644 (file)
@@ -81,8 +81,8 @@ Collection* InitCollection (Collection* C);
 
 void DoneCollection (Collection* C);
 /* Free the data for a collection. This will not free the data contained in
- * the collection.
- */
+** the collection.
+*/
 
 Collection* NewCollection (void);
 /* Create and return a new collection */
@@ -92,9 +92,9 @@ void FreeCollection (Collection* C);
 
 void CollGrow (Collection* C, unsigned Size);
 /* Grow the collection C so it is able to hold Size items without a resize
- * being necessary. This can be called for performance reasons if the number
- * of items to be placed in the collection is known in advance.
- */
+** being necessary. This can be called for performance reasons if the number
+** of items to be placed in the collection is known in advance.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE unsigned CollCount (const Collection* C)
@@ -195,8 +195,8 @@ const void* CollConstLast (const Collection* C);
 #if defined(HAVE_INLINE)
 INLINE void* CollPop (Collection* C)
 /* Remove the last segment from the stack and return it. Calls FAIL if the
- * collection is empty.
- */
+** collection is empty.
+*/
 {
     /* We must have at least one entry */
     PRECONDITION (C->Count > 0);
@@ -207,31 +207,31 @@ INLINE void* CollPop (Collection* C)
 #else
 void* CollPop (Collection* C);
 /* Remove the last segment from the stack and return it. Calls FAIL if the
- * collection is empty.
- */
+** collection is empty.
+*/
 #endif
 
 int CollIndex (Collection* C, const void* Item);
 /* Return the index of the given item in the collection. Return -1 if the
- * item was not found in the collection.
- */
+** item was not found in the collection.
+*/
 
 void CollDelete (Collection* C, unsigned Index);
 /* Remove the item with the given index from the collection. This will not
- * free the item itself, just the pointer. All items with higher indices
- * will get moved to a lower position.
- */
+** free the item itself, just the pointer. All items with higher indices
+** will get moved to a lower position.
+*/
 
 void CollDeleteItem (Collection* C, const void* Item);
 /* Delete the item pointer from the collection. The item must be in the
- * collection, otherwise FAIL will be called.
- */
+** collection, otherwise FAIL will be called.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE void CollDeleteAll (Collection* C)
 /* Delete all items from the given collection. This will not free the items
- * itself, it will only remove the pointers.
- */
+** itself, it will only remove the pointers.
+*/
 {
     /* This one is easy... */
     C->Count = 0;
@@ -243,8 +243,8 @@ INLINE void CollDeleteAll (Collection* C)
 #if defined(HAVE_INLINE)
 INLINE void CollReplace (Collection* C, void* Item, unsigned Index)
 /* Replace the item at the given position. The old item will not be freed,
- * just the pointer will get replaced.
- */
+** just the pointer will get replaced.
+*/
 {
     /* Check the index */
     PRECONDITION (Index < C->Count);
@@ -255,46 +255,46 @@ INLINE void CollReplace (Collection* C, void* Item, unsigned Index)
 #else
 void CollReplace (Collection* C, void* Item, unsigned Index);
 /* Replace the item at the given position. The old item will not be freed,
- * just the pointer will get replaced.
- */
+** just the pointer will get replaced.
+*/
 #endif
 
 void CollReplaceExpand (Collection* C, void* Item, unsigned Index);
 /* If Index is a valid index for the collection, replace the item at this
- * position by the one passed. If the collection is too small, expand it,
- * filling unused pointers with NULL, then add the new item at the given
- * position.
- */
+** position by the one passed. If the collection is too small, expand it,
+** filling unused pointers with NULL, then add the new item at the given
+** position.
+*/
 
 void CollMove (Collection* C, unsigned OldIndex, unsigned NewIndex);
 /* Move an item from one position in the collection to another. OldIndex
- * is the current position of the item, NewIndex is the new index after
- * the function has done it's work. Existing entries with indices NewIndex
- * and up are moved one position upwards.
- */
+** is the current position of the item, NewIndex is the new index after
+** the function has done it's work. Existing entries with indices NewIndex
+** and up are moved one position upwards.
+*/
 
 void CollMoveMultiple (Collection* C, unsigned Start, unsigned Count, unsigned Target);
 /* Move a range of items from one position to another. Start is the index
- * of the first item to move, Count is the number of items and Target is
- * the index of the target item. The item with the index Start will later
- * have the index Target. All items with indices Target and above are moved
- * to higher indices.
- */
+** of the first item to move, Count is the number of items and Target is
+** the index of the target item. The item with the index Start will later
+** have the index Target. All items with indices Target and above are moved
+** to higher indices.
+*/
 
 void CollTransfer (Collection* Dest, const Collection* Source);
 /* Transfer all items from Source to Dest. Anything already in Dest is left
- * untouched. The items in Source are not changed and are therefore in both
- * Collections on return.
- */
+** untouched. The items in Source are not changed and are therefore in both
+** Collections on return.
+*/
 
 void CollSort (Collection* C,
                int (*Compare) (void*, const void*, const void*),
                void* Data);
 /* Sort the collection using the given compare function. The data pointer is
- * passed as *first* element to the compare function, it's not used by the
- * sort function itself. The other two pointer passed to the Compare function
- * are pointers to objects.
- */
+** passed as *first* element to the compare function, it's not used by the
+** sort function itself. The other two pointer passed to the Compare function
+** are pointers to objects.
+*/
 
 
 
index b79c9c16fdfbd8fadd821bed79f28a3be5cad90d..142d55258af54266c6abc7715eba6f25976d730d 100644 (file)
@@ -119,8 +119,8 @@ int ValidAddrSizeForCPU (unsigned char AddrSize)
 
 cpu_t FindCPU (const char* Name)
 /* Find a CPU by name and return the target id. CPU_UNKNOWN is returned if
- * the given name is no valid target.
- */
+** the given name is no valid target.
+*/
 {
     unsigned I;
 
index ce3391f31736f17a64cab221380f226fbd60216d..5bdbdef8c0c77a20ace9e35586af0fbd5227e010 100644 (file)
@@ -94,8 +94,8 @@ int ValidAddrSizeForCPU (unsigned char AddrSize);
 
 cpu_t FindCPU (const char* Name);
 /* Find a CPU by name and return the target id. CPU_UNKNOWN is returned if
- * the given name is no valid target.
- */
+** the given name is no valid target.
+*/
 
 
 
index a30a6b5e1c1ce00d6c0c4929ca1433b81d3654ad..fd6d95d5415294575d3b9254c3eeffdab22951ab 100644 (file)
@@ -58,10 +58,10 @@ int CompareFileId (const void* Key, const void* Id)
 
 const FileId* GetFileId (const char* Name, const FileId* Table, unsigned Count)
 /* Determine the id of the given file by looking at file extension of the name.
- * The table passed to the function must be sorted alphabetically. If the
- * extension is found, a pointer to the matching table entry is returned. If
- * no matching table entry was found, the function returns NULL.
- */
+** The table passed to the function must be sorted alphabetically. If the
+** extension is found, a pointer to the matching table entry is returned. If
+** no matching table entry was found, the function returns NULL.
+*/
 {
     /* Determine the file type by the extension */
     const char* Ext = FindExt (Name);
index 9c5dd863c6054d03b5cd795727261cf030cb5a3d..df71cf2bb1bab395329c26c9a1c02b9db9302c83 100644 (file)
@@ -45,8 +45,8 @@
 
 
 /* An entry for a table that maps extensions to some sort of identifier. Such
- * a table - sorted alphabetically - is passed to GetFileId.
- */
+** a table - sorted alphabetically - is passed to GetFileId.
+*/
 typedef struct FileId FileId;
 struct FileId {
     const char  Ext[4];
@@ -66,10 +66,10 @@ int CompareFileId (const void* Key, const void* Id);
 
 const FileId* GetFileId (const char* Name, const FileId* Table, unsigned Count);
 /* Determine the id of the given file by looking at file extension of the name.
- * The table passed to the function must be sorted alphabetically. If the
- * extension is found, a pointer to the matching table entry is returned. If
- * no matching table entry was found, the function returns NULL.
- */
+** The table passed to the function must be sorted alphabetically. If the
+** extension is found, a pointer to the matching table entry is returned. If
+** no matching table entry was found, the function returns NULL.
+*/
 
 
 
index 42097424c85875004a3eb2329b03f2245c35be43..51488ffe596a1acaa3bb77a5ad948128653068e3 100644 (file)
@@ -56,9 +56,9 @@ void InitFilePos (FilePos* P)
 
 int CompareFilePos (const FilePos* P1, const FilePos* P2)
 /* Compare two file positions. Return zero if both are equal, return a value
- * > 0 if P1 is greater and P2, and a value < 0 if P1 is less than P2. The
- * compare rates file index over line over column.
- */
+** > 0 if P1 is greater and P2, and a value < 0 if P1 is less than P2. The
+** compare rates file index over line over column.
+*/
 {
     if (P1->Name > P2->Name) {    
         return 1;
index ad9b70aeeaac3520bd310ab0d3016bcc6db5abcd..d6368ad6f63b3d2c8b5030be850ee1d247e35882 100644 (file)
@@ -68,9 +68,9 @@ void InitFilePos (FilePos* P);
 
 int CompareFilePos (const FilePos* P1, const FilePos* P2);
 /* Compare two file positions. Return zero if both are equal, return a value
- * > 0 if P1 is greater and P2, and a value < 0 if P1 is less than P2. The
- * compare rates file index over line over column.
- */
+** > 0 if P1 is greater and P2, and a value < 0 if P1 is less than P2. The
+** compare rates file index over line over column.
+*/
 
 
 
index d592c60cf40753dfd42d55bd0a4bd8be4231e36e..b72fa7a74d73acb0baa526c6c0059c7f61097fc8 100644 (file)
 
 
 /* This module works around bugs in the time conversion code supplied by
- * Microsoft. See here for a description of the problem:
- *   http://www.codeproject.com/KB/datetime/dstbugs.aspx
- * Please let me note that I find it absolutely unacceptable to just declare
- * buggy behaviour like this "works as designed" as Microsoft does. The
- * problems did even make it into .NET, where the DateTime builtin data type
- * has exactly the same problems as described in the article above.
- */
+** Microsoft. See here for a description of the problem:
+**   http://www.codeproject.com/KB/datetime/dstbugs.aspx
+** Please let me note that I find it absolutely unacceptable to just declare
+** buggy behaviour like this "works as designed" as Microsoft does. The
+** problems did even make it into .NET, where the DateTime builtin data type
+** has exactly the same problems as described in the article above.
+*/
 
 
 
 
 static time_t FileTimeToUnixTime (const FILETIME* T)
 /* Calculate a unix time_t value from a FILETIME. FILETIME contains a 64 bit
- * value with point zero at 1600-01-01 00:00:00 and counting 100ns intervals.
- * time_t is in seconds since 1970-01-01 00:00:00.
- */
+** value with point zero at 1600-01-01 00:00:00 and counting 100ns intervals.
+** time_t is in seconds since 1970-01-01 00:00:00.
+*/
 {
     /* Offset between 1600-01-01 and the Epoch in seconds. Watcom C has no
-     * way to express a number > 32 bit (known to me) but is able to do
-     * calculations with 64 bit integers, so we need to do it this way.
-     */
+    ** way to express a number > 32 bit (known to me) but is able to do
+    ** calculations with 64 bit integers, so we need to do it this way.
+    */
     static const ULARGE_INTEGER Offs = { { 0xB6109100UL, 0x00000020UL } };
     ULARGE_INTEGER V;
     V.LowPart  = T->dwLowDateTime;
@@ -99,10 +99,10 @@ int FileStat (const char* Path, struct stat* Buf)
     }
 
     /* Open the file using backup semantics, so we won't change atime. Then
-     * retrieve the correct times in UTC and replace the ones in Buf. Return
-     * EACCES in case of errors to avoid the hassle of translating windows
-     * error codes to standard ones.
-     */
+    ** retrieve the correct times in UTC and replace the ones in Buf. Return
+    ** EACCES in case of errors to avoid the hassle of translating windows
+    ** error codes to standard ones.
+    */
     H = CreateFile (Path,
                     GENERIC_READ,
                     FILE_SHARE_READ,
index 2c13f2611b59234d328140b8b8fc01e8692db681..42900881a404f321b0dea3f9e34cc2a1168121d3 100644 (file)
 
 
 /* This module works around bugs in the time conversion code supplied by
- * Microsoft. See here for a description of the problem:
- *   http://www.codeproject.com/KB/datetime/dstbugs.aspx
- * Please let me note that I find it absolutely unacceptable to just declare
- * buggy behaviour like this "works as designed" as Microsoft does. The
- * problems did even make it into .NET, where the DateTime builtin data type
- * has exactly the same problems as described in the article above.
- */
+** Microsoft. See here for a description of the problem:
+**   http://www.codeproject.com/KB/datetime/dstbugs.aspx
+** Please let me note that I find it absolutely unacceptable to just declare
+** buggy behaviour like this "works as designed" as Microsoft does. The
+** problems did even make it into .NET, where the DateTime builtin data type
+** has exactly the same problems as described in the article above.
+*/
 
 
 
index cf7967da5e2540c85d3d930e220fd7425e166363..8bdf44f3f1890a4c81fb05d27c8cc5af8c7fdcaa 100644 (file)
 
 
 /* This module works around bugs in the time conversion code supplied by
- * Microsoft. The problem described here:
- *   http://www.codeproject.com/KB/datetime/dstbugs.aspx
- * is also true when setting file times via utime(), so we need a
- * replacement
- */
+** Microsoft. The problem described here:
+**   http://www.codeproject.com/KB/datetime/dstbugs.aspx
+** is also true when setting file times via utime(), so we need a
+** replacement
+*/
 
 
 
 
 static FILETIME* UnixTimeToFileTime (time_t T, FILETIME* FT)
 /* Calculate a FILETIME value from a time_t. FILETIME contains a 64 bit
- * value with point zero at 1600-01-01 00:00:00 and counting 100ns intervals.
- * time_t is in seconds since 1970-01-01 00:00:00.
- */
+** value with point zero at 1600-01-01 00:00:00 and counting 100ns intervals.
+** time_t is in seconds since 1970-01-01 00:00:00.
+*/
 {
     /* Offset between 1600-01-01 and the Epoch in seconds. Watcom C has no
-     * way to express a number > 32 bit (known to me) but is able to do
-     * calculations with 64 bit integers, so we need to do it this way.
-     */
+    ** way to express a number > 32 bit (known to me) but is able to do
+    ** calculations with 64 bit integers, so we need to do it this way.
+    */
     static const ULARGE_INTEGER Offs = { { 0xB6109100UL, 0x00000020UL } };
     ULARGE_INTEGER V;
     V.QuadPart = ((unsigned __int64) T + Offs.QuadPart) * 10000000U;
@@ -88,9 +88,9 @@ static FILETIME* UnixTimeToFileTime (time_t T, FILETIME* FT)
 
 int SetFileTimes (const char* Path, time_t T)
 /* Set the time of last modification and the time of last access of a file to
- * the given time T. This calls utime() for system where it works, and applies
- * workarounds for all others (which in fact means "WINDOWS").
- */
+** the given time T. This calls utime() for system where it works, and applies
+** workarounds for all others (which in fact means "WINDOWS").
+*/
 {
     HANDLE   H;
     FILETIME FileTime;
@@ -129,9 +129,9 @@ int SetFileTimes (const char* Path, time_t T)
 
 int SetFileTimes (const char* Path, time_t T)
 /* Set the time of last modification and the time of last access of a file to
- * the given time T. This calls utime() for system where it works, and applies
- * workarounds for all others (which in fact means "WINDOWS").
- */
+** the given time T. This calls utime() for system where it works, and applies
+** workarounds for all others (which in fact means "WINDOWS").
+*/
 {
     struct utimbuf U;
 
index c4027e249c0f2a3692e38e02735f233bacb21944..f5f00cdc95e74c7ca1bcda4f336094d3be21cea8 100644 (file)
 
 
 /* This module works around bugs in the time conversion code supplied by
- * Microsoft. The problem described here:
- *   http://www.codeproject.com/KB/datetime/dstbugs.aspx
- * is also true when setting file times via utime(), so we need a
- * replacement
- */
+** Microsoft. The problem described here:
+**   http://www.codeproject.com/KB/datetime/dstbugs.aspx
+** is also true when setting file times via utime(), so we need a
+** replacement
+*/
 
 
 
@@ -59,9 +59,9 @@
 
 int SetFileTimes (const char* Path, time_t T);
 /* Set the time of last modification and the time of last access of a file to
- * the given time T. This calls utime() for system where it works, and applies
- * workarounds for all others (which in fact means "WINDOWS").
- */
+** the given time T. This calls utime() for system where it works, and applies
+** workarounds for all others (which in fact means "WINDOWS").
+*/
 
 
 
index 7e7917a64f58c4b9078726ea2a10d992cbf3b99d..a5bac640da1175b009e68bb2a7d7218e313bd090 100644 (file)
@@ -95,8 +95,8 @@ static const FileId TypeTable[] = {
 
 FILETYPE GetFileType (const char* Name)
 /* Determine the type of the given file by looking at the name. If the file
- * type could not be determined, the function returns FILETYPE_UNKOWN.
- */
+** type could not be determined, the function returns FILETYPE_UNKOWN.
+*/
 {
     /* Search for a table entry */
     const FileId* F = GetFileId (Name, TypeTable, FILETYPE_COUNT);
index 1a6a9aa34393286b065f01f870ede92601404d00..f4beae73a8fd930870ddc75bd7ccb4b565b17b19 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2003      Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -65,8 +65,8 @@ typedef enum {
 
 FILETYPE GetFileType (const char* Name);
 /* Determine the type of the given file by looking at the name. If the file
- * type could not be determined, the function returns FILETYPE_UNKOWN.
- */
+** type could not be determined, the function returns FILETYPE_UNKOWN.
+*/
 
 
 
index 1c8c36f257748987ef73caf4a9f80ff3b93bb8c9..4e4f7c7fad4856bb486a48a070a96b6e898dd37b 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2000-2003 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -77,8 +77,8 @@ const char* FindExt (const char* Name)
 
 const char* FindName (const char* Path)
 /* Return a pointer to the file name in Path. If there is no path leading to
- * the file, the function returns Path as name.
- */
+** the file, the function returns Path as name.
+*/
 {
     /* Get the length of the name */
     int Len = strlen (Path);
@@ -96,10 +96,10 @@ const char* FindName (const char* Path)
 
 char* MakeFilename (const char* Origin, const char* Ext)
 /* Make a new file name from Origin and Ext. If Origin has an extension, it
- * is removed and Ext is appended. If Origin has no extension, Ext is simply
- * appended. The result is placed in a malloc'ed buffer and returned.
- * The function may be used to create "foo.o" from "foo.s".
- */
+** is removed and Ext is appended. If Origin has no extension, Ext is simply
+** appended. The result is placed in a malloc'ed buffer and returned.
+** The function may be used to create "foo.o" from "foo.s".
+*/
 {
     char* Out;
     const char* P = FindExt (Origin);
index 1f5040c494ecf1100b628a07de54ccea9e1392f3..1b94d270c8bd641d0ae6e3eef1d994d8de937dd5 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2000-2003 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -49,15 +49,15 @@ const char* FindExt (const char* Name);
 
 const char* FindName (const char* Path);
 /* Return a pointer to the file name in Path. If there is no path leading to
- * the file, the function returns Path as name.
- */
+** the file, the function returns Path as name.
+*/
 
 char* MakeFilename (const char* Origin, const char* Ext);
 /* Make a new file name from Origin and Ext. If Origin has an extension, it
- * is removed and Ext is appended. If Origin has no extension, Ext is simply
- * appended. The result is placed in a malloc'ed buffer and returned.
- * The function may be used to create "foo.o" from "foo.s".
- */
+** is removed and Ext is appended. If Origin has no extension, Ext is simply
+** appended. The result is placed in a malloc'ed buffer and returned.
+** The function may be used to create "foo.o" from "foo.s".
+*/
 
 
 
index 602bfde8b6b201c02d6bb88e0738f834670855d6..0c4d2790c3ac336221a8d55517e1bb030bbb0186 100644 (file)
 
 
 /* The compiler must use the same floating point arithmetic as the target
- * platform, otherwise expressions will yield a different result when
- * evaluated in the compiler or on the target platform. Since writing a target
- * and source library is almost double the work, we will at least add the
- * hooks here, and define functions for a plug in library that may be added
- * at a later time. Currently we use the builtin data types of the compiler
- * that translates cc65.
- */
+** platform, otherwise expressions will yield a different result when
+** evaluated in the compiler or on the target platform. Since writing a target
+** and source library is almost double the work, we will at least add the
+** hooks here, and define functions for a plug in library that may be added
+** at a later time. Currently we use the builtin data types of the compiler
+** that translates cc65.
+*/
 
 
 
index f9444bbce271c5d13f1dd490f4b949f06f70f259..978359b8b518551631cbe49e0bf4a8181520ba68 100644 (file)
 
 
 /* The compiler must use the same floating point arithmetic as the target
- * platform, otherwise expressions will yield a different result when
- * evaluated in the compiler or on the target platform. Since writing a target
- * and source library is almost double the work, we will at least add the
- * hooks here, and define functions for a plug in library that may be added
- * at a later time. Currently we use the builtin data types of the compiler
- * that translates cc65.
- *
- * BEWARE: This code will currently only work on little endian systems!
- *
- */
+** platform, otherwise expressions will yield a different result when
+** evaluated in the compiler or on the target platform. Since writing a target
+** and source library is almost double the work, we will at least add the
+** hooks here, and define functions for a plug in library that may be added
+** at a later time. Currently we use the builtin data types of the compiler
+** that translates cc65.
+**
+** BEWARE: This code will currently only work on little endian systems!
+*/
 
 
 
index 019569084db7d6b1c666998648b2376a3c008f5e..1600a7c2f5b1e72fafee38e34b97f1f63cd4d401 100644 (file)
@@ -48,8 +48,8 @@
 
 void GT_AddArray (StrBuf* Type, unsigned ArraySize)
 /* Add an array with the given size to the type string in Type. This will
- * NOT add the element type!
- */
+** NOT add the element type!
+*/
 {
     unsigned SizeBytes;
 
@@ -75,10 +75,10 @@ void GT_AddArray (StrBuf* Type, unsigned ArraySize)
 
 unsigned GT_GetElementCount (StrBuf* Type)
 /* Retrieve the element count of an array stored in Type at the current index
- * position. Note: Index must point to the array token itself, since the size
- * of the element count is encoded there. The index position will get moved
- * past the array.
- */
+** position. Note: Index must point to the array token itself, since the size
+** of the element count is encoded there. The index position will get moved
+** past the array.
+*/
 {
     /* Get the number of bytes for the element count */
     unsigned SizeBytes = GT_GET_SIZE (SB_Get (Type));
@@ -99,15 +99,15 @@ unsigned GT_GetElementCount (StrBuf* Type)
 
 const char* GT_AsString (const StrBuf* Type, StrBuf* String)
 /* Convert the type into a readable representation. The target string buffer
- * will be zero terminated and a pointer to the contents are returned.
- */
+** will be zero terminated and a pointer to the contents are returned.
+*/
 {
     static const char HexTab[16] = "0123456789ABCDEF";
     unsigned I;
 
     /* Convert Type into readable hex. String will have twice then length
-     * plus a terminator.
-     */
+    ** plus a terminator.
+    */
     SB_Realloc (String, 2 * SB_GetLen (Type) + 1);
     SB_Clear (String);
 
index 5294f9e05b6acd1ecbee8ab0c819540783c69470..b3f13f176c94ec1e52805fbcd165c4b1672f0af5 100644 (file)
 
 
 /* This module implements a specification for a "generic data type". It is
- * called generic, because it doesn't mimic a high level language. Instead it
- * tries to desrcibe the type as representation on the machine.
- * The reasoning behing this type is to allow a debugger to represent the
- * data to the user, independent of the actual source.
- * C data types may be mapped to generic ones, but attributes like const or
- * volatile are (of course) lost.
- *
- * The data type is stored in a char array and can be terminate by a zero
- * (see definition of GT_END below). The later is not really necessary but
- * allows handling of types using the usual string functions. This is in fact
- * one of the advantages of the choosen implementation:
- * String buffers may be used to dynamically build types. Types may be stored
- * as strings in the string pool of an object file. And a string pool may be
- * used to remove duplicates and reference types using unique ids.
- */
+** called generic, because it doesn't mimic a high level language. Instead it
+** tries to desrcibe the type as representation on the machine.
+** The reasoning behing this type is to allow a debugger to represent the
+** data to the user, independent of the actual source.
+** C data types may be mapped to generic ones, but attributes like const or
+** volatile are (of course) lost.
+**
+** The data type is stored in a char array; and, can be terminated by a zero
+** (see definition of GT_END below). The latter is not really necessary; but,
+** allows handling of types using the usual string functions. This is in fact
+** one of the advantages of the chosen implementation:
+** String buffers may be used to dynamically build types. Types may be stored
+** as strings in the string pool of an object file. And a string pool may be
+** used to remove duplicates and reference types using unique ids.
+*/
 
 
 
 
 void GT_AddArray (StrBuf* Type, unsigned ArraySize);
 /* Add an array with the given size to the type string in Type. This will
- * NOT add the element type!
- */
+** NOT add the element type!
+*/
 
 unsigned GT_GetElementCount (StrBuf* Type);
 /* Retrieve the element count of an array stored in Type at the current index
- * position. Note: Index must point to the array token itself, since the size
- * of the element count is encoded there. The index position will get moved
- * past the array.
- */
+** position. Note: Index must point to the array token itself, since the size
+** of the element count is encoded there. The index position will get moved
+** past the array.
+*/
 
 const char* GT_AsString (const StrBuf* Type, StrBuf* String);
 /* Convert the type into a readable representation. The target string buffer
- * will be zero terminated and a pointer to the contents are returned.
- */
+** will be zero terminated and a pointer to the contents are returned.
+*/
 
 
 
index 3730cb0bada7f2dfae9946a70414bccc7d3c70e0..3ef268778425a62aa8f7f48701daf6a48d66c61d 100644 (file)
 
 unsigned HashInt (unsigned V)
 /* Return a hash value for the given integer. The function uses Robert
- * Jenkins' 32 bit integer hash function taken from
- *     http://www.concentric.net/~ttwang/tech/inthash.htm
- * For 16 bit integers, the function may be suboptimal.
- */
+** Jenkins' 32 bit integer hash function taken from
+**     http://www.concentric.net/~ttwang/tech/inthash.htm
+** For 16 bit integers, the function may be suboptimal.
+*/
 {
    V = (V + 0x7ed55d16) + (V << 12);
    V = (V ^ 0xc761c23c) ^ (V >> 19);
index 36a3b389c6810e1310b0ab70706a19d86cddc10a..4330ad61c13628c4277eb5095ee0c3f3e6591f11 100644 (file)
@@ -63,8 +63,8 @@ HashTable* InitHashTable (HashTable* T, unsigned Slots, const HashFunctions* Fun
 
 void DoneHashTable (HashTable* T)
 /* Destroy the contents of a hash table. Note: This will not free the entries
- * in the table!
- */
+** in the table!
+*/
 {
     /* Just free the array with the table pointers */
     xfree (T->Table);
@@ -103,8 +103,8 @@ static void HT_Alloc (HashTable* T)
 
 HashNode* HT_FindHash (const HashTable* T, const void* Key, unsigned Hash)
 /* Find the node with the given key. Differs from HT_Find in that the hash
- * for the key is precalculated and passed to the function.
- */
+** for the key is precalculated and passed to the function.
+*/
 {
     HashNode* N;
 
@@ -118,8 +118,8 @@ HashNode* HT_FindHash (const HashTable* T, const void* Key, unsigned Hash)
     while (N) {
 
         /* First compare the full hash, to avoid calling the compare function
-         * if it is not really necessary.
-         */
+        ** if it is not really necessary.
+        */
         if (N->Hash == Hash &&
             T->Func->Compare (Key, T->Func->GetKey (N)) == 0) {
             /* Found */
@@ -188,8 +188,8 @@ void HT_Remove (HashTable* T, void* Entry)
     HashNode** Q = &T->Table[Slot];
     while (1) {
         /* If the pointer is NULL, the node is not in the table which we will
-         * consider a serious error.
-         */
+        ** consider a serious error.
+        */
         CHECK (*Q != 0);
         if (*Q == N) {
             /* Found - remove it */
@@ -206,12 +206,12 @@ void HT_Remove (HashTable* T, void* Entry)
 
 void HT_Walk (HashTable* T, int (*F) (void* Entry, void* Data), void* Data)
 /* Walk over all nodes of a hash table, optionally deleting entries from the
- * table. For each node, the user supplied function F is called, passing a
- * pointer to the entry, and the data pointer passed to HT_Walk by the caller.
- * If F returns true, the node is deleted from the hash table otherwise it's
- * left in place. While deleting the node, the node is not accessed, so it is
- * safe for F to free the memory associcated with the entry.
- */
+** table. For each node, the user supplied function F is called, passing a
+** pointer to the entry, and the data pointer passed to HT_Walk by the caller.
+** If F returns true, the node is deleted from the hash table otherwise it's
+** left in place. While deleting the node, the node is not accessed, so it is
+** safe for F to free the memory associcated with the entry.
+*/
 {
     unsigned I;
 
@@ -231,8 +231,8 @@ void HT_Walk (HashTable* T, int (*F) (void* Entry, void* Data), void* Data)
             /* Fetch the next node in chain now, because F() may delete it */
             HashNode* Next = (*Cur)->Next;
             /* Call the user function. N is also the pointer to the entry. If
-             * the function returns true, the entry is to be deleted.
-             */
+            ** the function returns true, the entry is to be deleted.
+            */
             if (F (*Cur, Data)) {
                 /* Delete the node from the chain */
                 *Cur = Next;
index 260a68b39cce4c2e77402c859a0a728a00fedd6c..f110fa1a0c0d68b8da7be334dc25bee44bce25fc 100644 (file)
 
 
 /* Hash table node. NOTE: This structure must be the first member of a struct
- * that is hashed by the module. Having it first allows to omit a pointer to
- * the entry itself, because the C standard guarantees that a pointer to a
- * struct can be converted to its first member.
- */
+** that is hashed by the module. Having it first allows to omit a pointer to
+** the entry itself, because the C standard guarantees that a pointer to a
+** struct can be converted to its first member.
+*/
 typedef struct HashNode HashNode;
 struct HashNode {
     HashNode*           Next;           /* Next entry in hash list */
@@ -75,9 +75,9 @@ struct HashFunctions {
 
     int (*Compare) (const void* Key1, const void* Key2);
     /* Compare two keys. The function must return a value less than zero if
-     * Key1 is smaller than Key2, zero if both are equal, and a value greater
-     * than zero if Key1 is greater then Key2.
-     */
+    ** Key1 is smaller than Key2, zero if both are equal, and a value greater
+    ** than zero if Key1 is greater then Key2.
+    */
 };
 
 /* Hash table */
@@ -122,8 +122,8 @@ HashTable* InitHashTable (HashTable* T, unsigned Slots, const HashFunctions* Fun
 
 void DoneHashTable (HashTable* T);
 /* Destroy the contents of a hash table. Note: This will not free the entries
- * in the table!
- */
+** in the table!
+*/
 
 #if defined(HAVE_INLINE)
 INLINE HashTable* NewHashTable (unsigned Slots, const HashFunctions* Func)
@@ -151,8 +151,8 @@ INLINE unsigned HT_GetCount (const HashTable* T)
 
 HashNode* HT_FindHash (const HashTable* T, const void* Key, unsigned Hash);
 /* Find the node with the given key. Differs from HT_Find in that the hash
- * for the key is precalculated and passed to the function.
- */
+** for the key is precalculated and passed to the function.
+*/
 
 void* HT_Find (const HashTable* T, const void* Key);
 /* Find the entry with the given key and return it */
@@ -165,12 +165,12 @@ void HT_Remove (HashTable* T, void* Entry);
 
 void HT_Walk (HashTable* T, int (*F) (void* Entry, void* Data), void* Data);
 /* Walk over all nodes of a hash table, optionally deleting entries from the
- * table. For each node, the user supplied function F is called, passing a
- * pointer to the entry, and the data pointer passed to HT_Walk by the caller.
- * If F returns true, the node is deleted from the hash table otherwise it's
- * left in place. While deleting the node, the node is not accessed, so it is
- * safe for F to free the memory associcated with the entry.
- */
+** table. For each node, the user supplied function F is called, passing a
+** pointer to the entry, and the data pointer passed to HT_Walk by the caller.
+** If F returns true, the node is deleted from the hash table otherwise it's
+** left in place. While deleting the node, the node is not accessed, so it is
+** safe for F to free the memory associcated with the entry.
+*/
 
 
 
index 1f8d21de305d5f798384942396dbabc5b4343fcf..0edb7e2ce8c8386034eb024c8e1fd7e060397572 100644 (file)
 
 
 /* This module contains definitions for high level language symbols passed
- * down from the C compiler. They're collected in the assembler and written to
- * the object file in binary form, then again read by the linker and finally
- * placed in the debug info file.
- */
+** down from the C compiler. They're collected in the assembler and written to
+** the object file in binary form, then again read by the linker and finally
+** placed in the debug info file.
+*/
 
 
 
index 24f822a0d7584ad385948da458fadb03f3d2b603..0d9cb75fc0d991aef6139287a474e62edfae70bd 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2004      Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 
 
 /* If we have stdint.h, include it, otherwise try some quesswork on types.
- * gcc and msvc don't define __STDC_VERSION__ without special flags, so check
- * for them explicitly. Undefined symbols are replaced by zero, so a check for
- * defined(__GNUC__) or defined(_MSC_VER) is not necessary.
- */
+** gcc and msvc don't define __STDC_VERSION__ without special flags, so check
+** for them explicitly. Undefined symbols are replaced by zero, so a check for
+** defined(__GNUC__) or defined(_MSC_VER) is not necessary.
+*/
 #if (__STDC_VERSION__ >= 199901) || (__GNUC__ >= 3) || (_MSC_VER >= 1600)
 #include <stdint.h>
 #else
 
 /* Assume long is the largest type available, and assume that pointers can be
- * safely converted into this type and back.
- */
+** safely converted into this type and back.
+*/
 typedef long intptr_t;
 typedef unsigned long uintptr_t;
 typedef long intmax_t;
index c84124491fb1c078992ca2d9ee8841c7234bec1a..ac24c39abb2f7cc2e658ffbb39b7305372ddfe18 100644 (file)
@@ -94,8 +94,8 @@ typedef unsigned char CharSet[32];      /* 256 bits */
 
 static int RealChar (const unsigned char* Pattern)
 /* Return the next character from Pattern. If the next character is the
- * escape character, skip it and return the following.
- */
+** escape character, skip it and return the following.
+*/
 {
     if (*Pattern == ESCAPE_CHAR) {
         Pattern++;
@@ -146,9 +146,9 @@ static int RecursiveMatch (const unsigned char* Source, const unsigned char* Pat
         } else {
 
             /* Check a single char. Build a set of all possible characters in
-             * CS, then check if the current char of Source is contained in
-             * there.
-             */
+            ** CS, then check if the current char of Source is contained in
+            ** there.
+            */
             CS_CLEAR (CS);      /* Clear the character set */
 
             if (*Pattern == '?') {
@@ -224,11 +224,11 @@ static int RecursiveMatch (const unsigned char* Source, const unsigned char* Pat
 
 int MatchPattern (const char* Source, const char* Pattern)
 /* Match the string in Source against Pattern. Pattern may contain the
- * wildcards '*', '?', '[abcd]' '[ab-d]', '[!abcd]', '[!ab-d]'. The
- * function returns a value of zero if Source does not match Pattern,
- * otherwise a non zero value is returned. If Pattern contains an invalid
- * wildcard pattern (e.g. 'A[x'), the function returns zero.
- */
+** wildcards '*', '?', '[abcd]' '[ab-d]', '[!abcd]', '[!ab-d]'. The
+** function returns a value of zero if Source does not match Pattern,
+** otherwise a non zero value is returned. If Pattern contains an invalid
+** wildcard pattern (e.g. 'A[x'), the function returns zero.
+*/
 {
     /* Handle the trivial cases */
     if (Pattern == 0 || *Pattern == '\0') {
index 2612e378c76cdb69c79b53847cf81359d9fec101..eb1c80dd45de8a3f2f334c0f7c9b0d18a144c329 100644 (file)
 
 int MatchPattern (const char* Source, const char* Pattern);
 /* Match the string in Source against Pattern. Pattern may contain the
- * wildcards '*', '?', '[abcd]' '[ab-d]', '[!abcd]', '[!ab-d]'. The
- * function returns a value of zero if Source does not match Pattern,
- * otherwise a non zero value is returned. If Pattern contains an invalid
- * wildcard pattern (e.g. 'A[x'), the function returns zero.
- */
+** wildcards '*', '?', '[abcd]' '[ab-d]', '[!abcd]', '[!ab-d]'. The
+** function returns a value of zero if Source does not match Pattern,
+** otherwise a non zero value is returned. If Pattern contains an invalid
+** wildcard pattern (e.g. 'A[x'), the function returns zero.
+*/
 
 
 
index a51d900fd7463738bf15113f3dc76d0479cac09e..05f2a4b27125204ac0a7e51afbd9bb38c2d9e314 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2003      Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -90,8 +90,8 @@ mmodel_t FindMemoryModel (const char* Name)
 
 void SetMemoryModel (mmodel_t Model)
 /* Set the memory model updating the MemoryModel variables and the address
- * sizes for the segments.
- */
+** sizes for the segments.
+*/
 {
     /* Remember the memory model */
     MemoryModel = Model;
index b3c3188d9f6456438f578028781ec7b965981274..350da4423845fa9daacd512eca3d2f0fc947405e 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2003      Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -74,8 +74,8 @@ mmodel_t FindMemoryModel (const char* Name);
 
 void SetMemoryModel (mmodel_t Model);
 /* Set the memory model updating the MemoryModel variables and the address
- * sizes for the segments.
- */
+** sizes for the segments.
+*/
 
 
 
index 4aa703c809bb77df0010570c995ae43f58c23868..78443f34cba977c40fcf7ce8bc9a95f2899ab03b 100644 (file)
@@ -115,8 +115,8 @@ void AddSearchPath (SearchPaths* P, const char* NewPath)
 
 void AddSearchPathFromEnv (SearchPaths* P, const char* EnvVar)
 /* Add a search path from an environment variable to the end of an existing
- * list.
- */
+** list.
+*/
 {
     AddSearchPath (P, getenv (EnvVar));
 }
@@ -125,8 +125,8 @@ void AddSearchPathFromEnv (SearchPaths* P, const char* EnvVar)
 
 void AddSubSearchPathFromEnv (SearchPaths* P, const char* EnvVar, const char* SubDir)
 /* Add a search path from an environment variable, adding a subdirectory to
- * the environment variable value.
- */
+** the environment variable value.
+*/
 {
     StrBuf Dir = AUTO_STRBUF_INITIALIZER;
 
@@ -162,9 +162,9 @@ void AddSubSearchPathFromEnv (SearchPaths* P, const char* EnvVar, const char* Su
 void AddSubSearchPathFromWinBin (SearchPaths* P, const char* SubDir)
 {
 /* Windows only:
- * Add a search path from the running binary, adding a subdirectory to
- * the parent directory of the directory containing the binary.
- */
+** Add a search path from the running binary, adding a subdirectory to
+** the parent directory of the directory containing the binary.
+*/
 #if defined(_WIN32)
 
     char Dir[_MAX_PATH];
@@ -207,9 +207,9 @@ void AddSubSearchPathFromWinBin (SearchPaths* P, const char* SubDir)
 
 int PushSearchPath (SearchPaths* P, const char* NewPath)
 /* Add a new search path to the head of an existing search path list, provided
- * that it's not already there. If the path is already at the first position,
- * return zero, otherwise return a non zero value.
- */
+** that it's not already there. If the path is already at the first position,
+** return zero, otherwise return a non zero value.
+*/
 {                                      
     /* Generate a clean copy of NewPath */
     char* Path = CleanupPath (NewPath);   
@@ -240,8 +240,8 @@ void PopSearchPath (SearchPaths* P)
 
 char* SearchFile (const SearchPaths* P, const char* File)
 /* Search for a file in a list of directories. Return a pointer to a malloced
- * area that contains the complete path, if found, return 0 otherwise.
- */
+** area that contains the complete path, if found, return 0 otherwise.
+*/
 {
     char* Name = 0;
     StrBuf PathName = AUTO_STRBUF_INITIALIZER;
index d1947d2be077a43841563195a80f34553bcfdb2d..6f5bafa7a8c9d289ea6063403a1a7deb8d005602 100644 (file)
@@ -71,33 +71,33 @@ void AddSearchPath (SearchPaths* P, const char* NewPath);
 
 void AddSearchPathFromEnv (SearchPaths* P, const char* EnvVar);
 /* Add a search path from an environment variable to the end of an existing
- * list.
- */
+** list.
+*/
 
 void AddSubSearchPathFromEnv (SearchPaths* P, const char* EnvVar, const char* SubDir);
 /* Add a search path from an environment variable, adding a subdirectory to
- * the environment variable value.
- */
+** the environment variable value.
+*/
 
 void AddSubSearchPathFromWinBin (SearchPaths* P, const char* SubDir);
 /* Windows only:
- * Add a search path from the running binary, adding a subdirectory to
- * the parent directory of the directory containing the binary.
- */
+** Add a search path from the running binary, adding a subdirectory to
+** the parent directory of the directory containing the binary.
+*/
 
 int PushSearchPath (SearchPaths* P, const char* NewPath);
 /* Add a new search path to the head of an existing search path list, provided
- * that it's not already there. If the path is already at the first position,
- * return zero, otherwise return a non zero value.
- */
+** that it's not already there. If the path is already at the first position,
+** return zero, otherwise return a non zero value.
+*/
 
 void PopSearchPath (SearchPaths* P);
 /* Remove a search path from the head of an existing search path list */
 
 char* SearchFile (const SearchPaths* P, const char* File);
 /* Search for a file in a list of directories. Return a pointer to a malloced
- * area that contains the complete path, if found, return 0 otherwise.
- */
+** area that contains the complete path, if found, return 0 otherwise.
+*/
 
 
 
index f9a842a88076a4a9143789c5a7077761e0a4376a..16b9d0c5dffd8d8a518d4bceb9ff913bad556a65 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2003      Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 
 
 /* According to the C standard, shifting a data type by the number of bits it
- * has causes undefined behaviour. So 
- *
- *      unsigned long l = 1;
- *      unsigned u =32;
- *      l <<= u;
- *
- * maybe illegal. The functions in this module behave safely in this respect,
- * and they use proper casting to distinguish signed from unsigned shifts.
- * They are not a general purpose replacement for the shift operator!
- */
+** has causes undefined behaviour. So
+**
+**      unsigned long l = 1;
+**      unsigned u =32;
+**      l <<= u;
+**
+** may be illegal. The functions in this module behave safely in that respect,
+** and they use proper casting to distinguish signed from unsigned shifts.
+** They are not a general purpose replacement for the shift operator!
+*/
 
 
 
index 07c192acb85b87b78ce7b546dd8c6509878106be..9a35e52c5c747c32052c24330c4ec4aec544dead 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2003      Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 
 
 /* According to the C standard, shifting a data type by the number of bits it
- * has causes undefined behaviour. So
- *
- *      unsigned long l = 1;
- *      unsigned u =32;
- *      l <<= u;
- *
- * maybe illegal. The functions in this module behave safely in this respect,
- * and they use proper casting to distinguish signed from unsigned shifts.
- * They are not a general purpose replacement for the shift operator!
- */
+** has causes undefined behaviour. So
+**
+**      unsigned long l = 1;
+**      unsigned u =32;
+**      l <<= u;
+**
+** may be illegal. The functions in this module behave safely in that respect,
+** and they use proper casting to distinguish signed from unsigned shifts.
+** They are not a general purpose replacement for the shift operator!
+*/
 
 
 
index 600f2374ab471f50a1871c46b8dafab352073019..79419f1c475efa267f644114bd7d5dadab8dbd48 100644 (file)
@@ -75,8 +75,8 @@ StrBuf* SB_Init (StrBuf* B)
 
 StrBuf* SB_InitFromString (StrBuf* B, const char* S)
 /* Initialize a string buffer from a literal string. Beware: The buffer won't
- * store a copy but a pointer to the actual string.
- */
+** store a copy but a pointer to the actual string.
+*/
 {
     B->Allocated = 0;
     B->Len       = strlen (S);
@@ -126,8 +126,8 @@ void FreeStrBuf (StrBuf* B)
 
 void SB_Realloc (StrBuf* B, unsigned NewSize)
 /* Reallocate the string buffer space, make sure at least NewSize bytes are
- * available.
- */
+** available.
+*/
 {
     /* Get the current size, use a minimum of 8 bytes */
     unsigned NewAllocated = B->Allocated;
@@ -141,9 +141,9 @@ void SB_Realloc (StrBuf* B, unsigned NewSize)
     }
 
     /* Reallocate the buffer. Beware: The allocated size may be zero while the
-     * length is not. This means that we have a buffer that wasn't allocated
-     * on the heap.
-     */
+    ** length is not. This means that we have a buffer that wasn't allocated
+    ** on the heap.
+    */
     if (B->Allocated) {
         /* Just reallocate the block */
         B->Buf   = xrealloc (B->Buf, NewAllocated);
@@ -160,9 +160,9 @@ void SB_Realloc (StrBuf* B, unsigned NewSize)
 
 static void SB_CheapRealloc (StrBuf* B, unsigned NewSize)
 /* Reallocate the string buffer space, make sure at least NewSize bytes are
- * available. This function won't copy the old buffer contents over to the new
- * buffer and may be used if the old contents are overwritten later.
- */
+** available. This function won't copy the old buffer contents over to the new
+** buffer and may be used if the old contents are overwritten later.
+*/
 {
     /* Get the current size, use a minimum of 8 bytes */
     unsigned NewAllocated = B->Allocated;
@@ -214,8 +214,8 @@ void SB_Drop (StrBuf* B, unsigned Count)
 
 void SB_Terminate (StrBuf* B)
 /* Zero terminate the given string buffer. NOTE: The terminating zero is not
- * accounted for in B->Len, if you want that, you have to use AppendChar!
- */
+** accounted for in B->Len, if you want that, you have to use AppendChar!
+*/
 {
     unsigned NewLen = B->Len + 1;
     if (NewLen > B->Allocated) {
@@ -310,8 +310,8 @@ void SB_Append (StrBuf* Target, const StrBuf* Source)
 #if !defined(HAVE_INLINE)
 void SB_Cut (StrBuf* B, unsigned Len)
 /* Cut the contents of B at the given length. If the current length of the
- * buffer is smaller than Len, nothing will happen.
- */
+** buffer is smaller than Len, nothing will happen.
+*/
 {
     if (Len < B->Len) {
         B->Len = Len;
@@ -323,10 +323,10 @@ void SB_Cut (StrBuf* B, unsigned Len)
 
 void SB_Slice (StrBuf* Target, const StrBuf* Source, unsigned Start, unsigned Len)
 /* Copy a slice from Source into Target. The current contents of Target are
- * destroyed. If Start is greater than the length of Source, or if Len
- * characters aren't available, the result will be a buffer with less than Len
- * bytes.
- */
+** destroyed. If Start is greater than the length of Source, or if Len
+** characters aren't available, the result will be a buffer with less than Len
+** bytes.
+*/
 {
     /* Calculate the length of the resulting buffer */
     if (Start >= Source->Len) {
@@ -352,8 +352,8 @@ void SB_Slice (StrBuf* Target, const StrBuf* Source, unsigned Start, unsigned Le
 
 void SB_Move (StrBuf* Target, StrBuf* Source)
 /* Move the complete contents of Source to target. This will delete the old
- * contents of Target, and Source will be empty after the call.
- */
+** contents of Target, and Source will be empty after the call.
+*/
 {
     /* Free the target string */
     if (Target->Allocated) {
@@ -448,18 +448,18 @@ int SB_CompareStr (const StrBuf* S1, const char* S2)
 
 void SB_VPrintf (StrBuf* S, const char* Format, va_list ap)
 /* printf function with S as target. The function is safe, which means that
- * the current contents of S are discarded, and are allocated again with
- * a matching size for the output. The function will call FAIL when problems
- * are detected (anything that let xsnprintf return -1).
- */
+** the current contents of S are discarded, and are allocated again with
+** a matching size for the output. The function will call FAIL when problems
+** are detected (anything that let xsnprintf return -1).
+*/
 {
     va_list tmp;
     int SizeNeeded;
 
     /* Since we must determine the space needed anyway, we will try with
-     * the currently allocated memory. If the call succeeds, we've saved
-     * an allocation. If not, we have to reallocate and try again.
-     */
+    ** the currently allocated memory. If the call succeeds, we've saved
+    ** an allocation. If not, we have to reallocate and try again.
+    */
     va_copy (tmp, ap);
     SizeNeeded = xvsnprintf (S->Buf, S->Allocated, Format, tmp);
     va_end (tmp);
@@ -483,10 +483,10 @@ void SB_VPrintf (StrBuf* S, const char* Format, va_list ap)
 
 void SB_Printf (StrBuf* S, const char* Format, ...)
 /* vprintf function with S as target. The function is safe, which means that
- * the current contents of S are discarded, and are allocated again with
- * a matching size for the output. The function will call FAIL when problems
- * are detected (anything that let xsnprintf return -1).
- */
+** the current contents of S are discarded, and are allocated again with
+** a matching size for the output. The function will call FAIL when problems
+** are detected (anything that let xsnprintf return -1).
+*/
 {
     va_list ap;
     va_start (ap, Format);
index c8ec1f10b40b988e0ee015b674bc72082c96d756..e0602a6c861a2266bcadc7ab5549d8ef14e041ca 100644 (file)
@@ -95,10 +95,10 @@ StrBuf* SB_Init (StrBuf* B);
 
 StrBuf* SB_InitFromString (StrBuf* B, const char* S);
 /* Initialize a string buffer from a literal string. Beware: The buffer won't
- * store a copy but a pointer to the actual string. A buffer initialized with
- * this routine may be "forgotten" without calling SB_Done, since no memory
- * has been allocated.
- */
+** store a copy but a pointer to the actual string. A buffer initialized with
+** this routine may be "forgotten" without calling SB_Done, since no memory
+** has been allocated.
+*/
 
 void SB_Done (StrBuf* B);
 /* Free the data of a string buffer (but not the struct itself) */
@@ -111,8 +111,8 @@ void FreeStrBuf (StrBuf* B);
 
 void SB_Realloc (StrBuf* B, unsigned NewSize);
 /* Reallocate the string buffer space, make sure at least NewSize bytes are
- * available.
- */
+** available.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE unsigned SB_GetLen (const StrBuf* B)
@@ -229,8 +229,8 @@ INLINE void SB_Reset (StrBuf* B)
 #if defined(HAVE_INLINE)
 INLINE char SB_Get (StrBuf* B)
 /* Return the next character from the string incrementing Index. Returns NUL
- * if the end of the string is reached.
- */
+** if the end of the string is reached.
+*/
 {
     return (B->Index < B->Len)? B->Buf[B->Index++] : '\0';
 }
@@ -241,8 +241,8 @@ INLINE char SB_Get (StrBuf* B)
 #if defined(HAVE_INLINE)
 INLINE char SB_Peek (const StrBuf* B)
 /* Look at the next character from the string without incrementing Index.
- * Returns NUL if the end of the string is reached.
- */
+** Returns NUL if the end of the string is reached.
+*/
 {
     return (B->Index < B->Len)? B->Buf[B->Index] : '\0';
 }
@@ -253,8 +253,8 @@ INLINE char SB_Peek (const StrBuf* B)
 #if defined(HAVE_INLINE)
 INLINE char SB_LookAt (const StrBuf* B, unsigned Index)
 /* Look at a specific character from the string. Returns NUL if the given
- * index is greater than the size of the string.
- */
+** index is greater than the size of the string.
+*/
 {
     return (Index < B->Len)? B->Buf[Index] : '\0';
 }
@@ -265,8 +265,8 @@ INLINE char SB_LookAt (const StrBuf* B, unsigned Index)
 #if defined(HAVE_INLINE)
 INLINE char SB_LookAtLast (const StrBuf* B)
 /* Look at the last character from the string. Returns NUL if the string buffer
- * is empty.
- */
+** is empty.
+*/
 {
     return (B->Len > 0)? B->Buf[B->Len-1] : '\0';
 }
@@ -304,8 +304,8 @@ void SB_Drop (StrBuf* B, unsigned Count);
 
 void SB_Terminate (StrBuf* B);
 /* Zero terminate the given string buffer. NOTE: The terminating zero is not
- * accounted for in B->Len, if you want that, you have to use AppendChar!
- */
+** accounted for in B->Len, if you want that, you have to use AppendChar!
+*/
 
 void SB_CopyBuf (StrBuf* Target, const char* Buf, unsigned Size);
 /* Copy Buf to Target, discarding the old contents of Target */
@@ -364,8 +364,8 @@ void SB_Append (StrBuf* Target, const StrBuf* Source);
 #if defined(HAVE_INLINE)
 INLINE void SB_Cut (StrBuf* B, unsigned Len)
 /* Cut the contents of B at the given length. If the current length of the
- * buffer is smaller than Len, nothing will happen.
- */
+** buffer is smaller than Len, nothing will happen.
+*/
 {
     if (Len < B->Len) {
         B->Len = Len;
@@ -374,21 +374,21 @@ INLINE void SB_Cut (StrBuf* B, unsigned Len)
 #else
 void SB_Cut (StrBuf* B, unsigned Len);
 /* Cut the contents of B at the given length. If the current length of the
- * buffer is smaller than Len, nothing will happen.
- */
+** buffer is smaller than Len, nothing will happen.
+*/
 #endif
 
 void SB_Slice (StrBuf* Target, const StrBuf* Source, unsigned Start, unsigned Len);
 /* Copy a slice from Source into Target. The current contents of Target are
- * destroyed. If Start is greater than the length of Source, or if Len
- * characters aren't available, the result will be a buffer with less than Len
- * bytes.
- */
+** destroyed. If Start is greater than the length of Source, or if Len
+** characters aren't available, the result will be a buffer with less than Len
+** bytes.
+*/
 
 void SB_Move (StrBuf* Target, StrBuf* Source);
 /* Move the complete contents of Source to target. This will delete the old
- * contents of Target, and Source will be empty after the call.
- */
+** contents of Target, and Source will be empty after the call.
+*/
 
 void SB_ToLower (StrBuf* S);
 /* Convert all characters in S to lower case */
@@ -404,17 +404,17 @@ int SB_CompareStr (const StrBuf* S1, const char* S2);
 
 void SB_VPrintf (StrBuf* S, const char* Format, va_list ap) attribute ((format (printf, 2, 0)));
 /* printf function with S as target. The function is safe, which means that
- * the current contents of S are discarded, and are allocated again with
- * a matching size for the output. The function will call FAIL when problems
- * are detected (anything that let xsnprintf return -1).
- */
+** the current contents of S are discarded, and are allocated again with
+** a matching size for the output. The function will call FAIL when problems
+** are detected (anything that let xsnprintf return -1).
+*/
 
 void SB_Printf (StrBuf* S, const char* Format, ...) attribute ((format (printf, 2, 3)));
 /* vprintf function with S as target. The function is safe, which means that
- * the current contents of S are discarded, and are allocated again with
- * a matching size for the output. The function will call FAIL when problems
- * are detected (anything that let xsnprintf return -1).
- */
+** the current contents of S are discarded, and are allocated again with
+** a matching size for the output. The function will call FAIL when problems
+** are detected (anything that let xsnprintf return -1).
+*/
 
 
 
index c5661be75bca90f807ad89015e0283455a2d6d63..244681afdbe93277ee996d67c5ed51a5b9f2e225 100644 (file)
 
 
 /* A string pool is used to store identifiers and other strings. Each string
- * stored in the pool has a unique id, which may be used to access the string
- * in the pool. Identical strings are stored only once in the pool and have
- * identical ids. This means that instead of comparing strings, just the
- * string pool ids must be compared.
- */
+** stored in the pool has a unique id, which may be used to access the string
+** in the pool. Identical strings are stored only once in the pool and have
+** identical ids. This means that instead of comparing strings, just the
+** string pool ids must be compared.
+*/
 
 
 
@@ -68,9 +68,9 @@ static const void* HT_GetKey (const void* Entry);
 
 static int HT_Compare (const void* Key1, const void* Key2);
 /* Compare two keys. The function must return a value less than zero if
- * Key1 is smaller than Key2, zero if both are equal, and a value greater
- * than zero if Key1 is greater then Key2.
- */
+** Key1 is smaller than Key2, zero if both are equal, and a value greater
+** than zero if Key1 is greater then Key2.
+*/
 
 
 
@@ -154,9 +154,9 @@ static const void* HT_GetKey (const void* Entry)
 
 static int HT_Compare (const void* Key1, const void* Key2)
 /* Compare two keys. The function must return a value less than zero if
- * Key1 is smaller than Key2, zero if both are equal, and a value greater
- * than zero if Key1 is greater then Key2.
- */
+** Key1 is smaller than Key2, zero if both are equal, and a value greater
+** than zero if Key1 is greater then Key2.
+*/
 {
     return SB_Compare (Key1, Key2);
 }
@@ -228,9 +228,9 @@ const StrBuf* SP_Get (const StringPool* P, unsigned Index)
 
 unsigned SP_Add (StringPool* P, const StrBuf* S)
 /* Add a string buffer to the buffer and return the index. If the string does
- * already exist in the pool, SP_AddBuf will just return the index of the
- * existing string.
- */
+** already exist in the pool, SP_AddBuf will just return the index of the
+** existing string.
+*/
 {
     /* Search for a matching entry in the hash table */
     StringPoolEntry* E = HT_Find (&P->Tab, S);
@@ -259,14 +259,14 @@ unsigned SP_Add (StringPool* P, const StrBuf* S)
 
 unsigned SP_AddStr (StringPool* P, const char* S)
 /* Add a string to the buffer and return the index. If the string does already
- * exist in the pool, SP_Add will just return the index of the existing string.
- */
+** exist in the pool, SP_Add will just return the index of the existing string.
+*/
 {
     unsigned Id;
 
     /* First make a string buffer, then add it. This is some overhead, but the
-     * routine will probably go.
-     */
+    ** routine will probably go.
+    */
     StrBuf Buf;
     Id = SP_Add (P, SB_InitFromString (&Buf, S));
 
index 967bce4abba33e81bd89a042a6823ea84afcae96..8a6a8faee21a0a1c4a324a2afb3e015a7be6b6f8 100644 (file)
 
 
 /* A string pool is used to store identifiers and other strings. Each string
- * stored in the pool has a unique id, which may be used to access the string
- * in the pool. Identical strings are only stored once in the pool and have
- * identical ids. This means that instead of comparing strings, just the
- * string pool ids must be compared.
- */
+** stored in the pool has a unique ID, which may be used to access the string
+** in the pool. Identical strings are only stored once in the pool and have
+** identical IDs. This means that instead of comparing strings, just the
+** string pool IDs must be compared.
+*/
 
 
 
@@ -84,14 +84,14 @@ const StrBuf* SP_Get (const StringPool* P, unsigned Index);
 
 unsigned SP_Add (StringPool* P, const StrBuf* S);
 /* Add a string buffer to the buffer and return the index. If the string does
- * already exist in the pool, SP_AddBuf will just return the index of the
- * existing string.
- */
+** already exist in the pool, SP_AddBuf will just return the index of the
+** existing string.
+*/
 
 unsigned SP_AddStr (StringPool* P, const char* S);
 /* Add a string to the buffer and return the index. If the string does already
- * exist in the pool, SP_Add will just return the index of the existing string.
- */
+** exist in the pool, SP_Add will just return the index of the existing string.
+*/
 
 unsigned SP_GetCount (const StringPool* P);
 /* Return the number of strings in the pool */
index 1cab51869cafc679d512397e9d7a0fdeedd5c3f4..dabed34cd4be3d289f175656a4a44bfdc7f84ab1 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2001-2003 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -49,9 +49,9 @@
 
 char* StrCopy (char* Dest, size_t DestSize, const char* Source)
 /* Copy Source to Dest honouring the maximum size of the target buffer. In
- * constrast to strncpy, the resulting string will always be NUL terminated.
- * The function returns the pointer to the destintation buffer.
- */
+** constrast to strncpy, the resulting string will always be NUL terminated.
+** The function returns the pointer to the destintation buffer.
+*/
 {
     size_t Len = strlen (Source);
     if (Len >= DestSize) {
index 2bdcc56865a235d1c55c201523783326b5ff4f9f..61dd74b646e8ea70ed7b9f044e00122719c2e170 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2001-2003 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -50,9 +50,9 @@
 
 char* StrCopy (char* Dest, size_t DestSize, const char* Source);
 /* Copy Source to Dest honouring the maximum size of the target buffer. In
- * constrast to strncpy, the resulting string will always be NUL terminated.
- * The function returns the pointer to the destintation buffer.
- */
+** constrast to strncpy, the resulting string will always be NUL terminated.
+** The function returns the pointer to the destintation buffer.
+*/
 
 int StrCaseCmp (const char* S1, const char* S2);
 /* Compare two strings ignoring case */
index 803a8894c310d173ed5af08e48c0c46cf40e03ac..ffb342e2553fa9e637f6696a72445e54b45ce5a4 100644 (file)
@@ -119,8 +119,8 @@ struct TargetEntry {
 };
 
 /* Table that maps target names to ids. Sorted alphabetically for bsearch.
- * Allows mupltiple entries for one target id (target name aliases).
- */
+** Allows mupltiple entries for one target id (target name aliases).
+*/
 static const TargetEntry TargetMap[] = {
     {   "apple2",       TGT_APPLE2      },
     {   "apple2enh",    TGT_APPLE2ENH   },
@@ -203,8 +203,8 @@ static int Compare (const void* Key, const void* Entry)
 
 target_t FindTarget (const char* Name)
 /* Find a target by name and return the target id. TGT_UNKNOWN is returned if
- * the given name is no valid target.
- */
+** the given name is no valid target.
+*/
 {
     /* Search for the name in the map */
     const TargetEntry* T;
index e824ad3c6d3b1beb4f6431c811c6d6b92cdac355..72dffe38220bf5120aed779772b653e00c8ad166 100644 (file)
@@ -107,8 +107,8 @@ extern target_t         Target;
 
 target_t FindTarget (const char* Name);
 /* Find a target by name and return the target id. TGT_UNKNOWN is returned if
- * the given name is no valid target.
- */
+** the given name is no valid target.
+*/
 
 const TargetProperties* GetTargetProperties (target_t Target);
 /* Return the properties for a target */
index 7725cf285e5c83a8fcea5b0c5d3fcfa4d389e8e1..95bdf866266b8c42347e442a2055e116fb12865d 100644 (file)
@@ -87,8 +87,8 @@ void TgtTranslateInit (void)
 
 int TgtTranslateChar (int C)
 /* Translate one character from the source character set into the target
- * system character set.
- */
+** system character set.
+*/
 {
     /* Translate */
     return Tab[C & 0xFF];
@@ -98,8 +98,8 @@ int TgtTranslateChar (int C)
 
 void TgtTranslateBuf (void* Buf, unsigned Len)
 /* Translate a buffer of the given length from the source character set into
- * the target system character set.
- */
+** the target system character set.
+*/
 {
     /* Translate */
     unsigned char* B = (unsigned char*)Buf;
@@ -113,8 +113,8 @@ void TgtTranslateBuf (void* Buf, unsigned Len)
 
 void TgtTranslateStrBuf (StrBuf* Buf)
 /* Translate a string buffer from the source character set into the target
- * system character set.
- */
+** system character set.
+*/
 {
     TgtTranslateBuf (SB_GetBuf (Buf), SB_GetLen (Buf));
 }
index 5b942e7f56fdbbde5a09e5bdee66687ba91e0d7e..46981ec0fba85ce328896f0e0186d6f9587d740e 100644 (file)
@@ -54,18 +54,18 @@ void TgtTranslateInit (void);
 
 int TgtTranslateChar (int C);
 /* Translate one character from the source character set into the target
- * system character set.
- */
+** system character set.
+*/
 
 void TgtTranslateBuf (void* Buf, unsigned Len);
 /* Translate a buffer of the given length from the source character set into
- * the target system character set.
- */
+** the target system character set.
+*/
 
 void TgtTranslateStrBuf (StrBuf* Buf);
 /* Translate a string buffer from the source character set into the target
- * system character set.
- */
+** system character set.
+*/
 
 void TgtTranslateSet (unsigned Index, unsigned char C);
 /* Set the translation code for the given character */
index ea63b6d7e7df690570907ef262ed20acecf5ab13..d50ad7a68f1738151c9183730437310d6a35f176 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2000-2004 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 
 
 /* The following is a very basic vsnprintf like function called xvsnprintf. It
- * features only the basic format specifiers (especially the floating point
- * stuff is missing), but may be extended if required. Reason for supplying
- * my own implementation is that vsnprintf is standard but not implemented by
- * older compilers, and some that implement it, don't adhere to the standard
- * (for example Microsoft with its _vsnprintf).
- */
+** features only the basic format specifiers (especially the floating point
+** stuff is missing), but may be extended if required. Reason for supplying
+** my own implementation is that vsnprintf is standard but not implemented by
+** older compilers, and some that implement it, don't adhere to the standard
+** (for example Microsoft with its _vsnprintf).
+*/
 
 typedef struct {
 
@@ -73,9 +73,9 @@ typedef struct {
     size_t      BufFill;
 
     /* Argument string buffer and string buffer pointer. The string buffer
-     * must be big enough to hold a converted integer of the largest type
-     * including an optional sign and terminating zero.
-     */
+    ** must be big enough to hold a converted integer of the largest type
+    ** including an optional sign and terminating zero.
+    */
     char        ArgBuf[256];
     int         ArgLen;
 
@@ -223,9 +223,9 @@ static void FormatInt (PrintfCtrl* P, uintmax_t Val)
     ToStr (P, Val);
 
     /* The default precision for all integer conversions is one. This means
-     * that the fPrec flag is always set and does not need to be checked
-     * later on.
-     */
+    ** that the fPrec flag is always set and does not need to be checked
+    ** later on.
+    */
     if ((P->Flags & fPrec) == 0) {
         P->Flags |= fPrec;
         P->Prec = 1;
@@ -305,9 +305,9 @@ static void FormatStr (PrintfCtrl* P, const char* Val)
     unsigned WidthPadding;
 
     /* Get the string length limited to the precision. Beware: We cannot use
-     * strlen here, because if a precision is given, the string may not be
-     * zero terminated.
-     */
+    ** strlen here, because if a precision is given, the string may not be
+    ** zero terminated.
+    */
     int Len;
     if ((P->Flags & fPrec) != 0) {
         const char* S = memchr (Val, '\0', P->Prec);
@@ -367,8 +367,8 @@ static void StoreOffset (PrintfCtrl* P)
 
 int xvsnprintf (char* Buf, size_t Size, const char* Format, va_list ap)
 /* A basic vsnprintf implementation. Does currently only support integer
- * formats.
- */
+** formats.
+*/
 {
     PrintfCtrl P;
     int Done;
@@ -418,8 +418,8 @@ int xvsnprintf (char* Buf, size_t Size, const char* Format, va_list ap)
         if (F == '*') {
             P.Width = va_arg (P.ap, int);
             /* A negative field width argument is taken as a - flag followed
-             * by a positive field width.
-             */
+            ** by a positive field width.
+            */
             if (P.Width < 0) {
                 P.Flags |= fMinus;
                 P.Width = -P.Width;
@@ -445,8 +445,8 @@ int xvsnprintf (char* Buf, size_t Size, const char* Format, va_list ap)
             if (F == '*') {
                 P.Prec = va_arg (P.ap, int);
                 /* A negative precision argument is taken as if the precision
-                 * were omitted.
-                 */
+                ** were omitted.
+                */
                 if (P.Prec < 0) {
                     P.Flags &= ~fPrec;
                 }
@@ -462,8 +462,8 @@ int xvsnprintf (char* Buf, size_t Size, const char* Format, va_list ap)
                 }
             } else if (F == '-') {
                 /* A negative precision argument is taken as if the precision
-                 * were omitted.
-                 */
+                ** were omitted.
+                */
                 F = *Format++;          /* Skip the minus */
                 while (IsDigit (F = *Format++)) ;
                 P.Flags &= ~fPrec;
@@ -581,8 +581,8 @@ int xvsnprintf (char* Buf, size_t Size, const char* Format, va_list ap)
                     /* Handle the length by using a precision */
                     if ((P.Flags & fPrec) != 0) {
                         /* Precision already specified, use length of string 
-                         * if less.
-                         */
+                        ** if less.
+                        */
                         if ((unsigned) P.Prec > SB_GetLen (S)) {
                             P.Prec = SB_GetLen (S);
                         }
@@ -622,9 +622,9 @@ int xvsnprintf (char* Buf, size_t Size, const char* Format, va_list ap)
     va_end (P.ap);
 
     /* Terminate the output string and return the number of chars that had
-     * been written if the buffer was large enough.
-     * Beware: The terminating zero is not counted for the function result!
-     */
+    ** been written if the buffer was large enough.
+    ** Beware: The terminating zero is not counted for the function result!
+    */
     AddChar (&P, '\0');
     return P.BufFill - 1;
 }
@@ -633,8 +633,8 @@ int xvsnprintf (char* Buf, size_t Size, const char* Format, va_list ap)
 
 int xsnprintf (char* Buf, size_t Size, const char* Format, ...)
 /* A basic snprintf implementation. Does currently only support integer
- * formats.
- */
+** formats.
+*/
 {
     int Res;
     va_list ap;
index c6ceb723cddcb829376d35e89736c424b83f6f7e..a37b71914b100c80a31873106324b03c71abba30 100644 (file)
 
 
 /* We need a way to output a StrBuf, but on the other side, we don't want to 
- * switch off gcc's printf format string checking. So we cheat as follows: 
- * %m (which is a gcc extension and doesn't take an argument) switches %p 
- * between outputting a pointer and a string buf. This works just one time,
- * so each StrBuf needs in fact a %m%p spec. There's no way to apply a width
- * and precision to such a StrBuf, but *not* using %p would bring up a warning
- * about a wrong argument type each time. Maybe gcc will one day allow custom
- * format specifiers and we can change this ...
- */
+** switch off gcc's printf format string checking. So we cheat as follows: 
+** %m (which is a gcc extension and doesn't take an argument) switches %p 
+** between outputting a pointer and a string buf. This works just one time,
+** so each StrBuf needs in fact a %m%p spec. There's no way to apply a width
+** and precision to such a StrBuf, but *not* using %p would bring up a warning
+** about a wrong argument type each time. Maybe gcc will one day allow custom
+** format specifiers and we can change this ...
+*/
 
 
 
 int xvsnprintf (char* Buf, size_t Size, const char* Format, va_list ap)
         attribute ((format (printf, 3, 0)));
 /* A basic vsnprintf implementation. Does currently only support integer
- * formats.
- */
+** formats.
+*/
 
 int xsnprintf (char* Buf, size_t Size, const char* Format, ...)
         attribute ((format (printf, 3, 4)));
 /* A basic snprintf implementation. Does currently only support integer
- * formats.
- */
+** formats.
+*/
 
 int xsprintf (char* Buf, size_t BufSize, const char* Format, ...)
         attribute ((format (printf, 3, 4)));
index 4f496c79fe0c8be726b873baa5bf64ce2f7ff98d..06a397d52fa061536c9d0b0c9726d27fecbdce0f 100644 (file)
@@ -168,8 +168,8 @@ void AsmInc (const char* Filename, char CommentStart, int IgnoreUnknown)
         }
 
         /* Determine the base of the number. Allow $ and % as prefixes for
-         * hex and binary numbers respectively.
-         */
+        ** hex and binary numbers respectively.
+        */
         if (*L == '$') {
             Base = 16;
             ++L;
index 0cc158219826c46147d74d2c370e8194f817d742..9aff732b3c76e50420ce3714e28fe671da2471f5 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2000-2003 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -98,8 +98,8 @@ void LoadCode (void)
     }
 
     /* Seek to the input offset and correct size to contain the remainder of
-     * the file.
-     */
+    ** the file.
+    */
     if (fseek (F, InputOffs, SEEK_SET) != 0) {
         Error ("Cannot seek on file `%s': %s", InFile, strerror (errno));
     }
@@ -114,9 +114,9 @@ void LoadCode (void)
     }
 
     /* If the start address was not given, set it so that the code loads to
-     * 0x10000 - Size. This is a reasonable default assuming that the file
-     * is a ROM that contains the hardware vectors at $FFFA.
-     */
+    ** 0x10000 - Size. This is a reasonable default assuming that the file
+    ** is a ROM that contains the hardware vectors at $FFFA.
+    */
     if (StartAddr < 0) {
         if (Size > 0x10000) {
             StartAddr = 0;
index 236241357f709c2d48c4f87d5decd46b5cb7ce59..f4c37818fa94ef85d5265af1d706f25d39048ad8 100644 (file)
@@ -57,9 +57,9 @@ static unsigned GetSpan (attr_t Style)
     unsigned RemainingBytes = GetRemainingBytes ();
 
     /* Count how many bytes are available. This number is limited by the
-     * number of remaining bytes, a label, a segment change, or the end of
-     * the given Style attribute.
-     */
+    ** number of remaining bytes, a label, a segment change, or the end of
+    ** the given Style attribute.
+    */
     unsigned Count = 1;
     while (Count < RemainingBytes) {
         attr_t Attr;
@@ -91,9 +91,9 @@ static unsigned DoTable (attr_t Style, unsigned MemberSize, void (*TableFunc) (u
     unsigned Count = GetSpan (Style);
 
     /* If the count is less than the member size, print a row of Count data
-     * bytes. We assume here that there is no member with a size that is less
-     * than BytesPerLine.
-     */
+    ** bytes. We assume here that there is no member with a size that is less
+    ** than BytesPerLine.
+    */
     if (Count < MemberSize) {
         DataByteLine (Count);
         PC += Count;
@@ -172,8 +172,8 @@ unsigned AddrTable (void)
     unsigned long Start = PC;
 
     /* Loop while table bytes left and we don't need to create a label at the
-     * current position.
-     */
+    ** current position.
+    */
     while (BytesLeft && GetStyleAttr (PC) == atAddrTab) {
 
         unsigned Addr;
@@ -238,8 +238,8 @@ unsigned RtsTable (void)
     unsigned long Start = PC;
 
     /* Loop while table bytes left and we don't need to create a label at the
-     * current position.
-     */
+    ** current position.
+    */
     while (BytesLeft && GetStyleAttr (PC) == atRtsTab) {
 
         unsigned Addr;
index f4022ce37e6bd2bd9a707d7de5556290c7d5827c..0806301fe8471ac74338469969b8ba46d12ece8c 100644 (file)
@@ -93,8 +93,8 @@ static void OneLine (const OpcDesc* D, const char* Arg, ...)
 
 static const char* GetAbsOverride (unsigned Flags, unsigned Addr)
 /* If the instruction requires an abs override modifier, return the necessary
- * string, otherwise return the empty string.
- */
+** string, otherwise return the empty string.
+*/
 {
     if ((Flags & flAbsOverride) != 0 && Addr < 0x100) {
         return "a:";
@@ -137,10 +137,10 @@ static void GenerateLabel (unsigned Flags, unsigned Addr)
          ((Flags & flUseLabel) != 0 && Addr >= CodeStart && Addr <= CodeEnd))) {
 
         /* As a special case, handle ranges with tables or similar. Within
-         * such a range with a granularity > 1, do only generate dependent
-         * labels for all addresses but the first one. Be sure to generate
-         * a label for the start of the range, however.
-         */
+        ** such a range with a granularity > 1, do only generate dependent
+        ** labels for all addresses but the first one. Be sure to generate
+        ** a label for the start of the range, however.
+        */
         attr_t Style         = GetStyleAttr (Addr);
         unsigned Granularity = GetGranularity (Style);
 
@@ -153,8 +153,8 @@ static void GenerateLabel (unsigned Flags, unsigned Addr)
 
 
             /* Search for the start of the range or the last non dependent
-             * label in the range.
-             */
+            ** label in the range.
+            */
             unsigned Offs;
             attr_t LabelAttr;
             unsigned LabelAddr = Addr;
@@ -414,10 +414,10 @@ void OH_BitBranch (const OpcDesc* D)
     unsigned BranchAddr = (((int) PC+3) + BranchOffs) & 0xFFFF;
 
     /* Generate labels in pass 1. The bit branch codes are special in that
-     * they don't really match the remainder of the 6502 instruction set (they
-     * are a Rockwell addon), so we must pass additional flags as direct
-     * value to the second GenerateLabel call.
-     */
+    ** they don't really match the remainder of the 6502 instruction set (they
+    ** are a Rockwell addon), so we must pass additional flags as direct
+    ** value to the second GenerateLabel call.
+    */
     GenerateLabel (D->Flags, TestAddr);
     GenerateLabel (flLabel, BranchAddr);
 
index 6a1432104bd0777e4aa12628587d221721717021..547a7986939ed94ec75f9ac3c16d773d0fdd4925 100644 (file)
@@ -70,8 +70,8 @@ static const char* SymTab[0x10000];
 
 static const char* MakeLabelName (unsigned Addr)
 /* Make the default label name from the given address and return it in a
- * static buffer.
- */
+** static buffer.
+*/
 {
     static char LabelBuf [32];
     xsprintf (LabelBuf, sizeof (LabelBuf), "L%04X", Addr);
@@ -89,8 +89,8 @@ static void AddLabel (unsigned Addr, attr_t Attr, const char* Name)
     /* Must not have two symbols for one address */
     if (ExistingAttr != atNoLabel) {
         /* Allow redefinition if identical. Beware: Unnamed labels don't
-         * have a name (you guessed that, didn't you?).
-         */
+        ** have a name (you guessed that, didn't you?).
+        */
         if (ExistingAttr == Attr &&
             ((Name == 0 && SymTab[Addr] == 0) || strcmp (SymTab[Addr], Name) == 0)) {
             return;
@@ -133,8 +133,8 @@ void AddUnnamedLabel (unsigned Addr)
 
 void AddDepLabel (unsigned Addr, attr_t Attr, const char* BaseName, unsigned Offs)
 /* Add a dependent label at the given address using "basename+Offs" as the new
- * name.
- */
+** name.
+*/
 {
     /* Allocate memory for the dependent label name */
     unsigned NameLen = strlen (BaseName);
@@ -159,8 +159,8 @@ void AddDepLabel (unsigned Addr, attr_t Attr, const char* BaseName, unsigned Off
 static void AddLabelRange (unsigned Addr, attr_t Attr,
                            const char* Name, unsigned Count)
 /* Add a label for a range. The first entry gets the label "Name" while the
- * others get "Name+offs".
- */
+** others get "Name+offs".
+*/
 {
     /* Define the label */
     AddLabel (Addr, Attr, Name);
@@ -196,8 +196,8 @@ static void AddLabelRange (unsigned Addr, attr_t Attr,
 
 void AddIntLabelRange (unsigned Addr, const char* Name, unsigned Count)
 /* Add an internal label for a range. The first entry gets the label "Name"
- * while the others get "Name+offs".
- */
+** while the others get "Name+offs".
+*/
 {
     /* Define the label range */
     AddLabelRange (Addr, atIntLabel, Name, Count);
@@ -207,8 +207,8 @@ void AddIntLabelRange (unsigned Addr, const char* Name, unsigned Count)
 
 void AddExtLabelRange (unsigned Addr, const char* Name, unsigned Count)
 /* Add an external label for a range. The first entry gets the label "Name"
- * while the others get "Name+offs".
- */
+** while the others get "Name+offs".
+*/
 {
     /* Define the label range */
     AddLabelRange (Addr, atExtLabel, Name, Count);
@@ -227,8 +227,8 @@ int HaveLabel (unsigned Addr)
 
 int MustDefLabel (unsigned Addr)
 /* Return true if we must define a label for this address, that is, if there
- * is a label at this address, and it is an external or internal label.
- */
+** is a label at this address, and it is an external or internal label.
+*/
 {
     /* Get the label attribute */
     attr_t A = GetLabelAttr (Addr);
@@ -246,8 +246,8 @@ const char* GetLabelName (unsigned Addr)
     attr_t A = GetLabelAttr (Addr);
 
     /* Special case unnamed labels, because these don't have a named stored in
-     * the symbol table to save space.
-     */
+    ** the symbol table to save space.
+    */
     if (A == atUnnamedLabel) {
         return "";
     } else {
@@ -260,9 +260,9 @@ const char* GetLabelName (unsigned Addr)
 
 const char* GetLabel (unsigned Addr, unsigned RefFrom)
 /* Return the label name for an address, as it is used in a label reference.
- * RefFrom is the address the label is referenced from. This is needed in case
- * of unnamed labels, to determine the name.
- */
+** RefFrom is the address the label is referenced from. This is needed in case
+** of unnamed labels, to determine the name.
+*/
 {
     static const char* FwdLabels[] = {
         ":+", ":++", ":+++", ":++++", ":+++++", ":++++++", ":+++++++",
@@ -277,15 +277,15 @@ const char* GetLabel (unsigned Addr, unsigned RefFrom)
     attr_t A = GetLabelAttr (Addr);
 
     /* Special case unnamed labels, because these don't have a named stored in
-     * the symbol table to save space.
-     */
+    ** the symbol table to save space.
+    */
     if (A == atUnnamedLabel) {
 
         unsigned Count = 0;
 
         /* Search forward or backward depending in which direction the label
-         * is.
-         */
+        ** is.
+        */
         if (Addr <= RefFrom) {
             /* Search backwards */
             unsigned I = RefFrom;
@@ -333,8 +333,8 @@ const char* GetLabel (unsigned Addr, unsigned RefFrom)
 
 void ForwardLabel (unsigned Offs)
 /* If necessary, output a forward label, one that is within the next few
- * bytes and is therefore output as "label = * + x".
- */
+** bytes and is therefore output as "label = * + x".
+*/
 {
     /* Calculate the actual address */
     unsigned long Addr = PC + Offs;
@@ -348,8 +348,8 @@ void ForwardLabel (unsigned Offs)
     }
 
     /* An unnamed label cannot be output as a forward declaration, so this is
-     * an error.
-     */
+    ** an error.
+    */
     if (A == atUnnamedLabel) {
         Error ("Cannot define unnamed label at address $%04lX", Addr);
     }
index 88ea8d88be6353eaef3e1922c5eef024a0ca699c..c4b52774ae669b96c7db65c66182c87c5da3ed05 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 2006      Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -59,40 +59,40 @@ void AddUnnamedLabel (unsigned Addr);
 
 void AddDepLabel (unsigned Addr, attr_t Attr, const char* BaseName, unsigned Offs);
 /* Add a dependent label at the given address using "base name+Offs" as the new
- * name.
- */
+** name.
+*/
 
 void AddIntLabelRange (unsigned Addr, const char* Name, unsigned Count);
 /* Add an internal label for a range. The first entry gets the label "Name"
- * while the others get "Name+offs".
- */
+** while the others get "Name+offs".
+*/
 
 void AddExtLabelRange (unsigned Addr, const char* Name, unsigned Count);
 /* Add an external label for a range. The first entry gets the label "Name"
- * while the others get "Name+offs".
- */
+** while the others get "Name+offs".
+*/
 
 int HaveLabel (unsigned Addr);
 /* Check if there is a label for the given address */
 
 int MustDefLabel (unsigned Addr);
 /* Return true if we must define a label for this address, that is, if there
- * is a label at this address, and it is an external or internal label.
- */
+** is a label at this address, and it is an external or internal label.
+*/
 
 const char* GetLabelName (unsigned Addr);
 /* Return the label name for an address */
 
 const char* GetLabel (unsigned Addr, unsigned RefFrom);
 /* Return the label name for an address, as it is used in a label reference.
- * RefFrom is the address the label is referenced from. This is needed in case
- * of unnamed labels, to determine the name.
- */
+** RefFrom is the address the label is referenced from. This is needed in case
+** of unnamed labels, to determine the name.
+*/
 
 void ForwardLabel (unsigned Offs);
 /* If necessary, output a forward label, one that is within the next few
- * bytes and is therefore output as "label = * + x".
- */
+** bytes and is therefore output as "label = * + x".
+*/
 
 void DefOutOfRangeLabels (void);
 /* Output any labels that are out of the loaded code range */
index 921951f3a04b779df17b21924be2d786de0f4fb4..a819f977194bcf36fcf400c8b027492370d068a8 100644 (file)
@@ -6,10 +6,10 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 1998-2011, Ullrich von Bassewitz                                       */
-/*                Roemerstrasse 52                                            */
-/*                D-70794 Filderstadt                                         */
-/* EMail:         uz@cc65.org                                                 */
+/* (C) 1998-2011, Ullrich von Bassewitz                                      */
+/*                Roemerstrasse 52                                           */
+/*                D-70794 Filderstadt                                        */
+/* EMail:         uz@cc65.org                                                */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
@@ -108,8 +108,8 @@ static void Usage (void)
 static void RangeCheck (const char* Opt, unsigned long Val,
                         unsigned long Min, unsigned long Max)
 /* Do a range check for the given option and abort if there's a range
- * error.
- */
+** error.
+*/
 {
     if (Val < Min || Val > Max) {
         Error ("Argument for %s outside valid range (%ld-%ld)", Opt, Min, Max);
@@ -120,8 +120,8 @@ static void RangeCheck (const char* Opt, unsigned long Val,
 
 static unsigned long CvtNumber (const char* Arg, const char* Number)
 /* Convert a number from a string. Allow '$' and '0x' prefixes for hex
- * numbers.
- */
+** numbers.
+*/
 {
     unsigned long Val;
     int           Converted;
@@ -357,8 +357,8 @@ static void OneOpcode (unsigned RemainingBytes)
     attr_t Style = GetStyleAttr (PC);
 
     /* If we have a label at this address, output the label and an attached
-     * comment, provided that we aren't in a skip area.
-     */
+    ** comment, provided that we aren't in a skip area.
+    */
     if (Style != atSkip && MustDefLabel (PC)) {
         const char* Comment = GetComment (PC);
         if (Comment) {
@@ -368,11 +368,11 @@ static void OneOpcode (unsigned RemainingBytes)
     }
 
     /* Check...
-     *   - ...if we have enough bytes remaining for the code at this address.
-     *   - ...if the current instruction is valid for the given CPU.
-     *   - ...if there is no label somewhere between the instruction bytes.
-     * If any of these conditions is false, switch to data mode.
-     */
+    **   - ...if we have enough bytes remaining for the code at this address.
+    **   - ...if the current instruction is valid for the given CPU.
+    **   - ...if there is no label somewhere between the instruction bytes.
+    ** If any of these conditions is false, switch to data mode.
+    */
     if (Style == atDefault) {
         if (D->Size > RemainingBytes) {
             Style = atIllegal;
@@ -402,8 +402,8 @@ static void OneOpcode (unsigned RemainingBytes)
 
         case atCode:
             /* Beware: If we don't have enough bytes left to disassemble the
-             * following insn, fall through to byte mode.
-             */
+            ** following insn, fall through to byte mode.
+            */
             if (D->Size <= RemainingBytes) {
                 /* Output labels within the next insn */
                 unsigned I;
@@ -594,9 +594,9 @@ int main (int argc, char* argv [])
     }
 
     /* Check the formatting options for reasonable values. Note: We will not
-     * really check that they make sense, just that they aren't complete
-     * garbage.
-     */
+    ** really check that they make sense, just that they aren't complete
+    ** garbage.
+    */
     if (MCol >= ACol) {
         AbEnd ("mnemonic-column value must be smaller than argument-column value");
     }
@@ -613,8 +613,8 @@ int main (int argc, char* argv [])
     }
 
     /* Get the current time and convert it to string so it can be used in
-     * the output page headers.
-     */
+    ** the output page headers.
+    */
     T = time (0);
     strftime (Now, sizeof (Now), "%Y-%m-%d %H:%M:%S", localtime (&T));
 
index 01bef44b197744b716f3494d0088e2518d7b8927..c02a145c6f0bb8854fd0e740c2f553656c756404 100644 (file)
@@ -46,8 +46,8 @@
 
 
 /* Descriptions for all opcodes. Base table from opc6502.c with illegal
- * opcodes from http://www.oxyron.de/html/opcodes02.html
- */
+** opcodes from http://www.oxyron.de/html/opcodes02.html
+*/
 const OpcDesc OpcTable_6502X[256] = {
     {   "brk",  1,  flNone,                   OH_Implicit              }, /* $00 */
     {   "ora",  2,  flUseLabel,               OH_DirectXIndirect       }, /* $01 */
index 2d967ec80d73cfd2dfb39d42056f1abdb0d8d764..9098d7d3766c55c8b3464fe665fbcaa7a5b0c9ce 100644 (file)
@@ -168,8 +168,8 @@ void DefLabel (const char* Name)
 {
     Output ("%s:", Name);
     /* If the label is longer than the configured maximum, or if it runs into
-     * the opcode column, start a new line.
-     */
+    ** the opcode column, start a new line.
+    */
     if (Col > LBreak+2 || Col > MCol) {
         LineFeed ();
     }
@@ -179,8 +179,8 @@ void DefLabel (const char* Name)
 
 void DefForward (const char* Name, const char* Comment, unsigned Offs)
 /* Define a label as "* + x", where x is the offset relative to the
- * current PC.
- */
+** current PC.
+*/
 {
     if (Pass == PassCount) {
         /* Flush existing output if necessary */
index 68d22735057a301cc695951c85e18c071fc445cf..ad5f8d34e29a0fd5444578fdb6610c77816b52fd 100644 (file)
@@ -69,8 +69,8 @@ void DefLabel (const char* Name);
 
 void DefForward (const char* Name, const char* Comment, unsigned Offs);
 /* Define a label as "* + x", where x is the offset relative to the
- * current PC.
- */
+** current PC.
+*/
 
 void DefConst (const char* Name, const char* Comment, unsigned Addr);
 /* Define an address constant */
index 4a4f70a45971715d77591357e238be745ca910ff..cad2096ff9ede24825da369f6bd6bb4bffe8ebde 100644 (file)
@@ -66,8 +66,8 @@ struct Segment {
 };
 
 /* Tables containing the segments. A segment is inserted using it's hash
- * value. Collision is done by single linked lists.
- */
+** value. Collision is done by single linked lists.
+*/
 static Segment* StartTab[HASH_SIZE];    /* Table containing segment starts */
 static Segment* EndTab[HASH_SIZE];      /* Table containing segment ends */
 
index 05951f6c6444a896c6bd1be23bf1db5a790b9a98..e0d8894f96d24d26ee02bcc244fa54be28719e91 100644 (file)
@@ -71,11 +71,11 @@ struct StrBuf {
 #define STRBUF_INITIALIZER      { 0, 0, 0 }
 
 /* An array of unsigneds/pointers that grows if needed. C guarantees that a
- * pointer to a union correctly converted points to each of its members.
- * So what we do here is using union entries that contain an unsigned
- * (used to store ids until they're resolved) and pointers to actual items
- * in storage.
- */
+** pointer to a union correctly converted points to each of its members.
+** So what we do here is using union entries that contain an unsigned
+** (used to store ids until they're resolved) and pointers to actual items
+** in storage.
+*/
 typedef union CollEntry CollEntry;
 union CollEntry {
     void*               Ptr;
@@ -93,8 +93,8 @@ struct Collection {
 #define COLLECTION_INITIALIZER  { 0, 0, 0 }
 
 /* Span info management. The following table has as many entries as there
- * are addresses active in spans. Each entry lists the spans for this address.
- */
+** are addresses active in spans. Each entry lists the spans for this address.
+*/
 typedef struct SpanInfoListEntry SpanInfoListEntry;
 struct SpanInfoListEntry {
     cc65_addr           Addr;           /* Unique address */
@@ -177,16 +177,16 @@ typedef enum {
 } Token;
 
 /* Data structure containing information from the debug info file. A pointer
- * to this structure is passed as handle to callers from the outside.
- */
+** to this structure is passed as handle to callers from the outside.
+*/
 typedef struct DbgInfo DbgInfo;
 struct DbgInfo {
 
     /* First we have all items in collections sorted by id. The ids are
-     * continous, so an access by id is almost as cheap as an array access.
-     * The collections are also used when the objects are deleted, so they're
-     * actually the ones that "own" the items.
-     */
+    ** continous, so an access by id is almost as cheap as an array access.
+    ** The collections are also used when the objects are deleted, so they're
+    ** actually the ones that "own" the items.
+    */
     Collection          CSymInfoById;   /* C symbol infos sorted by id */
     Collection          FileInfoById;   /* File infos sorted by id */
     Collection          LibInfoById;    /* Library infos sorted by id */
@@ -404,8 +404,8 @@ struct TypeInfo {
 };
 
 /* A structure used when parsing a type string into a set of cc65_typedata
- * structures.
- */
+** structures.
+*/
 typedef struct TypeParseData TypeParseData;
 struct TypeParseData {
     TypeInfo*           Info;
@@ -498,8 +498,8 @@ static void SB_Done (StrBuf* B)
 
 static void SB_Realloc (StrBuf* B, unsigned NewSize)
 /* Reallocate the string buffer space, make sure at least NewSize bytes are
- * available.
- */
+** available.
+*/
 {
     /* Get the current size, use a minimum of 8 bytes */
     unsigned NewAllocated = B->Allocated;
@@ -513,9 +513,9 @@ static void SB_Realloc (StrBuf* B, unsigned NewSize)
     }
 
     /* Reallocate the buffer. Beware: The allocated size may be zero while the
-     * length is not. This means that we have a buffer that wasn't allocated
-     * on the heap.
-     */
+    ** length is not. This means that we have a buffer that wasn't allocated
+    ** on the heap.
+    */
     if (B->Allocated) {
         /* Just reallocate the block */
         B->Buf = xrealloc (B->Buf, NewAllocated);
@@ -532,9 +532,9 @@ static void SB_Realloc (StrBuf* B, unsigned NewSize)
 
 static void SB_CheapRealloc (StrBuf* B, unsigned NewSize)
 /* Reallocate the string buffer space, make sure at least NewSize bytes are
- * available. This function won't copy the old buffer contents over to the new
- * buffer and may be used if the old contents are overwritten later.
- */
+** available. This function won't copy the old buffer contents over to the new
+** buffer and may be used if the old contents are overwritten later.
+*/
 {
     /* Get the current size, use a minimum of 8 bytes */
     unsigned NewAllocated = B->Allocated;
@@ -596,8 +596,8 @@ static char SB_At (const StrBuf* B, unsigned Pos)
 
 static void SB_Terminate (StrBuf* B)
 /* Zero terminate the given string buffer. NOTE: The terminating zero is not
- * accounted for in B->Len, if you want that, you have to use AppendChar!
- */
+** accounted for in B->Len, if you want that, you have to use AppendChar!
+*/
 {
     unsigned NewLen = B->Len + 1;
     if (NewLen > B->Allocated) {
@@ -653,8 +653,8 @@ static void SB_AppendChar (StrBuf* B, int C)
 
 static char* SB_StrDup (const StrBuf* B)
 /* Return the contents of B as a dynamically allocated string. The string
- * will always be NUL terminated.
- */
+** will always be NUL terminated.
+*/
 {
     /* Allocate memory */
     char* S = xmalloc (B->Len + 1);
@@ -701,15 +701,15 @@ static Collection* CollNew (void)
 
 static void CollDone (Collection* C)
 /* Free the data for a collection. This will not free the data contained in
- * the collection.
- */
+** the collection.
+*/
 {
     /* Free the pointer array */
     xfree (C->Items);
 
     /* Clear the fields, so the collection may be reused (or CollDone called)
-     * again
-     */
+    ** again
+    */
     C->Count = 0;
     C->Size  = 0;
     C->Items = 0;
@@ -739,9 +739,9 @@ static unsigned CollCount (const Collection* C)
 
 static void CollMove (Collection* Source, Collection* Target)
 /* Move all data from one collection to another. This function will first free
- * the data in the target collection, and - after the move - clear the data
- * from the source collection.
- */
+** the data in the target collection, and - after the move - clear the data
+** from the source collection.
+*/
 {
     /* Free the target collection data */
     xfree (Target->Items);
@@ -759,9 +759,9 @@ static void CollMove (Collection* Source, Collection* Target)
 
 static void CollGrow (Collection* C, unsigned Size)
 /* Grow the collection C so it is able to hold Size items without a resize
- * being necessary. This can be called for performance reasons if the number
- * of items to be placed in the collection is known in advance.
- */
+** being necessary. This can be called for performance reasons if the number
+** of items to be placed in the collection is known in advance.
+*/
 {
     CollEntry* NewItems;
 
@@ -839,10 +839,10 @@ static void CollReplace (Collection* C, void* Item, unsigned Index)
 
 static void CollReplaceExpand (Collection* C, void* Item, unsigned Index)
 /* If Index is a valid index for the collection, replace the item at this
- * position by the one passed. If the collection is too small, expand it,
- * filling unused pointers with NULL, then add the new item at the given
- * position.
- */
+** position by the one passed. If the collection is too small, expand it,
+** filling unused pointers with NULL, then add the new item at the given
+** position.
+*/
 {
     if (Index < C->Count) {
         /* Collection is already large enough */
@@ -1070,9 +1070,9 @@ static void DBGPRINT(const char* format, ...) {}
 
 static unsigned GetId (const void* Data)
 /* Return the id of one of the info structures. All structures have the Id
- * field as first member, and the C standard allows converting a union pointer
- * to the data type of the first member, so this is safe and portable.
- */
+** field as first member, and the C standard allows converting a union pointer
+** to the data type of the first member, so this is safe and portable.
+*/
 {
     if (Data) {
         return *(const unsigned*)Data;
@@ -1156,9 +1156,9 @@ static void UnexpectedToken (InputData* D)
 
 static void UnknownKeyword (InputData* D)
 /* Print a warning about an unknown keyword in the file. Try to do smart
- * recovery, so if later versions of the debug information add additional
- * keywords, this code may be able to at least ignore them.
- */
+** recovery, so if later versions of the debug information add additional
+** keywords, this code may be able to at least ignore them.
+*/
 {
     /* Output a warning */
     ParseError (D, CC65_WARNING, "Unknown keyword \"%s\" - skipping",
@@ -1168,9 +1168,9 @@ static void UnknownKeyword (InputData* D)
     NextToken (D);
 
     /* If an equal sign follows, ignore anything up to the next line end
-     * or comma. If a comma or line end follows, we're already done. If
-     * we have none of both, we ignore the remainder of the line.
-     */
+    ** or comma. If a comma or line end follows, we're already done. If
+    ** we have none of both, we ignore the remainder of the line.
+    */
     if (D->Tok == TOK_EQUAL) {
         NextToken (D);
         while (D->Tok != TOK_COMMA && D->Tok != TOK_EOL && D->Tok != TOK_EOF) {
@@ -1215,8 +1215,8 @@ static void FreeCSymInfo (CSymInfo* S)
 
 static cc65_csyminfo* new_cc65_csyminfo (unsigned Count)
 /* Allocate and return a cc65_csyminfo struct that is able to hold Count
- * entries. Initialize the count field of the returned struct.
- */
+** entries. Initialize the count field of the returned struct.
+*/
 {
     cc65_csyminfo* S = xmalloc (sizeof (*S) - sizeof (S->data[0]) +
                                 Count * sizeof (S->data[0]));
@@ -1292,8 +1292,8 @@ static void FreeFileInfo (FileInfo* F)
 
 static cc65_sourceinfo* new_cc65_sourceinfo (unsigned Count)
 /* Allocate and return a cc65_sourceinfo struct that is able to hold Count
- * entries. Initialize the count field of the returned struct.
- */
+** entries. Initialize the count field of the returned struct.
+*/
 {
     cc65_sourceinfo* S = xmalloc (sizeof (*S) - sizeof (S->data[0]) +
                                   Count * sizeof (S->data[0]));
@@ -1318,9 +1318,9 @@ static int CompareFileInfoByName (const void* L, const void* R)
 /* Helper function to sort file infos in a collection by name */
 {
     /* Sort by file name. If names are equal, sort by timestamp,
-     * then sort by size. Which means, identical files will go
-     * together.
-     */
+    ** then sort by size. Which means, identical files will go
+    ** together.
+    */
     int Res = strcmp (((const FileInfo*) L)->Name,
                       ((const FileInfo*) R)->Name);
     if (Res != 0) {
@@ -1373,8 +1373,8 @@ static void FreeLibInfo (LibInfo* L)
 
 static cc65_libraryinfo* new_cc65_libraryinfo (unsigned Count)
 /* Allocate and return a cc65_libraryinfo struct that is able to hold Count
- * entries. Initialize the count field of the returned struct.
- */
+** entries. Initialize the count field of the returned struct.
+*/
 {
     cc65_libraryinfo* L = xmalloc (sizeof (*L) - sizeof (L->data[0]) +
                                    Count * sizeof (L->data[0]));
@@ -1423,8 +1423,8 @@ static void FreeLineInfo (LineInfo* L)
 
 static cc65_lineinfo* new_cc65_lineinfo (unsigned Count)
 /* Allocate and return a cc65_lineinfo struct that is able to hold Count
- * entries. Initialize the count field of the returned struct.
- */
+** entries. Initialize the count field of the returned struct.
+*/
 {
     cc65_lineinfo* L = xmalloc (sizeof (*L) - sizeof (L->data[0]) +
                                 Count * sizeof (L->data[0]));
@@ -1497,8 +1497,8 @@ static void FreeModInfo (ModInfo* M)
 
 static cc65_moduleinfo* new_cc65_moduleinfo (unsigned Count)
 /* Allocate and return a cc65_moduleinfo struct that is able to hold Count
- * entries. Initialize the count field of the returned struct.
- */
+** entries. Initialize the count field of the returned struct.
+*/
 {
     cc65_moduleinfo* M = xmalloc (sizeof (*M) - sizeof (M->data[0]) +
                                   Count * sizeof (M->data[0]));
@@ -1569,8 +1569,8 @@ static void FreeScopeInfo (ScopeInfo* S)
 
 static cc65_scopeinfo* new_cc65_scopeinfo (unsigned Count)
 /* Allocate and return a cc65_scopeinfo struct that is able to hold Count
- * entries. Initialize the count field of the returned struct.
- */
+** entries. Initialize the count field of the returned struct.
+*/
 {
     cc65_scopeinfo* S = xmalloc (sizeof (*S) - sizeof (S->data[0]) +
                                  Count * sizeof (S->data[0]));
@@ -1656,8 +1656,8 @@ static void FreeSegInfo (SegInfo* S)
 
 static cc65_segmentinfo* new_cc65_segmentinfo (unsigned Count)
 /* Allocate and return a cc65_segmentinfo struct that is able to hold Count
- * entries. Initialize the count field of the returned struct.
- */
+** entries. Initialize the count field of the returned struct.
+*/
 {
     cc65_segmentinfo* S = xmalloc (sizeof (*S) - sizeof (S->data[0]) +
                                    Count * sizeof (S->data[0]));
@@ -1722,8 +1722,8 @@ static void FreeSpanInfo (SpanInfo* S)
 
 static cc65_spaninfo* new_cc65_spaninfo (unsigned Count)
 /* Allocate and return a cc65_spaninfo struct that is able to hold Count
- * entries. Initialize the count field of the returned struct.
- */
+** entries. Initialize the count field of the returned struct.
+*/
 {
     cc65_spaninfo* S = xmalloc (sizeof (*S) - sizeof (S->data[0]) +
                                 Count * sizeof (S->data[0]));
@@ -1749,12 +1749,12 @@ static void CopySpanInfo (cc65_spandata* D, const SpanInfo* S)
 
 static int CompareSpanInfoByAddr (const void* L, const void* R)
 /* Helper function to sort span infos in a collection by address. Span infos
- * with smaller start address are considered smaller. If start addresses are
- * equal, line spans with smaller end address are considered smaller. This
- * means, that when CompareSpanInfoByAddr is used for sorting, a range with
- * identical start addresses will have smaller spans first, followed by
- * larger spans.
- */
+** with smaller start address are considered smaller. If start addresses are
+** equal, line spans with smaller end address are considered smaller. This
+** means, that when CompareSpanInfoByAddr is used for sorting, a range with
+** identical start addresses will have smaller spans first, followed by
+** larger spans.
+*/
 {
     /* Sort by start of span */
     if (((const SpanInfo*) L)->Start > ((const SpanInfo*) R)->Start) {
@@ -1812,8 +1812,8 @@ static void FreeSymInfo (SymInfo* S)
 
 static cc65_symbolinfo* new_cc65_symbolinfo (unsigned Count)
 /* Allocate and return a cc65_symbolinfo struct that is able to hold Count
- * entries. Initialize the count field of the returned struct.
- */
+** entries. Initialize the count field of the returned struct.
+*/
 {
     cc65_symbolinfo* S = xmalloc (sizeof (*S) - sizeof (S->data[0]) +
                                   Count * sizeof (S->data[0]));
@@ -1834,8 +1834,8 @@ static void CopySymInfo (cc65_symboldata* D, const SymInfo* S)
     D->symbol_size      = S->Size;
 
     /* If this is an import, it doesn't have a value or segment. Use the data
-     * from the matching export instead.
-     */
+    ** from the matching export instead.
+    */
     if (S->Exp.Info) {
         /* This is an import, because it has a matching export */
         D->export_id    = S->Exp.Info->Id;
@@ -1875,8 +1875,8 @@ static int CompareSymInfoByVal (const void* L, const void* R)
 /* Helper function to sort symbol infos in a collection by value */
 {
     /* Sort by symbol value. If both are equal, sort by symbol name so it
-     * looks nice when such a list is returned.
-     */
+    ** looks nice when such a list is returned.
+    */
     if (((const SymInfo*) L)->Value > ((const SymInfo*) R)->Value) {
         return 1;
     } else if (((const SymInfo*) L)->Value < ((const SymInfo*) R)->Value) {
@@ -1978,8 +1978,8 @@ static void InitTypeParseData (TypeParseData* P, const StrBuf* Type,
 
 static cc65_typedata* TypeFromString (TypeParseData* P)
 /* Parse a type string and return a set of typedata structures. Will be called
- * recursively. Will set P->Error and return NULL in case of problems.
- */
+** recursively. Will set P->Error and return NULL in case of problems.
+*/
 {
     cc65_typedata*  Data;
     unsigned char   B;
@@ -2084,10 +2084,10 @@ static cc65_typedata* TypeFromString (TypeParseData* P)
 
 static TypeInfo* ParseTypeString (InputData* D, StrBuf* Type)
 /* Check if the string T contains a valid type string. Convert it from readable
- * to binary. Calculate how many cc65_typedata structures are necessary when it
- * is converted. Convert the string into a set of cc65_typedata structures and
- * return them.
- */
+** to binary. Calculate how many cc65_typedata structures are necessary when it
+** is converted. Convert the string into a set of cc65_typedata structures and
+** return them.
+*/
 {
     unsigned        I;
     unsigned        Count;
@@ -2122,8 +2122,8 @@ static TypeInfo* ParseTypeString (InputData* D, StrBuf* Type)
     Type->Len = (Length /= 2);
 
     /* Get a pointer to the type data, then count the number of cc65_typedata
-     * items needed.
-     */
+    ** items needed.
+    */
     A = SB_GetConstBuf (Type);
     Count = 0;
     I = 0;
@@ -2193,8 +2193,8 @@ static void InitSpanInfoList (SpanInfoList* L)
 
 static void CreateSpanInfoList (SpanInfoList* L, Collection* SpanInfos)
 /* Create a SpanInfoList from a Collection with span infos. The collection
- * must be sorted by ascending start addresses.
- */
+** must be sorted by ascending start addresses.
+*/
 {
     unsigned I, J;
     SpanInfo* S;
@@ -2255,10 +2255,10 @@ static void CreateSpanInfoList (SpanInfoList* L, Collection* SpanInfos)
         S = CollAt (SpanInfos, I);
 
         /* Determine the start index of the next range. Line infos are sorted
-         * by ascending start address, so the start address of the next entry
-         * is always larger than the previous one - we don't need to check
-         * that.
-         */
+        ** by ascending start address, so the start address of the next entry
+        ** is always larger than the previous one - we don't need to check
+        ** that.
+        */
         if (S->Start <= End) {
             /* Range starts within out already known linear range */
             StartIndex += (unsigned) (S->Start - Start);
@@ -2282,11 +2282,11 @@ static void CreateSpanInfoList (SpanInfoList* L, Collection* SpanInfos)
     for (I = 0, List = L->List; I < L->Count; ++I, ++List) {
 
         /* For a count of 1, we store the pointer to the lineinfo for this
-         * address in the Data pointer directly. For counts > 1, we allocate
-         * an array of pointers and reset the counter, so we can use it as
-         * an index later. This is dangerous programming since it disables
-         * all possible checks!
-         */
+        ** address in the Data pointer directly. For counts > 1, we allocate
+        ** an array of pointers and reset the counter, so we can use it as
+        ** an index later. This is dangerous programming since it disables
+        ** all possible checks!
+        */
         if (List->Count > 1) {
             List->Data = xmalloc (List->Count * sizeof (SpanInfo*));
             List->Count = 0;
@@ -2313,10 +2313,10 @@ static void CreateSpanInfoList (SpanInfoList* L, Collection* SpanInfos)
         S = CollAt (SpanInfos, I);
 
         /* Determine the start index of the next range. Line infos are sorted
-         * by ascending start address, so the start address of the next entry
-         * is always larger than the previous one - we don't need to check
-         * that.
-         */
+        ** by ascending start address, so the start address of the next entry
+        ** is always larger than the previous one - we don't need to check
+        ** that.
+        */
         if (S->Start <= End) {
             /* Range starts within out already known linear range */
             StartIndex += (unsigned) (S->Start - Start);
@@ -2734,8 +2734,8 @@ static int StrConstFollows (InputData* D)
 
 static int Consume (InputData* D, Token Tok, const char* Name)
 /* Check for a token and consume it. Return true if the token was comsumed,
- * return false otherwise.
- */
+** return false otherwise.
+*/
 {
     if (TokenFollows (D, Tok, Name)) {
         NextToken (D);
@@ -2773,8 +2773,8 @@ static void ParseCSym (InputData* D)
 /* Parse a CSYM line */
 {
     /* Most of the following variables are initialized with a value that is
-     * overwritten later. This is just to avoid compiler warnings.
-     */
+    ** overwritten later. This is just to avoid compiler warnings.
+    */
     unsigned            Id = 0;
     StrBuf              Name = STRBUF_INITIALIZER;
     int                 Offs = 0;
@@ -3137,8 +3137,8 @@ static void ParseInfo (InputData* D)
         }
 
         /* Remember the token, skip it, check for equal, check for an integer
-         * constant.
-         */
+        ** constant.
+        */
         Tok = D->Tok;
         NextToken (D);
         if (!ConsumeEqual (D)) {
@@ -3496,8 +3496,8 @@ static void ParseModule (InputData* D)
 /* Parse a MODULE line */
 {
     /* Most of the following variables are initialized with a value that is
-     * overwritten later. This is just to avoid compiler warnings.
-     */
+    ** overwritten later. This is just to avoid compiler warnings.
+    */
     unsigned            Id = CC65_INV_ID;
     StrBuf              Name = STRBUF_INITIALIZER;
     unsigned            FileId = CC65_INV_ID;
@@ -3632,8 +3632,8 @@ static void ParseScope (InputData* D)
 /* Parse a SCOPE line */
 {
     /* Most of the following variables are initialized with a value that is
-     * overwritten later. This is just to avoid compiler warnings.
-     */
+    ** overwritten later. This is just to avoid compiler warnings.
+    */
     unsigned            Id = CC65_INV_ID;
     cc65_scope_type     Type = CC65_SCOPE_MODULE;
     cc65_size           Size = 0;
@@ -4150,8 +4150,8 @@ static void ParseSym (InputData* D)
 /* Parse a SYM line */
 {
     /* Most of the following variables are initialized with a value that is
-     * overwritten later. This is just to avoid compiler warnings.
-     */
+    ** overwritten later. This is just to avoid compiler warnings.
+    */
     Collection          DefLineIds = COLLECTION_INITIALIZER;
     unsigned            ExportId = CC65_INV_ID;
     unsigned            FileId = CC65_INV_ID;
@@ -4419,8 +4419,8 @@ static void ParseType (InputData* D)
 /* Parse a TYPE line */
 {
     /* Most of the following variables are initialized with a value that is
-     * overwritten later. This is just to avoid compiler warnings.
-     */
+    ** overwritten later. This is just to avoid compiler warnings.
+    */
     unsigned            Id = CC65_INV_ID;
     StrBuf              Value = STRBUF_INITIALIZER;
 
@@ -4574,8 +4574,8 @@ static void ParseVersion (InputData* D)
 
             case TOK_IDENT:
                 /* Try to skip unknown keywords that may have been added by
-                 * a later version.
-                 */
+                ** a later version.
+                */
                 UnknownKeyword (D);
                 break;
 
@@ -4618,10 +4618,10 @@ ErrorExit:
 static int FindCSymInfoByName (const Collection* CSymInfos, const char* Name,
                                unsigned* Index)
 /* Find the C symbol info with a given file name. The function returns true if
- * the name was found. In this case, Index contains the index of the first item
- * that matches. If the item wasn't found, the function returns false and
- * Index contains the insert position for Name.
- */
+** the name was found. In this case, Index contains the index of the first item
+** that matches. If the item wasn't found, the function returns false and
+** Index contains the insert position for Name.
+*/
 {
     /* Do a binary search */
     int Lo = 0;
@@ -4644,8 +4644,8 @@ static int FindCSymInfoByName (const Collection* CSymInfos, const char* Name,
         } else {
             Hi = Cur - 1;
             /* Since we may have duplicates, repeat the search until we've
-             * the first item that has a match.
-             */
+            ** the first item that has a match.
+            */
             if (Res == 0) {
                 Found = 1;
             }
@@ -4662,10 +4662,10 @@ static int FindCSymInfoByName (const Collection* CSymInfos, const char* Name,
 static int FindFileInfoByName (const Collection* FileInfos, const char* Name,
                                unsigned* Index)
 /* Find the FileInfo for a given file name. The function returns true if the
- * name was found. In this case, Index contains the index of the first item
- * that matches. If the item wasn't found, the function returns false and
- * Index contains the insert position for Name.
- */
+** name was found. In this case, Index contains the index of the first item
+** that matches. If the item wasn't found, the function returns false and
+** Index contains the insert position for Name.
+*/
 {
     /* Do a binary search */
     int Lo = 0;
@@ -4688,8 +4688,8 @@ static int FindFileInfoByName (const Collection* FileInfos, const char* Name,
         } else {
             Hi = Cur - 1;
             /* Since we may have duplicates, repeat the search until we've
-             * the first item that has a match.
-             */
+            ** the first item that has a match.
+            */
             if (Res == 0) {
                 Found = 1;
             }
@@ -4705,8 +4705,8 @@ static int FindFileInfoByName (const Collection* FileInfos, const char* Name,
 
 static SpanInfoListEntry* FindSpanInfoByAddr (const SpanInfoList* L, cc65_addr Addr)
 /* Find the index of a SpanInfo for a given address. Returns 0 if no such
- * SpanInfo was found.
- */
+** SpanInfo was found.
+*/
 {
     /* Do a binary search */
     int Lo = 0;
@@ -4738,8 +4738,8 @@ static SpanInfoListEntry* FindSpanInfoByAddr (const SpanInfoList* L, cc65_addr A
 
 static LineInfo* FindLineInfoByLine (const Collection* LineInfos, cc65_line Line)
 /* Find the LineInfo for a given line number. The function returns the line
- * info or NULL if none was found.
- */
+** info or NULL if none was found.
+*/
 {
     /* Do a binary search */
     int Lo = 0;
@@ -4771,8 +4771,8 @@ static LineInfo* FindLineInfoByLine (const Collection* LineInfos, cc65_line Line
 
 static SegInfo* FindSegInfoByName (const Collection* SegInfos, const char* Name)
 /* Find the SegInfo for a given segment name. The function returns the segment
- * info or NULL if none was found.
- */
+** info or NULL if none was found.
+*/
 {
     /* Do a binary search */
     int Lo = 0;
@@ -4808,10 +4808,10 @@ static SegInfo* FindSegInfoByName (const Collection* SegInfos, const char* Name)
 static int FindScopeInfoByName (const Collection* ScopeInfos, const char* Name,
                                 unsigned* Index)
 /* Find the ScopeInfo for a given scope name. The function returns true if the
- * name was found. In this case, Index contains the index of the first item
- * that matches. If the item wasn't found, the function returns false and
- * Index contains the insert position for Name.
- */
+** name was found. In this case, Index contains the index of the first item
+** that matches. If the item wasn't found, the function returns false and
+** Index contains the insert position for Name.
+*/
 {
     /* Do a binary search */
     int Lo = 0;
@@ -4834,8 +4834,8 @@ static int FindScopeInfoByName (const Collection* ScopeInfos, const char* Name,
         } else {
             Hi = Cur - 1;
             /* Since we may have duplicates, repeat the search until we've
-             * the first item that has a match.
-             */
+            ** the first item that has a match.
+            */
             if (Res == 0) {
                 Found = 1;
             }
@@ -4852,10 +4852,10 @@ static int FindScopeInfoByName (const Collection* ScopeInfos, const char* Name,
 static int FindSymInfoByName (const Collection* SymInfos, const char* Name,
                               unsigned* Index)
 /* Find the SymInfo for a given file name. The function returns true if the
- * name was found. In this case, Index contains the index of the first item
- * that matches. If the item wasn't found, the function returns false and
- * Index contains the insert position for Name.
- */
+** name was found. In this case, Index contains the index of the first item
+** that matches. If the item wasn't found, the function returns false and
+** Index contains the insert position for Name.
+*/
 {
     /* Do a binary search */
     int Lo = 0;
@@ -4878,8 +4878,8 @@ static int FindSymInfoByName (const Collection* SymInfos, const char* Name,
         } else {
             Hi = Cur - 1;
             /* Since we may have duplicates, repeat the search until we've
-             * the first item that has a match.
-             */
+            ** the first item that has a match.
+            */
             if (Res == 0) {
                 Found = 1;
             }
@@ -4896,10 +4896,10 @@ static int FindSymInfoByName (const Collection* SymInfos, const char* Name,
 static int FindSymInfoByValue (const Collection* SymInfos, long Value,
                                unsigned* Index)
 /* Find the SymInfo for a given value. The function returns true if the
- * value was found. In this case, Index contains the index of the first item
- * that matches. If the item wasn't found, the function returns false and
- * Index contains the insert position for the given value.
- */
+** value was found. In this case, Index contains the index of the first item
+** that matches. If the item wasn't found, the function returns false and
+** Index contains the insert position for the given value.
+*/
 {
     /* Do a binary search */
     int Lo = 0;
@@ -4919,8 +4919,8 @@ static int FindSymInfoByValue (const Collection* SymInfos, long Value,
         } else {
             Hi = Cur - 1;
             /* Since we may have duplicates, repeat the search until we've
-             * the first item that has a match.
-             */
+            ** the first item that has a match.
+            */
             if (Value == CurItem->Value) {
                 Found = 1;
             }
@@ -4940,8 +4940,8 @@ static void ProcessCSymInfo (InputData* D)
     unsigned I;
 
     /* Walk over all c symbols. Resolve the ids and add the c symbols to the
-     * corresponding asm symbols.
-     */
+    ** corresponding asm symbols.
+    */
     for (I = 0; I < CollCount (&D->Info->CSymInfoById); ++I) {
 
         /* Get this c symbol info */
@@ -4960,8 +4960,8 @@ static void ProcessCSymInfo (InputData* D)
             S->Sym.Info = CollAt (&D->Info->SymInfoById, S->Sym.Id);
 
             /* For normal (=static) symbols, add a backlink to the symbol but
-             * check that there is not more than one.
-             */
+            ** check that there is not more than one.
+            */
             if (S->SC != CC65_CSYM_AUTO && S->SC != CC65_CSYM_REG) {
                 if (S->Sym.Info->CSym) {
                     ParseError (D,
@@ -5003,12 +5003,12 @@ static void ProcessCSymInfo (InputData* D)
             CollAppend (S->Scope.Info->CSymInfoByName, S);
 
             /* If the scope has an owner symbol, it's a .PROC scope. If this
-             * symbol is identical to the one attached to the C symbol, this
-             * is actuallay a C function and the scope is the matching scope.
-             * Remember the C symbol in the scope in this case.
-             * Beware: Scopes haven't been postprocessed, so we don't have a
-             * pointer but just an id.
-             */
+            ** symbol is identical to the one attached to the C symbol, this
+            ** is actuallay a C function and the scope is the matching scope.
+            ** Remember the C symbol in the scope in this case.
+            ** Beware: Scopes haven't been postprocessed, so we don't have a
+            ** pointer but just an id.
+            */
             if (S->Sym.Info && S->Scope.Info->Label.Id == S->Sym.Info->Id) {
                 /* This scope is our function scope */
                 S->Scope.Info->CSymFunc = S;
@@ -5105,18 +5105,18 @@ static void ProcessLineInfo (InputData* D)
     Collection* FileInfos = &D->Info->FileInfoById;
 
     /* Walk over the line infos and replace the id numbers of file and segment
-     * with pointers to the actual structs. Add the line info to each file
-     * where it is defined. Resolve the spans and add backpointers to the
-     * spans.
-     */
+    ** with pointers to the actual structs. Add the line info to each file
+    ** where it is defined. Resolve the spans and add backpointers to the
+    ** spans.
+    */
     for (I = 0; I < CollCount (LineInfos); ++I) {
 
         /* Get LineInfo struct */
         LineInfo* L = CollAt (LineInfos, I);
 
         /* Replace the file id by a pointer to the FileInfo. Add a back
-         * pointer
-         */
+        ** pointer
+        */
         if (L->File.Id >= CollCount (FileInfos)) {
             ParseError (D,
                         CC65_ERROR,
@@ -5157,8 +5157,8 @@ static void ProcessLineInfo (InputData* D)
     }
 
     /* Walk over all files and sort the line infos for each file so we can
-     * do a binary search later.
-     */
+    ** do a binary search later.
+    */
     for (I = 0; I < CollCount (FileInfos); ++I) {
 
         /* Get a pointer to this file info */
@@ -5219,8 +5219,8 @@ static void ProcessScopeInfo (InputData* D)
     unsigned I, J;
 
     /* Walk over all scopes. Resolve the ids and add the scopes to the list
-     * of scopes for a module.
-     */
+    ** of scopes for a module.
+    */
     for (I = 0; I < CollCount (&D->Info->ScopeInfoById); ++I) {
 
         /* Get this scope info */
@@ -5240,16 +5240,16 @@ static void ProcessScopeInfo (InputData* D)
             CollAppend (&S->Mod.Info->ScopeInfoByName, S);
 
             /* If this is a main scope, add a pointer to the corresponding
-             * module.
-             */
+            ** module.
+            */
             if (S->Parent.Id == CC65_INV_ID) {
                 /* No parent means main scope */
                 S->Mod.Info->MainScope = S;
             }
 
             /* If this is the scope that implements a C function, add the
-             * function to the list of all functions in this module.
-             */
+            ** function to the list of all functions in this module.
+            */
             if (S->CSymFunc) {
                 CollAppend (&S->Mod.Info->CSymFuncByName, S->CSymFunc);
             }
@@ -5316,10 +5316,10 @@ static void ProcessScopeInfo (InputData* D)
     }
 
     /* Walk over all modules. If a module doesn't have scopes, it wasn't
-     * compiled with debug info which is ok. If it has debug info, it must
-     * also have a main scope. If there are scopes, sort them by name. Do
-     * also sort C functions in this module by name.
-     */
+    ** compiled with debug info which is ok. If it has debug info, it must
+    ** also have a main scope. If there are scopes, sort them by name. Do
+    ** also sort C functions in this module by name.
+    */
     for (I = 0; I < CollCount (&D->Info->ModInfoById); ++I) {
 
         /* Get this module */
@@ -5404,8 +5404,8 @@ static void ProcessSpanInfo (InputData* D)
         }
 
         /* Append this span info to the temporary collection that is later
-         * sorted by address.
-         */
+        ** sorted by address.
+        */
         CollAppend (&SpanInfoByAddr, S);
     }
 
@@ -5591,11 +5591,11 @@ static void ProcessSymInfo (InputData* D)
 
 cc65_dbginfo cc65_read_dbginfo (const char* FileName, cc65_errorfunc ErrFunc)
 /* Parse the debug info file with the given name. On success, the function
- * will return a pointer to an opaque cc65_dbginfo structure, that must be
- * passed to the other functions in this module to retrieve information.
- * errorfunc is called in case of warnings and errors. If the file cannot be
- * read successfully, NULL is returned.
- */
+** will return a pointer to an opaque cc65_dbginfo structure, that must be
+** passed to the other functions in this module to retrieve information.
+** errorfunc is called in case of warnings and errors. If the file cannot be
+** read successfully, NULL is returned.
+*/
 {
     /* Data structure used to control scanning and parsing */
     InputData D = {
@@ -5727,8 +5727,8 @@ cc65_dbginfo cc65_read_dbginfo (const char* FileName, cc65_errorfunc ErrFunc)
 
             case TOK_IDENT:
                 /* Output a warning, then skip the line with the unknown
-                 * keyword that may have been added by a later version.
-                 */
+                ** keyword that may have been added by a later version.
+                */
                 ParseError (&D, CC65_WARNING,
                             "Unknown keyword \"%s\" - skipping",
                             SB_GetConstBuf (&D.SVal));
@@ -5753,8 +5753,8 @@ CloseAndExit:
     SB_Done (&D.SVal);
 
     /* In case of errors, delete the debug info already allocated and
-     * return NULL
-     */
+    ** return NULL
+    */
     if (D.Errors > 0) {
         /* Free allocated stuff */
         FreeDbgInfo (D.Info);
@@ -5762,9 +5762,9 @@ CloseAndExit:
     }
 
     /* We do now have all the information from the input file. Do
-     * postprocessing. Beware: Some of the following postprocessing
-     * depends on the order of the calls.
-     */
+    ** postprocessing. Beware: Some of the following postprocessing
+    ** depends on the order of the calls.
+    */
     ProcessCSymInfo (&D);
     ProcessFileInfo (&D);
     ProcessLineInfo (&D);
@@ -5831,10 +5831,10 @@ const cc65_csyminfo* cc65_get_csymlist (cc65_dbginfo Handle)
 
 const cc65_csyminfo* cc65_csym_byid (cc65_dbginfo Handle, unsigned Id)
 /* Return information about a c symbol with a specific id. The function
- * returns NULL if the id is invalid (no such c symbol) and otherwise a
- * cc65_csyminfo structure with one entry that contains the requested
- * symbol information.
- */
+** returns NULL if the id is invalid (no such c symbol) and otherwise a
+** cc65_csyminfo structure with one entry that contains the requested
+** symbol information.
+*/
 {
     const DbgInfo*      Info;
     cc65_csyminfo*      S;
@@ -5864,9 +5864,9 @@ const cc65_csyminfo* cc65_csym_byid (cc65_dbginfo Handle, unsigned Id)
 
 const cc65_csyminfo* cc65_cfunc_bymodule (cc65_dbginfo Handle, unsigned ModId)
 /* Return the list of C functions (not symbols!) for a specific module. If
- * the module id is invalid, the function will return NULL, otherwise a
- * (possibly empty) c symbol list.
- */
+** the module id is invalid, the function will return NULL, otherwise a
+** (possibly empty) c symbol list.
+*/
 {
     const DbgInfo*      Info;
     const ModInfo*      M;
@@ -5904,8 +5904,8 @@ const cc65_csyminfo* cc65_cfunc_bymodule (cc65_dbginfo Handle, unsigned ModId)
 
 const cc65_csyminfo* cc65_cfunc_byname (cc65_dbginfo Handle, const char* Name)
 /* Return a list of all C functions with the given name that have a
- * definition.
- */
+** definition.
+*/
 {
     const DbgInfo*      Info;
     unsigned            Index;
@@ -5957,8 +5957,8 @@ const cc65_csyminfo* cc65_cfunc_byname (cc65_dbginfo Handle, const char* Name)
 
 const cc65_csyminfo* cc65_csym_byscope (cc65_dbginfo Handle, unsigned ScopeId)
 /* Return all C symbols for a scope. The function will return NULL if the
- * given id is invalid.
- */
+** given id is invalid.
+*/
 {
     const DbgInfo*      Info;
     const ScopeInfo*    S;
@@ -6042,10 +6042,10 @@ const cc65_libraryinfo* cc65_get_librarylist (cc65_dbginfo Handle)
 
 const cc65_libraryinfo* cc65_library_byid (cc65_dbginfo Handle, unsigned Id)
 /* Return information about a library with a specific id. The function
- * returns NULL if the id is invalid (no such library) and otherwise a
- * cc65_libraryinfo structure with one entry that contains the requested
- * library information.
- */
+** returns NULL if the id is invalid (no such library) and otherwise a
+** cc65_libraryinfo structure with one entry that contains the requested
+** library information.
+*/
 {
     const DbgInfo*      Info;
     cc65_libraryinfo*   D;
@@ -6093,10 +6093,10 @@ void cc65_free_libraryinfo (cc65_dbginfo Handle, const cc65_libraryinfo* Info)
 
 const cc65_lineinfo* cc65_line_byid (cc65_dbginfo Handle, unsigned Id)
 /* Return information about a line with a specific id. The function
- * returns NULL if the id is invalid (no such line) and otherwise a
- * cc65_lineinfo structure with one entry that contains the requested
- * module information.
- */
+** returns NULL if the id is invalid (no such line) and otherwise a
+** cc65_lineinfo structure with one entry that contains the requested
+** module information.
+*/
 {
     const DbgInfo*      Info;
     cc65_lineinfo*      D;
@@ -6127,8 +6127,8 @@ const cc65_lineinfo* cc65_line_byid (cc65_dbginfo Handle, unsigned Id)
 const cc65_lineinfo* cc65_line_bynumber (cc65_dbginfo Handle, unsigned FileId,
                                          cc65_line Line)
 /* Return line information for a source file/line number combination. The
- * function returns NULL if no line information was found.
- */
+** function returns NULL if no line information was found.
+*/
 {
     const DbgInfo*  Info;
     const FileInfo* F;
@@ -6171,8 +6171,8 @@ const cc65_lineinfo* cc65_line_bynumber (cc65_dbginfo Handle, unsigned FileId,
 
 const cc65_lineinfo* cc65_line_bysource (cc65_dbginfo Handle, unsigned FileId)
 /* Return line information for a source file. The function returns NULL if the
- * file id is invalid.
- */
+** file id is invalid.
+*/
 {
     const DbgInfo*  Info;
     const FileInfo* F;
@@ -6210,8 +6210,8 @@ const cc65_lineinfo* cc65_line_bysource (cc65_dbginfo Handle, unsigned FileId)
 
 const cc65_lineinfo* cc65_line_bysymdef (cc65_dbginfo Handle, unsigned SymId)
 /* Return line information for the definition of a symbol. The function
- * returns NULL if the symbol id is invalid, otherwise a list of line infos.
- */
+** returns NULL if the symbol id is invalid, otherwise a list of line infos.
+*/
 {
     const DbgInfo*  Info;
     const SymInfo*  S;
@@ -6249,8 +6249,8 @@ const cc65_lineinfo* cc65_line_bysymdef (cc65_dbginfo Handle, unsigned SymId)
 
 const cc65_lineinfo* cc65_line_bysymref (cc65_dbginfo Handle, unsigned SymId)
 /* Return line information for all references of a symbol. The function
- * returns NULL if the symbol id is invalid, otherwise a list of line infos.
- */
+** returns NULL if the symbol id is invalid, otherwise a list of line infos.
+*/
 {
     const DbgInfo*  Info;
     const SymInfo*  S;
@@ -6288,8 +6288,8 @@ const cc65_lineinfo* cc65_line_bysymref (cc65_dbginfo Handle, unsigned SymId)
 
 const cc65_lineinfo* cc65_line_byspan (cc65_dbginfo Handle, unsigned SpanId)
 /* Return line information for a a span. The function returns NULL if the
- * span id is invalid, otherwise a list of line infos.
- */
+** span id is invalid, otherwise a list of line infos.
+*/
 {
     const DbgInfo*  Info;
     const SpanInfo* S;
@@ -6314,8 +6314,8 @@ const cc65_lineinfo* cc65_line_byspan (cc65_dbginfo Handle, unsigned SpanId)
     D = new_cc65_lineinfo (CollCount (S->LineInfoList));
 
     /* Fill in the data. Since S->LineInfoList may be NULL, we will use the
-     * count field of the returned data struct instead.
-     */
+    ** count field of the returned data struct instead.
+    */
     for (I = 0; I < D->count; ++I) {
         /* Copy the data */
         CopyLineInfo (D->data + I, CollAt (S->LineInfoList, I));
@@ -6375,10 +6375,10 @@ const cc65_moduleinfo* cc65_get_modulelist (cc65_dbginfo Handle)
 
 const cc65_moduleinfo* cc65_module_byid (cc65_dbginfo Handle, unsigned Id)
 /* Return information about a module with a specific id. The function
- * returns NULL if the id is invalid (no such module) and otherwise a
- * cc65_moduleinfo structure with one entry that contains the requested
- * module information.
- */
+** returns NULL if the id is invalid (no such module) and otherwise a
+** cc65_moduleinfo structure with one entry that contains the requested
+** module information.
+*/
 {
     const DbgInfo*      Info;
     cc65_moduleinfo*    D;
@@ -6454,10 +6454,10 @@ const cc65_spaninfo* cc65_get_spanlist (cc65_dbginfo Handle)
 
 const cc65_spaninfo* cc65_span_byid (cc65_dbginfo Handle, unsigned Id)
 /* Return information about a span with a specific id. The function
- * returns NULL if the id is invalid (no such span) and otherwise a
- * cc65_spaninfo structure with one entry that contains the requested
- * span information.
- */
+** returns NULL if the id is invalid (no such span) and otherwise a
+** cc65_spaninfo structure with one entry that contains the requested
+** span information.
+*/
 {
     const DbgInfo*      Info;
     cc65_spaninfo*      D;
@@ -6487,8 +6487,8 @@ const cc65_spaninfo* cc65_span_byid (cc65_dbginfo Handle, unsigned Id)
 
 const cc65_spaninfo* cc65_span_byaddr (cc65_dbginfo Handle, unsigned long Addr)
 /* Return span information for the given address. The function returns NULL
- * if no spans were found for this address.
- */
+** if no spans were found for this address.
+*/
 {
     const DbgInfo*      Info;
     SpanInfoListEntry* E;
@@ -6528,8 +6528,8 @@ const cc65_spaninfo* cc65_span_byaddr (cc65_dbginfo Handle, unsigned long Addr)
 
 const cc65_spaninfo* cc65_span_byline (cc65_dbginfo Handle, unsigned LineId)
 /* Return span information for the given source line. The function returns NULL
- * if the line id is invalid, otherwise the spans for this line (possibly zero).
- */
+** if the line id is invalid, otherwise the spans for this line (possibly zero).
+*/
 {
     const DbgInfo*      Info;
     const LineInfo*     L;
@@ -6567,8 +6567,8 @@ const cc65_spaninfo* cc65_span_byline (cc65_dbginfo Handle, unsigned LineId)
 
 const cc65_spaninfo* cc65_span_byscope (cc65_dbginfo Handle, unsigned ScopeId)
 /* Return span information for the given scope. The function returns NULL if
- * the scope id is invalid, otherwise the spans for this scope (possibly zero).
- */
+** the scope id is invalid, otherwise the spans for this scope (possibly zero).
+*/
 {
     const DbgInfo*      Info;
     const ScopeInfo*    S;
@@ -6652,10 +6652,10 @@ const cc65_sourceinfo* cc65_get_sourcelist (cc65_dbginfo Handle)
 
 const cc65_sourceinfo* cc65_source_byid (cc65_dbginfo Handle, unsigned Id)
 /* Return information about a source file with a specific id. The function
- * returns NULL if the id is invalid (no such source file) and otherwise a
- * cc65_sourceinfo structure with one entry that contains the requested
- * source file information.
- */
+** returns NULL if the id is invalid (no such source file) and otherwise a
+** cc65_sourceinfo structure with one entry that contains the requested
+** source file information.
+*/
 {
     const DbgInfo*      Info;
     cc65_sourceinfo*    D;
@@ -6686,9 +6686,9 @@ const cc65_sourceinfo* cc65_source_byid (cc65_dbginfo Handle, unsigned Id)
 
 const cc65_sourceinfo* cc65_source_bymodule (cc65_dbginfo Handle, unsigned Id)
 /* Return information about the source files used to build a module. The
- * function returns NULL if the module id is invalid (no such module) and
- * otherwise a cc65_sourceinfo structure with one entry per source file.
- */
+** function returns NULL if the module id is invalid (no such module) and
+** otherwise a cc65_sourceinfo structure with one entry per source file.
+*/
 {
     const DbgInfo*      Info;
     const ModInfo*      M;
@@ -6771,8 +6771,8 @@ const cc65_scopeinfo* cc65_get_scopelist (cc65_dbginfo Handle)
 
 const cc65_scopeinfo* cc65_scope_byid (cc65_dbginfo Handle, unsigned Id)
 /* Return the scope with a given id. The function returns NULL if no scope
- * with this id was found.
- */
+** with this id was found.
+*/
 {
     const DbgInfo*      Info;
     cc65_scopeinfo*     D;
@@ -6802,8 +6802,8 @@ const cc65_scopeinfo* cc65_scope_byid (cc65_dbginfo Handle, unsigned Id)
 
 const cc65_scopeinfo* cc65_scope_bymodule (cc65_dbginfo Handle, unsigned ModId)
 /* Return the list of scopes for one module. The function returns NULL if no
- * scope with the given id was found.
- */
+** scope with the given id was found.
+*/
 {
     const DbgInfo*      Info;
     const ModInfo*      M;
@@ -6840,8 +6840,8 @@ const cc65_scopeinfo* cc65_scope_bymodule (cc65_dbginfo Handle, unsigned ModId)
 
 const cc65_scopeinfo* cc65_scope_byname (cc65_dbginfo Handle, const char* Name)
 /* Return the list of scopes with a given name. Returns NULL if no scope with
- * the given name was found, otherwise a non empty scope list.
- */
+** the given name was found, otherwise a non empty scope list.
+*/
 {
     const DbgInfo*      Info;
     unsigned            Index;
@@ -6894,8 +6894,8 @@ const cc65_scopeinfo* cc65_scope_byname (cc65_dbginfo Handle, const char* Name)
 
 const cc65_scopeinfo* cc65_scope_byspan (cc65_dbginfo Handle, unsigned SpanId)
 /* Return scope information for a a span. The function returns NULL if the
- * span id is invalid, otherwise a list of line scopes.
- */
+** span id is invalid, otherwise a list of line scopes.
+*/
 {
     const DbgInfo*      Info;
     const SpanInfo*     S;
@@ -6920,8 +6920,8 @@ const cc65_scopeinfo* cc65_scope_byspan (cc65_dbginfo Handle, unsigned SpanId)
     D = new_cc65_scopeinfo (CollCount (S->ScopeInfoList));
 
     /* Fill in the data. Since D->ScopeInfoList may be NULL, we will use the
-     * count field of the returned data struct instead.
-     */
+    ** count field of the returned data struct instead.
+    */
     for (I = 0; I < D->count; ++I) {
         /* Copy the data */
         CopyScopeInfo (D->data + I, CollAt (S->ScopeInfoList, I));
@@ -6935,9 +6935,9 @@ const cc65_scopeinfo* cc65_scope_byspan (cc65_dbginfo Handle, unsigned SpanId)
 
 const cc65_scopeinfo* cc65_childscopes_byid (cc65_dbginfo Handle, unsigned Id)
 /* Return the direct child scopes of a scope with a given id. The function
- * returns NULL if no scope with this id was found, otherwise a list of the
- * direct childs.
- */
+** returns NULL if no scope with this id was found, otherwise a list of the
+** direct childs.
+*/
 {
     const DbgInfo*      Info;
     cc65_scopeinfo*     D;
@@ -7020,9 +7020,9 @@ const cc65_segmentinfo* cc65_get_segmentlist (cc65_dbginfo Handle)
 
 const cc65_segmentinfo* cc65_segment_byid (cc65_dbginfo Handle, unsigned Id)
 /* Return information about a segment with a specific id. The function returns
- * NULL if the id is invalid (no such segment) and otherwise a segmentinfo
- * structure with one entry that contains the requested segment information.
- */
+** NULL if the id is invalid (no such segment) and otherwise a segmentinfo
+** structure with one entry that contains the requested segment information.
+*/
 {
     const DbgInfo*      Info;
     cc65_segmentinfo*   D;
@@ -7053,10 +7053,10 @@ const cc65_segmentinfo* cc65_segment_byid (cc65_dbginfo Handle, unsigned Id)
 const cc65_segmentinfo* cc65_segment_byname (cc65_dbginfo Handle,
                                              const char* Name)
 /* Return information about a segment with a specific name. The function
- * returns NULL if no segment with this name exists and otherwise a
- * cc65_segmentinfo structure with one entry that contains the requested
- * information.
- */
+** returns NULL if no segment with this name exists and otherwise a
+** cc65_segmentinfo structure with one entry that contains the requested
+** information.
+*/
 {
     const DbgInfo*      Info;
     const SegInfo*      S;
@@ -7106,8 +7106,8 @@ void cc65_free_segmentinfo (cc65_dbginfo Handle, const cc65_segmentinfo* Info)
 
 const cc65_symbolinfo* cc65_symbol_byid (cc65_dbginfo Handle, unsigned Id)
 /* Return the symbol with a given id. The function returns NULL if no symbol
- * with this id was found.
- */
+** with this id was found.
+*/
 {
     const DbgInfo*      Info;
     cc65_symbolinfo*    D;
@@ -7137,8 +7137,8 @@ const cc65_symbolinfo* cc65_symbol_byid (cc65_dbginfo Handle, unsigned Id)
 
 const cc65_symbolinfo* cc65_symbol_byname (cc65_dbginfo Handle, const char* Name)
 /* Return a list of symbols with a given name. The function returns NULL if
- * no symbol with this name was found.
- */
+** no symbol with this name was found.
+*/
 {
     const DbgInfo*      Info;
     cc65_symbolinfo*    D;
@@ -7159,8 +7159,8 @@ const cc65_symbolinfo* cc65_symbol_byname (cc65_dbginfo Handle, const char* Name
     }
 
     /* Index contains the position. Count how many symbols with this name
-     * we have. Skip the first one, since we have at least one.
-     */
+    ** we have. Skip the first one, since we have at least one.
+    */
     Count = 1;
     while ((unsigned) Index + Count < CollCount (&Info->SymInfoByName)) {
         const SymInfo* S = CollAt (&Info->SymInfoByName, (unsigned) Index + Count);
@@ -7187,10 +7187,10 @@ const cc65_symbolinfo* cc65_symbol_byname (cc65_dbginfo Handle, const char* Name
 
 const cc65_symbolinfo* cc65_symbol_byscope (cc65_dbginfo Handle, unsigned ScopeId)
 /* Return a list of symbols in the given scope. This includes cheap local
- * symbols, but not symbols in subscopes. The function returns NULL if the
- * scope id is invalid (no such scope) and otherwise a - possibly empty -
- * symbol list.
- */
+** symbols, but not symbols in subscopes. The function returns NULL if the
+** scope id is invalid (no such scope) and otherwise a - possibly empty -
+** symbol list.
+*/
 {
     const DbgInfo*      Info;
     cc65_symbolinfo*    D;
@@ -7230,9 +7230,9 @@ const cc65_symbolinfo* cc65_symbol_byscope (cc65_dbginfo Handle, unsigned ScopeI
 const cc65_symbolinfo* cc65_symbol_inrange (cc65_dbginfo Handle, cc65_addr Start,
                                             cc65_addr End)
 /* Return a list of labels in the given range. End is inclusive. The function
- * return NULL if no symbols within the given range are found. Non label
- * symbols are ignored and not returned.
- */
+** return NULL if no symbols within the given range are found. Non label
+** symbols are ignored and not returned.
+*/
 {
     const DbgInfo*      Info;
     Collection          SymInfoList = COLLECTION_INITIALIZER;
@@ -7247,21 +7247,21 @@ const cc65_symbolinfo* cc65_symbol_inrange (cc65_dbginfo Handle, cc65_addr Start
     Info = Handle;
 
     /* Search for the symbol. Because we're searching for a range, we cannot
-     * make use of the function result.
-     */
+    ** make use of the function result.
+    */
     FindSymInfoByValue (&Info->SymInfoByVal, Start, &Index);
 
     /* Start from the given index, check all symbols until the end address is
-     * reached. Place all symbols into SymInfoList for later.
-     */
+    ** reached. Place all symbols into SymInfoList for later.
+    */
     for (I = Index; I < CollCount (&Info->SymInfoByVal); ++I) {
 
         /* Get the item */
         SymInfo* Item = CollAt (&Info->SymInfoByVal, I);
 
         /* The collection is sorted by address, so if we get a value larger
-         * than the end address, we're done.
-         */
+        ** than the end address, we're done.
+        */
         if (Item->Value > (long) End) {
             break;
         }
@@ -7276,8 +7276,8 @@ const cc65_symbolinfo* cc65_symbol_inrange (cc65_dbginfo Handle, cc65_addr Start
     }
 
     /* If we don't have any labels within the range, bail out. No memory has
-     * been allocated for SymInfoList.
-     */
+    ** been allocated for SymInfoList.
+    */
     if (CollCount (&SymInfoList) == 0) {
         return 0;
     }
@@ -7320,8 +7320,8 @@ void cc65_free_symbolinfo (cc65_dbginfo Handle, const cc65_symbolinfo* Info)
 
 const cc65_typedata* cc65_type_byid (cc65_dbginfo Handle, unsigned Id)
 /* Return the data for the type with the given id. The function returns NULL
- * if no type with this id was found.
- */
+** if no type with this id was found.
+*/
 {
     const DbgInfo*        Info;
     const TypeInfo*       T;
index 7cb7271b2fde29ebbcafe1e5bb906507862ce6af..7317e575fdc99534e9b6a09935e18daade5715c5 100644 (file)
@@ -52,8 +52,8 @@ extern "C" {
 
 
 /* Data types used for addresses, sizes and line numbers. Change to "unsigned
- * long" if you ever want to run the code on a 16-bit machine.
- */
+** long" if you ever want to run the code on a 16-bit machine.
+*/
 typedef unsigned cc65_line;             /* Used to store line numbers */
 typedef unsigned cc65_addr;             /* Used to store (65xx) addresses */
 typedef unsigned cc65_size;             /* Used to store (65xx) sizes */
@@ -89,19 +89,19 @@ struct cc65_parseerror {
 typedef void (*cc65_errorfunc) (const cc65_parseerror*);
 
 /* Pointer to an opaque data structure containing information from the debug
- * info file. Actually a handle to the data in the file.
- */
+** info file. Actually a handle to the data in the file.
+*/
 typedef const void* cc65_dbginfo;
 
 
 
 cc65_dbginfo cc65_read_dbginfo (const char* filename, cc65_errorfunc errorfunc);
 /* Parse the debug info file with the given name. On success, the function
- * will return a pointer to an opaque cc65_dbginfo structure, that must be
- * passed to the other functions in this module to retrieve information.
- * errorfunc is called in case of warnings and errors. If the file cannot be
- * read successfully, NULL is returned.
- */
+** will return a pointer to an opaque cc65_dbginfo structure, that must be
+** passed to the other functions in this module to retrieve information.
+** errorfunc is called in case of warnings and errors. If the file cannot be
+** read successfully, NULL is returned.
+*/
 
 void cc65_free_dbginfo (cc65_dbginfo Handle);
 /* Free debug information read from a file */
@@ -154,26 +154,26 @@ const cc65_csyminfo* cc65_get_csymlist (cc65_dbginfo handle);
 
 const cc65_csyminfo* cc65_csym_byid (cc65_dbginfo handle, unsigned id);
 /* Return information about a c symbol with a specific id. The function
- * returns NULL if the id is invalid (no such c symbol) and otherwise a
- * cc65_csyminfo structure with one entry that contains the requested
- * symbol information.
- */
+** returns NULL if the id is invalid (no such c symbol) and otherwise a
+** cc65_csyminfo structure with one entry that contains the requested
+** symbol information.
+*/
 
 const cc65_csyminfo* cc65_cfunc_bymodule (cc65_dbginfo handle, unsigned module_id);
 /* Return the list of C functions (not symbols!) for a specific module. If
- * the module id is invalid, the function will return NULL, otherwise a
- * (possibly empty) c symbol list.
- */
+** the module id is invalid, the function will return NULL, otherwise a
+** (possibly empty) c symbol list.
+*/
 
 const cc65_csyminfo* cc65_cfunc_byname (cc65_dbginfo handle, const char* name);
 /* Return a list of all C functions with the given name that have a
- * definition.
- */
+** definition.
+*/
 
 const cc65_csyminfo* cc65_csym_byscope (cc65_dbginfo handle, unsigned scope_id);
 /* Return all C symbols for a scope. The function will return NULL if the
- * given id is invalid.
- */
+** given id is invalid.
+*/
 
 void cc65_free_csyminfo (cc65_dbginfo handle, const cc65_csyminfo* info);
 /* Free a c symbol info record */
@@ -206,10 +206,10 @@ const cc65_libraryinfo* cc65_get_librarylist (cc65_dbginfo handle);
 
 const cc65_libraryinfo* cc65_library_byid (cc65_dbginfo handle, unsigned id);
 /* Return information about a library with a specific id. The function
- * returns NULL if the id is invalid (no such library) and otherwise a
- * cc65_libraryinfo structure with one entry that contains the requested
- * library information.
- */
+** returns NULL if the id is invalid (no such library) and otherwise a
+** cc65_libraryinfo structure with one entry that contains the requested
+** library information.
+*/
 
 void cc65_free_libraryinfo (cc65_dbginfo handle, const cc65_libraryinfo* info);
 /* Free a library info record */
@@ -249,37 +249,37 @@ struct cc65_lineinfo {
 
 const cc65_lineinfo* cc65_line_byid (cc65_dbginfo handle, unsigned id);
 /* Return information about a line with a specific id. The function
- * returns NULL if the id is invalid (no such line) and otherwise a
- * cc65_lineinfo structure with one entry that contains the requested
- * module information.
- */
+** returns NULL if the id is invalid (no such line) and otherwise a
+** cc65_lineinfo structure with one entry that contains the requested
+** module information.
+*/
 
 const cc65_lineinfo* cc65_line_bynumber (cc65_dbginfo handle,
                                          unsigned source_id,
                                          cc65_line line);
 /* Return line information for a source file/line number combination. The
- * function returns NULL if no line information was found.
- */
+** function returns NULL if no line information was found.
+*/
 
 const cc65_lineinfo* cc65_line_bysource (cc65_dbginfo Handle, unsigned source_id);
 /* Return line information for a source file. The function returns NULL if the
- * file id is invalid.
- */
+** file id is invalid.
+*/
 
 const cc65_lineinfo* cc65_line_bysymdef (cc65_dbginfo handle, unsigned symbol_id);
 /* Return line information for the definition of a symbol. The function
- * returns NULL if the symbol id is invalid, otherwise a list of line infos.
- */
+** returns NULL if the symbol id is invalid, otherwise a list of line infos.
+*/
 
 const cc65_lineinfo* cc65_line_bysymref (cc65_dbginfo handle, unsigned symbol_id);
 /* Return line information for all references of a symbol. The function
- * returns NULL if the symbol id is invalid, otherwise a list of line infos.
- */
+** returns NULL if the symbol id is invalid, otherwise a list of line infos.
+*/
 
 const cc65_lineinfo* cc65_line_byspan (cc65_dbginfo handle, unsigned span_id);
 /* Return line information for a a span. The function returns NULL if the
- * span id is invalid, otherwise a list of line infos.
- */
+** span id is invalid, otherwise a list of line infos.
+*/
 
 void cc65_free_lineinfo (cc65_dbginfo handle, const cc65_lineinfo* info);
 /* Free line info returned by one of the other functions */
@@ -293,10 +293,10 @@ void cc65_free_lineinfo (cc65_dbginfo handle, const cc65_lineinfo* info);
 
 
 /* Module information
- * Notes:
- *   - scope_id contains CC65_INV_ID if the module was compiled without
- *     debug information.
- */
+** Notes:
+**   - scope_id contains CC65_INV_ID if the module was compiled without
+**     debug information.
+*/
 typedef struct cc65_moduledata cc65_moduledata;
 struct cc65_moduledata {
     unsigned            module_id;      /* The internal module id */
@@ -319,10 +319,10 @@ const cc65_moduleinfo* cc65_get_modulelist (cc65_dbginfo handle);
 
 const cc65_moduleinfo* cc65_module_byid (cc65_dbginfo handle, unsigned id);
 /* Return information about a module with a specific id. The function
- * returns NULL if the id is invalid (no such module) and otherwise a
- * cc65_moduleinfo structure with one entry that contains the requested
- * module information.
- */
+** returns NULL if the id is invalid (no such module) and otherwise a
+** cc65_moduleinfo structure with one entry that contains the requested
+** module information.
+*/
 
 void cc65_free_moduleinfo (cc65_dbginfo handle, const cc65_moduleinfo* info);
 /* Free a module info record */
@@ -360,26 +360,26 @@ const cc65_spaninfo* cc65_get_spanlist (cc65_dbginfo handle);
 
 const cc65_spaninfo* cc65_span_byid (cc65_dbginfo handle, unsigned id);
 /* Return information about a span with a specific id. The function
- * returns NULL if the id is invalid (no such span) and otherwise a
- * cc65_spaninfo structure with one entry that contains the requested
- * span information.
- */
+** returns NULL if the id is invalid (no such span) and otherwise a
+** cc65_spaninfo structure with one entry that contains the requested
+** span information.
+*/
 
 const cc65_spaninfo* cc65_span_byaddr (cc65_dbginfo handle,
                                        unsigned long addr);
 /* Return span information for the given address. The function returns NULL
- * if no spans were found for this address.
- */
+** if no spans were found for this address.
+*/
 
 const cc65_spaninfo* cc65_span_byline (cc65_dbginfo handle, unsigned line_id);
 /* Return span information for the given source line. The function returns NULL
- * if the line id is invalid, otherwise the spans for this line (possibly zero).
- */
+** if the line id is invalid, otherwise the spans for this line (possibly zero).
+*/
 
 const cc65_spaninfo* cc65_span_byscope (cc65_dbginfo handle, unsigned scope_id);
 /* Return span information for the given scope. The function returns NULL if
- * the scope id is invalid, otherwise the spans for this scope (possibly zero).
- */
+** the scope id is invalid, otherwise the spans for this scope (possibly zero).
+*/
 
 void cc65_free_spaninfo (cc65_dbginfo handle, const cc65_spaninfo* info);
 /* Free a span info record */
@@ -414,17 +414,17 @@ const cc65_sourceinfo* cc65_get_sourcelist (cc65_dbginfo handle);
 
 const cc65_sourceinfo* cc65_source_byid (cc65_dbginfo handle, unsigned id);
 /* Return information about a source file with a specific id. The function
- * returns NULL if the id is invalid (no such source file) and otherwise a
- * cc65_sourceinfo structure with one entry that contains the requested
- * source file information.
- */
+** returns NULL if the id is invalid (no such source file) and otherwise a
+** cc65_sourceinfo structure with one entry that contains the requested
+** source file information.
+*/
 
 const cc65_sourceinfo* cc65_source_bymodule (cc65_dbginfo handle,
                                              unsigned module_id);
 /* Return information about the source files used to build a module. The
- * function returns NULL if the module id is invalid (no such module) and
- * otherwise a cc65_sourceinfo structure with one entry per source file.
- */
+** function returns NULL if the module id is invalid (no such module) and
+** otherwise a cc65_sourceinfo structure with one entry per source file.
+*/
 
 void cc65_free_sourceinfo (cc65_dbginfo handle, const cc65_sourceinfo* info);
 /* Free a source info record */
@@ -470,29 +470,29 @@ const cc65_scopeinfo* cc65_get_scopelist (cc65_dbginfo handle);
 
 const cc65_scopeinfo* cc65_scope_byid (cc65_dbginfo handle, unsigned id);
 /* Return the scope with a given id. The function returns NULL if no scope
- * with this id was found.
- */
+** with this id was found.
+*/
 
 const cc65_scopeinfo* cc65_scope_bymodule (cc65_dbginfo handle, unsigned module_id);
 /* Return the list of scopes for one module. The function returns NULL if no
- * scope with the given id was found.
- */
+** scope with the given id was found.
+*/
 
 const cc65_scopeinfo* cc65_scope_byname (cc65_dbginfo handle, const char* name);
 /* Return the list of scopes with a given name. Returns NULL if no scope with
- * the given name was found, otherwise a non empty scope list.
- */
+** the given name was found, otherwise a non empty scope list.
+*/
 
 const cc65_scopeinfo* cc65_scope_byspan (cc65_dbginfo handle, unsigned span_id);
 /* Return scope information for a a span. The function returns NULL if the
- * span id is invalid, otherwise a list of line scopes.
- */
+** span id is invalid, otherwise a list of line scopes.
+*/
 
 const cc65_scopeinfo* cc65_childscopes_byid (cc65_dbginfo handle, unsigned id);
 /* Return the direct child scopes of a scope with a given id. The function
- * returns NULL if no scope with this id was found, otherwise a list of the
- * direct childs.
- */
+** returns NULL if no scope with this id was found, otherwise a list of the
+** direct childs.
+*/
 
 void cc65_free_scopeinfo (cc65_dbginfo Handle, const cc65_scopeinfo* Info);
 /* Free a scope info record */
@@ -506,12 +506,12 @@ void cc65_free_scopeinfo (cc65_dbginfo Handle, const cc65_scopeinfo* Info);
 
 
 /* Segment information.
- * Notes:
- *   - output_name may be NULL if the data wasn't written to the output file
- *     (example: bss segment)
- *   - output_offs is invalid if there is no output_name, and may not be of
- *     much use in case of a relocatable output file
- */
+** Notes:
+**   - output_name may be NULL if the data wasn't written to the output file
+**     (example: bss segment)
+**   - output_offs is invalid if there is no output_name, and may not be of
+**     much use in case of a relocatable output file
+*/
 typedef struct cc65_segmentdata cc65_segmentdata;
 struct cc65_segmentdata {
     unsigned            segment_id;     /* The internal segment id */
@@ -535,17 +535,17 @@ const cc65_segmentinfo* cc65_get_segmentlist (cc65_dbginfo handle);
 
 const cc65_segmentinfo* cc65_segment_byid (cc65_dbginfo handle, unsigned id);
 /* Return information about a segment with a specific id. The function returns
- * NULL if the id is invalid (no such segment) and otherwise a cc65_segmentinfo
- * structure with one entry that contains the requested segment information.
- */
+** NULL if the id is invalid (no such segment) and otherwise a cc65_segmentinfo
+** structure with one entry that contains the requested segment information.
+*/
 
 const cc65_segmentinfo* cc65_segment_byname (cc65_dbginfo handle,
                                              const char* name);
 /* Return information about a segment with a specific name. The function
- * returns NULL if no segment with this name exists and otherwise a
- * cc65_segmentinfo structure with one entry that contains the requested
- * information.
- */
+** returns NULL if no segment with this name exists and otherwise a
+** cc65_segmentinfo structure with one entry that contains the requested
+** information.
+*/
 
 void cc65_free_segmentinfo (cc65_dbginfo handle, const cc65_segmentinfo* info);
 /* Free a segment info record */
@@ -566,18 +566,18 @@ typedef enum {
 } cc65_symbol_type;
 
 /* Notes:
- *  - If the symbol is segment relative, the segment id gives segment
- *    information, otherwise it contains CC65_INV_ID.
- *  - If the type is CC65_SYM_IMPORT, export_id may contain the id of the
- *    export. This is not the case if the module contaiing the export doesn't
- *    have debug information.
- *  - For an import, the fields symbol_value and segment_id are taken from
- *    the export, if it is available, since imports have no value or segments
- *    by itself.
- *  - For an import symbol_size doesn't have a meaning.
- *  - For normal symbols (not cheap locals) parent_id contains CC65_INV_ID,
- *    for cheap locals it contains the symbol id of the parent symbol.
- */
+**  - If the symbol is segment relative, the segment id gives segment
+**    information, otherwise it contains CC65_INV_ID.
+**  - If the type is CC65_SYM_IMPORT, export_id may contain the id of the
+**    export. This is not the case if the module contaiing the export doesn't
+**    have debug information.
+**  - For an import, the fields symbol_value and segment_id are taken from
+**    the export, if it is available, since imports have no value or segments
+**    by itself.
+**  - For an import symbol_size doesn't have a meaning.
+**  - For normal symbols (not cheap locals) parent_id contains CC65_INV_ID,
+**    for cheap locals it contains the symbol id of the parent symbol.
+*/
 typedef struct cc65_symboldata cc65_symboldata;
 struct cc65_symboldata {
     unsigned            symbol_id;      /* Id of symbol */
@@ -601,28 +601,28 @@ struct cc65_symbolinfo {
 
 const cc65_symbolinfo* cc65_symbol_byid (cc65_dbginfo handle, unsigned id);
 /* Return the symbol with a given id. The function returns NULL if no symbol
- * with this id was found.
- */
+** with this id was found.
+*/
 
 const cc65_symbolinfo* cc65_symbol_byname (cc65_dbginfo handle, const char* name);
 /* Return a list of symbols with a given name. The function returns NULL if
- * no symbol with this name was found.
- */
+** no symbol with this name was found.
+*/
 
 const cc65_symbolinfo* cc65_symbol_byscope (cc65_dbginfo handle,
                                             unsigned scope_id);
 /* Return a list of symbols in the given scope. This includes cheap local
- * symbols, but not symbols in subscopes. The function returns NULL if the
- * scope id is invalid (no such scope) and otherwise a - possibly empty -
- * symbol list.
- */
+** symbols, but not symbols in subscopes. The function returns NULL if the
+** scope id is invalid (no such scope) and otherwise a - possibly empty -
+** symbol list.
+*/
 
 const cc65_symbolinfo* cc65_symbol_inrange (cc65_dbginfo handle,
                                             cc65_addr start, cc65_addr end);
 /* Return a list of labels in the given range. end is inclusive. The function
- * return NULL if no symbols within the given range are found. Non label
- * symbols are ignored and not returned.
- */
+** return NULL if no symbols within the given range are found. Non label
+** symbols are ignored and not returned.
+*/
 
 void cc65_free_symbolinfo (cc65_dbginfo handle, const cc65_symbolinfo* info);
 /* Free a symbol info record */
@@ -654,12 +654,12 @@ typedef enum {
 
 
 /* A type is a linked list of typedata structures. In case of arrays, the
- * structure will contain an element count and the element type. In case of
- * pointers, the structure will contain the type of the data, the pointer
- * points to (currently, there are only VOID pointers).
- * The next pointer points to the next entry in the list. It is NULL if the
- * end of the list is reached.
- */
+** structure will contain an element count and the element type. In case of
+** pointers, the structure will contain the type of the data, the pointer
+** points to (currently, there are only VOID pointers).
+** The next pointer points to the next entry in the list. It is NULL if the
+** end of the list is reached.
+*/
 typedef struct cc65_typedata cc65_typedata;
 struct cc65_typedata {
     cc65_typedata*                next;         /* Pointer to next entry */
@@ -687,8 +687,8 @@ struct cc65_typedata {
 
 const cc65_typedata* cc65_type_byid (cc65_dbginfo handle, unsigned id);
 /* Return the data for the type with the given id. The function returns NULL
- * if no type with this id was found.
- */
+** if no type with this id was found.
+*/
 
 void cc65_free_typedata (cc65_dbginfo Handle, const cc65_typedata* data);
 /* Free a symbol info record */
index 4c2e3d79ae86d1f65e4b52987741614c8ce8475d..41200e86a0f5082b3164f3b91fc32375a821af99 100644 (file)
@@ -368,9 +368,9 @@ static const CmdEntry* FindCmd (const char* Cmd, const CmdEntry* Tab, unsigned C
 
 static void ExecCmd (Collection* Args, const CmdEntry* Tab, unsigned Count)
 /* Search for the command in slot 0 of the given collection. If found, check
- * the argument count, then execute it. If there are problems, output a
- * diagnostic.
- */
+** the argument count, then execute it. If there are problems, output a
+** diagnostic.
+*/
 {
     /* Search for the command, check number of args, then execute it */
     const char* Cmd = CollAt (Args, 0);
@@ -381,11 +381,11 @@ static void ExecCmd (Collection* Args, const CmdEntry* Tab, unsigned Count)
     }
 
     /* Check the number of arguments. Zero means that the function will check
-     * itself. A negative count means that the function needs at least
-     * abs(count) arguments. A positive count means that the function needs
-     * exactly this number of arguments.
-     * Note: The number includes the command itself.
-     */
+    ** itself. A negative count means that the function needs at least
+    ** abs(count) arguments. A positive count means that the function needs
+    ** exactly this number of arguments.
+    ** Note: The number includes the command itself.
+    */
     if (E->ArgCount > 0 && (int)CollCount (Args) != E->ArgCount) {
         /* Argument number mismatch */
         switch (E->ArgCount) {
@@ -479,10 +479,10 @@ static unsigned FindIdType (const char* TypeName)
 
 static int GetId (const char* S, unsigned* Id, unsigned* IdType)
 /* Parse a string for an id. If a valid id is found, it is placed in Id and
- * the function returns true. If an optional type is found, it is placed in
- * IdType, otherwise IdType is left unchanged. If no id is found, the
- * function returns false.
- */
+** the function returns true. If an optional type is found, it is placed in
+** IdType, otherwise IdType is left unchanged. If no id is found, the
+** function returns false.
+*/
 {
     char TypeBuf[20];
     char C;
@@ -924,8 +924,8 @@ static void UnloadFile (void)
 
 static int FileIsLoaded (void)
 /* Return true if the file is open and has loaded without errors: If not,
- * print an error message and return false.
- */
+** print an error message and return false.
+*/
 {
     /* File open? */
     if (Info == 0) {
@@ -1810,8 +1810,8 @@ static void CmdUnload (Collection* Args attribute ((unused)))
 
 static int Parse (char* CmdLine, Collection* Args)
 /* Parse the command line and store the arguments in Args. Return true if ok,
- * false on error.
- */
+** false on error.
+*/
 {
     char* End;
 
index 568269b39a0d9e4d3c523c5486d43a8bfbe2a8bb..ada4f1e3c55a1c5fed2e35d8e5740dc07f3127be 100644 (file)
@@ -106,8 +106,8 @@ static unsigned BinWriteExpr (ExprNode* E, int Signed, unsigned Size,
                               unsigned long Offs attribute ((unused)),
                               void* Data)
 /* Called from SegWrite for an expression. Evaluate the expression, check the
- * range and write the expression value to the file.
- */
+** range and write the expression value to the file.
+*/
 {
     /* There's a predefined function to handle constant expressions */
     return SegWriteConstExpr (((BinDesc*)Data)->F, E, Signed, Size);
@@ -170,23 +170,23 @@ static void BinWriteMem (BinDesc* D, MemoryArea* M)
         PrintNumVal  ("FileOffs", (unsigned long) ftell (D->F));
 
         /* Check if the alignment for the segment from the linker config is
-         * a multiple for that of the segment.
-         */
+        ** a multiple for that of the segment.
+        */
         if ((S->RunAlignment % S->Seg->Alignment) != 0) {
             /* Segment requires another alignment than configured
-             * in the linker.
-             */
+            ** in the linker.
+            */
             Warning ("Segment `%s' is not aligned properly. Resulting "
                      "executable may not be functional.",
                      GetString (S->Name));
         }
 
         /* If this is the run memory area, we must apply run alignment. If
-         * this is not the run memory area but the load memory area (which
-         * means that both are different), we must apply load alignment.
-         * Beware: DoWrite may be true even if this is the run memory area,
-         * because it may be also the load memory area.
-         */
+        ** this is not the run memory area but the load memory area (which
+        ** means that both are different), we must apply load alignment.
+        ** Beware: DoWrite may be true even if this is the run memory area,
+        ** because it may be also the load memory area.
+        */
         if (S->Run == M) {
 
             /* Handle ALIGN and OFFSET/START */
@@ -227,8 +227,8 @@ static void BinWriteMem (BinDesc* D, MemoryArea* M)
         }
 
         /* Now write the segment to disk if it is not a BSS type segment and
-         * if the memory area is the load area.
-         */
+        ** if the memory area is the load area.
+        */
         if (DoWrite) {
             unsigned long P = ftell (D->F);
             SegWrite (D->Filename, D->F, S->Seg, BinWriteExpr, D);
@@ -263,9 +263,9 @@ static int BinUnresolved (unsigned Name attribute ((unused)), void* D)
 /* Called if an unresolved symbol is encountered */
 {
     /* Unresolved symbols are an error in binary format. Bump the counter
-     * and return zero telling the caller that the symbol is indeed
-     * unresolved.
-     */
+    ** and return zero telling the caller that the symbol is indeed
+    ** unresolved.
+    */
     ((BinDesc*) D)->Undef++;
     return 0;
 }
@@ -281,8 +281,8 @@ void BinWriteTarget (BinDesc* D, struct File* F)
     D->Filename = GetString (F->Name);
 
     /* Check for unresolved symbols. The function BinUnresolved is called
-     * if we get an unresolved symbol.
-     */
+    ** if we get an unresolved symbol.
+    */
     D->Undef = 0;               /* Reset the counter */
     CheckUnresolvedImports (BinUnresolved, D);
     if (D->Undef > 0) {
index d922f49ba3fae8f28e494e0ba53525893869b771..a6c9124910c174d007c540e09a379690faba0445 100644 (file)
@@ -230,8 +230,8 @@ long CfgConstExpr (void)
 
 long CfgCheckedConstExpr (long Min, long Max)
 /* Read an expression, make sure it's an int and in range, then return its
- * value.
- */
+** value.
+*/
 {
     /* Get the value */
     long Val = CfgConstExpr ();
index 574f593e36748e5f87dd3513c7b26f911b74bff0..4ec00c05236e69c750c7a1d5482caebc5dc3c03f 100644 (file)
@@ -57,8 +57,8 @@ long CfgConstExpr (void);
 
 long CfgCheckedConstExpr (long Min, long Max);
 /* Read an expression, make sure it's an int and in range, then return its
- * value.
- */
+** value.
+*/
 
 
 
index 68828abbbd89e1c5050e988296c4df54b5729604..d8c378211960e954b053a03fba22e29f8ee4ad99 100644 (file)
@@ -137,9 +137,9 @@ static int ConDesCompare (void* Data, const void* E1, const void* E2)
     int Cmp;
 
     /* Data is actually a pointer to a ConDesDesc from the table, E1 and
-     * E2 are exports from the collection. Get the condes type and cast
-     * the void pointers to object pointers.
-     */
+    ** E2 are exports from the collection. Get the condes type and cast
+    ** the void pointers to object pointers.
+    */
     ConDesDesc* CD = ((ConDesDesc*) Data);
     int Type = CD - ConDes;
     const Export* Exp1 = (const Export*) E1;
@@ -178,16 +178,16 @@ static void ConDesCreateOne (ConDesDesc* CD)
     unsigned    I;
 
     /* Check if this table has a segment and table label defined. If not,
-     * creation was not requested in the config file - ignore it.
-     */
+    ** creation was not requested in the config file - ignore it.
+    */
     if (CD->SegName == INVALID_STRING_ID || CD->Label == INVALID_STRING_ID) {
         return;
     }
 
     /* Check if there is an import for the table label. If not, there is no
-     * reference to the table and we would just waste memory creating the
-     * table.
-     */
+    ** reference to the table and we would just waste memory creating the
+    ** table.
+    */
     if (!IsUnresolved (CD->Label)) {
         return;
     }
@@ -202,10 +202,10 @@ static void ConDesCreateOne (ConDesDesc* CD)
     Sec = NewSection (Seg, 1, ADDR_SIZE_ABS);
 
     /* Walk over the exports and create a fragment for each one. We will use
-     * the exported expression without copying it, since it's cheap and there
-     * is currently no place where it gets changed (hope this will not hunt
-     * me later...).
-     */
+    ** the exported expression without copying it, since it's cheap and there
+    ** is currently no place where it gets changed (hope this will not hunt
+    ** me later...).
+    */
     Count = CollCount (&CD->ExpList);
     for (I = 0; I < Count; ++I) {
 
@@ -220,13 +220,13 @@ static void ConDesCreateOne (ConDesDesc* CD)
     }
 
     /* Define the table start as an export, offset into section is zero
-     * (the section only contains the table).
-     */
+    ** (the section only contains the table).
+    */
     CreateSectionExport (CD->Label, Sec, 0);
 
     /* If we have a CountSym name given AND if it is referenced, define it
-     * with the number of elements in the table.
-     */
+    ** with the number of elements in the table.
+    */
     if (CD->CountSym) {
         CreateConstExport (CD->CountSym, Count);
     }
@@ -273,8 +273,8 @@ void ConDesSetSegName (unsigned Type, unsigned SegName)
 
 const ConDesImport* ConDesGetImport (unsigned Type)
 /* Get the forced import for the given ConDes type. Returns NULL if there is
- * no forced import for this type.
- */
+** no forced import for this type.
+*/
 {
     const ConDesImport* Import;
 
index 662993dcc7d17e021da0cd2945dfbbb82d7136cb..6df8361ac34e1df4ce0e6f43a6b12be9fe14c8f3 100644 (file)
@@ -89,8 +89,8 @@ void ConDesSetSegName (unsigned Type, unsigned SegName);
 
 const ConDesImport* ConDesGetImport (unsigned Type);
 /* Get the forced import for the given ConDes type. Returns NULL if there is
- * no forced import for this type.
- */
+** no forced import for this type.
+*/
 
 void ConDesSetImport (unsigned Type, const ConDesImport* Import);
 /* Set the forced import for the given ConDes type */
index b15dff5c68d56272d9cd20cbe624d6e2e3e43e6a..46e9a48fbd4923ef42f705d2738b021a7b3ad806 100644 (file)
@@ -131,9 +131,9 @@ typedef enum {
 } CfgSymType;
 
 /* Symbol structure. It is used for o65 imports and exports, but also for
- * symbols from the SYMBOLS sections (symbols defined in the config file or
- * forced imports).
- */
+** symbols from the SYMBOLS sections (symbols defined in the config file or
+** forced imports).
+*/
 typedef struct CfgSymbol CfgSymbol;
 struct CfgSymbol {
     CfgSymType  Type;           /* Type of symbol */
@@ -268,9 +268,9 @@ static void MemoryInsert (MemoryArea* M, SegDesc* S)
 
 static CfgSymbol* NewCfgSymbol (CfgSymType Type, unsigned Name)
 /* Create a new CfgSymbol structure with the given type and name. The
- * current config file position is recorded in the returned struct. The
- * created struct is inserted into the CfgSymbols collection and returned.
- */
+** current config file position is recorded in the returned struct. The
+** created struct is inserted into the CfgSymbols collection and returned.
+*/
 {
     /* Allocate memory */
     CfgSymbol* Sym = xmalloc (sizeof (CfgSymbol));
@@ -385,8 +385,8 @@ static void FreeSegDesc (SegDesc* S)
 
 static void FlagAttr (unsigned* Flags, unsigned Mask, const char* Name)
 /* Check if the item is already defined. Print an error if so. If not, set
- * the marker that we have a definition now.
- */
+** the marker that we have a definition now.
+*/
 {
     if (*Flags & Mask) {
         CfgError (&CfgErrorPos, "%s is already defined", Name);
@@ -522,8 +522,8 @@ static void ParseMemory (void)
         AttrCheck (M->Attr, MA_SIZE, "SIZE");
 
         /* If we don't have a file name for output given, use the default
-         * file name.
-         */
+        ** file name.
+        */
         if ((M->Attr & MA_FILE) == 0) {
             FileInsert (GetFile (GetStringId (OutputName)), M);
             OutputNameUsed = 1;
@@ -781,8 +781,8 @@ static void ParseSegments (void)
         }
 
         /* An attribute of ALIGN_LOAD doesn't make sense if there are no
-         * separate run and load memory areas.
-         */
+        ** separate run and load memory areas.
+        */
         if ((S->Flags & SF_ALIGN_LOAD) != 0 && (S->Load == S->Run)) {
             CfgWarning (&CfgErrorPos,
                         "ALIGN_LOAD attribute specified, but no separate "
@@ -792,8 +792,8 @@ static void ParseSegments (void)
         }
 
         /* If the segment is marked as BSS style, it may not have separate
-         * load and run memory areas, because it's is never written to disk.
-         */
+        ** load and run memory areas, because it's is never written to disk.
+        */
         if ((S->Flags & SF_BSS) != 0 && (S->Load != S->Run)) {
             CfgWarning (&CfgErrorPos,
                         "Segment with type `bss' has both LOAD and RUN "
@@ -930,8 +930,8 @@ static void ParseO65 (void)
                 /* Cannot use this attribute twice */
                 FlagAttr (&AttrFlags, atOS, "OS");
                 /* Get the operating system. It may be specified as name or
-                 * as a number in the range 1..255.
-                 */
+                ** as a number in the range 1..255.
+                */
                 if (CfgTok == CFGTOK_INTCON) {
                     CfgRangeCheck (O65OS_MIN, O65OS_MAX);
                     OS = (unsigned) CfgIVal;
@@ -1266,8 +1266,8 @@ static void ParseStartAddress (void)
     AttrCheck (AttrFlags, atDefault, "DEFAULT");
 
     /* If no start address was given on the command line, use the one given
-     * here
-     */
+    ** here
+    */
     if (!HaveStartAddr) {
         StartAddr = DefStartAddr;
     }
@@ -1559,8 +1559,8 @@ void CfgRead (void)
     O65FmtDesc = NewO65Desc ();
 
     /* If we have a config name given, open the file, otherwise we will read
-     * from a buffer.
-     */
+    ** from a buffer.
+    */
     CfgOpenInput ();
 
     /* Parse the file */
@@ -1591,14 +1591,14 @@ static void ProcessSegments (void)
         SegDesc* S = CollAtUnchecked (&SegDescList, I);
 
         /* Search for the actual segment in the input files. The function may
-         * return NULL (no such segment), this is checked later.
-         */
+        ** return NULL (no such segment), this is checked later.
+        */
         S->Seg = SegFind (S->Name);
 
         /* If the segment is marked as BSS style, and if the segment exists
-         * in any of the object file, check that there's no initialized data
-         * in the segment.
-         */
+        ** in any of the object file, check that there's no initialized data
+        ** in the segment.
+        */
         if ((S->Flags & SF_BSS) != 0 && S->Seg != 0 && !IsBSSType (S->Seg)) {
             CfgWarning (GetSourcePos (S->LI),
                         "Segment `%s' with type `bss' contains initialized data",
@@ -1606,10 +1606,10 @@ static void ProcessSegments (void)
         }
 
         /* If this segment does exist in any of the object files, insert the
-         * segment into the load/run memory areas. Otherwise print a warning
-         * and discard it, because the segment pointer in the descriptor is
-         * invalid.
-         */
+        ** segment into the load/run memory areas. Otherwise print a warning
+        ** and discard it, because the segment pointer in the descriptor is
+        ** invalid.
+        */
         if (S->Seg != 0) {
 
             /* Insert the segment into the memory area list */
@@ -1669,9 +1669,9 @@ static void ProcessSymbols (void)
                 }
 
                 /* Check if we have this symbol defined already. The entry
-                 * routine will check this also, but we get a more verbose
-                 * error message when checking it here.
-                 */
+                ** routine will check this also, but we get a more verbose
+                ** error message when checking it here.
+                */
                 if (O65GetExport (O65FmtDesc, Sym->Name) != 0) {
                     CfgError (
                         GetSourcePos (Sym->LI),
@@ -1695,9 +1695,9 @@ static void ProcessSymbols (void)
                 }
 
                 /* Check if we have this symbol defined already. The entry
-                 * routine will check this also, but we get a more verbose
-                 * error message when checking it here.
-                 */
+                ** routine will check this also, but we get a more verbose
+                ** error message when checking it here.
+                */
                 if (O65GetImport (O65FmtDesc, Sym->Name) != 0) {
                     CfgError (
                         GetSourcePos (Sym->LI),
@@ -1770,28 +1770,28 @@ static void CreateLoadDefines (SegDesc* S, unsigned long SegAddr)
 
 unsigned CfgProcess (void)
 /* Process the config file after reading in object files and libraries. This
- * includes postprocessing of the config file data but also assigning segments
- * and defining segment/memory area related symbols. The function will return
- * the number of memory area overflows (so zero means anything went ok).
- * In case of overflows, a short mapfile can be generated later, to ease the
- * task of rearranging segments for the user.
- */
+** includes postprocessing of the config file data but also assigning segments
+** and defining segment/memory area related symbols. The function will return
+** the number of memory area overflows (so zero means anything went ok).
+** In case of overflows, a short mapfile can be generated later, to ease the
+** task of rearranging segments for the user.
+*/
 {
     unsigned Overflows = 0;
     unsigned I;
 
     /* Postprocess symbols. We must do that first, since weak symbols are
-     * defined here, which may be needed later.
-     */
+    ** defined here, which may be needed later.
+    */
     ProcessSymbols ();
 
     /* Postprocess segments */
     ProcessSegments ();
 
     /* Walk through each of the memory sections. Add up the sizes and check
-     * for an overflow of the section. Assign the start addresses of the
-     * segments while doing this.
-     */
+    ** for an overflow of the section. Assign the start addresses of the
+    ** segments while doing this.
+    */
     for (I = 0; I < CollCount (&MemoryAreas); ++I) {
 
         unsigned J;
@@ -1807,8 +1807,8 @@ unsigned CfgProcess (void)
         M->Relocatable = RelocatableBinFmt (M->F->Format);
 
         /* Resolve the start address expression, remember the start address
-         * and mark the memory area as placed.
-         */
+        ** and mark the memory area as placed.
+        */
         if (!IsConstExpr (M->StartExpr)) {
             CfgError (GetSourcePos (M->LI),
                       "Start address of memory area `%s' is not constant",
@@ -1818,9 +1818,9 @@ unsigned CfgProcess (void)
         M->Flags |= MF_PLACED;
 
         /* If requested, define the symbol for the start of the memory area.
-         * Doing it here means that the expression for the size of the area
-         * may reference this symbol.
-         */
+        ** Doing it here means that the expression for the size of the area
+        ** may reference this symbol.
+        */
         if (M->Flags & MF_DEFINE) {
             Export* E;
             StrBuf Buf = STATIC_STRBUF_INITIALIZER;
@@ -1851,21 +1851,21 @@ unsigned CfgProcess (void)
             unsigned long StartAddr = Addr;
 
             /* Some actions depend on wether this is the load or run memory
-             * area.
-             */
+            ** area.
+            */
             if (S->Run == M) {
 
                 /* This is the run (and maybe load) memory area. Handle
-                 * alignment and explict start address and offset.
-                 */
+                ** alignment and explict start address and offset.
+                */
                 if (S->Flags & SF_ALIGN) {
                     /* Align the address */
                     unsigned long NewAddr = AlignAddr (Addr, S->RunAlignment);
 
                     /* If the first segment placed in the memory area needs
-                     * fill bytes for the alignment, emit a warning, since
-                     * this is somewhat suspicious.
-                     */
+                    ** fill bytes for the alignment, emit a warning, since
+                    ** this is somewhat suspicious.
+                    */
                     if (M->FillLevel == 0 && NewAddr > Addr) {
                         CfgWarning (GetSourcePos (S->LI),
                                     "First segment in memory area `%s' does "
@@ -1901,22 +1901,22 @@ unsigned CfgProcess (void)
                 }
 
                 /* Set the start address of this segment, set the readonly flag
-                 * in the segment and and remember if the segment is in a
-                 * relocatable file or not.
-                 */
+                ** in the segment and and remember if the segment is in a
+                ** relocatable file or not.
+                */
                 S->Seg->PC = Addr;
                 S->Seg->ReadOnly = (S->Flags & SF_RO) != 0;
 
                 /* Remember the run memory for this segment, which is also a
-                 * flag that the segment has been placed.
-                 */
+                ** flag that the segment has been placed.
+                */
                 S->Seg->MemArea = M;
 
             } else if (S->Load == M) {
 
                 /* This is the load memory area, *and* run and load are
-                 * different (because of the "else" above). Handle alignment.
-                 */
+                ** different (because of the "else" above). Handle alignment.
+                */
                 if (S->Flags & SF_ALIGN_LOAD) {
                     /* Align the address */
                     Addr = AlignAddr (Addr, S->LoadAlignment);
@@ -1925,15 +1925,15 @@ unsigned CfgProcess (void)
             }
 
             /* If this is the load memory area and the segment doesn't have a
-             * fill value defined, use the one from the memory area.
-             */
+            ** fill value defined, use the one from the memory area.
+            */
             if (S->Load == M && (S->Flags & SF_FILLVAL) == 0) {
                 S->Seg->FillVal = M->FillVal;
             }
 
             /* Increment the fill level of the memory area and check for an
-             * overflow.
-             */
+            ** overflow.
+            */
             M->FillLevel = Addr + S->Seg->Size - M->Start;
             if (M->FillLevel > M->Size && (M->Flags & MF_OVERFLOW) == 0) {
                 ++Overflows;
@@ -1945,8 +1945,8 @@ unsigned CfgProcess (void)
             }
 
             /* If requested, define symbols for the start and size of the
-             * segment.
-             */
+            ** segment.
+            */
             if (S->Flags & SF_DEFINE) {
                 if (S->Run == M && (S->Flags & SF_RUN_DEF) == 0) {
                     CreateRunDefines (S, Addr);
@@ -1960,8 +1960,8 @@ unsigned CfgProcess (void)
             Addr += S->Seg->Size;
 
             /* If this segment will go out to the file, or its place
-             * in the file will be filled, then increase the file size.
-             */
+            ** in the file will be filled, then increase the file size.
+            */
             if (S->Load == M &&
                 ((S->Flags & SF_BSS) == 0 || (M->Flags & MF_FILL) != 0)) {
                 M->F->Size += Addr - StartAddr;
@@ -1970,8 +1970,8 @@ unsigned CfgProcess (void)
         }
 
         /* If requested, define symbols for start, size and offset of the
-         * memory area
-         */
+        ** memory area
+        */
         if (M->Flags & MF_DEFINE) {
             Export* E;
             StrBuf Buf = STATIC_STRBUF_INITIALIZER;
@@ -1987,8 +1987,8 @@ unsigned CfgProcess (void)
             CollAppend (&E->DefLines, M->LI);
 
             /* Define the file offset of the memory area. This isn't of much
-             * use for relocatable output files.
-             */
+            ** use for relocatable output files.
+            */
             if (!M->Relocatable) {
                 SB_Printf (&Buf, "__%s_FILEOFFS__", GetString (M->Name));
                 E = CreateConstExport (GetStrBufId (&Buf), M->FileOffs);
@@ -2000,8 +2000,8 @@ unsigned CfgProcess (void)
         }
 
         /* If we didn't have an overflow and are requested to fill the memory
-         * area, acount for that in the file size.
-         */
+        ** area, acount for that in the file size.
+        */
         if ((M->Flags & MF_OVERFLOW) == 0 && (M->Flags & MF_FILL) != 0) {
             M->F->Size += (M->Size - M->FillLevel);
         }
@@ -2054,8 +2054,8 @@ void CfgWriteTarget (void)
             } else {
 
                 /* No output file. Walk through the list and mark all segments
-                 * loading into these memory areas in this file as dumped.
-                 */
+                ** loading into these memory areas in this file as dumped.
+                */
                 unsigned J;
                 for (J = 0; J < CollCount (&F->MemoryAreas); ++J) {
 
index 8eb86133e1990471c764d4a0af41d931b943f3f5..6a36af6cc2c1e21b77d2669c5f9da5644a065a61 100644 (file)
@@ -110,12 +110,12 @@ void CfgRead (void);
 
 unsigned CfgProcess (void);
 /* Process the config file after reading in object files and libraries. This
- * includes postprocessing of the config file data but also assigning segments
- * and defining segment/memory area related symbols. The function will return
- * the number of memory area overflows (so zero means anything went ok).
- * In case of overflows, a short mapfile can be generated later, to ease the
- * task of rearranging segments for the user.
- */
+** includes postprocessing of the config file data but also assigning segments
+** and defining segment/memory area related symbols. The function will return
+** the number of memory area overflows (so zero means anything went ok).
+** In case of overflows, a short mapfile can be generated later, to ease the
+** task of rearranging segments for the user.
+*/
 
 void CfgWriteTarget (void);
 /* Write the target file(s) */
index 7eabd5198bd3a8ca15a82e4716f0db3f982de90f..386706f667f0a76d59a33315ac858da081af821a 100644 (file)
 
 static void AssignIds (void)
 /* Assign the base ids for debug info output. Within each module, many of the
- * items are addressed by ids which are actually the indices of the items in
- * the collections. To make them unique, we must assign a unique base to each
- * range.
- */
+** items are addressed by ids which are actually the indices of the items in
+** the collections. To make them unique, we must assign a unique base to each
+** range.
+*/
 {
     /* Walk over all modules */
     unsigned I;
@@ -114,8 +114,8 @@ void CreateDbgFile (void)
     fprintf (F, "version\tmajor=2,minor=0\n");
 
     /* Output a line with the item numbers so the debug info module is able
-     * to preallocate the required memory.
-     */
+    ** to preallocate the required memory.
+    */
     fprintf (
         F,
         "info\tcsym=%u,file=%u,lib=%u,line=%u,mod=%u,scope=%u,seg=%u,span=%u,sym=%u,type=%u\n",
index a58ddcfe9206406c60561862bb6271c5a249e0bd..955f0f76de25c47eb95b85274dc7c6562e7c48ac 100644 (file)
@@ -91,8 +91,8 @@ struct HLLDbgSym {
 };
 
 /* We will collect all debug symbols in the following array and remove
- * duplicates before outputing them into a label file.
- */
+** duplicates before outputing them into a label file.
+*/
 static DbgSym*  DbgSymPool[256];
 
 
@@ -141,8 +141,8 @@ static HLLDbgSym* NewHLLDbgSym (void)
 
 static DbgSym* GetDbgSym (DbgSym* D, long Val)
 /* Check if we find the same debug symbol in the table. If we find it, return
- * a pointer to the other occurrence, if we didn't find it, return NULL.
- */
+** a pointer to the other occurrence, if we didn't find it, return NULL.
+*/
 {
     /* Create the hash. We hash over the symbol value */
     unsigned Hash = ((Val >> 24) & 0xFF) ^
@@ -219,8 +219,8 @@ DbgSym* ReadDbgSym (FILE* F, ObjData* O, unsigned Id)
     }
 
     /* If its an exports, there's also the export id, but we don't remember
-     * it but use it to let the export point back to us.
-     */
+    ** it but use it to let the export point back to us.
+    */
     if (SYM_IS_EXPORT (D->Type)) {
         /* Get the export from the export id, then set the our id */
         GetObjExport (O, ReadVar (F))->DbgSymId = Id;
@@ -377,8 +377,8 @@ void PrintDbgSyms (FILE* F)
             }
 
             /* For cheap local symbols, add the owner symbol, for others,
-             * add the owner scope.
-             */
+            ** add the owner scope.
+            */
             if (SYM_IS_STD (S->Type)) {
                 fprintf (F, ",scope=%u", O->ScopeBaseId + S->OwnerId);
             } else {
@@ -390,9 +390,9 @@ void PrintDbgSyms (FILE* F)
             PrintLineInfo (F, &S->RefLines, ",ref=%u");
 
             /* If this is an import, output the id of the matching export.
-             * If this is not an import, output its value and - if we have
-             * it - the segment.
-             */
+            ** If this is not an import, output its value and - if we have
+            ** it - the segment.
+            */
             if (SYM_IS_IMPORT (S->Type)) {
 
                 /* Get the import */
@@ -405,9 +405,9 @@ void PrintDbgSyms (FILE* F)
                 fputs (",type=imp", F);
 
                 /* If this is not a linker generated symbol, and the module
-                 * that contains the export has debug info, output the debug
-                 * symbol id for the export
-                 */
+                ** that contains the export has debug info, output the debug
+                ** symbol id for the export
+                */
                 if (Exp->Obj && OBJ_HAS_DBGINFO (Exp->Obj->Header.Flags)) {
                     fprintf (F, ",exp=%u", Exp->Obj->SymBaseId + Exp->DbgSymId);
                 }
@@ -423,8 +423,8 @@ void PrintDbgSyms (FILE* F)
                 fprintf (F, ",val=0x%lX", Val);
 
                 /* Check for a segmented expression and add the segment id to
-                 * the debug info if we have one.
-                 */
+                ** the debug info if we have one.
+                */
                 GetSegExprVal (S->Expr, &D);
                 if (!D.TooComplex && D.Seg != 0) {
                     fprintf (F, ",seg=%u", D.Seg->Id);
@@ -526,9 +526,9 @@ void PrintDbgSymLabels (FILE* F)
             Val = GetDbgSymVal (D);
 
             /* Lookup this symbol in the table. If it is found in the table, it was
-             * already written to the file, so don't emit it twice. If it is not in
-             * the table, insert and output it.
-             */
+            ** already written to the file, so don't emit it twice. If it is not in
+            ** the table, insert and output it.
+            */
             if (GetDbgSym (D, Val) == 0) {
 
                 /* Emit the VICE label line */
index 937883d0d20f20bc7fae25b669e89957faca8b36..e7ef3d413d61f7d5d5b62701f3b0b69a4b65e554 100644 (file)
@@ -123,9 +123,9 @@ static Import* NewImport (unsigned char AddrSize, ObjData* Obj)
 
 void FreeImport (Import* I)
 /* Free an import. NOTE: This won't remove the import from the exports table,
- * so it may only be called for unused imports (imports from modules that
- * aren't referenced).
- */
+** so it may only be called for unused imports (imports from modules that
+** aren't referenced).
+*/
 {
     /* Safety */
     PRECONDITION ((I->Flags & IMP_INLIST) == 0);
@@ -161,9 +161,9 @@ Import* ReadImport (FILE* F, ObjData* Obj)
     /* Check the address size */
     if (I->AddrSize == ADDR_SIZE_DEFAULT || I->AddrSize > ADDR_SIZE_LONG) {
         /* Beware: This function may be called in cases where the object file
-         * is not read completely into memory. In this case, the file list is
-         * invalid. Be sure not to access it in this case.
-         */
+        ** is not read completely into memory. In this case, the file list is
+        ** invalid. Be sure not to access it in this case.
+        */
         if (ObjHasFiles (I->Obj)) {
             const LineInfo* LI = GetImportPos (I);
             Error ("Invalid import size in for `%s', imported from %s(%u): 0x%02X",
@@ -197,8 +197,8 @@ Import* GenImport (unsigned Name, unsigned char AddrSize)
     /* Check the address size */
     if (I->AddrSize == ADDR_SIZE_DEFAULT || I->AddrSize > ADDR_SIZE_LONG) {
         /* We have no object file information and no line info for a new
-         * import
-         */
+        ** import
+        */
         Error ("Invalid import size 0x%02X for symbol `%s'",
                I->AddrSize,
                GetString (I->Name));
@@ -246,8 +246,8 @@ Import* InsertImport (Import* I)
     }
 
     /* Ok, E now points to a valid exports entry for the given import. Insert
-     * the import into the imports list and update the counters.
-     */
+    ** the import into the imports list and update the counters.
+    */
     I->Exp     = E;
     I->Next    = E->ImpList;
     E->ImpList = I;
@@ -321,9 +321,9 @@ static Export* NewExport (unsigned Type, unsigned char AddrSize,
 
 void FreeExport (Export* E)
 /* Free an export. NOTE: This won't remove the export from the exports table,
- * so it may only be called for unused exports (exports from modules that
- * aren't referenced).
- */
+** so it may only be called for unused exports (exports from modules that
+** aren't referenced).
+*/
 {
     /* Safety */
     PRECONDITION ((E->Flags & EXP_INLIST) == 0);
@@ -367,9 +367,9 @@ Export* ReadExport (FILE* F, ObjData* O)
         ReadData (F, ConDes, ConDesCount);
 
         /* Re-order the data. In the file, each decl is encoded into a byte
-         * which contains the type and the priority. In memory, we will use
-         * an array of types which contain the priority.
-         */
+        ** which contains the type and the priority. In memory, we will use
+        ** an array of types which contain the priority.
+        */
         for (I = 0; I < ConDesCount; ++I) {
             E->ConDes[CD_GET_TYPE (ConDes[I])] = CD_GET_PRIO (ConDes[I]);
         }
@@ -395,8 +395,8 @@ Export* ReadExport (FILE* F, ObjData* O)
     ReadLineInfoList (F, O, &E->RefLines);
 
     /* If this symbol is exported as a condes, and the condes type declares a
-     * forced import, add this import to the object module.
-     */
+    ** forced import, add this import to the object module.
+    */
     for (I = 0; I < CD_TYPE_COUNT; ++I) {
         const ConDesImport* CDI;
 
@@ -410,10 +410,10 @@ Export* ReadExport (FILE* F, ObjData* O)
             CollAppend (&O->Imports, Imp);
 
             /* Add line info for the export that is actually the condes that
-             * forces the import.  Then, add line info for the config. file.
-             * The export's info is added first because the import pretends
-             * that it came from the object module instead of the config. file.
-             */
+            ** forces the import.  Then, add line info for the config. file.
+            ** The export's info is added first because the import pretends
+            ** that it came from the object module instead of the config. file.
+            */
             for (J = 0; J < CollCount (&E->DefLines); ++J) {
                 CollAppend (&Imp->RefLines, DupLineInfo (CollAt (&E->DefLines, J)));
             }
@@ -461,8 +461,8 @@ void InsertExport (Export* E)
                 if (L->Expr == 0) {
 
                     /* This *is* an unresolved external. Use the actual export
-                     * in E instead of the dummy one in L.
-                     */
+                    ** in E instead of the dummy one in L.
+                    */
                     E->Next     = L->Next;
                     E->ImpCount = L->ImpCount;
                     E->ImpList  = L->ImpList;
@@ -474,8 +474,8 @@ void InsertExport (Export* E)
                     ImpOpen -= E->ImpCount;     /* Decrease open imports now */
                     xfree (L);
                     /* We must run through the import list and change the
-                     * export pointer now.
-                     */
+                    ** export pointer now.
+                    */
                     Imp = E->ImpList;
                     while (Imp) {
                         Imp->Exp = E;
@@ -606,8 +606,8 @@ Export* CreateSectionExport (unsigned Name, Section* Sec, unsigned long Offs)
 
 Export* FindExport (unsigned Name)
 /* Check for an identifier in the list. Return 0 if not found, otherwise
- * return a pointer to the export.
- */
+** return a pointer to the export.
+*/
 {
     /* Get a pointer to the list with the symbols hash value */
     Export* L = HashTab[Name & HASHTAB_MASK];
@@ -685,9 +685,9 @@ static void CheckSymType (const Export* E)
             const LineInfo* ImportLI = GetImportPos (I);
 
             /* Generate strings that describe the location of the im- and
-             * exports. This depends on the place from where they come:
-             * Object file or linker config.
-             */
+            ** exports. This depends on the place from where they come:
+            ** Object file or linker config.
+            */
             if (E->Obj) {
                 /* The export comes from an object file */
                 SB_Printf (&ExportLoc, "%s, %s(%u)",
@@ -707,15 +707,15 @@ static void CheckSymType (const Export* E)
                            GetSourceLine (ImportLI));
             } else if (ImportLI) {
                 /* The import is linker generated and we have line
-                 * information
-                 */
+                ** information
+                */
                 SB_Printf (&ImportLoc, "%s(%u)",
                            GetSourceName (ImportLI),
                            GetSourceLine (ImportLI));
             } else {
                 /* The import is linker generated and we don't have line
-                 * information
-                 */
+                ** information
+                */
                 SB_Printf (&ImportLoc, "%s", GetObjFileName (I->Obj));
             }
 
@@ -758,8 +758,8 @@ static void CheckSymTypes (void)
 
 static void PrintUnresolved (ExpCheckFunc F, void* Data)
 /* Print a list of unresolved symbols. On unresolved symbols, F is
- * called (see the comments on ExpCheckFunc in the data section).
- */
+** called (see the comments on ExpCheckFunc in the data section).
+*/
 {
     unsigned I;
 
@@ -827,8 +827,8 @@ static void CreateExportPool (void)
 
 void CheckExports (void)
 /* Setup the list of all exports and check for export/import symbol type
- * mismatches.
- */
+** mismatches.
+*/
 {
     /* Create an export pool */
     CreateExportPool ();
@@ -841,8 +841,8 @@ void CheckExports (void)
 
 void CheckUnresolvedImports (ExpCheckFunc F, void* Data)
 /* Check if there are any unresolved imports. On unresolved imports, F is
- * called (see the comments on ExpCheckFunc in the data section).
- */
+** called (see the comments on ExpCheckFunc in the data section).
+*/
 {
     /* Check for unresolved externals */
     if (ImpOpen != 0) {
@@ -970,8 +970,8 @@ void PrintImportMap (FILE* F)
         const Export* Exp = ExpPool [I];
 
         /* Print the symbol only if there are imports, or if a verbose map
-         * file is requested.
-         */
+        ** file is requested.
+        */
         if (VerboseMap || Exp->ImpCount > 0) {
 
             /* Print the export */
@@ -985,9 +985,9 @@ void PrintImportMap (FILE* F)
             while (Imp) {
 
                 /* Print the import. Beware: The import might be linker
-                 * generated, in which case there is no object file and
-                 * sometimes no line information.
-                 */
+                ** generated, in which case there is no object file and
+                ** sometimes no line information.
+                */
                 const LineInfo* LI = GetImportPos (Imp);
                 if (LI) {
                     fprintf (F,
index 2c0bbca952b2b8220237d0d7a81d11eb64f4ef2e..d69e6d7ad5690778e08af28d60371a7b79068783 100644 (file)
@@ -96,11 +96,11 @@ struct Export {
 
 
 /* Prototype of a function that is called if an undefined symbol is found. It
- * may check if the symbol is an external symbol (for binary formats that
- * support externals) and will return zero if the symbol could not be
- * resolved, or a value != zero if the symbol could be resolved. The
- * CheckExports routine will print out the missing symbol in the first case.
- */
+** may check if the symbol is an external symbol (for binary formats that
+** support externals) and will return zero if the symbol could not be
+** resolved, or a value != zero if the symbol could be resolved. The
+** CheckExports routine will print out the missing symbol in the first case.
+*/
 typedef int (*ExpCheckFunc) (unsigned Name, void* Data);
 
 
@@ -113,9 +113,9 @@ typedef int (*ExpCheckFunc) (unsigned Name, void* Data);
 
 void FreeImport (Import* I);
 /* Free an import. NOTE: This won't remove the import from the exports table,
- * so it may only be called for unused imports (imports from modules that
- * aren't referenced).
- */
+** so it may only be called for unused imports (imports from modules that
+** aren't referenced).
+*/
 
 Import* ReadImport (FILE* F, ObjData* Obj);
 /* Read an import from a file and insert it into the table */
@@ -131,9 +131,9 @@ const LineInfo* GetImportPos (const Import* I);
 
 void FreeExport (Export* E);
 /* Free an export. NOTE: This won't remove the export from the exports table,
- * so it may only be called for unused exports (exports from modules that
- * aren't referenced).
- */
+** so it may only be called for unused exports (exports from modules that
+** aren't referenced).
+*/
 
 Export* ReadExport (FILE* F, ObjData* Obj);
 /* Read an export from a file */
@@ -161,8 +161,8 @@ Export* CreateSectionExport (unsigned Name, Section* S, unsigned long Offs);
 
 Export* FindExport (unsigned Name);
 /* Check for an identifier in the list. Return 0 if not found, otherwise
- * return a pointer to the export.
- */
+** return a pointer to the export.
+*/
 
 int IsUnresolved (unsigned Name);
 /* Check if this symbol is an unresolved export */
@@ -178,13 +178,13 @@ long GetExportVal (const Export* E);
 
 void CheckExports (void);
 /* Setup the list of all exports and check for export/import symbol type
- * mismatches.
- */
+** mismatches.
+*/
 
 void CheckUnresolvedImports (ExpCheckFunc F, void* Data);
 /* Check if there are any unresolved imports. On unresolved imports, F is
- * called (see the comments on ExpCheckFunc in the data section).
- */
+** called (see the comments on ExpCheckFunc in the data section).
+*/
 
 void PrintExportMapByName (FILE* F);
 /* Print an export map to the given file (sorted by symbol name) */
index 0fa079f8e903e034d5d20f55c8f233bbf5cdbab1..efdff899e19a5404fa0f9004b6543174c4e9ac00 100644 (file)
@@ -93,8 +93,8 @@ void FreeExpr (ExprNode* Root)
 
 int IsConstExpr (ExprNode* Root)
 /* Return true if the given expression is a constant expression, that is, one
- * with no references to external symbols.
- */
+** with no references to external symbols.
+*/
 {
     int         Const;
     Export*     E;
@@ -111,9 +111,9 @@ int IsConstExpr (ExprNode* Root)
                 /* Get the referenced export */
                 E = GetExprExport (Root);
                 /* If this export has a mark set, we've already encountered it.
-                 * This means that the export is used to define it's own value,
-                 * which in turn means, that we have a circular reference.
-                 */
+                ** This means that the export is used to define it's own value,
+                ** which in turn means, that we have a circular reference.
+                */
                 if (ExportHasMark (E)) {
                     CircularRefError (E);
                     Const = 0;
@@ -126,8 +126,8 @@ int IsConstExpr (ExprNode* Root)
 
             case EXPR_SECTION:
                 /* A section expression is const if the segment it is in is
-                 * not relocatable and already placed.
-                 */
+                ** not relocatable and already placed.
+                */
                 S = GetExprSection (Root);
                 M = S->Seg->MemArea;
                 return M != 0 && (M->Flags & MF_PLACED) != 0 && !M->Relocatable;
@@ -160,9 +160,9 @@ int IsConstExpr (ExprNode* Root)
                 GetSegExprVal (Root->Left, &D);
 
                 /* The expression is const if the expression contains exactly
-                 * one segment that is assigned to a memory area which has a
-                 * bank attribute that is constant.
-                 */
+                ** one segment that is assigned to a memory area which has a
+                ** bank attribute that is constant.
+                */
                 return (D.TooComplex              == 0  &&
                         D.Seg                     != 0  &&
                         D.Seg->MemArea            != 0  &&
@@ -224,9 +224,9 @@ Import* GetExprImport (ExprNode* Expr)
     PRECONDITION (Expr->Op == EXPR_SYMBOL);
 
     /* If we have an object file, get the import from it, otherwise
-     * (internally generated expressions), get the import from the
-     * import pointer.
-     */
+    ** (internally generated expressions), get the import from the
+    ** import pointer.
+    */
     if (Expr->Obj) {
         /* Return the Import */
         return GetObjImport (Expr->Obj, Expr->V.ImpNum);
@@ -256,9 +256,9 @@ Section* GetExprSection (ExprNode* Expr)
     PRECONDITION (Expr->Op == EXPR_SECTION);
 
     /* If we have an object file, get the section from it, otherwise
-     * (internally generated expressions), get the section from the
-     * section pointer.
-     */
+    ** (internally generated expressions), get the section from the
+    ** section pointer.
+    */
     if (Expr->Obj) {
         /* Return the export */
         return CollAt (&Expr->Obj->Sections, Expr->V.SecNum);
@@ -288,9 +288,9 @@ long GetExprVal (ExprNode* Expr)
             /* Get the referenced export */
             E = GetExprExport (Expr);
             /* If this export has a mark set, we've already encountered it.
-             * This means that the export is used to define it's own value,
-             * which in turn means, that we have a circular reference.
-             */
+            ** This means that the export is used to define it's own value,
+            ** which in turn means, that we have a circular reference.
+            */
             if (ExportHasMark (E)) {
                 CircularRefError (E);
                 Val = 0;
@@ -453,10 +453,10 @@ long GetExprVal (ExprNode* Expr)
 
 static void GetSegExprValInternal (ExprNode* Expr, SegExprDesc* D, int Sign)
 /* Check if the given expression consists of a segment reference and only
- * constant values, additions and subtractions. If anything else is found,
- * set D->TooComplex to true.
- * Internal, recursive routine.
- */
+** constant values, additions and subtractions. If anything else is found,
+** set D->TooComplex to true.
+** Internal, recursive routine.
+*/
 {
     Export* E;
 
@@ -470,9 +470,9 @@ static void GetSegExprValInternal (ExprNode* Expr, SegExprDesc* D, int Sign)
             /* Get the referenced export */
             E = GetExprExport (Expr);
             /* If this export has a mark set, we've already encountered it.
-             * This means that the export is used to define it's own value,
-             * which in turn means, that we have a circular reference.
-             */
+            ** This means that the export is used to define it's own value,
+            ** which in turn means, that we have a circular reference.
+            */
             if (ExportHasMark (E)) {
                 CircularRefError (E);
             } else {
@@ -530,9 +530,9 @@ static void GetSegExprValInternal (ExprNode* Expr, SegExprDesc* D, int Sign)
 
 void GetSegExprVal (ExprNode* Expr, SegExprDesc* D)
 /* Check if the given expression consists of a segment reference and only
- * constant values, additions and subtractions. If anything else is found,
- * set D->TooComplex to true. The function will initialize D.
- */
+** constant values, additions and subtractions. If anything else is found,
+** set D->TooComplex to true. The function will initialize D.
+*/
 {
     /* Initialize the given structure */
     D->Val        = 0;
index f2712033032b7d9a237df20ab44f2712da187f47..8b5879a279a6d3614e50b9baeca774078c8c1569 100644 (file)
@@ -78,8 +78,8 @@ void FreeExpr (ExprNode* Root);
 
 int IsConstExpr (ExprNode* Root);
 /* Return true if the given expression is a constant expression, that is, one
- * with no references to external symbols.
- */
+** with no references to external symbols.
+*/
 
 Import* GetExprImport (ExprNode* Expr);
 /* Get the import data structure for a symbol expression node */
@@ -95,9 +95,9 @@ long GetExprVal (ExprNode* Expr);
 
 void GetSegExprVal (ExprNode* Expr, SegExprDesc* D);
 /* Check if the given expression consists of a segment reference and only
- * constant values, additions and subtractions. If anything else is found,
- * set D->TooComplex to true. The function will initialize D.
- */
+** constant values, additions and subtractions. If anything else is found,
+** set D->TooComplex to true. The function will initialize D.
+*/
 
 ExprNode* LiteralExpr (long Val, ObjData* O);
 /* Return an expression tree that encodes the given literal value */
index 642e031a274428f4eb5c47b5751be7922f11eb6e..b250125a793e01895a556a7275810f4d6317e4bb 100644 (file)
@@ -124,8 +124,8 @@ ExtSym* NewExtSym (ExtSymTab* Tab, unsigned Name)
 
 static void FreeExtSym (ExtSym* E)
 /* Free an external symbol structure. Will not unlink the entry, so internal
- * use only.
- */
+** use only.
+*/
 {
     xfree (E);
 }
@@ -172,8 +172,8 @@ void FreeExtSymTab (ExtSymTab* Tab)
 
 ExtSym* GetExtSym (const ExtSymTab* Tab, unsigned Name)
 /* Return the entry for the external symbol with the given name. Return NULL
- * if there is no such symbol.
- */
+** if there is no such symbol.
+*/
 {
     /* Hash the name */
     unsigned Hash = (Name & HASHTAB_MASK);
@@ -204,8 +204,8 @@ unsigned ExtSymCount (const ExtSymTab* Tab)
 
 const ExtSym* ExtSymList (const ExtSymTab* Tab)
 /* Return the start of the symbol list sorted by symbol number. Call
- * ExtSymNext for the next symbol.
- */
+** ExtSymNext for the next symbol.
+*/
 {
     return Tab->Root;
 }
index a394ad76ab830d04dfc9f794c30070f615e71482..45f094177eb54d96ef0c573d27a8f051fc70029a 100644 (file)
@@ -69,16 +69,16 @@ void FreeExtSymTab (ExtSymTab* Tab);
 
 ExtSym* GetExtSym (const ExtSymTab* Tab, unsigned Name);
 /* Return the entry for the external symbol with the given name. Return NULL
- * if there is no such symbol.
- */
+** if there is no such symbol.
+*/
 
 unsigned ExtSymCount (const ExtSymTab* Tab);
 /* Return the number of symbols in the table */
 
 const ExtSym* ExtSymList (const ExtSymTab* Tab);
 /* Return the start of the symbol list sorted by symbol number. Call
- * ExtSymNext for the next symbol.
- */
+** ExtSymNext for the next symbol.
+*/
 
 unsigned ExtSymNum (const ExtSym* E);
 /* Return the number of an external symbol */
index 047befa7c385977d86de056272d81847c2fb3255..5964e1ea6e9ec31365d25d55201baff0e5510aa2 100644 (file)
@@ -64,10 +64,10 @@ static Collection FileInfos = STATIC_COLLECTION_INITIALIZER;
 
 static int FindFileInfo (unsigned Name, unsigned* Index)
 /* Find the FileInfo for a given file name. The function returns true if the
- * name was found. In this case, Index contains the index of the first item
- * that matches. If the item wasn't found, the function returns false and
- * Index contains the insert position for FileName.
- */
+** name was found. In this case, Index contains the index of the first item
+** that matches. If the item wasn't found, the function returns false and
+** Index contains the insert position for FileName.
+*/
 {
     /* Do a binary search */
     int Lo = 0;
@@ -87,8 +87,8 @@ static int FindFileInfo (unsigned Name, unsigned* Index)
         } else {
             Hi = Cur - 1;
             /* Since we may have duplicates, repeat the search until we've
-             * the first item that has a match.
-             */
+            ** the first item that has a match.
+            */
             if (CurItem->Name == Name) {
                 Found = 1;
             }
@@ -148,10 +148,10 @@ FileInfo* ReadFileInfo (FILE* F, ObjData* O)
     if (FindFileInfo (Name, &Index)) {
 
         /* We have at least one such entry. Try all of them and, if size and
-         * modification time matches, return the first match. When the loop
-         * is terminated without finding an entry, Index points one behind
-         * the last entry with the name, which is the perfect insert position.
-         */
+        ** modification time matches, return the first match. When the loop
+        ** is terminated without finding an entry, Index points one behind
+        ** the last entry with the name, which is the perfect insert position.
+        */
         FI = CollAt (&FileInfos, Index);
         while (1) {
 
@@ -183,8 +183,8 @@ FileInfo* ReadFileInfo (FILE* F, ObjData* O)
     CollAppend (&FI->Modules, O);
 
     /* Insert the file info in our global list. Index points to the insert
-     * position.
-     */
+    ** position.
+    */
     CollInsert (&FileInfos, FI, Index);
 
     /* Return the new struct */
index 19943ecad3a91580666a5d426f98d73628f4a7de..f6a2719a67a3a2f386d79b19b68be4f54b4c6009 100644 (file)
@@ -147,10 +147,10 @@ void WriteVar (FILE* F, unsigned long V)
 /* Write a variable sized value to the file in special encoding */
 {
     /* We will write the value to the file in 7 bit chunks. If the 8th bit
-     * is clear, we're done, if it is set, another chunk follows. This will
-     * allow us to encode smaller values with less bytes, at the expense of
-     * needing 5 bytes if a 32 bit value is written to file.
-     */
+    ** is clear, we're done, if it is set, another chunk follows. This will
+    ** allow us to encode smaller values with less bytes, at the expense of
+    ** needing 5 bytes if a 32 bit value is written to file.
+    */
     do {
         unsigned char C = (V & 0x7F);
         V >>= 7;
@@ -258,8 +258,8 @@ unsigned long ReadVar (FILE* F)
 /* Read a variable size value from the file */
 {
     /* The value was written to the file in 7 bit chunks LSB first. If there
-     * are more bytes, bit 8 is set, otherwise it is clear.
-     */
+    ** are more bytes, bit 8 is set, otherwise it is clear.
+    */
     unsigned char C;
     unsigned long V = 0;
     unsigned Shift = 0;
@@ -280,8 +280,8 @@ unsigned long ReadVar (FILE* F)
 
 unsigned ReadStr (FILE* F)
 /* Read a string from the file, place it into the global string pool, and
- * return its string id.
- */
+** return its string id.
+*/
 {
     unsigned    Id;
     StrBuf      Buf = STATIC_STRBUF_INITIALIZER;
index f0121ef164053beb4bf9bc0dc03215527a865924..72e4a6fcbdcd7fbe95dfdb4155100cf1f851d392 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 1998-2003 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -104,8 +104,8 @@ unsigned long ReadVar (FILE* F);
 
 unsigned ReadStr (FILE* F);
 /* Read a string from the file, place it into the global string pool, and
- * return its string id.
- */
+** return its string id.
+*/
 
 FilePos* ReadFilePos (FILE* F, FilePos* Pos);
 /* Read a file position from the file */
index e157fe28d4a311f1058218be694adc361c869bfc..5efac371c06aaf273871e7b04d3e94a186caa99e 100644 (file)
@@ -57,8 +57,8 @@ Fragment* NewFragment (unsigned char Type, unsigned Size, Section* S)
     Fragment* F;
 
     /* Calculate the size of the memory block. LitBuf is only needed if the
-     * fragment contains literal data.
-     */
+    ** fragment contains literal data.
+    */
     unsigned FragSize = sizeof (Fragment) - 1;
     if (Type == FRAG_LITERAL) {
         FragSize += Size;
index 71dcc2a3539bcd602b944add3ad5e0484db249a8..0dadcfa6778b76c105a362f100c8646a331532fe 100644 (file)
@@ -232,8 +232,8 @@ static ObjData* ReadIndexEntry (Library* L)
 
 static void ReadBasicData (Library* L, ObjData* O)
 /* Read basic data for an object file that is necessary to resolve external
- * references.
- */
+** references.
+*/
 {
     /* Seek to the start of the object file and read the header */
     LibSeek (L, O->Start);
@@ -275,8 +275,8 @@ static void LibReadIndex (Library* L)
     }
 
     /* Walk over the index and read basic data for all object files in the
-     * library.
-     */
+    ** library.
+    */
     for (I = 0; I < CollCount (&L->Modules); ++I) {
         ReadBasicData (L, CollAtUnchecked (&L->Modules, I));
     }
@@ -292,8 +292,8 @@ static void LibReadIndex (Library* L)
 
 static void LibCheckExports (ObjData* O)
 /* Check if the exports from this file can satisfy any import requests. If so,
- * insert the imports and exports from this file and mark the file as added.
- */
+** insert the imports and exports from this file and mark the file as added.
+*/
 {
     unsigned I;
 
@@ -336,8 +336,8 @@ static void LibResolve (void)
     unsigned Additions;
 
     /* Walk repeatedly over all open libraries until there's nothing more
-     * to add.
-     */
+    ** to add.
+    */
     do {
 
         Additions = 0;
@@ -349,9 +349,9 @@ static void LibResolve (void)
             Library* L = CollAt (&OpenLibs, I);
 
             /* Walk through all modules in this library and check for each
-             * module if there are unresolved externals in existing modules
-             * that may be resolved by adding the module.
-             */
+            ** module if there are unresolved externals in existing modules
+            ** that may be resolved by adding the module.
+            */
             for (J = 0; J < CollCount (&L->Modules); ++J) {
 
                 /* Get the next module */
@@ -371,17 +371,17 @@ static void LibResolve (void)
     } while (Additions > 0);
 
     /* We do know now which modules must be added, so we can load the data
-     * for these modues into memory. Since we're walking over all modules
-     * anyway, we will also remove data for unneeded modules.
-     */
+    ** for these modues into memory. Since we're walking over all modules
+    ** anyway, we will also remove data for unneeded modules.
+    */
     for (I = 0; I < CollCount (&OpenLibs); ++I) {
 
         /* Get the next library */
         Library* L = CollAt (&OpenLibs, I);
 
         /* Walk over all modules in this library and add the files list and
-         * sections for all referenced modules.
-         */
+        ** sections for all referenced modules.
+        */
         J = 0;
         while (J < CollCount (&L->Modules)) {
 
@@ -398,22 +398,22 @@ static void LibResolve (void)
                 ObjReadAssertions (L->F, O->Start + O->Header.AssertOffs, O);
 
                 /* Seek to the start of the segment list and read the segments.
-                 * This must be late, since the data here may reference other
-                 * stuff.
-                 */
+                ** This must be late, since the data here may reference other
+                ** stuff.
+                */
                 ObjReadSections (L->F, O->Start + O->Header.SegOffs, O);
 
                 /* Read the scope table from the object file. Scopes reference
-                 * segments, so we must read them after the sections.
-                 */
+                ** segments, so we must read them after the sections.
+                */
                 ObjReadScopes (L->F, O->Start + O->Header.ScopeOffs, O);
 
                 /* Read the spans */
                 ObjReadSpans (L->F, O->Start + O->Header.SpanOffs, O);
 
                 /* All references to strings are now resolved, so we can delete
-                 * the module string pool.
-                 */
+                ** the module string pool.
+                */
                 FreeObjStrings (O);
 
                 /* Insert the object into the list of all used object files */
@@ -432,8 +432,8 @@ static void LibResolve (void)
         }
 
         /* If we have referenced modules in this library, assign it an id
-         * (which is the index in the library collection) and keep it.
-         */
+        ** (which is the index in the library collection) and keep it.
+        */
         if (CollCount (&L->Modules) > 0) {
             CloseLibrary (L);
             L->Id = CollCount (&LibraryList);
@@ -453,16 +453,16 @@ static void LibResolve (void)
 
 void LibAdd (FILE* F, const char* Name)
 /* Add files from the library to the list if there are references that could
- * be satisfied.
- */
+** be satisfied.
+*/
 {
     /* Add the library to the list of open libraries */
     LibOpen (F, Name);
 
     /* If there is no library group open, just resolve all open symbols and
-     * close the library. Otherwise we will do nothing because resolving will
-     * be done when the group is closed.
-     */
+    ** close the library. Otherwise we will do nothing because resolving will
+    ** be done when the group is closed.
+    */
     if (!Grouping) {
         LibResolve ();
     }
@@ -472,9 +472,9 @@ void LibAdd (FILE* F, const char* Name)
 
 void LibStartGroup (void)
 /* Start a library group. Objects within a library group may reference each
- * other, and libraries are searched repeatedly until all references are
- * satisfied.
- */
+** other, and libraries are searched repeatedly until all references are
+** satisfied.
+*/
 {
     /* We cannot already have a group open */
     if (Grouping) {
@@ -489,9 +489,9 @@ void LibStartGroup (void)
 
 void LibEndGroup (void)
 /* End a library group and resolve all open references. Objects within a
- * library group may reference each other, and libraries are searched
- * repeatedly until all references are satisfied.
- */
+** library group may reference each other, and libraries are searched
+** repeatedly until all references are satisfied.
+*/
 {
     /* We must have a library group open */
     if (!Grouping) {
index 7eadf250fca6681c9007dcf32321908aed64ca3b..abf75675aa66932dc70b244751c54632f870817a 100644 (file)
@@ -57,20 +57,20 @@ struct Library;
 
 void LibAdd (FILE* F, const char* Name);
 /* Add files from the library to the list if there are references that could
- * be satisfied.
- */
+** be satisfied.
+*/
 
 void LibStartGroup (void);
 /* Start a library group. Objects within a library group may reference each
- * other, and libraries are searched repeatedly until all references are
- * satisfied.
- */
+** other, and libraries are searched repeatedly until all references are
+** satisfied.
+*/
 
 void LibEndGroup (void);
 /* End a library group and resolve all open references. Objects within a
- * library group may reference each other, and libraries are searched
- * repeatedly until all references are satisfied.
- */
+** library group may reference each other, and libraries are searched
+** repeatedly until all references are satisfied.
+*/
 
 void LibCheckGroup (void);
 /* Check if there are open library groups */
index 3daa2fd6686463b59481dba9da51e30263f7e693..25eca4fcdcf51aeccb1ea6974398d66186e88335 100644 (file)
@@ -143,8 +143,8 @@ LineInfo* ReadLineInfo (FILE* F, ObjData* O)
 
 void ReadLineInfoList (FILE* F, ObjData* O, Collection* LineInfos)
 /* Read a list of line infos stored as a list of indices in the object file,
- * make real line infos from them and place them into the passed collection.
- */
+** make real line infos from them and place them into the passed collection.
+*/
 {
     /* Read the number of line info indices that follow */
     unsigned LineInfoCount = ReadVar (F);
@@ -159,8 +159,8 @@ void ReadLineInfoList (FILE* F, ObjData* O, Collection* LineInfos)
         unsigned LineInfoIndex = ReadVar (F);
 
         /* The line info index was written by the assembler and must
-         * therefore be part of the line infos read from the object file.
-         */
+        ** therefore be part of the line infos read from the object file.
+        */
         if (LineInfoIndex >= CollCount (&O->LineInfos)) {
             Internal ("Invalid line info index %u in module `%s' - max is %u",
                       LineInfoIndex,
@@ -177,8 +177,8 @@ void ReadLineInfoList (FILE* F, ObjData* O, Collection* LineInfos)
 
 const LineInfo* GetAsmLineInfo (const Collection* LineInfos)
 /* Find a line info of type LI_TYPE_ASM and count zero in the given collection
- * and return it. Return NULL if no such line info was found.
- */
+** and return it. Return NULL if no such line info was found.
+*/
 {
     unsigned I;
 
index 828a9ebd1ea14fc79a4b90436e7a366b46812d52..84be249bd21b0ed4af1f493c0b82060de4009aea 100644 (file)
@@ -68,9 +68,9 @@ struct Segment;
 
 
 /* Structure holding line information. The Pos.Name field is always the
- * global string id of the file name. If the line info was read from the
- * object file, the File pointer is valid, otherwise it is NULL.
- */
+** global string id of the file name. If the line info was read from the
+** object file, the File pointer is valid, otherwise it is NULL.
+*/
 typedef struct LineInfo LineInfo;
 struct LineInfo {
     unsigned            Id;             /* Line info id */
@@ -102,13 +102,13 @@ LineInfo* DupLineInfo (const LineInfo* LI);
 
 void ReadLineInfoList (FILE* F, struct ObjData* O, Collection* LineInfos);
 /* Read a list of line infos stored as a list of indices in the object file,
- * make real line infos from them and place them into the passed collection.
- */
+** make real line infos from them and place them into the passed collection.
+*/
 
 const LineInfo* GetAsmLineInfo (const Collection* LineInfos);
 /* Find a line info of type LI_TYPE_ASM and count zero in the given collection
- * and return it. Return NULL if no such line info was found.
- */
+** and return it. Return NULL if no such line info was found.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE const FilePos* GetSourcePos (const LineInfo* LI)
index e68ebc9f7f4f50aee7f4acc3d5d651b6ec0aa701..5030b1dc38839d015eac430a1e23a0af8cadfcea 100644 (file)
@@ -152,8 +152,8 @@ static void Usage (void)
 
 static unsigned long CvtNumber (const char* Arg, const char* Number)
 /* Convert a number from a string. Allow '$' and '0x' prefixes for hex
- * numbers.
- */
+** numbers.
+*/
 {
     unsigned long Val;
     int           Converted;
@@ -227,11 +227,11 @@ static void LinkFile (const char* Name, FILETYPE Type)
     Magic = Read32 (F);
 
     /* Check the magic for known file types. The handling is somewhat weird
-     * since we may have given a file with a ".lib" extension, which was
-     * searched and found in a directory for library files, but we now find
-     * out (by looking at the magic) that it's indeed an object file. We just
-     * ignore the problem and hope no one will notice...
-     */
+    ** since we may have given a file with a ".lib" extension, which was
+    ** searched and found in a directory for library files, but we now find
+    ** out (by looking at the magic) that it's indeed an object file. We just
+    ** ignore the problem and hope no one will notice...
+    */
     switch (Magic) {
 
         case OBJ_MAGIC:
@@ -365,8 +365,8 @@ static void OptForceImport (const char* Opt attribute ((unused)), const char* Ar
     if (ColPos == 0) {
 
         /* Use default address size (which for now is always absolute
-         * addressing)
-         */
+        ** addressing)
+        */
         InsertImport (GenImport (GetStringId (Arg), ADDR_SIZE_ABS));
 
     } else {
@@ -800,9 +800,9 @@ int main (int argc, char* argv [])
     ConDesCreate ();
 
     /* Process data from the config file. Assign start addresses for the
-     * segments, define linker symbols. The function will return the number
-     * of memory area overflows (zero on success).
-     */
+    ** segments, define linker symbols. The function will return the number
+    ** of memory area overflows (zero on success).
+    */
     MemoryAreaOverflows = CfgProcess ();
 
     /* Check module assertions */
@@ -812,9 +812,9 @@ int main (int argc, char* argv [])
     CheckExports ();
 
     /* If we had a memory area overflow before, we cannot generate the output
-     * file. However, we will generate a short map file if requested, since
-     * this will help the user to rearrange segments and fix the overflow.
-     */
+    ** file. However, we will generate a short map file if requested, since
+    ** this will help the user to rearrange segments and fix the overflow.
+    */
     if (MemoryAreaOverflows) {
         if (MapFileName) {
             CreateMapFile (SHORT_MAPFILE);
index 8ca1a388f127e0e4f7c273fac9f3fc5c9a92bd17..0cf9b651bc94dce4669fca795b77e03f3b49958a 100644 (file)
@@ -59,8 +59,8 @@
 
 void CreateMapFile (int ShortMap)
 /* Create a map file. If ShortMap is true, only the segment lists are
- * generated, not the import/export lists.
- */
+** generated, not the import/export lists.
+*/
 {
     unsigned I;
 
@@ -90,8 +90,8 @@ void CreateMapFile (int ShortMap)
         for (J = 0; J < CollCount (&O->Sections); ++J) {
             const Section* S = CollConstAt (&O->Sections, J);
             /* Don't include zero sized sections if not explicitly
-             * requested
-             */
+            ** requested
+            */
             if (VerboseMap || S->Size > 0) {
                 fprintf (F, 
                          "    %-17s Offs=%06lX  Size=%06lX  "
index 3473b4d64a071c58a1f350f19e824eeb9275540f..4a1d4d7777b85ce07bf80d62ba683b4c2e05cdfe 100644 (file)
@@ -7,7 +7,7 @@
 /*                                                                           */
 /*                                                                           */
 /* (C) 1998-2005 Ullrich von Bassewitz                                       */
-/*               Römerstrasse 52                                             */
+/*               Roemerstrasse 52                                            */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
@@ -60,8 +60,8 @@ enum {
 
 void CreateMapFile (int ShortMap);
 /* Create a map file. If ShortMap is true, only the segment lists are
- * generated, not the import/export lists.
- */
+** generated, not the import/export lists.
+*/
 
 void CreateLabelFile (void);
 /* Create a label file */
index 8274d6b06105a991cd918ce8e79ea97e5e375903..aceb5158afb6f00b164d0c20a99171c9a5aaa661 100644 (file)
@@ -94,8 +94,8 @@
 #define MF_ALIGN_MASK   0x0003          /* Mask to extract alignment */
 
 /* The four o65 segment types. Note: These values are identical to the values
- * needed for the segmentID in the o65 spec.
- */
+** needed for the segmentID in the o65 spec.
+*/
 #define O65SEG_UNDEF    0x00
 #define O65SEG_ABS      0x01
 #define O65SEG_TEXT     0x02
@@ -222,11 +222,11 @@ static unsigned O65SegType (const SegDesc* S)
 /* Map our own segment types into something o65 compatible */
 {
     /* Check the segment type. Readonly segments are assign to the o65
-     * text segment, writeable segments that contain data are assigned
-     * to data, bss and zp segments are handled respectively.
-     * Beware: Zeropage segments have the SF_BSS flag set, so be sure
-     * to check SF_ZP first.
-     */
+    ** text segment, writeable segments that contain data are assigned
+    ** to data, bss and zp segments are handled respectively.
+    ** Beware: Zeropage segments have the SF_BSS flag set, so be sure
+    ** to check SF_ZP first.
+    */
     if (S->Flags & SF_RO) {
         return O65SEG_TEXT;
     } else if (S->Flags & SF_ZP) {
@@ -242,8 +242,8 @@ static unsigned O65SegType (const SegDesc* S)
 
 static void CvtMemoryToSegment (ExprDesc* ED)
 /* Convert a memory area into a segment by searching the list of run segments
- * in this memory area and assigning the nearest one.
- */
+** in this memory area and assigning the nearest one.
+*/
 {
     /* Get the memory area from the expression */
     MemoryArea* M = ED->MemRef;
@@ -291,8 +291,8 @@ static void CvtMemoryToSegment (ExprDesc* ED)
 
 static const SegDesc* FindSeg (SegDesc** const List, unsigned Count, const Segment* S)
 /* Search for a segment in the given list of segment descriptors and return
- * the descriptor for a segment if we found it, and NULL if not.
- */
+** the descriptor for a segment if we found it, and NULL if not.
+*/
 {
     unsigned I;
 
@@ -341,9 +341,9 @@ static const SegDesc* O65FindSeg (const O65Desc* D, const Segment* S)
 
 static void O65ParseExpr (ExprNode* Expr, ExprDesc* D, int Sign)
 /* Extract and evaluate all constant factors in an subtree that has only
- * additions and subtractions. If anything other than additions and
- * subtractions are found, D->TooComplex is set to true.
- */
+** additions and subtractions. If anything other than additions and
+** subtractions are found, D->TooComplex is set to true.
+*/
 {
     Export* E;
 
@@ -357,9 +357,9 @@ static void O65ParseExpr (ExprNode* Expr, ExprDesc* D, int Sign)
             /* Get the referenced Export */
             E = GetExprExport (Expr);
             /* If this export has a mark set, we've already encountered it.
-             * This means that the export is used to define it's own value,
-             * which in turn means, that we have a circular reference.
-             */
+            ** This means that the export is used to define it's own value,
+            ** which in turn means, that we have a circular reference.
+            */
             if (ExportHasMark (E)) {
                 CircularRefError (E);
             } else if (E->Expr == 0) {
@@ -412,8 +412,8 @@ static void O65ParseExpr (ExprNode* Expr, ExprDesc* D, int Sign)
                 /* Remember the memory area reference */
                 D->MemRef = Expr->V.Mem;
                 /* Add the start address of the memory area to the constant
-                 * value
-                 */
+                ** value
+                */
                 D->Val += (Sign * D->MemRef->Start);
             }
             break;
@@ -593,9 +593,9 @@ static void O65WriteHeader (O65Desc* D)
 static unsigned O65WriteExpr (ExprNode* E, int Signed, unsigned Size,
                               unsigned long Offs, void* Data)
 /* Called from SegWrite for an expression. Evaluate the expression, check the
- * range and write the expression value to the file, update the relocation
- * table.
- */
+** range and write the expression value to the file, update the relocation
+** table.
+*/
 {
     long          Diff;
     unsigned      RefCount;
@@ -614,9 +614,9 @@ static unsigned O65WriteExpr (ExprNode* E, int Signed, unsigned Size,
     }
 
     /* We have a relocatable expression that needs a relocation table entry.
-     * Calculate the number of bytes between this entry and the last one, and
-     * setup all necessary intermediate bytes in the relocation table.
-     */
+    ** Calculate the number of bytes between this entry and the last one, and
+    ** setup all necessary intermediate bytes in the relocation table.
+    */
     Offs += D->SegSize;         /* Calulate full offset */
     Diff = ((long) Offs) - D->LastOffs;
     while (Diff > 0xFE) {
@@ -649,9 +649,9 @@ static unsigned O65WriteExpr (ExprNode* E, int Signed, unsigned Size,
     }
 
     /* If we have a memory area reference, we need to convert it into a
-     * segment reference. If we cannot do that, we cannot handle the
-     * expression.
-     */
+    ** segment reference. If we cannot do that, we cannot handle the
+    ** expression.
+    */
     if (ED.MemRef) {
         CvtMemoryToSegment (&ED);
         if (ED.SegRef == 0) {
@@ -682,8 +682,8 @@ static unsigned O65WriteExpr (ExprNode* E, int Signed, unsigned Size,
     WriteVal (D->F, BinVal, Size);
 
     /* Determine the actual type of relocation entry needed from the
-     * information gathered about the expression.
-     */
+    ** information gathered about the expression.
+    */
     if (E->Op == EXPR_BYTE0) {
         RelocType = O65RELOC_LOW;
     } else if (E->Op == EXPR_BYTE1) {
@@ -730,8 +730,8 @@ static unsigned O65WriteExpr (ExprNode* E, int Signed, unsigned Size,
         Seg = O65FindSeg (D, ED.SegRef);
         if (Seg == 0) {
             /* For some reason, we didn't find this segment in the list of
-             * segments written to the o65 file.
-             */
+            ** segments written to the o65 file.
+            */
             return SEG_EXPR_INVALID;
         }
         RelocType |= O65SegType (Seg);
@@ -844,8 +844,8 @@ static void O65WriteDataSeg (O65Desc* D)
 
 static void O65WriteBssSeg (O65Desc* D)
 /* "Write" the bss segments to the o65 output file. This will only update
- * the relevant header fields.
- */
+** the relevant header fields.
+*/
 {
     /* Initialize variables */
     D->CurReloc = 0;
@@ -861,8 +861,8 @@ static void O65WriteBssSeg (O65Desc* D)
 
 static void O65WriteZPSeg (O65Desc* D)
 /* "Write" the zeropage segments to the o65 output file. This will only update
- * the relevant header fields.
- */
+** the relevant header fields.
+*/
 {
     /* Initialize variables */
     D->CurReloc = 0;
@@ -935,9 +935,9 @@ static void O65WriteExports (O65Desc* D)
         const char* Name = GetString (NameIdx);
 
         /* Get the export for this symbol. We've checked before that this
-         * export does really exist, so if it is unresolved, or if we don't
-         * find it, there is an error in the linker code.
-         */
+        ** export does really exist, so if it is unresolved, or if we don't
+        ** find it, there is an error in the linker code.
+        */
         Export* E = FindExport (NameIdx);
         if (E == 0 || IsUnresolvedExport (E)) {
             Internal ("Unresolved export `%s' found in O65WriteExports", Name);
@@ -950,8 +950,8 @@ static void O65WriteExports (O65Desc* D)
         O65ParseExpr (Expr, InitExprDesc (&ED, D), 1);
 
         /* We cannot handle expressions with imported symbols, or expressions
-         * with more than one segment reference here
-         */
+        ** with more than one segment reference here
+        */
         if (ED.ExtRef != 0 || (ED.SegRef != 0 && ED.SecRef != 0)) {
             ED.TooComplex = 1;
         }
@@ -975,8 +975,8 @@ static void O65WriteExports (O65Desc* D)
             Seg = O65FindSeg (D, ED.SegRef);
             if (Seg == 0) {
                 /* For some reason, we didn't find this segment in the list of
-                 * segments written to the o65 file.
-                 */
+                ** segments written to the o65 file.
+                */
                 Error ("Segment for symbol `%s' is undefined", Name);
             }
             SegmentID = O65SegType (Seg);
@@ -1203,8 +1203,8 @@ void O65SetExport (O65Desc* D, unsigned Ident)
 /* Set an exported identifier */
 {
     /* Get the export for this symbol and check if it does exist and is
-     * a resolved symbol.
-     */
+    ** a resolved symbol.
+    */
     Export* E = FindExport (Ident);
     if (E == 0 || IsUnresolvedExport (E)) {
         Error ("Unresolved export: `%s'", GetString (Ident));
@@ -1328,9 +1328,9 @@ static void O65UpdateHeader  (O65Desc* D)
 /* Update mode word, currently only the "simple" bit */
 {
     /* If we have byte wise relocation and an alignment of 1, and text
-     * and data are adjacent, we can set the "simple addressing" bit
-     * in the header.
-     */
+    ** and data are adjacent, we can set the "simple addressing" bit
+    ** in the header.
+    */
     if ((D->Header.Mode & MF_RELOC_MASK) == MF_RELOC_BYTE &&
         (D->Header.Mode & MF_ALIGN_MASK) == MF_ALIGN_1 &&
         D->Header.TextBase + D->Header.TextSize == D->Header.DataBase &&
@@ -1352,8 +1352,8 @@ void O65WriteTarget (O65Desc* D, File* F)
     D->Filename = GetString (F->Name);
 
     /* Check for unresolved symbols. The function O65Unresolved is called
-     * if we get an unresolved symbol.
-     */
+    ** if we get an unresolved symbol.
+    */
     D->Undef = 0;               /* Reset the counter */
     CheckUnresolvedImports (O65Unresolved, D);
     if (D->Undef > 0) {
@@ -1377,8 +1377,8 @@ void O65WriteTarget (O65Desc* D, File* F)
     Print (stdout, 1, "Opened `%s'...\n", D->Filename);
 
     /* Define some more options: A timestamp, the linker version and the
-     * filename
-     */
+    ** filename
+    */
     T = time (0);
     strcpy (OptBuf, ctime (&T));
     OptLen = strlen (OptBuf);
index 222615c4c1d239882f280e40e5ba4cc51b61da39..7e83f91070acd99bb3a9797d62d0342cea5eb265 100644 (file)
@@ -104,9 +104,9 @@ ObjData* NewObjData (void)
 
 void FreeObjData (ObjData* O)
 /* Free an ObjData object. NOTE: This function works only for unused object
- * data, that is, ObjData objects that aren't used because they aren't
- * referenced.
- */
+** data, that is, ObjData objects that aren't used because they aren't
+** referenced.
+*/
 {
     unsigned I;
 
@@ -145,8 +145,8 @@ void FreeObjData (ObjData* O)
 
 void FreeObjStrings (ObjData* O)
 /* Free the module string data. Used once the object file is loaded completely
- * when all strings are converted to global strings.
- */
+** when all strings are converted to global strings.
+*/
 {
     xfree (O->Strings);
     O->Strings = 0;
@@ -164,8 +164,8 @@ void InsertObjData (ObjData* O)
 
 void InsertObjGlobals (ObjData* O)
 /* Insert imports and exports from the object file into the global import and
- * export lists.
- */
+** export lists.
+*/
 {
     unsigned I;
 
@@ -194,8 +194,8 @@ unsigned MakeGlobalStringId (const ObjData* O, unsigned Index)
 
 const char* GetObjFileName (const ObjData* O)
 /* Get the name of the object file. Return "[linker generated]" if the object
- * file is NULL.
- */
+** file is NULL.
+*/
 {
     return O? GetString (O->Name) : "[linker generated]";
 }
index b17248b4c903bb3bb6b3821367c6d716cfbc9cad..554fe0c6bbfc302b96603f89820bef91f5429b26 100644 (file)
@@ -111,30 +111,30 @@ ObjData* NewObjData (void);
 
 void FreeObjData (ObjData* O);
 /* Free an ObjData object. NOTE: This function works only for unused object
- * data, that is, ObjData objects that aren't used because they aren't
- * referenced.
- */
+** data, that is, ObjData objects that aren't used because they aren't
+** referenced.
+*/
 
 void FreeObjStrings (ObjData* O);
 /* Free the module string data. Used once the object file is loaded completely
- * when all strings are converted to global strings.
- */
+** when all strings are converted to global strings.
+*/
 
 void InsertObjData (ObjData* O);
 /* Insert the ObjData object into the collection of used ObjData objects. */
 
 void InsertObjGlobals (ObjData* O);
 /* Insert imports and exports from the object file into the global import and
- * export lists.
- */
+** export lists.
+*/
 
 unsigned MakeGlobalStringId (const ObjData* O, unsigned Index);
 /* Convert a local string id into a global one and return it. */
 
 const char* GetObjFileName (const ObjData* O);
 /* Get the name of the object file. Return "[linker generated]" if the object
- * file is NULL.
- */
+** file is NULL.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE int ObjHasFiles (const ObjData* O)
index ac5e76a7ccd00a884c571d0904451f6152c9f0f9..870ca5221fe91f1e8988ad09e9e12d728fed3f52 100644 (file)
@@ -342,14 +342,14 @@ void ObjAdd (FILE* Obj, const char* Name)
     ObjReadAssertions (Obj, O->Header.AssertOffs, O);
 
     /* Read the segment list from the object file. This must be late, since
-     * the expressions stored in the code may reference segments or imported
-     * symbols.
-     */
+    ** the expressions stored in the code may reference segments or imported
+    ** symbols.
+    */
     ObjReadSections (Obj, O->Header.SegOffs, O);
 
     /* Read the scope table from the object file. Scopes reference segments, so
-     * we must read them after the sections.
-     */
+    ** we must read them after the sections.
+    */
     ObjReadScopes (Obj, O->Header.ScopeOffs, O);
 
     /* Read the spans from the object file */
@@ -368,7 +368,7 @@ void ObjAdd (FILE* Obj, const char* Name)
     InsertObjData (O);
 
     /* All references to strings are now resolved, so we can delete the module
-     * string pool.
-     */
+    ** string pool.
+    */
     FreeObjStrings (O);
 }
index 0f9a97c69c5eafcf013f89bd209b35a18bf4f7a1..006ccfceb1014337c280b5eb869d8efaf07d9c7c 100644 (file)
@@ -166,12 +166,12 @@ extern StrBuf           CfgSVal;
 extern unsigned long    CfgIVal;
 
 /* Error location. PLEASE NOTE: I'm abusing the FilePos structure to some
- * degree. It is used mostly to hold a file position, where the Name member
- * is an index into the source file table of an object file. As used in config
- * file processing, the Name member is a string pool index instead. This is
- * distinguished by the object file pointer being NULL or not in the structs
- * where this is relevant.
- */
+** degree. It is used mostly to hold a file position, where the Name member
+** is an index into the source file table of an object file. As used in config
+** file processing, the Name member is a string pool index instead. This is
+** distinguished by the object file pointer being NULL or not in the structs
+** where this is relevant.
+*/
 extern FilePos          CfgErrorPos;
 
 
index 829435e4cc53ad767b139f054afdee67a627d255..9c3972ac546a187e3dbef126eee7120da793f1a8 100644 (file)
@@ -124,16 +124,16 @@ static Segment* NewSegment (unsigned Name, unsigned char AddrSize)
 
 Segment* GetSegment (unsigned Name, unsigned char AddrSize, const char* ObjName)
 /* Search for a segment and return an existing one. If the segment does not
- * exist, create a new one and return that. ObjName is only used for the error
- * message and may be NULL if the segment is linker generated.
- */
+** exist, create a new one and return that. ObjName is only used for the error
+** message and may be NULL if the segment is linker generated.
+*/
 {
     /* Try to locate the segment in the table */
     Segment* S = SegFind (Name);
 
     /* If we don't have that segment already, allocate it using the type of
-     * the first section.
-     */
+    ** the first section.
+    */
     if (S == 0) {
         /* Create a new segment */
         S = NewSegment (Name, AddrSize);
@@ -308,8 +308,8 @@ Segment* SegFind (unsigned Name)
 
 int IsBSSType (Segment* S)
 /* Check if the given segment is a BSS style segment, that is, it does not
- * contain non-zero data.
- */
+** contain non-zero data.
+*/
 {
     /* Loop over all sections */
     unsigned I;
@@ -405,8 +405,8 @@ void SegDump (void)
 
 unsigned SegWriteConstExpr (FILE* F, ExprNode* E, int Signed, unsigned Size)
 /* Write a supposedly constant expression to the target file. Do a range
- * check and return one of the SEG_EXPR_xxx codes.
- */
+** check and return one of the SEG_EXPR_xxx codes.
+*/
 {
     static const unsigned long U_Hi[4] = {
         0x000000FFUL, 0x0000FFFFUL, 0x00FFFFFFUL, 0xFFFFFFFFUL
@@ -449,8 +449,8 @@ unsigned SegWriteConstExpr (FILE* F, ExprNode* E, int Signed, unsigned Size)
 
 void SegWrite (const char* TgtName, FILE* Tgt, Segment* S, SegWriteFunc F, void* Data)
 /* Write the data from the given segment to a file. For expressions, F is
- * called (see description of SegWriteFunc above).
- */
+** called (see description of SegWriteFunc above).
+*/
 {
     unsigned      I;
     int           Sign;
@@ -472,9 +472,9 @@ void SegWrite (const char* TgtName, FILE* Tgt, Segment* S, SegWriteFunc F, void*
         Print (stdout, 2, "      Section from \"%s\"\n", GetObjFileName (Sec->Obj));
 
         /* If we have fill bytes, write them now. Beware: If this is the
-         * first section, the fill value is not considered part of the segment
-         * and therefore taken from the memory area.
-         */
+        ** first section, the fill value is not considered part of the segment
+        ** and therefore taken from the memory area.
+        */
         FillVal = (I == 0)? S->MemArea->FillVal : S->FillVal;
         Print (stdout, 2, "        Filling 0x%lx bytes with 0x%02x\n",
                Sec->Fill, FillVal);
@@ -646,8 +646,8 @@ void PrintDbgSegments (FILE* F)
 
 void CheckSegments (void)
 /* Walk through the segment list and check if there are segments that were
- * not written to the output file. Output an error if this is the case.
- */
+** not written to the output file. Output an error if this is the case.
+*/
 {
     unsigned I;
     for (I = 0; I < CollCount (&SegmentList); ++I) {
index 5362c8744fa528f7de7132f7280c09b63c687d26..dc1e61d7debcd49d4973f0bd22a0bf11564b4c15 100644 (file)
@@ -95,8 +95,8 @@ struct Section {
 
 
 /* Prototype for a function that is used to write expressions to the target
- * file (used in SegWrite). It returns one of the following values:
- */
+** file (used in SegWrite). It returns one of the following values:
+*/
 #define SEG_EXPR_OK             0U      /* Ok */
 #define SEG_EXPR_RANGE_ERROR    1U      /* Range error */
 #define SEG_EXPR_TOO_COMPLEX    2U      /* Expression too complex */
@@ -118,9 +118,9 @@ typedef unsigned (*SegWriteFunc) (ExprNode* E,        /* The expression to write
 
 Segment* GetSegment (unsigned Name, unsigned char AddrSize, const char* ObjName);
 /* Search for a segment and return an existing one. If the segment does not
- * exist, create a new one and return that. ObjName is only used for the error
- * message and may be NULL if the segment is linker generated.
- */
+** exist, create a new one and return that. ObjName is only used for the error
+** message and may be NULL if the segment is linker generated.
+*/
 
 Section* NewSection (Segment* Seg, unsigned long Alignment, unsigned char AddrSize);
 /* Create a new section for the given segment */
@@ -133,21 +133,21 @@ Segment* SegFind (unsigned Name);
 
 int IsBSSType (Segment* S);
 /* Check if the given segment is a BSS style segment, that is, it does not
- * contain non-zero data.
- */
+** contain non-zero data.
+*/
 
 void SegDump (void);
 /* Dump the segments and it's contents */
 
 unsigned SegWriteConstExpr (FILE* F, ExprNode* E, int Signed, unsigned Size);
 /* Write a supposedly constant expression to the target file. Do a range
- * check and return one of the SEG_EXPR_xxx codes.
- */
+** check and return one of the SEG_EXPR_xxx codes.
+*/
 
 void SegWrite (const char* TgtName, FILE* Tgt, Segment* S, SegWriteFunc F, void* Data);
 /* Write the data from the given segment to a file. For expressions, F is
- * called (see description of SegWriteFunc above).
- */
+** called (see description of SegWriteFunc above).
+*/
 
 unsigned SegmentCount (void);
 /* Return the total number of segments */
@@ -160,8 +160,8 @@ void PrintDbgSegments (FILE* F);
 
 void CheckSegments (void);
 /* Walk through the segment list and check if there are segments that were
- * not written to the output file. Output an error if this is the case.
- */
+** not written to the output file. Output an error if this is the case.
+*/
 
 
 
index 9ff1a8ec83a6d23cf00c4c0bbda941ebc0a5f34f..498ab762ada2e9cac0729cb4af36841a70f5b971 100644 (file)
@@ -111,9 +111,9 @@ Span* ReadSpan (FILE* F, ObjData* O, unsigned Id)
 
 unsigned* ReadSpanList (FILE* F)
 /* Read a list of span ids from a file. The list is returned as an array of
- * unsigneds, the first being the number of spans (never zero) followed by
- * the span ids. If the number of spans is zero, NULL is returned.
- */
+** unsigneds, the first being the number of spans (never zero) followed by
+** the span ids. If the number of spans is zero, NULL is returned.
+*/
 {
     unsigned* Spans;
 
@@ -187,9 +187,9 @@ unsigned SpanCount (void)
 
 void PrintDbgSpanList (FILE* F, const ObjData* O, const unsigned* List)
 /* Output a string ",span=x[+y...]" for the given list. If the list is empty
- * or NULL, output nothing. This is a helper function for other modules to
- * print a list of spans read by ReadSpanList to the debug info file.
- */
+** or NULL, output nothing. This is a helper function for other modules to
+** print a list of spans read by ReadSpanList to the debug info file.
+*/
 {
     if (List && *List) {
         unsigned I;
index ccdc6799debf87a0fcb5bd171abc440fcb4f40f0..67ac84e4307f46f36f5b4258bd8e1d8e8330b5aa 100644 (file)
@@ -78,9 +78,9 @@ Span* ReadSpan (FILE* F, struct ObjData* O, unsigned Id);
 
 unsigned* ReadSpanList (FILE* F);
 /* Read a list of span ids from a file. The list is returned as an array of
- * unsigneds, the first being the number of spans (never zero) followed by
- * the span ids. If the number of spans is zero, NULL is returned.
- */
+** unsigneds, the first being the number of spans (never zero) followed by
+** the span ids. If the number of spans is zero, NULL is returned.
+*/
 
 unsigned* DupSpanList (const unsigned* S);
 /* Duplicate a span list */
@@ -93,9 +93,9 @@ unsigned SpanCount (void);
 
 void PrintDbgSpanList (FILE* F, const struct ObjData* O, const unsigned* List);
 /* Output a string ",span=x[+y...]" for the given list. If the list is empty
- * or NULL, output nothing. This is a helper function for other modules to
- * print a list of spans read by ReadSpanList to the debug info file.
- */
+** or NULL, output nothing. This is a helper function for other modules to
+** print a list of spans read by ReadSpanList to the debug info file.
+*/
 
 void PrintDbgSpans (FILE* F);
 /* Output the spans to a debug info file */
index fdd2f1c67a4550bd9d9bee476cd7e6a2e09e9cd8..2b4f1ad45eebc972483fc56294b93b3d6a1a2d54 100644 (file)
@@ -61,7 +61,7 @@ void InitStrPool (void)
     StrPool = NewStringPool (1103);
 
     /* We insert a first string here, which will have id zero. This means
-     * that we can treat index zero later as invalid.
-     */
+    ** that we can treat index zero later as invalid.
+    */
     SP_AddStr (StrPool, "<invalid message #0>");
 }
index c02f9a84fbf472747e871de903e2dc14ceb57c0c..2f538fe1dddbd163fef8437cf3569a6591c65cf6 100644 (file)
@@ -64,8 +64,8 @@
 
 static void DestroyStrPool (Collection* C)
 /* Free all strings in the given pool plus the item pointers. Note: The
- * collection may not be reused later.
- */
+** collection may not be reused later.
+*/
 {
     unsigned I;
     for (I = 0; I < CollCount (C); ++I) {
@@ -78,9 +78,9 @@ static void DestroyStrPool (Collection* C)
 
 static const char* GetString (const Collection* C, unsigned Index)
 /* Get a string from a collection. In fact, this function calls CollConstAt,
- * but will print a somewhat more readable error message if the index is out
- * of bounds.
- */
+** but will print a somewhat more readable error message if the index is out
+** of bounds.
+*/
 {
     if (Index >= CollCount (C)) {
         Error ("Invalid string index (%u) - file corrupt!", Index);
@@ -401,8 +401,8 @@ void DumpObjOptions (FILE* F, unsigned long Offset)
 
             default:
                 /* Unknown argument type. This means that we cannot determine
-                 * the option length, so we cannot proceed.
-                 */
+                ** the option length, so we cannot proceed.
+                */
                 Error ("Unknown option type: 0x%02X", Type);
                 break;
         }
index cc27b88acc4e2bc6b45361d64ca4afc426bbfb06..a8d31c7306ae595624b4f5c0737f09ec2d07db2a 100644 (file)
@@ -137,8 +137,8 @@ unsigned long ReadVar (FILE* F)
 /* Read a variable size value from the file */
 {
     /* The value was written to the file in 7 bit chunks LSB first. If there
-     * are more bytes, bit 8 is set, otherwise it is clear.
-     */
+    ** are more bytes, bit 8 is set, otherwise it is clear.
+    */
     unsigned char C;
     unsigned long V = 0;
     unsigned Shift = 0;
index 2a43e40dc2513a8568f32fa4545a689a817efcf0..312eb2fe1e3cf8d717ed06a8290c5b4d93bca851 100644 (file)
@@ -85,8 +85,8 @@ static unsigned HaveIRQRequest;
 #define GET_SF()        ((Regs.SR & SF) != 0)
 
 /* Set the flags. The parameter is a boolean flag that says if the flag should be
- * set or reset.
- */
+** set or reset.
+*/
 #define SET_CF(f)       do { if (f) { Regs.SR |= CF; } else { Regs.SR &= ~CF; } } while (0)
 #define SET_ZF(f)       do { if (f) { Regs.SR |= ZF; } else { Regs.SR &= ~ZF; } } while (0)
 #define SET_IF(f)       do { if (f) { Regs.SR |= IF; } else { Regs.SR &= ~IF; } } while (0)
@@ -96,8 +96,8 @@ static unsigned HaveIRQRequest;
 #define SET_SF(f)       do { if (f) { Regs.SR |= SF; } else { Regs.SR &= ~SF; } } while (0)
 
 /* Special test and set macros. The meaning of the parameter depends on the
- * actual flag that should be set or reset.
- */
+** actual flag that should be set or reset.
+*/
 #define TEST_ZF(v)      SET_ZF (((v) & 0xFF) == 0)
 #define TEST_SF(v)      SET_SF (((v) & 0x80) != 0)
 #define TEST_CF(v)      SET_CF (((v) & 0xFF00) != 0)
index 6a640fae1d6fafa3eba3564cd73d101d2b6858d0..2cf2d4f1ecd6e242f191f99a6f104ade9315d664 100644 (file)
@@ -93,8 +93,8 @@ void NMIRequest (void);
 
 unsigned ExecuteInsn (void);
 /* Execute one CPU instruction. Return the number of clock cycles for the
- * executed instruction.
- */
+** executed instruction.
+*/
 
 unsigned long GetCycles (void);
 /* Return the total number of clock cycles executed */
index 42f4f7be71d695e682656091efc55ee9628be019..305b26a730949e2658aef5bb5a40bd5ff812afe4 100644 (file)
@@ -83,9 +83,9 @@ unsigned MemReadWord (unsigned Addr)
 
 unsigned MemReadZPWord (unsigned char Addr)
 /* Read a word from the zero page. This function differs from ReadMemW in that
- * the read will always be in the zero page, even in case of an address
- * overflow.
- */
+** the read will always be in the zero page, even in case of an address
+** overflow.
+*/
 {
     unsigned W = MemReadByte (Addr++);
     return (W | (MemReadByte (Addr) << 8));
index 06da818de6eba6d8fb9f6a317c5bc33d1334e2dc..5de3a2bb88059df7e9e74cf90311c77648023dcc 100644 (file)
@@ -55,9 +55,9 @@ unsigned MemReadWord (unsigned Addr);
 
 unsigned MemReadZPWord (unsigned char Addr);
 /* Read a word from the zero page. This function differs from ReadMemW in that
- * the read will always be in the zero page, even in case of an address
- * overflow.
- */
+** the read will always be in the zero page, even in case of an address
+** overflow.
+*/
 
 void MemInit (void);
 /* Initialize the memory subsystem */
index 5de17ee26a2733c60760a12f4ef012e07e78c4a6..db026af48a623863b56a7e9e8a8b5bfd770fb4cc 100644 (file)
@@ -96,10 +96,10 @@ void DumpAttrColl (const Collection* C)
 
 int FindAttr (const Collection* C, const char* Name, unsigned* Index)
 /* Search for an attribute with the given name in the collection. If it is
- * found, the function returns true and Index contains the index of the
- * entry. If Name isn't found, the function returns false and Index
- * will contain the insert position.
- */
+** found, the function returns true and Index contains the index of the
+** entry. If Name isn't found, the function returns false and Index
+** will contain the insert position.
+*/
 {
     /* Do a binary search */
     int Lo = 0;
@@ -136,8 +136,8 @@ int FindAttr (const Collection* C, const char* Name, unsigned* Index)
 
 const Attr* GetAttr (const Collection* C, const char* Name)
 /* Search for an attribute with the given name and return it. The function
- * returns NULL if the attribute wasn't found.
- */
+** returns NULL if the attribute wasn't found.
+*/
 {
     /* Search for the attribute and return it */
     unsigned Index;
@@ -153,9 +153,9 @@ const Attr* GetAttr (const Collection* C, const char* Name)
 
 const Attr* NeedAttr (const Collection* C, const char* Name, const char* Op)
 /* Search for an attribute with the given name and return it. If the attribute
- * is not found, the function terminates with an error using Op as additional
- * context in the error message.
- */
+** is not found, the function terminates with an error using Op as additional
+** context in the error message.
+*/
 {
     /* Search for the attribute and return it */
     unsigned Index;
@@ -169,8 +169,8 @@ const Attr* NeedAttr (const Collection* C, const char* Name, const char* Op)
 
 const char* GetAttrVal (const Collection* C, const char* Name)
 /* Search for an attribute with the given name and return its value. The
- * function returns NULL if the attribute wasn't found.
- */
+** function returns NULL if the attribute wasn't found.
+*/
 {
     const Attr* A = GetAttr (C, Name);
     return (A == 0)? 0 : A->Value;
@@ -180,9 +180,9 @@ const char* GetAttrVal (const Collection* C, const char* Name)
 
 const char* NeedAttrVal (const Collection* C, const char* Name, const char* Op)
 /* Search for an attribute with the given name and return its value. If the
- * attribute wasn't not found, the function terminates with an error using
- * Op as additional context in the error message.
- */
+** attribute wasn't not found, the function terminates with an error using
+** Op as additional context in the error message.
+*/
 {
     const Attr* A = NeedAttr (C, Name, Op);
     return (A == 0)? 0 : A->Value;
@@ -197,8 +197,8 @@ void AddAttr (Collection* C, const char* Name, const char* Value)
     Attr* A = NewAttr (Name, Value);
 
     /* Search for the attribute. If it is there, we have a duplicate, otherwise
-     * we have the insert position.
-     */
+    ** we have the insert position.
+    */
     unsigned Index;
     if (FindAttr (C, Name, &Index)) {
         Error ("Duplicate command line attribute `%s'", Name);
@@ -212,9 +212,9 @@ void AddAttr (Collection* C, const char* Name, const char* Value)
 
 void SplitAddAttr (Collection* C, const char* Combined, const char* Name)
 /* Split a combined name/value pair and add it as an attribute to C. Some
- * attributes may not need a name. If the name is missing, use Name. If
- * Name is NULL, terminate with an error.
- */
+** attributes may not need a name. If the name is missing, use Name. If
+** Name is NULL, terminate with an error.
+*/
 {
     /* Name and value are separated by an equal sign */
     const char* Pos = strchr (Combined, '=');
@@ -242,10 +242,10 @@ void SplitAddAttr (Collection* C, const char* Combined, const char* Name)
 
 Collection* ParseAttrList (const char* List, const char** NameList, unsigned NameCount)
 /* Parse a list containing name/value pairs into a sorted collection. Some
- * attributes may not need a name, so NameList contains these names. If there
- * were no errors, the function returns a alphabetically sorted collection
- * containing Attr entries.
- */
+** attributes may not need a name, so NameList contains these names. If there
+** were no errors, the function returns a alphabetically sorted collection
+** containing Attr entries.
+*/
 {
     const char* Name;
 
index 2658aa077ed85cd79daadd1064ac6cb7926f4962..2b7ce68b9a995b75dcc11e3e14e754fe68f7b413 100644 (file)
@@ -75,48 +75,48 @@ void DumpAttrColl (const Collection* C);
 
 int FindAttr (const Collection* C, const char* Name, unsigned* Index);
 /* Search for an attribute with the given name in the collection. If it is
- * found, the function returns true and Index contains the index of the
- * entry. If Name isn't found, the function returns false and Index
- * will contain the insert position.
- */
+** found, the function returns true and Index contains the index of the
+** entry. If Name isn't found, the function returns false and Index
+** will contain the insert position.
+*/
 
 const Attr* GetAttr (const Collection* C, const char* Name);
 /* Search for an attribute with the given name and return it. The function
- * returns NULL if the attribute wasn't found.
- */
+** returns NULL if the attribute wasn't found.
+*/
 
 const Attr* NeedAttr (const Collection* C, const char* Name, const char* Op);
 /* Search for an attribute with the given name and return it. If the attribute
- * is not found, the function terminates with an error using Op as additional
- * context in the error message.
- */
+** is not found, the function terminates with an error using Op as additional
+** context in the error message.
+*/
 
 const char* GetAttrVal (const Collection* C, const char* Name);
 /* Search for an attribute with the given name and return its value. The
- * function returns NULL if the attribute wasn't found.
- */
+** function returns NULL if the attribute wasn't found.
+*/
 
 const char* NeedAttrVal (const Collection* C, const char* Name, const char* Op);
 /* Search for an attribute with the given name and return its value. If the
- * attribute wasn't not found, the function terminates with an error using
- * Op as additional context in the error message.
- */
+** attribute wasn't not found, the function terminates with an error using
+** Op as additional context in the error message.
+*/
 
 void AddAttr (Collection* C, const char* Name, const char* Value);
 /* Add an attribute to an alphabetically sorted attribute collection */
 
 void SplitAddAttr (Collection* C, const char* Combined, const char* Name);
 /* Split a combined name/value pair and add it as an attribute to C. Some
- * attributes may not need a name. If the name is missing, use Name. If
- * Name is NULL, terminate with an error.
- */
+** attributes may not need a name. If the name is missing, use Name. If
+** Name is NULL, terminate with an error.
+*/
 
 Collection* ParseAttrList (const char* List, const char** NameList, unsigned NameCount);
 /* Parse a list containing name/value pairs into a sorted collection. Some
- * attributes may not need a name, so NameList contains these names. If there
- * were no errors, the function returns a alphabetically sorted collection
- * containing Attr entries.
- */
+** attributes may not need a name, so NameList contains these names. If there
+** were no errors, the function returns a alphabetically sorted collection
+** containing Attr entries.
+*/
 
 void FreeAttrList (Collection* C);
 /* Free a list of attributes */
index 48768b466f7530a8b4ace85fc233f6e0842172f1..fdf7ddee06e0137d404f7fdf4a3450614cef82a0 100644 (file)
@@ -69,10 +69,10 @@ void WriteBinFile (const StrBuf* Data, const Collection* A,
     }
 
     /* Write to the file. We will use fwrite here instead of the fileio
-     * module, since it's just one call, so the latter doesn't have any
-     * advantages, and we can output a more readable error message in case of
-     * problems.
-     */
+    ** module, since it's just one call, so the latter doesn't have any
+    ** advantages, and we can output a more readable error message in case of
+    ** problems.
+    */
     Size = SB_GetLen (Data);
     if (fwrite (SB_GetConstBuf (Data), 1, Size, F) != Size) {
         Error ("Error writing to output file `%s': %s", Name, strerror (errno));
index b67e329df2ef45de488762973a9c7014351d45ff..4536fb819b1c3770780064eebf2e9904abf82919 100644 (file)
@@ -104,9 +104,9 @@ int ValidBitmapSize (unsigned Width, unsigned Height)
 Bitmap* SliceBitmap (const Bitmap* O, unsigned OrigX, unsigned OrigY,
                      unsigned Width, unsigned Height)
 /* Create a slice of the given bitmap. The slice starts at position X/Y of
- * the original and has the given width and height. Location 0/0 is at the
- * upper left corner.
- */
+** the original and has the given width and height. Location 0/0 is at the
+** upper left corner.
+*/
 {
     Bitmap*  B;
     unsigned Y;
@@ -140,15 +140,15 @@ Bitmap* SliceBitmap (const Bitmap* O, unsigned OrigX, unsigned OrigY,
 
 Color GetPixelColor (const Bitmap* B, unsigned X, unsigned Y)
 /* Get the color for a given pixel. For indexed bitmaps, the palette entry
- * is returned.
- */
+** is returned.
+*/
 {
     /* Get the pixel at the given coordinates */
     Pixel P = GetPixel (B, X, Y);
 
     /* If the bitmap has a palette, return the color from the palette. For
-     * simplicity, we will only check the palette, not the type.
-     */
+    ** simplicity, we will only check the palette, not the type.
+    */
     if (B->Pal) {
         if (P.Index >= B->Pal->Count) {
             /* Palette index is invalid */
@@ -166,8 +166,8 @@ Color GetPixelColor (const Bitmap* B, unsigned X, unsigned Y)
 
 Pixel GetPixel (const Bitmap* B, unsigned X, unsigned Y)
 /* Return a pixel from the bitmap. The returned value may either be a color
- * or a palette index, depending on the type of the bitmap.
- */
+** or a palette index, depending on the type of the bitmap.
+*/
 {
     /* Check the coordinates */
     PRECONDITION (X < B->Width && Y < B->Height);
index e63a7570c9aad90b1c425838945ddc21fb146034..bf5e60559a7f2a73be24f75c1c5bbfd8cabb3791 100644 (file)
@@ -65,10 +65,10 @@ typedef struct Bitmap Bitmap;
 struct Bitmap {
 
     /* Name of the bitmap. This is used for error messages and should be
-     * something that allows the user to identify which bitmap the message
-     * refers to. For bitmaps loaded from a file, using the file name is
-     * a good idea.
-     */
+    ** something that allows the user to identify which bitmap the message
+    ** refers to. For bitmaps loaded from a file, using the file name is
+    ** a good idea.
+    */
     StrBuf      Name;
 
     /* Size of the bitmap */
@@ -103,19 +103,19 @@ Bitmap* SliceBitmap (const Bitmap* Original,
                      unsigned X, unsigned Y,
                      unsigned Width, unsigned Height);
 /* Create a slice of the given bitmap. The slice starts at position X/Y of
- * the original and has the given width and height. Location 0/0 is at the
- * upper left corner.
- */
+** the original and has the given width and height. Location 0/0 is at the
+** upper left corner.
+*/
 
 Color GetPixelColor (const Bitmap* B, unsigned X, unsigned Y);
 /* Get the color for a given pixel. For indexed bitmaps, the palette entry
- * is returned.
- */
+** is returned.
+*/
 
 Pixel GetPixel (const Bitmap* B, unsigned X, unsigned Y);
 /* Return a pixel from the bitmap. The returned value may either be a color
- * or a palette index, depending on the type of the bitmap.
- */
+** or a palette index, depending on the type of the bitmap.
+*/
 
 #if defined(HAVE_INLINE)
 INLINE int BitmapIsIndexed (const Bitmap* B)
@@ -170,8 +170,8 @@ INLINE const StrBuf* GetBitmapName (const Bitmap* B)
 #if defined(HAVE_INLINE)
 INLINE unsigned GetBitmapColors (const Bitmap* B)
 /* Get the number of colors in an image. The function will return the number
- * of palette entries for indexed bitmaps and 2^24 for non indexed bitmaps.
- */
+** of palette entries for indexed bitmaps and 2^24 for non indexed bitmaps.
+*/
 {
     return B->Pal? B->Pal->Count : (1U << 24);
 }
index 0f86bec53fdea8016fb614b7f2aed52b8188d60a..d4d6ee00bf0abac83c4268e66f754faa37bb8129 100644 (file)
@@ -157,9 +157,9 @@ void WriteCFile (const StrBuf* Data, const Collection* A, const Bitmap* B)
     /* Write a readable header */
     fprintf (F,
              "/*\n"
-             " * This file was generated by %s %s from\n"
-             " * %.*s (%ux%u, %u colors%s)\n"
-             " */\n"
+             "** This file was generated by %s %s from\n"
+             "** %.*s (%ux%u, %u colors%s)\n"
+             "*/\n"
              "\n",
              ProgName,
              GetVersionAsString (),
@@ -169,8 +169,8 @@ void WriteCFile (const StrBuf* Data, const Collection* A, const Bitmap* B)
              BitmapIsIndexed (B)? ", indexed" : "");
 
     /* If an identifier was given, output #defines for width, height, the
-     * number of colors and declare a variable for the data.
-     */
+    ** number of colors and declare a variable for the data.
+    */
     if (Ident) {
         fprintf (F,
                  "#define %s_COLORS       %u\n"
index 25e453eb7f6d6c8a6a52dfc71821c2f720fbf970..45b40f1efd7a76a280a4b42ade6f7ca8754af570 100644 (file)
@@ -89,10 +89,10 @@ static int Compare (const void* Key, const void* MapEntry)
 
 StrBuf* ConvertTo (const Bitmap* B, const Collection* A)
 /* Convert the bitmap B into some sort of other binary format. The output is
- * stored in a string buffer (which is actually a dynamic char array) and
- * returned. The actual output format is taken from the "format" attribute
- * in the attribute collection A.
- */
+** stored in a string buffer (which is actually a dynamic char array) and
+** returned. The actual output format is taken from the "format" attribute
+** in the attribute collection A.
+*/
 {
     const ConverterMapEntry* E;
 
index 4e6f7b9f600eeb3cf4e5548a54c75d80aad4d0d8..3ebb23dc22f52e14e69b1b266112b77422b86bca 100644 (file)
 
 StrBuf* ConvertTo (const Bitmap* B, const Collection* A);
 /* Convert the bitmap B into some sort of other binary format. The output is
- * stored in a string buffer (which is actually a dynamic char array) and
- * returned. The actual output format is taken from the "format" attribute
- * in the attribute collection A.
- */
+** stored in a string buffer (which is actually a dynamic char array) and
+** returned. The actual output format is taken from the "format" attribute
+** in the attribute collection A.
+*/
 
 void ListConversionTargets (FILE* F);
 /* Output a list of conversion targets */
index 05984cbdf5513c47b563df0242eb04ed6e887853..201d0aca173bec9b1a39eeb9e509e440d1cbd0b5 100644 (file)
@@ -76,15 +76,15 @@ struct RLE {
 
 static void StoreByte (struct RLE* RLE)
 /* Store a unique byte or a run of repeated bytes. If count is zero, the
- * function will flush the internal buffers, so that all data is in RLE->D.
- */
+** function will flush the internal buffers, so that all data is in RLE->D.
+*/
 {
 
 
     if (RLE->Count == 1 || RLE->Count == 2) {
         /* A run of two identical bytes is treated as two unique bytes, since
-         * this will usually merge with the following run.
-         */
+        ** this will usually merge with the following run.
+        */
         SB_AppendChar (&RLE->UniqueData, RLE->LastVal);
         if (RLE->Count == 2) {
             SB_AppendChar (&RLE->UniqueData, RLE->LastVal);
@@ -96,8 +96,8 @@ static void StoreByte (struct RLE* RLE)
     } else {
 
         /* Run of repeated bytes. First flush the temp buffer for unique
-         * bytes.
-         */
+        ** bytes.
+        */
         const char* Buf = SB_GetConstBuf (&RLE->UniqueData);
         unsigned Count  = SB_GetLen (&RLE->UniqueData);
         while (Count) {
@@ -142,9 +142,9 @@ static void StoreByte (struct RLE* RLE)
 
 StrBuf* GenGeosBitmap (const Bitmap* B, const Collection* A attribute ((unused)))
 /* Generate binary output in GEOS compacted bitmap format for the bitmap B.
- * The output is stored in a string buffer (which is actually a dynamic char
- * array) and returned.
- */
+** The output is stored in a string buffer (which is actually a dynamic char
+** array) and returned.
+*/
 {
     unsigned        LineWidth;
     unsigned char*  Buf;
@@ -192,8 +192,8 @@ StrBuf* GenGeosBitmap (const Bitmap* B, const Collection* A attribute ((unused))
     SB_Realloc (D, 64);
 
     /* Compact the image. We're currently using only REPEAT and UNIQUE opcodes.
-     * BIGCOUNT is rather difficult to apply.
-     */
+    ** BIGCOUNT is rather difficult to apply.
+    */
     RLE.Buf        = Buf;
     RLE.Remaining  = LineWidth * GetBitmapHeight (B) - 1;
     RLE.LastVal    = *RLE.Buf++;
index 87fccf6667eb40fc154f277b2b02620943a2f0bc..75903022417f09dad3aaf9fe4585083e882b5168 100644 (file)
@@ -55,9 +55,9 @@
 
 StrBuf* GenGeosBitmap (const Bitmap* B, const Collection* A);
 /* Generate binary output in GEOS compacted bitmap format for the bitmap B. 
- * The output is stored in a string buffer (which is actually a dynamic char 
- * array) and returned.
- */
+** The output is stored in a string buffer (which is actually a dynamic char 
+** array) and returned.
+*/
 
 
 
index a735c89fe4cf0536cd80eead832fdfe7c6797188..bc4072b0e6a07085897441aba01aed06b9c14cf6 100644 (file)
@@ -64,9 +64,9 @@
 
 StrBuf* GenGeosIcon (const Bitmap* B, const Collection* A attribute ((unused)))
 /* Generate binary output in GEOS icon format for the bitmap B. The output
- * is stored in a string buffer (which is actually a dynamic char array) and
- * returned.
- */
+** is stored in a string buffer (which is actually a dynamic char array) and
+** returned.
+*/
 {
     StrBuf* D;
     unsigned X, Y;
index 8b1351db797eef95f7e764b9d3e8983afa4be789..545aab1ac13e52c0213e92049b2d29ecc4830114 100644 (file)
@@ -55,9 +55,9 @@
 
 StrBuf* GenGeosIcon (const Bitmap* B, const Collection* A);
 /* Generate binary output in GEOS icon format for the bitmap B. The output
- * is stored in a string buffer (which is actually a dynamic char array) and
- * returned.
- */
+** is stored in a string buffer (which is actually a dynamic char array) and
+** returned.
+*/
 
 
 
index 37514886d03081e9a795afd592db452816f9c475..381adf6b98bc733896fff91bfa89511ce428efd9 100644 (file)
@@ -87,9 +87,9 @@ static const FileId FormatTable[] = {
 
 Bitmap* ReadInputFile (const Collection* A)
 /* Read a bitmap from a file and return it. Format, file name etc. must be
- * given as attributes in A. If no format is given, the function tries to
- * autodetect it by using the extension of the file name.
- */
+** given as attributes in A. If no format is given, the function tries to
+** autodetect it by using the extension of the file name.
+*/
 {
     const FileId* F;
 
index f4f4c6ea365050e68dd48c28c8ca8800a05812e9..60581cfe8bd1e4ce7ba5cee50cbffb91a9e15f55 100644 (file)
@@ -54,9 +54,9 @@
 
 Bitmap* ReadInputFile (const Collection* A);
 /* Read a bitmap from a file and return it. Format, file name etc. must be
- * given as attributes in A. If no format is given, the function tries to
- * autodetect it by using the extension of the file name.
- */
+** given as attributes in A. If no format is given, the function tries to
+** autodetect it by using the extension of the file name.
+*/
 
 
 
index 3f0875e813a7bf5779fc633e3ccd8249ad020146..e2122c781077a158c16690dd8d8f6987ec170a3d 100644 (file)
@@ -62,9 +62,9 @@
 
 StrBuf* GenKoala (const Bitmap* B, const Collection* A attribute ((unused)))
 /* Generate binary output in koala format for the bitmap B. The output is
- * stored in a string buffer (which is actually a dynamic char array) and
- * returned.
- */
+** stored in a string buffer (which is actually a dynamic char array) and
+** returned.
+*/
 {
     StrBuf* D;
     unsigned char Screen[160][200];
index b2bd353756e6b53a05e4334882e7bc31b8e711d7..5114bee65999ec5b7145dd0da24f70bde6c65511 100644 (file)
@@ -55,9 +55,9 @@
 
 StrBuf* GenKoala (const Bitmap* B, const Collection* A);
 /* Generate binary output in koala format for the bitmap B. The output is
- * stored in a string buffer (which is actually a dynamic char array) and
- * returned.
- */
+** stored in a string buffer (which is actually a dynamic char array) and
+** returned.
+*/
 
 
 
index 2cce35ff38edb5b028e23f8f85a2bf28ed3384dd..e4afc7773eb112978a6662b9fbacd0bd444d6e77 100644 (file)
@@ -235,22 +235,22 @@ static void WriteOutBuffer(StrBuf *D)
 static void encodeSprite(StrBuf *D, enum Mode M, char ColorBits, char ColorMask, char LineBuffer[512],
     int len, int LastOpaquePixel) {
 /*
- * The data starts with a byte count. It tells the number of bytes on this
- * line + 1.
- * Special case is a count of 1. It will change to next quadrant.
- * Other special case is 0. It will end the sprite.
- *
- * Ordinary data packet. These are bits in a stream.
- * 1=literal 0=packed
- * 4 bit count (+1)
- * for literal you put "count" values
- * for packed you repeat the value "count" times
- * Never use packed mode for one pixel
- * If the last bit on a line is 1 you need to add a byte of zeroes
- * A sequence 00000 ends a scan line
- *
- * All data is high nybble first
- */
+** The data starts with a byte count. It tells the number of bytes on this
+** line + 1.
+** Special case is a count of 1. It will change to next quadrant.
+** Other special case is 0. It will end the sprite.
+**
+** Ordinary data packet. These are bits in a stream.
+** 1=literal 0=packed
+** 4 bit count (+1)
+** for literal you put "count" values
+** for packed you repeat the value "count" times
+** Never use packed mode for one pixel
+** If the last bit on a line is 1 you need to add a byte of zeroes
+** A sequence 00000 ends a scan line
+**
+** All data is high nybble first
+*/
     unsigned char V = 0;
     signed i;
     signed count;
@@ -369,17 +369,17 @@ static void encodeSprite(StrBuf *D, enum Mode M, char ColorBits, char ColorMask,
 
 StrBuf* GenLynxSprite (const Bitmap* B, const Collection* A)
 /* Generate binary output in Lynx sprite format for the bitmap B. The output
- * is stored in a string buffer (which is actually a dynamic char array) and
- * returned.
- *
- * The Lynx will draw 4 quadrants:
- * - Down right
- * - Up right
- * - Up left
- * - Down left
- *
- * The sprite will end with a byte 0.
- */
+** is stored in a string buffer (which is actually a dynamic char array) and
+** returned.
+**
+** The Lynx will draw 4 quadrants:
+** - Down right
+** - Up right
+** - Up left
+** - Down left
+**
+** The sprite will end with a byte 0.
+*/
 {
     enum Mode M;
     StrBuf* D;
index 1d6f998f5c05f63f97efb9a1082a1b207f5a8253..4f9a9f07d8386924169b5bb0c0231ad0977d19a2 100644 (file)
@@ -55,9 +55,9 @@
 
 StrBuf* GenLynxSprite (const Bitmap* B, const Collection* A);
 /* Generate binary output in packed Lynx sprite format for the bitmap B. The output 
- * is stored in a string buffer (which is actually a dynamic char array) and
- * returned.
- */
+** is stored in a string buffer (which is actually a dynamic char array) and
+** returned.
+*/
 
 
 
index 98049e891354d878d325a71747f243a5d67cec01..ef2188c822d7549db94747cdfe57ed4421d3f69b 100644 (file)
@@ -107,8 +107,8 @@ static void Usage (void)
 
 static void SetWorkBitmap (Bitmap* N)
 /* Delete an old working bitmap and set a new one. The new one may be NULL
- * to clear it.
- */
+** to clear it.
+*/
 {
     /* If we have a distinct work bitmap, delete it */
     if (C != 0 && C != B) {
@@ -123,8 +123,8 @@ static void SetWorkBitmap (Bitmap* N)
 
 static void SetOutputData (StrBuf* N)
 /* Delete the old output data and replace it by the given one. The new one
- * may be NULL to clear it.
- */
+** may be NULL to clear it.
+*/
 {
     /* Delete the old output data */
     if (D != 0) {
index e4c2dd4c7e93c004e97e5e20adec89f8764b53ff..3ffa38dccd604d40f6a9b5d6cfa618b1d1f4e4c6 100644 (file)
@@ -106,11 +106,11 @@ static const FileId FormatTable[] = {
 
 void WriteOutputFile (const StrBuf* Data, const Collection* A, const Bitmap* B)
 /* Write the contents of Data to a file. Format, file name etc. must be given
- * as attributes in A. If no format is given, the function tries to autodetect
- * it by using the extension of the file name. The bitmap passed to the
- * function is the bitmap used as source of the conversion. It may be used to
- * determine the bitmap properties for documentation purposes.
- */
+** as attributes in A. If no format is given, the function tries to autodetect
+** it by using the extension of the file name. The bitmap passed to the
+** function is the bitmap used as source of the conversion. It may be used to
+** determine the bitmap properties for documentation purposes.
+*/
 {
     const FileId* F;
 
index 9956c31aae80112b509eb24cd92996a7fb86d530..ff9a59b8a464899225578f96796c01ccc6f20c9c 100644 (file)
 
 void WriteOutputFile (const StrBuf* Data, const Collection* A, const Bitmap* B);
 /* Write the contents of Data to a file. Format, file name etc. must be given
- * as attributes in A. If no format is given, the function tries to autodetect
- * it by using the extension of the file name. The bitmap passed to the
- * function is the bitmap used as source of the conversion. It may be used to
- * determine the bitmap properties for documentation purposes.
- */
+** as attributes in A. If no format is given, the function tries to autodetect
+** it by using the extension of the file name. The bitmap passed to the
+** function is the bitmap used as source of the conversion. It may be used to
+** determine the bitmap properties for documentation purposes.
+*/
 
 
 
index a1d16b7ea9af05787d55ed18c3744e02a4f646a1..273ad8cf0334e9c851328edff072f6276676af6a 100644 (file)
@@ -153,10 +153,10 @@ static PCXHeader* ReadPCXHeader (FILE* F, const char* Name)
                P->Compressed, Name);
     }
     /* We support:
-     *   - one plane with either 1 or 8 bits per pixel
-     *   - three planes with 8 bits per pixel
-     *   - four planes with 8 bits per pixel (does this exist?)
-     */
+    **   - one plane with either 1 or 8 bits per pixel
+    **   - three planes with 8 bits per pixel
+    **   - four planes with 8 bits per pixel (does this exist?)
+    */
     if (!((P->BPP == 1 && P->Planes == 1) ||
           (P->BPP == 8 && (P->Planes == 1 || P->Planes == 3 || P->Planes == 4)))) {
         /* We could support others, but currently we don't */
@@ -326,8 +326,8 @@ Bitmap* ReadPCXFile (const Collection* A)
         }
 
         /* One plane means we have a palette which is either part of the header
-         * or follows.
-         */
+        ** or follows.
+        */
         if (P->PalInfo == 0) {
 
             /* Create the monochrome palette */
index ff233596bb8c45db1f8520f62cc00c821eacda8b..6844fe2c37598561a8b4c2e848a1a46ac389a4d5 100644 (file)
@@ -52,8 +52,8 @@
 
 StrBuf* GenRaw (const Bitmap* B, const Collection* A attribute ((unused)))
 /* Generate binary output in raw format. The output is stored in a string
- * buffer (which is actually a dynamic char array) and returned.
- */
+** buffer (which is actually a dynamic char array) and returned.
+*/
 {
     StrBuf* D;
     unsigned X, Y;
index ffc3a66492401e577d39be209869e24c762496ce..5e83cea47af21edcb1a891501ce492dc844e4deb 100644 (file)
@@ -55,8 +55,8 @@
 
 StrBuf* GenRaw (const Bitmap* B, const Collection* A);
 /* Generate binary output in raw format. The output is stored in a string
- * buffer (which is actually a dynamic char array) and returned.
- */
+** buffer (which is actually a dynamic char array) and returned.
+*/
 
 
 
index a9139d0a180ea67842ee7453852a00aabc907648..3e99ec7b21316d727897e9fa989f01320f344c47 100644 (file)
@@ -92,9 +92,9 @@ static enum Mode GetMode (const Collection* A)
 
 StrBuf* GenVic2Sprite (const Bitmap* B, const Collection* A)
 /* Generate binary output in VICII sprite format for the bitmap B. The output
- * is stored in a string buffer (which is actually a dynamic char array) and
- * returned.
- */
+** is stored in a string buffer (which is actually a dynamic char array) and
+** returned.
+*/
 {
     enum Mode M;
     StrBuf* D;
index f7c9a9d0532b06421c480cf21ec333a2e50dab5c..b6c839c7c5af53bdcf27ccd21255ff70c865a39b 100644 (file)
@@ -55,9 +55,9 @@
 
 StrBuf* GenVic2Sprite (const Bitmap* B, const Collection* A);
 /* Generate binary output in VICII sprite format for the bitmap B. The output 
- * is stored in a string buffer (which is actually a dynamic char array) and
- * returned.
- */
+** is stored in a string buffer (which is actually a dynamic char array) and
+** returned.
+*/
 
 
 
index aef8400aeaafce311a571f6564d8c328157b0e63..f679985ec536ac7e2cef18c7bd7f3eb9b9862052 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * testprogram printing the default device
- *
- * 26-Nov-2009, Christian Groessler
- */
+** testprogram printing the default device
+**
+** 26-Nov-2009, Christian Groessler
+*/
 
 #include <stdio.h>
 #include <conio.h>
index 5e9855da0d2478fd8397a2308bd8bd071b64be02..36222e08b2e321f1bf35e482510252d906eeb6f2 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * show some memory stuff
- *
- * 04-Aug-2004, Christian Groessler
- */
+** show some memory stuff
+**
+** 04-Aug-2004, Christian Groessler
+*/
 
 #include <stdio.h>
 #include <stdlib.h>
index f5e9296ca4471f86c45d7bb3cd95ec92b322a65a..552735ac835dce3196a1c73e01c098b00aff54b6 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * testprogram for get_ostype() and get_tv() functions
- *
- * 09-Jul-2004, chris@groessler.org
- */
+** testprogram for get_ostype() and get_tv() functions
+**
+** 09-Jul-2004, chris@groessler.org
+*/
 
 #include <stdio.h>
 #include <atari.h>
index a35be9dac32f27d35e81087330376e9363f8e35c..9ec7aa63130c7d1d2f86861eafec5cfd8942fe19 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * testprogram for _sys() function on Atari
- *
- * 17-Sep-2013, chris@groessler.org
- *
- * uses PUTCHR IOCB function to display a string
- */
+** testprogram for _sys() function on Atari
+**
+** 17-Sep-2013, chris@groessler.org
+**
+** uses PUTCHR IOCB function to display a string
+*/
 
 #include <atari.h>
 #include <6502.h>
index a4d046d52d4cce09d425d5718e1282afa3deea67..ac1ab3c67c6e4f7a661f68e0fde55c17c1280d41 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * simple clock test
- *
- * 06-Nov-2001, Christian Groessler
- */
+** simple clock test
+**
+** 06-Nov-2001, Christian Groessler
+*/
 
 #include <stdio.h>
 #include <conio.h>
index bc8f47af277d8e4dea250efb8960b367f1257358..ca3a06de662722855c5ca1d8b95ca9b44ebb14ae 100644 (file)
@@ -1,24 +1,24 @@
 /*
- * test program for the cprintf() function
- * (for the \r and \n special operators)
- * CPG
- *
- * The output generated by this program should look
- * like this:
- *
- * ---- top of screen --------
- * 12345
- *      67890
- *
- *
- * 67890
- *
- * hit return to exit....
+** test program for the cprintf() function
+** (for the \r and \n special operators)
+** CPG
+**
+** The output generated by this program should look
+** like this:
+**
+** ---- top of screen --------
+** 12345
+**      67890
+**
+**
+** 67890
+**
+** hit return to exit....
  .
  .
  .
- * ---- bottom of screen -----
- */
+** ---- bottom of screen -----
+*/
 
 #include <stdio.h>
 #include <conio.h>
index a608236cb95aafba261ccfc4447eedef1d1da40b..fc6e3ccb9c9d43cf8c273e61691b0283f7875cd1 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * test for conio cursor() function
- * CPG 2002
- *
- * the cursor should be in the same state as mentioned in the printfs
- */
+** test for conio cursor() function
+** CPG 2002
+**
+** the cursor should be in the same state as mentioned in the printfs
+*/
 
 #include <conio.h>
 
index b054fc14fdaef8272ce95ae1fda1f78bb37a8c6b..06a8d06af9c94d9c842d1ee594615fd1543df3d2 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * test program for the debugger
- *
- * press 'd' to enter the debugger
- *
- */
+** test program for the debugger
+**
+** press 'd' to enter the debugger
+**
+*/
 
 #include <stdio.h>
 #include <conio.h>
index 41a7eb2c8e9b7d429709b235cc9d1894bc7764bc..bd4eddc6a9a29fec089c27853ef6f533adfd7e3a 100644 (file)
@@ -143,8 +143,8 @@ int main (void)
     cputs ("\r\nTesting em_copyfrom/em_copyto");
 
     /* We're filling now 384 bytes per run to test the copy routines with
-     * other sizes.
-     */
+    ** other sizes.
+    */
     PageCount = (PageCount * 2) / 3;
 
     /* Setup the copy structure */
index ff335240dbb50cb57aac98b3995acc72a704f084..880df6369daee59bc7faf2cd72e31cb6cee2ce75 100644 (file)
@@ -1,19 +1,19 @@
 /*
- * simple file i/o test
- *
- * 12-Jun-2000, Christian Groessler
- *
- * please compile with
- *   cl65 -tsystem ft.c getsp.s -o ft.com
- *
- * The program asks for a filename (if it hasn't
- * got one from argv). I then opens the file,
- * reads the the first 16 bytes and displays them
- * (as hex values).
- * The values of sp (cc65 runtime stack pointer)
- * are displayed at some places. The displayed
- * value should always be the same.
- */
+** simple file I/O test
+**
+** 12-Jun-2000, Christian Groessler
+**
+** please compile with
+**   cl65 -tsystem ft.c getsp.s -o ft.com
+**
+** The program asks for a filename (if it hasn't
+** got one from argv). I then opens the file,
+** reads the the first 16 bytes and displays them
+** (as hex values).
+** The values of sp (cc65 runtime stack pointer)
+** are displayed at some places. The displayed
+** value should always be the same.
+*/
 
 #include <stdio.h>
 #include <string.h>
index 28dbd025de88c46cf5c252ca8cddebdb53d9a22a..2f115541975e4655057b1872e89ec21a06019bc7 100644 (file)
@@ -1,17 +1,17 @@
 /*
- * This is part of a changed public domain getopt implementation that
- * had the following text on top:
- *
- *      I got this off net.sources from Henry Spencer.
- *      It is a public domain getopt(3) like in System V.
- *      I have made the following modifications:
- *
- *      A test main program was added, ifdeffed by GETOPT.
- *      This main program is a public domain implementation
- *      of the getopt(1) program like in System V.  The getopt
- *      program can be used to standardize shell option handling.
- *              e.g.  cc -DGETOPT getopt.c -o getopt
- */
+** This is part of a changed public domain getopt implementation that
+** had the following text on top:
+**
+**      I got this off net.sources from Henry Spencer.
+**      It is a public domain getopt(3) like in System V.
+**      I have made the following modifications:
+**
+**      A test main program was added, ifdeffed by GETOPT.
+**      This main program is a public domain implementation
+**      of the getopt(1) program like in System V.  The getopt
+**      program can be used to standardize shell option handling.
+**              e.g.  cc -DGETOPT getopt.c -o getopt
+*/
 
 #include <stdio.h>
 #include <stdlib.h>
index fb10646cdcdd4e2d5caa30366498f146060338ec..d776e2f0ce6c4fcf174f5428604d19d0e7dc3585 100644 (file)
@@ -20,8 +20,8 @@ static char* Alloc (void)
     unsigned char* P = malloc (Size);
 
     /* Set the string to a defined value. We use the size, since this will
-     * also allow us to retrieve it later.
-     */
+    ** also allow us to retrieve it later.
+    */
     if (P) {
         memset (P, Size, Size);
     } else {
index 5db42d4abb628f2fd6d396e870934354d0cd1aaf..2daf5aa062f03928eca6789225557aabe7685e82 100644 (file)
@@ -6,8 +6,8 @@
 \r
 \r
 /* Number of elements in the progress bar. Use a power of 2, to avoid the\r
- * multiplication (which is about to be tested).\r
- */\r
+** multiplication (which is about to be tested).\r
+*/\r
 #define BAR_ELEMENTS    32U\r
 \r
 #if defined(__CBM__)\r
index 85cfe39a7562e8448a0e7feb13c1a195bc3bbe87..9fce01b776e98b5ead1c56f17197b1aa00b457ee 100644 (file)
@@ -78,8 +78,9 @@ static const struct {
         {"qwerty   095  2", "qwerty  %i%i", 2, INT, {0}    , INT, {95}},
         {"qwerty   0e5  2", "qwerty  %i%i", 1, INT, {0}    , INT, {0}},
 
-        /* (String pointers are cast as (int),
-         * in order to avoid cc65 warnings.) */
+        /* [String pointers are cast as (int),
+        ** in order to avoid cc65 warnings.]
+        */
 
         /* Test that character specifiers can handle end-of-file. */
         {"qwerty"   , "qwerty  %s%s"     , EOF, CHAR, {(int)""}, CHAR, {(int)""}},
index a01e6e94f103abc3462cbe75b502f6ab0ecd6cc8..0cb1c6ad623ea4132956fd09df8cc9c8c92208e4 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * seek test program
- */
+** seek test program
+*/
 
 #include <stdio.h>
 #include <string.h>
index 36fd4f4a5c09be0ab609bcd720f66e339e12f1f4..55354be20e86410d5060b30e334c348927ab574d 100644 (file)
@@ -18,8 +18,8 @@
 
 
 /* Struct used to test the 'n' conversion specifier. It is machine dependent /
- * not portable.
- */
+** not portable.
+*/
 typedef union WriteCount WriteCount;
 union WriteCount {
     signed char C;
@@ -41,9 +41,9 @@ static unsigned Failures = 0;
 
 static void OneTest (int Line, const char* RString, int RCount, const char* Format, ...)
 /* Test one conversion. Line is the line number (to make the life of the
- * tester easier), RString the expected result and RCount the expected return
- * count. The other parameters are used for formatting.
- */
+** tester easier), RString the expected result and RCount the expected return
+** count. The other parameters are used for formatting.
+*/
 {
     int Count;
     char Buf[128];
@@ -70,9 +70,9 @@ static void OneTest (int Line, const char* RString, int RCount, const char* Form
 
 static void WriteTest (int Line, const char* Format, WriteCount* W, long Count)
 /* Test one write conversion. Line is the line number (to make the life of the
- * tester easier), Format is the format specification. W is a WriteCount
- * variable and Count is the expected result.
- */
+** tester easier), Format is the format specification. W is a WriteCount
+** variable and Count is the expected result.
+*/
 {
     /* Clear the counter in full length */
     W->L = 0x5A5A5A5AL;
@@ -227,9 +227,9 @@ int main (void)
     OneTest (__LINE__, "EF98",                     4, "%+X", -4200U);
 
     /* ' ': If the first character of a signed conversion is not a sign, or if
-     *      a signed conversion results in no characters, a space is prefixed
-     *      to the result.
-     */
+    **      a signed conversion results in no characters, a space is prefixed
+    **      to the result.
+    */
     OneTest (__LINE__, "u",                        1, "% c", 'u');
     OneTest (__LINE__, " 4200",                    5, "% d", 4200);
     OneTest (__LINE__, "-4200",                    5, "% d", -4200);
@@ -310,10 +310,10 @@ int main (void)
     OneTest (__LINE__, "EF98           ",         15, "%-15X", -4200U);
 
     /* A negative field width specified via an argument is treated as if the
-     * '-' flag and a positive field width were given.
-     *
-     * Beware: These tests will crash the old printf routine!
-     */
+    ** '-' flag and a positive field width were given.
+    **
+    ** Beware: These tests will crash the old printf routine!
+    */
 #ifndef NOCRASH
     OneTest (__LINE__, "u              ",         15, "%*c", -15, 'u');
     OneTest (__LINE__, "4200           ",         15, "%*d", -15, 4200);
@@ -442,8 +442,8 @@ int main (void)
     OneTest (__LINE__, "     000000EF98",         15, "%15.10X", -4200U);
 
     /* For d, i, o, u, x and X conversions, if a precision is specified, the
-     * '0' flag is ignored.
-     */
+    ** '0' flag is ignored.
+    */
     OneTest (__LINE__, "     0000004200",         15, "%015.10d", 4200);
     OneTest (__LINE__, "    -0000004200",         15, "%015.10d", -4200);
     OneTest (__LINE__, "     0000004200",         15, "%015.10i", 4200);
index d490829178fa89f943662062a144f03c8581fa3e..27328cc4a727120d05d665ce11d1015014939a83 100644 (file)
@@ -1,32 +1,32 @@
 /* strqtok-test.c
- *
- * 2014-04-21, Paul Foerster
- * 2014-05-20, Greg King
- *
- * This program tests that strqtok() correctly will parse strings
- * with quotation marks in them.  It should show this list of tokens
- * from the test strings:
- *
- * >This<
- * >  is only    <
- * >a<
- * >short<
- * >quoting<
- * >test ,  honoring  blanks, commas<
- * >and<
- * >(4)<
- * >empty<
- * ><
- * ><
- * ><
- * ><
- * >strings,   EOT  <
- *
- * It shouldn't show
- *
- * >Bogus token<
- *
- */
+**
+** 2014-04-21, Paul Foerster
+** 2014-05-20, Greg King
+**
+** This program tests that strqtok() correctly will parse strings
+** with quotation marks in them.  It should show this list of tokens
+** from the test strings:
+**
+** >This<
+** >  is only    <
+** >a<
+** >short<
+** >quoting<
+** >test ,  honoring  blanks, commas<
+** >and<
+** >(4)<
+** >empty<
+** ><
+** ><
+** ><
+** ><
+** >strings,   EOT  <
+**
+** It shouldn't show
+**
+** >Bogus token<
+**
+*/
 
 #include <string.h>
 #include <stdio.h>
 void main (void)
 {
     /* b[] and s[] are declared as automatic, not static, variables
-     * because strqtok() will change them.
-     * They must be defined together; and, b[] must be defined first
-     * (because they're copied onto the top-down stack).
-     */
+    ** because strqtok() will change them.
+    ** They must be defined together; and, b[] must be defined first
+    ** (because they're copied onto the top-down stack).
+    */
     char  b[] = "Bogus token ";
     char  s[] = "  This ,  \"  is only    \"a   short   "
         "quoting\"test ,  honoring  blanks"
index db64c144d7fd54ae91504eed0e9859b8d52e6415..86c56d4db8082f4c3cf807f563065fd02c37991d 100644 (file)
@@ -22,8 +22,8 @@ static unsigned int Failures = 0;
 
 static void IncStr (char* Buf)
 /* Increment a number represented as a string by one. The string MUST not
- * start with a '9', we cannot handle overflow in this case.
- */
+** start with a '9', we cannot handle overflow in this case.
+*/
 {
     int Len = strlen (Buf);
 
index afd0decd9b713719010085c156382feef3daf8cf..cc37d1dd4a7568abf3b64c1459e99f591e088cd8 100644 (file)
@@ -22,8 +22,8 @@ static unsigned int Failures = 0;
 
 static void IncStr (char* Buf)
 /* Increment a number represented as a string by one. The string MUST not
- * start with a '9', we cannot handle overflow in this case.
- */
+** start with a '9', we cannot handle overflow in this case.
+*/
 {
     int Len = strlen (Buf);
 
index 1410652577da0b300794f6198c9bc99d5cc52aa8..de57a3d0e44155d9c61dc8978e9a69f54ad4f809 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Simple ("tiny") shell to test filename and directory functions.
- * Copyright (c) 2013, Christian Groessler, chris@groessler.org
- */
+** Simple ("tiny") shell to test filename and directory functions.
+** Copyright (c) 2013, Christian Groessler, chris@groessler.org
+*/
 
 #define VERSION_ASC "0.90"
 
index 34fac2779c89f1bad0a3d8d5e617bd9e8a3314b6..32d01a36e61797c50d3f7a459d52c434a5282a5c 100644 (file)
@@ -1,11 +1,11 @@
 /*
- * Compresses data to the DEFLATE format.
- * The compressed data is ready to use with inflatemem().
- * Compile using e.g.
- * gcc -O2 -o deflater deflater.c -lz
- *
- * Author: Piotr Fusik <fox@scene.pl>
- */
+** Compresses data to the DEFLATE format.
+** The compressed data is ready to use with inflatemem().
+** Compile using e.g.
+** gcc -O2 -o deflater deflater.c -lz
+**
+** Author: Piotr Fusik <fox@scene.pl>
+*/
 #include <stdio.h>
 #include <stdlib.h>
 #include <zlib.h>