=========================================================================== BBS: The Abacus * HST/DS * Potterville MI Date: 06-14-93 (01:24) Number: 96 From: JIM LITTLE Refer#: 14 To: ERIC LOW Recvd: NO Subj: (3/4) Input routine Conf: (35) Quick Basi --------------------------------------------------------------------------- '>>> Start of page 3. IF curletter < topletter THEN topletter = topletter - 1 Printline topletter, text, left, right END IF END IF CASE kRightArrow IF curletter < LEN(text) + 1 THEN curletter = curletter + 1 IF curletter > topletter + right - left THEN topletter = topletter + 1 Printline topletter, text, left, right END IF END IF CASE kPageUp flag = cPageUp finished = True CASE kPageDown flag = cPageDown finished = True CASE kUpArrow flag = cUpArrow finished = True CASE kDownArrow flag = cDownArrow finished = True CASE kEscape flag = cEscape finished = True CASE IS >= 32 IF keystroke <= 127 AND NOT notinsert AND LEN(text) + 1 <=_ length THEN 'valid character, with insert on text = LEFT$(text, curletter - 1) + CHR$(keystroke) +_ RIGHT$(text, LEN(text) - curletter + 1) curletter = curletter + 1 IF curletter > topletter + right - left + 1 THEN topletter = topletter + 1 END IF Printline topletter, text, left, right END IF IF keystroke <= 127 AND notinsert AND (curletter <_ LEN(text) + 1 OR LEN(text) + 1 <= length) THEN 'valid character, with insert off IF curletter = LEN(text) + 1 THEN text = text + CHR$(keystroke) ELSE MID$(text, curletter, 1) = CHR$(keystroke) END IF curletter = curletter + 1 IF curletter > topletter + right - left THEN topletter = topletter + 1 Printline topletter, text, left, right ELSE PRINT CHR$(keystroke); END IF END IF CASE kTab IF length <> LEN(text) THEN IF LEN(text) + 3 <= length THEN tabsp = 3 ELSE tabsp = length - LEN(text) END IF text = LEFT$(text, curletter - 1) + STRING$(tabsp, 32)_ + RIGHT$(text, LEN(text) - curletter + 1) curletter = curletter + tabsp IF curletter > topletter + right - left THEN topletter = topletter + tabsp END IF Printline topletter, text, left, right END IF CASE kReturn flag = cOk finished = True END SELECT LOOP UNTIL finished Printline 1, text, left, right END SUB '>>> Continued on page 4 --- * Origin: The Radix Point: Astoria, OR (1:105/330.9) SEEN-BY: 1/211 11/2 4 13/13 101/1 108/89 109/25 110/69 114/5 123/19 124/1 SEEN-BY: 153/752 154/40 77 157/110 159/100 125 430 575 950 203/23 209/209 SEEN-BY: 261/1023 280/1 390/1 396/1 15 397/2 2230/100 2440/5 3603/20