Page 1 of 3

Word Processor: Tasword for Lambda 8300

Posted: Wed Jun 08, 2022 1:06 am
by David G
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)

Re: Word Processor: Tasword for Lambda 8300

Posted: Wed Jun 08, 2022 6:48 am
by mrtinb
That’s quite a task you’ve started there.

Have a look at a table I’ve created, that show some of the different ROM positions, and their equivalent in other ROMs.

viewtopic.php?f=16&t=3131

Re: Word Processor: Tasword for Lambda 8300

Posted: Wed Jun 08, 2022 9:11 am
by mrtinb
Not many has the Lambda 8300, so I'd better find my Lambda 8300 in one of the storage boxes. It hasn't been out since I moved.

You'll have to wait some days for this.

Re: Word Processor: Tasword for Lambda 8300

Posted: Wed Jun 08, 2022 5:05 pm
by dr beep
Now.... what about compiling my 1K lowres games for the Lambda????

Re: Word Processor: Tasword for Lambda 8300

Posted: Wed Jun 08, 2022 5:10 pm
by mrtinb
That won’t be possible, as there’s no known hires or pseudo hires on Lambda 8300.

Re: Word Processor: Tasword for Lambda 8300

Posted: Wed Jun 08, 2022 6:00 pm
by dr beep
mrtinb wrote: Wed Jun 08, 2022 5:10 pm That won’t be possible, as there’s no known hires or pseudo hires on Lambda 8300.
as I wrote.... my 1K LOWRES games.

Re: Word Processor: Tasword for Lambda 8300

Posted: Wed Jun 08, 2022 8:27 pm
by mrtinb
Sorry I missed that.

Re: Word Processor: Tasword for Lambda 8300

Posted: Wed Jun 08, 2022 10:14 pm
by mrtinb
I tried to setup my Lambda 8300, but in the process, I adjusted my monitor out of picture, and broke it.

So I tried your program in the Erik Olofsen's emulator JSZeddy: https://www.weggetjes.nl/jszeddy/jszeddy.html

Here you can choose between the two Lambda 8300 ROM, by pressing 'Lambda1' or 'Lambda2'.

It only works with the original ROM, as it is mostly a copy of the ZX81 ROM. The program does not work, on the new ROM, that is heavily modified.

Re: Word Processor: Tasword for Lambda 8300

Posted: Thu Jun 09, 2022 9:05 pm
by David G
I guess that makes a certain kind of sense, as it is the "original" Lambda 8300/PC 8300 configuration. The BASIC keywords are mostly the same as ZX81 however about 1/2 of them are changed around

Next challenge, decipher how the modified ROMs handle BASIC. Tasword makes only two ROM calls, and in the port, zero ROM calls. So the difference in running with the various ROMs may be in BASIC. Perhaps the keywords have been renumbered again. For example, on ZX81 "USR " is CHR$(212) but on the original Lambda it is CHR$(208)

The "updated" ROM is the one that the Tasword port works with (on EightyOne and on NO$ZX). I can't get the "original" ROM (LAM10061.BIN) to boot up, let alone try to run a program

Re: Word Processor: Tasword for Lambda 8300

Posted: Thu Jun 09, 2022 11:46 pm
by mrtinb
David G wrote: Thu Jun 09, 2022 9:05 pm The "updated" ROM is the one that the Tasword port works with (on EightyOne and on NO$ZX). I can't get the "original" ROM (LAM10061.BIN) to boot up, let alone try to run a program
My installation of EightyOne is broken at the moment, so I can only select the two different ROMs, but I cannot load any program.

However in NO$ZX I can run your program on the "updated ROM". But on JSZeddy I can only run it on the "original ROM", but it crashes on the "updated ROM". This might be an emulator problem though.

That still does not answer what will work on real hardware. I might get an old TV to work with my two Lambdas in the weekend, and we will find out.