Skip to main content
Home▸ Forums▸ 68kMLA▸ Web server for Macintosh 512K
Thread

Web server for Macintosh 512K

68kMLA Networking 55 posts Jan 15, 2015 to Jun 15, 2017
I was able to get my Macintosh 512K web server running and on the internet for current RetroChallenge.  It is running System 2.0/Finder 1.1g  with 64K ROMs.  Here is a link to my web page with a link to the server.:

http://apple-crapple.blogspot.com/2015/01/mac-512k-on-internet.html

It is still running the default lwIP web page.

I am pretty close to getting it to run in 128K, but it is still a little too big. It runs easily in a virtual 256K Mac.

Let me know how well, or if, it works.

Yes it does work.

What a great achievement. I'm really flabbergasted!

I'm working now for 25 years with old Mac's and never have seen something like this before!

A web server on a 512K! This is what I see in the header:

Status: HTTP/1.0 200 OK
Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip)
Content-type: text/html
I have tried myself to achieve something with a web server. My best effort was a rebuild of the Pascal code for TCTExample to a kind of web server:

https://68kmla.org/forums/index.php?/topic/21029-help-with-tcpexample-in-pascal/

But on a 512K.... GREAT! It means you get TCP/IP running on one of the smallest equiped Mac's. I'm looking forward to your effort on a 128K.

Could you share a disk image if possible? I would really love to try it!

I will read you blog about this all!

An other question. You talk about emulated 512K. What do you use for that? Basilisk II?

I am planning on getting a distribution ready this weekend. The server is currently running on a REAL original Macintosh0, upgraded to 512K RAM.  I have been doing some testing on Mini vMac with some modifications I adapted to support the mac serial ports (see my web site). I have been using that to test it on a virtual128K (which doesn't work yet) and a virtual (and nonexistant) 256K Mac (which does appear to work).

I will try to get a whole image together with the modified Mini vMac and a 400K disk with the program on it.   

Great! I'm really looking forward to test it. On my Linux box I have a null modem cable to a 512K Mac and I once did a SLIP connection on that. See:

http://macintosh.vanegten.com/?p=193

Never tried a PPP, but I guess that will be the trick to get to the 512K. I will read your web site how you setup the PPP connection in the first place.

Great developments being made - I admire your talent

Wow very cool, you should post a more detailed tutorial on how to do this with some scripts.

I have the book PISM - Providing Internet Services on Macintosh (circa 1999), and I used run web service on classic Macs, and other services (Email, FTP, Gopher, Unix-like Talk Chat/IRC, and so on) for the community center computer room I a running then. Much of the software can run on a Mac 512K on System 6.04, though they could use a lower system but I never tried it on a lower system. Years later I also had the book Running MacHTTPD - which was a tiny version public domain version of Webstar 4.0. Throw in a few plug-ins, and it was "Kick Ass" on what one can do with an old Mac!

If it counts, I still run Webstar 5.0 on my old Duo 210 for experiments and cgi coding practice. It's been running that since 2002, and MacHTTPD since the late 1990s.

I am quite sure 64K ROMs cannot run System 6, or MacTCP.  You had it easy with a '512Ke'.

That depends. I need to re-research what I have. There was a TCP stack for System 6 that as not MacTCP, using AppleTalk 2.0. AppleTalk 1.0 would not work with it as I remember, because the buffer sizes were too small and its bandwidth too slow.

I still have much of my original software and the two books.

What system is the Mac 512K on?

It runs System 2.0 / Finder 4.1 on an unmodified 512K. So on a 400k disk.

I started to test on a modified 512K ( 1024K on board) , but switched to my unmodified.

It runs really fine!

I have run it on lower finder/ system versions too. The calls are all for the original ROMs, nothing system specific. RAM is the only limitation right now.

OK! Put my 512K on the Internet now. You can see it on:

http://512k.macip.net

Had to do some ugly way with netcat to get it pass all of my routers.... but it works!

(only no image because it has a relative URL in it.... but that's a minor detail.)

The page is grabbed live from the Mac 512K... Will try to keep him online next 24 hours....

And offline again due to maintenance.

I recommend sticking it behind nginx IMHO

Could you provide an example how to do this in ngnx?

Wowww! Very very COOL!

I hope for some more memory saving tricks!

Hi Eric,

Could you send me a .sit of ElWhip 06??? I have no modern Mac... so .sit is more easy then tar.gz....

Thanks!! I will test it on my Mac 128K

Your video is great. I am glad somebody is using it!

Another test on a Macintosh 128K. Now with a rock bottom System 1.0 and Finder 1.0. Works!!

One strange thing.....

It comes up with a 404 ...not with the index.html as you should expect.

What could be the explanation?

See for yourself:

http://youtu.be/Wu2uu8qvQ1M

Did you use your own html or the ones that came with the program? Double check the http header of the html, and make sure it is 200 report code. Telnet to port 80, and

GET /

enter, enter

HMMMMMMMMMMMMMM simpel and stupid mistake!!!

The index.html was not copied...... :lol:

So I will correct that....now........

30 seconds later... YES!!! WORKS!!!!

So System 1.0 and Finder 1.0....running FINE!

I connected my 128K to the Internet. You can see ElWhip up and running at this address:

http://128k.macip.net/

If you have seen the page...honk!

Works in a "normal" browser....not in lynx. Probably something with the port forwarding.

Please don't hammer it.......

Will be up today.

Nice Job! This has been a 2 month project of mine, so it is really great to see it up and running on a real Mac 128K.

FYI: Safari is stalling about 3/4 way through that page and keeping the connection open.  If I use TELNET, it looks correct, except I do not see the HTTP header (which may be the problem with Safari).

You should consider putting a fan on it it you are running it full time, like a Kensington System Saver or a Fanny Mac.   

Going offline now. Bed time. Won't leave it on at night.

I will close down the 128K web server. My 128K is having trouble to start. Sometimes the screen stays black. A slap helps.....

I did some soldering this afternoon. It is more stable now but, I had to boot more then ones, so it is not over. I'm afraid I have to do this soldering over and the very carefully..... So I'm giving it some rest for now.

I have a log on the port forwarding and can see that my web server is visited 160 times. But...half of the visits are mine... :)

It was a nice project and hope to see more of these TCP/IP Mac stuff. It is really my peace of cake!

Looks like you got bitten by the hardware failure related to age bug. Time to service the analog board. 

This is one bug that not 1 person in this entire world collecting these machines will avoid. ;)

I had a very similar problem with my 128k a while back.  A slap would make it work for a while.  The transistor (?) at CR-1 had a cracked solder joint.

Thank you guys!

I have been soldering the three connectors and it seems to do the trick. I'm not that good in it but.....it works!

I will give the machine some rest now!

I shifted a bunch more PPP code into a segment that I can unload.  I will see if I can fit dynamic headers in.  This will make serving images easier.  I also have an idea for fixing the crash on quit on 128k.  Any other requests?

I may have enough memory to fit a small web browser. 

I have a wish list.....

- Make it possible to do a HEAD request, so you can check if a file is there

- Name and version of the server in this HEAD request.
- Some kind of server status; amount of requests, uptime,etc

- Make some interaction with the OS possible, like time and date showing, file listing, etc

- A big one....Make it possible to upload files.....

Love yer work. Well done :)
 

Also an enjoyable read.

Version 0.7 really works beautiful!

I now get correct headers and can read a head request!

I put it on the Internet and tested

http://128k.macip.net/
 
GET / HTTP/1.1
Host: 128k.macip.net
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cache-Control: max-age=0
 
HTTP/1.0 200 OK
Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip)
Content-Type: text/html
 
Can't get it going on minivmac with serial support....
Don't know how to get the pppd started well on my virtual Debian....
 
minivmac should start pppd if your ttyprog.sh is configured correctly.  do you get any errors in syslog?

also, I noticed that I am not seeing all of the html.:

This is made possible by the lightweight TCP/IP stack
        <a href="htt[Connection closed by foreign host.]
Does the file really stop there or is the server stopping early?

YES!!!!!!!!!! 07.1 does the trick! Now the whole page loads.

Thanks for the update.

Server is live at:

http://128k.macip.net/

I will PM you about my ppp setup for minivmac. It is driving me mad..... I'm debugging now and it seems that the pppd is restarting over and over... Als when I just ask which tty I'm on( remove the pppd part and just run command  tty  )  it loops between /dev/pts/2 and /dev/pts/4. Now way of binding it to just one pts....

Maybe I ca start pppd with one ling command?

Like:

pppd /dev/pts/2 9600 etc etc

I asked the maker of this minivmac version, but he just uses slirp and don't know what to do.... OK I come back on this by PM.

I'm testing new possibilities with El Whip now. Connected the 512K Mac with LocalTalk and mounted a share.

I'm running it from a mounted drive on my MacIPgw virtual machine. This has Netatalk on board. The .html files are on this share so there is endless space and... the possibility of using scripting. As an example I generate a simple page every minute which gives the current date and time. Just to understand the idea.

The server is still running on the 512K Macintosh

Have a look at:

http://128k.macip.net/date.html

This is the simple script, date.sh:

echo "<html>" >  "/AppleShare/ElWhip 0.071/date.html"

echo "<body>" >> "/AppleShare/ElWhip 0.071/date.html"
echo "`date`">> "/AppleShare/ElWhip 0.071/date.html"
echo "</body>" >> "/AppleShare/ElWhip 0.071/date.html"
echo "</html>" >> "/AppleShare/ElWhip 0.071/date.html"
 
Run it in crontab
 
* * * * * /bin/sh "/AppleShare/ElWhip 0.071/date.sh"
 
Cool! The lwip http server does have some support for SSI (server side includes), which I disabled due to memory issues. However, I have saved a lot of ram since I started, so I will give it a try it again. Date/ time would be a good first test.

wow, sorry, I meant WOW!!

Well done, that is an awesome achievement. I havent been around here for a while so have only just learnt of your awesomeness today. I was truly blown away. I'm pretty sure that in past discussion about being able to do something like this on a 128k Mac using Mac OS, the idea was dumped in the "impossible" basket.

Excellent work. I look forward to taking some time to read through your blog (not that I'll be able to understand all the technical bits!).

Cheers,

This is very impressive! Best I have ever done was running Eudora on a workgroup server 60 in the late 90's to provide email for almost 1,000 users. I massaged that machine to run it flawlessly until I just couldn't expand the ram to keep up with the traffic - much less have enough storage or disk speed. I wound up converting that machine into a web server with web star and used it for that purpose into the early 2000's - without any trouble. Never occurred to me to try it on a machine still old. I do know of a company with over 150 workstations that still uses a IIci as a DNS and print server.