Transfer files to/from N* CPM image?
dave09 at dunfield.com
Wed Apr 21 14:54:07 CDT 2010
> > I've made two additions to my HORIZON support package which should help you
> > out:
> > 1) I've added a small 'CPM' utility which takes a file on your PC and converts
> > it into an Intel HEX format download file origined at address 0100 (the CP/M
> > TPA) and padded to a multiple of 256 bytes with 0x1A (EOF) characters.
> > - you can then boot CP/M, halt the simulation, 'L'oad this file, resume
> > simulation and 'SAVE' the TPA to a CP/M file, effectively importing the file
> > to the CP/M disk. This method is very fast and easy, but is limited to files
> > the size of your CP/M TPA or less.
> > 2) I've added a "Reader" option to the simulator Mount command, which mounts a
> > file to be read as if it were typed at the keyboard (normally the console).
> > When the file hits EOF it is unmounted and normal keyboard operation resumes.
> > You can use this like you would the paper tape reader of an ASR33 - just
> > PIP CON: into the file you want, then mount the file on the Reader (which
> > automatically starts it) - after it is finished, you must press ^Z to send
> > the EOF character from the keyboard, which will cause PIP to close the file.
> > The updated package has been uploaded to the site.
> > Hope this works for you.
> Wow, thanks, Dave. I will give that a try.
I may have discovered another source of your confusion ... this won't help with
the CP/M BIOS access issue, however I decided to run through all the options this
morning and make sure the simulator was working as advertised, and I discovered
some inconsistancies, documentation errors, and errors in the sample .CMD files
which show how to configure I/O devices ... I changed the simulator a while back
to allow more I/O devices to be configured and apparently only partially updated
the support files.... my bad!
So I spent a couple of hours cleaning everything up and testing it, and have just
uploaded a revised version of the simulator to the web site - sorry to make you
download it again.
The changes are:
- I've changed I/O definitions to be simpler and more consistant, in particular
you no longer specify a PC I/O address for virtual devices which don't have a
physical address on the PC, and I rearranged some definitions so that the
ordering of the TXready and RXready bit toggles is consistant for all defs.
- I expanded the "Reader" feature mentioned above, which now shows as
"Console input" and "Console output" - "Console input" works as described
above (enters the file as if typed at the keyboard), and "Console output"
gives you the ability to capture the simulator console output into a PC
file (Which it will do until you manually close it via the mount menu).
NOTE that in this case "console" refers to the PC keyboard/video, which is
*usually* the CP/M console under the simulator, but this can be reconfigured
(either in CP/M or by simulator I/O definitions) - the simulator doesn't
actually know what CP/M considers "the console" - it just has the
keyboard/video attached to a particular virtual 8251 device in it's default
- I changed the default definition for the secondary 8251 status to indicate
the availability to a mounted output file via the DSR bit instead of TXready
- now TXready always shows "ready". This means that you can happily write to
the secondary serial port whether or not an output file is mounted (if not,
the output is discarded). This resolves a confusing issue where some disks
which output to the secondary serial port at boot (NorthStar CP/M for one)
appeared to hang until you mounted an output file. If you need the former
behaviour (output file indicated by TXready) you can still have it by
providing your own I/O definition(s).
- I've corrected the README, Online help and sample .CMD files to fix several
- I have tested all of the above and it appears to work and be (at least
mostly :-) correct.
dave09 (at) Dave Dunfield
dunfield (dot) Firmware development services & tools: www.dunfield.com
com Classic Computers: http://www.classiccmp.org/dunfield/
More information about the cctech