13.02.2013 Views

The Signetics 2650 - The MESSUI Place

The Signetics 2650 - The MESSUI Place

The Signetics 2650 - The MESSUI Place

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CP1002 "PIPLA" ROM<br />

loaded). As before sp means a space,<br />

and cr means a carriage return.<br />

<strong>The</strong> parameter A is used to specify<br />

the dumping format. <strong>The</strong>re are three<br />

formats allowed; you can either dump<br />

all 8 bits of each memory byte, only the<br />

least significant 4 bits of each, or only<br />

the most significant 4 bits. <strong>The</strong> three<br />

modes correspond to the following<br />

values for parameter A:<br />

0 -- all 8 bits dumped<br />

1 — only the least significant 4 bits<br />

2 — only the most significant 4 bits<br />

If options 1 or 2 are specified, the<br />

four bits of data are right justified and<br />

the upper four bits are dumped as<br />

zeroes.<br />

<strong>The</strong> remaining command functions<br />

provided by PIPBUG2 are virtually<br />

identical to those of the, original<br />

PIPBUG. Hence there is the "A" command<br />

to examine and alter memory,<br />

the "L" command to load from cassette<br />

or paper tape, the "D" command to<br />

dump to cassette or paper tape, the "S"<br />

command to see and set the registers,<br />

the "B" command to set a breakpoint,<br />

the "C" command to clear a breakpoint<br />

and the "G" command to transfer command<br />

to a user program. <strong>The</strong>se are all<br />

used in exactly the same manner as<br />

those of the original PIPBUG.<br />

As with the first version of PIPBUG,<br />

there are a number of utility subroutines<br />

in PIPBUG2 which may be called<br />

by user programs. <strong>The</strong> most useful<br />

of these are described in Table 2. Note<br />

that as mentioned earlier, some of<br />

these sub-routines are significantly<br />

different from those in the original<br />

PIPBUG when it comes to use of<br />

registers, etc.<br />

<strong>The</strong> PIPLA line assembler starts at hex<br />

0400. As mentioned earlier it gives no<br />

initial identifying message and assumes<br />

a starting origin of OCOO for the<br />

program to be assembled. So when you<br />

call it, the response is simply<br />

°COO.<br />

Apart from this, its operation is very<br />

similar to that of the modified<br />

assembler I described in the April 1979<br />

issue. You can change the origin as<br />

desired with an ORG directive, store a<br />

string of ASCII characters with an ASCI<br />

directive, and return to PIPBUG2 with<br />

an END directive. <strong>The</strong> only directive<br />

not available is the DATA directive.<br />

<strong>The</strong>re is only one other point to<br />

remember. <strong>The</strong> input buffer used by<br />

PIPLA is only 24 characters long, compared<br />

with the buffer of about 60<br />

characters used by the modified<br />

assembler. So you cannot have a long<br />

string in an ASCI directive, nor can you<br />

fa in comments after the operand field<br />

of an instruction line. But you can still<br />

have normal comment lines (identified<br />

by an asterisk as the first character), as<br />

long as they are shorter than 24<br />

characters.<br />

TABLE 2: User-accessible subroutines In PIPBUG2<br />

LABEL FUNCTION CALL BY<br />

CHIN<br />

COUT<br />

.....<br />

Inputs a character to RO from<br />

the serial terminal<br />

Outputs a character from RO to<br />

the serial terminal<br />

BIN Reads two hex chars from the<br />

terminal, forms byte in R1<br />

BOUT<br />

Prints the byte in R1 as a two-digit hex<br />

number (Data in RO is destroyed)<br />

LKUP Converts a hex char in RO into<br />

a 4-bit number (returned in RO also)<br />

GNUM Fetches a 4-digit number from<br />

the input buffer, stores in R1 and R2<br />

STRT Stores R1, R2 into 80D, 80E<br />

INCRT Increments contents of 80D, 80E<br />

CRLF Sends CR, LF to terminal<br />

CHNG Converts the byte in RO into two<br />

hex chars returned in R1, R2<br />

FORM Outputs 3 spaces to terminal<br />

GAP Output 50 spaces to terminal<br />

....i<br />

...<br />

ZBSR *0009<br />

(BB 89)<br />

ZBSR *0007<br />

(BB 87)<br />

ZBSR *000D<br />

(BB 8D)<br />

ZBSR *000B<br />

(BB 8B)<br />

ZBSR 0026<br />

(BB 26)<br />

ZBSR *000F<br />

(BB 8F)<br />

ZBSR 0021<br />

(BB 21)<br />

ZBSR 0017<br />

(BB 17)<br />

BSTA, UN 01A9<br />

(3F 01 A9)<br />

BSTA, UN 028D<br />

(3F 02 8D)<br />

BSTA,,UN 0360<br />

(3F 03 60)<br />

BSTA, UN 0364<br />

(3F 03 64)<br />

ELECTRONICS Australia, October, 1979 77<br />

,<br />

,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!