include ./xcom.html \ link
Change these flags to get what you want all cards are support under one source tree. Its too hard maintaining seperate version.
HEX
TRUE EQU #BCM550
FALSE EQU #BVP5502
FALSE EQU #BVP5501
TRUE EQU #USE_MAC
\ assumes SDRAM starts at $10000000
#BCM550 #BVP5502 + #BVP5501 + [IF]
include ./setup_xcom.html \ link
[THEN]
We can now add code to image
include ./constants.html
#BCM550 [IF]
include ./bcm550_constants.html \ link
[THEN]
#BVP5502 [IF]
include ./bvp5502_constants.html \ link
[THEN]
#BVP5501 [IF]
include ./bvp5501_constants.html \ link
[THEN]
\ target dictionary pointer, see dictionary_here
_#dictionary_start 'dictionary !
\ base address of the dictioanry image area
\ used in XCOM
_#dictionary_start _dictionary0 !
Run time action for various words.
include ./_do_code.html \ link
include ./ansi_code_words.html \ link
include ./code_words.html \ link
The cross compiler needs to know where some of the words are in the kernel. There are two ways of dealing with this, allow forward referencing in the cross compiler, or define the words and load the rest of the cross compiler. This version uses the latter approach. Can't argue in favour of either solution.
include ./xcomp2.4th \ link
include ./ansi_code_strict_html.html \ link
include ./start_application_dict.html \ link
include ./colon_words_used_by_ansi.html \ link
include ./ansi_colon_words.html \ link
include ./colon_words.html \ link
include ./word_head.html \ link
include ./initial_abort.html \ link
include ./link_lists.html \ link
include ./user_variables.html \ link
#BCM550 [IF]
fast_here CONSTANT _%system_stack HOST _#system_stack_length fast_allot
fast_here EQU _%system_stack_end
ram_variable _%fault_lp
ram_variable _%fault_u
ram_variable _%fault_stack _#system_stack_length ram_allot
[THEN]
\ MMOV on static memory not working at moment.
\ use dynamic memory for system stack
#BVP5502 #BVP5501 + [IF]
ram_here CONSTANT _%system_stack HOST _#system_stack_length ram_allot
ram_here EQU _%system_stack_end
static_variable _%fault_lp
static_variable _%fault_u
static_variable _%fault_stack _#system_stack_length ram_allot
[THEN]
Fast memory defined before this is not cleared on startup.
fast_here CONSTANT _%fast_clear_start
dynamic ram memory defined before this is not cleared on startup.
ram_here CONSTANT _%ram_clear_start
#BVP5502 #BVP5501 + [IF]
Static memory defined before this is not cleared on startup.
static_here CONSTANT _%static_clear_start
[THEN]
The kernel checksum is contained in prom, the application in flash. The application will only run if it was compiled on the same kernel. To this end the kernel checksum is saved with the application. Before the application is loaded the current kernel checksum is compare with the saved checksum and tha application loaded if the two checksums are the same.
An offset is used to find the checksum in the flashed application image.
dictionary_here _#dictionary_start - CONSTANT _#kernel_checksum_offset
dictionary_variable _%kernel_checksum ( value copied when promming)
include ./user_using_words.html \ link
include ./real_numbers.html \ link
include ./memory_allocation.html \ link
include ./vocabulary.html \ link
include ./checksum.html \ link
include ./find.html \ link
include ./xwords.html \ link
include ./task_loops.html \ link
#BCM550 [IF]
include ./panic0.html \ link
[THEN]
#BVP5502 #BVP5501 + [IF]
include ./panic1.html \ link
[THEN]
include ./heap_control.html \ link
include ./words_using_heap.html \ link
include ./wordlists.html \ link
sort out the root voacubulary. The minimum search order is SET-ORDER and FORTH-WORDLIST. To get into forth the code would be FORTH-WORDLIST 1 SET-ORDER We will add the word FORTH.
target_also &root
target_definitions
: FORTH FORTH ;
: FORTH-WORDLIST FORTH-WORDLIST ;
: SET-ORDER SET-ORDER ;
target_previous_definitions
target_previous
include ./cache_managment.html \ link
include ./basic_io.html \ link
include ./number_output.html \ link
include ./abort.html \ link
include ./ass.html \ link
include ./word.html \ link
include ./more_ansi_colon_words.html \ link
include ./compile.html \ link
include ./string_literals.html \ link
include ./number.html \ link
include ./version.html \ link
include ./more_forth.html \ link
include ./struct.html \ link
include ./objects.html \ link
include ./terminal_class.html \ link
include ./linked_object.html \ link
include ./parented_object.html \ link
include ./io_common.html \ link
include ./root.html \ link
include ./inode.html \ link
include ./file_class.html \ link
include ./input_output.html \ link
include ./ws60.html \ link
include ./prompt.html \ link
include ./if_then_else.html \ link
include ./htmltags.4th \ difficult to display; defines HTML tags.
include ./quit_interpret_etc.html \ link
include ./queue.html \ link
include ./flash.html \ link
include ./local_variables.html \ link
include ./system_rte.html \ link
include ./interrupt_colon.html \ link
include ./tyx.html \ link
include ./config.html \ link
include ./real_time_clock.html \ link
include ./editor.html \ link
include ./date1900.html \ link
include ./form.html \ link
\ include ./message.html
include ./_cvs_decode.html \ link
include ./pipe.html \ link
#BCM550 #BVP5502 + [IF]
include ./dual_port_memory.html \ link
[THEN]
#BVP5502 #BVP5501 + [IF]
include ./bank_memory.html \ link
[THEN]
include ./tube.html \ link
#BCM550 #BVP5502 + [IF]
include ./port_tube.html \ link
[THEN]
include ./task_stuff.html \ link
include ./marker.html \ link
include ./print_system_data.html \ link
include ./words.html \ link
include ./operator_task_table.html \ link
include ./show.html \ link
include ./fault_data.html \ link
\ #### when processor is fixed up something has to be done for BVP500
#BCM550 [IF]
include ./watchdog.html \ link
[THEN]
include ./traps.html \ link
#BCM550 [IF]
include ./cards.html \ link
[THEN]
include ./printing.html \ link
#BCM550 [IF]
include ./rlogon.html \ link
[THEN]
include ./ilan_temp.html \ link
#BCM550 [IF]
include ./rti1000_interrupt.html \ link
[THEN]
#BCM550 [IF]
include ./digital_interrupt.html \ link
[THEN]
#BCM550 #BVP5502 + [IF]
include ./rti.html \ link
[THEN]
\ getting file services through the bank memory between CPUI and CPUII
#BVP5501 [IF]
include ./bank.html \ link
include ./bank_tube.html \ link
[THEN]
\ #BCM550 [IF]
\ include ./file_server.html \ link
\ [THEN]
#BVP5502 [IF]
include ./bank_bvp5502_code.html \ link
include ./bank_logon.html \ link
[THEN]
include ./bye_restart_etc.html \ link
include ./dma.html \ link
.S .( start tcpset)
include ./tcp/temp.html \ link
include ./tcp/pep_h.html \ link
include ./tcp/icmp_h.html \ link
include ./tcp/routing_h.html \ link
include ./tcp/tcp_h.html \ link
include ./tcp/print_pep.html \ link
\ must be defined now as used in icmp_demux
include ./tcp/interface_common.html \ link
include ./tcp/ip_setup.html \ link
include ./tcp/io_protocol_common.html \ link
\ these have to be defined before the interface classes derived because
\ the :!ip words and :!netmask words have to
\ add and remove routes.
include ./tcp/routing.html \ link
include ./tcp/interface_local.html \ link
\ defined before proto.html as used there
include ./tcp/demux.html \ link
include ./tcp/demux_socket.html \ link
\ defined before interface_loopback as interface_loopback
\ has to call the :proto_checksum method
include ./tcp/proto.html \ link
include ./tcp/interface_loopback.html \ link
#BCM550 [IF]
include ./tcp/ethernet_h.html
include ./tcp/interface_nice.html
[THEN]
include ./tcp/udp_demux.html \ link
include ./tcp/tcp_demux.html \ link
include ./tcp/icmp_demux.html \ link
include ./tcp/udp.html \ link
include ./tcp/icmp_echo.html \ link
include ./tcp/timestamp.html \ link
include ./tcp/tcp.html \ link
include ./tcp/telnet_server.html \ link
include ./tcp/html.html \ link
include ./kernel_tasks.html \ link
include ./mcf5307_init.html \ link
#BCM550 [IF]
include ./bcm550_boot_to_ram.html \ link
[THEN]
#BVP5502 [IF]
include ./bvp5502_boot_to_ram.html \ link
[THEN]
#BVP5501 [IF]
include ./bvp5501_boot_to_ram.html \ link
[THEN]
include ./locate.html \ link
include ./glossary.html \ link
\ include ./print_source.html
include ./op_function_vectors.html \ link
include ./environment.html \ link
#BCM550 [IF]
include ./bcm550_vectors.html \ link
[THEN]
#BVP5502 [IF]
include ./bvp5502_vectors.html \ link
[THEN]
#BVP5501 [IF]
include ./bvp5501_vectors.html \ link
[THEN]
DECIMAL
include ./end.4TH \ link
forth
include ./bcm550_save.html \ link
.S .( ABOUT TO FLASH)
new>flash
.S .( ABOUT TO TEST FOR SAME)
?same_image
.S .( finished)