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

RE: [N8VEM-S100:4226] Re: A windows based program to write a CPM3 image to a CF card for the S100 IDE board



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]
Sent: Monday, June 16, 2014 2:00 PM
To: n8vem...@googlegroups.com
Cc: mon...@vitasoft.org
Subject: Re: [N8VEM-S100:4226] Re: A windows based program to write a CPM3 image to a CF card for the S100 IDE board

 

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

On Monday, June 16, 2014 3:42:21 PM UTC-5, monahanz wrote:

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
Sent: Monday, June 16, 2014 12:44 PM
To: n8ve...@googlegroups.com
Subject: [N8VEM-S100:4226] Re: A windows based program to write a CPM3 image to a CF card for the S100 IDE board

 

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



On Monday, June 16, 2014 2:18:47 PM UTC-5, David Fry wrote:

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
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.

 

Dave



On Saturday, June 14, 2014 4:36:04 PM UTC-5, David Fry wrote:

Dave,

 

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

 

regards

 

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

 

Dave

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.

 

regards

 

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

 

Dave



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.

 

regards

 

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.

 

Dave


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?

John

 

 

--
You received this message because you are subscribed to the Google Groups "N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem-s...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.