THE DOS+ RELOCATOR SYSTEM - INSTRUCTION MANUAL ============================================== Copyright (c) 1980, 1986 by C.B. Falconer. Released to the public domain for non-profit use only. INTRODUCTION ============ This system allows the user to construct his own "MOVDOS+" or "MOVCPM" program, containing his own BIOS and BOOTSTRAP (instead of that for the Intel MDS on the original MOVCPM program or Kaypro 83 on the original MOVDOS+ program). After construction the final system will perform identi- cally to the original Digital Research supplied MOVCPM program, with the following additions: 1: As stated, the users BIOS and BOOTSTRAP are present. 2: The system can relocate DOS+ or CPM on 256 byte bound- aries. This is specified by adding "/n", where n is 1, 2, or 3, to the normal size specifier. This will relocate the system that number of 256 byte pages higher than normal. 3: Should the user make his own patches to the DOS+ or CPM systems, they can be incorporated in the DOSRELOC prog- ram, and that modified system can then be relocated as desired. NOTE: The CP/M system proper is not supplied with this system. It is up to the user to ensure that he uses a valid system, with the appropriate serial numbers etc. embedded. CP/M is the trademark of DIGITAL RESEARCH, who can supply the system. DOSRELOC will copy all serial numbers etc correctly, if installed as listed below, so that all Digital Research subsystems (e.g. PIP, SYSGEN, etc.) will function properly. DOS+ and CCP+ is supplied with the system, and executes on Z80 cpus only. NOTE (for MOVCPM generation): If you already have a suitable MOVCPM for your system, it is not necessary to create all the modules below. The existing bios and boot portions are probably satisfactory images. Such images are probably to be found 080h offset from the locations needed for this system. Check it. OPERATION ========= 1: IF YOUR SYSTEM IS NOT A Kaypro 2/4 (83) edit the source for DOSRELOC (the initial set of customization equates) and re-assemble to create DOSRELOC.HEX. 2: Generate the appropriate CBIOS00.HEX and SBOOT00.HEX files, as outlined in the appendix below. Make sure you have backup copies of everything in case of a malfunction. Make sure you can boot the system up from the one disc you are using. This disc will need to contain copies of the system, DDTZ.COM, MOVCPM.COM, CPMRELOC.HEX, SBOOT00.HEX and CBIOS00.HEX. 3: THIS STEP only needed if you wish to generate a MOVCPM. DOS+ systems are supplied. With DDTZ, load the existing "MOVCPM" program by A>DDTZ MOVCPM.COM and move the existing CCP/BDOS (as supplied by Digital Research) image down by 080h bytes by: -MA00,1FFF,980 For clarity, clean out the junk by: -F100,97f,0 Now install the assembled DOSRELOC by: -IDOSRELOC.HEX -R 3a: Insert your own BIOS, prepared as below, by -ICBIOS00.HEX -R980 and your own bootstrap, again prepared as below, by -ISBOOT00.HEX -Rvalue (see notes for value) (Usually 900 for boot at 0,) exit with control-c (^C) and save the result by A>SAVE 34 DOSRELOC.COM (or ^ other number for your system) 4: Run the relocator generator by A>DOSRELOC the response will be Now "SAVE 34 MOVDOS+.COM" DO IT A>SAVE 34 MOVDOS+.COM CAUTION DOSRELOC cannot be run under DDT etc., since it uses the actual CCP code to generate relocation information. In addition the system disc, when DOSRELOC is run, must contain the proper booter for the running system AND the identicaal system must be running. 5: Read Digital Research's manual on the use of MOVCPM and treat MOVCPMY in exactly the same manner, EXCEPT that to generate an immediately executing system the 2nd para- meter must be "G" (rather than defaulting to execution) . Unless you modify your bootstrap or your bios you can now generate any size DOS+ or CPM system in about 2 seconds, including immediately executing systems. The output of MOVDOS+ is suitable for inserting new BIOS's, bootstraps, etc., just as was the original MOVCPM output. If you generate a system by A>MOVDOS+ 32 {for example} you may follow this immediately by a A>SYSGEN and input the CR to skip system loading. I.E when in doubt, follow Digital Research's instructions. CAUTION If an immediate execution system is generated, it will be unable to reboot itself properly, because the disk proper contains the original system. However, until a reboot occurs everything will be normal. Remember that any program that does a "JMP 0", or a control-c, will usually reboot. DDT and DDTZ always exits with a reboot. APPENDIX ======== To use this system the user MUST have an operational DOS+ or CP/M system, of sufficient size to load MOVCPM with DDT. For CP/M 2.2 this requires a 17K minimum system, although when completed the system will run in a 16/1K system. In addition the user should have the source code for his BIOS and BOOTER. The BIOS must be assembled for a DOS+ or CPM that originates at zero, i.e. as if CCP begins at address zero, and, for CP/M 2.2, as if BDOS begins at address 0800H. In this case the BIOS would be assembled as if it began at address 01600H. The booter image will vary, depending on how it operates. The point is to place a booter, assembled as if it would load a DOS+ or CPM that began at zero, at addresses 900H through 97FH in step 3 above. Remember that the booter will normally operate in a fixed location for all size systems, but will load the system into different addresses, and transfer control accordingly. CAUTION Remember that the CBIOS and SBOOT loaded in step 3 above MUST be identical to those in the executing system, except for execution addresses. If you can't change just one value in the source code to generate either, this system will probably not work. If you don't have the source code for these modules complain viciously to your supplier. If patches or changes are made to the DOS+ or CPM systems, corresponding patches should be made in the zero based image contained in the DOSRELOC.COM module generated in step 3. The result should relocate satis- factorily, provided that no unclean practices (such as self-modifying code) have been used. Again, if the CBIOS uses self-modifying code the system probably will not function, and you should complain to the knucklehead (possibly yourself) who wrote such code.