Skip to main content

Acornsoft FORTH

Filesystem

  • TAPE - Select cassette for storage.
  • DISK - Select floppy for storage.
  • CREATE-SCREENS - Rewrite floppy to crate screen files for storage. (Nddds to be DFS formatted first)
  • 3 LOAD - Load screen 3 (on tape it is the editor) and execute.
  • 30 LIST - Load screen 30 (if not loaded) and print its contents.
  • SAVE - Save current screen (lists and asks before saving).
  • SAVE-BUFFERS - Save all screens in memory to disk.
  • FLUSH - Zero all screens memory.
  • PROGRAM - Initializes empty screen (asks for number). Enters editor mode.
  • EDITOR - Enters editor mode.
  • --> - Load next screen.

Editor

Screen commands:

  • P - Put text onto line.
  • D - Delete the line, moving up the lower lines to close the gap, but hold the deleted line at PAD.
  • E - Erase the line, leaving it blank. The contents of the line are not saved.
  • H - Hold the contents of the line at PAD. The line also remains in the screen.
  • I - Insert the text from PAD at the specified line. The lower lines are moved down to make room for the insertion and line 15 is lost.
  • R - Replace the contents of the line with the text from PAD.
  • S - Spread the text by inserting a blank line. Line 15 is lost.
  • T - Type the contents of the line and also copy it to PAD. The text remains in the screen.

Line editing (each command also lieves given text in PAD):

  • C - Insert the given text at the current cursor position.
  • F - Find the given text and position the cursor immediately after its first occurrence.
  • TILL - Delete all text, from the current cursor position to the end of the text given. This command will only act on text within a single line of the screen.
  • X - Find and delete the first occurrence of the given text.
  • N - Find the next occurrence of the text at PAD
  • B - Move the cursor back by the number of characters in the text at PAD.
  • DELETE - (count --) Delete count characters, backwards from the current cursor position.
  • M - (count --) Move the cursor by count characters, either forwards or backwards depending on the sign of count. The text itself is unchanged M is a simple way of displaying the current cursor position!

Errors

  1. (reserved)
  2. Stack Empty
  3. Dictionary Full
  4. Has Incorrect Address Mode (Assembler)
  5. Isn't unique
  6. Parameter Outside Valid Range
  7. Screen Number Out of Range
  8. Stack Full
  9. Can't Open or Extend File
  10. Read/Write not Completed
  11. Can't Redefine End-of-Line
  12. Can 't Divide by Zero
  13. Undefined Execution Vector
  14. Branch Too Long
  15. Incorrect CURRENT Vocabulary
  16. (reserved)
  17. (reserved)
  18. Compilation Only
  19. Execution Only
  20. Conditionals not Paired
  21. Definition not Finished
  22. In Protected Dictionary
  23. Use Only When LOADing
  24. Off Current Editing Screen
  25. Not in CURRENT Vocabulary
  26. System Memory Clash

MAME Emulation

Keyboard

Acorn Key MAME/PC Key My key \ Ctrl+\ Ctrl+# ( Shift+8 ) Shift+9 # Shift+3 * Shift+' : ' + Shift+; @ Shift+0 = Shift+- & Shift+6 backtick Shift+7 ^ Shift+=

Video

Acornsoft Forth uses memory used by hi-res modes; only mode 4 and 5 are available.

Modes:

  1. 320x256 @ 4 color - 0x3000 - 0x7FFF (bits: 0/4, 1/5, 2/6, 3/7)
  2. 160x265 @ 16 color - 0x5000 - 0x7FFF (bits: 0/2/4/6, 1/3/5/7)
  3. No GFX, only text 80x25
  4. 320x246 @ 2 color - 0x5800 - 0x7FFF (bits: one bit per pixel) - default
  5. 160x256 @ 4 color - 0x5800 - 0x7FFF (bits: 0/4, 1/5, 2/6, 3/7) - available
  6. No GFX, only text 40x25
HEX
5 MODE
: CLS 7FFF 5800 DO FF I C! LOOP ;

In mode 4 this leave out space between lines of text, but if I switch to mode 5 and back to 4 it works fine. Also this is slow...

This is addressed in columns bytes 0-7, and then next column. So it is like character mode?

VDU can be used to clear the screen faster:

HEX
10 >VDU