trolfs@vax1.tcd.ie (TOMMY) (03/29/89)
Thanks to everyone who replied to my original posting about file handling tips. However I think I wasn't being very clear. Sorry. What I should have said was "Does anybody have any BLOCK handling tips?" The forth I have is called 'C64-forth' (PET-forth is its parent) which does access the disk directly in blocks. It even has some file handling words. But as I hope to upgrade to a larger computer (C64, I still love you!), I want to have a block management extention which I can take with me, so everything will have to be done through BLOCK. Here are some examples that I have come across so far for make block manipulation easier. : THRU ( n1 n2 ---) 1+ swap do I load loop ; : +LOAD ( load next block) blk @ 1+ load ; : FH ( offset --- blk+offset) blk @ + ; ( FH = from here ) eg 3 FH LOAD ( load 3rd block from here ) or 3 FH 5 FH THRU and one way of not having to remember numbers is 10 CONSTANT BLOCK_STUFF BLOCK_STUFF LOAD I know, I know. These are fairly trivial examples. Even though they're handy, there is still hassel in keeping the blocks organized. This is the sort of thing I would like. NEW ( --- next_free_block) NEW would put number of next free block on stack. SCREEN nnnnnn ( n --- ) SCREEN would try to allocate block n and create nnnnn, whos run time action is the put n on the stack (ie constant), however it would have to be stored in some sort of directory. So now you could do something like: NEW SCREEN GRAPHICS GRAPHICS EDIT Also, it woulbe nice to be to associate blocks GRAPHICS ADD NEW SCREEN TURTLE ADD would some how link TURTLE with GRAPHIC, so that if you load TURTLE it will load GRAPHIC itself or something like that. Does anyone have any good ideas on allocating blocks (I was thinking of a sort of link list affair), and what about associating blocks with each other.That could be quite powerful ( or maybe not?). Anyway. Thanks again to everybody who replied. Hope I'm not being a pain. See yah. Tommy. -- Thomas Rolfs. (trolfs@vax1.tcd.ie) Dublin, Ireland.