View Single Post
Old 15 November 2005, 21:32   #1
Posts: n/a
A600HD, 1 meg of ram, AMOS, and networking...

My problem is kinda obscure, but then again, when my problem isn't that obscure, I can usually figure it out myself... So, gentlemen (and ladies, if any) I need advice.

Back in the days of yore, I had an A500 with a 512k ram expansion, which spent most of it's day running an AMOS application, (essentially, a home automation user interface with bells and whistles) connected by null modem to a PC, and regularily exchanging messages. Said AMOS application would suck up most of RAM and resources of the machine. Eventually that A500 died.

Now I managed to get my hands on A600HD, with a 512k RAM expansion, giving me 1 meg of RAM total, again. I also happened to have a PCMCIA network card, which works fine in that particular Amiga.

I want to modify my AMOS program so that it would exchange messages not over the serial port, but over the net instead, since the backend was written for OS/2 back then and I'd need to rewrite it anyway to resurrect this application. This, however, presented me numerous complex problems:

1) 1 meg of ram is not much. There's no hope whatsoever to get an accelerator or a simple expansion board. I got AmiTCP 2.3 working, however, this leaves me with 512k free memory, leaving me with nothing to debug the program. (the compiled version works fine with AmiTCP loaded, though). There is no way to go back to the non-Pro AMOS to cut back on ram either, cause I need the new instructions. The communication needs are very minor - I just need to send text lines back and forth, and there's no real need for speed at all. Which tcp/ip stack implementation and which version takes up the least ram?

2) I have found at most four ways to make an AMOS program communicate over the net:
  • Open an ARexx socket and make an ARexx script do the net communication and send messages to the AMOS Program, with rxsockets.library. This did not work with AmiTCP 2.3 and I'm not sure I have the ram for a newer version.
  • Get the Amiga to mount a shared NFS or Samba drive and read-write files on it. I dropped that one cause it looked like it'd suck up even more memory than any other one. Could it be that I'm wrong somehow?
  • Try the GUI extension for AMOS Pro (GuiExt162.lha on aminet) which includes some TCP communication commands. Unfortunately, for some reason I can't get the program to compile properly with this. Can anyone tell me what do I need to do beside adding it into the extension list? I don't really need a 'system friendly' application which is that extension's patches to the compiler are all about, so I'd rather not mess with a patched compiler at all.
  • Use the procedures found in BSDSocket.lha (see aminet) to communicate to bsdsockets.library directly from the AMOS program and forget about anything else. This would work best! However, the procedures given in this file make use of some unknown AMOS extension, and I can't for the life of me figure out which one it is. It provides some instructions to coax double word numbers into two-byte and four-byte strings, which is needed to make calls to bsdsockets.library. Can anyone shed any light on that?
These problems can possibly be solved easily throuh emulation, yes. However, I'd rather go back to serial port communications, than go straight on to emulate stuff. I'd rather not try to rewrite this in Blitz either.
Page generated in 0.03907 seconds with 10 queries