dave0 has quit [Quit: dave's not here]
<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> Yeah can only address 8.4G http://www.o3one.org/hwdocs/bios_doc/bios_specs_edd30.pdf
<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> Could you show me an example of this?
<DKordic> ""SP@ to FP FP 2 cells +""?
<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]