Table of Contents

SOURCE CODE CONVENTIONS

As you read Microware documentation and source code, you will run across their source code conventions.

The Microware conventions are a set of short prefixes to function labels and data symbol names.

They may have been inspired by working with Motorola and the 68000 CPU conventions which suffix data with .B for byte, .W for word, or .L for long.

I have not seen any documentation which spells them out directly as a master reference.

The best reference for these are within OS-9 itself in the definition files included with OS-9 itself.

For OS-9 V01.00.00 these are in DEFS/:

Skim these DEFS files at least once to get a feel for the types and usage.

PREFIXES

Below is a table of the many prefixes and what I have found or guessed them to mean.

Prefix Description
A. addresses
C$ character data
D$ Device Driver Entry Offsets
D. Direct Page data
DD. Device Descriptor data
DT. Device Type data
DIR. Directory Entry data
E$ errors
F$ Function calls
F. Function data
FD. File Descriptor data
FM File Manager data
FDSL File Descriptor Segment List data
H. XOFF
I$ Input/Output (I/O) functions
M$ Module and Memory
P$ Process Descriptors
PD. Path Descriptor data
PE. Path Extension data
Q$ IRQ Polling Table
R$ Registers (MPU)
S$ Signals
S. System data
SS. System Status data (GetStat/PutStat)
V$ Device table
V. Device Static Storage Offsets

MASKS

Bit masks are shown as binary strings, such as %10110110

Bit strings are not used directly in the source code.

Instead they are assigned to Mask* equates to label them.

Then the labels are used in the function code for clarity.

IMMMEDIATES

Like bitmasks, immediate values are assigned a label through an equate or set.

Then the label is used in place of raw values without context in the code.

IMPROVEMENTS

If you know of additional conventions or official Microware references, please let the OS-9 community know on the CoCo Discord in the #os-9 channel.

RTS

Return to OS-9 or Top