dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
Ali_A has quit [Quit: Connection closed]
mahmutov has joined #osdev
joe9 has quit [Read error: Connection reset by peer]
joe9 has joined #osdev
heat has joined #osdev
nyah has quit [Ping timeout: 272 seconds]
eddof13 has joined #osdev
eddof13 has quit [Client Quit]
dequbed has quit [Ping timeout: 240 seconds]
dequbed has joined #osdev
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
srjek has quit [Ping timeout: 252 seconds]
ns12 has left #osdev [bye]
<geist>
okay straight talk, network stack
<geist>
how often should you consult the routing table when sending packets? obviously the model is you consult it every time
Matt|home has quit [Ping timeout: 240 seconds]
<geist>
since if routing table change, it should find new route!
<geist>
but, clearly that's slow for modern throughput
<geist>
so i *assume* modern stacks do some sort of caching of that per socket or whatnot, and then maybe have a mechanism to shoot down existing caches
<heat_>
usually you cache it on connections
<geist>
but i haven't looked
<heat_>
even for udp
<geist>
yah was thinking that too
<geist>
so, obvious way is to hold some pointer to the nic or whatynot in the socket itsef
<geist>
but thinking a simpler scheme may be some sort of routing table generation counter
<geist>
and bump it when table changes, and next packet out will force a re-eval
<geist>
can see obvious issue with that?
<geist>
(would still hold pointer, but would be simpler with shootdowns on routing table change)
<heat_>
well, why do you want it to change?
heat_ is now known as heat
<geist>
ip changes, link goes up and down, etc
<heat>
yes but in that case the whole connection goes down
<heat>
if you start messing around ip route add in linux i'm 99% sure you won't mess with any existing connections
<geist>
possibly. question is how does one shoot down connections that way
<geist>
oh sure i'm not saying you shoot connections down, just force a reeval in case what you added should be the new route, etc
<heat>
right, but what I'm saying is that the old connections will use the old route
<geist>
i suppose the correct model is yuo find all outstanding connections and reevaulate each one, deciding to shoot down or update
<geist>
hmm
<geist>
unless the old route is now invalid
<kazinsal>
option 2: do something like Cisco Express Forwarding wherein every time the routing table changes you pre-cache destination information based on the changes in a radix tree
<heat>
if you think tcp, tcp doesn't make sense if you change the IP in the middle
<kazinsal>
for IPv4 you can do this super cleanly with a four-level 256-way trie
<heat>
haha 16 bytes go brrrrrrrrrrr
<kazinsal>
for IPv6 I have no idea what you'd want to do really
<geist>
actually that's a point. on ipv6 for exampel if you're doing the ephermeral local address thing you'll actually be cycling through them reasonably quickly
<geist>
but in that case you almost certainly dont want to throw away an address there's a socket open on
<geist>
i assume when i creates a new ephemeral local address it puts it at the top of the routing entries so new sockets start to pick it
<geist>
but keeps the old ones alive as long as there are existing connections. or if the existing connections have cached everything, as heat was saying, the routing entries can go because they dont need to be consulted... hmmm
<heat>
that probably depends on how you cache things
<geist>
yah you almost want a pointer not so much to the network interface object, but a particular address object associated with the network interface
<geist>
that way the open connection holds a ref to the address
<geist>
but that would be independent of whether or not hte address is in the routing table
<geist>
but if in the case of a link going down you force the address to go out of scope, you can then do a reverse shootdown, finding all of the open connections and stop them
<bslsk05>
github.com: Onyx/inet_route.h at master · heatd/Onyx · GitHub
<heat>
really simple
<heat>
*copied*
<heat>
a socket never points at the routing table
<geist>
yah might take a look in a bit. trying not to pollute my brain with too many existing implementatinos until i felt like i've thought about it enough
<geist>
kind of a mental exercise so i arrive at kinda the same thing the hard way
<geist>
at the very moment here in my refactoring of my stack i have the socket hold a copy of the local address that will be used to find the nic in the routing table (which i have not implemented yet, it's just hard coded to pick the first nic)
<geist>
but it mostly holds a copy of the local address so it can compute the ip pseudo header before going down a level
<geist>
and of course tghe pseudo header has always been a huge violation of the layering
<geist>
since otherwise in the pure layering model the UDP/TCP layer doesn't care what the underlying layer is and the routing table hasn't been consulted yet
<heat>
layering is BS
<geist>
truth
<heat>
UDP/TCP sometimes have slightly different behaviour on v6 vs v4
<heat>
v6 has no fragmentation
<geist>
i'll probably still just implement the naieve 'check the routing table each time' here in a minute, but want to at least plan for the obvious optimization
<geist>
yah, and i think checksums are non optional on v6
<geist>
i haven't yet really dove into what would take to do a dual stack ad how much UDP/TCP code can be reused between them. presumably basically all of it, but as you say there are subtle differences
<geist>
but since i actually have a V6 network here at my house and my computers use it extensively i should do it
<heat>
yes, and the pseudo header is different, and the network stack is usually different (as you can usually do v4-on-inet6 sockets, and socket options are different)
<heat>
geist: believe it or not, linux duplicated the code
<heat>
tcp on ipv4 and ipv6 are two separate files
<geist>
hrm
<heat>
i 'member bsd did something similar too
<heat>
i ended up using templates
<heat>
I believe fuchsia's netstack3 is also heavily generic/templated code, but don't quote me on that one
m3a has joined #osdev
<geist>
and it uses rust so it's totally magic
<heat>
rewrite lk in rust
<heat>
actually you should have written it in rust right from the start
<geist>
yah if i really had the foresight i would have gone and implemented it in a language before the language was created
<heat>
of course
<heat>
the worst part of lk is that it isn't written in rust, the best is that you can rewrite it in rust
<heat>
oh what
<geist>
honestly i dont know why cpus aren't implemented in rust
<heat>
my kernel is performing magic tricks
<heat>
it's executing in memory that isn't mapped
<geist>
since cleary cpus are the weak spot in the chain
<geist>
back when Woz implemented the Apple ][ in rust the world was a better place
<kazinsal>
without rust we couldn't have multi-terabit switch fabric ASICs
<geist>
right, and obviously the moon landing
<kazinsal>
finally unpacked my mac classic ii after having moved in like, almost a year ago
<kazinsal>
boots right up like a charm
<geist>
oh yay
<geist>
so now the question is does the MMU fully operate on those
<geist>
the classic II is famous for being slower than it should because of narrow memory bus
<geist>
but... it's an 030 and it has a built in MMU i think
<kazinsal>
yeah, the only thing it doesn't have guaranteed is an FPU
<kazinsal>
not sure if this one has one or not
<kazinsal>
I need to figure out if I can get this thing online. without any expansion slots you can't jam ethernet into it but it's got two RS-422 ports with a funky miniDIN-8 connector
<geist>
i've seen at least one project that uses a rpi to emulate a modem for the purposes of gettig these things online
<geist>
these things as in old things
<geist>
but probably dosen't need a rpi for that if the software is avail
<kazinsal>
yeah, I'm wondering if I can RS-232 it up
<kazinsal>
I've got a cisco box handy that has a few extra serial ports for dialing in
<geist>
i wonder how difficult a simple iscsi client is to implement
<heat>
i'm so confused
<heat>
i'm get a page fault for a random cr2, the rip isn't mapped and the TLB is fine
<heat>
getting*
<heat>
the issue is that the cr2 != rip so it's executing something
<geist>
and what's the flags say? read or write?presumably it's not a instructino fetch
<geist>
does it line up with what is in any of the registers?
<heat>
honestly I don't even know
<heat>
anything
<heat>
i keep getting weird bugs that I can't 100% repro
<geist>
probably worth sitting down now and trying to build some directed stress tests
<geist>
i put together a 7.1 install on my mac SE and it was terribly slow, reverted back to 6.5
<geist>
but i've also seen that even with classic IIs its still pretty bad
<geist>
like 7.x is when it suddenly exploded in complexity and ran much worse
<kazinsal>
yeah, a 16 MHz '030 with a slower than normal memory bus is a bit of a dog for this
<kazinsal>
hrm. netbsd/mac68k will run on it iiiiiiif it had more memory and a bigger hard disk. needs at least 6 megs of memory and 60 megs of available unpartitioned disk space
<kazinsal>
I gotta say I'm impressed that the display is still extremely crisp and straight. doesn't look like it has any major deflection issues or anything
<kazinsal>
up close it almost looks like e-ink
<geist>
i think some folks actually make new memory sticks for them
<geist>
thought i saw some on tindie the other day
<geist>
though those may have been mac VRAM sticks
<geist>
yah i do like the B&W displays, my only complaint is the refresh rate is too low for modern tastes
<geist>
it is kinda headachy over time
<geist>
i think all of the B&Ws had the same 50hz rate or so
<kazinsal>
yeah, it's slightly off from whatever my phone's camera is expecting
<kazinsal>
it's funny, it looks fine straight on but in my peripheral vision I can see the flicker
<geist>
oh hmm, online says it's 60.14Hz
<geist>
so that's probably why your phone cant deal with it
<kazinsal>
neat example of persistence of vision operating a bit different when you're focused on something then when you're not
<geist>
but it seems much more flickery than 60hz usually. maybe it's the decay rate of the phosphors on mine
<geist>
but i have a wyse50 terminal here with green phosphors, for example, and it's completely fine. looks perfect
<geist>
no flickers, completely pleasing
<kazinsal>
does seem the sound isn't working though. nothing on the onboard sound, nothing through the headphone jack either. probably a funky capacitor
<kazinsal>
holy moses this thing is BRIGHT when you crank the brightness control panel slider up
<kazinsal>
dear apple: can you please send me some new retinas? thanks in advance
<geist>
yah might want to be careful with old caps on those
<geist>
i think the later classics and whatnot were in the Bad Era of surface mount caps
<kazinsal>
yeah I'll probably do a teardown soon
ThinkT510 has quit [Quit: WeeChat 3.4.1]
xenos1984 has quit [Read error: Connection reset by peer]
<kazinsal>
doho, I do have a copy of resedit on here.
ThinkT510 has joined #osdev
Teukka has quit [Read error: Connection reset by peer]
xenos1984 has joined #osdev
Teukka has joined #osdev
atrapa has quit [Quit: atrapa]
Likorn has joined #osdev
dennis95 has joined #osdev
Killaship34 has quit [Ping timeout: 256 seconds]
aejsmith has quit [Remote host closed the connection]
aejsmith has joined #osdev
mlombard has quit [Quit: Leaving]
mahmutov has quit [Ping timeout: 260 seconds]
GeDaMo has joined #osdev
Likorn has quit [Quit: WeeChat 3.4.1]
Ali_A has joined #osdev
Ali_A has quit [Quit: Connection closed]
Burgundy has joined #osdev
Ali_A has joined #osdev
vimal has joined #osdev
Ali_A has quit [Quit: Connection closed]
m3a has quit [Quit: leaving]
thinkpol has quit [Remote host closed the connection]
thinkpol has joined #osdev
mahmutov has joined #osdev
nyah has joined #osdev
C-Man has quit [Ping timeout: 260 seconds]
C-Man has joined #osdev
Likorn has joined #osdev
bliminse has quit [Quit: leaving]
freakazoid343 has quit [Ping timeout: 256 seconds]
<bslsk05>
anastas.io: OSDEV: Implementing a basic x86 page frame allocator in C
<scripted>
not sure if it's an actual good one
<mrvn>
Seems bad to me. It has page frames by number or by address. Pick one.
<mrvn>
Also how would that ever free a frame later on?
<scripted>
Yeah that's the next step
Vercas has quit [Remote host closed the connection]
<mrvn>
I would say that code is just a bad way to parse the memory map.
<scripted>
How would you do it?
<mrvn>
Beware that on actual hardware you do get memory maps with repeated or overlapping entries.
<scripted>
god
Vercas has joined #osdev
<scripted>
I'm not even sure why I'm writing a page frame allocator
<scripted>
what can I do with page frames?
<mrvn>
For the fram allocator simply implement a stack. free() pushes frames on the stack, alloc() pops the top of the stack.
<mrvn>
When you have page frames then you can map them into the virtual address space.
<scripted>
and then write a vmm?
<mrvn>
yes.
<scripted>
and when comes the pmm part?
<mrvn>
that is the frame allocator
<scripted>
ahh
<scripted>
I see
<scripted>
how do I implement a stack?
<mrvn>
As for parsing the memory map: I first go through and collect al the usable ranges into a sorted list or tree. Merge overalpping or touching ranges. Then as second pass remove all the ranger that are not MULTIBOOT_MEMORY_AVAILABLE, your kernel .text, .data, .bss, ...
<mrvn>
scripted: you can use a single linked list. Just put the address of the next page in every page to link them all.
<scripted>
I see
<scripted>
how much ram should I use for the stack?
<mrvn>
If you don't have all memory mapped somewhere you can optimize that by putting 511 pointers to free pages + a pointer to the next stack page into a page.
<mrvn>
scripted: 0
Ram-Z has quit [Ping timeout: 240 seconds]
<mrvn>
or 4/8 byte. All you need is a pointer to the start of the list.
<scripted>
Okay, so no allocation/very little allocation for stack
<mrvn>
The metadata for the stack will be in the free pages itself.
<scripted>
Right, so no need to allocate them
pretty_dumm_guy has joined #osdev
<scripted>
I will first try to get this page frame allocator work and then optimize the code like you said
<scripted>
instead of writing complete new
<mrvn>
Start by writing a function that simply prints out the memory map in a human readable form.
<mrvn>
start, end, size, type
<scripted>
So I should delete the whole page frame allocator?
<scripted>
like right now I only understand 1/3 of what I'm doing so I assume that's bad
<mrvn>
I would start from scratch.
<scripted>
or even worse, what my code is doing
<scripted>
Ok, makes sense
<scripted>
Is it true that the lowest megabyte is used for video?
<mrvn>
no, but part of it
<scripted>
Also, how do I get the start of the mmap and the end?
<scripted>
Like I can only get the upper mem, lower mem etc
Ram-Z has joined #osdev
Matt|home has joined #osdev
freakazoid343 has joined #osdev
heat has joined #osdev
srjek has quit [Ping timeout: 256 seconds]
freakazoid343 has quit [Ping timeout: 240 seconds]
<scripted>
Hello?
freakazoid333 has joined #osdev
<heat>
HELLO
Likorn has quit [Quit: WeeChat 3.4.1]
<scripted>
How can I get the start, end etc?
<scripted>
Like it's not in the structure
<scripted>
is there an osdev article about this?
<heat>
what's not in the structure?
<heat>
what structure?
* geist
yawns
<geist>
good morning folks
<gog>
hello
<geist>
yay a gog
* geist
pets the gog
* gog
prrs
* vdamewood
gives the gog a fishy
* gog
chomp fishy
<heat>
yo geist have you seen x86's new top byte ignore stuff?
<vdamewood>
Kitty go prrr
<geist>
no i haven't
<heat>
it's hilarious
<geist>
oh yeah?
<heat>
AMD and intel got two different solutions
kingoffrance has quit [Ping timeout: 240 seconds]
<geist>
oh course
<geist>
they're pretty firmly not on the sme page when it comes to system mode stuff
<heat>
AMD's solution adds a new wrmsr to context switching
<heat>
you have to restore the EFER
<geist>
it has a control bit in it?
<heat>
a new one yeah
freakazoid333 has quit [Ping timeout: 256 seconds]
<heat>
they also broke bit 63 which linux people very firmly told them not to
<geist>
do you need to switch it on context switch? what if TBI is just on?
<heat>
you need to switch it on context switch because apparently "programs might/will break"
<geist>
perhaps if you sometimes have it on, sometimes not. but if you always do then you might not need to
<geist>
a detail worth investigating
<heat>
intel sticked it in cr3
<heat>
which is sane
<geist>
indeed. however how does it affect user vs supervisor mode? or is it on all the time?
<scripted>
heat: mrvn told me to get the start, end etc, but how do I get that?
<geist>
if so, what bit is not effectively user/supervisor address? bit 56?
<heat>
intel is only on in userspace, amd is on in supervisor and userspace iirc
<heat>
yes
<heat>
you also get ~2 bytes of tbi on standard 48-bit addressing with intel's solution
<heat>
scripted, of what?
<geist>
ah see that's probably whyt he intel one can do it simpler, there's no ambiguity as to how it applies to kernel space
<scripted>
of the mbd
<geist>
what is mbd?
<scripted>
multiboot header
<geist>
ah the multiboot memory map structure?
<scripted>
memory structure
<scripted>
yes
<heat>
go through the array
<geist>
i think mrvn was just saying start by printing it out
<heat>
find the start
<heat>
find the end
<geist>
whcih has the side effect of showing you how it works, etc. gets your bearings tos tart on the next phase
<geist>
ie, step 1 is parse it by printing it out, then you know whats in it and how to read it so you can get to step 2
<scripted>
but how do I get the start address?
<geist>
(breaking down the problem into a series of steps)
<scripted>
it's not an object in the struct
<geist>
hmm, do you have multiboot docs in front of you? i dont remember off the top of my head but it should describe it
<heat>
the start address of what?
<heat>
you get a pointer to the memory map
<scripted>
geist: No I don't
<geist>
then there's your step 0.5
<scripted>
heat: of memory
<geist>
dont figure this stuff out by hearsay, go find the docs
<heat>
when i was a youngin we couldn't even use wikipedia
<scripted>
wikipedia is untrustworthy
<scripted>
teachers like youtube as a learning source, but not wikipedia
<scripted>
for some reason
<heat>
youtube is super trustworthy
<scripted>
yes of course
<zid>
wikipedia is garbage for learning because it's vetted and how to teach something is an opinion, imo
<zid>
youtube is ALL opionion and none of is vetted
<heat>
i learn all my history and politics with prageru, great source
<scripted>
you can trust pewdiepie explaining basic algebra
<heat>
not biased
<bauen1>
scripted: the same people that told me wikipedia isn't a reliable source and generally untrustworth are now pointing me to random youtube videos with "alternative opinions" :(
<GeDaMo>
Wikipedia at least has references
<zid>
Got your plastic cubes yet?
<heat>
just a great, solid, honest source that is not funded by big oil
<zid>
Speaking of funded by big oil, got your plastic cubes yet?
<heat>
no plastic
<heat>
:(
<scripted>
bauen1: based
<scripted>
it's quite funny how all my teachers tell me to look up everything on youtube and watch a video and you guys tell me not to do so
<zid>
scripted: got your plastic cubes yet?
<heat>
zid is the type of person to have a numbers theory course sponsored by exxonmobil
<scripted>
but why do you write that out like that?
<zid>
because we're "talking" in base 10
<heat>
it turns out not-10-based systems are pretty useless for normal people and only programmers think they're useful
<zid>
it makes it VERY hard to talk about number bases without it
<zid>
and the "words" for numbers barely help
<scripted>
I dont think irc is the best place to learn about this
<GeDaMo>
Usually we distinguish bases with prefixes 0b for binary, 0x for hexadecimal
<zid>
1*hundred + 1*ten + 1*one helps a tiny bit, but 'hundred' in base 16 actually means '256'
<geist>
and vice versa. base 10 is useful for humans but hard for computers (with the caveat that many computers have BCD modes, which is basically base 10 math)
<zid>
so it's easier to write the powers out
<heat>
the gang goes on a zoom call to learn numbers with zid
<zid>
And it's also how numbers work conceptually, each column is a power bigger than the previous column
the_lanetly_052 has quit [Ping timeout: 256 seconds]
<nomagno>
I think hex could be a fairly worthy competitor to decimal in an alternate timeline, it would be more painful for scientists but it packs more punch per digit
<zid>
one cubie, one line, one sheet, one cube, one hypercube etc
<bslsk05>
en.wikipedia.org: Cistercian numerals - Wikipedia
<scripted>
fuck, never thought counting would get this complicated
<gog>
heat: we always used ) to indicate non-inclusive
<gog>
idk if that's an american notation thing
<heat>
y a n k s
<geist>
gog: not sure. i've seen it all over the place
<zid>
I vote we divide the channel into fifths, we each claim 0.2497 of the channel.
<geist>
i try to use it when printing out ranges and whatnot when i remember
freakazoid12345 has joined #osdev
<gog>
i wonder if it's changed or smth since i've been in maths classes
<gog>
¯\_(ツ)_/¯
<gog>
it's less ambiguous in handwriting i'd say
<scripted>
but guys
<heat>
maybe it's an american thing
<scripted>
why is it base 16 and not base 17 or base 18???
<gog>
maybe it is
<gog>
scripted: because base 16 is a power of two base
<scripted>
why is it 16?
<heat>
we use ; as a separator here because of , being the decimal separator
<heat>
so [0;16[
<scripted>
power of 4
<gog>
it's easy to remember power of two bases and how they map to binary
<geist>
because it's a power of 2
<GeDaMo>
scripted: because four binary digits are exactly equivalent to one hex digit
<gog>
4 is a power of 2
<scripted>
ah
<scripted>
I see
<gog>
16 is 2^4
<scripted>
so it was basically created to make binary more readable
<gog>
2 * 2 * 2 * 2
<geist>
as we were saying before the reason hexadecimal is useful is because it's a power of 2. base 4, base 8, base 16, base 32 are also useful. but 16 is a nice sweet spot
<scripted>
long binary
<gog>
squished binary actually
<gog>
long binary is binary
<geist>
because it's also a even divisor of 2^8 2^16 and 2^32
<zid>
[19:44] <zid> it's much easier to double 1, 2, 4, 8, 10, 20, 40, 80, 100, 200, 400, 800, .. via hex
<gog>
there's octal too
<zid>
[19:44] <zid> than it is to do it in decimal via 1 2 4 8 16 32 64 128 256 512 1024 2048 4096..
<zid>
That's literally the reason we use hex
<zid>
it's not the *direct* reason, but it's the reason
<geist>
and yes, fundamentally it's to make binary more readable
<geist>
sicne the cpu itself dont know nothin bout hexadecimal
<heat>
makes decimal more readable too
<zid>
and the way you 'read' binary is to add powers of 2 together
<GeDaMo>
Two hex digits for one byte
<geist>
it's pure binary
<zid>
decimal gets.. messy, with powers of 2
<scripted>
but why is there a 0 in front of any hex?
<zid>
there's an 0x
<geist>
that's a convention
<zid>
to show it's base 16
<heat>
you can also use h at the end
<zid>
because it's really hard to write a subscript 16 on a computer
<scripted>
yes but why not 3
<GeDaMo>
0x indicates a hex value rather than decimal
<scripted>
like 3x
<heat>
3Ah
<zid>
because 3x doesn't make any sense?
<geist>
0x. it's really 0 as an escape code, and 'x' as hexadecimal
<scripted>
zid: yes but 0x also doesn't make much sense to me
<geist>
'
<heat>
ok
<scripted>
there's gotta be a reason
<scripted>
for 0
<zid>
0 by itself was the prefix for octal
<geist>
'0b' is also used sometimes for binary
<zid>
that got extended to 0b and 0x for binary and hex
<scripted>
ah
<geist>
that's why, and why 0 was a prefix for octal, i dunno. but that's what they decided on
<scripted>
now that makes sense
<zid>
1152921504606846976 base 10, 1000000000000000000000000000000000000000000000000000000000000 base 2, 1000000000000000 in hex
<geist>
it'll also screw you up sometimes. if yuo in C type something like 0123 thinking it's decimal 123, it's actually octal 123
<zid>
if you want a.. bigger example of why decimal sucks
<zid>
I've literally never done that once, I'm sure it can happen though
<geist>
*should* have been something like o123 or x123 or b123, but that's backwards compatibility for you
<zid>
I caught it as a bug in someone else's code though
<GeDaMo>
0c
<zid>
they were doing \x00 escapes in a big string
<geist>
occasionally in manyuals or whatnot you'll see a trailing 'h' like 0123h
<zid>
and dropped an x
<geist>
same thing as 0x123
<zid>
on paper you write a small subscript 16
<scripted>
all right
<scripted>
math teacher gonna be confused next time
<geist>
but yeah i think the real reason is back when C was getting started they only non decimal nubmer they needed was octal, since that was popular at the time, so they just used 0 as a prefix for that
<geist>
and then added hex support later, so slipped it in with 0x
<zid>
I blame VAX
<zid>
it's always VAX's fault
<gog>
yes
<scripted>
vax?
<zid>
ancient computer archtecture
<geist>
then actually very recently i think 0b became a standard for binary, though it was an extension for a while
<gog>
aka the best computer eveer
<zid>
where a lot of modern weirdness comes from
<geist>
nah, vax was much after that. pdp11 possibly, because it was suddenly a very popular 16 bit computer
<zid>
it was modern enough they needed to 'invent' things like representing number bases, but ancient enough they needed to use hacks to do it
<geist>
and a lot of unix/C grew up there
<scripted>
is everyone studying computer science here
<gog>
i did
<zid>
we still use a lot of those hacks
<zid>
no I never went to school
<scripted>
what do you mean
<scripted>
you went to school?
<geist>
but pdp7 where C originally grew up on i believe was an 18 bit machine, and thus octal was more appropriate
<scripted>
You're done?
<j`ey>
neevr went to university/college
<zid>
I'm 32 bro
<scripted>
yeah
<scripted>
zid
<geist>
sicne that's 6 bits of octal
<scripted>
I understand
<scripted>
you know too much
* j`ey
went to uni, but it was crap
<scripted>
to be young
<gog>
zid never went to any school, he was born with the knowledge of good and evil
<zid>
But I lost the good half of the manual
<scripted>
did the knowledge pay off
<gog>
i went to uni but dropped out 3/4 through my bachelor's
<scripted>
why
<gog>
reasons™
<zid>
face was too pretty was causing casualities
<gog>
not back then :(
<zid>
I still get really good acne that "will definitely go away in a few years" everybody said to me when I was 12 :p
<zid>
I just got taller
<j`ey>
zid: I dont get acne but didnt get taller, apparently its one or the other
<scripted>
so in hex you start with the biggest number right
<scripted>
0xF
<zid>
wat
<scripted>
or wait
<GeDaMo>
What? :/
<scripted>
thats the smallest one
<scripted>
stupid
<zid>
"in decimal you start with the biggest number right, 9"
<scripted>
lmao
<geist>
most significant digit
<scripted>
yeah no
<GeDaMo>
You start at 0 in all bases
<scripted>
0x0
<GeDaMo>
Oh, ok :P
<scripted>
so yeah we all know the earth is flat right
<zid>
if you're about to say something about hex, and it isn't true about decimal, you're wrong :p
<heat>
yea yea
<scripted>
so yeah we all shit in the bath tube right
<scripted>
lol
<heat>
wha
<geist>
so the story goes, Alan Turing liked to use base 32 much to the chagrin of his cow-orkers
<geist>
since that basically used 0-9 and then most of the alphabet
<scripted>
theoretical informatics scaries me
<scripted>
a lot
<heat>
what's that
<scripted>
if I look at it, it seems like alien language
<zid>
A6 = 10 sticks and 6 cubies, one stick is 16 decimal, so you said decimal 166 comes after decimal 15
<geist>
count the way you did decimal: after 9 is 10 because the last digit rolls to 0 and the next one increments by one
<geist>
so 0xf is really 0x0f, add one to that....
<nomagno>
scripted: that's like the people in 1st grade who failed the roman numerals test. Yes, we had a test for that, and yes, I miraculously still remembered
<nomagno>
:D
<gog>
oh yeah we had to do roman numerals too
<gog>
the worst numeric system
<heat>
gog: you just lose all security but that's not breaking stuff
<scripted>
nomagno: never learned those as well
<geist>
come on everyone they're getting it, just need to get over this hump
<heat>
chmod -R 0000 ~ would be much worse (DO NOT DO THIS)
<nomagno>
got: They're fun tho
<gog>
yes
<geist>
scripted: focus. do you see why 0xf does not to 0xa6?
<nomagno>
Makes you realize how bad pre-middle-middle-ages European merchants had it
<scripted>
go
<scripted>
what
<scripted>
what my my irc client doing
<heat>
idk
<heat>
it's connected to libera
<zid>
more focus than that
<heat>
established a tcp connection, did the irc stuff
<scripted>
everyone else using weechat too?
<zid>
more focus than that
<heat>
no
<nomagno>
I'm using a matrix client, FluffyChat Android
<scripted>
oh
<scripted>
wait
<nomagno>
Then connecting trough the bridge
<scripted>
after 0xF
<gog>
i use konversation
<zid>
you guys are awful
<zid>
literally trying to distract him on purpose
<heat>
nomagno, bet that if you practice roman numerals all your life you get really good at stuff
<gog>
anyhow, after 0xf
<gog>
what
<scripted>
let me think
<geist>
yah seriously. we're almost there
<GeDaMo>
What is 16 in hex?
<zid>
hint: if it's true in decimal..
<scripted>
0x16
<heat>
when you count from 9 to the number after 9 you put a 1 in the next column
<nomagno>
heat: multiplication and crap is objectively more complex though
<scripted>
or am I just stupid
<zid>
scripted: 9 is the biggest digit in base 10, what comes after 9?
<scripted>
10
<zid>
scripted: f is the biggest digit in base 16, what comes after 9?
<heat>
no it's 19
<zid>
scripted: f is the biggest digit in base 16, what comes after f?
<zid>
but yea, you keep saying after 9 comes 19 or 18 or something for some reason, not 10, as soon as you're talking about hex
<zid>
You count to 9, run out of digits, and start a new column, 1 stick and 0 cubies.
<zid>
You count to f, run out of digits, and start a new column, ? stick and ? cubies.
<scripted>
something with 0x1?
<geist>
apply what yuo know about base 10
<nomagno>
Yes, getting there
<scripted>
0x10???
<heat>
yes
<gog>
yes!
<geist>
yes!
<scripted>
finally
<nomagno>
YEEEES!
<scripted>
god
<geist>
now, if you guessed that, you need to know *why*
<j`ey>
scripted: do you know how to count in binary?
<scripted>
because
<nomagno>
now what' comes after 0x1F?
<scripted>
after 0x1F?
<heat>
yes
<nomagno>
Yes
<j`ey>
drum roll
<scripted>
um
<GeDaMo>
In decimal, what comes after 19?
<scripted>
1F is 16
<heat>
NO
<zid>
it is not.
<geist>
no
<scripted>
oh god
<geist>
so back to the start, given what you just learned. count to 0x20
<GeDaMo>
0x10 is 16
<zid>
You know, the name of the base?
<zid>
x-imal = "how many digits before you start a new column"
<scripted>
0 1 2 3 4 5 6 7 8 9 A B C D E F 0x10 0x11 0x12 0x13 0x14
<geist>
good, now keep going past 0x14
<scripted>
0x15
<geist>
through at 0x20
<scripted>
0x16, 0x17, 0x18, 0x19, 0xA
<zid>
you said A already
<zid>
so you've gone backwards for sure
<scripted>
oh
<scripted>
right
<zid>
what comes after 19 in decimal?
<scripted>
20
<scripted>
0x20?
<heat>
no
<geist>
aaah yeah you just confused em zid
<nomagno>
What comes after 9 in hex?
<scripted>
0xA
<geist>
so start from 0x16 again
<scripted>
so 0x2A?
<nomagno>
Right, so after 0x19?
<zid>
2A is two sticks of 16, and 10 cubies.
<scripted>
0x2A?
<geist>
stop guessing. that's more hurtful
<scripted>
oh
<heat>
you see how you reset the first column when you count from 19 to 20?
<geist>
start by counting again
<heat>
19 + 1 != 29
<scripted>
0x2A?
<scripted>
wait
<scripted>
I just said that
<geist>
if you answer with a ? i'm assumingy ou're guessing
<zid>
In sticks and cubies for decimal: 0c, 1c, 2c, 3c, 4c, 5c, 6c, 7c, 8c, 9c, 1s0c, 1s1c, 1s2c, 1s3c, 1s4c, 1s5c, 1s6c, 1s7c, 1s8c, 1s9c, 2s0c
<nomagno>
scripted: the left column gets increased when you do F+1
<nomagno>
scripted: you know how 0F + 1 = 10? You've 'consumed' 1 from the bottom F
<nomagno>
F - 1 is E, you know that much
<scripted>
yes
<scripted>
I know that
<scripted>
but
<nomagno>
So F + F becomes 10 + E
<scripted>
is 0x000F like a decimal or something?
<nomagno>
It's the same method as addition in decimal on paper
<nomagno>
But it's not decimal
<gog>
no, its just like decimal addition 0xf + 1 = 0x10 so 0xff + 1 = 0xf0 + 0x10 -> 0x100, you carry the ones
<scripted>
oh so 0xF is a very big number
<gog>
no, 0xf is just the largest possible digit
<nomagno>
scripted: it means, in decimal, 15.
<nomagno>
^
<gog>
forget about the decimal value of the digit
<scripted>
*0xFFFFFFFFFFF
<nomagno>
9 is the largest decimal digit
<nomagno>
F is the largest hex digit
* j`ey
is worried that person from discord was right
<scripted>
0x2F + 1 = 0x30
<zid>
what did discord person say
<zid>
I love gossip
<nomagno>
scripted: yes, it's 19 bits which I believe is like 256 thousand something
<gog>
scripted: YES
<gog>
exactly
<nomagno>
^
<scripted>
good
<scripted>
on weekends, my brain is simply not turned on
<zid>
get to biggest digit -> reset units column, increment tens column
<nomagno>
scripted: do you have 30 pencils or something? Yes, it has to be at least 30
<zid>
works in every base :P
<gog>
based
<nomagno>
Of the same thing
<heat>
j`ey, who=
<heat>
?
<nomagno>
You can use pieces of paper, but you NEED thirty of them
<j`ey>
well they said that script.. was a troll and I thought they also said they kept asking thesimple questions a lot.. dunno
<scripted>
dont have that much
<nomagno>
30 of anything small?
<scripted>
0xF + 0xF = 0x15???
<zid>
nope
<zid>
0x15 is one sixteen and one 5
<zid>
you're after two fifteens
<nomagno>
scripted: Alright, are you on a terminal right now?
<scripted>
yes
<scripted>
always
<nomagno>
With monospace font?
<scripted>
sorry what
<zid>
can you draw ascii art without it getting smushed
<zid>
because your letters are all different widths
<nomagno>
Do these two messages look exactly as big?
<nomagno>
129@#
<nomagno>
%-';1
<scripted>
yes
<scripted>
so its monospaced
<geist>
i think scripted wants to go to sleep
<scripted>
nah I want to stay up all night, its weekend
<nomagno>
scripted: hold on one sec
<scripted>
even if im tired as fuck
<heat>
no
<heat>
please
<heat>
no
<heat>
this is #osdev
<scripted>
yes
<GeDaMo>
You lot can carry on if you want, I'm going to sleep :P
<heat>
not #elementary-maths
GeDaMo has quit [Remote host closed the connection]
<zid>
GeDaMo: can I come?
<zid>
fuck
<scripted>
fuck no
<scripted>
I'm not going to do basic math
<zid>
too late you already did some
<scripted>
I had enough math lectures this week
<scripted>
enough geometry
<heat>
great
<heat>
go to bed
<scripted>
wanna know something
<scripted>
I have an A in math
<scripted>
LOL
<heat>
ok
<scripted>
ok
<scripted>
you really want me to go off this irc
<scripted>
dont you
<scripted>
Well, what should I parse?
<zid>
Is there an F1 race this weekend
<nomagno>
scripted: Hold on
<heat>
zid, think so
<nomagno>
zid: no, Australian GP is next weekend.
<heat>
actually no fuck
<zid>
makes sense, they do different legs with a week break
<zid>
and I imagine they're done in the gulf
<heat>
there's footy though
<nomagno>
At fucking 7 AM. Happy for Americans and Asians, but like c'mon!!!
<scripted>
if I parsed the whole structure, what next?
<zid>
I watch it later via piracy anyway
<zid>
bbc lost the coverage ages ago
<nomagno>
Think of the poor Europeans that only get 95% of GPs at reasonable times :(
<heat>
i like f1 but I can't watch it
<heat>
most races are just so boring
<zid>
watch the hilight vod?
<nomagno>
Not been like that in the last year in my experience heat
<nomagno>
Races have a lot more going on with what teams and drivers not being in the same order every time anymore
<heat>
this year's bahrain was just boring as heck for me
<zid>
last race was infact, boring
<heat>
and my favourite teams aren't winning so that's even worse
<zid>
unless you've got your eye on a certain midfield team
<nomagno>
What's your favorite teams?
<heat>
mclaren and mercedes, in that order
<zid>
I just want guenther to have a good time and not cry
<nomagno>
zid: I'm one of the famous unconditional Alonso fanboys, so I'm just kinda sitting there hyped every race until inevitably something unlucky happens
<heat>
i also strongly dislike verstappen
<zid>
I hate verstappen
<heat>
so every time he wins it's a no for me
<zid>
he's got an incredibly punchable face
<heat>
oh for sure
<nomagno>
scripted: open a new terminal and run the following command 'curl https://termbin.com/yj8x'
<heat>
and fucking red bull in general
<zid>
hamilton's a bit of a sheltered idiot at times but he's not actively twirling his villanous moustache
<nomagno>
No, that's not a virus, curls only prints stuff, don't worry
<nomagno>
zid: what
<heat>
zid, hamilton is nice for an f1 driver
<zid>
You hear me sans mango
<heat>
does the classic tax avoidance scheme of moving to monaco but
<heat>
tbf who wouldn't move to monaco
<nomagno>
I'm not a huge fan of Hamilton, again unconditional Alonso fanboy, but what even is that statement about Verstappen's moustache?
<scripted>
nomagno: I did
<nomagno>
He looks quite dumb most of the time
<nomagno>
scripted: you got some text about addition?
<scripted>
yeah
<zid>
He's just.. incredibly talented at doing exactly the arsehole move
<nomagno>
I don't think Verstappen could have an intimidating face if he tried
<zid>
like a 1 dimensional bad guy character in an old movie
<nomagno>
Scripted: well try to solve the exercise!
<zid>
who sits there twirling his moustache saying evil things
<heat>
yeah he's an asshole
<heat>
+ horner, marko
<heat>
all grade-A assholes
<zid>
horner is also an asshole yeah
<zid>
That's why I want guenther steiner to win, as a driver.
<zid>
Stick him in the red bull.
<zid>
Then he'll finally be able to beat the midfield teams
<nomagno>
Horner is literally paid to throw bullshit at the other teams then take advantage of the mess
<zid>
horner is like.. hypercapitalist
<zid>
"It's just business, filing a petty complaint is just using the rules to our advantage, blah blah"
<nomagno>
I don't know where you guys get your coverage, all recent drivers except Mazepin last year have been respectable and fun
<zid>
verstappen is literally the opposite of respectable and fun
<zid>
He's dangerous and maddening
<zid>
He's a very good driver, and what he uses those very good driving skills for is to dive up the inside then protest when he gets hit or hits someone
<scripted>
0x140? nomagno:
<nomagno>
Dangerous driving is, like it or not, a common trair in the history of F1.
<scripted>
*0x1E40
<zid>
He's basically conditioned everybody to get out of his way instead of racing him
<nomagno>
scripted: you aren't supposed to use the ones (decimal) column
<zid>
so now anyone who races him and crashes gets whined at for being bad
<nomagno>
it's just for reference
<scripted>
oh..
<heat>
yeah he crashed against hamilton a bunch of times last year
<heat>
or tried to
<heat>
dangerous
<zid>
Like how people avoided mazepin under blue flags, they avoid verstappen under racing conditions :P
<zid>
hamilton spent 8 months trying to pit around him
<nomagno>
zid: That's like, I don't know, literally 50% plus of world championship contender in the history of F1?
<heat>
no.
<zid>
2 months trying to race him and turned into some "awful sport who can't win without crashing max out"
<heat>
vettel and alonso were crashing against each other in 2012?
<zid>
schumacker had one very famous crash, in like.. 12 WCs
<zid>
verstappen does it every week he's ahead in the points
<heat>
wasn't it in monza last year where he literally got on top of hamilton?
<zid>
dove him into T1 and rode up his tire
<nomagno>
if you think about it, the gap between dangerous drivers competing for world championship is like, prost all the way to verstappen, you're right
<scripted>
0x1E?
<heat>
also kept spinning his wheels
<nomagno>
scripted: Take my internet medal
<heat>
could've seriously hurt the other driver
<zid>
To put it into perspective of how elbowy and un-caring about crashing the other driver is, consider that two random pink cars often do 8 corners side by side multiple laps a race
<nomagno>
You did it
<zid>
and verstappen's been alongside someone for like 8 frames of video last year
<scripted>
nomagno: I did?
<nomagno>
You did
<scripted>
oh shit
<scripted>
thanks a lot
<scripted>
but that was just basic counting
<nomagno>
I can now disconnect in peace while I make my way to the couch to keep arguing about some random people that mount metal horses
<heat>
they're not random people
<heat>
they're millionaires, sons of billionaires
<scripted>
nomagno: Do that, thanks again for the help!
<zid>
except my boy george russell
<scripted>
and everyone else
<zid>
He's the son of a fraudster
<zid>
thai bride
<zid>
(he grew up a couple of miles from me)
<nomagno>
I like Alpine but I don't like that their sponsor had to be Microsoft of all people
<heat>
you did get ruled by frenchies for like 500 years
<zid>
They were the norman french and normandy is part of the UK
<nomagno>
zid: Renault rebranded itself in 2020->2021 transition, got Fernando Alonso onboard, and bet big on improving before 2025 AND being able to compete for WDC and WCC in 2025 when the huge regulation changes arise. They're doing good but most of the hype is essentially Ocon fans waiting for him to shine, the eternal Alonso fanboys waiting for a third WDC, and F2 WDC Oscar Piastri fans waiting for either of the two to get kicked out so he gets a seat
zaquest has joined #osdev
<CompanionCube>
zid: all that's left is some islands though
<zid>
nomagno: so no reason to care then
<heat>
for now
<zid>
I'm not french and don't like alonso
<zid>
and the cool underdog team is haas
<heat>
f1's a fake sport anyway
<zid>
last year proved it
<zid>
they did the race manipulation out loud
<heat>
if your sport's supporters aren't best described by "Gary, 56, from Slough", you're doing things wrong
<mrvn>
What's "The smallest positive integer that cannot be described in fewer than fifteen English words"?
<heat>
one times one times one times one times one times one times one times one times one
<mrvn>
heat: that only needs one word
<gog>
negative negative one
<zid>
I prefer i^2
<gog>
yes
<heat>
no you only need one word
vimal has quit [Remote host closed the connection]
<zid>
It's the only way to enjoy i imo, people who use it without the squared are weirdos
<gog>
anti-complex number gang
<heat>
who enjoys i
<zid>
omg heat learn to read
<zid>
weirdos, we already covered this
<heat>
even squared
<heat>
there's no enjoyment to be had in complex numbers
* gog
eats a complex number
<gog>
mmm tasty
<geist>
a complex flavor on the palate
* gog
recedes into the imaginary plane
* kazinsal
does a Q_rsqrt(gog); // what the fuck?
<scripted>
oh my FUCKING god
<scripted>
git just scared the fuck out of me
<scripted>
I thought all of my commits were gone
<zid>
is it because the commit IDs are in hex
<scripted>
but I accidentally switched branches
<zid>
spooooky hexadecimal
MiningMarsh has quit [Ping timeout: 272 seconds]
Ali_A has joined #osdev
MiningMarsh has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
Likorn has joined #osdev
<scripted>
something went horribly wrong with my git commits
<scripted>
now my entire multiboot structure is fucked
<mrvn>
don't use force. the force is only for the experienced.
<mjg>
well presumably you still have your old commits
<mjg>
protip: git reflog
<scripted>
my dumbass didn't commit those
<scripted>
everything seems to be fine just that multiboot structure isnt working anymore
<scripted>
nah it's all fine I will do it once day
<zid>
I don't think you know how
<scripted>
Why?
<zid>
I don't know why, maybe you never learned
<scripted>
It's mostly just keeping track of which function is used where
<zid>
It's organized all wrong
<zid>
do some test prints in that shell.c with some made up numbers via lltoa
freakazoid12345 has quit [Ping timeout: 256 seconds]
<zid>
I don't trust it and I don't wanna read its source
<scripted>
the lltoa function works fine
<zid>
also lltoa the value of mdb itself
<scripted>
weird, it has a value
<zid>
ofc it has a value
<zid>
it can't not have one
<zid>
it's like saying int a; .... "weird, a has a value"
<scripted>
no I mean
<scripted>
nvm
<scripted>
yeah well
<scripted>
none of these properties have a value
<zid>
They all have a value
<zid>
and they're members
<scripted>
they have a 0 value
<scripted>
that's what I meant
<zid>
wht's the value of mdb
<scripted>
*a value of 0
<zid>
that's the one I cared about
<scripted>
38114
<zid>
94E2 okay
<zid>
are you using qemu or anything?
<scripted>
yes
<zid>
put xp /32bx 0x94e2 into its console
<scripted>
how do I do that?
<zid>
with your keyboard, probably
<scripted>
No, I mean literally how
<scripted>
there is no console than my OS
<zid>
console than?
<scripted>
like
<scripted>
there is only the shell
<mrvn>
mem_lower / mem_upper is irrelevant.
<scripted>
of my OS
<j`ey>
scripted: qemu console
<zid>
You mean you don't have qemu's console open, okay
<zid>
open it then
<geist>
qemu has a debug console
<zid>
run qemu with erm, -monitor stdio or something
<scripted>
ok let me do it
<geist>
various ways to get to it, and i fyou have just a gui i think it's ctrl-alt-3, or in the menu
<geist>
depending on which OS you're on
<mrvn>
scripted: Set MULTIBOOT_INFO_MEM_MAP and parse that properly.
<scripted>
I get a bunch 0x000
<zid>
then your mdb does infact, point at zeros
<zid>
print it from main as well
<scripted>
print plain mbd?
<zid>
if you get a different value you fucked up
<zid>
if not, and you still get zeros, you wrote zeros over it at some point
<scripted>
I printed it from main before
<geist>
*probably* an incorrect address
<scripted>
it was that number
<mrvn>
And don't make mbd a global. There is no need for it.
<scripted>
I don't even know why it doesn't work anymore
<zid>
put a while(1); after the print in kmain and do the xp command again
<scripted>
mrvn: I need to pass it to shell.c somehow though
<mrvn>
scripted: yes *pass* it to shell.c
<zid>
if it's not zeros then, you overwrote that memory with 0s between the while(1); and your shell stuff
<scripted>
its not 0
<scripted>
literally no code is above
<scripted>
just the terminal_clear_screen function that has nothing to do with it
<zid>
prove it.
<zid>
Do the steps I said
<heat>
it's a wrong address
<heat>
it's not even 4 byte aligned
<geist>
agreed
<mrvn>
.oO(There is nothing above it, execpt this something here that clears a big chunk of memory)
<scripted>
yeah still 0x0000
<zid>
you skipped 3 steps
<scripted>
no
<zid>
does it have the same value when you print it first in main, and when it later gets printed in shell
<scripted>
I put the while loop
<zid>
that was the first step
<scripted>
yes
<scripted>
it has the same value
<scripted>
I did that first step
<zid>
you have to tell me
<scripted>
it has the same exact value
<geist>
omg this is... omg
<scripted>
I can't scroll up with this fucking irc client
<geist>
i keep looking back and its still going on
<j`ey>
lol
<zid>
where did you do the print, before or after you checked the magic
<geist>
honstly can you just share the code?
<scripted>
after
<scripted>
geist: I did, scroll up
<geist>
now i just want to see where this is all going off the rails
<zid>
then it's already wrong in kmain
<zid>
and nothing to do with shell.c
<geist>
not helpful, it's jsut a pointer to the git repo
<scripted>
I should do it before I check if it has an invalid magic number?
<geist>
i dont know where it is in the repo
<zid>
and I seem to recall you being taught how to debug and check this 2 weeks ago
<zid>
the magic is completely separate
<zid>
the magic was the value in ebx or whatever
<scripted>
I learned gdb myself
<zid>
you just refuse to use it? :P
<scripted>
no, I'm just fucking tired and want to go to sleep
<geist>
then go to sleep
<zid>
do it then
<scripted>
no
<geist>
yes please, if you're not making more progress, stop
<geist>
there's a point where it's negatively useful to continue
<geist>
every time i gets hard you just say 'i'm so tired and not thinking straight'. imagine what that means to folks trying to help you
<scripted>
geist: I'm serious
<geist>
i move we should stop helping them today so they'll go to bed
<geist>
all in favor say aye
<scripted>
wait
<scripted>
wait
<scripted>
its 0
<zid>
I already ignored him again
<scripted>
according to the debugger
<geist>
nein. you're sleepy. nighty nite
<scripted>
: (
<geist>
sleep is good for brain function
<scripted>
what is sleep
<geist>
if you keep it up we're going to start officially thinking you're a troll
<scripted>
its 0 AM here
<scripted>
I slept 7 hours
<scripted>
so no
<scripted>
im not a troll
<scripted>
just an addict
<heat>
man 2 sleep on your favourite posix operating system
<geist>
but you've been here for 4 hours? you got up at 8pm?
<zid>
geist taking the bait again I see
<geist>
heh
<geist>
i know. i'm fairly convinced they're a troll at this point
<geist>
oh wait did i just say that out loud?
<zid>
I think they're just at least 2 years too soon to be trying any of this
<zid>
maturity and experience wise
dennis95 has quit [Quit: Leaving]
<scripted>
geist: what?
<heat>
we spent 2 hours trying to count
<scripted>
lol
<geist>
possibly. frankly the part where they start saying 'omg i'm so tired' every time we try to help them is an insult
<scripted>
ok stop
<scripted>
ok
<geist>
that implies a) i'm not actually listening to you because <sleepy>
<scripted>
i will stop
freakazoid333 has joined #osdev
<geist>
and b) i dunno, just a sign of disrespect
<zid>
It's classic help vampirism, don't actually read the answers and try to digest them
<geist>
anyway, if you're not a troll, seriously get some sleep and approach us again when you're not tired
<geist>
if you are a troll, please go away
<zid>
complain or moan about it being hard, never thank anybody, never internalize anything and just try again tomorrow
<scripted>
okay I will go to sleep
<geist>
end of line.
<scripted>
(in 1 hour)
<scripted>
cya everyone and thanks for the help
<scripted>
like really a lot
* geist
waves
<scripted>
I was as dumb as a 6 grader
<geist>
bye.
<mrvn>
+ It doesn't work, lets add random stuff, maybe it works then.
scripted has quit [Quit: WeeChat 3.5]
<geist>
*probably* not a troll, but definitely a help vampire
<heat>
mrvn, tbf I've done that and I wasn't a troll
<zid>
agreed
<heat>
i think everyone has done that
<geist>
usually worth spending some time on in case they get it, but at some point it's a bail out kinda situation
<zid>
They'll learn that other people are people too as they grow up hopefully, and that we're here because we're nice not to bail them out of having a single thought ever
<zid>
s/nice/nice,
zaquest has quit [Remote host closed the connection]
<heat>
they seemed too dedicated to be a troll, but at the same time, we spent 2 hours counting
<heat>
2 freaking hours
<geist>
ah sigh. that was nice. just hate to see that many people spend that much time on it
<geist>
yeah
<geist>
and this is a case where a whiteboard or whatnot would speak a thousand words
<zid>
Too ADHD riddled for that
<geist>
or i... guess a vid that happened to be precisely what they need
<zid>
literally just need 2 years to calm down
<geist>
possibly. certainly much farther ahead than I was at that age
<geist>
OTOH at that age there wasn't tutorials or the internet, so if you wanted to do this you had to just... i guess know
<zid>
The help vamprisim is probably just what you learn in this era
<geist>
or happen on a BBS where some programmer had uploaded some .txt file
<zid>
people are everywhere providing videos and help channels and shit all over everywhere constantly
<heat>
no high seas with books?
<zid>
no reason to sit on a piece of paper in your lunch break trying to figure something out
<geist>
probably how the bios call text file got started. i forget the name
<zid>
when you can just hop onto irc on your phone
zaquest has joined #osdev
<heat>
ralf brown's interrupt list?
<geist>
but it was probably born in the era of sending text files around on BBSes or fidonet
<heat>
rbil?
<geist>
yah
<zid>
one of my fondest 'learn to code' memories was on a playstation 2, with no internet or resources at all
<geist>
i had done some assembly and whatnot, but was on a 6502
<zid>
just using the in-program help file to try figure things out
<zid>
(it had built in BASIC in europe as a tax dodge)
<geist>
probably if had something like an amiga or whatnot may have been inclined to hack 68k, but x86 and PC architecture seemed like such a piece of crap i was actually uninterested in it until college
<geist>
where i discovered linux and properly running things in protected mode
<zid>
by the time I was like.. serious enough about it to try getting help from people I was old enough to have real conversations
<geist>
yah basically i was too lazy to do serious low level hackery until the internet came along (for me) whcih was 1995
<geist>
then i ate it up. started reading the intel manual front to back, etc
<zid>
I found basic eventually after a couple of false starts
<zid>
some random thing called 'europhoria' and stuff from search engingin'g "how 2 maek program on pooter"
<zid>
eup*
Ali_A has quit [Quit: Connection closed]
<geist>
yah i think the most graphics stuff i had learned was some book that in retrospect is not very good but i still have it because it was one of the first ones
<geist>
something like 'how to write a flight simulator for fun and profit' or something
<geist>
it's not very good but it straight up had pretty easy to understand chapters on 3D transformations and breshnam's line algorithsm and whatnot
<zid>
I found qbasic eventually
<zid>
and noodled arounda bunch making pong and stuff
<zid>
I eventually did have to ask someone how to do circles, x = cos(a)*r; y = sin(a)*r; but even then I didn't help vampire them I just.. went and made 200 little weird demos with it
<zid>
figured out how to range my loop so that the circle outline wouldn't have gaps in, how to draw elispses, etc
<zid>
Then I got a PS2 and its built in basic had *really* cool example programs, spinning 3D cubes and stuff
<zid>
learned a lot tearing those apart
<heat>
huh these vids are substancially worse than I remember