ASCII Character Codes
 

ARMbasic uses the standard "ASCII extended" character set.   The compiler uses the character set values 32 to 126 which corresponds to SPACE through TILDA.

Characters outside this range may have a special meaning and are interpreted by the terminal emulation program that is controlling the ARM processor.  Those would include BACKSPACE, TAB, CR and LF.  These characters cause changes in the stream of characters going to or from the ARMexpress module.  These characters may be interpreted differently on a PC vs. a Mac.

Two codes XON and XOFF are used for flow control.  When a large ARMbasic program file is sent to the ARM processor, the processor may require a delay when writing code into Flash memory.  During these writes of code to Flash, an XOFF character will be sent to the PC that indicates that the PC should pause sending data.  After the block is written (about 0.4 second) an XON will be sent to resume communication.

However when using RXD(0) or TXD(0), there is no special interpretation of characters, so all codes 0 to 255 may be sent without any change.

The ARM processor requires BASICtools to know whether the user ARMbasic code is running.  So now when a program starts a SOH (001) character is sent and when the program finishes an EOT (004) character is sent.  User code should avoid using these character codes if BASICtools is being used for communication with the module or board.

 

 Dec     Hex         Meaning  Dec     Hex         Meaning
  000     000    NUL    (Null char.)
  001     001    SOH   (Start of Header)
  002     002    STX    (Start of Text)
  003     003    ETX    (End of Text)
  004     004    EOT   (End of Transmission)
  005     005    ENQ   (Enquiry)
  006     006    ACK   (Acknowledgment)
  007     007    BEL    (Bell)
  008     008     BS     (Backspace)
  009     009     HT     (Horizontal Tab)
  010     00A     LF     (Line Feed)
  011     00B     VT     (Vertical Tab)
  012     00C     FF     (Form Feed)
  013     00D     CR    (Carriage Return)
  014     00E     SO    (Shift Out)
  015     00F      SI     (Shift In)
  016     010    DLE    (Data Link Escape)
  017     011    DC1    (XON) 
  018     012    DC2    (Device Control 2)
  019     013    DC3    (XOFF)
  020     014    DC4    (Device Control 4)
  021     015    NAK   (Negative Ack)
  022     016    SYN   (Synchronous Idle)
  023     017    ETB   (End of Trans. Block)
  024     018    CAN   (Cancel)
  025     019     EM    (End of Medium)
  026     01A    SUB   (Substitute)
  027     01B    ESC   (Escape)
  028     01C     FS    (File Separator)
  029     01D     GS   (Group Separator)
  030     01E     RS   (Request to Send)
  031     01F     US   (Unit Separator)
  032     020     SP   (Space)
  033     021      !      (exclamation mark)
  034     022      "     (double quote)
  035     023      #     (number sign)
  036     024      $     (dollar sign)
  037     025      %    (percent)
  038     026      &     (ampersand)
  039     027      '       (single quote)
  040     028      (       (left parenthesis)
  041     029      )       (right parenthesis)
  042     02A      *      (asterisk)
  043     02B      +     (plus)
  044     02C      ,      (comma)
  045     02D      -      (minus or dash)
  046     02E      .      (dot)
  047     02F      /      (forward slash)
  048     030      0
  049     031      1
  050     032      2
  051     033      3
  052     034      4
  053     035      5
  054     036      6
  055     037      7
  056     038      8
  057     039      9
  058     03A      :     (colon)
  059     03B      ;     (semi-colon)
  060     03C      <    (less than)
  061     03D      =    (equal sign)
  062     03E      >    (greater than)
  063     03F      ?     (question mark)
  064     040      @    (AT symbol)
  065     041      A
  066     042      B
  067     043      C
  068     044      D
  069     045      E
  070     046      F
  071     047      G
  072     048      H
  073     049      I
  074     04A      J
  075     04B      K
  076     04C      L
  077     04D      M
  078     04E      N
  079     04F      O
  080     050      P
  081     051      Q
  082     052      R
  083     053      S
  084     054      T
  085     055      U
  086     056      V
  087     057      W
  088     058      X
  089     059      Y
  090     05A      Z
  091     05B      [    (left bracket)
  092     05C      \    (back slash)
  093     05D      ]    (rightbracket)
  094     05E      ^    (caret)
  095     05F      _    (underscore)
  096     060      `
  097     061      a
  098     062      b
  099     063      c
  100     064      d
  101     065      e
  102     066      f
  103     067      g
  104     068      h
  105     069      i
  106     06A      j
  107     06B      k
  108     06C      l
  109     06D      m
  110     06E      n
  111     06F      o
  112     070      p
  113     071      q
  114     072      r
  115     073      s
  116     074      t
  117     075      u
  118     076      v
  119     077      w
  120     078      x
  121     079      y
  122     07A      z
  123     07B      {       (left brace)
  124     07C      |       (vertical bar)
  125     07D      }       (right brace)
  126     07E      ~      (tilde)
  127     07F    DEL    (delete)