VTL-09 (Very Tiny Language for 6809) is a minimal BASIC-inspired programming language. It is based on VTL-2, which was written for the 6800 microprocessor in the MITS 680b computer by Gary Shannon and Frank McCoy in 1977, and only occupied 768 bytes of memory! Several people have ported VTL-2 to the 6502 processor as VTL02. Patrick McMullen and Carl Warren ported it to the 6809 as VTL-09.

Carl Warren's book "The MC6809 Cookbook" describes VTL-09. However, many printings of the book omitted the actual source code listing, which fortunately appeared as Appendix E in the copy I purchased in 1983:

   "The MC6809 Cookbook" by carl d. warren
   First Edition, Fourth printing
   Copyright (c) 1980 by TAB BOOKS Inc.


My listing is an exact transcription of Appendix E as found in the book. I entered it exactly as-is, as all capital letters, with all spelling mistakes and other typos, just as found. I don't see how this code could have assembled without errors and actually run as there appear to be lots of typos. Also, the syntax of the assembler source code is different from that used by both 6809 assemblers I use: TSC's ASMB for FLEX, and Microware's ASM for OS-9. Some examples (with line numbers):

   000046  ORG     0
   000103  DECBUF-1RMB
   000115  PRGM    $               *PROGRAM STARTS HERE
   000119  START   LDU     #STACK  *LOAD THE STACK
   000137          LEAX    3       *BUMP PAST LINE #
   000163  EVIL    CMP B   #":"    *IF : THEN BRANCH
   000197  FIND    LDX     #$PRGM  *FIND LINE#
   000220          PUL A
   000290          STA     1,X+
   000521          BRA     $+2     *SKIP NEXT INSTRUCTION
   000593  LF      LDA     #$0D    *LINE-FEED

  46: need to shift columns to right
 103: not sure what was intended
 115: probably should be PRGM EQU * for other assemblers?
 119: why using U instead of S for stack?
 137: probably LEAX 3,X -- maybe was shortcut syntax allowed by their assembler?
 163: probably should be #': for other assemblers
 197: don't think $PRGM is valid operand
 220: should this be PULU A, or PULS A?
 290: 6809 has no such addressing mode!! should either be 1,X or ,X+
 521: probably should be *+2 for TSC or Microware assembler syntax?
 593: maybe should be $0A?

I hope to be able to modify the code into a working program. If anyone is interested in helping with this project, please contact me.

Use the Reload/Refresh button in your web browser (or Ctrl+F5 or Shift+Reload) to ensure you get the latest version of this page.
Last revised 2022-May-19 12:44 PDT.
Copyright 2022 David C. Wiens.

Home   Other 6809   Contact   Site map