Jamtronix

June 28, 2009

tcp ambitions

Filed under: Uncategorized — jonnosan @ 11:07 am

I’ve decided to have a crack at RetroChallenge 2009 - my project will be to add TCP to the ip65 IP stack for the C64 and other 6502 computers.

I’ve made a bit of progress already (visible in the netboot65 SVN repository).  I’ve made a few design compromises - these are more the result of limitations in the language of choice (6502 assembler) rather than the C64 itself, as proven by the existance of uIP -  a full featured TCP/IP stack (written in C) for that includes the C64 in its many targets.

Here’s the shortcuts I’m taking:

  • Only a single TCP connection can be active at once (but can be initiated in either direction)
  • No IP fragment reassembly
  • No buffering - the “tcp_send” command won’t return to the caller until the other side has ACKed the data that was sent.

Only allowing a single TCP connection to be active at once makes the coding much much easier and as far as I can determine, the only application that would be renderd impossible as a result is FTP (which uses 1 connection for commands, and a seperate connection for data).

May 9, 2009

Filed under: Uncategorized — jonno @ 12:25 pm

I came across Don Hodges’ website, which is one of those that divide the world in 10 kinds of people (those that understand binary, and those that don’t). I’m going to skip over his commentary on George Bush and get straight to the good bits, scholarly dissections (with bugfixes!) of kill screens and other ‘undocumented features’ of  primordial video games.

May 2, 2009

hosting etc

Filed under: Uncategorized — jonnosan @ 12:48 pm

This is my first post with wordpress - I’ve shifted over from movable type as part of a move to a new hosting provider.  There were two motivations for shifting - firstly, the provider I’d previously been hosting peekbot on seems to have recently done some kind of upgrade, at the end of which peekbot stopped working (specifically, the X-Sendfile feature in apache, which peekbot uses heavily, was broken - all files seemed to be prepended with a CR/LF which made (for example) png files unviewable). The second motivation was, I wanted to host a public ‘netboot65‘ server. This needed a clear (no firewall) channel to port 69 (tftp port) and root access to bind to said port, which wasn’t available on my previous shared server host.

So I’ve shifted to linode which seems pretty darn good. But I haven’t been able to get my public netboot65 server working - I can send & receive individual files OK, but I never get a response to a directory listing, even though I can see (via Wireshark on my PC, and tcpdump on the remote host) that the directory requests are getting to the server, and a response is being sent out. I believe now that my broadband router is discarding these responses, although oddly enough file transfers in both directions work fine. I suspect the problem will turn out to be due to NAT issues - in the tftp protocol the udp port that the server uses when sending stuff back to the host is not the same as the udp port that the client sends the original request to (read last part of section 15.3 of TCP Illustrated Vol 1 for an explanation of why) so the router needs to be a bit clever about how it matches up inbound packets (with the NATed host. It may well be that whatever trickery my router uses to know when to do some special handling for tftp requests only kicks in when the tftp opcode is a read or write. I could probably set up some custom NAT rules on my router and make it work, but then anyone else wanting to try netboot65 would need to do the same, which will be a drag, so I think the right thing to do is move away from using a custom opcode for directory listings, and instead use a RRQ but a special filename, e.g. “$.prg” for a directory listing of all .prg files.

April 25, 2009

netboot65 update

Filed under: Uncategorized — jonno @ 8:51 pm

I’ve been working on an update to netboot65, with an aim to getting a ‘1.0′ release out when the first lot of 64NIC+ carts go out.

The 64NIC+ cart is a project initiated on retrohackers.com that offers an RR-NET compatible ethernet interface, plus a 16KB EPROM socket. There seems to be a nicely symbiotic relationship between this cart and netboot65 - the latest netboot65 release will include an 8KB image that can be burned into an EPROM (probably with CBM BASIC in the upper 8KB) that 

  • allows any ’single load’ program (up to about 47KB in size) to be downloaded via TFTP and immediately executed,
  • provides an API (called the NB65 API) that programs can use to write UDP based applications without being tied to a specific MAC and IP address, or a specific device type ( the A2 and C64 IP libraries I am familiar with are all tied to a single device type and all require each program to specify MAC and IP address). If this API gets some support, that may encourage future development of different network interfaces that are not simply cs8900a based RR-NET clones (for example, a wifi cart would be nice).

The API is documented as a word doc in the NB65 API Technical Reference

March 21, 2009

new ip65 release

Filed under: Uncategorized — jonno @ 4:55 pm

I’ve just made a new ip65 release available for download from sourceforge

ip65 is an IP stack for 6502 based computers, with support for UDP/DHCP/DNS & TFTP, but not yet TCP .

Recent changes:

March 8, 2009

FPGA links

Filed under: Uncategorized — jonno @ 1:48 pm
  • Stanford Advanced Logic Design Laboratory - tutorials, course notes, verilog crib sheet - excellent resources, slightly dated (2003)
  • FPGA 4 Fun - great site, easy to understand theory + lots of examples
  • Wikipedia articles on FPGAs and Verilog
  • Digilent - cheap and good starter boards
  • Xilinx download page - ISE webpack is a free IDE for FPGA development
  • OPENCORES  - open source hardware, mix of Verilog & VHDL designs (free rego required to download any files)
  • WISHBONE - open ’system on a chip’ bus (for connecting different FPGA modules in a single project).  Hosted by OPENCORES, so you need to sign in to d/l anything including the WISHBONE spec.
  • FPGA Arcade - recreating gaming hardware from the past in  FPGAs
  • ZXGATE -Old Computers in new FPGAs
  • Accolade VHDL Reference Guide

 

February 8, 2009

rixplore update

Filed under: Uncategorized — jonno @ 8:54 pm

I’ve just released version 0.7.2 of ripxplore (a command line tool and supporting ruby library for exploring disk images for Apple 2, C64, TRS-80, et al).

The major change was to incorporate the create/update/delete features from my previous ‘dsktool’ project. This means Apple DOS and Apple CPM file systems can be initialised and files added or removed from it. I’ve also added the ability to create a blank ‘Beautiful Boot‘ dsk image. As an example of how and why this is done, here’s an excerpt from the Makefile used to build a dsk with differest test apps on it I’m using to test different parts of the netboot65 code:

ip65test.dsk: testdns.pg2 testdottedquad.pg2
  ripxplore.rb –init BeautifulBoot ip65test.dsk -a testdns.pg2 -t AppleBinary
  ripxplore.rb ip65test.dsk -a testdottedquad.pg2 -t AppleBinary

If you’ve installed a previous version of ripxplore, you can update to 0.7.2 by typing ‘gem update ripxplore’ at a command prompt.

If you want to install ripxplore for the first time, you will first need to install ruby then once ruby is installed correctly, type ‘gem install ripxplore’ at a command prompt.

January 26, 2009

australia day linkfest

Filed under: Uncategorized — jonno @ 10:57 am

rands makes a frank disclosure : My management career began with a misunderstanding.

Deckard dissects Beautiful Boot  (in french, here’s the google translation)

 

November 26, 2008

meme du jour

Filed under: Uncategorized — jonno @ 6:56 pm

The Jamtronix Wordle:

Wordle: jamtronix 

November 9, 2008

introducing peekbot

Filed under: vintage — jonno @ 2:35 pm

peekbot is an attempt to make vintage computing artifacts visible to the modern intarweb.It is a web proxy that allows navigation through online collections of disk images. For disk images in formats which peekbot understands, the file system contained on that disk image can be explored.
Many of the common file types found in the file systems can be converted to a format that can be viewed in a browser.For example, tokenised BASIC files can be listed as ASCII, or (some) old graphic formats converted to PNG.There is also a track/sector viewer, and any file found on a disk image can be viewed as a hex dump.

peekbot is based on ripxplore, a ruby library for identifying and extracting data from disk images [ripxplore is a substantial reworking of dsktool - I have attempted to make it much more modular, to allow plug-ins to be developed for different file systems and file types. It also now understands C64, Atari and TRS80 disk images and file systems, whereas dsktool was Apple 2 specific]

here’s some simple steps to try it out:

0) go to the peekbot home page - http://peekbot.jamtronix.com/
1) click on "Apple 2 image collections mirrored at apple2.org.za" from the list of disk image archives
2) click on "ftp.apple.asimov.net/" under "Navigation Options"
3) click on "images/" under "Navigation Options"
4) click on "communications/" under "Navigation Options"
5) click on ‘explore’ to the left of ‘hacking_construction_set.dsk.gz’ (under ‘Peekable Images’), to get a list of all files on that disk.

From that files list, you can
 - click on ‘PNG’ to the left of ‘HCS Title’ (under "files") to see the HCS Logo as a PNG
 - click on ‘LISTING’ to the left of ‘HCS BOOT’ to see the Applesoft BASIC listing
 - click on ‘TEXT’ to the left of ‘HCS DOCS’ (under "files") to see the HCS AppleText docs as ASCII

HELP WANTED

peekbot is very much a work in progress. I am putting this version out now as a ‘proof of concept’, and to see if anyone finds it intersting enough to help work on it.

Areas where assistance would be most valuable:

1) web design. peekbot uses camping, with markaby + css for layout, so hopefully someone with css chops could make it look much slicker without too much effort. I’m sure the UI and navigation could be much improved as well - I am a humble backend hack so would be very happy to work with anyone who knew how to make a web app easy to use.

2) plug-ins for image formats (especially .sdk), file systems, and native file types. My goal for ripxplore is to have everything in 100% native ruby for maximum portability, and the framework is convoluted and not yet well documented, so it’s probably a bit early for anyone but a masochist ruby freak to try writing a plugin unaided, but I would be happy to work with anyone interested, or else if someone has some images they’d particularly like to see peekbot interpret, and can give specs or source code i can convert, that would be great too.  There is a heap of opporunity for the C64 particularly, including converters to detect various image formats and render as PNG.

3) disassemblers. Currently ripxplore includes a 6502 disassembler, and I am debugging a Z80 diassembler for a future release. However it is not a very intelligent disassembler, and makes no attempt to determine what parts of a program file are code and what is data.

4) documentation - how to use the website, how to use ripxplore for specialised conversion and extraction tasks (e.g. I have a ruby script that generates a PDF map with room names & contents for a "Sword Thrust" disk) & how to write a plugin.

if you’re interested in helping with any of the above, send an email to jonnosan at gmail dot com

 

Older Posts »

Powered by WordPress