Several parameter bytes in fixed locations in the BIOS can be patched busing DDT and written back to disk using SYSGEN. When a MOVCPM or SYSGEN image is loaded into memory using DDT, the parameter bytes are at the following locations: 2133h - MODE byte (see MODE byte below) 2134h - Default IOBYTE (see IOBYTE below) 2135h - Console input mask (input byte AND'd with this mask) 2136h - Reader input mask (input byte AND'd with this mask) 2137h - Console output mask (output byte AND'd with this mask) 2138h - Punch output mask (output byte AND'd with this mask) 2139h - List output mask (output byte AND'd with this mask) 213Ah - Motor startup delay in 0.1 sec intervals Try 4 (0.4sec) for 3.5" drives and 8 (0.8sec) for 5.25" 213Bh - Head settle delay after final step (in ms) 25ms is a safe generic value 213Ch - Delay before reversing step direction (in ms) 25ms is a safe generic value 213Dh - Head settle delay after head load (in ms) Use zero for 3.5" drives or 5.25" drives which don't have a head load solenoid. Use 50ms if you hear a head load solenoid click when a drive is selected. ---------------------------------------------------------------------- MODE byte flags at 2133h in SYSGEN image fCLDCMD in 01h bit, true = CCP process cmd on cold start fWRMCMD in 02h bit, true = CCP process cmd on warm start fENAINT in 10h bit, true = re-enable interrupts after disk I/O The default MODE byte has the 10h bit set so interrupts are enabled when exiting disk I/O calls To use CP/M command execution on cold and/or warm start, set the corresponding flag(s) true and place the command string into the CCP input buffer at 0B08h in the SYSGEN image in memory. The length of the string should be placed at 0B07h. ---------------------------------------------------------------------- IOBYTE at 2134h in SYSGEN image CON device (bits 1,0): 00 - TTY serial port at A0h* 01 - CRT serial port at F0h 10 - BAT indirect through RDR/LST 11 - UC1 serial port at 90h RDR device (bits 3,2): 00 - TTY serial port at A0h 01 - PTR serial port at F0h* 10 - UR1 serial port at 90h 11 - UR2 serial port at A0h PUN device (bits 5,4): 00 - TTY serial port at A0h 01 - PTP serial port at F0h* 10 - UP1 serial port at 90h 11 - UP2 serial port at A0h LST device bits (7,6): 00 - TTY serial port at A0h 01 - CRT serial port at F0h 10 - LPT parallel port at E0h* 11 - UL1 serial port at 90h * Default setting (94h) ---------------------------------------------------------------------- Saving a SYSGEN Image to Disk (to modify with DDT) In addition to writing a CP/M boot image to the boot tracks on disk, SYSGEN also allows reading the CP/M boot image into memory. Following is a typical session using SYSGEN to read the CP/M image from the boot tracks and save it as a standard CP/M file on disk: A>SYSGEN MFA SYSGEN VER 2.0 SOURCE DRIVE NAME (OR RETURN TO SKIP)A SOURCE ON A, THEN TYPE RETURN FUNCTION COMPLETE DESTINATION DRIVE NAME (OR RETURN TO REBOOT) A>SAVE 38 CPMOLD.COM Here is a sample session using DDT to load the saved SYSGEN image and display the parameter locations for modification using the DDT "S"et command. DDT exit is by CTRL-C or G0 (GO zero). A>DDT CPMOLD.COM DDT VERS 2.2 NEXT PC 2700 0100 -S2133 2133 10 00 (type in new value or RETURN for next location) 2134 94 2135 7F 2136 FF 2137 7F 2138 FF 2139 FF 213A 08 213B 19 213C 19 213D 32 213E 31 . (period terminates the "S"et command) -G0 A> The modified image can be saved immediately after exiting DDT: A>SAVE 38 CPMNEW.COM The new image can be written to disk using SYSGEN A>SYSGEN CPMNEW.COM