#IlyoDOS 1.0 SE

1 messages ยท Page 2 of 1

indigo needle
#

first, im starting UBS 1.1 support!

#

USB*

honest pier
#

usb 3.0 is a superset

indigo needle
honest pier
#

if you implement XHCI, you get USB 1.1 and USB 2.0 for free

honest pier
#

that way you don't have to have separate drivers for 1.1 and 2.0 controllers

#

also, USB 1.1 is virtually nonexistent

indigo needle
honest pier
#

because it wasn't popular during its time

indigo needle
honest pier
#

and it didn't really have a long lifespan, USB 2.0 was released just 2 years later

indigo needle
#

1.1 is when USB started getting attraction

honest pier
#

started, yes, but it still wasn't very popular

indigo needle
#

yes

honest pier
#

definitely not anywhere close to where it is today

indigo needle
#

USB is not very everyday for me tho bc i use internet and internal storage

honest pier
#

you use a keyboard don't you?

indigo needle
honest pier
#

it more than likely uses USB

indigo needle
#

oh yea its USB-C

honest pier
#

even a lot of network cards use the USB protocol in some way or another

#

yes, even PCIe ones

indigo needle
#

UPDATE: i started USB 1.1 coding

honest pier
#

also FYI, EHCI (USB 2.0) doesn't support USB 1.1 controllers

#

also, why are you doing USB 1.1?

indigo needle
#

also

#

im doing USB this early into the kernel

#

cuz currently the OS runs on a USB

#

and i need to read data from USB to proeed

#

proceed*

west patrol
#

just do xhci

#

you're just going to triple the work if you wanna implement newer stuff

indigo needle
west patrol
#

well. you should've looked in to it before writing any usb related things.

indigo needle
#

alright, i think im gonna implement XHCI

west patrol
#

please do

chilly sleet
#

nice cool fire W๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ

indigo needle
#

Ty

indigo needle
#

after taking a short break for school

#

im now continuing developemtn

#

(school just wasted my time), but atleast i dont study (i use chatgpt, next best thing)

past rose
indigo needle
#

study in school i guess

indigo needle
#

hey guys update, FAT12 build is gonna be bult first

#

sorry earlier i said FAT12 was discontinued:)

indigo needle
#

UPDATE

#

THE BOOTLOADER HAS PROGGRESSED TO THE SECOND STAGE

#

i planned for just a 512 byte bootloader

#

but now im moving 1.5 KB bootloader

#

which the second stage is a full KB

#

which is not alot, with todays standards.. but it will be a new refreshing stage after i suffered through 512 bytes

#

the first signs of life for the seond stage

indigo needle
#

hey guys!

#

this project was abandoned for a bit

#

but i have returned

#

and i even made some reforms as better assembly and basic 16 bit C that will be important

#

so ive came back to this project:)

indigo needle
#

right now, ive ditched protected mode, we are sticking to real mode

#

and i might run DOOM on this OS since it doesent really focus much on DOS, it mianly interacts with hardware itself

#

or ill port it

frank drift
#

You cant

#

DOOM ran on a DOS extender

#

32bit

#

You cant port as well unless you wanna be another copy of DOS

#

also

#

70s?

#

do you know what era your talking about

#

actually I dont think the IBM PC's were made in the 70's

#

you're gonna have to invent a time machine and bring a IBM PC

indigo needle
#

well, first of all

#

this is an 80s type of OS

#

not a 70s

#

and yes, i am planning to switch to protected mode, but my first attempt failed due to relying heavily on BIOS

#

but that will be fixed

#

and DOOM can be ported to my OS

#

as long as i provide the necessary APIs required for DOOM

#

such as file loading etc etc

#

and this is meant to be a temporary DOS

#

i might make an extension for the OS like windows 1.0

#

you had to boot MS DOS to run windows, and i think this goes up to 3.1

#

(correct me if im wrong)

frank drift
#

DOS was extremely weird

#

and if you want programs to work natively

#

you'll have to create a lot of weird API's

#

some legacy garbage

#

and some just outright weird because at the time no one knew how to use the 80386 to its fullest

frank drift
#

you might have to switch to fat16 or fat32

#

DOOM was 2MB

#

thats an absolute pain and a waste of space on fat12

indigo needle
frank drift
#

thats even worse

#

also you cant really bring programs into memory

#

they need to reside on a disk

#

unless you hard code them

indigo needle
#

even on BIOS read int 13h, if your gonna read from floppy, or anything, it cannot write floppy>internal storage, the only option available is writing to memory

frank drift
#

what?

#

you can write to a floppy

#

int 13h,03h or int 13h,0Bh

indigo needle
#

int 13h ah=2

#

thats for read

frank drift
#

huh uh

#

I know that

indigo needle
#

int 13h ah=3 is write

frank drift
#

there you go

#

you can write to a floppy

indigo needle
#

but mainly, reading from floppy has only the option to memory

frank drift
#

yeah thats because it cant fit any where else

#

you cant fit a 512 byte sector on a register

#

your still reading from a floppy

#

the program still resides on a floppy

#

a floppy is a storage device

#

or a block device, whatever you wanna call it

frank drift
#

they all dump it into RAM to take from RAM

indigo needle
#

yes

#

int 13h can use any disk

frank drift
#

no not really

indigo needle
#

as long as you reference back

frank drift
#

it was designed for diskettes

#

aka floppies

#

thats why it uses cylinder, head, sector

indigo needle
#

actually HDD, floppy

frank drift
#

or track, head, sector addressing

indigo needle
#

im not sure about CD

frank drift
indigo needle
#

because i dont use it

frank drift
#

it emulates for HDD

#

check the IBM XT/AT system bios PDF

#

IBM never accounted for HDD's

#

it literally just emulates

frank drift
indigo needle
#

ah 42h?

#

extended read?

frank drift
indigo needle
#

i think CD uses it

frank drift
#

it came too late

indigo needle
#

actually in most modern BIOSes, there a chance for it to be tehre

frank drift
#

CD was a thing LONG LONG before int 13h,42h was a thing

frank drift
#

those are UEFI

#

UEFI with CSM

#

not a true IBM Bios

#

plus UEFI is starting to get rid of CSM

#

UEFI class 3

#

is an example

#

and intel is pushing it heavily

indigo needle
#

personally, i think BIOS should be revived

#

BIOS is easier then UEFI for me

frank drift
#

it became duct tape on duct tape

#

every vendor did stuff differently

#

clones were all over the place

indigo needle
#

yes

frank drift
#

the IBM XT system bios was fairly clean

#

it was simple

#

and provided everything you needed

indigo needle
#

well, i know some other UEFI will come out with different functions

frank drift
#

and it matches its name "Basic I/O services"

frank drift
indigo needle
#

you never know lol

#

there are still some UEFIs that are generally the same, but with extra useless functions we dont need

frank drift
indigo needle
frank drift
#

if you wanna be for the 80s/90s

#

you can just assume floppy

#

everyone used floppies

#

they were the main thing

indigo needle
frank drift
#

yes but floppies were dominating

indigo needle
#

they were 5-12 MB

frank drift
#

Yep

#

but the average user didn't have a HDD

#

it wasn't cheap

#

no one wanted to spend more money on a larger "floppy" that they cant even swap out easily if it fails

indigo needle
#

it was atleast for the rich people

frank drift
#

also MS/PC-DOS and other operating systems were stupidly small and simple

#

they could run on anything

#

which is why clones were actually able to work

frank drift
#

it was

#

not even a joke

indigo needle
#

so i might aswell add it

frank drift
#

IBM system/360, AT&T bell lab's PDP

#

etc

#

used by big fat machines

#

I am pretty sure those fat machines didn't use the 8086/8088 tho

#

or anything X86 at that

frank drift
#

the bios emulates it

indigo needle
#

those machines used industrial grade CPUs

frank drift
#

you wont have to do much work

frank drift
#

They were insanely expensive

#

and got very hot

#

going up to a million USD at some point

#

mostly used by governments or colleges / uni's

indigo needle
#

i agree

frank drift
#

anyways you probably will support other drives without knowing

#

the BIOS emulated a lot of stuff

#

just dont try speaking directly to hardware controllers and your good to go

#

UEFI + CSM emulate USB's as super floppies

#

weird I know

indigo needle
#

yup

frank drift
#

Also you might wanna throw support for the IBM XT system bios out of the window

#

just use the IBM AT system bios

#

IBM XT system bios was simple, but very very tuned to what IBM wanted

indigo needle
#

what if i release a seperate version for it?

frank drift
indigo needle
#

its alright

frank drift
#

because you're gonna have to talk to a hardware controller if you want to be a real OS

indigo needle
#

my OS supports both tho

frank drift
#

alright then just release another version for the IBM XT

#

I am just setting my baseline at IBM XT

#

8088 and IBM XT is my baseline

indigo needle
#

how much people ahve an IBM XT?

#

have*

frank drift
#

so probably still exists

#

but its also probably gate kept by retro nerds

indigo needle
#

then im releasing a seperate version

frank drift
#

like seriously cheap

#

IBM cut cost a lot

#

they didnt even wire some stuff

#

anything they didnt need

#

wasn't wired

#

just to cut cost

indigo needle
#

2.1 million were produced

#

so im making a seperate version

frank drift
#

you cant even tell when the floppy is ready for I/O operation because IBM didn't wire the pins

indigo needle
#

oh

frank drift
#

the IBM XT system bios would just wait the worst case

#

which was ~500ms

#

and assume the floppy was ready for I/O operation

#

like I said

indigo needle
#

well that was unpractical..

frank drift
#

stupidly simple

#

very dumb

#

and very cheap

#

IBM wanted cheap not advanced and not smart

indigo needle
#

it would prob cost like an extra cent to include floppy ready or no

frank drift
#

they wanted that extra cent for themselfs

indigo needle
#

greed

frank drift
#

Actually some higher end models did have it wired

indigo needle
#

oh nice

frank drift
#

You probably won't need to read the READY bit from the FDC tho

frank drift
#

when touching the floppy controller

indigo needle
#

i do tho

frank drift
#

you should check if it was wired by IBM

indigo needle
#

?

#

oh

frank drift
#

seriously

indigo needle
#

well this is not a version for IBM

#

ill release it soon

#

and port it

#

plus

frank drift
#

they didn't even wire the pins for DRIVE CHANGED

indigo needle
#

im in real mode

#

so not needed

#

well thats greedy..

frank drift
#

my OS has to brute force it

#

by checking the file system signature and a per drive special ID cached on RAM

#

and comparing it with the one on DISK

#

to detect if the drive was changed

#

you know sense you can swap floppies

#

in and out

#

with ease

#

alright it was nice talking to you

#

I gotta go

indigo needle
#

yup

#

thanks

#

its nice talking to u too

#

also guys

#

HUGE UPDATE!!

#

IDT WORKED!

#

I PURPOSEFULY DID A DIV BY 0

#

TO TRIGGER IDT ENTRY 0

#

AND IT WORKED!

#

much better

#

now lets see if it triggers while not div error

#

IT DIDNT:D

#

WE MADE A SUCCESSFUL INTERRUPT HANDLER!

indigo needle
#

i did bound overflow

frank drift
#

so you went with protected mode?

inland moth
#

L

ocean eagle
indigo needle
indigo needle
inland moth
#

protected mode ๐Ÿ‘Ž

indigo needle
#

i might add a featurye to go back to real mode then

#

feature*

#

like MS DOS and windows 1.0-NT

#

i think NT had MS DOS

#

join me guys in voice 1 if youd like to see the development of the IDT

past rose
indigo needle
#

i meant windows 1.0 to NT

past rose
indigo needle
#

im sure NT didnt have MS DOS tho..

#

oh

past rose
#

the kernel has nothing to do with DOS

indigo needle
#

the kernel of early windows booted from MS DOS

past rose
#

yeah

#

but Windows NT is completely different

#

the NT kernel also basically has nothing to do with early Windows either

indigo needle
#

XP was also built on NT and 9x

past rose
#

mostly just NT

indigo needle
#

some of the codebase was 9x tho

past rose
#

which part?

indigo needle
#

im not sure

#

it might be the games

#

or AOL

past rose
#

AOL?

#

anyway, maybe some userspace utilities were brought over from 9x
but that's not really part of the core OS
a lot of the userspace codebase was already shared between NT and 9x since the mid to late 90s

#

Windows XP is essentially Windows NT in all ways that matter

#

like, I suppose Windows XP was the first NT version to have Windows Movie Maker

#

which was introduced with Windows ME

past rose
indigo needle
#

yup

past rose
#

also

indigo needle
#

bruh everyone left as i was showcasing my IDT

past rose
#

Windows/386, 386 Enhanced Mode Windows, and Windows 9x never went back to real mode unless you exited Windows completely (i.e. what Windows 9x called MS-DOS mode)

indigo needle
#

i have a copy

#

of windows 95

#

on my PC

#

and ill show u how it looks like

#

lemme boot

past rose
#

I mean

indigo needle
#

into windows 95

past rose
#

I know how Windows 95 looks like

#

I've used it before

indigo needle
#

yup

#

here

indigo needle
#

im doing the non fault IDT entries

#

so far, heres all the strings youd get

honest pier
indigo needle
#

oh

honest pier
#

Loadlin my beloved

#

I wonder if slackware still uses it

frank drift
#

Although I thought it boots from FreeDOS

#

sense its free

honest pier
#

Huh?

#

loadlin is a 16 bit real mode bootloader

past rose
#

back in the day, before FreeDOS was even a thing, most people booted Linux from MS-DOS

indigo needle
indigo needle
#

PART 2 OF COMPLETING IDT NOW IN VOICE 1

indigo needle
#

PART 3

#

IN VOICE 0

frank drift
#

??

indigo needle
indigo needle
#

UPDATE:

#

I FINISHED THE IDT

#

AND HERES EACH PANIC SCREEN:

#

BLUE = NOT VERY SEVERE

#

PROGRAM ERROR OR A SMALL SYSTEM ERROR

#

YELLOW = MEDIUM SEVERITY

#

A MEDIUM ERROR IN A PROGRAM OR MEDIUM SEVERITY SYSTEM ERROR

#

BLACK = WORST SEVERITY

#

A BIG ERROR IN A PROGRAM, VIRUS, OR WORSE SYSTEM ERROR

#

CHANCE OF HARDWARE ISSUES.

#

THAT IS ALL PANIC ERRORS YOUD GET IN ILYODOS FOR NOW

#

HERES ALL ERRORS AND WHAT DO YOU GET FOR IT

quiet shard
#

wait are these not idt's and how recoverable they are

indigo needle
#

well

#

no revory yet

#

recovery*

#

the kernel is still in early dveelopment:)

#

so recovery might come soon

ocean ocean
indigo needle
quiet kayak
#

Ilyomaria, you've inspired me! Your OS being in such early development, yet you're brave enough to post it here! I'll too post my OS here! Well..maybe tomorrow, I want to sleep first ๐Ÿ’ค (also still in very early stage of development)

indigo needle
indigo needle
#

UPDATE:

#

THE KERNEL HAS BEEN ASSIGNED TO 128 SECTORS

#

MEANING 65536 BYTES

#

OR 64 KB

#

STARTING FROM MEMORY ADDRESS 0x7e00

#

AGAIN, DEVELOPMENT STREAM IN VOICE 0 AS ALWAYS.

frank drift
indigo needle
frank drift
#

dump it to 0000h:0500h or 00000500h

frank drift
#

you do not need that MUCH memory

#

unless your going for multiple drive caching

indigo needle
frank drift
#

which in that case yes you do

#

that adds up fast

#

if you cache fully for 2 fat12 floppies

#

you'll be using around ~20KiB or more worst case

#

actually probaably like ~30KiB

indigo needle
#

with the kernel reaching just 64KB it would probably take just a little memory

frank drift
#

64KiB?

#

thats

#

a fat kernel

#

for 32bit

#

at least

indigo needle
#

oh

#

well its just a bit

frank drift
#

also

indigo needle
#

ill decrease it

frank drift
#

now it wont run on the IBM XT

indigo needle
#

when the kernels finished

#

theres a seperate version coming out soon

frank drift
#

majority of IBM XT PC's have 64KiB of usable memory

#

dude

indigo needle
#

this is the general PC (for 80386+) version

frank drift
#

imagine trying to build apps for that

#

its gonna be weird

indigo needle
#

welp

#

well

frank drift
#

users will need to handle things differently for each OS

#

variant

indigo needle
#

ill probably put them in an allocated memory

frank drift
#

just do what DOS did

#

dont reserve for no reason

indigo needle
#

prelalocated*

#

oh

#

alright

frank drift
#

you can make an allocator

#

to cache stuff

#

much better

indigo needle
#

i would probably not cache tho

frank drift
#

sense the user can actually choose and you can tune it way easier for IBM XT or AT depending on what you want

#

or other computers on the 80386+

indigo needle
#

general PC version is a minimum of 4 MB tho?

#

maybe less

#

not predicted yet

#

its in early development

#

but i say itd reach 2 MB

#

at worst case

#

4

frank drift
#

Bro how

indigo needle
#

making a 64KB kernel?

#

wait

frank drift
#

I have an extremely simple and dumb custom C compiler that can easily be ported to my OS for the 8086 and floppy handling and etc

indigo needle
frank drift
#

and I still dont get near to ~32KiB

indigo needle
#

in the lower memory

#

meaning below 1 MB

#

theres s apce from 0x7e00 to 0x7FFFF

#

space*

#

its 480.5KB

#

if 64KB is allocated for the kernel

#

(may be reduced)

#

416.5 will remain

#

that could be used for programs, the shell

#

or the extended kernel

#

thatll be developped after the development of the main kernel is made

#

thats my plan

frank drift
#

what do you intend to have?

#

you may have leaped too far in your size

indigo needle
indigo needle
#

PART 5 STREAMING VOICE 0

indigo needle
#

PART 6 AGAIN ON VOICE 0

#

KEYBOARD SUPPORT PART 1

indigo needle
#

UPDATE: IVE CREATED A SEPERATE FILE CALLED KEYBOARD.ASM (IN DISK ITS KEYBOARD.BIN) FOR THE KEYBOARD PS/2 DRIVER (MIGHT ADD SUPPORT FOR MORE KEYBOARDS)

#

ALSO

#

KERNEL ALLOCATED SIZE IS REDUCED TO 32.5 KB

#

(0x7e00-0x10000)

#

I HAVE LEARNED NOT TO PUT EVERYTHING IN 1 FILE

quiet kayak
#

Question: why all caps?

inland moth
#

caps lock is on

frank drift
#

I ate his non caps

quiet kayak
#

lmao

indigo needle
#

actually

#

I LIKE CAPS

quiet kayak
#

LMAO

#

ALRIGHT

indigo needle
#

YEAS

#

I LIKE CAPS VERY MUCH

quiet kayak
#

HAHAHAHAHAHA

indigo needle
#

AHAHAHHAHAHAHAHAHAHAHA

quiet kayak
#

then i will be your enemy

#

hahhahhah

indigo needle
#

OK

quiet kayak
#

by using lowercase

indigo needle
#

BE MY ENEMY

quiet kayak
#

no

#

riva

#

rival!

indigo needle
#

OK

quiet kayak
#

we are rival!!!

indigo needle
#

WHATS UR PRODUCT

#

YOUR RIVALLING WITH ME?

quiet kayak
#

idk

indigo needle
#

OH

quiet kayak
#

well anyway bye

indigo needle
#

BYE

indigo needle
#

merry christmas everyone

#

is it too early?

#

idk im muslim so i dont know whens the date but early merry christmas:)

honest pier
#

Close! 20 days left

#

It's on the 25th of December

past rose
#

Fuck me

#

It's already December ๐Ÿ˜ญ

quiet kayak
#

Well anyway

indigo needle
#

see you guys till december 25th:) (maybe)

indigo needle
#

UPDATE:

#

UPDATED KEYBOARD CODE

#

NOW THE OS SUPPORTS PS/2 SET 1, 2, AND 3.

#

MOST COMMON SET IS SET 2 KEYBOARDS

#

BUT WE ARE AIMING FOR MAXIMUM COMPATIBILITY

#

SO THIS IS THE BEST WE CAN DO FOR NOW

indigo needle
#

UPDATE AGAIN:

#

BECAUSE OF SOME DIFFICULTIES

#

IM REVERTING SCANCODE SET 2 ONLY

frank drift
#

Sorry guys I ate his non caps again

quiet shard
quiet kayak
indigo needle
#

YOU WILL GET USED TO IT, MAYBE MY CAPS KEY IS BROKEN AND I CANT SWITCH IT BACK OFF OR EVERYTHINGS FINE AND IM JUST DOING CAPS

frank drift
indigo needle
#

Nah

#

Its the opposite

#

๐Ÿ™‚

frank drift
#

where's the repository

indigo needle
#

Alr im gonna update it soon

#

Its still set to day 1

frank drift
#

send the link

indigo needle
#

Lemme see

#

Lemme check my github

#

Wait

#

Did i delete it?

#

Prob lost my acc

#

Lemme make a new one

#

And see if that repository exists

frank drift
#

what

indigo needle
#

Found it

#

Still not updated

#

And still buggy

#

Also MORE CAPS:

#

THE OS IS NOW CLOSED SOURCE

#

THE ONLY FILE YOULL BE ABLE TO ACCESS IS THE MAIN floppy.img

#

SOURCE CODE WILL REMAIN HIDDEN.

frank drift
#

Booo

#

badddd

#

baddd choiceee

indigo needle
west patrol
#

boooo

ocean ocean
#

why

indigo needle
#

bc the majority of people dont like my coder

#

code*

white wren
#

anyways good luck

#

i wont check this thread out now

indigo needle
#

alr guys i guess source code it is

#

we had too much votes opposite

#

against it

#

its open source again now

white wren
indigo needle
#

also i forgot to update it lol

#

well

#

bc i only code in asm

#

they make fun of me

white wren
indigo needle
#

in voice calls and streams

#

@eternal ember

white wren
indigo needle
#

AND

#

and*

white wren
#

crazy

#

i feel like thats just a challenge

indigo needle
#

i forgot..

#

well

#

people make fun of me for iy

#

it*

#

and tell me to go to C?

white wren
indigo needle
#

i dont make fun of anyone of what programming style, or programming language they use

#

but people keep making fun of me for using asm

eternal ember
#

thats not WHY

white wren
eternal ember
#

"asm is the best language" "I dont like compilers"

#

idk

#

I can go on

#

and im not making fun of him. just the idea

#

because it is funny

white wren
indigo needle
eternal ember
#

you did but I am not going to contend this

ocean eagle
#

if they like writing their OS in asm let them, some cool shit has been made with assembly

indigo needle
#

personally i dont judge anyone with the style of their programming, or their programming language

#

everyone has their own preffered language

#

mine just happens to be asm

eternal ember
#

nobody is trying to stop you

#

just drop the superiority complex

inland moth
indigo needle
#

but it doesent need fixing?

quiet shard
indigo needle
#

prob lol

#

but seriously

#

making fun of people by their programming language

#

is not good

quiet shard
#

who said we were making fun of u

indigo needle
#

@eternal ember does in voice calls

frank drift
#

No one really cares

#

Assembly is fairly hard in this day and age

#

Itโ€™s hard for our era

#

Just even being able to understand it is good enough

#

Youโ€™ll get better day by day

#

No one gets better if they keep hating on themselves

indigo needle
#

ty mekebabman

eternal ember
indigo needle
#

do you have any evidence of me saying incorrect things?

eternal ember
#

the message I responded to

frank drift
#

Try getting one of those old ancient K&R C compilers for the 8086 to work and you'll die

indigo needle
#

yup

frank drift
#

Try using one of those DOS era C compilers and you'll realize there large and fat

#

and slow

indigo needle
#

plus i dont know much of high level languages

frank drift
#

DOS era C compilers are literally the worst C compilers you could use

eternal ember
#

openwatcom I suppose

frank drift
#

fat guy

#

cant even run in 1MB

#

then theres K&R C compilers who ran perfectly and smoothly with 1MB

#

of memory

#

Mostly for the PDP-11

indigo needle
#

but im not working for the PDP-11

frank drift
indigo needle
#

im working for 80386+

frank drift
#

Oh

#

then you can use a C compiler

#

I THOUGHT THIS WAS FOR THE 8086

#

I GOT SCAMMEDDD

indigo needle
#

well umm

#

i always say i386 or 80386

frank drift
#

GCC works perfectly

indigo needle
#

and i have 1 MB minimum RAM..

#

so it prob wouldnt really work that well

frank drift
#

What

#

1MB?

#

For what

#

What does bro have

#

Most 80386 OS's only need 200KiB and thats if there being evil

#

Minix ran with less than 1MB

#

and Minix had multi tasking and etc

#

educational OS as well

#

so not even professionally made

#

C compiler wasn't smart

#

meaning they didn't even try saving bytes

quiet shard
#

is this writing for real hardware or just qemu

#

but either way, why is it in pure asm

#

what is the point

#

like genuinely

#

hell why are we even writing dos

frank drift
#

although its referred to MS/PC-DOS normally

#

it could literally mean he is making a DISK OPERATING SYSTEM

#

thats all

#

You could call Linux, UNIX, Minix, windows a DOS if you wanted

#

it'd be weird but uhh its also kind of correct

frank drift
#

A good reason would be C is annoying to deal with for the 8086/8088

#

but his OS is for the 80386+

#

which C runs extremely well on

#

without flaw

quiet kayak
#

hmm

#

I LOVE OPEN SOURCE

indigo needle
#

i guess guys we are back to open source

eternal ember
#

but didnt u hate open source

indigo needle
#

changed it back due to alot of downvotes

#

GITHUB REPOSITORY UPDATES

#

UPDATED*

#

GUYS DONT HATE ME NOW ITS OPEN SOURCE PLUS UPDATED GITHUB REPOSITORY NOW

quiet shard
#

i love this thread

#

it's a one man circus

indigo needle
#

i agree lol

#

also

#

do you not hate me now?

#

now its back to open source?

eternal ember
#

why are you under the impression that people hate you

indigo needle
eternal ember
#

never know with you

indigo needle
#

you could lol

quiet shard
#

500 lines of asm without a singular comment ๐Ÿ’” ๐Ÿฅ€

eternal ember
#

comments are evil

quiet shard
#

i agree

#

@indigo needle make sure to not have any comments because they take up extra space on the disk

indigo needle
#

well

#

thats my style:)

#

dont use comments

#

instead

#

i manually decode eac instruction

#

also

indigo needle
#

to define sections of my code

#

guys

#

i use VSCODE for making my life a bit easier

#

and theres a problem with it not updating files that have been left in another editor before it ran??

#

how nice

#

UPDATE:

#

MANAGED TO GET LOOPS FOR KEYBOARD WORKING

#

AND VOTE:

#

MAKE THE DEVELOPERS DO EVERYTHING, AND MAKE IT HARDER FOR DEVELOPERS OR

#

MAKE INTERRUPTS AND MAKE IT EASIER FOR DEVELOPERS?

#

UPDATE AGAIN:

#

ADDING A CONFIG FILE FOR SETUP

#

HOW CONFIG SHOULD WORK:

#

CONFIG FILE WOULD BE 512 BYTES

#

FIRST BYTE WOULD INDICATE IF SETUP WAS FINISHED, IF SET TO 0, ITS NOT FINISHED (SETUP RESTART)

#

IF SET TO 1, SETUP FINISH (SETUP SKIP)

#

(by 0 and 1 i mean ASCII)

#

MINIMUM REQUIREMENTS ALSO CHANGED:

#

MINIMUM REQUIREMENTS FOR (MODERN PCs)

#

1 MB MINIMUM MEMORY

#

80386

#

AND FPU (NOT REQUIRED)

#

SET 2 KEYBOARD

#

THATS ALL

obsidian rampart
indigo needle
#

thats just for programs

#

and not required

eternal ember
#

use only floating point numbers

#

dont do any integer math

white wren
indigo needle
#

images for the UI btw

white wren
#

It needs atleast 20 mb to even run lol

indigo needle
#

bru

#

wait what

#

currently

#

mine only needs like 10 KB

#

but considering all the UI and images

#

and future files

#

it might end up only at 1 MB

#

OR EVEN LESS

white wren
#

flanterm throws out of mem error at 1M

indigo needle
#

i only allocated like 30KB thats not used rn

#

for the kernel

white wren
#

at 10 it gets all the way to FS

indigo needle
#

my 512 byte MBR configures the FS..

white wren
#

at 17 it can run (M)

indigo needle
#

with FAT12

#

wait

#

if we do the math

#

lemme mdir my floppy image

indigo needle
#

here it is

#

so

#

34816 bytes

#

wait

#

oops

#

34304 bytes is the total

#

peak math skills

frank drift
#

Btw is your OS UNIX-like or DOS-like?

#

or is just entirely custom

ocean ocean
indigo needle
#

ty

obsidian rampart
#

it's padded with like 33280 0's

indigo needle
ocean ocean
#

two loop functions

indigo needle
ocean ocean
#

that do the same thing

indigo needle
#

its just a placeholder

ocean ocean
#

then two million functions to fill the screen with color n

obsidian rampart
#

how do I buld this btw

frank drift
#

just assemble using netwide

#

and write to image (or just format to the FS he's using and dump)

#

problem solved

#

check how the boot sector works first btw

obsidian rampart
#

ugh it reads fat32

#

how to build this

ocean ocean
#

@indigo needle also wym for 70s 80s machines

#

the IBM PC was released in 1981

#

Protected Mode came with the 386 only a few years later

indigo needle
#

your right i need to change it

#

to 90s machines

#

cuz they have the requirements i need

frank drift
#

Disable interrupts in the boot sector

ocean ocean
#

be more specific also, indicate that it targets IBM PC compatibles

obsidian rampart
#

how do I buld this btw

frank drift
#

interrupts like messing with disk access

#

just clear them

ocean ocean
#

and not my obscure ppc32elzbnmxf board that casually happens to have support for a 3000$ Amiga OS clone

white wren
#

Is it open source?

#

Like you were debating on making it closed source

indigo needle
#

well the votes came

#

and i continued on open source

#

votes are votes๐Ÿคทโ€โ™‚๏ธ

white wren
#

Oh well now I understand why it's so little lol

#

Pure ASM

frank drift
ocean ocean
#

democracy also allows me to say that the entire license is wrong, speaking of votes

indigo needle
#

that was old OS name

#

changed it

#

it was NilOS

#

before

ocean ocean
#

that's not the main problem

indigo needle
#

alot of things changed

#

wait that was also the old license

ocean ocean
#

Accessing, copying, decompiling or distributing any NilOS code [...] is strictly prohibited

#

mr tim sweeney ova here you uploaded the code for everyone to see?!?!?

indigo needle
#

THAT WAS THE OLD LICENSE๐Ÿ˜ญ

#

lemme change it

#

yall your voting this time on the new license:

#

not modifieble, or modifiable?

#

modifiable*

ocean ocean
#

by jean valjean's ghost ask yourself a question give yourself an answer

indigo needle
#

im bad at decisions

#

you choose

obsidian rampart
indigo needle
#

because its in assembly?

obsidian rampart
#

no

#

because it's 3 files

indigo needle
#

oh

#

its in early phase

white wren
#

Yea

indigo needle
#

i dont know much about license so..

white wren
#

It's a big mess too

white wren
indigo needle
#

alright

#

MIT it is

white wren
#

Simplest one out there

ocean ocean
#

i'm used to GPLv2 but MIT is good too

indigo needle
#

lemme just change it

#

changed

#

all is good now

#

you cant modify it, but its open source, and usable

eternal ember
#

reverse-engineer source code ?

indigo needle
#

is that in the new license?

eternal ember
#

yes

#

you wrote it

#

how the fuck do you not know

obsidian rampart
#

@indigo needle Im suing you for breaking the licence of ilyodos

#

it clearly says "Any permitted redistribution must clearly display the original attribution: "ยฉ 2025 Ilyomaria โ€“ IlyoDOS 1.0 SE""

indigo needle
obsidian rampart
#

and yet your copy doesn't display this

indigo needle
#

im still making the new license..

#

im not good at licenses

obsidian rampart
#

we can tell

#

just use bsd0 or bsd3 or mit

#

or gpl3 at this point

quiet shard
#

so what happens if i violate this license

frank drift
#

If it works properly that is

#

Other than that not much

indigo needle
#

๐Ÿ˜…

indigo needle
#

UPDATE:

#

PERFECTED SET 1 KEYBOARD LAYOUT

indigo needle
#

UPDATE:

#

where SETUP.BIN will reside

#

honestly i think this DOS wont be that big

#

the only files thatll take the disk space

#

are image files

#

and kernel BIN

white wren
#

One question, why caps?

indigo needle
#

i like caps plus its the default for my terminal

#

I LIKE CAPS VERY MUCH.

white wren
indigo needle
#

its the main kernel file

#

aka i will put almost everything in it

inland moth
white wren
#

๐Ÿ™

indigo needle
#

my whole bootloader is the MBR:)

white wren
inland moth
indigo needle
#

not UEFI

#

this OS is BIOS

inland moth
#

yeah i know

#

I can't boot it then

#

i have no CSM

indigo needle
#

oh

#

umm

#

well i do use CSM for my whole PC

#

im using UEFI natively, but i boot everything on CSM

inland moth
#

yeah my system just doesn't have it entirely

indigo needle
#

my windows boots on CSMKEKW

#

honestly

#

i want BIOS to be revived

#

easier then UEFI.. in assembly

inland moth
#

uefi is piss easy tho

obsidian rampart
inland moth
#

and tbh I'm thankful for uefi

obsidian rampart
#

embrace c

inland moth
#

you can do uefi in asm

obsidian rampart
indigo needle
#

im very thankful for the blessed soul who came to this mother earth and nurtured us with.. basic input output system..

inland moth
#

uefi stands for ultimate bios replacement

indigo needle
#

we need a petition to bring back BIOS

obsidian rampart
#

the u in bios stands for "usable"

indigo needle
#

oh

#

but theres no U

obsidian rampart
#

exactly?

indigo needle
#

UEFI: ```// Example using gBS (Boot Services) to find a protocol and then ReadBlocks
EFI_BLOCK_IO_PROTOCOL *BlockIo;
// ... code to locate the BlockIo protocol for a specific handle ...

UINT8 Buffer[512]; // Buffer for one sector of 512 bytes
UINTN LBA_to_read = 0; // Example: reading LBA 0

// Call ReadBlocks function
Status = BlockIo->ReadBlocks(
BlockIo,
BlockIo->Media->MediaId,
LBA_to_read,
sizeof(Buffer),
Buffer
);

if (EFI_ERROR(Status)) {
// Error handling
} else {
// Process the data in the Buffer
}```

#

BIOS:

#
mov al, 1

mov dl, 0
mov bx, 0x1000
xor cl, cl
xor dh, dh
xor ch, ch
int 13h```
#

ez

#

this reads LBA 0 into 0x1000

#

from disk 0 (FLOPPY A:)

obsidian rampart
#

mhm

indigo needle
#

also

#

if ur wondeirng where i got above code

#

it was in stack overflow..

#

I DONT KNOW C

#

๐Ÿคทโ€โ™‚๏ธ

obsidian rampart
#

reading a file from the boot partition
uefi:

EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFs;
EFI_FILE_PROTOCOL *Root;
EFI_STATUS Status;

Status = uefi_call_wrapper(
    SystemTable->BootServices->HandleProtocol,
    3,
    ImageHandle,
    &gEfiSimpleFileSystemProtocolGuid,
    (void**)&SimpleFs
);

if (EFI_ERROR(Status)) {
    // handle error
}

Status = SimpleFs->OpenVolume(SimpleFs, &Root);
EFI_FILE_PROTOCOL *File;

Status = Root->Open(
    Root,
    &File,
    L"test.txt",
    EFI_FILE_MODE_READ,
    0
);
HAR8 Buffer[256];
UINTN Size = sizeof(Buffer);

Status = File->Read(File, &Size, Buffer);

bios:

first parse find out which drive you need to read (in dl) then parse the filesystem using a filesystem driver (you will 100% need to boot to vbr since there is no way you can do this in less then 512 bytes and it be good)
then you can read the file
indigo needle
#

to find the boot drive

#

when u first boot

#

it gives u the boot drive

#

in DL

obsidian rampart
#

I already said that...

indigo needle
#

then u put it into bpb

#

for FAT12/16/32

obsidian rampart
#

that isn't the hard part ๐Ÿ˜ญ

indigo needle
#

wait

#

lemme show u

#
bits 16

    %define endl 0x0d, 0x0a
bpb:

    jmp short start
    nop
    oem                                    db "ILYOOS1 "
    bytes_per_sector                    dw 512
    sectors_per_cluster                    db 1
    reserved_sectors                    dw 1
    num_of_fats                            db 2
    root_dir_entries                    dw 224
    total_sectors_16_bit                dw 2880
    media_descriptor_type                db 0xF0
    sectors_per_fat                        dw 9
    sectors_per_track                    dw 18
    heads                                dw 2
    hidden_sectors                        dd 0
    total_sectors_32_bit                dd 0

ebpb:

    drive_num                            db 0
                                        db 0
    signature                            db 0x29
    volume_id_serial                    db "ILYO"
    volume_label                        db "ILYOOS_SE1 "
    system_identifier                    db "FAT12   "

start:
configure_boot:

    xor ax, ax
    mov ds, ax
    mov es, ax
    mov ss, ax
    mov [drive_num], dl```
#

here

#

my boot code

obsidian rampart
#

okay?

#

and you still need to read the filesystem

indigo needle
#

oh

#

its easy

#

you dont necessarily need to read the filesystem

#

when

#

your using allocated fixed sizesa

#

sizes*

#

thats for the user experience

#

but in boot

#

doesent matter

obsidian rampart
#

oh great because I hate being able to mount my boot partition and having the files accessible

indigo needle
#

but

#

i do sure appreciate the simplicity

#

of BIOS

#

both have different purposes

obsidian rampart
#

I guess but at the same time if you don't understand uefi you still have alot of learn

indigo needle
#

its my first actually becoming successful OS๐Ÿ˜ญ

#

am still learning

obsidian rampart
#

well idk if rolling your own bootloader is a good learning experience tbh

indigo needle
#

still good enough

obsidian rampart
#

for some people maybe

indigo needle
#

like

#

from this OS

#

i learned

#

that putting all ur code in a single file

#

is bad

#

and decided kernel.asm is just for the main practices

#

and not the whole kernel

#

GUYS FIRST TIME READING TO FLOPPY WITHOUT BIOS

frank drift
eternal ember
#

this is like prettending telephones in the 80s were better because they were simpler

frank drift
eternal ember
#

actually even that analogy doesnt really work because bios is not simple

indigo needle
#

ive never seen a telephone before 1980

eternal ember
indigo needle
#

i have an i think 1985 telephone i still use rn

indigo needle
eternal ember
#

uefi is simpler

indigo needle
#

i would prob say no

eternal ember
#

you would

#

but then again

#

you wouldnt know would you

#

because you dont know C

#

neverming the uefi spec

indigo needle
#

well BIOS is simpler then UEFI in what its supposed to do, like printing, reading/writing to disk/memory, OR user input

#

UEFI was meant to be simpler in advanced things