1-Jun-81 22:18:00,3013;000000000000 Date: 2 Jun 1981 (Tuesday) 0018-EDT From: PLATTS at WHARTON-10 (Steve Platt) To: devon at MIT-MC cc: info-cpm at MIT-AI Subject: details of search first/next FILE SEARCHING in CP/M Ok, I'm using an old listing of a slightly modified BDOS from CP/M 1.4, so much of the following might not be exactly the same for newer CP/M's. But it may give you an idea of what to look for. CP/M has two calls to search for ambiguous file names (AFN's) in a directory structure: A <- Bdos(17,fcbaddr) ; find first A <- Bdos(18,fcbaddr) ; find next Some notes on these: Each returns a value, that value mod 4 being the index into the data in the current DMA area of the found file. (As such, any data in the current DMA area is smashed.) (Also, DMAaddr + (RA mod 4)*32 gives the fcb of the found file.) Finally, it should be noted that the extent# is also checked -- when using these calls, stick a 00 there if you only want the *first* occurrance of each file; however, if you are writing a SIZE function of some sort, you'll want a "?" there (match any extent). ** implementation ** As you may have guessed, BDOS is essentially a router -- it takes the function code you pass it and jumps to an address in a table. For the version I have, the code for 17 and 18 is roughly: call17: call selfil ;all-purpose file finder mvi c,13 ;counter for #chs to check - 1(byte 0) + ; 8(name) + 3(typ) + 1(ext) call srcdir ;saves passed DE as FCBTMP, then calls SRCNXT. ;also in general, init's the search process. ret call18: de <- fcbtmp ;was set by prev call to 17, remember? essentially, ; this means that it really doesn't matter what ;you pass it in DE. I have never tried this out... call selfil ;again, set up the file-finder (insures logged-in ;drive, etc.) call srcnxt ret srcnxt: ;just find the next file using the FCB sent to it. (remember ;that for bdos(18), it'll still use the one passed from ;bdos(17). Now the documentation I'm looking at (TPM doc. *not* CP/M doc.!) says "No other intermediate TPM calls are allowed between function 17 and 18 or 18 and the next call on 18.", however, the only problems appear to be with overlapping disk functions. (You may screw up communication between 17 and 18 if you do.) In fact, if you are very careful, almost anything may be do-able -- just keep a seperate DMA area for whenever you call 17 or 18, and don't play with the FCB you are comparing against. Upon thought, I can think of calls to almost every disk primitive: consider ERA *.* for deletion while searching, PIP B:=A:*.* for reading and writing, as well as opening/closing, etc. Again, just keep the 17/18 data completely seperate ! (and that includes copying any FCB's you find for use to another location...) If you play with any of this and find anything out (definite) please confirm the above. Again, I am not sure how CP/M 2.2 treats this. ---Steve 2-Jun-81 00:42:00,860;000000000000 Date: Tuesday, 2 June 1981 00:42-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: New version of SD directory program SD has been updated, as of 6/1/81. File now has version number in the name, instead of creation date. Remote CP/M operators have discussed file names and feel version numbers are better, especially when crossing from one year into the next. The new files on MC are: MC:CPM;SD COM and MC:CPM;SD-12 ASM The new version will now print on your list device when you do CTL-P. It has a shell sort now, instead of the old bubble sort. It's much faster, especially when being used on a disk with many names in the directory. Special assembly-time options allow for direct console I/O for remote CP/M systems (to avoid echoing line-noise induced garbage characters during printing). 2-Jun-81 01:42:00,391;000000000000 Date: Tuesday, 2 June 1981 01:42-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: New version of XMODEM MC:CPM;XMODEM 43ASM is an updated version of XMODEM.ASM. It differs from XMODEM ver 4.2 only in a correction for a missing conditional assembly which affected assembly when the DC hayes modem was selected as the choice of the modem being used. 3-Jun-81 01:06:00,389;000000000000 Date: Wednesday, 3 June 1981 01:06-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: Correction to new SD program name Sorry I transposed the numbers in my last message about the new SD program. The new version is 2.1. The file is on MC as MC:CPM;SD-21 ASM as I mentioned before MC:CPM;SD COM is also available for those with LMODEM available. 3-Jun-81 01:58:00,554;000000000000 Date: Wednesday, 3 June 1981 01:58-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: Rick Conn's HELP program and files MC:CPM now has the following available: MC:CPM;HELP COM ;the program for displaying the help files MC:CPM;HELP HLP ;a help file explaining HELP itself MC:CPM;MAC HLP ;explains about the CP/M 'MAC' assembler MC:CPM;MASM HLP ;explains about the Microsoft MACRO-80 assembler MC:CPM;RESOURCE HLP ;explains Ward Christensen's disassembler MC:CPM;DU-V75 HLP ;explains the disk utility 3-Jun-81 02:01:00,289;000000000000 Date: Wednesday, 3 June 1981 02:01-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: Resource HELP file Correction on Resource HELP file. Name on MC is MC:CPM;RESOUR HLP (not enough characters available in the filename to spell it out entirely) 3-Jun-81 21:49:00,780;000000000000 Date: Wednesday, 3 June 1981 21:49-MDT From: Frank J. Wancho To: INFO-CPM at MIT-MC cc: ELLEN at MIT-MC, JPG at MIT-MC Subject: Housecleaning time Due to the limited space available on MC, I am about to do some general file-flushing of the 108 files in MC:CPM; which haven't been accessed in the last month or so. The alternate temporary online home for all of the files is [DARCOM-KA], which can be accessed with the usual ANONYMOUS FTP login - sorry, no guest accounts available there. So, either get those files you need now, or get them off of the KA later, and hope someone has written a MODEM program for your site so you can download those 8-bit COM files... HEX files will no longer be maintained at either site. --Frank 4-Jun-81 20:34:00,887;000000000000 Date: Thursday, 4 June 1981 20:34-MDT From: Ronald G. Fowler To: BLUE at MIT-MC cc: W8SDZ at MIT-MC, FJW at MIT-MC, INFO-CPM at MIT-MC Subject: RESETING DRIVES Bill, you CAN reset individual drives if you're using CPM2; there is a function described in a DR field update that was left out of the CPM Interface guide. It is function 25: RESET DRIVE. You call function 25 with a vector of drives to be reset in DE reg...ie, a 1 indicates reset requested. The least sig- nificant bit represents drive A. I don't believe anything is returned to indicate success/failure in CPM; MPM returns a 0 if no process is accessing the requested drive, 0FFH otherwise. Keith: can you point Bill to the file here on MC? I believe you sent a note down to info-cpm that you had downloaded the file, but I have lost track of what it's name is. ---Ron 5-Jun-81 03:40:00,247;000000000000 Date: Friday, 5 June 1981 03:40-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: SD directory program updated SD version 2.2 has just been released. It is on MC as MC:CPM;SD-22 ASM and MC:CPM;SD-22 COM 5-Jun-81 23:02:00,1013;000000000000 Date: Friday, 5 June 1981 23:02-MDT From: Frank J. Wancho To: INFO-APPLE at MIT-MC cc: INFO-CPM at MIT-MC Subject: APPLE MODEM Programs Keith Petersen (W8SDZ@MC) has uploaded the following files for those of you with the APPLE II with the Microsoft Z80 cards and CP/M. We suggest that you capture MC:CPM;APBOOT MAC (or MC:CPM;APMBOT ASM), assemble it, and use it with :LMODEM on MC to get MC:CPM;CRCK COM and the MC:CPM;APMODM 21ASM or MC:CPM;APMODM 2ASM. Assemble either APMODM and you can throw away APBOOT. From there you can use APMODM to grab whatever other files of interest from MC:CPM; or the various Remote CP/M systems around the country (see MC:CPM;RCP/M NOS and MC:CPM;RCP/M INFO for more details). MC:CPM; 1 APBOOT MAC 0 +235 1 APBYE ASM 4 +764 1 APHIGH MEMASM 0 +310 14 APMBOT ASM 1 +500 1 APMODM 21ASM 7 +550 1 APMODM 2ASM 7 +832 1 APMODM DOC 0 +908 1 APXMOD ASM 4 +848 --Frank 6-Jun-81 17:20:00,379;000000000000 Date: 6 Jun 1981 (Saturday) 1920-EDT From: PLATTS at WHARTON-10 (Steve Platt) To: info-cpm at MIT-AI Subject: Microsoft FTN problem -- Y/N questions Did anyone ever find a solution to Frank's problem in getting FTN to correctly interpret a Y/N answer to a question? I've been playing with it, it's reading the vals correctly, just not processing the Y. -Steve 7-Jun-81 01:33:00,441;000000000000 Date: Sunday, 7 June 1981 01:33-MDT From: EHUANG at MIT-AI To: gz at MIT-MC cc: INFO-CPM at MIT-AI Hi, What is the difference between these Remote CP/M Systems BBSs and the mc:cpm;bye asm program? thanks. ps: will bye.asm work if I remove all the PMMI,SUPERBRAIN,and DCHAYES codes and put in my own? I'm using Relocated CP/M 1.4 with a CAT hooked up by a RS-232 port (this i/o interface is simple to use -- only 3 ports) 7-Jun-81 20:14:00,818;000000000000 Date: Sunday, 7 June 1981 20:14-MDT From: EHUANG at MIT-AI To: INFO-CPM at MIT-AI cc: PLK at MIT-AI WIll BYE.ASM work as is? I mean that BYE.ASM doesnt need other porgrams from MC:CPM;. What does label DEST do? What should I do about it? I dont really understand that. **** SInce there are lots of users who run relocated CP/M, could you in future programs put in a offset for system calls and pointers such as CALL BDOS,JP 0000H,references to 80H,and FCB,etc... example: at start of program -- Q EQU 4200H (for relocated systems) ;Q EQU 0H (for normal systems) ORG 100H+Q BDOS EQU 05H+Q etc.. It took me a WHOLE afternoon to change all the stuff! I'm not complaining but just making a suggestion for future programs to be placed in MC:CPM; Thank you very much, Edward Huang 7-Jun-81 21:28:00,624;000000000000 Date: Sunday, 7 June 1981 21:28-MDT From: ehuang at MIT-AI To: INFO-CPM at MIT-AI cc: W8SDZ at MIT-AI, PLK at MIT-AI Big deal! BYE.ASM is SO big (50,000 bytes) that after a whole afternoon of removing every single COND for PMMI,SUPERB,and DCHAYES it still wont load into SCRIPSIT (word processor) and the edited file is now 37,000 bytes...looks like I have to finish ALL editing using EMACS and then download directly to CP/M ASM. ANyone got this problem and any ideas on cutting down the size? Hey,any of you tried editing a 50K file (bye.asm) on a 64K CP/M system?? ran out of memory?? Edward Huang 7-Jun-81 22:01:00,161;000000000000 Date: Sunday, 7 June 1981 22:01-MDT From: Patrick L. Harvey To: INFO-CPM at MIT-MC Please take me off the list...I'm drowning. Thanks 8-Jun-81 00:15:00,1018;000000000000 Date: Monday, 8 June 1981 00:15-MDT From: Jonathan W. Platt To: INFO-CPM at MIT-MC Subject: Editing large CP/M files Those of you who are having problems (EHUANG, etc.) editing large files on their CP/M system aught to look into "WorkStar (tm)" by MicroPro. They have very extensive interfacing procedures (if not overly so) to hook up to most any display and printer. A daisy wheel type incremental printer is what it seems best at (ie. I have an NEC 5520 and it does magical things with it). You can hook Wordstar up to your screen if it is memory mapped (makes things 20 times faster). Anyway, It pipelines the file you are editing so the file size is limited to disk space available. If you keep WordStar on one disk (it takes up that much) and use the other disk for editing, there are almost no problems with size. Of course, if you only have one floppy drive (double density at least) then you really should have two anyway; anything else is cretinous... 8-Jun-81 00:18:00,410;000000000000 Date: Monday, 8 June 1981 00:18-MDT From: EHUANG at MIT-AI To: INFO-CPM at MIT-AI I thanks to all of you who have FLOODED me with all kinds of suggestions! esp all of them tell me to buy $400 WOrdstar! What I'm doing is use EMACS,then download to CP/M and ASM it and run it..that should work.. Thanks again, Edward Huang ps: thanks esp to MADDOX,PLK,and another user who has a long uname@bbnb 8-Jun-81 00:19:00,231;000000000000 Date: Monday, 8 June 1981 00:19-MDT From: Jonathan W. Platt To: INFO-CPM at MIT-MC Subject: Oops... I see the idea of WordStar has already come up so my next message in your mail is useless...**sigh** 8-Jun-81 00:25:00,539;000000000000 Date: Monday, 8 June 1981 00:25-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: Editing large files on CP/M You don't need to buyy WordStar to edit large files. The editor that comes with CP/M (ED.COM) will do it. You bring the file into the edit buffer, edit that section, write it out and append more. If the file is too large for the resultant output file to fit on the same disk, use the command which tells ED.COM to put the new edited file on the other drive.... ED myfile.asm B: 8-Jun-81 00:31:00,1060;000000000000 Date: Monday, 8 June 1981 00:31-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: Using DC Hayes modem at 450 baud I picked up the following message from a remote CP/M system recently: According to the supplied literature of the D.C.Hayes MicroModem-100, it cannot be operated above 300 baud. The limiting factor is not the Uart or it clock frequency but the Microcoupler itself (according to its designer). Not accepting that their design was such that its upper limit was no higher than 300 I decided to experiment. If you replace the diodes that determine the 12-bit divider for the clock frequency to a decimal 17 - 00010001 - (I used a 16-pin socket and a removeable header), you can squeeze out 450 Baud. I couldn't get 600 baud, but the upper limit probably varies from unit to unit. If you wish you had a PMMI, give this a try. Anything is better than 300. Bob Loesch Bel Air, Md. (301) 879-7135 8-Jun-81 00:39:00,352;000000000000 Date: Monday, 8 June 1981 00:39-MDT From: Jonathan W. Platt To: INFO-CPM at MIT-MC Subject: CP/M's ED.COM and where it should be put... For those who cannot afford anything else, I guess ED is the only thing to use. But those who can afford a micro-computer should be able to get something good as opposed to ... that. 8-Jun-81 07:19:00,3862;000000000000 Date: Monday, 8 June 1981 07:19-MDT From: AFITGORDON at BBNB To: info-cpm at MC cc: [Conn]: at BBNB Subject: An Editor Philosophy Hi, Everyone, The recent discussions over the weekend have been quite enjoyable and interesting, and I have been noting an inordinate (my opinion, of course) amount of interest and enthusiasm for the Word Star text editor/formatter. What I wanted to bring up in this note is a question of philosophy. I currently use both Word Master (which runs for around $150) and Word Star (which runs for around $400+), and have edited files as large as 170K with each (to emphasize that size is no problem). Over a period of time and after some experimentation, a basic philosophy has developed which may be of interest -- 1. For the largest extent of my work (software development), Word Master is generally preferred 2. When document preparation is the objective, Word Star is DEFINITELY preferred Why? User interaction is the key. My basic objective in using an editor is to compose the text as quickly as possible and move on to the assembly or compilation. Although Word Star is admittedly phenomenal in its capabilities, for strict text work with no formatting, Word Master exhibits the following traits: 1. WM is generaly FASTER (no overlays to load, no drastic refreshing of screen displays during global and local substitutions, extreme ease of use in the video mode [there are only 7 commands I really use frequently]) 2. WM exhibits capabilities not found in WS [counterpoint -- WS exhibits many capabilities not found in WM]; the WM extensions, such as macro command definition and execution and the ED subset (I actually like ED, being that it was my first CP/M editor) which lends itself to repetative operations which don't waste my time by refreshing the screen each time one is performed or can be made to just reprint the edited or modified line and then go on 3. WM provides very little overhead (10K editor, 4K HELP file) and, aside from saving disk space, provides a larger memory buffer than WS (is this true???) that decreases the frequency of disk accesses In sum, the core of what I am trying to say is to not view WS as a panacea; I feel that the editor should be selected for the intended application. I also use EDIT-80, and have selected it for use by remote users who dial into my system because it is (1) disk- based, (2) NOT terminal dependent, (3) relatively responsive, and (4) provides little disk overhead. EDIT-80, WM, and WS are all outstanding editors, and I am sure that this is just a subset of the good editors out there. Each should be judged on its own merits and should be selected for your particular (each particular) application based on its responsiveness (minimum delay when a command is issued) and applicability and utility in a particular situation. ________ By the way, I am the one with the long uname at BBNB, and you may address me more simply by sending mail to CONN at MC (such mail is automatically forwarded to BBNB). Rick Conn 8-Jun-81 07:52:00,510;000000000000 Date: Monday, 8 June 1981 07:52-MDT From: BHUBER at USC-ECL To: W8SDZ at MIT-MC, INFO-CPM at MIT-MC cc: BHUBER at USC-ECL Subject: Using DC Hayes modem at 450 baud In response to the message sent 8 June 1981 02:31-EDT from W8SDZ@MIT-MC "Anything is better than 300 [bps]." Oh? What about 75, 110, or 134.5 bps? Bob Loesch must not have much (any?) experience with older equipments. Bud P.S., I suspect today is going to be a bad one if this is my reaction to the referenced message. 8-Jun-81 10:38:00,542;000000000000 Date: Monday, 8 June 1981 10:38-MDT From: Jim Moore To: ehuang at MIT-AI, INFO-CPM at MIT-AI cc: W8SDZ at MIT-AI, PLK at MIT-AI, MOORE at USC-ISIB Big deal back atcha! I have been routinely editing a 150K file on my 64K cp/m. My secret is MINCE -- the only thing one must do is define a big mother swap file (as per the users' manual). Since you seem to already be an EMACSophile, you'll be right at home (on the subset of commands that are implemented, it's a 95% fit w/ EMACS.). Enjoy, Jim Moore 9-Jun-81 00:28:00,229;000000000000 Date: Tuesday, 9 June 1981 00:28-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: New list of remote CP/M systems MC:CPM;RCP/M NOS is now list #16 as of today. Several new systems listed. 9-Jun-81 00:59:00,551;000000000000 Date: Tuesday, 9 June 1981 00:59-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC cc: BUG-LMODEM at MIT-MC When you use LMODEM to get files from MC, if the file name has a slash ("/") in it (like that RCP/M NOS file I mentioned in my last message) you need to use two /'s in a row when telling LMODEM to send the file. Apparently the slash is used as some sort of option character in LISP and you need to type two of them for one to be recognized. I have noticed the same thing with GZ's DOWN LOAD and UP LOAD. 9-Jun-81 01:02:00,481;000000000000 Date: Tuesday, 9 June 1981 01:02-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: PLINK63.ASM Those who cannot use FJW's excellent MicroTelnet program will find PLINK63.ASM of interest. It is written in 8080 code and has equates for many different kinds of I/O, including H89, TRS-80, PMMI, DC Hayes, Cromemco TUART, and others. See the DOC file for details. These files are available: MC:CPM;PLINK 63ASM and MC;CPM;PLINK 63DOC 9-Jun-81 12:19:00,877;000000000000 Date: Tuesday, 9 June 1981 12:19-MDT From: Jim Moore To: info-cpm at MIT-MC cc: moore at USC-ISIB, lucas at USC-ISIB Subject: submit problems ... It seems as though SUBMIT is only capable of feeding input to the top-level of CP/M -- not to running programs. Is there any technique for doing a SUBMIT-like operation where the canned input first calls a program, then provides the input for the program, looking (to the program) as though it had come from the terminal. Alternative formulation of my problem: BaZic seems to store its programs in an unreadable, compresssed form. Consequently, readable programs (as one might find on a BBS) can't be loaded -- at least I haven't found a way. Is there a way to cause BaZic to be happy with an externally prepared BASIC program? Thanks for any info ... Jim Moore (Moore @ ISIB) 9-Jun-81 17:52:00,478;000000000000 Date: 9 Jun 1981 (Tuesday) 1552-PST From: MARON at LLL-MFE To: info-cpm at MIT-MC cc: moore at USC-ISIB Subject: xsub as solution to submit problems Jim- under ver 2.x there is a program called XSUB. It will allow programs to read input from a submit file BUT.... only using the read input buffer call (call 10). The program wont read from file if it is using character by character input. If anyone has a better XSUB program tell us SUBMIT/XSUB users. Thanks 9-Jun-81 23:02:00,356;000000000000 Date: Tuesday, 9 June 1981 23:02-MDT From: Devon S. McCullough To: INFO-CPM at MIT-MC Subject: ehuang's complaint Anyone who writes CALL 5 instead of CALL BDOS should be condemned to coding in hexadecimal: CD 05 00 All my stuff starts out with WARM EQU 0 ; OR 4200H AS THE CASE MAY BE BDOS EQU WARM+5 ... 10-Jun-81 01:56:00,834;000000000000 Date: Wednesday, 10 June 1981 01:56-MDT From: MADDOX at MIT-AI To: INFO-CPM at MIT-AI Subject: XSUB problem There have been many times when I have been quite thankful for XSUB. Sometimes, though, I have been quite frustrated by what appears to be a problem in relocation. On my system, a quite normal 64k Z80 system, certain programs will refuse to run if XSUB is installed. The most notable is WordStar, which, when run, promptly returns to CP/M without any signs of trouble other than it doesn't run. No crashes or other clues. Other programs which conflict with XSUB seem to be generally those which try to relocate themselves below the CCP for one reason or another, although DDT, which I believe also relocates itself under the CCP, runs flawlessly. Any ideas or similar experiences? - Dave Maddox 10-Jun-81 02:09:00,1786;000000000000 Date: Wednesday, 10 June 1981 02:09-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: Saving money on F80 and M80 I recently noticed the following message on a remote CP/M system and thought it might be of interest here: Date: 5/30/81 From: ANDY BENDER To: ALL Re: CHEAP FORTRAN AND MACRO 80 PROGRAMS If you want a copy of the Microsoft F80 and M80 programs as well as their support software and you want to get them with free updates for a year and be a legal user read on. While not free, Heathkit sells these programs, doctored up so they only run on Heath systems, at a discount. The discount is quite steep and the free updates are attractive. You will need to know about DDT and SAVE to fix them so you can use them: FOR FORTRAN: >DDT F80.COM then alter the LXI d,barf at 2C38 to jmp 2C90. Exit from DDT and do a SAVE 107 F80.COM FOR MACRO80: >DDT M80.COM then alter the LXI d,barf at 4392 to jmp 43EA. Exit from DDT and do a SAVE 75 M80.COM You now own legal copies of both programs suitable for use on your CP/M 1.4 or 2.2 system. This patch bypasses the vendor code check in the CP/M serial number and also bypasses some I/O twitching that must be important for Heath systems. The other system programs distibuted on the disk do not need patching these programs (LIB, L80 XREF etc) assume if you got to use them you must be ok. The same patch is probably possible in other Heath software such as BASIC Compiler or COBOL Compiler. I have not researched these programs however. My advice to fix other software would be to look at the area in which the vendor code check is being carried out and follow the same bypass as I did in M80. Lots of Luck - Happy Computing from us at NSI. 10-Jun-81 02:23:00,234;000000000000 Date: Wednesday, 10 June 1981 02:23-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: Update RCPM list MC:CPM;RCP/M NOS is new as of today. This is the list of remote CP/M file transfer systems. 10-Jun-81 11:19:00,1668;000000000000 Date: 10 Jun 1981 at 1019-PDT From: fylstra.tsca at Sri-Unix To: info-cpm at MIT-AI Subject: bugs in SUBMIT/XSUB I have noticed the following bugs in SUBMIT and XSUB: 1. XSUB chokes on empty lines and dies a miserable death. I noticed this while trying to spoon feed a number of answers to prompts that Small C (Codeworks version) was asking. My intention was to reply (from the .SUB file) with a carriage return. A systems programmer from Digital Research acknowledged this at the recent West Coast Comp Faire. He said that they knew it was a kludge but "it's better than nothing..." 2. When a transient program returns to the CCP via a RET instruction rather than doing a warm boot, the CCP fails to restore the DMA address to TBUFF at 80h. If a .SUB file is active, the CCP will try to read the next command line from the file into some random buffer (most likely in the TPA someplace), and will then attempt to parse whatever is left in TBUFF. Sigh... This explains why so many CPMUG programs do a SETDMA(TBUFF) before exiting to CP/M. 3. When expanding the arguments in the .SUB file, the SUBMIT command actually writes the command lines, one per record, in reverse order!!! The CCP notices the $$$.SUB file, opens it, reads the high-water-mark record, deletes it from the FCB, and closes the $$$.SUB file. In reading thru the CCP, I get the feeling that $$$.SUB files won't work if they are larger than one extent, but I haven't verified this. Anyone have experience with this? All in all, the SUBMIT/XSUB system would best be served up for dinner on Thanksgiving day. Dave Fylstra 10-Jun-81 18:50:00,591;000000000000 Date: Wednesday, 10 June 1981 18:50-MDT From: Michael C. Adler To: INFO-CPM at MIT-MC Subject: Converting to 48k system I just bought an H89 with CP/M. In the CP/M manual there were references to upgrading the 20k version that comes on the distribution disk to the full capacity of my machine, 48k. I could not find any information describing the differences between the 20k version and the version for 48k. Can anyone tell me what they are and why I would want to use more RAM to store a bigger version of CP/M? Thanks, -Michael Adler (MADLER@MC) 10-Jun-81 19:36:00,481;000000000000 Date: Wednesday, 10 June 1981 19:36-MDT From: Michael C. Adler To: INFO-CPM at MIT-MC Subject: Please disregard my last question Please: It has just been pointed out to me that CP/M resides in high memory and for that reason I should reconfigure my system in order to gain TPA. Please disregard my last question about 48K and do not flood me with a storm of nates to the same effect. (I feel foolish enough as it is.) Thanks, -Michael Adler 10-Jun-81 20:06:00,995;000000000000 Date: 10 Jun 1981 at 1906-PDT From: fylstra.tsca at Sri-Unix To: info-cpm at MIT-AI cc: fylstra.tsca at Sri-Unix Subject: suggested enhancement to MODEM206 The following may sound a little over-accomodating, but here goes... The most recent version of MODEM2 (on [mc]cpm;modem 206asm) assumes that, in the external coupler case, the transmit and receive data ports are identical, and that the TBE and RDA status bits occur on the same port. I would suggest that the most general case would be MODDATR EQU 01H ;receive data port MODDATW EQU 02H ;transmit data port MODCTLR EQU 03H ;RDA status port MODCLTW EQU 04H ;TBE status port Then the few occurances of 'OUT MODDATP' would be changed to 'OUT MODDATW'. While interfacing MODEM206.ASM to a friend's Dynabyte system, I discovered that the transmit and receive data ports were actually different! Fortunately the TBE and RDA bits occur on the same port. It is unusual, but it does happen... Dave Fylstra 10-Jun-81 20:28:00,562;000000000000 Date: Wednesday, 10 June 1981 20:28-MDT From: EHUANG at MIT-AI To: DEVON at MIT-MC cc: INFO-CPM at MIT-AI Thanks. Your idea is ni.... at last we got some Alternate CP/M supporters! I've reprinted your msg.. Date: 10 June 1981 01:02-EDT From: Devon S. McCullough Anyone who writes CALL 5 instead of CALL BDOS should be condemned to coding in hexadecimal: CD 05 00 All my stuff starts out with WARM EQU 0 ; OR 4200H AS THE CASE MAY BE BDOS EQU WARM+5 ... 10-Jun-81 23:29:00,5018;000000000000 Date: Wednesday, 10 June 1981 23:29-MDT From: Frank J. Wancho To: INFO-CPM at MIT-MC cc: Stef at DARCOM-KA, IME-TECOM at OFFICE-2, Labhart at OFFICE-2, Hewitt at OFFICE-2, SAD at OFFICE-2, EBoyd at OFFICE-2, Christina at OFFICE-2, TECOM-HQ at OFFICE-2, TBowerman at DARCOM-KA, TECOM-C3I at OFFICE-2, Farber at UDEL Subject: CP/M vs **NIX in the Office Environment The following edited exchange came about when Bob Bloom (IME-TECOM@OFFICE-2) solicited comments about a "spec" for a CP/M-based communicating Word Processor for an office environment... I believe there are several statements made herein which should not go unchallenged by those of us on this list who use tools which run in the CP/M environment in the office. I present this as only a temporary diversion from our otherwise highly technical discussion. Please limit any responses to factual and well-founded comments and information, as has been the norm for this list. Also, please be sure to include the above CC: list in your replies, as most of these people are not on INFO-CPM. --Frank -------------------- Date: Tuesday, 9 June 1981 13:46-PDT From: STEF Re: Communicating WP Equipment [...] CP/M is an operating system environment for very small machines, which will not grow up to run on larger machines when they become as inexpensive as the CP/M machines are today. I am speaking specifically of the 16 bit micros of the ONYX class, which will begin to displace the CP/M "price-range" machines in about one year from now. If you go the CP/M route, you will invest lots of money in building systems to run in an environment that will be very hard to maintain in the face of the obviously better quality of the UNIX/XENIX environment which is just around the corner. The trend is toward larger machines becoming cheap, and able to run the software implemented on the larger machines. This means that you should be building your applications software now on the currently available UNIX systems, with intention to later run that same software on equivalent sized but cheaper machines next year, and the year after, etc. ..... In short, your MicroComputer with CP/M development strategy is running directly counter to the main driving forces of the industry and the economics of technology advances. You should be targeting for full capability Message handlers such as XMSG and MMDF plus SCRIBE and EMACS equivalent tools, which are much more easily built now for the larger machines, than can be implemented in the limited capability CP/M machines. [...] May I suggest that you take full advantage of the work that has been done, by opening up the options by replacing CP/M with UNIX, and adding mail handling capabilities with "message data base" software, ala INFOMAIL. I think you will find that more of the software has already been built for the UNIX environment than you plan to implement for the CP/M environment. Date: Wednesday, 10 June 1981 17:46-PDT From: STEF Re: FYI: [Dave Farber : Xerox "worms into Apple?"] Dave Farber originated this item, which relates to the CP/M proposal. Today's Wall Street Journal has a product announcement for the Xerox 820, a low cost information processor that can be used as a desktop computer or word-processing system. The basic system costs 2,995 and comes with a display, a microprocessor, a keyboard unit, and dual floppies. The article hints that it can be connected to the Ethernet. If I remember correctly it uses an 8086 with CP/M. Interesting recognition of the dominence of CP/M is the micro marketplace. Dave .... I would comment that several aspects of the Xerox strategy seem strange to me, so I am not convinced that their plans to "worm their way into the APPLE market" with the 820 should offset my basic analysis that says large scale users, such as TECOM, should more likely consider UNIX/XENIX as a preferred "Domain for software accumulation." Cheers - Stef Date: 10 Jun 81 21:01:17-EDT (Wed) From: Dave Farber Re: FYI: [Dave Farber : Xerox "worms into Apple?"] I also agree that the 820 should in no way impact plans for Unix. CP/M is just not Unix. It does not grow the way Unix does. It is strictly a Micro system, while Unix is much much wider in applicability. Dave Date: 10 Jun 81 21:23:29-EDT (Wed) From: Dave Farber Re: FYI: [Dave Farber : Xerox "worms into App... I just want to restate clearly my view. CP/M is competitive with Unix ONLY in small systems like the Z80, 8086 etc class machines. There is NOwhere to grow and no chance from my view of any growth for CP/M. That still makes CP/M a good candidate for the small marketplace and the home market but as a basis for office systems in places that will grow, I think not. Dave 11-Jun-81 05:37:00,624;000000000000 Date: Thursday, 11 June 1981 05:37-MDT From: JSWAIN at BBNA To: info-cpm at MIT-MC, info-micro at MIT-MC Subject: Format and Copy programs Would any-one out there know where I would be able to get the source code for a full disk copy program and a disk format program running under CP/M(r) using the WD 1793 Controller Chip. If possible, I would like them t support single/double density, and the same for the side options. Modifying the source would be no trouble, as I am trying to save some time writing the programs, just get my wire-wrapped controller up. Thanks, John Swain JSWAIN@BBNA 11-Jun-81 22:59:00,962;000000000000 Date: Thursday, 11 June 1981 22:59-MDT From: DAG at MIT-AI To: info-cpm at MIT-MC cc: info-micro at MIT-MC I am trying to set up a multi-user micro based computer system. We need about 20meg on disk (hard), one single density 8" floppy, cartridge backup and two to three terminals. I have thought of MP/M and OASIS as OS's and would like ideas about how folks feel about them, I also want to run some form of inventory control, but it must be configurable (hackable) and not too much pf a pain to use. I have a limmitted (but practical budget) of about 14 to 16 K bucks, but would like to stay less than that. I would like any ideas, sugesstions, other blah about systems, modules, vendors, and any other things you can think of. the other requiremnet is reliability. Anything you can tell me would be of use. I am still working on record lockout things and other nonesuch as well. Thanks, Dave Gewirtz (DAG@MIT-AI) 13-Jun-81 00:09:00,943;000000000000 Date: Saturday, 13 June 1981 00:09-MDT From: MITTON at MIT-AI To: FJW at MIT-AI cc: INFO-CPM at MIT-AI Subject: CBBS/NECS has been dead, long live CBBS/NECS! The CBBS that was run by the NECS at DEC in Maynard, 617-897-0346, has not been operating since Fall 1979!!!! It is still listed in BBSNOS BYAREA (didn't check BYNAME). It has also unfortunately been listed in three recent issues of Dr Dobbs, and Popular Electronics. I was the operator. I have told list maintainers here before! How long does it take to get a number deleted? If this keeps up I am really going to start flaming!!! Anyone who runs a CBBS knows that calls come at random late hours of the night. Some phones have been reassigned to residential numbers. These people do not appreciate, even understand, the publishing of their phone numbers. PLEASE BE CAREFUL and CONSIDERATE when using these lists!!!! Dave Mitton, CBBS/Cambridge SYSOP 13-Jun-81 03:01:00,510;000000000000 Date: Saturday, 13 June 1981 03:01-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: New version of D.ASM D.COM, the restricted directory program, is now version 2.6. The files are available on MC as: MC:CPM;D-26 COM and MC:CPM;D-26 ASM Fixes include: CTL-C abort now works consistantly, SYS options now allow for up to 3 characters for increased security on RCPM systems, some code optimization to reduce D.COM's size. See .ASM file for details on updates. 13-Jun-81 10:53:00,340;000000000000 Date: Saturday, 13 June 1981 10:53-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: D-26 replaced by D-27 There was an error in the names counter for files not found. I fixed it and replaced files on MC. New files are: MC:CPM;D-27 COM and MC:CPM;D-27 ASM Sorry if anyone was inconvienced. 13-Jun-81 21:22:00,1316;000000000000 Date: Saturday, 13 June 1981 21:22-MDT From: Bill Sholar Sender: William.Sholar at CMU-10A To: INFO-CPM at MIT-MC Subject: Help getting started . . . I've just started using CP/M on my TRS-80 Mod II, P&T version of CP/M. I've been trying to make use of some of the public domain software, without success. I have Microsoft's Macro-80 (plus the Digital Research ASM), which will gladly generate 460 fatal errors when I try to assemble any of the .ASM files that sit about here and there. Lacking the software to download a .COM file, those files seem useless. My current trick to download .ASM files (etc.) is to use a TRS-80 terminal package, then dump the files to a TRS-80 disk. Then I have to transfer the file to a CP/M disk, and try to assemble it. COM files won't down load because some of the characters cause my system to burp (and worse) if they are received "straight". HEX files would be useful, but no one seems to keep those around. I am getting ready to buy a batch of CPMUG disks -- would appreciate any advice on which modem packages work well, and on where to obtain similar public software. I'd also appreciate comments on the relative merits of MAC, as compared with MACRO-80. Thanks, Bill Sholar 14-Jun-81 01:12:00,360;000000000000 Date: Sunday, 14 June 1981 01:12-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: Need help with Penril 212-A modem Anyone know how to make that modem switch to 1200 baud when placing a call? I tried the "HS (high-speed) switch but all I get when I do that is high-speed reversals, still on the 103 tone frequencies. 14-Jun-81 03:59:00,1323;000000000000 Date: Sunday, 14 June 1981 03:59-MDT From: Frank J. Wancho To: INFO-CPM at MIT-MC Subject: CPMUG Catalog and Doc Files Available For a limited time (say, a week or so, until I can find room elsewhere), the subject files will be available for FTP from [DARCOM-KA]CPMUG.*. The "original", CPMUG.DOC, came from a file that EB@AI constructed from a tape of the individual files from CLEMENTS@BBNA (who got it from yet another person whose name resides in the depths of the INFO-CPM archives). The files cover up through Volume 42 and have been back-converted into 156 individual "messages" suitable for perusing with your favorite mail reader in either TENEX or BABYL format. Be forewarned that each of these three files is 277 TENEX pages! They are: [DARCOM-KA]CPMUG.DOC - The "original" file from EB - slightly modified. [DARCOM-KA]CPMUG.BABYL - The BABYL format. [DARCOM-KA]CPMUG.TXT - The TENEX MESSAGE.TXT format. I suspect the remaining catalog and doc files, up to whatever is the current release (56?), will eventually become available. When that happens, I will create three more files as above and merge the resultant files into those as well, with a similar announcement. --Frank 14-Jun-81 15:08:00,830;000000000000 Date: Sunday, 14 June 1981 15:08-MDT From: Bill Sholar Sender: William.Sholar at CMU-10A To: INFO-CPM at MIT-MC Subject: My last query - help with TRS80/CPM After looking at a number of modem, mboot, etc. packages sitting on RBBS's, I can see how to make use of them to get on the air, but the Radio Shack documentation is poor to worse on accessing the serial ports, and the cpm material is about the same. I can get up and running if someone will provide me with the "magic numbers" to use with the EQU's for port numbers and bits being tested in the apparently standard modem packages sitting around (MODCTLP, MODSNDB, etc). These numbers are needed for a TRS-80, 64k, Model II machine running P&T's standard CPM for this machine. Would appreciate any help! Bill 14-Jun-81 21:47:00,463;000000000000 Date: Sunday, 14 June 1981 21:47-MDT From: EHUANG at MIT-AI To: INFO-CPM at MIT-AI Hi. There was a PATCH for the cp/m assembler by digital research andmodified by some users here. I cant find the file on MC:cpm;. caN ANYONE hELp OR TELL Me WHERE i COUDL fIND IT? AS THE ASMPAT.ASM IN THE MANUAL WONT WORK on my cP?m 1.4 mofDIFIED. THANS PS: sORRY FOR THE MESSY UUPER/LOWER CASE BUT this CP/M termianls PROgraM IS SHFITNG UP/LOw CASe RANDOMLDy. 15-Jun-81 04:58:00,307;000000000000 Date: Monday, 15 June 1981 04:58-MDT From: Keith B. Petersen To: INFO-CPM at MIT-MC Subject: Equates for TRS80 for modem.asm MC:CPM;TRSMDM EQUS is a file detailing the equates and other info on how to set up MODEM206 (or MODEM527) for the TRS-80 level II standard serial port. 15-Jun-81 10:31:00,27736;000000000000 Date: Monday, 15 June 1981 10:31-MDT From: AFITGORDON at BBNB To: WANCHO at DARCOM-KA, INFO-CPM at MIT-MC cc: [Zwiterion]: at BBNB, Stef at DARCOM-KA, IME-TECOM at OFFICE-2, Labhart at OFFICE-2, Hewitt at OFFICE-2, SAD at OFFICE-2, EBoyd at OFFICE-2, Christina at OFFICE-2, TECOM-HQ at OFFICE-2, TBowerman at DARCOM-KA, TECOM-C3I at OFFICE-2, Farber at UDEL, AFITGORDON at BBNB Subject: CP/M vs **NIX in the Office Environment In response to the message sent 10 June 1981 22:29-PDT (Wednesday) from WANCHO@DARCOM-KA Greetings, Gentlemen, I have recently noted your conversations regarding the adoption of an operating system for microcomputers in an automated office environment. I would like to offer my opinions and comments in the following document for your review. Your work is interesting and related to what I have already been doing with CP/M. The following document, for example, was composed on my personal microcomputer using the Word Star text editor/formatter under CP/M and automatically transmitted to the ARPA Net, where it was further transmitted to you via electronic mail. The following, then, are my opinions, for what they are worth, and they are submitted in the interest of information exchange with your community. Richard Conn -------- Document Follows -------- A Comparison of CP/M and UNIX A Comparison of CP/M and UNIX A Matter of Choice An interesting discussion and controversy concerning the selection of an Operating System (OS) for a micro- computer-based office automation system has recently taken place between and within members of DARCOM (Dept of the Army Readiness Command) and others on the ARPA Network. Central to the controversy are two basic groups -- those for the CP/M OS and those for UNIX/UNIX-like OS's. This is the first such controversy I have observed that has taken any significant proportions, and with the advent of the new 16-bit microprocessors such as the 8086, Z8000, and 68000 and the "UNIX-like" operating systems such as OMNYX and XENIX, the question of staying with CP/M or going to the UNIX environment is going to arise with more and more frequency. UNIX (first released by Bell Labs in 1969) has recently been hailed as the "Operating System of the 80'S" by several people, and I feel that now may be a good time to outline a comparison of CP/M 2.2 and UNIX for future reference. Note that this comparison involves traditional UNIX (NOT necessarily identical to the yet-to-be-released XENIX). Having done some research on and used both types of operating systems, I offer the following discussion for general dissemination. This discussion is divided into two parts -- (1) a brief comparison of Bell's UNIX and CP/M 2.2 and (2) a brief discussion of the criteria for selection of the OS and my recommendation. Part 1 -- A Comparison of UNIX and CP/M 2.2 -- The following is a basic comparison of several key points of the UNIX and CP/M 2.2 Operating Systems. Data for the UNIX part of the comparison was extracted from "The Bell System Technical Journal", July-Aug 78, Vol 57, No 6, Part 2, ISSN0005-8580 (Articles: "A Retrospective" by DM Ritchie and "The UNIX Shell" by SR Bourne primarily). Data for the CP/M 2.2 part of the comparison was extracted from "Digital Research CP/M 1.4 & 2.0 Documentation" reprinted by Morrow Designs, Inc. (Section II: CP/M 2.0 User's Guide). The data presented is edited and augmented by comments from my personal experiences. UNIX ! CP/M 2.2 ------------------------------!---------------------------- o No Unique Version ! o Unique Version At least 5 versions exist: ! Version 2.2 (Precisely 1. "Standard" maintained! Defined) by the UNIX Support Group at ! Bell Labs ! Page 1 A Comparison of CP/M and UNIX 2. PWB/UNIX (Programmers! Work Bench) ! 3. Version 6 (distrib. ! by Western Electric) ! 4. Version 7 ! 5. The version currently! in use by the Computing ! Science Research System at ! Bell Labs ! ! o Multi-user/process ! o Single-user/process ! o File Size Limit ! o File Size Limit == 1e9 bytes (depends on ! == 8e6 bytes version); e=10 to power ! ! o Supports Random Access Files! o Supports RA Files also ! o Targeted to the PDP-11 Fam ! o Targeted to 8080/Z80 ! o Tree Directory Structures ! o Dual-Level Directory (Indefinite number of levels! Structure (USER/DIR or and Path Names) ! SYS) and Limited Path (A:FN) ! o Links Allowed ! o Links Permitted (Extension) (Different dir entries pt to! same file for disk space save)! ! o Device Transparency and Re- ! o Device Transparency and Re- directability Complete ! directability limited to (I/O routed to/from files ! terminal I/O and terminals with equal ease)! User Interface Comparisons UNIX ! CP/M 2.2 ------------------------------!-------------------------- o Command Interpreter ! o Command Interpreter "Shell" ! "CCP" ! o Shell Easily Replaced ! o CCP Replaced with ! difficulty ! o Not Part of Kernal ! o Not Part of Kernal ! o Full Command Language is ! o Full Command Language is relatively complicated ! simple ! o All commands have redirect- ! o Only terminal I/O is able I/O (<,<<,>,>>) ! redirectable ! o More extensive wild cards ! o Simple wild cards (?,*,[c1-c2],[c1...cn]) ! (?,*) ! o Interprocess information ! o No equivalent transfer (pipes); coroutines! Page 2 A Comparison of CP/M and UNIX ! o Type-Ahead ! o Type-Ahead possible ! via BIOS ! o Parallel processes ! o No equivalent ! o Indirect command files; no ! o Indirect cmnd files; 20 limit to arguments ! argument limit (sh file arg1 arg2 ...) ! (submit file arg1 ...) ! o Conditional Execution ! o No equivalent (ANDF - &&, ORF - !!) ! ! o Construct Execution ! o No equivalent if ... then ... else ! case ... in ... ! while ... do ... ! for ... do ... ! until ... do ... ! ! o Shell Variables (Param sub) ! o No equivalent ex: user=myfile ! print $user ! ! o Command Substitution ! o No equivalent ex: d='pwd' ! Other Items UNIX ! CP/M 2.2 ------------------------------!---------------------------- o Reliability - Good ! o Reliability - Good ! o Security - Fair ! o Security - Poor ! o Use of HOL ! o Use of HOL 90-95% in C - OS ! Mainly Assem - OS 95-100% in C - Utilities ! 90% in PL/M - Std Utils ! o ARPANET Interface (NCP) ! o No Equivalent currently available ! (except for terminal pgms) ! o Extensive document prepara- ! o Extensive document prep tion facilities ! facilities ed - simple char-oriented! ED - simple char-oriented editor ! editor Are there any screen- ! WM, EP - screen-oriented oriented editors or ! editors formatters? ! WS, MW - s-o edit/format troff, nroff - formatters! TFS - formatter with macro expansion ! with macro expansion eqn - mathematical expr ! No known equivalent preprocessor ! tbl - table preprocessor ! No known equivalent spell - spelling check ! SPELLGUARD - spell chk Page 3 A Comparison of CP/M and UNIX speak - voice output ! No known equivalent diff - file comparator ! FILCOM - file comparator ! o Online instruction ! o Online instruction learn -- tutor ! PILOT - CAI language online help? ! HELP - online doc ! o Exotic applications ! o Exotic applications yacc - compiler-compilers! MUMATH - symbolic others? ! algebra ! o Languages ! o Languages C, FORTRAN 77, BASIC, ! C, FORTRAN IV, BASICs, SNOBOL, APL, ALGOL 68, PASCAL ! APL, ALGOL 60, PASCALs, others? ! LISP, MUMATH, MUSIMP, ! PILOT, PL/I, COBOL ! others? Part 1 Commentary From the point of view of a hacker (such as I consider myself to be), both CP/M and UNIX are outstanding operating systems to experiment with and study. Systems programming on each is relatively easy to do, and both exhibit an ex- treme level of extensibility which may be utilized by sys- tems programmers. By this I mean that both OS's can be modified, tailored to a specific application, with a great deal of ease at the systems programming level. Each is flexible enough to be used to create a "virtual machine" of the system programmer's design which can react in almost any way desired (e.g., text processing environments and program development environments can be easily created which are tailored to a user's particular needs). The particularly intriguing aspects of UNIX to me are: 1. the tree directory structures; using these, each user's projects and files can be logically grouped and organized as the user and/or his manager desires and special work environments, each with their own set of commands, can be easily created 2. the Shell (command interpreter) can be easily replaced, so specialized shells or even menu-driven command environments may be created with ease 3. device transparency and redirectability is an outstanding concept! This allows instances such as a program which by default sends its output to the terminal (such as a directory program) to be forced to channel its output to a different device, a file, or even another process; the potential for applications of this facility is enormous! 4. parallel processing and coroutines are common- place; this provides the very nice ability of a user to, say, initiate the printing of a file while he goes off and does something else -- better yet, one user may issue Page 4 A Comparison of CP/M and UNIX several commands to be executed concurrently while he does something else 5. conditional executions (ANDF, ORF), language constructions in the command language (IF, WHILE, FOR, CASE, etc.), and parameter and command substitutions (Shell variables) are novel and interesting concepts On the other hand, the intriguing aspects of CP/M to me are: 1. the ability to divide logical projects and work files into user areas, with each user area having its own set of files and commands (any number of which may be hidden [transparent] to the user); in a single user environment, this seems to be just as reasonable and useful as the tree structure of UNIX 2. the ability to replace the CCP (with difficulty); this can be done easier in UNIX, but it is not outside the scope of a system programmer to do this with CP/M (I have done it, making a major modification which greatly enhances CP/M's power -- command execution of COM files under my new CCP searches the current user area on the current disk, falls to user 0 of the current disk if not found, finally falls to user 0 or drive A: if not found, and finally issues an error message). This new CCP significantly places CP/M in a competative mode with UNIX in command execution (UNIX traces up the tree for command execution). 3. CP/M's terminal I/O is redirectable, and this buys a lot of flexibility for the user; UNIX, however, is equally redirectable and even more so 4. CP/M is very small, leaving much of the microcomputer's memory for the transcients and utilities; size is sometimes a problem, but with the new microprocessors and their megabyte addressing capabilities, it should no longer pose such a problem 5. finally, and perhaps most importantly, a wide variety of relatively high-quality software (screen-oriented editors, language systems, communications systems, etc) is currently available for CP/M, and I have not seen such quality systems yet being prepared for systems like XENIX (whose specs are not even out yet); there will be a definite lag before (and IF) XENIX and other such systems obtain the software base currently in existence for CP/M!!!!! Page 5 A Comparison of CP/M and UNIX Part 2 A Commentary -- Criteria for Selection and Recommendation In making such a selection of operating systems, I feel that there are five basic questions which should be considered in the evaluation. In short, these questions are the following: 1. Is the OS adequate to meet the needs of the user? Is there enough memory for the required utilities and applications programs to run in (considering the memory management schemes employed by the OS)? VERY IMPORTANT -- Is the OS responsive (In the microcomputer age, I consider the time of the user/programmer to be much more valuable than the time of the machine, and an OS/machine which in any way slows the user/programmer down due to its lack of re- sponsiveness should be reevaluated!!!!) 2. Is the OS extensible (user-customizable for his particular application)? If I don't like the form of the command language or the commands of the editor, can I change these to meet my tastes? If I want a menu-based user interface, can I create one? 3. Is software produced under the OS on machine A easily transportable to the same OS on machine B (allowing, of course, media compatability)? Source code generally is transportable provided the language is standardized (like C on UNIX), but is the binary (including the OS "hooks") also transportable (like on CP/M)? 4. Are software tools (editors, compilers, de- buggers, etc.) available AND effective for the target class of users? For instance, I would much rather give my secre- tary a screen-oriented editor which is easy to use as op- posed to a character-oriented editor in which she has to worry about the position of an imaginary cursor. The tool should be easy to use, people should be quickly and inexpen- sively trained to use it, and it should be efficient (fast, capable, and requiring as little overhead as possible). Also, if I currently have an existing tool base which my people are already trained to use, I should think carefully about moving to a new OS just because it is new or pro- mising. 5. Finally, is the software easily maintainable and reliable? Tools are seldom perfect, and improvements are constantly coming out. I would like to see the ability to modify my tools if I desire (I own them, don't I?) and be supported by the vendor as new releases emerge. Also, I want to use proven, time-tested tools which I can rely on extensively. Hence, reader, from my point of view, presented are the primary attributes of UNIX and CP/M 2.2 and my basic set of criteria to judge these systems by. Coming from a largely- CP/M environment (I already have CP/M as a base), UNIX would win hands down (looking through the eyes of a hacker). UNIX Page 6 A Comparison of CP/M and UNIX is a fantastic software tool which supports many interesting and exciting features, and, regardless of the use I put the UNIX system to, I still have my CP/M base to support my current applications and interests (also including hacking). The above statement, however, was from the point of view of a hacker with a CP/M base. The question posed, however, was from the point of view of the creation of a new system to support office automation. This is a management system in a manager's environment, not a hacker system in a programmer's environment. To make a choice for the manager, let's fall back to the five criteria outline above. In my opinion, both operating systems come out about even in the first three items. Both UNIX (XENIX?) and CP/M are generally adequate, extensible, and support transportable software for the automated office environment. In both cases, tools may have to be designed for specific needs (like XMSG for UNIX mail and CBBS software for CP/M mail). Software support from systems programmers will probably be required to design and integrate the tools necessary for an automated office system. Item 4 is perhaps a key point in the decision. CP/M already has a relatively-large base of quality tools for the target class (secretarial/managerial) of user. From my observation of automated office environments such as my own CP/M environment, AUGMENT of Tymshare, and NLS under TENEX and TOPS-20, I note that the majority of the time (at least in my case, and I suspect most others) is spent in the electronic mail system and the editors. Consequently, tools for these environments must be most effective, allowing the user to get his job done in a minimum amount of time with a minimum amount of effort. I am currently employing menu- driven mail systems and fast screen-oriented editors for these functions, and I feel that (design-dependent, of course), these are the most productive alternatives avail- able today. Specialized terminals designed with the editors in mind (e.g., DNLS Workstations) are a good goal, but general CP/M screen editors such as Word Master, Word Star, and Magic Wand are already available, reliable, field-proven and tested, and reasonably effective (I spend little time waiting on them/giving commands and more time composing than I do with more conventional editors). I have not seen comparable field-proven software for the new UNIX systems (they are not even out yet). Finally, the fifth item, that of software maintainability and support, is concentrated on support from this (office automation) level. Your environment probably will not have systems programmers readily available, so you will probably be largely dependent on vendor support. Again, reliable, field-proven software is a big plus. Two additional points should be brought out at this time as well: (1) the philosophy question of the state of the art and (2) the philosophy question of the use of the new microcomputers (microprocessors). Concerning the state of the art, UNIX (XENIX?) is Page 7 A Comparison of CP/M and UNIX definitely closer to it than CP/M, but the operating system is just the RESOURCE MANAGER of the computer system, not the KEY to the computer system. The KEY to the system lies in the TOOLS (utilities) which run under the operating system! These tools must be reliable, easy to use, and efficient in human terms. From my observations, EDITORS are the most instrumental of tools, and the Word Master and (particularly) Word Star are the most powerful, reliable, and efficient editors I have seen (with the possible exception of EMACS on MIT and the DNLS editor). Such are already available under CP/M, and I know of no comparable editor (Such could exist, of course) under XENIX (will the UNIX editors work on XENIX?). Concerning the philosophy question, many people still look at computer systems and operating systems from a "con- ventional" point of view. The computer is typically viewed as an expensive resource which must be used as efficiently (in terms of computer thruput) as possible, but the micro- processor has changed that. Under CP/M, I am currently running two microcomputers (total cost is under $15,000) quite effectively. These machines and their software are designed to serve me, and to obtain a maximum of effective- ness for the user (measured in terms of minimum wait on the computer), operations such as number crunching programs and print spooling are sent to the second machine. Too many times I have working in environments such as a dual CYBER, DEC-10, or VAX where the machine's thruput was considered above the individual's effectiveness, and the responsiveness of these machines to me was far less than that of my own microcomputer! I hope you consider this point; individual effectiveness and usefulness should be of prime concern, and consider the idea of supplying the single individual with more than one processor/machine. Many of the pro-UNIX types may cling to the old (machine-thruput) school of thought, but much is to be said for the user-effective (made possible by the inexpensiveness of the microcomputer) school of thought. The multiprocess capabilities of UNIX are nice, but I consider multiprocessor capability to be nicer still! In sum, my recommendation is to go with CP/M if your need is immediate. If not, wait and see what the UNIX-like systems have to offer in reliability, tools, and competa- tively-marketed (competition is very important for quaility) software. "Something better" is always coming out, but buying "the best" (=most recent?) software at a given time is not necessarily the best decision in the long run. New software is frequently field-debugged (not always, of course), and you should be leary of opening yourself up to do the debugging when you are trying to get a job done. Page 8 15-Jun-81 17:31:00,2455;000000000000 Date: Monday, 15 June 1981 17:31-MDT From: CSVAX.dmu at Berkeley To: info-cpm at mit-ai Subject: one of the most important but overlooked differences The recent document comparing UNIX and CP/M is difficult to answer objectively. I have used both, although have used UNIX MUCH more. Anyway, the problem in these comparisons don't convey the flavor of the system: the underlying world-view of the original design that no amount of fancy user-level sofware can completely mask. FLAME ON: UNIX has a `delete' key that aborts a user program WITHOUT any special code in the user program. CPM has this polling philosophy towards I/O (just look at the BDOS interface) that makes it hard to poke programs in standard ways. Berkeley UNIX has a job control facility that permits the user to take any job (a pipeline of processes) and suspend it, restart it in the background, or move it into the foreground. Thus, from any interactive program, one can stop it, and enter commands to the command interpreter WITHOUT any code in the interactive program. UNIX has ``toolbox'' facilities that let one combine programs in unexpected (by the applications programmers) ways. Pipes, the absence of OS-supported file formats (this is a FEATURE), redirection, tools that support applicative programming (sort, uniq, awk especially) provide the user with a friendly, powerfull environment that allows one to shape the software to the human's needs, rather than vice-versa. Finally, UNIX may not have thousands of cottage programmers out there plugging away with applications, but instead it has hundreds of researchers (e.g. Aho) building tools: There are many screen editors, vi (Berkely editor), EMACS versions, edtv, syntax-directed editors, take your choice. There are several PASCAL's. There are word-processing programs that are simply amazing (e.g. awk, an interpreter with both regular-expression matching and procedural language). Troff and TEX are just two of the formatters available. Software control tools allow you to change any file and recompile everything that depends on it (and no more) with just one command. UNIX is not the be-all and end-all of Operating Systems, but it is the only reasonable choice for a 16-bit machine. If you can afford it, (and memory prices are going down all the time), you should get it. P.S. UNIX has LISP and MACSYMA running on it. FLAME OFF David Ungar