home *** CD-ROM | disk | FTP | other *** search
/ Jason Aller Floppy Collection / 91.img / PERI_50.ZIP / PERI.PGM / NOTES.TXT < prev    next >
Text File  |  1990-08-20  |  50KB  |  1,181 lines

  1. This file contains various technical notes and tips about Periscope,
  2. including the old Appendix C that was entitled Tips, Techniques, and
  3. Tech Notes.
  4.  
  5.  
  6. DEBUGGING THEORY
  7. ****************
  8.  
  9. The 8086 processor family provides two built-in functions that aid
  10. the debugging process. These are the breakpoint and single-step
  11. capabilities. The 80386 and later CPUs have four debug registers
  12. that let you set limited real-time breakpoints. (See the BD command.)
  13.  
  14. The breakpoint capability uses a special single-byte code to indicate
  15. that a breakpoint is to be taken. This op code causes the system to
  16. perform an Interrupt 3 when the first byte of an instruction equals
  17. CCH. This is the facility used by the Go command in Periscope, for
  18. both the temporary and sticky code breakpoints.
  19.  
  20. When Periscope sets a code breakpoint, the original byte is saved in
  21. an internal table and a CCH is inserted in its place. For this
  22. reason, it is not possible to set a code breakpoint in ROM or other
  23. unmodifiable memory. (You can use the debug registers to set
  24. breakpoints in ROM.)
  25.  
  26. When the breakpoint is taken, Periscope is entered through a special
  27. entry point. The use of this entry point signals Periscope to
  28. decrement the instruction pointer (IP) by one to show the correct
  29. instruction. If an unexpected instruction contains a CCH in the first
  30. byte, Periscope is unable to reset the instruction to its prior value
  31. and will disassemble the instruction as INT 3. You will need to
  32. manually alter the byte or modify the IP register to continue
  33. execution of the program.
  34.  
  35. Single-step is the other type of 8086 breakpoint. It is set by
  36. modifying the trap flag to indicate that every instruction should be
  37. trapped. If this flag is set, the system performs an Interrupt 1
  38. before the execution of each instruction, allowing you to single-step
  39. through a program. The debug register breakpoints also use INT 1.
  40.  
  41. If an instruction outside Periscope clears the trap flag, it causes
  42. any tracing currently underway to be turned off. If an instruction
  43. external to Periscope sets the trap flag unexpectedly, Periscope
  44. ignores it. Since the distribution version of Periscope cannot be used
  45. to trace itself, it is not possible for it to trace the execution of
  46. Interrupts 1, 2, or 3 or any other interrupts that point to
  47. Periscope. If you want to debug a program that uses these interrupts,
  48. try using the passive remote feature of Model IV!
  49.  
  50. Some programs may use Interrupts 1, 2, or 3 for their own purposes.
  51. Periscope normally refreshes these vectors each time it is activated,
  52. but you can override this vector refresh when CONFIG is run.
  53.  
  54.  
  55. NMI USE
  56. *******
  57.  
  58. All models of Periscope except Periscope II-X make use of Interrupt
  59. 2, the non-maskable interrupt (NMI). This interrupt is used by the
  60. break-out switch and Models III and IV to gain control of the system
  61. and enter Periscope, even if hardware interrupts are disabled.  A few
  62. systems do not support the use of NMI, since it is either not
  63. available on the system bus or is used by some other system function.
  64.  
  65. Three computers that don't support NMI on the bus are the Tandy 1000,
  66. Cordata PC, and the IBM Convertible. The most common use of NMI is to
  67. emulate a 6845 CRT controller on some of the nonstandard display
  68. adapters. For example, some EGAs support CGA emulation. This is
  69. achieved using software that is activated via an NMI. Luckily, the
  70. use of NMI by most of these boards can be turned off so that there is
  71. no conflict with Periscope's break-out switch. There are no reports
  72. of VGAs that use NMI for this CGA emulation.
  73.  
  74. Generally, you can load Periscope after the emulation code is loaded,
  75. or disable the emulation. If the device reasserts NMI periodically,
  76. you may have problems using the break-out switch.
  77.  
  78. If you're programming the CMOS RAM on an AT, configure Periscope as
  79. Model II-X so Periscope won't use port 70H.
  80.  
  81. If you're using a Compaq 386, note that the CEMM and CACHE device
  82. drivers do not handle INT 2 (NMI) correctly under all circumstances.
  83. If you press the break-out switch at the wrong time, the system may
  84. hang or reboot itself. Try using another memory manager, such as 
  85. 386Max for best results.
  86.  
  87. If an 8087 is used with interrupts enabled, an error will cause an
  88. NMI. Since Periscope uses the NMI, the debugger screen is displayed.
  89. Since the 8087 may interrupt the 8088 at any point, CS:IP may contain
  90. any value. The 80287 and later numeric processors do not use the NMI,
  91. so an error will not invoke Periscope.
  92.  
  93.  
  94. CPU DIFFERENCES
  95. ***************
  96.  
  97. Many PCs and XTs have an early version of the 8088 CPU that has a
  98. serious bug.  This version can be identified by the copyright date of
  99. 1978 shown on the chip. The defect in these CPUs is that the
  100. instruction after an instruction that changes the stack segment is
  101. not protected from being interrupted. The defined method for changing
  102. the stack is to change the stack segment and then immediately change
  103. the stack pointer. If this process is interrupted, the stack may be
  104. in no man's land, the beginning of a system hang. The fix is to get
  105. the later chip, identified by copyright dates of 1978 and 1981. At
  106. install time, Periscope checks for a defective 8088. If one is found,
  107. an error is displayed.
  108.  
  109. On a correctly functioning 8088, any instruction that modifies any of
  110. the segment registers protects the next instruction from being
  111. interrupted. This is a bit of overkill, since changes to DS, ES, and
  112. CS do not need the protection that stack changes require. This is why
  113. you'll notice that Periscope skips instructions while tracing through
  114. an instruction that modifies a segment register. The instruction was
  115. actually executed, but it was invisible to Periscope. Be careful not
  116. to use Periscope's Go command to stop in the middle of a stack
  117. change over, since this can cause the same problem as the defective
  118. 8088.
  119.  
  120. The NEC V20 and the 80C88 go even further than the 8088. They also
  121. protect the instruction after a read of the segment registers, except
  122. for POP instructions. For example, the V20 protects the instruction
  123. after MOV AX,ES, while the 8088 does not.
  124.  
  125. On the 80286 and later CPUs, the instruction protection for changes to
  126. segment registers applies only to the stack segment. Instructions
  127. that change DS, ES, or CS do not protect the next instruction. Still,
  128. be careful not to use the Go command to stop in the middle of a stack
  129. change.
  130.  
  131. For the 80286 and later CPUs, Periscope may be used in real or virtual
  132. 8086 mode. The exception interrupts 6 (invalid op code) and 0DH
  133. (segment overrun) are intercepted by Periscope with CS:IP pointing to
  134. the offending instruction.  (You may configure Periscope not to
  135. intercept these exception interrupts.) If the code segment of these
  136. interrupts points to memory below PS.COM when it is installed, no
  137. change is made to the interrupt since it is already in use.  Avoid
  138. use of hardware interrupt IRQ 5 (INT 0DH) on an AT for such things as
  139. a mouse, since a segment overrun that occurs when this interrupt does
  140. not point to Periscope will hang your system. If you get an exception
  141. interrupt, chances are good that the system is severely corrupted. A
  142. reboot is generally recommended.
  143.  
  144.  
  145. DOS NOTES
  146. *********
  147.  
  148. Under some versions of DOS (e.g., 3.10), DOS decides whether a program
  149. is an EXE based on the first two bytes in the file, not the file
  150. extension. This can cause problems with RUN.COM, since it assumes
  151. that a file with a .COM extension is really a COM file. If the
  152. extension is .EXE, RUN confirms that the first two bytes indicate an
  153. EXE file.
  154.  
  155. If you're using DOS 3.20 and are loading PS as a device driver, note
  156. that DOS modifies INT 2 (NMI) after CONFIG.SYS time. To prevent the
  157. modification of INT 2, patch IBMBIO.COM at offset B0DH.
  158.  
  159. So that Periscope can perform file I/O safely, it checks the
  160. undocumented in-DOS flag. This byte contains zero if DOS is not busy.
  161. Periscope also checks to see that interrupts are enabled, to be sure
  162. that DOS was interrupted at a safe point. The location of the in-DOS
  163. flag can be found by performing INT 21H with AH=34H. ES:BX returns
  164. the address of the flag.
  165.  
  166. If you want to perform file I/O and Periscope is telling you that DOS
  167. is busy, get CS:IP back to your code and try again. Do not attempt to
  168. modify the in-DOS flag or the interrupt flag in order to fool
  169. Periscope. You can get a garbled disk directory very easily. To make
  170. DOS not busy, you can use the user breakpoint in the sample program
  171. USEREXIT.ASM. Periscope also allows file I/O when CS:IP is at the
  172. entry to INT 28H. To get to INT 28, enter G {0:28*4}. Periscope does
  173. not hook INT 28, but uses it as a known safe point to perform DOS
  174. access.
  175.  
  176. Starting with DOS 3.20, Interrupts 1, 2, and 3 are changed by DOS on a
  177. short boot. This can complicate matters if you're trying to use the
  178. break-out switch across a short boot. You'll need to patch DOS or
  179. better yet, reset the vectors to point to Periscope. Also, you can
  180. copy INT 2 to INT 5 (Shift-PrtSc) by entering the command M 0:2*4 L4
  181. 0:5*4. After this has been done, you can use Shift-PrtSc as a method
  182. of activating Periscope.
  183.  
  184.  
  185. DEBUGGING TECHNIQUES
  186. ********************
  187.  
  188. While Periscope is active, the BIOS interrupt vectors it uses are
  189. reset to point to BIOS unless the corresponding /V installation
  190. option was used. To access some memory-resident programs while
  191. Periscope is active, you may have to use some of these options. For
  192. example, a program that displays the time may use interrupt 1CH.
  193. Unless you specify /V:1C when PS.COM is run, the clock program won't
  194. be active when Periscope is. Be aware that each /V option used
  195. reduces Periscope's dependability, since the interrupt vector is left
  196. pointing to RAM that can be corrupted. If you're having problems
  197. running some software with Periscope, check the interrupt vectors
  198. using INT.COM and see the known conflicts in the description of the
  199. /V installation option.
  200.  
  201. Avoid debugging with ill-behaved resident programs in the system.
  202. While you can debug with these types of programs in the system, they
  203. can often muddy the waters, making it much harder for you to see just
  204. what your program is doing.
  205.  
  206. When you press the break-out switch to stop the execution of a
  207. program, chances are very good that you'll stop the machine in either
  208. BIOS or DOS. If you want to get back to your program, use the Go
  209. command to execute to a known point in your program. You can also use
  210. the SR command to look for return points on the stack. If that's not
  211. possible, try using the Register breakpoint. Enter BA * to clear any
  212. breakpoints currently set. If you know your program's Code Segment,
  213. enter BR CS EQ nnnn to set a Register breakpoint when CS equals the
  214. desired value. If you aren't sure, use BR CS NE CS to set a
  215. breakpoint when the Code Segment changes from its current value. Then
  216. enter GT to continue execution with the Register breakpoint set. This
  217. will usually get you back to the program, or at least from BIOS to
  218. DOS or vice-versa. If you're debugging a program that has line
  219. numbers as symbols, enter TL to get back to your code.
  220.  
  221. Microsoft compilers can place data (pseudo-code) after interrupts 34H
  222. through 3DH to emulate the 8087 numeric processor. When disassembled
  223. by Periscope, the data following the interrupt causes the disassembly
  224. to be garbled. To prevent execution of data, the Jump command traces
  225. interrupts in the range from 34H to 3DH.
  226.  
  227. If you're calling assembly-language subroutines from a high-level
  228. language, Periscope can be used to trace through the execution of the
  229. subroutine to verify that it is operating correctly. If the
  230. subroutine is linked to a compiled program, simply use G SUBNAME,
  231. where SUBNAME is the name of the subroutine. If the subroutine is
  232. being called from an interpretive language such as BASIC, modify the
  233. subroutine so that the first byte contains CCH.  Then when the
  234. subroutine is executed, the breakpoint (CCH) will activate Periscope.
  235. At that point, you can modify the instruction to be a NOP (no
  236. operation) by using E CS:IP 90 or skip to the next instruction by
  237. using R+.
  238.  
  239. Avoid debugging packed EXE files. You'll have to trace through the
  240. header before your program is unpacked and available. If you must
  241. debug a packed EXE, use RUN to load the program, use the G command to
  242. start execution, press the break-out switch, and then start
  243. debugging.
  244.  
  245. If you're tracing the system BIOS, try using a Compaq Deskpro 386.
  246. Since this system shadows ROM at segment F000 into RAM, you can use
  247. all the usual commands to trace through the BIOS.
  248.  
  249.  
  250. PERISCOPE INTERNALS
  251. *******************
  252.  
  253. Periscope uses Interrupts 1 (single-step), 2 (NMI), and 3
  254. (breakpoint). In an 80286 or later CPU system, Periscope may also
  255. intercept Interrupts 6 (invalid op code) and DH (segment wraparound).
  256.  
  257. The data fields used by Periscope are located at the beginning of the
  258. protected memory. The record definition PSDATA in the file PS.DEF
  259. contains the most useful of these data fields. The source file
  260. contains comments describing the various fields in the record
  261. definition. To display Periscope's data area assuming the default
  262. memory address of D000:0000, enter DR D000:100 PSDATA.
  263.  
  264. Note:  For Periscope II and II-X, enter DR xxxx:100 PSDATA, where xxxx
  265. is the starting segment for Periscope's tables. (The segment used by
  266. INT 3.)
  267.  
  268.  
  269. THE PERISCOPE MODEL I (PLUS) BOARD
  270. **********************************
  271.  
  272. There are four major revisions of the Model I board.
  273.  
  274. 1. Rev 1 is the original 16K board. It is a half-length card with
  275. eight 2K by 8 static RAM chips across the top. The last version of
  276. the Periscope software that supported this board was 2.10. The board
  277. has not been produced since mid-1986.
  278.  
  279. 2. Rev 2 is the 56K board. It is a half-length card with seven 8K by
  280. 8 static RAM chips across the top. The last version of the Periscope
  281. software that supported this board was 4.21. Production of this board
  282. ceased in mid-1988.
  283.  
  284. 3. Rev 3A is the currently-produced 512K/1024K board. It is a
  285. full-length card with sixteen or thirty-two 256K by 1 dynamic RAM
  286. chips. It is supported starting with Periscope software version 4.10.
  287. This board runs on ISA and EISA systems.
  288.  
  289. 4. Model I/MC, Rev 1 is the currently-produced version of the Model I
  290. board for MCA (PS/2) systems. It is functionally the same as the
  291. Model I, Rev 3A board, except that it has no DIP switches and has a
  292. capacity of up to 2048KB. It uses 256KX4 RAM chips and is supported
  293. starting with Periscope software version 4.30.
  294.  
  295. The Model I board uses a 32K memory footprint and two consecutive I/O
  296. ports. The board can run with either 16 or 32 chips of 256K-by-1
  297. dynamic RAM, with a cycle time of 150 NS or less. The capacity is
  298. 512K or 1 Megabyte, respectively. The starting address of the memory
  299. is switch-selectable to any of eight locations. The starting I/O port
  300. is switch-selectable to any four-byte boundary. The board can be
  301. used by itself (as a Model I) or with a Model III or IV board (as a
  302. "Plus" board). It draws 9 watts of power when populated with 512K; 14
  303. watts when populated with a full megabyte.  To program the board, see
  304. the description below.
  305.  
  306. If you're using Periscope I, Rev 3 on an AT&T 6386 WGS that has an
  307. Olivetti (not Intel) mother board, you'll find that Periscope doesn't
  308. run correctly. This is because Olivetti does not provide a refresh
  309. signal for dynamic RAM in non-Olivetti cards. There is a software
  310. solution -- call tech support and request a copy of REFRESH.COM.
  311.  
  312. The Model I, Rev 3 board has a 32K footprint, with four 8K banks. To
  313. program the board, use an OUT 300,DBH to enable writes to the board
  314. and select bank 3 (the last 8K). Each OUT 300,FBH decrements the
  315. current bank (3, 2, 1, then 0). An out of value other than DBH or FBH
  316. to port 300H protects the board.
  317.  
  318. To select the page for a bank, do an OUT 301,nn, where nn is the page
  319. number from 0 to 3FH if a 512K board is used (7FH for 1024K and FFH
  320. for 2048K).
  321.  
  322. For example, to set bank 3 to page 1FH, bank 2 to page 1EH, bank 1 to
  323. page 1DH, and bank 0 to page 1CH, do the following:
  324.  
  325.     out 300,db    ; enable the board and select bank 3
  326.     out 301,1f    ; set bank 3 to page 1f
  327.     out 300,fb    ; select bank 2
  328.     out 301,1e    ; set bank 2 to page 1e
  329.     out 300,fb    ; select bank 1
  330.     out 301,1d    ; set bank 1 to page 1d
  331.     out 300,fb    ; select bank 0
  332.     out 301,1c    ; set bank0 to page 1c
  333.     out 300,0    ; protect the board
  334.  
  335. - You can skip a bank setting -- just skip the OUT 301,nn as needed.
  336.  
  337. - You can have one page active in multiple banks.
  338.  
  339. - You can change the page for the current bank by issuing another OUT
  340. 301,nn.
  341.  
  342. The Model I board can be set to run in either 8 or 16-bit mode. Due to
  343. the design of the PC bus, all devices within the same 128K region of
  344. memory (such as C000:0 to D000:FFFF) should theoretically all be
  345. running as either 8-bit or 16-bit devices. In practice, this
  346. condition is not often encountered, but be aware that you may have to
  347. change the mode of operation for the Model I board due to other cards
  348. that share the same 128K address space.
  349.  
  350.  
  351. THE PERISCOPE MODEL III BOARD
  352. *****************************
  353.  
  354. Version 4.22 of the Periscope software is the last version that can
  355. take advantage of the 64K of program memory on the Model III board.
  356. Later versions need a Model I ("Plus") board to keep Periscope out of
  357. DOS memory.
  358.  
  359. The Periscope III Rev 1 board uses 64K of memory and four consecutive
  360. I/O ports. The protected memory is configured as eight chips of
  361. 64K-by-1 dynamic RAM, with a cycle time of 120 NS or less. The
  362. starting address of the memory is switch-selectable to any 64K
  363. boundary. The starting I/O port is switch-selectable to any 4-byte
  364. boundary. The board draws approximately 7 watts of power. See the
  365. Periscope III addendum for information on the switch settings. If
  366. you're interested in programming information on Model III, please
  367. call Tech Support.
  368.  
  369.  
  370. THE PERISCOPE MODEL IV BOARD
  371. ****************************
  372.  
  373. The Periscope IV Rev 1 board uses no memory and eight consecutive I/O
  374. ports.  The starting I/O port is switch-selectable to any eight-byte
  375. boundary. The board draws approximately 20 watts of power, and the
  376. pods draw approximately 3 watts of power. If you're interested in
  377. programming information on Model IV, please call Tech Support.
  378.  
  379.  
  380. ITEMS YOU'LL FIND USEFUL
  381. ****************************
  382.  
  383. OPTASM and OPTLINK are the fastest pair around. The assembler is very
  384. solid and extremely fast. The linker is also very fast and robust.
  385. Together they give you something no one else has:  line numbers in
  386. included files, so you can have source-level debugging everywhere.
  387. They are available from SLR Systems, 412/282-0864.
  388.  
  389. 386MAX is the leading memory manager for 80386-based systems. In
  390. addition to LIM support, it lets you load TSRs and device drivers up
  391. in high memory, maps slow memory to fast memory, and other good
  392. stuff. It coexists very well with Periscope, too. It is available
  393. from Qualitas, Inc., 301/907-6700.
  394.  
  395. BRIEF is the editor of choice for most programmers, including
  396. (finally!) yours truly. The ultimate in configurability and
  397. reliability, it is available from Solution Systems, 617/337-6963.
  398.  
  399. Delta is a file-comparison utility that does an excellent job of
  400. showing you the difference between two source files. It's a little
  401. sluggish on large files, but well worth the wait. It is available
  402. from OPENetwork, 718/638-2240.
  403.  
  404. SpellCode is a spell checker for the rest of us. Most spelling
  405. checkers are geared for word processing users, but there's now a
  406. product for programmers that can intelligently read all sorts of
  407. input files, from ASCII to C to database files. It is available from
  408. Geller Software Laboratories, Inc, 201/746-7402.
  409.  
  410. Spool Master lets you spool printer output to extended memory and hold
  411. it for later redirection to a file. This can be ideal when you need
  412. to use Periscope's echo command but DOS is busy. Using the spooler,
  413. you can park the output in RAM, then later on move it to a DOS file.
  414. It is available from Software Masters, 317/253-8088.
  415.  
  416. Inside! is a wonderful performance analysis tool. It uses a
  417. high-resolution timer to give you very accurate performance stats on
  418. your code. There are versions available for most of the popular
  419. languages. It is available from Paradigm Systems, 508/478-0499.
  420.  
  421. A good reference book is 'System BIOS for IBM PC/XT/AT Computers and 
  422. Compatibles' by Phoenix Technologies. It has some information about
  423. I/O port use and other BIOS goodies that is very helpful. It is
  424. published by Addison-Wesley and is highly recommended.
  425.  
  426.  
  427. FUNCTION KEY ASSIGNMENT
  428. ***********************
  429.  
  430. Periscope's function keys are user-assignable. The files CVKEYS.PSD,
  431. PSKEYS.PSD, and CVKEYS.PSD are used to emulate the function keys used
  432. by Microsoft's CodeView, Periscope, and Borland's Turbo Debugger
  433. respectively. The .DEF files used to create these .PSD files are
  434. shown below. Note the FX alias definition is used to display the
  435. function key use when the menu system is enabled but not active.
  436.  
  437. The resulting PSD file must be 511 characters or less to fit into the
  438. read-only buffer. No record definitions are allowed in this buffer,
  439. just alias definitions. The .PSD file is read at PS.COM time.  If an
  440. error occurs reading CVKEYS.PSD or TDKEYS.PSD, error 75 is displayed,
  441. but an error reading PSKEYS.PSD is ignored. When displaying or using
  442. alias definitions, Periscope uses the read-only area first, then uses
  443. the standard record definition buffer. The LD and WD commands affect
  444. the record definition buffer only -- they have no effect on the
  445. read-only buffer. 
  446.  
  447. CVKEYS.DEF
  448. \fx=F4:Screen  F5:Go  F7:Go Here  F8:Trace  F9:Break Here  F10:Step
  449. \f1=?;
  450. \f2=!ar;
  451. \f3=* Key not assigned for CV;
  452. \f4=!ao;
  453. \f5=g;
  454. \f6=!aw;
  455. \f7=g cs:ip;
  456. \f8=tl;
  457. \f9=!cb;
  458. \f0=jl;
  459.  
  460. PSKEYS.DEF
  461. \fx=F1:Timing  F2:Swap  F3:Prev  F4:Repeat  F8:Symbols  F10:Screen
  462.  
  463. TDKEYS.DEF
  464. \fx=F2:Break at Top  F4:Go Here  F6:Next  F7:Trace  F8:Step  F9:Go  
  465. \f1=?;
  466. \f2=!cb;
  467. \f3=/w ?;
  468. \f4=g cs:ip;
  469. \f5=* Key not assigned for TD;
  470. \f6=!aw;
  471. \f7=tl;
  472. \f8=jl;
  473. \f9=g;
  474. \f0=!am;
  475.  
  476.  
  477. REMOVING PERISCOPE FROM MEMORY
  478. ******************************
  479.  
  480. If you're using a Model I, Rev 3 or I/MC board, the Periscope software
  481. always loads into the board without using any DOS memory, so the
  482. following section does not apply to you.
  483.  
  484. Don't both remove Periscope from DOS memory and reload it within the
  485. same batch file. The batch header gets in the way and causes the new
  486. copy of Periscope to be loaded too high in memory. For example, if
  487. you need to remove the current copy of Periscope from memory and
  488. install a new copy, enter 'PS/Y' then load the new copy.
  489.  
  490. You can also use one batch file containing the lines 'PS/Y' and 'X',
  491. where X is the name of a second batch file that is used to reload
  492. Periscope. This technique causes the batch header to be relocated
  493. downward when chaining from the first batch file to the second.
  494.  
  495.  
  496. REGISTER DISPLAYS
  497. *****************
  498.  
  499. If you use the horizontal register display but do not like the
  500. default register order, you can change the display order using the
  501. patch described below. You can put the registers in any order with 8
  502. registers on the first line and 5 on the second line. The flags must
  503. be displayed at the end of the second line.
  504.  
  505. - Load Periscope normally.
  506. - Enter 'RUN PS2.COM'.
  507. - Enter 'S CS:100 LCX "ALAHBLBH" ' to search for the register string.
  508. - Enter 'D CS:xxxx' where xxxx is the address returned above.
  509. - Starting 10H bytes after the beginning of the register string is 13
  510. bytes containing values of 0, 2, 4, 6, ... 18H, where 0 corresponds
  511. to AX, 2 corresponds to BX ... through 18H which corresponds to IP.
  512. Modify the order of these bytes to change the register display as
  513. desired. Note that each byte should have an even value from 0 to 18H.
  514. - Enter 'WF' to write the file.
  515. - Run 'CONFIG' to activate the changes in your copy of Periscope.
  516.  
  517.  
  518. EXCEPTION INTERRUPTS
  519. ********************
  520.  
  521. If you're having problems with your program executing out of non-code
  522. locations, fill all memory not used by your program (or DOS) with ff's
  523. to cause an exception interrupt when executed.
  524.  
  525. If you're using 386 Max with Periscope and want it to pass exception
  526. interrupts along to Periscope, add the statement 'debug=inv' or
  527. 'debug=sor' to your 386 Max invocation line in CONFIG.SYS. The first
  528. statement uses exception interrupt 6 to activate PS and the second
  529. form uses interrupt 0dh.
  530.  
  531.  
  532. DIVIDE BY ZERO
  533. **************
  534.  
  535. If you're getting divide faults, enter 'm 0:8 l4 0:0' to copy INT 2
  536. over INT 0 (the divide overflow vector). When a divide overflow
  537. occurs, Periscope's screen will be displayed. If you're debugging a C
  538. program, be sure to go to _MAIN before copying the vector, since the
  539. prologue resets INT 0 to point to the divide by zero handler in your
  540. program.
  541.  
  542.  
  543. CONFIG.COM
  544. **********
  545.  
  546. CONFIG.COM has been changed to make Periscope dynamically configure
  547. itself when PS.COM is run. These changes have been extensively
  548. tested, but may not work on all systems. If you have problems, try
  549. booting the system without CONFIG.SYS or AUTOEXEC.BAT and then use
  550. 'CONFIG 1' to force the dynamic configuration to occur at CONFIG.COM
  551. time instead of when PS.COM is loaded.  If that doesn't work, try
  552. using 'CONFIG 2' to force the old-style configuration. If either of
  553. these methods are used, you'll need to reconfigure Periscope when any
  554. hardware change is made to the system.
  555.  
  556. If you're using Borland's Superkey program, you can use the new
  557. dynamic configuration as long as Periscope is loaded before Superkey,
  558. since it does some nasty tricks with interrupt vectors.  If you want
  559. to be able to load Periscope after Superkey, use the '1' or '2'
  560. options described above.
  561.  
  562.  
  563. SETTING 43-LINE OR 50-LINE MODE
  564. *******************************
  565.  
  566. To set your EGA in 43-line mode or your VGA in 50-line mode, use the
  567. following code:
  568.  
  569.     mov    ax,0003
  570.     int    10h
  571.     mov    ax,1112h
  572.     mov    bl,00
  573.     int    10h
  574.     xor    ax,ax
  575.     mov    es,ax
  576.     mov    ax,0100h
  577.     mov    cx,0607h
  578.     or    byte ptr es:[0487h],01
  579.     int    10h
  580.     and    byte ptr es:[0487h],0feh
  581.     int    20h
  582.  
  583.  
  584. PUBLIC.COM
  585. **********
  586.  
  587. PUBLIC has been dropped from the Periscope package and placed into the
  588. public domain. If you'd like a copy of it (including ASM source
  589. code), please send a SASD (self-addressed stamped disk) to us at the
  590. address in the front of the manual. If you are outside the USA,
  591. please send just an international postal coupon for US $5.00 to cover
  592. the cost of a disk and postage.
  593.  
  594.  
  595. COMMON I/O PORT USAGE
  596. *********************
  597.  
  598. The following is a list of common I/O port usage. For more details on
  599. I/O usage, get a copy of the Phoenix BIOS book mentioned above.
  600.  
  601.  
  602. I/O address    Description
  603.  
  604. 0000h-0019h    DMA 
  605. 0020h-003Fh    8259 Programmable interrupt controller (PIC)
  606. 0040h-005Fh    Programmable interval timer
  607. 0060h        Keyboard data input/output buffer
  608. 0061h        8255 output (XT only), 8042 control register (AT only)
  609. 0062h        8255 input (XT only)
  610. 0063h        8255 command mode register (XT only)
  611. 0064h        8042 keyboard input buffer (AT only)
  612. 0065h-006Fh    reserved by 8255 (XT only) or 8042 (AT only)
  613. 0070h        CMOS RAM address register (AT only)
  614. 0071h        CMOS RAM data register (AT only)
  615. 0080h        Manufacturing test port (AT only)
  616. 0081h-009Fh    DMA 
  617. 00A0h        NMI mask (XT), Programmable interrupt controller 2
  618. 00A1h        Programmable interrupt controller 2 mask
  619. 00C0h-00DEh    DMA 
  620. 00DFh-00EFh    Reserved
  621. 00F0h-00FFh    Math coprocessor
  622. 0100h-016Fh    Reserved
  623. 0170h-0177h    Fixed disk 1 (AT only)
  624. 01F0h-01F7h    Fixed disk 0 (AT only)
  625. 01F9h-01FFh    Reserved
  626. 0200h-020Fh    Game control port
  627. 0210h-0217h    Expansion unit (PC and XT only)
  628. 0278h-027Ah    Parallel 3
  629. 02B0h-02DFh    Reserved
  630. 02E1h        GPIB (adapter 0)
  631. 02E2h-02E3h    Data acquisition (adapter 0)
  632. 02E4h-02F7h    Reserved
  633. 02F8h-02FFh    Serial 2
  634. 0300h-031Fh    Prototype card
  635. 0320h-0324h    Fixed disk adapter 
  636. 0325h-0347h    Reserved
  637. 0348h-0357h    DCA 3278
  638. 0360h-036Fh    PC network (PC and XT only)
  639. 0372h-0377h    Diskette controller
  640. 0378h-037Ah    Parallel 2
  641. 0380h-038Fh    SDLC and BSC communications
  642. 0390h-0393h    Cluster (adapter 0)
  643. 03A0h-03AFh    BSC communications (primary)
  644. 03B0h-03DFh    Video - MDA, CGA, EGA, and VGA
  645. 03F0h-03F7h    Diskette controller
  646. 03F8h-03FFh    Serial 1
  647.  
  648.  
  649. PERISCOPE'S FILES
  650. *****************
  651.  
  652. The following files may be present on the Periscope distribution disk 
  653. or in the Periscope directory:
  654.  
  655. @6077.ADF - The adapter description file used by Periscope I/MC on
  656. PS/2 systems. This file is on the distribution disk only.
  657.  
  658. CLEARNMI.COM - Despite the name, the non-maskable interrupt (NMI)
  659. used by the break-out switch can be masked out. This memory-resident
  660. utility program attaches to the timer interrupt and clears the
  661. non-maskable interrupt as needed.
  662.  
  663. CONFIG.COM - This utility program is used to configure the Periscope
  664. software, moving it from the distribution disk onto your working
  665. disk. 
  666.  
  667. CVKEYS.PSD - This record definition file contains the aliases used
  668. for CodeView function key emulation.
  669.  
  670. FTOC.C - This is the source for the Fahrenheit-to-Celsius program
  671. from the Kernighan and Ritchie text. This program is used in the C
  672. tutorial.
  673.  
  674. FTOC.DEF - This is a Periscope record definition file used when
  675. debugging the FTOC program.
  676.  
  677. FTOC.EXE - This is the executable code for the FTOC program.
  678.  
  679. FTOC.MAP - This is the MAP file produced by the linker for the FTOC
  680. program. It contains symbol and line number references. 
  681.  
  682. INT.COM - This utility program is used to save, display, or compare
  683. the values of the interrupt vectors. It is typically used to
  684. determine the interrupt vectors used by a resident program.
  685.  
  686. NOTES.TXT - This file contains miscellaneous technical notes not
  687. included in the manual.
  688.  
  689. PERI.PGM - This is the self-extracting file that contains most of the
  690. other files in this list. This file is on the distribution disk only.
  691.  
  692. PM1.COM - This is the code for the menu system for Models I, II, and
  693. II-X.
  694.  
  695. PM3.COM - This is the code for the menu system for Model III.
  696.  
  697. PM4.COM - This is the code for the menu system for Model IV.
  698.  
  699. PS.COM - This is the transient loader portion of Periscope.  It is
  700. used to load the PS1.COM file created by the configuration program,
  701. CONFIG.COM.
  702.  
  703. PS.DEF - This ASCII text file contains some sample Periscope record
  704. definitions that are read when RUN.COM is used to load a program. 
  705.  
  706. PS1.COM - This is the configured form of PS2.COM.
  707.  
  708. PS2.COM - This is the unconfigured form of the Periscope program for
  709. all models. It is converted to PS1.COM by CONFIG.COM. It can be used
  710. only via PS.COM.  
  711.  
  712. PS3.COM - This is the additional code for Model III. It can be used
  713. only via PS.COM.
  714.  
  715. PS3TEST.COM - This program is used to run trace buffer and breakpoint
  716. tests on the Periscope III board.
  717.  
  718. PS4.COM - This is the additional code for Model IV. It can be used
  719. only via PS.COM.
  720.  
  721. PS4TEST.EXE - This program is used to run trace buffer and breakpoint
  722. tests on the Periscope IV board. 
  723.  
  724. PSHELP2.TXT - This is the basic Periscope help file used by
  725. CONFIG.COM in creating PSHELP.TXT for all models of Periscope.
  726.  
  727. PSHELP3.TXT - This is the Periscope help file used by CONFIG.COM in
  728. creating PSHELP.TXT for Model III.
  729.  
  730. PSHELP4.TXT - This is the Periscope help file used by CONFIG.COM in
  731. creating PSHELP.TXT for Model IV.
  732.  
  733. PSINT.DAT - This is the compiled form of the interrupt comments
  734. that is loaded into RAM when the /H installation option is used
  735. or when the menu system is enabled.
  736.  
  737. PSINT.TXT - This is the optional interrupt comments file that is
  738. compiled into PSINT.DAT by CONFIG.COM.  This file is a normal ASCII
  739. text file which can be modified as needed using a text editor. 
  740.  
  741. PSKEY.COM - This memory-resident utility program is used to select
  742. hot keys to activate Periscope via the keyboard, including SysReq,
  743. Shift-PrtSc, and other shift key combinations.
  744.  
  745. PSKEYS.PSD - This record definition file contains the aliases used
  746. for Periscope function key use.
  747.  
  748. PSTERM.COM - This program is used on another PC to support the use of
  749. the /AV (alternate video) and/or /AK (alternate keyboard)
  750. installation options.
  751.  
  752. PSTEST.COM - This program is used to run memory diagnostics on the
  753. Periscope I and III boards.
  754.  
  755. README.TXT - This file documents any changes made to Periscope since
  756. the manual was last printed.
  757.  
  758. RS.COM - This utility program is used to verify a record definition
  759. (DEF) file and determine the record table size required by the DEF
  760. file.
  761.  
  762. RUN.COM - This is Periscope's program loader. It is used to load a
  763. program or data file into memory, read the program's symbol table and
  764. record definition table if available, and pass control to Periscope. 
  765.  
  766. SAMPLE.ASM - This is the source code for the sample assembler program
  767. used in the tutorial.  
  768.  
  769. SAMPLE.COM - This is the executable code for the SAMPLE program.
  770.  
  771. SAMPLE.MAP - This is the MAP file produced when the SAMPLE program is
  772. linked. 
  773.  
  774. SETUP.COM - This program is used to copy the Periscope files from the
  775. distribution disk to the target directory. This file is on the distribution 
  776. disk only.
  777.  
  778. SKIP21.COM - This program enables Model III and Model IV users to
  779. watch for writes to low memory in real-time, at the same time
  780. filtering out writes that are legitimately done by DOS. 
  781.  
  782. SYMLOAD.COM - This utility program lets your program change
  783. Periscope's symbol table while your program is running. It is useful
  784. for programs that manage their own overlays or are running under
  785. another environment, such as TopView or GEM.
  786.  
  787. SYSLOAD.SYS - This utility program is used to load any COM file as a
  788. device driver. It can be used to load Periscope at CONFIG.SYS time,
  789. allowing you to debug device drivers. 
  790.  
  791. TDKEYS.PSD - This record definition file contains the aliases used
  792. for Turbo Debugger function key emulation.
  793.  
  794. TS.COM - This utility program is used to verify a MAP file or other
  795. source of symbols and determine the symbol table size required. It is
  796. used to generate a Periscope symbol (PSS) file. 
  797.  
  798. USEREXIT.ASM - This sample program illustrates user breakpoints and
  799. user exits from Periscope. 
  800.  
  801. USEREXIT.COM - This is the executable code generated from
  802. USEREXIT.ASM.
  803.  
  804. WAITING.COM - This program can be used to keep DOS available when
  805. debugging TSRs.
  806.  
  807. The minimum set of files required on the target directory is PS.COM,
  808. PS1.COM, and RUN.COM. For function key emulation, you'll need
  809. CVKEYS.PSD or TDKEYS.PSD. For Model III, you'll also need PS3.COM. For
  810. Model IV, you'll also need PS4.COM. For the menu system, you'll need
  811. PSHELP.TXT and PMx.COM, where x is 4, 3, or 1 for Model IV, III, and
  812. all others respectively. 
  813.  
  814.  
  815. NULL-MODEM CABLE SPECIFICATIONS
  816. *******************************
  817.  
  818. If you're using Periscope/Remote or the alternate-PC feature of
  819. Periscope and would like to make your own null-modem cable, the
  820. specifications are as follows. 
  821.  
  822. The transmit and receive lines must be crossed and the CTS and RTS
  823. lines must also be crossed. Ground must carry through.
  824.  
  825. For a DB-9 connector, pin 2 (Receive) must cross to pin 3 (Transmit);
  826. pin 5 (Ground) must carry through; and pin 7 (RTS) must cross to pin
  827. 8 (CTS).
  828.  
  829. For a DB-25 connector, pin 2 (Transmit) must cross to pin 3
  830. (Receive), pin 4 (RTS) must cross to pin 5 (CTS), and pin 7 (Ground)
  831. must carry through.
  832.  
  833. See the description of the cable testing program, PSTERM/T in the
  834. file README.TXT.
  835.  
  836.  
  837. COLOR ATTRIBUTE BITS
  838. ********************
  839.  
  840. The /C installation option and the /C command are used to set
  841. Periscope's screen color. The value used for the color attribute is
  842. derived as follows:
  843.  
  844.          Bit number: 7    6    5    4    3    2    1    0
  845.  
  846.          Use:        X    R    G    B    H    R    G    B
  847.                           -----------         -----------
  848.                            background         foreground
  849.                              color              color
  850.  
  851.      X - blink if 1, else no blink
  852.      R - red gun on if 1, else off
  853.      G - green gun on if 1, else off
  854.      B - blue gun on if 1, else off
  855.      H - high-intensity if 1, else normal
  856.  
  857.      The RGB combinations are:
  858.      -------------------------
  859.  
  860.      Green plus Blue is Cyan
  861.      Red plus Blue is Magenta
  862.      Red plus Green is Brown (Yellow if high intensity)
  863.      Red plus Green plus Blue is Gray (White if high intensity)
  864.  
  865.  
  866. BS16 MEMORY      
  867. ************
  868.  
  869. The 80386 CPU can be connected to both 16-bit and 32-bit data buses.
  870. For performance reasons, most systems use 32-bit memory for all
  871. address ranges. Some systems use 16-bit memory in the ROM region
  872. (A000:0 to E000:FFFF). When this occurs, Periscope displays a warning
  873. message when PS.COM is run, notifying you of these BS16 memory
  874. segments. In many cases, the use of BS16 memory in this range is
  875. actually improves performance, since most devices (including the
  876. Periscope I board) that are addressed in this range are 16-bit
  877. devices. 
  878.  
  879. When BS16 memory is present, setting data breakpoints with Model IV
  880. gets difficult. There's no problem setting address breakpoints,
  881. however.  The data always 'appears' to come in on the low 16 bits of
  882. the bus, but may also be duplicated on the high part of the bus.
  883. Since there is no 1:1 correspondence of the 80386 byte enable signals
  884. to the real data values, data breakpoints on BS16 memory can get very
  885. tricky and are best avoided.
  886.  
  887. For more information on this topic, see the Intel 80386 hardware
  888. manual.
  889.  
  890.  
  891. TRACKING PROGRAM FLOW WITH MODEL IV
  892. ***********************************  
  893.  
  894. If you're debugging a complex task and need to get a high-level
  895. overview of the program's flow, try embedding writes to a dummy
  896. memory location or I/O port of unique values that indicate where you
  897. are in the program.  Then set the Model IV board to selectively
  898. capture writes to the memory or I/O port that you've used. Using this
  899. technique, you can more readily track the flow of the program. Also,
  900. if you want to set a breakpoint on the execution of a particular
  901. location, you can set a hardware breakpoint on the write of the
  902. memory or port, qualified by the unique data value written at that
  903. location.
  904.  
  905. For example, assume we're using a dummy I/O port of F310 and
  906. outputting values ranging from 0 to 3F at various points in the
  907. program. To capture the next 100H outs to that port and nothing else,
  908. use the following commands:
  909.  
  910.     HA *     
  911.     HC #100 S+
  912.     HP F310 O
  913.     GH
  914.  
  915. To capture the location where the value 30H is being written to the
  916. port in the center of the trace buffer, use the following commands:
  917.  
  918.     HA *
  919.     HC TC
  920.     HP F310 O
  921.     HD LB 30 30
  922.     GH
  923.  
  924.  
  925. USING THE MODEL IV TRACE BUFFER AFTER A CRASH
  926. **********************************************
  927.  
  928. If you're debugging a program that crashes the system, you'll find
  929. that in many cases an exception interrupt will activate Periscope.
  930. From there, you can look in the real-time trace buffer to see what
  931. lead up to the exception. In some cases, the system may have executed
  932. meaningless, but legal instructions for the full depth of the buffer,
  933. leaving you with nothing to indicate where things went awry. If this
  934. happens, try filling unused memory with FF's which will cause an
  935. exception when executed, or try setting a hardware breakpoint on an
  936. event you see near the top of the trace buffer.
  937.  
  938. If the system is so far gone that Periscope can't come up, all is not
  939. lost. Install the Model IV on a system that has a reset switch. Then
  940. after the crash, do the following:
  941.  
  942. - Press the break-out switch to stop the trace buffer (it will also
  943. be stopped by reaching a hardware breakpoint).
  944.  
  945. - Press the reset switch to reboot the system without turning the   
  946. power off.
  947.  
  948. - While the system is booting, press the Alt and Ctrl keys to keep
  949. PS.COM from reloading and destroying the state of the trace buffer.
  950.  
  951. - Run 'PS4TEST/W' to save the trace buffer to the file PSBUF.DAT.
  952.  
  953. - Load Periscope normally and use the 'HT CS PSBUF.DAT' command to
  954. view the saved trace buffer.
  955.  
  956.  
  957. USING MODEL IV TO DEBUG THE POWER-ON STARTUP TESTS (POST)
  958. *********************************************************
  959.  
  960. To debug the POST sequence using Model IV, set it up for Passive
  961. remote mode (see the manual) and then do the following:
  962.  
  963. - Boot both systems and install PS.COM on the host.
  964.  
  965. - Enter HM FFFF:0 L1 X;GH to set a breakpoint on a fetch of
  966. the last paragraph in the first megabyte.
  967.  
  968. - Do a long boot on the target system using Periscope's QL command.
  969.  
  970.  
  971. TRICK COMMANDS                
  972. **************
  973.  
  974. There are some trick commands you can use in Periscope as a form
  975. of shorthand. The commands include:
  976.  
  977. G [SS:SP -- Go to the end of a near call. (You can also use the GR
  978. command.)
  979.  
  980. G {SS:SP -- Go to the end of a far call or an interrupt. (You can also
  981. use the GR command.)
  982.  
  983. G {0:n*4 -- Go to the next invocation of interrupt n.
  984.  
  985. U {0:n*4 -- Disassemble interrupt n.
  986.  
  987. XA DS:SI -- Show 20-bit absolute address for DS:SI.
  988.  
  989.  
  990. USING A DUAL VGA BOARD                
  991. **********************
  992.  
  993. We've added support for the Dual VGA and VGA/MC boards made by
  994. Colorgraphic Communications Corp. These boards let you have two VGAs
  995. in the system, using one for your program and one for Periscope.
  996.  
  997. Although both displays are showing information, only one is
  998. addressable from the system bus at any point in time. So, if you
  999. modify memory at B800:0 from Periscope, the command affects
  1000. Periscope's screen, not the program's screen. If you trace an
  1001. instruction that modifies memory at B800:0, the program's screen is
  1002. correctly updated.
  1003.  
  1004. For ISA and EISA buses, the Dual VGA card is used. It has two 16-bit
  1005. VGA sections on the card. To use it, note the following requirements:
  1006.  
  1007. - Remove any current CGA, EGA, or VGA card. If your system has a
  1008. built-in display, you'll need to disable it. 
  1009.  
  1010. - There's no need to remove any monochrome cards, but if the
  1011. monochrome card is removed, the Dual VGA will run significantly
  1012. faster, since the 16-bit access to it won't be slowed down by an
  1013. 8-bit monochrome card.
  1014.  
  1015. - When running PS.COM, specify the '/AD' option. If the Dual VGA
  1016. board is at a nonstandard address, you'll need to use the '/AD:nnn'
  1017. form to indicate the starting I/O port for the board.
  1018.  
  1019. - Periscope's display can be on either section of the Dual VGA card (A
  1020. or B), but it is assumed that only one Dual VGA card is in the system
  1021. and that the program's display is on the section not being used by
  1022. Periscope (B or A).
  1023.  
  1024. - Both displays attached to the Dual VGA card must be color displays.
  1025.  
  1026. For MicroChannel buses, the VGA/MC card is used. It comes with either
  1027. one or two VGA sections on the card. Most users will want the card
  1028. with just one VGA section. To use the VGA/MC card, note the following
  1029. requirements:
  1030.  
  1031. - The built-in VGA is always used for your program's screen and
  1032. Periscope always uses the VGA/MC for its display.
  1033.  
  1034. - When running PS.COM, specify the '/AD' option. If the Periscope
  1035. display is connected to section B (upper connector) of the VGA/MC
  1036. board, use the '/AD:B' option.
  1037.  
  1038. - There is no support for more than one VGA/MC card in the system.
  1039.  
  1040. - The display connected to the VGA/MC board must be a color display.
  1041.  
  1042. - Do not use Ctrl-Alt-Del to reboot the system while the Periscope
  1043. screen is active -- if you want to reboot from Periscope, use the QB
  1044. command. This is needed since the system VGA is turned off while
  1045. Periscope's screen is active and the BIOS does not turn it back on
  1046. during a reboot.
  1047.  
  1048. - If you're using Periscope I/MC with the VGA/MC, be sure to
  1049. configure Periscope's memory to a segment other than C000:0, since
  1050. that segment is used by the VGA/MC when it is active.
  1051.  
  1052.  
  1053. MODEL IV PODS
  1054. *************
  1055.  
  1056. There are currently three pods available for Model IV, with more
  1057. in development. The current pods include:
  1058.  
  1059. Periscope IV 286/386 Pod (Part #450)
  1060. This pod includes a 15" ribbon cable and black plastic box for the
  1061. pod. It requires an 80286 or 80386 flex cable.
  1062.  
  1063. Periscope IV 386 Pod, Rev 1 (Part #460)
  1064. This pod includes a 15" ribbon cable and spacer sockets. It does not
  1065. require an 80386 flex cable.
  1066.  
  1067. Periscope IV 386 Pod, Rev 1L (Part #461)
  1068. This pod includes a 15" ribbon cable and spacer sockets. It does not
  1069. require an 80386 flex cable.
  1070.  
  1071. The 286/386 pod supports both 80286 and 80386 CPUs at speeds up to
  1072. 25MHz. It requires the use of a separate Flex Cable to connect the
  1073. pod to the CPU. It works in the vast majority of systems, except those
  1074. that don't have enough room for this pod and some 386/25 systems
  1075. that have reliability problems due to the Flex Cable. 
  1076.  
  1077. The 386 Pod, Rev 1 was developed to support systems that do not have
  1078. enough physical space for the 286/386 pod or have operational problems
  1079. due to the use of the Flex Cable in some systems. It attaches directly
  1080. to the CPU and does not use a Flex Cable. This pod can be used in the 
  1081. following systems:
  1082.  
  1083. - ALR 25386DT (required for proper operation)
  1084. - AST Premium 386/25 (required for proper operation)
  1085. - Compaq 386/20e (required due to physical constraints)
  1086. - Compaq 386/25e (required due to physical constraints)
  1087. - Northgate 386/25 (required for proper operation)
  1088.  
  1089. The 386 Pod, Rev 1L is the same as the 386 Pod, Rev 1, except that
  1090. the CPU is rotated 90 degrees counterclockwise to be able to fit in
  1091. systems in which the first pod will not fit. This pod can be used in
  1092. the following systems:
  1093.  
  1094. - ALR 25386DT (required for proper operation)
  1095. - Club 386/20 (required for proper operation)
  1096. - Compaq 386/20 Deskpro (optional) 
  1097. - Compaq 386/25 Deskpro (optional)
  1098. - Dell 325 (required for proper operation)
  1099. - Silicon Valley SVC 386/25 (required for proper operation)
  1100.  
  1101. If you have problems with the 286/386 pod and your system is not 
  1102. listed, please call Tech Support.
  1103.  
  1104.  
  1105. MODEL IV ACCESSORIES
  1106. *******************
  1107.  
  1108. In addition to the pods described above, there are other items used 
  1109. with Model IV in various circumstances. These items include:
  1110.  
  1111. 80286 PLCC Adapter Kit (Part #490) -- This is used when the 80286 CPU
  1112. on the mother board is a PLCC (Plastic Leaderless Chip Carrier) device.
  1113. The kit contains the adapter and a PLCC chip remover. The adapter has
  1114. three stages: the lowest level plugs into the PLCC socket on the
  1115. mother board; the middle level is where you insert your CPU chip; and
  1116. the top level is where the 80286 Flex Cable is attached. 
  1117.  
  1118. 80286 PLCC Adapter Kit (20 MHz) (Part #477) -- This is used when the
  1119. 80286 CPU on the mother board is a PLCC device. The kit contains the 
  1120. adapter, a PLCC chip remover, and a 20 MHz PGA CPU chip. It has a
  1121. lower profile than Part #490 and can be used at any speed up to and
  1122. including 20 MHz.
  1123.  
  1124. 80286 LCC Adapter Kit (12 MHz) (Part #491) -- This is used when the
  1125. 80286 CPU on the mother board is a LCC (Leaderless Chip Carrier)
  1126. device. The kit contains the adapter and a 12 MHz 80286 PGA chip. To
  1127. use it, you remove the LCC chip and install the adapter head in place
  1128. of the LCC chip and then plug the 80286 Flex Cable into the PGA
  1129. socket on the adapter. The CPU chip that is included in the kit is
  1130. then plugged into the flex cable. This kit can be used in systems 
  1131. running at any speed up to and including 12 MHz.
  1132.  
  1133. 80286 Flex Cable Kit (Part #492) -- This is used with the 286/386 Pod
  1134. to connect the CPU to the pod. The kit contains the Flex Cable, a
  1135. crowbar tool, and an 80286 CPU extractor.
  1136.  
  1137. 80386 Flex Cable Kit (Part #493) -- This is used with the 286/386 Pod
  1138. to connect the CPU to the pod. The kit contains the Flex Cable, a
  1139. crowbar tool, and an 80386 CPU extractor.
  1140.  
  1141. 62-Pin Socket Extender (8-bit) (Part #494) -- This is used to raise a
  1142. PC size board in its slot by .62 inch so that the bottom of the board
  1143. will clear obstructions on the mother board. This connector is used
  1144. for the 8-bit portion of the bus.
  1145.  
  1146. 36-Pin Socket Extender (16-bit) (Part #495) -- This is used to raise a
  1147. PC size board in its slot by .62 inch so that the bottom of the board
  1148. will clear obstructions on the mother board. This connector is used
  1149. for the 16-bit portion of the bus.
  1150.  
  1151. Periscope Plus Board/512K (Part #152) -- This board is the same as a
  1152. Model I board, except that it contains no separate software, manual,
  1153. license, or break-out switch. It is used to keep the Model IV
  1154. software from using any memory in the first 640K.
  1155.  
  1156. Model IV Ribbon Cable (48 In) (Part #470) -- This ribbon cable is used
  1157. with the 286/386 pod when active or passive remote debugging is used.
  1158. It cannot be used with any other pod -- if you need a longer ribbon 
  1159. cable for other pods, they must be specially ordered.
  1160.  
  1161. ISA NMI Clip (For AT Bus) (Part #471) -- This clip is used with active
  1162. remote debugging. It connects the pod to the target system so that
  1163. Periscope can stop the target (an ISA or EISA system) when a
  1164. breakpoint is reached. It is not used with passive remote debugging.
  1165.  
  1166. MC NMI Clip (For PS/2 Bus) (Part #472) -- This clip is used with active remote
  1167. debugging. It connects the pod to the target system so that Periscope
  1168. can stop the target (an MCA system) when a breakpoint is reached.
  1169. It is not used with passive remote debugging.
  1170.  
  1171.  
  1172. LOCAL SYMBOL SUPPORT
  1173. ********************
  1174.  
  1175. Periscope Version 5.0 has local symbol support for the following
  1176. compilers:
  1177.  
  1178. - Microsoft C 6.0
  1179. - Borland Turbo C++ and C 2.0
  1180. - Turbo Pascal 5.5
  1181.