Operator

From C64-Wiki
Jump to navigationJump to search

An operator is a type of mathematical function. It represents an action upon an input, in order to deliver an output. The input consists of operands, and the relationship between the operator and operand is known as an operation. In computer programming, there are many operators that allow the manipulation of data in terms of quantity, structure, space and change.

Common C64 Operators[edit | edit source]

In its default state, the C64 allows a programmer access to the high-level language BASIC through the BASIC ROM interpreter. Similarly by use of a machine language monitor, the programmer can access a low-level assembly language. Although there are other languages available to the C64 programmer, the following operators will be referred to only in terms of BASIC and assembly language. The notation (position in the operation) of the operator is critical: in the following tables, prefix means the operator is placed before the operand and infix means the operator is placed between operands. Naturally all opcodes in assembly language are placed prefix, however they are included for completeness and comparison.

Arithmetic Operators[edit | edit source]

Arithmetic operations return a numerical output.

Name BASIC Assembly Language
Symbol/Mnemonic Notation Symbol/Mnemonic Notation
Add + Infix ADC Prefix
Subtract - Infix SBC Prefix
Decrement DEC, DEX, DEY Prefix
Increment INC, INX, INY Prefix
Multiply * Infix
Divide / Infix
Exponent ^ Infix
Logarithm LOG Prefix
Square Root SQR Prefix

Boolean Operators[edit | edit source]

Boolean operations return a logical output.

Name BASIC Assembly Language
Symbol/Mnemonic Notation Symbol/Mnemonic Notation
And AND Infix
Or OR Infix
Not NOT Infix
Exclusive Or EOR Prefix

Assignment Operators[edit | edit source]

Assignment operations return a replicated output.

Name BASIC Assembly Language
Symbol/Mnemonic Notation Symbol/Mnemonic Notation
Load LDA, LDY, LDX Prefix
Store STA, STY, STX Prefix
Transfer TAX, TAY, TXS, TXA, TYA, TSX Prefix
Push PHA, PHP Prefix
Pull PLA, PLP Prefix
Equal = Infix

Relational Operators[edit | edit source]

Relational operations return an associative output.

Name BASIC Assembly Language
Symbol/Mnemonic Notation Symbol/Mnemonic Notation
Lesser Than < Infix
Greater Than > Infix
Not Equal To <> Infix
Lesser Than Or Equal To <=, =< Infix
Greater Than Or Equal To >=, => Infix
Compare CMP, CPX, CPY Prefix

Trigonometric Operators[edit | edit source]

Trigonometric operations return a numerical output.

Name BASIC Assembly Language
Symbol/Mnemonic Notation Symbol/Mnemonic Notation
Sine SIN Prefix
Cosine COS Prefix
Tangent TAN Prefix

Code Examples[edit | edit source]

BASIC

10 A=2 : B=0
20 IF ( A>0 OR B=1 ) AND A=1 THEN C=1
30 PRINT A, B, C
RUN
 2      0      0

C is 0, although A > 0, but A isn't 1.
If no bracket is in line 20, the logic change and also the result: C is 1, cause A > 0, but if hasn't A=1, it is equal which value has B.