mirror of
https://github.com/Klaus2m5/VTL02.git
synced 2026-04-21 03:19:39 +00:00
VTL02C
update to VTL02C
This commit is contained in:
+33
-19
@@ -1,28 +1,30 @@
|
||||
-----------------------------------------------------
|
||||
VTL-2 for the 6502 (VTL02B)
|
||||
VTL-2 for the 6502 (VTL02C)
|
||||
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
|
||||
Original source code from Mike:
|
||||
VTL02C for the apple II & the sbprojects.com assembler
|
||||
vtl02ca2.asm
|
||||
Modified versions (Syntax, I/O & user RAM size):
|
||||
VTL02C for the Kowalski 6502 simulator
|
||||
http://www.exifpro.com/downloads/6502_1.2.12.zip
|
||||
vtl02ca2.65s
|
||||
VTL02C for my emulator & the Kingswood AS65 assembler
|
||||
vtl02ca2.a65
|
||||
|
||||
New features in Revision B:
|
||||
2015: Revision B included some space optimizations
|
||||
(suggested by dclxvi) and enhancements
|
||||
(suggested by mkl0815 and Klaus2m5):
|
||||
|
||||
* Bit-wise operators & | ^ (and, or, xor)
|
||||
Example: A=$|128) Get a char and set hi-bit
|
||||
|
||||
@@ -31,13 +33,13 @@
|
||||
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.
|
||||
* Starting with VTL02B, the space character is no
|
||||
longer a valid user variable nor a "valid" binary
|
||||
operator. It's 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
|
||||
@@ -52,3 +54,15 @@
|
||||
1020 ? = "" ) Newline
|
||||
1030 A = A + 1 ) Update index
|
||||
1040 # = A < 10 * 1010 ) Loop until done
|
||||
|
||||
2015: Revision C includes further enhancements
|
||||
(suggested by Klaus2m5):
|
||||
|
||||
* "THEN" and "ELSE" operators [ ]
|
||||
A[B returns 0 if A is 0, otherwise returns B.
|
||||
A]B returns B if A is 0, otherwise returns 0.
|
||||
|
||||
* Some effort was made to balance interpreter code
|
||||
density with interpreter performance, while
|
||||
remaining within the 1KB constraint. Structured
|
||||
programming principles remained at low priority.
|
||||
|
||||
+453
-384
File diff suppressed because it is too large
Load Diff
+453
-384
File diff suppressed because it is too large
Load Diff
+450
-379
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user