git-svn-id: http://svn.code.sf.net/p/netboot65/code@33 93682198-c243-4bdb-bd91-e943c89aac3b

This commit is contained in:
jonnosan 2009-01-26 10:42:03 +00:00
parent 50511a6743
commit 9acf3ff877
6 changed files with 93 additions and 14 deletions

View File

@ -7,9 +7,12 @@ client:
clean:
make -C client clean
rm -rf dist/netboot65
rmdir dist/netboot65
rm -f dist/*.zip
dist:
ruby dist\make_dist.rb
ruby dist/make_dist.rb
distclean:
make -C client distclean

View File

@ -33,11 +33,11 @@ rrnetboot.bin: rrnetboot.o $(IP65LIB) $(C64NETLIB) $(INCFILES) ../cfg/rrbin.cfg
$(LD) -m rrnetboot.map -C ../cfg/rrbin.cfg -o rrnetboot.bin $(AFLAGS) $< $(IP65LIB) $(C64NETLIB)
ruby fix_cart.rb rrnetboot.bin
utherboot.bin: utherboot.o $(IP65LIB) $(APPLE2NETLIB) $(INCFILES) ../cfg/a2language_card.cfg
$(LD) -m utherboot.map -C ../cfg/a2language_card.cfg -o utherboot.bin $(AFLAGS) $< $(IP65LIB) $(APPLE2NETLIB)
utherboot.pg2: utherboot.o $(IP65LIB) $(APPLE2NETLIB) $(INCFILES) ../cfg/a2language_card.cfg
$(LD) -m utherboot.map -C ../cfg/a2language_card.cfg -o utherboot.pg2 $(AFLAGS) $< $(IP65LIB) $(APPLE2NETLIB)
utherboot.dsk: utherboot.bin
dsktool.rb --init dos33 utherboot.dsk -a utherboot.bin -t B
utherboot.dsk: utherboot.pg2
dsktool.rb --init dos33 utherboot.dsk -a utherboot.pg2 -t B
dsktool.rb utherboot.dsk -a hello -t A
$(BOOTA2.PG2): bootmenu.o $(IP65LIB) $(APPLE2NETLIB) $(INCFILES) ../cfg/a2language_card.cfg
@ -46,7 +46,7 @@ $(BOOTA2.PG2): bootmenu.o $(IP65LIB) $(APPLE2NETLIB) $(INCFILES) ../cfg/a2langua
clean:
rm -f *.o
rm -f rrnetboot.bin rrnetboot.map
rm -f utherboot.bin utherboot.map utherboot.dsk
rm -f utherboot.pg2 utherboot.map utherboot.dsk
rm -f $(BOOTA2.PG2)
distclean: clean

View File

@ -9,7 +9,9 @@
.include "../inc/commonprint.i"
.include "../inc/net.i"
.import cls
.import exit_to_basic
.import copymem
.importzp copy_src
.importzp copy_dest
@ -131,11 +133,13 @@ init:
ldax #startup_msg
jsr print
jsr print_cr
; init_ip_via_dhcp
; bcs bad_boot
jsr print_ip_config
jmp exit_to_basic
.rodata
startup_msg: .byte "NETBOOT65 MENU FOR APPLE 2 V0.1",0
startup_msg: .byte "NETBOOT65 FOR APPLE 2 V0.1",13
.byte "SEE README.TXT FOR MORE INFO (INCLUDING",13
.byte "HOW TO RUN SOMETHING MORE INTERESTING)",13
.byte 0

Binary file not shown.

3
dist/make_dist.rb vendored
View File

@ -4,7 +4,7 @@ require 'ftools'
WORKING_DIR=File.expand_path(File.dirname(__FILE__)+"/netboot65")
SRC_DIR=File.expand_path(File.dirname(__FILE__)+"/../")
["","client","lib","bin","boot"].each do |dir_suffix|
["","client","lib","bin","boot",].each do |dir_suffix|
dir_path="#{WORKING_DIR}/#{dir_suffix}"
Dir.mkdir(dir_path) unless File.exist?(dir_path)
end
@ -15,6 +15,7 @@ end
["server/bin/tftp_only_server.rb","bin/tftp_server.rb"],
["server/bin/import_ags_games.rb","bin"],
["server/boot/BOOTA2.PG2","boot"],
["doc/README.txt",""],
].each do |args|
src="#{SRC_DIR}/#{args[0]}"
dest="#{WORKING_DIR}/#{args[1]}"

71
doc/README.txt Normal file
View File

@ -0,0 +1,71 @@
NETBOOT65
TO USE:
1) unzip the archive somewhere on your local hard drive
2) start the bin/tftp_server.rb script (e.g. by double-clicking on it)
3) boot up the client/utherboot.dsk (either in AppleWin, or using ADTPro to transfer to a real Apple 2 disk)
When Utherboot.dsk boots, it runs a program called "UTHERBOOT.PG2" that does the following
- checks for an uthernet in slot 3
- broadcasts a DHCP request to get an IP address allocated
- broadcasts a TFTP request for a directory listing for anything matching "*.PG2"
- displays a menu containing whatever files the TFTP server lists as available.
- Once a file is selected, it is downloaded via TFTP, and executed
ADDING MORE FILES
Only single-load files can be used (this may change in a future release). The files need to be in "PG2" format, which is essentially a DOS 3.3 Binary file.
The first 2 bytes of the file must be the load address (little-endian, i.e. low/high), and then the next 2 bytes must be the file length (excluding the 4 byte
header). The files also need to have a file extension of ".PG2" (in upper case, if your operating system of choice is case sensitive).
If you use CiderPress (http://ciderpress.sourceforge.net/) to extract files from a DSK image, they will not be in the correct format, however there is
a script that will convert such files (including, for example, the games supplied with the Apple 2 Game Server - http://a2gameserver.berlios.de/).
If you run bin/import_ags_games.rb and specify the path to a folder containing files extracted with CiderPress, e.g. the Apple 2 Game Server "games"
directory, a copy of all the games will be placed in the boot/ folder (converted to the appropriate format) - NB due to a limitation in the menu
selection code, only the first 128 PG2 files in the boot/ folder can be selected.
Alternatively, you can use dsktool.rb (http://dsktool.rubyforge.org/) to extract files - it will retain the appropriate file header during the extraction.
For example, to extract the "DIG DUG" game from the online copy at http://mirrors.apple2.org.za/ftp.apple.asimov.net/images/games/action/digdug.dsk.gz, do
the following:
1) cd to the netboot65/boot folder
2) execute 'dsktool http://mirrors.apple2.org.za/ftp.apple.asimov.net/images/games/action/digdug.dsk.gz -e "DIG DUG" -o DIGDUG.PG2'
REQUIREMENTS:
1) Uthernet in slot 3 (to use under AppleWin, you will need winpcap installed)
2) a DHCP server on your network
3) a working ruby installation
LIMITATIONS:
These may be fixed in a future release.
- Uthernet must be in slot 3
- Only single-load programs supported
- Only BRUNable files supported (i.e. not Applesoft or Integer BASIC)
- No more than 128 programs will be displayed in the menu
- no HGR font, starfield or plinkity plonkety "music"
- No C64 support
CREDITS:
IP65 - lightweight IP+UDP stack written in CA65 assembler, by Per Olofsson - http://www.paradroid.net/ip65
TFTP extension to IP65 - Jonno Downes - jonno@jamtronix.com
INSPIRATION:
Apple 2 Game Server - http://a2gameserver.berlios.de/
AppleWin - http://applewin.berlios.de/
comp.sys.apple2 regulars - http://groups.google.com.au/group/comp.sys.apple2/
LICENSE:
NETBOOT65 is licensed under the same terms as IP65, the Mozilla Public License Version 1.1.
For details, please visit http://www.mozilla.org/MPL/
SOURCE CODE:
Available at http://sourceforge.net/svn/?group_id=250168
HISTORY:
First alpha release - 2009-01-26 (Australia Day long weekend).
AUTHOR:
Jonno Downes - jonno@jamtronix.com