User Tools

Site Tools


inline_basic_assembler

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
inline_basic_assembler [2025/06/19 19:24] – [Dragon Basic Inline Assembler] reggieinline_basic_assembler [2025/06/20 10:17] (current) – [Dragon Basic Inline Assembler] reggie
Line 1: Line 1:
 ====== Dragon Basic Inline Assembler ====== ====== Dragon Basic Inline Assembler ======
  
-This utility (GTAsm) is intended for developing small 6809 machine language routines that enhance programs written mostly in Dragon Basic, for example a routine to scroll the graphics screen. The assembly source code is written in Basic comment statements.+This utility (GTAsm) is intended for developing small 6809 machine language routines that enhance programs written mostly in Dragon Basic, for example a routine to scroll the graphics screen. The assembly source code is written in Basic comment statements. This documentation assumes a good working knowledge of the 6809 and the Dragon 32.
  
 [[https://6809.uk/cas/GTAsm.cas|Download GTAsm Inline Basic Assembler]] (as a .cas file for the Dragon 32 - get the [[https://www.6809.org.uk/xroar/|XRoar Emulator]]) [[https://6809.uk/cas/GTAsm.cas|Download GTAsm Inline Basic Assembler]] (as a .cas file for the Dragon 32 - get the [[https://www.6809.org.uk/xroar/|XRoar Emulator]])
Line 38: Line 38:
 Or, since we used the DEFUSR1 directive: Or, since we used the DEFUSR1 directive:
  
-  A=USR1(0)+  A=USR01(0)
      
 EXEC remembers its last address, so as long as we don't use it (or DEFUSR0) for something else we can type plain EXEC to re-run the assembler.   EXEC remembers its last address, so as long as we don't use it (or DEFUSR0) for something else we can type plain EXEC to re-run the assembler.  
Line 51: Line 51:
  
   TFR (use TRF instead - this is a simple error)   TFR (use TRF instead - this is a simple error)
 +  
 +=== Addressing ===
 +
 +Use standard brackets rather than square to specify indirect addressing. Use the "<" and ">" symbols to force 8 and 16 bit offsets respectively.
 +
 +  JSR (,X++)        call subroutine at address stored at X, then point to the next address in the list
 +  LDA (CURSPOS)     load A from the address stored at CURSPOS
 +  LDB >$0034        load B from $0034 using extended mode rather than direct
 +  CLR <LINELEN,   clear the byte at Y+LINELEN, forcing 8 bit offset mode (doesn't work!)
      
 === Directives === === Directives ===
inline_basic_assembler.1750361051.txt.gz · Last modified: 2025/06/19 19:24 by reggie

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki