DataMuseum.dk

Presents historical artifacts from the history of:

Bogika Butler

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Bogika Butler

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦9bed2b6a5⟧ TextFile

    Length: 10112 (0x2780)
    Types: TextFile
    Names: »ZASCPM.DOC«

Derivation

└─⟦63c65de3f⟧ Bits:30009789/_.ft.Ibm2.50007335.imd Mogens Pelles Zilog 80,000 / EOS projekt
    └─⟦this⟧ »ZASCPM.DOC« 

TextFile








                     ***************************************
                       ZAS Distribution Disk Documentation
                     ***************************************

                                CP/M Version 1.1

                          Copyright 1981 Western Wares
                                           P. O. Box C
                                       Norwood, CO  81423

            This disk contains the CP/M  command  files which comprise
          the ZAS Development Package:

          ZAS.COM        Z-8000 Cross Assembler

          ZLK.COM        Object Task Builder

          ZLD.COM, ZLDX.COM
                         Absolute Object Loader

          ZEX.COM        Z-8000 Run Time Execution Support













            Source  files  useful  for CP/M and ZEX  interfacing  from
          Z8002 code are also on the disk:

          ZEXCP.LIB      This file defines  fixed  symbols relating to
                         CP/M functions and locations within ZEX (e.g.
                         PSA,  USERSC). It  has  been  written  to  be
                         compatible with both ZAS (using $INCLUDE) and
                         MAC  (or  RMAC)  using  MACLIB. Use this file
                         when  creating  hardware dependent patches to
                         ZEX based on the "ZNULCP" source files. 

          ZEXZ.LIB        This  file  is convenient to  "$include"  in
                         Z-8000  application  routines which  will  be
                         using  CP/M  facilities accessed through  the
                         ZEX  run  time modules.  It  contains  symbol
                         definitions  for CP/M functions,  and  system
                         call identifiers for ZEX.

          CPMINT.ZAS     Z8002 routines to perform basic I/O functions
                         through ZEX to CP/M.

            In addition, the  null  hardware dependent patches for ZEX
          and ZLD are included in source form:













          ZNULCP.ASM      8080  Assembly  language routine  containing
                         null versions  of the SETSEG, SETUPZ and RUNZ
                         routines.  (See User Manual for details)

          ZNULCP.ZAS      Z8000 Assembly language routine containing a
                         null version of the HOSTZ routine.  (See User
                         Manual)

          ZLDNULCP.ASM   8080  Assembly language routines which can be
                         modified to support arbitrary program loading
                         functions.   These  are  patched into ZLD and
                         ZLDX.COM.

            To install ZEX, the user  should  modify  the first two of
          these files for  the  particular  CPU  bus  master switching
          circuitry used, as described in the Run Time Support section
          of  the  User Manual. CP/M's utility DDT is  convenient  for
          performing the patches into ZEX (and the patches for ZLD and
          ZLDX).

            For example, assuming you have  created  and assembled new
          versions of ZNULCP.ASM and  ZNULCP.ZAS,  named  ZNEW.ASM and












          ZNEW.ZAS,  producing  files ZNEW.HEX and ZNEW.ZRL, the  base
          address (%1xx) for  the  HOSTZ routine contained in ZNEW.ZRL
          can  be  determined  by  computing  the  next  even  address
          following  the  8080 routines in ZNEW.HEX. The last location
          for  HOSTZ  (%1yy)  should not exceed %13F.  Then,  assuming
          ZNEW.ZAB has been created from ZNEW.ZRL,

                         A>ZLK ZNEW.ZABø=ZNEW(*)/%1xx  ,

            the  following steps can be used to create your version of
          ZEX.COM:



                  1. A>ZLD ZNEW.ZAB 5000  ; Load the output of ZLK offset by %5000
                  2. A>DDT ZEX.COM
                     -F103,13F,0          ; Clear out patch area
                     -IZNEW.HEX           ; Read your version (8080)
                     -R
                     -M51xx,51yy,1xx      ; Move Z-8000 code to the patch area
                     -S10A
                     10A 00 01            ; Set up pointer to HOSTZ (01xx)
                     10B 00 xx (even!)    ; low byte of pointer












                     10C 00 .
                     -D100,13F            ; Display the user area
                     0100 C3 6F 01 00 ... etc.
                     -^C
                  3. A>SAVE 10 ZEXNEW.COM ; Save your custom version of ZEX

            Notice that once your version of ZEX is created, an entire
          memory image, consisting of ZEX  (%100-%AFF),  and  a  Z8000
          application program (%0FFC to base of CCP), can be SAVEd for
          later execution from the CP/M CCP.

            For example, assuming you have assembled the sample memory
          test program, MTST.ZAS, and ZLK'd it with CPMINT:


                  A>ZLK MTST.ZAB;=MTST,CPMINT(*)/1006 ,
                   (or A>ZLK @MTST)

          The following steps  will  produce the file ZMTST.COM, which
          can be executed on your Z-8002 from CP/M:


                  1. A>ZLD MTST.ZAB       (load the absolute file)












                  2. A>ZEX ^A             (load your version of ZEX.COM,
                                            the ^A keeps CP/M from
                     ?                      executing ZEX)
                  3. A>SAVE 20 ZMTST.COM  (save the memory image,
                                            20 pages is sufficient
                                            for MTST, and is determined
                                            from the ZLK MAP output)

                          ****************************

            As an example of Z-8000 program development using ZAS, the
          Z-8000 portion of ZEX is included (ZMNCPM.ZAS). This code is
          located at address %500, and can be modified by the user  to
          change the normal operating conditions for ZEX, as described
          below. 

            To assemble and locate ZMNCPM, type:


                  A>ZAS ZMNCPM/X/S
                  A>ZLK /S/MS @ZMNCPM

            The resulting absolute  code may now be loaded into memory












          at location %5500,


                  A>ZLD ZMNCPM.ZAB 5000

          Now, DDT can be used to display the code:


                  A>DDT ZEX.COM

                  DDT VERS x.x
                  NEXT  PC
                  0800 0100
                  -D5500

                  5500 76 0F 0F FC .... etc.

                  -D500

                  0500 76 0F 0F FC .... (should be the same as above)

                  -M5500,5AFF,500  (Move it to the correct spot in ZEX)













            ZEX can be configured to run with either the Z-8001 or the
          Z-8002.  The version of ZEX.COM contained on this  disk  has
          been configured for the Z-8002. To  create  a Z-8001 version
          of  ZEX,  change  the  symbol 'Z8001' to TRUE in ZMNCPM.ZAS,
          then  'ZAS',  'ZLK'  and 'ZLD' it as described  above.   The
          ZMNCPM.ZLK  file should be modified to indicate  the  memory
          segment  for  ZEX and ZMNCPM. Finally, move it to the proper
          spot in ZEX.COM with DDT, as shown above. 

            The command,


                  A>SAVE 10 YOURZEX.COM

          will complete the configuration. 

            The  default  FCW  for  programs  executed  with   ZEX  is
          determined from the  INITIAL_FCW  symbol  within ZMNCPM.ZAS,
          and  is  currently  set  to   start  user  code  running  in
          non-segmented, system mode. 

            Application  programs  should  be located above %1006  for
          execution  under  ZEX,  using  System  Call  instructions to












          access the functions in ZMNCPM.

            See the User Manual for more details on ZEX.

                     ***************************************
                        Configuring ZLD.COM and ZLDX.COM
                     ***************************************

            These two programs have been written to  allow simple user
          modification  to  support  widely  varying  program  loading
          requirements. 

            The area from %103 to %1FF within ZLD and ZLDX is reserved
          for user modification, and  consists  of  a  jump  vector to
          several   user  routines,  which  immediately   follow   the
          vectors.  The  file  ZLDNULCP.ASM  explains  the function of
          each routine, and is the default version currently contained
          within ZLD.COM and ZLDX.COM. By modifying this file, ZLD can
          be set up to load  to segmented memory with separate Program
          and Data areas,  for  example.   Downloading  to a prototype
          circuit is also possible. 

                     ***************************************













                    Please report any bugs (or questions) to:

                                      Western Wares
                                       P. O. Box C
                                   Norwood, CO   81423
                                     (303) 327-4898

            If a bug is suspected,  send  a  sample which exhibits the
          problem,  together with the .COM files to Western Wares on a
          single  density  8" disk.  We also require that the original
          distribution disk be returned for any updates or bug fixes. 

                     ***************************************
                        Welcome to 16-bit Microcomputing!
                     ***************************************













«eof»