VisiCalc is written in assembly language, and so is Applesoft BASIC - and so is the firmware routine that Applesoft calls to get a key while flashing the cursor. You can read the keyboard without flashing the cursor from Applesoft or assembly language, but you need to learn the underlying soft-switches used to do this.
Name Hex Decimal Negative
KBD $C000 49152 -16384
KBDSTRB $C010 49168 -16368
In summary, you read KBD to get the value of the last key pressed. Bit 8 of that value (the 'strobe') will be set if it's a new key - in which case you need to subtract 128 to get the key value. You then access KBDSTRB to clear the strobe bit of KBD. For more details I refer you to page 5 of the Apple II Reference Manual or page 12 of the Apple IIe Technical Reference Manual.
Another good book which talks about this and many other things is The New Apple II User's Guide.
Here's a simple example of how to use these soft-switches:
10 KEY = PEEK (-16384) : REM READ KEY
20 IF KEY >= 128 THEN PRINT PEEK (-16368) : REM CLEAR STROBE
30 GOTO 10
Finally, consider visiting Retrocomputing for these kinds of questions.