💾 Archived View for mirrors.apple2.org.za › archive › ground.icaen.uiowa.edu › Collections › 1WSW › … captured on 2023-01-29 at 08:58:17.

View Raw

More Information

-=-=-=-=-=-=-

<HTML>

<HEAD>
	<TITLE>Apple II Programming Info.</TITLE>
	<META NAME="GENERATOR" CONTENT="Visual Page">
</HEAD>

<BODY>

<P><FONT SIZE="7"><B>Programming Info.</FONT></B><BR>

<HR>
<BR>
<BR>
<BR>
DOS 3.3 COMMANDS<BR>
APPEND    CATALOG   EXEC      INT       MON       PR#       SAVE<BR>
BLOAD     CHAIN     FP        LOAD      NOMON     READ      UNLOCK<BR>
BRUN      CLOSE     IN#       LOCK      OPEN      RENAME    WRITE<BR>
BSAVE     DELETE    INIT      MAXFILES  POSITION  RUN       VERIFY<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
APPLESOFT BASIC RESERVED WORDS<BR>
ABS       DEL       HCOLOR=   LEFT$     ON        REM       SIN       TRACE<BR>
AND       DIM       HGR       LEN       ONERR     RESTORE   SPC(      USR<BR>
ASC       DRAW      HGR2      LET       OR        RESUME    SPEED=    VAL<BR>
AT        END       HIMEM:    LIST      PDL       RETURN    SQR       VLIN<BR>
ATN       EXP       HLIN      LOAD      PEEK      RIGHT$    STEP      VTAB<BR>
CALL      FLASH     HOME      LOG       PLOT      RND       STOP      WAIT<BR>
CHR$      FN        HPLOT     LOMEM:    POKE      ROT=      STORE     XPLOT<BR>
CLEAR     FOR       HTAB      MID$      POP       RUN       STR$      XDRAW<BR>
COLOR=    FRE       IF        NEW       POS       SAVE      TAB(      &amp;<BR>
CONT      GET       IN#       NEXT      PRINT     SCALE=    TAN       ?<BR>
COS       GOSUB     INPUT     NORMAL    PR#       SCRN(     TEXT<BR>
DATA      GOTO      INT       NOT       READ      SGN       THEN<BR>
DEF       GR        INVERSE   NOTRACE   RECALL    SHLOAD    TO<BR>
<BR>
<BR>
INTEGER BASIC RESERVED WORDS<BR>
ABS       CON       GOTO      LET       NOTRACE   PRINT     SGN       VTAB<BR>
AND       DEL       GR        LIST      ON        PR#       STEP      XPLOT<BR>
ASC       DIM       HLIN      LOAD      OR        REM       TAB(      &amp;<BR>
AT        DSP       TAB(      MAN       PDL       RETURN    TEXT      ?<BR>
AUTO      END       IF        MOD       PEEK      RND       THEN<BR>
CALL      FOR       IN#       NEW       PLOT      RUN       TO<BR>
CLR       FP        INPUT     NEXT      POKE      SAVE      TRACE<BR>
COLOR=    GOSUB     LEN       NOT       POP       SCRN(     VLIN<BR>
<BR>
<BR>
EQUIVALENT INTEGER BASIC COMMANDS<BR>
               INTEGER BASIC<BR>
APPLESOFT       EQUIVALENT<BR>
CLEAR..........CLR<BR>
CONT...........CON<BR>
HTAB...........TAB<BR>
HOME...........CALL -936<BR>
FLASH..........POKE 50,63<BR>
INVERSE........POKE 50,127<BR>
NORMAL.........POKE 50,255<BR>
&lt;&gt;.............#<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
SYMBOLS<BR>
SYMBOL<BR>
\/ WHAT IT STANDS FOR<BR>
]  Applesoft BASIC prompt                    $  hex number prefix<BR>
&gt;  Integer BASIC prompt                      @  octal number prefix<BR>

!  mini-assembler prompt                     #  immediate addressing<BR>
?  usual INPUT prompt in a BASIC program     () indirect addressing<BR>
&amp;  ampersand                                 .  assembler directive<BR>
^  exponentiation<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
SOFT SWITCHES<BR>
POKE (-16304,0) 49232,0 Graphics<BR>
POKE (-16303,0) 49233,0 Text<BR>
<BR>
POKE (-16302,0) 49234,0 Full Screen Graphics<BR>
POKE (-16301,0) 49235,0 Split Screen Text/Graphics<BR>
<BR>
POKE (-16300,0) 49236,0 Page One<BR>
POKE (-16299,0) 49237,0 Page Two<BR>
<BR>
POKE (-16298,0) 49238,0 Lo-Res<BR>
POKE (-16297,0) 49239,0 Hi-Res<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
<BR>
CURSOR CALLS<BR>
   CALL      OTHER EQUIV.  EXPLANATION<BR>
-&gt; CALL -1036..............Moves cursor RIGHT<BR>
&lt;- CALL -1008..............Moves cursor LEFT<BR>
/\ CALL -998...............Moves cursor UP<BR>
\/ CALL -922...............Moves cursor DOWN<BR>
\/ CALL -926...CALL -626...Performs a carriage return<BR>
   CALL -912...............Scrolls current text screen up one row<BR>
   CALL -936.....ESC @.....HOMEs the cursor<BR>
-&gt; CALL -868.....ESC E.....Clears text line from cursor to right<BR>
\/ CALL -958.....ESC F.....Clears text from cursor position to bottom of screen<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
HI-RES COLORS             LO-RES AND DOUBLE HI-RES COLORS<BR>
0 Black 1  4 Black 2 | 0 Black      4 Dark Green   8  Brown   12 Bright Green<BR>
1 Green    5 Orange  | 1 Magenta    5 Grey 1       9  Orange  13 Yellow<BR>
2 Violet   6 Blue    | 2 Dark Blue  6 Medium Blue  10 Grey 2  14 Aqua<BR>
3 White 1  7 White 2 | 3 Violet     7 Light Blue   11 Pink    15 White<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
ONERR ERROR CODES<BR>
DOS 3.3                   ProDOS                  BASIC<BR>
1  Language Not Available 2  Range Error          0   ?Next Without For<BR>
2  Range Error            3  No Device Connected  16  ?Syntax Error<BR>
3  Range Error            4  Write-Protected      22  ?Return Without Gosub<BR>
4  Write-Protected        5  End of Data          42  ?Out of Data<BR>
5  End of Data            6  Path Not Found       53  ?Illegal Quantity<BR>
6  File Not Found         8  I/O Error            69  ?Overflow<BR>
7  Volume Mismatch        9  Disk Full            77  ?Out of Memory<BR>
8  I/O Error              10 File Locked          90  ?Undef'd Statement<BR>
9  Disk Full              11 Invalid Parameter    107 ?Bad Subscript<BR>
10 File Locked            12 No Buffers Available 120 ?Redim'd Array<BR>
11 Syntax Error           13 File Type Mismatch   133 ?Division by Zero<BR>
12 No Buffers Available   14 Program Too Large    163 ?Type Mismatch<BR>
13 File Type Mismatch     15 Not Direct Command   176 ?String Too Long<BR>
14 Program Too Large      16 Syntax Error         191 ?Formula Too Complex<BR>
15 Not Direct Command     17 Directory Full       224 ?Undef'd Function<BR>
                          18 File Not Open        254 ?Reenter<BR>
                          19 Duplicate File Name  255 (&lt;Control-C&gt; interrupt)<BR>
                          20 File Busy<BR>
                          21 File(s) Still Open<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
APPLE MAIN MEMORY ALLOCATION<BR>
<BR>
BLOCK OF MEMORY                     POSITIVE     NEGATIVE ADDRESS  HEXADECIMAL<BR>
Zero Page RAM.......................0-255..........................$0000.00FF<BR>
System Stack........................256-511........................$0100.02FF<BR>
Keyboard Input Buffer...............512-76.........................$0200.02FF<BR>
Monitor Variables/Vectors...........768-1023.......................$0300.03FF<BR>
Text/Lo-Res Page 1..................1024-2047......................$0400.07FF<BR>
Text/Lo-Res Page 2..................2048-3071......................$0800.0BFF<BR>
User RAM............................3072-8191......................$0C00.1FFF<BR>
Hi-Res Page 1.......................8192-16383...-57344 to -49153..$2000.3FFF<BR>
Hi-Res Page 2.......................16384-24575..-49152 to -40961..$4000.5FFF<BR>
User RAM............................24576-38400..-40960 to -27137..$6000.95FF<BR>
DOS.................................38400-44151..-27136 to -16385..$9600.BFFF<BR>
   DOS file buffers (Maxfiles = 3)..38400-40191..-27136 to -25345..$9600.9CFF<BR>
   Main DOS routines................40192-43772..-25344 to -21764..$9D00.AAFC<BR>
   File Manager.....................43773-47028..-21763 to -18508..$AAFD.B7B4<BR>
   RWTS.............................47029-44151..-18507 to -16385..$B7B5.BFFF<BR>
Input/Output Peripheral Cards.......49152-53247..-16384 to -12289..$C000.CFFF<BR>
   Built-In I/O.....................49152-49279..-16384 to -16257..$C000.C079<BR>
   Peripheral Card I/O Slots 0-7....49280-49407..-16256 to -16127..$C080.C0FF<BR>
   Peripheral Card PROM Slots 1-7...49408-51199..-16128 to -14337..$C100.C7FF<BR>
   Expansion ROM....................51200-53247..-14336 to -12289..$C800.CFFF<BR>
System ROM..........................53248-65535..-12288 to -1......$D000.FFFF<BR>
   Applesoft ROM....................53248-63487..-12288 to -2049...$D000.F7FF<BR>
   Monitor ROM......................63488-65535...-2048 to -1......$F800.FFFF<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
<BR>
APPLE MAIN MEMORY MAP<BR>
                __________________<BR>
    -1 / 65536 |___MONITOR ROM____| $FFFF<BR>
 -2048 / 63488 |                  | $F800<BR>
               |                  |<BR>
               |  APPLESOFT ROM   |<BR>
               |                  |<BR>
               |__________________|<BR>
-12288 / 53248 |                  | $D000<BR>
               |__EXPANSION ROM___|<BR>
-14336 / 51200 |CUSTOM PROM SPACE | $C800<BR>
               |FOR CARDSLOTS 1-7_|<BR>
-16384 / 49152 |                  | $C000<BR>
               |                  |<BR>
               |                  |<BR>
               |                  |<BR>
-20480 / 45056 |       DOS        | $B000<BR>
               |                  |<BR>
               |                  |<BR>
               |                  |<BR>
-24576 / 40960 |                  | $A000<BR>
               |                  |<BR>
-27136 / 38400 |------------------| $9600 DEFALUT HIMEM<BR>
               |                  |       IF DOS IS USED<BR>
-28672 / 36864 |                  | $9000<BR>
               |                  |<BR>
               |                  |<BR>
               |                  |<BR>
-32768 / 32768 |                  | $8000<BR>
               |     USER RAM     |<BR>
               |                  |<BR>
               |                  |<BR>
-36864 / 28672 |                  | $7000<BR>
               |                  |<BR>
               |                  |<BR>
               |__________________|<BR>
-40960 / 24576 |                  | $6000<BR>
               |                  |<BR>
               |                  |<BR>
               |  HI-RES PAGE 2   |<BR>
-45056 / 20480 |                  | $5000<BR>
               |                  |<BR>
               |                  |<BR>
               |__________________|<BR>
-49152 / 16384 |                  | $4000<BR>
               |                  |<BR>
               |                  |<BR>
               |  HI-RES PAGE 1   |<BR>
-53248 / 12288 |                  | $3000<BR>
               |                  |<BR>
               |                  |<BR>
               |__________________|<BR>
 -57344 / 8192 |                  | $2000<BR>
               |                  |<BR>
               |     USER RAM     |<BR>
               |                  |<BR>
          4096 |__________________| $1000<BR>
          3072 |TEXT/LO-RES PAGE 2| $0C00<BR>
          2048 |TEXT/LO-RES PAGE 1| $0800 DEFAULT LOMEM<BR>
          1024 |__________________| $0400<BR>
             0 /                  \ $0000<BR>
              /                    \<BR>
             /______________________\<BR>
        1024 |__MONITOR VARIABLES___| $0400<BR>
         768 |__KEY. INPUT BUFFER___| $0300<BR>
         512 |_____SYSTEM STACK_____| $0200<BR>
         256 |____ZERO PAGE RAM_____| $0100<BR>
           0                            $0000<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
<BR>
INVALUABLE PROGRAMMING INFORMATION<BR>
To POKE a value (0-65535) into two consecutive bytes, follow this procedure where
B1 and B2 are the two bytes and V is the value:<BR>
          POKE B1,V-INT(V/256)*256: POKE B2,INT(V/256)<BR>
In order to PEEK two bytes, do this where B1 and B2 are the two bytes:<BR>
          PEEK(B1)+PEEK(B2)*256<BR>
Variable names may be up to 239 characters long, but only the first two characters
are considered by BASIC.<BR>
To run the mini-assembler, load Integer BASIC into the language card, enter the monitor,
and type F666G.<BR>
To disable the AUTO function in Integer BASIC, execute a &lt;Control-X&gt; and then
enter the MAN command.<BR>
To execute a GOTO in immediate mode, enter:<BR>
          POKE 51,0: GOTO line#<BR>
For a better random number generator, use:<BR>
          INT(RND(PEEK(78)+PEEK(79)*256)*N+1)<BR>
     where N is the high number limit.<BR>
To scrunch your program listings, execute a POKE 33,33.<BR>
To obtain the results of MOD in Applesoft BASIC:<BR>
          remainder=X-(INT(X/Y)*Y)<BR>
     where X and Y are the numbers to be divided.<BR>
To turn on the Mouse Character set, print a CHR$(27) (which is Esc).  To turn off
the alternate set, print CHR$(24).  Only for Apple IIc, IIc+, IIgs, or enhanced IIe.<BR>
To round a number N digits to the right of the decimal point:<BR>
          X=INT(X*10^N+.5)/10^N<BR>
To print 40-column text screen page one:<BR>
          10 ? CHR$(4); &quot;PR#1&quot;: PRINT CHR$(9); &quot;80N&quot;<BR>
          20 FOR H=1024 TO 1104 STEP 40: FOR J=0 TO 896<BR>
          30 FOR K=0 TO 39: A=PEEK(J+K+H)<BR>
          40 A=A+(A&lt;32)*192: A=A+(A&lt;64)*128: A=A+(A&lt;96)*64: A=A+(A&lt;128)*64:
A=A+(A&lt;160)*64<BR>
          50 ? CHR$(A);: NEXT K: ?: NEXT J,H<BR>
          60 ?: ? CHR$(4); &quot;PR#0&quot;<BR>
To correct a &quot;No Buffers Available&quot; message, set MAXFILES to 3 or less.<BR>
To save a program that is in memory while DOS 3.3 or ProDOS isn't:<BR>
          1. Enter the monitor               5. Enter the monitor again<BR>
          2. Enter 4000&lt;800.3FFFM            6. Enter 800&lt;4000.8000M<BR>
          3. Enter Control-C                 7. Enter Control-C<BR>
          4. Boot a DOS disk                 8. LIST<BR>
To delete program lines greater than 63999, add this line (may be any line number)
and GOTO it:<BR>
          5000 A=PEEK(121)+PEEK(122)*256: A=A+3: POKE A-2,0: POKE A-1,0: POKE 175,A-INT(A/256)*256:
POKE 176,INT(A/256)<BR>
In Applesoft BASIC, line numbers range from 0 through and including 63999.<BR>
In Integer BASIC, line numbers range from 0 through and including 32767.<BR>
When a negative decimal memory address is given, add 65536 to obtain the positive
equivalent.  Example: -21503 plus 65536 equals 44033.  In the case that your brain
or your calculator does not have a -/+ key, enter the negative address without the
negative sign, subtract 65536, and ignore the negative sign given in the answer.
 Example: 21503 (negative address) minus 65536 equals -44033 (ignore the negative
sign).<BR>
When a positive decimal memory address is given, subtract 65536 to find the negative
equivalent.  Example: 49152 minus 65536 equals -16384.<BR>
Another way to find an equivalent (negative or positive) is to subtract the address
(if negative, do not enter a negative sign) from 65536.  In your mind, add a negative
sign to the answer if you wanted a negative equivalent.  Example: 65536 minus 62436
(positive address) equals 3100 (negative equivalent; add a negative sign mentally).
 Another example: 65536 minus 3082 (negative address excluding the negative sign)
equals 62454 (positive equivalent).<BR>
Eight bits equal one byte; Four bytes equal one nibble; One nibble equals one hexadecimal
digit.<BR>
MSB is the abbreviation for Most Significant Byte (in $AC01, the MSB is $AC); LSB
is the abbreviation for Least Significant Byte (in $AC01, the LSB is 1).<BR>
_______________________________________________________________________________________________________________<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
<BR>
MACHINE LANGUAGE PROGRAMMING INFORMATION<BR>
<BR>
6502'S INTERNAL REGISTERS<BR>
(all take up one byte except PC which uses two bytes)<BR>
A  = accumulator                   PC = program counter<BR>
X  = X index register              S  = stack pointer<BR>
Y  = Y index register              P  = processor status register (see below)<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
STATUS FLAGS<BR>
MSB           LSB<BR>
|N|V|-|B|D|I|Z|C|<BR>
N = negative result                I = IRQ (Interrupt ReQuest) disable<BR>
V = overflow                       Z = zero result<BR>
B = BRK instruction                C = carry<BR>
D = decimal mode                   C = borrow<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
LOGICAL OPERATORS--BOOLEAN LOGIC<BR>
   AND                 INCLUSIVE OR             EXCLUSIVE OR<BR>
01011001                 01101001                 01001011<BR>
 |     |                 |||||  |                  ||  ||<BR>
01100101                 10111000                 00101101<BR>
--------                 --------                 --------<BR>
01000001                 11111001                 01100110<BR>
<BR>
If both bits are on,     If either or both        If either bit is on,<BR>
the result bit is on.    bits are on, the         but not if both are on,<BR>
                         result bit is on.        the result bit is on.<BR>
<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
INVALUABLE MACHINE LANGUAGE INFORMATION<BR>
The monitor always uses hexadecimal; Dollar signs are not needed.<BR>
To enter the monitor, enter CALL -151; To leave it, enter &lt;Control-C&gt;.<BR>
To look at one address, type that address.<BR>
To list more than one address, type the first and last addresses to be looked at
separated by a period.<BR>
Type a period followed by the last address to be looked at to see more addresses
starting at the last address printed on the screen.<BR>
To look at the content of the next eight addresses, just press &lt;Return&gt;.<BR>
To enter data into memory, type the first address in the range of addresses to have
data put into them, follow it by a colon, and begin typing the data.<BR>
To move a block of data in RAM, type this in:<BR>
          addr1&lt;add2.addr3M<BR>
     where addr1 is the starting address of the new block location, addr2 is the
starting address of the current location, and addr3 is the last address in the current
location.  Notice the &quot;M&quot; (which stands for Move) at the end of the commands.<BR>
Make sure, when moving a block of code, to change all branching addresses within.<BR>
To verify (or compare) two blocks of memory, follow this procedure:<BR>
          addr1&lt;addr2.addr3V<BR>
     where addr1 is the starting address of either block, and addr2 and addr3 are
the first and last addresses of the other, respectively.  Notice the &quot;V&quot;
(for Verify) at the end of the commands.  If the two blocks are exactly alike, the
monitor returns to the prompt symbol.  If there is a difference between the two,
the monitor prints the address of the first block, its content, and the content of
the differing second block.<BR>
To disassemble 20 lines of instructions, type the beginning address to be disassembled
followed by an &quot;L&quot; for list.  Just entering an &quot;L&quot; again will
disassemble the next 20 lines.<BR>
To execute a machine language program, type the beginning address of the program
followed by a &quot;G&quot; for Go.<BR>
To direct output to the printer while in the monitor, type &quot;1 &lt;Control-P&gt;&quot;
(1 stands for slot #1).<BR>
Immediate means &quot;put this number in;&quot; absolute means &quot;put the number
in that's contained in this address.&quot;<BR>
The beginning address of the mini-assembler is 2048 ($800) and the length is 328
($148) bytes.<BR>
In order to display the current content of all the internal registers, enter &lt;Control-E&gt;.<BR>
To change the 6502's internal registers, type &lt;Control-E&gt;, colon, the register,
and then the number to be plugged into that register.<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
<BR>
THE 6502 INSTRUCTION SET<BR>
                    ASSEMBLER COMMAND ABBREVIATION<BR>
HEXADECIMAL OPERATION CODE(S)    \/     OPERATION<BR>
69, 65, 75, 6D, 7D, 79, 61, 71 = ADC = ADD memory to the accumulator with carry<BR>
29, 25, 35, 2D, 3D, 39, 21, 31 = AND = logically AND memory with the accumulator<BR>
            0A, 06, 16, 0E, 1E = ASL = shift memory of the accumulator 1 bit to the
left<BR>
                            90 = BCC = branch on carry clear<BR>
                            80 = BCS = branch on carry set<BR>
                            F0 = BEQ = branch on result zero<BR>
                        24, 2C = BIT = test memory bits with the accumulator<BR>
                            30 = BMI = branch on result minus<BR>
                            D0 = BNE = branch on result not zero<BR>
                            10 = BPL = branch on result plus<BR>
                            00 = BRK = forced break<BR>
                            50 = BVC = branch on overflow clear<BR>
                            70 = BVS = branch on overflow set<BR>
                            18 = CLC = clear carry flag<BR>
                            D8 = CLD = clear decimal arithmetic mode<BR>
                            58 = CLI = clear interrupt disable bit<BR>
                            B8 = CLV = clear overflow flag<BR>
C9, C5, D5, CD, DD, D9, C1, D1 = CMP = compare memory and the accumulator<BR>
                    E0, E4, EC = CPX = compare memory and X register<BR>
                    C0, C4, CC = CPY = compare memory and Y register<BR>
                C6, D6, CE, DE = DEC = decrement memory by 1<BR>
                            CA = DEX = decrement X register by 1<BR>
                            88 = DEY = decrement Y register by 1<BR>
49, 45, 55, 4D, 5D, 59, 41, 51 = EOR = logically EXCLUSIVE-OR memory and the accumulator<BR>
                E6, F6, EE, FE = INC = increment memory by 1<BR>
                            E8 = INX = increment X register by 1<BR>
                            C8 = INY = increment Y register by 1<BR>
                        4C, 6C = JMP = unconditional jump to new address<BR>
                            20 = JSR = jump to new address and save return address<BR>
A9, A5, B5, AD, BD, B9, A1, B1 = LDA = load the the accumulator with memory<BR>
            A2, A6, B6, AE, BE = LDX = load X register with memory<BR>
            A0, A4, B4, AC, BC = LDY = load Y register with memory<BR>
            4A, 46, 56, 4E, 5E = LSR = shift memory or the accumulator 1 bit to right<BR>
                            EA = NOP = no operation<BR>
09, 05, 15, 0D, 1D, 19, 01, 11 = ORA = logically OR memory and the accumulator<BR>
                            48 = PHA = push the accumulator to top of stack<BR>
                            08 = PHP = push status register to top of stack<BR>
                            68 = PLA = pull top of stack to the accumulator<BR>
                            28 = PLP = pull top of stack to status register<BR>
            2A, 26, 36, 2E, 3E = ROL = rotate memory or the accumulator 1 bit to
left<BR>
            6A, 66, 76, 6E, 7E = ROR = rotate memory or the accumulator 1 bit to
right<BR>
                            40 = RTI = return from interrupt<BR>
                            60 = RTS = return from subroutine<BR>
E9, E5, F5, ED, FD, F9, E1, F1 = SBC = subtract memory from the accumulator with
borrow<BR>
                            38 = SEC = set carry flag<BR>
                            F8 = SED = set decimal arithmetic mode<BR>
                            78 = SEI = set disable interrupt flag<BR>
    85, 95, 8D, 9D, 99, 81, 91 = STA = store the accumulator in memory<BR>
                    86, 96, 8E = STX = store X register in memory<BR>
                    84, 94, 8C = STY = store Y register in memory<BR>
                            AA = TAX = transfer the accumulator to X register<BR>
                            A8 = TAY = transfer the accumulator to Y register<BR>
                            BA = TSX = transfer stack pointer to X register<BR>
                            8A = TXA = transfer X register to the accumulator<BR>
                            9A = TXS = transfer X register to stack pointer<BR>
                            98 = TYA = transfer Y register to the accumulator<BR>
_______________________________________________________________________________________________________________<BR>
<BR>
HEXADECIMAL/DECIMAL CONVERSION CHART<BR>
<BR>
LSD     MSD &gt;&gt;<BR>
\/  1    2    3    4    5    6    7    8    9    A    B    C    D    E    F<BR>
   -------------------------------------------------------------------------<BR>
0 | 16   32   48   64   80   96  112  128  144  160  176  192  208  224  240<BR>
  |<BR>
1 | 17   33   49   65   81   97  113  129  145  161  177  193  209  225  241<BR>
  |<BR>
2 | 18   34   50   66   82   98  114  130  146  162  178  194  210  226  242<BR>
  |<BR>
3 | 19   35   51   67   83   99  115  131  147  163  179  195  211  227  243<BR>
  |<BR>
4 | 20   36   52   68   84  100  116  132  148  164  180  196  212  228  244<BR>
  |<BR>
5 | 21   37   53   69   85  101  117  133  149  165  181  197  213  229  245<BR>
  |<BR>
6 | 22   38   54   70   86  102  118  134  150  166  182  198  214  230  246<BR>
  |<BR>
7 | 23   39   55   71   87  103  119  135  151  167  183  199  215  231  247<BR>
  |<BR>
8 | 24   40   56   72   88  104  120  136  152  168  184  200  216  232  248<BR>
  |<BR>
9 | 25   41   57   73   89  105  121  137  153  169  185  201  217  233  249<BR>
  |<BR>
A | 26   42   58   74   90  106  122  138  154  170  186  202  218  234  250<BR>
  |<BR>
B | 27   43   59   75   91  107  123  139  155  171  187  203  219  235  251<BR>
  |<BR>
C | 28   44   60   76   92  108  124  140  156  172  188  204  220  236  252<BR>
  |<BR>
D | 29   45   61   77   93  109  125  141  157  173  189  205  221  237  253<BR>
  |<BR>
E | 30   46   62   78   94  110  126  142  158  174  190  206  222  238  254<BR>
  |<BR>
F | 31   47   63   79   95  111  127  143  159  175  191  207  223  239  255</P>


</BODY>

</HTML>