Kingston 64MB Memory Expansion Adapter
Init file for @71D0.ADF
mc64a01.PDF KTM-MC64/X for IBM PS2 Model
70 and 80
KTM-PS64 for IBM PS/2 Model 70, 80, and 90
ADF / Util disk for KTM-MC64 Memory Expansion (V3.9)
PS64 16-bit slot? Mine has a full 32-bit connector...
The Kingston Technology KTM-PS64 Memory Expansion Board
is capable of adding up to 64MB of Random Access Memory to IBM PS/2 Model
70, 80, and 90 personal computer systems. From one to four Single In-line
Memory Modules (SIMMs) can be plugged into sockets on each KTM-PS64 board,
and can be combined in a wide variety of memory configurations. The KTM-PS64
board can be installed in any 16-bit expansion slot on the PS/2 system
The KTM-PS64 supports both extended (linear) and expanded
(paged) memory options, and also supports LIM EMS version 4.0 software
to enable memory paging.
If you run OS/2, you should allocate all the new Kingston
memory as extended memory, since OS/2 can address all added memory directly,
and does not require expanded memory.
If you run DOS, you can allocate the new Kingston memory
as either extended or expanded or a combination of both.
I used some IBM 4M 80nS, PN 68X6343, FRU 92F3337
Carlyle Smith sez
Any SIMMs (no matter the size) on the MC64 board _must_ be coded
as 80ns, and they _must_ perform as 80ns or faster (not slower).
Just take 60ns parity SIMMs and solder a tiny (U-shaped is better) wire
across the R4 pads. The 8570 requires at least one SIMM in the leftmost
planar socket to work.
In another experiment, DonPeterWendt reported that with
his AccuLogic add-in board on a P75, he had to leave one slot on the systemboard
empty to realize the full value of the memory on the memory expansion
board. What happens if you fill up the MC64 with 80ns SIMMs and leave one
systemboard slot empty??
In order to use the expanded memory feature, you must first install
the expanded memory device driver, KEMM.SYS in CONFIG.SYS
DEVICE=KEMM.SYS FRAME=XXXX BASE=YYYYYHANDLES=ZZZ
KEMM.SYS to look for a valid page frame. The page frame is the first address
of the EMS mapping window. Ex. :FRAME=C000
what part of extended memory will be allocated for EMS. Determine the base
EMS parameter with YYYYY=Total Memory (KB) + 384 - Amount of EMS Required
For example, if your computer has 8MB (8,192KB) of memory, 640KB base memory
and 7,552KB is used as EMS. For 2MB (2048KB) of EMS, calcule:YYYYY = 8192
+ 384 - 2048 = 6428
In this case, the base parameter would be: BASE=6428
# of handles and names available. Handles are used to identify a block
of memory requested by an application. Each application that uses EMS requires
at least one handle. Some programs require more than one handle and these
programs will prompt you if they run out of handles. The acceptable handle
parameter range is from 16 to 255.
Note that each handle/name defined consumes EMS, making
less EMS available for your application. Because of this, you should only
define enough handle/name parameters to support your application. In most
cases, the default value of 32 should be adequate for most applications.
If you require more than 32 handles, you can specify a greater number of
handles. For example: HANDLES=64
Screen Message from KEMM.SYS
As the computer boots, the following messages will appear:
KEMM: 80386 Expanded Memory Manager, V 4.0
Copyright 1990, Kingston Technology Corp.
Page Frame Address at Segment C000H
Total EMS Memory is 9472Kbyte (592 pages)
KEMM: EMS driver is successfully loaded!
Regardless of how much extended memory your computer has, only a maximum
15MB can be allocated as expanded memory. In fact, to preserve your extended
memory, you should only allocate the amount of expanded memory necessary
to support your particular application.
Original from Peter Wendt (and then lifted from Fred Spencer's site)
> The trick is you must have an adapter in there somewhere with a BIOS
or a CPU on it, I've forgot which. The IBM memory or the SCSI adapters
This part is definitely misleading or misunderstood.
- even busmaster adapters with 32-bit addressing width cannot substitute
the missing DMA functions for the memory above 16MB
- the ROM they supply is for their own function. The BOPT-workaround
works even with no other adapter installed in the system than the two memory
cards. (BOPT = Bypasses One Problem
Temporarily). Also the use of Kingston or Acculogic cards pushes the
system over the 16MB-limit.
The problem is the 24-bit DMA-chip on Mod. 70 and 80 -
since 2^24 = 16.0MB addressing range. This is the range where DMA can be
used to transfer data among the memory - if the DMA cannot be used direct
adressing (PIO) must be used to transfer data to the locations above the
DMA-adressing range. Works as well but is a little slower.
A problem on the older models might occur with detection
of memory errors. The parity-informations are mainly transported with DMA
to detect and handle bit-failures. (Mainly cause an NMI error though -
and the system stops with 111 ?????? or such)
If the DMA cannot directly access the memory a parity
error *might* be undetected. The memory handler invoked with the BOPT-workaround
uses the PIO-mode for the error-detection ... the Kingston and Acculogic
cards have own parity control integrated in their chipsets.
This however has nothing to do with the memory *refresh*,
which is directly controlled by the memory subsystem on the planar and
on the memory cards.
Let's say the system has 8MB on the planar and 16MB on
a Kingston card. The planar-8MB are under full control of the boards DMA
and parity logic. The 16MB on the Kingston card are on the control of the
cards' parity control and the lower 8MB can be accessed directly by the
systemboard DMA - the upper 8MB are used via normal 32-bit direct addressing
The fastest memory access is that for the planar memory:
DMA plus 0 - 1 waitstate make it rather quick. The slowest memory access
is that on the range from 16MB - 24MB: bytewise direct-accessing to read
from memory and to write to memory plus 1 - 3 wait-states on "channel memory"
take some time.
Pushing a Mod. 70 / 80 over the 16MB border makes only
sense with a real 32-bit operating system, which can handle the different
memory adressing models with no problems (like OS/2) - DOS / Windows may
have some problems.
I ran a Mod. 80-A31 under OS/2 Warp Server with 40MB for
quite some time without any problem. It had 8MB on the planar (2 x 4MB),
32MB on an Acculogic card (4 x 8MB), an IBM SCSI controller without Cache
/A, an Adaptec AHA-1640 (for tape and CD), an IBM Token Ring 16/4 Adapter
/A and an AMS 2-LPT card.
9595 Main Page