By Deano

## Life Beyond the Input$ command Ever found that you are doing some routine that requires the user to enter some kind of string of characters and the input command does’nt seem to forfill your requirements. Then why not program your own input routine. This is one of mine I have used in various routines such as my own STOS Adventure Creator. It works better because it allows you to move anyway in the text and change it. Try it and see. Heres the routine. 10 key off : curs off : flash off : hide on : mode 1 15 windopen 1,0,0,80,25,1,4 : curs off 20 get palette (4) : wait vbl 25 dim PAGE$(1000) 30 fastcopy start(4),back : fastcopy back,logic 610 rem EDIT MODE 612 XW=8 : YW=1 : paper 1 : pen 0 613 locate XW,YW 614 while K$="" 615 K$=inkey$ 616 wend 617 rem ~~~ CHECK CURSOR UP KEY 618 if asc(K$)=0 and scancode=72 and YW>1 then dec YW : locate XW,YW 619 rem ~~~ CHECK CURSOR DOWN KEY 620 if asc(K$)=0 and scancode=80 and YW<>21 then inc YW : locate XW,YW 621 rem ~~~ CHECK CURSOR LEFT KEY 622 if asc(K$)=0 and scancode=75 and XW>8 then dec XW : locate XW,YW 623 rem ~~~ CHECK CURSOR RIGHT KEY 624 if asc(K$)=0 and scancode=77 and XW<37 then inc XW : locate XW,YW 625 rem ~~~ CHECK RETURN KEY 626 if K$=chr$(13) then curs off : goto 636 627 rem ~~~ CHECK BACKSPACE KEY 628 if K$=chr$(8) and XW>8 then dec XW : locate XW,YW : print " "; : locate XW,YW 629 if K$=chr$(8) and XW=8 and YW>1 then dec YW : XW=35 : locate XW,YW : print " "; : locate XW,YW 632 rem ~~~ CHECK FOR KEYBOARD INPUT 633 if XW=35 and YW=21 then stop 634 if asc(K$)>31 and XW<37 and YW<21 then print K$; : inc XW 635 if asc(K$)>31 and XW=36 and YW<21 then XW=8 : inc YW 636 K$="" : goto 613 You can use this in your own programs if you wish.