You are here: Home DOCUMENTATION information SBASIC Manual - Page 58

Technological Arts Inc.

Your Shopping Cart

Your Cart is currently empty.

SBASIC Manual - Page 58

Article Index
SBASIC Manual
Page 2
Page 3
Page 4
Page 5
Page 6
Page 7
Page 8
Page 9
Page 10
Page 11
Page 12
Page 13
Page 14
Page 15
Page 16
Page 17
Page 18
Page 19
Page 20
Page 21
Page 22
Page 23
Page 24
Page 25
Page 26
Page 27
Page 28
Page 29
Page 30
Page 31
Page 32
Page 33
Page 34
Page 35
Page 36
Page 37
Page 38
Page 39
Page 40
Page 41
Page 42
Page 43
Page 44
Page 45
Page 46
Page 47
Page 48
Page 49
Page 50
Page 51
Page 52
Page 53
Page 54
Page 55
Page 56
Page 57
Page 58
Page 59
Page 60
Table of Contents
Index
All Pages

     SBasic User's Manual     SBasic Version 2.7             Page 58
     Printed:  December 5, 1999
     ASMFUNC, _INKEY, and _OUTCH



     Generally, you should not use ASMFUNC to define labels used internally
     by SBasic run-time routines.  Doing so will cause the assembler that
     processes the resulting output file to report an error.  This happens
     because SBasic will create two identical labels in its output assembly
     language file, one label that you defined in your ASM section and a
     matching label in an SBasic library file.

     The exceptions to this rule involve the labels _INKEY and  _OUTCH.
     SBasic reserves these labels for internal routines that handle
     character I/O.  By default, the _OUTCH routine sends the character in
     the A-register to the 68hc11's SCI port, and the _INKEY routine
     returns a character from the SCI in the D-register.  SBasic
     automatically appends a library file containing the assembly language
     source for these routines whenever it processes a statement that
     requires them.

     In this one case, SBasic permits your source file to override the
     normal inclusion of a library file.  For example, if SBasic detects an
     ASMFUNC statement defining the label _OUTCH:

         asmfunc  _outch

     SBasic does not append the _OUTCH library file.  Instead, SBasic
     relies on whatever _OUTCH assembly language routine you define in your
     SBasic source file to handle all character output.

     This feature allows you to redirect the output from all SBasic PRINT
     and OUTCH statements to an alternate device.  Similarly, you can
     redirect the input for the SBasic INKEY function from an alternate
     device.  This makes it easy to add SBasic support for formatted output
     to devices such as LCDs, or character input from custom keyboards.
     For example:

          asmfunc  _outch

     asm
     _outch
          staa      $1004               send char in A to port b
          rts
     endasm

     main:
          print "2 + 2 ="; 2+3
          end


     This sample program sends a mathematical statement to port B that
     should convince anyone your computer is loony.