home *** CD-ROM | disk | FTP | other *** search
- **********************************************************************
- * Janus Handler (ROM Extension) Initialization Trigger *
- * *
- * Fully Public Domain by Jeff Rush - September 7th, 1989 *
- * *
- * BIX: jrush BBS: (214) 231-1372 Rising Star Opus *
- **********************************************************************
-
- This program is used to initialize the Janus Handler when it is placed
- at segment A000 using the PCPREFS program. Electrically speaking, the
- handler can be mapped to A000, D000 or E000 (XT) or only A000 or D000
- on an AT Bridgecard. A limitation is that the range of addresses a
- PC BIOS scans for ROM extension signatures is C000 up to F600 (top end
- varies among clone makers). This means that the handler will not be
- initialized (and thereby linked into the system) when placed at A000.
- However, it would sure be nice to be able to use A000 since there is
- fierce competition for address space in the PC's upper address area
- among plug-in boards.
-
- This method will *** NOT *** work if you are trying to boot the PC
- from the Amiga, using the new features of Janus 2.x. The reason
- is basicly that of the chicken or the egg. The USE_A000.COM program
- must be executed during the startup of the PC in order to establish
- communications with the Amiga side, but the PC cannot autoboot if
- it cannot talk with the Amiga side first.
-
- Be warned, however, that an EGA video card uses the A000-BFFF range
- of memory and will conflict with such a choice. I do not know about
- VGA cards.
-
-
- Symptoms of Using A000 w/o USE_A000 Utility
-
- Note: The symptoms of placing the handler at A000 in a system -not-
- using this utility are:
-
- 1) The Janus handler and library version numbers are not visible on
- the screen. They are printed by the initialization code and
- therefore never performed.
-
- 2) Any attempt to use Janus 2.x services such as ATIME results in
- a system hang for the PC side.
-
- 3) Any attempt to use a JDisk (DJMOUNT command) will return
- signifying there is no such drive as JH0:
-
-
- Sequence of Changing the Janus Handler Location
-
- It is important to change the address of your handler in the proper
- sequence. It obviously is fatal to change the address while you are
- executing out of it in another window or using it for a JDisk.
-
- 0) Bring up your PC side as you do now, before you change anything,
- and copy the USE_A000.COM program to your PC boot disk. Go into
- your AUTOEXEC.BAT file and put in a line to execute it (with no
- parameters) as early as possible. You -must- execute it before
- you invoke ATIME or any other Janus service.
-
- 1) Boot from a copy of the PCINSTALL diskette that Janus comes on.
- This insures that you are -not- using the Bridgecard.
-
- 2) Click on the PC drawer to open it and click on the PCPREFS
- utility to run it. Select an address of A000 and save it back.
- [Note - This setting is saved in SYS:PC/SYSTEM/2500prefs. If
- you, like myself, boot from a floppy but then switch to a
- harddisk, be sure to place a copy of the 2500prefs file on both
- your boot disk and your harddisk for consistency.]
-
- 3) Back in the PC drawer, click on the PCHARD icon to perform a
- hardware reset on the PC. This is because the PC BIOS has
- already made a determination of where the handler memory is
- located, even though you have not run any PC-interaction software
- on the Amiga side. You should see the floppy light flash a
- little here as the PC resets itself.
-
- Your Janus card is now addressed for A000 and ready to roll.
-
-
- Limitations of This Approach
-
- 1) Cannot use it when autobooting the PC from the Amiga side.
-
- 2) Cannot use it if you are using any PC device drivers that
- will be invoking Janus services, as they are too early.
- I do not know of any such at this time, but since I am
- developing some, I will be converting this into a device
- driver that must be placed before any Janus-using drivers.
- To avoid consuming PC memory for a one-time operation, such
- a device driver will signal failure for its initialization,
- after it has invoked the ROM extension, which will cause it
- to be removed from the PC's memory.
-
- The Correct Solution
-
- The correct way to implement this is for Commodore to enhance their
- Janus software. While the handler memory moves around, the 16 Kb
- or parameter memory is fixed at F000 (XT) or D000 (AT). These
- addresses are in the range scanned by the BIOS for ROM extensions
- (the D000 certainly is, the F000 I think is) and could be used to
- gain control during the bootup process. It would be possible for
- PCWINDOWS to realize that the PC preference setting is for A000,
- and to stuff a dummy ROM extension in an initially-unused portion
- of parameter memory that consists solely of a proper signature and
- a far jump to the real ROM extension at A000. The dummy ROM extension
- would then be overwritten as the parameter memory is used.
-
-