Contents of the JRAM704K.DOC file
HOW TO USE 704K WITH JDRIVE & JSPOOL
First let's see why we can't use 704k now. The last 64k of 704k has
addresses of A0000-AFFFF. The first digit of all the addresses is
"A" so we refer to it as page A or PAGE 10. Jspool needs a page to use
for BANK SELECTING. This scheme allows JRAM memory to appear 64k
at a time in unused addresses of the 8088's address space. JSPOOL uses
page 10 (A0000-AFFFF) for bank selecting when the spool buffer is
allocated on the ram disk created by JDRIVE. JDRIVE uses other page(s)
for bank selecting.
If we look at the source code (the JSPOOL.ASM file) supplied by TALL
TREE (thanks - everyone should supply source!!) we see at about line
number 235 (in my version, your's may vary a little) the following:
;---JETDRIVE and FILE and INIT values
swapbank db 0ah ;used by init (0A typ)
This statement defines the page used by JSPOOL for bank selecting.
This also creates a problem, the last page of DOS will be at
the same location, so now we know the problem. The solution is to tell
JSPOOL to go somewhere else, but where & how? First where: a look at
the IBM TECHNICAL REFERENCE fo the IBM PC/XT reveals some good info.
page 11 (B0000-BFFFF) is used for monitor boards, page 12 (C0000-CFFFF)
is used for hard disk controllers rom, but 13 (D0000-DFFFF) and 14
(E0000-EFFFF) are reserved. If you don't have a hard disk page 12 (C)
should be ok, but if you do try page 13 (D) or 14 (E). If you don't
have some unusual hardware, you should be ok. Let's say we pick page
14 (E) - now what ?
Since TALL TREE has supplied us the source we can just change a backup
copy (none of us are dumb enough to alter the original - right!!)
to look like the following:
;---JETDRIVE and FILE and INIT values
swapbank db 0eh ;used by init (0A typ) PAGE CHANGED !!
Re-ASSEMBLE, LINK & EXE2BIN to produce an updated copy. Replace
JSPOOL.BIN on your system disk and you're almost ready to go.
For those without an assembler you probably can use debug to update
a copy of JSPOOL.BIN as follows:
-d 1a0 l10 ; dump at +A0 (remember debug adds the PSP
for 256 [100H] bytes
XXXX:01A0 00 00 00 00 00 00 00-00 00 0A 00 00 00 00 00 ................
e 1aa 0e
Writing 1B67 bytes
Now we have changed the executable code just like a reassembly would.
This works for all the versions I have. Yours could be different, so
try the source change if you can. If you don't see the 0A at 1AA
you probably have to change somewhere else, but the 0A may be all
by itself and recognizable.
Now we have JSPOOL.BIN taken care of so everything's ok - right?
Well almost. JDRIVE is also bank selecting and we may be conflicting
with it - so what do we do ? JBOOT has a command line parameter to
prevent selecting on specific pages, the "X=nn" parm. All we have to
do is tell him not to use the page we just selected (14 or E) as
DEVICE=JBOOT.BIN 704K/F X=12
Now JSPOOL seems happy - he doesn't clobber DOS and JDRIVE stays
away from JSPOOL's new page. Now use MAKEFILE and you can carve
your spool buffer out of your ram disk and still enjoy 704k in DOS.
This all seems to work fine for me. I've been using it for some time
with no problems, but as with all modifications TEST IT WITH YOUR
HARDWARE AND SOFTWARE. If it breaks when you do this - DON'T DO THIS.
I have no way to test every combination of software and hardware on
the market and can't be responsible if some combinations don't work.
This is easy, logical and seems to work. Try it, and if it doesn't
work I'd like to hear from you. I MAY be able to help. No warranty
just best efforts.
I'd like to thank TALL TREE for what I personally consider one of the
best, most reasonably priced hardware/software combinations on the
market. They deserve praise for supplying the source code to allow
easy custom configurations and education. When I want LOTUS/INTEL
compatiblity, I'll get JRAM III.
183 Bellegrove Circle
Brandon, MS 39042
601 992 0577