 |
|
 |
| Parallax Forums > Public Forums > Propeller Chip > TriBladeProp PCB: Uses 3 Propeller ICs for a Single Board Computer (SBC) | Forum Quick Jump
|
   |  heater Registered Member

       Date Joined Feb 2008 Total Posts : 1832 | Posted 8/29/2009 2:38 AM (GMT -8) |   | Clusso:
In zicog_demo.spin the "hard drive" drive L: is defined as a 720K floppy as follows:
dpb_3 '720K Super I/O Floppy, for use as RAM disk ? :spt_low BYTE $24 'sectors per track (low byte) :spt_high BYTE $00 'sectors per track (high byte) :bsh BYTE $04 'data allocation Block SHift factor :blm BYTE $0F 'data allocation block mask :exm BYTE $00 'EXtent Mask :dsm_low BYTE $62 'maximum data block number (low_byte) :dsm_high BYTE $01 'maximum data block number (high_byte) :drm_low BYTE $7E 'total number of directory entries (low byte) :drm_high BYTE $00 'total number of directory entries (high byte) :al0 BYTE $C0 'determine reserved directory blocks :al1 BYTE $00 'determine reserved directory blocks :cks_low BYTE $00 'size of directory ChecK vector (low byte) :cks_high BYTE $00 'size of directory ChecK vector (high byte) :off_low BYTE $02 'number of reserved tracks (offset) (low byte) :off_high BYTE $00 'number of reserved tracks (offset) (high byte) ![]() sh BYTE $02 'Physical record SHift factor, CP/M 3 ![]() hm BYTE $03 'PHhysical record Mask, CP/M 3 :ss_low BYTE $80 'Sector Size (low byte) :ss_high BYTE $00 'Sector Size (high byte) 'N.B. SS must be 128 for CP/M 2 can be varied for CP/M 3 hard disks.
You might want to play with setting off_low and off_high to zero as we don't want boot sectors on a floppy. Then perhaps dsm_low, dsm_high to limit the size.
All those other params are related in complicated ways, best read the CP/M manual first if you want to mess with them. For me, the past is not over yet. | | Back to Top | | |
  |  heater Registered Member

       Date Joined Feb 2008 Total Posts : 1832 | Posted 8/29/2009 9:45 AM (GMT -8) |   | Not sure where all this is leading but I have created a new CBIOSX that has only 2 Altair floppies (A: and B:) and 1 hard drive (C:)
Sounds like MSDOS does it not?
ZiCog v0.10 on the Prop Demo Board Starting disks (A:B:C:) ... Passed, please wait... RAM base = 00E8 ROM base = 58E8 Starting Z80 emulation... Passed, please wait...
24K CP/M Version 2.2 (ZiCog, BIOS V1.27_Z01, 1 HD, 29-Aug-2009) A>c:ls a: 0 File(s), occupying 0K of 984K total capacity 256 directory entries and 984K bytes remain on A: A>c:ls b: Name Ext Bytes Name Ext Bytes Name Ext Bytes Name Ext Bytes LS COM 2K 1 File(s), occupying 2K of 984K total capacity 255 directory entries and 982K bytes remain on B: A>c:ls c: Name Ext Bytes Name Ext Bytes Name Ext Bytes Name Ext Bytes LS COM 4K 1 File(s), occupying 4K of 8136K total capacity 255 directory entries and 7996K bytes remain on C: A>
A floppy with this CBIOS still boots on SIMH and at least proves the point that we can easily hack the CBIOS how we like.
Continuing on this path we could define 1 Altair floppy driver, or none, and many HDs of whatever geometry we like, floppy, HD, RAM disk etc.
Next up I going to put some floppy disk geometries in our HD emulation.
If we can get HDSKBOOT working then we could dispense with the floppy driver emulation altogether. That's a bit of a problem on the DemoBoard as HDSKBOOT requires 24K RAM.
If you are OK with only 1 or two floppy drivers and the rest using the HD driver I will put that into the next release and post the CBIOS and build system to go with it. For me, the past is not over yet. | | Back to Top | | |
 |  Cluso99 We live onboard

       Date Joined Apr 2008 Total Posts : 2276 | Posted 8/29/2009 3:46 PM (GMT -8) |   |
Heater said... Next up I going to put some floppy disk geometries in our HD emulation.
If we can get HDSKBOOT working then we could dispense with the floppy driver emulation altogether. That's a bit of a problem on the DemoBoard as HDSKBOOT requires 24K RAM.
If you are OK with only 1 or two floppy drivers and the rest using the HD driver I will put that into the next release and post the CBIOS and build system to go with it.
Does a hard disk take up any more space in the BIOS than a floppy??? (e.g we have 8 floppies + 2 HD. Does this = 2 floppies + 8 HD in CPM space?)
Yes... Once we have HDSKBOOT working I see no reason that we can't have only hard drives, at least 2 of which could be defined as floppy geometries (CPM2 & CPM3). Then we can boot from either. Then a couple of 8MB drives, 1 smaller drive for RamDisk, and 1 big drive. So I see 6-8 hard drives and no actual floppies. Does this make sense???
For the DemoBoard, maybe a reduced CBIOS with only 2 hard drives, 1 being a floppy size and another 8MB hard disk. That may free up enough space for your 24KB RAM. Maybe packing is taking valuable code space???
I see no problem with a small converter program (VB6 or Python or whatever) to convert the SIMH Floppy format to SD format (137 -> 128 and packed or not). Remember, SD space is plenty and much faster than the old hard drives, so the speed gain of packing is not really necessary.
I have the RamDisk working as either a floppy or hard drive. It would be easy to force the writes out to the SD card copy also, so a huge gain could be had here, with the caveat that it is a small drive.
I have an issue with the hdp_1 (my RamDisk). I made the max data blocks parameter smaller, but CPM is not seeing this and STAT still reports the drive as 8MB. Is the CBIOS only using hdp_0 for both HD ??
Links to other interesting threads:
| | Back to Top | | |
      |  Cluso99 We live onboard

       Date Joined Apr 2008 Total Posts : 2276 | Posted 8/30/2009 3:38 AM (GMT -8) |   | |
Here is the latest ZiCog / TriBlade code. You will also require the other drive files on your Sd card - they are posted at the top of this thread.
This code compiles with bst. It has a RamDisk of 444KB and is mapped as Drive J: which is a hard disk. Unzip DRIVE_E5.DSK and copy it to HDRIVE_I.DSK on the SD card. This way you can just pip files to it as an 8MB hard drive I: You will also need to copy DSKBOOT_.ROM on the SD card. WARNING: The RamDisk size is not being limited in size by CPM like it should - it is being missreported as an 8MB drive.
To test the ramdisk, do
A>DIR J:
A>PIP J:=MBASIC.COM
A>DIR J:
To copy to the I: drive, do
A>PIP I:=*.*
A>DIR I:
Links to other interesting threads:
Post Edited (Cluso99) : 8/30/2009 11:43:19 AM GMT File Attachment : zicog010_demo_rr107-bst-archive-090830-205016.zip 67KB (application/x-zip-compressed) This file has been downloaded 20 time(s). File Attachment : DSKBOOT_.ROM 0KB (application/octet-stream) This file has been downloaded 15 time(s). File Attachment : DRIVE_E5.zip 32KB (application/x-zip-compressed) This file has been downloaded 19 time(s). | | Back to Top | | |
         |  Cluso99 We live onboard

       Date Joined Apr 2008 Total Posts : 2276 | Posted 8/30/2009 6:03 AM (GMT -8) |   | Toby:
There is no need for a bat file as bst has an integrated editor, compiler including listing, downloader and terminal program, although the downloader and terminal program doesn't work for me on Vista - cannot find the prop serial (USB) port. bst can also zip up a package of source files.
So here is how I compile... Open in this order... * bst * PropTool * PropTerminal Then do the following... * PropTerminal - under options, click on CR with Auto LF. Do this twice as there is a bug, first time places a tick, second removes it - you need to do this each time you open PropTerm (not reclcking on it). Now minimise PropTerm - this is how it releases the port for downloading.
Now to edit/compile/load/test do (and repeat) the following.... * bst - click on bst and start a new project called ZiCog_demo_rr107. Then load the file ZiCog_demo_rr107.spin. Now compile the program and save the binary. A listing is available - a little trick, open the listing window before you compile, then reopen the listing window after the compile and you will see the listing. * PropTool - click on PropTool and open the binary and download it to the prop ram. As soon as it loads quickly... * ProTerm - click on PropTerm. In about 3 seconds it will start showing the ZiCog loading. I use 115,200 baud without problems. IIRC it takes about 20 seconds to get to the A> prompt. When done, don't forget to minimise or you will not be able to download the code (cannot find the serial port).
Now for my hardware. I am using a new TriBlade. I have built the power supply, the propplug section and just Blade #2 with only 1 512KB SRAM in U23. There are instructions for this to get the pcb completed to this point at the beginning of this thread. Do not forget the OE modification. Now to get it all to work, just connect 3 (or 4) wires/cables from J21 to J92 (G is not required as it is already connected). You can use 4 pin headers and a cable for this. I have some RS232 male to male pins that I use for jumpers. Later, you may need to use the PropPlug section as standalone, so I suggest you do not solder wires here. You can solder both 512KB SRAMs in U23 & U24 but ensure you do the OE mod to both SRAMs.
If you have any questions, please ask.
I expect over the next few days we will get to a full release and then I will re-release everything.
@Brad: May I suggest a link to your website and thread for bst in your signature?? Links to other interesting threads:
| | Back to Top | | |
    | 848 posts in this thread. Viewing Page : | | Forum Information | Currently it is Friday, November 20, 2009 10:22 PM (GMT -8) There are a total of 393,733 posts in 55,521 threads. In the last 3 days there were 82 new threads and 703 reply posts. View Active Threads
| | Who's Online | This forum has 17687 registered members. Please welcome our newest member, mark09. 50 Guest(s), 5 Registered Member(s) are currently online. Details Chris Savage (Parallax), benty, Todd Chapman, micromang, Highlandtinker |
Forum powered by dotNetBB v2.42EC SP2.02 dotNetBB © 2000-2009 |
|
|