|
Microproducts LLC
info@sxwiz.com
|
|
|
Frequently Asked Questions
|
|
Q
|
Isn't Basic slow?
|
|
A
|
Not anymore.   Many Basic systems on the market use interpretive basic instructions which
are fetched serially from an Eprom.   This means a vast number of SX clock cycles just to get the instruction
which then has to be decoded and finally
executed.   This not only has given Basic a bad rap, but defeats the
purpose of using a micro like the SX in
the first place.   SXWIZ produces
native instruction assembly code which
executes directly from the flash memory
at one instruction per clock cycle.   The result is dramatic performance from a program that's easy to write.
Checkout our Benchmarks
|
|
Q
|
Do I Have to assemble my program in SXWIZ?
|
|
A
|
Not if the emulator your using already has an assembler like SX-KEY or SX-DEVS.
  SXWIZ produces the assembly source ready for assembly and download.
  You do have the option of assembling wihin SXWIZ to examine the
form of the compiled source, the location of data and code and also to
produce a hex file, but only if you want to.   One click on compile
and your ready for the SX-KEY or
SX-DEVS assembler.   You can also write a program completely in assembly
or use In-Line assembly within Basic,
and our assembler is Parallax compatible.
|
|
Q
|
How many variables can I have in my program?
|
|
A
|
Typically about 96 bytes of data is available for the user's program.
  This translates into 96 byte, 48 integer or 768 bit variables.
  String variables require 1+max
character length.   Data space
varies with the complexity of expressions and the number of user functions and subroutines.
|
|
Q
|
Where does SXWIZ store my files?
|
|
A
|
SXWIZ provides a project list which gives each project a name and folder;
  all files generated for that project are then stored in that folder.   There is
no hunting for files;   both SXWIZ and the emulator open to your current
project and filetype.
|
|
Q
|
What emulators and micros does SXWIZ support?
|
|
A
|
SXWIZ supports the SX18, SX20 and SX28 micros and the Parallax SX-KEY
and SV Tehs SX-DEVS emulators.
  The output of the compiler is a standard assembly source using only native SX instructions and the Emulate and Emacro commands are fully user programmable.
  SXWIZ is also capable of producing hex files with sx fuse data.
  Emulators with application
builders such as Kanda are not recommended.
|
|
Q
|
Are all of the chip registers accessable?
|
|
A
|
Yes and by using Basic directives. Also
SLEEP and WATCHDOG functions.
|
|
Q
|
How difficult is interrupt coding?
|
|
A
|
The following is all the code required to set-up a timer interrupt to execute
your interrupt code:
  TIMEBASE 8.5 'say 8.5us'
  TIMER ON
TIMERIPT:
  (your code in Basic)
  ENDIPT
RB interrupts are just as easy and you do have control of edge and enable functions in foreground with simple Basic directives.  SAVREG and RESREG commands are available to shelter foreground accumulators if necessary.
|
|
Q
|
How does SXWIZ display errors in my program?
|
|
A
|
Errors for syntax, ambiguous symbols, reserved words and about 150 other error
conditions flag anything wrong with your program, display a message on the
screen caption and identify where the
error is in your program by highlighting
it.
|
|
Q
|
What is the Virtual Peripheral Library?
|
|
A
|
Due to the ultra speed of the SX it is
now possible to program peripherals in
software that formerly required internal
hardware in the cpu. Our library contains over 45 vp's at present and
will be expanded in the future.   Interface to popular chips like ADC,
DAC, Eprom, I/O expanders, shift registers and Dallas one wire into your
program with a click.   Even interrupt and initialization code is inserted where it belongs without pasting or linking and you can invoke
these devices with simple function calls.   Write your own vp's or copy
ours and modify them to suit your requirement; they are all in Basic
code and have all been tested on actual hardware.   We even supply a schematic.
|
|
Q
|
What if some of my routines need the speed of assembly; interrupts for instance?
|
|
A
|
First of all, with 15-20ns instruction times and a 60ns interrupt latency, you may find that this isn't as big of a problem as you might think.   You
have the option, however, of switching
back and forth from Basic to In-Line assembly using the ASM directive anywhere in your program.   We even have an ASMZ directive for placing custom interrupt code at the ORG $0 interrupt vector.   You can GOSUB an assembly routine from Basic and Call a Basic routine from assembly. In fact, using SXWIZ as an application builder for mundane tasks and switching to a mostly assembly program is a good application.
|
|
|