jhhoward / microweb Goto Github PK
View Code? Open in Web Editor NEWDOS Web browser for 8088 class machines
License: GNU General Public License v2.0
DOS Web browser for 8088 class machines
License: GNU General Public License v2.0
This is an extraordinary program -- thank you for all your hard work. Running MicroWeb -c on Omnibook 425 makes for easy reading, but MicroWeb on the 200LX is very hard on the eyes, and the MWEB95.EXE only partially fills the 200LX screen.
Would it be difficult to allow a choice of font size and an option for bold-ing?
Thanks again for making a browser that drags DOS kicking and screaming into 2022.
hi,
I'm trying to use a wifi modem on serial port, this one: https://github.com/Bluelavasystems/RetroWiFiModem.
The modem itself appears to work fine, I can download a web page (i.e. http://frogfind.com page) using any terminal software like Telix etc.
So, I:
Etherslip returns the following parameters (they seem all ok to me, however I'm sure what interface class is):
packet interrupt = 0X7E
Interface class = 1
Interrupt = 4
I/O port = 0x3F8
Baud rate = 4800 (the modem is also set as 4800)
Receive buffer = 3000
Ethernet address = [mac code in 6 groups of 2 digits]
It returns:
Error loading page
No network interface available
I supposed the EtherSlip should be a network emulator, making the microweb to believe it's connected to a LAN...
Where I'm going wrong?
I'm currently trying out the latest release of MW and I noticed it has some problem with parsing relative urls.
If I'm viewing document called index.htm which contains a relative link:
<a href="link1.htm">Link 1</a>
MW will parse the link as
FILE://INDEX.HTM/LINK1.HTM
instead of:
FILE://LINK1.HTM
I can get MW to open the right document by using absolute urls:
<a href="file://link1.htm">Link 1</a>
I haven't yet looked into the code, so I don't know if this would be a simple fix or something more tedious (as it probably touches URL parsing code).
Edit:
MW was only tested offline in a DOSBox-x session. MW and all the HTM files were in the root directory of the C: drive.
If you can get this to support html forms, either gif or png images, and 'ismap' (https://www.w3schools.com/tags/att_img_ismap.asp) then you can probably use Web Rendering Proxy (https://github.com/tenox7/wrp) to render modern web pages.
Hi, I like this attempt of makink a tiny browser. I find it usefull to run on my HP 200LX handheld PC that use 80186 and monochrome CGA with a few gray levels. I tested it and it runs at decent speed. I'm missing what key to use to follow/open selected link. I also found that monospace font is rendered cca 2x big as default font.
And please could you add some basic handling of national diacritic characters? I don't think it's necessary to support all strange diacritic fonts but I'd like just a simple mapping table that let transorm national code page (ASCII chars from 128-255 range) to basic page (0-127) according to "charset" parameter in [META HTTP-EQUIV] tag of header. This would greatly improve readability insted of seeing a lot of "?" chars. For simplicity the mapping tables could be hardcoded in some header file, I would fill the data in for CP1250.
I've tried this program on my Amstrad PC 2086 with an SMC 8-bit ISA network card installed. It works really cool, but what it really lacks is the ability to work in a higher screen resolution. The Amstrad PC 2086 has the Paradise VGA controller installed onboard. With the VGAMODE.EXE I managed to switch to the 800x600x16 extended video mode (sadly, no other extended mode listed by VGAMODE.EXE has ever worked for me). The Paradise VGA was particularly popular in the late 1980's, so I suppose it is worth adding a support for it.
A URL of the form http://server/path/object#anchor means "jump to anchor within object". If object (a page) is already loaded then it's just a local jump to an anchor tag within the page.
Microweb is interpreting these types of links as entirely new pages to fetch, which is going to fail because the #anchor part is being passed along as the name of the object to fetch. If a fetch is required then the #anchor part should be stripped out of the request to the server. After the object is fetched the screen can then be scrolled to #anchor.
If you're not parsing the anchor links in the page then just stripping the #anchor before sending to the web server should be sufficient; the user should be able to figure out how to scroll by themselves.
Crypto Ancienne is a HTTP proxy that is meant for old computers that do not have the processing power necessary to do TLS, but unlike most other proxies with the same goal, it only handles https:// urls and does not do rewriting of transferred contents. It is designed to be used with a compatible web browser, which allows forwarding https requests to a plaintext HTTP proxy, something that MicroWeb doesn't seem to support at the moment.
I think it would be a very clean solution for https support in MicroWeb, and help with pages where FrogFind doesn't correctly identify the contents.
body
tags are not displayed.td
or th
tags without closing tags are not displayed properly and cause a crash with Stack overflow!
message.Hi all, I discover this incredible project by the webmaster of a famous French retro informatic forum, Win3x.org.
I've installed MicroWeb under PC-DOS V/7.0 (Japanese version of PC-DOS 2000) to have all DOS Web Browsers in the same VM (under 86box, Pentium MMX/166, 32 MB RAM, CL-GD 5480, PC-Net ISA 0x300 IRQ3), and I report some issues I've encounter.
1° HTML entities like à
(à) or others, can't display. I'm sad to not see French accents on my website http://winjoy.sjarb.fr (the same for Greek letters to a lesser extent)
2° I think, <table>
is not supported yet, because the one I use for the header seems not work here. The cells are displayed one below the other. The float CSS can help when implemented
3° When I try to use JavaScript, MicroWeb don't display anything
4° WINJOY is a verifed XHTML 4.0 Transitional site, but to do that, I'm foced to use an HTML entity for & instead, because I'm using parameters in URLs, but, as MicroWeb don't support these, it tries to access to the page without replace the entity by a real &. So I've to manually replace it in the search bar
My site looks pretty well without any major change except JavaScript, that's awesome !
That's all for today, thanks for your good work (^_^)
Home page of WINJOY (No French accents, no Greek letters, no table)
i.e. a new lynx browser.
so it can work on IBM MDA output.
This would be wonderful to use with a simple web server to host file downloads.
On my home network I have a DOS software archive folder and I use
python -m http.server 8080
to offer a simple web page to download files from that archive on my WIndows 95/NT machines.
Downloading them via Microweb would be a much more convenient way to access those files from my MSDOS machines as well.
Microweb is an amazing project for old DOS machines. Since version 2 added support for several video modes, I'm putting in a plug for the Plantronics modes on supported cga cards.
320x200 -16 colors
640x200 -4 colors
More and more cards are showing support for this standard. I can help test.
(Pcjr/tandy have a similar 640x200 -4 color capability)
Microweb is awesome. Even Mike Brutman was impressed.
It would be neat to have packages built for freedos, svardos.
Even better if these were submitted to be included in their repositories.
First of all, great project!
Please add a preliminary support for CSS, like: font-style
, font-size
, font-weight
, color
, background-color
, display
, [min-|max-]width
, [min-|max-]height
, margin
, padding
, border
, float
, position
, z-index
. Maybe you could reuse some code from Netsurf or Dillo? Thanks in advance!
I copied MICROWEB.EXE and its support DAT files inside the mTCP directory (seems neater) which is in the PATH, but when I try to launch MicroWeb from any other directory it closes after the video mode menu with the error "Could not load DEFAULT.DAT" (or any other required dat file).
If I launch MicroWeb from within mTCP it works as expected
I saw in the code that the browser is hardcoded to make "GET" requests. Will that remain forever or do you plan to let users make POST requests when they submit a form ?
Failed Build with this DOSNet.ERR:
....\src\DOS\DOSNet.cpp(563): Warning! W014: col(0) no reference to symbol
'__static_assert'
....\lib\mTCP\TCPINC\dns.h(60): Note! N392: col(39) definition:
'void __static_assert( int * )'
Please help . . .
Hello, very nice project. However I think you should check for the content type of the HTTP response before trying to parse the html, and if it's not HTML, you could let people download the file :)
It might be nice to allow users to customize/append to the user agent string, perhaps via environment variable, so that tools that track user agents not only see MicroWeb BUILDDATE, but also the platform information that is typically shown in parenthesis, e.g. OS, architecture, hardware, etc. Not that MicroWeb should be trying to detect and set it; it would be up to the user to configure.
Users that configure the extra info are then silently advertising what they use to surf, and popular proxies like FrogFind are in a better place to see what kinds of hardware are using their service.
I think it is good to provide more packet drivers (for example, AMD PCNet driver for pcnet/vlance, rtl8029as (ne2k_pci), rtl8139) so people can test microweb on more VMs.
As per title it would be nice if you could set somewhere in which mode MicroWeb will launch by default thus bypassing the choice menu.
My suggestion is if possible to integrate with MTCP.CFG adding a [MicroWeb] section, if that's not possible either having a MICROWEB.CFG or a MICROWEB environmental variable could be valid solutions.
A command line option could also be a solution of course, but personally I think it would be much nicer to be able to run MicroWeb by simply typing microweb and having it automatically fetch the default option instead of having to type microweb -something videomode which would require an extra wrapper batch file to shorten it back up
This project is awesome! Great work. I Just learned about this from RetroTech Chris's video.
I am the creator of theoldnet.com which is a service that lets you browse internet archive website snapshot along with some other lesser known archives as well.
I offer a proxy at theoldnet.com:1996.
I'm wondering if you could add http proxy support so that I could point your browser at my service and then do some 90's website browsing in dos!
Re: MicroWeb build ERR:
....\lib\mtcp\tcplib\trace.cpp: 201 lines, included 2434, no warnings, no errors
Code size: 270
wlink system dos name microweb.exe file { MicroWeb.obj App.obj Parser.obj
Renderer.obj Tags.obj Platform.obj CGA.obj EGA.obj Hercules.obj Font.obj Inter
face.obj DOSInput.obj DOSNet.obj Page.obj packet.obj arp.obj eth.obj ip.obj tcp.
obj tcpsockm.obj udp.obj utils.obj dns.obj timer.obj ipasm.obj trace.obj }
Error (E14): Cannot execute (wlink): Arg list too big
Error (E42): Last command making (microweb.exe) returned a bad status
Error (E02): Make execution terminated
Re:
https://www.lazybrowndog.net/freedos/virtualbox/
MicroWeb, DosLynx and Arachne Chat board:
https://tinyurl.com/yacddu53
Hi,
Booted to DOS traps MicroWeb makefile error with this '....\src\dos\dos' problem.
(ERROR: E059 unable to open '....\src\dos\dos')
Please rectify this MicroWeb src bug!
Thanks
dos needs lfn and GNU/Linux needs / not \
I have an IBM 5162 with DOS 6.22 and an ATI All in wonder EGA+ card. 3com 3c509. The binary crashes on run, doesn't switch to graphics mode, just hangs. Any clues? Would love to check this out!
Hi,
what an awesome project!
[SORRY FOR THE WRONG TITLE; I meant 320 X 200 X 256 colors VGA]
I'm testing it with my Micro_8088 (8088 @ 9.54 Mhz, 1 Mb RAM, Ms-Dos 6.22).
It works fine using the 640x480, 16 colors VGA mode, I can type the local address (c:/microweb/test.htm) and surf the page.
The PC hangs using the 320x200, 256 colors VGA mode: it appears the white page, the cursor (arrow) and then hangs. If you try to type something, soon it will start to beep (keyboard buffer full).
NOTE: I haven't network card nor modem installed. I planned to build a wi-fi serial modem from a github project I've found, but I'm still waiting parts and PCB ... still trying to figure out if Microweb can be used with etherSlip and a serial modem that connects via wi-fi to the internet (well, to a router connected to the internet, actually) using the Hayes AT commands.
EDIT: works fine with the 640x350 16 colors EGA mode too.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.