Date: 2008-01-07 11:06:19
Hallo Jim, > Can;t you just mark the parent dir entry with a length of 1 when > you are creating the dir? I want to use as much standard routines as possible: 1) to save space 2) to remain compatible 3) to make it as understandable as possible for outsiders This means that I want to update the entry when I have created the subdirectory, just like the directory is updated AFTER the file is saved and the number of blocks is known. Problem: I haven't found the place where this number is updated yet. The file is closed at CloseFile [DB02] (*). Here is a routine called that, IMHO, writes the last sector: WriteLastSec [DB62]. Immediatly after this routine the directory is written and the BAM is updated. But I haven't yet found the update of the size of the file itself. If possible I want to use the same routines. But not understanding them (yet), makes it difficult to use them. That's why I asked for samples of sources doing these kind of tricks. But I already found out that these are rare. Books like "Inside Commodore DOS" give you all kind of info about dealing with the 1541 on a very low level like calling jobs, or high level things like OPEN 1, x, y, "..... but not mid-level things like creating your own routines inside the 1541. And it is more difficult then I thought. I thought I could use the SAVE routine as example so I started to follow the thread starting at OPEN_N15. It ends at $D8D6 where a JMP to OpenFile4Write takes place. So edited some variables like TYPE and MODE and called the routine. A sector is indeed allocated but no entry is made. Doing some research I found out that an entry is made but in a wrong way. Then I just copied the beginning of the COPY [C8F0] routine and started to scratch lines. So I found out that I only needed one routine to get things going: Srch_file_dir [C44F]. Studying this routine didn't clear anything; I have no idea what special thing this routine does so my own routine suddenly works :( But I cannot use this try-and-error method all the time because 1) it eats up valuable time and 2) I end up with a routine that I don't understand myself. Worse, if things go wrong, where should I look for ??? If nobody has any sample sources, it just means that the development takes longer then I hoped. Do not misunderstand me, this is not a complaint! Having had a deep dive into the sources I now understand it is quite difficult material to handle, something that is not easy to change. (*) All the sources I have produced until now are based on my original 1541.ASM. So the above routines can be found at least by their name. A reference like [C44F] means that this routine is found at address $C44F in a 1541. This isn't true anymore for the newer sources but help you to find the original routine in another 1541 source then mine. > It'll never be anything else, no? Like a normal directory, it should be expandable. Hmmm, what about directories that once contained hundreds of files and now are empty? Another challenge I think :) > I saw Ruud has a design, but I really wanted to just buy something. > Ruud, you want to build me one? To be honest, no. I'm sorry but 1) it will take quite some time to build it, time I want to spend on this IDE project and 2) it only works under real MS-DOS. But if you still want it, you can have my proto-type. Hallo Peter, > Are you using one of those ROM/RAM boards, Ruud? No. 1) I deliberately choosed a 1541-II because its ROM can be replaced by a 27128 and , after some soldering, by a 27256. For a 1541 you'll need two 28 pin adapters, or one plus a soldering hack. 2) I placed a 28-pins textool socket in the original socket so changing ROMs is done in seconds. 3) I use an AT29C256 which can be programmed much faster then an EPROM. And no erasing needed either. > Perhaps support can be hacked into VICE easily... THAT would be great! That would simplify development as I don't have to program ROMs anymore. Who do I have to bribe? :) -- ___ / __|__ / / |_/ Groetjes, Ruud \ \__|_\ \___| URL: Ruud.C64.org De informatie in dit e-mailbericht is vertrouwelijk en uitsluitend bestemd voor de geadresseerde. Wanneer u dit bericht per abuis ontvangt, verzoeken wij u contact op te nemen met de afzender per kerende e-mail. Verder verzoeken wij u in dat geval dit e-mailbericht te vernietigen en de inhoud ervan aan niemand openbaar te maken. Wij aanvaarden geen aansprakelijkheid voor onjuiste, onvolledige dan wel ontijdige overbrenging van de inhoud van een verzonden e-mailbericht, noch voor daarbij overgebrachte virussen. Stichting Pensioenfonds ABP is gevestigd te Heerlen en ingeschreven bij de Kamer van Koophandel Zuid Limburg onder nummer: 41074000 The information contained in this e-mail is confidential and may be privileged. It may be read, copied and used only by the intended recipient. If you have received it in error, please contact the sender immediately by return e-mail; please delete in this case the e-mail and do not disclose its contents to any person. We don't accept liability for any errors, omissions, delays of receipt or viruses in the contents of this message which arise as a result of e-mail transmission. Stichting Pensioenfonds ABP, having its registered office at Heerlen, is registered in the Traderegister of the Chamber of Commerce Zuid Limburg (Maastricht), the Netherlands, registration number: 41074000 Message was sent through the cbm-hackers mailing list
Archive generated by hypermail pre-2.1.8.