DEVICE  SX28, OSC4MHZ, TURBO, STACKX, OPTIONX, BOR22
FREQ    4_000_000

' RoboOlyCodeSXB15107.SXB
'
' Designed & Written By David Winchell -- David@Winchell.com
' Modified for SX/B 1.20 By Terry Hitt -- terry@hittconsulting.com
' Modified for SX/B 1.51.07 By Chris Savage -- support@parallax.com
'
' Special Thanks to:
'
' Melinda Winchell -- For Hardware design and Manufacturing Consulting :-)

' Ken Gracey   -- Parallax THANK YOU FOR ALL THE SUPPORT TO MAKE THIS HAPPEN :-)
' Chip Gracey  -- Parallax for the SX18, SX28, SX52 and more to come :-)
' Doug Pientak -- Parallax for Hardware Design enhancements & PCB Layout :-)
' Jim Carey    -- Parallax for SX/B Beta Program Intro, Help, Insperation & being there :-)
'
' David Calkins for ROBOlympics 2005 !!  :-)
'
' -------------------------------------------------------------------------
' Variables
' -------------------------------------------------------------------------
Display VAR Byte (16)
NextChr Var Byte (5)
DataChr Var Byte
OffSet  Var Byte

I       Var Byte
J       Var Byte
K       Var Byte
X       Var Byte

' ---------------------------
INTERRUPT
' ---------------------------
ISR_Start:

RC = 0			    'CLEAR DISPLAY OUT TO PREVENT GHOSTING
Inc RA			    'INCREMENT COLUM ADDRESS (RA I/O PINS)
RC = Display( RA )	    'LOAD NEW ROW DATA TO RC

ISR_Exit:
RETURNINT 63

' ---------------------------
' Define Subroutines
' ---------------------------
Wait_A_Bit   SUB
StringWriter SUB
Robot        SUB

' =========================================================================
PROGRAM Start
' =========================================================================

' -------------------------------------------------------------------
' Winning Team Name and Award Level String.
' -------------------------------------------------------------------
String_Data:
Data "  Parallax, Inc. Digital Medal...  ",0

' PLEASE SEE ASCII CHART AT THE END OF THIS LIST.

'User Defined Data $00-$1F 
'Number Data:      $20-$3F  !"#$%&'()*+,-./0123456789:;<=>?
'UC Aplhabet Data: $40-$5F @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
'LC Aplhabet Data: $60-$7f `abcdefghijklmnopqrstuvwxyz{|}~

'Data "!", $22, "#$%&'()*+,-./0123456789:;<=>?"
'Data "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_"
'Data "`abcdefghijklmnopqrstuvwxyz{|}~",0

'Data "    ",0

'Data "   THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG 0123456789 TIMES   ",0
'Data "   The Quick Brown Fox Jumped Over The Lazy Dog 0123456789 Times   ",0

Robot_00:
DATA  %00000000
DATA  %00000100
DATA  %01110101
DATA  %00011111
DATA  %01110101
DATA  %00000100
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000100
DATA  %01110101
DATA  %00011111
DATA  %01110101
DATA  %00000100
DATA  %00000000

Robot_01:
DATA  %01000000
DATA  %00101000
DATA  %00010101
DATA  %00011111
DATA  %01110101
DATA  %00000010
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00001000
DATA  %01110101
DATA  %00011111
DATA  %00010101
DATA  %00100010
DATA  %01000000

Robot_02:
DATA  %00000000
DATA  %00000010
DATA  %01110101
DATA  %00011111
DATA  %00010101
DATA  %00101000
DATA  %01000000
DATA  %00000000
DATA  %01000000
DATA  %00100010
DATA  %00010101
DATA  %00011111
DATA  %01110101
DATA  %00001000
DATA  %00000000

'======================================================
'Special_Data: $00-$1F  User Defined Symbols
'======================================================
Special_Data:

S00:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S01:
DATA  %00100000 
DATA  %01000011
DATA  %01011000
DATA  %01000011
DATA  %00100000

S02:
DATA  %00000011 
DATA  %00000111
DATA  %01111100
DATA  %00001100
DATA  %01111111

S03:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S04:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S05:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

SO6:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S07:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S08:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S09:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S10:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S11:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S12:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S13:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S14:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S15:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S16:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S17:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S18:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S19:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S20:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S21:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S22:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S23:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S24:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S25:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S26:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S27:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S28:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S29:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S30:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

S31:
DATA  %00000000 
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

'======================================================
'Number_Data: $20-$3F  !"#$%&'()*+,-./0123456789:;<=>?
'======================================================
Number_Data:

Space:
DATA  %00000000 'Space
DATA  %00000000
DATA  %00000000
DATA  %00000000
DATA  %00000000

Exclamation:
DATA  %00000000 '!
DATA  %00000000
DATA  %01001111
DATA  %00000000
DATA  %00000000

DoubleQuote:
DATA  %00000000 '"
DATA  %00000111
DATA  %00000000
DATA  %00000111
DATA  %00000000

PoundSign:
DATA  %00010100 '#
DATA  %01111111
DATA  %00010100
DATA  %01111111
DATA  %00010100

DollarSign:
DATA  %00100100 '$
DATA  %00101010
DATA  %01111111
DATA  %00101010
DATA  %00010010

PercentSign:
DATA  %00100011 '%
DATA  %00010011
DATA  %00001000
DATA  %01100100
DATA  %01100010

AndSign:
DATA  %00110110 '&
DATA  %01001001
DATA  %01010101
DATA  %00100010
DATA  %01010000

SingleQuote:
DATA  %00000000 ''
DATA  %00000101
DATA  %00000011
DATA  %00000000
DATA  %00000000

OpenParenthesis:
DATA  %00000000 '(
DATA  %00011100
DATA  %00100010
DATA  %01000001
DATA  %00000000

CloseParenthesis:
DATA  %00000000 ')
DATA  %01000001
DATA  %00100010
DATA  %00011100
DATA  %00000000

Star:
DATA  %00010100 '*
DATA  %00001000
DATA  %00111110
DATA  %00001000
DATA  %00010100

PlusSign:
DATA  %00001000 '+
DATA  %00001000
DATA  %00111110
DATA  %00001000
DATA  %00001000

Comma:
DATA  %00000000 ',
DATA  %01010000
DATA  %00110000
DATA  %00000000
DATA  %00000000

NegativeSign:
DATA  %00001000 '-
DATA  %00001000
DATA  %00001000
DATA  %00001000
DATA  %00001000

DecmialPoint:
DATA  %00000000 '.
DATA  %01100000
DATA  %01100000
DATA  %00000000
DATA  %00000000

ForwardSlash:
DATA  %00100000 '/
DATA  %00010000
DATA  %00001000
DATA  %00000100
DATA  %00000010

Number_0:
DATA  %00111110 '0
DATA  %01000101
DATA  %01001001
DATA  %01010001
DATA  %00111110

Number_1:
DATA  %00000000 '1
DATA  %01000010
DATA  %01111111
DATA  %01000000
DATA  %00000000

Number_2:
DATA  %01000010 '2
DATA  %01100001
DATA  %01010001
DATA  %01001001
DATA  %01000110

Number_3:
DATA  %00100001 '3
DATA  %01000001
DATA  %01000101
DATA  %01001011
DATA  %00110001

Number_4:
DATA  %00011000 '4
DATA  %00010100
DATA  %00010010
DATA  %01111111
DATA  %00010000

Number_5:
DATA  %00100111 '5
DATA  %01000101
DATA  %01000101
DATA  %01000101
DATA  %00111001

Number_6:
DATA  %00111100 '6
DATA  %01001010
DATA  %01001001
DATA  %01001001
DATA  %00110000

Number_7:
DATA  %00000001 '7
DATA  %01111001
DATA  %00000101
DATA  %00000011
DATA  %00000011

Number_8:
DATA  %00110110 '8
DATA  %01001001
DATA  %01001001
DATA  %01001001
DATA  %00110110

Number_9:
DATA  %00000110 '9
DATA  %01001001
DATA  %01001001
DATA  %00101001
DATA  %00011110

Colon:
DATA  %00000000 ':
DATA  %00110110
DATA  %00110110
DATA  %00000000
DATA  %00000000

Semicolon:
DATA  %00000000 ';
DATA  %01010110
DATA  %00110110
DATA  %00000000
DATA  %00000000

LessThan:
DATA  %00001000 '<
DATA  %00010100
DATA  %00100010
DATA  %01000001
DATA  %00000000

Equal:
DATA  %00010100 '=
DATA  %00010100
DATA  %00010100
DATA  %00010100
DATA  %00010100

GreaterThan:
DATA  %00000000 '>
DATA  %01000001
DATA  %00100010
DATA  %00010100
DATA  %00001000

Question:
DATA  %00000010 '?
DATA  %00000001
DATA  %01010001
DATA  %00001001
DATA  %00000110

'==========================================================
'UC_Aplhabet_Data: $40-$5F @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
'==========================================================
UC_Aplhabet_Data:

AtSign:
DATA  %00110000 '@
DATA  %01001001
DATA  %01111001
DATA  %01000001
DATA  %00111110

UC_Letter_A:
DATA  %01111100 'A
DATA  %00010010
DATA  %00010001
DATA  %00010010
DATA  %01111100

UC_Letter_B:
DATA  %01000001 'B
DATA  %01111111
DATA  %01001001
DATA  %01001001
DATA  %00110110

UC_Letter_C:
DATA  %00111110 'C
DATA  %01000001
DATA  %01000001
DATA  %01000001
DATA  %00100010

UC_Letter_D:
DATA  %01000001 'D
DATA  %01111111
DATA  %01000001
DATA  %01000001
DATA  %00111110

UC_Letter_E:
DATA  %01111111 'E
DATA  %01001001
DATA  %01001001
DATA  %01000001
DATA  %01000001

UC_Letter_F:
DATA  %01111111 'F
DATA  %00001001
DATA  %00001001
DATA  %00000001
DATA  %00000001

UC_Letter_G:
DATA  %00111110 'G
DATA  %01000001
DATA  %01001001
DATA  %01001001
DATA  %00111010

UC_Letter_H:
DATA  %01111111 'H
DATA  %00001000
DATA  %00001000
DATA  %00001000
DATA  %01111111

UC_Letter_I:
DATA  %00000000 'I
DATA  %01000001
DATA  %01111111
DATA  %01000001
DATA  %00000000

UC_Letter_J:
DATA  %00100000 'J
DATA  %01000000
DATA  %01000001
DATA  %00111111
DATA  %00000001

UC_Letter_K:
DATA  %01111111 'K
DATA  %00001000
DATA  %00010100
DATA  %00100010
DATA  %01000001

UC_Letter_L:
DATA  %01111111 'L
DATA  %01000000
DATA  %01000000
DATA  %01000000
DATA  %01000000

UC_Letter_M:
DATA  %01111111 'M
DATA  %00000010
DATA  %00001100
DATA  %00000010
DATA  %01111111

UC_Letter_N:
DATA  %01111111 'N
DATA  %00000010
DATA  %00000100
DATA  %00001000
DATA  %01111111

UC_Letter_O:
DATA  %00111110 'O
DATA  %01000001
DATA  %01000001
DATA  %01000001
DATA  %00111110

UC_Letter_P:
DATA  %01111111 'P
DATA  %00001001
DATA  %00001001
DATA  %00001001
DATA  %00000110

UC_Letter_Q:
DATA  %00111110 'Q
DATA  %01000001
DATA  %01010001
DATA  %00100001
DATA  %01011110

UC_Letter_R:
DATA  %01111111 'R
DATA  %00001001
DATA  %00011001
DATA  %00101001
DATA  %01000110

UC_Letter_S:
DATA  %00100110 'S
DATA  %01001001
DATA  %01001001
DATA  %01001001
DATA  %00110010

UC_Letter_T:
DATA  %00000001 'T
DATA  %00000001
DATA  %01111111
DATA  %00000001
DATA  %00000001

UC_Letter_U:
DATA  %00111111 'U
DATA  %01000000
DATA  %01000000
DATA  %01000000
DATA  %00111111

UC_Letter_V:
DATA  %00000111 'V
DATA  %00011000
DATA  %01100000
DATA  %00011000
DATA  %00000111

UC_Letter_W:
DATA  %01111111 'W
DATA  %00100000
DATA  %00010000
DATA  %00100000
DATA  %01111111

UC_Letter_X:
DATA  %01100011 'X
DATA  %00010100
DATA  %00001000
DATA  %00010100
DATA  %01100011

UC_Letter_Y:
DATA  %00000011 'Y
DATA  %00000100
DATA  %01111000
DATA  %00000100
DATA  %00000011

UC_Letter_Z:
DATA  %01100001 'Z
DATA  %01010001
DATA  %01001001
DATA  %01000101
DATA  %01000011

OpenBracket:
DATA  %00000000 '[
DATA  %01111111
DATA  %01000001
DATA  %01000001
DATA  %00000000

BackSlash:
DATA  %00000010 '\
DATA  %00000100
DATA  %00001000
DATA  %00010000
DATA  %00100000

CloseBracket:
DATA  %00000000 ']
DATA  %01000001
DATA  %01000001
DATA  %01111111
DATA  %00000000

Caret:
DATA  %00000100 '^
DATA  %00000010
DATA  %00000001
DATA  %00000010
DATA  %00000100

UnderBar:
DATA  %01000000 '_
DATA  %01000000
DATA  %01000000
DATA  %01000000
DATA  %01000000

'===========================================================
'LC_Aplhabet_Data: $60-$7f `abcdefghijklmnopqrstuvwxyz{|}~
'===========================================================
LC_Aplhabet_Data:

OpeningSingleQuote:
DATA  %00000000 '`
DATA  %00000001
DATA  %00000010
DATA  %00000100
DATA  %00000000

LC_Letter_A:
DATA  %00100000 'a
DATA  %01010100
DATA  %01010100
DATA  %01010100
DATA  %01111000

LC_Letter_B:
DATA  %01111111 'b
DATA  %01001000
DATA  %01001000
DATA  %01001000
DATA  %00110000

LC_Letter_C:
DATA  %00111000 'c
DATA  %01000100
DATA  %01000100
DATA  %01000100
DATA  %01000100

LC_Letter_D:
DATA  %00110000 'd
DATA  %01001000
DATA  %01001000
DATA  %01001000
DATA  %01111111

LC_Letter_E:
DATA  %00111000 'e
DATA  %01010100
DATA  %01010100
DATA  %01010100
DATA  %01011000

LC_Letter_F:
DATA  %00000000 'f
DATA  %00001000
DATA  %01111110
DATA  %00001001
DATA  %00000010

LC_Letter_G:
DATA  %01001000 'g
DATA  %01010100
DATA  %01010100
DATA  %01010100
DATA  %00111100

LC_Letter_H:
DATA  %01111111 'h
DATA  %00001000
DATA  %00001000
DATA  %00001000
DATA  %01110000

LC_Letter_I:
DATA  %00000000 'i
DATA  %00000000
DATA  %01111010
DATA  %00000000
DATA  %00000000

LC_Letter_J:
DATA  %00100000 'j
DATA  %01000000
DATA  %01000000
DATA  %00111101
DATA  %00000000

LC_Letter_K:
DATA  %00000000 'k
DATA  %01111111
DATA  %00010000
DATA  %00101000
DATA  %01000100

LC_Letter_L:
DATA  %00000000 'l
DATA  %01000001
DATA  %01111111
DATA  %01000000
DATA  %00000000

LC_Letter_M:
DATA  %01111100 'm
DATA  %00000100
DATA  %00111000
DATA  %00000100
DATA  %01111100

LC_Letter_N:
DATA  %01111100 'n
DATA  %00001000
DATA  %00000100
DATA  %00000100
DATA  %01111000

LC_Letter_O:
DATA  %00111000 'o
DATA  %01000100
DATA  %01000100
DATA  %01000100
DATA  %00111000

LC_Letter_P:
DATA  %01111100 'p
DATA  %00010100
DATA  %00010100
DATA  %00010100
DATA  %00001000

LC_Letter_Q:
DATA  %00001000 'q
DATA  %00010100
DATA  %00010100
DATA  %00010100
DATA  %01111100

LC_Letter_R:
DATA  %01111100 'r
DATA  %00001000
DATA  %00000100
DATA  %00001000
DATA  %00000000

LC_Letter_S:
DATA  %01001000 's
DATA  %01010100
DATA  %01010100
DATA  %01010100
DATA  %00100100

LC_Letter_T:
DATA  %00000100 't
DATA  %00000100
DATA  %00111111
DATA  %01000100
DATA  %00100100

LC_Letter_U:
DATA  %00111100 'u
DATA  %01000000
DATA  %01000000
DATA  %01000000
DATA  %00111100

LC_Letter_V:
DATA  %00011100 'v
DATA  %00100000
DATA  %01000000
DATA  %00100000
DATA  %00011100

LC_Letter_W:
DATA  %00111100 'w
DATA  %01000000
DATA  %00110000
DATA  %01000000
DATA  %00111100

LC_Letter_X:
DATA  %01000100 'x
DATA  %00101000
DATA  %00010000
DATA  %00101000
DATA  %01000100

LC_Letter_Y:
DATA  %00000100 'y
DATA  %01001000
DATA  %00110000
DATA  %00001000
DATA  %00000100

LC_Letter_Z:
DATA  %01000100 'z
DATA  %01100100
DATA  %01010100
DATA  %01001100
DATA  %01000100

OpeningCurlyBrace:
DATA  %00001000 '{
DATA  %00110110
DATA  %01000001
DATA  %01000001
DATA  %00000000

VerticalLine:
DATA  %00000000 '|
DATA  %00000000
DATA  %01111111
DATA  %00000000
DATA  %00000000

ClosingCurlyBrace:
DATA  %00000000 '}
DATA  %01000001
DATA  %01000001
DATA  %00110110
DATA  %00001000

Tilde:
DATA  %00000100 '~
DATA  %00000010
DATA  %00000010
DATA  %00000010
DATA  %00000001

Delete:
DATA  %01111111 '$7F
DATA  %01000001
DATA  %01000001
DATA  %01000001
DATA  %01111111


'=====================================================
' ASCII Character Set
'=====================================================
'  Char Dec Hex Description 
'  SP   32  20  Space  
'  !    33  21  Exclamation mark  
'  "    34  22  Quotation mark
'  #    35  23  Cross hatch (number sign)  
'  $    36  24  Dollar sign  
'  %    37  25  Percent sign  
'  &    38  26  Ampersand  
'  '    39  27  Closing single quote (apostrophe)  
'  (    40  28  Opening parentheses  
'  )    41  29  Closing parentheses  
'  *    42  2a  Asterisk (star, multiply)  
'  +    43  2b  Plus  
'  ,    44  2c  Comma  
'  -    45  2d  Hyphen, dash, minus  
'  .    46  2e  Period  
'  /    47  2f  Slant (forward slash, divide)  
'  0    48  30  Zero  
'  1    49  31  One  
'  2    50  32  Two  
'  3    51  33  Three  
'  4    52  34  Four  
'  5    53  35  Five  
'  6    54  36  Six  
'  7    55  37  Seven  
'  8    56  38  Eight  
'  9    57  39  Nine  
'  :    58  3a  Colon  
'  ;    59  3b  Semicolon  
'  <    60  3c  Less than sign
'  =    61  3d  Equals sign  
'  >    62  3e  Greater than sign
'  ?    63  3f  Question mark  
'  @    64  40  At-sign  
'  A    65  41  Uppercase A  
'  B    66  42  Uppercase B  
'  C    67  43  Uppercase C  
'  D    68  44  Uppercase D  
'  E    69  45  Uppercase E  
'  F    70  46  Uppercase F  
'  G    71  47  Uppercase G  
'  H    72  48  Uppercase H  
'  I    73  49  Uppercase I  
'  J    74  4a  Uppercase J  
'  K    75  4b  Uppercase K  
'  L    76  4c  Uppercase L  
'  M    77  4d  Uppercase M  
'  N    78  4e  Uppercase N  
'  O    79  4f  Uppercase O  
'  P    80  50  Uppercase P  
'  Q    81  51  Uppercase Q  
'  R    82  52  Uppercase R  
'  S    83  53  Uppercase S  
'  T    84  54  Uppercase T  
'  U    85  55  Uppercase U  
'  V    86  56  Uppercase V  
'  W    87  57  Uppercase W  
'  X    88  58  Uppercase X  
'  Y    89  59  Uppercase Y  
'  Z    90  5a  Uppercase Z  
'  [    91  5b  Opening square bracket  
'  \    92  5c  Reverse slant (Backslash)  
'  ]    93  5d  Closing square bracket  
'  ^    94  5e  Caret (Circumflex)  
'  _    95  5f  Underscore  
'  `    96  60  Opening single quote  
'  a    97  61  Lowercase a  
'  b    98  62  Lowercase b  
'  c    99  63  Lowercase c  
'  d   100  64  Lowercase d  
'  e   101  65  Lowercase e  
'  f   102  66  Lowercase f  
'  g   103  67  Lowercase g  
'  h   104  68  Lowercase h  
'  i   105  69  Lowercase i  
'  j   106  6a  Lowercase j  
'  k   107  6b  Lowercase k  
'  l   108  6c  Lowercase l  
'  m   109  6d  Lowercase m  
'  n   110  6e  Lowercase n  
'  o   111  6f  Lowercase o  
'  p   112  70  Lowercase p  
'  q   113  71  Lowercase q  
'  r   114  72  Lowercase r  
'  s   115  73  Lowercase s  
'  t   116  74  Lowercase t  
'  u   117  75  Lowercase u  
'  v   118  76  Lowercase v  
'  w   119  77  Lowercase w  
'  x   120  78  Lowercase x  
'  y   121  79  Lowercase y  
'  z   122  7a  Lowercase z  
'  {   123  7b  Opening curly brace  
'  |   124  7c  Vertical line  
'  }   125  7d  Closing curly brace  
'  ~   126  7e  Tilde (approximate)  
'  DEL 177  7f  Delete (rubout), cross-hatch box



' -------------------------------------------------------------------------
' Program Code
' -------------------------------------------------------------------------
Start:

TRIS_A = %00000000	'SET PORT A TO OUTPUTS
TRIS_B = %00000000	'SET PORT B TO OUTPUTS
TRIS_C = %00000000	'SET PORT C TO OUTPUTS

OPTION = $82

RA = 0
RB = 0
RC = 0

FOR J = 70 TO 127	'SOUND DEMO
 SOUND	RB.7,J,2
NEXT			'END SOUND DEMO

Main:
  Robot
  Wait_A_Bit

  StringWriter
  Wait_A_Bit

GoTo Main


'==============================================
' Wait_A_Bit:
'==============================================
Wait_A_Bit:
  Pause 100
Return

'==============================================
' StringWriter:
'==============================================
StringWriter:
For I = 0 to 255
  Read String_Data + I, DataChr
  If DataChr < $01 Goto StringDone
  If DataChr > $1F Goto NotSpecial
  'Is Special
  DataChr = DataChr * 5
  For J = 0 to 4
    OffSet = DataChr + J
    Read Special_Data + OffSet, NextChr(J)
  next
  goto ChrSet

NotSpecial:
  If DataChr > $3F Goto NotNumber
 'Is Number or Symbol
  DataChr = DataChr - $20
  DataChr = DataChr * 5
  For J = 0 to 4
    OffSet = DataChr + J
    Read Number_Data + OffSet, NextChr(J)
  next
  goto ChrSet

NotNumber:
  If DataChr > $5F Goto NotUpperCase
 'Is Upper Case
  DataChr = DataChr - $40
  DataChr = DataChr * 5
  For J = 0 to 4
    OffSet = DataChr + J
    Read UC_Aplhabet_Data + OffSet, NextChr(J)
  next
  goto ChrSet

NotUpperCase:
 'Is Lower Case
  DataChr = DataChr - $60
  DataChr = DataChr * 5
  For J = 0 to 4
    OffSet = DataChr + J
    Read LC_Aplhabet_Data + OffSet, NextChr(J)
  next

ChrSet: 
  For x = 0 to 4
    For J = 0 to 14
      K = J + 1
      Display(J) = Display(K)
    Next
    Display(15) = NextChr(0)
    For J = 0 to 3
      K = J + 1
      NextChr(J) = NextChr(K)
    Next
    Wait_A_Bit
  Next
  For J = 0 to 14
    K = J + 1
    Display(J) = Display(K)
  Next
  Display(15) = %00000000
  Wait_A_Bit
Next

StringDone:
Return

'==============================================
' Robot:
'==============================================
Robot:
For J = 0 TO 9
  For I = 0 to 14
    READ Robot_01 + I, Display(I)
  Next
  Wait_A_Bit

  For I = 0 to 14
    READ Robot_00 + I, Display(I)
  Next  
  Wait_A_Bit

  For I = 0 to 14
    READ Robot_02 + I, Display(I)
  Next
  Wait_A_Bit

  For I = 0 to 14
    READ Robot_00 + I, Display(I)
  Next
  Wait_A_Bit

Next
Return