REM CONSTANTS 100 TWO% = INT ( VAL ("2")) REM NOT IS A "LOGICAL" OPERATOR, A NON-ARITHMETIC OPERATOR 110 UN% = NOT FALSE% REM MSG$ = "PRESS CTRL+C THEN RETURN FOR END-OF-TEXT" REM BUT NEED THE HIGH BIT SET, SO ASSIGN MSG$ THE TEDIOUS WAY 111 R$ = CHR$ ( INT ( VAL ("210"))) 112 E$ = CHR$ ( INT ( VAL ("197"))) 113 S$ = CHR$ ( INT ( VAL ("211"))) 114 SPACE$ = CHR$ ( INT ( VAL ("160"))) 115 C$ = CHR$ ( INT ( VAL ("195"))) 116 T$ = CHR$ ( INT ( VAL ("212"))) 117 N$ = CHR$ ( INT ( VAL ("206"))) 118 F$ = CHR$ ( INT ( VAL ("198"))) 119 HYPHEN$ = CHR$ ( INT ( VAL ("173"))) 120 MSG$ = CHR$ ( INT ( VAL ("208"))) + R$ + E$ + S$ + S$ + SP$ 121 MSG$ = MSG$ + C$ + T$ + R$ + CHR$ ( INT ( VAL ("204"))) + CHR$ ( INT ( VAL ("171"))) + C$ + SP$ 122 MSG$ = MSG$ + T$ + CHR$ ( INT ( VAL ("200"))) + E$ + N$ + SP$ 123 MSG$ = MSG$ + R$ + E$ + T$ + CHR$ ( INT ( VAL ("213"))) + R$ + N$ + SP$ 124 MSG$ = MSG$ + F$ + CHR$ ( INT ( VAL ("207"))) + R$ + SP$ 125 MSG$ = MSG$ + E$ + N$ + CHR$ ( INT ( VAL ("196"))) + HY$ + CHR$ ( INT ( VAL ("207"))) + F$ + HY$ 126 MSG$ = MSG$ + T$ + E$ + CHR$ ( INT ( VAL ("216"))) + T$ REM OUTPUT THE MESSAGE TO THE TOP OF THE TEXT SCREEN 130 IT$ = "12345678901234567890123" 140 TEXT : HOME : VTAB TWO%: POKE 34,UN% REM + IS A "STRING" OPERATOR, A NON-ARITHMETIC OPERATOR WHEN USED WITH STRINGS FOR CONCATENATION 150 IT$ = IT$ + "." 160 P% = INT ( VAL ("10" + STR$ ( LEN (IT$)))) 170 POKE P%, INT ( ASC ( LEFT$ (MSG$,UN%))) 180 MSG$ = MID$ (MSG$,TWO%) 190 IF LEN (MSG$) GOTO 150 REM READ STDIN 200 ONERR GOTO 500"END OF DATA? 210 INPUT "";STD$ 220 L% = INT ( LEN (STD$)) 230 IF NOT L% GOTO 210"READ NEXT LINE IF EMPTY 250 IT$ = BIGGEST$ 260 COMPARE$ = STD$ REM COMPARE WITH LONGEST STRING 270 IF INT ( LEN (COMPARE$)) GOTO 300"DECREMENT 280 IF INT ( LEN (IT$)) GOTO 210"READ NEXT LINE IF LESS THAN LONGEST STRING REM EQUAL TO LONGEST STRING 290 RESULT$ = RESULT$ + CHR$ (INT ( VAL ("13"))) + STD$: GOTO 210"READ NEXT LINE REM REMOVE A CHARACTER FROM BOTH IF THEY STILL HAVE LENGTH 300 IF INT ( LEN (IT$)) THEN IT$ = MID$ (IT$,TWO%):COMPARE$ = MID$ (COMPARE$,TWO%): GOTO 270"COMPARE AGAIN REM GREATER THAN LONGEST STRING 310 BIGGEST$ = STD$ 320 RESULT$ = BIGGEST$ 330 GOTO 210"READ NEXT LINE REM CATCH ERROR 500 POKE INT ( VAL ("216")),ZERO% 510 E% = INT ( PEEK ( INT ( VAL ("222")))) REM CLEAR THE MESSAGE FROM THE TEXT SCREEN 520 V% = INT ( PEEK ( INT ( VAL ("37")))) 530 TEXT : VTAB UN%: CALL INT ( VAL ("-868")) 540 VTAB V%: CALL INT ( VAL ("-912")) REM ERROR CODE 255 550 IT$ = "12345678901234567" 560 IT$ = IT$ + IT$ + IT$ 570 IT$ = IT$ + IT$ + IT$ + IT$ + IT$ 580 COMPARE$ = MID$ (IT$,UN%,E%) REM COMPARE ERROR CODE WITH 255 590 IF INT ( LEN (COMPARE$)) GOTO 610"DECREMENT 600 RESUME REM REMOVE A CHARACTER FROM THE ITERATOR 610 IT$ = MID$ (IT$,TWO%) REM DONE? IF NOT DONE REMOVE A CHARACTER FROM THE ERROR CODE 620 IF INT ( LEN (IT$)) THEN COMPARE$ = MID$ (COMPARE$,TWO%): GOTO 590"COMPARE AGAIN 630 PRINT RESULT$