From a44a57fe47c4781c0fb5b3f715973bfc0a63acf2 Mon Sep 17 00:00:00 2001 From: jonnosan Date: Fri, 30 Jul 2010 13:51:38 +0000 Subject: [PATCH] basic stub git-svn-id: http://svn.code.sf.net/p/netboot65/code@256 93682198-c243-4bdb-bd91-e943c89aac3b --- client/basic/Makefile | 37 +++ client/basic/basml.bas | Bin 0 -> 215 bytes client/basic/basml.bas.bak | Bin 0 -> 179 bytes client/basic/basml.d64 | Bin 0 -> 174848 bytes client/basic/mlstub.map | 610 +++++++++++++++++++++++++++++++++++++ client/basic/mlstub.prg | Bin 0 -> 6709 bytes client/basic/mlstub.s | 135 ++++++++ client/test/test_disk_io.s | 24 +- 8 files changed, 805 insertions(+), 1 deletion(-) create mode 100644 client/basic/Makefile create mode 100644 client/basic/basml.bas create mode 100644 client/basic/basml.bas.bak create mode 100644 client/basic/basml.d64 create mode 100644 client/basic/mlstub.map create mode 100644 client/basic/mlstub.prg create mode 100644 client/basic/mlstub.s diff --git a/client/basic/Makefile b/client/basic/Makefile new file mode 100644 index 0000000..e080ed4 --- /dev/null +++ b/client/basic/Makefile @@ -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 *~ diff --git a/client/basic/basml.bas b/client/basic/basml.bas new file mode 100644 index 0000000000000000000000000000000000000000..5e589f33de4f36a6bd267117b45a3766de37a3ac GIT binary patch literal 215 zcmZSN;OAgu=vIi>WVqbWz<@!VgNdQj(11akgOy>5f|7%klVh;2kCKjsRRe=72NwfS zomIa=uxp4ykgJcsqlWVqbWz<@!VgNdQj(11akgOy>5f|7%klVh;2kCKjsRRe<^2N%P1 zQ&SxStLdg@I+kWua~L8x_!)p&t@;&$T|*RtTz&i7W9NigGIYby-HXYJ1v^3LX zXylM&n5hJk^z?IAa0~MHRd5ON40Bboc43&#A;&OT$=4@1B-BYSAjn-w$3@4GVJSxn XREMjJ62k_LJcfBjCZ^_Q3=9ka_NXZ` literal 0 HcmV?d00001 diff --git a/client/basic/basml.d64 b/client/basic/basml.d64 new file mode 100644 index 0000000000000000000000000000000000000000..89a906d48248417bd33e2de6a087b8232d515d1e GIT binary patch literal 174848 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 + 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 + diff --git a/client/test/test_disk_io.s b/client/test/test_disk_io.s index 28c14f1..87361ff 100644 --- a/client/test/test_disk_io.s +++ b/client/test/test_disk_io.s @@ -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: