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

       Date Joined Mar 2009 Total Posts : 61 | Posted 9/9/2009 7:03 AM (GMT -8) |   | James - I am here - have been studying code and am ready to implement disk on propIO.
To all: Here are some observations. It took me a while to figure out exactly how the hdsk controller in simulator and zicog work and I not quite happy with the way it works now. The reading of the DPB is kind of useless today and actually makes it slower. The data is hard coded on the spin side - it might as well just be hard coded in BIOS. I am thinking at making it really usable. If on open of the Disk file in FAT we can get the size then we truly can make this dynamic as intended. So if the size is 1MB you pass back DPB for 1Meg drive, if size of file is 8MB then you pass back the 8Meg DPB and you can mix and match to your heart's content. Or the first 16 bytes of sector 0 could contain this information. I have to look on how that might impact booting from the disk. The second thing is that the DMA is really nasty and will not work on a real Z80 as written. Basically what is happening (and was confusing to me initially) is that you are holding off the I/O operation until you have read the sector and transferred it to the Z80 address space. I guess this could be done by holding the /WAIT on the Z80 but is not very aesthetically pleasing. What really should be done is DMA is initiated and you poll the controller or use an interrupt to look for completion of the DMA. In the case of propIO I will be doing indir or outdir to read or write the data but will have to check when the operation to disk is complete on the read before reading or after writing. I can make this all work on the propIO but there will be slight differences in the code for the hdsk controller but they will be very minimal. As for the second generation that I am thinking of for an SBC with Z80 and 1 or 2 propellers on a single board or stacked board that will support DMA and possibly interrupts the hdsk port will have to be changed as well to look more like a real DMA device instead of holding off the I/O until the pseudo DMA is complete.
I think I have all the logic together now and a good understanding of the BIOS and the spin code that I will start implementing the propIO disk I/O. I expect it to be a little different for now but will sync up with commonality in V2. I think I don't want to disrupt the V1 ZiCog too much at this point as it is so close. The comments above are more for planning of changes in V2.
Dave | | Back to Top | | |
  |  Yoda Registered Member

       Date Joined Mar 2009 Total Posts : 61 | Posted 9/9/2009 10:30 AM (GMT -8) |   | Hi Heater:
DPB:
Yeah the speed is negligible, but would like to get rid of the hard coding along the way, doesn't have to be in V1.
DMA:
The way it is now is OK - just wanted to point it won't work on a real Z80 and we will have to address that eventually. V2 for this is fine.
Yes I am using INDIR/OUTDIR and all the I/O port logic is in PASM and I have control of the /WAIT line to throttle if necessary. I don't really want to have to do that and should not have to.
Yeah - after I get propIO basically working, I will throw together some schematics. I plan to use one prop just to control the z80 and the other to do I/O. I will probably package like a morpheus in that you can stack boards so you could do a basic z80 with one board and then plug in another board for vga/keyboard/rs232 etc.
Dave | | Back to Top | | |
  |  heater Registered Member

       Date Joined Feb 2008 Total Posts : 1832 | Posted 9/9/2009 2:25 PM (GMT -8) |   | Toby, I don't know what to say.
I have never had to use Windows to do any development work, I started professionally in 1980. I have never had a Windows computer at home. I really don't know anything about it. For 10 years or more I've been living in a Linux world. (OK apart from that short time between discovering the Propeller and the arrival of BST and HomeSpun)
So the idea of "forcing" has never occurred to me.
I do worry about the idea of the whole worlds computing capability being owned and controlled by a single company. Especially a foreign company.
I would not buy into hype about the performance of Linux over Windows or visa-versa. For general day to day work I don't think there is much to choose. For anything else, well, you have to test it for yourself, application by application.
I would also not buy into any hype about the security of any system. Security in computing, like life, is an ongoing process of awareness of the dangers facing you and the measures you can take to combat them.
So, if only out of curiosity, check out Linux/Unix. It's a long road and a different culture but could be well worth it. For many reasons besides speed or security.
Of course if you are into gaming you will probably need to hang onto Bill's apron strings for a long time to come. But that is not why we are here is it ? For me, the past is not over yet.Post Edited (heater) : 9/9/2009 10:30:31 PM GMT | | Back to Top | | |
  |  Yoda Registered Member

       Date Joined Mar 2009 Total Posts : 61 | Posted 9/9/2009 4:05 PM (GMT -8) |   | Hi James,
We will have to swap designs. I too want to control all the z80 signals with the propeller hence the reason for 2. I am thinking probably one latch and the design will support DMA at least to the lower page of memory which I think is the only place the CP/M supports anyways. I am leaning more towards SMT props as I am convinced now from my research they are no harder to solder than conventional chips. Maybe we work out something where I can put a couple of chips in the mail to get around the 25 dollars per prop if we can come up with a common design so we can work on it together. If we can get the SD speeds up I don't see a real reason for battery backed up RAM if we can boot in under a couple of seconds. A sub file can automatically repopulate the ramdisk.
I agree no eprom and if we go with a style like morpheus we can have small custom boards that plug in or stack to do the custom things we want.
I think the prop II is probably quite a ways off and initially will not be cheap so exploiting prop I is probably the way to go.
I am thinking probably 1 latch 2 props a Z80, ram, eeprom, prop Xtal and a bunch of resistors and capacitors is we all need to be a very neat z80 SBC. I guess we will probably have to throw in some bus transceivers so we can drive the bus for stacking. I guess the base board would have only 1 prop and move 1 prop to a custom board to support vga, keyboard and SD. You could replace with a custom board with latches, and max 232s, and SD for the config you want. I am counting control signals we need to control with the prop and it is going to be tight. Also with the prop supplying the clock we can play games over clocking the z80 as well. In terms of I/O trapping it is a little tight so I also control the /WAIT line as well to be safe. | | Back to Top | | |
  |  Yoda Registered Member

       Date Joined Mar 2009 Total Posts : 61 | Posted 9/9/2009 4:58 PM (GMT -8) |   | I was thinking of reducing the board size more like the size of the pockeTerm size, and using female dual inline headers for the connectors. Take a look at http://www.mikronauts.com/products/morpheus These type of connectors are much cheaper than ECB connectors. Bill claims you can stack 8 high (I am thinking at most 3).
I think the board is pretty simple and will breadboard one after I finish the propIO. Maybe I will be lucky and get it right of first PCB like Cluso does
I think the difference in price of 64K vs 512K is pretty minimal. The reason to stay with 512K is we can move to MPM with a multi serial card and then you will want the RAM.
I need to get in gear and finish the propIO so I can start playing on this new design  | | Back to Top | | |
  |  heater Registered Member

       Date Joined Feb 2008 Total Posts : 1832 | Posted 9/10/2009 1:18 AM (GMT -8) |   | Cluso: As requested the complete zicog_cpm V1 release candidate 5.5b.
Sorry for the delay but I could not resist making a couple of changes :)
1) Shrunk the CBIOSX by 512 bytes by removing redundant Altair floppy driver code. 2) Enabled autoexec functionality in CBIOSX 3) Fixed that Z80 RAM allocation bug in zicog.spin
WARNING: I may have made a few teeny tweaks to zicog and zicog_cpm I've forgotten about along the way, did not bump the version or add change notes.
As supplied this runs on PropDemo board. Requires the folowing #defines
PropDemoBoard CPU_8080 BOOT_FROM_SD
If BOOT_FROM_SD_SPIN is used instead then a Spin function will load the boot sectors from SD instead of ZIBOOT.
zipm2.dsk is now the bootable A: drive for ZiCog.
All modified CP/M 2 files, ZIBOOT, BOOTGEN, SYSCPM2, etc etc are now all included in zipm2.dsk
To rebuild CP/M 2 for ZiCog just: 1) Attach zipm2.dsk as drive I: under SIMH 2) Change to the I: drive 3) Write out MOVER.MAC, CCP.MAC, BDOS.MAC, CBIOSX.MAC, CFGCCP.LIB to the host directory 4) Issue the command "do syscpm2", must be in I: drive.
Step 3 is because syscpm2 reads the files in from the host directory, where they can be easily edited.
This will rebuild CP/M and BOOTGEN the I: drive. For me, the past is not over yet.
File Attachment : zicog_cpm_1_0_rc_5.5b.zip 676KB (application/x-zip-compressed)This file has been downloaded 20 time(s). | | Back to Top | | |
   |  Cluso99 We live onboard

       Date Joined Apr 2008 Total Posts : 2276 | Posted 9/10/2009 5:31 PM (GMT -8) |   | Heater, just thinking further. You are now so close to using what I have been doing for some time, that being locating the seperate drive files under FAT16. Then I just use that start sector address as the base for each drive..
long drive_base[10] 'use 8+2 (8 = drives A-H, 9 = Ziboot file, 10 = sector containing the offsets)
sector_number := drive_base[hdsk_drive] 'base sector for drive
For now, I am going to suggest that I write some code (maybe today) that will read the files on the FAT16 SD card and update a file called "ZICOG.PTR" which contains the data to later be loaded into drive_base[10] above, and display the start address of this file for "plugging" into your code.
Later I will write a program in PASM to do this so it can be resident in your Z80 ram space, but for now this will work with your code and be extensible later.
Your comments???
Links to other interesting threads:
| | Back to Top | | |
     |  Cluso99 We live onboard

       Date Joined Apr 2008 Total Posts : 2276 | Posted 9/11/2009 3:29 AM (GMT -8) |   | Heater: Great, go for (a)
Here is code to update an SD file "ZICOGDRV.PTR" with the pointers.
We need to change the naming, so yes lets go with
ZICOG_An.DSK, etc
where A is A=A:, B=B: .... H=H:
where n is 2=CPM2.2, 3=CPM3, M=MPM, 0=General
This way we can change on boot easier. The pointer file (can have more than one for different drive mapping)
ZICOG__n.PTR
where n is as above
We may also need a boot file or whatever. I will just wait until I see what we need first.
Links to other interesting threads:
| | Back to Top | | |
     | 849 posts in this thread. Viewing Page : | | Forum Information | Currently it is Friday, November 20, 2009 11:24 PM (GMT -8) There are a total of 393,738 posts in 55,521 threads. In the last 3 days there were 81 new threads and 700 reply posts. View Active Threads
| | Who's Online | This forum has 17687 registered members. Please welcome our newest member, mark09. 59 Guest(s), 4 Registered Member(s) are currently online. Details Dr_Acula, W9GFO, pharseid, micromang |
Forum powered by dotNetBB v2.42EC SP2.02 dotNetBB © 2000-2009 |
|
|