10 REM > Confirm 1.00
   20 REM J.G.Harston
   30 :
   40 REM FNyn - Prompt for Yes/No confirmation
   50 REM =====================================
   60 REM Prompts Yes/No and returns TRUE/FALSE
   70 REM Called as:
   80 REM   PRINT "Do something";:action%=FNyn
   90 REM   IF action% THEN do something
  100 :
  110 DEFFNyn
  120 PRINT "? (Y/N)";:REPEAT:A%=INSTR("YN",CHR$(GETAND&DF)):UNTIL A%
  130 PRINT STRING$(5,CHR$127);MID$("YesNo ",A%*3-2,3);:=A%=1
  140 :
  150 :
  160 REM FNyna(A%) - Prompt for Yes/No/All confirmation
  170 REM ==============================================
  180 REM If the passed action% is zero, then immediately returns zero
  190 REM If the passed action% is non-0, prompts Yes/No/All
  200 REM Returns 0 = All - so future calls return immediately
  210 REM        <0 = Yes so <1 = Yes now and always
  220 REM        >0 = No
  230 REM Called as:
  240 REM   Previous set action%=0 for 'All' or non-zero to prompt
  250 REM   PRINT "Do something";:action%=FNyna(action%)
  260 REM   IF action%<1 THEN do something
  270 :
  280 DEFFNyna(A%):IF A%=0:=0
  290 PRINT "? (Y/N/A)";:REPEAT:A%=INSTR("YAN",CHR$(GETAND&DF)):UNTIL A%
  300 PRINT STRING$(7,CHR$127);MID$("YesAllNo ",A%*3-2,3);:=A%-2