[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A windows based program to write a CPM3 image to a CF card for the S100 IDE board

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 ?
David Fry
On Sunday, June 15, 2014 1:46:12 AM UTC+1, yoda wrote:
Hi David

Had too many diskdefs and there was one in the directory where I was doing things with the wrong format.  The dummy.file I had created by dd 512 bytes from a text file so that is why it was confusing so I made one with just e5 bytes in it.  I tried to remove the dec 1 instruction but still no working.  I still get a BDOS Err, Perm.  when it jumps to LBA 0x40.  Here is the new disk and HLDRBIOS.ASM - see if you can figure out what is wrong or how to load it.  If we can get this disk to load and work - it is really simple to make these and you can load whatever you want on them.


On Saturday, June 14, 2014 4:36:04 PM UTC-5, David Fry wrote:
had a quick look at the disk image you uploaded and noted a couple of things
1) sector 0 seems to contain text notes with the start of CPMLDR.COM beginning at sector 1 as the first byte is 31H as you would expect.
2) the directory table entries seem to start at sector 61 ?? and not at sector 64 where we would expect track 1 to start.
A couple of thoughts, if the position of CPMLDR.COM is correct then we can take out the -1 sector correction from the LBA routine and move all the sectors up one position leaving sector 0 blank, this will also have the effect of moving the directory table upto sector 40H where you expected to see it (and in hindsight I agree)
whats puzzling me at the moment is why is the directory table in sector 61 when you created the image with 64 sec/trk.
does cpmtools support 64 sector/track ? is seems to have set the image to 61 sectors/track
David Fry

On Saturday, June 14, 2014 9:35:29 PM UTC+1, yoda wrote:
Sorry for previous  - web posted before I was ready

The diskdefs are:

diskdef s100ide
     seclen 512
     tracks  256
     sectrck 64
     blocksize 2048
     skew    0
     boottrk 1

I think the problem is the -1 but I am not sure - Track 1 sector 1 should be 0x40 not 0x3F but I am not sure - tried commenting out the dec 1 but that did not seem to help either.  I have included my hldrbios.asm as well


On Saturday, June 14, 2014 2:13:22 PM UTC-5, David Fry wrote:
Hi Dave,
thats right on a 64 sector border, this may be where my -1 or +1 sector correction may be wrong.
David Fry
On Saturday, June 14, 2014 8:00:09 PM UTC+1, yoda wrote:
Hi David

Sounds like a plan.  I have made one and when it boots with debug CPMLDR.COM reads LBA 3F and 40 then stops - that is where I am at.  Let me dig up an image and  I will post here for you to look - at - think it is pretty close


On Saturday, June 14, 2014 1:48:33 PM UTC-5, David Fry wrote:
Hi Dave,
If we can get the 'No holes' CF card layout to be compliant with cpmtool then that has to be the way to go as it will make life much easier.
As I said in a previous post, I welcome this 'no holes' lba to be picked apart to get it right before we go too far down the road and find problems later.
I'm a little busy at the moment with various other aspects of my S100 system with the little time I have to spend on it,(summer is coming after all :-) )
If you can knock together a quick image with a CPMLDR.COM and CPM3.SYS (doesnt matter what system it's for) then we could take a look to see how the layout differs.
My layout was derived from where CPMLDR was looking to find data.
David Fry
On Saturday, June 14, 2014 7:30:00 PM UTC+1, yoda wrote:
why not take a look at the cpmtools set.  It has a program called mkfs.cpm that will make a file as a cpm filesystem.  You can specify a boot image which it will lay down in the boot sectors.  You can then use cpmcp to copy files to the cpm filesystem.  Then you can take the file and write it block by block to the CF card.  I did this originally to get my system up and running.  I actually used dd (a utility on linux or Mac) to write it to the CF.  I actually wrote a little script to take the file image and add the "holes" back in so it would work with your BIOS.  I went back and tried it with the no hole version and had some difficulties that I have not straightened out yet.  I don't know if I did something wrong or David Fry's LBA routine is not doing what I thought it did.  I have not gone back and investigated yet but with David's help we can probably probably get this resolved.  The procedure  would go like this:

1) mkfs.cpm -f s100ide -b dummy.file -b CPMLDR.COM s100.dsk

where s100ide is an entry in diskdefs that specifies the geometry of the drive
dummy.file is a 512 byte empty file to get CPMLDR.COM to be in the correct sector start.
s100.dsk is the file that represent the disk image.

2) cpmcp -f s100ide s100.dsk CPM3.SYS 0:
    cpmcp -f s100ide s100.dsk <cpm file> 0:     copies <cpm file> to user area 0 on disk image
    continue until you have all the files you want on the disk

3) use a disk image write tool (dd on Linux or Mac) to write s100.dsk to CF card

Here is a link to the cpmtools:  http://www.moria.de/~michael/cpmtools/   These tools run on Windoze for those that use that OS and easily compiled for Mac or Linux.

This is the way I am building my images for CP/M 68K that I am currently working on.

I think getting the diskdefs set write and a good writeLBA routine and we should be able to get the procedure down.


On Saturday, June 14, 2014 11:31:49 AM UTC-5, monahanz wrote:

Guys, it’s great to see all the progress and uptake this simple little IDE board has generated.  Thomas in particular congratulations on putting so much time and effort into “hammering into shape” the process for first time installs.  It helps tremendously but I think it will still be difficult for some people to do.   We all should remember how it was when we first started!


I’m wondering if somebody out there could spend the time writing a PC/MSDOS based program to setup a CF card for first time users.  If we agree the IDE board ports start at 30H, the only variable would be the console I/O.  This could be either spliced into the final disk image with the above program (leaving room in the base code with NOP’s) or by answering a Q&A session and inserting code like the old XMODEM programs did.  A CF card is laid down as Dave describes and is checked out. Once the image is laid down it can be dumped sector for sector any  CF card (no holes of course).  The image can even include a few CPM programs.  Probably best to start with a non-banked CPM3 image.  This program would run on a standard PC, format the CF card and write the image sector by sector.  Not sure if Windows 7,8 allows you to do that easily but there must be a way.


This would allow anybody not as sophisticated as some of us, to get going right away and allow them to write more elaborate CPM3.SYS files that include a FDC, printer etc. in the BIOS for their own hardware.

I think something like this would be a tremendous asset for first time S100 users.


Any volunteers?




Attachment: Z80_cpmboot1.jpg
Description: image/pjpeg