#x16-PRos (real mode OS)

1 messages · Page 1 of 1 (latest)

tardy flume
#

haha wow! is this complete?

#

or mostly there?

#

I love a small little real-mode OS

quartz cape
# tardy flume haha wow! is this complete?

I am updating it. For example, now it is version 0.4, but I am already working on version 0.5. It is already possible to use. I tested it on several computersона рабI am updating it. For example, now it is version 0.4, but I am already working on version 0.5. It is already usable. I tested it on several computers and it works

tardy flume
#

QEMU can't boot it

quartz cape
#

Let me test it...

tardy flume
#

it fails both with -hda and -cdrom, might wanna check that out

quartz cape
#

That's strange

#

Try -fda

tardy flume
#

works fine 👍

#

might wanna update the command on the homepage 👍

quartz cape
tardy flume
#

maybe port/write a small assembler?

#

oh wait you have bf lol, nice

quartz cape
tardy flume
#

I think your snake game has a bug

#

lol, I'm not trying to break your system, I think that little real-mode OS's like this are very charming and fun, but I just ran into an issue

#

nevermind it works fine now, huh

#

woah, these are pretty neat, definitely a "x86 real mode" moment

#

awesome project!!!! I'm excited to hear more from it!!!!!

quartz cape
quartz cape
#

Several of my subscribers have started doing libc for my OS

#

I recently started working with them.

#

Several modules are already completed. Now we are working on the stdio.h

hexed bone
#

@quartz cape why did you create a new thread instead of using the existing one?

quartz cape
#

We made printf. It supports all types of data including float and double.

quartz cape
quartz cape
#

Guys check it out - PS/2 mouse driver

hushed rover
#

but wait

#

it's a true driver or you use bios interrupt ?

quartz cape
hushed rover
#

still cool tought

gritty remnant
#

how laggy is it

quartz cape
gritty remnant
#

damn

blissful barn
#

Is this in c?

hushed rover
blissful barn
#

X86?

blissful barn
hushed rover
hushed rover
blissful barn
#

Noice

quartz cape
#

Paint program

devout estuary
#

this is nice, do like a good real mode os

quartz cape
devout estuary
#

nice!

quartz cape
#

I improved the info menu by adding ASCII art and also improved the CPU info

quartz cape
#

Added display of remaining disk space and disk letter to the DIR command

quartz cape
#

Pong game

quartz cape
#

Hello everyone!

I recently completed the playback of IMF files in my OS.

IMF is a music file format, which is a set of instructions for the ADlib sound card, which was developed by id Software for use in games such as Doom and Wolfenstein 3D.

The format itself is super cool:

  • Lightweight
  • Cool sound quality

But there is no way to convert MP3 to IMF. The formats are too different. So either take music from old games, or write it ourselves using special programs.

I will try to implement support for WAW and MP3, but for now you can listen to the sound of that very IMF file.

I apologize in advance for the loud sound of the PC Speaker at startup. It can be turned off.

#

All that remains is to fix the bugs in the system API and we can start working on the graphical interface

#

Although, we still need to make a custom font

#

Oh, I also need something like "autoexec.bin"

mellow seal
#

haha cool

hushed rover
#

and script version too

hushed rover
quartz cape
#

New commands

GREP - search text in the file
HEAD - print first 10 lines of a txt file
TAIL - print last 10 lines of a txt file

hushed rover
quartz cape
hushed rover
hushed rover
#

so you could dev the OS under itself !

#

modify kernel
assemble
replace KERNEL.BIN

quartz cape
#

I plan to port FASM

#

And I also want to make BASIC

hushed rover
#

should be easy

devout estuary
#

tail -f support when?

hushed rover
devout estuary
hushed rover
#

how usefull it is ?

#
  • does it work on head ?
devout estuary
#

it's very useful for following logs as new lines get added

hushed rover
quartz cape
#

I'm starting to work on directory support. Now the root directory won't be filled with a bunch of files.

Everything will be nicely laid out in folders:

  • configs
  • programs
  • games
  • images
#

I also make upscale for BMP images.

hushed rover
#

oh nasm and mtools

#

is there a way i can just not use mtools and instead put file on a mounted fat32 partition ?

digital nymph
hushed rover
#

i can find it on google i guess

hushed rover
#

so i need to use an already existant image

#

image which is already mounted

digital nymph
#

if you're using debian/ubuntu its sudo apt install mtools,
if you're using macOS it's brew install mtools,
if you're using arch linux it's sudo pacman -S mtools

hushed rover
#

i hope it won't be to complicated

digital nymph
hushed rover
#

and this seem like a good candidate

digital nymph
#

oh...

hushed rover
#

mtools is in python

#

wait

#

i'm on the wrong mtools KEKW

digital nymph
#

bahahahAHAHHAHHAH

hushed rover
#

nl_langinfo 😭 i") afraid

hushed rover
#

oh mtools compile

#

i'll try commpiling this os this evening

quartz cape
#

I make little icons for the terminal

#

And the program, to create these icons

#

x16-PRos (real mode OS)

quartz cape
digital nymph
quartz cape
#

We need to solve this problem, and then start making a graphical interface.

digital nymph
#

a TUI with tiling windows wouldnt be bad though

#

(floating windows are complicated, especially for real mode)

short willow
quartz cape
#

Now when you start the OS, this logo will be displayed

hushed rover
#

does it scale

quartz cape
hushed rover
#

maybee you should made so it scale on big screen

steel plank
#

cant wait 0.5

quartz cape
quartz cape
#

PRos 0.5 is the biggest update of this OS

#

I making it about the 4 mounts

steel plank
#

and u done only 30%

#

that's will be insane...

quartz cape
quartz cape
#

PRos ricing

steel plank
#

insane

quartz cape
#

THEME.CFG

#

Then the OS will become fully customizable in terms of color palette.

quartz cape
#

Finally fixed file system API

#

2 new commands have been added:

  • THEME - Change the theme
  • SETUP - Go through the system setup again
short willow
quartz cape
quartz cape
#

ISO image creation has been added to the build script, as not all computers can correctly work with an IMG image written to a flash drive.

quartz cape
#

Added AutoExec

quartz cape
#

You can suggest ideas for programs, utilities, or even OS improvements. Just don't suggest anything too complicated; I write everything in assembly, after all :]

#

By the way, I'm thinking about adding support for .COM programs

devout estuary
#

dblspace

short willow
#

add fork() KEKW

devout estuary
short willow
devout estuary
short willow
devout estuary
#

zeroek

quartz cape
#

I am developing a new website for the project

#

For comparison, here's what it looked like before.

short willow
#

add actual UEFI support

#

cool tho

quartz cape
hushed rover
#

return to 16 real mode

#

and when you access hardware use actual driver in 32 bits mode

#

ghrn go back to 16 once finish

quartz cape
#

Neofetch-like program

steel plank
#

i think

digital nymph
# steel plank i think

how would you emulate? If you were to try and emulate it on x16-PRos you would need to store things in 16 bits, while uefi uses 64 and 32 bits

steel plank
#

idk

quartz cape
quartz cape
#

SETUP is now a standalone program. Previously, it was part of the core.

#

Also now APM is used for shutdown and restart

devout estuary
#

APM? that still exists?

quartz cape
#

Here are the final system requirements for the OS

devout estuary
gritty remnant
#

I have an i686 box that could probably run this

thick wedge
short willow
thick wedge
hushed rover
#

you get back to real mofr

#

and make a protected mode wrapper

#

around uefi function

short willow
#

fair

quartz cape
#

Configuring the Command Line Prompt

Now, using the config, you can create your own command line prompt. Everything is stored in the PROMPT.CFG file.

Supported:

  • Displaying simple ASCII characters
  • Displaying pseudographics
  • Displaying the username

Here's how to work with the config:

If you need something simple, for example, one ASCII character, the config will look like this:

>

If you need the username in the prompt, use this:

$username >

And if you need a pseudographic character that isn't on the keyboard, use this:

%FE %10

After %, write the ASCII code of the character.

quartz cape
devout estuary
#

you didn't go with just an env var like DOS?

#

looks flexible though

quartz cape
quartz cape
#

Finally have a working implementation of directories (folders). There are a couple of bugs, but I`ll fix them.

quartz cape
#

The OS is running from a flash drive

#

Everything works fine

gritty remnant
#

x16-PRos x86_64?

quartz cape
#

It's a small mistake, but who cares?

devout estuary
#

does this make it an 80 bit operating system?

#

64+16? lol

gritty remnant
#

use fpu registers as gprs trl

devout estuary
quartz cape
devout estuary
#

cute dog

quartz cape
quartz cape
#

I also made new theme config file: you can change any color in the PRos using RGB

steel plank
#

класс

quartz cape
#

A couple more songs in PRos:

  • SONIC.IMF from the Sonic game
  • Hoopes & Dreams from Undertale
eager burrow
#

also

#

HDA not working is something he needs to check

#

that means it won't really work on any hard drive (which is fine for 8086/8088 and is actually normal.. even MS/PC-DOS ended up not caring for other storage devices for a long time)

#

only diskettes (floppies)

#

FS & GS data segments do not exist on 8086/8088
-# I am sorry if I am being a pain or something..

#

also don't enable interrupts in the boot sector/record

#

interrupts like causing a nuclear fallout when using int 13h, which may lead to failed disk access (if writing / reading) / corrupted sectors that you attempted to access (if writing)

#

cool project

#

I like it

#

I like 8086/8088 stuff

quartz cape
quartz cape
#

I need to add Russian language support

eager burrow
#

No you dont

quartz cape
#

I will convert it to .imf and test it on my OS

devout estuary
#

i can send you some later

short willow
quartz cape
#

Somehow, the Windows 3.1 MIDI driver worked on my OS, so now I have a MIDI player. The MIDI driver is proprietary, though. I'll still need to write my own.

short willow
#

👍

#

it sounds like the tetris theme remix for some reason

quartz cape
#

New version! 5 months later!

x16-PRos v0.5 is out. The changelog is enormous.

Some of the changes:

  • More than 10 bugs fixed
  • Added user system with password encryption
  • Support for multimedia formats (IMF, BMP)
  • New programs
  • Added the ability to work with directories
  • Fixes that make the OS work on almost all CSM-compatible computers
  • Customization

Source code: https://github.com/PRoX2011/x16-PRos
Full changelog: https://github.com/PRoX2011/x16-PRos/blob/main/docs/changes/v0.5.txt

GitHub

Simple 16 bit (real mode) operating system writen in NASM from scratch - GitHub - PRoX2011/x16-PRos: Simple 16 bit (real mode) operating system writen in NASM from scratch

GitHub

Simple 16 bit (real mode) operating system writen in NASM from scratch - PRoX2011/x16-PRos

short willow
#

bee m pee

eager burrow
#

BMP

#

BEE M PEE

quartz cape
quartz cape
thick wedge
#

in my opinion

#

(if you dont already have one)

quartz cape
short willow
#

telegram is based tho

eager burrow
#

Telegram is not based

#

it no sigma

quartz cape
#

Video review. It's in Russian. Use subtitles.

https://youtu.be/EZqW3T1RKGw?si=4ejtTuRKquEqva1M

В этом видео я расскажу, что поменялось в моей операционной системе, которую я пишу с нуля за 5 месяцев разработки обновления.

GitHub проекта: https://github.com/PRoX2011/x16-PRos
Телеграм канал: https://t.me/PRoXChannal
С...

▶ Play video
eager burrow
#

And 80186

#

Works for the 80286,80386, and above

quartz cape
#

Hello everyone!

x16-PRos has received a major website update.

The biggest change is the documentation. I've tried to describe everything: how to run it (on an emulator and real hardware), how to use the API, and the available terminal commands. I've added the first program examples (I'll be gradually adding more) and updated the visuals to make the site more user-friendly.

Website link: http://x16-pros.prosdev.org/ (temporarily http, coming soon to https)

Advertising space is now available on the site at reasonable prices. Perfect for various IT projects and public groups. For any questions, please contact me via PM

still saffron
quartz cape
#

I created a new configuration file. It allows you to:

  • Mute the startup sound,
  • Choose a custom image for the startup screensaver,
  • Stretch the image to full screen (if its resolution is smaller than the screen resolution)
short willow
#

fire

quartz cape
#

Okay, now root looks neater:

/BIN - programs
/CONF - configs
/MUSIC - IMF music
/DOCS - tips, documentation

#

Programs are now executed from the BIN directory in the context of the current directory.

quartz cape
#

FINALY!!!!

quartz cape
still saffron
#

i made this myself, do u agree OP?

steel plank
thick wedge
quartz cape
quartz cape
#

I'm fed up with this. A new release is coming soon. There will be a lot of interesting stuff, but the most important thing is support for COM programs. And I understand that I'll be the only one working on the kernel. People sometimes create their own programs, and that's really cool, but basically all the development is my responsibility. There's interest in the project (1900 subscribers on YouTube, over 200 stars on GitHub), but only three of them contribute, and even then, it's not serious—not a single really important or interesting feature. They create issues on GitHub like, "My program doesn't work, please fix it." You write in the CONTRIBUTING section that it's ONLY ENGLISH IN ISSUES, but no, they still write whatever they want, without even sticking to the template.

Maybe the problem is with the OS itself? What's wrong with it? MikeOS works pretty much the same as mine, but people have contributed there, creating cool software and games.

Overall, if the situation doesn't change after the new version is released, I'll either take up developing a new OS or leave this field of activity altogether for a while.

dense holly
#

go DM

quartz cape
#

x16-PRos v0.6-dev

I pushed a new version 0.6 into the DEV branch. The list of changes is long, but briefly:

  • Improved organization of files on disk
  • Added test support for COM programs
  • Fixed bugs in string api and file system

https://github.com/PRoX2011/x16-PRos/tree/dev

GitHub

Simple 16 bit (real mode) operating system writen in NASM from scratch - GitHub - PRoX2011/x16-PRos at dev

thick wedge
#

and yeah, nobody respects issue templates lol

thick wedge
#

since they would never use it on their own machine

thick wedge
#

only serious contributors do so

quartz cape
thick wedge
#

and the world would be better if everyone respected that

#

anyway, i have to go

quartz cape
#

I have a simple template:

  • OS version
  • What was expected
  • What happened
  • What was the OS running on
quartz cape
#

x16-PRos v0.6.1

The new version has been released! The list of changes can be read in docs/changes
In the release version, CAT was improved, and the documentation built into the system was completely updated and rewritten (DOCS/)

short willow
#

cat improvement update

quartz cape
short willow
# quartz cape

it took me a moment to recognize that this isn't super mario world somehow

quartz cape
steel plank
steel plank
short willow
steel plank
#

кайф

thick wedge
hexed bone
#

English please!

quartz cape
#

More music! Wavplay has been added to the x16-PRos repo

short willow
#

pc speaker or what

quartz cape
quartz cape
#

working on multiple disks support

quartz cape
quartz cape
#

I've implemented a way to write system logs to a file. The version has been published to the dev branch. You can try out all the latest features.

quartz cape
#

I made a better HEXEDIT and WRITER

thick wedge
#

unfortunately i cant run it on my test machine

#

since i dont have csm

#

or im too stupid to find it

gritty remnant
agile tangle
#

Wow, this OS is a lot of hard work

#

i like it very

#

btw, i wanted to ask, how you load programs from a sector of the disk. because when i simply jump to a specific adress in memory to load my program and then jump back to my kernel adress, i cant load the programs again. because it shows a disk error. that is pretty annoying because you always have to restart the vm

quartz cape
#

I made a simple TUI program launcher. Works fine even in the real hardware

quartz cape
agile tangle
#

is it difficult to make or implement a filesystem?

thick wedge
agile tangle
#

I defined it in the bootloader as sp = 0x7c00 but this is for the kernel, right? So that doesnt matter i guess.

hushed rover
thick wedge
agile tangle
#

every time i try, the OS crashes after executing a program

thick wedge
#

(we should move to #programming or #1474418546225320121 i think)

agile tangle
#

okay

quartz cape
#

x16-PRos now has support of different timezones

thick wedge
#

cool

quartz cape
quartz cape
quartz cape
#

It took me three days, but what a result! Full support for cp866 and .FNT fonts for this encoding system-wide. By default, the image includes four fonts, but you can add your own 8x16 fonts from old DOS, for example. Plus, there's a TUI program and configuration file for configuration.

hexed bone
#

nice!

quartz cape
quartz cape
#

Pushed all the new features to the dev branch. Added support for sub-directories and a new terminal theme.

thick wedge
#

bro is cooking that 16-bit sh*t

agile tangle
#

im reading the disk.asm file of MikeOS and it is exactly the same as your fs.asm file

quartz cape
#

I am going to do a 0.8 release soon

#

So

#

Check the dev branch, I need your feedback

#

New OS project for raspberry pi 3 btw

quartz cape
#

And it haven't multiple disks support

#

Look closely to the source code

quartz cape
#

Say hello to the 0.8!

The new version 0.8 has been released after almost a month of development!

The changes affected both developers and users.

There's a long story here about the changes, so please read the changelog and release notes.

I'll be waiting for your feedback :]

https://github.com/PRoX2011/x16-PRos/releases/tag/v0.8

GitHub

x16-PRos v0.8
A release packed with visual polish, font customization, filesystem reliability improvements, and continued DOS compatibility progress.
The most important changes:
For users:

Custom ...

agile tangle
agile tangle
#

im not saying it is bad, do it if you want, because mikeOS is opensource

frozen atlas
#

in fairness I followed a guide for writing a bootloader once that was nearly identical to the mikeOS bootloader and the x16 bootloader (iirc), it's probably just a common way of doing things

quartz cape
agile tangle
thick wedge
agile tangle
#

thats the default of github

#

i changed it to dark mode

devout estuary
#

light mode github, the way it was meant to be viewed

#

😄

quartz cape
# agile tangle

Wow, I didn't think the code from the assembler forum had this origin.

#

I wish I could find a link to the code I borrowed from the forum. That was almost a year ago.

agile tangle
quartz cape
# agile tangle what assembly forum?

I don't remember, I told you it was a long time ago. By the way, I looked closely and the code is still different. The author of the code on the forum changed the cmp to test

#

Website update

A new news tab has been added to the project's website. I'll be posting about new features there from now on.

http://x16-pros.prosdev.org/

#

And now you can download old version of x16-PRos

quartz cape
#

Hi everyone!

Well, I have some very interesting news.

Starting with version 0.9, x16-PRos will support *.EXE(MZ) executable files. These are the very programs and games from MS-DOS.

At the moment, I've written several functions for the compatibility layer that allow running programs and games up to 450kib in size. Now I'm thinking about how to expand these limits, and from there it's not far to DOOM.

In the screenshots I'm running some games, namely:

  • Alley Cat
  • Bruce Lee
  • Road Fighter

And hello world, what else.

agile tangle
#

if you do the command hello and then give it a argument the whole OS would restart and then stop here:

#

thats a little bug

#

btw this happens if you type in a wrong command and then give it an argument

#

i tested your OS a little bit

quartz cape
quartz cape
#

Now I need to optimize the kernel size a little bit

stark mountain
#

Прокс англичанин

#

теперь

stark mountain
#

Так красочно

#

А как это все рендерится?

hexed bone
quartz cape
#

Игры можно скачать из интернета (например с old DOS), а уже потом в системе запустить. По умолчанию их нету в образе.

Games can be downloaded from the internet (for example, from old DOS), and then run on the system. By default, they are not included in the disk image.

quartz cape
#

I am sorry for non-English guys

hexed bone
#

@stark mountain @quartz cape please speak English!

#

This is an English-speaking server.

#

If you wanna speak Russian, take it to a Russian-speaking server or to DMs.

quartz cape
#

I made 7 new themes for the terminal

dense holly
thick wedge
quartz cape
#

Old photo, but anyway, you can check it yourself

stable kelp
#

cool!

hexed bone
#

nice!

#

@quartz cape Btw, how much of this is taken from or inspired by MikeOS? I noticed some similarities, but no attribution.

hexed bone
#

On an unrelated note, I notice you do mov sp, 0xFFFF.

quartz cape
# hexed bone <@1146676755432751207> Btw, how much of this is taken from or inspired by MikeOS...

I looked how the loading of programs and the file system were implemented there. Just because I was not too experienced in OS development. I didn't like everything else. I ended up writing the file system myself (to support directories), and the program loading logic also changed.

Now, The level of inspiration from this system is simply as minimal as possible. As I said, The string manipulation functions were taken from a forum and I recently learned about the origin of these functions.. But yeah, I need to leave a link to the original in the file.

quartz cape
#

So, the inspiration is present, but practically no code was taken. Only a couple of functions from the forum.

quartz cape
hexed bone
quartz cape
hexed bone
quartz cape
#

10 months actually

hexed bone
# quartz cape So, the inspiration is present, but practically no code was taken. Only a couple...

I've looked into the source code more closely, and quite a lot of code seems to be taken. This is especially apparent in version 0.4, the one to introduce file system support. Not only is the directory structure and memory layout very similar to MikeOS (tho the latter could be coincidence, I haven't looked too closely), the fs.asm from version 0.4 definitely took substantial portions of code from MikeOS disk.asm.

#

you can also tell that the portions you added have comments

#

while the portions taken from disk.asm have comments stripped

#

etc ...

quartz cape
#

So I ask you to accept my apology for all of this.

hexed bone
#

It's fine to look at other people's things, and borrow code, as long as you do proper attribution and don't violate copyright.

quartz cape
hexed bone
#

While the current version of fs.asm is substantially rewritten, there's still a lot of traces of the original.

#

So at the very least give some attribution and comply with the license terms of the Mike OS license.

#

Which I believe is a BSD3 license

quartz cape
#

I don't want other people's licenses in my project at all, this is one of the reasons why I rewrote my FS implementation

hexed bone
#

Well, I'm sorry, but as it stands now, your project is probably violating MikeOS copyright.

quartz cape
hexed bone
#

It's not 0.4, but also the current version.

#

While it is rewritten, it's probably still a derivative work.

#

There's still some similarities visible even now.

quartz cape
hexed bone
#

Yeah, then we are in agreement that all versions since 0.4 that currently exist need to attribute MikeOS and comply with the terms of their license.

#

Look, the BSD license is very permissive, it's not hard to comply with it.

quartz cape
hexed bone
#

doesn't matter

#

idk what you call small

quartz cape
#

Okay, fine

#

I'll move my thread to the "no AI" channel for now.

hexed bone
#

Very convenient timing ...