flat assembler
Message board for the users of flat assembler.

Index > OS Construction > New v2os release

Goto page 1, 2  Next
Author
Thread Post new topic Reply to topic
ASHLEY4



Joined: 28 Apr 2004
Posts: 376
Location: UK
ASHLEY4 22 Dec 2004, 04:16
You can try the New v2os coded with fasm, code named v3os, this is just a demo of what could be the next v2os.
Down load here: http://www.falconrybells.co.uk/


A 32bit supper Dos Cool .

\\\\||////
(@@)
ASHLEY4.

Batteries not included, Some assembly required.


Last edited by ASHLEY4 on 27 Dec 2004, 23:07; edited 1 time in total
Post 22 Dec 2004, 04:16
View user's profile Send private message Reply with quote
jas20



Joined: 23 Sep 2004
Posts: 40
Location: Australia
jas20 22 Dec 2004, 04:27
I have tried qemu and bochs. I can't get it working on a USA keyboard layout. If you can get it working let me know what kind of keyboard layout do you have, what emulator, and one from the following:
--bochs scr file
--qemu options
- other emulator things.

Or if you have vmware or something else please try!

Try it! For a first release it's great.
Jas20.
Post 22 Dec 2004, 04:27
View user's profile Send private message Visit poster's website Reply with quote
roticv



Joined: 19 Jun 2003
Posts: 374
Location: Singapore
roticv 22 Dec 2004, 06:25
I see you, Ashley Smile

Do you intend to make it just like DOS or make a GUI for it?
Post 22 Dec 2004, 06:25
View user's profile Send private message Visit poster's website MSN Messenger Reply with quote
ASHLEY4



Joined: 28 Apr 2004
Posts: 376
Location: UK
ASHLEY4 22 Dec 2004, 20:56
Thanks jas20,
roticv, It will boot to a menu saying
Gui CLI
Pmode CLI
Real mode CLI

Depending which you choose it will run 16bit com/exe file, or 32bit bin file,
the GUI will be more like the xbox skinable and menu driven.
The kernel can be run from dos, so you can run dos program if you like.

Here is a simple hello world! prog.
Code:
;=========================================================;; hello                                          19/12/04 ;;---------------------------------------------------------;; \\|//                                                   ;; (@ @)                                                   ;; ASHLEY4.                                                ;; c:\fasm hello.asm hello.v2a                             ;;=========================================================;use32ORG 0x200000        jmp   startmsg1:   db "hello world!", 0start: ;----------------------------------------------------; ; Display start message.                             ; ;----------------------------------------------------;        mov   esi,msg1        mov   al,0x00        mov   ah,0x09        int   40h        ret    
[/quote]

\\\\||////
(@@)
ASHLEY4.

Batteries not included, Some assembly required.
Post 22 Dec 2004, 20:56
View user's profile Send private message Reply with quote
smiddy



Joined: 31 Oct 2004
Posts: 557
smiddy 22 Dec 2004, 22:06
Hi,

I did take a look at it. The RUN command only works with upper case lettering. Also, placing A: infront of the executeable wasn't parsed out. Other than that it looks like a good start. I was hoping to see a MEM[ORY] command or PART[LIST] but then again...this is a demo. Wink Thanks for sharing.

Bochs I was unable to get it to run properly. It appears that nothing is getting written to the screen when typed. However, the cursor moves. Also, hitting enter keeps the cursor moving, I expect this is a mapping issue?

Using DOSBox appears to work (started it from the command line). I tried RUN IMAGE.V2A and received two errors:

ERROR! Floppy not ready!
Bad command of file name.

Oh, you may want to include a command EXIT to unload the kernel. It is currently stuck in my DOSBox. Wink

I can't wait to see the rest of it when it is ready. Thanks for the preview!
Post 22 Dec 2004, 22:06
View user's profile Send private message Reply with quote
ASHLEY4



Joined: 28 Apr 2004
Posts: 376
Location: UK
ASHLEY4 22 Dec 2004, 23:59
Thanks smiddy,
It does not seem to run with bochs (as you said keyboard seem to the problem) ,i will take a look to see what the problem is, as for the upper case it should work as i convert all input to upper case.

When you say DOSBox do you mean as in this : http://dosbox.sourceforge.net/news.php?show_news=1

In the next release i will be puting a exit command for just such a case.

Thanks for your test info.

\\\\||////
(@@)
ASHLEY4.

Batteries not included, Some assembly required.
Post 22 Dec 2004, 23:59
View user's profile Send private message Reply with quote
smiddy



Joined: 31 Oct 2004
Posts: 557
smiddy 23 Dec 2004, 20:33
Yes, that's the DOSBox...

I have some code for determining if you're in DOS or not at the house. When I get home I'll see if I can scare it up. It isn't all inclusive (work in progress; NASM-ish but should convert alright) but you can work with it to determine if a reboot is needed or exit to DOS. (The only thing I may have not included in the code is looking for the in DOS flag...which I vaguely remember is somewhere in memory area 400 - 500, I think). I'll post it later this evening.

No problem, glad to help. I have four machines I can test it on...
Post 23 Dec 2004, 20:33
View user's profile Send private message Reply with quote
jas20



Joined: 23 Sep 2004
Posts: 40
Location: Australia
jas20 23 Dec 2004, 22:54
I can use the keyboard now!

The only problem is that the floppy can't be read.

qemu.exe -L . -fda win98sec.img (v3os.ima in same folder)

win98sec.img is on bootdisk.com

I use qemu 0.6.0 (0.6.1 doesn't keep cmd window).

When win98sec is booted > go to cmd windows and enter: change fda v3os.ima > Back in qemu at a: type : kernelv2 > Your now in v3os. Unable to run hello.v2a, image.v2a, dir (floppy problems).

So it seems that keyboard works if you have dos (I'll try a true dos image later).

Jas20
Post 23 Dec 2004, 22:54
View user's profile Send private message Visit poster's website Reply with quote
smiddy



Joined: 31 Oct 2004
Posts: 557
smiddy 24 Dec 2004, 01:17
@Ashley4:

Here's some working code...commenting is downward, meaning the last thing written is the last result. Initial stuff was weird...enjoy!

Code:
; ----------------------------------------------------------------------------
; Functions used ...
; ----------------------------------------------------------------------------
;
; Detect if DOS is loaded
;
;   - Check initial interrupt vector table for INT 0x21
;   - If vector is present run INT 0x21 AX=3306
;   - Check for CF for non-used function
;   - Experiments without DOS loaded yeilding the same result
;     on two different machines:
;        Major Version: 00
;        Minor Version: F0
;        Revision:      FF
;     Assuming if Major Version = 0 there isn't a compatible DOS loaded in
;     memory for use of its functions.
;   - PC-DOS 3.3:                     6A.02 - 68 (may have to revert to AX=3300)
;   - Win98:                          07.0A - 00
;   - FreeCOM 0.86 & 0.83:                07.0A - 00
; - Millenium 4.90.3000:              08.00 - 00
;   - Bootup:                                 00.
;
;   - Changing to display everything and update run above
;   
;   - Now I need to change the display to decimal since hex isn't used when 
;     displaying the version, especially for PC-DOS 3.30 (0.06.0015)
;    -- Also added version number for program in this format:
;       Major.Minor.Build
;     --- Major is a release version, currently 0, not released
;     --- Minor is the number of functions before a Major version number or
;         after a major version number before the next release. After is the
;         number of added functions from a major release.
;     --- Build this is the number of assembles/compiles of that version, shown
;         in hex.
;
;   - First run with ToDecimal was not spectacular, need to fix (0.06.0016).
;     Had to fix the decimal printout. Below are the findings:
;    -- In WinXP Pro DOS Box: 00A7107Ch, 5.0,  5.50 - 0
;    -- Boot MSI:             F000ED8Ah, 0.48, 0.0  - 0
;    -- Boot ASUS:            F000EF6Fh, 0.48, 0.0  - 0
;    -- PC-DOS 3.3:           026A1460h, 3.30, 0.0  - 0
;    -- Win98 DOS:            00C90FB2h, 7.10, 7.10 - 0
;    -- WinXP DOS:            FFFF3CA0h, 8.0,  8.0  - 0 (FFFF0 + 3CA0 = 1A3C90)
;    -- FreeDOS 0.82:         00CF109Ah, 7.10, 7.10 - 0
;    -- FreeDOS 0.83:         00700032h, 7.10, 7.10 - 0
;    -- WinXP Dos Box:        007A107Ch, 5.0,  5.50 - 0
;
;   - I hear there is a DOS variable in CMOS. Need to investigate and
;     implement (0.6.0017). Also, need to check if we're WM86 too...
;
;   - Added the detection of VM86 (0.6.0018).
;
; ----------------------------------------------------------------------------
CheckDOS:
      ; Look at interrupt 0x21 vector table (0000:0084 0x21 x 0x04 = 0x84)
    push es                         ; Save ES
   push di                         ; Save DI
   xor ebx,ebx
 mov ax,0x0000
       mov es,ax                       ; Point ES:DI to interrupt 0x21
 mov di,0x0084
       mov ax,word [es:di+2]
   mov bx,word [es:di]
     shl eax,0x10                    ; Move high order number into high EAX
      add eax,ebx                     ; Put low order into AX
     mov [TheEAX],eax                ; Save EAX
  mov cl,0x20
 call ToHex                      ; Prepare to printout

   mov si,InterruptVectorMessage
       call Message

    mov si,HexBuffer                ; Display HexBuffer
 call Message

    mov si,TheHexAfter              ; Put an 'h' after the hex output
 call Message

;   mov eax,[TheEAX]                ; Restore EAX

;  cmp eax,0x00000000              ; Check for zero

;       je NEAR .NoDOS                  ; No sense in continuing

;---> It appears the above code might be wasted since most BIOSes I've run across place this vector
;     within F000:0000 -> F000:FFFF

;---> Check for VM86 mode.

        smsw ax                           ; This assumes 286+
        and eax,1                        ; CR0.PE bit
        cmp eax,1
   je .V86Mode
 jmp .CheckBIOS

.V86Mode:

     mov si,V86ModeMessage
       call Message

.CheckBIOS:

     mov eax,0x00000000              ; Zero out registers (xor is faster...)
     mov ebx,0x00000000
  mov ecx,0x00000000
  mov edx,0x00000000

      ; Call int 0x21 AX=3000 (Original Get DOS Version 2+)
       mov ax,0x3000
       int 0x21

;       jc NEAR .NoDOS

  mov [DOSMajor],al
   mov [DOSMinor],ah

       mov [DOSInstalled],al           ; Tell the program that DOS is installed

        mov si,DOSDetected
  call Message

    mov si,INT21AX3000
  call Message

    mov si,DOSVersion
   call Message

    xor eax,eax                     ; Zero out EAX

  mov al,byte [DOSMajor]
      call ToDecimal

  mov si,DecimalBuffer
        call Message

    mov si,TheDot
       call Message

    xor eax,eax                     ; Zero out EAX

  mov al,byte [DOSMinor]
      call ToDecimal

  mov si,DecimalBuffer
        call Message

    mov si,TheEndOfLine
 call Message

    mov eax,0x00000000
  mov ebx,0x00000000
  mov ecx,0x00000000
  mov edx,0x00000000

      ; Then call int 0x21 ax=3306 (Get MS-DOS Version 5+)
        mov ax,0x3306
       int 0x21

;       jc .NoDOS                       ; CF set then it doesn't have DOS

      mov [DOSMajor],bl
   mov [DOSMinor],bh
   mov [DOSRev],dl
     mov [DOSFlags],dh

;      cmp bl,0x00                     ; Check for a Major Version (removed to see everything)
;    je .NoDOS

       mov si,INT21AX3306
  call Message

    mov si,DOSVersion
   call Message

    xor eax,eax                     ; Zero out EAX

  mov al,byte [DOSMajor]
      call ToDecimal

  mov si,DecimalBuffer
        call Message

    mov si,TheDot
       call Message

    xor eax,eax                     ; Zero out EAX

  mov al,byte [DOSMinor]
      call ToDecimal

  mov si,DecimalBuffer
        call Message

    mov si,DOSRevision
  call Message

    xor eax,eax                     ; Zero out EAX

  mov al,byte [DOSRev]
        call ToDecimal

  mov si,DecimalBuffer
        call Message

    mov si,TheEndOfLine
 call Message

    jmp .Done

       ; Else tell user DOS is not loaded.
.NoDOS:
  mov si,DOSNotDetected
       call Message
.Done:
  pop di
      pop es
      
    RET
    


I hope this helps your cause for an EXIT routine... Smile
Post 24 Dec 2004, 01:17
View user's profile Send private message Reply with quote
ASHLEY4



Joined: 28 Apr 2004
Posts: 376
Location: UK
ASHLEY4 24 Dec 2004, 02:43
Thanks a lot smiddy, i will do a check in realmode before going to pmode, and set a var, so people running it from dos etc, can swich back to dos or exit emulators.
I will give you a mention in the credits.
I also tryed DOSBox for the first time and i was impressed, got some good screen shots
but only of the command interface, as i got the same result as the both of you with the floppy and emulators.

jas2o, thanks for your work with emulators, hopefully the atapi code will work with emulators, so people who use them can test and RUN v2a progs.


\\\\||////
(@@)
ASHLEY4.

Batteries not included, Some assembly required.
Post 24 Dec 2004, 02:43
View user's profile Send private message Reply with quote
smiddy



Joined: 31 Oct 2004
Posts: 557
smiddy 24 Dec 2004, 14:07
Hey Ashley4,

No sweat, anything to help the learning process. I think I've gotten more from your CDPOD code...I haven't had the opportunity to look at IDE or ATAPI so your code has gotten my thoughts rolling. THANKS!

You are certainly welcome to use it as you see fit. If you credit me, then thank you. It's a work in progress and quite possibly more needs to be done to determine is DOS or say Windows or OS/2 or some other OS is loaded. I think the VM86 code (don't forget to check for the processor type) will alleviate any problems you would incounter getting into PMODE, I think.

BTW, great tag line...I'm trying to think of something just as snappy. Something along the lines of I have the tools to assemble it...though that isn't as impressive. Wink

I'll be away from the coomputer during the Holidays. Have a great time coding. See you back here around the 3rd of next year.
Post 24 Dec 2004, 14:07
View user's profile Send private message Reply with quote
ASHLEY4



Joined: 28 Apr 2004
Posts: 376
Location: UK
ASHLEY4 24 Dec 2004, 14:44
Thanks smiddy, have a good holiday.

PS: What about "There may be 8bits, but can you understand 1bit of it?"

\\\\||////
(@@)
ASHLEY4.

Batteries not included, Some assembly required.
Post 24 Dec 2004, 14:44
View user's profile Send private message Reply with quote
jas20



Joined: 23 Sep 2004
Posts: 40
Location: Australia
jas20 27 Dec 2004, 10:09
SOMETHING HAS HAPPENED!
ASHLEY4 wrote:
I have decided Not to implement v3os as v2os, there is too much in fighting from old v2os 0.70 members and it does not look good for new member to see this, i will still be Dev my OS on the same lines that i have out lined, i will start my own forum, anyone is welcome to join, i will let you know as soon as i have a forum setup.
I would like to thank any one who has taken part or tested the OS code named v3os.
Jas20
Post 27 Dec 2004, 10:09
View user's profile Send private message Visit poster's website Reply with quote
bubach



Joined: 17 Sep 2004
Posts: 341
Location: Trollhättan, Sweden
bubach 27 Dec 2004, 17:14
about time..
never did like the v2os "admins".. Wink
Post 27 Dec 2004, 17:14
View user's profile Send private message Reply with quote
ASHLEY4



Joined: 28 Apr 2004
Posts: 376
Location: UK
ASHLEY4 27 Dec 2004, 23:05
You can see Y v2os has not moved forwards in year's and Y these left v2os to start on there own http://unununium.org/

\\\\||////
(@@)
ASHLEY4.

Batteries not included, Some assembly required.
Post 27 Dec 2004, 23:05
View user's profile Send private message Reply with quote
jas20



Joined: 23 Sep 2004
Posts: 40
Location: Australia
jas20 28 Dec 2004, 01:20
Quote:
about time..
never did like the v2os "admins"..
Yes they do fight a lot. Always looking for code to put in "v2os darkside" (0.70).

FYI I'm sure v2os has no 'good side' (the only 'good side' they had was dos extreme.

Jas2o / Jas20
Post 28 Dec 2004, 01:20
View user's profile Send private message Visit poster's website Reply with quote
ASHLEY4



Joined: 28 Apr 2004
Posts: 376
Location: UK
ASHLEY4 28 Dec 2004, 03:33
Yes let see how much of our code ends up in 0.70.

PS: Can someone switch the lights off over at the v2os forum, i may of left them on Laughing.

\\\\||////
(@@)
ASHLEY4.

Batteries not included, Some assembly required.
Post 28 Dec 2004, 03:33
View user's profile Send private message Reply with quote
jas20



Joined: 23 Sep 2004
Posts: 40
Location: Australia
jas20 28 Dec 2004, 03:43
I think they lights are off, I removed my avatar, changed my board settings (i'm hidden now!), and reset the time.

Is there a licence that makes the project open source but can only be used on that project or on others if they ask the author?

Will some of the darkside members cross over to the forum to steal the code?

Jas20
Post 28 Dec 2004, 03:43
View user's profile Send private message Visit poster's website Reply with quote
bubach



Joined: 17 Sep 2004
Posts: 341
Location: Trollhättan, Sweden
bubach 28 Dec 2004, 12:28
hehe, no i think that the "admins" will never use that code, since "it has to bad process communication"..
lol, they will never get any coding done with all fancy goals; and people (non coders especially) is intrested in results not design issues.

_________________
BOS homepage: http://bos.asmhackers.net/
Post 28 Dec 2004, 12:28
View user's profile Send private message Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
crc 29 Dec 2004, 03:01
Quote:
Is there a licence that makes the project open source but can only be used on that project or on others if they ask the author?


It wouldn't really be open source if you restrict certain groups from using the code in their projects...
Post 29 Dec 2004, 03:01
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.