I have the Altair simulator running on Linux, and it appears to work
really well. What I can't figure out is how to get binary files, such
as .COM or .LBR or .ARC into the system from the outside. I realize if
I have a complete disk image I can just attach it to a disk unit
within the simulator, but what if I have only individual files that
were dowloaded via FTP?
It seems that these must be loaded into a CP/M compatible disk image
in some way before they can be used, but I can't find anything in the
FAQ or documentation describing this process or another means of
achieving the same end.
I found some utility programs that seem capable of creating CP/M disk
images, but they are all designed for Windows systems rather than
Linux or FreeBSD.
Any suggestions or pointers to suitable instructions would be most
welcome.
--Gary
There is a package called "cpmtools" which provides access to
files in CP/M disk images - and iirc it works under linux.
If your simulator supports serial ports, you can use a comms program
to transfer files into it.
If you can mount text files on the virtual reader, you could get text files
in with PIP, and binaries that fit in memory by encoding in Intel format
on the PC, then PIPing to file, LOAD to create a binary in memory,
and SAVE to save the binary.
Dave
--
dave06a@ Low-cost firmware development tools: www.dunfield.com
dunfield. Classic computer collection: www.classiccmp.org/dunfield
com Some stuff I have for sale: www.dunfield.com/sale
I think what you're looking for are the R and W commands- you should
find them in cpm2.dsk.
David
The R and W programs are the easiest method, but you can also do the
following:
Boot CP/M
press ctrl-e to get to the sim> prompt
load filename.com 100
go
then back at the A>
save nn filename.com
Where nn is the number of "pages" loaded
Your other note mentioned conversion to Intel hex. You might want to
look at Peter Miller's SRecord (srecord.sourceforge.net).
De
I will look for R and W, which I hadn't noticed in the documentation,
but now that they've been pointed out I see they really are there.
Those should do the job for me. I have lots of CP/M software, but they
are individual file images.
I did try the load and save method you describe, but without any
success.
"load filename.com 100" gets an error message "Invalid argument"
"load filename.com" runs but crashes the simulator so that it locks up
when you try to return to it.
I suppose I should explain for the benefit of the curious what I'm up
to. I have a NEC Starlet (PC-1401A-LS) notebook computer from back in
the 80s. I used to use it a lot for writing away from home. That's a
machine with a CMOS Z80 clone, CP/M 2.2 in ROM, and no disk drives,
just RAMand ROM banks and cartridges. You can get files in and out
through the serial port or built-in modem port. It's not very
practical for development due to limited file storage and screen size.
I want to put some custom applications on it, but I thought I could
more easily develop them by using the SIMH Altair as a development
environment.
Thinking "I already know CP/M" which is pretty much true, I skipped
sections in the documentation that seemed to be merely the lists of
files and utilities. Consequently, I missed the presence of some of
the utilities like R and W that are what I need to get set up.
Thanks to everyone who responded. You've been most helpful.
--Gary
Talking about READ and WRITE commands, I noticed a problem *may be a bug*.
The latest version support wildcards and path in filenames.
In order to import some files (retrieved from internet, I put them in a
directory called "vde" in the working directory) on a disk image (mounted as
C:), I used that command in my emulated CP/M 2.2 system :
-------------------------
64K CP/M Version 2.2 (SIMH ALTAIR 8800, BIOS V1.25, 2 HD, 15-Jan-07)
A>r vde\c:*.COM
READ V-2.23 (01-Mar-08) SIMH Interface V003
Read from "vde.com" and write to "C:VDE.COM".
File does not exist.
Read from "vdez.com" and write to "C:VDEZ.COM".
File does not exist.
Read from "vinst.com" and write to "C:VINST.COM".
File does not exist.
-------------------------
I seems that the program can list files, but when it tries to open them for
copying, it can't find them.
I tried the L option, so it's not a problem with lower or uppercase
filenames. I tried to rename the files, but it didn't work.
I can always copy files individualy, one at the time, but wildcards are very
usefull to copy lot of files, all at the same time.
Wrote some days ago an e-mail to Peter Schorn at the address found on his
website, but I think it's spammed...
Any Idea why READ.COM doesn't work with wildcards?
--
Emmanuel Da Piedade
http://retrocomputing.free.fr
http://apple2c.free.fr
Try
r c:\vde\*.COM
>> I seems that the program can list files, but when it tries to open
>> them for copying, it can't find them.
>> I tried the L option, so it's not a problem with lower or uppercase
>> filenames. I tried to rename the files, but it didn't work.
>> I can always copy files individualy, one at the time, but wildcards
>> are very usefull to copy lot of files, all at the same time.
>>
>> Wrote some days ago an e-mail to Peter Schorn at the address found
>> on his website, but I think it's spammed...
>>
>> Any Idea why READ.COM doesn't work with wildcards?
>
> Try
>
> r c:\vde\*.COM
I moved my files to C:\VDE, and tried that command line, but didn't work :
-------------------
A>R C:\VDE\*.COM
READ V-2.23 (01-Mar-08) SIMH Interface V003
Read from "VDE.COM" and write to "VDE.COM".
File does not exist.
Read from "VINST.COM" and write to "VINST.COM".
File does not exist.
-------------------
... because R doesn't know the destination drive.
Here is the correct syntax for command R :
-------------------
A>R
READ V-2.23 (01-Mar-08) SIMH Interface V003
Usage: READ <file name> [L]
Binary copy <file name> from host environment. L = use lower case for name.
Examples
READ bdos.mac copy BDOS.MAC to BDOS.MAC
READ bdos.mac L copy bdos.mac to BDOS.MAC
READ *.mac copy all files ending with .MAC
READ a:bdos.mac copy BDOS.MAC to A:
READ a:*.com copy all .COM files to A:
READ src\bdos.mac copy SRC\BDOS.MAC to BDOS.MAC
READ src\a:bdos.mac copy SRC\BDOS.MAC to BDOS.MAC on A:
READ src\*.mac copy all .MAC files from directory SRC
READ src\*.MAC L copy all .mac files from directory src
READ src\a:test.* copy all TEST.* files from directory SRC to A:
-------------------
For the R and W commands, the source root directory is the working directory
of the SimH Altairz80 emulator.
You can only access files with relative pathnames.
Example :
Altairz80 Working directory : D:\simh\altairz80
Files to copy : D:\FILES\*.COM
CP/M Destination Drive (virtual disk) : B:
The correct command syntax must be :
(I admit this syntax is quite confusing)
-------------------
A>R ..\..\FILES\B:*.COM
READ V-2.23 (01-Mar-08) SIMH Interface V003
Read from "VDE.COM" and write to "B:VDE.COM".
File does not exist.
Read from "VINST.COM" and write to "B:VINST.COM".
File does not exist.
-------------------
R can list files ( because it prints filenames) but can't open them.
I made a lot of testing, I can copy files using pathnames NOR wildcards.
But using pathnames AND wildcards doesn't work.
Maybe is this a windows only problem. I did not try the Linux version.
> Talking about READ and WRITE commands, I noticed a problem *may be a
> bug*. The latest version support wildcards and path in filenames.
> In order to import some files (retrieved from internet, I put them in
> a directory called "vde" in the working directory) on a disk image
> (mounted as C:), I used that command in my emulated CP/M 2.2 system :
>
[Snip]
> I seems that the program can list files, but when it tries to open
> them for copying, it can't find them.
> I tried the L option, so it's not a problem with lower or uppercase
> filenames. I tried to rename the files, but it didn't work.
> I can always copy files individualy, one at the time, but wildcards
> are very usefull to copy lot of files, all at the same time.
>
> Wrote some days ago an e-mail to Peter Schorn at the address found on
> his website, but I think it's spammed...
>
> Any Idea why READ.COM doesn't work with wildcards?
I just received an email from Peter Schorn.
He says that this is a bug related to the wildcard pseudo function under
Windows.
It will be fixed in the next release of the Altairz80 emulator.