home *** CD-ROM | disk | FTP | other *** search
- d
- -^c
-
-
- Licensed users are granted the right to include these changes
- in CP/M-86 V1.1 software.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- All Information Presented Here is Proprietary to Digital Research
-
- 2
-
-
-
-
-
-
- CP/M 86 V1.1
- Patch 10, BDOS, 5/20/82
-
- Copyright 1982 by Digital Research
- CP/M-86 is a registered trademark of Digital Research.
- ASM-86 and DDT-86 are trademarks of Digital Research.
-
-
- Program: CPM.SYS and CPM.H86
- Products and Serial Numbers Affected: CP/M-86 V1.1 C86-000-00746
- through C86-000-01001
-
-
- Error Description:
-
- CP/M-86 does not return an error indication code for an invalid
- function code. This patch forces the BDOS to return 0FFFFH in AX
- and BX if a function code is out of range.
-
-
- Patch Procedure:
-
- To patch the CPM.H86 file, assemble the following program stub
- with ASM-86 and name it BADFUNC.H86. Concatenate BADFUNC.H86 to
- the end of the CPM.H86 file using the PIP command:
-
- A>PIP CPM.H86=CPM.H86,BADFUNC.H86
-
- The modified CPM.H86 file replaces the original. You can use the
- modified CPM.H86 file with your CBIOS to build a system. Refer to
- the CP/M-86 Microcomputer Control Program System Guide for
- information on the organization of CPM.SYS. Make a back-up copy of
- CPM.SYS and CPM.H86 before making the following changes:
-
-
- Title 'BAD FUNC NUMB 5/20/82'
-
- ;
- ; This program patches CPM86 V1.1 so it returns an 0FFFFH
- ; in BX and AX.
- ;
- CSeg
- Org 0A50H
- Label_0:
- Jb OK
- Mov Word ptr .249bH, 0FFFFH
- Ret
- Ok:
- Jmp Label_1
-
- Org 0B94H
- Jmp Label_0
-
- Org 0B97H
- Label_1:
-
-
- All Information Presented Here is Proprietary to Digital Research
-
- 1
-
-
-
- CP/M-86 V1.1 Patch 10
-
-
- End
-
-
- Or, you can patch the CPM.SYS file directly using DDT-86 .
- Make a back-up copy of CPM.SYS before making the following changes:
-
-
- A>ddt86
- DDT86 1.1
-
- -rcpm.sys
- START END
- NNNN:0000 NNNN:397f
- -s0ad0
- NNNN:0AD0 44 72
- NNNN:0AD1 65 07
- NNNN:0AD2 63 c7
- NNNN:0AD3 65 06
- NNNN:0AD4 6D 9b
- NNNN:0AD5 62 24
- NNNN:0AD6 65 ff
- NNNN:0AD7 72 ff
- NNNN:0AD8 20 c3
- NNNN:0AD9 32 e9
- NNNN:0ADA 38 3b
- NNNN:0ADB 20 01
- NNNN:0ADC 38 .
- -s0c14
- NNNN:0C14 72 e9
- NNNN:0C15 01 b9
- NNNN:0C16 C3 fe
- NNNN:0C17 8A .
- -wcpm.sys
- -^c
-
-
- Licensed users are granted the right to include these changes
- in CP/M-86 V1.1 software.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- All Information Presented Here is Proprietary to Digital Research
-
- 2
-
-
-
-
-
-
- CP/M-86 V1.1
- Patch 11, BDOS, 5/20/82
-
- Copyright 1982 by Digital Research
- CP/M-86 is a registered trademark of Digital Research.
- ASM-86 and DDT-86 are trademarks of Digital Research.
-
-
- Program: CPM.SYS and CPM.H86
- Products and Serial Numbers Affected: CP/M-86 V1.1 C86-000-00746
- through C86-000-01001
-
-
- Error Description:
-
- If the system denies an absolute memory request, the system
- does not return an error-indication code. This patch returns 0FFFFH
- in AX if the system denies a memory request.
-
-
- Patch Procedure:
-
- To patch the CPM.H86 file, assemble the following program stub
- using ASM-86 and name the file PATCH11.A86. Concatenate
- PATCH11.A86 to the end of the CPM.H86 file using the following PIP
- command:
-
- A>PIP CPM.H86=CPM.H86,PATCH11.H86
-
- The modified CPM.H86 file replaces the original. Use CPM.H86 with
- your CBIOS to build a system. Refer to the CP/M-86 Microcomputer
- Control Program System Guide for information on the organization of W
- the CPM.SYS file.
-
-
- Title 'Patch11 5/20/82'
-
- Loaderr_loc Equ 0F1EH ;Addr of load error routine
- Load59_Ret Equ 0F06H ;Exit from load error routine
- Pat_offset Equ 0A30H ;Patch area
-
- User_Parm_Seg Equ 02323H ;User's data segment
- Aret Equ 0249BH ;Return value
- Param_Seg Equ 0249DH ;User's data segment at entry
-
- Cseg
-
- Org Pat_Offset
-
- Patch:
- Mov Ax, .User_Parm_Seg
- Mov .Param_seg, Ax
- Mov Word ptr .Aret, 0FFFFH
- Jmp loadret
-
-
-
- All Information Presented Here is Proprietary to Digital Research
-
- 1
-
-
-
- CP/M-86 V1.1 Patch 11
-
-
- Org Load59_ret
- loadret:
- Org Loaderr_loc
- Jmp Patch
-
- End
-
-
- Or, you can patch your CPM.SYS file directly using the
- following DDT-86 commands. Make a back-up copy of CPM.SYS before
- making the following changes:
-
-
- A>ddt86
- DDT86 1.1
- -rcpm.sys
- START END
- NNNN:0000 NNNN:397F
- -sab0
- NNNN:0AB0 00 a1
- NNNN:0AB1 00 23
- NNNN:0AB2 00 23
- NNNN:0AB3 00 a3
- NNNN:0AB4 00 9d
-
-
-
- CP/M-86 V1.1
- Patch 12, SUBMIT, 5/24/82
-
- Copyright 1982 by Digital Research
- CP/M-86 is a registered trademark of Digital Research.
- DDT-86 is a trademark of Digital Research.
-
-
- Program: SUBMIT.COM
- Products and Serial Numbers Affected: CP/M-86 V1.1 C86-000-00746 This patch modifies the SUBMIT utility to enable execution fromtch Procedure:
-
- Make a back-up copy of SUBMIT.COM before using DDT-86 to makees:
-
-
- A>ddt86
- DDT86 1.1
- -rsubmit.cmd
- START END
- nnnn:0000 nnnn:0F7F
- -aa2
- nnnn:00A2 mov dl,ff ;instruction was mov dx,00h
- nnnn:00A4 nop
- nnnn:00A5 .
- -wsubmit.cmd
-
-
-
-
- CP/M-86 V1.1
- Patch 13, BDOS, 06/08/82
-
- Copyright 1982 by Digital Research
- CP/M-86 is a registered trademark of Digital Research.
- ASM-86 and DDT-86 are trademarks of Digital Research.
-
-
- Program: CPM.H86 and CPM.SYS
- Products and Serial Numbers Affected: CP/M-86 V1.1 0-000-00000
-
- An area of memory can be overwritten when a user programram Load).
-
-
- Patch Procedure:
-
- To patch the CPM.H86 file, type the program stub on the
- following page into a file named PATCH13.A86. Assemble PATCH13.A86
- Concatenate PATCH13.H86 toIP CPM.H86=CPM.H86,PATCH13.H86
-
- The newly modified CPM.H86 file replaces the original and can
- used with your CBIOS to build a system. Refer to the CP/M-86
- information on they modifications.
-
-
- Title 'PATCH13 6/8/82'
- ;
- ; An area of memory may be overwritten when a
- ; user program executes a Function 59 (program load).
-
- Patch_Area Equ 0A00H
- Bdos Equ 00E0H
-
- Cseg
-
- Org Patch_Area
-
- Start_Patch:
-
- Mov Cs:byte ptr .2498H, 01
-
- Push Ax
- Mov Ah, Cs:.2327H
- Mov Al, Cs:.2313H
- Push Ax
- Int Bdos
-
- Pop Ax
- Mov Cs:.2313H, Al
- Mov Cs:.2327H, Ah
- Pop Ax
-
- Ret
- Nop
-
- Org 0C42H
-
- Jmp Start_Patch
-
- Nop
- Nop
- Nop
- Nop
- Nop
- Nop
-
- End
-
-
- Or, you can patch your CPM.SYS file directly using DDT-86
- using the following changes:
-
-
- A>ddt86
- DDT86 1.1
- -rcpm.sys
- START END
- NNNN:0000 NNNN:397F
- -aa80
- NNNN:0A80 cs: mov byte [2498], 01
- NNNN:0A86 push ax
- NNNN:0A87 cs: mov ah, [2327]
- NNNN:0A8C cs: mov al, [2313]
- NNNN:0A90 push ax
- NNNN:0A91 int 0e0
- NNNN:0A93 pop ax
- NNNN:0A94 cs: mov [2313], al
- NNNN:0A98 cs: mov [2327], ah
- NNNN:0A9D pop ax
- NNNN:0A9E ret
- NNNN:0A9F nop
- NNNN:0AA0 .
- -acc2
- NNNN:0CC2 jmp 0A80
- NNNN:0CC5 nop
- NNNN:0CC6 nop
- NNNN:0CC7 nop
- NNNN:0CC8 nop
- NNNN:0CC9 nop
- NNNN:0CCA nop
- NNNN:0CCB .
- -wcpm.sys
- -^c
-
-
- CP/M-86 V1.1
- Patch 14, TRACK.A86, 8/1/82
-
- Copyright 1982 by Digital Research
- CP/M-86 is a registered trademark of Digital Research.
- ASM-86 is a trademark of Digital Research.
- Compiled October 1982
-
-
- Program: TRACK.A86
- Products and Serial Numbers Affected: CP/M-86 V1.1 C86-000-007460
-
-
- Error Description:
-
- Assembling TRACK.A86 produces a syntax error because of an
- improper ASM-86 directive.
-
-
- Patch Procedure:
-
- Make a back-up copy of TRACK.A86. Install this patch with
- : *#a <cr>
- 1: *214:15t <cr>
- 214: dseg
- 215:
- 216: cpm_disk rb 1
- 217: cpm_track rw 1
- 218: cpm_sec rw 1
- 219:
- 220: dma_longword rd 1
- 221: org dma_longword
- 222: dma_offset rw 1
- 223: dma_segment rw 1
- 224:
- 225: cur_disk rb 1
- 226: cur_sec rw 1
- 227: cur_track rw 1
- 228: cur_dma rw 1
- 214: *220:2k <cr>
- 220: *222:i <cr>
- 222: dma_longword equ dword ptr dma_offset
- 223: ^z <cr>
- 224: *214:15t <cr>
- 214: dseg
- 215:
- 216: cpm_disk rb 1
- 217: cpm_track rw 1
- 218: cpm_sec rw 1
- 219:
- 220: dma_offset rw 1
- 221: dma_segment rw 1
- 222: dma_longword equ dword ptr dma_offset
- 223:
- 224: cur_disk rb 1
- 225: cur_sec rw 1
- 226: cur_track rw 1
- 227: cur_dma rw 1
- 228:
- 214: *e <cr>
- A>
-
-
- CP/M-86 V1.1
- Patch 15, BDOS, 11/19/82
-
- Copyright 1982 by Digital Research
- CP/M-86 is a registered trademark of Digital Research.
- DDT-86 is a trademark of Digital Research.
- Compiled December 1982
-
-
- Program: CPM.SYS, CPM.H86
- Products and Serial Numbers Affected: CP/M-86 V1.1 C86-000-00746scription:
-
- The BDOS does not load a file with absolute requirements forRA or STACK segments.
-
-
- Patch Procedure:
-
- Make a back-up copy of CPM.SYS before you use DDT-86 to makeWm.sys
- START END
- nnnn:0000 nnnn:xxxx (note the value of nnnn)
- -hnnnn,8
- nnnn+8 nnnn-8 (note the value of nnnn+8)
-
- -xcs
- CS 0000 nnnn+8
- DS 0000 nnnn+8
- SS 0040 nnnn+8
- ES 0000 nnnn+8
- IP 0000 .
- -add4
- nnnn+8:0DD4 jmp 24e2
- nnnn+8:0DD7 .
- -a24e2
- nnnn+8:24E2 cmp word 03[si],0000
- nnnn+8:24E6 jz 24f2
- nnnn+8:24E8 push ax
- nnnn+8:24E9 mov ax,03[si]
- nnnn+8:24EC mov [22d4],ax
- nnnn+8:24EF pop ax
- nnnn+8:24FO jmps 24f5
- nnnn+8:24F2 mov [22d4],ax
- nnnn+8:24F5 jmp 0dd7
- nnnn+8:24F8 .
- -wcpm.sys
- -^C
- A>
-
- Or, you can assemble the following code file (PATCH15.A86) tooncatenate PATCH15.H86 to the end of theM.H86=CPM.H86,PATCH15.H86
-
- The newly modified CPM.H86 file replaces the original and can with your CBIOS to build a system. Refer to Section 7.2 into study theodifications.
-
-
- ;
- ; The BDOS does not properly load a CMD file with absolute
- ; load addresses specified in the header record for EXTRA
- ; and/or STACK segments.
-
- Patch_area equ 24E2h
- Jmp_point equ 0DD4h
- Patch_return equ 0DD7h
- Pag0 equ word ptr .22D4h
- Abs equ word ptr 3
-
- CSEG
-
- org jmp_point
- jmp patch
-
- CSEG
-
- org patch_return
- Patch_ret:
-
- CSEG
-
- org patch_area
- Patch:
- cmp abs[si],0 ! jz from_ax
- push ax
- mov ax,abs[si]
- mov pag0,ax
- pop ax
- jmps end_patch
- From_ax:
- mov pag0,ax
- End_patch:
- jmp patch_ret
-
- end
-
-
- Licensed users are granted the right to include these changesed Here is Proprietary to Digital Research
-
-
- YY:1337 RCR AL,1
- YYYY:1339 JNB 1375
- YYYY:133B MOV BYTE [01E4],00
- -a132a
- YYYY:132a test byte [02b9],01
- YYYY:132f jz 1338
- YYYY:1331 call 13b6
- YYYY:1334 rcr al,1
- YYYY:1336 jnb 1375
- YYYY:1338 xor al,al
-
-
-
-
-
- All Information Presented Here is Proprietary to Digital Research
-
- 1
-
-
-
- CP/M-86 V1.1 Patch 09
-
-
- YYYY:133a mov [0198],al
- YYYY:133d mov [01e4],al
- YYYY:1340 .
- -wpip.cm
- CP/M-86..V1.1 for the IBM..Displaywriter
- Application Note 01, 9/1/83
- Nonstandard Printer Page Lengths
-
- Copyright 1983 by Digital Research Inc.
- CP/M-86 is a registered trademark of Digital Research Inc.
- IBM is a registered trademark of International Business Machines.
- Compiled September 1983
-
-
- Program: BIOS (Basic Input/Output System)
-
- Applicable products and version numbers: CP/M-86 R1.1 (DW),
- maintenance release 1.10
-
-
- The SETUP.CMD program, distributed with CP/M-86 R1.1 for the IBM.
- Displaywriter (maintenance release 1.10), provides the user with
- three alternative page length choices when configuring the system
- for a specific IBM printer, paper-feed method, and paper length. A
- lengths of 0, 66, or 88 lines per page can be selected, a length of
- 0 implying that the BIOS is to do no line counting.
-
- The file CPM.SYS may be altered with the following procedure to
- allow other than the default line lengths. Use DDT86.CMD, the
- debugging program included with CP/M-86 DW, to change one or two
- bytes in the file. These bytes contain binary numbers corresponding
- to the assumed number of lines per page when 66 lpp is chosen from
- the SETUP menu, or 88 lpp is selected. Before proceeding, determine
- the values other than 66 or 88 you would like to set and convert
- that number to a 2-digit hexadecimal value. For instance, a page
- length of 58 lines would convert to 3A in the hexadecimal base. A
- page length of 64 equals 40 hex.
-
- The following example below changes the 66 lpp option to 58. The 88
- lpp setting is chosen to remain at 88. The address corresponding to
- the 66-lpp byte is 4640 (hex) and the address corresponding to the
- 88-lpp byte is 4641 (hex). Make sure you have an unmodified back-up
- copy of CPM.SYS before executing the following commands. User
- entries are in bold type, and comments follow semicolons. The files
- CPM.SYS, DDT86.CMD, and STAT.CMD must be present on the diskette in
- drive A. Replace the 3A and 58 entries with your chosen page
- lengths.
-
-
- A>stat cpm.sys rw
-
- A:CPM .SYS set to Read Write (RW)
- A>ddt86
- DDT86 1.1
- -rcpm.sys
- START END
- xxxx:yyyy xxxx:zzzz ;these 4-digit numbers will vary
- -s4640
- xxxx:4640 42 3a ;4640 is the address for 66 lpp
- xxxx:4641 58 58 ;4641 is the address for 88 lpp
- xxxx:4642 DC . ;a period exits from s mode
- -wcpm.sys ;overwrite the old file with the new
- -^c ;code-c on the Displaywriter
-
- A>stat cpm.sys ro
-
- A:CPM .SYS set to Read Only (RO)
- A>
-
-
- The new lines-per-page values take effect on the next cold-start
- (when "code-end" is typed or when the machine is cycled off then
- on). Thereafter, when dealing with this copy of CPM.SYS, the newly
- chosen page-lengths take effect when the 66- or 88-lines option has
- been chosen from within the SETUP program.
- Licensed users are granted the right to include these modifications
- in their Digital Research software.
-
-
-
-
-
- CP/M-86..R1.1 for the IBM..Displaywriter
- Application Note 02, 9/1/83
- Keyboard Customization
-
- Copyright 1983 by Digital Research, Inc.
- CP/M-86 is a registered trademark of Digital Research Inc.
- DDT-86 is a trademark of Digital Research Inc.
- IBM is a registered trademark of International Business Machines.
- Compiled September 1983
-
-
- Applicable products and version numbers: CP/M-86 R1.1, maintenance
- release 1.10 for the IBM. Displaywriter
-
-
- The BIOS section of the operating system, contained in the disk file
- CPM.SYS, contains a translate table to convert the hardware-
- generated keyboard codes to the ASCII characters that CP/M-86 uses.
- Several of the keys go unused by CP/M-86, and the operating system
- normally ignores any input they generate. However, with the
- following instructions, you can redefine these keys to produce any
- desired ASCII character. You should have access to a standard
- ASCII character chart.
-
- In addition to the 11 keys that you may define, the codes generated
- by the uppercase period and the uppercase comma may also be
- customized.
-
- The unused keys that you may redefine are contained in two separate
- key groups on the keyboard. The first is the 10-key group on the
- extreme left; this group is 2 keys wide by 5 rows. The second is
- the 8-key group in the upper right area of the keyboard; this group
- is 4 keys wide by 2 rows. The following figure shows these key
- groups:
-
-
- +---+---+ +---------------------------------+ +---+---+---+---+
- | | | | | | | E | F | G |
- +---+---+ | ++ +---+---+---+---+
- | | A | | | | H | I | J | K |
- +---+---+ | | +---+---+---+---+
- | | | | |
- +---+---+ | | +---+---+---+---+
- | B | C | | | | |
- +---+---+ | | + +
- | D | | +----+ +-----+ | |
- +---+---+ | | +---+---+---+---+
- +---------------------+
-
-
- Figure 1-1. Redefinable Keyboard Keys
-
-
- You may redefine any or all of the keys labeled A-K in Figure 1-1,
- as well as the uppercase period and comma.
-
- Note: The letters A-K in the figure and in the following table do
- not correspond the keys labeled A-K on the DW keyboard. They apply
- only to the keys referenced in the figure.
-
- Each key has associated with it two particular hexadecimal addresses
- within the CPM.SYS file, corresponding to the two ASCII codes which
- are generated when the key is pressed with and without the shift or
- caps lock in effect. These addresses are tabulated in the following
- table:
-
-
- Table 1-1. Keyboard Hexadecimal Addresses
-
- Key Address Address
- When key is not shifted When key is shifted
-
- A 4AD1 4AD2
- B 4ACF 4AD0
- C 4AED 4AEE
- D 4AD5 4AD6
- E 4AD7 4AD8
- F 4AB5 4AB6
- G 4AEF 4AF0
- H 4AB7 4AB8
- I 4AB9 4ABA
- J 4ABB 4ABC
- K 4ABD 4ABE
- , N/A 4A04
- . N/A 4A06
-
-
- The following example demonstrates how to define key B, in Figure 1-
- 1, to cause it to generate the < character (ASCII code = 3C hex)
- when shifted and unshifted; key C, in Figure 1-1, to generate the >
- character (3E hex) when shifted and unshifted; and key G, in Figure
- 1-1, to generate the ASCII code for CTRL-R (12 hex) when shifted and
- CTRL-C (03) when unshifted. Also, the uppercase comma is redefined
- as < and uppercase period is redefined as >.
-
- The procedure shown in the example requires the files STAT.CMD,
- DDT86.CMD, and CPM.SYS to be present in drive A:. You should be
- familiar with the DDT-86 debugger before proceeding. See the CP/M-
- 86 Operating System Programmer's Guide for information on DDT-86.
-
- Note: Make absolutely certain you have an unmodified backup of the
- CPM.SYS file on another diskette before you customize your keyboard.
-
- User entries are in bold type. Comments follow semicolons on a
- line.
-
- A>stat cpm.sys rw
-
- A:CPM .SYS set to Read Write (RW)
- A>ddt86
- DDT86 1.1
- -rcpm.sys
- START END
- xxxx:yyyy xxxx:zzzz ;these 4-digit numbers will vary
- -s4acf
- xxxx:4ACF 00 3c ;key B (unshifted) to ASCII <
- xxxx:4AD0 00 3c ;key B (shifted) to ASCII <
- xxxx:4AD1 00 .
- -s4aed
- xxxx:4AED 00 3e ;key C (unshifted) to ASCII >
- xxxx:4AEE 00 3e ;key C (shifted) to ASCII >
- xxxx:4AEF 00 .
- -s4aef
- xxxx:4AEF 00 03 ;key G (unshifted) to CTRL-C
- xxxx:4AF0 00 12 ;key G (shifted) to CTRL-R
- xxxx:4AF1 00 .
- -s4a04
- xxxx:4A04 2C 3c ;uppercase comma to ASCII <
- xxxx:4A05 2E .
- -s4a06
- xxxx:4A06 2E 3e ;uppercase period to ASCII >
- xxxx:4A07 2F .
- -wcpm.sys ;this overwrites the old CPM.SYS
- -^c ;code-c on the Displaywriter
-
- A>stat cpm.sys ro
- A:CPM .SYS set to Read Only (RO)
- A>
-
-
- The newly-programmed key codes take effect on the next cold-start
- (which means, after "code-end" is typed, or after the machine is
- cycled off then on). Replace the CPM.SYS files on other system
- disks with the newly patched file to enable systems booted from
- other disks to generate the same key codes.
-
- This Technical Note was developed and tested by DRI Technical
- Support using standard DRI products. Modifications required to
- compile and execute under nonstandard or non-DRI products are the
- responsibility of the user, as are modifications specific to a given
- application.
-
- DRI specifically disclaims any express or implied warranty and shall
- not be liable for any loss of profits, loss of business, loss of use
- or of data, interruption of business, nor for indirect, special,
- incidental, or consequential damages of any kind caused by the use
- or adaptation of this application note.
-
- Licensed users are granted the right to include these modifications
- in their Digital Research software.
-
-
- a segment at entry
-
- Cseg
-
- Org Pat_Offset
-
- Patch:
- Mov Ax, .User_Parm_Seg
- Mov .Param_seg, Ax
- Mov Word ptr .Aret, 0FFFFH
- 0 0800 0100 C8FF
- #S645
- 0645 0D 0E
- 0646 00 .
- #WSAVE.COM
- 000Eh record(s) written.
- #G0
- A>
-