By StefanX16 Edit is a text editor for the Commander X16 platform.
Use plain text files Store text buffer in banked RAM (512KB to 2 MB) Handle large text buffers efficiently Simple modeless user interface inspired by GNU Nano Implement basic editing functions well - refrain from making the program too feature-rich Support both ISO and PETSCII modes The current version of the program is made for X16 ROM version R41. Run with the following command:
x16emu -sdcard sdcard.img -prg X16EDIT-x.x.x.PRG -run, where x.x.x is the program version. X16EDIT-HI.xxx.PRG is assembled to be loaded and run at memory address $6000.
To run ROM version you need to setup a custom ROM image. Please read the attached file romnotes.pdf to learn how to do that.
For instructions on how to use the editor, please read the attached manual.
Source files available at https://github.com/stefan-b-jakobsson/x16-edit
Released under GNU General Public License v 3 or later.
By desertfishFile-based assembler. Requires r39 or newer
Source code and list of features is here https://github.com/irmen/cx16assem
The instructions are fairly self-explanatory, a simple manual will come later
By desertfishA "unix" like Dos Shell with a bunch of builtin commands to make day to day file operations (much) more convenient than via a Basic prompt. Requires R41.
Tip: save this as AUTOBOOT.X16 to your sdcard and it will load every time you start the emulator.
Short description of the commands and Source code (Prog8) available here https://github.com/irmen/cx16shell/
By TomXP411This is an unofficial concept program for a CX16 menu. Modify the DATA statements to add your submenus and commands.
This is currently just a demo to explore the look and and feel of a basic, BASIC menu. Since it does not clear the screen, it is useful as an autoboot menu.
New: uses a new API to push keys into the keyboard buffer. This allows the LOAD and RUN to operate outside of the running program, preventing problems that occur when chaining programs in BASIC.
By lamb-duhux16vt is a UTF-8 and somewhat ANSI compatible terminal emulator for
Currently the only useable "serial" port uses LOAD & SAVE to communicate between
the X16 emulator and a glue process that moves data in and out of a POSIX
In the emulator LOAD "UX16VT.PRG" & RUN. On the host, compile and run
## Unicode Support
ux16vt supports up to 4096 1-bit 8x16 pixel glyphs selected at compile time from
the Unicode Basic Multilingual Plane. Unknown characters are displayed as blank.
Currently 672 of these glyphs are used covering 862 different code points. The
following blocks are mapped:
- Basic Latin (00-7f)
- Latin-1 Supplement (80-ff)
- Greek & Coptic (370-3ff)
- Cyrillic (400-4ff)
- Box Drawing (2500-257f)
- Block Elements (2580-259f)
- no support for right-to-left text
- characters are represented internally as 16-bit values, making any characters
outside the basic multilingual plane complete inaccessible
- completely mono-spaced text. full-width glyphs are not available
## ANSI Support
Only sequences beginning with ^[[ are supported (Control Sequence Introducer).
Only numeric parameters are read. A control sequence with more than four
parameters will cause an unchecked buffer overflow.
The following functions are available:
A CUU Cursor Up
B CUD Cursor Down
C CUF Cursor Forward
D CUB Cursor Back
E CNL Cursor Next Line
F CPL Cursor Previous Line
G CHA Cursor Character Absolute [column]
H CUP Cursor Position
J ED Erase in Display
K EL Erase in Line
S SU Scroll Up
T SD Scroll Down
d VPA Vertical Position Absolute [row]
f HVP Horizontal Vertical Position
m SGR Select Graphics Rendition
The only available modes for SGR are 31 to set foreground colour to red and
30,32-39 set the foreground colour to black.
By Ed MinchauThe META/L editor is a direct assembly language editor. It shares some features of a Monitor program, with extensive use of metadata to take it well beyond anything a Monitor can do.
Unlike a text editor that later compiles your code, META/L interprets it as assembly language opcodes as you type it. Unlike a Monitor, you can do things like copy and paste code, move it around, or insert or delete bytes in the middle of your code; the metadata allows the editor to adjust parameters as labels move. Every byte of RAM and ROM is accessible to you on the fly.
Download the zip file, unzip it somewhere, and copy everything into the same folder as your r41 emulator. Full documentation is in the file docs/edit.html
This software is released under an MIT license.
There are also a number of videos in the forum here
By Ed MinchauWhen programming in assembly language, quite often you will need to do calculations that would normally require
floating point math. Those subroutines are available, the same ones that BASIC uses, but they are very slow. And
if you're programming in assembly, you're doing so because it's much faster than BASIC, so using those routines can
defeat the purpose, particularly if you need to do a lot of such calculations.
Ideally in assembly language you want to have most of your variables consisting of single bytes, not the five used
for floating point. It's having to move all those bytes around and doing calculations involving all of them
that makes the floating point subroutines slow. And if you're going for speed, you can make a tradeoff: increased
speed at the expense of accuracy. A function involving a single byte can just be a lookup table.
Over the last several years I have developed a number of lookup tables and subroutines that enable some very fast
math on the 6502 and now 65c02. FASTMATH.BIN is many of them compiled into a single 8kb file that can be loaded into
These lookup tables and functions will work on all revisions of the X16 emulator, and indeed will work on any 65c02
system as long as the file is loaded at $A000. The functions are all called through JMP redirects in page BF, and
those JMP table locations will not change if I do revisions on the code. I'm pretty sure I killed all the bugs, but
some might have slipped through.
This is probably going to be the final revision of FASTMATH, barring some sneaky bug hiding in the code. There's
only 6 bytes left anyhow.
The file fastmath.txt contains detailed information about each lookup table and function and how to use them.
The file FASTMATH.BIN is the binary that must be loaded into banked RAM.
I was reading @gavinhaslehurst's post about implementing floating point numbers based on an article in COMPUTE! magazine. So, I headed over to archive.org and looked up that issue and read the article. Then I flipped through the rest of the issue. On page 16, there was this program, LED - A Line-Oriented Text Editor, written by Arnie Lee of Abacus Software, in BASIC, for the Commodore PET (also mentioned is an APPLE II version, but I didn't see that listing in there).
So, I typed it in and ran it under VICE. Works on the PET, works on the C-64, works on the C-128.... works on the X-16!
The only changes from the original is to comment out the 2 POKEs to disable/enable RUN/STOP and changed the line-endings from CHR$(255) to CHR$(10) so the files would have regular UNIX-style newlines ending the lines.
Is it useful? Debatable.
Is it retro? For sure.
Vol. 3, No. 2