#💽Programming Chat v2

1 messages · Page 25 of 1

spare quartz
#

it

#

is

full berry
#

false

spare quartz
#

like thats literally my legal name

#

😭

full berry
#

show me your cad

spare quartz
#

i would show you my id but i lose it constantly

#

but quite literally my name IS miko

full berry
#

no

#

cad

#

not id

spare quartz
#

i don't know what a cad is

full berry
spare quartz
#

do you want my EDA?

full berry
full berry
#

CAC

spare quartz
full berry
#

sorry i watched too much 911 lately

#

got cad in my head

spare quartz
# full berry CAC

dude im not a contractor, federal employee, or servicemember yet 😭

full berry
#

its not that hard

spare quartz
#

and my dad's CAC would just say ...

#

... nevermind . i completely forgot what happened

#

anyways why don't you think i'm miko

#

:<

full berry
#

that name sounds fake

#

more fake than like

#

donald trump

spare quartz
#

dude

#

my last name

#

is Elbrecht

#

does that sound any more real

full berry
#

sounds like you're from like

#

tajikistan

spare quartz
#

😭

#

but im being fr that is my full legal name

#

im real

full berry
#

no

#

until i see cac i call bs

spare quartz
#

okay

#

whats YOUR name

full berry
#

mmm

#

i share the same name with a member who was recently nuked out of the community

spare quartz
#

who what

full berry
#

i think only like

#

aera, lisa, and someone else know my name

spare quartz
#

aera whats astros name

full berry
#

spare quartz
#

#

ill code in rust if youi tell me

full berry
#

for me you have to

#

code in js :3

spare quartz
#

dude

full berry
#

(even worse)

spare quartz
#

i literally was a js dev for half a decade

#

thats fine 😭

full berry
#

ugh but js is stupid

#

code in like

#

asm

spare quartz
#

i can do that

#

@full berry okay

#

eghres my cac

#

up there

#

ugh oh my god it's so weird searching up my name in the logs

#

it's all for a bot

full berry
#

LO

#

its because you're a bot

spare quartz
#

😭

#

don't search my name up on google btw

#

whatever wikipedia calls me i am not

full berry
#

uh

#

when do i need to renew my student license

spare quartz
#

because you're 50 years old

full berry
#

its been a year since i did it but when i try to do it it tells me i dont need to

spare quartz
#

LOL

#

who tf is staining my name

proud creek
#

lmfao

spare quartz
#

oh yeah forgot to mention

#

i had to read that article on an archvied doc

spare quartz
#

i wonder how much time this would take to read

#

although some of it is just code

spare quartz
#

so just after C#

#

neat

#

2023 ISO/IEC standard only has 1,048 pages but i can't check word count cause it costs $300-$500

spare quartz
#

writing an RTS from scratch

spare quartz
#

yoooooo

#

it works!!!

#

oh wow

#

already have to write asm

#

__udivmoddi4

spare quartz
#

weird how this is causing a GPF

#

oh i see

#

div requires second operand to be in a register (it's using a mod r/m)

spare quartz
#

how do i keep doing it

#

worlds worst counter

#

worlds worst memcpy... probably where im failing

spare quartz
#

duhhh

spare quartz
spare quartz
#

finally

#

a number

#

need to reverse the string but

#

-1190084288

#

1129301216

#

yup these are good

spare quartz
#
procedure Image_Integer
     (Value        :        Integer;
      Value_Image  : in out String;
      Image_Length :    out Natural)
   is
   begin
      if Value = 0 then
         Value_Image := " 0";
         Image_Length := 2;
      else
         declare
            Counter : Integer := abs Value;
            Count   : Integer := 1;
         begin
            loop
               Count := Count + 1;
               Value_Image (Count) := Character'Val (48 + (Counter rem 10));
               Counter := Counter / 10;
               exit when Counter = 0;
            end loop;
            declare
               Final : String (1 .. Count);
            begin
               for Index in reverse 2 .. Count loop
                  Final (Index) :=
                     Value_Image (Count - Index + 2);
               end loop;
               Final (1) := (if Value < 0 then '-' else ' ');
               Image_Length := Count;
               Value_Image := Final;
            end;
         end;
      end if;
   end Image_Integer;
#

there's probably a better way to do this but i dunno it

timid quartz
spare quartz
#

hmm

#

i wanna make a hex counter

#

should be simple

timid quartz
#

Honestly if Trump was to take a serious stance against memory safety

spare quartz
timid quartz
#

Plus, how else can he ensure China and Russia have access to our infrastructure

spare quartz
#

DISA would be unaffected

#

but civilian infrastructure??? have at it

#

they're already insecure as is

#

being able to write my own ada stdlib is a nice change of pace

timid quartz
spare quartz
#

well i'm saying DISA would be unaffected cause

#

the internet is beneath it

#

it's an intranet you can't hack into without having physical access

timid quartz
#

me when I find some part of your public infrastructure

spare quartz
#

completely separate, the only parts you would be able to "hack" remotely is NIPRNet

#

but that's separate from something like the webpage of https://cia.gov and is... unclassified

#

would be funny though

#

niprnet also hosts the military's "office emails" so

#

you could send something to everyone!!

#

hmmm

#

what about an octal mapping

#

s-imgint.adb:24:55: warning: wrong length for array of type of Mapping declared at line 24 [enabled by default]
s-imgint.adb:24:55: warning: Constraint_Error will be raised at run time [enabled by default]

#

damn

#

oh i see why

#

im stupid

#

oooo wait

#

i want binary

#

oh crap

#

im reading beyond the string limits but

#

that's cool

#

it's cool seeing GCC optimize the way the program is read as i write exports

#

two separate invocations of rem and / are merged into a __udivdi3 call

#

should note

#

i'm running this all under pragma Suppress (All_Checks) since i feel too lazy to add GNAT runtime checks

#

... and idk how i'd write them since ... that would require exceptions ... which are bad

#

should probably go into protected mode now that i have simple int logging

#

maybe make a shell

#

no makefile support :<

#

only 23 KB is pretty good

#

drops to 14 KB optimizing for size

timid quartz
#

mmmm makefile

spare quartz
#

i'm using a hybrid of both makefile/GPR rn

#

GPR handles the mass compilation of ada/potentially c for the RTS/src

#

makefile handles ASM and linking

timid quartz
#

makefile >

spare quartz
#

got down to 13 KB with linker flags

#

unfortunately can't do LTO because i386/nostdlib :<

#

-dynamic on a kernel 🧌

#

12,784 B for a simple kernel that just counts is pretty good i think

spare quartz
#

(the counter there was just reading 32 bytes beyond the string itself 😭)

timid quartz
#

interrupt descriptor table

spare quartz
#

now unfortunately the "run-time library" is me in this case so i can't expedite my work

#

but the kernel code itself can stay separate the from RTL/RTS code so it won't clutter that up

spare quartz
#

ughhh i love ada

timid quartz
#

this is so sad

#

such a good android browser

spare quartz
#

i dont even know what it is

#

i've just heard of it a few years ago and now

timid quartz
#

chromium based browser

spare quartz
#

oh

timid quartz
#

but also more privacy focused

#

when I had an S9+ I used it as my primary browser

#

now on my pixel 8 I may use cromite

#

cause firefox stinky

#

what browser do you use @spare quartz

#

assuming chrome

spare quartz
#

i use firefox idot

#

chrome when im on a mac

#

the last time i used an android (my grandmas) it was just the default google one

#

i use chrome whenever i want to clear my history/test something without incurring diffs frrom firefox

#

(i never clear my history)

#

ughhh

#

i have this slight creeping feeling that i'll never like

#

be good at a real job since they're all collaborative and stuff

#

i have experience working collaboratively/teaching but my coding style is incredibly specific and i don't like being flexible with it

spare quartz
#

i never had my own android

#

just only had iphones and a windows phone

full berry
#

what's a good way to learn rust

spare quartz
#

don't

full berry
#

for JS i just picked a project with a little bit of back knowledge and just did it and learned along the way

#

my first project was a discord bot

snow oak
#

ATP will encourage you to learn ADA

spare quartz
#

unless you're forced to, learn a different language

#

Ada*

#

and i'm not saying use ada

#

i'm just saying theres better alternatives for most cases you're probably doing

timid quartz
#

you can read the book if you prefer just reading, or you can do rustlings/rust by example to get more hands-on

#

a bunch of other places also have tutorials, such as microsoft and other popular "learn to code" platforms

timid quartz
spare quartz
#

do n't :<

lavish dove
spare quartz
#

naw they're fine

#

problem stemmed from the fact i was in Real mode

#

so the unsigned longs i was passing got truncated

#

so when it came to read the CX register all it saw was 0

#

and that's bad

full berry
#

so i think i'll stick with hands-on examples

#

wtf are rustlings

spare quartz
#

unless you meant it as rustaceans which are just "rust users"

spare quartz
#

TRUEST STATEMENT EVER

#

this is what i wish to make with my os

lavish dove
#

fr

spare quartz
#

guys i have a questino

#

is this normal for a steam game

lavish dove
full berry
spare quartz
full berry
#

i don't know where to start

spare quartz
#

it doesn't matter where you start

#

what are the questiosn

pastel tinsel
#

you are thy question

spare quartz
pastel tinsel
#

what

#

I don't draw

spare quartz
#

now you do

#

✏️

pastel tinsel
#

flint belfry
spare quartz
flint belfry
spare quartz
#

reported for nsfw

flint belfry
#

HOW

pastel tinsel
#

lmfao

spare quartz
#

im just pumping repos out

full berry
#

i wish i could open source some stuff :<

spare quartz
#

why cant you open source everythin

#

(from a person who hates open source)

full berry
#

beeecause it's mostly group projects

#

blah blah security through obscurity

spare quartz
#

boooooring

#

bread experts group tactic

#

all our code is impervious to everything

full berry
spare quartz
#

i wonder what this guy thinks of the occassional furry art on his feed

pastel tinsel
#

good question

spare quartz
#

its so funny cause like

#

i don't fit on his following 😭

pastel tinsel
#

I have been lazyyy

spare quartz
#

let us see your code!!!!

#

we'll judge in a good way!!!!!!

#

i only have one private repo and it was made when i still coded in js

pastel tinsel
#

I have one from a while ago too lol

spare quartz
#

he will never see the light of day

#

I HAD DEPLOYMENTS??

full berry
full berry
spare quartz
#

i was better at github 5 years ago than i am now

#

😭

pastel tinsel
#

I have wanted to open source things like my client timers

full berry
#

oh

#

wait what

#

what client timers

pastel tinsel
#

in game the timers on the screens

proud creek
#

I should too

pastel tinsel
#

all run on client

proud creek
#

But I don’t wanna

pastel tinsel
#

to improve server preformance

proud creek
#

Cause my code is not good

spare quartz
#

can you open source your server code to..

proud creek
spare quartz
pastel tinsel
#

code is bad, god is dead

spare quartz
#

ew

#

femboy game

pastel tinsel
#

???

full berry
#

what

proud creek
#

Blood is fuel

full berry
#

omg we're all blue and then we have like

#

the sigma imposter red tz

spare quartz
pastel tinsel
#

no lol

spare quartz
#

ULTRAKILL

#

idot

full berry
#

me neither what

pastel tinsel
#

oh

full berry
#

oh

pastel tinsel
#

makes sense

full berry
#

ew

proud creek
#

I’m just cooler

spare quartz
#

god

#

kids these days

full berry
#

you're skibidi

pastel tinsel
#

I have been like way too active today though

proud creek
#

Exactly

pastel tinsel
#

got the gdsmn domain moved off my personal site

proud creek
spare quartz
#

it was on your personal site??

pastel tinsel
#

the LI instance was

#

the public one is on gdsmn.dev

spare quartz
#

isnt your site just a picture

proud creek
#

I need to renew my domain deathstare

pastel tinsel
spare quartz
proud creek
#

Apparently I will get a year for free steamhappy

full berry
#

FUNNY STORY

spare quartz
proud creek
#

Cause github edu

spare quartz
#

and heres how many days i used it for:

proud creek
#

The goat

spare quartz
#

......... a day

pastel tinsel
#

fixing my network rn

timid quartz
proud creek
spare quartz
#

thats my only domain

proud creek
full berry
pastel tinsel
spare quartz
spare quartz
#

this is also my domain

full berry
#

forgot to enable it

pastel tinsel
#

lol

full berry
#

also im broke lmao

proud creek
#

Didn’t terrys domain expire for a while too lmao

pastel tinsel
#

I pay like $24 a year

#

for both of mine

spare quartz
#

thatsa lot .. ...

pastel tinsel
#

spare quartz
#

yes..

pastel tinsel
#

$1 a month

spare quartz
#

i have $0...

pastel tinsel
#

I have enough in my bank...

spare quartz
#

rich furry

proud creek
#

Fr

#

Gimme some

pastel tinsel
#

get a job

spare quartz
#

honestly i would use my domain more but

proud creek
#

Hm how much is mine I forgot

spare quartz
#

it has forced HSTS on it

#

so i usually just use my raw ip

full berry
#

dude i wish i could get a job

#

it's forbidden by law to go to high school and work at the same time

#

unless you're on holidays

spare quartz
#

your country sucks

proud creek
full berry
proud creek
#

Why is it so expensive

#

Ben how much is your single one

pastel tinsel
#

I can do whatever in the US lol

full berry
#

you know you can get free .me domains with github student dev pack

proud creek
#

Yeah it is that

#

My year is up

full berry
proud creek
#

I can renew for one year

pastel tinsel
#

I have all A's so

full berry
#

i would work if i could to earn a bit of money but

proud creek
#

And then get it through github edu again

spare quartz
full berry
#

yeah the us schooling system is easy as fuck

proud creek
full berry
#

here it's

#

horrible

spare quartz
proud creek
spare quartz
#

like clipake sounds like an art program

full berry
#

because we choose our majors in high schools

proud creek
full berry
#

it's not called majors

#

but

pastel tinsel
spare quartz
#

TRUE

proud creek
spare quartz
#

:3

full berry
#

like the direction we want to go in life essentially
i'm in electrical engineering for example, in the US you don't do anything when you transition from elementary to high school

proud creek
#

Dawg

pastel tinsel
#

bruh?

pastel tinsel
#

electives:

spare quartz
#

you can go to technical schools

pastel tinsel
#

and that

full berry
#

electives?

spare quartz
proud creek
spare quartz
#

like art, computers

#

not mandatory but it counts to your credit

proud creek
#

And yeah they are specialized

full berry
#

in high school

#

then based on that we go to uni

#

like for example you won't finish high school for art

#

and then go into uni for CS

#

you can but it's just weird and not ideal lmao

spare quartz
#

what if you want to get multiple degrees though

full berry
#

you dont get a degree in high school

#

like for example

spare quartz
#

like

#

you're saying that you choose the courses you want in hs

#

and that translates to your college/uni

full berry
#

if i finish high school i'm gonna get a diploma saying "xyz is a certified electrical engineer" which here even if i decide not to go to uni, it allows me to do so much and get paid a shit ton

proud creek
#

Bruh why do you chose so early

full berry
#

but the actual degrees

proud creek
#

Can you switch?

full berry
#

like bachelors and majors

full berry
#

we do that in uni, like in the us

spare quartz
#

diploma or certification

full berry
full berry
spare quartz
#

thats weird

proud creek
#

Buh

full berry
#

diplomas you get them in uni/college

spare quartz
#

here certifications are optional things you get for a set of jobs

#

and you usually have to renew them for money/a test

#

separate from school

#

like getting certified CompTIA+ costs money but it looks great for a cybersec job

full berry
#

yeah idk i dont pay for education

#

lmfao

#

like not a cent

spare quartz
#

does your country have oil

full berry
#

a bit yes

spare quartz
#

brb

full berry
#

disregardable

spare quartz
#

lemme get in uniform

full berry
#

atp do not send me that oil plane again

spare quartz
#

w-

#

oh my god 😭

#

the things in that picture are german

full berry
#

yes i still remember it

#

same thing

spare quartz
#

WHAT

full berry
#

:3

spare quartz
proud creek
full berry
full berry
pastel tinsel
full berry
#

OH YEAH

spare quartz
full berry
#

did you guys see

#

did you see the uh

#

danish PM was at the EU parliament session thingy

#

and he spoke about like relations to the US

#

and he said

#

"Greenland is not for sale, so let me put it in the way you would understand it. Mr. Trump, fuck off."

spare quartz
#

yes i hear everything about my country 🇺🇸 with an orange retard at the podium

proud creek
#

Lmao

pastel tinsel
#

yeah trump is fucking stuff up rn so I wouldn't be surprised that countries are talking about the US

proud creek
#

I saw something like the Denmark people are concerned about trump actually going thought with the greenland thing

spare quartz
#

the leader of greenland said he would be open to talking trump though

#

nothing about selling

spare quartz
#

the dod could do the funniest thing rn (coup de tat)

proud creek
#

😭

full berry
#

coup de tat 😭

pastel tinsel
#

crazy

spare quartz
#

nobody would be opposed right

proud creek
#

I think half of the country would

spare quartz
#

i think im looking at too much twitter

#

there is a black spot on my vision

proud creek
#

The x logo is engraving itself in your retina

spare quartz
#

this is the last thing i ever see

proud creek
#

That is sure a mouse cursor

spare quartz
#

did you know... nya :3 mrrp mrrp mrewow merow -w- OwO

proud creek
#

What.

pastel tinsel
#

what

spare quartz
#

what

#

did i say something wrong

pastel tinsel
#

yes

spare quartz
#

?

#

i clearly said i'm currently writing the package System.Img_Uns to add support for the 'Image aspect for modular types

proud creek
#

Image unsigned

spare quartz
#

yes that is the procedure name

#

unsigned images added

pastel tinsel
#

while true do

spare quartz
#

yeah

#

this is a kernel so im allowed to do that

pastel tinsel
#

amazing

proud creek
#

Computer crash

spare quartz
proud creek
#

True…

pastel tinsel
#

nuh

spare quartz
#

:3c

#

i dont understand what this means

timid quartz
# spare quartz

Stop using out parameters
Functions have return types
Complex data structures exist
Parameters were never meant to be written to

#

This is real software written by real software engineers

spare quartz
#
  A : Integer with Address => Your_Mom;
begin
  A := 5;
#

looks weird

#

out parameters are good for the planets health

#

WHAT IS A SEGMENT

#

i get the instruction pointer bit but

#

i honestly do not know what a segment is

timid quartz
spare quartz
#

what does that do i dont speak c

#

oh

#

it allocates mytype_t and sets it to something

#

with Address superior

proud creek
spare quartz
spare quartz
#

So, if you're going to use C, do what the rest of the C world does, which is set up a flat-memory model, use paging, and ignore the fact that segmentation even exists.

spare quartz
#

are programmers people?

spare quartz
#

I thought you said smth else

lavish dove
#

now running

#

counter

spare quartz
spare quartz
#

he's alive again

spare quartz
#

i hate makefiles

full berry
#

Stop.

spare quartz
#

i finally got it to behave

#

also deleted all of my code once

#

since i forgot to update this

full berry
#

rm -rf /

spare quartz
#

/home/miko/ufedmi_k/ufedmi_rts/adainclude/system-low_level.adb:45: Error: operand size mismatch for mov' /home/miko/ufedmi_k/ufedmi_rts/adainclude/system-low_level.adb:46: Error: operand size mismatch for mov'
/home/miko/ufedmi_k/ufedmi_rts/adainclude/system-low_level.adb:47: Error: operand size mismatch for `cmp'

#

kms

lavish dove
spare quartz
#

rn im adding protected mode to it + reading from the RTC

lavish dove
#

Nice

#

I keep re doing my bootloader 😭

spare quartz
#

the A20 line is so goofy

lavish dove
#

But now my bootloader actually reads the elf now so

spare quartz
#

you have to do like 5 checks for it of which none are guaranteed to work

lavish dove
spare quartz
#

i tried 😭

#

the assembly i wrote caused the computer to break

lavish dove
#

That's very bad lol

lavish dove
#

It doesn't do anything

spare quartz
#

inb time

#

completely prepared for these to have a bug that corrupts the entire kernel

#

huh interesting

#

despite the GNAT checks being sent to null;

#

they still manage to get a GPF fired (which then leads into a DF cause i have no IVT)

spare quartz
#

okay interesting

#

it's able to read PS/2 just fine

#

but RTC is just reading 0

spare quartz
#

i think im gonna add a PS/2 driver now

lavish dove
spare quartz
#

i love ada

#

improving logging ... unsure how i'm gonna make this expansible rn

#

🧌

#

nice

#

writing actual commits

spare quartz
#

RTS is really growing

#

the amount of data the compiler makes is insane though

#

4 files (stdout, stderror, a[da]l[ibrary]i[nformation], c[ompiler]swi[tches]) per file

#

:dread:

pastel tinsel
#

kill

timid quartz
spare quartz
#

inb

spare quartz
#

whyyyyyyy

timid quartz
#

:haha:

spare quartz
#

for some reason printing Category makes an error so gotta fix that

#

weird

#

the sizes are okay yet somehow its reading past the end of the string

#

bit goofy but that works

#
Put_Line (Category
         (Category'First .. Category'Size / Category'Component_Size));
#

uh oh

#

gotta implement my own malloc...

#
ld: ufedmi_rts/adainclude/../adalib/a-textio.o: in function `ada__text_io__begin_section':
a-textio.adb:(.text+0x65): undefined reference to `__gnat_malloc'
ld: ufedmi_rts/adainclude/../adalib/a-textio.o: in function `ada__text_io__end_section':
a-textio.adb:(.text+0xcb): undefined reference to `__gnat_malloc'
ld: ufedmi_rts/adainclude/../adalib/a-textio.o: in function `ada__text_io___elabb':
a-textio.adb:(.text+0x25d): undefined reference to `__gnat_malloc'
make: *** [Makefile:36: bin/main.elf] Error 1
#

NIGHTMARE repo

#

im the greatest programmer to ever live

#

so surprisingly no GPF

#

but i guess that makes sense since im the kernel

#

but it corrupted all my memory

timid quartz
spare quartz
#

do i make malloc automatically "initialize" all the memory to 0

#

or let the caller do that

#

also sections

#

amber looks pretty nice too..

spare quartz
#

funny

spare quartz
proud creek
full berry
#

hi

spare quartz
#

HI

full berry
#

tickets is getting sunset

spare quartz
#

wow

#

@timid quartz so i went to go use virtualbox again to test my os and

#

i saw an ancient instance named "Playing with Rust" last launched on 04/2022

#

i forgot i tried something low level with rust then 😭

#

still using the old logo too

timid quartz
#

so true

spare quartz
#

i don't understand this tweet

#

x being bigger than y IS simpler than whatever zig is doing because it's working on the effective binary structure of both

#

instead of casting y to an i32

#

1111111111110110 > 0000000000000101

pastel tinsel
timid quartz
#

C coercing a signed int into an unsigned int and zig doing the opposite

spare quartz
#

C isn't coercing anything, it's just comparing the real representation of both

full berry
spare quartz
#

in ada the compiler would just yell at you and doing an explicit conversion on x to u32 is illegal barring an Unchecked_Conversion

#

(so is y to i32 depending on the magnitude of it)

pastel tinsel
#

nothing is like

#

"all in one"

full berry
#

yeah

#

its like

timid quartz
full berry
#

40 repositories 😭

full berry
#

sunsetting shield

spare quartz
#

thank god

#

lemme write the next bot fr

full berry
#

dude open their github it's like ~40 repositories to runt he whole thing

spare quartz
#

how many configs do you need

pastel tinsel
#

yeah

#

lmfao

timid quartz
#

typical JS bot

full berry
#

@spare quartz @timid quartz @pastel tinsel

#

how it all works 😭

pastel tinsel
#

wtf

#

laced???

timid quartz
#

they even say "it's good tech only runs on a few gb of ram"

#

my brother A FEW GB FOR A TICKET BOT??

spare quartz
#

i explode even touching http stuff

pastel tinsel
#

you do yeah

spare quartz
#

whats kubernetes even

full berry
#

kill

spare quartz
#

i know it exists but idk what purpose it does or solves

pastel tinsel
full berry
spare quartz
timid quartz
spare quartz
#

ew

timid quartz
#

thank you ai generated image

spare quartz
#

god damn

#

why does PS/2 have so many controls

#

base spec for PS2

#

plus 62 more for keyboard

#

scan codse.......

spare quartz
#

huh

#

weird

rustic vine
# spare quartz

Wait, this is missing java users hating java and cpp users hating cpp

spare quartz
#

a lot of mixed signals

#

VirtualBox/Bochs: hangs when reading CMOS, PS/2 POST reports fail (except on bochs)
VMWare: returns "trash" (misaligned) data from CMOS, PS/2 POST reports fail
QEMU: returns nothing from CMOS, PS/2 POST reports okay

spare quartz
#

i dont understand

#

the last value on Stat shows the battery status of CMOS yet

#

it's just not theer in QEMU

spare quartz
#

got the date right now

#

even got the seconds right

#

just gotta correct the hour

#

nice

#

what... capctha is this..

spare quartz
#

okay now to imlpement delays for real

#

OK

#

delay works!

#

it can't do ms precision waits but it can still func tion

spare quartz
#

yeah im currently testing on a hybrid of both qemu and vmware rn

rustic vine
spare quartz
#

qemu respects PS/2 (while vmware doesn't)
vmware respects RTC (while qemu doesn't)

rustic vine
#

lol

rustic vine
spare quartz
#

mach_kernel
com.apple

#

yeah checks out

rustic vine
#

yea it was kinda fun

#

it thought it was a 2017 iMac

#

with 0 mb ram

#

I ended up caving and just getting a mac mini once they went arm though

spare quartz
#

god my RTS keeps getting larger and larger

rustic vine
#

600 bucks and will outcompete essentially every other minipc at that price point

#

I can't even hate anymore

rustic vine
spare quartz
#

ada runtime system

#

basically the c stdlib but you do it yourself

rustic vine
#

whole lotta work

spare quartz
#

so far it's powering this tiny kernel

rustic vine
#

thats cool

#

did yall see the material theme drama that happened back in nov of 24

#

I only recently learned about it, absolutely hilarious

spare quartz
#

what was it about

rustic vine
#

the guy that made material theme force pushed the public repo to remove all previous commits, adding a new license (prior to that it was apache 2) written by himself that essentially makes the material theme proprietary and disallows all use without payment (is that even legal?)

then he proceeded to open like 20 github tickets for repo takedowns that were in "violation" of the new license and also submitted gh issues to a bunch of places

#

the gh issue thread on this zed material theme plugin was actually hilarious

spare quartz
#

i'm 99% sure you can't retroactively change your license like that

#

but what a dick move

rustic vine
#

his replies are actually hilarious

#

Fail.
Another Fail.
Failed again.
Failed.

spare quartz
#

for a ux engineer he's not making the best experience...

rustic vine
#

bro's only OSS contribution was the material theme

#

and this is his legacy

timid quartz
lyric mesa
spare quartz
#

ooooooooooooooooooooookakkayyy

#

gotta make a shell befoer i sleep

timid quartz
spare quartz
spare quartz
#

time for this

timid quartz
spare quartz
#

packages don't need a statement

#
function Search return Root_System_Description_Pointer is
      Address     : System.Storage_Elements.Integer_Address := 16#00080000#;
      Max_Address : System.Storage_Elements.Integer_Address := 16#00080400#;
      Tried_BIOS  : Boolean := False;
      Pointer : Root_System_Description_Pointer;
      use type System.Storage_Elements.Integer_Address;
   begin
      loop
         declare
            Check : String (1 .. 8) with Address =>
               System.Storage_Elements.To_Address (Address);
         begin
            if Check = "RSD PTR " then
               Ada.Text_IO.Put_Line ("Found PTR");
               exit;
            end if;
         end;
         Address := Address + 16;
         if Address >= Max_Address then
            exit when Tried_BIOS;
            Tried_BIOS := True;
            Address := 16#000E0000#;
            Max_Address := 16#000FFFFF#;
         end if;
      end loop;
      return Pointer;
   end Search;
#

coooolll

#

vmware says

timid quartz
spare quartz
#

you just noticed?

#

anyways yeah and it makes me really happy working on it since

#

i'm not googling 99% of the time for kernel OR ada stuff

#

rn it has very rudimentary
rtc support, logging, scrolling, integers->numbers (incl negatives), PS/2 parsing, ACPI parsing, timed delays (based on RTC)

timid quartz
spare quartz
#

i'm not able to take advantage of the safety part of ada yet (aside from the compile time checks)

#

but when i get into protected mode attaching a logger to GPF* is the first thing im doing

timid quartz
#

what is your resource for this

spare quartz
#

wdym

timid quartz
#

well ig for some stuff you can just google

#

like acpi spec

#

what about the ada rts though

spare quartz
#

oh i'm just using the osdev wiki for acpi/other x86 stuffs

timid quartz
#

gfg

spare quartz
#

as for rts, i kinda just had to guess until it worked with not much help aside from parts of the GNAT user guide

timid quartz
#

gfg

spare quartz
#

first gpr file i've ever written by hand

#

the osdev wiki DOES have an ada bare bones tutorial but

#

it's like a decade out of date and 1000x times harder than whatever i'm doing

timid quartz
#

lol

#

I wanted to look into writing a kernel in rust

#

buttttttt

#

kinda fell off

spare quartz
#

whast happnened

timid quartz
#

idk

spare quartz
timid quartz
#

just didn't go far

spare quartz
#

ah

#

this is like the 8th or so kernel i've made so

#

i understand 😭

#

this stuff is teeddiouss

#

mmmm

#

i should add bayachao music to my iso file and try playing it with the beeper

#

that would require interrupts though... (i've managed to not use a single BIOS interrupt at all so far)

#

i've made a lot of progress today wow

spare quartz
#

require cpu interrupts****

#

the entire sequence rn up onto the Halt procedure call is running with interrupts + NMI disabled cause

#

if i so dare touch Enable_Interrupts the entire thing crasshes

timid quartz
spare quartz
#

idk howwwwwww :<

timid quartz
#

honestly just register one handler to all the interrupts

spare quartz
#

my entire low_level package is justt his rn (ignore A20_Line_Status that doesn't work)

spare quartz
#

something something

#

procedure handler (...) with convention => C;
handler'Address -> segment:offset???

timid quartz
#

uh maybe

spare quartz
#

god my internet is so slow

#

640K ought to be enough for anybody

spare quartz
#

okay i got code to segment

#

hooooweeevrerrrr

#

my code appears to be beyond the addressable range of a segment..

#

Put_Line'Address is in here

#

got it working by nudging the linker script

#

the does limit me to 480.5 KiB of space though

lavish dove
#

how tf did you do the impossible

spare quartz
#

wdym

lavish dove
#

the actually good names on the commits 😭

spare quartz
#

well unlike intellij where i can just write wherever and commit however i like

#

i actually have to type out the git commands manually which lets me think

lavish dove
#

on vscode?

#

theres a tree looking thing on the side

spare quartz
#

it doesn't like signing commits in wsl

#

it breaks

lavish dove
#

oh damn

spare quartz
#

horoay

#

the segment code works

#

just gotta write a handler and place it in the IVT

lavish dove
#

also yo ucan use gdb with qemu

spare quartz
#

oh yeah ik i have -s set

lavish dove
#

w coder gameplay 😭

spare quartz
#

haven't found a need to yet, so i'm just doing everything on -Os with stripped symbols

lavish dove
#

yeah it was fuckin useless for debugging page faults

#

😭

#

and it doesnt stop when theres a fault or anything

spare quartz
#

-d int -no-reboot the goat

#

just noticed vmware/qemu use their own VGA BIOS fonts

#

i kinda wanna add one interrupt to dump it

timid quartz
spare quartz
#

it was really simple actually

#

just had to change the number after the .

#

gordons a trained professional, he doesn't need to hear about all this

#

how did i do that

spare quartz
#

No one who isn't already a seasoned developer with years of experience in several languages and environments should even be considering OS Dev yet. A decade of programming, including a few years of low-level coding in assembly language and/or a systems language such as C, is pretty much the minimum necessary to even understand the topic well enough to work in it.

#

i hhhatteee this

#

why do i fit this now

#

years have gone too fast 🙏

#

damn

#

new "language" idea

#

gotta write this

spare quartz
lavish dove
#

I get everything except a few years of assembly language 💀

spare quartz
#

i think im going schizo

lavish dove
#

thats cool

#

isnt like

#

lua bytecode

#

binary too tho

#

oh wait brainfuck too

spare quartz
#

yeah i'm trying to make something like a java CLASS file

#

but as a writable (through tools) language instead of just IR

lavish dove
#

I think it would be way easier to just do your own thing doing that lol

#

instaed of using some weird other format thing

spare quartz
#

it's basically just platform-agnostic assembly

lavish dove
#

true

#

(its been done a million times)

lavish dove
spare quartz
#

true...

#

every language in existence is also human readable which is NOT what i want

lavish dove
#

brainfuck

spare quartz
#

i'm trying to focus on the determinability of a program as well

#

e.g. you may not define things dynamically ever

lavish dove
#

woah

spare quartz
#

and there will always be ONE of something

lavish dove
#

stack forever

spare quartz
#

(ever, too, if you use a "50" somewhere in your code, there may only be one "50" in your entire project)

lavish dove
#

huh

spare quartz
#

i haven't written it down but basically

lavish dove
#

bro is making a language safer than rust

spare quartz
#

you have a base breadcrumb that defines 50 as a datatype

#

and then if you want to refer to it by a different identifer

#

you must sub-define that base 50, but not define it as it's own value

#

i know i'll need to figure something out later since not everything is determinable like this, but i'll probably have it done something like ada

#

a size must be resolved, then the object, so we can fit it all on a stack

lavish dove
#

woa

spare quartz
#

idk i have a lot of schizo ideas whenever im in the bathroom

#

this is one of them

#

im gonna steal this from the last programming lang i made

#

this too maybe

#

man i REALLY like making languages with assembly directives

#

how is it 12 am already

#

🙁

spare quartz
#

thinking...

#

each breadcrumb having their own stack/heap would probably be a bit too much

#

ill just write it in the broad definition

lavish dove
spare quartz
spare quartz
#

sickkkk

rustic vine
#

Oh my god I think they're serious

rustic vine
timid quartz
#

@spare quartz rot

lavish dove
#

(use ollama)

spare quartz
#

i think today im gonna finish off reading (but not parsing) acpi

#

acpi has this thing called AML which you need an interpreter for

timid quartz
spare quartz
#

i don't really have a care

timid quartz
timid quartz
spare quartz
#

do not thats WEIRD

#

i'm gonna need to make a serial port output for htis

#

(or add mouse support)

#

ACPI is too complex to be show on a single screen