#MINTIA (not vibecoded)
1 messages · Page 18 of 1
rv now has a well defined NMI model
NMIs are masked in NMI handlers
there is a distinct instruction to return from NMI handlers (mnret)
FRED will fix NMIs on x86 by doing pretty much the same (= distinguish between return from NMI and return from interrupt)
@icy bridge basically just don't worry about nmis lol
they aren't used by xrstation for anything functional
Yeah but they still don't exist in S-mode right
Like the whole nmi extension only affects M mode
well, NMIs are only taken into M mode but there is a mechanism in SBI to forward them to S mode (not forward the literal NMI but forward an event that corresponds to an NMI)
it's called SSE
Supervisor Software Events
ah
@icy bridge btw u probably want CONFIG_SLOB instead of slub
Iirc it's designed for very low memory amounts
i'm not doing any config changes until it works with this current one but noted
eh i can increase mem up to 256M in the emulator
Wait really
Why is 256 the max
on the default 4M ooms in the bootloader lmao doesn't even get into the kernel
Lol
limits of the fictional design
each ram bank is placed at a 32M boundary regardless of the capacity of the previous one (even if the previous one has 0 capacity) and there are 8 ram banks
Interesting
neither of those numbers can be increased since it'd break the firmware's abi:
- the boot info contains a static array whose size is the number of ram banks
- the boot info only contains a total amount of memory and the size of each ram bank, so everything that interfaces with the firmware has the 32M interval thing baked in
yeah and this is all fairly typical for like 1989 workstation
including the weirdly specific firmware interface
they'd just write new firmware
lol
luckily neither of those things will be compiled into linux since the bootloader translates the firmware-provided info (including memory map) into a dtb
That's good
one weird thing that isn't because of an architectural limitation though: the emulator seemingly tries to spread out the given amount of memory evenly over the 8 ram banks
so if you specify like 64M you get 8 banks with 8M each
which might cause problems in the future for linux since even if the total amount of memory is sufficient to load the kernel there might not be enough contiguous memory
Yeah that's for testing purposes to make sure the system software deals with non contiguous physical memory right
for now it's fine since the kernel image is ~3.5MiB including bss which is less than the minimum amount of space per memory bank
but if that grows too much it could become an issue very easily
especially considering this is a minimal config of the kernel
i might have to switch out the boot protocol to a paged one in the future for this reason
where the kernel can be noncontiguous physically
Which drivers did you enable?
In the config
but idk how much linux code (if any) assumes physically contiguity
none of them
i started with an empty config and added stuff until it compiled
arch Kconfig: ```
SPDX-License-Identifier: GPL-2.0-only
config XR17032
def_bool y
select GENERIC_ATOMIC64
select THREAD_INFO_IN_TASK
select HAVE_PAGE_SIZE_4KB
select ARCH_SPARSEMEM_ENABLE
select GENERIC_IOREMAP
select FUNCTION_ALIGNMENT_4B
select GENERIC_IRQ_SHOW
config MMU
def_bool y
config GENERIC_CALIBRATE_DELAY
def_bool y
config GENERIC_HWEIGHT
def_bool y
menu "Kernel features"
source "kernel/Kconfig.hz"
endmenu
and defconfig is literally just an empty file
Probably doesnt need sparsemem
oh yeah that one is just because i wanted to be able to deal with it, i don't think it's enabled by default
Since its only 256 mib and the ranges are next to each other the vmemmap can be contiguous one blob ig
like architecturally speaking the cpu itself can handle a 4G physical address space
it's just the overall system design of xrstation that limits it to 256M
I know that xrstation is most likely the only configuration of xr17032 that will ever exist but I wanted to be able to deal with theoretical other configs as well
Yeah exactly
Which is actually something I'm interested in exploring
Maybe I'll even port OVMF to xr17032 (probably not)
And gdbstub support which would be very useful considering xremu's builtin debugging is very limited
how does the dtb for this look like
it's generated at runtime give me like a minute to dump it
@night needle https://hst.sh/dequruxezu.properties
oh nice
this is in the 32M ram 1 cpu configuration
very nice
did you already write all the pte manip code yet
if not, then how come you dont have missing symbols for those
it's just a header full of static inline functions
but yes though i am not certain they are fully correct
did u use the builtin header which flattens all levels but 2?
other than that it should be just a few inlines yeah
and a vm prot to pte prot or whatever
if you mean pgtable-nopmd.h yes
probably that
annoyingly even with that header you have to define some pmd stuff
also whats kinnowfb?
ah
that should be fun to expose as a drm fb
love how the register interface for kinnowfb supports 4095x4095 resolution setups
4k on my late 80s workstation
1 fps/hour 
4k ahh 4k

although that register is unfortunately readonly
still
concept: guy who says "hi" whenever he opens a discord channel and "bye" before he clicks to another one
@icy bridge still playing silksong
port hollow knight to mintia
hi
ok if i did this, it would spam every single chat
because i just check unread messages in rapid succession before deciding which ones to engage in
Did you change your name
yes
I didn't recognize him until you said that 
i also saw the name liam in my DMs and i was like wait who is this
though i didnt bother to check until i messaged in here
and saw it was will
@twilit smelt mr hyena man did you spin in your old pushlock implementation before sleeping and if so what was the optimal number of spins
i did
did i spin? hope not or id be dizy
but like no i dont think i did, i do spin in my turnstiles impl
theres a law whose name i forget where if youre spinwaiting for a while to avoid a costly transition (such as blocking and selecting a new thread and a context switch)
its optimal (for some statistical reason) to spinwait for about half the amount of time the transition would take
so figure out how long your full circuit scheduling path tends to take and cut that in half and try to spin that long
I see, thanks for your wisdom hyena man
This is a Liam
I switched to the second half of william
Wanted to shake things up
Ohh
but will has 2 ls
so you have to be iam
not liam
(if you're dropping the will)
Gotta have half of the l, 'iam
@twilit smeltspotted in the wild: Windows NT Modified Page Writer car
wel there's a blacked out letter
That could say anything
It could say NT SUCKS IM A HUGE LINUX FAN MPW
Had a dream about working on mintia and woke up feeling very bad I've barely done any work this year
number
sometimes.. i dream about mint
@twilit smelt are non-wired tb entries architecturally guaranteed to persist as long as they aren't overwritten by a tb handler or should i treat them as ephemeral at all times unless backed by the page tables
for context i am doing the unpaged-to-paged transition and i was wondering if this was possible by manually adding a non-wired itb entry that identity maps the page containing the jump to the proper virtual addresses
if non-wired tb entries should be treated as emphemeral at all times i would need to back this itb entry in the page tables which i would like to avoid
or just use a wired tb entry ig but that feels icky
if you can guarantee no other tb miss is taken
then theres no reason it would disappear
but theres no guarantee about the replacement policy for example
i was just wondering if things like speculative execution might mess it up
fair enough lol
this is what the code in question looks like, and considering interrupts are disabled at the time i'm pretty sure a lack of tb misses is guaranteed
speaking of which, i'm curious, on modern software-tb arches how do tb misses interact with speculative execution?
i can't really think of a reliable way to do speculative tb fills with software tb
do they just abort speculation if a speculative tb lookup misses?
yes
fair enough
thats one of the reasons software tlb refill disappeared i think
yeah thatd make sense
btw how's the implementation of adr going? for now i'm perfectly fine without it (the kernel itself doesn't need pic) but once i start doing userspace stuff it'll very much be a necessity
ohhh it's harder than I thought. Beeen wrestling with it for weeks
Jk
I could do it in like 5 min at any time I've just been super busy and when im not busy im tired
it would
like pretend to be some crazy rich croporation with a new arch 
anyway, update: the kernel successfully executes C code! it now gets to the __builtin_trap() in my setup_arch stub
not much to see for now but hopefully that will change tomorrow because i am going to try and figure out earlyprintk
if everything goes well then i should get the first real linux output because this executes before setup_arch
is there a c compiler for xr?
yes, i ported gcc to it
for now it's contained within https://github.com/monkuous/xrlinux
note that while the compiler does work and seems relatively reliable i haven't done any super robust testing (beyond "make stuff with it until a bug is found") and libgcc does not compile yet
cool, might check it out when i'm done hurting clang
but on reliability, fwiw it can compile a somewhat simple bootloader i made (which includes memory management, device tree generation, page table creation, and an ext2 driver) without any miscompilations and linux without compile-time crashes (though i haven't verified a lack of miscompilations)
cool
hell yeah good work monkuous
This probably executes before early param parsing which is the thing that enables earlycon no?
But great work
Or well nothing prevents you from registering a console as the first line I guess
Yeah that was my plan
you can do even earlier param parsing before you call start_kernel
that was much easier than i thought lol
it's very temporary code and you can tell (it just uses a wired dtb entry with a constant vaddr to get access to the registers so that it doesn't have to rely on early_ioremap)
but it works!
lol nice
That's wild
Leenoox
does xrcomputer have any timing facilities with sub-millisecond precision? the only time stuff i can find is the rtc which only deals with milliseconds
i don't need interrupts that often ofc but being able to stall for less than a millisecond would be nice
What's the stalling used for
just general delay stuff
linux wants udelay
rn i'm just doing a loop-based thing (where the speed of each loop is calibrated during boot) but it'd be nice to base it on an actual timer instead of execution speed
Sadly you'll have to just do that
fair
i mean old x86 hardware also just used the in instruction for delays or whatever
which guaranteed at least 1 us or something?
also means CLOCK_MONOTONIC will just be jiffies so userspace can say goodbye to precise timing ig
ur porting it to something meant to be from a time before Linux existed at all
i mean yeah but the ibm pc from 1981 had a microsecond-precise timer
it's not like that level of precision was unheard of in the late 80s
I might have added something when/if mintia needed it
some questions about i/o caching and ordering:
- do dcachectrl writes just invalidate modified cache lines or do they also write them back into memory?
- if they do, how do you ensure that after a noncoherent dma read (device -> memory) the newly read data isn't overwritten by the cache flush?
- if they don't, how do you ensure that before a noncoherent dma write (memory -> device) the cache lines are written back to main memory?
- can accesses to uncached memory be reordered wrt one another? (aka do you need memory barriers between device register accesses)
- can accesses to uncached memory be reordered wrt normal accesses? (aka do you need memory barriers for coherent dma)
oh and for noncoherent dma, does the dcachectrl write function as a memory barrier or do you need both
The cache is write through with a write buffer
Not writeback
For questions 2 and 3 the answer is no and yes
the first bullet (how do i ensure that newly read data isn't overwritten by the cache flush) is usually not an issue on mainstream archs
yes
You'd expect a writeback to also clean the cache (i.e., move the cache lines into a state != Modified)
I don't know of any arch that has a writeback-but-keep-dirty instruction
this is because this is how the cache worked on comparable mips workstations in 1989, writeback was more fancy and didnt become ubiquitous until a couple years later
how does that prevent overwrite of dma'd data?
you just writeback+clean before and after the transfer
For example, that's how you need to do it with non coherent memory on x86
what if userspace writes to the cache line during the operation (this can happen with e.g. O_DIRECT i believe)
that's simply not supported
fair enough
whats the status of things right now, where are you at @icy bridge
haven't done much since getting earlyprintk output, just looking over the various stuff I've put in the headers to see if it's actually consistent with architectural behavior
once that's done I'll start actually filling out the init sequence
should be interesting writing a disk driver and stuff
and interrupt controller support and so on
are you planning on actually supporting SMP
probably yeah
When xrstation linux works send a message here from it 🔥
xrstation has no networking so that would be tough
i was gonna design a fictional NIC when i got there in mintia
i guess he could do some strange kind of ethernet over serial or something
Maybe yeah
also, maybe i'm doing something wrong, but -serialrx and -serialtx seem to be no-ops for some reason?
oh wait it's for serial port b not a
nevermind
they go over the second serial port
yeah
that's better
that'll help with ethernet over serial if i get there
9600 bps ethernet sounds like a pain though
i mean its in principle infinitely fast as long as you dont supply -asyncserial (which should probably be called -seriallatency instead or something)
ah ok
or I could just add an xr17032 target to qemu (which I am interested in doing anyway) and use some PCI ethernet card
or virtio
not as fun though
SLIP is really period accurate too
was already widespread in 1988 according to Wikipedia
are you gonna give it a nice tux bitmap for the boot picker
holy shit thats so sexy
Fr
i should
btw have you considered making a separate repo for linux instead of it being a single patch?
considered yes but having everything incl. jinx recipes in a single repo makes it easier for now
mostly because I'm effectively porting 3 things at once: binutils, gcc, and linux
just to confirm, xr17032 has the same "dependent loads can be reordered" thing as alpha, right?
Unlikely because xr17032 probably wouldn't have the weird dual dcache thing
yeah but like architecturally
ill say no
alr ty
car
thats a weird lookin dog
if i had the time i would write an SDL backend for mintia
would be interesting to see how it would turn out i think
@twilit smelt xrstation emulator doesnt have an audio device currently right
i think it would be really cool to flex standard frequency audio playback
another thing i wasnt gonna do until i got there in mintia
it could be a good stress test
i was gonna do it double buffered with buffer refill interrupts
2 sample bufr
I WAS GONNA DO IT DOUBLE BUFFERED WITH BUFFER REFILL INTERRUPTS.
2 SAMPLE BUFR.
GOD!!!
slay
by 2 sample you dont mean 2 audio samples right
do you mean 2 channels
i think mintia should support 7.1 surround sound setups
only supporting stereo is some weak unix clone shit
you dont want xr station to be one of those "enables a20 line, loads gdt and idt + page table support!!" projects do you
anyways if it cant mix multiple 44100 hz 24 bit audio files real time, it'll be a very uncool project that is very not cool at all
2 sample buffers
2 (sample buffers)
there are sample buffers
two of them
its not 2 channle
thats per channel
two buffesr per bchahenl
the buffer swould contian liek idk like 0.5 sec ond s of audio each and they woudl then be like yeah
aah
what happened to this message 😭
can xr station handle mmio writes that are like ~50 kb per interrupt
it could do like 40 megabytes per second iirc at 20mhz
you can map the sample buffers writecombine like a framebuffer
note that with sound you're likely not playing a single stream
so you need to mix a shit ton of buffers at interrupt time
not at interrupt time
well you could do it async
you can do it ahead of time
and copy from a buffer at interrupt time
yes that
how do you prevent buffer underruns with that method btw
wait how do you do wc on xr17032
any cached mapping is sort of like write combine cuz its writethrough
oh fair
barely
it ran at 1,193,182 hz
@icy bridge btw any progress on the port?
not since friday, haven't been working on it since then
ah
actually I don't think I sent an update then? it currently gets to successfully parsing the dtb
at panic("TODO: setup_arch")
ah
also I'm pretty sure this is the only linux port where the kernel image is not physically contiguous which is interesting
it used to be but I changed the boot protocol due to the xremu ram spreading behavior
ram spreading??
it spreads the given ram size over all banks (with at least 4M per bank)
so if you specify 32M ram you get 8 banks of 4M
ah
which is problematic because each bank's starting offset is determined only by its index
so you get a bunch of small regions with lots of space between them instead of one big contiguous region
what is the coefficient
32M
yep
and considering an extremely barebones nonfunctional version of linux already has a ~3.6M kernel image I figured making the kernel image physically noncontiguous was important
right now the boot protocol involves the bootloader creating page tables and passing them to the kernel without enabling mmu itself
so the kernel is free to set up the tlb however it wants before enabling paging
but this does mean that the pre-paging part of the entrypoint isn't allowed to cross a page boundary (right now I just use the first 256 bytes of the exception block for this)
cant believe we're getting linux on limnstation before mintia 2
I'm slow.
hi slow
asshole.
where I dont see any
liamstation
kdebug> threads
name thid team cpu state sem
idle thread 1 1 2 0 rdy
psycho_killer 2 2 0 rcv
kernel_daemon 3 2 0 slp
1 idle angel 5 2 0 wai debug idle thread 1(29)
dprintf 6 2 0 slp
dgets 7 2 0 wai request for input(48)
sh 9 3 0 RUN
report of the threads command on BeOS's built in kernel debugger
i like the psycho killer thread and the kernel demon and idle angel
They were having fun
lol
@icy bridge this might be a pain but do you think you can write out a list of all the stuff you pointed out to me
For example the mistakes in the book, the changes in jalr signedness, and ADR
I think one reason I haven't gotten around to any of this is laziness about getting all these things together
- docs+emu: ADR instruction (
ADR RA, IMM16,Reg[RA] = PC + (IMM16 << 16), immediate operate format, opcode = 0x30, RB field is ignored or MBZ) - docs+emu: JALR instruction should zero-extend instead of sign-extend
- docs: instruction summary for LSH, RSH, ASH, ROR list registers in incorrect order (
RA, RB, RCinstead ofRA, RC, RB- detailed description lists them correctly) - docs: LSH/RSH/ASH/ROR should mention that operand is masked with 31
- docs: MTCR pseudocode names incorrect source register (should be RB instead of RA)
- docs: MB and WMB descriptions should probably be rewritten to match #1322494605819908156 message
- docs: PAUSE function code is listed incorrectly in hexadecimal (but binary is correct)
iirc this is everything but i might be forgetting some stuff
Btw any new progress?
been too busy to work on it
Thank you very much
Embarrassingly huge number of docs errata
all done finally
it was indeed helpful to put it all in one spot, thank you
Did you add the instruction monkuous was asking for?
yes
static void XrExecuteAdr(XrProcessor *proc, XrIblock *block, XrCachedInst *inst) {
proc->Reg[inst->Imm8_1] = inst->Imm32_1;
XR_NEXT();
}
static XrCachedInst *XrDecodeAdr(XrProcessor* proc, XrCachedInst *inst, uint32_t ir, uint32_t pc) {
inst->Func = &XrExecuteAdr;
inst->Imm8_1 = (ir >> 6) & 31;
inst->Imm32_1 = pc + (ir & 0xFFFF0000);
return inst + 1;
}
very shrimple
nice
it wont but mintia2 for amd64 will use uacpi
interesting and cool then
in like 2027 probably
but a madt extension for xr would be funny too
wait 2027 is actually pretty close now
thats been my go-to "impossibly far off" year for like 10 years
im 23 and i already feel like my youth is far behind me and my life is coming to a close
my mental age is like 60
my god it's less than 2 yrs away
someone once called me "the oldest young person [they] ever met"
and that was like 4 years ago when my mental age was only 40
thats pretty offensive
i mean
it was true
they were saying that primarily cuz i was a very long time member of a community they were relatively newer in and i had stories from like 7 years earlier that id tell like a village elder with the kids gathered around the campfire despite being 19 and most of the newer people being much older than me lol
cant believe i started mintia when i was 18
when i was 18 i was suffering about how long mintia kernel was taking before anything interesting would happen
im now 23
sufferinga bout how long mintia2 kernel is taking before anything interesting will happen
wait u started mintia2 at 18?
mintia 1
that was old mintia right
yeah
old mintia was 2020-2023
almost the entirety of 2023 and first part of 2024 was spent on the new toolchain
mintia2 started in summer 2024
2020 feels like it was a year ago lmao
the new toolchain did NOT need to take that long
i got seriously demotivated
i still am
i have yet to recover the motivation levels i had during old mintia
yeah i can see that
at the final old mintia pace i think mintia2 kernel would be literally done by now
since i already know how to do everything this time
it would have gone much faster
for old mintia u would have 12 hour sessions where u would implement 999 things
i had like an all consuming hyperfixation with it which is no longer present
thats less healthy i guess
no i liked it better when i had the hyperfixation
i kinda get this hyperfixation everytime i start a new project
i liked when every few weeks id run stress tests and spend like 10 hours straight fixing like 40+ bugs
which means i can get a new project "released" in about 2 months
old mintia still has no known bugs
thats very cool
"known bug" was not in my vocabulary
if there was the slightest whiff of a bug i would drop everything and fix it
mintia2 has been the same so far to the extent possible with a like 20% done kernel
i think thats the only way to do it if youre a one-man team working on something of that scale
if you allow a "bug backlog" to build up itll collapse under its own weight pretty fast
i got back to this a little bit inbetween summer and fall semester when i spent like 12 hours a day for 2 weeks straight speeding up the emulator
so ive confirmed my brain is still capable of entering that mode lol
You pretty much have to accept the existence of bugs when you run on a diverse set of real hardware though
its capable but the thing you're working on has to be "new", at least in my case
or "important enough"
only with code that meshes with the hardware
i disagree with generic code
like scheduling, filesystems, etc
most vmm logic
well yeah
i think those are also fixable
i think korona is saying theres always gonna be some weird hardware that your driver doesnt quite work well with even though you followed the spec perfectly
only if you can set up ci for every existing piece of hardware
only then u can know that it works everywhere
no?
yeah thats how hardware is
if you encounter a bug in real hardware that is replicable you can fix it
if it's not replicable then it may stick around for a while, sure
but still fixable
regressions are a thing
hence the need for CI
no
otherwise u have no way to prove that a given piece of code works everywhere
sure
but those bugs arent "known bugs" 😛
if you dont know of a bug it's not a "known bug"
works on my machine 
exactly
also it could work on your CI machine but not someone else's
what if you count the time u spent thinking about it
then it becomes the majority of my waking moments for the last 7 years
iykyk
an incomprehensible amount of obsidian
how was it mined? it takes like 7 seconds to break one piece of obsidian with a normal diamond pickaxe and probably still like 3 with an enchanted netherite pickaxe and haste
nothing is truly incomprehensible when using //cyl /j
not what they did
that was survival
lol
yeah obviously lol
so my guess was right
but yk
oh even with haste 2 and an efficiency 5 netherite pickaxe it still takes 1.6s to mine
must have a lot of patience
you dont have to mine the obsidian though?
to place it?
yeah you do, it was botted
but placed by hand
ah okay
well you could use lava buckets instead but buckets are not stackable so you need to pick up some lava, then swap to an empty bucket, pick up some more lava, etc
ah yeah
right lol
im stupid
and you can only have a couple thousand lava buckets at most
thats a damn big ocean
been doing lots of high res renders lately
theyre fun
this one is normous
in particular
open in browser or download it
At some point the "you" in this sentence becomes a problem. It's too much work for a single person
Sure, it's theoretically possible but not in practice
sure
We were talking about keeping the system bug free in practice though, not only in theory
nice, thank you!
Wait wtf how old are you
26
Damn
Yes
old man
perfect really is the enemy of the good. procrastinating too long getting certain stuff done on projects cause i spent too long obsessing over making them "perfect". realised they don't have to be perfect, sat down and wrote some code, and now they exist when they previously did not
is there any sign of dwl's whereabouts
Turkey

they're probably riding around on their camel and trading pottery or some shit
I feel like this may be slightly racist
Very
This person is Turkish
ewww whaaaat
Ahhh
In that case I hate Bosnians!
Balija fucks
Cevapi munching
imagine living in the balkans and caring about racism
this is what american influence does to people
He lives in America iirc lol
my condolences
I don’t care about racism
I’m Balkan
I just know that shit don’t always fly around here
dont worry most westoids only care about shit like racism/bigotry if it's against the minorities they approve of
To je smiješno
What are these minorities
Westoid is funny
idk these days antisemitism seems to fly more cuz of the palestine stuff
wellll maybe not cuz people have complained about random balkan drama in the past
fr
this is literally the Nazi's wet dream
antisemitism has been alive and well for a while, well before the most recent wave of palestine problems
where people can say "Israelis are occupying our government" without fear
but most pro-palestine people are anti-israel/israeli
at the more common extreme at least
idk probably, she says a bunch of dumb shit so I tend not to listen to her
and she is (nominally) left btw
and is parroting ZOG and "Israel did 9/11"
ah yes, and Pax Tube
another left-wing antisemite is GDF
i think theyre referring to the insane level of unconditional deference shown to israel no matter what they do
sometimes, but it's also common that they literally think there is a shadow government of israelis controlling every world government
youre crossing the line from criticizing antisemitism into claiming a foreign state cant acquire any influence over another's government which is false
like aipac exists this stuff isnt even secret or a conspiracy theory
its done in the open and called good
we're not talking about any influence, we're talking about literal occupation of the government
also i understand there are antisemitic connotations to ZOG bc the term was in use by the alt right for a long time
but it is denotationally true that america's government seats are occupied by zionists and thats probably why leftists started saying it
the only mainstream political opinions in the usa that you can possibly be elected under contain zionism
this is just true
still wouldn't explain the 9/11 shit
It is antisemitic to acknowledge FBI records. So please, in the same of protecting Israel, DO NOT look for or read what our own FBI reported.
She also said: "Our country is occupied and controlled by the Israelis."
note not
zionist politicians
but THE Israelis
its like inherently radical and islamic terrorist marxist vibes to do anything other than total deference to israel for some reason no matter which side of the aisle youre on
which is weird and bad
theres been some total israeli PR victory among the older generations
what makes that message antisemitic?
younger generations on both sides are increasingly questioning the state of israel though so this might change in the coming decades
see the whole thread
she's basically claiming that Israeli nationals somehow knew about 9/11 ahead of time
and were celebrating
think they screwed themselves over by acting like whiny little professional victim bitches without realizing we only like that when we're doing it about ourselves and when someone else does it its just repulsive
lol
see?
its just braindead to imagine that "israeli nationals" as a whole would have special foreknowledge lol
secret israeli info distribution network where their millions of citizens receive special knowledge about mossad ops and they all stay quiet about it
somewhat insane anybody could believe that
it doesnt stand up to 2 seconds of thinking
yup
And why would she think that if not antisemitism or trying to signal to far-right people?
if you want to point out individual israelis who were celebrating 9/11 after the fact and use that to say "maybe they arent such good friends of ours after all"
thats different
idc about that woman
she may be antisemitic
TYT didnt produce as much as the money that people paid to their pundents
@glass sparrow look at this transition i got. i screern recorded it because i thought the songs went well together
thoughts?
banger
@earnest zenith at least youre not a "antizionism is inherently equivalent to antisemitism" person
Yeah
this depends a lot on what you define as anti-israel, if I had a wayback machine and infinite power id probably not made israel
not because I hate jews or anything, I think jewish people are really cool
it just seems like a bad colonial project that we cannot pull out of
there was no real reason for it to exist to begin with
and one of the most dangerous mistakes humanity has ever made especially was allowing that weird evil apartheid state to get nukes :((((
if ever interventionism was justified it would have been to blow up the reactor at dimona like jfk wanted
sadly many average americans are in a religious hysteria about israel and think its actually a command from god that we unconditionally support them
I mean my personal take is there should be a kilometer wide line of blue helmets between every IDF soldier and every palestinian like we went into bosnia for way less, its pretty interventionalist
and idk we can see what to do after that
not that theres gonna be much palestinian to put behind the km wide line at this rate if we take much more
ideally IDF would be disbanded and its commanders put on trial for genocide and hanged (including netanyahu and ben gvir and others)
government of israel dissolved and put under temporary UN control
also the ones posting gleefully about stealing wedding dresses from bombed out houses and doing mock weddings and putting that on tiktok because they think theyre safe from ever being prosecuted should probably be tried too
stuff like that
idk I kinda feel thats second degree priorities, but I second the sentiment
first degree priorities being you know stopping it
if ireland could borrow the entire american navy for 10 days this is probably what theyd do
what i described
lol
this is what we need to facilitate
just do 1800s level corsair politics and have 3 aircraft carriers lower the US flag for no flag
Yeah, definitely
But we now live in a reality where Israel is probably here to stay for a long time
okay but how is AIPAC not being registered as a foreign lobby and actively funding big money to US politicians not "running the country"
like explain how the US, EU and most EU members can look at the genocide happening before our eyes and not actively oppose Israel if they are not dependent on them be it politically or financially or whatever
also on the question of Israeli nationals vs zionist politicians the zionist machine has done good and hard work to convince its people that all Palestinians from young to old and all neighboring Muslim citizens want to kill them
this is all to establish support for an apartheid regime and to one day realize the dream of great israel a la nazi germany
they haven't actively opposed any genocide in a while
simple: it's not in their national/political interest
Rwandan Genocide?
Darfur conflict?
wrong reply
What did they actually do there actively?
send troops
intelligence operations
for the "good" side
not sure if they've done sanctions but that's often the first thing thing that happenes
Are you referring to UNAMIR?
yeah
and french troops
well the french troops helped the genocide but
it was active involvement
UNAMIR was deployed before the genocide and didn't do shit
And as you said, the French did the opposite of stopping it
it is a shame that the UN has a big history of failing to prevent genocides despite active deployment
in the case of Israel UN members are just letting them do their colonial dirty work passively supporting with intelligence and arms
I don't get this religious hysteria when Trump but more importantly Peter Thiel, and co. are eerily accurate representations of the antichrist
and as if Jesus would have ever stood for any zionist policy
Afaik it's about where the money comes from, which supposedly is mostly wealthy private US citizens
anyway these last 10+ messages will get me interrogated if I ever visit a US airport
And anyway, that's incredibly far from running the country
There are tons of lobbies
The gulf states could probably massively outspend the pro-Israel lobby on that issue if they wanted to
fuck all lobbies
I don't believe Israel runs the US either
just that Trump is the least independent president in a long time
aint no way dwl's whereabouts triggered this convo
Trump is the least president in a long time
Like he does absolutely nothing about foreign threats
And basically other people do the work for him like P. Bondi, S. Miller, K. Patel etc
there is no religious argument, the bible states that the jews were left without a country because of what that guy who was the brother of the father of muslims did
i forgot his name
isaac i think
nvm ignore this
lol ain't Patel honeytrapped tho?
If Jesus went to the US he would get deported
ok I think that's enough of that. @icy bridge please linuxpost more.
does anyone even remember what i was supposed to work on next
i still dont have time to but it would be nice to be reminded.
docs+emu: ADR instruction (ADR RA, IMM16, Reg[RA] = PC + (IMM16 << 16), immediate operate format, opcode = 0x30, RB field is ignored or MBZ)
docs+emu: JALR instruction should zero-extend instead of sign-extend
docs: instruction summary for LSH, RSH, ASH, ROR list registers in incorrect order (RA, RB, RC instead of RA, RC, RB - detailed description lists them correctly)
docs: LSH/RSH/ASH/ROR should mention that operand is masked with 31
docs: MTCR pseudocode names incorrect source register (should be RB instead of RA)
docs: MB and WMB descriptions should probably be rewritten to match progress-reportMINTIA
docs: PAUSE function code is listed incorrectly in hexadecimal (but binary is correct)
iirc this is everything but i might be forgetting some stuff
finished all that
all of that took me like 1 hour
total
lmfao
if you actually read it youll see its very shrimple tasks
correcting a few typos and adding a new instruction to the emulator and toolchain
ohy eah
i am supposed to
have the bootloader load all of the driver config files
so they can be used to initialize the IO catalog in the kernel with a set of all known drivers present at boot time
which can then be used to dynamically load the needed ones
im supposed to be doing something else but i guess ill just get that over with rn
oh god thats not a good sign
im stumbling over jackal syntax a bit
I MADE THE LANGUAGE!
did you make syntax / semantics docs
i have a relatively incomplete one for my language but if i need syntax help i can look at it
no bc thatd take effort and people who already know C seem good at figuring it out by just reading whats already there
@warm root is rewriting fox32os's file browser in jackal rn
if this were the 80s, how good would this project be overall compared to competition
(in its finished state)
yea
you should port it to alpha....
add virtualization instructions and run mintia within mintia
so compilers would synthesize 8 and 16 bit stores from 32 bit read-modify-writes
which made them silently no longer atomic
requiring extra locks in places no other architecture needed them
wait arent you doing most atomic ops on 32 bits anyways
no i mean like
just storing a byte
is now racey
just by compiling a program for alpha
racey with all other bytes in the same aligned 32 bits
like it doesnt even need to be something youd usually consider explicitly "atomic"
you might have a packed set of booleans which are each 1 byte and are modified under different locks
thats now broken
i think fastfat still has one of these places lol
the sorta open source windows fat driver from microsoft
yep
that lock is taken only on alpha because that 16 bit write is racey only on alpha
thats so scary they kept it around decades after they dropped alpha support just in case it ever rises from the dead
//
// We need extra synchronization here for broken architectures
// like the ALPHA that don't support atomic 16 bit writes.
//
lmao i hadnt noticed that
they call it broken
wait until sigma rolls along and has a native word size of 37
alpha actually added 8 and 16 bit memory accesses later but like
it was an extension that was only implemented in the very last chips
which there are almost none of and which arent emulated even in commercial emulators ppl use to run old versions of VMS and stuff iirc
interestingly we have an early build of Windows XP for DEC Alpha
and it uses the new 8 and 16 bit access instructions
didnt u get that one running or soemthin
or was that another project
i remember you getting some early windows build running on an emulator
so they actually added support for them to their toolchain during the interim period between the last public release for Alpha and internally dropping support for it
meaning they were serious about Alpha development
they didnt drop Alpha because they wanted to either. Compaq bought it and unilaterally ended its development
it was still seen as a viable workstation and server architecture til they did that
and MS was fully committed to supporting it for at least a few more years
that was an extremely early NT build from april 1991 that ran on the MIPS R3000
still the earliest build we've yet seen
its so early it has a "balance set" like VMS in the kernel still
by the next one we have (september 1991) thats gone
maybe microsoft has some tapes lying around somewhere that contain an earlier version
the released versions of NT for MIPS ran on the 64-bit MIPS architecture (R4000 and up) and basically pretended the upper 32 bits didnt exist
so this fully 32 bit version was unique
NT ran on R3000 internally but that port was dropped before release
they do yes
someone probably still has an i860 build of the kernel on a floppy disk in their attic somewhere
i have extensively emailed around and stuff trying to track these things down
i860 NT is my lost backyardigans pilot
wtf is a backyardigans
if it ever drops NT/860 on the internet or i otherwise find someone willing to share a copy i hope it doesnt happen in the middle of a semester because im going to forget school exists for a full 2 weeks while i spend 12 hours a day writing a Dazzle emulator to get it to boot
thats what happened with the R3000 NT build and that wasnt even half as exciting
i remember after a full week of working on it i was suddenly like "wait... im in college...... uh oh"
where can I find information about it? docs, blog posts, books, etc
about what
i860 nt
yeah but I mean, do we have any info on nt from that time period?
i assume its earlier than the r3k port right?
yes
if you miss that many classes wont you get booted off
no
i havent gone to a real analysis lecture since the second one which was like 4 weeks ago now
the midterm is on friday
im still in it
unfortunately
dont think thatll help
why not
the rough timeline as ive gathered it is:
summer 1988:
- the PRISM architecture is cancelled at DEC
- Dave Cutler leaves DEC and takes most of the PRISM and Mica OS team with him to try to create a new workstation startup
- intel is about to come out with the RISC i860 and wants to make it the PC platform of the future, to replace elderly CISC x86. they call up Microsoft to try to arrange that a portable OS be prepared on their end that will be able to run on the new i860 PC platform
- a project at microsoft called Psycho begins, headed up by Nathan Myhrvold, intending to research the feasibility of using Mach as a new kernel for a portable version of OS/2. the "Portable Systems Group" (PSG) is founded
fall 1988:
- Myhrvold hears that Cutler is on the market and convinces Bill Gates to call him up and try to get him to join the PSG (Cutler was famous as a hyper competent OS guy due to his work on VMS). Gates does and Cutler isn't initially interested in PC software.
- Ballmer takes Cutler to breakfast at Denny's and manages to change his mind.
- Cutler's team settles in at the PSG at Microsoft with Cutler taking the role of director
- design begins for the NT kernel, taking heavily after a flattened version of Mica
- an i860 toolchain distributed by intel (pictured below) is acquired, containing a simulator, runtime library, compiler (written by Metaware), and other tools
march 1989:
- NT is being written for a simulator using a convoluted build process ive described elsewhere
- first code written for NT, in the Ke subcomponent (exception handling & the scheduler). Ke is almost completely finished by the end of march
mid 1989:
- first Dazzle and Frazzle (i860 server and PC reference platform, respectively) boards are manufactured by Olivetti and development switches to these
late 1989:
- problems with the i860 are apparent by now
- port to a MIPS R3000-based version of the Dazzle board known as "Jazz" begins
early 1990:
- port to i386 begins
- i860 port is dropped
mid 1990:
- NT is ported to new R4000-based Jazz
late 1990:
- direction is officially switched from "NT OS/2" to "Windows NT"
- port to R3000-based DECstation 5000 begins, worked on by Alexandre Bronstein
late 1991-early 1992?:
- R3000 port dropped along with DECstation 5000 port
early 1992:
- DEC Alpha port begins
alexandre bronstein demos the DECstation 5000 port to Bill Gates and Dave Cutler:
i860 Dazzle development board:
4 tapes of NT's design being presented by Cutler and others to DEC engineers who are about to work on NT's codebase (including Alexandre Bronstein):
https://www.youtube.com/watch?v=UVKKhF9pGpI
https://www.youtube.com/watch?v=mtF-X1YnIDg
https://www.youtube.com/watch?v=19I2ffadc3Y
https://www.youtube.com/watch?v=L5ODGQdZZhA
tape of NT's design being presented by Alexandre Bronstein at DEC (includes a demo of the never-released DECstation 5000 port):
https://www.youtube.com/watch?v=bMJIhN4xCro
yes im autistic.
@golden meteor this is the broad strokes of what ive learned about early NT over the last few years
awesome, I'll be reviewing all of that Shortly™
and anything else you feel like sending
ideally related to early NT and the platforms it ran on, but if you just feel like talking about newer NT thats fine too
i got an autistic fixation on NT because its early history is underappreciated and shockingly fascinating
i think what first caught my eye about it was like
hang on this was a brand new OS being written for a brand new platform using an incredibly shitty buggy simulator and toolchain. thats kinda like what im doing.
nobody ever talked about NT so i assumed it was boring and stupid and lame and then one day i got curious and googled it and i was like WOW! THIS ISNT BORING, STUPID, OR LAME!
also the like
5000 coincidences had to align at the same moment in late 1988
aspect of it
it is one of the unlikeliest things to exist
feels a little homeric
or preordained...
this is the paper that blog post cites
since its now behind some weird intranet login page
THEY CITED WIKIPEDIA!!!!
death
kill.
i dont think the "dont cite wikipedia" thing was common at the time this was written (2006)
i think people citing wikipedia was what led to "dont cite wikipedia" rather than that always having been the attitude
so thats probably why they boldly cited wikipedia
it wasnt seen as a problem
yet
anyone know how people tend to implement speedy userspace condvars
given that userspace mutexes are usually managed entirely in userspace when theres no contention
using atomics
and youll want to pass this to your condvar for release that is atomic with waiting
When wikipedia was new, its content was seen as unreliable
futex has FUTEX_REQUEUE, which may help?
another pretty reasonable solution is to implement your primitives on top of a "add an unpark token to thread X, if they don't have on already" / "consume my unpark token, possibly blocking to do so" pair of primitives
Aka a binary semaphore
bootloader loads all driver config files in preparation for initializing the IO catalog later in the kernel
thats the next thing ill have to work on
omg mintia2 io system real???
fake
2026 will be the year of the mintia2 desktop
if im not mounting a filesystem by january 2026 i will drop out of uni and become homeless
sometimes feels incredibly bleak that i started old mintia when i was 18 and im now 23 and i still cant mount a filesystem. i mean i could like 4 years ago. but now i cant again
this shit is taking toooooooo looooooong
wasted almost the entirety of 2025
in 9 months in 2025 there have been 193 commits
in 6 months in 2024 there were 347 commits
in 2023 there were 625 commits on old mintia
i considered that a very inactive year too
because i had stopped working on it in favor of the jackal toolchain
thats gnarly
ive lost the juice
progress is NOT going according to the june plan
if you graduate and go into an IT job you will also be homeless

btw in this image i can see XR/computer XR/station and XR/system
what's the difference
XR/computer is the broader underlying platform architecture
XR/station is a particular model implementing it
There is no "XR/system" that's XrSystem which is the mintia2 ISD (integral system driver) for XR/computer, basically the module that contains all of the drivers for devices that are invariant (ie the chipset)
There will also be FoxSystem
And I suppose PcSystem
later
Also probably the thing most reminiscent of NT about my project is the obscene miscalculations of how long everything will take
I have a message in my discord from like April 2023 where I estimate the new toolchain will be done and mintia rewritten by the end of the year
toolchain alone wasn't even done by the end of the year
Finished that in February of the next year or so
After taking my sweet ass time on it (that was another period of very low motivation)
Thing is in hindsight this was impossible but I literally could have had the toolchain and mintia2 DONE by the beginning of THIS year if I'd kept a pace consistent with work on old mintia the entire time
Could have finished the toolchain in probably 4-6 months and mintia2 in another year and a half
Easy
Annoying to look back on
i dont really regret not doing shit when i had negative motivation levels
because you literally cannot do something unless you have motivation
holding you to this
Also I predicted it could kill the project
I knew there were gonna be huge motivation issues
Here's another prediction where there's parity with old mintia by January of this year
This was doable if I worked on it manically like I thought I would
Can you though just in theory be more productive with dragonfruit
No
I got Stockholm syndrome toward dragonfruit
I miss it
Jackal is too sterile
the zaniness is gone
jackal 2.0 now messier than ever with direct df backwards compatibility
create a variant of C ez
Jackal basically already is this
it looks zany enough to me
NOTHING and such
the macros
even better do att asm
It fits my mental picture of like the temples of mica too closely.
i had a close look at pillar and it's quite distinctive
a bit loud frankly
CONVERT_ARITHMETIC to cast between integers for instance
this is so rare it's fair enough
Also im probably being silly being so upset that my third OS in a custom language wasn't done by the time I was 23
MOST people have only done one, maybe two.
by that age
one upping mintia2 seems like quite the endeavor
mintia3: "It's basically NT 5.2 in a different programming language"
mintia2 is the third one
will u plan to make a fourth one
It will never need to be rewritten because it is now in a state where there is nothing stopping it from evolving eternally or at least as far as any of the modern kernels have gotten
It's in an acceptable language and will be ported to real hardware
final form
fourth one will be aisix2
aidsix
after like 10 years you should add a 64 bit xrstation
to simulate hardware getting better over time
and add custom cores for dedicated AI compute and add Mintia Recall as a necessary feature
I realised yesterday that there's "NT" in "MINTIA".
arabic hyenasky be like: mintiyya
thank god im not hyenasky if i were itd be weird i just made a self-referential joke as if i were another person
god you can just see the unspoken "... unlike fucking MIPS." here
so much hatred.
its funny that all the other riscs made sure to put their "zeroth-level" exception vectors in untranslated memory especially the TLB refill traps
and in xr17032 i just make them virtual as well. including, yes, the TLB refill handler
how? thats a secret. patent pending. this WILL be the greatest architecture of 1990
im not letting sun get their grubby little fingers on my trickz
another thing we have in common
I have a lot of stuff I need to implement, but just not the motivation to do it
if you dont have motivation it's because it's not fun anymore
go do a few side projects
and come back when you're feeling it
Okay, maybe I misspoke. I do have some motivation, but not enough to have 12 hour coding sessions like I did at the start of every large scale project of mine
12 hour coding session is insane
still insane
when i got that R3000 NT build booting i was pulling 20+ hour sittings
because I want something to work as soon as possible
if you dont code 40 hours a day are you even a programmer
i had never known how badly that could actually wreck your body until i did that a few days in a row
parts of me were sore that had never been sore before
my monkey brain likes to get validation and I kinda got used to it with my relatively recent projects
i listened to this album on loop the entire time and now i get like a ptsd response when i hear a song from it on shuffle https://open.spotify.com/album/1BVQ0iqg1mFg3Q48OLlwOT?si=blkeHwSATGqTCqvFQ8rvrg
can you say the artist name and album name cuz my discord is broken with spotify links
death's dynamic shroud - ill try living like this
thx
actually a very good album if i hadnt ruined it by listening to it probably 50+ times
wtf is this
i have a few songs that are so good i didn't get tired of listening to them for like 2 years
which is crazy
the first track sounds really bad with the weird ass oh yeaaah voice
bad as in not that it's a bad song it just sounds dirty af
thats my least fav song on the album
i can tell lol
also its all kind of an acquired taste
this one was probably my favorite
after the intro
also this one has a beat switch at about 2:30 thats extremely pretty
experimental music is worth listening to the only issue is sometimes the experiment fails.
but sometimes it works
which is why its worth listening to
you should make AI songs about mintia and xr station
never say those words in that order again
you should make AI songs about xr station and mintia
theres another beat switch at around 4:55 thats even prettier
no
also im like 90% sure it actually samples the Windows NT 4.0 shutdown sound chopped and spliced
so it seemed appropriate
er startup sound
Mainly intended for businesses. Kinda strange startup sound for a business... Download link below.
Download MP3 (free): http://ballyweg.net/windows.html
Download WAV (free): http://ballyweg.net/windows.html
Subscribe (free too): http://goo.gl/kl9qh
tell me if u can hear it
i dont hear it
not there
still sounds 4:4
still in 4/4
wdym 4/4
thats not what i meant by beat switch
i meant like
the beat
changes
not
the rhythmic meter changes
or whatever
listen to the NT 4.0 startup sound and then go to like 5:00 in that song and tell me if u can hear it
i dont hear it
my cousin is like a music production guy and he said something like "yes thats either a heavily edited sample of that sound or it sounds remarkably like it in a 1 in a million coincidence"
if thats what they're sampling, it's extreeemely edited
well yeah it would be
this song is cool from the beat switchup around 1:10 until a while later
think that part sounds cool
this is an artist where i mostly only like "parts of" their songs lmao
their songs are full of switchups
then theres 18 carat affair which is just weird but strangely attractive https://open.spotify.com/track/59jVonr9Ko6gszCYD2DeAw?si=8492157cc7b4461e
i was a like top 0.01% listener for them in 2022

