1. Future Text               '-FT.TXT'               Version 0.5.7 - 2025.02.10
==============               ---------

1. Introduction
---------------
You need an comprehensive Text Editor + Character Designer with many features?
Just to edit full text, sources for your apps or just for fun? Take a look ...

* Use all 256 characters    * 8 or 9 scanlines        * Open multiple files
* Different screen formats  * MODE 1 or MODE 2        * Use files up to 3.5 MB
* Character(set) editor     * Keyboard layout editor  * Use multiple blocks...

                  ###}*** ---> Here You found it! <--- ***{###

'- FutureTex' provides an text editor, supporting all 256 characters; different
character sets; Import & Export; Edit- & View-mode and so on. You can use Mice,
Joysticks or Cursor keys + Copy to create or edit any kind of (text) files.
And in addition hot keys can be used. The generated texts can be used for all
your applications. There's also a comfortable editor for (sets of) characters.
FutureTex knows your mother language (FutureOS configuration). It will display
all dialogues in your mother tongue.  The current version of FutureTex can use
English, French, German, Nederlands and Spanish --> EMail for other languages.
If you want to change the used language just go to Options, then to Language.
Or use the FutureOS tool 'Config-OS' to change the OS-ROM permanently.

2. The following functions are implemented currently
====================================================

2.1 Submenu '<F>ile' - Type hot key 'f' in main menu
----------------------------------------------------

<L>oad     Hotkey: l or L  ---  To load a text file
------
Here you can load a text file from disc or SD-card. This can be a regular ASCII
file or a FutureOS text file. Other file types can be used (soon).

First you select the file in the DIRector(y/ies). Then the file will be loaded.
After that you need to select a text slot (1 to 9) in which you want to put the
text file.
Eventually you choose the file type (ASCII, FutureOS, etc.).

Then you're back in the main menu. You can edit the text now if you like.


If the loaded file contains an file-header, then the header will be deleted.


Attention: FutureTex can handle multiple files in RAM at the same time.
---------- Therefore load the file which you want to expand the most at last.

<S>ave     Hotkey: s or S  ---  To save a text file
------
Here you can save a file to any active medium. First you select the text slot
which you want to save. Then you can edit the device 'A' - 'O', the user number
(enter in hexadecimal) and the file name with extension.
Eventually the file will be saved. Now its status will be set to 'unchanged'.

- If a file was not changed since you loaded it or since you saved it the last
  time, it will not be saved again. You will get back to the main menu.
  --> If you want to save an unchanged file or save a copy of a file then
      use the <E>xport function (see below).

- If you select a target medium which isn't tagged / active then the file can't
  be saved. Instead you will be lead to the DIRectory selection. There you can
  select additional devices. Afterwards you need to go to '<S>ave' again!

- If you select an target media which is not between 'A' and 'O' then an error
  message will be displyed. 'N' and 'O' target the M4 SD-card.

L<o>ad Blk.    Hotkey: o or O  ---  To load a block of text or data
-----------
- this function is not implemented yet -



Save <B>lk.    Hotkey: b or B  ---  To save a block of text or data
-----------
A block of text can be saved. Previously such a block must have been defined
in a regular text. And it must have been copied to one of the nine Block-Slots.


Re<a>d DIRs    Hotkey: a or A  ---  Reads the DIRs of all tagged devices
-----------
Here you can select the device(s) which you want to use. Of course you can use
multiple devices at once. Use keys 'A' - 'L' to (de)activate the corresponding
device. And press 'N' or 'O' to call the M4 Shell, there you can select one or
two M4 SD-card DIRectories. The M4 shell can be left by pressing 'ESC'.
(Please don't use device 'M' currently!)
After selecting all the devices you want to work with, please press the RETURN
or COPY key to read the DIRectories. Or press ESCape to abandon the selection.


<C>lose        Hotkey: c or C  ---  Saves a file and close it
-------
This function will save and close a text file. All you have to do is to select
the text file (1-9) which shall be closed.
There is NO option to edit device, user-number, file-name or extension!



<I>mport       Hotkey: i or I  ---  Import text or data
--------
- this function is not implemented yet -

<E>xport   Hotkey: e or E  ---  Export data or text / Save a copy of a file
--------
Here you can export a file to a device. You can also save an 'unchanged' file
as a copy as often as you like.
First you select the text you want to export / save. After that FutureTex will
allow you to change the file type. If you just want to save then press COPY or
RETURN to leave the type of file unchanged.
Then you can edit the device 'A' to 'O', the user number (hexadecimal) and the
file name with extension. Eventually the file will be exported / saved.
After exporting the file, its status will be set to 'unchanged'.

- If you select a target device which isn't tagged / active then the file will
  not be saved. Instead you will get to the 'Re<a>d DIRs' function. Then there
  you can select additional devices. Then go to '<E>xport' again.

- If you select an target media which isn't located between 'A' and 'O' then an
  error message will be displyed. The same is true for inactive devices.

= Attention please! At this date (2025.01.17) the export function only allows
  to save copies of files. The conversion of file types isn't included now!

<V>ersion  Hotkey: v or V  ---  Show date and version of FutureTex
---------
This function will show you the version of 'FutureTex' and its assembly date.


<Q>uit     Hotkey: q or Q  ---  Quit this application
------
Here you can quit 'FutureTex' directly without saving anything.  Just quit now!
All the Expansion RAMs which have been occupied by this application will be set
back to 'free' again.

However, the application will ask you if you really want to quit.
This additional question is there just in case your cat likes your CPC too ;-)
Or you may just forgot to save a text... how knows... Light, Love and Luck!









 - FutureOS loves you - 

2.2 Submenu '<P>rocess' - Type hot key 'p' in main menu
-------------------------------------------------------
<E>dit     Hotkey: e or E  ---  Edit (new or loaded) text
------
This function is used to initialize a new text file. Or to edit a previously
loaded text file. First you can select one out of nine text slots. This means
you can work with up to nine different texts or text files at the same time.

>>> Please load the file you want to extend the most as LAST file! :-)))

After selecting the slot (1-9) you will pick the file format for the new text.
At the moment you can work with regular ASCII files or FutureOS file format.
The latter one can contain all 256 possible characters.
Subsequently you will choose a device, user-number and file-name for the text.

... more text formats (Protext, Word, RTF...) are planned to come...

If you use this function a second time for a particular text, then you just
select slot 1-9. The text type, device, user and name will remain the same.

Now, you'll be able to work in the Editor mode of FutureTex. As you can see,
all the control codes are visible and can be edited.

Use Control+Shift+TAB to switch to 'WYSIWYG' page view mode and back.

The Editor Mode in detail
-------------------------
The EDIT mode allows to use the following keys or key-combinations:

- Cursor keys: Move the cursor one position to the corresponding direction

- Cursor left / right with Control: Move cursor to beginning / end of line

- DEL: Delete character left of the cursor

- DEL and Shift: Clear the whole line

- CLR: Delete the character underneath the cursor

- CLR and Shift: Clear the whole line

- TAB and Control: Switch between Insert mode and Overwrite mode

- TAB, Shift & Control: Switch to WYSIWYG mode or back to edit mode.
  In WYSIWYG mode you can use up / down to display the previous / next page.
  Any other key exits to the regular display (edit mode).




- RETURN: Insert mode -> Enter <RETurn> Code, this is &0D, &0A for ASCII texts
                         or &0E for FutureOS text format
          Overwrite mode -> Move cursor to leftmost position of line below

- ESC: Enter <ESC> menu. Please see below...


















 - FutureOS loves you - 

Pressing ESC (once!) in Editor mode
------------------------------------
* Press ESC twice: Ends the editing and returns to the main menu of FutureTex

* Press ESC once: This will bring you to the ESC menu of the FutureTex editor.
  Here you can enter some commands, get current information about the text and
  common control codes (of FutureOS text format).
  Also the text editing mode is indicated: This can be 'Insert' or 'Overwrite'

The following commands can be used in the ESC menu
--------------------------------------------------
-   B: Set the <B>egin column of a marked block to the current cursor position
-   E: Set the <E>nd column of a marked block to the current cursor position
- CLR: Clears both block marks (Begin and End marks). New marks can be set now
       Marked blocks need a Begin and End mark to be shown. In MODE 2 blocks
       are shown inverted. And in MODE 1 blocks are shown in mixed-color
-   C: Copy Block: Copy a marked block into Block-Storage-Slot 1-9
-   P: Paste Block: Paste Block (slot 1-9) into text at current cursor position
- DEL: Erase Block: DELete the currently marked block in the current text

- H: Hexadezimal values can be entered at cursor position
- D: Dezimal values can be entered at cursor position
     When entering Hex/Dez values press RETURN to enter value. Or press ESC to
     end entering values. The entered values will be added at cursor position

C<l>ear    Hotkey: c or C  ---  Clears text or block currently stored in RAM
-------
This function will clear a text file from RAM. Previously this text must have
been created by hand or loaded from some device.
First you need to select the text (one out of nine) defined by its file-name.
Then this text will be cleared and the occupied RAM will be set free again.
In case the selected text was changed, but not saved you will be questioned if
you really want to clear the text.

If you have defined and stored Blocks of text, then the C<l>ear function will
ask you first if you want to delete <T>ext or <B>lock. Selecting <B>lock will
allow you to delete a stored Block of text (one out of nine).


C<a>ll OS  Hotkey: a or A  ---  Call the Desktop, return with the OK icon
---------
Jumps to the FutureOS Desktop, there you can perform the desired functions.
Please click at the OK icon or press the hot key 'o' to return to FutureTex.

Attention: Don't change the main RAM!!! Else you can't jump back to FutureTex.
---------- Know what you do and PLEASE use the 'C<a>ll OS' function with CARE!




2.3 Submenu '<O>ptions' - Type hot key 'o' in main menu
-------------------------------------------------------
<M>ode         Hotkey: m or M  ---  Select the screen MODE 1 or 2
------
This function allows you to select the screen MODE in which your text shall be
edited. Only MODEs 1 and 2 can be selected for better visualisation.

<C>olour       Hotkey: c or C  ---  Select color for Pen, Paper or Border
--------
This set of functions will select the color of Border, Paper and the 15 Pens.

<F>ormat       Hotkey: f or F  ---  Select format of text window
--------
Here you can select the format of the text screen for your text to be edited
and shown on screen. Possible formats are:
- 80 characters per line and 25 lines (MODE 2) can be used with 8/9 Scan-Lines
- 68 characters per line and 30 lines (MODE 2) - only 8 scanlines usable
- 64 characters per line and 32 lines (MODE 2) - only 8 scanlines usable
- 92 characters per line and 22 lines (MODE 2) can be used with 8/9 Scan-Lines

<L>anguage     Hotkey: l or L  ---  Select your desired language
----------
Use this function to change the language of the User Interface for today.
Please use this function ONLY at the start of the application FutureTex!

2.4 Submenu '<C>haracter set' - Type hot key 'c' in main menu
-------------------------------------------------------------

<L>oad character set    Hotkey: l or L --- Load character set from media
--------------------
This function will load a character set with or without a file header.
The maximum file size is 4 KB. But everything beyond 2 KB will be truncated.
Because a character set is always 2 KB long (256 chars * 8 byte = 2048 bytes).
If the selected file is bigger than 4 KB an error message will be issued and
the application will return to the main menu.
Files with the extension '*.CS8' are charactes set files for the regular text
mode using 8 scan lines per character line. However, files using the extension
'*.CS9' can be used for the 9 scan-lines mode. In this case scan lines 1 and 9
are identical.
If the extension of the loaded character set file ends with '8' or '9', then
the screen format will be set to 8 or 9 scanlines. Can be done manually too.

<S>ave character set    Hotkey: s or S --- Save character set to media
--------------------
You can save the actual character set (from RAM) with or without an header.
If you save the 256 characters without an header then the produced file will
be exactly 2 KB in size. But beware, not every other application can load it.
If you save your character set with an header then the taget file will need
3 KB on the target medium, but it can be loaded with all well applications.

<E>dit character set    Hotkey: e or E --- Edit current RAM character set
--------------------
The character editor allows you to edit every one of the 256 characters.
In addition it supports 8 or 9 scan lines in editor, text and display mode.
* With Shift and the cursor keys you can select the character you want to edit.
* With the cursors you can move a cursor inside a character to set or delete a
  single bit inside the character. Press Copy to set / delete a bit.
* Also press space to refresh the screen and show the whole character set.
* In case you use a character set with 9 scan lines then the first scan line
  will be mirrowed in scan line nine. Therefore you still edit eight scan lines

Additional functions while editing a character:
-----------------------------------------------
* Press 'Clr' to Clear the current character
* Press 'c' to Copy a character to the buffer (see Paste and Exchange)
* Press 'p' to Paste a character from the buffer into the actual character
* Press 'e' to rEstore character from the computers lower ROM character set
* Press 'f' to Fill all bits in a character with '1'
* Press 'i' to Invert a character
* Press 'l' to rotate a character one bit to the Left
* Press 'r' to rotate a character one bit to the Right
* Press 'u' to rotate a character one scan line Up
* Press 'd' to rotate a character one scan line Down
* Press 'x' to eXchange two character (current character and the buffered one)

To get a character from another character set: Load the source character set,
copy the character, load the target character set and paste the character :-)


Use <R>OM characters    Hotkey: r or R --- Copy character set from ROM to RAM
--------------------
To copy the ROM character set into RAM you can use this function.
This makes sense if you don't want to continue with the current RAM characters.
Attention: This function will overwrite the current RAM character set!


Use <8> scan lines      Hotkey: 8 or ( --- Use eight scan lines per character
------------------
Eight scan lines will be used for all characters and functions. Normal mode.


Use <9> scan lines      Hotkey: 9 or ) --- Use nine scan lines per character
------------------
Nine scan lines will be used for all characters and functions. Extended mode.
However, 9 scan lines can be only used with screen formats of 80x25 or 92x22
characters. Please use a character set with the extension '*.CS9'
The '9 scan lines' option can't be used for 64x32 or 68x30 formats though.



2.5 Submenu '<K>eyboard' - Type hot key 'k' in main menu
--------------------------------------------------------

<K>eyboard     Hotkey: k or K --- Show keyboard
----------
This option will display a map of the keyboard (CPC6128) first. Then the four
keyboard layers will be shown: Normal --> Shift --> Control --> Shift+Control

<O>ccupat.     Hotkey: o or O --- Show map of keyboard occupation levels
----------
Here you can see and edit the characters which are assigned to the keyboard.
There are four layers of keys: Normal, Shift, Control and Shift+Control

In case you want to change the assignment of a character to a key do this:
- Move cursor to the desired key and keyboard level, then press Copy or Return
- Use the Cursor keys (left and right) to select the new character
- Press Copy or Return to fix the new key. Or press ESC to leave key unchanged

Press ESC to leave this option.






<L>oad         Hotkey: l or L --- Load matrix of keys
------
Here you can load all four layers of keys into the keyboard matrix of FutureOS.
The first 80 bytes will be load into the 'Normal' key matrix. The next 80 bytes
are for the Shift layer, then the Control layer and eventually the 80 bytes for
the combined Shift + Control layer.
You should use file which have been made by the <S>ave function... read on...

<S>ave         Hotkey: s or S --- Save the key matrix
------
With this function you can save the matrix of the keyboard. All four layers of
keys will be saved into one file of just 1 KB. This file consist of four blocks
of 80 bytes each. One block for Normal, Shift, Control and Shift + Control.

<A>ctive k     Hotkey: a or A --- Show active characters for keys
----------
Use this function to see which characters are currently assigned to keys.
For every character you see information in the following format:

'C:NN:KL' - Examples: 'l:36:No', 'L:36:Sh', '9:03:Co' or ',:39:SC'
'C'  is the character. All 256 characters are shown from top to bottom.
'NN' is the dezimal number of the key (00-79). Compare to the CPCs manual.
'KL' is the keyboard level, it can be 'No' for 'No'rmal, 'Sh'hift, 'Co'ntrol
     or 'SC' for the combined 'Shift + Control' level.

<R>OM->RAM     Hotkey: r or R --- Copy keyboard layout from ROM to RAM
----------
Using this function will copy the four tables of the keyboard layout from ROM C
to the system RAM. This means the keyboard layout is reset to OS start state.



















 - FutureOS loves you - 

2.6 Submenu '<H>elp' - Type hot key 'h' in main menu
----------------------------------------------------
<H>elp     Hotkey: h or H  ---  Show a help screen
------
Here you get little help how to use the framework CBM, which is the base of the
application 'FutureTex'

<I>nfo     Hotkey: i or I  ---  Shows information about Exp.RAM occupation
------
Here you can check how much E-RAM is connected, available and occupied.
You see where the texts (1-9) and blocks (a-i) are located in the expansion RAM
and how much of the extension RAM (up to 3.5 MB) is connected, used or free.

<M>enue    Hotkey: m or M  ---  Shows help about the CBM surface used this app.
-------
Few informations how the menue system CBM work and how to use it.

-$<$>$-    Hotkey: $ or 4  ---  Tells how to support FutureTex development
-------
Just in case you want to spend some money for the development of this program.

.w<w>w.    Hotkey: w or W  ---  Tells how to find FutureTex in the network
-------
Here you will find a link to the internet presence of 'FutureTex'.

3. Error messages
=================
FutureTex may display error message about potential problems. That can be:

'Function isn't part of this application!'
------------------------------------------
You attempted to use a function which is not part of the application (yet).
Let me know if you want me to add it - I will do.

'File too big!'
---------------
You did try to load a 'character set' which is too big. Bigger than 4 KB.

'Error: Line too long! > 1024 bytes!'
-------------------------------------
Lines bigger than 1024 bytes can't be processed using 'FutureTex'.
Your source file probably contains a line being too long.

'Too few E-RAM available!'
--------------------------
Either the expansion RAM (E-RAM) of the computer is used up. FutureTex would
need more E-RAM. In this case it helps to add a 512 KB RAM expansion.
Or if you have enough E-RAM connected and this error remains, then the texts
can't be reorganized. --> Open fewer files or load file-to-extend as last one

'The drive is not tagged!'
--------------------------
While saving a text file to a target-medium or -drive this error may occur.
The destination device is either not connected or its DIRectory was not read.

After displaying this error message the application will guide you to the DIR
function, there you can select the target device by pressing its letter a-m and
subsequently press Copy to read the DIRectory. Now just try to save again :-)

As an alternative source of the error it may have happened by accident that you
mistyped the device letter. It has the format 'A00:FileNameExt'.
Here the 'A' is the target device. The '00' is the user number in hexadezimal
from &00 to &FE (never use &FF!!!). And 'FileNameExt' is the name of the file
with extension (in 8+3 fomat). Small letters can be used of course :-)









 - FutureOS loves you - 

4. Source Code and Files
========================

4.1 Source Code
---------------
All the source code is provided!!! The file 'FT.MAX' contains the main program
and the files 'FT-LNG1.MAX' to 'FT-LNG3.MAX' contain language dependent tables
and texts.
The source files 'FT-SUB1.MAX' to 'FT-SUBA.MAX' contain specific functions and
subroutines. 'FT-SUM4.MAX' contains code to manage the M4 SD card directories.

To check out 'FutureTex' just start the file '--FutureTex' using FutureOS.
Then you can load the file '-FT.TXT' and read this manual. ;-)

It should be easy to add functions and text (in all languages) if you have a
look at the source code. Z80 knowledge and the knowledge of some facts about
FutureOS are an advantage. Else ask TFM - he will be glad to help :-D


If you want to use FutureTex and you need help, just mail to: FutureSoft@gmx.de
I really look forward to help you with all your tasks and projects!




4.2 Files
---------
'--Future.Tex': This file is the text editor application 'FutureTex'
'-FT     .TXT': Equates usually to this file ;-)
'-FTD    .MAX': Manual in German language :-)
'FT      .MAX': The main source code of this application itself (contains icon)
                This file reads "FT-LNG1.MAX" - "FT-LNG3.MAX" and "FT-SUB1.MAX"
                to "FT-SUM4.MAX" when you assemble it using MAXAM or compatible
'FT-LNG1 .MAX': File contains text (English, French, German, Spanish, Dutch)
'FT-LNG2 .MAX': ... more text...
'FT-LNG3 .MAX': and more text...
'FT-SUB1 .MAX': Functions of the CBM framework, FutureTex character set editor
'FT-SUB2 .MAX': FutureTex specific code to edit texts
'FT-SUB3 .MAX': FutureTex specific code to show page / edit line
'FT-SUB4 .MAX': FutureTex specific code to write back edited lines into text
'FT-SUB5 .MAX': FutureTex specific code to delete / load / import files
'FT-SUB6 .MAX': FutureTex specific code to save / export / close files
'FT-SUB7 .MAX': FutureTex specific code to show / edit / load / save keys
'FT-SUB8 .MAX': FutureTex specific code which MUST be located beyond &8000
'FT-SUB9 .MAX': FutureTex WYSIWYG specific code
'FT-SUBA .MAX': FutureTex functions and subroutines for Block management etc.
'FT-SUM4 .MAX': M4 SD card specific code

'*.CS8' / '*.CS9' files (User 8/9) are character sets for 8 / 9 scanlines mode
'*.MTX' files (User 4) contain the complete keyboard layout (all four layers)
5. Memory-Map
=============
&0000-&0AFF: Program Code of the CBM framework. RST 0 acts as 'cold boot'.

&0B00-&377F: Program Code of FutureTex

&3780-&37FF: Header for character set (to save them)

&3800-&3FFF: Character set for all current 256 characters

&4000-&93FF: Tables and texts for all supported languages

&9400-&9CFF: Program Code, most must be located between &8000 and &9FFF

&9D00-&9FFF: More space for future expansions


&A000-&B7FF: System buffers of FutureOS. If you want to use it, take a look
             at the manual. FutureTex could reach up to &AFFF and uses the
             space between &B000 and &B7FF as buffer (f.e. line editing).





6. How to implement additional functions?
=========================================
Please refer to the CBM framework. See examples there or ask TFM of FutureSoft.

7. Assembler
============
Use the MAXAM assembler (or something compatible) to assemble the source file
'FT.MAX'. This file automatically loads and links the three language files and
the 12 subroutine source code files. BTW: The code target is set to drive A.

8. Version
==========
Actual version: 0.5.7 from 2025-02-10 with Ger, Eng, Spa, Fra, Ned support.

8.1 Recent Updates
------------------
2025.02.10: 4 MB RAM management enhanced -> compatible to all (future) hardware
2025.01.17: Deleting headers of loaded 'text' files now. Debugging. Ver. 0.5.7!
2024.12.16: Enhanced 4 MB E-RAM handling, debugging and polishing, delete Block
2024.11.17: Type-ahead keyboard active, banking more slender, new version 0.5.4
2024.09.17: Few functions added
2024.09.10: Recently lots of debugging and polishing
2024.07.30: Enhancing management of 4 MB of RAM and texts up to 3.5 MB
2024.07.21: Added function 'Save Block'
2024.07.12: Block manager added: Now you can Copy and Paste up to nine block.
8.2 Older Updates
-----------------
2024.06.13: Added function 'Reset keyboard layout'
2024.04.06: Added entry of hex/decimal values and parts of block management
2023.10.10: Enhanced support for M4 SD card (select/load/save etc.)
2023.08.15: Record length calculation for mass media (M4) added
2022.11.19: Mouse support enhanced, support for Albireo mouse added
2022.02.10: Support for Mouses (SF2, SF3 and MultiPlay) added
2022.01.20: Functions added to Characters set editor: Copy, Paste, Exchange,
            Invert, Rotate left and right. Character sets added to disc
2020.12.23: First 'FutureTex' XROM assembled and released
2020.11.24: 'Save file' enhanced
2020.11.12: WYSIWYG mode implemented, to show full pages
2020.06.17: Function added to show which characters are assigned to keys
2020.06.08: Submenu 'Keyboard' added. Show keyboard. Edit key occupation map
2020.05.12: Expansion RAM occupacy map added
2020.05.07: Character editor enhanced
2020.04.18: Lots of debugging for texts bigger than one E-RAM block
2020.04.08: SAVE function added. CLOSE function added. Quit function enhanced
2020.03.31: Load and Edit function have been added. ASCII and FutureOS formats
2019.11.27: First running version including character set editor




9. Last messages
================

Shall light, love and peace always be there for you and your computers :-D

Keep our CPC6128, 6128plus and KCc computers working! Work on CPC / Plus / KCc!
Experience the feeling of the pure power of these entities :-)


Enjoy the life with your CPC :-D


Bye, TFM of FutureSoft (EMail: FutureSoft@gmx.de)








