May be a bad card Dave, but be aware sometimes CPM gets confused with MSDOS used/formatted disks. Doing an ERA X:*.* does not always work. Just FYI, when I want to quickly and safely mirror copy one disk across to another I use MYIDE, select the second drive (my case F:). Use the F menu to format the complete drive. Reboot, PIP F:=A:*.*[RV] If other user areas, go to them too. Then select the F: drive and use HSYSGEN to put the loader on the boot sectors of the F: drive. Remember there can be sys files, so you need the [R] option. There are other ways to do this but this is fastest, most reliable I have had CF cards that give PIP (usually verify) errors if not formatted first. John From: n8vem...@googlegroups.com [mailto:n8vem...@googlegroups.com] On Behalf Of yoda Found the problem - it was a bad CF card - can't believe I spent all this time on a bad CF card. Anyways it works now - I will be doing some more testing and smoothing out the process. Dave I suppose! If you are having problems however Dave I wonder ! John From: n8ve...@googlegroups.com [mailto:n8ve...@googlegroups.com] On Behalf Of yoda I think the easiest way to do this is either make 2 image files - one for serial and one for propeller. They can copy that to a CF card and get going. It will also allow them to take the image and add more files with cpmtools. Let's say for example they have a bunch of .com files they would like to add, then they would put all the .com files in a directory with the image file say it is called s100ide.dsk, then they would do a cpmcfs -f s100ide s100ide.dsk *.COM 0: - that will copy all the .com files to the image and then they write the image to the CF card and now they have all the new files available. This will be easy to do - I will write up once I get it all to work - still having issues. Dave
OK, just thinking out loud again! I’m trying to get to the simplest possible bootable system for a real beginner. I know it’s obvious to many of us how to use various image tools etc. What I’m trying to get to, is for a person to simply pop a CF card into our IDE board, reset, and up comes CPM3. What are the minimum hurdles he/she has to go through to do that. Think back, to the first time you did this stuff. When you think about it the only variable initially is the console I/O. If you go with our Propeller driven board then that’s even not a big variable since it has all kinds of status in/out jumper options. I realize it’s not for everybody, some like true serial etc. How about this:- We make a CPM3 CF card for a 2 disk system, non-banked, basic system (console I/O only). It contains CPM3.SYS, CCP.COM, PIP and a few other essentials. The only thing special about this “one-of” CF card is that the sector/location on the card of the console I/O routine is flagged by a unique string of bytes, say 20 should do it. All one has to do then, is “one time only” locate where this string is on the CF card and either with a MDOS program hand insert the few bytes required to set the console In/Out port (Z80 C register) number and status bits or at a higher level write a C type program to do so. The CPM BIOS only has one location of Console IO, actually 2 outputs, one input, with the loader, but it should be easy to do. Such a CF card we can supply to real beginners. They would be airborne immediately. John From: n8ve...@googlegroups.com [mailto:n8ve...@googlegroups.com] On Behalf Of yoda Once we have the cpmtools working correctly it is much easier to build the complete image or even modify it on the PC. You can use cpmcp to copy any file you want into the image. Then for the Windoze people you can use an open source utility like Windd to copy the disk image to the CF. You don't have to mess around with Xmodem or MSDOS partitions, etc. It is really simple. And your solution does not address how to get things on the B drive. I will write this up when I have it working and the users can decide whether it is simple enough - it is very similar to what is done on the N8VEM branch of this group and it has worked well. Dave
How about we split the problem into two parts. First (using the Altair Simulator) we make a file that contains all the sectors needed to boot up a non-banked basic CPM system. The console I/O can be done by “poking” a few bytes into the image that contains the status & data ports, the mask and value of bit(s) when for when a character is at the keyboard (likewise for ready to display on console). That’s it. This was the way old CPM programs did it for things like XMODEM etc. The “image” need only contain the CPM3.SYS and CCP.COM files as well. Other files can be on the B: drive and can be passed around freely, loaded into RAM, saved, whatever. This core “program” can be tested by people that have their IDE/CPM system up and running. Let’s not get hung up on the holes issue. As I said the only reason I had holes was because I wanted my initial CPM.SYS to work with a Seagate Hard disk and the CF cards. That said I do seem to remember some of these CF cards had different track/sector numbers. Have to think about that! The second step is (under windows) writing the data to a blank CF card. There are a couple of ways this could be done. It could be a MSDOS second partition way inside the CF card away from CPM and the monitor picks it off (one time only) from there and a CPM SYSGEN like program writes a traditional disk. Or alternatively a windows based program (probably C based) just forces the data on to a blank formatted disk. Remember CPM formatted sectors are different from MSDOS ones. CPM uses 0’s, DOS uses E5’s or something like that. In this day and age there are probably a number of ways to do the second step. We can call in one of the MSDOS Google Groups if need be. John From: yoda [mailto:yo...@r2d2.org] John Sorry that is not my goal. I think building the 2 files with altairz80 is straight forward enough. It is building the image for CP/M that is generally difficult especially if you want a set of working files on the disk. It was virtually impossible with the holes in the disk which I think we may now have solved. If you want to have a cpmldr and cpm3.sys for serial and propeller then say copy one set to cpmldr.com and cpm3.sys we can make that very easy. It is not quite as simple as you think of poking bytes (if you need to initialize the serial I/O port for example). The current ROMs don't need to be modified because they will load the first 12 sectors in memory and go (no holes involved for track 0). Dave Guys, remember in the end we need an idiot proof windows program that will prepare a CF disk prepared on a windows PC that asks for only the console status & data port, status bit true/false and boots up a non-banked CPM3 (with say, 60K of RAM) when the first sector is placed in RAM at 80H by a monitor (or by hand). I volunteer to be the idiot tester! John From: n8ve...@googlegroups.com [mailto:n8ve...@googlegroups.com] On Behalf Of yoda Hi David Looks like progress - Yes it should be a BANKED CPM image. I will try again tonight with your debug CPMLDR - I have not been able to get as far as you have. Is your LBA routine now with the -1 or not?. I will look at my files again and make sure they are setup for banked - though I had just re-downloaded John's file for banked version and changed to use serial I/O and added your writelba routine. I did not check if all the variables were set right. Dave
Hi Dave, currently looking at your disk image, layout looks fine. I have placed your image onto a CF card and over wrote your CPMLDR.COM with one of mine that logs the sectors read to the screen for troubleshooting. I can see the directory is read as sector 40H and CPM3.SYS starts to load starting at sector 80H and loads 35 sectors in total matching the directory entry of 9 allocation units. I have a question, the screenshot below would seen to suggest that this image is a 'BANKED' cpm image, yet your HLDRBIOS.ASM has the Banked variable set to 'false', which is it ? next question, have you added the LBA section in HIDE.ASM for CPM3.SYS and removed the offset correction ? regards David Fry
... -- |