home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / pocketbk / developmen / oplcomp / OPLCOMP.DOC next >
Text File  |  1992-11-05  |  12KB  |  370 lines

  1.  
  2.     OPLCOMP (c) & the associated software & documentation are copyright
  3.     CALsoft, S.Coughlan & C.A.Lowde 01/June/1989 and may not be reproduced
  4.     in any form without prior written permision of the author S.Coughlan.
  5.  
  6.     You are allowed to evaluate OPLCOMP. Should you decide to use
  7.     OPLCOMP you must register its use at the address supplied in the 
  8.     registration form.
  9.  
  10.     We can accept no responsability, or liability in any respect, for
  11.     any aspect of the information, programs or data supplied. 
  12.  
  13.     Registration will enable you to recevie a copy of the source code,
  14.     an improved version of OPLCOMP and VARCOMP (when tidy) a variable 
  15.     compression program on 3.5" disk. Registration will also enable me
  16.     to continue to afford to pay my Compuserve bill, which is 
  17.     expensive from the U.K and hence post updates and further utilities.
  18.  
  19.     I can be reached on COMPUSERVE at 100112,750
  20.  
  21.  
  22.     
  23.     REV 1.00 Shareware release version 10/11/1992
  24.  
  25.  
  26.     OPLCOMP
  27.  
  28.     A program to compress OPL programs for the PSION Organiser series
  29.     of computers. OPLCOMP can reduce object space by up to 35% (depending
  30.     on how well you write your code). You will also find speed increases
  31.     of up to 10% again depending on code structure.
  32.     
  33.     Most of the references here refer to the organiser CM, XP, LZ, LZ64,
  34.     but are relavant to any OPL supported system.
  35.  
  36.     The program runs on an IBM P.C and the original version is written
  37.     in QUICK BASIC but has been re-written in TURBO-PASCAL.
  38.  
  39.     Trade marks are copyright their respective owners.
  40.  
  41.  
  42.     HISTORY
  43.  
  44.         OPLCOMP was written in June of 1989 to allow a very large
  45.     program to be fitted onto a 64K data pack. At the time we were having
  46.     severe difficulty fitting our very large program onto a pack. 
  47.  
  48.         (We were re-programing SPELL-CHECK eproms at that time,
  49.         later we simply re-placed the OTP rom with an EPROM 
  50.         as PSION were ripping all & sundry off at †60.00 a time)
  51.  
  52.         We had designed a number of hardware interfaces for the
  53.     Organiser, including a graphics display module, and multi-port
  54.     top slot interface, amongst others.
  55.  
  56.         We had the idea of reducing our code by reducing module
  57.     names in length, but as there were over 150 module names with
  58.     inumerable references, the process had to be automated. Enter
  59.     OPLCOMP to automate the whole process.
  60.  
  61.  
  62.         Development of our software has finished, but OPLCOMP
  63.     evolved slowly re written in Turbo Pascal. About a week ago,
  64.         NOV 1992, I was asked for a copy. The gentleman in question
  65.     suggested I post it on Compuseve to see what kind of repsonse
  66.     it would generate, so here it is.
  67.  
  68.  
  69.  
  70.     SERIOUS DEVELOPMENT
  71.  
  72.         If you really want to know about the PSION organiser
  73.     computers you will need the PSION Organiser Technical Manual. It
  74.     was supplied on floppy disks originally and contains nearly all the 
  75.     information you could possibly require. Note though, that it is
  76.     technical in nature and not for the light hearted. You would
  77.     also need a copy of the 6303 micro processor data sheet. I used
  78.     the 'Hitachi 8-Bit MULTI-CHIP MICROPROCESSOR AND PERIPHERAL DATA
  79.     BOOK' published by Hitachi 1985 ref DB8MC8504 as well. The Technical
  80.     manual originally required a non-disclosure agreement signing, and I
  81.     don't currently know the status of PSION's attitude to the manual.
  82.  
  83.         You will also need a copy of the relavant debugger, this
  84.     allows you to write your code on an IBM P.C and emulates the 
  85.     organisers screen, enabling you to debug OPL without committing
  86.     your self to a program pack (EPROM). You can single step, trace
  87.     and watch variables. With a RAM pack the development cycle is
  88.     considerably easier.
  89.  
  90.         Machine code programing on the organiser requires
  91.     considerable skill, errors will readily crash the machine trashing,
  92.     all data held by the machine. Serious development requires a RAM
  93.     pack (watch out for mains power supply connection spikes, wiping
  94.     the contents of a ram pack when being connected) and a COMMS link
  95.     NOT an RS232 interface. The RS232 interface does not support the
  96.     PSION data transfer protocol, required for building a data pack.
  97.     The RS232 link only has an 8K rom on board, whilst the COMMS link
  98.     has a 32K ROM.
  99.  
  100.  
  101.     USING OPLCOMP
  102.  
  103.         To use OPLCOMP you don't need to modify your code in any way
  104.     but you should be familiar with the OPLTRAN utility supplied with the
  105.     OPL developer software for the series 2.
  106.  
  107.     Your copy of the '.BLD' file used to construct a data pack will
  108.     need a few small modifications. The file is an ASCII text file,
  109.     the following is an example of the required format for a build file.
  110.  
  111.     spcorg 64 nocopy write
  112.     
  113.     boot     bin
  114.     upperc   ob3
  115.     yes      ob3
  116.     VCOMP$   ob3
  117.     VDCOMP   ob3
  118.     BLEEP    ob3
  119.     BOOT     ob3   !*SAVE
  120.     BOOTCL   ob3
  121.     DATE$    ob3
  122.     SPC      ob3   !*SAVE
  123.  
  124.     The first line specifys the following
  125.  
  126.     the pack name
  127.     the pack size in K bytes
  128.     the pack may not be copied
  129.     the pack may be written to
  130.  
  131.         Subsequent lines specify the files to be included in the
  132.     build process. The additions are the !*SAVE text. The ! character
  133.     allows you to add a comment, the *SAVE informs OPLCOMP not
  134.     to compress the module name.
  135.          This is necessary as the BOOT.ob3 file must not be renamed,
  136.     if the pack is to be made bootable. Our pack was named SPC and was
  137.     started by running a module called SPC, hence we excluded it from
  138.     the compression process. BOOT.ob3 is searched for by the machine,
  139.     when the ON/CLEAR key is pressed, on every pack. If found the code
  140.     contained in the BOOT.ob3 file is executed. In our case we installed
  141.     our program name into the top level menu. To enable all this to take
  142.     place the BOOT.BIN file had to be included. This module (supplied
  143.     with the Developer) can contain any module name but defaults to BOOT.
  144.  
  145.     We allowed the pack to be written to as it enabled us to provide
  146.     update procedures, without having to re-program the whole pack.
  147.     As pack programming took about 35-45 minutes and erasing about the
  148.     same length of time in the PSION EPROM eraser (Formatter). While we
  149.     had space on the packs this proved extremely usefull and saved hours.
  150.     On a newer P.C these times might be decreased slighlty.
  151.  
  152.  
  153.     
  154.     Our BOOT.OPL file looked like this :-
  155.  
  156.     boot:
  157.     addtop:("SPC",0)
  158.     deltop:("RESET")
  159.         
  160.     The first line ran a module to install a title SPC in the top level
  161.     menu. If you don't have this routine I have included it in the
  162.     Appendix. The second line ran a module removing tht RESET option.
  163.     Again I have included this routine in the appendix.
  164.  
  165.     Type in at the dos command line
  166.  
  167.     OPLCOMP
  168.  
  169.     to run OPLCOMP. OPLCOMP prompts you for :-
  170.  
  171.     The source path
  172.     The destination path
  173.     The build file name
  174.  
  175.  
  176.  
  177.     The source path is where your original OPL files are located.
  178.         eg c:\source\
  179.  
  180.     The destination path is where OPLCOMP will place the compressed
  181.     OPL files.
  182.         eg c:\dest\
  183.  
  184.     The build file name might be
  185.     spcorg.bld
  186.  
  187.  
  188.  
  189.     When you are asked if it is ok to start press the 'y' key.
  190.  
  191.     OPLCOMP then proceeds to hash through all the files in the build
  192.     file and compresses them, producing new modules in the destination
  193.     directory
  194.  
  195.     OPLCOMP
  196.       :     
  197.       :---<---- c:\source\source.bld
  198.       :         *.OPL in build file
  199.       :
  200.       :--->---- c:\dest\newspec.bld      
  201.       :         crossref.doc
  202.       :         *.TMP
  203.       :
  204.  
  205.         OPLCOMP produces modules with the extension *.TMP, this
  206.     ensures you don't overwrite existing modules accidently but you
  207.     must rename them if you wish to translate them. Don't forget you
  208.     can rename them all with 'ren *.TMP *.OPL' in one go from the DOS
  209.     prompt.
  210.  
  211.     In the destination directory a cross reference file is generated
  212.     call CROSSREF.DOC. This file migh look like this :-
  213.  
  214.      OPL compacted Procedure names from OPLCOMP Rev 1.00
  215.       (c) CALsoft 1989
  216.      Date 01-01-1980   Time 02:35:06
  217.  
  218.     SPCINPF  .OPL      B
  219.     READINST .OPL      C
  220.     READINTF .OPL      D
  221.     UPPERC   .OPL      E
  222.     YES      .OPL      F
  223.     VCOMP$   .OPL      G$
  224.     VDCOMP   .OPL      H
  225.     BLEEP    .OPL      I
  226.     BOOT     .OPL      BOOT
  227.     BOOTCL   .OPL      K
  228.  
  229.         Notice that BOOT.OPL was excluded as explained previously,
  230.     the cross reference file allows you to