• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

A browser for System 6

cel

Member
I started making a new modern browser for use on System 6. I named it Browsy. Right now it is just the chrome of a browser, and doesn't actually render pages or make network requests.

It is written in C and builds in Apple's MPW.

https://github.com/clehner/browsy

I haven't worked on this in a while but I wanted to put it out here in case it may inspire others.

For the actual HTML/CSS parsing and rendering, layout and painting, I would consider using netsurf or some of its dependencies, or Matt Brubeck's "Let's build a browser engine!" guide. The network and painting code would be specific to the Macintosh Toolkit and MacTCP, but parsing and layout could probably be taken from netsurf and its subprojects, or other existing projects.

 

olePigeon

Well-known member
Rendering is gonna be time consuming.  Seems like the perfect opportunity to take advantage of a DSP if you have one installed.

 
Last edited by a moderator:

uniserver

Well-known member
maybe we could make a raspberry PI ,  PDS card,  that acts like a web Co-Processor... and a give you a RJ45 NIC port out the back ???   :)    Some wild hardware hacking there :)  

 

IPalindromeI

Well-known member
Why not just use VNC then? If MS made a tsclient for the classic Mac OS, you could use that to access a newer Windows machine smoothly.

 

cb88

Well-known member
Netsurf can run on quite low end machines... I guess it is possible it could work ok. The machines I usually run it on are relatively beefy (50-85Mhz sparcstations)  but... I see no reason an SE/30 couldn't run it well enough. Certainly my Powerbook 190 could run it... and Netsurf would likely render better than iCab. Another possiblity would be to grab the FLTK 1.1 source as a starting point and merge classic mac suport back into FLTK 1.3 that way you could havea shot at building Dillo or Dplus. The netsurf developers a great guys also they helped me straighen out an endianness bug a few months back on big endian arches.

If you are unable to get a compiler that can build the netsurf libraries... perhaps you can try out that Retro68 gcc based cross compiler assuming MPW etc.. can link to the binaries it builds. Apparently you need a copy of the universal headers to use it though.

Why not VNC? ... well why not just use the machine VNC is running on at that point.....

If you go the coprocessor route... in order to maintain coolness :D ... I suggest FPGA that way you could put a second 68k core on there or somthing cool like that. among other things. I think thats sort of how those radius rocket cards work (they essentially slap a mac on a card as an accelerator right?)

Btw you current progress looks excellent!

 
Last edited by a moderator:

commodorejohn

Well-known member
I can get slow but usable browsing with iBrowse on an A1200 with a 50MHz 030 (and with no L2 cache, the difference between a 50Mhz 030 and a 16-33MHz 030 is not all that great.) I wouldn't be at all surprised to find that an SE/30 with a well-coded browser could get similar results.

 

cel

Member
I'm glad you guys like the idea of this project.

I don't have a coprocessor. In fact, the development so far I did in BasiliskII, although I tested the program on a Mac Plus (which I don't have access to currently).

For a thin client approach, it would be interesting to have a special proxy server do the fetching, parsing, and maybe even rendering. It could pass paint instructions or text/rectangle data to the client on the mac. However, the browser would have to respond to scrolling and window resizing, so maybe the proxy server would just pass the style data and DOM tree to the client. I think (perhaps naively) that with a good design and implementation, the full browser could be made performant on old hardware.

Retro68k looks cool. I will look into using it for this project, or for compiling netsurf's dependencies.

 

Elfen

Well-known member
I know that both Links (aka: MacWWW) and the older Lynx are text Based Browsers that can work on System 6, as there are ports for them on the Apple II+/e/c/gs. You will need System 6 TCP/IP to work with them.

Things get tricky with graphical browsers, most want System 7 with TCP/IP. But Mosaic can be tricked to run on System 6. Thing is, it requires at leas 4MB of RAM, so it will only for on a Mac II Series or a SE/30 with 8MB or more. The same with Netscape 2.0.

MacWeb seems to be better as it can work on B/W Macs but wants System 7, damn. One could tweak it to work on System 6 with TCP/IP. It can do either Text Only or Text & Graphical Browsing. You'll need Resedit to do the tweaking with.

Look over this link for some details: http://www.ccadams.org/se/macweb.html

 

commodorejohn

Well-known member
The DSP in the AV Macs is an AT&T 3210; I know I've seen the Mac dev tools for it around somewhere, but I can't recall exactly where.

 

cb88

Well-known member
I'd like to see this browser happen if it it doesn't support images etc... text only. It would be nice if it could get formatting mostly right though. Forgoing any accelerator support would mean it could run on most all 68k macs.

Just about any DSP from that period would be woefully incapable versus what you could slap together in even a small modern FPGA... and most likely harder to code for since the toolchains are ancient.

An FPGA accelerator would be hard to design and write accelerators for but once you had them the ought to be pretty easy to write applications for.

If you take the Pippistrello for example it can have a Spartan LX9 - LX45 FPGA so you could have cheap or expensive boards in the $100-300 range by using a difference size FPGA. Perhaps modify that board to accept a motherboard adapter so it could work on the various buses. I think that should be possible, HDMI out, Audio out, SCSI emulator (CD, HD , Floppy, Scanner.... lots could be done there), Diimo030 clone + larger cache, Ramdisk, application specific accelerators it might acutally be best to implement these on one or more generic Microblaze processors running around 100Mhz...  you could add a vector coprocessor etc... You could put a Parallax proppeller in the FPGA and go crazy with that :D it would probably use less than half of an LX45 since a slightly size reduce version will fit in a DE0 board with 22k luts. There are also Zync FPGAs which include an ARM hard core... which could handle alot of things far faster than a softcore.

 
Last edited by a moderator:

olePigeon

Well-known member
Well, if you're going to stick an FPGA on a Nubus card, you might as well go all out.  You could do ATA/IDE, USB, video card, sound card, etc.

 

commodorejohn

Well-known member
I'd like to see this browser happen if it it doesn't support images etc... text only. It would be nice if it could get formatting mostly right though. Forgoing any accelerator support would mean it could run on most all 68k macs.
Including accelerator support doesn't mean it couldn't run on most all 68k Macs - you can support hardware without requiring it.
Just about any DSP from that period would be woefully incapable versus what you could slap together in even a small modern FPGA... and most likely harder to code for since the toolchains are ancient.
The difference is that the AV Mac DSPs are something 68k Mac users might actually have. Unless there's already an FPGA-based 68k Mac add-on out there to target (is there? I haven't heard of such a thing,) doing that would require not only overhauling the browser project to take advantage of it, but also designing and manufacturing the requisite hardware (and interfacing it with NuBus or one of the multiple different, mostly-incompatible PDS standards.) That's a lot of effort to go to just for a novelty Web browser.
(That said, I do wonder exactly how useful a DSP would be for the purpose, since they're usually heavily-oriented towards stream processing rather than general-purpose code. I suppose it could help image decoding.)

 
Last edited by a moderator:

cb88

Well-known member
If you go down the FPGA route you at least can get the accelerator... DSP accelerators for machines that didn't come with them are rare as hens teeth otherwise right? Also ... you could implement those old DSPs in the FPGA... that might even be a good option dunno.

Regardless I'm gonna pick up Terasic Cyclone V GX board... and give it a go probably won't turn into a Mac accelerator but it might turn into a custom Sparcbook :D if I can get the code from temlib.org working on it.

 
Last edited by a moderator:

Mk.558

Well-known member
Things get tricky with graphical browsers, most want System 7 with TCP/IP. But Mosaic can be tricked to run on System 6. Thing is, it requires at leas 4MB of RAM, so it will only for on a Mac II Series or a SE/30 with 8MB or more. The same with Netscape 2.0.
Go on?

 
Top