[mR] Forums

Full Version: Philly-Cheese OS
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Click Photo To Enlarge

This is the Philly-Cheese OS. It is written in Assembly and Assembly alone as to be ported into 0x10^c when the game is released. You can download it and run it on VirtualBox or what-have-you. This release contains only the basics: A bootloader, a kernel, and a simple command line interface.


The Current Crew:
>Wischyre (Development)
>John (Beta Testing)



Things to expect in the next release:

A program for composing and editing text
Pong, maybe?
Some sort of GUI


I've attached an archive containing the diskette image as well as the source to this thread.


Feel free to contribute any ideas you may have and report any bugs you can find, and keep in mind that many of us may be using this in 0x10^c some day, perhaps soon.


Oh, and I've also taken taken liberty of copy-pasting the documentation below.



Philly-Cheese OS v0.6a Documentation
Thomas Brooks - 2012


-Contents
-
>1. Specifications
>2. Running
>3. Usage
>4. Assembling


-Section 1-
Specifications

Philly-Cheese OS is an x86 operating system written entirely in the Assembly language. It is open source and free to use. However, it is in the early stages of development and lacks many features considered to be standard on many mainstream operating systems.

In this release, Philly-Cheese OS is comprised of 5247 lines of code and takes up a mere 75 Kilobytes in its disassembled form.

Again, this operating system is very weak and can't do much of anything in this state. It is being developed as to eventually be ported to the virtual computers in Mojang's upcoming game, 0x10^c.

As far as system requirements go....Let me put it this way: Your grandmother's rig can run this thing.


-Section 2-
Running

You can run Philly-Cheese OS on a virtual computer or over an emulator using the disk image included here. You can also write the image to a 3.5'' floppy diskette and boot to it on a real machine....if you really want to.


-Section 3-
Usage

This release of Philly-Cheese uses a very simple command line interface. There are seven main commands, as well as the ability to execute other programs written in Assembly.

The commands are as follows:

>dir -- Lists all files in the current directory
>cat -- Concatenates specified file and prints the output
>cls -- Clears the display
>help -- Lists the seven commands
>time -- Prints the current time
>date -- Prints the current date
>ver -- Prints the current OS version

None of the commands are case-sensitive.


-Section 4-
Assembling

Included in this package is the source for the entire operating system. If you really want to, you can assemble it yourself using an assembler (preferably NASM). The file 'boot.bin' will need to be written to the first sector of the floppy diskette, and 'kernel.bin' can be placed anywhere.

You can also develop your own software to run on Philly-Cheese OS if you write it in assembly.




Looks promising!
I approve.
I really like the ASCII picture of the cheese steak. Very professional.
Yes, I traveled time to post this.
Update: 30.04.2012

Click Photo To Enlarge

v0.7a preview

ASCII art of a philly cheese steak.

v0.7a will also include:
>A gui
>A program for editing

Any other ideas?



Herp derp beta tester here, gtfo my way.

Click Photo To Enlarge

Found a bug, I think..
(04-30-2012, 09:03 PM)John Wrote: [ -> ]Herp derp beta tester here, gtfo my way.

Click Photo To Enlarge

Found a bug, I think..

Must be a register overflow...

Code:
lea dx, 13
mov ah, 15
xor dx, var_splash

wr:
mov ah, 03h
mov 1l, 1
mov cl, sect
mov ch 0h3
int 13h


Should be fixed in the next release.

I actually think it has something to do with this little bit of source from your string.asm included in your kernel.
Perhaps your strings aren't properly parsing? Check the loops again, maybe something's bugging out here.

Code:
os_string_parse:
    push si
    mov ax, si            
    mov bx, 0            
    mov cx, 0
    mov dx, 0
    push ax                
.loop1:
    lodsb                
    cmp al, 0            
    je .finish
    cmp al, ' '            
    jne .loop1
    dec si
    mov byte [si], 0    
    inc si                
    mov bx, si
.loop2:                    
    lodsb
    cmp al, 0
    je .finish
    cmp al, ' '
    jne .loop2
    dec si
    mov byte [si], 0
    inc si
    mov cx, si
.loop3:
    lodsb
    cmp al, 0
    je .finish
    cmp al, ' '
    jne .loop3
    dec si
    mov byte [si], 0
    inc si
    mov dx, si
.finish:
    pop ax
    pop si
    ret
(04-30-2012, 09:13 PM)John Wrote: [ -> ]I actually think it has something to do with this little bit of source from your string.asm included in your kernel.
Perhaps your strings aren't properly parsing? Check the loops again, maybe something's bugging out here.

Code:
os_string_parse:
    push si
    mov ax, si            
    mov bx, 0            
    mov cx, 0
    mov dx, 0
    push ax                
.loop1:
    lodsb                
    cmp al, 0            
    je .finish
    cmp al, ' '            
    jne .loop1
    dec si
    mov byte [si], 0    
    inc si                
    mov bx, si
.loop2:                    
    lodsb
    cmp al, 0
    je .finish
    cmp al, ' '
    jne .loop2
    dec si
    mov byte [si], 0
    inc si
    mov cx, si
.loop3:
    lodsb
    cmp al, 0
    je .finish
    cmp al, ' '
    jne .loop3
    dec si
    mov byte [si], 0
    inc si
    mov dx, si
.finish:
    pop ax
    pop si
    ret
Click Photo To Enlarge