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]