GithubHelp home page GithubHelp logo

jhhoward / microweb Goto Github PK

View Code? Open in Web Editor NEW
429.0 429.0 29.0 4.57 MB

DOS Web browser for 8088 class machines

License: GNU General Public License v2.0

Makefile 0.39% Batchfile 0.11% C++ 87.18% C 2.80% Assembly 0.46% Pascal 1.32% HTML 7.74%

microweb's People

Contributors

alex16397 avatar chabala avatar jhhoward avatar mlaux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

microweb's Issues

200LX Visibility Issues

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.

No Network Available while using Etherslip

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:

  • connect the modem to my router and check it can connect to a web page
  • run EtherSlip with the parameters (I also tried with and without the -n option)

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?

Something is wrong with relative url parsing (MW 0.53)

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.

testing & some ideas for improvement.

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.

Paradise VGA extended video modes?

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.

Microweb is trying to fetch anchor links "#" as entirely new objects

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.

wishlist: Crypto Ancienne support

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.

HTML parsing errors

  • Documents without body tags are not displayed.
  • Consecutive td or th tags without closing tags are not displayed properly and cause a crash with Stack overflow! message.

(French) accents and & in URL

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 &#224; (à) 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 (^_^)

20211112-080257-683
Home page of WINJOY (No French accents, no Greek letters, no table)

20211112-081322-064
When i'm trying to access WINJOY with JavaScript

20211112-080307-230
When I'm trying to acces to the Windows section

Wishlist: Simple file download support

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.

Wishlist: Plantronics video mode support

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.

CSS Support

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!

Could not load DAT files when launched outside of its directory (even if in PATH)

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

No POST request ?

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 ?

XP Boot Flag[s]

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 . . .

Can't download files

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 :)

Customizable user agent string

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.

More packet drivers in boot disk

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.

Add the ability to launch directly with a preset video mode instead of having to choose every time

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

feature request: http proxy support

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!

DOS Boot Flag

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


Error in wmake

Hello, I decided to try compile MicroWeb in DOSBox 0.74-3, but i getting this error:
mw

How I can fix this error?
OpenWatcom 1.9, target: DOS

Thanks for this project :)

Crashes on startup - IBM 5162 (286)

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!

hangs with 640x480 VGA mode

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.