[TOOLS] PCEas design document.

hu, cd, scd, acd, supergrafx discussions.
Post Reply
User avatar
MooZ
Site Admin
Posts: 386
Joined: Sun Jun 22, 2008 3:19 pm
Location: Lvl 3
Contact:

[TOOLS] PCEas design document.

Post by MooZ » Thu Jan 05, 2012 9:24 am

Note I'll start with the usage. Sections/commands will follow.
  1. Usage
    pceas [options] infile.asm
    • -s/S
      --segment/fullsegment
      Show segment usage. This option displays the memory usage of your program. Here's a typical output for the -s/--segment option:

      Code: Select all

      segment usage:
      
      				    USED/FREE
            ZP    $2000-$201E  [  31]       31/ 225
           BSS    $2200-$27A0  [1441]     1441/6751
      
      BANK  0                             5902/2290
      BANK  1                                0/8192
      BANK  2                                0/8192
      BANK  3                                0/8192
      BANK  4                                0/8192
      BANK  5                                0/8192
      BANK  6                                0/8192
      BANK  7                                0/8192
      BANK  8                              800/7392
      				    ---- ----
      				       7K  65K
      
      			TOTAL SIZE =       72K
      The -S/--fulsegment displays the section types for each banks. For example, we'll have for the BANK 0 of the previous example:

      Code: Select all

      BANK  0                             5902/2290
          CODE    $E000-$E802  [2051]
          CODE    $E900-$F800  [3841]
          DATA    $FFF6-$FFFF  [  10]
    • -l n
      --listing n
      Listing file output level. n value must be between 0 and 3 (included). The default level is level 2.
      • 0 - completely disable the listing file even if the LIST directive is used in the input file
      • 1 - minimum level; code produced by DB, DW, DEFPAL, DEFCHR and DEFSPR will not be dumped.
      • 2 - normal level; only code produced by DEFPAL, DEFCHR and DEFSPR will not be dumped.
      • 3 - maximum level; all the code is dumped in the listing file.
    • -m
      --macro
      Force macro expansion in the listing file, even if the MLIST directive is not seen in the input file.
    • -I
      Add include path.
    • --cd Create a CD-ROM track image.
    • --scd Create a Super CD-ROM track image.
    • --over(lay) Create an executable "overlay" program segment.
    • --dev(elo) Assemble and run on the Develo Box.
    • --mx Create a Develo MX file.
    • --srec Create a Motorola S-record file (wikipedia).
    • -h
      --help
      Display help message.
    PCEas will also create a file named infile.sym . This file will contain the list of symbols found in the source code followed their associated address and bank. Here is the first entries of the sym files of Captain Cavern Might Have Been Proud Of Us:

    Code: Select all

    Label                           Addr    Bank
    -----                           ----    ----
    _cs                             207a     f0
    EFFECT_CODE_BANK                0001     f0
    _hrdw_memcpy_rts                225a     f8
    roto_x_unrolled_1               0000     f0
    _hrdw_memcpy_dst                2256     f8
    _u                              2037     f8
    line.col.src.1                  306a     f0
    txt_data_end                    a2ce     06
    vgm_status                      2013     f8
    irq_2                           e0f1     00
    ARG_REG                         0001     f0
    mapbat_top                      2261     f8
    psg_noise                       0807     f0
    joybuf                          222b     f8
    irq1_jmp                        2202     f8
    DEVELO                          0000     f0
    rotoVsyncProc                   5e3c     01
    
  2. Directives
    todo
    • bank - Select a 8KB ROM bank (0-127) and reset the location counter to the latest known position in this bank.
    • org - Set the location of the program counter. The thirteen lower bits of the address inform the assembler about the offset in the ROM bank and the third upper bits represent the page index.
    • data
    • code
    • zp
    • bss
    • equ - Assign a value to a symbol. The character = has the same function too.
    • db - Store one or more data bytes at the current location.
    • dw - Store one more data words at the current location.
    • ds - Reserve space at the current location. This space will be filled with zeroes if this directive is used in the CODE or DATA group.
    • byte - Same as .db.
    • word - Same as .dw.
    • dwl
    • dwh
    • rsset - Set the internal counter of the RS directive to a specified value.
    • rs -
    • include "file"
      Include file
      Switch program input to the file specified in the parameter of the include directive. The code from file is assembled as if it followed the point of the .include; when the end of the included file is reached, assembly of the original file continues. Every variable, label, routine declared before the include point will be available to the included file. Note that includes can be nested. PCEas supports up to 7 nested includes. You can control the search paths used with the '-I' command-line option.
    • incbin
    • incchr
    • include
    • macro - Start a macro definition.
    • mac - Same as macro.
    • endm - End a macro definition.
    • endmacro - Same as endm
    • if
    • ifdef
    • ifndef
    • else
    • endif
    • func
    • proc
    • endp
    • procgroup
    • endprocgroup
    • opt
    • fail
    • list
      Increment listing counter.
      This directive (in conjunction with .nolist) controls whether or not assembly listings are generated. Whenever .list is called an internal counter (initially at zero) is incremented. On the other hand, .nolist decrements this counter (until zero). Assembly listings are generated if this internal counter is greater than zero.
      The verbosity of those listings is controlled by the -l/--listing command line option.
    • nolist
      Decrement listing counter
      See .list.
    • mlist - Allow macro expansion in the listing file.
    • nomlist - Stop expanding macros in the listing file. This directive won't have any effect if you use the '-m' command line option.

tomaitheous
Posts: 88
Joined: Mon Jun 23, 2008 1:58 pm

Re: [TOOLS] PCEas design document.

Post by tomaitheous » Sun Jan 29, 2012 8:29 pm

No problem :)

User avatar
MooZ
Site Admin
Posts: 386
Joined: Sun Jun 22, 2008 3:19 pm
Location: Lvl 3
Contact:

Re: [TOOLS] PCEas design document.

Post by MooZ » Sun Nov 10, 2013 11:06 am

Nop of the Punkfloyd demogroup put his version of pceas on github: I think that anyone wanting to fix/enhance pceas should start from this repository.

Debvgger
Posts: 13
Joined: Sun Jun 29, 2008 4:30 pm

Re: [TOOLS] PCEas design document.

Post by Debvgger » Sun Apr 05, 2015 10:01 pm

I downloaded the code a few days ago then tried to compile the code with Visual Studio 2008. There were a few small problems, mainly had to comment the #include of <strings.h>, not available on VS2008 but not needed for the code anyway, and think what to do with <getopt.h>, also not available, but I just found a replacement after a small search ;-)

User avatar
MooZ
Site Admin
Posts: 386
Joined: Sun Jun 22, 2008 3:19 pm
Location: Lvl 3
Contact:

Re: [TOOLS] PCEas design document.

Post by MooZ » Mon Apr 06, 2015 8:51 am

Thanks for the feedback. If you forked it, you can submit a pull request.

Debvgger
Posts: 13
Joined: Sun Jun 29, 2008 4:30 pm

Re: [TOOLS] PCEas design document.

Post by Debvgger » Mon Apr 06, 2015 9:24 pm

Ok, although I only made very small changes :-)

Post Reply