ALPHANUMERIC WORD DEFINITIONS
ud u - ut
Multiplies an unsigned double number ud (32-bit) by an unsigned single number u (16-bit) to form an unsigned triple number ut (48-bit). See T/ D*/ U*/ D*S D/S D/ .
ut u - ud
Divides an unsigned triple number ut (48-bit) by an unsigned single number u (16-bit) to form an unsigned double number ud (32-bit). See also D*/ U*/ T* D*S D/S D/ .
Assembler word. Transfer accumulator A to B.
Assembler word. Transfer accumulator A to the condition code register. Bit 0 = carry, bit 1 = overflow, bit 2 = zero, bit 3 = negative, bit 4 = interrupt, bit 5 = half carry.
A user variable needed by TBAUD , but not normally useful otherwise. See library program _SERIAL2.TDS.
Assembler word. Transfer accumulator B to A.
Sets the transmit baud rate for the second serial port, available on pins SIN2 and SOUT2. It is independent of the receive baud rate. E.g.
1200 RBAUD 75 TBAUD
to set Prestel rates. Non-standard baud rates can be set. See also *EMIT *(KEY) *?TERMINAL RBAUD .
Blanks pad, then moves text, up to the delimiter c, to the pad. See PAD .
addr n -
COMPILING: At compile-time THEN computes the forward branch offset from addr to HERE and stores it at addr. n is used for error testing.
EXECUTING: At run-time THEN is the destination of a forward branch from IF or ELSE . It marks the conclusion of the conditional structure. A synonym is ENDIF .
Assembler word. Used in an IF, . ELSE, . THEN, structure. See IF, . It uses addr left by IF, to fix up the branch instruction assembled at IF, or at ELSE, .
A user variable containing the start of the text input buffer.
A user variable forming part of the on-board clock. At power-up the 16-bit timer Overflow Interrupt is configured to increment address addr 1125 times per minute. On the minute it is zeroed and the MINS system variable is incremented. After 1440 minutes (60 x 24) the DAYS variable is incremented. Words like .TIME (display current time) take their input from these three system variables.
addr imm -
Assembler word. Logically AND immediate data with the content of a memory location but don't store the result, just set the condition codes. E.g.
$8000 8 ## TIM,
will set the Z flag if bit 3 of the address hex 8000 is zero.
addr b -
Exclusive or the content of address addr with the byte b.
- 080C (hex)
Gives address of jump table entry for Timer 1 Overflow Interrupt. Usually used before ASSIGN which places at this address a jump to the interrupt code. At power-up or COLD the default is a jump to the in-built clock service routine and the Timer 1 Overflow Interrupt is enabled. To disable it clear bit 2 of Timer Control/Status register 1 at address 08.
Assembler word. Transfer the condition code register to accumulator A. Bit 0 = carry, bit 1 = overflow, bit 2 = zero, bit 3 = negative, bit 4 = interrupt, bit 5 = half carry.
- 0806 (hex)
Gives address of jump table entry for Trap function. Usually used before ASSIGN which places at this address a jump to the trap code. At power-up or COLD a jump is placed here to the in-built trap routine which places CRASHED MACHINE on the terminal. E.g. to print 'Electrical Spike' and then re-enter an infinite loop WORK :
: TRAPPED RP!
TRAP ASSIGN TRAPPED
The trap interrupt occurs when the micro-processor fetches an undefined op-code or an instruction fetch is made in the address area 00 to 27 (hex). Faults such as spikes may cause it, or bad Forth like R> R> with no balancing >R equivalents.
addr1 n - addr2
Move across the name field. addr1 is the address of either the length byte or the last letter. If n=1 the motion is toward high memory from length byte to the last letter. If n=-1 it is in the other direction. The addr2 resulting is the address of the other end of the name.
Display the three editor screens which include that numbered scr, beginning with a screen evenly divisible by three. The output is suitable for source text records.
Assembler word. Subtract zero from memory or accumulators A or B in order to set condition code flags. E.g.
sets the condition code flags depending on the content of address hex 9000.
Assembler word. Transfer a value one more than the stack pointer into the X register.
Assembler word. Transfer a value one less than the content of the X register into the stack pointer.
addr count -
Transmit count number of characters (all 8 bits) from memory starting at addr to the selected output device (by default at power-up Serial Port 1). n is 1 to 32767.
u1 u2 - ud
Multiply u1 by u2 giving the 32-bit double number product ud. All values and arithmetic are unsigned. This is the fastest Forth multiply on the TDS9092 from which other operators are derived.
ud1 u1 u2 - ud2
Multiply the unsigned double number ud1 (32 bits) by the unsigned single number u1 (16 bits) and then divide by the unsigned single number u2 (16 bits). An intermediate product of 48 bits is used for accuracy. Use to scale double unsigned numbers, since ud2=ud1* u1/u2 . See also D*/ T* T/ D/S D*S D/ .
Display an unsigned 16-bit number u converted according to the current value of BASE . A trailing blank follows.
u n -
Display an unsigned number u right aligned in a field whose width is n. No following space is displayed. Particularly useful for putting numbers on an LCD after re-vectoring EMIT to point to LCDEMIT .
ud u1 - u2 u3
Divide 32-bit double number ud by 16-bit u1 to give quotient u3 and remainder u2. All values and arithmetic are unsigned. This is the fastest Forth divide on the TDS9092 from which other operators are derived.
u1 u2 - f
Leave f=1 if u1 is less than u2, otherwise f=0.
addr n -
COMPILING: At compile-time UNTIL compiles 0BRANCH and an offset from HERE to addr. n is used for error testing.
EXECUTING: At run-time UNTIL controls the conditional branch back to the corresponding BEGIN . If f is false (0), execution returns to just after BEGIN ; if true (non-zero), execution continues ahead.
Assembler word. Used in the structure: BEGIN, . xx UNTIL, The xx is one of seven condition codes, see IF, . It can be followed by NOT, to complement the condition. E.g.
CODE 8* 3 ## LDX, PULD,
BEGIN, ASLD, DEX, EQ UNTIL,
The word 8* will multiply the top of the stack by 8 using 3 16-bit left shifts.
Moves the terminal cursor up one position. If this does not work see HOME .
Marks the most recently referenced block (pointed to by PREV ) as altered. The block will subsequently be transferred automatically to mass memory should its buffer be required for storage of a different block.
A variable containing the address of the buffer to use next, as the least recently written.
SYNTAX: n USER cccc
A defining word which creates a user variable cccc . The parameter field of cccc contains n as a fixed offset relative to the start of the user area. When cccc is later executed it places the sum of its offset and the user area base address on the stack as the storage address of that particular variable.
- 3E (hex)
Assembler word. The address returned contains the address of the base of the current user area.