Quantcast
Channel: stardot.org.uk
Viewing all articles
Browse latest Browse all 2379

8-bit acorn software: other • Re: LISP: Slower with with Co-Pros and MOS 3.50

$
0
0
LISP 4.07e has for me, on a M128, produced greatly improved and more consistent results - thank you (times rounded to seconds):

Code:

Os 1.20MOS 3.20MOS 3.50TUBE121124126NOTUBE214213216
Without the Tube running it shows MOS 3.20, as before, being a smidge faster than OS 1.20 and MOS 3.50 being the laggard.

With the co-pro running the positions are reversed. MOS 3.20 is now slower than OS 1.20. Only a fraction. But what is MOS 3.20 doing extra with the Tube running than OS 1.20?

Regarding the ESCAPE flag I found this in application note 004 "Tube Application Note" regaring Register Set 1:
In the host to parasite direction the data register provides a 1 byte buffer. When the host writes to it an IRQ is generated to the parasite. It is used to pass on event interrupts, such as a keypress interrupt, and the escape operation.
and also:
Register 1 interrupts occur only in the host to parasite direction. The interrupt service sequence is:
Read type byte from R1DATA IF type <0 THEN
[; escape flag update
Replace the escape flag with bit 6 of type
RETURN from servicing interrupt
] ELSE
The NAUG and DABS MOS state that &403 in the Tube Host code is an entry point to "Copy ESCAPE flag to second processor". Without saying exactly when it's called.

The Advanced Master Reference Manual, however, says of EVENTV:
Event 6 - ESCAPE has been pressed
X - unused Y - unused
Escape condition will not be generated or transmitted to parasite
[snip]
Note an escape condition will not be transmitted to the parasite when the ESCAPE key is pressed if an escape condition has not been generated by changing bits 6 and 7 in location &00FF.
Personally, I find this all a bit ... hazy.

Statistics: Posted by james — Wed Nov 20, 2024 10:06 am



Viewing all articles
Browse latest Browse all 2379

Trending Articles