home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ENTERPRS / CPM / TEXT / CPMBOOT.TXT < prev    next >
Text File  |  2000-06-30  |  17KB  |  623 lines

  1.                           Supercharging CP/M
  2.  
  3.                   BIOS, CCP, and Bootdisk Utilities
  4.  
  5.                          by Randy Winchester
  6.  
  7.                                   4/25/90
  8.  
  9.  
  10.  
  11. Too often, Commodore 128 owners will boot up CP/M, take a quick look 
  12.  
  13. at it and think "This sure looks slow, dull, and boring."  The boot 
  14.  
  15. disk goes back in the box, never to see the inside of a disk drive 
  16.  
  17. again.  CP/M on the C128 doesn't have to be a creepy crawler.  The problem 
  18.  
  19. is with the default configuration of CP/M on the boot disk.  Here are some 
  20.  
  21. suggestions for speeding up CP/M and adding new features.
  22.  
  23.  
  24.  
  25.  
  26.  
  27. A New CP/M Boot Disk
  28.  
  29.  
  30.  
  31. All that is required to make a C128 CP/M boot disk is to format a disk 
  32.  
  33. with FORMAT.COM and copy CPM+.SYS and CCP.COM to it.  The disk must be 
  34.  
  35. formatted as either a C128 single or double sided disk.  FORMAT.COM 
  36.  
  37. writes a boot sector on the disk that enables the C128 to load and install 
  38.  
  39. the system files.
  40.  
  41.  
  42.  
  43.  
  44.  
  45. Fixing CPM+.SYS
  46.  
  47.  
  48.  
  49. The standard CPM+.SYS provided on the C128 CP/M boot disk has a couple 
  50.  
  51. of crippling inadequacies.  The 40 column screen is always enabled, 
  52.  
  53. slowing down the system by about 10%.  The interrupt driven RS232 
  54.  
  55. routines are always enabled, and set for an unreasonably high 300 
  56.  
  57. baud.  The higher the baud rate, the more interrupts are needed to 
  58.  
  59. service the RS232 port, and the less time the processor has to do its 
  60.  
  61. work.
  62.  
  63.  
  64.  
  65. Both of these problems are easy to fix.  The public domain CONF.COM 
  66.  
  67. can remedy both with the command line:
  68.  
  69.           CONF BAUD=75, FEEL=0, 40COL=OFF
  70.  
  71. The routines to scan the keyboard are also interrupt driven and depend 
  72.  
  73. on the baud rate setting.  Although the baud rate can be set as low as 
  74.  
  75. 50, at this setting the keyboard starts to miss key presses.  The FEEL 
  76.  
  77. parameter adjusts the number of interrupts used by the keyboard 
  78.  
  79. driver.  The value indicates the number of interrupts skipped.  A 
  80.  
  81. value of 1 tells the driver to ignore every other interrupt.  At 75 
  82.  
  83. baud, FEEL should be disabled by setting it to 0.  40COL=OFF disables 
  84.  
  85. the 40 column screen.
  86.  
  87.  
  88.  
  89. The baud rate can be hardwired into the BIOS by patching CPM+.SYS.  
  90.  
  91. The byte specifying the baud rate is found after the label "RS232" in 
  92.  
  93. the device table.  The address is $0da7 for the DEC 85 version or 
  94.  
  95. $0d98 for the MAY 87 version.  Normally, this byte will be set to 06 
  96.  
  97. for 300 baud.  The values to choose from are:
  98.  
  99.           0    NONE          1    50          2    75
  100.  
  101.           3    110           4    135         5    150
  102.  
  103.           6    300           7    600         8    1200
  104.  
  105. Setting this byte to 02 for 75 baud is the single most important 
  106.  
  107. speedup you can make, with an obvious improvement in performance.
  108.  
  109.  
  110.  
  111. Unfortunately, the FEEL and 40COL parameters aren't as simple to 
  112.  
  113. patch.  The easiest way to make these permanent is to edit the CP/M 
  114.  
  115. source code and generate a new system.  This requires MAC and RMAC, 
  116.  
  117. assemblers from the utility disks offered in the C128 System Guide.  
  118.  
  119. Although these disks also contain complete system source code, I 
  120.  
  121. recommend generating a system from the files in the widely available 
  122.  
  123. BIOSR4.ARK by James Waltrip, or my own BIOSR5.ARK.
  124.  
  125.  
  126.  
  127. BIOSR4 and R5 are archives containing modified source code.  They've 
  128.  
  129. been reworked to remove all 40 column code, replacing it with an 80 
  130.  
  131. column screen dump.  Routines have been added to define the drive 
  132.  
  133. search chain and default drive, the shape of the cursor, and the 
  134.  
  135. keyboard repeat rate.  The code is thoroughly commented, pointing out 
  136.  
  137. bytes to set for the default printer and secondary address, screen 
  138.  
  139. colors, and default baud rate.  Additional disk types have been added 
  140.  
  141. to the disk parameter table in BIOSR5, including Miklos Garamszeghy's 
  142.  
  143. "Maxi 71," which provides a remarkable 398K per disk.
  144.  
  145.  
  146.  
  147.  
  148.  
  149. Upgrading the CCP
  150.  
  151.  
  152.  
  153. The Console Command Processor, or CCP, is the program CP/M relies on 
  154.  
  155. to communicate with the user.  Its various responsibilities include 
  156.  
  157. printing the CP/M drive and user area prompt, interpreting console 
  158.  
  159. input, and loading and executing transient commands.  The CCP.COM 
  160.  
  161. supplied on the CP/M boot disk is pretty bare bones.  It has six 
  162.  
  163. limited resident commands: DIR, DIRSYS, ERASE, RENAME, TYPE, and USER.
  164.  
  165.  
  166.  
  167. A public domain CCP replacement that corrects some of the inadequacies of 
  168.  
  169. the standard CCP.COM is CCP Plus version 1.05.  CCP+ doesn't include 
  170.  
  171. resident commands; they have been replaced with new features.  CCP+ 
  172.  
  173. includes a time display in the drive/user prompt, and named directories 
  174.  
  175. similar to those in more modern operating systems.  Commands can be 
  176.  
  177. executed from user areas other than the current one.  An impressive feature 
  178.  
  179. is the ability to execute COM and SUB files from a command library much 
  180.  
  181. like MS-DOS.
  182.  
  183.  
  184.  
  185. If you use CCP+, you will have to select commands for your system.  
  186.  
  187. This can be fun, rather like going on a free software shopping spree.  
  188.  
  189. All the programs mentioned in this article, except QDisk, are public 
  190.  
  191. domain.
  192.  
  193.  
  194.  
  195. A RAM expansion, with its fast access and loading times is the 
  196.  
  197. wisest place to put frequently used commands, since they will load and 
  198.  
  199. execute almost instantly.  By using a PROFILE.SUB on your boot disk, 
  200.  
  201. commands can automatically be copied to the RAM disk when the system is 
  202.  
  203. booted.  For all purposes, commands stored on a RAM disk will appear to be 
  204.  
  205. resident commands.  On the other hand, if you don't have a RAM disk, you 
  206.  
  207. might decide that CCP Plus's features don't make up for the lack of 
  208.  
  209. resident commands.
  210.  
  211.  
  212.  
  213. Another solution is to use a Quick Brown Box along with QDisk software 
  214.  
  215. as a CP/M RAM drive.  The Quick Brown Box uses a battery to keep its 64K of 
  216.  
  217. RAM active between computing sessions.  I use the box to store 64K of 
  218.  
  219. commands that are available the instant I switch on the computer.
  220.  
  221.  
  222.  
  223. CCP Plus is available in the file CCP105P.LBR, along with many 
  224.  
  225. supportting programs and utilities.
  226.  
  227.  
  228.  
  229.  
  230.  
  231. Speeding Up Disks and Drives
  232.  
  233.  
  234.  
  235. A command my system runs when it first boots is C1571.COM.  This shuts 
  236.  
  237. off the 1571's redundant write verify, reducing the time it takes to 
  238.  
  239. save files.  Look for a version dated 24 Feb 86 or later.  An earlier 
  240.  
  241. version has a bug that prevents the use of MFM disk formats.
  242.  
  243.  
  244.  
  245. Using MFM disk formats is another way to get maximum performance from 
  246.  
  247. CP/M.  You'll still need Commodore GCR formatted disks for boot disks, 
  248.  
  249. but MFM formats can be used for all disks that don't need to be 
  250.  
  251. bootable.  Not only do some MFM formatted disks provide more storage, 
  252.  
  253. they are typically faster than GCR disks.  My recommendations are for 
  254.  
  255. the Epson QX10 format supported by the standard BIOS, or Maxi 71 
  256.  
  257. mentioned earlier.  QX10 disks offer 390K of storage; Maxi 71, 398K.  
  258.  
  259. That's 62K more than a C128 double sided CP/M disk.
  260.  
  261.  
  262.  
  263.  
  264.  
  265. Eliminating SETDEF
  266.  
  267.  
  268.  
  269. The SETDEF command is usually used to define the drive search chain 
  270.  
  271. and temporary drive.  The drive search chain is a list of up to four 
  272.  
  273. drives that CP/M will search each time a command is issued.  Sometimes 
  274.  
  275. CP/M needs to make temporary files in which it stores data while a 
  276.  
  277. command is being executed.  SETDEF is also used to tell CP/M which 
  278.  
  279. drive to use for temporary files.
  280.  
  281.  
  282.  
  283. If you decide to generate a CPM+.SYS using BIOS R4 or R5, there is a 
  284.  
  285. section of code in the CXIO.ASM module for values for the drive search 
  286.  
  287. chain and temporary drive.  These values can also be patched into an 
  288.  
  289. existing copy of CPM+.SYS.
  290.  
  291.  
  292.  
  293. The drive search chain is located from $1268 to $126b in the DEC 85 
  294.  
  295. and MAY 87 versions, or $0e68 to $0e6b in the AUG 85 version of 
  296.  
  297. CPM+.SYS.  The drives are numbered starting with 01 for drive A.  The 
  298.  
  299. default or currently logged drive is 00.  Positions that aren't used 
  300.  
  301. should be filled with $ff.  The byte immediately following the search 
  302.  
  303. chain, $126c in the DEC 85 and MAY 87 versions or $0e6c in the AUG 85 
  304.  
  305. version, specifies the drive for temporary files.  This byte defaults 
  306.  
  307. to 00, the currently logged drive.  If you use a 1750, have the system 
  308.  
  309. make its temporary files there.  It's much faster than writing and 
  310.  
  311. erasing them from a floppy disk.  The suggested entries for RAM disk 
  312.  
  313. users are:
  314.  
  315.           $1268:  0d 00 ff ff 0d
  316.  
  317. If a file isn't found on the RAM disk (drive M) CP/M will also search 
  318.  
  319. on the currently logged drive.  Drive M is the temporary drive.
  320.  
  321.  
  322.  
  323. Since these patches cover the important functions of SETDEF, there is 
  324.  
  325. little need to run it every time you boot up.
  326.  
  327.  
  328.  
  329.  
  330.  
  331. Eliminating SUBMIT
  332.  
  333.  
  334.  
  335. When CP/M is first booted, the CCP searches for PROFILE.SUB, and if it 
  336.  
  337. is present, executes it via SUBMIT.COM.  This is the usual method for 
  338.  
  339. automatically setting up the system.  A typical PROFILE.SUB might 
  340.  
  341. consist of the following commands:
  342.  
  343.           C1571 [A,B,D
  344.  
  345.           CP A1:*.* M0:
  346.  
  347.           DATE S
  348.  
  349.  
  350.  
  351. PROFILE.SUB is read in line by line and each command is loaded and 
  352.  
  353. executed in turn.  In this example C1571.COM turns off the 1571's 
  354.  
  355. write verify, all files in user area 1 of the boot disk are copied to 
  356.  
  357. user area 0 of drive M, and DATE.COM sets the system date and time.
  358.  
  359.  
  360.  
  361. Thanks to the public domain CHN31, SUBMIT.COM can be done away with, 
  362.  
  363. at least for PROFILE.SUB and other short lists of commands.  CHN31 
  364.  
  365. constructs a COM file consisting of any commands you might put into a 
  366.  
  367. SUBMIT file.  In the example above, each command would be be entered 
  368.  
  369. at CHN's prompt separated by an exclamation mark.  CHN is a big 
  370.  
  371. convenience and time saver.  Since CHN command files are themselves 
  372.  
  373. directly executed, SUBMIT doesn't have to be loaded.
  374.  
  375.  
  376.  
  377. CCP.COM requires a quick patch to use this trick.  Look for the string 
  378.  
  379. 'PROFILE.S' somewhere in or around the seventh sector of CCP.COM.  
  380.  
  381. Simply change the string to 'PROFILE.C' to execute a file named 
  382.  
  383. PROFILE.COM created with CHN31.
  384.  
  385.  
  386.  
  387. Here's the PROFILE.COM I use:
  388.  
  389.           QD F/F!C1571 [A,B,D!DIRNAME ON!F:SETDIR!F:HIST!DATE S
  390.  
  391. QD (QDisk) activates the Quick Brown Box as drive F, a 64K RAM disk.  
  392.  
  393. C1571.COM disables the 1571 drive's unnecessary write verify.  The 
  394.  
  395. letters following the command are a list of 1571 drives on my system.  
  396.  
  397. DIRNAME is a CCP Plus utility that starts the named directory feature. 
  398.  
  399. SETDIR is then loaded from drive F.  It reads the list of directory 
  400.  
  401. names and installs them in memory.  HIST provides recall of the last 
  402.  
  403. 20 commands typed to the system.  DATE then sets the system time and 
  404.  
  405. date.
  406.  
  407.  
  408.  
  409. If you don't use a Quick Brown Box, you'll need to copy commands and 
  410.  
  411. other support files into your RAM disk.  The easiest way I've found to 
  412.  
  413. do this is to place files I want to copy in user area 1 of my boot 
  414.  
  415. disk.  I use the command 'CP 1:*.* M0:' in my PROFILE.COM (CP is the 
  416.  
  417. name I use for ARCOPY.COM, an excellent public domain copy program) 
  418.  
  419. and everything in A1 is copied to M0.
  420.  
  421.  
  422.  
  423.  
  424.  
  425. Laying Out a Boot Disk
  426.  
  427.  
  428.  
  429. User area 0 should include CPM+.SYS, CCP.COM, and PROFILE.COM.  I also 
  430.  
  431. keep files in user 0 that are specified in PROFILE.COM but executed 
  432.  
  433. only when the system is first booted.  These include C1571.COM, 
  434.  
  435. DIRNAME.COM, and DATE.COM.
  436.  
  437.  
  438.  
  439. User 1 should contain files that will get copied to the RAM disk.  I 
  440.  
  441. suggest CMDRUN.COM, which is used by CCP+ to execute commands from 
  442.  
  443. COMMAND.LBR; ROOT.DIR, containing a list of directory names; and 
  444.  
  445. custom keyboard definition files created with KEYFIG.COM and saved 
  446.  
  447. with SAVEKEY2.COM.  I use two keyboard files, DEFAULT.KEY for normal 
  448.  
  449. operation, and ZDE.KEY for use with the public domain ZDE editor.  
  450.  
  451. You'll also want to include a COMMAND.LBR.
  452.  
  453.  
  454.  
  455. COMMAND.LBR can be created with a library utility, such as 
  456.  
  457. NULU152.COM.  It can have as many commands, and be as large as you 
  458.  
  459. have room to dedicate to it.  It should include replacement commands 
  460.  
  461. for those missing from CCP+, and any other commands you routinely use.
  462.  
  463.  
  464.  
  465. Here's a list of the commands in my COMMAND.LBR along with some 
  466.  
  467. comments.  All these programs are public domain.
  468.  
  469.  
  470.  
  471. SD137.COM.  This is a versatile directory program that can show files 
  472.  
  473. in all user areas, on all drives, files in libraries or archives, and 
  474.  
  475. files with the system attribute set.  It can send output to a file or 
  476.  
  477. printer.  SD137 replaces both DIR and DIRSYS.
  478.  
  479.  
  480.  
  481. ERASE.COM (version 5.3).  This ERASE replacement allows scratching files in 
  482.  
  483. user areas other than the current one and asks for confirmation before 
  484.  
  485. erasing Read-Only files.
  486.  
  487.  
  488.  
  489. QL41.COM.  Quick Look replaces both TYPE and DUMP.  QL can view binary 
  490.  
  491. as well as text files.  If a file is crunched or squeezed, or is a 
  492.  
  493. member of a library, QL will unpack it before displaying it.  It 
  494.  
  495. features random access paging through files, a string or hex byte 
  496.  
  497. search, memory display, and can extract files from libraries.
  498.  
  499.  
  500.  
  501. LD.COM and CREATE.COM.  Library Disk opens LBR files and causes CP/M 
  502.  
  503. to treat them as if they were disk drives.  If used with CCP+, the 
  504.  
  505. library name is displayed in the prompt along with the directory name. 
  506.  
  507. This gives the effect of working in a disk partition or subdirectory.  
  508.  
  509. CREATE, which I've renamed to MKDIR, makes empty libraries.
  510.  
  511.  
  512.  
  513. CHN31.COM.  CHN creates a COM file from a chain of CP/M commands.  CHN 
  514.  
  515. can take on many of SUBMIT's functions.
  516.  
  517.  
  518.  
  519. ARCOPY.COM version 2.1.  This program replaces PIP, RENAME, and TYPE.  
  520.  
  521. It is packed with features, including copying to or from different 
  522.  
  523. user areas, to the printer or console, and renaming or moving files 
  524.  
  525. (erase after copy).
  526.  
  527.  
  528.  
  529. DA.COM.  Directory Attributes can set or reset the system, read only, 
  530.  
  531. archive, or special 1 - 4 attributes for a file or group of files.  It 
  532.  
  533. also functions as a directory program.
  534.  
  535.  
  536.  
  537. HIST.COM.  This history program for CP/M+ quickly recalls any of the 
  538.  
  539. last 20 commands typed to the system.  Command lines can be edited and 
  540.  
  541. reused.
  542.  
  543.  
  544.  
  545. HP+.COM.  A memory resident calculator based on the popular Hewlett- 
  546.  
  547. Packard.  It can be popped up from within applications.
  548.  
  549.  
  550.  
  551. SETDIR.COM.  A CCP+ utility for loading directory names into memory.
  552.  
  553.  
  554.  
  555. LOADKEY2.COM.  This program will load a custom keyboard file created 
  556.  
  557. with KEYFIG and saved with SAVEKEY2.COM.
  558.  
  559.  
  560.  
  561. ZDE13.COM.  ZDE is the latest version of VDE, the Video Display 
  562.  
  563. Editor.  ZDE uses Wordstar commands, is memory resident, and includes 
  564.  
  565. programmable macros.  It is better than many commercially available 
  566.  
  567. word processors for 128 mode and is by far my favorite C128 editor.
  568.  
  569.  
  570.  
  571. E.COM.  This is a command file created with CHN.COM.  Its syntax is: 
  572.  
  573.      E du:filename
  574.  
  575. The definition of E is:  
  576.  
  577.      LOADKEY2 ZDE.KEY!ZDE13 $1 $2!LOADKEY2 DEFAULT.KEY
  578.  
  579. What this does is load a special keyboard file that places ZDE commands on 
  580.  
  581. the keys I want them on, then loads ZDE along with the file to be edited.  
  582.  
  583. After using ZDE, standard keyboard definitions are loaded back into the 
  584.  
  585. system.  This method can be used to customize any application or program by 
  586.  
  587. automatically loading keyboard layouts that change, simplify or combine 
  588.  
  589. commands and assign them to almost any key.
  590.  
  591.  
  592.  
  593. I use a similar CHN command file for loading terminal software.  
  594.  
  595. Here's the command line:
  596.  
  597.      LOADKEY2 TERM.KEY!MEX114 $1!CONF BAUD=75,FEEL=0!LOADKEY2 DEFAULT.KEY
  598.  
  599. This line loads the keyboard definition file TERM.KEY, then loads MEX114.  
  600.  
  601. When I quit MEX, CONF resets the system baud rate to 75 and LOADKEY2 
  602.  
  603. reloads the standard keyboard layout.  All CP/M terminal programs I've seen 
  604.  
  605. set the system baud rate to 1200, but don't reset it when they finish.  If 
  606.  
  607. you think the system is slow at 300 baud, you don't ever want to see it 
  608.  
  609. outside of a terminal program at 1200 baud.  By using this command line, 
  610.  
  611. you never will.
  612.  
  613.  
  614.  
  615. CP/M can be plenty of fun to tinker with.  Both the operating system 
  616.  
  617. and applications give ample opportunities for customization.  One you 
  618.  
  619. get CP/M up to speed and discover some of the excellent software available 
  620.  
  621. for it, you might find your new boot disk spinning in the drive more often.
  622.  
  623.