Previous Thread
Next Thread
Print Thread
Page 43 of 45 1 2 41 42 43 44 45
#109469 - 04/28/17 04:39 PM Re: VENIX Disks [Re: rfka01]  
Joined: Jan 2016
Posts: 21
bsdimp Offline
Member
bsdimp  Offline
Member

Joined: Jan 2016
Posts: 21
So why doesn't the -speed actually speed up the floppy access speed? It seems super slow (much slower than real hardware) w/o -speed and just a little slow with a -speed 10 on the command line. Is this a case of a driver that needs to be tuned, or is there something more systemic in MESS that needs to be addressed?

It also looks like Venix is only seeing 10MB of the 48MB drive (ST-251-1) I've setup, even after partitioning with WUTIL, so I'll have to get to the bottom of that. I think I've seen this on semi-real hardware as well.

And when I boot off the hard drive for Venix after installing, I get a watchdog timer triggering and garbage on the screen. I know there's a stack overflow issue for automatic booting, but this was booting off with the 'W' command. Or is that the issue?

The good news is I can boot Venix 2.0 off floppies, do the install and generally mess around with it, though in a restricted environment. It's going much better than I'd thought it might.

I'll try the BSW enhancements to see if that helps or not.

#109470 - 04/28/17 05:44 PM Re: Requirements? [Re: rfka01]  
Joined: Apr 2012
Posts: 160
Bavarese Online content
Senior Member
Bavarese  Online Content
Senior Member

Joined: Apr 2012
Posts: 160
Germany
Quote
So why doesn't the -speed actually speed up the floppy access speed?

Good question. I am open to suggestions. The new floppy code is at least accurate, timing wise (same cannot be said from the WD2010/1010 hard disk controller code i cobbled together).

Quote
And when I boot off the hard drive for Venix after installing, I get a watchdog timer triggering and garbage on the screen. I know there's a stack overflow issue for automatic booting, but this was booting off with the 'W' command. Or is that the issue?

Correct, both 'W' and auto-boot are affected. It is the same bug. A CPU crash (watchdog event) occurs @ the 3rd stage of the boot loader. Unfortunately i cannot find the cause. Also, the third stage pulls tricks i can't fully grasp as a 6502 guy. smile

In short: the Z80 thinks it boots from floppy, when data is piped from hard disk sectors instead. The 808x does something, the WD1010 does something, and somehow too many IRQs fire...so the 808x finally stalls.
The loader binary is hidden in one of the WUTIL.? files of the distribution archive - if someone wants to take a look.
Crazyc?

WUTIL comes with an extended boot loader much more capable than DEC's. Unfortunately, even the latest version (i think it was 3.2) crashes in our emulation. Just like DEC's limited, old one

The 3.0 or 3.1 archive came with Turbo Pascal source. I have it somewhere.

Last edited by Bavarese; 04/28/17 09:23 PM.
#109473 - 04/29/17 01:31 AM Re: Requirements? [Re: Bavarese]  
Joined: Apr 2012
Posts: 160
Bavarese Online content
Senior Member
Bavarese  Online Content
Senior Member

Joined: Apr 2012
Posts: 160
Germany
PREBOOT.ASM and SECBOOT.ASM contain commented assembler source.
One oddity i remember is that at least 1 geometry value (heads) inherited a wrong value (zero) from one of the earlier boot stages...
Source files

Binaries

Last edited by Bavarese; 04/29/17 01:51 AM.
#109487 - 04/30/17 05:14 PM Re: Requirements? [Re: rfka01]  
Joined: Jan 2016
Posts: 21
bsdimp Offline
Member
bsdimp  Offline
Member

Joined: Jan 2016
Posts: 21
Yea, I have that file. I'll have to take a closer look. Sadly, most zip files from that era give me errors like:
x $README.1ST: Unsupported ZIP compression method (imploded)
when I try to decompress them on modern hardware...

#109488 - 04/30/17 06:07 PM Re: Requirements? [Re: rfka01]  
Joined: Jan 2016
Posts: 21
bsdimp Offline
Member
bsdimp  Offline
Member

Joined: Jan 2016
Posts: 21
Looking at the source, it looks like it includes the Z80 boot code from the MS-DOS diskette (first two tracks). ZFLIP may well be in play, even though we don't need the floppy code to boot from the hard disk, the boot loader appears to put it in place and the rest of the OS depends on it... executing the wrong code during this because ZFLIP is wonky would definitely cause weird behavior, including stack overflow. 8088 processors really hate 8080/z80 code smile

#109501 - 05/01/17 02:51 PM Re: Requirements? [Re: rfka01]  
Joined: Jan 2016
Posts: 21
bsdimp Offline
Member
bsdimp  Offline
Member

Joined: Jan 2016
Posts: 21
In going through my floppy collection, I've found an alternate copy of Windows. The one that's normally available has issues, I'm told, with VAXmate files being mixed in and gumming up the works. These files are different, and on a set of disks that said "Windows 1.03" on them with a letter saying it is OK to upload them to BBSes dated in 1988. So I thought I'd pass them along to see if they are helpful fleshing out the graphics card at all. Since I think they are kosher to redistribute, I've put them up at github at https://github.com/bsdimp/rainbow100.git for all to enjoy. I have no clue how to install them or anything like that.

#109504 - 05/01/17 06:53 PM Re: Requirements? [Re: rfka01]  
Joined: Apr 2012
Posts: 160
Bavarese Online content
Senior Member
Bavarese  Online Content
Senior Member

Joined: Apr 2012
Posts: 160
Germany
Thanks for taking a look. Just for the record, an emulation of the DEC mouse protocol will be needed before we can give Windows 1 a try.

Back in 2012, i compiled some info here. I personally never got a graphics card, nor a DEC mouse - so i can't tell which of the serial ports was occupied.

As these mice were usable together with other workstations, working on them might be of some interest to others.

Last edited by Bavarese; 05/01/17 11:41 PM.
#110211 - 07/07/17 06:06 PM Re: Requirements? [Re: rfka01]  
Joined: Apr 2012
Posts: 160
Bavarese Online content
Senior Member
Bavarese  Online Content
Senior Member

Joined: Apr 2012
Posts: 160
Germany
Good news: i unblocked the 'auto boot' feature available within SET UP (see latest pull request).

The bad thing: i discovered a weird one-off bug in WUTIL 3.2. It appears that the primary boot loader (located in PREBOOT.LDX) has an unexplained offset of 1 byte.

This is either a bug in a 27+ year old, widely used hard disk tool nobody noticed - or an emulation bug.

PREBOOT.ASM is assembled with a NOP - which is vital, but eaten away by the BIOS (explanation in part 2 below). And the FAR call afterwards does add another +1 offset (call 0000:1001 in disassembly, which results in a botched stack pointer save right after START):

Code
mov [1170],sp    89 26 70 11

is executed instead of
Code
mov CS:[1170],sp    2E 89 26 70 11

(= correct statement)

It is unclear why real machines do not crash. Unfortunately i have no working machine left.

When i add an extra $90 (NOP) byte at the start of PREBOOT.LDX it suddenly works. Hey, it even boots CP/M :-)

So it would be very nice if someone (perhaps a 8086 expert) could give me a pointer in the right direction :-)

Robert or Warner, can you please test my bug fixed / 1 byte longer PREBOOT (complete with Wutil 3.2) on a real machine?
https://www.dropbox.com/s/s5eitbyy409yrzu/MODDED_WUTIL_V3.2.ZIP?dl=0

From listing:
https://www.dropbox.com/s/hjdslxjdv6726gt/PREBOOT.ASM?dl=0

Code
SECBOOT	SEGMENT	AT SECSEG
	ORG	0
	ASSUME	CS:SECBOOT

SBFRST	DB	?

SBSTART	PROC	FAR
	NOP
SBSTART	ENDP

SECBOOT	ENDS

CODE	SEGMENT
	ORG	1000H

	ASSUME	CS:CODE, DS:NOTHING, ES:NOTHING, SS:NOTHING

START:	NOP				;This NOP must be here for ROM boot  [ <--- EATEN AWAY BY BIOS, see code before / at F48C0 ]
	MOV	 WORD PTR CS:SAVESP,SP	;Save SP contents at entry time


Full source for boot loaders:
https://www.dropbox.com/s/mvdjtupnbfb2bsq/WUTIL_3.x_SRC.zip?dl=0

-----------------------------------------------------------------------------------------
From BIOS source:
https://github.com/shattered/retro-bios/blob/master/dec-rainbow100b/8086_DISASSEMBLY_23-022e5-00

Use 'bpset F48C0' to see the far call in action.

Code
seg000:08A0                 in      al, 60h
seg000:08A2                 cmp     al, 90h ; 'É'   ; First byte is $90 (NOP) ?
seg000:08A4                 jnz     short NON_SYSTEM__loc_8CD ;
seg000:08A4                                         ;
seg000:08A6                 mov     cx, 200h        ; 512 bytes
seg000:08A9                 mov     di, 1000h
seg000:08AC
seg000:08AC GET_BYTES__loc_8AC:                     ; CODE XREF: sub_84+82Bj
seg000:08AC                 in      al, 60h         ; WD1010 input port (8 bit data)
seg000:08AE                 stosb
seg000:08AF                 loop    GET_BYTES__loc_8AC ;
seg000:08AF                                         ;
seg000:08B1                 in      al, 67h
seg000:08B3                 mov     ax, 0EE00h
seg000:08B6                 mov     ds, ax
seg000:08B8                 assume ds:nothing
seg000:08B8                 mov     ax, sp
seg000:08BA                 sub     ax, 4
seg000:08BD                 mov     ds:1FF7h, ax
seg000:08C0 call far ptr loc_FFF+2 ; BOOT STRAP FROM HARD DISK   [ translates to 9A 01 10 00 00 ]


Last edited by Bavarese; 07/07/17 07:51 PM.
#110219 - 07/07/17 11:08 PM Re: Requirements? [Re: rfka01]  
Joined: Jan 2012
Posts: 671
crazyc Offline
Senior Member
crazyc  Offline
Senior Member

Joined: Jan 2012
Posts: 671
I don't get the problem there. The BIOS disassembly shows a call to 0000:1001 and the source for the bootloader has "ORG 1000H" which means it should be loaded at 0000:1000. Since the first instruction of the bootloader is NOP then the CS: override should be at 0000:1001 which is correct. Your description suggests that it's loaded at 0xfff or the cpu is branching to 0x1002.

#110282 - 07/13/17 05:32 PM Re: Requirements? [Re: rfka01]  
Joined: Apr 2012
Posts: 160
Bavarese Online content
Senior Member
Bavarese  Online Content
Senior Member

Joined: Apr 2012
Posts: 160
Germany
It turned out to be a bug in WUTIL 3.2. The boot loader is one byte too short. $90 NOP must be present twice. One byte is discarded by the BIOS, see :08a0.

Now i have Windows 1.0.3 running, and i would like to use a microsoft serial mouse (which seems supported in 1.0.3).

I added

Code
MCFG_DEVICE_MODIFY("rs232_a")
MCFG_SLOT_DEFAULT_OPTION("null_modem")
MCFG_SLOT_OPTION_ADD("microsoft_mouse", MSFT_SERIAL_MOUSE)
MCFG_SLOT_OPTION_ADD("mousesys_mouse", MSYSTEM_SERIAL_MOUSE)


Do i have to add additional code? Guess i have to wire some signals. There aren't that many samples in our repository (the PC JR uses another UART)...

(WineMine ported to Windows 1.x by Nathan Lineback)
https://www.dropbox.com/s/0isjzpfwlbddpaj/MS_Windows_1.0X_1985_SCREENSHOT_WineMine.png?dl=0

Last edited by Bavarese; 07/13/17 05:41 PM.
Page 43 of 45 1 2 41 42 43 44 45

Who's Online Now
0 registered members (), 18 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,412
Posts108,939
Members4,757
Most Online225
May 26th, 2014
Powered by UBB.threads™ PHP Forum Software 7.6.0
Page Time: 0.037s Queries: 15 (0.015s) Memory: 5.0321 MB (Peak: 5.2562 MB) Zlib enabled. Server Time: 2017-09-25 11:37:53 UTC