Shop OBEX P1 Docs P2 Docs Learn Events
help adding programs to SD max menu — Parallax Forums

help adding programs to SD max menu

VIRANDVIRAND Posts: 656
edited 2008-06-24 21:36 in Propeller 1
I read the manual for the SD MAX and
compiled my own programs to .eeprom files and saved them on the SD card
and then edited the dir.txt file to include names and their "8.3" FAT filenames.

I tried a few different things but the result is always the same:
All the programs I added to the menu show up but don't work.
(The Hydra freezes, still showing the menu but not responding to pushing buttons.)
But the programs that came on the SD card still do work if I select them instead.

An example entry I added in dir.txt for a program I put on the SD card is:

Virand Acid Demo
VIRACID2.EEP

I'm thinking...
1.Do I have to reformat the SD card everytime I add a new program to it, to defrag it?
2.The new files must be listed in (alphabetical or logical) order?
3.Menu can't find the files because there are extremely specific unobvious rules for writing the filenames?
(The file I mentioned is filenamed VIRACID2.eeprom)

Any clues?
I tried a few things and haven't found the working combination yet,
but I think it's probably just a simple stupid thing I haven't tried.

Can Femtobasic run .eeprom files? Can PropDOS do it and work with SDmax?
Sorry for the dumb questions but I think I'll save a lot of time by asking instead of searching and trying for many days.

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2008-06-09 05:50
    Femtobasic (and the SD card loader) can only run binary files, not eeprom image files. In addition, the loader requires that the entire program (up to 32K) fit in one file extent. It's best to initialize SD cards to have allocation units (clusters) of 32K which is the maximum allowed and is used for 2GB SD cards. If your programs are all less than 16K, you can use a 16K cluster size.

    1) If you format the SD card with 32K clusters, you should not have to reformat it
    2) There's no particular order required for the filenames
    3) Only 8.3 filenames are allowed. File extensions are not required to be anything specific.
    On my own SD cards, I use .BIN for executable files and either .TXT or .DAT for data files.

    Theoretically, you could use a smaller cluster size if the entire first 32K of the file were in
    sequential clusters. The loader is given a starting sector number and a length and just reads
    successive sectors until the whole thing is loaded in. This works if the (up to) 32K is sequential.

    Post Edited (Mike Green) : 6/9/2008 5:55:56 AM GMT
  • VIRANDVIRAND Posts: 656
    edited 2008-06-09 18:46
    Ok, thanks, that is definitely going to be useful information.
    I will try to add binary files and run them with Femtobasic.

    But I'm still wondering why I can't run my programs with the menu demo that came on the SD card.

    Like the other programs appear to be, and as the manual says, the menu demo needs .eeprom files
    and 8.3 filename format entries in the dir.txt file. I tried to do that with my programs but I don't see any
    difference between the way my programs, and the original demos which work, are stored on the SD.

    My SD card is in its original condition except that I've added programs.
    I have not reformatted the SD card, and I'm glad it's not necessary.
  • AndreLAndreL Posts: 1,004
    edited 2008-06-11 02:42
    You are doing something very simple wrong. First, start by simply re-formating the card FAT16, now drag my menu games into the root of the SD card and try it. If it works (which is should) then we know all is well. If it doesn't and you are using the card sent with the HYDRA SD max then you might have damaged the MBR of the card by writing to it low level? Have you done any blind writes to the card?

    Else, if you are using your own card and having trouble, once again, format Fat16, and then drag and copy my images from the menu directory, it should work.

    The point is we need to see where the failure is here and what you are doing wrong.

    Now, once you have everything working properly, take one of the eeprom programs from my list and replace it with your with the SAME name, get it? We are going to do the LEAST amount of change to the SD card, if your program doens't load then then you are doing someting wrong when generating the eeprom image. Remember, its NOT a binary, its an EEPROM, the binary is shorter, we want the 32K images for each app.

    But, bottom line is you can add, subtract programs. BUT, you need to watch your file names, and spaces, and funky things like that ,look at all my demos, the names and how they are entered into the text file and how they are on the SD card. Its a very simple program really.

    Please post when you find what you;re doing wrong, its going to be really subtle and something you assume is ok, but is not [noparse]:)[/noparse]

    Andre'
  • VIRANDVIRAND Posts: 656
    edited 2008-06-11 21:26
    OK... I have not reformat my SDmax card yet because I'm worried that will be more trouble.

    I thought my SD card burner was cheap and junky so I replaced it with a new one but there is no difference.

    BUT... it worked when I changed "VIRACID2.EEP" to "asteroids_demo.eeprom"
    then my program did run instead of "Parallaxaroids". Very important clue!

    So then I tried renaming another program to "inoutdemo.eeprom"
    and adding a dir.txt entry to

    In-Out Demo
    inoutd~1.eep

    But that didn't work.

    Then I renamed it again to inoutdemo (without changing dir.txt) and it worked. smile.gif
    (inoutdemo.eeprom.eeprom didn't work but inoutdemo.eeprom did, and WindowsXP hides what's after the dot.)

    OK, I'm familiar with DOS and FAT but this was confusing. I think I got it under control now. It seems to me:

    1.The filename must be MORE than 8 characters and be an .eeprom file.
    (WindowsXP hides ".eeprom" but shows as size 32K in Properties)
    2.The filename entry in dir.txt must be the first 6 characters of the real filename followed by "~1.eep"
  • VIRANDVIRAND Posts: 656
    edited 2008-06-20 06:10
    UPDATE:
    After putting many more programs on the SD card I noticed that some just wouldn't work from the menu.
    I copied all of the files into a PC folder and then deleted them from the SD card.
    I copied them all back onto the SD card. (Look down to see why I didn't format it first.)
    Now almost all of them run from the menu.
    The monks stopped singing and the sevens started singing (Parallax's vocaltract demos modded for Hydra).
    One game that worked before now seems corrupted in it's TV driver as if the crystal is loose but it's not.

    SURPRISE:
    Femtobasic, which came on the card, "spins" eeprom files, even one that never worked in the menu.
    FILES command shows the filenames on the card but they are more than a screenful.
    SPIN"MYPROG~1.EEP" runs myprogram.eeprom (example command)

    My computer does not give me formatting cluster size choices such as 32K,
    but I'll soon try a different FAT16 reformatted card anyway.
    If that one works then I won't worry about reformatting the SDmax card anymore.
  • AndreLAndreL Posts: 1,004
    edited 2008-06-20 22:19
    Bottom line, clean format FAT16, everything will work --

    If you munch the card then things get problematic, but of course, you can always write you own SD card functions that are more robust than my tutorial versions and the others that come with femtobasic's drivers.

    Andre'
  • VIRANDVIRAND Posts: 656
    edited 2008-06-23 22:19
    Wow. Totally unexpected results after formatting a new card. I just can't imagine how or why this happens.
    I really don't mean to be a P.I.T.A. - definitely not my intention - just sharing my experiences.

    The new and formatted card behaves exactly like the not-reformatted card that came with the SDmax board right now.
    I copied the files from the old card to the desktop folder, then from there to the newly formatted other card.
    All the files do work when loaded from the cards to the Hydra with the Propeller Tool.

    Only 3 programs behave badly and the same on both cards: (There are many others which all work perfectly.)

    1.Defender; only works in femtobasic, not the menu. I'm sure it is saved as eeprom not binary.

    2.My incomplete 3D maze game; worked once on the menu, but now it behaves as if the TV driver is
    set to the wrong parameters, both in femtobasic and the menu, and on both SD cards.
    It draws the first maze ok, then the TV goes nuts every time it repeats the loop to make another maze.
    If I use the Propeller Tool to load it from the SD card to Hydra then it works right.

    3.The "monks" vocaltract demo which I modded for Hydra by changing the sound output pins to 7 and 0
    and changing the crystal and PLL parameters. It worked once in the menu, but now I assume that
    since femtobasic now says "can't find file", I assume the menu has the same problem.
    Even having it saved twice didn't help.
    aesing~1.eep - the filename I use in femto and menu to try to load it
    aesingingdemo.eeprom - first actual filename I saved it as
    aesinging.eeprom - other file name when I saved it twice to see if it could find it then, and also deleted the other one
    It also works only if I load it from SD to Hydra using the Propeller Tool.

    These issues seem so rare, bizarre, irreproducible that I'm not really going to bother asking for help with them now,
    I'll just assume I goofed somewhere (seems most likely), and wait and see if it happens to anyone else.
    But if someone wants to try to see what's going on I could probably zip my card and email it.

    blush.gif SORRY ABOUT THIS EXTRA STUPID QUESTION:
    Why don't MMC cards work with SDmax? (They are not "too thin", or "too small"; a 32 meg SD card works.)
    I thought SD is backwards compatible with MMC. SD and MMC do both work with the PC.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2008-06-24 00:00
    VIRAND said...


    1.Defender; only works in femtobasic, not the menu. I'm sure it is saved as eeprom not binary.



    Don't pull your hair out on this one.. I have a binary of this that I can't make work
    with PropDOS. It works with Femtobasic (even the COLOR edition) but I can't launch
    it otherwise.

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Getting started with the Protoboard? - Propeller Cookbook 1.4
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card? - PropDOS
    Need a part? Got spare electronics? - The Electronics Exchange
  • VIRANDVIRAND Posts: 656
    edited 2008-06-24 21:36
    The bootloader is able to start Defender.eeprom from an eeprom,
    so I wonder what's stopping it from working from SD with some loaders.

    Seems to me a good loader would have to run in a cog and not need any Hub RAM for itself, if that's possible.

    Idea:make a version of femtobasic that only launches Defender, by reading a string instead of the keyboard.

    Just a few thoughts.
Sign In or Register to comment.