Word Processor: Tasword for Lambda 8300

Software and Games for the Lambda 8300 / Power 3000 Computer
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Word Processor: Tasword for Lambda 8300

Post by mrtinb »

Just out of curiosity. Do you have the source for Tasword, or did you just dissable it for this task?
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Word Processor: Tasword for Lambda 8300

Post by mrtinb »

Yesterday I found the working Lambda 8300. And I succeded in uploadning my custom TZXduino to my Arduino Uno, and attached my SD card shield, and custom shield for display, buttons and ear/mic.

So tonight I resoldered the wires on the keyboard cable, that had gone loose. And then I have replaced the "Lambda 8300 ZX81 compatible" ROM with the "Lambda 8300 updated" ROM.

Now I need to find that mini jack cable, to be able to load from the TZXduino into the Lambda 8300. After that I need to find the "Lambda 8300 original" ROM somewhere.

So working my way to test Tasword for Lambda 8300 on real hardware.
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
David G
Posts: 387
Joined: Thu Jul 17, 2014 7:58 am
Location: 21 North, 156 West

Re: Word Processor: Tasword for Lambda 8300

Post by David G »

exciting

i disassembled it. Deciphering the tables and embedded text is what took some time
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Word Processor: Tasword for Lambda 8300

Post by mrtinb »

So first I got the homemade TZXduino to work:

Image

Then I loaded LambdaTasword with "updated" ROM, but got this picture.

Image

I was using the original Lambda 8300 power supply with 12V. I found out that when I started the computer, it worked for a minute (which is not long enough to load the program), but after that, the picture garbled.

I now changed to an all-purpose powersupply set to 9V, and the computer worked even after 1 minute. So now I tried to load LambdaTasword again, and it succeeded.

Image

I now changed the ROM in the Lambda 8300 to the "original" ROM, and it loaded as well. So the software works with both ROM versions.

Image

However it is quite confusing, that is uses the ZX81 cursor keys, and not the cursor keys of the Lambda 8300.
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
David G
Posts: 387
Joined: Thu Jul 17, 2014 7:58 am
Location: 21 North, 156 West

Re: Word Processor: Tasword for Lambda 8300

Post by David G »

neat-o. is that a tv? I haven't seen one like that. Looks like a robot


The Tasword port makes no ROM calls, so it may run on various ROMs. Original Tasword makes two ROM calls (KEYBOARD and DECODE) so i copied those from the ZX81 ROM and into the application code along with the first part of the Key Tables
it is quite confusing, that is uses the ZX81 cursor keys, and not the cursor keys of the Lambda 8300
Lambda cursor Command-keys: C-V-B-N
ZX81 cursor Shift-keys: 5-6-7-8

Possible solutions:
* modify DECODE. ZX81 does a keyword lookup, so Key Tables possibly is not used for Commands
or
* Work out how to use Lambda DECODE
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Word Processor: Tasword for Lambda 8300

Post by mrtinb »

Looking at this post, we can see that DECODE on Lambda “original” ROM is at $095E and on “updated” ROM is at $1877.

viewtopic.php?p=33439#p33439

Looking at this post, I created a test program, where I test memory location 999 for value 23,
and jump to different addresses depending on that. Notice I save the Flag-register on the stack, to avoid
jumping to both CALLs.

viewtopic.php?p=38606#p38606

That’s just an idea. I can see you are brilliant with Z80, and can maybe find a better solution
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
David G
Posts: 387
Joined: Thu Jul 17, 2014 7:58 am
Location: 21 North, 156 West

Re: Word Processor: Tasword for Lambda 8300

Post by David G »

Question: How to use the cursor keys

How do you activate the cursor keys when in normal typing mode? Say if you press B, how to make it Cursor-left instead of 'B'

The two emulators work different for the graphics keys and Functions. [EDIT:] On EightyOn it crashes, on NO$ZX it types out various letters
David G
Posts: 387
Joined: Thu Jul 17, 2014 7:58 am
Location: 21 North, 156 West

Re: Word Processor: Tasword for Lambda 8300

Post by David G »

Hmmm. $1877 works with Lambda.rom the same as my local DECODE and key table re-mapping

Thanks to Martin for providing the address of Lambda DECODE. Confirmed in the code (ROM code) that the cursor keys are "shift-keys". In other words, SHIFT-B is mapped to the ZX_L_ARROW keycode ($76)

Now I see why Tasword is crashing. It uses its own character-to-command table, and that probably needs remapping correspondingly. I've never been able to understand that table, but now's the time to dive in


By the way, I like your TZXduino. Reminds me of when I was using a 386 soundcard and Visual Basic to read old cassette tape ZX81 programs. The methods keep improving
David G
Posts: 387
Joined: Thu Jul 17, 2014 7:58 am
Location: 21 North, 156 West

Re: Word Processor: Tasword for Lambda 8300

Post by David G »

Bug in EightyOne emulator v1.29 for Lamda 8300 (Lambda.rom)

Code: Select all

DIM A$(321,32)
PRINT A$(1,1)
with 32K returns UV (undefined variable) or just shows a blank screen. This even happens after a hard reset

but with 48K returns OK

by comparison, it works fine with NO$ZX 16K or 32K with either 'Lambda 8300 (ZX81 revision)' or 'Lambda Mod (patch ZX81 bios)'
David G
Posts: 387
Joined: Thu Jul 17, 2014 7:58 am
Location: 21 North, 156 West

Re: Word Processor: Tasword for Lambda 8300

Post by David G »

OK, so now that I know what to look for it starts to make sense. Previously i was trying to figure out the characters in the mapping table

The mapping table in Tasword is not a character mapping table like in DECODE (which maps characters to keys). It is in the same format but maps functions to keys. So when the keyboard layout changes, this table must correspondingly be updated

working for navigation keys now
* SHIFT-C up arrow
* SHIFT-V right
* SHIFT-B left
* SHIFT-N right

i found it difficult to reverse-engineer. The disassembler just showed a bunch of repetitious opcodes, many NOPs etcs, which suggested it was data instead of code. When I finally organized the bytes into 10 rows of 5 (keyboard matrix) then it matched up with the keys

Code: Select all

;Unshifted keys Zero=no routine         
db       $00, $00, $00, $00 ;    Z X C V
db  $00, $00, $00, $00, $00 ;  A S D F G
db  $00, $00, $00, $00, $00 ;  Q W E R T
db  $00, $00, $00, $00, $00 ;  1 2 3 4 5
db  $00, $00, $00, $00, $00 ;  0 9 8 7 6
db  $00, $00, $00, $00, $00 ;  P O I U Y
db T_NL, $00, $00, $00, $00 ;n/l L K J H
db  $00, $00, $00, $00, $00 ; sp . M N B
The only unshifted key treated special is NEWLINE (the code calls the a function that moves the cursor). By contrast, the shifted-key table has many functions mapped. In Tasword, press SHIFT-G to see them all


By the way, this morning I was making so many builds and testing them that EightyOne appeared to overheat :D . After a couple hours break it started working again :o In the meantime ive been using NO$ZX

This alpha works on both. All keys working. Most features working but except some graphics characters

Is TZXduino able to display the 28-character long file name?

TASWORD_Lambda8300_Alpha_3.p
(15.83 KiB) Downloaded 134 times
Post Reply