Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.sys.apple2 > #28179 > unrolled thread
| Started by | roger.shimada@gmail.com |
|---|---|
| First post | 2016-07-09 20:42 -0700 |
| Last post | 2016-07-19 23:28 -0500 |
| Articles | 20 on this page of 25 — 12 participants |
Back to article view | Back to comp.sys.apple2
Booting the right ProDOS 8 for any Apple II roger.shimada@gmail.com - 2016-07-09 20:42 -0700
Re: Booting the right ProDOS 8 for any Apple II Michael J. Mahon <mjmahon@aol.com> - 2016-07-10 01:30 -0500
Re: Booting the right ProDOS 8 for any Apple II roger.shimada@gmail.com - 2016-07-10 15:09 -0700
Re: Booting the right ProDOS 8 for any Apple II Steve Nickolas <usotsuki@buric.co> - 2016-07-10 19:34 -0400
Re: Booting the right ProDOS 8 for any Apple II Don Bruder <dakidd@sonic.net> - 2016-07-10 17:48 -0700
Re: Booting the right ProDOS 8 for any Apple II David Schmidt <schmidtd@my-deja.com> - 2016-07-11 09:40 -0400
Re: Booting the right ProDOS 8 for any Apple II roger.shimada@gmail.com - 2016-07-11 18:41 -0700
Re: Booting the right ProDOS 8 for any Apple II David Schmidt <schmidtd@my-deja.com> - 2016-07-11 23:11 -0400
Re: Booting the right ProDOS 8 for any Apple II Delfs <eeastman@gmail.com> - 2016-07-18 05:55 -0700
Re: Booting the right ProDOS 8 for any Apple II Antoine Vignau <antoine.vignau@laposte.net> - 2016-07-18 07:34 -0700
Re: Booting the right ProDOS 8 for any Apple II John Brooks <jbrooks@blueshiftinc.com> - 2016-07-18 09:15 -0700
Re: Booting the right ProDOS 8 for any Apple II "Michael 'AppleWin Debugger Dev'" <michael.pohoreski@gmail.com> - 2016-07-18 10:23 -0700
Re: Booting the right ProDOS 8 for any Apple II gids.rs@sasktel.net - 2016-07-18 11:27 -0700
Re: Booting the right ProDOS 8 for any Apple II John Brooks <jbrooks@blueshiftinc.com> - 2016-07-19 08:46 -0700
Re: Booting the right ProDOS 8 for any Apple II "Michael 'AppleWin Debugger Dev'" <michael.pohoreski@gmail.com> - 2016-07-19 11:07 -0700
Re: Booting the right ProDOS 8 for any Apple II retrogear <larrygr510@gmail.com> - 2016-07-19 11:42 -0700
Re: Booting the right ProDOS 8 for any Apple II Antoine Vignau <antoine.vignau@laposte.net> - 2016-07-19 12:43 -0700
Re: Booting the right ProDOS 8 for any Apple II "Michael 'AppleWin Debugger Dev'" <michael.pohoreski@gmail.com> - 2016-07-19 13:04 -0700
Re: Booting the right ProDOS 8 for any Apple II Steve Nickolas <usotsuki@buric.co> - 2016-07-19 16:42 -0400
Re: Booting the right ProDOS 8 for any Apple II "Michael 'AppleWin Debugger Dev'" <michael.pohoreski@gmail.com> - 2016-07-19 13:09 -0700
Re: Booting the right ProDOS 8 for any Apple II Michael J. Mahon <mjmahon@aol.com> - 2016-07-19 16:10 -0500
Re: Booting the right ProDOS 8 for any Apple II "Michael 'AppleWin Debugger Dev'" <michael.pohoreski@gmail.com> - 2016-07-19 14:25 -0700
Assembler optimizations, was Re: Booting the right ProDOS 8 for any Apple II D Finnigan <dog_cow@macgui.com> - 2016-07-19 22:35 +0000
Re: Assembler optimizations, was Re: Booting the right ProDOS 8 for any Apple II Michael J. Mahon <mjmahon@aol.com> - 2016-07-19 23:28 -0500
Re: Booting the right ProDOS 8 for any Apple II Michael J. Mahon <mjmahon@aol.com> - 2016-07-19 23:28 -0500
Page 1 of 2 [1] 2 Next page →
| From | roger.shimada@gmail.com |
|---|---|
| Date | 2016-07-09 20:42 -0700 |
| Subject | Booting the right ProDOS 8 for any Apple II |
| Message-ID | <966efad4-000c-4619-9d4f-5da1e66b8f05@googlegroups.com> |
From my just created http://roger-s-stuff.blogspot.com/2016/07/booting-right-prodos-8-for-any-apple-ii.html : Apple II ProDOS 8 version 2 requires: * At least 64K of RAM, * A //e compatible machine, and * A 65C02 microprocessor. (The original) Apple ][ and Apple ][+ users must use ProDOS 1.x. So continuing the time honored technology tradition of creating solutions in search of a problem, I created a front end to start one of the two copies of ProDOS in the PRODOS system file. When a //e compatible (which includes the //c and IIgs) with a 65C02 is found, ProDOS 2 is started. Otherwise ProDOS 1 is started. Pressing '1' or '2' during the considerably longer boot time forces the start of the selected ProDOS. A CiderPress friendly copy is at https://drive.google.com/open?id=0B7nZUWYxvJulZVVuMkI2OTZuS2M which is over 33K (67 blocks) and contains ProDOS 1.9 and 2.0.3. A zipped 140K disk image is at https://drive.google.com/open?id=0B7nZUWYxvJulSk50XzV3R21CQVE and contains: * The aforementioned PRODOS (1.9 and 2.0.3) * BASIC.SYSTEM * PRODOS1AND2.BIN - the front end * PRODOS1AND2.HLP - BASIC program with the help text for PRODOS1AND2 * PRODOS1AND2 - ugly little BASIC program to create your own PRODOS from two other copies of PRODOS Warning: Two copies of ProDOS 2 probably won't work; there isn't enough RAM. Note that PRODOS1AND2 and PRODOS1AND2.HLP display upper and lower case. Thanks to Andrew Jacobs for his cross assembler https://sourceforge.net/projects/dev65/. This is intended for those wanting to create Apple ][+ friendly ProDOS disks.
[toc] | [next] | [standalone]
| From | Michael J. Mahon <mjmahon@aol.com> |
|---|---|
| Date | 2016-07-10 01:30 -0500 |
| Message-ID | <ad2dndUGyo3zdhzKnZ2dnUU7-QXNnZ2d@giganews.com> |
| In reply to | #28179 |
<roger.shimada@gmail.com> wrote: > From my just created > http://roger-s-stuff.blogspot.com/2016/07/booting-right-prodos-8-for-any-apple-ii.html : > > Apple II ProDOS 8 version 2 requires: > * At least 64K of RAM, > * A //e compatible machine, and > * A 65C02 microprocessor. > > (The original) Apple ][ and Apple ][+ users must use ProDOS 1.x. > > So continuing the time honored technology tradition of creating solutions > in search of a problem, I created a front end to start one of the two > copies of ProDOS in the PRODOS system file. > > When a //e compatible (which includes the //c and IIgs) with a 65C02 is > found, ProDOS 2 is started. Otherwise ProDOS 1 is started. > > Pressing '1' or '2' during the considerably longer boot time forces the > start of the selected ProDOS. > > A CiderPress friendly copy is at > https://drive.google.com/open?id=0B7nZUWYxvJulZVVuMkI2OTZuS2M which is > over 33K (67 blocks) and contains ProDOS 1.9 and 2.0.3. > > A zipped 140K disk image is at > https://drive.google.com/open?id=0B7nZUWYxvJulSk50XzV3R21CQVE and contains: > * The aforementioned PRODOS (1.9 and 2.0.3) > * BASIC.SYSTEM > * PRODOS1AND2.BIN - the front end > * PRODOS1AND2.HLP - BASIC program with the help text for PRODOS1AND2 > * PRODOS1AND2 - ugly little BASIC program to create your own PRODOS from > two other copies of PRODOS > Warning: Two copies of ProDOS 2 probably won't work; there isn't enough RAM. > > Note that PRODOS1AND2 and PRODOS1AND2.HLP display upper and lower case. > > Thanks to Andrew Jacobs for his cross assembler https://sourceforge.net/projects/dev65/. > > This is intended for those wanting to create Apple ][+ friendly ProDOS disks. > Since ProDOS 1.9 works perfectly on all 64K machines, and any application on a "universal" disk will run under 1.9, what is the benefit to selecting a ProDOS version dynamically? -- -michael - NadaNet 3.1 and AppleCrate II: http://michaeljmahon.com
[toc] | [prev] | [next] | [standalone]
| From | roger.shimada@gmail.com |
|---|---|
| Date | 2016-07-10 15:09 -0700 |
| Message-ID | <e76ec13f-adb7-4c99-a1ef-e67e3b373911@googlegroups.com> |
| In reply to | #28181 |
On Sunday, July 10, 2016 at 1:30:12 AM UTC-5, Michael J. Mahon wrote:
> what is the benefit to selecting a ProDOS version dynamically?
It's mainly there for testing. This is from Virtual II as a II+:
A00,% II
P2/DOS 8 V2.0.3 06-M!9-93
REQUIRES ENHANCED APPLE IIE OR LATER
C/092)'(4 A00,% C/-054%2, I.#., 1983-93
A,, R)'(43 R%3%26%$.
As far as I can tell, the major benefit of ProDOS 2 is the automatic mapping of more than 2 SmartPort volumes on a device to character slots. (Useful on old CFFA cards; I don't know how the CFFA3000 deals with this.)
[toc] | [prev] | [next] | [standalone]
| From | Steve Nickolas <usotsuki@buric.co> |
|---|---|
| Date | 2016-07-10 19:34 -0400 |
| Message-ID | <alpine.BSF.2.02.1607101934050.47777@frieza.hoshinet.org> |
| In reply to | #28185 |
On Sun, 10 Jul 2016, roger.shimada@gmail.com wrote: > On Sunday, July 10, 2016 at 1:30:12 AM UTC-5, Michael J. Mahon wrote: >> what is the benefit to selecting a ProDOS version dynamically? > > It's mainly there for testing. This is from Virtual II as a II+: > > > A00,% II > > P2/DOS 8 V2.0.3 06-M!9-93 > > REQUIRES ENHANCED APPLE IIE OR LATER > > > > C/092)'(4 A00,% C/-054%2, I.#., 1983-93 > A,, R)'(43 R%3%26%$. > > As far as I can tell, the major benefit of ProDOS 2 is the automatic mapping of more than 2 SmartPort volumes on a device to character slots. (Useful on old CFFA cards; I don't know how the CFFA3000 deals with this.) > It actually doesn't need an Enhanced //e, only a 65SC02, 65C02 or 65816. -uso.
[toc] | [prev] | [next] | [standalone]
| From | Don Bruder <dakidd@sonic.net> |
|---|---|
| Date | 2016-07-10 17:48 -0700 |
| Message-ID | <nluqc7$l68$2@dont-email.me> |
| In reply to | #28186 |
In article <alpine.BSF.2.02.1607101934050.47777@frieza.hoshinet.org>, Steve Nickolas <usotsuki@buric.co> wrote: > On Sun, 10 Jul 2016, roger.shimada@gmail.com wrote: > > > On Sunday, July 10, 2016 at 1:30:12 AM UTC-5, Michael J. Mahon wrote: > >> what is the benefit to selecting a ProDOS version dynamically? > > > > It's mainly there for testing. This is from Virtual II as a II+: > > > > > > A00,% II > > > > P2/DOS 8 V2.0.3 06-M!9-93 > > > > REQUIRES ENHANCED APPLE IIE OR LATER > > > > > > > > C/092)'(4 A00,% C/-054%2, I.#., 1983-93 > > A,, R)'(43 R%3%26%$. > > > > As far as I can tell, the major benefit of ProDOS 2 is the automatic > > mapping of more than 2 SmartPort volumes on a device to character slots. > > (Useful on old CFFA cards; I don't know how the CFFA3000 deals with this.) > > > > It actually doesn't need an Enhanced //e, only a 65SC02, 65C02 or 65816. > > -uso. And lowercase/mousetext character set ROM. (Unless you don't care about the "garble" as shown above) The ROM and the "65C02-alike" processor is the difference between a "not enhanced" and "enhanced" //e -- Brought to you by the letter Q and the number .357 Security provided by Horace S. & Dan W.
[toc] | [prev] | [next] | [standalone]
| From | David Schmidt <schmidtd@my-deja.com> |
|---|---|
| Date | 2016-07-11 09:40 -0400 |
| Message-ID | <nm07k7$q26$1@dont-email.me> |
| In reply to | #28181 |
On 7/10/2016 2:30 AM, Michael J. Mahon wrote: > <roger.shimada@gmail.com> wrote: >> From my just created >> http://roger-s-stuff.blogspot.com/2016/07/booting-right-prodos-8-for-any-apple-ii.html : >> [...] > > Since ProDOS 1.9 works perfectly on all 64K machines, and any application > on a "universal" disk will run under 1.9, what is the benefit to selecting > a ProDOS version dynamically? That would actually be a really great thing for ADTPro. The boot diskette I supply has ProDOS 1.9 on it because of its near-universality, as you point out. But there is true benefit to going to ProDOS 2.x for machines that can handle it because drives are enumerated differently/better - and more types of drives and partitions can be immediately recognized rather than having to create your own boot diskette (or run from some other kind of boot device). There are cases where some drives that will be "missing" if you boot with 1.9 that are visible with 2.0.3. I have the bug reports to prove it. :-) So this thread got me to thinking. I am really sensitive about boot times, so I'd be unwilling to pay the price to load _both_ and then discard one. But I might consider a scheme where a machID is checked at boot0 time, then a decision is made which then loads the appropriate PRODOS chunk. Then again - it only serves to complicate bare-metal bootstrapping.
[toc] | [prev] | [next] | [standalone]
| From | roger.shimada@gmail.com |
|---|---|
| Date | 2016-07-11 18:41 -0700 |
| Message-ID | <6e24a303-3fab-474d-8153-b9557e131646@googlegroups.com> |
| In reply to | #28189 |
On Monday, July 11, 2016 at 8:40:24 AM UTC-5, schmidtd wrote: > I am really sensitive about boot times, so I'd be unwilling to pay the > price to load _both_ and then discard one. Oh I know what you mean. I had considered writing a PRODOS that turned around and loaded PRODOS1 or PRODOS2. However to avoid needing custom boot blocks, it would mostly just be another copy of the boot blocks and I would like to avoid dealing with 5.25 disk code. Since it would be its own program it should provide proper error handling. (Such a program should initialize the text screen anyway, just to tell the user which ProDOS it's loading.) So I tried the simplest approach, which pleasantly surprised me when it worked.
[toc] | [prev] | [next] | [standalone]
| From | David Schmidt <schmidtd@my-deja.com> |
|---|---|
| Date | 2016-07-11 23:11 -0400 |
| Message-ID | <nm1n5g$rbt$1@dont-email.me> |
| In reply to | #28197 |
On 7/11/2016 9:41 PM, roger.shimada@gmail.com wrote: > On Monday, July 11, 2016 at 8:40:24 AM UTC-5, schmidtd wrote: >> I am really sensitive about boot times, so I'd be unwilling to pay the >> price to load _both_ and then discard one. > > Oh I know what you mean. I had considered writing a PRODOS that turned around and loaded PRODOS1 or PRODOS2. > > However to avoid needing custom boot blocks, it would mostly just be another copy of the boot blocks and I would like to avoid dealing with 5.25 disk code. > > Since it would be its own program it should provide proper error handling. (Such a program should initialize the text screen anyway, just to tell the user which ProDOS it's loading.) > > So I tried the simplest approach, which pleasantly surprised me when it worked. Absolutely, I am in no way disagreeing with your approach. I'm no stranger to custom boot code, so that's just the first place my mind went.
[toc] | [prev] | [next] | [standalone]
| From | Delfs <eeastman@gmail.com> |
|---|---|
| Date | 2016-07-18 05:55 -0700 |
| Message-ID | <6960cb60-281a-4b9c-8ee1-38f458ffd407@googlegroups.com> |
| In reply to | #28179 |
On Saturday, July 9, 2016 at 10:42:54 PM UTC-5, roger....@gmail.com wrote: > From my just created http://roger-s-stuff.blogspot.com/2016/07/booting-right-prodos-8-for-any-apple-ii.html : ... > This is intended for those wanting to create Apple ][+ friendly ProDOS disks. So is there source code available for ProDOS? Would it be desirable to modify the 1.9 code to get the smartport mapping enhancements in 2.03? Thanks, Ed
[toc] | [prev] | [next] | [standalone]
| From | Antoine Vignau <antoine.vignau@laposte.net> |
|---|---|
| Date | 2016-07-18 07:34 -0700 |
| Message-ID | <20bc554d-8d05-4060-b24b-9bfca9e79519@googlegroups.com> |
| In reply to | #28233 |
Or take the source code of 2.0.3, replace the 65c02 code with 6502 code and call it 2.0.4. av
[toc] | [prev] | [next] | [standalone]
| From | John Brooks <jbrooks@blueshiftinc.com> |
|---|---|
| Date | 2016-07-18 09:15 -0700 |
| Message-ID | <cf9befbc-633e-47dd-b9f9-b4f5c57aeed2@googlegroups.com> |
| In reply to | #28234 |
On Monday, July 18, 2016 at 7:34:09 AM UTC-7, Antoine Vignau wrote: > Or take the source code of 2.0.3, replace the 65c02 code with 6502 code and call it 2.0.4. > av I vote for this. But IMO it should be called ver 2.4 and use a version byte of $24 since current 2.0.3 has a version byte of $23 which does not make much sense. -JB Twitter: @JBrooksBSI
[toc] | [prev] | [next] | [standalone]
| From | "Michael 'AppleWin Debugger Dev'" <michael.pohoreski@gmail.com> |
|---|---|
| Date | 2016-07-18 10:23 -0700 |
| Message-ID | <45df6784-8ecc-4dd0-a1d6-b1362aeccad3@googlegroups.com> |
| In reply to | #28234 |
On Monday, July 18, 2016 at 7:34:09 AM UTC-7, Antoine Vignau wrote: > Or take the source code of 2.0.3, replace the 65c02 code with 6502 code and call it 2.0.4. > av Well shoot, another project to add to the DOS TODO ... :-)
[toc] | [prev] | [next] | [standalone]
| From | gids.rs@sasktel.net |
|---|---|
| Date | 2016-07-18 11:27 -0700 |
| Message-ID | <655ed06b-59cd-4a63-a1e5-d01df60e3b41@googlegroups.com> |
| In reply to | #28236 |
On Monday, July 18, 2016 at 11:23:40 AM UTC-6, Michael 'AppleWin Debugger Dev' wrote: > On Monday, July 18, 2016 at 7:34:09 AM UTC-7, Antoine Vignau wrote: > > Or take the source code of 2.0.3, replace the 65c02 code with 6502 code and call it 2.0.4. > > av > > Well shoot, another project to add to the DOS TODO ... :-) I wonder if would even be that complicated. Prodos v1.9 can handle up to 4 smartport devices. I don't have the source for v1.9, but some of the remapping code must already be there. So extending the smartport to other slots should almost seem trivial.
[toc] | [prev] | [next] | [standalone]
| From | John Brooks <jbrooks@blueshiftinc.com> |
|---|---|
| Date | 2016-07-19 08:46 -0700 |
| Message-ID | <68621fa4-b445-45f2-a400-7505cfb96c44@googlegroups.com> |
| In reply to | #28237 |
On Monday, July 18, 2016 at 11:27:21 AM UTC-7, gid...@sasktel.net wrote: > On Monday, July 18, 2016 at 11:23:40 AM UTC-6, Michael 'AppleWin Debugger Dev' wrote: > > On Monday, July 18, 2016 at 7:34:09 AM UTC-7, Antoine Vignau wrote: > > > Or take the source code of 2.0.3, replace the 65c02 code with 6502 code and call it 2.0.4. > > > av > > > > Well shoot, another project to add to the DOS TODO ... :-) > > > > I wonder if would even be that complicated. Prodos v1.9 can handle up to 4 smartport devices. I don't have the source for v1.9, but some of the remapping code must already be there. So extending the smartport to other slots should almost seem trivial. It looks like the P8 2.03 device search/add logic is about 512 bytes. Throughout ProDOS I see about 80 STZ instructions, most of them in the core P8 MLI and the quit code. I'm not sure if Apple also used 65c02 inc A or lda/sta (dp) in addition to stz, but my guess is we'd need to find about 200 bytes to make a full-function P8 2.4 which was 6502 compatible. I'll keep investigating. -JB
[toc] | [prev] | [next] | [standalone]
| From | "Michael 'AppleWin Debugger Dev'" <michael.pohoreski@gmail.com> |
|---|---|
| Date | 2016-07-19 11:07 -0700 |
| Message-ID | <9144fd6d-b4eb-45a3-ab91-8cf140f1b357@googlegroups.com> |
| In reply to | #28261 |
On Tuesday, July 19, 2016 at 8:46:58 AM UTC-7, John Brooks wrote: > It looks like the P8 2.03 device search/add logic is about 512 bytes. You wouldn't happen to have a disassembly of this by chance? > Throughout ProDOS I see about 80 STZ instructions, most of them in the core P8 MLI and the quit code. Is this a contiguous memory block(s)?
[toc] | [prev] | [next] | [standalone]
| From | retrogear <larrygr510@gmail.com> |
|---|---|
| Date | 2016-07-19 11:42 -0700 |
| Message-ID | <9d9951dc-9a13-4443-9682-c98faa4229df@googlegroups.com> |
| In reply to | #28262 |
> > You wouldn't happen to have a disassembly of this by chance? > Look for prodos203src.zip here: ftp://ftp.apple.asimov.net/pub/apple_II/images/programming/assembler/ My disassembly work from 3 years ago. Search for label smartprt Larry G
[toc] | [prev] | [next] | [standalone]
| From | Antoine Vignau <antoine.vignau@laposte.net> |
|---|---|
| Date | 2016-07-19 12:43 -0700 |
| Message-ID | <20200193-84ae-46c2-9a41-703a6bbc054c@googlegroups.com> |
| In reply to | #28263 |
Despite the quality of Larry's work, it would be better to work from Apple's source code. av
[toc] | [prev] | [next] | [standalone]
| From | "Michael 'AppleWin Debugger Dev'" <michael.pohoreski@gmail.com> |
|---|---|
| Date | 2016-07-19 13:04 -0700 |
| Message-ID | <3368e150-7c1c-42fc-8c78-cb66b840898a@googlegroups.com> |
| In reply to | #28264 |
On Tuesday, July 19, 2016 at 12:43:07 PM UTC-7, Antoine Vignau wrote: > Despite the quality of Larry's work, it would be better to work from Apple's source code. > av Ah, that it explains it -- thanks Antoine! I didn't think Apple had released the source for 2.0.3 ! Pity.
[toc] | [prev] | [next] | [standalone]
| From | Steve Nickolas <usotsuki@buric.co> |
|---|---|
| Date | 2016-07-19 16:42 -0400 |
| Message-ID | <alpine.BSF.2.02.1607191641500.23864@frieza.hoshinet.org> |
| In reply to | #28265 |
On Tue, 19 Jul 2016, Michael 'AppleWin Debugger Dev' wrote: > On Tuesday, July 19, 2016 at 12:43:07 PM UTC-7, Antoine Vignau wrote: >> Despite the quality of Larry's work, it would be better to work from Apple's source code. >> av > > Ah, that it explains it -- thanks Antoine! > I didn't think Apple had released the source for 2.0.3 ! > Pity. > There's 1.7; maybe it could be reconstituted from there? -uso.
[toc] | [prev] | [next] | [standalone]
| From | "Michael 'AppleWin Debugger Dev'" <michael.pohoreski@gmail.com> |
|---|---|
| Date | 2016-07-19 13:09 -0700 |
| Message-ID | <074ea6b9-67d9-4beb-8e4a-984ab2a5e06d@googlegroups.com> |
| In reply to | #28263 |
On Tuesday, July 19, 2016 at 11:42:55 AM UTC-7, retrogear wrote:
> Look for prodos203src.zip here:
> My disassembly work from 3 years ago. Search for label smartprt
Thanks Larry.
Line #1269 for those interested ...
stz A4L force a prodos status call
stz buf dummy pointer
stz bloknml # of bytes to transfer
stz bloknml+1
Looks like there are various single instructions scattered here and there.
i.e. Line #8510
showfiles stz valcnt
stz topname init top filename index.
stz valcnt
stz valcnt
Looks like a perfect job for a MACRO so it can automatically emit the proper 6502 opcodes.
[toc] | [prev] | [next] | [standalone]
Page 1 of 2 [1] 2 Next page →
Back to top | Article view | comp.sys.apple2
csiph-web