If all goes well, then attached to this post will be a zip file with v0.1 of a C64 gopher browser.

For those who don't know, if HTTP is VHS, then "gopher" is betamax. There are still a few gopher sites around though, with a heavy retro computing bent. Apart from the "gopher.floodgap.com" site which comes up if you just hit "return" when prompted for a gopher server, you might also like to visit "retro-net.org"

C64 gopher browser v0.1

REQUIREMENTS 1) RR-NET or compatible 2) DHCP server on LAN

USAGE

When run, the program will use DHCP to assign itself an IP address, default gateway and DNS server address.

You will then be prompted for the address of a gopher server. you can enter a hostname or an ip address. If you just hit enter at this prompt, "gopher.floodgap.com" will load. NB - in the current version you can onlyenter a server name, not a specific resource on that server, or a port (the default gopher port 70 is used).

Once a gopher resource is loaded, the following keys are active:

SPACE, F7 or down arrow : scroll down to next pageF1 or up arror : scroll up to previous pageF2 : show recently visited resourceF3 or left arrow : go back to last visited resourceF5 : prompt to enter a new server (nb server name only - not resource or port)RUN/STOP : quit

If the page currently being displayed has links to further resources in it, each link will be displayed starting with a highlighted letter (e.g. the first link on a page will have an inverse "A" next to it,the 2nd link on a page will have an inverse "B" next to it etc). Press the letter assigned to the linkwill load up that resource.

ps I've just uploaded a new snapshot of ip65 up to sourceforge - this includes the source code to the gopher browser (in test/gopher_browser.s) and just enough support for TCP to handle a single client connection.

Wow! It's incredible how small it is. Can't believe you crammed everything down to 7k including the client! Amazing!

Cheers

BTW the foundation for this is MagerValp's work in developing the ip65 stack - I always end up feeling my additions stack are bloated in comparison. So plenty of room for improvement, should anyone be so motivated...

Not at all - I'm currently working on a combined gopher/http server (listens on a single port, if the request starts with a GET it assumes http, otherwise it assumes gopher).

The big design question I have is how to provide the content to be served. Current thinking is to serve files off drive #8. Files will be treated as follows:

1) PRG files are treated as binary (no conversion applied, type '9' for gopher, 'application/octet-stream' for http) - no conversion applied.2) SEQ files that end with ".htm" will be served as html (type 'h' for gopher, 'text/html' for http) - petscii-ascii conversion applied as it is sent over the network3) SEQ files that don't end with ".htm" will be served as text (type '0' for gopher, 'text/plain' for http) - petscii-ascii conversion applied as it is sent over the network

Since the gopher browser doesn't understand html or allow d/l of binary files, only the last file type will be usable to the c64 gopher browser.

If there is a file called "index.htm", it will be served as the root document for http requests.If there is a file called "index.gopher", it will be served as the root document for gopher requests.

If no root document is specified, an index of all the SEQ/PRG files in drive #8 will be created and served instead.

All disk access will be via standard kernal calls (i.e. no fastloader, although should work with JiffyDos I believe)

For some reason I can't work out the new sourceforge interface for releasing an update. I'll take that as a sign that this code ain't really ready for a full release and post hit here as a semi-private beta instead.

Still haven't got the server completed but have added telnet & gopher to the NB65 cartridge.Some notes- to get to gopher/telnet, press F3 on the main nb65 menu to get to the 'net apps' menu- on the net apps menu, f1 launches telnet and prompts for servername, f3 will launch gopher and connect direct to gopher.floodgap.com, f5 launches gopher and prompts for a server name to connect to (still no option to enter port #)- telnet doesn't do any terminal emulation. your options are: ASCII mode (i.e. a dumb terminal where each char is sent as soon as the key is pressed), line mode (where you edit a line and it sent when you hit enter) or PETSCII mode (char at a time, but no petscii<->ascii translation).- gopher client now supports resources of type 0 (text), 1(gopher), 7 (search) and 8(telnet).

I've also set up a gopher server at jamtronix.com which has a list of BBS's reachable by telnet. So you can go to that page using the c64 gopher client, and use it as a menu to select from petscii BBS's.

NB if anyone wants to make their own gopher page with telnet sites on it, if you set the 'selector' field to '/n', my gopher client will connect in 'native' (i.e. petscii) mode. If the selector is any other value, then 'ascii' mode is assumed.

Stil haven't done anything about the fact that pages > 16kb crash the client . but can't see me getting any time to work on this for a few weeks now, so figured someone might have some fun with it.

Attachments:

File comment: 16kb image for use with 64NIC+nb65_tcp_cart.zip [8.53 KiB]
Downloaded 896 times

Who is online

Users browsing this forum: Google [Bot] and 2 guests

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum