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

Technological Arts Inc.

Your Shopping Cart

Your Cart is currently empty.

SBASIC Manual - Page 49

Article Index
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
All Pages

     SBasic User's Manual     SBasic Version 2.7             Page 49
     Printed:  December 5, 1999
     force the vectors to appear at the proper locations, and also to force
     the library routines to compile in the correct locations, I had to use
     the third variation of the ORG statement above.

     For example, I compiled the following portions of code using a /c
     option of $f700:

          org  $8000  code    ' redefine code section here
          n = 14              ' this is the mainline code
          ...                 ' rest of mainline code goes here

          org  $f7e8          ' address of RTI vector
          asm                 ' switch to assembly language
          jmp  _rtiisr        use an assembly JMP instruction
          endasm              ' back to SBasic

          org  code           ' return to code section

          end                 ' end of program

     The /cf700 option started compilation with the code section at $f700.
     This caused SBasic to write the startup library code at $f700.  The
     ORG $8000 statement then moved MAIN down to $8000 and also caused the
     code section to move to that address.  The rest of the mainline code
     (not shown here) compiled from there.

     Next, the ORG $f7e8 let me write a JMP instruction into the
     bootloader's vector area for use by the RTI interrupt.  Finally, the
     ORG CODE statement switched back to the code section, now somewhere
     above $8000.

     This last step is important.  SBasic automatically switches to the
     code section before adding any library files at the end of the
     compilation.  If I hadn't moved the code section to $8000, SBasic
     would have added the library files at $f700, which was the original
     code section.  The resulting executable file would have failed.