Title : BeeBrowser Reflection .------------------. Date : 27th April 2025 |.----------------.| Author : Vela025 || LDX#0 || Category: Old Tech || .HelloWorld || || STA hello,X || This wasn't the post I had planned for today, || CMP #0 || but that one is stuck on the Amstrad NC100 so || BEQ DoneHello || will have to wait until next week. Instead I ||________________|| thought I'd tell you briefly about the Web |-[CUB]---------[]-| browser I've been working on for the BBC '------------------' Micro in 6502 assembly and then my reflections on the project. On the BBC Micro page you'll find info about my other two 6502 assembly projects (a simple BBS dialler and a simple html scraper). Both of these make use of TcpSer (the go4retro fork) which has the ability to start telnet sessions with remote URLs. | ATDTwww.google.com:80 | CONNECTED 9600 This makes it possible to resolve GET requests and then attempt to parse the HTML page. There is a tool to already render HTML pages from local storage by Sprow (WeBBC), but I wanted to have an actual web browser, complete with hyperlinks and the ability to search. As with my other two projects I used BeebASM to compile my assembly (as the BBCs 6502 syntax has a few quirks, note the labelling of .HelloWorld in the ASCII art header), as my text editor I used Kate (being a KDE boy; I used to be Gnome all the way up until Gnome 3). Kate has a nice Asm6502 option to make it all nice and colourful and a nice dark mode. The browser relies heavily on the HTML scraper from my previous project, but now has the ability to understand HTML tags. I flip- flopped between Mode 7 (7 colour teletext mode), Mode 1 (4 colour traditional 40 column text and graphics mode) and Mode 0 (2 colour 80 column mode). Eventually I opted for Mode 7 it has the highest amount of free memory (although this proved not to be a problem) and has a nice font and colour balance. To parse the HTML I used a memory table to store the different tags I intended to support and then stored each tag when an < was encountered coming in over serial until the tag ended with >. Some tags like