On Thu, 4 Aug 2005 11:51:17 +0100 Stuart Brady <[EMAIL PROTECTED]> wrote:
> On Thu, Aug 04, 2005 at 09:59:48AM +0200, Frode Tenneboe wrote:
> 
> I don't know whether DI could interfere with serial drivers.

Ah. You are probably right. :)

> I tried setting BREAKDI... didn't seem to help, unfortunately.

Hmmm...do you have an old ROM? how about poke svar 321,1 then?
Haven't tested with the serial driver though...

> > Just a few questions:
> > 1) Why did you use JSTKSTORE and JSTRS? Couldn't you just 
> > RST#10 the character? Or..in other words, I don't think I
> > understand the "test" routine.
> 
> For each scan line, it determines whether that scan line has changed.
> If it has, then it prints the scan line number, followed by its new
> value.  The print routine prints out the (unsigned) integer held by A in
> decimal.  It stores the integer (JSTKSTORE), converts it to a string
> (JSTRS), and then prints that string (#0013).

I''m still not sure I understand the whole exercise. You are only
interested in printing the key input, right?

> > 2) Since you are alredy using ROM routines, why not use the
> > JREADKEY/JWAITKEY instead. This gives the key in A and
> > you are ready to send it to the stream.
> 
> I don't think there would be a way to determine when a key is released,
> or to allow keys to be pressed together.

Not sure what bearing this has one your function. As I understand it 
you want to use the SAM teletype-ish; one key at a time, serial. It
would probably help if I actually ran the code. :) Buf if your routine
works - don't change it! 

Here's the assembly from the keyscan routine in ROM:

D5B8 ;KEYSCAN.
D5B8 ;ACTION: LOOK FOR CHANGED BITS IN KEYBOARD STATE SINCE LAST SCAN, SO THAT
D5B8 ;SEVERAL KEYS CAN BE PRESSED DOWN AND A NEW KEY WILL STILL BE NOTICED. 
IGNORE
D5B8 ;KEY RELEASES. IF THERE HAVE BEEN NO NEW PRESSES, RETURN THE SAME KEYSCAN
D5B8 ;CODES AS LAST TIME, UNLESS ALL KEYS ARE RELEASED - THEN RETURN NULL CODE.
D5B8
D5B8 ;ENTRY: NO CONDITIONS
D5B8 ;EXIT: IF NZ, NO KEY PRESSED AND DE=FFFF
D5B8 ; IF Z, E=KEY VALUE
D5B8 ; IF D=0, NO SHIFT, ELSE D=1 (CAPS SH.) 2 (SYM. SH.) OR 3 (CONTROL)
D5B8
D5B8 ;ENTER AT KEYSCAN+3 WITH HL=DIFFERENT 18-BYTE KBUFF IF DESIRED
D5B8
D5B8 ;USED BY INKEY$ - 2 SCANS IN CASE OF INTERRUPT

 -Frode

-- 
^ Frode Tennebø         | email: [EMAIL PROTECTED] ^
| Ericsson AS           | Isebakkeveien 49                  |
| N-1788 Halden         | Phone: +47 45 24 99 39            |
| with Standard.Disclaimer; use Standard.Disclaimer;        |

Reply via email to