Jump to content

Fixes & enhancements for WLL.COM


Drugwash

Recommended Posts

Dunno why one would launch WLL under Windows, but it may happen in DOS mode too. And the problem was that I wanted to use the said routine in the (un)installer, which would usually run under Windows, at least at install time.

Anyway, I totally scrapped that routine and created another one that reads MSDOS.SYS - this one seems to work fine under Windows, but I'm extremely tired now and can't test in DOS mode.

There's only one tiny issue that keeps me from advancing: a parity check wouldn't work. The routine is as follows (snippet):

test pres,0Fh

jp werefine

call winerr ; critical system file missing

jmp getout

werefine:

test pres,10h

jnp instwll ; start WLL installation

Well, the last test instruction wouldn't test parity, it returns zero; first one works OK. The pres variable is 1Fh at the moment of testing, checked in debugger.

Well, gotta go to sleep now - I took some pills that close my eyes against my will. Laterz! ;)

[EDIT] Scrap that, I replaced with:

bt pres,4

jnc instwll

and everything's fine now. Weird coding...

Edited by Drugwash
Link to comment
Share on other sites


I think I managed to put together a universal installer. :whistle: I haven't tested it yet - just partly ran it through the debugger. I'm dead tired, so I'll go to sleep now and test it on the spare machine later when I wake up. :wacko:

It doesn't yet ask anything, just does its job: installs if WLL.COM is not present in %windir%, otherwise removes WLL.COM and patches IO.SYS and COMMAND.COM to their normal strings. :rolleyes:

It prints a lot of debug info though. :D

Link to comment
Share on other sites

my system now show signs that source of some problems may be mechanical. Until those problems shall be fixed my bugreports are usable only partially.

right now i am sure that freezing during bootup is caused by wll, and USB device card is only catalyst of the problem (many shared IRQs). also my settings in config sys regarding to buffers shows that maximum buffer value does not work correctly with wll.

Link to comment
Share on other sites

No problem, I hope you manage to fix it soon. My work on WLL itself has stalled for a while since I'm working on the installer.

It's almost ready, just got a few pointers to fix as it's patching at wrong addresses.

Then I'll have to improve the copy routine so it wouldn't use that large buffer I allocated currently and maybe add some options, like Install/Reinstall/Uninstall.

I wish this toothache would gimme a break... :(

[EDIT]

Guess I got lucky. Here's the first BETA DEBUG version of the installer/unistaller. For now it's called Patcher, as it sounded more appropriate. I'm curious if any AV would pick it as a virus or something, considering it patches files.

Momentarily, on installation it only patches IO.SYS & COMMAND.COM and copies WLL.COM to %windir%. For this, WLL.COM has to be in the same folder as Patcher. It does not (yet) copy any LOGO.SYS to C:, so that should be done manually, preferrably backing up the old LOGO.SYS first.

The uninstall is pretty straightforward too: patches the files back and deletes WLL.COM from %windir%.

It does not create any backups so be extremely careful when trying it. Better back up IO.SYS and COMMAND.COM before hand, in case anything goes wrong.

It has been tested on my both Win98SE machines - no test on Win95 yet, I am too tired.

Any feedback would be appreciated (except for "ugh, ugly code" - I know that already :P )

[attachment removed - newer version below]

Edited by Drugwash
Link to comment
Share on other sites

one important thing. with wll system frozen on usb device previously. now it has frozen on soundcard. i changed some things in bios...

as i mentioned before wll is very unpredictable. all i know is that with large ram, many devices it may cause freezing. without wll system boots correctly. always. wll makes my system more likely to freeze during bootup, and maybe it is responsible for some other things which happened last days on my system...

this is report for Tihiys patched wll.

i have to rebuild my computer to fix all possible mechanical problems (i added some cards to it and i want to mount them so tight as possible). if the problems persists i still cannot use wll.

Link to comment
Share on other sites

Hmmm .....

I've been wanting to give wll.com a good whack since some time last year ... Finally, Drugwash took up the challenge of doing something to wll.com ...

I have been helping Drugwash with his attempt and I promised him that I'll look at some of the more annoying issues with wll.com last weekend ... Drugwash is currently doing some stuff with io.sys patcher and I will temporarily oversee bugs squashing until I quit or someone better takes over .... (yeah, I sucks) ...

A week has passed mixing this 'cokctail' and the result is a clone based on wll.com and renamed to wbl.com .....

I hope those who were having issues (or not) with wll.com could spend a few minutes making some test runs with wbl.com ... No installation is necessary to test it out ... If you find bugs with it, please report. If it works good, you can just copy it over wll.com ...

Wbl.com have been tested on Nvidia, Ati & i810 gfx ... I have made major changes and re-arrangements. Source code will be released within a week if no annoying issues are brought up ... Anyone who wishes for the source code now, please pm me (as I may make/add more changes to it) ...

There are now 6 files in the archive:

1. readme.txt - some notes & description of progressbar creation

2. splash.sys - bmp logo file with embeddedd coordinates data

3. wbl.asm - the source code

4. wbl1.com - brick animation without fade-in

5. wbl2.com - brick animation with fade-in (mehotd 2 - more memory usage)

6. wbl3.com - brick animation with fade-in (method 3 - less memory usage)

Important: these must should be run in pure dos ... running in dos box may crash it as it will make direct memory access here and there ... update: wbl1.com and wbl2.com can be run within windows ... wbl.com will not ...

To make test runs, copy splash.sys to root folder C:\ and run wbl1.com ... See if any visual smear/glitches occurs ... I'm interested to know if there's any issues here ... (my test runs shows no issues)

wbl2.com is usefull when you want to see each brick/bullet/progressbar movement on screen ...

If you have RP7 logo applet installed and willing to make test runs, copy splash.sys to root folder C:\ and copy wbl.com as wll.com (Don't forget to make backup copy of wll.com) ... Reboot, see result and please report any issues ... (This is the real test)

Alternatively, boot to dos ... copy splash.sys and wbl.com to root directory and run wbl at prompt ...

Changes to the bmp logo file:

Basically still a bmp file with coordinates embedded in the 4th byte palette table. It is unused for 256 color bmps and deemed safe for use ... Offset are listed below, two bytes required for each ...

Offset for embedded val (from BOF)

topHor : offset 57 & 61

topVer : offset 65 & 69

width : offset 73 & 77

height : offset 81 & 85

shaftw : offset 89 & 93

Changes to wll.com and reborn as wbl.com

1. Timer chain/re-entrant/safe unhook

2. Internal stack allocation

3. Code re-arrangements & comments

4. Replaced brick animation routine

5. VESA checks

6. BMP file/header checks

7. Banks calc'ed using vesa wingranularity

8. Various cleanups

Target of this exercise:

1. Resolve intermittent brick glitches (drawn way off shaft)

2. Resolve ati screen bubu ..

Thank you & rgds

p/s: Before I forget again, thank you Tihiy for the source codes .....

WBL archive with source codes

WBL_with_source.rar

Edit/Added:

Added WBL (fade-in) archive

Removed older versions

WBL source code & binaries

Edited by PassingBy
Link to comment
Share on other sites

i have resolved the problems on my own system. The freezing during bootup was caused by low buffers value (!!!). Originally i had buffers set to 99,8 - largest possible value. with it system worked, and i did not measured or recognized any issues with performance. Thats quite strange, because reccomended value was always around 20, and files around 100-150... I have files and buffers at topmost values and the system works as swiss clock.

Because of issue with wll i set down the buffers size to 20. that fixed issue when wll wont load logo and dropped to dos. quite strange for an app of this type. With this setting i was able to run for some period, later i recognized errors during bootup - mostly freezing at usb device at first boot, and later after bios changes freezing with sound card.

i thought that freezing of sound was caused by wll, but it did not fix after i removed wll. I set Buffers back to 99.8 and the system works again flawlessly. The reasons of this very strange behaviour are mystery for me. most users experienced problems with high values of buffers and this is first time i experienced opposite behaviour.

since my computer is far behind standards i describe the HW config. maybe you shall see something what can help you.

Abit VH6-T "Immolator" (modded bios, all hidden settings unlocked - specially acpi, added logo)

Intel Pentium III-S 1,260 Mhz @ 1,482 Mhz, 512kb cache

PQI SDRam 133@156 Mhz, 3x 512Mb sticks - Same series

Asus Radeon x850XT 256Mb Ram

LeadTech Winfast DTV2000h Tv tuner

Creative SoundBlaster LIVE! 5.1 (dos and windows driver)

Adaptec 19160 SCSI controller (scanner and harddisk)

STLab USB2.0/Firewire controller

Intel Pro 10/1000 GT Lan Card

here is autoexec bat:

@echo off

cls

@CTTY NUL

LFNFOR ON

mode con codepage prepare=((852) C:\OS\COMMAND\ega.cpi)

mode con codepage select=852

lh keyb sl,,C:\OS\COMMAND\keybrd2.sys

c:\dos\xmsdsk\xmsdsk.exe 513732 K: /c1 /t /y

rem c:\dos\xmsdsk\xmsdsk.exe 524288 K: /c1 /t /y

rem C:\OS\COMMAND\label K: scorpion

lh C:\dos\blaster\sbeinit.com

c:\dos\shsucdx.com /d:AADVARK /Q /l:f

c:\dos\cmouse\ctmouse.exe

rem lh c:\dos\lsl

rem c:\dos\e1000odi

rem c:\dos\e1000pkt 0x60

rem c:\dos\ipxodi.com /a

rem lh vc

rem c:\umbpci\fastvid\fastvid.exe 111 -128 d0000000

SET PATH=%PATH%;C:\PROGRA~1\ATITEC~1\ATICON~1

c:\dos\umbpci\umbfill.com

CTTY CON

and config sys:

SWITCHES=/F /E

DOS=HIGH,UMB,noAUTO

FILEShigh=255

FILES=255

BUFFERShigh=99,8

BUFFERS=99,8

LASTDRIVE=k

FCBShigh=1,0

FCBS=1,0

STACKShigh=0,0

STACKS=0,0

DEVICE=C:\OS\HIMEM.SYS /numhandles=128 /hmain=64 /TESTMEM:OFF /Q

DEVICE=C:\dos\EMM386.EXE RAM NOTR

SET PATH=C:\OS;C:\OS\COMMAND;c:\vc;C:\DOS

SET BLASTER=A240 I7 D3

SET CTSYN=C:\OS

DEVICEhigh=C:\DOS\QCDROM.SYS /D:AADVARK

rem SHELL=C:\COMMAND.COM C:\ /E:1280 /L:160 /U:160 /P /F

ACCDATE=C- D- E- F-

DEVICEhigh=C:\OS\SETVER.EXE

DEVICEhigh=C:\OS\IFSHLP.SYS

devicehigh=C:\OS\COMMAND\DISPLAY.SYS con=(ega,,1)

Country=421,852,C:\OS\COMMAND\country.sys

try to test WLL with some really mad buffers and files values and watch its behaviour. for me is this only config where system works without trouble, but the wll with this config just wont run.

Edited by Offler
Link to comment
Share on other sites

Honestly I've never seen so much tweaking in those two poor boot files. :) Only once, for an old mobo, was I forced to use some parameter in CONFIG.SYS - something like /M:6 or so, can't remember exactly - otherwise everything was almost stock. There might have been some minor tweaks at times, while playing with different tweaking tools. For comparison, here's my files on the main machine:

Autoexec.bat:

@SET DOS16M=2

@echo off

@mode con codepage prepare=((852) C:\WINDOWS\COMMAND\ega.cpi)

@mode con codepage select=852

@keyb ro,,C:\WINDOWS\COMMAND\keybrd2.sys

@path=C:\UTILS;C:\UTILS\NC;c:\Utils\nopey;c:\tasm\bin

SET DIRCMD= /P /O:GNE

@deltree /y c:\windows\cookies

@deltree /y c:\windows\history

@deltree /y c:\windows\tempor~1

@deltree /y c:\windows\temp

@md c:\windows\temp

@cls

Config.sys:

devicehigh=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)

Country=040,852,C:\WINDOWS\COMMAND\country.sys

STACKS=0,0

There are some tweaks in MSDOS.SYS though. Here you are:

MSDOS.SYS:

[Paths]

WinDir=C:\WINDOWS

WinBootDir=C:\WINDOWS

HostWinBootDrv=C

[Options]

BootMulti=1

BootGUI=1

DoubleBuffer=1

AutoScan=0

WinVer=4.10.2222

DblSpace=0

DrvSpace=0

DisableLog=1

BootWarn=0

BootDelay=2

BootKeys=1

BootMenu=0

BootMenuDelay=4

I've seen something in your files that I was afraid of: Windows folder not called 'Windows' as usual but 'OS'. That's gonna negatively impact the Patcher, as it's not yet flexible to accept custom path/name to the Windows folder. Actually this is something I was gonna work on next and I see there's good reason to.

However, I'd be interested in seeing if you get the error message regarding the Windows folder not being found. The Patcher will abort the current operation if any of IO.SYS, COMMAND.COM, Windows folder are not found, so no files would be patched/installed/deleted in this case.

Now on my side, today I've had one of these days again. The spare monitor wouldn't start up anymore, the second test machine (Win95B) wouldn't recognize the old HP D2826 monitor, then when I managed to install the driver it would stay blank on reboot because it didn't like the 'Adapter default' refresh rate and I had to boot in safe mode and switch to 'Optimal', then installing a second videocard (S3 Trio64V2/DX) to see if the logo animation shows up. I had trouble installing its driver, then the resolution wouldn't go up to 1024x768 as it was because of only 1MB of video memory and so on.

When I finally managed to get it running the animation showed up properly, no freeze. Under Windows, I tried Patcher on it and... it wouldn't work. Said it couldn't find \IO.SYS and \COMMAND.COM. Tried to put Patcher in any possible folder (C:\Windows, C:\ root) but no dice. Rebooted in DOS mode - no keyboard. I went for the hammer as I had an urge to smash it into pieces, but reason prevailed (fortunately). Went into BIOS, tried a few settings blindly, until I found I had to disable USB keyboard support to have a working AT keyboard in DOS.

Oh, forgot to mention the stupid BIOS revision where I had to choose 'System keyboard: Absent', otherwise I'd get that classic moronic error: Keyboard error - Press F1 to resume.

Now, after I got a keyboard in DOS, I tried Patcher again and... again it wouldn't work - same error. So now I'm wondering what is the difference between the 2 machines that it works fine with and this one where it doesn't. I'm only using INT10h and INT21h for checking those files' presence. I don't think it could be something CPU-related (Pentium P54C 166MHz - no MMX). Maybe the DOS version in Win95...

Anyway, I need to work that out and also check PassingBy's 'baby' so enough blabbering.

[EDIT]

Actually this was an easy one: MSDOS.SYS had arhs attributes and could not be opened to read. Fixed it and improved so it preventively removes and then brings back all involved files' attributes. Patcher works now in Win95B too. Now gotta debug the debug routine that was showing wrong messages. :)

Edited by Drugwash
Link to comment
Share on other sites

My system is not pure Win98SE machine. i use it because i really like full dos support. no emulators. Dos provide me also browsing where i can visit pages which are infected and i cannot be attacked in that environment :) Win32 virus will hardly work in Dos environment.

But thanks, your config sys and autoexec brings me to an idea that WLL is something which existed in Windows ME. This system was working on same base as win98 but it was masked as full Win32 system without dos base... I am sure that most people dont use DOS drivers with wll... and that may be the problem

Normally i use dos driver for mouse, cdrom and soundcard. Dos games with all this glittering support and hardware work different as on PC speaker, without mouse and usually cracked without video... :) In some very special cases i can use lancard to see if and how dos games support IPX or TCP protocol.

also for these reasons i use emm386 and because i have toomuch ram i use XMSDSK.

and maybe this all stuff makes wll sick.

Link to comment
Share on other sites

Now that's awesome! I'm glad my code was any help to you!

If you are be able to fix scandisk bugs (blue screen without anything) on nVidia cards, that'll be super nice!

Link to comment
Share on other sites

is the dos scandisk during bootup really needed? i experienced more issues with it than with win version (more data lost, more trouble created as cured).

WBL tested:

positives:

- can be executed from autoexec.bat (in this case doesnt need patched io and command)

- works with buffers=99,8

negatives:

- does not work with my logos (wrong size), and with svgacom logos

- system reboots when text is displayed from behind

- text from backround overlays the original screen

Edited by Offler
Link to comment
Share on other sites

is the dos scandisk during bootup really needed? i experienced more issues with it than with win version (more data lost, more trouble created as cured).
I second that. It's been years since I disabled the DOS scandisk at startup (from TweakUI, for the interested) and I noticed a major improvement as opposed to old times when it was enabled.

However, even the Windows Scandisk (and it seems to be the ME one, IIRC) has some problems - most errors I get when running it are related to MS-DOS mod names being longer than 66 characters. Usually happens in Yahoo profiles, Macromedia Flash Application Data, Java installation foder, .NET Assembly foder. Off-topic anyway.

About the DOS games, I think you'd be better off either running them with DOS properties in Windows (\%windir%\DOSSTART.BAT holds the settings) - where you could specify any additional drivers and settings you may need, such as DOS mouse, SoundBlaster settings, CD-ROM, etc - or just dual-boot with plain MS-DOS. I believe running DOS drivers and software in parallel with Windows will just lead to trouble.

As for my work, I really wanted to bring an improved installer today, but I went to sleep at 7 AM without being able to figure out a simple file copy issue. Probably registers that don't go to 32bit. Basically it's almost done, just gotta fix that little quirk.

And shamefully I still didn't get to even open the code for WBL, as caught as I was with all this. :blushing: I promise I will as soon as possible, maybe it'll help me fix this last issue too. So... laterz! :hello:

P.S. Offler, PassingBy's logo uses different coordinates storage addresses and routine, so I guess I'll have to check the code a.s.a.p. and modify LogoTool to allow choosing between the two versions, or just create a separate version of it just for WBL - I'll see what I can come up with.

Link to comment
Share on other sites

Hmmm .....

If you are be able to fix scandisk bugs (blue screen without anything) on nVidia cards, that'll be super nice!

I may have an idea or two ..... I have a plate full to chew right now; will be back in a couple of days to whack scandisk issue ... (I'll read up a bit and simulate dirty bit ... then I'll see how to add it into a nice cocktail)

- does not work with my logos (wrong size), and with svgacom logos

- system reboots when text is displayed from behind

- text from backround overlays the original screen

1. Logo validation routine:

a. splash.sys must exist

b. Filesize 308,278 bytes (301K)

c. Must have BMP signature

d. Must be bmp ver 3 (40bytes header)

e. Must be 256 color.

f. Must be 640px width

g. brick size width & height must be non-zero

I will stick to embedded data in palette table as no random color dots will appear at the top left of screen as with recent svgacom versions. It's the current best solution for variable brick position & size. However, there is a limit to the brick/progressbar size. It is fixed to 512 bytes ... This is not a bug but a feature ... :whistle:

(Note to meself: check for bricksize out of range)

Enlarging the brick size will eat up dos low memory ... wbl has a very humble target of not eating more than 2KB before win.com ... moving to higher memory is not in the pipeline ...

2. Text in background means message outputs are sent after wbl changed gfx mode ... probably some error msgs from memory manager or something that caused the reboot ... (There's a dos console-output-redirect-to-file TSR utility somewhere that may help you get those msgs ... it'll eat up memory though ...)

3. This is an 'inheritance' from wll.com ... Gfx/text mode changing/swapping is the issue ... I'll see if I can make them play nice and still stay within 2KB limit ... A working solution to this is also linked to scandisk issue above and may take a while to get properly cooked (nope, it's not fastfood) ...

Anyone who made test runs, kindly leave a note whether its working or otheriwse ... Inputs (pros & cons) are appreciated ...

Rgds

Link to comment
Share on other sites

Uh-oh. I've tested wbl on real system with i915GM, worked fine.

But! When i've tried it in VMWare, if was kinda catastrophic.

First boot, after fade-in (with no animation) Windows started registry restore and was rebuilding registry for a long time.

Second boot, complete hang, no activity, no animation.

Third boot, scanreg started -> system halt.

I should say that in VMWare video register manipulation often produces unexpected results. (With latest WLL, it is fine, even hang problems solved).

Also, i've noticed that you're fade-in before actually starting win.com?

Then it should be like that, i think:

- Zero palette

- Load picture

- Save bricks

- Erase bricks (empty shaft)

- Animate palette in ~500 ms

- Start animation from invisible left

- Start win.com

Otherwise, no profit. And uh... you're already 3KB, are you shrinking memory on loading procedures?

And I would like to see source, and help you (or take all good things for my profit :rolleyes: ). You can always contact me via PM or ICQ...

Edit: oh, simulate dirty bit? That's awesome if you can, since i was unable to :}

Edited by Tihiy
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...