Paradigm Locator (*.CFG) part 1

Posted by: 邱小新 at 下午3:45 in

參考文件:C:\Program Files\Paradigm\Docs\locate.pdf。

※ 注意事項

  • file 路徑中的反斜線(\)都要用斜線(/)來代替。
  • addr 可以是一個 class name 或是 20-bit 的物理位址。

※ ABSFILE

ABSFILE 主要是用來決定是用 integrated debugger 或是採用 Intel OMF86 格式的開發工具。

Syntax: ABSFILE [AXE86|OMF86|NONE] [FORMAT=type] [FILENAME=file]

  • AXE86: 選用 integrated debugger 格式,預設輸出副檔名為 .AXE。
  • OMF86: 選用 Intel OMF86 格式,預設輸出副檔名為 .ABS。
  • NONE: 取消 absolute output file 輸出。
  • FORMAT: 用來設定 AXE86 的格式,PD60(Paradigm DEBUG 6.0),PD50(Paradigm DEBUG 5.0),PD40(Paradigm DEBUG 4.0)。
  • FILENAME: 用來設定輸出檔案的位置及名稱。

Examples 範例

  • absfile omf86 filename=c:\myprog.abs
  • absfile axe86 format=pd40

※ CHECKSUM

CHECKSUM 用來計算記憶體區塊的 CRC 值。

Syntax: CHECKSUM addr TO addr [ADDRESS=addr] [FILL=fill] [ROMBIOS|CRC16|CRC32]

  • ADDRESS: 用來指定存放 checksum 的物理位置,預設值為記憶體區塊的下一個位址。
  • FILL: 用來填滿記憶體區塊未使用到的地方,預設值為 0xFF。
  • ROMBIOS: 使用 IBM PC ROM BIOS 計算方法,checksum 1 byte。
  • CRC16: 使用 CRC-16 計算方法,checksum 2 bytes。
  • CRC32: 使用 CRC-32 計算方法,checksum 4 bytes。

Examples 範例

  • checksum 0xc0000 to 0xc07fe fill=0x00 rombios
  • checksum 0xf8000 to 0xffffd address=0xffffe crc16
  • checksum CODE to ROMDATA crc32

※ CLASS

CLASS 用來指定物理位置到 class 的每一個 segment。

Syntax: CLASS classname = addr16

  • addr16: 用來指定 class 的第一個 segment,剩下的 segment 則根據前一個 segment 依序指定物理位置。

Examples 範例

  • class CODE = 0xfc00
  • class DATA = 0x0040

※ COMPRESS

COMPRESS 用來壓縮重覆的 class,藉此節省空間。

Syntax: COMPRESS classname

  • classname: 要被壓縮的 class 名稱,這個 class 必須出現在 DUP 指令中。

Examples 範例

  • dup FARDATA ROMFARDATA
    compress ROMFARDATA

※ CPUTYPE

CPUTYPE 用來指定微處器的型號。

Syntax: CPUTYPE cpu_id

  • cpu_id: Turbo186 - genesis 專用的。

Examples 範例

  • cputype turbo186

※ DISPLAY

Syntax: DISPLAY option [option ...]

  • NONE: 取消所有診斷顯示。
  • FILES: 顯示輸出檔案。
  • MODULES: 顯示在輸入檔案找到的模組名稱。
  • COMPRESSION: 顯示在壓縮 class 的壓縮統計。
  • ALL: 顯示所有的訊息。

Examples 範例

  • display files modules
  • display none
  • display all

※ DUPLICATE

DUPLICATE 用來複製一個 class。一般都是 startup code 用來複製 FLASH 到 RAM。

Syntax: DUPLICATE src_class dest_class

Examples 範例

  • dup DATA ROMDATA // copy class DATA
    class DATA = 0x0040 // DATA at 00400H
    class CODE = 0xfc00 // CODE at FC000H
    order CODE ROMDATA // ROMDATA after CODE

※ HEXFILE

HEXFILE

Syntax: HEXFILE [INTEL80|INTEL86|INTEL386|BINARY|TEKHEX] [OFFSET=addr] [SIZE=size] [SPLIT=split] [FILL=fill] [LENGTH=len] [TRUNCATE] [EOFRECORD|NOEOFRECORD] [ENTRYPOINT|NOENTRYPOINT] [FILENAME=file]

  • INTEL80: Intel hex (64KB).
  • INTEL86: Intel extended hex (1MB), 預設值.
  • INTEL386: Intel 386 extended hex (1MB or 16MB).
  • BINARY: Binary (1MB).
  • TEKHEX: Tektronix hex (64KB).
  • OFFSET: 用來指定開始位址。
  • SIZE: 設定 image 的大小,預設值則根據 image type 的最大值來設定,除了 binary 是 32KB。
  • SPLIT: 用來分割 image,可分為 1~4 個,預設值是一個,也就是不分割。
  • FILL: 在 binary 格式時,用來做未使用的區域填充值,預設值為 0FFH。
  • LENGTH: 設定每行記錄有多少 bytes,範圍為 8~64,預設值為 16。
  • TRUNCATE: 用來把 binary image 多餘的空白去除,減少 image 的大小。
  • EOFRECORD: 設定 end of record 寫入與否,預設是寫入。
  • ENTRYPOINT: 設定 entry point record 寫入與否,預設是寫入。
  • FILENAME: 用來設定輸出檔案的位置及名稱。

Examples 範例

  • hexfile intel80 offset=0xf0000 size=32 file=no1
    hexfile intel80 offset=0xf8000 size=32 file=no2

0 意見

張貼留言