Word Processor: Tasword for Lambda 8300
Posted: Wed Jun 08, 2022 1:06 am
The great Tasword (1982) was for the ZX81. What would it take to port it the Lambda 8300?
Turns out, not much. Just the usual "change the DFILE location", "update a few System Variables" and keyword translation. Plus the usual 8300 characters changes (most importantly colon and question mark characters)
Keyboard layout however is the biggest problem
* Tasword uses easy-to-remember keys like 'THEN' and 'TO' for command functions. But those keys do not exist on the 8300
* The graphics characters are different. And on different keys
COMMAND KEYS
------------
The Tasword command mnemonics could be changed in the program. The Help screen, shown by pressing SHIFT G in the program, shows the commands. For example, 'THEN' could be changed to "SHIFT-1". But then the Tasword manual and the tutorial wouldn't match. In the end, I decided to leave the command names alone, and only updated the Help screen to show the SHIFT key equivalents. These work the same on the ZX81 Tasword and 8300 Tasword
GRAPHICS KEYS
-------------
The ZX81 has are 20 keys printed with dedicated graphics symbols. The 8300 has 22 keys with graphics symbols. Problem is they are different keys. What to do? Because Tasword is a machine-language program it handles all the key mapping semi-directly using ROM call DECODE routine. But the DECODE routine is different on the various 8300 ROMs and was not clear that worked
So i dug down into the ZX81 ROM machine language and reverse-engineered the KEY TABLES. Easy enough to remap this. However, on the 8300 some of those keys are on the first row, which row cannot be translated by the standard machine language DECODE
So this part (graphics character key-mapping) is yet to be done. In the meantime the key combos of the ZX81 work, e.g. GRAPHICS-SHIFT-7 for the NORTH BAR. Only the special 8300 characters differ i.e. GRAPHICS-SHIFT-SPACE for the black square on ZX81 (inverse space) prints inverse spider on the 8300. Maybe there is a general solution that doesn't involve a lot of code
CONCLUSION
----------
Perhaps someone can run this on actual 8300 hardware and let us know how it works. I used emulators as I don't have a Lambda 8300. Works on EightyOne with standard Lambda 8300 (32K) configuration. Also works with NO$ZX 2.0 in Lambda (16K) configuration, however, two of the keys print the wrong character (example: SHIFT-5,6,7 work to move the cursor, but SHIFT-8 prints a hyphen-minus)
Turns out, not much. Just the usual "change the DFILE location", "update a few System Variables" and keyword translation. Plus the usual 8300 characters changes (most importantly colon and question mark characters)
Keyboard layout however is the biggest problem
* Tasword uses easy-to-remember keys like 'THEN' and 'TO' for command functions. But those keys do not exist on the 8300
* The graphics characters are different. And on different keys
COMMAND KEYS
------------
The Tasword command mnemonics could be changed in the program. The Help screen, shown by pressing SHIFT G in the program, shows the commands. For example, 'THEN' could be changed to "SHIFT-1". But then the Tasword manual and the tutorial wouldn't match. In the end, I decided to leave the command names alone, and only updated the Help screen to show the SHIFT key equivalents. These work the same on the ZX81 Tasword and 8300 Tasword
GRAPHICS KEYS
-------------
The ZX81 has are 20 keys printed with dedicated graphics symbols. The 8300 has 22 keys with graphics symbols. Problem is they are different keys. What to do? Because Tasword is a machine-language program it handles all the key mapping semi-directly using ROM call DECODE routine. But the DECODE routine is different on the various 8300 ROMs and was not clear that worked
So i dug down into the ZX81 ROM machine language and reverse-engineered the KEY TABLES. Easy enough to remap this. However, on the 8300 some of those keys are on the first row, which row cannot be translated by the standard machine language DECODE
So this part (graphics character key-mapping) is yet to be done. In the meantime the key combos of the ZX81 work, e.g. GRAPHICS-SHIFT-7 for the NORTH BAR. Only the special 8300 characters differ i.e. GRAPHICS-SHIFT-SPACE for the black square on ZX81 (inverse space) prints inverse spider on the 8300. Maybe there is a general solution that doesn't involve a lot of code
CONCLUSION
----------
Perhaps someone can run this on actual 8300 hardware and let us know how it works. I used emulators as I don't have a Lambda 8300. Works on EightyOne with standard Lambda 8300 (32K) configuration. Also works with NO$ZX 2.0 in Lambda (16K) configuration, however, two of the keys print the wrong character (example: SHIFT-5,6,7 work to move the cursor, but SHIFT-8 prints a hyphen-minus)