home *** CD-ROM | disk | FTP | other *** search
/ Computer Installation Guide - Dragon Clan Series / CD1.iso / cpu / 5X86C2 / 5X86.DOC next >
Encoding:
Text File  |  1996-09-23  |  23.5 KB  |  619 lines

  1. Program 5X86.EXE
  2.  
  3. Author Peter N Moss
  4. E-Mail Address pmoss@yoda.alt.za
  5.  
  6. Version C2,  12 May 1996.
  7.  
  8. Source code: Source code is not included.
  9.              Compiled with Turbo Pascal V5.5 and TASM V1.1
  10.  
  11. Files:
  12.       5X86xx.ZIP      The combined zipped distribution package
  13.       5X86.EXE        The program file
  14.       CX5X86.EXE      Device driver for cache
  15.       5X86.REG        Registration form
  16.       5X86.DOC        This file
  17.  
  18. The program: 5X86.EXE
  19.  
  20. What it is not:  A magic wand.
  21.  
  22. ***********************************************************************
  23. The program is a tool that allows the user to enable the Cyrix 5X86
  24. register bits.  It can not make any feature work, only enable it.
  25. ***********************************************************************
  26.  
  27. For use with DOS, Windows, Windows 95 and OS/2.
  28.  
  29. The program detects the presence of a 5x86 processor and will not
  30. run if a Cyrix/IBM 5x86 is not found.
  31.  
  32. 5x86.EXE will report and enable the modification of the performance
  33. control registers of the Cyrix 5x86 (TM) processor.  Access to
  34. register bits marked reserved (*) is not supported other than to
  35. report status if in some cases non zero.  See Undocumented commands.
  36.  
  37. Usage: 5x86 <[/H|?] [/Q]> </BTB_EN=[on|off] /LOOP_EN=[on|off]
  38.              /LSSER=[on|off] /RSTK_EN=[on|off] /BWRT=[on|off]
  39.              /WT1=[on|off]  /LINBRST=[on|off] /MEM_BYP=[on|off]
  40.              /DTE_EN=[on|off] /FP_FAST=[on|off]> <[/ICD|/CWT|/CWB]> <[/T]>
  41.  
  42.         Where BTB_EN  Branch prediction
  43.               LOOP_EN Loop (Prefetch buffer)
  44.               LSSER   Load store serialise, enable reorder
  45.               RSTK_EN Return stack
  46.               BWRT    Burst write cycle 4 dwords on cache line replacement.
  47.               WT1     Write through region one (640kb..1Mb).
  48.               LINBRST Linear burst mode.
  49.               MEM_BYP Memory read bypassing
  50.               DTE_EN  Directory table cache
  51.               FP_FAST Fast NPU exception reporting
  52.  
  53.               ICD     CPU Internal cache disable
  54.               CWT     CPU cache enable, write through mode
  55.               CWB     CPU cache enable, write back mode
  56.  
  57.               Q = Program version
  58.               H,? = Help
  59.  
  60.               T = Status of PCR0 register
  61.               E = (Reserved) Debug report.  Status of PCR0, CCR1..4
  62.                    and CR0
  63.  
  64.         Note that T may be combined with register bit settings
  65.         and will report status after the register has been set
  66.         by reading the register. Thus giving confirmation that
  67.         the register has been set correctly ie 5x86 /LSSER=on
  68.         /BTB_EN=on /RTS=off /t
  69.  
  70.         /E is included for debugging and expansion.  The report
  71.         is more than 25 lines so it would be advisable to use
  72.         this with either a DOS pipe to more (| more) or
  73.         redirection to a file (> filename).  It is is not part
  74.         of the program and is not expected to continue beyond
  75.         its current use.  Note CR0 NW bit cache status will
  76.         always report write through mode regardless of the
  77.         actual operating mode.  This has been changed and now
  78.         reports status 1 or 0.
  79.  
  80.         On = enable, 1; Off = disable, 0.  On and off are valid
  81.         and all other values are treated as a error.
  82.  
  83.         The first three characters only need be entered. LIN=on
  84.         is the same as LINBRST=on.  Less than three characters
  85.         of the register bit name will cause an error.
  86.  
  87.         The cache enable/disable parameters are only valid for
  88.         the CPU at level 0.  DOS operates at level 0 (ring 0)
  89.         if EMM386 is not loaded.  No checking or testing is
  90.         done for ring 0 operation.  The report of CR0 will be
  91.         incorrect for cache status as the NW bit does not
  92.         reflect cache status.  This is a currently known fault
  93.         and will be corrected in a future version.  It is only
  94.         reported using the /e switch which is for debugging
  95.         purposes only.
  96.  
  97.         Upper case or lower case characters may be used.  The
  98.         order of register input is not important.  H, ? or Q
  99.         will terminate any other command line parameters.  No
  100.         spaces can be placed between the register, equal sign
  101.         and action, ie. "BTB = on" is invalid as a space is a
  102.         valid separator.  BTB=on is the correct form.
  103.  
  104.         T may be placed anywhere on the command line.
  105.  
  106.         Command line input may use any legal DOS separator,
  107.         space tab / ; etc.
  108.  
  109. ******************************************************************
  110. [Undocumented commands added to version B9,C2]
  111.  
  112.     /CPUID=[on|off]     on = enable the CPUID command.
  113.     /SMAC=[on|off]
  114.     /MMAC=[on|off]
  115.     /USE_SMI=[on|off]   on = enable SMM pins
  116.     /IORT=[on|off]      on = 16 clks, off = 0 clks
  117.     /AISP=[on|off]      on = all instructions stalled to serialise
  118.                              pipeline
  119.     /RLML=[on|off]      on = reorder locked misalighned loads
  120. *******************************************************************
  121.  
  122. Errorlevel:
  123.            5 = No Cyrix 5x86.
  124.            1 = Command line entry error
  125.            0 = Normal termination.
  126.  
  127. The Cyrix 5x86 CPU registers:
  128.  
  129. Full details of the register address and access requirements can be
  130. found in the Cyrix 5x86 (TM) processor data book #94192-00.
  131.  
  132.                                     -oo-
  133.  
  134. Register: Performance control register 0
  135.  
  136. The following bits of this register perform various functions detailed
  137. with the register bit name.
  138.  
  139. Register PRC0 Index 20h
  140.  
  141. Access to this register is via I/O ports 22h (Index) and 23h (Data)
  142. and the MAP_EN bits of the CCR3 register.
  143.  
  144. Bit map:
  145. ----------------------------------------------------------------
  146.    7      6      5      4      3        2        1        0
  147. ----------------------------------------------------------------
  148. |LSSER|  Res4|  Res3|  Res2|  Res1|  LOOP_EN|  BTB_EN|  RSTK_EN|
  149. ----------------------------------------------------------------
  150.  
  151. Bit    Name     Function
  152. 7      LSSER    1 = Load store serialise enable (Reorder disable)
  153. 6      BTBT     Res4, BTB Test register
  154. 5      Res3     Reserved
  155. 4      RLML     Res2, Reordering of locked misalighned loads
  156. 3      AISP     Res1, All instructions stalled to serialise pipeline
  157. 2      LOOP_EN  Loop enable
  158. 1      BTB_EN   Branch target buffer enable
  159. 0      RSTK_EN  Return stack enable
  160.  
  161. RSTK_EN: 1 = The return stack is enabled and RET instructions will
  162.          speculatively execute the code following the associated CALL
  163.          to improve performance.
  164. BTB_EN:  1 = Branch target buffer enable.  Branch prediction occurs.
  165. LOOP_EN: 1 = The CPU will not flush the prefetch buffer if the
  166.          destination jump is already in the prefetch buffer
  167.          eliminating the need for a read from the cache.
  168. LSSER:   1 = All memory reads and writes will occur in execution
  169.          order. Reordering disabled.
  170.          LSSER should be set to ensure that memory mapped I/O devices
  171.          operating outside of the address range 640k..1M will operate
  172.          correctly.
  173.          Memory accesses in the range 640k..1M will always be issued
  174.          in execution order.
  175.  
  176.                                     -oo-
  177.  
  178. Register: Configuration control register 2
  179.  
  180. The following bits of this register perform various functions detailed
  181. with the register bit name.
  182.  
  183. Register CCR2 Index C2h
  184.  
  185. Bit map:
  186. ----------------------------------------------------------------
  187.      7      6      5      4       3        2       1       0
  188. ----------------------------------------------------------------
  189. |USE_SUSP| BWRT | Res2 | WT1 |SUSP_HALT|LOCK_NW|USE_WBAK| Res1 |
  190. ----------------------------------------------------------------
  191.  
  192. Bit    Name      Function
  193. 7      USE_SUSP  1 = Enable suspend pins
  194. 6      BWRT      1 = Enable use of 16 byte write back cycles
  195. 5      Res2      Reserved
  196. 4      WT1       1 = Write through region 1 (640k..1M)
  197. 3      SUSP_HALT 1 = CPU enters suspend mode after HALT instruction
  198. 2      LOCK_NW   1 = Prohibit change of state of NW bit of CR0
  199. 1      USE_WBAK  1 = Enable cache write back pins
  200. 0      Res1      Reserved
  201.  
  202. USE_WBAK: Enable INVAL and WM_RST input pins, and CACHE# and HITM#
  203.           output pins.  Must be set prior to enabling NW bit of CR0.
  204. WT1: Forces all writes to the address region between 640k and 1M
  205.      that hit in the on-chip cache to be issued on the external bus.
  206. BWRT: Enable use of 16 byte write back cycles.  Set only if
  207.       system logic supports.
  208.  
  209.                                     -oo-
  210.  
  211. Register: Configuration control register 3
  212.  
  213. The following bits of this register perform various functions detailed
  214. with the register bit name.
  215.  
  216. Register CCR3 Index C3h
  217.  
  218. Bit map:
  219. -------------------------------------------------------------------
  220.     7       6       5       4        3        2       1       0
  221. -------------------------------------------------------------------
  222. |MAP_EN3|MAP_EN2|MAP_EN1|MAP_EN0 |SMM_MODE|LINBRST|NMI_EN|SMI_LOCK|
  223. -------------------------------------------------------------------
  224.  
  225. Bit    Name     Function
  226. 7      MAP_EN3  = 0
  227. 6      MAP_EN2  = 0
  228. 5      MAP_EN1  = 0
  229. 4      MAP_EN0  1 = All configuration registers are available
  230. 3      SMM_MODE 1 = SL device compatible mode
  231. 2      LINBRST  1 = Linear address sequence is used
  232. 1      NMI_EN   1 = NMI is enabled during SMM
  233. 0      SMI_LOCK 1 = SMM register lock
  234.  
  235. SMI_LOCK: Once set can only be cleared by asserting the RESET pin.
  236. LINBRST: Enable linear address sequence.  0 = 1 + 4 sequence, Intel
  237.          compatible.
  238.  
  239.                                     -oo-
  240.  
  241. Register: Configuration control register 4
  242.  
  243. The following bits of this register perform various functions detailed
  244. with the register bit name.
  245.  
  246. Register: CCR4 Index E8h
  247.  
  248. Bit map:
  249. ----------------------------------------------------------------
  250.     7       6       5       4        3       2       1       0
  251. ----------------------------------------------------------------
  252. |CPUIDEN|  Res | FP_FAST| DTE_EN| MEM_BYP| IORT2 | IORT1 | IORT0 |
  253. ----------------------------------------------------------------
  254.  
  255. Bit    Name     Function
  256. 7      *CPUIDEN 1 = Enable CPUID instruction and EFlags bit 21
  257. 6      Res      Reserved
  258. 5      *FP_FAST 1 = Fast FPU exception reporting
  259. 4      DTE_EN   1 = Enable directory table entry cache
  260. 3      MEM_BYP  1 = Memory read bypassing is enabled
  261. 2      IORT2
  262. 1      IORT1
  263. 0      IORT0    I/O recovery time 0..128 bus clocks 2^x
  264.  
  265. * = Reserved function
  266.  
  267. CPUIDEN: Step level 1 up only.  No working sample reported.
  268. IORT: 0 = no clock delay ... 7h = 128 clock delay.
  269.  
  270.                                     -oo-
  271.  
  272. Usage and optimisation:
  273.  
  274. In setting the CPU please note the the results are very dependent on
  275. the correct setup of the CMOS parameters.  Particular attention should
  276. be placed on the L1, L2 cache settings as well as memory read and
  277. write wait states.  It is suggested that these setting be optimised
  278. first before attempting to "tune" the CPU performance control register.
  279. There maybe some interaction of the CMOS settings and CPU settings
  280. requiring iteration to find the most suitable.
  281.  
  282. The Cyrix 5x86 as other Cyrix processors requires that the motherboard
  283. and BIOS support the on chip cache (L1) as well as other signal pins.
  284. For this reason the motherboard jumpers and CMOS must be set correctly.
  285. Before starting it is a good idea to run 5x86 /e to see what register
  286. bits have been set by the BIOS.
  287.  
  288. ------------------------------------------------------------------
  289. Internal cache enable option
  290. ------------------------------------------------------------------
  291.  
  292. The cache is enabled/disabled by setting CPU CR0 register which can
  293. only be accessed (written) when the CPU is operating at CPL 0 or ring
  294. 0.  This feature is not to be used in protected mode (32 bit programs)
  295. such as Windows, Unix etc.  No checking is done at present although
  296. possible.  The user is expected to read and understand this statement
  297. and not foolishly attempt to modify the cache setting when operating
  298. the CPU at any other level than 0.  The use of this feature is only
  299. included for those motherboards without Cyrix cache support as a test
  300. at present.  Note running EMM386.EXE and similar memory managers places
  301. DOS at CPL 3 and you will not be able to change the setting of CR0.  A
  302. clean DOS boot is absolutely essential to use ICD, CWT and CWB.
  303. CBW will enable the write back pins of the CPU and if these are not
  304. supported by the hardware, writeback mode can not be expected to work.
  305.  
  306. CX5X86.EXE is included so that if it is required that the internal
  307. cache be manually enabled, this can be done in CONFIG.SYS.  This
  308. device driver has no other purpose.
  309.  
  310. See device driver, cx5x86.exe
  311. ------------------------------------------------------------------
  312.  
  313. Some problems have been noted with LSSER set to 0 the default when
  314. other functions (bits) have been enabled.
  315.  
  316. Suggested BIOS default values are:
  317.  
  318. CCR2  BWRT    = 0 System logic must support
  319. CCR4  MEM_BYP = 1
  320.       DTE_EN  = 1
  321.       FP_FAST = 0
  322.       IORT    = 0
  323. PCR0  RSTACK  = 0
  324.       BTB     = 0
  325.       LOOP    = 0
  326.       LSSER   = 1 for PCI memory mapped devices
  327.       LSSER   = 0 for systems without PCI
  328.  
  329. These are a very good starting point.
  330.  
  331. The parameters for use can be found by entering h or ? on the command
  332. line.  When the optimum parameters have been found path\5x86 {parameters}
  333. may be placed in your autoexec.bat file with those parameters so that
  334. the PC is set on startup.
  335.  
  336. As a guide for current revisions of 5x86 CPU enable the following
  337. registers if not enabled by the BIOS.  Note BTB may not work for all
  338. operating systems and hardware.
  339.  
  340. BTB_EN=on   may cause problems with windows....
  341. MEM_BYP=on  safe setting
  342. DTE_EN=on   safe setting
  343. FP_FAST=on  safe setting
  344. WT1=on      if writeback L1 is selected in CMOS
  345. USE_WBAK=on writeback mode only
  346. BWRT=on     writeback mode only
  347. LSSER=on    for PCI or if instability is noted.
  348.  
  349. Registers that should be enabled by the BIOS
  350.  
  351. Write through mode:
  352.  
  353.       MEM_BYP
  354.       DTE_EN
  355.       LSSER for PCI, see above
  356.  
  357. Write back mode:
  358.  
  359.       USE_WBAK
  360.       BWRT      Some MBs will not operate with this setting
  361.       WT1
  362.       MEM_BYP
  363.       DTE_EN
  364.       LSSER for PCI, see above
  365.  
  366. It may be found that if the BIOS is Cyrix 5x86 aware that some of these
  367. registers are enabled.  Notably MEM_BYP and DTE_EN, with USE_WBAK, WT1
  368. and sometimes BWRT enabled if the cache is in writeback mode and burst
  369. writes have been enabled.  If BWRT is enabled disable burst write in
  370. the CMOS and check again.  It is a possible area for failure to
  371. operate.  The only way to find out is to check with 5x86 /e and note
  372. any enabled registers.  These settings were tested with IBM5x86-100 step
  373. 1, rev 3 and an Asustek SV2GX4-VL motherboard.  BWRT or burst writes
  374. would not operate on this motherboard and required that CMOS setting
  375. for burst writes be disabled.
  376.  
  377. OS/2:
  378.  
  379. In startup.cmd
  380.  
  381. start /c /dos /win [drive:\path\5x86 <parameters>]
  382. @exit
  383.  
  384. This is untested and due to my total ignorance of OS/2 may contain errors
  385. Your manuals and documentation will be of use here, I will not.
  386.  
  387.                                     -oo-
  388.  
  389. Optimisation:
  390.  
  391. Part of my problem in writing documentation is the level to aim it at.
  392. I am sure that anyone can appreciate that it is really not possible
  393. to bring up to speed all users of the program.  Microsoft even fails
  394. at that.  The setting of the advanced features does require an
  395. understanding of at least some of the technicalities and processes.
  396. As does setting the CMOS.  Use benchmarks such as Landmark SPEED V2,
  397. Norton SI and Ziff-Davis PCBENCH V9 for your testing as these have
  398. published results.
  399.  
  400. Step 1:
  401.  
  402. Start by setting the CMOS/BIOS such that maximum performance is
  403. obtained.  This is to check that the system is functional to a proper
  404. level.  The results obtained should be similar to any 486DX4 at the
  405. same speed.  If this can not be obtained there is no purpose in
  406. feeding the system purple hearts by setting the advanced features in
  407. the hopes of making a sick child well.  Note what if any features the
  408. BIOS enables.  Step 2 may not be required.
  409.  
  410. Step 2:
  411.  
  412. Once all problems have been resolved, enable MEM_BYP and DTE_EN.
  413. If the system is a PCI bus enable LSSER.  This is the basis of
  414. advanced features and the setting used by most BIOSs that support the
  415. Cx5x86.  Performance should be at or close to the Cyrix published
  416. figures.  If not go back to step 1.
  417.  
  418. Step 3:
  419.  
  420. Enable BTB and test at this point you may have to go back to step 1
  421. as some settings may have been on the edge and will now fail.  Pay
  422. attention to cache and dram settings.  There are many owners who can
  423. not operate with branch prediction enabled, especially in windows or
  424. windows 95.  The revision of your CPU may be a factor here and step 1
  425. revision 3 up should be suitable but is not guaranteed.
  426.  
  427. Step 4:
  428.  
  429. Disable LSSER if it was enabled.  Enable WT1.  Some chipsets
  430. support linear burst mode and enabling this may be possible.  These
  431. are listed.
  432.  
  433. ALI          M1489/87
  434. OPTI         82C465MVB
  435. Picopower    868/818
  436.              668/618
  437.              768/718
  438. Symphony     491/492 Wagner
  439. UMC          8880
  440.  
  441. Anyone having success with linear burst mode please report it fully.
  442.  
  443. Step 5:
  444.  
  445. You are on your own.  Note that BTB is not guaranteed to work nor
  446. are steps 3 and 4 and there are many MBs+hardware combinations that
  447. will not run correctly.  There is no magic formulae to sort yours out.
  448. It takes hard work and much testing.  Keep notes of what has been done
  449. and the results.  Even without BTB enabled this is one of the fastest
  450. 486 class processors available.  It may be possible to run BTB enabled
  451. in DOS but not in Windows.
  452.  
  453. Notes:
  454.  
  455. I have assumed that the mother board supports writeback L1 cache.
  456.  
  457. If you don't understand a particular aspect ask.  A general query such
  458. as "my 5x86 will not work, what is wrong?" will be ignored as nobody
  459. has that much time.  Give as much detail as will be required to answer
  460. the question.
  461.  
  462.                                      -oo-
  463. What are we dealing with?
  464.  
  465. Memory management:
  466.  
  467. Load-store reordering; that prioritises memory reads required by the
  468. integer unit over writes to external memory.
  469.  
  470. Memory-read bypassing; that eliminates unnecessary memory reads by using
  471. valid data still in the execution unit.
  472.  
  473. Branch prediction:
  474.  
  475. The branch prediction target buffer (BTB) is used to store branch target
  476. addresses and branch prediction information.
  477.  
  478. The target address of a RET instruction is dynamic rather than static
  479. and return addresses are cached in a return stack rather than the BTB.
  480. The return address is pushed on the return stack during a CALL
  481. instruction and popped during the corresponding RET instruction.
  482.  
  483.                                     -oo-
  484.  
  485. The device driver : CX5X86.EXE
  486.  
  487. USE: Only if the BIOS does not enable writeback mode and the system
  488.      logic supports write back mode.
  489.  
  490. Use in config.sys file as the FIRST device loaded.  It is of no use at
  491. all if loaded after EMM386 and similar programs.  It is intended for
  492. older motherboards that do not enable the cache.  Write back mode may
  493. not be usable.  See Usage and optimisation section.
  494.  
  495. Usage: DEVICE=[Path\]CX5X86.EXE <[/CD|/WT|/WB]>
  496.  
  497.       Where /CD = Cache disable
  498.             /WT = Cache enable in write through mode
  499.             /WB = Cache enable in write back mode
  500.  
  501.       The syntax is exact; "/" must be used to proceed the option
  502.       and only the options as given are valid.  Upper or lower case
  503.       characters may be used.  Only one option (the first) on the
  504.       config.sys "device = CX5x86" line is valid.
  505.  
  506.       EXAMPLE:Device=c:\util\cx5x86.exe /wt
  507.  
  508.               (Write through mode selected)
  509.  
  510. Write through mode sets the CR0 register and LOCK_NW bit of CCR2.
  511.  
  512. Write back mode sets the CR0 register and USE_WBAK and LOCK_NW bits
  513. of CCR2.  This will cause problems if the hardware does not support
  514. the write back configuration.  Your motherboard supplier or
  515. manufacture should be able to answer this question.  If not are you
  516. buying from the right company?
  517.  
  518. Cache disable sets CR0 bit CD.
  519.  
  520. This device driver is not installed and thus takes up no memory
  521. after use.  It can only be used with DOS, Windows and Windows 95.
  522.  
  523.                                     -oo-
  524.  
  525. References:
  526.  
  527. Cyrix 5x86(TM) Microprocessor Data Book
  528. IBM 5x86 BIOS Writers Guide
  529. CTCHIPZ configuration files
  530.  
  531. Functionality, type and rights:
  532.  
  533. 5x86.EXE is not crippled or contain nagware and relies completely on
  534. the honesty of the user.  Use of the program is not free and the user
  535. is both legally and morally bound to registration and payment of the
  536. registration fee.
  537.  
  538. 5x86xx.ZIP is shareware, all rights are reserved by Peter N Moss.
  539.  
  540. Copyright:
  541.  
  542. 5x86.EXE, Cx5x86.EXE and 5x86.DOC are copyright 1995 Peter N Moss.
  543.  
  544. Disclaimer:
  545.  
  546. No claim is made for the fitness of purpose of this software and no
  547. claim for damages of any nature will be accepted.  The program is
  548. for use at entirely your own risk.
  549.  
  550. Distribution:
  551.  
  552. You may distribute the files only on condition that they are not
  553. altered and all files are included.  No charge may be made for the
  554. software.  The latest version can be found at
  555. ftp://compnt.cs.unp.ac.za/uploads/cyrix/5x86(Ver).zip.
  556.  
  557. And at http://www.dfw.net/~sdw/cxstuff.html  This site may lag the
  558. ftp site.
  559.  
  560. Updates to registered users will only be sent via Internet e-mail
  561. without charge.  Disk updates will be charged at the cost of
  562. materials and postage.
  563.  
  564. Reports and support:
  565.  
  566. Whilst reports of results or bugs are welcomed, it is not possible to
  567. support questions on how to setup or optimise any motherboards.  You
  568. are referred to the dealer that sold the board and or CPU.  Registered
  569. users can expect free update notification and as much help as can be
  570. given.  Unregistered users can expect the same consideration as they
  571. have given the author.
  572.  
  573. Thanks:  Mr C Chan, Mr K J Wren, Mr J Stiel and Mr C D Regenberg for
  574.          testing and feedback.  Cyrix Corp for data.  IBM for data.
  575.          Dave Harter of Cyrix for help and information.  Paul Naylor
  576.          of Cyrix for data.
  577.  
  578. Trademarks:  Cyrix is a registered trademark of Cyrix Corp.
  579.              Cx5x86 is a registered trademark of Cyrix Corp.
  580.              IBM is a registered trademark of International Business
  581.              Machines.
  582.              Windows and windows 95 are registered trademarks of
  583.              Microsoft Corp.
  584.  
  585. Payment:
  586.  
  587. You are offered 30 days free trial for evaluation only.  After that
  588. period has expired and registration or payment has not taken place
  589. then the program must not be used.
  590.  
  591. Personal/corporate cheques are the preferred method of payment.
  592.  
  593. Payment of US$15.00 or the equivalent is such a small amount that
  594. anyone that uses the program continuously should contribute to the
  595. development of it.  Approximately 500 man hours have gone into the
  596. development of the programs.  It will also insure that the program
  597. continues to be developed.
  598.  
  599. Your honesty will ensure the continued development of shareware
  600. programs, in particular 5x86.  No shareware author wishes to donate
  601. his time and effort to people unwilling to appreciate that effort.
  602. Would you offer a similar amount of time or effort to the shareware
  603. author?  If not, please pay the small amount requested.  Not doing so
  604. is theft.
  605.  
  606. For money order payment from outside of South Africa please add $4.00.
  607. Payment in cash, cheques (preferred) or money order may be made to:
  608.  
  609. P N Moss
  610. P O Box 212144
  611. Oribi
  612. Pietermaritzburg
  613. Rep of South Africa, 3205
  614.  
  615. When making payment please include your e-mail address if you have one
  616. and your return mail address.
  617.  
  618. Registration form:  5X86.REG
  619.