<lispmacs>
hi, I was interested in adding persistent storage support to byok, the bare metal forth. I just wanted some kind of simple block-level access to a hard drive or flash storage which I could tie into existing block memory support in byok. I am wondering if any body had any ideas on the simplest approach to this. E.g., should I try to focus on developing a AHCI driver, or an OHCI driver, or something else...?
<lispmacs>
pretty much open-minded, but aiming for the simplest approach
<lispmacs>
it doesn't need to be high-performance persistant storage, though I didn't really want to focus on something like PATA which is already obselete
<lispmacs>
(byok is for x86)
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
lonjil has quit [Ping timeout: 246 seconds]
lonjil has joined #forth
_whitelogger has joined #forth
jsoft has joined #forth
hosewiejacke has joined #forth
Gromboli has quit [Read error: Connection reset by peer]
_whitelogger has joined #forth
sts-q has joined #forth
hosewiejacke has quit [Ping timeout: 272 seconds]
dave0 has joined #forth
gravicappa has joined #forth
jsoft has quit [Ping timeout: 256 seconds]
hosewiejacke has joined #forth
dave0 has quit [Quit: dave's not here]
Vedran has quit [Read error: Connection reset by peer]
Vedran has joined #forth
xek__ has joined #forth
jsoft has joined #forth
<proteusguy>
lispmacs, haven't done this in a long time. recall something like using INT 14 to access the raw drive commands.
<proteusguy>
sorry int 13
<proteusguy>
have never tried with more modern hard drives. I don't know if int 13 can address something that large or not.
<proteusguy>
I made a tool that was for decommissioning magnetic media so it had to be as low level as possible.
<proteusguy>
Oh the extended calls support up to 2^64 sectors so it should be able to address any modern size.
<proteusguy>
Sectors being 512 bytes typically but new drives might be 4096.
<lispmacs>
proteusguy: is extended bios something still current, or replaced now by UEFI?
tabemann has quit [Ping timeout: 260 seconds]
tabemann_ has joined #forth
Gromboli has joined #forth
jsoft has quit [Ping timeout: 256 seconds]
hosewiejacke has quit [Ping timeout: 272 seconds]
<veltas>
UEFI has boot services for block access, no runtime services. I would assume the favoured OS approach is now to access via whatever SCSI/SATA interface can be accessed. If you can find firmware support for something similar to the old BIOS method then I would hope it's not going anywhere soon.
<veltas>
Not services I mean protocols
<veltas>
But the point is an OS shouldn't be allowed to use those, unless you're targeting running out of the UEFI shell or something specifically (I assume not from the name)
<veltas>
i.e. if osdev tells you a way of getting basic block access then use it
hosewiejacke has joined #forth
<DKordic>
lispmacs: I heard NVMe itself is straightforward! Meaning PCIe is not {counted,weighted}. See also ""Open-Channel SSD"", or whatever the BuzzWord might be. I haven't done it yet.
<DKordic>
Forth!
<DKordic>
BIOS is officially obsoleted by UEFI from 2020.
<DKordic>
Every bit of BIOS, and 512 Byte Blocks are so Bugward-Compatible!!
hosewiejacke has left #forth ["Leaving"]
<veltas>
UEFI is not implemented well, right now you might be surprised to learn that often the "legacy" stuff is better implemented than the UEFI interfaces
<veltas>
Opinions on 3drop/3dup etc, if I define those am I going wrong?
<MrMobius>
define everything if you dont care about storage space or lookup time
<DKordic>
veltas: How about a ""Base Pointer""?
<veltas>
Not sure what you mena
<DKordic>
""swap"", for example, is no less of a variable than it's Parameters. "(swap -)"?!
<veltas>
Can you show me an example of a base pointer?
<veltas>
Or explain more specifically what it is?
<veltas>
I'm afraid I still don't understand
<DKordic>
Sorry, I meant to say ""Frame Pointer"". A Pointer to a Call Stack Frame.
<veltas>
Your punctuation doesn't make sense to me
<DKordic>
W/De_Bruijn_index . Results in W/Parent_pointer_tree .
<veltas>
I think I understand that though
<veltas>
The code
<DKordic>
... an /n-Stack Forth/.
<veltas>
If all else fails the code makes sense :P
<DKordic>
Tell me Asclepius, why does the Call Stack ""Grows"" in negative direction? That is, which analogy might be found?
<veltas>
So the things atop the stack can be addressed in increasing address order / increasing indices
<DKordic>
Yes, LIFO.
<DKordic>
At Index 0 is ToS.
<veltas>
Got nothing to do with being a LIFO
<DKordic>
You are right. I stand corrected.
<veltas>
It's also not really a LIFO if you can read the whole thing in any order
<veltas>
It's not really a normal 'stack', it's like how the 'heap' has nothing to do with a 'heap' data structure
<veltas>
Just happens to share the name, similar idea
<DKordic>
IMHO Call Stack is LIFO since it Grows at Index 0. Or is it Index 1?
<DKordic>
If Frame Pointer is Indexed by constants, it can be reduced to 0 Bits at Run-Time.
<DKordic>
By Constant Folding into the Stack Pointer Ossfets.
Zarutian_HTC has joined #forth
<lispmacs[work]>
I've been doing coding on AVR with Arduino-FVM. I was wondering though if any of the other (free software) Forths for AVR have a proper XTL system.
<lispmacs[work]>
just read about the XTL idea in FPH and it sounded nice
<DKordic>
What is XTL?
<Zarutian_HTC>
something to do with eXecution Tokens?
<lispmacs[work]>
Cross Target Link
<lispmacs[work]>
sounded like some systems like SwiftForth had a way to do interactive definitions and testing on the target, without having to have any of the compilation words actually loaded on the target
<Zarutian_HTC>
only bit wiser, what are those?
<Zarutian_HTC>
oh, I see
<lispmacs[work]>
for that to work, you just need basic memory editing words on the target, but the host has to be able to correctly manage the defining remotely
<Zarutian_HTC>
the tpeek, tpoke, and texec words basically
<lispmacs[work]>
those words aren't listed in the book I'm reading, but sounds like the same idea
<Zarutian_HTC>
but does that not give arise to the same long term tethering problems that plague compiled languages on avr?
<Zarutian_HTC>
could be t@ and t! for peek and poke respectively
<lispmacs[work]>
I'm not quite sure what you mean about the tethering
<Zarutian_HTC>
a product, often long lived, is made. At later date some addition or change to it is requested. But the designer, her siftware developement environment, or the manifacturer is gone
<Zarutian_HTC>
software*
<Zarutian_HTC>
note this product mighr be expected to last 60 years with mantenance and is not some consumer crap that ends in a landfill in five years time.
<lispmacs[work]>
Zarutian_HTC: well, I think I basically agree with what you are saying, but to have a full self-contained development environment on, say, a 328P, you are going to need the interpreter, the compiler, and the editor on a MC that has 32K of code space and 2K of ram
<Zarutian_HTC>
yeabb, or do what one manifacturer did. Append a project zip file in an spi flash that was needed anyway
<lispmacs[work]>
using Arduino-FVM, I have to have a host environment anyway, because I've got to recompile everything in the end to a firmware image
<Zarutian_HTC>
or another that put an uuid on the board, if you searched the Internet archive for it, you would find the original project files
<lispmacs[work]>
an XLT makes sense to me, though admittedly none of my current projects have closed to used up the full code memory
<Zarutian_HTC>
(same uuid for the model number btw, not per unit made)
<MrMobius>
interesting idea to use the SPI memory
<MrMobius>
I wonder if the avr could use it as a buffer and flash itself
rpcope has quit [Ping timeout: 268 seconds]
rpcope has joined #forth
gravicappa has quit [Ping timeout: 240 seconds]
_whitelogger has joined #forth
_whitelogger has joined #forth
Zarutian_HTC has quit [Remote host closed the connection]
Gromboli has quit [Quit: Leaving]
lispmacs[work] has quit [Ping timeout: 240 seconds]
Zarutian_HTC has joined #forth
xek__ has quit [Ping timeout: 265 seconds]
<veltas>
Are pick and roll gauche?
Zarutian_HTC has quit [Remote host closed the connection]