Thank you people. But please keep the test results coming.
Right now it looks like:
4KBs Byte read, 4KBs Byte write
8KBs Word read, 8KBs Word write
16KBs Long read, 16KBs Long write
260KBs Sector read, 160KBs Sector write
@Dr_Acula - There's a function called "checkErrorNumber" which returns the error number of any abort error if one happened. At the top of the code all the abort numbers are listed. Also, the reason booting is slow is because the spin code has to read every byte of the boot file, this goes at 4KB a sec, the actual boot ram update in ASM completes in under a second at 250 KBs a sec.
I see a little problem with writing 512. For example, pulmoll got 0 kps, I got about half of your quoted 160kbs, and Ahle2 only got a little over 44kbs. Dr A had the best result.
I think the average would bring your number down a bit. Don't get me wrong. It's still a great piece of code.
Jim
Edit: Just noted your post from yesterday about write speed not hitting 160kbs all the time..
I'm just putting the finishing touches on a release of Catalina/Catalina, so I'll probably proceed with the version I have, and wait till the next release to incorporate your latest and greatest version.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
>test
Running command: test
Creating test file "testfile" ... Success
Wrote 131,072 bytes at 0000043881 bytes per second
Running byte stride write test...
Wrote 32,768 bytes at 0000004192 bytes per second
Running byte stride read test...
Read 32,768 bytes at 0000004297 bytes per second
Running word stride write test...
Wrote 65,5536 bytes at 0000008000 bytes per second
Running word stride read test...
Read 65,5536 bytes at 0000008419 bytes per second
Running long stride write test...
Wrote 131,072 bytes at 0000014324 bytes per second
Running long stride read test...
Read 131,072 bytes at 0000016665 bytes per second
Running speed writing test (512 bytes at a time)...
Wrote 131,072 bytes at 0000071552 bytes per second
Running speed reading test (512 bytes at a time)...
Read 131,072 bytes at 0000223600 bytes per second
Running append test... Success
Running seek test... Success
Deleting test file "testfile" ... Success
* Added backspace support for the keyboard (keyboard returns ascii 200 so converted it to ascii 8, after finding kye's string handler already handles backspace)
* Added DIR command which is a short form of LS with just the filename
* Shortened the menu descriptions so they each fit on a single line on the vga display (80 characters)
* I am thinking about how CP/M works, where it goes through the list of commands, but the command is not present it goes through all the .COM files on the disk and looks to see if they exist and runs the appropriate one if it does. In our case, it would look for .BIN files
I just found this is already in propdos. Copied 'as is' with the original authors 'honest' comments
elseif command <> 0 '' AUTO-EXECUTE A .BIN FILE LIKE DOS
counter := 0
repeat until counter > 13
if command[noparse][[/noparse]counter] > 0
'' Convert Lowercase to UPPERCASE
if command[noparse][[/noparse]counter] > 96 and command[noparse][[/noparse]counter] < 123
command[noparse][[/noparse]counter] := command[noparse][[/noparse]counter]-=32
cline[noparse][[/noparse]counter] := command[noparse][[/noparse]counter]
counter++
counter:=strsize(@cline)
counter--
counter++ '' AAAAAARRRRRRGGG!!!
cline[noparse][[/noparse]counter]:=46 '' This paticular routine
counter++ '' proved to be a bit challenging.
cline[noparse][[/noparse]counter]:=66 '' To allow .BIN's to execute,
counter++ '' while ignoring everything else.
cline[noparse][[/noparse]counter]:=73 '' --works perfectly.. :)
counter++
cline[noparse][[/noparse]counter]:=78
rr:=strsize(@cline)
fsrw.opendir
repeat while fsrw.nextfile(@tbuf) == 0
tt:=(StrRight(@tbuf,3))
if textcomp(tt,string("BIN"),3) == true
if textComp(@cline,@tbuf,rr) == true
fsrw.popen(@cline,"r")
fsrw.bootSDCard
Here are some test results. These two results are using uSD cards, the PropNET setup with a Parallax uSD card adapter. Sorry that I attached screen shots. It appears that Parallax Serial Terminal doesn't allow copy/paste. We should add that to the feature list.
Perhaps a Google Excel type of file should be started and then we as a community can insert our numbers as we get them and then compare easily across the columns or rows.
For testing I had uSD cards. One was labeled as a Sandisk 1GB and the the other a Rdata 1GB.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Timothy D. Swieter, P.E. www.brilldea.com - Prop Blade, LED Painter, RGB LEDs, 3.0" 16:9 LCD Composite video display, eProto for SunSPOT, PropNET, PolkaDOT-51 www.tdswieter.com
Kye said...
Also, the reason booting is slow is because the spin code has to read every byte of the boot file, this goes at 4KB a sec ...
I'll bite, why? All you need are the first 64 512 bytes sector numbers. No problem here. Files are organised in clusters, sectors within a cluster are contiguous. So it boils down to getting the first few (if at all) cluster IDs and simply calculating the sector numbers. Also, these days a cluster size of 32K is not unusual so there isn't really any work to do [noparse]:)[/noparse]
Edit: OK, I found the answer, but there must be a better way to achieve this. You can't really expect people to wait about 8 sec for checksum validation (EEPROM file and your figure of 4KB/s). What about an option to disable the check?
Modified program attached. This is for running on a standalone system with VGA and keyboard. Also a photo.
The listing on this particular sd card scrolls off the screen (so many games!!) so it would be very confusing to try to find the emulations in amongst all the other files. So on bootup it sorts only files with a .BIN extension and prints those.
Run one with the BOOT command.
I'm also trying to get a SPIN command working like in propdos - I had a simple idea you could leave the extension off and it would add the ".BIN" automatically but I can't find the command to do that in Kye's nifty string library.
If that works, maybe you could leave off the SPIN command as well, and just type FBAS and it goes through the list of files on the disk to see if FBAS.BIN exists.
Autorun is easy to add - there is a commented line near the beginning of the program
'fat.bootpartition(string("CPM.BIN")) ' uncomment this to autorun a binary spin file
Batch files might be possible. I'm not sure if they are needed. If you really wanted to run one particular binary, you would reprogram the eeprom with that binary.
For TV there is the AI_Generic_Driver_TV object. It has the same commands as the VGA object so just change it in the OBJ section
It is filling up the memory so some careful coding might be needed to put back the audio. However, the VT100 emulation has a huge number of VT100 codes that are not needed at all. So you could delete virtually all these (maybe leave 'clear screen')
For Cluso...
Cluso would like a program to fit in eeprom that loads this program.
1) Rename this program to something new
2) Comment out the vga and keyboard things at the beginning.
3) Compile with BST if you like and set BST to remove unused methods. That should make it a lot smaller.
PUB shell
VT100.start(16) ' start the vga driver VGA starts on pin 16
VT100.startcursor
VT100.color(%00001000_11111100) ' Blue_White blue =3/4 power 10, white =full
VT100.cursorset(5) ' cursor type 5
VT100.clearscreen
key.startx(26, 27, %100, 40) 'Start Keyboard Driver pin,pin,num,repeatrate
' ifnot(com.COMEngineStart(_receiverPin, _transmitterPin, _baudRateSpeed))
' reboot
ifnot(rtc.RTCEngineStart(_clockDataPin, _clockClockPin))
reboot
ifnot(fat.FATEngineStart(_cardDataOutPin, _cardClockPin, _cardDataInPin, _cardChipSelectPin, _clockDataPin, _clockClockPin))
reboot
' ifnot(dac.DACEngineStart(_leftChannelAudioPin, _rightChannelAudioPin, 0))
' reboot
' ifnot(adc.ADCEngineStart(_leftMicInputPin, _leftMicFeedBackPin, _rightMicInputPin, _rightMicFeedBackPin, 0))
' reboot
fat.mountPartition(0,0) ' mount the sd card
VT100.str(string("**** SD card operating system by Kwabena W. Agyeman ****"))
crlf
VT100.str(string("Type Help for command listing"))
crlf
DisplayBinaryFiles ' display all files ending in .BIN
'fat.bootpartition(string("CPM.BIN")) ' uncomment this to autorun a binary spin file
repeat
result := shellLine(string("SD>"))
crlf
comment out virtually everything above the fat.bootpartition line - except leave in place the two ifnot commands that start up the sd card and rtc.
Then it becomes a minimalist program in the eeprom and you can ship out boards with the eeprom preprogrammed and never need the proptool. Just put new files on the sd card.
I'm gonna have to go and rework potatotext for less HUB memory usage. Clusos use the init code as screen buffer bit should free a considerable amount, losing color would free a lot more. I have to say, this community is just damn cool. Every few days, something somewhere gets advanced a notch. Wish I had time to follow all of it! But, the upside is when I do look to do something new (to me), there is almost always something to build on now.
It really is impressive, and if that doesn't just highlight what kind of secret sauce is in this chip, I don't know what does.
I have played around with the modified version that Dr_Acula put together.
I just got the feeling of playing around in a REAL OS for the first time on the prop. [noparse];)[/noparse] (Sorry OBC)
What I posted is all very preliminary and a non perfect program is probably better than vapourware (or worse, teasing photos of something working but no code), but I'm wondering if Kye might be able to cast his eye over the code I posted and see if it can be improved.
Ideas:
1) Go back to a standard keyboard driver. (Did Kye write one?)
2) Remove all the VT100 codes. Maybe go back to a standard 80x40 vga driver. VT100 is overkill for this application, and it takes up valuable code space.
3) Add in TV (maybe as TV or VGA as probably not room for both, Unless you go to BST with #ifdefs. But ideally stick with the prop tool)
4) Hopefully with the code space saved, the serial port can be added back in. Then - send output to both the com port and to the vga. And merge input from the serial port and the keyboard. That will involve timeouts on both keyboard and the serial port (poll a buffer to see if anything is present). The zicog does this and it works works well as you don't have to keep changing code when you compile for different hardware.
I think with a combined vga and serial object you would have the best of both worlds. Serial port for those using the prop terminal. VGA for those using the demo board.
Probably also default to the demo board pins (vga and sd pins are different on the dracblade) as I can handle changing a couple of lines if I download the code.
Might need a few tweaks eg vga needs CRLF but the terminal seems happy with just CR. Though some other terminal programs prefer CRLF.
If it all fits, put the audio back in to my code (sorry Kye for breaking half your code!) Ideally merge into one common program, with a structure that is fairly easy to comment out things that are not needed.
I must say though that Kye's code is proving exceptionally useful. I have all these sd cards lying around that would not work with fat16 and they all work with fat32 and Kye's code. So suddenly I've got 10 extra sd cards for free. And the bootloader makes organising files so much easier.
I can see this growing too. I'm off to search for propeller text editors. I'd like to add that to the mix...
And (see photo), no evil error messages with Kye's code *grin*
I am being incredably thick today (I'll put it downto the 7-day fortnight shift turning into a 7-day week) but I just tried to put a NASCOM.BIN onto my SD and Kye's code , modded by you sees it as a long filename NASCOM~1.BIN. I tried forcing the name to xxx.BIN but that just left me with xxx~2.BIN.
If it is so simple a problem, forgive me as I have been up in the night trying to stop the XXXXXXX flat roof from leaking.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Why did I think a new, more challenging, job was a good idea ??
Toby, that sounds odd. I've changed a number filenames to 8.3 format so they fit and no problems. I'm using NASCOM.BIN as well. Only thing is that I did change the filename on the PC before transferring it over to the sd card.
With Kye's code as a front end that second EEPROM I put into "Clunky" is very much redundant. I might just leave it, with Nas in it, for when I can't wait for a boot route.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Why did I think a new, more challenging, job was a good idea ??
Kye has done some amazing work. It all depends on how you look at things, but from my point of view, the eeprom now becomes a very tiny thing whose only purpose is to get the sd card working (and for debugging, though I mainly do that with F10 ram). The sd card becomes the main repository of data. I can see it loaded up with all sorts of programs - Catalina, Propbasic, games. All easily selectable with a menu that you can customise with some simple spin code.
Fat32 is so convenient. I know Kye has a format routine, but sd cards already come formatted as fat32 so you don't even need to do a format. I'm using these micro sd cards that come with a free micro-to-standard adaptor. There are these USB to micro-sd adaptors on ebay for only a couple of dollars. So easy to load up with many programs/emulations all at once.
If I ever were to consider flying to the US to one of these cool Propeller meetings, this is the application I would use as I could put everything on a SD card, then it would be easy to demonstrate many types of applications on the propeller and to switch between them without having to reprogram the eeprom. Just perfect for that 'how cool is this chip' demonstration where you want to be certain that it will all work on the day.
@Toby - does that mean you have it working now? If not, how can we help?
Lunch stopped play. I will have to get to grips with the Short/long name bit.
Although it is a slight inconvienence to have to add an EEPROM, at least you do not have to keep a track of how many times it has been written to before the main chip dies.
EDIT
I put the "Show extentions " bits on on the XP, ans it now renames ok. I had forgotten to do this after the last Format. Windows, Bless.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Why did I think a new, more challenging, job was a good idea ??
Post Edited (Toby Seckshund) : 6/6/2010 1:10:07 PM GMT
Has anyone done the NTSC conversion yet? I didn't see it an attachments..
As for the block of .BIN execution code, I'd like to think I write better spin since then.. [noparse];)[/noparse]
I did a release of PropDOS that I don't think I ever released, but the concept is EXTREMELY handy...
Version 1.8 of PropDOS doesn't halt if the keyboard isn't present. It accepts data from both a local
keyboard and RS232, as well as outputing data on both RS232 channels and video. The same way
Sun Microsystems SPARC machines used to work if a local keyboard wasn't detected.
I'll be releasing alot of other interesting stuff soon. I wrote a combo keyboard and mouse driver that adds alot of new and nice features not found in the current ones today.
Oh, and the format command is just a quick format rountine for FAT32 and FAT16. The file system already has to be in place, the format rountine just deletes everything on the selected partition. I made that for the data loging people who just want to write stuff to the SD card and not stop. Then when they need to start over its easy to wipe the card.
---
Anyway, I'll be putting this code on the obex soon if no one is finding any problems. I also would encourage you to use the directory features so that you don't have to put all the files in one folder. But I do support up to 65535 files and folders in one folder.
...And about booting being slow... There's not much I can do about that, you can disable the checksum test if you want, but then ANY file could be booted from... I won't change that in my code, but you can always MOD my code.
I use a Sandisk 2GB and the system runs. Before on these emu's I have noticed that an old 16MB SD was incredibly slow, but worked. I have a 32MB MMC somewhere, I will see how that goes.
The only thing I have a quiry on is, When the first SD> prompt comes up, I always get a "Unknown command" message. The wanted cammand is happy on the second and all other times though.
I am using it on a copy of a DracBlade (with 512KB) but it is totally the same, as far as the core goes. I have a simular sort of thing on the Nascom emu, if I do not put a dummy ZZZ.NAS after the directories then it will not allow selection to be used via the up and down arrow keys.
Still if if all worked perfectly it would stop me having to think.
Thanks for this code, Kye.
Alan
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Why did I think a new, more challenging, job was a good idea ??
I am using a blank Kingston 2GB card, and when I tried to 'mkdir' I get a "Clock I/O error". I also get the same error when I try 'mkfil'. When I tried
'ls' command, it did not present an error. I tried the 'df fast', and 'du fast', and it did not complain.
My setup is a breadboard, with dip Prop wired up. I tried my ETT DS1307 Mini-board, but it did not respond, so I can assume that the board, or at
least the chip is dead.
Comments
I'll port it over to Doug's NTSC video driver and replace my PropDOS with it. [noparse]:)[/noparse]
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller Feature Projects: PropellerPowered.com
Visit the: PROPELLERPOWERED SIG forum kindly hosted by Savage Circuits.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller Wiki: Share the coolness!
8x8 color 80 Column NTSC Text Object
Wondering how to set tile colors in the graphics_demo.spin?
Safety Tip: Life is as good as YOU think it is!
Right now it looks like:
4KBs Byte read, 4KBs Byte write
8KBs Word read, 8KBs Word write
16KBs Long read, 16KBs Long write
260KBs Sector read, 160KBs Sector write
@Dr_Acula - There's a function called "checkErrorNumber" which returns the error number of any abort error if one happened. At the top of the code all the abort numbers are listed. Also, the reason booting is slow is because the spin code has to read every byte of the boot file, this goes at 4KB a sec, the actual boot ram update in ASM completes in under a second at 250 KBs a sec.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Nyamekye,
I see a little problem with writing 512. For example, pulmoll got 0 kps, I got about half of your quoted 160kbs, and Ahle2 only got a little over 44kbs. Dr A had the best result.
I think the average would bring your number down a bit. Don't get me wrong. It's still a great piece of code.
Jim
Edit: Just noted your post from yesterday about write speed not hitting 160kbs all the time..
Post Edited (hover1) : 6/5/2010 4:53:14 PM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Nyamekye,
Otherwise I have no clue. You would have to track what's going on in the mounting process through each step and see where it fails.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Nyamekye,
Great work.
I'm just putting the finishing touches on a release of Catalina/Catalina, so I'll probably proceed with the version I have, and wait till the next release to incorporate your latest and greatest version.
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
* Added backspace support for the keyboard (keyboard returns ascii 200 so converted it to ascii 8, after finding kye's string handler already handles backspace)
* Added DIR command which is a short form of LS with just the filename
* Shortened the menu descriptions so they each fit on a single line on the vga display (80 characters)
* I am thinking about how CP/M works, where it goes through the list of commands, but the command is not present it goes through all the .COM files on the disk and looks to see if they exist and runs the appropriate one if it does. In our case, it would look for .BIN files
I just found this is already in propdos. Copied 'as is' with the original authors 'honest' comments
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
Perhaps a Google Excel type of file should be started and then we as a community can insert our numbers as we get them and then compare easily across the columns or rows.
For testing I had uSD cards. One was labeled as a Sandisk 1GB and the the other a Rdata 1GB.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Timothy D. Swieter, P.E.
www.brilldea.com - Prop Blade, LED Painter, RGB LEDs, 3.0" 16:9 LCD Composite video display, eProto for SunSPOT, PropNET, PolkaDOT-51
www.tdswieter.com
OK, that's just too funny.
Edit: OK, I found the answer, but there must be a better way to achieve this. You can't really expect people to wait about 8 sec for checksum validation (EEPROM file and your figure of 4KB/s). What about an option to disable the check?
Post Edited (kuroneko) : 6/6/2010 1:41:22 AM GMT
The listing on this particular sd card scrolls off the screen (so many games!!) so it would be very confusing to try to find the emulations in amongst all the other files. So on bootup it sorts only files with a .BIN extension and prints those.
Run one with the BOOT command.
I'm also trying to get a SPIN command working like in propdos - I had a simple idea you could leave the extension off and it would add the ".BIN" automatically but I can't find the command to do that in Kye's nifty string library.
If that works, maybe you could leave off the SPIN command as well, and just type FBAS and it goes through the list of files on the disk to see if FBAS.BIN exists.
Autorun is easy to add - there is a commented line near the beginning of the program
Batch files might be possible. I'm not sure if they are needed. If you really wanted to run one particular binary, you would reprogram the eeprom with that binary.
For TV there is the AI_Generic_Driver_TV object. It has the same commands as the VGA object so just change it in the OBJ section
It is filling up the memory so some careful coding might be needed to put back the audio. However, the VT100 emulation has a huge number of VT100 codes that are not needed at all. So you could delete virtually all these (maybe leave 'clear screen')
For Cluso...
Cluso would like a program to fit in eeprom that loads this program.
1) Rename this program to something new
2) Comment out the vga and keyboard things at the beginning.
3) Compile with BST if you like and set BST to remove unused methods. That should make it a lot smaller.
comment out virtually everything above the fat.bootpartition line - except leave in place the two ifnot commands that start up the sd card and rtc.
Then it becomes a minimalist program in the eeprom and you can ship out boards with the eeprom preprogrammed and never need the proptool. Just put new files on the sd card.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
Post Edited (Dr_Acula) : 6/6/2010 3:00:01 AM GMT
I'm gonna have to go and rework potatotext for less HUB memory usage. Clusos use the init code as screen buffer bit should free a considerable amount, losing color would free a lot more. I have to say, this community is just damn cool. Every few days, something somewhere gets advanced a notch. Wish I had time to follow all of it! But, the upside is when I do look to do something new (to me), there is almost always something to build on now.
It really is impressive, and if that doesn't just highlight what kind of secret sauce is in this chip, I don't know what does.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller Wiki: Share the coolness!
8x8 color 80 Column NTSC Text Object
Wondering how to set tile colors in the graphics_demo.spin?
Safety Tip: Life is as good as YOU think it is!
Kye, you have created the "Ultimate Bootloader / OS" .. Kudos..
I am just assembling my prop board from the wulfden.. and this will be whats going on it..
I'm gonna have to add a video out jack for the 3.5 inch lcd I have and a keyboard port as well..
All thats needed is networking..
KPR
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
I always have someone watching my back.
This just makes so many projects so much easier to implement!
Lots of people are going to be using this code.
We will all be standing on the shoulders of a giant (You)
I just got the feeling of playing around in a REAL OS for the first time on the prop. [noparse];)[/noparse] (Sorry OBC)
Ideas:
1) Go back to a standard keyboard driver. (Did Kye write one?)
2) Remove all the VT100 codes. Maybe go back to a standard 80x40 vga driver. VT100 is overkill for this application, and it takes up valuable code space.
3) Add in TV (maybe as TV or VGA as probably not room for both, Unless you go to BST with #ifdefs. But ideally stick with the prop tool)
4) Hopefully with the code space saved, the serial port can be added back in. Then - send output to both the com port and to the vga. And merge input from the serial port and the keyboard. That will involve timeouts on both keyboard and the serial port (poll a buffer to see if anything is present). The zicog does this and it works works well as you don't have to keep changing code when you compile for different hardware.
I think with a combined vga and serial object you would have the best of both worlds. Serial port for those using the prop terminal. VGA for those using the demo board.
Probably also default to the demo board pins (vga and sd pins are different on the dracblade) as I can handle changing a couple of lines if I download the code.
Might need a few tweaks eg vga needs CRLF but the terminal seems happy with just CR. Though some other terminal programs prefer CRLF.
If it all fits, put the audio back in to my code (sorry Kye for breaking half your code!) Ideally merge into one common program, with a structure that is fairly easy to comment out things that are not needed.
I must say though that Kye's code is proving exceptionally useful. I have all these sd cards lying around that would not work with fat16 and they all work with fat32 and Kye's code. So suddenly I've got 10 extra sd cards for free. And the bootloader makes organising files so much easier.
I can see this growing too. I'm off to search for propeller text editors. I'd like to add that to the mix...
And (see photo), no evil error messages with Kye's code *grin*
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
Post Edited (Dr_Acula) : 6/6/2010 11:25:09 AM GMT
I am being incredably thick today (I'll put it downto the 7-day fortnight shift turning into a 7-day week) but I just tried to put a NASCOM.BIN onto my SD and Kye's code , modded by you sees it as a long filename NASCOM~1.BIN. I tried forcing the name to xxx.BIN but that just left me with xxx~2.BIN.
If it is so simple a problem, forgive me as I have been up in the night trying to stop the XXXXXXX flat roof from leaking.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Why did I think a new, more challenging, job was a good idea ??
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
With Kye's code as a front end that second EEPROM I put into "Clunky" is very much redundant. I might just leave it, with Nas in it, for when I can't wait for a boot route.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Why did I think a new, more challenging, job was a good idea ??
Fat32 is so convenient. I know Kye has a format routine, but sd cards already come formatted as fat32 so you don't even need to do a format. I'm using these micro sd cards that come with a free micro-to-standard adaptor. There are these USB to micro-sd adaptors on ebay for only a couple of dollars. So easy to load up with many programs/emulations all at once.
If I ever were to consider flying to the US to one of these cool Propeller meetings, this is the application I would use as I could put everything on a SD card, then it would be easy to demonstrate many types of applications on the propeller and to switch between them without having to reprogram the eeprom. Just perfect for that 'how cool is this chip' demonstration where you want to be certain that it will all work on the day.
@Toby - does that mean you have it working now? If not, how can we help?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
Although it is a slight inconvienence to have to add an EEPROM, at least you do not have to keep a track of how many times it has been written to before the main chip dies.
EDIT
I put the "Show extentions " bits on on the XP, ans it now renames ok. I had forgotten to do this after the last Format. Windows, Bless.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Why did I think a new, more challenging, job was a good idea ??
Post Edited (Toby Seckshund) : 6/6/2010 1:10:07 PM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
As for the block of .BIN execution code, I'd like to think I write better spin since then.. [noparse];)[/noparse]
I did a release of PropDOS that I don't think I ever released, but the concept is EXTREMELY handy...
Version 1.8 of PropDOS doesn't halt if the keyboard isn't present. It accepts data from both a local
keyboard and RS232, as well as outputing data on both RS232 channels and video. The same way
Sun Microsystems SPARC machines used to work if a local keyboard wasn't detected.
Perhaps we could add this to KyeDOS?
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller Feature Projects: PropellerPowered.com
Visit the: PROPELLERPOWERED SIG forum kindly hosted by Savage Circuits.
I'll be releasing alot of other interesting stuff soon. I wrote a combo keyboard and mouse driver that adds alot of new and nice features not found in the current ones today.
Oh, and the format command is just a quick format rountine for FAT32 and FAT16. The file system already has to be in place, the format rountine just deletes everything on the selected partition. I made that for the data loging people who just want to write stuff to the SD card and not stop. Then when they need to start over its easy to wipe the card.
---
Anyway, I'll be putting this code on the obex soon if no one is finding any problems. I also would encourage you to use the directory features so that you don't have to put all the files in one folder. But I do support up to 65535 files and folders in one folder.
...And about booting being slow... There's not much I can do about that, you can disable the checksum test if you want, but then ANY file could be booted from... I won't change that in my code, but you can always MOD my code.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Nyamekye,
- SandDisk 1GB micro SD.
- ZAP GLIDER 2GB. (66x)
My other SD cards mounts perfectly.
The only thing I have a quiry on is, When the first SD> prompt comes up, I always get a "Unknown command" message. The wanted cammand is happy on the second and all other times though.
I am using it on a copy of a DracBlade (with 512KB) but it is totally the same, as far as the core goes. I have a simular sort of thing on the Nascom emu, if I do not put a dummy ZZZ.NAS after the directories then it will not allow selection to be used via the up and down arrow keys.
Still if if all worked perfectly it would stop me having to think.
Thanks for this code, Kye.
Alan
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Why did I think a new, more challenging, job was a good idea ??
"Clock I/O Error"
Time chip a requirement?
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller Feature Projects: PropellerPowered.com
Visit the: PROPELLERPOWERED SIG forum kindly hosted by Savage Circuits.
'ls' command, it did not present an error. I tried the 'df fast', and 'du fast', and it did not complain.
My setup is a breadboard, with dip Prop wired up. I tried my ETT DS1307 Mini-board, but it did not respond, so I can assume that the board, or at
least the chip is dead.