mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-05-28 05:41:28 +00:00
git-svn-id: http://svn.code.sf.net/p/netboot65/code@33 93682198-c243-4bdb-bd91-e943c89aac3b
This commit is contained in:
parent
50511a6743
commit
9acf3ff877
7
Makefile
7
Makefile
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
3
dist/make_dist.rb
vendored
|
@ -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
71
doc/README.txt
Normal 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
|
Loading…
Reference in New Issue
Block a user