Very Tiny Language for the 6502 series of CPUs
Go to file
Klaus2m5 e544e9bb83 added source for AS65, update for the Kowalski simulator 2015-10-22 13:45:12 +02:00
.gitattributes 👾 Added .gitattributes & .gitignore files 2015-10-18 12:50:47 +02:00
.gitignore 👾 Added .gitattributes & .gitignore files 2015-10-18 12:50:47 +02:00
readme.txt added source for AS65, update for the Kowalski simulator 2015-10-22 13:45:12 +02:00
vtl02ba2.65s added source for AS65, update for the Kowalski simulator 2015-10-22 13:45:12 +02:00
vtl02ba2.a65 added source for AS65, update for the Kowalski simulator 2015-10-22 13:45:12 +02:00
vtl02ba2.asm Initial distribution 2015-10-18 12:55:38 +02:00

readme.txt

-----------------------------------------------------
             VTL-2 for the 6502 (VTL02B)             
           Original Altair 680b version by           
          Frank McCoy and Gary Shannon 1977          
    2012: Adapted to the 6502 by Michael T. Barry
        see source code for copyright notice    
 Thanks to sbprojects.com for a very nice assembler! 
-----------------------------------------------------
 2015: Revision B, with several space optimizations
   (suggested by dclxvi) and enhancements (suggested
   by mkl0815 and Klaus2m5).

 The basic concepts of VTL-2 (Very Tiny Language):
 http://www.altair680kit.com/manuals/Altair_680-VTL-2%20Manual-05-Beta_1-Searchable.pdf

 The files:
   VTL02B for the apple II & the sbprojects.com assembler:
      vtl02ba2.asm
   VTL02B for the Kowalski 6502 simulator: 
   http://www.exifpro.com/downloads/6502_1.2.12.zip:
      vtl02ba2.65s
   VTL02B for my emulator & the Kingswood AS65 assembler:
      vtl02ba2.a65
 
 New features in Revision B:
 * Bit-wise operators & | ^ (and, or, xor)
   Example:  A=$|128) Get a char and set hi-bit

 * Absolute addressed 8-bit memory load and store
   via the {< @} facility:
   Example:  <=P) Point to the I/O port at P
             @=@&254^128) Clear low-bit & flip hi-bit

 * The space character is no longer a valid user
     variable nor a "valid" binary operator.  It is
     now only significant as a numeric constant
     terminator, and as a place-holder in strings and
     program listings, where it may be used to improve
     human readability, at a slight cost in execution
     speed and memory consumption.
   Example:
   *              (VTL-2)
       1000 A=1)         Init loop index
       1010 ?=A)           Print index
       1020 ?="")          Newline
       1030 A=A+1)         Update index
       1040 #=A<10*1010) Loop until done

   *              (VTL02B)
       1000 A = 1             ) Init loop index
       1010     ? = A         )   Print index
       1020     ? = ""        )   Newline
       1030     A = A + 1     )   Update index
       1040 # = A < 10 * 1010 ) Loop until done