For ProDOS 8 system programs the load address is fixed to $2000 so there
 is no need for a header. Thus the linker configuration
-<htmlurl url="apple2-4.html#ss4.3" name="apple2-system.cfg"> for those programs
+<htmlurl url="apple2.html#ss4.3" name="apple2-system.cfg"> for those programs
 omits the DOS 3.3 header. The right AppleCommander option to put system files
 without a header on a ProDOS 8 disk image is <tt/-p/.
 
 Card.
 
 The amount of memory available in the Language Card for generated code depends
-on the chosen <htmlurl url="apple2-4.html" name="linker configuration">.
+on the chosen <htmlurl url="apple2.html#s4" name="linker configuration">.
 
 
 
 The easiest (and for really large programs in fact the only) way to have a cc65
 program use the memory from $800 to $2000 is to link it as binary
 (as opposed to system) program using the linker configuration
-<htmlurl url="apple2-4.html#ss4.4" name="apple2-loader.cfg"> with start address
+<htmlurl url="apple2.html#ss4.4" name="apple2-loader.cfg"> with start address
 $800 and load it with <bf/LOADER.SYSTEM - an Apple ][
 ProDOS 8 loader for cc65 programs/. The program then works like a system program
 (i.e. quits to the ProDOS dispatcher).
 <sect1>Heap<p>
 
 If the cc65 program can be successfully linked as system program using the linker
-configuration <htmlurl url="apple2-4.html#ss4.3" name="apple2-system.cfg"> but
+configuration <htmlurl url="apple2.html#ss4.3" name="apple2-system.cfg"> but
 uses the heap either explicitly or implicitly (i.e. by loading a driver) then
 the memory from $800 to $2000 can be added to the heap by calling
 <tt/_heapadd ((void *) 0x0800, 0x1800);/ at the beginning of <tt/main()/.
 <descrip>
 
   <tag/Drive ID/
-  The function <htmlurl url="dio-1.html" name="dio_open()"> has the single
+  The function <htmlurl url="dio.html#s1" name="dio_open()"> has the single
   parameter <tt/device/ to identify the device to be opened. Therefore an
   Apple II slot and drive pair is mapped to that <tt/device/ according
   to the formula
   so that for example slot 6 drive 2 is mapped to <tt/device/ 14.
 
   <tag/Sector count/
-  The function <htmlurl url="dio-3.html" name="dio_query_sectcount()"> returns
+  The function <htmlurl url="dio.html#s3" name="dio_query_sectcount()"> returns
   the correct sector count for all ProDOS 8 disks. However for any non-ProDOS 8
   disk it simply always returns 280 (which is only correct for a 140 KB disk).
   This condition is indicated by the <tt/_oserror/ value 82.
 
 
 For ProDOS 8 system programs the load address is fixed to $2000 so there
 is no need for a header. Thus the linker configuration
-<htmlurl url="apple2enh-4.html#ss4.3" name="apple2enh-system.cfg"> for those programs
+<htmlurl url="apple2enh.html#ss4.3" name="apple2enh-system.cfg"> for those programs
 omits the DOS 3.3 header. The right AppleCommander option to put system files
 without a header on a ProDOS 8 disk image is <tt/-p/.
 
 Card.
 
 The amount of memory available in the Language Card for generated code depends
-on the chosen <htmlurl url="apple2enh-4.html" name="linker configuration">.
+on the chosen <htmlurl url="apple2enh.html#s4" name="linker configuration">.
 
 
 
 The easiest (and for really large programs in fact the only) way to have a cc65
 program use the memory from $800 to $2000 is to link it as binary
 (as opposed to system) program using the linker configuration
-<htmlurl url="apple2enh-4.html#ss4.4" name="apple2enh-loader.cfg"> with start address
+<htmlurl url="apple2enh.html#ss4.4" name="apple2enh-loader.cfg"> with start address
 $800 and load it with <bf/LOADER.SYSTEM - an Apple ][
 ProDOS 8 loader for cc65 programs/. The program then works like a system program
 (i.e. quits to the ProDOS dispatcher).
 <sect1>Heap<p>
 
 If the cc65 program can be successfully linked as system program using the linker
-configuration <htmlurl url="apple2enh-4.html#ss4.3" name="apple2enh-system.cfg"> but
+configuration <htmlurl url="apple2enh.html#ss4.3" name="apple2enh-system.cfg"> but
 uses the heap either explicitly or implicitly (i.e. by loading a driver) then
 the memory from $800 to $2000 can be added to the heap by calling
 <tt/_heapadd ((void *) 0x0800, 0x1800);/ at the beginning of <tt/main()/.
 <descrip>
 
   <tag/Drive ID/
-  The function <htmlurl url="dio-1.html" name="dio_open()"> has the single
+  The function <htmlurl url="dio.html#s1" name="dio_open()"> has the single
   parameter <tt/device/ to identify the device to be opened. Therefore an
   Apple II slot and drive pair is mapped to that <tt/drive_id/ according
   to the formula
   so that for example slot 6 drive 2 is mapped to <tt/device/ 14.
 
   <tag/Sector count/
-  The function <htmlurl url="dio-3.html" name="dio_query_sectcount()"> returns
+  The function <htmlurl url="dio.html#s3" name="dio_query_sectcount()"> returns
   the correct sector count for all ProDOS 8 disks. However for any non-ProDOS 8
   disk it simply always returns 280 (which is only correct for a 140 KB disk).
   This condition is indicated by the <tt/_oserror/ value 82.
 
 the GEOS world.  It means that each file built with the cc65 package has to be
 deconverted in GEOS, before it can be run.  You can read a step-by-step
 description of that in the <url name="GEOS section of the cc65 Compiler Intro"
-url="intro-6.html#ss6.5">.
+url="intro.html#ss6.5">.
 
 Each project consists of four parts, two are provided by cc65.  Those parts
 are:<enum>