diff --git a/build.lst b/build.lst index 17b6498..6c58577 100644 --- a/build.lst +++ b/build.lst @@ -1,11 +1,11 @@ ############################################################################### # # -# Calypsi linker for 65816 version 5.1 # -# 27/Mar/2024 21:37:37 # +# Calypsi linker for 65816 version 5.3 # +# 28/Mar/2024 00:33:48 # # Command line: -o build/kernel.bin config/memory.scm # # --no-data-init-table-section --rtattr cstartup=turaco # # --list-file build.lst --verbose --output-format pgz # -# src/interrupts.o src/main.o src/stubs.o # +# src/interrupts.o src/main.o src/stubs.o src/drivers/vera.o # # # ############################################################################### @@ -20,18 +20,18 @@ Name Range Size Used Checksum Largest unal DirectPage 000000-0000ff 000100 7.8% none 0000e8 stack 000200-000fff 000e00 42.9% none 000800 LowData 001000-007fff 007000 0.0% none 007000 -LowCode 008800-00ffe3 0077e4 3.8% none 00730b +LowCode 008800-00ffe3 0077e4 3.9% none 0072ed IOSpace 00df00-00dfff 000100 0.0% none 000100 LowCode-vector 00ffe4-00ffff 00001c 7.1% none 0077fc -HighData-01 010000-01ffff 010000 12.8% none 00df46 - > HighData-01-huge-nobits 010000-0100b9 0000ba 100.0% none 00ff46 +HighData-01 010000-01ffff 010000 13.2% none 00de47 + > HighData-01-huge-nobits 010000-0101b8 0001b9 100.0% none 00fe47 HighData-02 020000-02ffff 010000 0.0% none 010000 HighData-03 030000-03ffff 010000 0.0% none 010000 HighData-04 040000-04ffff 010000 0.0% none 010000 HighData-05 050000-05ffff 010000 0.0% none 010000 HighData-06 060000-06ffff 010000 0.0% none 010000 HighData-07 070000-07ffff 010000 0.0% none 010000 -HighCode-c0 c00000-c0ffff 010000 0.5% none 00fe9b +HighCode-c0 c00000-c0ffff 010000 6.5% none 00ef65 HighCode-c1 c10000-c1ffff 010000 0.0% none 010000 HighCode-c2 c20000-c2ffff 010000 0.0% none 010000 HighCode-c3 c30000-c3ffff 010000 0.0% none 010000 @@ -52,7 +52,7 @@ Name Range Size Memory Fragme registers 000004-000017 000014 DirectPage 1 stack 000200-0003ff 000200 stack 1 cstack 000400-0007ff 000400 stack 1 -code 008800-008c74 000475 LowCode 15 +code 008800-008c92 000493 LowCode 16 $$interruptVector_0x00ff80 00ff80-00ff81 000002 LowCode 1 $$interruptVector_0x00ff82 00ff82-00ff83 000002 LowCode 1 $$interruptVector_0x00ff84 00ff84-00ff85 000002 LowCode 1 @@ -67,9 +67,12 @@ $$interruptVector_0x00ffb4 00ffb4-00ffb5 000002 LowCode 1 $$interruptVector_0x00ffb6 00ffb6-00ffb7 000002 LowCode 1 $$interruptVector_0x00ffba 00ffba-00ffbb 000002 LowCode 1 reset 00fffc-00fffd 000002 LowCode-vector 1 -zhuge 010000-0100b9 0000ba HighData-01-huge-nobits 16 -heap 0100ba-0120b9 002000 HighData-01 1 -farcode c00000-c00164 000165 HighCode-c0 31 +huge 010000-010003 000004 HighData-01-huge-nobits 1 +zhuge 010004-0101b8 0001b5 HighData-01-huge-nobits 22 +heap 0101b9-0121b8 002000 HighData-01 1 +farcode c00000-c01091 001092 HighCode-c0 60 +ihuge c01092-c01095 000004 HighCode-c0 1 +farcode c01096-c0109a 000005 HighCode-c0 5 ################### @@ -118,31 +121,31 @@ HighCode-c7 c70000-c7ffff Far HighData-01 010000-01ffff Far > heap HighData-01-huge-nobits 010000-01ffff Huge and BSS - > zhuge + > zhuge and huge HighData-02 020000-02ffff Far > heap HighData-02-huge-nobits 020000-02ffff Huge and BSS - > zhuge + > zhuge and huge HighData-03 030000-03ffff Far > heap HighData-03-huge-nobits 030000-03ffff Huge and BSS - > zhuge + > zhuge and huge HighData-04 040000-04ffff Far > heap HighData-04-huge-nobits 040000-04ffff Huge and BSS - > zhuge + > zhuge and huge HighData-05 050000-05ffff Far > heap HighData-05-huge-nobits 050000-05ffff Huge and BSS - > zhuge + > zhuge and huge HighData-06 060000-06ffff Far > heap HighData-06-huge-nobits 060000-06ffff Huge and BSS - > zhuge + > zhuge and huge HighData-07 070000-07ffff Far > heap HighData-07-huge-nobits 070000-07ffff Huge and BSS - > zhuge + > zhuge and huge IOSpace 00df00-00dfff Plain > (VERAIOPort 00df00) LowCode-vector 00ffe4-00ffff Plain @@ -188,9 +191,9 @@ _NearBaseAddress LowData 000000 # # ################ -Unit Filename Archive --------------------------------------------- - 0 src/interrupts.o - +Unit Filename Archive +--------------------------------------------- + 0 src/interrupts.o - > $$interruptVector_0x00ff80 000002 > $$interruptVector_0x00ff82 000002 > $$interruptVector_0x00ff84 000002 @@ -207,25 +210,53 @@ Unit Filename Archive > code 000451 > farcode 0000a9 > zhuge 000034 - 1 src/main.o - - > farcode 000002 - 2 src/stubs.o - + 1 src/main.o - + > farcode 000006 + 2 src/stubs.o - > farcode 000034 - 4 cstartup.o clib-lc-hd-double64.a + 3 src/drivers/vera.o - + > farcode 0001d0 + > huge 000004 + > ihuge 000004 + 5 cstartup.o clib-lc-hd-double64.a # picked based on cstartup=normal (built-in default) - > code 000024 + > code 000042 > farcode 000001 > reset 000002 - 5 exit.o clib-lc-hd-double64.a + 6 exit.o clib-lc-hd-double64.a # picked based on exit=stdexit (built-in default) > farcode 000072 - > zhuge 000086 - 7 controlFlow.o clib-lc-hd-double64.a + 8 controlFlow.o clib-lc-hd-double64.a > farcode 00000e - 8 pseudoRegisters.o clib-lc-hd-double64.a + 9 pseudoRegisters.o clib-lc-hd-double64.a > registers 000014 - 9 exitC99.o clib-lc-hd-double64.a + 10 atexit.o clib-lc-hd-double64.a + > farcode 000045 + > zhuge 000082 + 11 exitC99.o clib-lc-hd-double64.a > farcode 000005 + 24 streamlist.o clib-lc-hd-double64.a + > farcode 0000b9 + > zhuge 000063 + 25 lib_fclose.o clib-lc-hd-double64.a + > farcode 00023e + 26 errno.o clib-lc-hd-double64.a + > zhuge 000002 + 27 free.o clib-lc-hd-double64.a + > farcode 00023b + 28 addfreechunk.o clib-lc-hd-double64.a + > farcode 0001a3 + 29 heap_initialize.o clib-lc-hd-double64.a + > farcode 0002f0 + > zhuge 00009a + 30 lib_memset.o clib-lc-hd-double64.a + > farcode 000053 + 31 lib_fflush.o clib-lc-hd-double64.a + > farcode 000038 + 32 lib_libfflush.o clib-lc-hd-double64.a + > farcode 00023a + 33 lib_libflushall.o clib-lc-hd-double64.a + > farcode 00008f ################### # # @@ -234,7 +265,7 @@ Unit Filename Archive ################### _Dp in section 'registers' placed at address 000004-000017 of size 000014 -(pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) +(pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) Defines: _Vfp = 000014 _Dp = 000004 @@ -265,31 +296,250 @@ _Dp in section 'registers' placed at address 000004-000017 of size 000014 set_user_t2_handler (src/interrupts.o unit 0 section index 38) set_user_t1_handler (src/interrupts.o unit 0 section index 39) set_user_t0_handler (src/interrupts.o unit 0 section index 40) - __program_start (cstartup.o (from clib-lc-hd-double64.a) unit 4 section index 2) - exit (exit.o (from clib-lc-hd-double64.a) unit 5 section index 5) - _JmpIndLong (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + vera_peek (src/drivers/vera.o unit 3 section index 4) + vera_poke (src/drivers/vera.o unit 3 section index 5) + __program_start (cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 2) + __call_heap_initialize (cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 5) + exit (exit.o (from clib-lc-hd-double64.a) unit 6 section index 2) + _JmpIndLong (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) + atexit (atexit.o (from clib-lc-hd-double64.a) unit 10 section index 4) + (streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 7) + __close (lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 2) + fclose (lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 3) + (lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 4) + (lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 5) + free (free.o (from clib-lc-hd-double64.a) unit 27 section index 2) + (free.o (from clib-lc-hd-double64.a) unit 27 section index 3) + (free.o (from clib-lc-hd-double64.a) unit 27 section index 4) + (free.o (from clib-lc-hd-double64.a) unit 27 section index 5) + (free.o (from clib-lc-hd-double64.a) unit 27 section index 6) + (free.o (from clib-lc-hd-double64.a) unit 27 section index 7) + (free.o (from clib-lc-hd-double64.a) unit 27 section index 8) + __size2ndx (addfreechunk.o (from clib-lc-hd-double64.a) unit 28 section index 2) + __addfreechunk (addfreechunk.o (from clib-lc-hd-double64.a) unit 28 section index 3) + __heap_addregion (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 2) + __heap_initialize (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 3) + (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 4) + (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 5) + (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 6) + (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 7) + (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 8) + memset (lib_memset.o (from clib-lc-hd-double64.a) unit 30 section index 2) + fflush (lib_fflush.o (from clib-lc-hd-double64.a) unit 31 section index 2) + __lib_fflush (lib_libfflush.o (from clib-lc-hd-double64.a) unit 32 section index 2) + (lib_libfflush.o (from clib-lc-hd-double64.a) unit 32 section index 3) + (lib_libfflush.o (from clib-lc-hd-double64.a) unit 32 section index 4) + (lib_libfflush.o (from clib-lc-hd-double64.a) unit 32 section index 5) + __lib_flushall (lib_libflushall.o (from clib-lc-hd-double64.a) unit 33 section index 2) -exit in section 'farcode' placed at address c00000-c00071 of size 000072 -(exit.o (from clib-lc-hd-double64.a) unit 5 section index 5) +__lib_fflush in section 'farcode' + placed at address c00000-c00220 of size 000221 +(lib_libfflush.o (from clib-lc-hd-double64.a) unit 32 section index 2) Defines: - exit = c00000 + __lib_fflush = c00000 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _Exit in (exitC99.o (from clib-lc-hd-double64.a) unit 9 section index 2) - _ExitCloseStreams in (exit.o (from clib-lc-hd-double64.a) unit 5 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) - __atexit in (exit.o (from clib-lc-hd-double64.a) unit 5 section index 3) - __atexit_index in (exit.o (from clib-lc-hd-double64.a) unit 5 section index 4) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _Stub_write in (src/stubs.o unit 2 section index 9) Referenced from: - (cstartup.o (from clib-lc-hd-double64.a) unit 4 section index 6) + fflush (lib_fflush.o (from clib-lc-hd-double64.a) unit 31 section index 2) + +fclose in section 'farcode' placed at address c00221-c00432 of size 000212 +(lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 3) + Defines: + fclose = c00221 + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + __close in (lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 2) + __global_streams in (streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 6) + errno in (errno.o (from clib-lc-hd-double64.a) unit 26 section index 2) + fflush in (lib_fflush.o (from clib-lc-hd-double64.a) unit 31 section index 2) + free in (free.o (from clib-lc-hd-double64.a) unit 27 section index 2) + +free in section 'farcode' placed at address c00433-c00622 of size 0001f0 +(free.o (from clib-lc-hd-double64.a) unit 27 section index 2) + Defines: + free = c00433 + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + __addfreechunk in (addfreechunk.o (from clib-lc-hd-double64.a) unit 28 section index 3) + __default_heap in (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 9) + Referenced from: + fclose (lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 3) + +__addfreechunk in section 'farcode' + placed at address c00623-c00793 of size 000171 +(addfreechunk.o (from clib-lc-hd-double64.a) unit 28 section index 3) + Defines: + __addfreechunk = c00623 + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + __size2ndx in (addfreechunk.o (from clib-lc-hd-double64.a) unit 28 section index 2) + Referenced from: + free (free.o (from clib-lc-hd-double64.a) unit 27 section index 2) + __heap_addregion (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 2) + +__heap_initialize in section 'farcode' + placed at address c00794-c008f3 of size 000160 +(heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 3) + Defines: + __heap_initialize = c00794 + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + __heap_addregion in (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 2) + memset in (lib_memset.o (from clib-lc-hd-double64.a) unit 30 section index 2) + Referenced from: + __call_heap_initialize (cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 5) + +__heap_addregion in section 'farcode' + placed at address c008f4-c00a33 of size 000140 +(heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 2) + Defines: + __heap_addregion = c008f4 + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + __addfreechunk in (addfreechunk.o (from clib-lc-hd-double64.a) unit 28 section index 3) + Referenced from: + __heap_initialize (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 3) + +vera_poke in section 'farcode' placed at address c00a34-c00b1d of size 0000ea +(src/drivers/vera.o unit 3 section index 5) + Defines: + vera_poke = c00a34 + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + vera in (src/drivers/vera.o unit 3 section index 2) + +vera_peek in section 'farcode' placed at address c00b1e-c00c01 of size 0000e4 +(src/drivers/vera.o unit 3 section index 4) + Defines: + vera_peek = c00b1e + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + vera in (src/drivers/vera.o unit 3 section index 2) + +__lib_flushall in section 'farcode' + placed at address c00c02-c00c90 of size 00008f +(lib_libflushall.o (from clib-lc-hd-double64.a) unit 33 section index 2) + Defines: + __lib_flushall = c00c02 + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + fflush in (lib_fflush.o (from clib-lc-hd-double64.a) unit 31 section index 2) + Referenced from: + fflush (lib_fflush.o (from clib-lc-hd-double64.a) unit 31 section index 2) + +exit in section 'farcode' placed at address c00c91-c00d02 of size 000072 +(exit.o (from clib-lc-hd-double64.a) unit 6 section index 2) + Defines: + exit = c00c91 + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _Exit in (exitC99.o (from clib-lc-hd-double64.a) unit 11 section index 2) + _ExitCloseStreams in (streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) + __atexit in (atexit.o (from clib-lc-hd-double64.a) unit 10 section index 2) + __atexit_index in (atexit.o (from clib-lc-hd-double64.a) unit 10 section index 3) + Referenced from: + (cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 6) + +`?L15` in section 'farcode' placed at address c00d03-c00d6a of size 000068 +(streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 7) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _Stub_close in (src/stubs.o unit 2 section index 3) + __close in (lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 2) + __global_streams in (streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 6) + fflush in (lib_fflush.o (from clib-lc-hd-double64.a) unit 31 section index 2) + +memset in section 'farcode' placed at address c00d6b-c00dbd of size 000053 +(lib_memset.o (from clib-lc-hd-double64.a) unit 30 section index 2) + Defines: + memset = c00d6b + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + Referenced from: + __heap_initialize (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 3) + +__initialize_global_streams in section 'farcode' + placed at address c00dbe-c00e0e of size 000051 +(streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 8) + Defines: + __initialize_global_streams = c00dbe + References: + _ExitCloseStreams in (streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 2) + __global_streams in (streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 6) + +atexit in section 'farcode' placed at address c00e0f-c00e53 of size 000045 +(atexit.o (from clib-lc-hd-double64.a) unit 10 section index 4) + Defines: + atexit = c00e0f + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + __atexit in (atexit.o (from clib-lc-hd-double64.a) unit 10 section index 2) + __atexit_index in (atexit.o (from clib-lc-hd-double64.a) unit 10 section index 3) + +fflush in section 'farcode' placed at address c00e54-c00e8b of size 000038 +(lib_fflush.o (from clib-lc-hd-double64.a) unit 31 section index 2) + Defines: + fflush = c00e54 + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + __global_streams in (streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 6) + __lib_fflush in (lib_libfflush.o (from clib-lc-hd-double64.a) unit 32 section index 2) + __lib_flushall in (lib_libflushall.o (from clib-lc-hd-double64.a) unit 33 section index 2) + errno in (errno.o (from clib-lc-hd-double64.a) unit 26 section index 2) + Referenced from: + (streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 7) + fclose (lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 3) + __lib_flushall (lib_libflushall.o (from clib-lc-hd-double64.a) unit 33 section index 2) + +__size2ndx in section 'farcode' placed at address c00e8c-c00ebd of size 000032 +(addfreechunk.o (from clib-lc-hd-double64.a) unit 28 section index 2) + Defines: + __size2ndx = c00e8c + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + Referenced from: + __addfreechunk (addfreechunk.o (from clib-lc-hd-double64.a) unit 28 section index 3) + +`?L54` in section 'farcode' placed at address c00ebe-c00ee2 of size 000025 +(heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 4) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +__close in section 'farcode' placed at address c00ee3-c00efc of size 00001a +(lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 2) + Defines: + __close = c00ee3 + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _Stub_close in (src/stubs.o unit 2 section index 3) + Referenced from: + (streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 7) + fclose (lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 3) + +`?L74` in section 'farcode' placed at address c00efd-c00f0d of size 000011 +(free.o (from clib-lc-hd-double64.a) unit 27 section index 6) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +`?L56` in section 'farcode' placed at address c00f0e-c00f1d of size 000010 +(heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 6) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +`?L75` in section 'farcode' placed at address c00f1e-c00f2b of size 00000e +(free.o (from clib-lc-hd-double64.a) unit 27 section index 7) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) _JmpIndLong in section 'farcode' - placed at address c00072-c0007f of size 00000e -(controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + placed at address c00f2c-c00f39 of size 00000e +(controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Defines: - _JmpIndLong = c00072 + _JmpIndLong = c00f2c References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) Referenced from: nmi_handler (src/interrupts.o unit 0 section index 15) brk_handler (src/interrupts.o unit 0 section index 16) @@ -304,289 +554,420 @@ _JmpIndLong in section 'farcode' int_t2_handler (src/interrupts.o unit 0 section index 25) int_t1_handler (src/interrupts.o unit 0 section index 26) int_t0_handler (src/interrupts.o unit 0 section index 27) - exit (exit.o (from clib-lc-hd-double64.a) unit 5 section index 5) + exit (exit.o (from clib-lc-hd-double64.a) unit 6 section index 2) + +`?L76` in section 'farcode' placed at address c00f3a-c00f46 of size 00000d +(free.o (from clib-lc-hd-double64.a) unit 27 section index 8) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +`?L71` in section 'farcode' placed at address c00f47-c00f53 of size 00000d +(free.o (from clib-lc-hd-double64.a) unit 27 section index 3) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) set_user_t0_handler in section 'farcode' - placed at address c00080-c0008c of size 00000d + placed at address c00f54-c00f60 of size 00000d (src/interrupts.o unit 0 section index 40) Defines: - set_user_t0_handler = c00080 + set_user_t0_handler = c00f54 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) set_user_t1_handler in section 'farcode' - placed at address c0008d-c00099 of size 00000d + placed at address c00f61-c00f6d of size 00000d (src/interrupts.o unit 0 section index 39) Defines: - set_user_t1_handler = c0008d + set_user_t1_handler = c00f61 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) set_user_t2_handler in section 'farcode' - placed at address c0009a-c000a6 of size 00000d + placed at address c00f6e-c00f7a of size 00000d (src/interrupts.o unit 0 section index 38) Defines: - set_user_t2_handler = c0009a + set_user_t2_handler = c00f6e References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) set_user_t3_handler in section 'farcode' - placed at address c000a7-c000b3 of size 00000d + placed at address c00f7b-c00f87 of size 00000d (src/interrupts.o unit 0 section index 37) Defines: - set_user_t3_handler = c000a7 + set_user_t3_handler = c00f7b References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) set_user_t4_handler in section 'farcode' - placed at address c000b4-c000c0 of size 00000d + placed at address c00f88-c00f94 of size 00000d (src/interrupts.o unit 0 section index 36) Defines: - set_user_t4_handler = c000b4 + set_user_t4_handler = c00f88 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) set_user_t5_handler in section 'farcode' - placed at address c000c1-c000cd of size 00000d + placed at address c00f95-c00fa1 of size 00000d (src/interrupts.o unit 0 section index 35) Defines: - set_user_t5_handler = c000c1 + set_user_t5_handler = c00f95 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) set_user_t6_handler in section 'farcode' - placed at address c000ce-c000da of size 00000d + placed at address c00fa2-c00fae of size 00000d (src/interrupts.o unit 0 section index 34) Defines: - set_user_t6_handler = c000ce + set_user_t6_handler = c00fa2 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) set_user_t7_handler in section 'farcode' - placed at address c000db-c000e7 of size 00000d + placed at address c00faf-c00fbb of size 00000d (src/interrupts.o unit 0 section index 33) Defines: - set_user_t7_handler = c000db + set_user_t7_handler = c00faf References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) set_user_vera_irq_handler in section 'farcode' - placed at address c000e8-c000f4 of size 00000d + placed at address c00fbc-c00fc8 of size 00000d (src/interrupts.o unit 0 section index 32) Defines: - set_user_vera_irq_handler = c000e8 + set_user_vera_irq_handler = c00fbc References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) set_user_irq_handler in section 'farcode' - placed at address c000f5-c00101 of size 00000d + placed at address c00fc9-c00fd5 of size 00000d (src/interrupts.o unit 0 section index 31) Defines: - set_user_irq_handler = c000f5 + set_user_irq_handler = c00fc9 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) set_user_cop_handler in section 'farcode' - placed at address c00102-c0010e of size 00000d + placed at address c00fd6-c00fe2 of size 00000d (src/interrupts.o unit 0 section index 30) Defines: - set_user_cop_handler = c00102 + set_user_cop_handler = c00fd6 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) set_user_brk_handler in section 'farcode' - placed at address c0010f-c0011b of size 00000d + placed at address c00fe3-c00fef of size 00000d (src/interrupts.o unit 0 section index 29) Defines: - set_user_brk_handler = c0010f + set_user_brk_handler = c00fe3 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) set_user_nmi_handler in section 'farcode' - placed at address c0011c-c00128 of size 00000d + placed at address c00ff0-c00ffc of size 00000d (src/interrupts.o unit 0 section index 28) Defines: - set_user_nmi_handler = c0011c + set_user_nmi_handler = c00ff0 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +`?L58` in section 'farcode' placed at address c00ffd-c01005 of size 000009 +(heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 8) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +`?L57` in section 'farcode' placed at address c01006-c0100e of size 000009 +(heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 7) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +`?L55` in section 'farcode' placed at address c0100f-c01017 of size 000009 +(heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 5) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +`?L73` in section 'farcode' placed at address c01018-c01020 of size 000009 +(free.o (from clib-lc-hd-double64.a) unit 27 section index 5) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +`?L72` in section 'farcode' placed at address c01021-c01029 of size 000009 +(free.o (from clib-lc-hd-double64.a) unit 27 section index 4) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +`?L81` in section 'farcode' placed at address c0102a-c01032 of size 000009 +(lib_libfflush.o (from clib-lc-hd-double64.a) unit 32 section index 4) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +`?L80` in section 'farcode' placed at address c01033-c0103b of size 000009 +(lib_libfflush.o (from clib-lc-hd-double64.a) unit 32 section index 3) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +`?L88` in section 'farcode' placed at address c0103c-c01044 of size 000009 +(lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 5) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +`?L87` in section 'farcode' placed at address c01045-c0104d of size 000009 +(lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 4) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + +`?L82` in section 'farcode' placed at address c0104e-c01054 of size 000007 +(lib_libfflush.o (from clib-lc-hd-double64.a) unit 32 section index 5) + References: + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) _Stub_environ in section 'farcode' - placed at address c00129-c0012f of size 000007 + placed at address c01055-c0105b of size 000007 (src/stubs.o unit 2 section index 13) Defines: - _Stub_environ = c00129 + _Stub_environ = c01055 _Stub_lseek in section 'farcode' - placed at address c00130-c00136 of size 000007 + placed at address c0105c-c01062 of size 000007 (src/stubs.o unit 2 section index 5) Defines: - _Stub_lseek = c00130 + _Stub_lseek = c0105c -_Exit in section 'farcode' placed at address c00137-c0013b of size 000005 -(exitC99.o (from clib-lc-hd-double64.a) unit 9 section index 2) +main in section 'farcode' placed at address c01063-c01068 of size 000006 +(src/main.o unit 1 section index 2) Defines: - _Exit = c00137 + main = c01063 + References: + vera_init in (src/drivers/vera.o unit 3 section index 3) + Referenced from: + (cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 6) + +_Exit in section 'farcode' placed at address c01069-c0106d of size 000005 +(exitC99.o (from clib-lc-hd-double64.a) unit 11 section index 2) + Defines: + _Exit = c01069 References: _Stub_exit in (src/stubs.o unit 2 section index 12) Referenced from: - exit (exit.o (from clib-lc-hd-double64.a) unit 5 section index 5) + exit (exit.o (from clib-lc-hd-double64.a) unit 6 section index 2) _Stub_remove in section 'farcode' - placed at address c0013c-c0013f of size 000004 + placed at address c0106e-c01071 of size 000004 (src/stubs.o unit 2 section index 11) Defines: - _Stub_remove = c0013c + _Stub_remove = c0106e _Stub_rename in section 'farcode' - placed at address c00140-c00143 of size 000004 + placed at address c01072-c01075 of size 000004 (src/stubs.o unit 2 section index 10) Defines: - _Stub_rename = c00140 + _Stub_rename = c01072 _Stub_write in section 'farcode' - placed at address c00144-c00147 of size 000004 + placed at address c01076-c01079 of size 000004 (src/stubs.o unit 2 section index 9) Defines: - _Stub_write = c00144 + _Stub_write = c01076 + Referenced from: + __lib_fflush (lib_libfflush.o (from clib-lc-hd-double64.a) unit 32 section index 2) -_Stub_read in section 'farcode' placed at address c00148-c0014b of size 000004 +_Stub_read in section 'farcode' placed at address c0107a-c0107d of size 000004 (src/stubs.o unit 2 section index 8) Defines: - _Stub_read = c00148 + _Stub_read = c0107a _Stub_fsetpos in section 'farcode' - placed at address c0014c-c0014f of size 000004 + placed at address c0107e-c01081 of size 000004 (src/stubs.o unit 2 section index 7) Defines: - _Stub_fsetpos = c0014c + _Stub_fsetpos = c0107e _Stub_fgetpos in section 'farcode' - placed at address c00150-c00153 of size 000004 + placed at address c01082-c01085 of size 000004 (src/stubs.o unit 2 section index 6) Defines: - _Stub_fgetpos = c00150 + _Stub_fgetpos = c01082 _Stub_access in section 'farcode' - placed at address c00154-c00157 of size 000004 + placed at address c01086-c01089 of size 000004 (src/stubs.o unit 2 section index 4) Defines: - _Stub_access = c00154 + _Stub_access = c01086 _Stub_close in section 'farcode' - placed at address c00158-c0015b of size 000004 + placed at address c0108a-c0108d of size 000004 (src/stubs.o unit 2 section index 3) Defines: - _Stub_close = c00158 + _Stub_close = c0108a + Referenced from: + (streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 7) + __close (lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 2) -_Stub_open in section 'farcode' placed at address c0015c-c0015f of size 000004 +_Stub_open in section 'farcode' placed at address c0108e-c01091 of size 000004 (src/stubs.o unit 2 section index 2) Defines: - _Stub_open = c0015c + _Stub_open = c0108e -main in section 'farcode' placed at address c00160-c00161 of size 000002 -(src/main.o unit 1 section index 2) - Defines: - main = c00160 - Referenced from: - (cstartup.o (from clib-lc-hd-double64.a) unit 4 section index 6) +Section 'ihuge' placed at address c01092-c01095 of size 000004 +(src/drivers/vera.o unit 3 initializer for section index 2) __low_level_init in section 'farcode' - placed at address c00162-c00162 of size 000001 -(cstartup.o (from clib-lc-hd-double64.a) unit 4 section index 8) + placed at address c01096-c01096 of size 000001 +(cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 8) Defines: - __low_level_init = c00162 + __low_level_init = c01096 Referenced from: - __program_start (cstartup.o (from clib-lc-hd-double64.a) unit 4 section index 2) + __program_start (cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 2) + +_vera_set_bgcolor in section 'farcode' + placed at address c01097-c01097 of size 000001 +(src/drivers/vera.o unit 3 section index 6) + Defines: + _vera_set_bgcolor = c01097 + +vera_init in section 'farcode' placed at address c01098-c01098 of size 000001 +(src/drivers/vera.o unit 3 section index 3) + Defines: + vera_init = c01098 + Referenced from: + main (src/main.o unit 1 section index 2) _Stub_assert in section 'farcode' - placed at address c00163-c00163 of size 000001 + placed at address c01099-c01099 of size 000001 (src/stubs.o unit 2 section index 14) Defines: - _Stub_assert = c00163 + _Stub_assert = c01099 -_Stub_exit in section 'farcode' placed at address c00164-c00164 of size 000001 +_Stub_exit in section 'farcode' placed at address c0109a-c0109a of size 000001 (src/stubs.o unit 2 section index 12) Defines: - _Stub_exit = c00164 + _Stub_exit = c0109a Referenced from: - _Exit (exitC99.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _Exit (exitC99.o (from clib-lc-hd-double64.a) unit 11 section index 2) -Section 'heap' placed at address 0100ba-0120b9 of size 002000 +Section 'heap' placed at address 0101b9-0121b8 of size 002000 (linker generated) -__atexit_index in section 'zhuge' - placed at address 010000-010001 of size 000002 -(exit.o (from clib-lc-hd-double64.a) unit 5 section index 4) +vera in section 'huge' placed at address 010000-010003 of size 000004 +(src/drivers/vera.o unit 3 section index 2) Defines: - __atexit_index = 010000 + vera = 010000 Referenced from: - exit (exit.o (from clib-lc-hd-double64.a) unit 5 section index 5) + vera_peek (src/drivers/vera.o unit 3 section index 4) + vera_poke (src/drivers/vera.o unit 3 section index 5) -__atexit in section 'zhuge' placed at address 010002-010081 of size 000080 -(exit.o (from clib-lc-hd-double64.a) unit 5 section index 3) +__default_heap in section 'zhuge' + placed at address 010004-01009d of size 00009a +(heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 9) Defines: - __atexit = 010002 + __default_heap = 010004 Referenced from: - exit (exit.o (from clib-lc-hd-double64.a) unit 5 section index 5) + __call_heap_initialize (cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 5) + free (free.o (from clib-lc-hd-double64.a) unit 27 section index 2) + +__atexit_index in section 'zhuge' + placed at address 01009e-01009f of size 000002 +(atexit.o (from clib-lc-hd-double64.a) unit 10 section index 3) + Defines: + __atexit_index = 01009e + Referenced from: + exit (exit.o (from clib-lc-hd-double64.a) unit 6 section index 2) + atexit (atexit.o (from clib-lc-hd-double64.a) unit 10 section index 4) + +__atexit in section 'zhuge' placed at address 0100a0-01011f of size 000080 +(atexit.o (from clib-lc-hd-double64.a) unit 10 section index 2) + Defines: + __atexit = 0100a0 + Referenced from: + exit (exit.o (from clib-lc-hd-double64.a) unit 6 section index 2) + atexit (atexit.o (from clib-lc-hd-double64.a) unit 10 section index 4) + +__global_streams in section 'zhuge' + placed at address 010120-010133 of size 000014 +(streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 6) + Defines: + __global_streams = 010120 + Referenced from: + (streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 7) + __initialize_global_streams (streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 8) + fclose (lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 3) + fflush (lib_fflush.o (from clib-lc-hd-double64.a) unit 31 section index 2) + +__stderr in section 'zhuge' placed at address 010134-01014c of size 000019 +(streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 5) + +__stdout in section 'zhuge' placed at address 01014d-010165 of size 000019 +(streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 4) + +__stdin in section 'zhuge' placed at address 010166-01017e of size 000019 +(streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 3) _ExitCloseStreams in section 'zhuge' - placed at address 010082-010085 of size 000004 -(exit.o (from clib-lc-hd-double64.a) unit 5 section index 2) + placed at address 01017f-010182 of size 000004 +(streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 2) Defines: - _ExitCloseStreams = 010082 + _ExitCloseStreams = 01017f Referenced from: - exit (exit.o (from clib-lc-hd-double64.a) unit 5 section index 5) + exit (exit.o (from clib-lc-hd-double64.a) unit 6 section index 2) + __initialize_global_streams (streamlist.o (from clib-lc-hd-double64.a) unit 24 section index 8) + +errno in section 'zhuge' placed at address 010183-010184 of size 000002 +(errno.o (from clib-lc-hd-double64.a) unit 26 section index 2) + Defines: + errno = 010183 + Referenced from: + fclose (lib_fclose.o (from clib-lc-hd-double64.a) unit 25 section index 3) + fflush (lib_fflush.o (from clib-lc-hd-double64.a) unit 31 section index 2) user_t0_handler in section 'zhuge' - placed at address 010086-010089 of size 000004 + placed at address 010185-010188 of size 000004 (src/interrupts.o unit 0 section index 14) user_t1_handler in section 'zhuge' - placed at address 01008a-01008d of size 000004 + placed at address 010189-01018c of size 000004 (src/interrupts.o unit 0 section index 13) user_t2_handler in section 'zhuge' - placed at address 01008e-010091 of size 000004 + placed at address 01018d-010190 of size 000004 (src/interrupts.o unit 0 section index 12) user_t3_handler in section 'zhuge' - placed at address 010092-010095 of size 000004 + placed at address 010191-010194 of size 000004 (src/interrupts.o unit 0 section index 11) user_t4_handler in section 'zhuge' - placed at address 010096-010099 of size 000004 + placed at address 010195-010198 of size 000004 (src/interrupts.o unit 0 section index 10) user_t5_handler in section 'zhuge' - placed at address 01009a-01009d of size 000004 + placed at address 010199-01019c of size 000004 (src/interrupts.o unit 0 section index 9) user_t6_handler in section 'zhuge' - placed at address 01009e-0100a1 of size 000004 + placed at address 01019d-0101a0 of size 000004 (src/interrupts.o unit 0 section index 8) user_t7_handler in section 'zhuge' - placed at address 0100a2-0100a5 of size 000004 + placed at address 0101a1-0101a4 of size 000004 (src/interrupts.o unit 0 section index 7) user_vera_irq_handler in section 'zhuge' - placed at address 0100a6-0100a9 of size 000004 + placed at address 0101a5-0101a8 of size 000004 (src/interrupts.o unit 0 section index 6) user_irq_handler in section 'zhuge' - placed at address 0100aa-0100ad of size 000004 + placed at address 0101a9-0101ac of size 000004 (src/interrupts.o unit 0 section index 5) user_cop_handler in section 'zhuge' - placed at address 0100ae-0100b1 of size 000004 + placed at address 0101ad-0101b0 of size 000004 (src/interrupts.o unit 0 section index 4) user_brk_handler in section 'zhuge' - placed at address 0100b2-0100b5 of size 000004 + placed at address 0101b1-0101b4 of size 000004 (src/interrupts.o unit 0 section index 3) user_nmi_handler in section 'zhuge' - placed at address 0100b6-0100b9 of size 000004 + placed at address 0101b5-0101b8 of size 000004 (src/interrupts.o unit 0 section index 2) int_t0_handler in section 'code' @@ -595,8 +976,8 @@ int_t0_handler in section 'code' Defines: int_t0_handler = 008800 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Referenced from: (src/interrupts.o unit 0 section index 53) @@ -606,8 +987,8 @@ int_t1_handler in section 'code' Defines: int_t1_handler = 008855 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Referenced from: (src/interrupts.o unit 0 section index 52) @@ -617,8 +998,8 @@ int_t2_handler in section 'code' Defines: int_t2_handler = 0088aa References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Referenced from: (src/interrupts.o unit 0 section index 51) @@ -628,8 +1009,8 @@ int_t3_handler in section 'code' Defines: int_t3_handler = 0088ff References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Referenced from: (src/interrupts.o unit 0 section index 50) @@ -639,8 +1020,8 @@ int_t4_handler in section 'code' Defines: int_t4_handler = 008954 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Referenced from: (src/interrupts.o unit 0 section index 49) @@ -650,8 +1031,8 @@ int_t5_handler in section 'code' Defines: int_t5_handler = 0089a9 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Referenced from: (src/interrupts.o unit 0 section index 48) @@ -661,8 +1042,8 @@ int_t6_handler in section 'code' Defines: int_t6_handler = 0089fe References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Referenced from: (src/interrupts.o unit 0 section index 47) @@ -672,8 +1053,8 @@ int_t7_handler in section 'code' Defines: int_t7_handler = 008a53 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Referenced from: (src/interrupts.o unit 0 section index 46) @@ -683,8 +1064,8 @@ int_vera_irq_handler in section 'code' Defines: int_vera_irq_handler = 008aa8 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Referenced from: (src/interrupts.o unit 0 section index 45) @@ -693,8 +1074,8 @@ irq_handler in section 'code' placed at address 008afd-008b51 of size 000055 Defines: irq_handler = 008afd References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Referenced from: (src/interrupts.o unit 0 section index 44) @@ -703,8 +1084,8 @@ cop_handler in section 'code' placed at address 008b52-008ba6 of size 000055 Defines: cop_handler = 008b52 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Referenced from: (src/interrupts.o unit 0 section index 43) @@ -713,8 +1094,8 @@ brk_handler in section 'code' placed at address 008ba7-008bfb of size 000055 Defines: brk_handler = 008ba7 References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Referenced from: (src/interrupts.o unit 0 section index 42) @@ -723,29 +1104,41 @@ nmi_handler in section 'code' placed at address 008bfc-008c50 of size 000055 Defines: nmi_handler = 008bfc References: - _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 7 section index 3) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + _JmpIndLong in (controlFlow.o (from clib-lc-hd-double64.a) unit 8 section index 3) Referenced from: (src/interrupts.o unit 0 section index 41) __program_start in section 'code' placed at address 008c51-008c69 of size 000019 -(cstartup.o (from clib-lc-hd-double64.a) unit 4 section index 2) +(cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 2) Defines: __program_start = 008c51 References: _DirectPageStart _NearBaseAddress .sectionEnd(stack) - _Vfp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 8 section index 2) - __low_level_init in (cstartup.o (from clib-lc-hd-double64.a) unit 4 section index 8) + _Vfp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + __low_level_init in (cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 8) Referenced from: - __program_root_section (cstartup.o (from clib-lc-hd-double64.a) unit 4 section index 7) + __program_root_section (cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 7) -Section 'code' placed at address 008c6a-008c74 of size 00000b -(cstartup.o (from clib-lc-hd-double64.a) unit 4 section index 6) +__call_heap_initialize in section 'code' + placed at address 008c6a-008c87 of size 00001e +(cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 5) + Defines: + __call_heap_initialize = 008c6a References: - exit in (exit.o (from clib-lc-hd-double64.a) unit 5 section index 5) + _Dp in (pseudoRegisters.o (from clib-lc-hd-double64.a) unit 9 section index 2) + .sectionSize(heap) + .sectionStart(heap) + __default_heap in (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 9) + __heap_initialize in (heap_initialize.o (from clib-lc-hd-double64.a) unit 29 section index 3) + +Section 'code' placed at address 008c88-008c92 of size 00000b +(cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 6) + References: + exit in (exit.o (from clib-lc-hd-double64.a) unit 6 section index 2) main in (src/main.o unit 1 section index 2) Section '$$interruptVector_0x00ff80' @@ -828,11 +1221,11 @@ Section '$$interruptVector_0x00ffba' __program_root_section in section 'reset' placed at address 00fffc-00fffd of size 000002 -(cstartup.o (from clib-lc-hd-double64.a) unit 4 section index 7) +(cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 7) Defines: __program_root_section = 00fffc References: - __program_start in (cstartup.o (from clib-lc-hd-double64.a) unit 4 section index 2) + __program_start in (cstartup.o (from clib-lc-hd-double64.a) unit 5 section index 2) Section 'stack' placed at address 000200-0003ff of size 000200 (linker generated) @@ -846,6 +1239,6 @@ Section 'cstack' placed at address 000400-0007ff of size 000400 # # ########################## -Executable (Text): 1526 bytes -Data : 186 bytes +Executable (Text): 5450 bytes +Data : 441 bytes Non-initialized : 9748 bytes diff --git a/config/sdk-config.mk b/config/sdk-config.mk index e591962..ffa2acd 100644 --- a/config/sdk-config.mk +++ b/config/sdk-config.mk @@ -57,14 +57,6 @@ endif LIBS := build/libc.a -%.o: %.c - @echo "Compiling $@..." - @$(CC) -c $(CFLAGS) -o $@ $< - -%.o: %.s - @echo "Assembling $@)..." - @$(AS) $(ASFLAGS) -o $@ $< - KERNEL_SRC_C := $(wildcard src/*.c) \ $(wildcard src/*/*.c) \ $(wildcard src/*/*/*.c) \ @@ -77,3 +69,4 @@ KERNEL_SRC_S := $(wildcard src/*.s) \ $(wildcard src/*/*/*/*/*.s) KERNEL_OBJ := $(KERNEL_SRC_C:.c=.o) \ $(KERNEL_SRC_S:.s=.o) +KERNEL_DEP := $(KERNEL_SRC_C:.c=.d) diff --git a/config/sdk-targets.mk b/config/sdk-targets.mk index 864953d..ee921d6 100644 --- a/config/sdk-targets.mk +++ b/config/sdk-targets.mk @@ -12,9 +12,25 @@ clean: \) -delete @find src -type f \( \ -name '*.o' -o \ + -name '*.d' -o \ -name '$(TARGET)' \ \) -delete +%.o: %.c + @echo "Compiling $@..." + @$(CC) -c $(CFLAGS) -o $@ $< + +%.o: %.s + @echo "Assembling $@)..." + @$(AS) $(ASFLAGS) -o $@ $< + +%.d: %.c + @echo "Generating dependencies for $<" + @printf '%s' "$(dir $@)" > $@ + @$(CC) $(CFLAGS) --dependencies $< >> $@ + build/kernel.bin: $(KERNEL_OBJ) @echo "Linking $@..." @$(LD) -o $@ $(LDFLAGS) $^ + +-include $(KERNEL_DEP) diff --git a/include/drivers/vera.h b/include/drivers/vera.h new file mode 100644 index 0000000..be2a958 --- /dev/null +++ b/include/drivers/vera.h @@ -0,0 +1,21 @@ +//***************************************************************************** +// Sentinel 65X Kernel +// +// include/drivers/vera.h +//***************************************************************************** + +#pragma once + +#include + +far void vera_init(void); + +far uint8_t vera_peek(uint32_t addr); + +far void vera_poke(uint32_t addr, uint8_t value); + +far void vera_poke16(uint32_t addr, uint16_t value); + +far void _vera_set_bgcolor(uint8_t color); +#define vera_set_bgcolor(X) _vera_set_bgcolor((X)) +#define vera_set_bgcolour(X) _vera_set_bgcolor((X)) diff --git a/src/drivers/vera.c b/src/drivers/vera.c new file mode 100644 index 0000000..3db2f31 --- /dev/null +++ b/src/drivers/vera.c @@ -0,0 +1,85 @@ +//***************************************************************************** +// Sentinel 65X Kernel +// +// src/drivers/vera.c +//***************************************************************************** + +#include + +#include "config.h" +#include "drivers/vera.h" + +typedef struct vera_s *VERA; + +struct vera_s { + uint8_t addr_x_l; + uint8_t addr_x_m; + uint8_t addr_x_h; + union { + uint8_t data[2]; + uint16_t data16; + }; + uint8_t ctrl; + uint8_t ien; + uint8_t isr; + union { + uint8_t irq_line_l; + uint8_t const scanline_l; + }; +}; + +VERA vera = (VERA)(0x00df00); + +far void +vera_init(void) +{ + +} + +far uint8_t +vera_peek(uint32_t addr) +{ + (void) addr; + + // Set addrsel to 0 + uint8_t asel = vera->ctrl; + vera->ctrl = asel & 0b11111110; + + // Set address + vera->addr_x_l = addr & 0x000000FF; + vera->addr_x_m = (addr & 0x0000FF00) >> 8; + + vera->addr_x_h = vera->addr_x_h & 0b11111110; + + vera->addr_x_h = vera->addr_x_h | (addr & ((uint32_t)(1) << 16)); + + return vera->data[0]; +} + +far void +vera_poke(uint32_t addr, uint8_t value) +{ + (void) addr; + + // Set addrsel to 0 + uint8_t asel = vera->ctrl; + vera->ctrl = asel & 0b11111110; + + // Set address + vera->addr_x_l = addr & 0x000000FF; + vera->addr_x_m = (addr & 0x0000FF00) >> 8; + + vera->addr_x_h = vera->addr_x_h & 0b11111110; + + vera->addr_x_h = vera->addr_x_h | (addr & ((uint32_t)(1) << 16)); + + vera->data[0] = value; + return; +} + +far void +_vera_set_bgcolor(uint8_t color) +{ + (void) color; + return; +} diff --git a/src/main.c b/src/main.c index a2691fa..03941f4 100644 --- a/src/main.c +++ b/src/main.c @@ -6,8 +6,12 @@ #include "config.h" +#include "drivers/vera.h" + void main(void) { + vera_init(); + for (;;) {} }