The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Saturday, January 01, 2000

V2_OS and other strange brews

Checked up on VS_OS today. Surprise, surprise, they finally released the source code. Immediately downloaded it and took a look.

Nothing surprising really, except that the source code to the bootsector is missing. Or rather, there is code to a boot sector, but …

BOOTIMAGE    DB 0E9H, 011H, 001H, 0FFH, 0FFH, 0FFH, 0FFH, 0FFH, 02BH, 056H
             DB 032H, 05FH, 046H, 053H, 02BH, 000H, 030H, 030H, 030H, 02EH
             DB 030H, 030H, 035H, 000H, 080H, 000H, 000H, 000H, 000H, 000H
             DB 000H, 000H, 044H, 033H, 022H, 011H, 010H, 000H, 000H, 000H
             DB 000H, 000H, 000H, 000H, 000H, 000H, 00DH, 00AH, 056H, 032H
             DB 02DH, 04FH, 053H, 020H, 056H, 030H, 02EH, 031H, 020H, 028H
             DB 043H, 029H, 031H, 039H, 039H, 039H, 020H, 056H, 032H, 05FH
             DB 04CH, 061H, 062H, 02CH, 020H, 052H, 06FH, 074H, 074H, 065H
             DB 072H, 064H, 061H, 06DH, 02EH, 00DH, 00AH, 000H, 04CH, 06FH
             DB 061H, 064H, 069H, 06EH, 067H, 020H, 053H, 079H, 073H, 074H
             DB 065H, 06DH, 031H, 036H, 000H, 00DH, 00AH, 046H, 061H, 069H

And some interesting code like:

   MOV DI, OFFSET PARTLIST
   MOV AL, 'f'
   MOV DS:[DI+0], AL
   MOV DS:[DI+16], AL
   MOV AL, 'd'
   MOV DS:[DI+1], AL
   MOV DS:[DI+17], AL
   MOV AL, '0'
   MOV DS:[DI+2], AL
   MOV DS:[DI+18], AL
   MOV AL, 0
   MOV DS:[DI+3], AL         ; 'FD0',0
   MOV DS:[DI+19], AL

Two things wrong here (at least for 80x86 Assembly):

  1. Using DI instead of EDI in 32-bit mode. This causes an extra byte of opcode to be generated for a 16-bit offset.
  2. Moving individual letters into locations. If you are doing this at this level, you can do better by:
    
    		mov	eax,$00306466           ; 'fd0',0
    		mov	[edi],eax               ; DS: override
    		mov	[edi+16],eax            ; not needed
    
    	

In poking around, I found a link to RDOS, another 80x86 operating system written in Assembly. This one is impressive, if only because it's a functional OS in about 130,000 lines of Assembly (including TCP/IP). Haven't had much time to look around this one though.

Obligatory Picture

[It's the most wonderful time of the year!]

Obligatory Contact Info

Obligatory Feeds

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site: http://boston.conman.org/, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

http://boston.conman.org/2000/08/01

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2022 by Sean Conner. All Rights Reserved.