basic stub

git-svn-id: http://svn.code.sf.net/p/netboot65/code@256 93682198-c243-4bdb-bd91-e943c89aac3b
This commit is contained in:
jonnosan 2010-07-30 13:51:38 +00:00
parent 124ca39d14
commit 0c43a8a39a
8 changed files with 805 additions and 1 deletions

37
client/basic/Makefile Normal file
View File

@ -0,0 +1,37 @@
AS=ca65
LD=ld65
CFLAGS=-Oirs -t $(TARGET)
AFLAGS=
INCFILES=\
../inc/common.i\
../inc/commonprint.i\
../inc/net.i\
../inc/menu.i\
../inc/kipper_constants.i\
../inc/version.i\
#IP65LIB=../ip65/ip65.lib
IP65LIB=../ip65/ip65_tcp.lib
#IP65TCPLIB=../ip65/ip65_tcp.lib
C64PROGLIB=../drivers/c64prog.lib
all: basml.d64
%.o: %.s $(INCFILES)
$(AS) $(AFLAGS) $<
%.prg: %.o $(IP65LIB) $(C64PROGLIB) $(INCFILES) ../cfg/c64prg.cfg
$(LD) -m $*.map -vm -C ../cfg/c64_mlstub.cfg -o $*.prg $(AFLAGS) $< $(IP65LIB) $(C64PROGLIB)
basml.d64: mlstub.prg
ripxplore.rb -r -e basml $@ -o basml.bas
ripxplore.rb $@ -a mlstub.prg
clean:
rm -f *.o *.bin *.map *.prg
distclean: clean
rm -f *~

BIN
client/basic/basml.bas Normal file

Binary file not shown.

BIN
client/basic/basml.bas.bak Normal file

Binary file not shown.

BIN
client/basic/basml.d64 Normal file

Binary file not shown.

610
client/basic/mlstub.map Normal file
View File

@ -0,0 +1,610 @@
Modules list:
-------------
mlstub.o:
CODE Offs = 000000 Size = 000236
RODATA Offs = 000000 Size = 0000DE
BSS Offs = 000000 Size = 000107
DATA Offs = 000000 Size = 000022
ZEROPAGE Offs = 000000 Size = 000002
NULL Offs = 000000 Size = 000000
STARTUP Offs = 000000 Size = 000005
../ip65/ip65_tcp.lib(copymem.o):
CODE Offs = 000236 Size = 000027
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000107 Size = 000001
DATA Offs = 000022 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
IP65ZP Offs = 000000 Size = 000004
../ip65/ip65_tcp.lib(config.o):
CODE Offs = 00025D Size = 00001D
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000108 Size = 00001F
DATA Offs = 000022 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
IP65_DEFAULTS Offs = 000000 Size = 00001F
../ip65/ip65_tcp.lib(timer.o):
CODE Offs = 00027A Size = 000018
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000127 Size = 000002
DATA Offs = 000022 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
../ip65/ip65_tcp.lib(cs8900a.o):
CODE Offs = 000292 Size = 000151
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000129 Size = 000BE0
DATA Offs = 000022 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
IP65ZP Offs = 000004 Size = 000002
../ip65/ip65_tcp.lib(eth.o):
CODE Offs = 0003E3 Size = 000020
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000D09 Size = 000000
DATA Offs = 000022 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
../ip65/ip65_tcp.lib(arp.o):
CODE Offs = 000403 Size = 000202
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000D09 Size = 000066
DATA Offs = 000022 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
IP65ZP Offs = 000006 Size = 000002
../ip65/ip65_tcp.lib(udp.o):
CODE Offs = 000605 Size = 00017C
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000D6F Size = 00001F
DATA Offs = 000022 Size = 000003
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
../ip65/ip65_tcp.lib(ip65.o):
CODE Offs = 000781 Size = 00005A
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000D8E Size = 000004
DATA Offs = 000025 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
../ip65/ip65_tcp.lib(dhcp.o):
CODE Offs = 0007DB Size = 00028A
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000D92 Size = 000005
DATA Offs = 000025 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
../ip65/ip65_tcp.lib(output_buffer.o):
CODE Offs = 000A65 Size = 000000
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000D97 Size = 000208
DATA Offs = 000025 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
../ip65/ip65_tcp.lib(arithmetic.o):
CODE Offs = 000A65 Size = 00009D
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000F9F Size = 000002
DATA Offs = 000025 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
../ip65/ip65_tcp.lib(ip.o):
CODE Offs = 000B02 Size = 000212
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000FA1 Size = 00000C
DATA Offs = 000025 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
IP65ZP Offs = 000008 Size = 000002
../ip65/ip65_tcp.lib(tcp.o):
CODE Offs = 000D14 Size = 000648
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000FAD Size = 000000
DATA Offs = 000025 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
TCP_VARS Offs = 000000 Size = 000041
../ip65/ip65_tcp.lib(icmp.o):
CODE Offs = 00135C Size = 000230
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000FAD Size = 000009
DATA Offs = 000025 Size = 000003
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
TCP_VARS Offs = 000041 Size = 000008
../drivers/c64prog.lib(c64print.o):
CODE Offs = 00158C Size = 000058
RODATA Offs = 0000DE Size = 000000
BSS Offs = 000FB6 Size = 000001
DATA Offs = 000028 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
../drivers/c64prog.lib(rr-net.o):
CODE Offs = 0015E4 Size = 000009
RODATA Offs = 0000DE Size = 000007
BSS Offs = 000FB7 Size = 000000
DATA Offs = 000028 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
../drivers/c64prog.lib(c64timer.o):
CODE Offs = 0015ED Size = 000033
RODATA Offs = 0000E5 Size = 000000
BSS Offs = 000FB7 Size = 000000
DATA Offs = 000028 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
../drivers/c64prog.lib(c64inputs.o):
CODE Offs = 001620 Size = 0000DA
RODATA Offs = 0000E5 Size = 000000
BSS Offs = 000FB7 Size = 00002D
DATA Offs = 000028 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
../drivers/c64prog.lib(c64charconv.o):
CODE Offs = 0016FA Size = 00000A
RODATA Offs = 0000E5 Size = 000200
BSS Offs = 000FE4 Size = 000000
DATA Offs = 000028 Size = 000000
ZEROPAGE Offs = 000002 Size = 000000
NULL Offs = 000000 Size = 000000
Segment list:
-------------
Name Start End Size
--------------------------------------------
NULL 000000 000000 000000
IP65ZP 0000A3 0000AC 00000A
ZEROPAGE 0000AD 0000AE 000002
STARTUP 003FFE 004002 000005
IP65_DEFAULTS 004003 004021 00001F
CODE 004022 005725 001704
RODATA 005726 005A0A 0002E5
DATA 005A0B 005A32 000028
BSS 005A33 006A16 000FE4
TCP_VARS 00C010 00C058 000049
Exports list:
-------------
__DATA_LOAD__ 005A0B LA __DATA_RUN__ 005A0B LA
__DATA_SIZE__ 000028 EA __MAINRAM_LAST__ 006A17 LA
__MAINRAM_SIZE__ 003FC9 EA __MAINRAM_START__ 003FFE LA
ac_size 000008 EZ acc16 0000A3 REZ
acc32 0000A3 REZ add_16_32 004AE0 RLA
add_32_32 004AC1 LA arp_add 0045B1 LA
arp_cache 006747 LA arp_calculate_gateway_mask 00442F RLA
arp_init 004425 RLA arp_ip 006743 RLA
arp_lookup 004454 RLA arp_mac 00673D RLA
arp_process 004533 RLA ascii_to_native 005721 RLA
beep 0055B8 LA cfg_default_drive 005B59 LA
cfg_dns 005B4D RLA cfg_gateway 005B49 RLA
cfg_get_configuration_ptr 00427F RLA cfg_init 004285 RLA
cfg_ip 005B41 RLA cfg_mac 005B3B RLA
cfg_netmask 005B45 RLA cfg_tftp_server 005B55 RLA
check_for_abort_key 005651 RLA cls 0055B3 LA
cmp_16_16 004AA3 RLA cmp_32_32 004A87 RLA
copy_dest 0000A5 RLZ copy_src 0000A3 RLZ
copymem 004258 RLA cs_driver_name 005804 RLA
cs_init 005606 RLA cs_packet_data 00DE04 REA
cs_packet_page 00DE02 REA cs_rxtx_data 00DE08 REA
cs_tx_cmd 00DE0C REA cs_tx_len 00DE0E REA
dhcp_init 0047FD RLA dhcp_msg 0057AE LA
dhcp_server 005B51 RLA dhcp_state 0067C5 LA
dns_server_msg 005781 LA eth_data 00000E REZ
eth_dest 000000 REZ eth_init 0042B4 RLA
eth_inp 005B5E RLA eth_inp_len 005B5C RLA
eth_outp 00614E RLA eth_outp_len 00614C RLA
eth_proto_arp 000006 REZ eth_proto_ip 000000 REZ
eth_rx 00430D RLA eth_set_broadcast_dest 004405 RLA
eth_set_my_mac_src 004410 RLA eth_set_proto 00441C RLA
eth_src 000006 REZ eth_tx 00436E RLA
eth_type 00000C EZ failed_msg 0057C2 LA
filter_dns 0056F5 LA filter_ip 005710 LA
filter_number 005711 LA filter_text 0056E6 LA
filter_url 0056EE LA gateway_msg 005772 LA
get_filtered_input 005666 LA get_key 005642 LA
get_key_if_available 00F142 EA get_key_ip65 005648 LA
icmp_add_listener 00542A LA icmp_callback 0069E0 LA
icmp_cksum 000002 EZ icmp_code 000001 EZ
icmp_data 000004 EZ icmp_echo_ip 00C051 LA
icmp_init 00537E RLA icmp_inp 005B80 EA
icmp_outp 006170 EA icmp_ping 0054FB LA
icmp_process 005384 RLA icmp_remove_listener 005456 LA
icmp_send_echo 00548B LA icmp_type 000000 EZ
init_msg 0057B3 LA ip65_ctr 0067C1 LA
ip65_ctr_arp 0067C2 LA ip65_ctr_ip 0067C3 LA
ip65_error 0067C4 RLA ip65_init 0047C2 RLA
ip65_process 0047DB RLA ip65_random_word 0047A3 RLA
ip_address_msg 005754 LA ip_broadcast 0069D8 RLA
ip_calc_cksum 004C92 RLA ip_cksum_ptr 0000AB RLZ
ip_create_packet 004BFE RLA ip_data 000014 REZ
ip_dest 000010 REZ ip_frag 000006 EZ
ip_header_cksum 00000A REZ ip_id 000004 REZ
ip_init 004B24 RLA ip_inp 005B6C REA
ip_len 000002 REZ ip_outp 00615C REA
ip_process 004B3C RLA ip_proto 000009 REZ
ip_proto_icmp 000001 REZ ip_proto_tcp 000006 REZ
ip_proto_udp 000011 REZ ip_send 004C2B RLA
ip_src 00000C REZ ip_tos 000001 EZ
ip_ttl 000008 EZ ip_ver_ihl 000000 EZ
mac_address_msg 005745 LA mul_8_16 004AFC LA
native_to_ascii 00571C LA netmask_msg 005763 LA
ok_msg 0057C9 LA op32 0000A5 REZ
output_buffer 0067CA RLA press_a_key_to_continue 0057EB LA
print 0040BE LA print_a 00FFD2 REA
print_a_inverse 0055F7 LA print_ascii_as_native 0040D4 LA
print_cr 0055AE RLA print_dotted_quad 0040ED LA
print_errorcode 0041BA LA print_hex 0041A1 LA
print_integer 00412A LA print_ip_config 004022 LA
screen_current_col 0000D3 EZ screen_current_row 0000D6 EZ
sub_16_16 004AAB RLA tcp_callback 00C029 LA
tcp_close 004E41 LA tcp_connect 004D78 LA
tcp_connect_ip 00C04A LA tcp_inbound_data_length 00C030 LA
tcp_inbound_data_ptr 00C02E LA tcp_init 004D36 RLA
tcp_listen 004D3A LA tcp_process 005111 RLA
tcp_send 004F08 LA tcp_send_data_len 00C027 LA
tcp_send_keep_alive 00533D EA tcp_send_string 004EE0 LA
tftp_server_msg 00579F LA timer_init 00560F RLA
timer_read 005636 RLA timer_timeout 00429C RLA
udp_add_listener 00465F RLA udp_callback 0067A2 RLA
udp_cksum 000006 EZ udp_data 000008 REZ
udp_dest_port 000002 EZ udp_init 004627 RLA
udp_inp 005B80 REA udp_len 000004 EZ
udp_outp 006170 EA udp_process 00462D RLA
udp_remove_listener 0046A6 RLA udp_send 0046F2 RLA
udp_send_dest 0067A4 RLA udp_send_dest_port 0067AA RLA
udp_send_len 0067AC RLA udp_send_src_port 0067A8 RLA
udp_src_port 000000 EZ
Imports list:
-------------
__DATA_LOAD__ ([linker generated]):
__DATA_RUN__ ([linker generated]):
__DATA_SIZE__ ([linker generated]):
__MAINRAM_LAST__ ([linker generated]):
__MAINRAM_SIZE__ ([linker generated]):
__MAINRAM_START__ ([linker generated]):
ac_size (arp.o):
acc16 (arithmetic.o):
tcp.o tcp.s(48)
acc32 (arithmetic.o):
tcp.o tcp.s(46)
add_16_32 (arithmetic.o):
tcp.o tcp.s(51)
add_32_32 (arithmetic.o):
arp_add (arp.o):
arp_cache (arp.o):
arp_calculate_gateway_mask (arp.o):
dhcp.o dhcp.s(29)
arp_init (arp.o):
ip65.o ip65.s(23)
arp_ip (arp.o):
ip.o ip.s(48)
arp_lookup (arp.o):
ip.o ip.s(46)
arp_mac (arp.o):
ip.o ip.s(47)
arp_process (arp.o):
ip65.o ip65.s(32)
ascii_to_native (c64charconv.o):
mlstub.o ../inc/commonprint.i(26)
beep (c64print.o):
cfg_default_drive (config.o):
cfg_dns (config.o):
dhcp.o dhcp.s(27)
cfg_gateway (config.o):
arp.o arp.s(28)
dhcp.o dhcp.s(26)
cfg_get_configuration_ptr (config.o):
mlstub.o ../inc/commonprint.i(84)
cfg_init (config.o):
ip65.o ip65.s(19)
cfg_ip (config.o):
udp.o udp.s(55)
arp.o arp.s(26)
tcp.o tcp.s(72)
ip.o ip.s(30)
dhcp.o dhcp.s(24)
cfg_mac (config.o):
arp.o arp.s(25)
eth.o eth.s(14)
cs8900a.o cs8900a.s(35)
ip.o ip.s(29)
dhcp.o dhcp.s(23)
cfg_netmask (config.o):
arp.o arp.s(27)
dhcp.o dhcp.s(25)
cfg_tftp_server (config.o):
mlstub.o ../inc/commonprint.i(31)
check_for_abort_key (c64inputs.o):
tcp.o tcp.s(42)
dhcp.o dhcp.s(49)
cls (c64print.o):
cmp_16_16 (arithmetic.o):
tcp.o tcp.s(53)
cmp_32_32 (arithmetic.o):
tcp.o tcp.s(52)
copy_dest (copymem.o):
arithmetic.o arithmetic.s(7)
udp.o udp.s(53)
tcp.o tcp.s(70)
config.o config.s(18)
mlstub.o mlstub.s(13)
copy_src (copymem.o):
c64inputs.o c64inputs.s(11)
arithmetic.o arithmetic.s(6)
udp.o udp.s(52)
tcp.o tcp.s(69)
ip.o ip.s(60)
config.o config.s(17)
mlstub.o ../inc/commonprint.i(30)
copymem (copymem.o):
udp.o udp.s(51)
tcp.o tcp.s(68)
config.o config.s(16)
mlstub.o mlstub.s(12)
cs_driver_name (rr-net.o):
mlstub.o ../inc/commonprint.i(29)
cs_init (rr-net.o):
cs8900a.o cs8900a.s(28)
cs_packet_data (rr-net.o):
cs8900a.o cs8900a.s(30)
cs_packet_page (rr-net.o):
cs8900a.o cs8900a.s(29)
cs_rxtx_data (rr-net.o):
cs8900a.o cs8900a.s(31)
cs_tx_cmd (rr-net.o):
cs8900a.o cs8900a.s(32)
cs_tx_len (rr-net.o):
cs8900a.o cs8900a.s(33)
dhcp_init (dhcp.o):
mlstub.o mlstub.s(14)
dhcp_msg (mlstub.o):
dhcp_server (config.o):
dhcp.o dhcp.s(19)
dhcp_state (dhcp.o):
dns_server_msg (mlstub.o):
eth_data (cs8900a.o):
ip.o ip.s(42)
eth_dest (cs8900a.o):
ip.o ip.s(39)
eth_init (cs8900a.o):
ip65.o ip65.s(21)
eth_inp (cs8900a.o):
arp.o arp.s(15)
icmp.o icmp.s(52)
ip.o ip.s(34)
ip65.o ip65.s(27)
eth_inp_len (cs8900a.o):
icmp.o icmp.s(53)
ip.o ip.s(35)
eth_outp (cs8900a.o):
arp.o arp.s(17)
eth.o eth.s(12)
icmp.o icmp.s(54)
ip.o ip.s(36)
ip65.o ip65.s(28)
eth_outp_len (cs8900a.o):
arp.o arp.s(18)
icmp.o icmp.s(55)
ip.o ip.s(37)
eth_proto_arp (eth.o):
arp.o arp.s(23)
ip65.o ip65.s(34)
eth_proto_ip (eth.o):
ip.o ip.s(43)
eth_rx (cs8900a.o):
ip65.o ip65.s(29)
eth_set_broadcast_dest (eth.o):
arp.o arp.s(20)
eth_set_my_mac_src (eth.o):
arp.o arp.s(21)
eth_set_proto (eth.o):
arp.o arp.s(22)
ip.o ip.s(33)
eth_src (cs8900a.o):
ip.o ip.s(40)
eth_tx (cs8900a.o):
arp.o arp.s(19)
icmp.o icmp.s(51)
ip.o ip.s(32)
eth_type (cs8900a.o):
failed_msg (mlstub.o):
filter_dns (c64inputs.o):
filter_ip (c64inputs.o):
filter_number (c64inputs.o):
filter_text (c64inputs.o):
filter_url (c64inputs.o):
gateway_msg (mlstub.o):
get_filtered_input (c64inputs.o):
get_key (c64inputs.o):
get_key_if_available (c64inputs.o):
get_key_ip65 (c64inputs.o):
icmp_add_listener (icmp.o):
icmp_callback (icmp.o):
icmp_cksum (icmp.o):
icmp_code (icmp.o):
icmp_data (icmp.o):
icmp_echo_ip (icmp.o):
icmp_init (icmp.o):
ip.o ip.s(50)
icmp_inp (icmp.o):
icmp_outp (icmp.o):
icmp_ping (icmp.o):
icmp_process (icmp.o):
ip.o ip.s(51)
icmp_remove_listener (icmp.o):
icmp_send_echo (icmp.o):
icmp_type (icmp.o):
init_msg (mlstub.o):
ip65_ctr (ip65.o):
ip65_ctr_arp (ip65.o):
ip65_ctr_ip (ip65.o):
ip65_error (ip65.o):
udp.o udp.s(11)
cs8900a.o cs8900a.s(37)
icmp.o icmp.s(33)
tcp.o tcp.s(17)
dhcp.o dhcp.s(22)
mlstub.o ../inc/commonprint.i(22)
ip65_init (ip65.o):
mlstub.o mlstub.s(15)
ip65_process (ip65.o):
c64inputs.o c64inputs.s(13)
icmp.o icmp.s(32)
tcp.o tcp.s(40)
dhcp.o dhcp.s(31)
ip65_random_word (ip65.o):
tcp.o tcp.s(44)
ip_address_msg (mlstub.o):
ip_broadcast (ip.o):
icmp.o icmp.s(38)
ip_calc_cksum (ip.o):
udp.o udp.s(36)
icmp.o icmp.s(35)
tcp.o tcp.s(35)
ip_cksum_ptr (ip.o):
udp.o udp.s(41)
icmp.o icmp.s(44)
tcp.o tcp.s(58)
ip_create_packet (ip.o):
udp.o udp.s(38)
icmp.o icmp.s(40)
tcp.o tcp.s(37)
ip_data (ip.o):
udp.o udp.s(45)
icmp.o icmp.s(48)
tcp.o tcp.s(62)
ip_dest (ip.o):
udp.o udp.s(44)
icmp.o icmp.s(47)
tcp.o tcp.s(61)
ip_frag (ip.o):
ip_header_cksum (ip.o):
icmp.o icmp.s(45)
ip_id (ip.o):
udp.o udp.s(48)
tcp.o tcp.s(65)
ip_init (ip.o):
ip65.o ip65.s(24)
ip_inp (ip.o):
udp.o udp.s(39)
icmp.o icmp.s(36)
tcp.o tcp.s(38)
ip_len (ip.o):
udp.o udp.s(49)
icmp.o icmp.s(49)
tcp.o tcp.s(66)
ip_outp (ip.o):
udp.o udp.s(40)
icmp.o icmp.s(37)
tcp.o tcp.s(39)
ip_process (ip.o):
ip65.o ip65.s(31)
ip_proto (ip.o):
udp.o udp.s(46)
icmp.o icmp.s(41)
tcp.o tcp.s(63)
ip_proto_icmp (ip.o):
icmp.o icmp.s(42)
ip_proto_tcp (ip.o):
tcp.o tcp.s(64)
ip_proto_udp (ip.o):
udp.o udp.s(47)
ip_send (ip.o):
udp.o udp.s(37)
icmp.o icmp.s(39)
tcp.o tcp.s(36)
ip_src (ip.o):
icmp.o icmp.s(46)
tcp.o tcp.s(60)
ip_tos (ip.o):
ip_ttl (ip.o):
ip_ver_ihl (ip.o):
mac_address_msg (mlstub.o):
mul_8_16 (arithmetic.o):
native_to_ascii (c64charconv.o):
netmask_msg (mlstub.o):
ok_msg (mlstub.o):
op32 (arithmetic.o):
tcp.o tcp.s(47)
output_buffer (output_buffer.o):
dhcp.o dhcp.s(43)
press_a_key_to_continue (mlstub.o):
print (mlstub.o):
print_a (c64print.o):
mlstub.o ../inc/commonprint.i(70)
print_a_inverse (c64print.o):
print_ascii_as_native (mlstub.o):
print_cr (c64print.o):
mlstub.o ../inc/commonprint.i(71)
print_dotted_quad (mlstub.o):
print_errorcode (mlstub.o):
print_hex (mlstub.o):
print_integer (mlstub.o):
print_ip_config (mlstub.o):
screen_current_col (c64print.o):
screen_current_row (c64print.o):
sub_16_16 (arithmetic.o):
tcp.o tcp.s(54)
tcp_callback (tcp.o):
tcp_close (tcp.o):
tcp_connect (tcp.o):
tcp_connect_ip (tcp.o):
tcp_inbound_data_length (tcp.o):
tcp_inbound_data_ptr (tcp.o):
tcp_init (tcp.o):
ip.o ip.s(57)
tcp_listen (tcp.o):
tcp_process (tcp.o):
ip.o ip.s(58)
tcp_send (tcp.o):
tcp_send_data_len (tcp.o):
tcp_send_keep_alive (tcp.o):
tcp_send_string (tcp.o):
tftp_server_msg (mlstub.o):
timer_init (c64timer.o):
ip65.o ip65.s(22)
timer_read (c64timer.o):
arp.o arp.s(30)
timer.o timer.s(13)
icmp.o icmp.s(56)
tcp.o tcp.s(43)
dhcp.o dhcp.s(50)
ip65.o ip65.s(25)
timer_timeout (timer.o):
arp.o arp.s(31)
icmp.o icmp.s(57)
udp_add_listener (udp.o):
dhcp.o dhcp.s(33)
udp_callback (udp.o):
dhcp.o dhcp.s(36)
udp_cksum (udp.o):
udp_data (udp.o):
dhcp.o dhcp.s(41)
udp_dest_port (udp.o):
udp_init (udp.o):
ip.o ip.s(53)
udp_inp (udp.o):
dhcp.o dhcp.s(39)
udp_len (udp.o):
udp_outp (udp.o):
udp_process (udp.o):
ip.o ip.s(54)
udp_remove_listener (udp.o):
dhcp.o dhcp.s(34)
udp_send (udp.o):
dhcp.o dhcp.s(37)
udp_send_dest (udp.o):
dhcp.o dhcp.s(45)
udp_send_dest_port (udp.o):
dhcp.o dhcp.s(47)
udp_send_len (udp.o):
dhcp.o dhcp.s(48)
udp_send_src_port (udp.o):
dhcp.o dhcp.s(46)
udp_src_port (udp.o):

BIN
client/basic/mlstub.prg Normal file

Binary file not shown.

135
client/basic/mlstub.s Normal file
View File

@ -0,0 +1,135 @@
.include "../inc/common.i"
.include "../inc/commonprint.i"
VARTAB=$2D ;BASIC variable table storage
ARYTAB=$2F ;BASIC array table storage
FREETOP=$33 ;bottom of string text storage area
MEMSIZ=$37 ;highest address used by BASIC
CLEAR=$A65E ;clears BASIC variables
.import copymem
.importzp copy_dest
.import dhcp_init
.import ip65_init
.import cfg_get_configuration_ptr
.zeropage
temp_buff: .res 2
.segment "STARTUP" ;this is what gets put at the start of the file on the C64
.word jump_table ; load address
jump_table:
jmp init ; this should be at $4000 ie SYS(16384)
.code
init:
;set up the transfer variables IO$,IO% and ER%
;first make room
clc
lda VARTAB
adc #basic_vartable_entries_length/7
sta ARYTAB
lda VARTAB+1
adc #0
sta ARYTAB+1
ldax #basic_vartable_entries
stax copy_src
ldax VARTAB
stax copy_dest
ldax #basic_vartable_entries_length
jsr copymem
lda #14
jsr print_a ;switch to lower case
ldax #init_msg+1
jsr print_ascii_as_native
jsr ip65_init
bcs @init_failed
jsr dhcp_init
bcc @init_ok
jsr ip65_init ;if DHCP failed, then reinit the IP stack (which will reset IP address etc that DHCP messed with to cartridge default values)
bcc @init_ok
@init_failed:
print_failed
jsr print_errorcode
@init_ok:
jsr print_ip_config
exit_to_basic:
jmp set_error_var
set_error_var:
ldy #16 ;we want to set 3rd & 4th byte of 3rd entry in variable table entry
ldx #0
lda ip65_error
jmp set_var
set_io_var:
ldy #9 ;we want to set 3rd & 4th byte of 2nd entry in variable table entry
set_var:
pha
txa
sta (VARTAB),y ; set high byte
iny
pla
sta (VARTAB),y ; set low byte
rts
set_io_string:
stax copy_src
ldax #transfer_buffer
stax copy_dest
ldy #0
@loop:
lda (copy_src),y
beq @done
sta (copy_dest),y
iny
bne @loop
@done:
tya ;length of string copied
ldy #2 ;length is 2nd byte of variable table entry
sta (VARTAB),y
iny
lda #<transfer_buffer
sta (VARTAB),y
iny
lda #>transfer_buffer
sta (VARTAB),y
rts
.data
basic_vartable_entries:
.byte $49,$CF ; IO$
.byte 0 ;length 0
.word 0; pointer
.word 0 ;2 dummy bytes
.byte $C9,$CF ; IO%
.byte 0 ;initial value HI
.byte 0 ;initial value = LO
.byte 0,0,0 ;3 dummy bytes
.byte $C5,$D2 ; ER%
.byte 0 ;initial value HI
.byte 0 ;initial value = LO
.byte 0,0,0 ;3 dummy bytes
basic_vartable_entries_length=*-basic_vartable_entries
hello_world:
.byte "HELLO WORLD!",0
.bss
transfer_buffer: .res $100

View File

@ -13,7 +13,6 @@
.import io_track_no
.import io_read_sector
.import io_write_sector
.import io_read_file_with_callback
.import io_read_file
.import io_filename
@ -63,6 +62,27 @@ init:
lda #23
sta $d018
;test we can read catalogue the hard way
ldax #loading
jsr print
ldax #dir_fname
stax io_filename
jsr print
jsr print_cr
lda #01
sta io_device_no
ldax #readfile_callback
stax io_callback
ldax #$3000
jsr io_read_file
bcc :+
jsr print_error_code
rts
:
;test we can write sector to default desk
@ -395,6 +415,8 @@ read_sector:
.byte "READING SECTOR",13,0
dir_fname: .byte "$",0
read_catalogue:
.byte "READING CATALOGUE",13,0
fname: