MADE FOR THE NES. READY FOR YOUR IDEAS. NO ACCOUNT NEEDED.
NESBASICBY NDB SOFTWARE

03 NES BASIC PROGRAMMING GUIDE

The editor and its keyboards

The native keyboard has letter and symbol pages. SHFT changes pages; SPCE inserts a space. Select opens or closes it without submitting the current line. With the keyboard open, the D-pad chooses keys. With it closed, Left/Right moves the caret through the current line. Reopen it to insert at that position. B removes the character before the caret. Insertion moves the rest of the line to the right.

The input line accepts at most 95 characters and wraps on the 28-column editing area. That physical input limit is separate from the tokenized program capacity. A stored line also needs its line number and record metadata. A string variable has a smaller, separate limit of 63 bytes; do not confuse these limits.

External keyboard input follows the same ROM editor. Enter submits, Backspace deletes, Escape closes the controller keyboard, Left/Right moves the caret, and Cmd+Left/Right goes to the start/end. Ctrl+C interrupts a running program. Source entry normalizes lowercase letters to uppercase, including characters entered inside string literals. There is no Unicode source editor. The browser playground adds Load .bas and numbered-listing paste support; imports are validated by the actual ROM before replacing your working program. The iOS guide describes entering listings as separate submissions.

The optional external-keyboard bridge uses virtual controller port two. After its handshake, JOY(2) returns zero until reset. It is not the original Family BASIC keyboard protocol. You can always use the on-screen keyboard with ordinary NES controller input, including in another compatible emulator.

NEW clears working source and variables after confirming a nonempty dirty program. It keeps your kept artwork. CLEAR resets values and control state while keeping source and artwork. RUN starts from the beginning and resets variables. Use LIST to review a program before replacing it. Long LIST/output pauses after 18 rows: Start continues and Select cancels with BREAK.