No part of this material may be reproduced or duplicated in any form or by any means without the written permission of Seiko
Epson. Seiko Epson reserves the right to make changes to this material without notice. Seiko Epson does not assume any
liability of any kind arising out of any inaccuracies contained in this material or due to its application or use in any product or
circuit and, further, there is no representation that this material is applicable to products requiring high level reliability, such
as medical products. Moreover, no license to any intellectual property rights is granted by implication or otherwise, and there
is no representation or warranty that anything made in accordance with this material will be free from any patent or copyright
infringement of a third party. This material or portions thereof may contain technology or the subject relating to strategic
products under the control of the Foreign Exchange and Foreign Trade Law of Japan and may require an export license from
the Ministry of International Trade and Industry or other approval from another government agency.
MS-DOS, Windows, Windows 95, Windows 98 and Windows NT are registered trademarks of Microsoft Corporation, U.S.A.
PC-DOS, PC/AT, PS/2, VGA, EGA and IBM are registered trademarks of International Business Machines Corporation, U.S.A.
NEC PC-9800 Series and NEC are registered trademarks of NEC Corporation.
All other product names mentioned herein are trademarks and/or registered trademarks of their respective owners.
Starting April 1, 2001, the product number will be changed as listed below. To order from April 1,
2001 please use the new product number. For further information, please contact Epson sales
representative.
Configuration of product number
Devices
S1C63158F0A01
Development tools
S5U1
∗1: For details about tool types, see the tables below. (In some manuals, tool types are represented by one digit.)
∗2: Actual versions are not written in the manuals.
C63000A11
00
Packing specification
Specification
Package (D: die form; F: QFP)
Model number
Model name (C: microcomputer, digital products)
Product classification (S1: semiconductor)
00
Packing specification
Version (1: Version 1 ∗2)
Tool type (A1: Assembler Package ∗1)
Corresponding model number
(63000: common to S1C63 Family)
Tool classification (C: microcomputer use)
Product classification
(S5U1: development tool for semiconductor products)
This document describes the development procedure from assembling source files to debugging. It also
explains how to use each development tool of the "S1C63 Family Assembler Package" common to all the
models of the S1C63 Family.
Caution
We are not responsible for any problems involving products you have manufactured using packed data
created without the use of the tool contained in this package, or using packed data edited after being
created using the tool contained in this package.
How To Read the Manual
This manual was edited particularly for those who are engaged in program development. Therefore, it
assumes that the reader already possesses the following fundamental knowledge:
• Basic knowledge about assembler language
• Basic knowledge about the general concept of program development by an assembler
• Basic operating methods for Windows
Before installation
See Chapter 1. Chapter 1 describes the composition of this package, and provides a general outline of
each tool.
Installation
Install the tools following the installation procedure described in "setup_e.pdf".
®
95/98 or Windows NT®4.0
To understand the flow of program development
See the program development flow in Chapter 2.
For coding
See the necessary parts in Chapter 4. Chapter 4 describes the grammar for the assembler language as
well as the assembler functions. Also refer to the following manuals when coding:
S1C63xxx T echnical Manual
Covers device specifications, and the operation and control method of the peripheral circuits.
S1C63000 Core CPU Manual
Has the instructions and details the functions and operation of the Core CPU.
For debugging
Chapter 8 gives detailed explanation of the debugger. Sections 8.1 to 8.8 give an overview of the
functions of the debugger. See Section 8.9 for details of the debug commands. Also refer to the following manuals to understand operations of the In-Circuit Emulator (ICE) and the Peripheral Circuit
Board S5U1C63xxxP:
S5U1C63000H1 Manual (S1C63 Family In-Circuit Emulator)
Explains the functions and handling methods of the ICE.
S5U1C63xxxP Manual (Peripheral Circuit Board for S1C63xxx)
Covers the functions and handling methods of the peripheral circuit board that provides the
hardware specifications of each model to the ICE.
For details of each tool
Chapters 3 to 8 explain the details of each tool. Refer to it if necessary.
Once familiar with this package
Refer to the listings of instructions and commands contained in Appendices.
S5U1C63000A MANUALEPSONi
(S1C63 FAMILY ASSEMBLER PACKAGE)
INTRODUCTION
Manual Notations
This manual was prepared by following the notation rules detailed below:
(1) Sample screens
The sample screens provided in the manual are all examples of displays under Windows®95/98.
These displays may vary according to the system or fonts used.
(2) Names of each part
The names or designations of the windows, menus and menu commands, buttons, dialog boxes, and
keys are annotated in brackets [ ]. Examples: [Command] window, [File | Exit] menu item ([Exit]
command in [File] menu), [Key Break] button, [q] key, etc.
(3) Names of instructions and commands
The CPU instructions and the debugger commands that can be written in either uppercase or lowercase characters are annotated in lowercase characters in this manual, except for user-specified symbols.
(4) Notation of numeric values
Numeric values are described as follows:
Decimal numbers:Not accompanied by any prefix or suffix (e. g., 123, 1000).
Hexadecimal numbers: Accompanied by the prefix "0x" (e. g., 0x0110, 0xffff).
Binary numbers:Accompanied by the prefix "0b" (e. g., 0b0001, 0b10).
However, please note that some sample displays may indicate hexadecimal or binary numbers not
accompanied by any symbol. Moreover, a hexadecimal number may be expressed as xxxxh, or a
binary number as xxxxb, for reasons of convenience of explanation.
(5) Mouse operations
To click:The operation of pressing the left mouse button once, with the cursor (pointer)
placed in the intended location, is expressed as "to click". The clicking operation of
the right mouse button is expressed as "to right-click".
To double-click: Operations of pressing the left mouse button twice in a row, with the cursor (pointer)
placed in the intended location, are all expressed as "to double-click".
To drag:The operation of clicking on a file (icon) with the left mouse button and holding it
down while moving the icon to another location on the screen is expressed as "to
drag".
To select:The operation of selecting a menu command by clicking is expressed as "to select".
(6) Key operations
The operation of pressing a specific key is expressed as "to enter a key" or "to press a key".
A combination of keys using "+", such as [Ctrl]+[C] keys, denotes the operation of pressing the [C] key
while the [Ctrl] key is held down. Sample entries through the keyboard are not indicated in [ ].
Moreover, the operation of pressing the [Enter] key in sample entries is represented by "↵".
In this manual, all the operations that can be executed with the mouse are described only as mouse
operations. For operating procedures executed through the keyboard, refer to the Windows manual or
help screens.
(7) General forms of commands, startup options, and messages
Items given in [ ] are those to be selected by the user, and they will work without any key entry
involved.
An annotation enclosed in < > indicates that a specific name should be placed here. For example, <file
name> needs to be replaced with an actual file name.
Items enclosed in { } and separated with | indicate that you should choose an item. For example, {A |
B} needs to have either A or B selected.
(8) Development tool name
ICE: Indicates S5U1C63000H1 (S1C63 Family In-Circuit Emulator).
12.5 Example Output File ................................................................................... 288
APPENDIXQUICK REFERENCE
S5U1C63000A MANUALEPSONix
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 1: GENERAL
CHAPTER 1GENERAL
1.1Features
The S1C63 Family Assembler Package contains software development tools that are common to all the
models of the S1C63 Family. The package comes as an efficient working environment for development
tasks, ranging from source program assembly to debugging.
Its principal features are as follows:
Simple composition
A task from assembly to debugging can be made with minimal tools.
Integrated working environment
A Windows-based integrated environment allows the tool chain to be used on its Windows GUI
interface <Workbench wb63>.
Modular programming
The relocatable assembler lets you develop a program which is made up of multiple sources. This
makes it possible to keep a common part independently and to use it as a part or a basis for the next
program.
Source debugging
A debugger can display an assembler source to show its execution status and allow debugging
operations on it. This makes debugging much easier to perform.
Common to all S1C63 chips
The tools included in this package are common to all S1C63 Family models except for several chip
dependent masking tools ("Dev" tools). The chip dependent information is read from the ICE parameter file for each chip.
Complete compatibility with old syntax sources
By supporting old syntax, existing sources written for old 63 tools are available with these new tools.
S5U1C63000A MANUALEPSON1
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 1: GENERAL
1.2Tool Composition
1.2.1 Composition of Package
The S1C63 Family Assembler Package contains the items listed below. When it is unpacked, make sure
that all items are supplied.
1) CD-ROM (Tools and PDF manuals are included).................. One
2) Warranty card ......................................................................... One each in English and Japanese
3) Registration card .................................................................... One each in English and Japanese
1.2.2 Outline of Software Tools
The following shows the outlines of the software tools included in the package:
Assembler (as63.exe)
Converts the mnemonic of the source files into object codes (machine language) of the S1C63000. The
results are output in a relocatable object file. This assembler includes preprocessing functions such as
macro definition/call, conditional assembly, and file-include functions.
Linker (lk63.exe)
Links the relocatable objects created by the assembler by fixing the memory locations, and creates
executable absolute object codes. The linker also provides an auto EXT insertion/correction function
allowing the programmer to create sources without having to know branch destination ranges.
Hex converter (hx63.exe)
Converts an absolute object in IEEE-695 format output from the linker into ROM-image data in
Motorola-S format or Intel-HEX format. This conversion is needed when making the ROM or when
creating mask data using the mask data checker.
Disassembler (ds63.exe)
Disassembles an absolute object file in IEEE-695 format or a hex file in Motorola-S format, and restores
it to a source format file. The restored source file can be processed in the assembler/linker/hex
converter to obtain the same object or hex file.
Debugger (db63.exe)
This software performs debugging by controlling the ICE hardware tool. Commands that are used
frequently, such as break and step, are registered on the tool bar, minimizing the necessary keyboard
operations. Moreover, sources, registers, and command execution results can be displayed in multiple
windows, with resultant increased efficiency in the debugging tasks.
Work Bench (wb63.exe)
This software provides an integrated development environment with Windows GUI. Creating/
editing source files, selecting files and major start-up options, and the start-up of each tool can be
made with simple Windows operations.
2EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 1: GENERAL
The tools listed below are Windows GUI applications for creating mask data. A device information
definition file (s1c63xxx.ini) is required to run these tools. The CD-ROM contains the device information
definition files for the models supported with the following tools. For unsupported models, model
specific Development Tools are provided.
Function option generator (winfog.exe)
This tool creates an ICE function option setup file after selecting the mask options of the S1C63xxx
and the function option document file that is necessary to generate IC mask patterns. You can create
function option data by selecting the appropriate item using the check boxes.
Segment option generator (winsog.exe)
This tool creates an ICE segment option setup file after selecting the segment options of the S1C63xxx
and the segment option document file that is necessary to generate IC mask patterns. You can create
segment assignment data by merely clicking on the display memory map and segment decode table
shown on the window. The winsog is used only for the model that has segment options.
Melody assembler (winmla.exe)
This tool converts the melody data created using an editor into the melody ROM and melody option
data for the S1C63xxx melody generator. The winmla is used only for the model with a melody output
function.
Mask data checker (winmdc.exe)
This tool checks the data in development-completed program ROM/data ROM files and option
document files to create the mask data file that will be presented to Seiko Epson.
1.3Working Environment
To use the S1C63 Family Assembler Package, the following conditions are necessary:
Personal computer
An IBM PC/AT or a compatible machine which is equipped with a CPU equal to or better than a
Pentium 75 MHz, and 32MB or more of memory is recommended.
To use the optional In-Circuit Emulator ICE, the personal computer also requires a serial port (with a
D-sub 9 pin).
Display
A display unit capable of displaying 800 × 600 dots or more is necessary.
Hard disk and CD-ROM drive
Since the installation is done from a CD-ROM to a hard disk, a CD-ROM drive and a hard disk drive
are required.
Mouse
A mouse is necessary to operate the tools.
System software
The S1C63 Family Assembler Package supports Microsoft
Windows
®
98 (English or Japanese) and Windows NT®4.0 (English or Japanese).
Other development tools
To debug the target program, the optional In-Circuit Emulator and a Peripheral Circuit Board
S5U1C63xxxP are needed as the hardware tools.
The S5U1C63xxxP board is prepared for each S1C63 model.
®
Windows®95 (English or Japanese),
S5U1C63000A MANUALEPSON3
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 1: GENERAL
1.4Installation
The supplied CD-ROM contains the installer (Setup.exe) that installs the tools.
To install the tools, start up the "Setup.exe" and follow the instructions in the dialog boxes that will be
appeared. For more information on the installation procedure, please refer to "setup_e.pdf" on the CDROM.
1.5Directories and Files after Installation
The installer copies the following files in the specified directory (default is "C:\EPSON\S1C63\"):
WB63.EXE... Work bench
AS63.EXE... Assembler
LK63.EXE... Linker
HX63.EXE... Hex converter
DS63.EXE... Disassembler
DB63.EXE... Debugger
S1C63.CNT... Help index
S1C63.HLP... Help contents
. . .... Other related files
[\DEV]
[\BIN]... S1C63 Family Development Tool for Windows
WINFOG.EXE... Function option generator
WINSOG.EXE... Segment option generator
WINMLA.EXE... Melody assembler
WINMDC.EXE... Mask data checker
US6xxxx.EXE... ROM Writer II control software (English)
JP6xxxx.EXE... ROM Writer II control software (Japanese)
6xxxx.FRM... Firmware
. . .... Other related files
:∗ Refer to the technical manual for details of the ROM Writer II.
[\ICE]
[\ICE63UPD]
TM63.EXE... ICE firmware updater to support standard peripheral circuit board
ICE63.COM
I63COM.O
I63.PAR
[\FPGA]
C63xxx.MOT... FPGA data to configure standard peripheral circuit board
:
4EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 1: GENERAL
[\DOC]
[\ENGLISH]... Document folder (English)
REL_xxxx_E.TXT... Tool release note
MANUAL_E.PDF... This manual in PDF format
QUICK_E.PDF... Quick reference in PDF format
[\HARD]
xxxx_E.PDF... Hardware development tool manuals in PDF format
[\JAPANESE]... Document folder (Japanese)
REL_xxxx_J.TXT... Tool release note
MANUAL_J.PDF... This manual in PDF format
QUICK_J.PDF... Quick reference in PDF format
[\HARD]
xxxx_J.PDF... Hardware development tool manuals in PDF format
Online manual in PDF format
The online manuals are provided in PDF format, so Adobe Acrobat Reader Ver. 4.0 or later is needed
to read it.
Files for future release models
The files for future release models may be provided in FDs. Refer to the Readme file included in the
FD for installation.
S5U1C63000A MANUALEPSON5
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 2: SOFTWARE DEVELOPMENT PROCEDURE
CHAPTER 2 SOFTW ARE DEVELOPMENT PROCEDURE
This chapter outlines a basic development procedure.
2.1Software Development Flow
Figure 2.1.1 represents a flow of software development work.
Work Bench
wb63
Make
file.MAK
file
file.Sfile.MS
or
Assembly
list file(s)
Linker
command file
file.SYMSymbol file
file.MAPfile.XRFLink map file
HEX converter
hx63
Intel-HEX
format files
fileH.HEX
fileL.HEX
fileC.HEXfile.CSA
Assembly
source file(s)
file.CM
Motorola-S
format files
file.HSA
or
file.LSA
Assembler
as63
file.Ofile.LST
Object
file(s)
Linker
lk63
file.ABS
Absolute
object file
file.MS
Preprocessed
source file(s)
Absolute
file.ALS
list file
Cross
reference
file
Disassembler
ds63
file.MS
Disassembled
source file
S1C63xxx Development Tool
file.parfile.ini
Function Option
Generator winfog
file.FSAfile.FDC
Function option
HEX file
Segment Option
Generator winsog
file.SSA
Segment option
HEX file
Melody
data file
Melody Assembler
file.MSA
Melody ROM
option HEX file
Mask Data Checker
Function option
document file
file.SDC
Segment option
document file
file.MDT
winmla
file.MDC
Melody ROM option
document file
winmdc
file.PAn
SEIKO EPSON
Mask
data file
Debugger
db63
In-Circuit Emulator
Fig. 2.1.1 Software development flow
The work bench provides an integrated development environment from source editing to debugging.
Tools such as the assembler and linker can be invoked from the work bench. The tools can also be invoked individually from the DOS prompt.
Refer to the respective chapter for details of each tool.
Some models provide other development tools (fog63xxx, sog63xxx, etc.) instead of the "S1C63xxx
Development Tool" shown above. Those model dependent tools are not covered in this manual. For
details, refer to the tool manual associated with each specific model.
6EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 2: SOFTWARE DEVELOPMENT PROCEDURE
2.2Development Using Work Bench
This section shows a basic development procedure using the work bench wb63.
Refer to Chapter 3, "Work Bench", for operation details.
2.2.1 Starting Up the Work Bench
Start up the work bench by choosing "WorkBench63" from the program menu.
S5U1C63000A MANUALEPSON7
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 2: SOFTWARE DEVELOPMENT PROCEDURE
2.2.2 Creating a New Project
The work bench manages necessary file and tool setting information as a project.
First a new project file should be created.
1. Select [New] from the [File] menu (or click the [New] button).
[New] button
The [New] dialog box appears.
2. Select [EPSON Project File] and click [OK].
The [Project] dialog box appears.
3. Enter a project name, select an ICE parameter file and select a
directory, then click [OK].
∗ The [ICE parameter file:] box lists the parameter files that exist
in the "dev63" directory.
The work bench creates a folder (directory) with the specified
project name as a work space, and puts the project file (.epj) into
the folder.
The specified project name will also be used for the absolute object
and other files.
Created project [Project] window
2.2.3 Editing Source Files
The work bench has an editor function. This makes it possible to edit source files without another editor.
To create a new source file:
1. Select [New] from the [File] menu (or click the [New] button).
[New] button
The [New] dialog box appears.
2. Select [EPSON Assembly Source File] and click [OK].
8EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 2: SOFTWARE DEVELOPMENT PROCEDURE
[Edit] windowA new edit window appears.
3. Enter source codes in the [Edit] window.
4. Save the source in a file by selecting [Save] from the [File] menu (or clicking the [Save] button).
[Save] button
S5U1C63000A MANUALEPSON9
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 2: SOFTWARE DEVELOPMENT PROCEDURE
5. Click the [Insert into project] button on the [Edit] window.
[Insert into project] button
The created source file is added in the project.
To add existing source files, use [Files into project...] in the [Insert] menu. It can also be done by dragging
source files from Windows Explorer to the project window.
Create necessary source files and add them into the project.
Sample list in the [Project] window
The added source files are listed in the project window. Double-clicking a listed source file name opens
the edit window.
2.2.4 Configuration of Tool Options
The work bench supports all the start up options of each tool and they can be selected in a dialog box. A
make process for generating an executable object will be configured based on the settings.
In addition to option selection, command files for the linker and debugger can be configured here.
To set tool options:
1. Select [Setting...] from the [Build] menu.
A dialog box appears.
2. Configure options if necessary.
Check box items can be selected by clicking. Items in the list can be toggled or entered by doubleclicking.
Refer to Chapter 3, "Work Bench", for details of the [Settings] dialog box.
10EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 2: SOFTWARE DEVELOPMENT PROCEDURE
2.2.5 Building an Executable Object
To make an executable object file:
1. Select [Build] from the [Build] menu (or click the [Build] button).
[Build] button
This will invoke the assembler and linker to create an executable object file. If a HEX file format (Intel
HEX or Motorola S) is selected by the [Output format] box, the HEX converter will be invoked after
linking. By default, an absolute object file in IEEE-695 format will be created.
[Output format] box
Messages delivered from each executed tool are displayed in the [Output] window. The work bench has a
tag-jump function that jumps to the source line in which an error has occurred by double-clicking a
source syntax error message that appears in the [Output] window. It opens the corresponding source
window if it is closed.
Linked with the corresponding source line
[Output] window
In the build task, a general make process is executed to update the least necessary files. To rebuild all the
files without the make function, select [Rebuild All] from the [Build] menu (or click the [Rebuild All]
button).
[Rebuild All] button
To invoke the assembler only to correct syntax errors, select [Assemble] in the [Built] menu (or click the
[Assemble] button).
[Assemble] button
S5U1C63000A MANUALEPSON11
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 2: SOFTWARE DEVELOPMENT PROCEDURE
2.2.6 Debugging
To debug the executable object:
1. Select [Debug] from the [Build] menu (or click the [Debug] button).
[Debug] button
The debugger starts up with the specified ICE parameter file and then loads the executable object file.
Note: Make sure that the ICE is ready to debug before invoking the debugger. Refer to the ICE hardware
manual for settings and startup method of the ICE.
For the debugging functions and operations, refer to Chapter 8, "Debugger".
12EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
CHAPTER 3WORK BENCH
This chapter describes the functions and operating method of the Work Bench wb63.
3.1Features
The Work Bench wb63 provides an integrated operating environment ranging from editing source files to
debugging. Its functions and features are summarized below:
• Source edit function that supports copy/paste, find/replace, print, label jump and tag jump from error
messages.
• Allows simple management of all necessary files and information as a project.
• General make process to invoke necessary tools and to update the least necessary files.
• Supports all options of the assembler, linker, HEX converter, disassembler and debugger.
•Windows GUI interface for simple operation.
3.2Starting Up and Terminating the Work Bench
To start up the work bench
Choose "WorkBench63" from the [Program] menu to start
up the work bench.
∗ If "WorkBench63" is not registered in the [Program]
menu, it means that the installation was not successful.
Therefore, reinstall the tools .
When the work bench starts up, the window shown below
appears.
To terminate the work bench
Select [Exit] from the [File] menu.
S5U1C63000A MANUALEPSON13
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.3Work Bench Windows
3.3.1 Windo w Configuration
Menu barToolbar[Edit] window
[Project] window[Output] windowStatus bar
The work bench has three types of windows: [Edit] window, [Project] window and [Output] window.
[Edit] window
This window is used for editing a source file. A standard text file can also be displayed in this window. Two or more windows can be opened in the edit window area.
When an assembly source file is opened, the source is displayed with in colors according to the
contents. The default colors are shown below.
S1C63 instructions:Black
Preprocess (#) pseudo-instructions: Dark brown
Assemble (.) pseudo-instructions:Blue
Labels:Light brown
Comments:Green
These colors can be changed by the [Tools | Options ] menu command (refer to Section 3.10).
[Project] window
This window shows the currently opened work space folder and lists all the source files in the project,
with a structure similar to Windows Explorer.
Double-clicking a source file icon opens the source file in the [Edit] window.
14EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
[Output] window
This window displays the messages delivered from the executed tools in a build or assemble process.
Double-clicking a syntax error message with a source line number displayed in this window activates
or opens the [Edit] window of the corresponding source so that the source line in which the error has
occurred can be viewed.
Menu bar
Refer to Section 3.5.
Toolbar
Refer to Section 3.3.
Status bar
Shows help messages when the mouse cursor is placed on a menu item or a button.
It also indicates the cursor position in the [Edit] window and Key lock status (Num lock, Caps lock,
Scroll lock).
3.3.2 Windo w Manipulation
Resizing the windows
Each window area can be
resized by dragging the window boundary. The size
information is saved when the
work bench is terminated. So
the same window layout will
appear at the next time the
work bench starts up.
←| |→
←| |→
Double click
Floating and docking the
[Project] and [Output]
window
The [Project] window and the
[Output] window can be made
a floating window by doubleclicking the window boundary
and the floating window can be
moved and resized in the work
bench window. The floating
window will be restored to a
docking window by double
clicking the window's title bar
or dragging the title bar
towards an edge of the work
bench window.
S5U1C63000A MANUALEPSON15
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
Closing the [Project] and [Output] window
The [Project] window and the [Output] window can be closed by selecting [Project Window] and
[Output Window] from the [View] menu, respectively. To open them, select the menu items again.
Maximizing the [Edit] window area
The [Edit] window area can be maximized to the full screen size by selecting
[Full Screen] from the [View] menu. All
other windows and toolbars are hidden
behind the [Edit] window area.
To return it to the normal display, click
the button that appears on the screen.
This button can be moved anywhere in
the screen by dragging its title bar.
Pressing the [ESC] key also returns the
window to the normal display.
Opening/Closing [Edit] windows
An [Edit] window opens when a source file (text file) is loaded using a menu, button or a file icon in
the [Project] window, or when a new source is created.
[Edit] windows close by clicking the [Close] box of each window or selecting [Close] from the [File]
menu.
When a project file is saved, the [Edit] window information (files opened, size and location) is also
saved. So the next time the project opens, editing can begin in the saved condition.
Arrangement of the [Edit] windows
The [Edit] windows being opened can be arranged similar to standard Windows applications.
1 Cascade windows
Select [Cascade] from the [Window] menu or click the [Cascade Windows] button.
[Cascade Windows] button
16EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
2Tile windows
To tile windows vertically, select [Tile Vertically] from the [Window] menu or click the [Tile Vertically]
button.
[Tile Vertically] button
To tile windows horizontally, select [Tile Horizontally] from the [Window] menu or click the [Tile
Horizontally] button.
[Tile Horizontally] button
S5U1C63000A MANUALEPSON17
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3 Maximizing an [Edit] window
Click the [Maximize] button on the window title bar. The window will be maximized to the [Edit]
window area size and other [Edit] windows will be hidden behind the active window.
4 Minimizing an [Edit] window
Click the [Minimize] button on the window title bar. The window will be minimized as a window
icon. The minimized icons can be arranged at the bottom of the [Edit] window area by selecting
[Arrange Icons] from the [Window] menu.
5Moving and resizing an [Edit] window
The [Edit] window allows changing of its location and its size in the same way as the standard
Windows applications if it is not maximized.
Switching active [Edit] window
Click the window to be activated if it can be viewed. Otherwise, select the window name (source file
name) from the currently-opened window list in the [Window] menu.
Scrolling display contents
A standard scroll bar appears if the display contents exceed the display size of a window. Use it to
scroll the display contents. The arrow keys can also be used.
Showing and hiding the status bar
The status bar can be shown or hidden by selecting [Status Bar] from the [View] menu.
18EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.4Toolbar and Buttons
Tree types of toolbars have been implemented in the work bench: standard toolbar, build toolbar and
window tool bar.
Standard toolbar
Build toolbarWindow toolbar
3.4.1 Standard Toolbar
This toolbar has the following standard buttons:
[New] button
Creates a new document. A dialog box will appear allowing selection from among three document
types: assembly source, assembly header and project.
[Open] button
Opens a document. A dialog box will appear allowing selection of the file to be opened.
[Save] button
Saves the document in the active [Edit] window to the file. The file will be overwritten.
This button becomes inactive if no [Edit] window is opened.
[Save All] button
Saves the documents of all [Edit] windows and the project information to the respective files.
[Cut] button
Cuts the selected text in the [Edit] window to the clipboard.
[Copy] button
Copies the selected text in the [Edit] window to the clipboard.
[Paste] button
Pastes the text copied on the clipboard to the current cursor position in the [Edit] window or
replaces the selected text with the copied text.
[Find] button
Finds the specified word in the active [Edit] window. A dialog box will appear allowing specification of the word to be found and a search condition.
[Find Next] button
Finds next target word towards the end of the file.
[Find Previous] button
Finds next target word towards the beginning of the file.
[Print] button
Prints the document in the active [Edit] window. A standard print dialog will appear allowing a
specific print condition.
[Help] button
Displays the help window.
S5U1C63000A MANUALEPSON19
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.4.2 Build Toolbar
This tool bar has the following buttons and list boxes used to build a project:
[Assemble] button
Assembles the assembly source in the active [Edit] window. This button becomes active only when
the active [Edit] window shows an assembly source file.
[Build] button
Builds the currently opened project using a general make process.
[Rebuild All] button
Builds the currently opened project. All the source files will be assembled regardless of whether
they are updated or not.
[Stop Build] button
Stops the build process being executed. This button becomes active only while a build process is
being executed.
[ICE Parameter] pull-down list box
Selects the ICE parameter file for the model being developed. In this box, all the
ICE parameter files that exist in the "Dev63" directory are listed.
[Output Format] pull-down list box
Selects an executable object file format. Three types of formats are available:
IEEE-695 absolute object format, Intel HEX format and Motorola S format. The
build process will generate an executable object in the format selected here.
[HEX Convert] button
Invokes the HEX converter to convert an absolute object into an Intel HEX object or a Motorola S
object. A dialog box will appear allowing selection of an absolute object and options of the HEX
converter.
[Disassemble] button
Invokes the disassembler to disassemble an absolute object. A dialog box will appear allowing
selection of an absolute object and options of the disassembler.
[Debug] button
Invokes the debugger with the specified ICE parameter file.
3.4.3 Windo w T oolbar
This tool bar has the following buttons used in window manipulation:
[Cascade] button
Cascades the opened [Edit] windows.
[Tile Horizontally] button
Tiles the opened [Edit] window horizontally.
[Tile Vertically] button
Tiles the opened [Edit] window vertically.
20EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.4.4 Toolbar Manipulation
Hiding and showing toolbars
Each toolbar can be hidden if not needed. Select the toolbar name from the [View] menu. This operation toggles between hiding and showing the toolbar.
Changing the toolbar location
To olbars can be moved to another location in the toolbar area by dragging them. If a toolbar is moved
out of the toolbar area, it will be changed to a window.
3.4.5 [Insert into project] Button on a [Edit] Window
[Insert into project] button
When a source file (.s or .ms) is opened, the [Insert into project] button appears on the [Edit] window. It
can be used to insert the source file into the current opened project.
For other file types, the [Edit] window opens without the [Insert into project] button.
S5U1C63000A MANUALEPSON21
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.5Menus
3.5.1 [File] Menu
[New...] ([Ctrl]+[N])
Creates a new document. A dialog box will appear allowing selection
from among three document types: assembly source, assembly header
and project.
[Open...] ([Ctrl]+[O])
Opens a document. A dialog box will appear allowing selection of the
file to be opened.
[Close]
Closes the active [Edit] window. This menu item appears when an
[Edit] window becomes active.
[Open Workspace...]
Opens a project. A dialog box will appear allowing selection of the
project to be opened.
The file names listed in this menu
are recently used source and
project files. Selecting one opens
the file.
The number of files to be listed can
be selected by the [Tools | Options]
menu command.
[Close Workspace]
Closes the currently opened project. This menu item becomes inactive
if no project is opened.
[Save] ([Ctrl]+[S])
Saves the document in the active [Edit] window to the file. The file
will be overwritten. This menu item appears when an [Edit] window
becomes active.
[Save As...]
Saves the document in the active [Edit] window with another file
name. A dialog box will appear allowing specification of a save
location and a file name. This menu item appears when an [Edit]
window becomes active.
[Save All]
Saves the documents of all [Edit] windows and the project information
to the respective files.
[Print...] ([Ctrl]+[P])
Prints the document in the active [Edit] window. A standard [print]
dialog box will appear allowing a specific print condition. This menu
item appears when an [Edit] window becomes active.
[Print Preview]
Displays a print image of the document in the active [Edit] window.
This menu item appears when an [Edit] window becomes active.
[Page Setup...]
Displays a dialog box for selecting paper and printer.
22EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
3.5.2 [Edit] Menu
CHAPTER 3: WORK BENCH
[Undo] ([Ctrl]+[Z])
Undoes the previous executed operation in the [Edit] window.
[Cut] ([Ctrl]+[X])
Cuts the selected text in the [Edit] window to the clipboard.
[Copy] ([Ctrl]+[C])
Copies the selected text in the [Edit] window to the clipboard.
[Paste] ([Ctrl]+[V])
Pastes the text copied on the clipboard to the current cursor position in the
[Edit] window or replaces the selected text with the copied text.
[Select All] ([Ctrl]+[A])
Selects all text in the active [Edit] window.
[Find...] ([Ctrl]+[F])
Finds the specified word in the active [Edit] window. A dialog box will
appear allowing specification of the word to be found and a search condition.
[Replace] ([Ctrl]+[H])
Replaces the specified words in the active [Edit] window with one another. A
dialog box will appear allowing specification of the words.
3.5.3 [View] Menu
[Go T o] ([Ctrl]+[G])
Jumps to the specified line or label in the active [Edit] window. A dialog box
will appear allowing specification of a line number or a label name.
[Standard Bar]
Shows or hides the standard toolbar.
[Status Bar]
Shows or hides the status bar located at the bottom of the work bench
window.
[Output Window]
Opens or closes the [Output] window.
[Project Window]
Opens or closes the [Project] window.
[Build Bar]
Shows or hides the build toolbar.
[Window Bar]
Shows or hides the window toolbar.
[Full Screen]
Maximizes the [Edit] window area to the full screen size.
S5U1C63000A MANUALEPSON23
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.5.4 [Insert] Menu
3.5.5 [Build] Menu
[File...]
Inserts the specified file to the current cursor position in the [Edit]
window or replaces the selected text with the contents of the
specified file. A dialog box will appear allowing selection of the file
to be inserted.
[Files into project...]
Adds the specified source file in the currently opened project. A
dialog box will appear allowing selection of the file to be added.
[Assemble] ([Ctrl]+[F7])
Assembles the assembly source in the active [Edit] window. This
menu item becomes active only when the active [Edit] window
shows an assembly source file.
[Build] ([F7])
Builds the currently opened project using a general make process.
[Rebuild All]
Builds the currently opened project. All the source files will be
assembled regardless of whether they are updated or not.
[Stop Build] ([Ctrl]+[Break])
Stops the build process being executed. This button become active
only while a build process is being executed.
[Debug] ([F5])
Invokes the debugger with the specified ICE parameter file.
[Settings...] ([Alt]+[F7])
Displays a dialog box for selecting tool options.
[ICE parameter file...]
Displays a dialog box for selecting an ICE parameter file.
[Output Format...]
Displays a dialog box for selecting an executable object file format.
Three types of formats are available: IEEE-695 absolute object
format, Intel HEX format and Motorola S format. The build process
will generate an executable object in the format selected here.
24EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
3.5.6 [Tools] Menu
CHAPTER 3: WORK BENCH
[HEX Converter...]
Invokes the HEX converter to convert an absolute object into an Intel HEX object
or Motorola S object. A dialog box will appear allowing selection of an absolute
object and options for the HEX converter.
[Disassembler...]
Invokes the disassembler to disassemble an absolute object. A dialog box will
appear allowing selection of an absolute object and options for the disassembler.
[WinFOG]
Invokes the function option generator winfog.
[WinSOG]
Invokes the segment option generator winsog.
[WinMLA]
Invokes the melody assembler winmla.
[WinMDC]
Invokes the mask data checker winmdc.
[Options...]
Displays a dialog box for selecting work bench options such as character colors
in the [Edit] window and a printing font.
3.5.7 [Window] Menu
3.5.8 [Help] Menu
This menu appears when an [Edit] window is opened.
[Cascade]
Cascades the opened [Edit] windows.
[Tile Horizontally]
Tiles the opened [Edit] window horizontally.
[Tile Vertically]
Tiles the opened [Edit] window vertically.
[Arrange Icons]
Arranges the minimized [Edit] window icons at the bottom of the [Edit] window area.
[Close All]
Closes all the [Edit] windows opened.
[Help]
Displays the [Help] window.
[About WB63...]
Displays a dialog box showing the version of the work bench.
S5U1C63000A MANUALEPSON25
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.6Project and Work Space
The work bench manages a program development task using a work space folder and a project file that
contains file and other information necessary for invoking the development tools.
3.6.1 Creating a New Project
A new project file can be created by the following procedure:
1. Select [New] from the [File] menu or click the [New] button.
[New] button
The [New] dialog box appears.
2. Select [EPSON Project File] and click [OK].
The [Project] dialog box appears.
3. Enter a project name, select an ICE parameter file and select a directory, then click [OK].
∗ The [ICE parameter file:] box lists the parameter files that exist in the "dev" directory.
The work bench creates a folder (directory) with the specified project name as a work space, and puts the
project file (.epj) into the folder.
If a folder which has the same name as that of a specified one already exists in the specified location, the
work bench uses the folder as the work space. Thus you can specify a folder in which sources are created.
The specified project name will also be used for the absolute object and other files.
26EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
3.6.2 Inserting Sources into a Project
The sources created must be inserted into the project.
To insert a source into a project, use one of the four methods shown below:
1. [Insert | Files into project...] menu item
A dialog box appears when this menu item is selected.
Choose a source file from the list box and then click [Open].
2. [File | Open...] menu item or [Open] button
[Open] button
A dialog box appears when this menu item or button is selected.
CHAPTER 3: WORK BENCH
Choose a source file from the list box and select the [Into project] button, then click [Open].
3. [Insert into project] button on the [Edit] window
[Insert into project] button
When the source file has been opened, click the [Insert into project] button on the [Edit] window. Do
not forget to save the source to the file before inserting into the project.
4. Dragging source files on the [Project] window
Drag source files from Windows Explorer to the [Project] window. These files will be added to the
current project.
When a source file is inserted into the project, the source file name appears in the [Project] window.
Removing a source from the project
To remove a source file from the project, select the source in the [Project] window and then press the
[Delete] key. This removes only the source information, and does not delete the actual source file.
S5U1C63000A MANUALEPSON27
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.6.3 [Project] Window
The [Project] window shows the work space folder and the source files included in the project that has
been opened.
When a source file icon is double-clicked, the source file will be opened or the corresponding [Edit]
window will be activated.
When the folder icon or a source file icon is clicked with the right mouse
button, a shortcut menu including the available build menu items
appears.
[Properties...] shows the source file information as follows:
Shortcut menu in the [Project] window
Note: Note that the list in the [project] window is not the actual directory structure.
Sources of the project in other folders than the work space folder are also listed as they exist in
the work space folder.
3.6.4 Opening and Closing a Project
To open a project, select [Open WorkSpace...] from the [File] menu.
A dialog box appears allowing selection of a project file.
The work bench allows only one project to be opened at a time. So if a project has been opened, it will be
closed when another project is opened. At this time, a dialog box appears to select whether the current
project file is to be saved or not if it has not already been saved after a modification.
The project file can also be opened by selecting [Open] from the [File] menu or clicking the [Open]
button. In this case, choose the file type as Project Files (*.epj) in the file open dialog box.
To close the currently opened project file, select [Close WorkSpace] from the [File] menu. At this time, a
dialog box appears to select whether the current project file is to be saved or not if it has not already been
saved after a modification. If [Yes] (save) is selected in this dialog box, all the modification items including sources, tool settings and window configuration will be saved.
28EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.6.5 Files in the Work Space Folder
The work bench generates the following files in the work space folder:
<file>.epjProject file
This file contains the project information.
<file>.cmLinker command file
This file is generated when a build task is started, and is used by the linker to generate an absolute
object file.
Example:
; S1C WorkBench Generated
; Thursday, November 05, 1998
This is a generic make file that contains macro setting and dependency list.
The following files are generated by the development tools during a build process:
<file>.oRelocatable object files (generated by the assembler)
<file>.absAbsolute object file (generated by the linker)
<file>.hsa, <file>.lsa, <file>.csaMotorola S files (generated by the HEX converter when this format
is specified in the work bench)
<file>h.hex, <file>l.hex, <file>c.hexIntel HEX files (generated by the Hex converter when this format
is specified in the work bench)
S5U1C63000A MANUALEPSON29
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.7Source Editor
The work bench has a source editor function. Sources can be created and modified in the [Edit] window.
3.7.1 Creating a New Source or Header File
To create a new source file:
1. Select [New] from the [File] menu or click the [New] button.
[New] button
The [New] dialog box appears.
2. Select [EPSON Assembly Source File] and click [OK].
An [Edit] window appears.
[Edit] window
Enter source codes here.
Enter source codes in this window.
The [New] dialog box allows selection of the [EPSON Header File]. Select it when creating a header file
for constant definitions.
30EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
3.7.2 Loading and Saving Files
To load a source file:
1. Select [Open...] from the [File] menu or click the [Open] button.
[Open] button
The [Open] dialog box appears.
CHAPTER 3: WORK BENCH
2. Choose a source file to be opened after selecting the file type, "Assembly Source Files (*.s, *.ms)", and
click [OK]. An [Edit] window opens and shows the contents of the source file.
S5U1C63000A MANUALEPSON31
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
To save the source:
1. Activate the [Edit] window of the source to be saved.
2. Select [Save as...] from the [File] menu.
The [Save As] dialog box appears.
3. Enter the file name and then click [OK].
When overwriting the source on the existing file, select [Save] from the [File] menu or click the [Save]
button.
[Save] button
To save all the source files opened and the project file, use the [File | Save All] menu item or the [Save
All] button.
[Save All] button
3.7.3 Edit Function
The source editor has general text editing functions similar to standard Windows applications.
Editing text
Basic text editing function is the same as general Windows applications.
Cut, copy and paste are supported in the [Edit] menu and with the toolbar buttons. These commands
are available only in the [Edit] window.
Undo can be selected from the [Edit] menu.
The tab stops are set at every 8 characters.
Find, replace and go to
Any words can be searched in the active [Edit] window.
Find
To find a word, select [Find...] from the [Edit] menu or click the [Find] button.
[Find] button
The [Find] dialog box appears.
32EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
The controls in the dialog are as follows:
[Find what:] text box
Enter the word to be found in this text box. The specified word is maintained as the finding word
even if this dialog box is closed.
[Match whole word only] check box
If this option is selected, the work bench searches only the words that are completely matched
with the specified word. If not, only the part of word that matches the specified word will be
searched.
[Match case] check box
If this option is specified, a case-sensitive search is performed. If not, a case-insensitive search is
performed.
[Direction] option
If the [Up] radio button is selected, the specified word is searched toward to the beginning of the
file. If the [Down] radio button is selected, a search is performed toward to the end of the file.
[Find Next] button
Clicking this button starts searching the specified word. If the specified word is found, the [Edit]
window refreshes the display and highlights the word found.
[Cancel] button
Clicking this button closes the dialog box.
Once a word to be found is specified in the [Find] dialog box, the [Find Next] and [Find Previous]
buttons on the toolbar can be used for a forward or backward search.
[Find Next] button [Find Previous] button
Replace
To replace a word with another one, select [Replace] from the [Edit] menu.
The [Replace] dialog box appears.
The controls in the dialog are as follows:
[Find what:] text box
Enter the word to be found in this text box. If a word has been specified in the [Find] dialog box, it
appears in this box.
[Replace with:] text box
Enter the substitute word in this box.
[Match whole word only] check box
If this option is selected, the work bench searches only the words that are completely matched
with the specified word. If not, only the part of word that matches the specified word will be
searched.
[Match case] check box
If this option is specified, a case-sensitive search is performed. If not, a case-insensitive search is
performed.
S5U1C63000A MANUALEPSON33
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
[Find Next] button
Clicking this button starts searching the specified word. If the specified word is found, the [Edit]
window refreshes the display and highlights the word found.
[Replace] button
By clicking this button after the specified word is found, it is replaced with the substitute word.
Then the work bench searches the next.
[Replace All] button
Replaces all the specified found words with the substitute word. Note that undo function cannot
be performed for this operation except for the last replaced word.
[Cancel] button
Clicking this button closes the dialog box.
Go to
You can go to any source line or any label position quickly.
To do this, select [Go To] from the [Edit] menu.
The [Go To] dialog box appears.
Going to a source line
1. Select "Line" in the [Go to what:] list box.
2. Type a line number in the [Enter Line Number] box and then click the [Go To] button.
Going to a label position
1. Select "Label" in the [Go to what:] list box.
The [Enter Line Number] box changes to the [Select Label] list box.
2. Select a label from the [Select Label] box and then click the [Go To] button.
The [Select Label] list box has a pull-down menu that contains the list of labels defined in the current
source file.
The [Edit] windows for source files (*.s, *.ms) have the [Go To Label] list box similar to the [Select
Label] list box in the [Go To] dialog box. You can also go to a label position using this box.
Inserting a file
To insert a file such as a header file and another source at the cursor position of the current source,
select [File...] from the [Insert] menu.
A dialog box will appears allowing selection of the file to be inserted.
34EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
Shortcut menu
The [Edit] window supports a short cut menu that appears by clicking the right mouse button on the
[Edit] window. It can also be done by pressing the [Short cut menu] key while the [Edit] window is
active if the key is available on the keyboard. It contains the editing menu items descried above, so
you can select an edit command using this menu.
3.7.4 Tag Jump Function
When assembler syntax errors occur during assembling, their error messages are displayed in the [Output] window. In this case, you can go to the source line in which an error has occurred by double-clicking
the error message in the [Output] window.
However, this function is available only when the error message contains a source line number.
Linked with the corresponding source line
S5U1C63000A MANUALEPSON35
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.7.5 Printing
The document in the [Edit] window can be printed out.
The [Print...], [Print Preview] and [Page Setup...] commands are provided in the [File] menu. The [Print]
button can also be used. They have the same function as those of standard Windows application.
Select one after activating the [Edit] window of the document to be printed.
3.8Build Task
By using the [Build] menu or [Build] toolbar, the assembler, linker, debugger, HEX converter and
disassembler can be executed from the work bench.
In the work bench, process to generate an executable object from the source files is called a build task.
For details of each development tool, refer to the respective chapter.
3.8.1 Preparing a Build Task
Before starting a build task, necessary source files should be prepared and tool options should be configured.
1. Create a new project. (Refer to Section 3.6.1.)
2. Select an ICE parameter file. (Refer to Section 3.6.1.)
3. Create source files and add them into the project. (Refer to Sections 3.7 and 3.6.2.)
4. Select tool options (Refer to Section 3.9.)
3.8.2 Building an Executable Object
To generate an executable object:
1. Open the project file.
2. Select an output format (absolute, Intel HEX or Motorola S) using the [Output Format] list box.
3. Select [Build] from the [Build] menu or click the [Build] button.
[Build] button
The work bench generates a make file according to the source files in the project and the tool options set
by the user. This file is used to control invocation of tools.
First, the make process invokes the assembler for each source file to be assembled. If the latest relocatable
object file exists in the work space, the corresponding source file is not assembled to reduce process time.
Next, the linker is invoked to generate an absolute object file. The linker command file used in this phase
is automatically generated.
If absolute object has been selected as the output format, the build task is completed at this phase. If Intel
HEX or Motorola S has been selected, the HEX converter will be invoked to generate an object in the
specified format.
To rebuild all files including the latest relocatable object files, select [Rebuild All] from the [Build] menu
or click the [Rebuild All] button.
[Rebuild All] button
The build task can be suspended by selecting [Stop Build] from the [Build] menu or clicking the [Stop
Build] button.
[Stop Build] button
36EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
To invoke only the assembler, select [Assemble] from the [Build] menu or click the [Assemble] button
after activating the [Edit] window of the source to be assembled.
[Assemble] button
3.8.3 Debugging
To debug the generated executable file, select [Debug] from the [Build] menu or click the [Debug] button.
[Debug] button
The debugger starts up with the specified ICE parameter file and then loads the executable object by the
command file generated from the work bench.
This command file contains the command to load the specified type of an executable object to the
debugger. The contents of the command file can be edited in the [Settings] dialog box explained in
Section 3.9.
∗ When the building process is performed again after invoking the debugger, the debugger will reload
the object file if its window can be activated.
Refer to Chapter 8, "Debugger", for operating the debugger.
S5U1C63000A MANUALEPSON37
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.8.4 Executing Other Tools
The HEX converter and disassembler can be invoked independently. The mask data creation tools can
also be invoked from wb63.
HEX converter
To invoke the HEX converter, select [HEX converter...] from the [Tools] menu or click the [HEX
convert] button.
[HEX convert] button
Then select an absolute object file to be converted in the [Hex data convert] dialog box.
This dialog box allows selection of the HEX converter options.
[ICE Parameter file:] list box
Select an ICE parameter file from the pull-down list.
[Output Format:] list box
Select an output format from between Intel HEX and Motorola S.
[Output error log file] check box
Select this option to generate the error log file of the HEX converter.
[Do not fill room with 0xFF] check box
Select this option when not filling the unused program area with 0xFF.
After selecting an absolute object and options, click the [Open] button. The HEX converter starts up
and converts the selected object into the specified format. The messages delivered from the HEX
converter are displayed in the [Output] window.
38EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
Disassembler
To invoke the disassembler, select [Disassembler...] from the [Tools] menu or click the [Disassemble]
button.
[Disassemble] button
Then select the executable object file to be disassembled in the [Disassemble] dialog box.
This dialog box allows selection of the disassembler options.
[Output error log file] check box
Select this option to generate the error log file of the disassembler.
[Output Option]
Select a character case option using the radio buttons.
When [Default] is selected, the disassembled source will be made with all labels in upper-case
characters and instructions in lower-case characters.
When [Upper case] is selected, the source will be made with upper-case characters only.
When [Lower case] is selected, the source will be made with lower-case characters only.
After selecting an executable object and options, click the [Open] button. The disassembler starts up
and converts the selected object into the source file. The messages delivered from the disassembler are
displayed in the [Output] window.
Function option generator, segment option generator, melody assembler
and mask data checker
The [Tools] menu allows invocation of the following tools:
Refer to the respective chapter for how to use each tool.
Note: These tools do not support some models (no device information definition file is provided). In this
case, other tools are provided for each model. However those tools cannot be invoked from the
[Tools] menu.
S5U1C63000A MANUALEPSON39
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.9Tool Option Settings
The development tools have startup options that can be specified when invoking them.
These settings can be made in the [Settings] dialog box that appears by selecting [Settings...] from the
[Build] menu.
Click the tool name tab to view option settings of each tool.
Clicking the [OK] button updates option setting information in the project and then closes the dialog box.
To continue to select other tool options, click the [Apply] button. This does not close the dialog box.
Clicking the [Cancel] button closes the dialog box.
3.9.1 Assembler Options
In this dialog, the following four assembler options can be selected.
[Error file]Output of an error file (No: Not output, Yes: Output)
[Debug info] Addition of debugging information to the relocatable object (No: Not added, Yes: Added)
[List file]Output of the relocatable list file (No: Not output, Yes: Output)
[Defines]Name definition for conditional assembly (Enter a define name.)
40EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
The edit box shows the default setting ([Default]) and the list of source files in the project.
The default setting applies to all the sources excluding ones that are specified independently.
To select options of a specific source, select the check box at the front of the source file name.
Check here→■■ sub.sNoNoNo
Each of the [Error file], [Debug info] and [List file] options is set to either "No" or "Yes" and it toggles by
double-clicking. For example, to change the default [List file] option from "No" to "Yes", double click "No"
in the [Default] line. It changes to "Yes".
SourceError fileDebug infoList fileDefines
[Default] No Yes No
←Double-click here. It will be changed to Yes.
To define a name for conditional assembly, double-clicking the [Defines] part.
SourceError fileDebug infoList fileDefines
[Default] No Yes No
←Double-click here, then type a define name.
An text box appears. Type a name in the box. If two or more names are to be entered, separate each name
with a comma (,).
Refer to Chapter 4, "Assembler", for details of the assembler options.
3.9.2 Linker Options
In this dialog, section allocation, symbol definition and other linker options can be specified.
The work bench generates a linker command file including these specifications, and specifies it when
invoking the linker.
Specifying section allocation
This option is set by default as all the sections will be allocated from the memory start address. To
specify a section start address, double click the cell and then enter the address.
SourceBSS CODE DATA
■■ [Default]
SourceBSS CODE DATA
✓
■■ [Default] 0x100
The edit box shows the default setting ([Default]) and the list of source files in the project.
The default setting applies to all the sections excluding those of the source specified.
To set a specific source independently, select the check box at the front of the source file name.
Check here→■■ sub.s 0x200
S5U1C63000A MANUALEPSON41
(S1C63 FAMILY ASSEMBLER PACKAGE)
✓
← Double-click here to change default CODE section start address, then type an address.
CHAPTER 3: WORK BENCH
Symbol definition
To define a symbol, click the [New] button and then enter the symbol name and address in the edit
box.
SymbolAddr
[ ][ ]
←Enter a symbol name and the address.
To modify a symbol name or address, double click the name or the address in the edit box and then
enter a new name or address.
SymbolAddr
TEST0x0000
←Double-click to modify.
To delete a symbol, highlight the symbol line by clicking and then click the [Delete] button.
Other option selections
[Disable all branch optimization] check box
Select this option if extension code insertions, deletions and corrections are not necessary.
[Disable insertion of branch extension] check box
Select this option if extension code insersions are not necessary.
[Output Error log file] check box
Select this option to generate the error log file of the linker.
[Disable removal branch optimization] check box
Select this option if extension code deletions are not necessary.
[Add source debug information] check box
Select this option to add the debugging information. If this option is not specified, the sources
cannot be displayed in debugging.
[Output absolute list file] check box
Select this option to generate the absolute list file.
[Output Map file] check box
Select this option to generate the link map file.
[Output Symbol file] check box
Select this option to generate the symbol file.
[Output cross reference file] check box
Select this option to generate the cross reference file.
Refer to Chapter 5, "Linker", for details of the linker options.
42EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
3.9.3 Debugger Options
CHAPTER 3: WORK BENCH
[COM Port:] list box
Select a COM port of the personal
computer used to communicate with
the ICE. COM1 is set by default.
[bps:] list box
Select a baud rate to communicate
with the ICE. 9600 bps is set by
default.
[Initial Command:] edit box
This box is used to edit the debugger
commands to be executed when the
debugger starts up. The work bench
generates a command file with the
commands entered in this box and
specifies it when invoking the
debugger. A load command is
initially set so that the debugger can
load the object at start up.
Refer to Chapter 8, "Debugger", for
details of the debugger options.
3.9.4 HEX Converter Options
[Output Format:] list box
An output format of the executable
object to be generated by the build
task can be selected.
When "Absolute Object" is selected,
the build task will be terminated
after linking has completed. The
HEX converter will not be invoked.
When "Intel Hex" or "Motorola S" is
selected, the HEX converter will be
invoked after linking has completed.
Other HEX converter options
become selectable when one of them
is selected.
[Do not fill room with 0xFF] check box
Select this option when not filling
the unused program area with 0xFF.
[Output error log file] check box
Select this option to generate the
error log file of the HEX converter.
Refer to Chapter 6, "HEX Converter", for
details of the HEX converter options.
S5U1C63000A MANUALEPSON43
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH
3.10 Work Bench Options
[Options...] in the [Tools] menu allows selection of some options for customizing the work bench. When
this menu item is selected, a dialog box appears.
File menu options
[MRU Files:] box
This option allows selection of a number of recently used files to be listed in the [File] menu. The
selectable range is 0 to 9.
[MRU Projects:] box
This option allows selection of a number of recently used project files to be listed in the [File]
menu. The selectable range is 0 to 9.
Print options
[Unit:] radio button
This option allows selection of a unit used for specifying the margins of the printing sheet. Either
"inch" or "mm" can be selected. This selection affects the margin setup field in the [Page Setup...]
dialog box.
[Font:] list box
This option allows selection of a font used for printing the document in the [Edit] window.
Editor options
[Auto Save:] box
This option sets an auto-save interval for the document to be edited in the [Edit] window. The
selectable range is 0 to 999 minutes. When 0 is selected, the document being edited will not be
automatically saved.
[Line No.] check box
This option enables or disables the line number display in the [Edit] window.
Color selection list box
These list boxes allow selection of colors used to display the document in the [Edit] window. Text
(mnemonics), comments, assembler pseudo-instructions, preprocessor pseudo-instructions, labels
and line numbers are displayed with different colors selected here.
Note: The contents selected in this dialog box will be effective after restarting the work bench.
44EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
3.11 Short-Cut Key List
Key operationFunction
Ctrl + NCreates a new document
Ctrl + OOpens an existing document
Ctrl + F12Opens an existing document
Ctrl + SSaves the document
Ctrl + PPrint the active document
Ctrl + Shift + F12Print the active document
Ctrl + ZUndoes the last action
Alt + BackSpaceUndoes the last action
Ctrl + XCuts the selection and puts it on the clipboard
Shift + DeleteCuts the selection and puts it on the clipboard
Ctrl + CCopies the selection to the clipboard
Ctrl + InsertCopies the selection to the clipboard
Ctrl + VInserts the clipboard contents at the insertion point
Shift + InsertInserts the clipboard contents at the insertion point
Ctrl + ASelects the entire document
Ctrl + FFinds the specified text
F3Finds next
Shift + F3Finds previous
Ctrl + HReplaces the specified text with different text
Ctrl + GMoves to the specified location
Ctrl + F7Assembles the file
F7Builds the project
Ctrl + BreakStops the build
F5Debugs the project
Alt + F7Edits the project build and debug settings
Ctrl + TabNext MDI Window
Short-cut-keyOpens the popup menu
Shift + F10Opens the popup menu
CHAPTER 3: WORK BENCH
3.12 Error Messages
The work bench error messages are given below.
Error messageDescription
<filename> is changed by another editor. Reopen this file?
Cannot create file: <filename>The file (linker command file, debugger command file,
Cannot find file: <filename>The source file cannot be found.
Cannot find ICE parameter fileThe ICE parameter file cannot be found.
Cannot open file: <filename>The source file cannot be opened.
You cannot close workspace while a build is in progress.The project close command or work bench terminate
Select the Stop Build command before closing.command is specified while the build task is being
Would you like to build it?The debugger invoke command is specified when the
S5U1C63000A MANUALEPSON45
(S1C63 FAMILY ASSEMBLER PACKAGE)
The currently opened file is modified by another editor.
etc.) cannot be created.
processed.
build task has not already been completed.
CHAPTER 3: WORK BENCH
3.13 Precautions
(1) The source file that can be displayed and edited in the work bench is limited to 16M byte size.
(2) The label search and coloring function of the work bench does not support labels that have not ended
with a colon (:).
(3) The work bench can create a make, linker command and debugger command files, note, however, that
these files or settings created with another editor cannot be input into the work bench.
46EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4ASSEMBLER
CHAPTER 4: ASSEMBLER
This chapter describes the functions of the assembler as63
of assembly source files.
and grammar involved with the creation
4.1Functions
The assembler as63 is a tool that constitutes the core of this software package. It assembles (translates)
assembly source files and creates object files in the machine language.
The functions and features of the assembler are summarized below:
• Allows absolute and relocatable sections mixed in one source.
• Allows to develop programs in multiple sources by creating relocatable object files that can be combined by the linker.
• Can add source debugging information for source debugging on the debugger.
• Upper compatible with the old S1C63 preprocessor and assembler.
The assembler provides the following additional functions as well as the basic assembly functions:
• Macro definition and macro invocation
• Definition of Define name
• Operators
• Insertion of other file
• Conditional assembly
The assembler processes source files in two stages: preprocessing stage and assembling stage. The
preprocessing stage expands the additional function part described in the source file to mnemonics that
can be assembled, and delivers them to a temporary file (preprocessed file). The assembling stage assemble the preprocessed file to convert the source codes into the machine codes.
4.2Input/Output Files
4.2.1 Input File
Assembly source file
File format: Text file
File name: <File name>.s
Description: File in which a source program is described. If the file extension is omitted, the
Note: When a ".s" source file is specified, it will be processed in the preprocessing stage
Assembly source file
file.s
Assembler
as63
file.ofile.msfile.lst
list file
<File name>.ms (A preprocessed source file created by the assembler or disassembler.)
assembler finds a source file that has the specified file name and an extension ".s".
and then the assembling stage. When a ".ms" source file is specified, it will be
processed only in the assembling stage. Therefore, ".ms" files cannot include preprocessor instructions.
Object fileRelocatable
source file
to Linker
Fig. 4.2.1 Flow chart
file.err
Error filePreprocessed
S5U1C63000A MANUALEPSON47
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.2.2 Output Files
Object file
File format: Binary file in relocatable IEEE-695 format
File name: <file name>.o (The <file name> is the same as that of the input file, unless otherwise
specified with the -o option.)
Output destination: Current directory
Description: File in which machine language codes are stored in a relocatable form available for
the linker to link with other modules and to generate an executable absolute object.
Relocatable list file
File format: Text file
File name: <file name>.lst (The <file name> is the same as that of the input file, unless other-
wise specified with the -o option.)
Output destination: Current directory
Description: File in which offset locations, machine language codes and source codes are stored
in plain text.
Preprocessed file
File format: Text file
File name: <file name>.ms (The <file name> is the same as that of the input file, unless other-
wise specified with the -o option.)
Output destination: Current directory
Description: File in which instructions for preprocessing (e.g. conditional assembly and macro
instructions) are expanded into an assembling format.
Error file
File format: Text file
File name: <file name>.err (The <file name> is the same as that of the input file, unless other-
wise specified with the -o option.)
Output destination: Current directory
Description: The file is created if the -e option is specified. It records error messages and other
information which the assembler delivers via the Standard Output (stdout).
48EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.3Starting Method
General form of command line
as63 ^ [options] ^ [<source file name>]
denotes a space.
^
[ ] indicates the possibility to omit.
Source file name
In the command line, only one assembly source file can be specified at a time. Therefore, you will
have to process multiple files by executing the assembler the number of times equal to the number of
files to be processed.
A long file name supported in Windows and a path name can be specified. When including spaces in
the file name, enclose the file name with double quotation marks (").
Options
The assembler comes provided with the following six start-up options:
-d <define name>
Function: Definition of Define name
Explanation: • Works in the same manner as you describe "#define <define name>" at top of
the source. It is an option to control the conditional assembly at the start-up.
• One or more spaces are necessary between -d and the <define name>.
• To define two or more Define names, repeat the specification of "-d <define
name>".
-g
Function: Addition of debugging information
Explanation: • Creates an output file containing symbolic/source debugging information.
• Always specify this function when you perform symbolic/source debugging.
Default: If this option is not specified, no debugging information will be added to the
relocatable object file.
-o <file name>
Function: Specification of output path/file name
Explanation: • Specifies an output path/file name without extension or with an extension ".o".
If no extension is specified, ".o" will be supplemented at the end of the specified
output path/file name.
Default: The input file name is used for the output file names.
-c
Function: Ignore character case of symbols
Explanation: • Allows description of symbols in case insensitive.
Default: If this option is not specified, symbol names will be case sensitive.
-l
Function: Output of relocatable list file
Explanation: • Outputs a relocatable list file.
Default: If this option is not specified, no relocatable list file will be output.
-e
Function: Output of error file
Explanation: • Creates an .err file which contains the information that the assembler outputs to
the Standard Output (stdout), such as error messages.
Default: If this option is not specified, no error file will be created.
When entering an option in the command line, you need to place one or more spaces before and after
the option. The options can be specified in any order. It is also possible to enter options after the
source file name.
S5U1C63000A MANUALEPSON49
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.4Messages
The assembler delivers all its messages through the Standard Output (stdout).
Start-up message
The assembler outputs only the following message when it starts up.
Assembler 63 Ver x.xx
Copyright (C) SEIKO EPSON CORP. 1998-2001
End message
The assembler outputs the following messages to indicate which files have been created when it ends
normally.
Created preprocessed source file <FILENAME.MS>
Created relocatable object file <FILENAME.O>
Created relocatable list file <FILENAME.LST>
Created error log file <FILENAME.ERR>
Assembly 0 error(s) 0 warning(s)
Usage output
If no file name was specified or the option was not specified correctly, the assembler ends after
delivering the following message concerning the usage:
In the case of an error, the assembler ends without creating an output file. If an error occurs at the
preprocessing stage in the assembler, the assembler stops processing and outputs preprocess-level
errors only.
If a warning is issued, a warning message will appear before the end message shows up.
Example:
TEST.S(6) Warning: Expression out of range
Assembly 0 error(s) 1 warning(s)
In the case of a warning, the assembler ends after creating an output file.
The source file name that was specified in the command line will appear at the beginning of the error
and warning messages.
For details on errors and warnings, refer to Section 4.10, "Error/Warning Messages".
50EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.5Grammar of Assembly Source
Assembly source files should be created on a general-purpose editor or the source editor of the work
bench. Save sources as standard text files. For the file name, a long file name supported in Windows can
be specified.
This section explains the rules and grammar involved with the creation of assembly source files.
4.5.1 Statements
Each individual instruction or definition of an assembly source is called a statement. The basic composition of a statement is as follows:
ld%f,0x4(1)
ld%a,0(1)
ld%a,0(1)
ldb%ext,0 ; clear memory 0 to 3(1)
: :
The example given above is an ordinary source description method. For increased visibility, the elements
composing each statement are aligned with tabs and spaces.
S5U1C63000A MANUALEPSON51
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
Restrictions
• Only one statement can be described in one line. A description containing more than two instructions
in one line will result in an error. However, a comment or a label may be described in the same line
with an instruction.
Example:
;OK
BOOT:ld%f,0x4
;Error
BOOT:ld%f,0x4ld%a,0x0
• One statement cannot be described in more than one line. A statement that cannot complete in one
line will result in an error.
Example:
.word0x0,0x1,0x2,0x3 ... OK
.word0xa,0xb,0xc,0xd ... OK
.word0x0,0x1,0x2,0x3
0xa,0xb,0xc,0xd ... Error
• The maximum describable number of characters in one line is 259 (ASCII characters). If this number is
exceeded, an error will result.
• The usable characters are limited to ASCII characters (alphanumeric symbols), except for use in
comments. Also, the usable symbols have certain limitations (details below).
• The reserved words such as mnemonics and pseudo-instructions are all not case sensitive, while the
user defined items such as labels and symbols are all case sensitive if the -c option is not specified.
Therefore, mnemonics and pseudo-instructions can be written in uppercase (A–Z) characters, lowercase (a–z) characters, or both. For example, "ld", "LD", and "Ld" are all accepted as "ld" instructions.
For purposes of discrimination from symbols, this manual uses lowercase characters for the reserved
words.
52EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.5.2 Instructions (Mnemonics and Pseudo-instructions)
The assembler supports all the mnemonics of the S1C63000 instruction set and the assembler pseudoinstructions. The following shows how to describe the instructions.
Mnemonics
An instruction is generally composed of [mnemonic] + [operand]. Some instructions do not contain an
operand.
General notation forms of instructions
General forms:<Mnemonic>
<Mnemonic> tab or space <Operand>
<Mnemonic> tab or space <Operand1>, <Operand2>
<Mnemonic> tab or space <Operand1>, <Operand2>, <Operand3>
Examples:nop
jrNMI
ld%f,0x4
There is no restriction as to where the description of a mnemonic should begin in a line. A tab or space
preceding a mnemonic is ignored.
An instruction containing an operand needs to be separated into the mnemonic and the operand with
one or more tabs or spaces. If an instruction requires multiple operands, the operands must be
separated from each other with one comma (,). Space between operands is ignored.
The elements of operands will be described further below.
Types of mnemonics
The following 39 types of mnemonics can be used in the S1C63 Family:
add adc and bit calr calz clr cmp dec ex halt inc int jp jr jrc jrnc jrnz
jrz ld ldb nop or pop push ret retd reti rets rl rr sbc set sll slp srl sub
tst xor
For details on instructions, refer to the "S1C63000 Core CPU Manual".
Note
The assembler is commonly used for all the S1C63 Family models, so all the instructions can be
accepted. Be aware that no error will occur in the assembler even if instructions or operands unavailable for the model are described. They will be checked in the linker.
Assembler pseudo-instructions
The assembler pseudo-instructions are not converted to execution codes, but they are designed to
control the assembler or to set data.
For discrimination from other instructions, all the assembler pseudo-instructions begin with a sharp
(#) or a period (.).
General notation forms of pseudo-instructions
General forms:<Pseudo-instruction>
<Pseudo-instruction> tab or space <Parameter>
<Pseudo-instruction> tab or space <Parameter1> tab, space or comma <Parameter2> ...
Examples:#defineSW11
.org0x100
.commBUF4
There is no restriction as to where the description of an instruction may begin in a line.
An instruction containing a parameter needs to be separated into the instruction and the parameter
with one or more tabs or spaces. If an instruction requires multiple parameters, they are separated
from each other with an appropriate delimiter.
S5U1C63000A MANUALEPSON53
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
Types of pseudo-instructions
The following 25 types of pseudo-instructions are available:
For details of each pseudo-instruction and its functionality, refer to Section 4.7, "Assembler PseudoInstructions".
Restriction
The mnemonics and pseudo-instructions are all not case sensitive. Therefore, they can be written in
uppercase (A–Z) characters, lowercase (a–z) characters, or both. For example, "ld", "LD", and "Ld" are
all accepted as "ld" instructions. However, the user defined symbols used in the operands or parameters are case sensitive. They must be the same with the defined characters. When assembling with the
"-c" option, all symbols are case insensitive.
4.5.3 Symbols (Labels)
A symbol (label) is an identifier designed to refer to an arbitrary address in the program. It is possible to
refer to a branch destination of a program or a data memory address using the defined symbol.
Definition of a symbol
Usable symbols are defined as 16-bit values by any of the following methods:
1. <Symbol>:
Example: LABEL1:
... LABEL1 is a label that indicates the address of a described location.
Preceding spaces and tabs are ignored. It is a general practice to describe from the top of a line.
2. Definition using the
Example: .set ADDR1 0xff00
3. Definition using the
Example: .commBUF1 4
The .comm and .lcomm pseudo instructions can define labels only in bss sections (data memory
such as RAM). Program memory addresses cannot be defined.
.set
pseudo-instruction
... ADDR1 is a symbol that represents absolute address 0xff00.
.comm
or
.lcomm
... BUF1 is a label that represents a RAM address.
pseudo-instruction
Reference with symbols
A defined symbol denotes an address.
The actual address value should be determined in the linking process, except in the case of absolute
sections.
Examples: LABEL1:
:
jr LABEL1... jumps to the LABEL1 location.
.set IO_M 0xfff0
.org 0x0000
.bss
.comm COUNT1 1
.code
ldb %ext,IO_M@h
ldb %xl,IO_M@l... 0xfff0 is loaded to X-register.
inc [COUNT1]... Regarded as inc [0x0000].
(@h and @l are symbol masks.)
54EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
Scope
The scope is a reference range of a symbol (label). It is called local if the symbol is to be referenced
within the same file, and it is called global if the symbol is to be referenced from other files.
Any defined symbol's scope is local in default. To make a symbol's scope global, use the .global
pseudo-instruction both in the file in which the symbol is defined and in the file that references the
symbol.
A double definition of local symbols will be an error at the assembly stage, while a double definition
of global symbols will be an error at the link stage.
Example:
File in which global symbol is defined (file1)
.globalSYMBOL... Global declaration of a symbol which is to be defined in this file.
SYMBOL:
:
LABEL:... Local symbol
:(Can be referenced to only in this file)
File in which a global symbol is referenced to (file2)
.globalSYMBOL... Global declaration of a symbol defined in other source file.
callSYMBOL... Symbol externally referenced to.
:
LABEL:... Local symbol
:(Treated as a different symbol from LABEL of file1)
The assembler regards those symbols as those of undefined addresses in the assembling, and includes
that information in the object file it delivers. Those addresses are finally determined by the processing
of the linker.
∗ When a symbol is defined by the .comm pseudo-instruction, that symbol will be a global symbol.
Therefore, in a defined file, no global declaration needs to be made using the .global pseudo-instruction. On the contrary, in a file to be referenced, the global declaration is necessary prior to the reference.
Symbol masks
Symbol masks are designed to acquire the upper 8-bit address and the lower 8-bit address from a
symbol representing a 16-bit address.
The following 5 types of symbol masks can be used:
@l or @LAcquires the lower 8 bits of an absolute address.
@h or @HAcquires the upper 8 bits of an absolute address.
@rl or @RLAcquires the lower 8 bits of a relative address.
@rh or @RHAcquires the upper 8 bits of a relative address.
@xh or @XHAcquires the upper 8 bits of an absolute address by inverting them (Used exclu-
sively for the "ldb" instruction combined with the "cmp" instruction).
Sample uses:
ldb%ext,ADDR@h
ldb%xl,ADDR@l... Functions as "ld %x, ADDR (16-bit)"
ldb%ext,NUM@h
add%x,NUM@l... Functions as "add %x, NUM (16-bit)"
ldb%ext,LABEL@rh
calrLABEL@rl... Functions as "calr LABEL (16-bit)"
ldb%ext,DATA@xh
cmp%x,DATA@l... Functions as "cmp %x, DATA (16-bit)"
.setIO_ADDR 0xff12
ldb%ext,IO_ADDR@l
ld%a,[%y]... Functions as "ld %a, [IO_ADDR]"
S5U1C63000A MANUALEPSON55
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
Restrictions
• The maximum number of characters of a symbol is 259 (not including colon). If this number is exceeded, an error will result.
• Since symbols are case sensitive by default, uppercase and lowercase are discriminated. When referencing a defined symbol, use the characters exactly the same as the defined symbol.
Examples: _Abcd:
:
jr_ABCD... Does not jump to _Abcd
However, symbols will be case insensitive if the -c option is specified.
• The symbol masks are effective only on the defined symbols. If a symbol mask is applied to a numeric
value, an error will result.
• If a symbol mask is omitted, the lower bits effective for that instruction will be used. However, if the
bit value does not fall within the instruction range, an error or warning will be issued.
• Symbols and symbol masks cannot be used on 4-bit immediate values.
4.5.4 Comments
Comments are used to describe a series of routines, or the meaning of each statement. Comments cannot
comprise part of coding.
Definition of comment
A character string beginning with a semicolon (;) and ending with a line feed code (LF) is interpreted
as a comment. Not only ASCII characters, but also other non-ASCII characters can be used to describe
a comment.
Examples: ;This line is a comment line.
LABEL: ;This is the comment for LABEL.
ld %a,%b ;This is the comment for the instruction on the left.
Restrictions
• A comment is allowed up to 259 characters, including a semicolon (;), spaces before, after and inside
the comment, and a return/line feed code.
• When a comment extends to several lines, each line must begin with a semicolon.
Examples: ;These are
comment lines.... The second line will not be regarded as a comment. An error will
result.
;These are
; comment lines.... Both lines will be regarded as comments.
4.5.5 Blank Lines
This assembler also allows a blank line containing only a return/line feed code. It need not be made into a
comment line using a semicolon.
56EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.5.6 Register Names
The CPU register names may be written in either uppercase or lowercase letters.
Table 4.5.6.1 Notations of register names
RegisterNotation
AData register A%a, %A, a or A
BData register B%b, %B, b or B
BABA-register pair%ba, %BA, ba or BA
XIndex register X%x, %X, x or X
XHUpper 8 bits of X-register %xh, %XH, xh or XH
XLLower 8 bits of X-register %xl, %XL, xl or XL
YIndex register Y%y, %Y, y or Y
YHUpper 8 bits of Y-register %yh, %YH, yh or YH
YLLower 8 bits of Y-register %yl, %YL, yl or YL
FFlag register F%f, %F, f or F
EXTExtension register EXT%ext, %EXT, ext or EXT
SP1Stack pointer SP1%sp1, %SP1, sp1 or SP1
SP2Stack pointer SP2%sp2, %SP2, sp2 or SP2
Note: "%" can be omitted. These symbols are reser ved words, therefore they cannot be used as user-
defined symbol names.
4.5.7 Numerical Notations
This Assembler supports three kinds of numerical notations: decimal, hexadecimal, and binary.
Decimal notations of values
Notations represented with 0–9 only will be regarded as decimal numbers. To specify a negative
value, put a minus sign (-) before the value.
Examples: 1 255 -3
Characters other than 0–9 and the sign (-) cannot be used.
Hexadecimal notations of values
To specify a hexadecimal number, place "0x" before the value.
Examples: 0x1a 0xff00
"0x" cannot be followed by characters other than 0–9, a–f, and A–F.
Binary notations of values
To specify a binary number, place "0b" before the value.
Examples: 0b1001 0b1001100
"0b" cannot be followed by characters other than 0 or 1.
Specified ranges of values
The size (specified range) of immediate data varies with each instruction.
The specifiable ranges of different immediate data are given below.
Table 4.5.7.1 Types of immediate data and their specifiable ranges
"nnnnB" (binary numbers) and "nnnnH" (hexadecimal numbers) are converted into the new format
("0bnnnn" and "0xnnnn") in the preprocessing stage.
"nnnnO" and "nnnnQ" (octal numbers) are converted into hexadecimal numbers ("0xnnnn") in the
preprocessing stage.
ASCII to HEX conversion
One or two ASCII characters (enclosed with ' ') can be described in source files unless converting into
numbers. The numeric operators can also be used. The described characters are converted into ASCII
codes and delivered to the output relocatable object file.
Examples: retd '1' →(retd 0x31)
retd '23' →(retd 0x3233)
retd '4'+1 →(retd 0x35)
Note: Three or more characters and the following characters cannot be described:
Control codes (0x0 to 0x1f) space @ [ ] ; ,
4.5.8 Operators
An expression that consists of operators, numbers and/or defined symbols (including labels) can be used
for specifying a number or defining a Define name (only for number definition).
The preprocess in the assembler handles expressions in signed 16-bit data and expands them as hexadecimal numbers.
Types of operators
Arithmetic operatorsExamples
+Addition, Plus sign+0xff, 1+2
-Subtraction, Minus sign-1+2, 0xff-0b111
*Multiplication0xf*5
/Division0x123/0x56
%Residue0x123%0x56(%% is also be supported.)
>>Shifting to right1>>2
<<Shifting to left0x113<<3
^HAcquires upper 8 bits0x1234^H
^LAcquires lower 8 bits0x1234^L
( )Parenthesis1+(1+2*5)
The arithmetic operator returns the result of arithmetic operation on the specified terms.
The logical operator returns the result of logic operation on the specified terms.
58EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
Relational operatorsExamples
==EqualSW==0
!=Not equalSW!=0
<Less thanABC<5
<=Less than or equalABC<=5
>Greater thanABC>5
>=Greater than or equalABC>=5
&&ANDABC&&0xf
||ORABC||0b1010
The relational operator returns 1 if the expression is true, otherwise it returns 0.
Priority
The operators have the priority shown below. If there are two or more operators with the same
priority in an expression, the assembler calculates the expression from the left.
S5U1C63000A MANUALEPSON59
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
Precautions
• Minus numbers -1 to -32768 are handled as 0xffff to 0x8000.
• The assembler handles expressions as 16-bit data. Pay attention to the data size when using it as 4-bit
immediate data, especially when it has a minus value.
Example:
ld %a,-2+1... NG. It will be expanded as "ld a,0xffff".
ld %a,(-2+1)&0xf... OK. It will be expanded as "ld a,0xf".
• Expressions are calculated with a sign (like a signed short in C language).
Pay attention to the calculation results of the >>, / and % operators using hexadecimal numbers.
Example:
.set NUM1 0xfffe/2... -2/2 = -1 (0xffff)
The / and % operators can only be used within the range of +32767 to -32768.
.set NUM2 0xfffe>>1 ... -2>>1 = -1 (0xffff)
Mask as (0xfffe>>1)&0x7fff.
• When using an expression in a #define statement, it will be expanded as is. Pay attention when a
number is defined using the #define pseudo-instruction.
Example:
#define NUM1 1+1
ld %a,NUM1*2... This will be expanded as "ld %a, 1+1*2" (=3).
#define NUM2 (1+1)
ld %a,NUM2*2... This will be expanded as "ld %a, (1+1)*2" (=4).
• Do not insert a space or a tab between an operator and a term.
4.5.9 Location Counter Symbol "$"
The address of each instruction code is set in the 16-bit location counter when a statement is assembled. It
can be referred using a symbol "$" as well as labels. "$" indicates the current location, thus it can be used
for relative branch operation. The operators can be used with this symbol similar to labels.
Example: jr $... Jumps to this address (means endless loop).
jr $+2... Jumps to two words after this address.
jr $-10... Jumps to 10 words before this address.
jr $+16+(16*(BLK>16))... Operators and defined symbols can be used.
Precaution
When the address referred to relatively with "$" is in another section, it should be noted if the intended section resides at the addressed place, because if the section is relocatable, the absolute
address is not fixed until the linking is completed.
4.5.10 Optimization Branch Instructions for Old Preprocessor
The old version of the S1C63 preprocessor has optimization branch instructions for optimizing the
extension code. Since this function is supported by the linker in the current version, they are expanded
without an extension code in the assembler. The relative distance to the label does not affect this expansion.
Optimization Branch InstructionMnemonic after Expansion
The memory configuration of the S1C63 Family microcomputer is divided into a code ROM that contains
programs written, and data memories such as data RAM and I/O memory. Moreover, some models carry
a data ROM that holds static data written.
A section refers to an area where codes are written (or to be mapped), and there are three types of sections in correspondence with the memories:
1. CODE sectionArea located within a code ROM.
2. DATA sectionArea located within a data ROM.
3. BSS sectionDenotes a RAM area.
To allow to specify these sections in a source file, the assembler comes provided with pseudo-instructions.
CODE section
The .code pseudo-instruction defines a CODE section. Statements from this instruction to another
section defining instruction will be regarded as program codes, and will be so processed as to be
mapped in the code ROM. The source file will be regarded as a CODE section by default. Therefore,
the part that goes from top of the file, to another section will be processed as a CODE section. Because
this section is of 13 bits/word, 4-bit data cannot be defined.
DATA section
The .data pseudo-instruction defines a DATA section. Statements from this instruction to another
section defining instruction will be regarded as 4-bit data, and will be so processed as to be mapped in
the data ROM. Therefore, nothing else can be described in this area other than the symbols for
referring to the address of the data ROM, the 4-bit data defining pseudo-instruction (.word), and
comments. This section is applied only to models having a data ROM.
BSS section
The .bss pseudo-instruction defines a BSS section. Statements from this instruction to another section
defining instruction will be regarded as 4-bit data, and will be so processed as to be mapped in the
data memory (RAM). Therefore, nothing else can be described in this area other than the symbols for
referring to the address of the data memory, the area securing pseudo-instructions (.comm and
.lcomm).
The .comm pseudo-instruction and the .lcomm pseudo-instruction are designed to define the symbol
and size of a data area. Although the BSS section basically consists in a RAM area, it can as well be
used as a data memory area, such as display memory and I/O memory. Since code definition in this
area is meaningless in embedded type microcomputers, such as those of the S1C63 Family, nothing
else can be described other than the two instructions and comments.
4.6.2 Absolute and Relocatable Sections
The assembler is a relocatable assembler that always generates an relocatable object and needs the linker
to make it into an executable absolute object. However, each section in one source can be absolute or
relocatable depending on how they are described. The section whose absolute address is specified with
the .org pseudo-instruction in the source is an absolute section, while the section whose absolute address
is not specified is an relocatable section. Absolute addresses of relocatable sections will be fixed by the
linker. Both types of sections can be included in one source.
S5U1C63000A MANUALEPSON61
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.6.3 Sample Definition of Sections
:
CODE1 (Relocatable program)
:
.data
:
DATA1 (Relocatable data definition)
:
.bss
:
BSS1 (Relocatable RAM area definition)
:
.code
.org 0x0...
:
CODE2 (Absolute program)
:
.bss
.org 0x0...
:
BSS2 (Absolute RAM area definition)
:
.code
:
CODE3 (Relocatable program)
:
.data
.org 0x8000...
:
DATA2 (Absolute data definition)
:
If this specification is omitted, a CODE section begins from the address following CODE1.
If this specification is omitted, a BSS section begins from the address following BSS1.
If this specification is omitted, a DATA section begins from the address following DATA1.
In the section definition shown above, absolute sections and relocatable sections are mixed in one source.
Absolute sections are sections whose absolute addresses are specified with the .org pseudo-instructions.
CODE2, BSS2 and DATA2 are absolute sections. Absolute sections will be located at the place specified.
Other sections are relocatable in the sense that the absolute location addresses are not fixed at the assembly stage and will be fixed later at the linking stage.
Precautions
When there appears in a section a statement which is designed for other section, a warning will be
issued and a new section will be started according to the statement.
Examples: .code
.comm BUF 16... Warning; A new bss section begins
.bss
ld %a,%b... Warning; A new code section begins
62EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.7Assembler Pseudo-Instructions
The assembler pseudo-instructions are not converted to execution codes, but they are designed to control
the assembler or to set data.
For discrimination from other instructions, all the assembler pseudo-instructions begin with a character
"#" or ".". The instructions that begin with "#" are preprocessed pseudo-instructions and they are expanded into forms that can be assembled. The expanded results are delivered in the preprocessed file
(.ms). The original statements of the pseudo-instructions (#) are changed as comments by attaching a ";"
before delivering to the file. The instruction that begins with "." are used for section and data definitions.
They are not converted at the preprocessing stage.
All the pseudo-instruction characters are not case sensitive.
The following pseudo-instructions are available in the assembler:
Pseudo-instructionFunction
#includeIncludes another source.
#defineDefines a constant string.
#defnumDefines a constant number. (∗1)
#macro–#endmDefines a macro.
#ifdef–#else–#endifDefines an assemble condition.
#ifndef–#else–#endifDefines an assemble condition.
.absSpecifies absolute assembling. (∗1)
.alignSets alignment of a section.
.orgSets an absolute address.
.codeDeclares a CODE section (mapping to the built-in code ROM).
.dataDeclares a DATA section (mapping to the built-in data ROM).
.bssDeclares a BSS section (mapping to the built-in RAM).
.codewordDefines data in the CODE section.
.wordDefines data in the DATA section.
.commSecures a global area in the BSS section.
.lcommSecures a local area in the BSS section.
.globalDefines an external reference symbol.
.setDefines an absolute address symbol.
.listControls assembly list output.
.nolistControls assembly list output.
.stabsDebugging information (source name).
.stabnDebugging information (line number).
∗1: Maintained only for compatibility with the older assembler.
S5U1C63000A MANUALEPSON63
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.7.1 Include Instruction (#include)
The include instruction inserts the contents of a file in any location of a source file. It is useful when the
same source is shared in common among several source files.
Instruction format
#include "<File name>"
• A drive name or path name can as well be specified as the file name.
• One or more spaces are necessary between the instruction and the "<File name>".
• Character case is ignored for both #include itself and "<File name>".
The specified file is inserted in the location where #include was described.
Precautions
• Only files created in text file format can be inserted.
• The #include instruction can be used in the including files. However, nesting is limited up to 10 levels.
If this limit is surpassed, an error will result.
64EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.7.2 Define Instruction (#define)
Any substitute character string can be left defined as a Define name by the define instruction (#define),
and the details of that definition can be referred to from various parts of the program using the Define
name.
Instruction format
#define<Define name> [<Substitute character string>]
<Define name>:
• The first character is limited to a–z, A–Z, ? and _.
• The second and the subsequent characters can use a–z, A–Z, 0–9, ? and _.
• Uppercase and lowercase characters are discriminated. (#define itself is case insensitive.)
When assembling with the "-c" option, all symbols are case insensitive.
• One or more spaces or tabs are necessary between the instruction and the Define name.
<Substitute character string>:
• When writing all characters can be used, but a semicolon (;) is interpreted as the start of a comment.
• Uppercase and lowercase characters are discriminated.
• One or more spaces or tabs are necessary between the Define name and the substitute character string.
• The substitute character string can be omitted. In that case, NULL is defined in lieu of the substitute
character string. It can be used for the conditional assembly instruction.
Sample definitions:
#defineTYPE1
#defineL1LABEL_01
#defineXreg%x
#defineCONST(DATA1+DATA2)*2
Expansion rule
If a Define name defined appears in the source, the assembler substitutes a defined character string
for that Define name.
Sample expansion:
#define INT_F10xfff0
#define INT_F1_10
:
set[INT_F1], INT_F1_1... Expanded to "set [0xfff0],0".
:
S5U1C63000A MANUALEPSON65
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
Precautions
• The assembler only permits backward reference of a Define name. Therefore the name definition must
precede the use of it.
• Once a Define name is defined, it cannot be canceled. However, redefinition can be made using
another Define name.
Example:
#defineXL%xl
#defineXlow XL
ldb[Xlow],%ba... Expanded to "ldb [%xl],%ba".
• When the same Define name is defined duplicatedly, a warning message will appear. Until it is
redefined, it is expanded with the original content, and once it is redefined, it is expanded with the
new content.
• No other characters than delimiters (space, tab, line feed, and comma) can be added before and after a
Define name in the source, unless they are enclosed in [ ] or [ ]+. However, an operator or a symbol
mask (@..) can be added to a Define name string without delimiters.
Examples:
#defineINT_F 0xfff
tst [INT_F1],0 ;tst [0xfff1],0? ... Specification like this is invalid.
#defineL LABEL
ldb %ext,L@h... Replaced with "ldb %ext,LABEL@h".
ldb %xl,L@l... Replaced with "ldb %xl,LABEL@l".
• When using an expression in a #define statement, it will be expanded as is. Pay attention when a
number is defined using the #define pseudo-instruction.
Examples:
#defineNUM1 1+1
ld %a,NUM1*2... Expanded as "ld %a, 1+1*2" (=3).
#defineNUM2 (1+1)
ld %a,NUM2*2... Expanded as "ld %a, (1+1)*2" (=4).
• The internal preprocess part of the assembler does not check the validity of a statement as the result of
the replacement of the character string.
66EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.7.3 Numeric Define Instruction (#defnum)
Instruction format
#defnum <Numeric Define name> <Number>
Function
The #defnum pseudo-instruction is provided for compatibility with the older assembler. In the older
assembler, #defnum is required to define a numeric constant, while #define is for defining a string. In
the new assembler, there is no need to differentiate between a numeric constant and a string.
Therefore the new assembler should use the #define instruction.
S5U1C63000A MANUALEPSON67
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.7.4 Macro Instructions (#macro ... #endm)
Any statement string can be left defined as a macro using the macro instruction (#macro), and the content
of that definition can be invoked from different parts of the program with the macro name. Unlike a
subroutine, the part that is invoking a macro is replaced with the content of the definition.
• The first character is limited to a–z, A–Z, ? and _.
• The second and the subsequent characters can use a–z, A–Z, 0–9, ? and _.
• Uppercase and lowercase characters are discriminated. (#macro itself is case insensitive.)
When assembling with the "-c" option, all symbols are case insensitive.
• One or more spaces or tabs are necessary between the instruction and the macro name.
<Dummy parameter>:
• Dummy parameter symbols for macro definition. They are described when a macro to be defined
needs parameters.
• One or more spaces or tabs are necessary between the macro name and the first parameter symbol.
When describing multiple parameters, a comma (,) is necessary between one parameter and another.
• The same symbols as for a macro name are available.
• The number of parameters are limited according to the free memory space.
A macro is spread over to several locations in the source. Therefore, if you describe a label in a macro,
a double definition will result, with an error issued. So, use internal branch labels which are only
valid within a macro.
• The number of internal-branch labels are limited according to the free memory space.
• The same symbols as for a macro name are available.
Sample definition:
#define C_RESET0b1101
#macro WAITCOUNT
ld%a,COUNT
and%f,C_RESET
LOOP:
nop
jrLOOP
#endm
68EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
Expansion rules
When a defined macro name appears in the source, the assembler inserts a statement string defined in
that location.
If there are actual parameters described in that process, the dummy parameters will be replaced with
the actual parameters in the same order as the latter are arranged.
The internal branch labels are replaced, respectively, with __L0001 ... from top of the source in the
same order as they appear.
Sample expansion:
When the macro WAIT shown above is defined:
Macro invocation
:
WAIT 15
:
After expansion
:
;WAIT 15
ld%a,15
and%f,0b1101
__L0001:
nop
jr__L0001
("__ L0001" denotes the case where an internal branch label is expanded for the first time in the source.)
Precautions
• The assembler only permits backward reference of a macro invocation. Therefore the macro definition
must precede the use of it.
• Once a defined macro name is defined, it cannot be canceled. If the same macro name is defined
duplicatedly, a warning message will appear. Until it is redefined, it is expanded with the original
content, and once it is redefined, it is expanded with the new content. Definition should be done with
distinct names, although the program operation will not be affected.
• No other characters than delimiters (space, tab, line feed, and commas) can be added before and after
a dummy parameter in a statement.
• The same character string as that of the define instruction cannot be used as a macro name.
• When the number of dummy parameters differs from that of actual parameters, an error will result.
• The maximum number of parameters and internal branch labels are limited according to the free
memory space.
• "__Lnnnn" used for the internal branch labels should not be employed as other label or symbol.
S5U1C63000A MANUALEPSON69
(S1C63 FAMILY ASSEMBLER PACKAGE)
A conditional assembly instruction determines whether assembling should be performed within the
specified range, dependent on whether the specified name (Define name) is defined or not.
Instruction formats
Format 1)#ifdef<Name>
<Statement string 1>
[#else
<Statement string 2> ]
#endif
If the name is defined, <Statement string 1> will be subjected to the assembling.
If the name is not defined, and #else ... <Statement string 2> is described, then <Statement string 2>
will be subjected to the assembling. #else ... <Statement string 2> can be omitted.
Format 2)#ifndef<Name>
<Statement string 1>
[#else
<Statement string 2> ]
#endif
If the name is not defined, <Statement string 1> will be subjected to the assembling.
If the name is defined, and #else ... <Statement string 2> is described, <Statement string 2> will be
subjected to the assembling. #else ... <Statement string 2> can be omitted.
<Name>:
Conforms to the restrictions on Define name. (See #define.)
<Statement string>:
All statements, excluding conditional assembly instructions, can be described.
Sample description:
#ifdefTYPE1
ld%x,0x12
#else
ld%x,0x13
#endif
#ifndefSMALL
#defineSTACK1 0x31
#endif
Name definition
Name definition needs to have been completed by either of the following methods, prior to the
execution of a conditional assembly instruction:
(1) Definition using the start-up option (-d) of the assembler.
Example:as63 -d TYPE1 sample.s
(2) Definition in the source file using the #define instruction.
Example:#define TYPE1
The #define statement is valid even in a file to be included, provided that it goes before the
conditional assembly instruction that uses its Define name. A name defined after a conditional
assembly instruction will be regarded as undefined.
When a name is going to be used only in conditional assembly, no substitute character string
needs to be specified.
70EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
Expansion rule
A statement string subjected to the assembling is expanded according to the expansion rule of the
other preprocessing pseudo-instructions. (If no preprocessing pseudo-instruction is contained, the
statement will be output in a file as is.)
Precaution
A name specified in the condition is evaluated with discrimination between uppercase and lowercase.
When assembling with the "-c" option, all symbols are case insensitive.
The condition is deemed to be satisfied only when there is the same Define name defined.
S5U1C63000A MANUALEPSON71
(S1C63 FAMILY ASSEMBLER PACKAGE)
The section defining pseudo-instructions define one related group of codes or data and make it possible
to relocate by the groups at the later linking stage. Even if these section defining pseudo-instructions are
not used, the section kind will be automatically judged by its contents (however, a warning occurs). If the
new codes or data without section definition are different from the previous code or data kind, they will
be taken as another new section.
.code pseudo-instruction
Instruction format
.code
Function
Declares the start of a CODE section. Statements following this instruction are assembled as those to
be mapped in the code ROM, until another section is declared.
The CODE section is set by default in the assembler. Therefore, the .code pseudo-instruction can be
omitted at top of a source file. Always describe it when you change a section to a CODE section.
Precautions
• A CODE section can be divided among multiple locations of a source file for purpose of definition
(describing the .code pseudo-instruction in the respective start positions).
• A CODE section is relocatable by default unless its location is specified with the .org pseudo-instruction or more loosely with the .align pseudo-instruction.
.data pseudo-instruction
Instruction format
.data
Function
Declares the start of a DATA section. Statements following this instruction are assembled as those to
be mapped in the data ROM, until another section is declared.
Precautions
• The DATA section is a static data area, and effective only for models with data ROM installed.
• In a DATA section, nothing other than the .org and .word pseudo-instructions, symbols, and comments can be described.
• A DATA section can be divided among multiple locations of a source file for purpose of definition
(describing the .data pseudo-instruction in the respective start positions).
• A DATA section is relocatable by default unless its location is specified with the .org pseudo-instruction or more loosely with the .align pseudo-instruction.
72EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
.bss pseudo-instruction
Instruction format
.bss
Function
Declares the start of a BSS section. Statements following this instruction are assembled as those to be
mapped in the RAM, until another section is declared.
Precautions
• In a BSS section, nothing else other than the .comm, .lcomm, and .org pseudo-instructions, symbols,
and comments can be described.
• A BSS section can be divided among multiple locations of a source file for purpose of definition
(describing the .bss pseudo-instruction in the respective start positions).
• A BSS section is relocatable by default unless its location is specified with the .org pseudo-instruction
or more loosely with the .align pseudo-instruction.
S5U1C63000A MANUALEPSON73
(S1C63 FAMILY ASSEMBLER PACKAGE)
The absolute addressing pseudo-instructions (.align and .org) work to specify absolute location of a
section in different precision such as 2
.org pseudo-instruction
Instruction format
.org<Address>
<Address>:
Absolute address specification
• Only decimal, binary and hexadecimal numbers can be described.
• The addresses that can be specified are from 0 to 65,535 (0xffff).
• One or more spaces or tabs are necessary between the instruction and the address.
Sample description:
.code
.org0x0100
Function
Specifies an absolute address location of a CODE, DATA or BSS section in an assembly source file. The
section with the .org pseudo-instruction is taken as an absolute section.
Precautions
• If an overlap occurs as the result of specifying absolute locations with the .org pseudo-instruction, an
error will result.
Examples:
.bss
.org 0x00
.comm RAM0 4... RAM secured area (0x00–0x03)
.org 0x01
.comm RAM1 4... Error (because the area of 0x01–0x03 is overlapped)
n
words alignment level and complete absolute address level.
• When the .org pseudo-instruction appears in a section, a new absolute section starts at that point. The
section type does not change. The .org pseudo-instruction keeps its effect only in that section until the
next section definer (.code, .data or .bss) or the next location definer (.org or .align) appears.
Example:
:
.code... The latest relocatable section definition.
:
.org 0x100... Starts new absolute CODE section from address 0x100.
:
.bss... This section is relocatable not affected by the ".org" pseudo-instruction.
:
.code... This section is also relocatable not affected by the ".org" pseudo-instruction.
:
• If the .org pseudo-instruction is defined immediately after a section definer (.code, .data or .bss), the
section definer does not start a new section. But .org starts a new section with the attribute of the
section definer.
Example:
.code... This does not start a new CODE section.
.org 0x100... This starts an absolute CODE section.
:
74EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
• If the .org pseudo-instruction is defined immediately before a section definer (.code, .data or .bss), it
does not start a new section and makes no effect to the following sections.
Example:
.code... The latest relocatable section definition.
:
.org 0x100... This does not start a new absolute section and makes no effect.
.bss... The another kind (BSS) of section which is not affected by the
: previous ".org" pseudo-instruction in the CODE section.
.code... This will be an relocatable CODE section not affected by the
: previous ".org" pseudo-instruction.
S5U1C63000A MANUALEPSON75
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
.align pseudo-instruction
Instruction format
.align<Alignment number>
<Alignment number>:
Word alignment in 2
n
value
• Only decimal, binary and hexadecimal numbers can be described.
• The alignment that can be specified is a 2
n
value.
• One or more spaces or tabs are necessary between the instruction and the alignment number.
Sample description:
.code
.align 32... Sets the location to the next 32-word boundary address.
Function
Specifies location alignment in words of a CODE, DATA or BSS section in an assembly source file. The
section with the .align pseudo-instruction can be taken as a loosely absolute section in the sense that
its location is partially defined.
Precautions
• When the .align pseudo-instruction appears in a section, a new absolute section starts at that point.
The section type does not change. The .align pseudo-instruction keeps its effect only in that section
until the next section definer (.code, .data or .bss) or the next location definer (.org or .align) appears.
Example:
:
.code... The latest relocatable section definition.
:
.align 32 ... Starts new loosely absolute CODE section from the next 32-word boundary address.
:
.bss... This section is relocatable not affected by the ".align" pseudo-instruction.
:
.code... This section is also relocatable not affected by the ".align" pseudo-instruction.
:
• If the .align pseudo-instruction is defined immediately after a section definer (.code, .data or .bss), the
section definer does not start a new section. But .align starts a new section with the attribute of the
section definer.
Example:
.code... This does not start a new CODE section.
.align 32 ... This starts a loosely absolute CODE section.
:
• If the .align pseudo-instruction is defined immediately before a section definer (.code, .data or .bss), it
does not start a new section and makes no effect to the following sections.
Example:
.code... The latest relocatable section definition.
:
.align 32 ... This does not start a new absolute section and makes no effect.
.bss... The another kind (BSS) of section which is not affected by the
: previous ".align" pseudo-instruction in the CODE section.
.code... This will be an relocatable CODE section not affected by the
The .abs pseudo-instruction is provided for compatibility with the older assembler. In the older
assembler, this pseudo-instruction is required to specify that a source file uses absolute sections as
opposed to relocatable sections. It is not necessary to use this instruction in the new assembler,
because the new assembler allows the use of absolute and relocatable sections in one source file. Use
the .org or .align pseudo-instruction for defining absolute sections.
S5U1C63000A MANUALEPSON77
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.7.9 Symbol Defining Pseudo-Instruction (.set)
Instruction format
.set<Symbol>[,] <Value>
<Symbol>:
Symbols for value reference
• The 1st character is limited to a–z, A–Z, ? and _.
• The 2nd and the subsequent character can use a–z, A–Z, 0–9, ? and _.
• Uppercase and lowercase are discriminated.
When assembling with the "-c" option, all symbols are case insensitive.
• One or more spaces, or tabs are necessary between the instruction and the symbol.
<Value>:
Value specification
• Only decimal, binary, and hexadecimal numbers can be described.
• The values that can grammatically be specified are from 0 to 65,535 (0xffff).
• One or more spaces, tabs, or a comma (,) are necessary between the instruction and the value.
Sample description:
.setDATA1 0x20
.setSTACK1 0x100
Function
Defines a symbol for a value such as an absolute address.
Precaution
When the defined symbol is used as an operand, the defined value is referred as is. Therefore, if the
value exceeds the valid range of the operand, a warning will result.
Example:
.set DATA1 0xff00
ldb%ext,DATA1@h... OK
ldb%xl,DATA1@l... OK
ld%a,DATA1... Warning
78EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
4.7.10 Data Defining Pseudo-Instructions (.codeword, .word)
.codeword pseudo-instruction
Instruction format
.codeword<Data>[,<Data> ...,<Data>]
<Data>:
13-bit data
• Only decimal, binary and hexadecimal numbers can be described.
• The data that can be specified are from 0 to 8,191 (0x1fff).
• One or more spaces or tabs are necessary between the instruction and the first data.
• A comma (,) is necessary between one data and another.
Sample description:
.code
.codeword0xa,0xa40,0xff3
Function
Defines 13-bit data to be written to the code ROM.
Precaution
The .codeword pseudo-instruction can be used only in CODE sections.
CHAPTER 4: ASSEMBLER
.word pseudo-instruction
Instruction format
.word<Data>[,<Data> ...,<Data>]
<Data>:
4-bit data
• Only decimal, binary and hexadecimal numbers can be described.
• The data that can be specified are from 0 to 15 (0xf).
• One or more spaces or tabs are necessary between the instruction and the first data.
• A comma (,) is necessary between one data and another.
Sample description:
.data
.word0xa,0xb,0xc,0xd
Function
Defines 4-bit data to be written to the data ROM.
Precaution
The .word pseudo-instruction can be used only in DATA sections.
S5U1C63000A MANUALEPSON79
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.7.11 Area Securing Pseudo-Instructions (.comm, .lcomm)
Instruction format
.comm<Symbol>[,] <Size>
.lcomm<Symbol>[,] <Size>
<Symbol>:
Symbols for data memory access (address reference)
• The 1st character is limited to a–z, A–Z, ? and _.
• The 2nd and the subsequent character can use a–z, A–Z, 0–9, ? and _.
• Uppercase and lowercase are discriminated.
When assembling with the "-c" option, all symbols are case insensitive.
• One or more spaces or tabs are necessary between instruction and symbol.
<Size>:
Number of words of the area to be secured (4 bits/word)
• Only decimal, binary and hexadecimal numbers can be described.
• The size that can grammatically be specified is from 0 to 65,534.
• One or more spaces, tabs or a comma (,) are necessary between symbol and size.
Sample description:
.bss
.commRAM0 4
.lcomm BUF,1
Function
Sets an area of the specified size in the BSS section (RAM and other data memory), and creates a
symbol indicating its top address with the specified name. By using this symbol, you can describe an
instruction to access the RAM.
Difference between .comm and .lcomm
The .comm pseudo-instruction and the .lcomm pseudo-instruction are exactly the same in function,
but they do differ from each other in the scope of the symbols they create. The symbols created by the
.comm pseudo-instruction become global symbols, which can be referred to externally from other
modules (however, the file to be referred to needs to be specified by the .global pseudo-instruction.)
The symbols created by the .lcomm pseudo-instruction are local symbols, which cannot be referred to
from other modules.
Precaution
The .comm and .lcomm pseudo-instructions can only be described in BSS sections.
80EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.7.12 Global Declaration Pseudo-Instruction (.global)
Instruction format
.global<Symbol>
<Symbol>:
Symbol to be defined in the current file, or symbol already defined in other module
• One or more spaces or tabs are necessary between the instruction and the symbol.
Sample description:
.global GENERAL_SUB1
Function
Makes global declaration of a symbol. The declaration made in a file with a symbol defined converts
that symbol to a global symbol which can be referred to from other modules. Prior to making reference, declaration has to be made by this instruction on the side of the file that is going to make the
reference.
4.7.13 List Control Pseudo-Instructions (.list, .nolist)
Instruction format
.list
.nolist
Function
Controls output to the relocatable list file.
The .nolist pseudo-instruction stops output to the relocatable list file after it is issued.
The .list pseudo-instruction resumes from there the output which was stopped by the .nolist pseudo-
instruction.
Precaution
The assembler delivers relocatable list files only when it is started up with the -l option specified.
Therefore, these instructions are invalid, if the -l option was not specified.
4.7.14 Source Debugging Information Pseudo-Instructions (.stabs, .stabn)
The assembler outputs object files in IEEE-695 format, including source debugging information
conforming to these instructions. This debugging information is necessary to perform debugging by
Debugger db63, with the assembly source displayed.
Format (1) delivers information on the start position of a file.
Format (2) delivers information on the end position of a file.
Format (3) delivers information on the line No. of an instruction in a source file.
Insertion of debugging information
When the -g option is specified as a start option, the preprocess stage of the assembler will insert
debugging pseudo-instructions in the preprocessed file. Therefore, you do not have to describe these
pseudo-instructions in creating source files.
S5U1C63000A MANUALEPSON81
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.7.15 Comment Adding Function
The preprocessing pseudo-instructions that begin with "#" are all expanded to codes that can be assembled, and delivered in the preprocessed file. Even after that, those instructions are rewritten with
comments beginning with a semicolon (;), so that the original instructions can be identified. However,
note that the replacements of Define names will not subsist as comments.
The comment is added to the first line following the expansion. In case the original statement is accompanied by a comment, that comment is also added.
A macro definition should have a semicolon (;) placed at top of the line.
Example:
• Before expansion
#defineAreg%a
#macroADDX2YVALUE
ldAreg, VALUE
addAreg, [%x]
ld[%y], Areg
#endm
ADDX2Y10h; MX + 10h -> MY
• After expansion (no debugging information)
;#defineAreg%a
;#macroADDX2YVALUE
;ldAreg, VALUE
;addAreg, [%x]
;ld[%y], Areg
;#endm
Some remarks concerning the priority among the preprocessing pseudo-instructions will be given below:
1. The conditional assembly instructions (#ifdef, #ifndef) have the first priority. Nesting cannot be made
of those instructions.
2. Define instruction (#define), include instruction (#include), or macro instruction (#macro) can be
described within a conditional assembly instruction.
3. Define instruction (#define), include instruction (#include), and macro instruction (#macro) cannot be
described within a macro definition.
4. Define name definitions are expanded with priority over macro definitions.
82EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.8Relocatable List File
The relocatable list file is an assembly source file that carries assembled results (offset addresses and
object codes) added to the first half of each line. It is delivered only when the start-up option (-l) is
specified.
Its file format is a text file, and the file name, <File name>.lst. (The <File name> is the same as that of the
input source file.)
The format of each line of the assembly list file is as follows:
Line No.: Address Code Source statement
Example
Assembler 63 ver x.xx Relocatable List File MAIN.LST Mon Jan 15 12:40:41 2001
1: ; main.s
2: ; AS63 test program (main routine)
3: ;
The source line number from top of the file will be delivered.
Content of address
In the case of an absolute section, an absolute address will be delivered in hexadecimal number.
In the case of a relocatable section, a relative address will be delivered in hexadecimal number from
top of the file.
Content of code
CODE section: The instruction (machine language) codes are delivered in hexadecimal numbers. One
address corresponds with one instruction. The assembler sets the operand (immediate
data) of the code that refers to unresolved address to 0. The immediate data will be
decided by the linker.
DATA section: The 4-bit data defined by the .word pseudo-instruction are delivered. One address
corresponds with one data.
BSS section:Irrespective of the size of the secured area, 00 is always delivered here.
Only the address defined for a symbol (top address of the secured area) is delivered as
the address of the BSS section.
S5U1C63000A MANUALEPSON83
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.9Sample Executions
Command line
C:\EPSON\S1C63\bin\as63 -g -e -l main.s
Assembly source file
; main.s
; AS63 test program (main routine)
;
;***** INITIAL SP1 & SP2 ADDRESS DEFINITION *****
#ifdef SMALL_RAM
.set SP1_INIT_ADDR 0xb;SP1 init addr = 0x2c
#else
.set SP1_INIT_ADDR 0x4b;SP1 init addr = 0x12c
#endif
.set SP2_INIT_ADDR 0x1f;SP2 init addr = 0x1f
;***** NMI & BOOT, LOOP *****
.global INIT_RAM_BLK1; subroutine in sub.s
.global INC_RAM_BLK1; subroutine in sub.s
.org 0x100
NMI:
calr INIT_RAM_BLK1; initialize RAM block 1
reti; in NMI(watchdog timer)
.org 0x110
BOOT:
ldb %ba,SP1_INIT_ADDR
ldb %sp1,%ba; set SP1
ldb %ba,SP2_INIT_ADDR
ldb %sp2,%ba; set SP2
calr INIT_RAM_BLK1; initialize RAM block 1
LOOP:
calr INC_RAM_BLK1; increment RAM block 1
jr LOOP; infinity loop
;***** RAM block *****
.org 0x0
.bss
.comm RAM_BLK0, 4
.comm RAM_BLK1, 4
84EPSONS5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
Preprocessed file
.stabs "C:\EPSON\S1C63\Test\main.s", FileName
; main.s
; AS63 test program (main routine)
;