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

This commit is contained in:
jonnosan 2009-04-19 03:09:50 +00:00
parent 028a1f135b
commit 1dc0f9a5cd
6 changed files with 153 additions and 110 deletions

View File

@ -25,11 +25,12 @@ end
puts "#{@progname} <image> <option> <value> [<option> <value> ..]"
puts "multiple options may be set"
show_options
true
end
number_of_options=ARGV.length
usage unless number_of_options>=3
usage unless (number_of_options%2) ==1 #must be an odd number of options
usage && exit unless number_of_options>=3
usage && exit unless (number_of_options%2) ==1 #must be an odd number of options
filename=ARGV[0]
if !(FileTest.file?(filename)) then
puts "file '#{filename}' not found"

21
dist/make_dist.rb vendored
View File

@ -8,24 +8,31 @@ require 'ftools'
WORKING_DIR=File.expand_path(File.dirname(__FILE__)+"/netboot65")
SRC_DIR=File.expand_path(File.dirname(__FILE__)+"/../")
["","nb65","lib","bin","boot","doc","inc","examples"].each do |dir_suffix|
["","a2","c64","lib","bin","boot","doc","inc","examples"].each do |dir_suffix|
dir_path="#{WORKING_DIR}/#{dir_suffix}"
Dir.mkdir(dir_path) unless File.exist?(dir_path)
end
[
["client/nb65/utherboot.dsk","nb65/"],
["client/nb65/nb65_rrnet.bin","nb65/"],
["client/nb65/nb65_c64_ram.prg","nb65/"],
["client/nb65/nb65_std_cart.bin","nb65/"],
["client/nb65/utherboot.dsk","a2/"],
["client/nb65/set_ip_config.rb","bin/"],
#["client/nb65/nb65_rrnet.bin","c64/"],
["client/nb65/nb65_c64_ram.prg","c64/"],
["client/nb65/nb65_std_cart.bin","c64/"],
["client/nb65/d64_upload.prg","boot/"],
["server/lib/tftp_server.rb","lib"],
["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","doc"],
["doc/nb65_technical_reference.doc","doc"],
["doc/README.Apple2.html","a2"],
["doc/README.C64.html","c64"],
["doc/nb65_api_technical_reference.doc","doc"],
["client/inc/common.i","inc"],
["client/inc/nb65_constants.i","inc"],
["client/examples/dasm_example.asm","examples/"],
#["client/nb65/d64_upload.s","examples/"],
#["client/nb65/nb65_skeleton.s","examples/"],
].each do |args|
dest="#{WORKING_DIR}/#{args[1]}"
Dir["#{SRC_DIR}/#{args[0]}"].each do |src|

70
doc/README.Apple2.html Normal file
View File

@ -0,0 +1,70 @@
<h1>NETBOOT65 FOR THE APPLE ][</h1>
<h2>TO USE</h2>
<ol>
<li>unzip the archive somewhere on your local hard drive
<li>start the bin/tftp_server.rb script (e.g. by double-clicking on it)
<li>boot up the client/utherboot.dsk (either in AppleWin, or using ADTPro to transfer to a real Apple 2 disk)
</ol>
When Utherboot.dsk boots, it runs a program called "UTHERBOOT.PG2" that does the following
<ul>
<li>checks for an uthernet in slot 3
<li>broadcasts a DHCP request to get an IP address allocated
<li>broadcasts a TFTP request for a directory listing for anything matching "*.PG2"
<li>displays a menu containing whatever files the TFTP server lists as available.
<li>Once a file is selected, it is downloaded via TFTP, and executed
</ul>
<h2>ADDING MORE FILES</h2>
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).
<p>
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.
<p>
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:
<ol>
<li>cd to the netboot65/boot folder
<li>execute 'dsktool http://mirrors.apple2.org.za/ftp.apple.asimov.net/images/games/action/digdug.dsk.gz -e "DIG DUG" -o DIGDUG.PG2'
</ol>
<h2>REQUIREMENTS</h2>
<ul>
<li>Uthernet in slot 3 (to use under AppleWin, you will need winpcap installed)
<li>a DHCP server on your network
<li>a working ruby installation
</ul>
<h2>LIMITATIONS</h2>
These may be fixed in a future release.
<ul>
<li>Uthernet must be in slot 3
<li>Only single-load programs supported
<li>Only BRUNable files supported (i.e. not Applesoft or Integer BASIC)
<li>No more than 128 programs will be displayed in the menu
<li>no HGR font, starfield or plinkity plonkety "music"
</ul>
<h2>CREDITS</h2>
<li>IP65 - lightweight IP+UDP stack written in CA65 assembler, by Per Olofsson - http://www.paradroid.net/ip65
<li>TFTP extension to IP65 - Jonno Downes - jonno@jamtronix.com
<h2>INSPIRATION</h2>
<li>Apple 2 Game Server - http://a2gameserver.berlios.de/
<li>AppleWin - http://applewin.berlios.de/
<li>comp.sys.apple2 regulars - http://groups.google.com.au/group/comp.sys.apple2/
<h2>LICENSE</h2>
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/
<h2>SOURCE CODE</h2>
Available at http://sourceforge.net/svn/?group_id=250168
<h2>AUTHOR</h2>
Jonno Downes - jonno@jamtronix.com

View File

@ -1,71 +0,0 @@
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

66
doc/README.C64.html Normal file
View File

@ -0,0 +1,66 @@
<h1>NETBOOT65 FOR THE C64</h1>
<h2>STARTING THE SERVER</h2>
<ol>
<li> unzip the archive somewhere on your local hard drive</li>
<li>start the bin/tftp_server.rb script (e.g. by double-clicking on it)</li>
</ol>
<h2>TO USE WITH VICE</h2>
Run VICE with the nb65_std_cart.bin cartridge image attached (e.g. "x64.exe -cart8 nb65_std_cart.bin")
<h2>TO USE WITH A REAL C64</h2>
<h3>Option 1 - Hardcore</h3>
burn the nb65_std_cart.bin cartridge to an EPROM and insert in an 8KB cartridge (which should be set up to have EXROM=0, GAME=1)
<h3>Option 2 - Just dabbling</h3>
You can just run the nb65_c64_ram.prg program (which is essentially the cartridge image plus a loader prg to insert the image into the right place in RAM).
<h2>USING THE CARTRIDGE</h2>
When the cartridge starts, it will attempt to configure the IP stack via DHCP. If the DHCP config fails (either by timing out, or the user press RUN/STOP)
then the IP stack will fall back to using the IP configuration built into the cartridge. See the section "IP CONFIGURATION" for info on how to modify the
cartridge defaults prior to burning an image.
<p>
Once the IP stack is initialised, the "main menu" screen will be displayed. From the main menu, the following options are available:
<ul>
<li>F1 : TFTP BOOT. THis will query a TFTP server for a list of PRG files, and allow the selection of a file to be downloaded and executed.</li>
<li>F3 : BASIC. This will exit to BASIC (with IP stack still configured, so NB65 aware apps can be loaded from disk and run)</li>
<li>F5 : UTILITY. This brings up a 'utility' menu - as of v0.5 of the cartridge, the only utility option is to display the ARP cache</li>
<li>F7 : CONFIG. This brings up a menu where the IP configuration can be modified. Changes made here will be persistent until the next reboot.</li>
</ul>
<h2>IP CONFIGURATION</h2>
There is a script in the "bin" folder called "set_ip_config.rb" that can be used to modify the MAC address and IP config details in the cart image before
it is burned. For example, to set the MAC address and DNS servers, use this command:
<pre>set_ip_config.rb nb65_std_cart.bin mac ab:cd:ef:12:34:56 dns 10.5.1.1</pre>
run "set_ip_config.rb" with no parameters to see all the options for what can be configured.
<h2>ADDING MORE FILES</h2>
Only single-load files can be used (this may change in a future release). The files need to be in "PRG" format, i.e.the first 2 bytes of the file must be
the load address (little-endian, i.e. low/high). The files also need to have a file extension of ".PRG" (in upper case, if your operating system of choice
is case sensitive).
<p>
Files need to be placed in the 'boot/' folder.
<p>
Due to a limitation in the menu selection code, only the first 128 PRG files in the boot/ folder can be selected.
<h2>REQUIREMENTS</h2>
<ol>
<li>RR-NET or compatible adaptor (to use under VICE, you will need pcap or winpcap installed)</li>
<li>(RECOMMENDED) a DHCP server on your network</li>
<li>a working ruby installation</li>
</ol>
<h2>LICENSE</h2>
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/
<h2>SOURCE CODE</h2>
Available at http://sourceforge.net/svn/?group_id=250168
<h2>AUTHOR</h2>
Jonno Downes - jonno@jamtronix.com

View File

@ -1,30 +0,0 @@
NETBOOT65
TO USE WITH VICE:
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) run VICE with the rrnetboot.bin cartridge attached (e.g. "x64.exe -cartrr clients\rrnetboot.bin")
When rrnetboot.bin boots, it does the following
- broadcasts a DHCP request to get an IP address allocated
- broadcasts a TFTP request for a directory listing for anything matching "*.PRG"
- 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 "PRG" format, i.e.the first 2 bytes of the file must be
the load address (little-endian, i.e. low/high). The files also need to have a file extension of ".PRG" (in upper case, if your operating system of choice
is case sensitive).
Files need to be placed in the 'boot/' folder.
Due to a limitation in the menu selection code, only the first 128 PRG files in the boot/ folder can be selected.
REQUIREMENTS:
1) RR-NET or compatible adaptor (to use under VICE, you will need pcap or winpcap installed)
2) a DHCP server on your network
3) a working ruby installation