Epson S5U1C63000A User Manual

MF910-06
CMOS 4-BIT SINGLE CHIP MICROCOMPUTER
S5U1C63000A
(S1C63 Family Assembler Package)
Manual
NOTICE
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.
© SEIKO EPSON CORPORATION 2001 All rights reserved.
The information of the product number change
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
S1 C 63158 F 0A01
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.
C 63000 A1 1
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)
Comparison table between new and previous number
S1C63 Family processors
Previous No.
E0C63158 E0C63256 E0C63358 E0C63P366 E0C63404 E0C63406 E0C63408 E0C63F408 E0C63454 E0C63455 E0C63458 E0C63466 E0C63P466
New No.
S1C63158 S1C63256 S1C63358 S1C6P366 S1C63404 S1C63406 S1C63408 S1C6F408 S1C63454 S1C63455 S1C63458 S1C63466 S1C6P466
Previous No.
E0C63467 E0C63557 E0C63558 E0C63567 E0C63F567 E0C63658 E0C63666 E0C63F666 E0C63A08 E0C63B07 E0C63B08 E0C63B58
New No.
S1C63467 S1C63557 S1C63558 S1C63567 S1C6F567 S1C63658 S1C63666 S1C6F666 S1C63A08 S1C63B07 S1C63B08 S1C63B58
S1C63 Family peripheral products
Previous No.
E0C5250 E0C5251
New No.
S1C05250 S1C05251
Comparison table between new and previous number of development tools
Development tools for the S1C63 Family Development tools for the S1C63/88 Family
Previous No.
ADP63366 ADP63466 ASM63 GAM63001 ICE63 PRC63001 PRC63002 PRC63004 PRC63005 PRC63006 PRC63007 URS63366
New No.
S5U1C63366X S5U1C63466X S5U1C63000A S5U1C63000G S5U1C63000H1 S5U1C63001P S5U1C63002P S5U1C63004P S5U1C63005P S5U1C63006P S5U1C63007P S5U1C63366Y
Previous No.
ADS00002 GWH00002 URM00002
New No.
S5U1C88000X1 S5U1C88000W2 S5U1C88000W1

INTRODUCTION

Introduction
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 follow­ing 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 MANUAL EPSON i (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 lower­case characters are annotated in lowercase characters in this manual, except for user-specified sym­bols.
(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).
ii EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CONTENTS
Contents
CHAPTER 1GENERAL ................................................................................................ 1
1.1 Features......................................................................................................... 1
1.2 Tool Composition ..........................................................................................2
1.2.1 Composition of Package.............................................................................. 2
1.2.2 Outline of Software Tools............................................................................ 2
1.3 Working Environment .................................................................................... 3
1.4 Installation ....................................................................................................4
1.5 Directories and Files after Installation.........................................................4
CHAPTER 2 SOFTWARE DEVELOPMENT PROCEDURE .................................................... 6
2.1 Software Development Flow .........................................................................6
2.2 Development Using Work Bench ................................................................... 7
2.2.1 Starting Up the Work Bench ........................................................................ 7
2.2.2 Creating a New Project ............................................................................... 8
2.2.3 Editing Source Files .................................................................................... 8
2.2.4 Configuration of Tool Options ................................................................... 10
2.2.5 Building an Executable Object .................................................................. 11
2.2.6 Debugging.................................................................................................. 12
CHAPTER 3WORK BENCH......................................................................................... 13
3.1 Features........................................................................................................13
3.2 Starting Up and Terminating the Work Bench.............................................. 13
3.3 Work Bench Windows ................................................................................... 14
3.3.1 Window Configuration ............................................................................... 14
3.3.2 Window Manipulation ................................................................................ 15
3.4 Toolbar and Buttons .....................................................................................19
3.4.1 Standard Toolbar........................................................................................ 19
3.4.2 Build Toolbar ............................................................................................. 20
3.4.3 Window Toolbar ......................................................................................... 20
3.4.4 Toolbar Manipulation ................................................................................ 21
3.4.5 [Insert into project] Button on a [Edit] Window........................................ 21
3.5 Menus ........................................................................................................... 22
3.5.1 [File] Menu ................................................................................................ 22
3.5.2 [Edit] Menu................................................................................................ 23
3.5.3 [View] Menu............................................................................................... 23
3.5.4 [Insert] Menu ............................................................................................. 24
3.5.5 [Build] Menu.............................................................................................. 24
3.5.6 [Tools] Menu.............................................................................................. 25
3.5.7 [Window] Menu ......................................................................................... 25
3.5.8 [Help] Menu .............................................................................................. 25
3.6 Project and Work Space ...............................................................................26
3.6.1 Creating a New Project .............................................................................. 26
3.6.2 Inserting Sources into a Project................................................................. 27
3.6.3 [Project] Window ....................................................................................... 28
3.6.4 Opening and Closing a Project.................................................................. 28
3.6.5 Files in the Work Space Folder................................................................... 29
3.7 Source Editor ............................................................................................... 30
3.7.1 Creating a New Source or Header File...................................................... 30
3.7.2 Loading and Saving Files .......................................................................... 31
3.7.3 Edit Function ............................................................................................. 32
3.7.4 Tag Jump Function ..................................................................................... 35
3.7.5 Printing ...................................................................................................... 36
S5U1C63000A MANUAL EPSON iii (S1C63 FAMILY ASSEMBLER PACKAGE)
CONTENTS
3.8 Build Task .....................................................................................................36
3.8.1 Preparing a Build Task .............................................................................. 36
3.8.2 Building an Executable Object .................................................................. 36
3.8.3 Debugging.................................................................................................. 37
3.8.4 Executing Other Tools ................................................................................ 38
3.9 Tool Option Settings .....................................................................................40
3.9.1 Assembler Options ..................................................................................... 40
3.9.2 Linker Options ........................................................................................... 41
3.9.3 Debugger Options ...................................................................................... 43
3.9.4 HEX Converter Options ............................................................................. 43
3.10 Work Bench Options..................................................................................... 44
3.11 Short-Cut Key List........................................................................................ 45
3.12 Error Messages ............................................................................................45
3.13 Precautions .................................................................................................. 46
CHAPTER 4ASSEMBLER ............................................................................................ 47
4.1 Functions......................................................................................................47
4.2 Input/Output Files ........................................................................................ 47
4.2.1 Input File.................................................................................................... 47
4.2.2 Output Files................................................................................................ 48
4.3 Starting Method............................................................................................ 49
4.4 Messages ......................................................................................................50
4.5 Grammar of Assembly Source ...................................................................... 51
4.5.1 Statements .................................................................................................. 51
4.5.2 Instructions (Mnemonics and Pseudo-instructions) .................................. 53
4.5.3 Symbols (Labels) ........................................................................................ 54
4.5.4 Comments................................................................................................... 56
4.5.5 Blank Lines ................................................................................................ 56
4.5.6 Register Names .......................................................................................... 57
4.5.7 Numerical Notations .................................................................................. 57
4.5.8 Operators ................................................................................................... 58
4.5.9 Location Counter Symbol "$" .................................................................... 60
4.5.10 Optimization Branch Instructions for Old Preprocessor ......................... 60
4.6 Section Management .................................................................................... 61
4.6.1 Definition of Sections ................................................................................. 61
4.6.2 Absolute and Relocatable Sections ............................................................ 61
4.6.3 Sample Definition of Sections .................................................................... 62
4.7 Assembler Pseudo-Instructions....................................................................63
4.7.1 Include Instruction (#include).................................................................... 64
4.7.2 Define Instruction (#define) ....................................................................... 65
4.7.3 Numeric Define Instruction (#defnum) ...................................................... 67
4.7.4 Macro Instructions (#macro ... #endm) ...................................................... 68
4.7.5 Conditional Assembly Instructions
(#ifdef ... #else ... #endif, #ifndef... #else ... #endif) .................................. 70
4.7.6 Section Defining Pseudo-Instructions (.code, .data, .bss) ......................... 72
4.7.7 Location Defining Pseudo-Instructions (.org, .align)................................ 74
4.7.8 Absolute Assembling Pseudo-Instruction (.abs) ........................................ 77
4.7.9 Symbol Defining Pseudo-Instruction (.set) ................................................ 78
4.7.10 Data Defining Pseudo-Instructions (.codeword, .word) .......................... 79
4.7.11 Area Securing Pseudo-Instructions (.comm, .lcomm).............................. 80
4.7.12 Global Declaration Pseudo-Instruction (.global).................................... 81
4.7.13 List Control Pseudo-Instructions (.list, .nolist)........................................ 81
4.7.14 Source Debugging Information Pseudo-Instructions (.stabs, .stabn)...... 81
4.7.15 Comment Adding Function ...................................................................... 82
4.7.16 Priority of Pseudo-Instructions................................................................ 82
iv EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CONTENTS
4.8 Relocatable List File ....................................................................................83
4.9 Sample Executions ....................................................................................... 84
4.10 Error/Warning Messages..............................................................................87
4.10.1 Errors ....................................................................................................... 87
4.10.2 W arning .................................................................................................... 88
4.11 Precautions .................................................................................................. 88
CHAPTER 5LINKER .................................................................................................. 89
5.1 Functions......................................................................................................89
5.2 Input/Output Files ........................................................................................ 89
5.2.1 Input Files .................................................................................................. 89
5.2.2 Output Files................................................................................................ 90
5.3 Starting Method............................................................................................ 91
5.4 Messages ......................................................................................................94
5.5 Linker Command File...................................................................................95
5.6 Link Map File............................................................................................... 96
5.7 Symbol File................................................................................................... 97
5.8 Absolute List File .........................................................................................98
5.9 Cross Reference File ....................................................................................99
5.10 Linking ........................................................................................................100
5.11 Branch Optimization Function....................................................................102
5.12 Error/Warning Messages.............................................................................103
5.12.1 Errors ...................................................................................................... 103
5.12.2 W arning ................................................................................................... 103
5.13 Precautions ................................................................................................. 104
CHAPTER 6HEX CONVERTER ................................................................................... 105
6.1 Functions.....................................................................................................105
6.2 Input/Output Files ....................................................................................... 105
6.2.1 Input Files ................................................................................................. 105
6.2.2 Output Files............................................................................................... 105
6.3 Starting Method........................................................................................... 106
6.4 Messages .....................................................................................................107
6.5 Output Hex Files ......................................................................................... 108
6.5.1 Hex File Configuration ............................................................................. 108
6.5.2 Motorola-S Format.................................................................................... 108
6.5.3 Intel-HEX Format ..................................................................................... 109
6.5.4 Conversion Range ..................................................................................... 109
6.6 Error/Warning Messages............................................................................. 110
6.6.1 Errors ........................................................................................................ 110
6.6.2 W arning ..................................................................................................... 110
6.7 Precautions ................................................................................................. 110
CHAPTER 7DISASSEMBLER ...................................................................................... 111
7.1 Functions.....................................................................................................111
7.2 Input/Output Files ....................................................................................... 111
7.2.1 Input Files ................................................................................................. 111
7.2.2 Output Files............................................................................................... 111
S5U1C63000A MANUAL EPSON v (S1C63 FAMILY ASSEMBLER PACKAGE)
CONTENTS
7.3 Starting Method........................................................................................... 112
7.4 Messages .....................................................................................................113
7.5 Disassembling Output ................................................................................. 114
7.6 Error/Warning Messages............................................................................. 117
7.6.1 Errors ........................................................................................................ 117
7.6.2 W arning ..................................................................................................... 117
CHAPTER 8DEBUGGER ............................................................................................ 118
8.1 Features....................................................................................................... 118
8.2 Input/Output Files ....................................................................................... 118
8.2.1 Input Files ................................................................................................. 118
8.2.2 Output Files............................................................................................... 119
8.3 Starting Method........................................................................................... 120
8.3.1 Start-up Format ......................................................................................... 120
8.3.2 Start-up Options........................................................................................ 120
8.3.3 Start-up Messages ..................................................................................... 121
8.3.4 Hardware Check at Start-up ..................................................................... 121
8.3.5 Method of Termination .............................................................................. 123
8.4 Windows ...................................................................................................... 124
8.4.1 Basic Structure of Window ........................................................................ 124
8.4.2 [Command] Window ................................................................................. 126
8.4.3 [Source] Window....................................................................................... 127
8.4.4 [Data] Window .......................................................................................... 129
8.4.5 [Register] Window .................................................................................... 129
8.4.6 [Trace] Window......................................................................................... 130
8.5 Tool Bar ....................................................................................................... 131
8.5.1 Tool Bar Structure ..................................................................................... 131
8.5.2 [Key Break] Button ................................................................................... 131
8.5.3 [Load File] and [Load Option] Buttons ................................................... 131
8.5.4 [Source], [Mix], and [Unassemble] Buttons ............................................ 131
8.5.5 [Go], [Go to Cursor], [Go from Reset], [Step], [Next],
and [Reset] Buttons .................................................................................. 131
8.5.6 [Break] Button .......................................................................................... 132
8.5.7 [Help] Button ............................................................................................ 132
8.6 Menu............................................................................................................ 133
8.6.1 Menu Structure.......................................................................................... 133
8.6.2 [File] Menu ............................................................................................... 133
8.6.3 [Run] Menu ............................................................................................... 133
8.6.4 [Break] Menu............................................................................................ 134
8.6.5 [Trace] Menu ............................................................................................ 134
8.6.6 [View] Menu.............................................................................................. 135
8.6.7 [Option] Menu .......................................................................................... 135
8.6.8 [Windows] Menu....................................................................................... 135
8.6.9 [Help] Menu ............................................................................................. 135
8.7 Method for Executing Commands............................................................... 136
8.7.1 Entering Commands from Keyboard......................................................... 136
8.7.2 Executing from Menu or Tool Bar............................................................. 138
8.7.3 Executing from a Command File .............................................................. 139
8.7.4 Log File ..................................................................................................... 140
8.8 Debug Functions ......................................................................................... 141
8.8.1 Loading Program and Data Files ............................................................. 141
8.8.2 Source Display and Symbolic Debugging Function ................................. 142
8.8.3 Displaying and Modifying Program, Data, Option Data and Register .... 144
8.8.4 Executing Program ................................................................................... 146
8.8.5 Break Functions ........................................................................................ 149
vi EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CONTENTS
8.8.6 Tr ace Functions......................................................................................... 152
8.8.7 Operation of Flash Memory...................................................................... 155
8.8.8 Coverage ................................................................................................... 156
8.8.9 Writing Data to the FPGA on the Standard Peripheral Circuit Board..... 156
8.9 Command Reference ...................................................................................157
8.9.1 Command List ........................................................................................... 157
8.9.2 Reference for Each Command .................................................................. 158
8.9.3 Program Memory Operation..................................................................... 159
a / as (assemble mnemonic)......................................................... 159
pe (program memory enter)......................................................... 161
pf (program memory fill) ............................................................. 162
pm (program memory move)........................................................ 163
8.9.4 Data Memory Operation........................................................................... 164
dd (data memory dump)............................................................... 164
de (data memory enter) ............................................................... 166
df (data memory fill) .................................................................... 168
dm (data memory move) .............................................................. 169
dw (data memory watch) .............................................................. 170
8.9.5 Command to Display Option Information ................................................ 172
od (option data dump) ................................................................. 172
8.9.6 Register Operation.................................................................................... 174
rd (register display) ..................................................................... 174
rs (register set) ............................................................................. 175
8.9.7 Program Execution ................................................................................... 177
g (go) ......................................................................................... 177
gr (go after reset CPU)................................................................ 179
s (step) ......................................................................................... 180
n (next)......................................................................................... 182
8.9.8 CPU Reset ................................................................................................. 183
rst (reset CPU)............................................................................. 183
8.9.9 Break ......................................................................................................... 184
bp (break point set)...................................................................... 184
bc / bpc (break point clear) ......................................................... 186
bd (data break) ............................................................................ 187
bdc (data break clear) ................................................................. 189
br (register break) ........................................................................ 190
brc (register break clear)............................................................. 192
bs (sequential break) ................................................................... 193
bsc (sequential break clear) ........................................................ 195
bsp (break stack pointer) ............................................................. 196
bl (break point list) ...................................................................... 198
bac (break all clear) .................................................................... 199
8.9.10 Program Display..................................................................................... 200
u (unassemble)............................................................................. 200
sc (source code) ........................................................................... 202
m (mix)......................................................................................... 204
8.9.11 Symbol Information................................................................................. 206
sy (symbol list) ............................................................................. 206
8.9.12 Load File ................................................................................................. 207
lf (load file) .................................................................................. 207
lo (load option) ............................................................................ 208
8.9.13 Flash Memory Operation........................................................................ 209
lfl (load from flash memory)........................................................ 209
sfl (save to flash memory)............................................................ 211
efl (erase flash memory) .............................................................. 213
8.9.14 Trace........................................................................................................ 214
tm (trace mode display/set) ......................................................... 214
td (trace data display) ................................................................. 216
ts (trace search) ........................................................................... 219
tf (trace file) ................................................................................. 221
S5U1C63000A MANUAL EPSON vii (S1C63 FAMILY ASSEMBLER PACKAGE)
CONTENTS
8.9.15 Coverage ................................................................................................. 222
cv (coverage) ............................................................................... 222
cvc (coverage clear) .................................................................... 223
8.9.16 Command File......................................................................................... 224
com (execute command file) ........................................................ 224
cmw (execute command file with wait)........................................ 225
rec (record commands to a file)................................................... 226
8.9.17 log ........................................................................................................... 227
log (log) ....................................................................................... 227
8.9.18 Map Information ..................................................................................... 228
ma (map information).................................................................. 228
8.9.19 Mode Setting ........................................................................................... 229
md (mode) .................................................................................... 229
8.9.20 FPGA Operation ..................................................................................... 232
xfer/xfers (xilinx fpga data erase)................................................ 232
xfwr/xfwrs (xilinx fpga data write) .............................................. 233
xfcp/xfcps (xilinx fpga data compare) ......................................... 234
xdp/xdps (xilinx fpga data dump) ................................................ 235
8.9.21 Quit ......................................................................................................... 236
q (quit) ......................................................................................... 236
8.9.22 Help......................................................................................................... 237
? (help)......................................................................................... 237
8.10 Status/Error/Warning Messages...................................................................238
CHAPTER 9FUNCTION OPTION GENERATOR .............................................................. 240
9.1 Outline of the Function Option Generator winfog...................................... 240
9.2 Input/output Files ........................................................................................ 240
9.3 Using winfog ............................................................................................... 241
9.3.1 Starting Up................................................................................................ 241
9.3.2 Window...................................................................................................... 242
9.3.3 Menus and Toolbar Buttons ...................................................................... 243
9.3.4 Operation Procedure................................................................................. 244
9.4 Error Messages ........................................................................................... 247
9.5 Example Output Files.................................................................................. 248
CHAPTER 10 SEGMENT OPTION GENERATOR .............................................................. 249
10.1 Outline of Segment Option Generator winsog ............................................249
10.2 Input/output Files ........................................................................................249
10.3 Using winsog ............................................................................................... 250
10.3.1 Starting Up.............................................................................................. 250
10.3.2 Window.................................................................................................... 252
10.3.3 Menus and Toolbar Buttons .................................................................... 253
10.3.4 Option Selection Buttons ........................................................................ 254
10.3.5 Operation Procedure ............................................................................... 254
10.4 Error Messages ...........................................................................................260
10.5 Example Output Files..................................................................................261
CHAPTER 11 MELODY ASSEMBLER ............................................................................ 262
11.1 Outline of the Melody Assembler winmla ................................................... 262
11.2 Input/output Files ........................................................................................262
viii EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CONTENTS
11.3 Using winmla ..............................................................................................263
11.3.1 Starting Up.............................................................................................. 263
11.3.2 Window.................................................................................................... 264
11.3.3 Menus and Toolbar Buttons .................................................................... 265
11.3.4 Operation Procedure ............................................................................... 266
11.4 Melody Data................................................................................................ 269
11.4.1 Outline of Melody Data .......................................................................... 269
11.4.2 Melody Data Creation Procedure........................................................... 269
11.4.3 Method of Creating Melody Data ........................................................... 270
11.4.4 Description of Melody Data.................................................................... 271
11.4.5 Precautions ............................................................................................. 274
11.5 Error Messages ...........................................................................................275
11.6 Error Symbols ............................................................................................. 276
11.7 Sample Files ................................................................................................277
CHAPTER 12 MASK DATA CHECKER .......................................................................... 281
12.1 Outline of the Mask Data Checker winmdc ................................................ 281
12.2 Input/Output Files .......................................................................................281
12.3 Using winmdc.............................................................................................. 282
12.3.1 Starting Up.............................................................................................. 282
12.3.2 Menus and Toolbar Buttons .................................................................... 283
12.3.3 Operation Procedure ............................................................................... 284
12.4 Error Messages ...........................................................................................287
12.5 Example Output File ................................................................................... 288
APPENDIX QUICK REFERENCE
S5U1C63000A MANUAL EPSON ix (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 1: GENERAL
CHAPTER 1GENERAL

1.1 Features

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 param­eter 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 MANUAL EPSON 1 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 1: GENERAL

1.2 Tool 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.
2 EPSON S5U1C63000A 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.3 Working 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 MANUAL EPSON 3 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 1: GENERAL

1.4 Installation

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 CD­ROM.

1.5 Directories and Files after Installation

The installer copies the following files in the specified directory (default is "C:\EPSON\S1C63\"):
[EPSON\S1C63]
README_E.TXT ... ReadMe document (English) README_J.TXT ... ReadMe document (Japanese)
[\BIN] ... S1C63 Family Assembler Package Tool
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
[\63xxx] ... Model-dependent files
S1C63xxx.INI ... Device information definition file PAR63xxx.PAR ... Parameter file C63xxx.FSA ... Sample function option HEX file (for ICE configuration) C63xxx.SSA ... Sample segment option HEX file (for ICE configuration)
:
[\WRITER]
[\6xxxx] ( \6Pxxx or \6Fxxx)
[\URW2]
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 :
4 EPSON S5U1C63000A 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 MANUAL EPSON 5 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 2: SOFTWARE DEVELOPMENT PROCEDURE
CHAPTER 2 SOFTW ARE DEVELOPMENT PROCEDURE
This chapter outlines a basic development procedure.

2.1 Software Development Flow

Figure 2.1.1 represents a flow of software development work.
Work Bench
wb63
Make
file.MAK
file
file.S file.MS
or
Assembly
list file(s)
Linker
command file
file.SYMSymbol file
file.MAP file.XRFLink map file
HEX converter
hx63
Intel-HEX format files
fileH.HEX
fileL.HEX
fileC.HEX file.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.par file.ini
Function Option
Generator winfog
file.FSA file.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 in­voked 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.
6 EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 2: SOFTWARE DEVELOPMENT PROCEDURE

2.2 Development 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 MANUAL EPSON 7 (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].
8 EPSON S5U1C63000A 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 MANUAL EPSON 9 (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 double­clicking.
Refer to Chapter 3, "Work Bench", for details of the [Settings] dialog box.
10 EPSON S5U1C63000A 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 MANUAL EPSON 11 (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".
12 EPSON S5U1C63000A 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.1 Features

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.2 Starting 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 MANUAL EPSON 13 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH

3.3 Work Bench Windows

3.3.1 Windo w Configuration

Menu bar Toolbar [Edit] window
[Project] window [Output] window Status 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 win­dow. 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.
14 EPSON S5U1C63000A 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 win­dow 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 double­clicking 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 MANUAL EPSON 15 (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 maxi­mized 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
16 EPSON S5U1C63000A 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 MANUAL EPSON 17 (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.
18 EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH

3.4 Toolbar and Buttons

Tree types of toolbars have been implemented in the work bench: standard toolbar, build toolbar and window tool bar.
Standard toolbar
Build toolbar Window 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 specifica­tion 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 MANUAL EPSON 19 (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.
20 EPSON S5U1C63000A 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 opera­tion 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 MANUAL EPSON 21 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH

3.5 Menus

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.
22 EPSON S5U1C63000A 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 MANUAL EPSON 23 (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.
24 EPSON S5U1C63000A 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] win­dow 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 MANUAL EPSON 25 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH

3.6 Project 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.
26 EPSON S5U1C63000A 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 MANUAL EPSON 27 (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 includ­ing sources, tool settings and window configuration will be saved.
28 EPSON S5U1C63000A 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>.epj Project file
This file contains the project information.
<file>.cm Linker 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
"C:\EPSON\S1C63\DEV\63A08\PAR63A08.PAR" ;ICE parameter file
-o "test.abs" ;output file : absolute object ; linked object file(s)
"sub.o" "main.o"
The contents vary according to the source files included in the project and the linker option setting.
<file>.cmd Debugger startup command file
This file is generated when a build task is started, and is used by the debugger to execute the com­mand in this file when it is started up.
Example:
lf "test.abs"
The work bench generates this file so that the executable file according to the format selection is loaded when the debugger starts up.
<file>.mak "make" file for build task
This file is generated when a build task is started, and is used for the build process in the work bench.
Example:
# S1C WorkBench Generated # Thursday, November 05, 1998
ASM = as63.exe LINK = lk63.exe HEX = hx63.exe ASM_FLG = -g LINK_FLG = -g HEX_FLG =
ALL : test.abs test.abs : test.cm sub.o main.o
$(LINK) $(LINK_FLG) test.cm
sub.o : C:\EPSON\S1C63\Test\sub.s
$(ASM) $(ASM_FLG) C:\EPSON\S1C63\Test\sub.s
main.o : C:\EPSON\S1C63\Test\main.s
$(ASM) $(ASM_FLG) C:\EPSON\S1C63\Test\main.s
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>.o Relocatable object files (generated by the assembler) <file>.abs Absolute object file (generated by the linker) <file>.hsa, <file>.lsa, <file>.csa Motorola S files (generated by the HEX converter when this format
is specified in the work bench)
<file>h.hex, <file>l.hex, <file>c.hex Intel HEX files (generated by the Hex converter when this format
is specified in the work bench)
S5U1C63000A MANUAL EPSON 29 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH

3.7 Source 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.
30 EPSON S5U1C63000A 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 MANUAL EPSON 31 (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.
32 EPSON S5U1C63000A 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 MANUAL EPSON 33 (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.
34 EPSON S5U1C63000A 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 [Out­put] 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 MANUAL EPSON 35 (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.8 Build 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 config­ured.
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
36 EPSON S5U1C63000A 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 MANUAL EPSON 37 (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.
38 EPSON S5U1C63000A 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:
[WinFOG] Function option generator winfog (Chapter 9) [WinSOG] Segment option generator winsog (Chapter 10) [WinMLA] Melody assembler winmla (Chapter 11) [WinMDC] Mask data checker winmdc (Chapter 12)
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 MANUAL EPSON 39 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 3: WORK BENCH

3.9 Tool 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.)
40 EPSON S5U1C63000A 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.s No No No
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".
Source Error file Debug info List file Defines
[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.
Source Error file Debug info List file Defines
[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.
Source BSS CODE DATA
[Default]
Source BSS 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 MANUAL EPSON 41 (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.
Symbol Addr [ ] [ ]
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.
Symbol Addr
TEST 0x0000
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.
42 EPSON S5U1C63000A 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 MANUAL EPSON 43 (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.
44 EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)

3.11 Short-Cut Key List

Key operation Function Ctrl + N Creates a new document Ctrl + O Opens an existing document Ctrl + F12 Opens an existing document Ctrl + S Saves the document Ctrl + P Print the active document Ctrl + Shift + F12 Print the active document Ctrl + Z Undoes the last action Alt + BackSpace Undoes the last action Ctrl + X Cuts the selection and puts it on the clipboard Shift + Delete Cuts the selection and puts it on the clipboard Ctrl + C Copies the selection to the clipboard Ctrl + Insert Copies the selection to the clipboard Ctrl + V Inserts the clipboard contents at the insertion point Shift + Insert Inserts the clipboard contents at the insertion point Ctrl + A Selects the entire document Ctrl + F Finds the specified text F3 Finds next Shift + F3 Finds previous Ctrl + H Replaces the specified text with different text Ctrl + G Moves to the specified location Ctrl + F7 Assembles the file F7 Builds the project Ctrl + Break Stops the build F5 Debugs the project Alt + F7 Edits the project build and debug settings Ctrl + Tab Next MDI Window Short-cut-key Opens the popup menu Shift + F10 Opens the popup menu
CHAPTER 3: WORK BENCH

3.12 Error Messages

The work bench error messages are given below.
Error message Description <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 file The 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 MANUAL EPSON 45 (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.
46 EPSON S5U1C63000A 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.1 Functions

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 com­bined 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 as­semble the preprocessed file to convert the source codes into the machine codes.

4.2 Input/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.o file.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 prepro­cessor instructions.
Object fileRelocatable
source file
to Linker
Fig. 4.2.1 Flow chart
file.err
Error filePreprocessed
S5U1C63000A MANUAL EPSON 47 (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).
48 EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER

4.3 Starting 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.
Example: c:\epson\s1c63\bin\as63 -g -e -l -d TEST1 -d TEST2 test.s
S5U1C63000A MANUAL EPSON 49 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER

4.4 Messages

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:
Usage: as63 [options] <file name> Options: -d <symbol> Add preprocess definition
-e Output error log file (.ERR)
-g Add source debug information in object
-l Output relocatable list file (.LST)
-c Ignore character case of symbols
-o <file name> Specify output file name File name: Source file name (.S or .MS)
When error/warning occurs
If an error is produced, an error message will appear before the end message shows up.
Example:
TEST.S(5) Error: Illegal syntax Assembly 1 error(s) 0 warning(s)
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".
50 EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER

4.5 Grammar 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 composi­tion of a statement is as follows:
Syntax pattern
(1) Mnemonic Operand (;comment) (2) Assembler pseudo-instruction Parameter (;comment) (3) Label: (;comment) (4) ;comment
Example: <Statement> <Syntax Pattern>
#include "define.h" (2)
.set IO1, 0xfff1 (2)
; TEXT SECTION (ROM, 13bit width) (4)
.org 0x100 (2)
NMI: (3)
reti (1) nop (1) nop (1) jr NMI (1)
.org 0x110 (2)
BOOT: (3)
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 MANUAL EPSON 51 (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,0x4 ld %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:
.word 0x0,0x1,0x2,0x3 ... OK .word 0xa,0xb,0xc,0xd ... OK
.word 0x0,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, lower­case (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.
52 EPSON S5U1C63000A 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 pseudo­instructions. 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
jr NMI 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 unavail­able 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: #define SW1 1
.org 0x100 .comm BUF 4
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 MANUAL EPSON 53 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
Types of pseudo-instructions
The following 25 types of pseudo-instructions are available:
#include #define #macro #endm #ifdef #ifndef #else #endif #defnum .abs .align .org .code .data .bss .codeword .word .comm .lcomm .global .set .list .nolist .stabs .stabn
For details of each pseudo-instruction and its functionality, refer to Section 4.7, "Assembler Pseudo­Instructions".
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 param­eters 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: .comm BUF1 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.)
54 EPSON S5U1C63000A 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)
.global SYMBOL ... 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)
.global SYMBOL ... Global declaration of a symbol defined in other source file. call SYMBOL ... 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-instruc­tion. On the contrary, in a file to be referenced, the global declaration is necessary prior to the refer­ence.
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 @L Acquires the lower 8 bits of an absolute address. @h or @H Acquires the upper 8 bits of an absolute address. @rl or @RL Acquires the lower 8 bits of a relative address. @rh or @RH Acquires the upper 8 bits of a relative address. @xh or @XH Acquires 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 calr LABEL@rl ... Functions as "calr LABEL (16-bit)"
ldb %ext,DATA@xh cmp %x,DATA@l ... Functions as "cmp %x, DATA (16-bit)"
.set IO_ADDR 0xff12 ldb %ext,IO_ADDR@l ld %a,[%y] ... Functions as "ld %a, [IO_ADDR]"
S5U1C63000A MANUAL EPSON 55 (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 ex­ceeded, an error will result.
• Only the following characters can be used:
A–Z a–z _ 0–9 ?
• A symbol cannot begin with a numeral.
Examples: ;OK ;Error
FOO: 1lable: L1: L 1: .set IO 0xfff0 .set #IO 0xfff0 .comm BUF 4 .lcomm 1st_BUF 2
• Since symbols are case sensitive by default, uppercase and lowercase are discriminated. When refer­encing 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.
56 EPSON S5U1C63000A 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
Register Notation A Data register A %a, %A, a or A B Data register B %b, %B, b or B BA BA-register pair %ba, %BA, ba or BA X Index register X %x, %X, x or X XH Upper 8 bits of X-register %xh, %XH, xh or XH XL Lower 8 bits of X-register %xl, %XL, xl or XL Y Index register Y %y, %Y, y or Y YH Upper 8 bits of Y-register %yh, %YH, yh or YH YL Lower 8 bits of Y-register %yl, %YL, yl or YL F Flag register F %f, %F, f or F EXT Extension register EXT %ext, %EXT, ext or EXT SP1 Stack pointer SP1 %sp1, %SP1, sp1 or SP1 SP2 Stack 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
Symbol
imm2 2-bit immediate data 0–3 0x0–0x3 0b0–0b11 imm4 4-bit immediate data 0–15 0x0–0xf 0b0–0b1111 imm6 Software vectored interrupt address 0–64 0x0–0x3f 0b0–0b111111 imm8 8-bit immediate data 0–255 0x0–0xff 0b0–0b11111111 n4 4-bit n-ary specified data 1–16 0x1–0x10 0b0–0b10000 sign8 Signed 8-bit immediate data -128–127 0x0–0xff 0b0–0b11111111 add6 6-bit address 0–64 0x0–0x3f 0b0–0b111111
Type Decimal Hexadecimal Binary
S5U1C63000A MANUAL EPSON 57 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
Other numerical notations
The following numerical notations can also be used:
nnnnB: Binary numbers nnnnO: Octal numbers nnnnQ: Octal numbers nnnnH: Hexadecimal numbers
"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 hexadeci­mal numbers.
Types of operators
Arithmetic operators Examples
+ Addition, Plus sign +0xff, 1+2
- Subtraction, Minus sign -1+2, 0xff-0b111
* Multiplication 0xf*5
/ Division 0x123/0x56 % Residue 0x123%0x56 (%% is also be supported.) >> Shifting to right 1>>2 << Shifting to left 0x113<<3 ^H Acquires upper 8 bits 0x1234^H ^L Acquires lower 8 bits 0x1234^L ( ) Parenthesis 1+(1+2*5)
The arithmetic operator returns the result of arithmetic operation on the specified terms.
Logical operators Examples & Bit AND 0b1101&0b111 | Bit OR 0b123|0xff ^ Bit XOR 12^35 ~ Bit inversion ~0x1234
The logical operator returns the result of logic operation on the specified terms.
58 EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
Relational operators Examples
== Equal SW==0 != Not equal SW!=0 < Less than ABC<5 <= Less than or equal ABC<=5 > Greater than ABC>5 >= Greater than or equal ABC>=5 && AND ABC&&0xf || OR ABC||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.
1. ( ) High priority
2. + (plus sign), - (minus sign), ~
3. ^H, ^L
4. *, /, % (%%)
5. + (addition), - (subtraction)
6. <<, >>
7. ==, !=, <, <=, >, >=
8. &
9. ^
10. |
11. &&
12. || Low priority
Examples
#defnum BLK_HEADER_SIZE 4 #defnum BLK_START 0x30+BLK_HEADER_SIZE*2 #defnum BLK_END BLK_START+4*2
#macro ADD_X ADDR
ldb %ext,(ADDR*2)^H ... Can be used in macros. add %x,(ADDR*2)^L
#endm
ldb %ext,BLK_START^H ; %x=BLK_START ldb %xl, BLK_START^L ld [%x],0b11&0x110 ldb %ext, ~BLK_END^H ; cmp %x, BLK_END cmp %x, BLK_END^L ADD_X (0x1200+0x34)*2 ; %x+=0x1234*2
S5U1C63000A MANUAL EPSON 59 (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 in­tended 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 expan­sion.
Optimization Branch Instruction Mnemonic after Expansion
xjr LABEL jr LABEL xjrc LABEL jrc LABEL xjrnc LABEL jrnc LABEL xjrz LABEL jrz LABEL xjrnz LABEL jrnz LABEL xcalr LABEL calr LABEL
60 EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER

4.6 Section Management

4.6.1 Definition of Sections

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 sec­tions in correspondence with the memories:
1. CODE section Area located within a code ROM.
2. DATA section Area located within a data ROM.
3. BSS section Denotes a RAM area.
To allow to specify these sections in a source file, the assembler comes provided with pseudo-instruc­tions.
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 MANUAL EPSON 61 (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 assem­bly 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
62 EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER

4.7 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 character "#" or ".". The instructions that begin with "#" are preprocessed pseudo-instructions and they are ex­panded 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-instruction Function #include Includes another source. #define Defines a constant string. #defnum Defines a constant number. (∗1) #macro–#endm Defines a macro. #ifdef–#else–#endif Defines an assemble condition. #ifndef–#else–#endif Defines an assemble condition. .abs Specifies absolute assembling. (1) .align Sets alignment of a section. .org Sets an absolute address. .code Declares a CODE section (mapping to the built-in code ROM). .data Declares a DATA section (mapping to the built-in data ROM). .bss Declares a BSS section (mapping to the built-in RAM). .codeword Defines data in the CODE section. .word Defines data in the DATA section. .comm Secures a global area in the BSS section. .lcomm Secures a local area in the BSS section. .global Defines an external reference symbol. .set Defines an absolute address symbol. .list Controls assembly list output. .nolist Controls assembly list output. .stabs Debugging information (source name). .stabn Debugging information (line number).
1: Maintained only for compatibility with the older assembler.
S5U1C63000A MANUAL EPSON 63 (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>".
Sample descriptions:
#include "sample.def" #include "c:\EPSON\S1C63\header\common.h"
Expansion rule
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.
64 EPSON S5U1C63000A 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:
#define TYPE1 #define L1 LABEL_01 #define Xreg %x
#define CONST (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_F1 0xfff0 #define INT_F1_1 0
: set [INT_F1], INT_F1_1 ... Expanded to "set [0xfff0],0". :
S5U1C63000A MANUAL EPSON 65 (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:
#define XL %xl #define Xlow 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:
#define INT_F 0xfff
tst [INT_F1],0 ;tst [0xfff1],0? ... Specification like this is invalid.
#define L 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:
#define NUM1 1+1
ld %a,NUM1*2 ... Expanded as "ld %a, 1+1*2" (=3).
#define NUM2 (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.
66 EPSON S5U1C63000A 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 MANUAL EPSON 67 (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.
Instruction format
#macro <Macro name> [<Dummy parameter>] [,<Dummy parameter>] ...
<Statement string>
#endm
<Macro 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. (#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.
<Statement string>:
• The following statements can be described:
- Basic instruction (mnemonic and operand)
- Conditional assembly instruction
- Internal branch label*
- Comments
• The following statements cannot be described:
- Assembler pseudo-instructions (excluding conditional assembly instruction)
- Other labels than internal branch labels
- Macro invocation
Internal branch label
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_RESET 0b1101 #macro WAIT COUNT
ld %a,COUNT and %f,C_RESET
LOOP:
nop jr LOOP
#endm
68 EPSON S5U1C63000A 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 MANUAL EPSON 69 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.7.5 Conditional Assembly Instructions (#ifdef ... #else ... #endif, #ifndef ... #else ... #endif)
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:
#ifdef TYPE1
ld %x,0x12
#else
ld %x,0x13
#endif #ifndef SMALL
#define STACK1 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.
70 EPSON S5U1C63000A 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 MANUAL EPSON 71 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER

4.7.6 Section Defining Pseudo-Instructions (.code, .data, .bss)

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-instruc­tion 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 com­ments 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-instruc­tion or more loosely with the .align pseudo-instruction.
72 EPSON S5U1C63000A 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 MANUAL EPSON 73 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
4.7.7 Location Defining Pseudo-Instructions (.org, .align)
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 .org 0x0100
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.
:
74 EPSON S5U1C63000A 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 MANUAL EPSON 75 (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
: previous ".align" pseudo-instruction.
76 EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER

4.7.8 Absolute Assembling Pseudo-Instruction (.abs)

Instruction format
.abs
Function
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 MANUAL EPSON 77 (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:
.set DATA1 0x20 .set STACK1 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
78 EPSON S5U1C63000A 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 .codeword 0xa,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 .word 0xa,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 MANUAL EPSON 79 (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 .comm RAM0 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.
80 EPSON S5U1C63000A 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 refer­ence, 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)

Instruction formats
(1) .stabs "<File name>", FileName (2) .stabn 0, FileEnd (3) .stabn <Line number>, LineInfo
Function
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 MANUAL EPSON 81 (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 as­sembled, 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 accompa­nied by a comment, that comment is also added. A macro definition should have a semicolon (;) placed at top of the line.
Example:
Before expansion
#define Areg %a
#macro ADDX2Y VALUE
ld Areg, VALUE add Areg, [%x] ld [%y], Areg
#endm
ADDX2Y 10h ; MX + 10h -> MY
After expansion (no debugging information)
;#define Areg %a
;#macro ADDX2Y VALUE ; ld Areg, VALUE ; add Areg, [%x] ; ld [%y], Areg ;#endm
;ADDX2Y 10h ; MX + 10h -> MY ld %a, 0x10 add %a, [%x] ld [%y], %a

4.7.16 Priority of Pseudo-Instructions

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.
82 EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER

4.8 Relocatable 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: ;
25: 26: .org 0x110 27: BOOT: 28: 0110 0900 ldb %ba,SP1_INIT_ADDR 29: 0111 1fc4 ldb %sp1,%ba ; set SP1 30: 0112 0900 ldb %ba,SP2_INIT_ADDR 31: 0113 1fc6 ldb %sp2,%ba ; set SP2 32: 0114 0200 calr INIT_RAM_BLK1 ; initialize RAM block 1 33: LOOP: 34: 0115 0200 calr INC_RAM_BLK1 ; increment RAM block 1 35: 0116 0000 jr LOOP ; infinity loop 36: 37: 38: ;***** RAM block ***** 39: 40: .org 0x0 41: .bss 42: 0000 00 .comm RAM_BLK0, 4 43: 0004 00 .comm RAM_BLK1, 4
:
Content of line No.
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 MANUAL EPSON 83 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER

4.9 Sample 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
84 EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
Preprocessed file
.stabs "C:\EPSON\S1C63\Test\main.s", FileName ; 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: .stabn 23, LineInfo
calr INIT_RAM_BLK1 ; initialize RAM block 1 .stabn 24, LineInfo
reti ; in NMI(watchdog timer)
.org 0x110 BOOT: .stabn 28, LineInfo
ldb %ba,SP1_INIT_ADDR .stabn 29, LineInfo
ldb %sp1,%ba ; set SP1 .stabn 30, LineInfo
ldb %ba,SP2_INIT_ADDR .stabn 31, LineInfo
ldb %sp2,%ba ; set SP2 .stabn 32, LineInfo
calr INIT_RAM_BLK1 ; initialize RAM block 1 LOOP: .stabn 34, LineInfo
calr INC_RAM_BLK1 ; increment RAM block 1 .stabn 35, LineInfo
jr LOOP ; infinity loop
CHAPTER 4: ASSEMBLER
;***** RAM block *****
.org 0x0
.bss
.comm RAM_BLK0, 4
.comm RAM_BLK1, 4 .stabn 0, FileEnd
S5U1C63000A MANUAL EPSON 85 (S1C63 FAMILY ASSEMBLER PACKAGE)
CHAPTER 4: ASSEMBLER
Assembly list file
Assembler 63 ver x.xx Relocatable List File MAIN.LST Mon Jan 15 12:40:41 2001
1: ; main.s 2: ; ASM63 test program (main routine) 3: ; 4: 5: ;***** INITIAL SP1 & SP2 ADDRESS DEFINITION ***** 6: 7: #ifdef SMALL_RAM 8: .set SP1_INIT_ADDR 0xb ;SP1 init addr = 0x2c 9: #else 10: .set SP1_INIT_ADDR 0x4b ;SP1 init addr = 0x12c 11: #endif 12: 13: .set SP2_INIT_ADDR 0x1f ;SP2 init addr = 0x1f 14: 15: 16: ;***** NMI & BOOT, LOOP ***** 17: 18: .global INIT_RAM_BLK1 ; subroutine in sub.s 19: .global INC_RAM_BLK1 ; subroutine in sub.s 20: 21: .org 0x100 22: NMI: 23: 0100 0200 calr INIT_RAM_BLK1 ; initialize RAM block 1 24: 0101 1ff9 reti ; in NMI(watchdog timer) 25: 26: .org 0x110 27: BOOT: 28: 0110 0900 ldb %ba,SP1_INIT_ADDR 29: 0111 1fc4 ldb %sp1,%ba ; set SP1 30: 0112 0900 ldb %ba,SP2_INIT_ADDR 31: 0113 1fc6 ldb %sp2,%ba ; set SP2 32: 0114 0200 calr INIT_RAM_BLK1 ; initialize RAM block 1 33: LOOP: 34: 0115 0200 calr INC_RAM_BLK1 ; increment RAM block 1 35: 0116 0000 jr LOOP ; infinity loop 36: 37: 38: ;***** RAM block ***** 39: 40: .org 0x0 41: .bss 42: 0000 00 .comm RAM_BLK0, 4 43: 0004 00 .comm RAM_BLK1, 4
Error file
Assembler 63 Ver x.xx Error log file MAIN.ERR Mon Jan 15 12:40:41 2001
Assembler 63 Ver x.xx Copyright (C) SEIKO EPSON CORP. 1998-2001
Created preprocessed source file MAIN.MS Created relocatable list file MAIN.LST Created error log file MAIN.ERR Created relocatable object file MAIN.O
Assembly 0 error(s) 0 warning(s)
86 EPSON S5U1C63000A MANUAL
(S1C63 FAMILY ASSEMBLER PACKAGE)
Loading...