Re: A86: Alpha-Lock, and string input
[Prev][Next][Index][Thread]
Re: A86: Alpha-Lock, and string input
res shiftALock, (IY+shiftflags) should reset the shiftALock. I don't know
if this helps, though, since you said it didn't do what you want it to
do.
On Thu, 3 Dec 1998 20:47:12 EST Bowser797@aol.com writes:
>
>Hi, sorry for the long routine I'm including here, but this is the
>string
>routine that someone posted for me a week or so ago. I'd like to have
>it put
>Alpha-Lock on automatically, since it is in the variable-width font,
>and there
>is no way to backspace. I inserted the line "set shiftALock,
>(IY+shiftflags)", which someone told me should do it, but it doesn't.
>What do
>I do? Also, how do I turn it off after this routine, and who posted
>this
>routine for me so that I can credit you in my source. Thanx for the
>help on
>my first asm game.
>
>Bowser
>
>;String Input Routine by ???
>keyloop:
> set shiftALock, (IY+shiftflags) ;should turn on Alpha-Lock
> ld a,(_penCol) ;save cursorpos
> ld c,a
> ld a,Lunderscore ;maybe Lblock instead?
> call _vputmap ;draw cursor
> ld a,c ;restore pos
> ld (_penCol),a
>
> push hl ;_getkey kills hl
> call _getkey ;get keypress
> pop hl
>
> cp kEnter ;enter key?
> jr z, key_done ;then we're done
> cp kExit ;exit key?
> jr z, key_quit ;if so, then quit
> cp kSpace ;is it space?
> jr z, key_space ;if it is a space
>
> sub $1C ;k0
> jr c, keyloop ;it's not a known
>key if negative
> sub $0A ;difference between
>(k9+1) and k0
> jr c, key_number ;if neg, assumed to be
>a number key
> sub $02 ;difference between
>kCapA and (k9+1)
> jr c, keyloop ;it's not a known
>key if negative
> sub $1A ;difference between
>(kCapZ+1) and kCapA
> jr c, key_capletter ;if negative, then
>assume capital letter
> sub $1B ;difference between
>(kz+1) and (kCapZ+1)
> jr c, key_lowletter ;if neg, assume
>lower case letter
> jr keyloop ;must be an unknown
>key at this point
>
>key_space:
> ld a, Lspace ;char code for
>space
>key_add:
> ld (hl), a ;store
> inc hl ;inc string
>pointer
> call _vputmap ;display the key
> jr keyloop
>key_number:
> add a, 20+$26 ;keycode-->char
>code
> jr key_add
>key_capletter:
> add a, 25+$42 ;keycode-->char
>code
> jr key_add
>key_lowletter:
> add a, 31+$5d ;keycode-->char
>code
> jr key_add
>key_quit:
> ld hl,string ;don't leave an
>unterminated string
> ;and clear the cursor
>key_done:
> ld (hl), 0 ;zero-terminate
>string
> ld c,a ;clear cursor
> ld a,$20
> call _vputmap
> ld a,$20
> call _vputmap
> ld a,$20
> call _vputmap
> ld a,c ;return with
>kEnter or kExit
> ret ;quit
>
___________________________________________________________________
You don't need to buy Internet access to use free Internet e-mail.
Get completely free e-mail from Juno at http://www.juno.com/getjuno.html
or call Juno at (800) 654-JUNO [654-5866]