Language Usage

Products: Language Usage
Date: 1983
Type: Cassette
Platform(s): TS 1000
Tags: Education

Language Usage is a three-part educational BASIC program that drills grammar rules including subject-verb agreement, double negatives, pronoun usage, irregular verb forms, and homonyms, spanning Parts I, II, and III saved as separate files (“LAN1”, “LAN2”, “LAN3”). Each part presents four-line sentences on screen and asks the student to identify which line contains a grammatical error (Part I) or choose the correct word from two options (Parts II and III). The program uses a notable numeric-alias system throughout, initializing single-letter variables (U=1, T=2, H=3, F=4, V=5, X=6, S=7, E=8, IX=9, W=10, C=100, K=500) via PI/PI arithmetic so that line-number targets in GO TO and GO SUB statements are expressed as arithmetic expressions rather than literal numbers. A real-time timer is implemented by polling PEEK 16437 (the ZX81 frame counter) and accumulating elapsed time in fractional minutes, displaying a running MM:SS clock for timed test modes. Score tracking uses DIM arrays for per-category wrong answers, and the program supports four modes: practice pass 1, practice pass 2, timed test pass 1, and timed test pass 2.


Program Analysis

Program Structure

The listing comprises three independent but structurally identical program files, each saved under a different name (“LAN1”, “LAN2”, “LAN3”) and each covering a distinct set of grammar topics. Part I addresses double negatives, subject-verb agreement, and pronoun usage. Part II covers the may/can distinction, irregular verb forms, and consistency of tense. Part III handles homonyms, lay/lie, set/sit, and among/between. Each part shares the same high-level architecture:

  1. Line 1: GOTO 1000 — title/splash sequence.
  2. Lines 1000–1199: Title screen with SCROLL-based animation, menu presentation, and mode selection.
  3. Lines 1200–1268/1259: DIM K$(…) — loads the grammar-rule strings used for on-screen rule display.
  4. Lines 1269–1399: Sets array C(N) to indicate how many sub-lines each rule covers, and NP for total question count.
  5. Lines 1330–1390: Displays the “RULES COVERED” screen.
  6. Lines 1400–1495: Timed test entry with “LAN” password check.
  7. Lines 1500–1550: Box-drawing subroutine driven by F$ coordinates.
  8. Lines 1814–1899: Initialization subroutine — zeroes all counters and dimensions arrays.
  9. Lines 1900–1999: Constant-setup subroutine; also calls initialization and directions.
  10. Lines 2000–3xxx/5xxx: Question data and main question loop.
  11. Lines 5000–5020: End-of-session routing — cycles through practice pass 1 → practice pass 2 → timed test pass 1 → timed test pass 2 → results.
  12. Lines 5100–5104: Four-line SCROLL subroutine.
  13. Lines 6000–6010: CLEAR, SAVE, RUN.

Numeric Alias System

One of the most prominent techniques in all three parts is the use of short variable names as integer aliases, initialized once in the subroutine at line 1900. All arithmetic is built on U=PI/PI (=1), with each subsequent alias adding 1:

VariableValueVariableValue
U1W10
T2C100
H3K500
F4O0
V5T020
X6TT22
S7H030
E8FT14
IX9C0 (Parts II/III)500

Every GOTO and GOSUB target is written as an arithmetic expression using these aliases, e.g. GOSUB K*H/T = GOSUB 750, GOTO T*K = GOTO 1000, GOSUB X*X*W = GOSUB 360. This serves both as a memory-saving technique (expressions sharing already-loaded variable values) and as a mild obfuscation. Parts II and III introduce C0 (= K = 500) as a second alias to distinguish it from the array name C(), since Part II reuses K for 500 but adds C0=C*W at line 1914.

Question Data Encoding in A$

Each question is encoded as a single string A$ whose leading characters are positional metadata. For Part I, the string begins with a two-digit row, two-digit column, and other layout parameters parsed with VAL A$(U TO T), VAL A$(H TO F), etc. For Parts II and III, an extended header encodes screen positions for both choice words, the display subroutine number, and which word is correct. The question text then follows inline. The display subroutines (lines 6–43 in each part) decode this header using VAL on substrings and jump to the appropriate layout routine via GOSUB VAL A$(W+S TO W+E). Different layout subroutines handle cases where one or both words wrap, are parenthesized, or split across lines.

Real-Time Timer

The timer subroutine at lines 100–145 polls PEEK 16437 (the system frame counter) to detect frame advances. Each detected tick increments TIME by 0.071111 (approximately 1/14 of a second, since the counter ticks at roughly 50 Hz but is sampled at display rate). When TIME - TIME0 >= 1/6 of a minute (i.e. about 10 seconds), the displayed MM:SS is updated. The timer only runs when E1 or E2 is set (timed-test modes), and it executes inside the keypress-wait loop so no separate interrupt mechanism is needed.

Mode and Session Flags

Four boolean flags control program flow:

  • P1: Practice pass 1 active.
  • P2: Practice pass 2 active.
  • E1: Timed test pass 1 active.
  • E2: Timed test pass 2 active.

At the end-of-session handler (line 5000 onward), the program cycles: if P1 just finished, it sets P2=1; if E1 just finished, it sets E2=1; otherwise it goes to results. The timed test requires the user to type “LAN” as a code at the entry screen (line 1445/1448), preventing accidental entry.

Score Tracking

Per-category wrong-answer counts are stored in DIM Q(N) where N matches CON (the current grammar category, 1–5 depending on the part). Global counters NWRONG and NWRONG1 track total errors and first-attempt errors respectively. Results screens (line 300+) display per-category scores as fractions and percentages, computed inline with INT (C*R(N)/denominator) where C=100 converts to a percentage.

Box-Drawing Subroutine

The subroutine at lines 1500–1550 draws a decorative border box using block graphics characters. It reads four two-digit coordinate fields from the string F$ (top row P, bottom row B, left column L, right column R) and draws the top/bottom edges with ▀▀▀▀/▄▄▄▄, side edges with /, and corners with ▛▜▙▟. It is called via GOSUB K*H/T (= GOSUB 750) after setting F$ to the desired coordinates.

String Array for Rules Text

Grammar rule text is stored in a fixed-width string array K$(N, width) dimensioned with enough rows for all rule lines. Each part uses different dimensions: Part I uses DIM K$(21, 30), Part II DIM K$(23, 29), Part III DIM K$(22, 29). Individual rule lines are assigned by index and printed sequentially. The C(N) array stores how many sub-lines follow each rule header, allowing the display loop (lines 1340–1355) to print as many continuation lines as needed.

Notable Techniques and Anomalies

  • In Part III, the strings E$ and H$ hold conjugation-pair data (e.g. "(LAY LIE)(LAID LAY)…" and "(AMONG BETWEEN)") that are sliced inline into question A$ strings, avoiding repetition of common word pairs.
  • The SLOW/FAST switching around keypress loops (lines 79–86, 100–145) is idiomatic: SLOW mode is entered to allow display refresh, FAST is restored once a key is detected.
  • Part I uses G$="4 (NO ERRORS)" as the label for choice 4, allowing a “no error” option; Parts II and III use a two-choice model only.
  • Line 9998 in Parts II and III (PRINT PEEK 16412+256*PEEK 16413-16384) is a developer diagnostic that prints the size of the BASIC program in bytes; it is not reachable in normal execution.
  • The WRONG flag prevents double-counting: if a question was already answered wrong on first attempt, the second-attempt wrong counter is not incremented again.
  • Part I line 1090 prints copyright text at AT T0,T (row 20), while Part III prints it at line 1092 — minor layout differences between parts reflecting independent editing.
  • In Part II lines 1517–1518 and 1537–1538, the box-drawing subroutine checks INKEY$ for “F” or “S” mid-loop to allow switching between FAST and SLOW display speed — a feature absent from Parts I and III.

Content

Appears On

Related Products

For grades four through 12. Designed to help improve scores on standardized achievement tests. Records on work done, helps identify...

Related Articles

Related Content

Image Gallery

Source Code

   1 GOTO 1000
   2 CLS
   3 IF NOT E1+P1+E2+P2 THEN GOSUB C*E
   4 IF E1+E2 THEN PRINT AT U,W+V;"TIME USED ";MIN;":";SEC
   5 LET F$="4 (NO ERRORS)"
   6 IF NP-NLEFT>=H AND CN<>V THEN GOTO E
   7 PRINT AT W,S;"SELECT THE LINE";AT W+T,V;"WHICH HAS AN ERROR"
   9 PRINT AT W+X,O;"1 ";A$(X TO VAL A$(U TO T));AT W+S,O;"2 ";A$(VAL A$(U TO T)+U TO VAL A$(H TO F));AT W+E,O;"3 ";A$(VAL A$(H TO F)+U TO );AT W+IX,O;G$
  10 IF CON<>T THEN GOSUB H0
  12 SLOW
  13 GOSUB C
  14 GOSUB C*T
  15 IF DONE<>U THEN GOTO T0+X
  16 IF CON<>T THEN GOSUB W*F
  17 RETURN
  27 GOTO W+H
  30 LET D=C(CN)
  31 LET C(CN)=H
  33 IF CON=F THEN LET C(CN)=F
  34 RETURN
  40 LET C(CN)=D
  41 RETURN
  79 SLOW
  80 IF INKEY$ <>"" THEN GOTO E*W
  81 IF INKEY$ ="" THEN GOTO E*W+U
  86 LET C$=INKEY$ 
  87 FAST
  89 IF C$=CHR$ (C+W+E) THEN RUN K+C
  90 LET LL=O
  91 RETURN
 100 SLOW
 101 IF INKEY$ <>"" THEN GOTO C+U
 102 LET C$=""
 103 IF INKEY$ <>"" THEN LET C$=INKEY$ 
 104 IF C$<>"" THEN GOTO C+C/T
 105 IF NOT E1+E2 THEN GOTO C+T
 110 LET T2=PEEK 16437
 115 LET TICK=(T2<>T1)
 120 IF NOT TICK THEN GOTO C+T
 125 LET T1=T2
 130 LET TIME=TIME+.071111
 135 IF TIME-TIME0<U/X THEN GOTO C+T
 140 LET TIME0=TIME
 141 LET MIN=INT TIME0
 142 LET SEC=W*INT (X*(TIME0-MIN))
 143 PRINT AT U,H0-V;MIN;":";SEC
 145 GOTO C+T
 150 LET IK=O
 152 IF C$=CHR$ (C+W+E) THEN RUN C+K
 153 FAST
 155 IF C$<>A$(V) THEN RETURN
 160 LET IK=U
 162 RETURN
 180 IF CON=T THEN GOSUB C*E+C/T
 181 IF IK=U THEN GOTO K/F
 182 GOTO C*T+U
 200 GOTO C+W*E
 201 IF NOT E1+E2 THEN GOTO T*C+F
 202 LET NWRONG=NWRONG+U
 203 GOTO 272
 204 IF WRONG=U THEN GOTO T*C+H0
 205 LET F$=J$
 206 IF C(CN)<=V THEN LET F$(F TO F)=STR$ (C(CN)+F)
 207 IF C(CN)>V THEN LET F$(H TO F)=STR$ (C(CN)+F)
 216 GOSUB K*H/T
 217 PRINT AT C(CN)+V,O;S$;S$;S$;S$;S$
 218 PRINT AT U,U;"THE RULE IS ---       ";L$;AT T,U;K$(CN);AT C(CN)+H,U;"  ";L$;Q$;AT C(CN),U;L$;L$;AT C(CN)+H,W+U;"[T][R][Y] [A][G][A][I][N]"
 219 FOR N=T TO X
 220 PRINT AT N+U,U;
 221 IF CN=E AND N>T THEN PRINT AT N+T,U;
 222 IF C(CN)>=N THEN PRINT K$(CN+N-U)
 223 NEXT N
 224 LET DONE=O
 225 LET NWRONG1=NWRONG1+U
 226 LET WRONG=U
 227 IF CON=T THEN GOSUB 860
 229 RETURN
 230 PRINT AT C(CN)+H,X;"█[T][H][E]█[E][R][R][O][R]█[I][S]█[I][N]█[L][I][N][E]█";CHR$ (156+VAL (A$(V)));"█";
 237 LET NWRONG=NWRONG+U
 238 IF CON THEN LET Q(CON)=Q(CON)+U
 240 GOTO 265
 250 IF NOT E1+E2 THEN GOTO 255
 252 GOTO 273
 255 CLS
 256 LET F$="07110920"
 257 GOSUB K*H/T
 258 PRINT AT IX,W+T;"[C][O][R][R][E][C][T]"
 259 LET F$="15170427"
 260 GOSUB K*H/T
 261 PRINT AT W+X,X;NP-NLEFT+U;" DONE;  ";NLEFT-U;" TO GO";
 265 GOSUB X*X*W
 270 LET WRONG=O
 271 GOTO 273
 272 LET Q(CON)=Q(CON)+U
 273 LET DONE=U
 275 LET NLEFT=NLEFT-U
 276 IF NLEFT=O THEN GOTO K*V
 277 IF CON=T THEN GOSUB E*C+W*X
 280 RETURN
 300 CLS
 305 IF P2+E2 THEN GOTO H*C+W+V
 306 LET F$="03200427"
 307 GOSUB K*H/T
 311 PRINT AT V,S;"YOUR SCORE CARD",AT IX,V;NP-NWRONG1;" RIGHT ON FIRST TRY",AT W+U,V;NWRONG1-NWRONG;" RIGHT ON SECOND TRY",AT W+H,V;NWRONG;" WRONG "
 312 GOSUB X*X*W
 313 RUN K+C
 315 LET F$="00200031"
 316 GOSUB K*H/T
 317 IF NOT P2 THEN GOTO 322
 318 LET NWRONG=NWRONG1
 319 PRINT AT U,F;"PRACTICE"
 322 IF E2 THEN PRINT AT T0-U,T;"TIME USED: ";MIN;":";SEC
 324 PRINT AT T,T;"TEST RESULTS";AT U,T0+S;"PER-";TAB W+IX;"SCORE   CENT";AT S,T;"DBL. NEGATIVES";TAB W+E;R(U);TAB T0+U;"OF ";T;TAB T0+E;INT C*R(U)/T;
 325 PRINT AT F,T;"SUBJECT/VERB";TAB W+E;R(T);TAB T0+U;"OF ";E;TAB T0+E;INT (C*R(T)/E);TAB T;"AGREEMENT"
 327 PRINT AT IX,T;"PRONOUNS AS";TAB W+E;R(H);TAB T0+U;"OF ";T;TAB T0+E;INT C*R(H)/T;TAB T;"SUBJECTS"
 329 PRINT AT W+T,T;"PRONOUNS AS";TAB W+E;R(F);TAB T0+U;"OF ";T;TAB T0+E;INT C*R(F)/T;TAB T;"OBJECTS"
 330 PRINT AT W+V,T;"PRONOUNS AND";TAB W+E;R(V);TAB T0+U;"OF ";T;TAB T0+E;INT C*R(V)/T;TAB T;"ANTECEDENTS"
 332 PRINT AT W+E,S;"TOTAL:";TAB W+E;W+X-NWRONG;TAB T0+U;"OF ";W+X;TAB T0+E;INT (C*(W+X-NWRONG)/(W+X))
 334 GOSUB X*X*W
 340 RUN K+C
 360 PRINT AT T0+U,X;"[P][R][E][S][S]█[C]█[T][O]█[C][O][N][T][I][N][U][E]"
 362 GOSUB E*W-U
 365 RETURN
 700 CLS
 710 RETURN
 800 LET F$="00020031"
 801 LET UU=U
 802 IF CON=T THEN GOSUB E*C+W*V
 804 LET F$(F TO F)=STR$ (C(CN)+UU)
 810 GOSUB K*H/T
 820 PRINT AT U,U;K$(CN)
 825 FOR N=T TO X
 828 IF CN=E AND N>=H THEN GOTO 832
 830 IF C(CN)>=N THEN PRINT AT N,U;K$(CN+N-U)
 831 GOTO 834
 832 IF C(CN)>=N THEN PRINT AT N+U,U;K$(CN+N-U)
 834 NEXT N
 835 IF CON=T THEN GOSUB E*C+W*X
 840 RETURN
 850 LET D1=CN
 851 LET K$(W+U)=K$(D1)
 852 LET CN=E
 853 LET D2=C(E)
 854 LET C(E)=F
 855 LET UU=T
 856 RETURN
 860 LET K$(W+U)=K$(F+W)
 861 LET CN=D1
 862 LET C(E)=D2
 863 RETURN
 900 CLS
 905 LET F$="01200229"
 910 GOSUB K*H/T
 915 PRINT AT T,W+U;"DIRECTIONS",AT F,F;"(1) YOU WILL BE GIVEN",TAB E;"FOUR LINES OF WORDS",AT S,F;"(2) FIND THE LINE THAT",TAB E;"HAS AN ERROR IN IT"
 930 PRINT AT W,F;"(3) PUSH THE NUMBER",TAB E;"OF THAT LINE",AT FT,F;"WORDS BEGINNING WITH",TAB F;"CAPITALS APPEAR AS";TAB F;"FOLLOWS:",AT W+E,E;"[M]R.   [M]RS.  [G]EORGE"
 934 GOSUB X*X*W
 935 RETURN
 1000 CLS
 1003 FAST
 1010 GOSUB 1900
 1011 SLOW
 1012 SCROLL
 1014 PRINT TAB H;"LANGUAGE USAGE"
 1016 GOSUB K*V+C+U
 1018 PRINT TAB T0;"MASTER"
 1020 GOSUB K*V+C
 1053 LET F$="12160019"
 1054 GOSUB K*H/T
 1055 LET F$="15191728"
 1056 GOSUB K*H/T
 1057 PRINT AT W+V,T0-U;"▜";AT W+X,T0-H;"▙";AT W+V,H0-U;"TM"
 1058 SCROLL
 1059 SCROLL
 1074 PRINT TAB W+T;"PART I"
 1075 SCROLL
 1076 SCROLL
 1083 PRINT TAB S;"GRADES 4 THRU 12"
 1085 GOSUB K*V+C
 1089 PRINT TAB T;"SOFTWARE FOR EXCELLENCE"
 1090 PRINT AT T0,T;"COPYRIGHT 1982  BY"
 1094 SCROLL
 1095 PAUSE H*C
 1100 FAST
 1101 GOSUB 1900
 1102 GOSUB T*K-E*W
 1105 CLS
 1107 LET F$="00190031"
 1110 GOSUB K*H/T
 1112 LET Z$="▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
 1114 PRINT AT T,V;"LANGUAGE USAGE PART I";AT F,U;Z$;Z$;TAB U;"PREPARATION - RULES";TAB U;"▀▀▀▀▀▀";Z$;AT S,U;"1 SUBJECT/VERB AGREEMENT";TAB U;"2 DOUBLE NEGATIVES";TAB U;"3 PRONOUNS AS SUBJECTS";TAB U;"4 PRONOUNS AS OBJECTS";TAB U;"5 PRONOUN/ANTECEDENT AGREEMENT";AT W+H,U;Z$;Z$;TAB U;"TRAINING CAMP";TAB U;Z$;AT W+S,U;"6 TEST PRACTICE",TAB U;"7 TIMED TEST"
 1120 PRINT AT T0,S;"[C][H][O][O][S][E]█[A]█[N][U][M][B][E][R]"
 1125 GOSUB T*K-C*T
 1126 LET LL=U
 1130 GOSUB E*W-U
 1132 LET L=CODE C$-T*W-E
 1135 IF L<U OR L>S THEN GOTO K+C+H0
 1140 IF L<=V THEN GOTO 1158
 1141 FAST
 1142 GOTO 1134+H*L
 1152 LET P1=U
 1153 LET NP=W+E
 1154 GOTO T*K
 1155 LET E1=U
 1156 LET NP=W+E
 1157 GOTO K+C*F
 1158 LET CON=L
 1159 IF L=U THEN LET CON=T
 1160 IF L=T THEN LET CON=U
 1162 GOTO 1269
 1200 DIM K$(T0+V,H0)
 1214 LET K$(U)="DO NOT USE MORE THAN ONE"
 1216 LET K$(T)="NEGATIVE IN A CLAUSE"
 1218 LET K$(H)="([I] CANNOT GET NOTHING DONE.)"
 1220 LET K$(F)="  REMEMBER THAT ADVERBS SUCH"
 1222 LET K$(V)="  AS HARDLY, BARELY, SCARCELY,"
 1224 LET K$(X)="  ETC. ARE NEGATIVES"
 1226 LET K$(S)="SUBJECT/VERB AGREEMENT--"
 1228 LET K$(E)="A VERB MUST AGREE WITH"
 1230 LET K$(IX)="ITS SUBJECT IN NUMBER"
 1232 LET K$(W)="WATCH OUT FOR"
 1234 LET K$(W+U)="  CONTRACTIONS"
 1236 LET K$(W+T)="  SUBJECTS COMING AFTER VERBS"
 1238 LET K$(W+H)="  DISTRACTING PHRASES"
 1240 LET K$(W+F)="  CONTRACTIONS"
 1242 LET K$(W+V)="  COMPOUND SUBJECTS"
 1244 LET K$(W+X)="WHEN A PRONOUN IS THE [S][U][B][J][E][C][T]"
 1246 LET K$(W+S)="OF A VERB, USE THE SUBJECTIVE"
 1248 LET K$(W+E)="FORM"
 1254 LET K$(T0-U)="WHEN A PRONOUN IS THE [O][B][J][E][C][T]"
 1256 LET K$(T0)="OF A VERB OR PREPOSITION, USE"
 1257 LET K$(T0+U)="THE OBJECTIVE FORM "
 1259 LET K$(T0+T)="  ([M]ARSHA CALLED [T][H][E][M].)"
 1261 LET K$(T0+H)="A PRONOUN MUST AGREE WITH"
 1262 LET K$(T0+F)="ITS ANTECEDENT IN NUMBER,"
 1263 LET K$(T0+V)="GENDER, AND PERSON"
 1268 RETURN
 1269 GOSUB T*IX*C
 1270 IF CON<>U THEN GOTO 1280
 1272 LET C(U)=H
 1273 LET C(F)=H
 1275 LET NP=T
 1276 GOTO 1330
 1280 IF CON<>T THEN GOTO 1291
 1281 LET C(S)=U
 1282 LET C(E)=H
 1283 LET C(W+U)=U
 1284 LET C(W+T)=U
 1285 LET C(W+H)=U
 1287 LET C(W+V)=U
 1289 LET NP=E
 1290 GOTO 1330
 1291 IF CON<>H THEN GOTO 1305
 1292 LET C(W+X)=H
 1294 LET NP=T
 1298 GOTO 1330
 1305 IF CON<>F THEN GOTO 1310
 1306 LET C(T0-U)=F
 1308 LET NP=T
 1309 GOTO 1330
 1310 IF CON<>V THEN GOTO 1330
 1311 LET C(T0+H)=H
 1313 LET NP=T
 1314 GOTO 1330
 1317 LET B$="EXAMPLE - ERROR IN "
 1318 LET A$="[E]VERY BOY TO [H][I][S] POST."
 1319 PRINT AT W+U,U;"I. ";B$;TAB TT+U;"[N][U][M][B][E][R]";AT W+H,F;A$;AT W+H,W+S;"[T][H][E][I][R] POST.";AT W+X,W+U;"-CORRECT-";AT W+E,V;A$
 1320 GOSUB X*X*W
 1321 SLOW
 1325 PRINT AT W+U,U;"II. ";B$;TAB TT+T;"[G][E][N][D][E][R] ";AT W+H,F;A$;AT W+H,W+S;"[H][E][R] POST.  ";AT W+X,W+U;"-CORRECT-";AT W+E,V;A$
 1326 GOSUB X*X*W
 1327 SLOW
 1328 PRINT AT W+U,U;"III. ";B$;TAB TT+H;"[P][E][R][S][O][N]";AT W+H,F;A$;AT W+H,W+S;"[Y][O][U][R] POST.";AT W+X,W+U;"-CORRECT-";AT W+E,V;A$
 1329 RETURN
 1330 CLS
 1335 LET F$="00200031"
 1336 GOSUB K*H/T
 1337 PRINT AT U,E;"RULES COVERED",TAB U;Z$;Z$;
 1338 LET M=S
 1339 GOSUB 1360
 1340 FOR N=U TO H0-U
 1341 IF NOT C(N) THEN GOTO 1355
 1342 IF N=E THEN LET M=M+U
 1344 PRINT AT M,U;K$(N)
 1345 FOR L=T TO X
 1346 IF C(N)<L THEN GOTO 1354
 1347 LET M=M+U
 1348 IF N=E AND L=H THEN LET M=M+T
 1350 PRINT AT M,U;K$(N+L-U)
 1353 NEXT L
 1354 LET M=M+T
 1355 NEXT N
 1357 IF CON=H THEN PRINT TAB V;"([T][H][E][Y] CALLED [A]NN.)"
 1359 GOTO 1370
 1360 IF CON=T THEN LET M=F
 1361 PRINT AT F,U;
 1362 IF CON=U THEN PRINT "DOUBLE NEGATIVES--"
 1363 IF CON=H THEN PRINT "PRONOUNS AS SUBJECTS--"
 1364 IF CON=F THEN PRINT "PRONOUNS AS OBJECTS--"
 1365 IF CON=V THEN PRINT "PRONOUN/ANTECEDENT AGREEMENT"
 1369 RETURN
 1379 IF CON=V THEN GOSUB 1315
 1380 IF CON<>H AND CON<>F THEN GOTO 1387
 1381 PRINT AT W+T,F;"SUBJECTIVE     OBJECTIVE";AT W+H,E;"I ........... ME";TAB E;"WE .......... US";TAB S;"YOU ......... YOU";TAB X;"HE,SHE ..... HIM,HER",TAB S;"THEY ....... THEM",TAB H;"WHO,WHOEVER . WHOM,WHOMEVER"
 1382 IF CON=H THEN PRINT AT W+T,F;"[S][U][B][J][E][C][T][I][V][E]"
 1383 IF CON=F THEN PRINT AT W+T,T0-U;"[O][B][J][E][C][T][I][V][E]"
 1387 GOSUB X*X*W
 1390 GOTO T*K
 1400 FAST
 1405 CLS
 1410 PRINT AT H,W;"▛▀▀▀▀▀▀▀▀▀▀▜";TAB W;"▌TIMED TEST▐";TAB W;"▙▄▄▄▄▄▄▄▄▄▄▟"
 1420 PRINT AT E,F;" TO START THE TEST";AT W,V;"TYPE THE CODE LETTERS";AT W+T,F;" THENPRESS ENTER"
 1430 SLOW
 1443 INPUT C$
 1445 IF C$="LAN" THEN GOTO 1470
 1450 PRINT AT T0,E;"[S][O][R][R][Y]█[W][R][O][N][G]█[C][O][D][E]"
 1451 FOR N=U TO V*W
 1452 NEXT N
 1455 GOTO C+K
 1470 LET E1=U
 1495 GOTO T*K
 1500 LET P=VAL F$(U TO T)
 1505 LET B=VAL F$(H TO F)
 1507 LET L=VAL F$(V TO X)
 1510 LET R=VAL F$(S TO E)
 1514 FOR N=L TO R STEP F
 1515 PRINT AT P,N;"▀▀▀▀";
 1516 PRINT AT B,N;"▄▄▄▄";
 1520 NEXT N
 1530 FOR N=P TO B
 1535 PRINT AT N,L;"▌";AT N,R;"▐";
 1540 NEXT N
 1545 PRINT AT P,L;"▛";AT P,R;"▜";AT B,L;"▙";AT B,R;"▟";
 1550 RETURN
 1814 LET E1=O
 1815 LET E2=O
 1820 LET P1=O
 1821 LET P2=O
 1822 LET TD=C
 1823 LET LL=O
 1825 DIM R(V)
 1830 DIM C(H0-U)
 1836 DIM Q(V)
 1841 LET NWRONG=O
 1842 LET TIME=O
 1843 LET NWRONG1=O
 1844 LET MIN=O
 1845 LET SEC=O
 1850 LET TIME0=-U
 1860 LET T2=O
 1870 LET T1=O
 1890 LET WRONG=O
 1899 RETURN
 1900 LET U=PI/PI
 1901 LET T=U+U
 1902 LET H=T+U
 1903 LET F=H+U
 1904 LET V=F+U
 1905 LET X=V+U
 1906 LET S=X+U
 1907 LET E=S+U
 1908 LET IX=E+U
 1909 LET W=V+V
 1910 LET C=W*W
 1911 LET K=C*W
 1912 LET O=U-U
 1913 LET T0=W*T
 1914 LET TT=T0+T
 1916 LET H0=H*W
 1917 LET FT=W+F
 1918 LET J$="00050031"
 1919 LET L$="        "
 1920 LET Q$=L$+L$
 1921 LET S$=Q$+Q$
 1995 GOSUB K+T*C
 1996 GOSUB T*K-T*C
 1999 RETURN
 2000 FAST
 2001 LET UP=T*K+S*W
 2003 LET CN=U
 2004 LET NLEFT=NP
 2005 LET CON=U
 2007 LET G$="4 (NO ERRORS)"
 2008 GOSUB IX*C
 2200 LET CON=U
 2201 LET CN=U
 2209 IF NOT P1+C(CN) THEN GOTO 2220
 2210 LET A$="29512[T]HE MAPS ARE SO WRINKLEDTHAT WE CANNOT MAKE NOSENSE OUT OF THEM."
 2215 GOSUB T
 2229 IF NOT P2 THEN GOTO 2240
 2230 LET A$="23421[I]T DOESN▘T MAKE NOSENSE TO PUT WAX ONA RUSTY CAR."
 2235 GOSUB T
 2249 IF NOT C(CN) THEN GOTO 2260
 2250 LET A$="27501[D]EBBIE CAN▘T HARDLY BEEXPECTED TO GET A FIRSTCHAIR IN THE BAND THIS YEAR."
 2255 GOSUB T
 2269 IF NOT E2 THEN GOTO 2280
 2270 LET A$="28541[I] CANNOT ACCEPT NO MORECHECKS FOR ITEMS PURCHASEDAT THE STORE."
 2275 GOSUB T
 2289 IF NOT E1 THEN GOTO 2300
 2290 LET A$="24434[I]T DOESN▘T MAKE ANYDIFFERENCE WHO GOESFIRST IN THIS CONTEST."
 2295 GOSUB T
 2300 LET CON=T
 2301 LET CN=W+U
 2309 IF NOT P1+C(CN) THEN GOTO 2320
 2310 LET A$="21361[T]HERE▘S THE BOYSWHO TOOK MY HATAND GLOVES."
 2315 GOSUB T
 2329 IF NOT P2 THEN GOTO 2340
 2330 LET A$="24401[W]HERE▘S THE RABBITSYOU SAID YOU HADCAUGHT?"
 2335 GOSUB T
 2349 IF NOT C(CN) THEN GOTO 2360
 2350 LET A$="25431[D]ON▘T SHE CARE ABOUTTHE COMPLAINTS SHEHAS BEEN RECEIVING?"
 2355 GOSUB T
 2369 IF NOT E2 THEN GOTO 2380
 2370 LET A$="28523[T]HIS ALGEBRA PROBLEM ISVERY HARD TO FIGURE OUT.[I]T DON▘T MAKE SENSE."
 2375 GOSUB T
 2389 IF NOT E1 THEN GOTO 2400
 2390 LET A$="23404[W]HERE▘S THE FUNNY-LOOKING COAT WITHTHREE SLEEVES?"
 2395 GOSUB T
 2401 LET CN=W+T
 2409 IF NOT P1+C(CN) THEN GOTO 2420
 2410 LET A$="16274[H]ERE ARE MYKEYS FOR MYNEW AUTOMOBILE."
 2415 GOSUB T
 2429 IF NOT P2 THEN GOTO 2440
 2430 LET A$="19341[W]HERE IS [H]ARRYAND [L]OUISE THISEVENING?"
 2435 GOSUB T
 2449 IF NOT C(CN) THEN GOTO 2460
 2450 LET A$="17312[S]HOULD WE GOWHERE THERE ISTWO MOVIE THEATERS?"
 2455 GOSUB T
 2469 IF NOT E2 THEN GOTO 2480
 2470 LET A$="22371[T]HERE IS AT LEASTTWO REASONS FORMY ASKING."
 2475 GOSUB T
 2489 IF NOT E1 THEN GOTO 2500
 2490 LET A$="25424[H]ERE IS THE BEST ONEOF THE NEW MOVIESTHIS YEAR."
 2495 GOSUB T
 2501 LET CN=W+H
 2509 IF NOT P1+C(CN) THEN GOTO 2520
 2510 LET A$="26452[O]NE OF THE [B]OY [S]COUTSARE LOOKING FOR THETRAIL MARKINGS."
 2515 GOSUB T
 2529 IF NOT P2 THEN GOTO 2540
 2530 LET A$="26451[T]HREE HOURS▘ WORK AREALL [I] AM ABLE TO DOTHIS AFTERNOON."
 2535 GOSUB T
 2549 IF NOT C(CN) THEN GOTO 2560
 2550 LET A$="25422[T]HE PAIL OF CHERRIESARE READY TO TAKETO THE MARKET."
 2555 GOSUB T
 2569 IF NOT E2 THEN GOTO 2580
 2570 LET A$="23422[S]IX MONTHS▘ EFFORTARE INVOLVED IN THEPAINTING OF THAT BOAT."
 2575 GOSUB T
 2589 IF NOT E1 THEN GOTO 2600
 2590 LET A$="27484[W]HEN YOU GET A MINUTE,THE HAMPER OF CLOTHESIS READY TO GO UPSTAIRS."
 2595 GOSUB T
 2701 LET CN=W+V
 2709 IF NOT P1+C(CN) THEN GOTO 2720
 2710 LET A$="26471[M]IKE AND [P]AT IS GOINGWITH ME TO THE COUNTYFAIR THIS [S]ATURDAY."
 2715 GOSUB T
 2729 IF NOT P2 THEN GOTO 2740
 2730 LET A$="23441[I]S THE DOG AND THECAT ABLE TO GET ALONGIN AN AUTOMOBILE?"
 2735 GOSUB T
 2749 IF NOT C(CN) THEN GOTO 2760
 2750 LET A$="28492[A]FTER THE CLASS, EITHER[A]LICE OR [M]ARGARET AREGOING TO TAKE MY BOOKS."
 2755 GOSUB T
 2769 IF NOT E2 THEN GOTO 2780
 2770 LET A$="21481[I]N THE BOOK IS ACOLORFUL PICTURE FROM [M]AINEAND A BRIEF HISTORY."
 2775 GOSUB T
 2789 IF NOT E1 THEN GOTO 2800
 2790 LET A$="27474[E]ITHER THE [G]REY OR THE[B]LUE IS GOING TO WINTHE FOOTBALL GAME."
 2795 GOSUB T
 2800 LET CON=H
 2801 LET CN=W+X
 2809 IF NOT P1+C(CN) THEN GOTO 2820
 2810 LET A$="17291[F]RANK AND MEARE GOING TOTHE POOL."
 2815 GOSUB T
 2829 IF NOT P2 THEN GOTO 2840
 2830 LET A$="23434[S]HE AND [T]ERRI WERETHE BEST PAINTERS INTHE COMMUNITY."
 2835 GOSUB T
 2849 IF NOT C(CN) THEN GOTO 2860
 2850 LET A$="19342[F]OR THE PRIZESUS GIRLS HAD TOWIN OR PLACE EACH TIME."
 2855 GOSUB T
 2869 IF NOT E2 THEN GOTO 2880
 2870 LET A$="25411[W]HOMEVER GOES SHOULDBE OUR VERY BESTREPRESENTATIVE."
 2875 GOSUB T
 2889 IF NOT E1 THEN GOTO 2900
 2890 LET A$="22364[W]ILL EITHER HE ORSHE BE ABLE TOMEET THE DEADLINE?"
 2895 GOSUB T
 2900 LET CON=F
 2901 LET CN=T0-U
 2909 IF NOT P1+C(CN) THEN GOTO 2920
 2910 LET A$="23493[T]HERE SHOULD BE NOREASON FOR ANY DIFFERENCESTO OCCUR BETWEEN YOU AND [I]."
 2915 GOSUB T
 2929 IF NOT P2 THEN GOTO 2940
 2930 LET A$="28473[W]ILL YOUR OLDER BROTHERBE ABLE TO ACT AS ACHAPERON FOR YOU AND [I]?"
 2935 GOSUB T
 2949 IF NOT C(CN) THEN GOTO 2960
 2950 LET A$="28493[A]LL OF THE DONUTS WHICHWE COOKED WERE SHAREDWITH [S]ARA AND SHE."
 2955 GOSUB T
 2969 IF NOT E2 THEN GOTO 2980
 2970 LET A$="29552[I]F WE TAKE ALL THE MONEYSAVED BY YOU AND HE, A NEWCAR COULD BE PURCHASED."
 2975 GOSUB T
 2989 IF NOT E1 THEN GOTO 3000
 2990 LET A$="29524[J]UST BETWEEN YOU AND ME,[I] DO NOT THINK OUR POORTEAM HAS A CHANCE."
 2995 GOSUB T
 3000 LET CON=V
 3001 LET CN=T0+H
 3009 IF NOT P1+C(CN) THEN GOTO 3020
 3010 LET A$="23434[T]HE DOG APPEARS TOFIND HIS BONES AFTERHE BURIES THEM."
 3015 GOSUB T
 3029 IF NOT P2 THEN GOTO 3040
 3030 LET A$="23403[B]OTH THE [B]LUE TEAMAND THE [G]REY TEAMWON ITS GAMES."
 3035 GOSUB T
 3049 IF NOT C(CN) THEN GOTO 3060
 3050 LET A$="23402[E]ITHER [P]AUL OR [S]AMHAS THEIR NUMBERSREVERSED."
 3055 GOSUB T
 3069 IF NOT E2 THEN GOTO 3080
 3070 LET A$="23414[J]ACK AND [M]ARY SHOWEXCELLENT POISE INTHEIR ACTING ROLES."
 3075 GOSUB T
 3089 IF NOT E1 THEN GOTO K*V
 3090 LET A$="23423[N]EITHER CHERRY NORSTRAWBERRY HAS LOSTTHEIR FLAVOR."
 3095 GOSUB T
 5000 IF P1<>U THEN GOTO 5005
 5001 LET P1=O
 5002 LET P2=U
 5004 GOTO T*K+C
 5005 IF E1<>U THEN GOTO 5030
 5006 LET E1=O
 5007 LET E2=U
 5008 GOTO T*K+C
 5030 LET R=W+X-NWRONG
 5032 LET R(U)=T-Q(U)
 5034 LET R(T)=E-Q(T)
 5036 LET R(H)=T-Q(H)
 5038 LET R(F)=T-Q(F)
 5040 LET R(V)=T-Q(V)
 5044 GOTO C*H
 5100 SCROLL
 5101 SCROLL
 5102 SCROLL
 5103 SCROLL
 5104 RETURN
 6000 CLEAR
 6005 SAVE "LAN[1]"
 6010 RUN 
 
   1 GOTO 1000
   6 PRINT AT W+F,O;A$(TT TO (VAL A$(U TO T)));A$(VAL A$(H TO F) TO VAL A$(V TO X));A$(VAL A$(S TO E) TO VAL A$(IX TO W));AT W+V,O;A$(VAL A$(W+U TO W+T) TO )
   7 RETURN
   9 PRINT AT W+F,O;A$(TT TO VAL A$(IX TO W));AT W+V,VAL A$(W+H TO W+F);"1";AT W+V,VAL A$(W+V TO W+X);"2";AT W+S,O;A$(VAL A$(W+U TO W+T) TO )
  10 RETURN
  12 PRINT AT W+F,O;A$(TT TO (VAL A$(U TO T)));AT W+X,O;A$(VAL A$(H TO F) TO );AT W+S,VAL (A$(W+H TO W+F));"1";TAB VAL (A$(W+V TO W+X));"2"
  13 LET X$=A$(VAL A$(S TO E) TO VAL A$(IX TO W))
  14 RETURN
  15 PRINT AT W+F,O;A$(TT TO (VAL A$(U TO T)));AT W+V,O;A$(VAL A$(H TO F) TO VAL A$(V TO X));A$(VAL A$(S TO E) TO VAL A$(IX TO W));A$(VAL A$(W+U TO W+T) TO )
  17 RETURN
  18 PRINT AT W+F,O;A$(TT TO (VAL A$(U TO T)));AT W+X,O;"(";A$(VAL A$(H TO F) TO );AT W+S,VAL (A$(W+H TO W+F));"1";TAB VAL (A$(W+V TO W+X));"2"
  20 RETURN
  21 PRINT AT W+F,O;A$(TT TO VAL A$(V TO X));")";AT W+V,VAL A$(W+H TO W+F);"1";AT W+V,VAL A$(W+V TO W+X);"2";AT W+S,O;A$(VAL A$(S TO E) TO )
  22 RETURN
  24 PRINT AT W+F,O;A$(TT TO VAL A$(U TO T));A$(VAL A$(H TO F) TO VAL (A$(V TO X)));AT W+V,O;A$(VAL A$(S TO E) TO )
  25 RETURN
  27 PRINT AT W+F,O;"(";A$(VAL A$(H TO F) TO VAL A$(IX TO W));AT W+V,VAL A$(W+H TO W+F);"1";AT W+V,VAL A$(W+V TO W+X);"2";AT W+S,O;A$(VAL A$(W+U TO W+T) TO )
  28 RETURN
  30 PRINT AT W+F,O;A$(VAL A$(H TO F) TO VAL A$(V TO X));A$(VAL A$(S TO E) TO VAL A$(IX TO W));AT W+V,O;A$(VAL A$(W+U TO W+T) TO )
  31 RETURN
  33 PRINT AT W+F,O;A$(TT TO (VAL A$(U TO T)));AT W+V,O;A$(VAL A$(S TO E) TO VAL A$(IX TO W));A$(VAL A$(W+U TO W+T) TO )
  34 LET X$=A$(VAL A$(S TO E) TO VAL A$(IX TO W))
  35 RETURN
  36 PRINT AT W+F,O;A$(TT TO VAL A$(IX TO W));AT W+V,VAL A$(W+H TO W+F);"1";AT W+V,VAL A$(W+V TO W+X);"2";AT W+S,O;A$(VAL A$(W+U TO W+T) TO )
  37 RETURN
  39 PRINT AT W+F,O;A$(TT TO VAL A$(U TO T));A$(VAL A$(H TO F) TO VAL (A$(V TO X)));AT W+V,O;A$(VAL A$(W+U TO W+T) TO )
  40 RETURN
  42 PRINT AT W+F,O;A$(TT TO VAL A$(IX TO W));AT W+V,VAL A$(W+H TO W+F);"1";AT W+V,VAL A$(W+V TO W+X);"2";AT W+S,O;A$(VAL A$(W+U TO W+T) TO )
  43 RETURN
  79 SLOW
  80 IF INKEY$ <>"" THEN GOTO E*W
  82 IF INKEY$ ="" THEN GOTO E*W+T
  83 FAST
  84 LET C$=INKEY$ 
  85 IF C$=CHR$ 118 THEN GOTO K+C
  86 RETURN
 100 SLOW
 101 IF INKEY$ <>"" THEN GOTO C+U
 102 LET C$=""
 103 IF INKEY$ <>"" THEN LET C$=INKEY$ 
 104 IF C$<>"" THEN GOTO C+C/T
 105 IF NOT E1+E2 THEN GOTO C+T
 110 LET T2=PEEK 16437
 115 LET TICK=(T2<>T1)
 120 IF NOT TICK  THEN GOTO C+T
 125 LET T1=T2
 130 LET TIME=TIME+.071111
 135 IF TIME-TIME0<U/X THEN GOTO C+T
 140 LET TIME0=TIME
 141 LET MIN=INT TIME0
 142 LET SEC=W*INT (X*(TIME0-MIN))
 143 PRINT AT  U,H0-V;MIN;":";SEC
 145 GOTO C+T
 150 LET IK=O
 152 IF C$=CHR$ 118 THEN GOTO C+K
 153 FAST
 155 IF C$<>A$(TT-U) THEN RETURN
 160 LET IK=U
 162 RETURN
 200 IF IK=U THEN GOTO K/F
 201 IF NOT E1+E2 THEN GOTO T*C+F
 202 LET NWRONG=NWRONG+U
 203 GOTO 272
 204 CLS
 205 LET WRONG=U
 206 GOSUB VAL A$(T0-U TO T0)
 207 PRINT AT E,O;"THE CORRECT WORD IS...";AT W,(T0-U-LEN X$)/T;"-";X$;"-"
 208 GOSUB E*C
 220 GOSUB X*X*W
 233 FAST
 234 LET DONE=U
 235 LET NWRONG1=NWRONG1+U
 237 LET NWRONG=NWRONG+U
 238 IF CON THEN LET Q(CON)=Q(CON)+U
 240 GOTO 270
 250 IF NOT E1+E2 THEN GOTO 255
 252 GOTO 273
 255 CLS
 256 LET F$="07110920"
 257 GOSUB K*H/T
 258 PRINT AT IX,W+T;"[C][O][R][R][E][C][T]"
 259 LET F$="15170427"
 260 GOSUB K*H/T
 261 PRINT AT W+X,X;NP-NLEFT+U;" DONE;  ";NLEFT-U;" TO GO"
 265 GOSUB X*X*W
 270 LET WRONG=O
 271 GOTO 273
 272 LET Q(CON)=Q(CON)+U
 273 LET DONE=U
 275 LET NLEFT=NLEFT-U
 276 IF NLEFT=O THEN GOTO K*V
 280 RETURN
 300 CLS
 302 LET A$=" OUT OF "
 305 IF E1+E2+P1+P2 THEN GOTO 315
 306 LET F$="03200427"
 307 GOSUB K*H/T
 311 PRINT AT V,S;"YOUR SCORE CARD",AT IX,IX;NP-NWRONG1;AT IX,W+T;" RIGHT",AT W+H,IX;NWRONG;AT W+H,W+T;" WRONG "
 312 GOSUB X*X*W
 313 GOTO K+C
 320 LET F$="00200031"
 321 GOSUB K*H/T
 322 FAST
 323 PRINT AT T,W;"TEST RESULTS";AT F,W+X;"SCORE";TAB T0+F;"PERCENT";
 324 IF P1+P2 THEN PRINT AT U,W+T;"PRACTICE"
 325 PRINT AT W+T,T;"MAY AND CAN";TAB W+F;R(U);A$;T;TAB T0+S;INT (C*R(U)/T)
 327 PRINT AT IX,T;"IRREGULAR";TAB T;"VERB FORMS";TAB W+F;R(T);A$;F;TAB T0+S;INT (C*R(T)/F)
 329 PRINT AT X,T;"CONSISTENCY";TAB T;"OF TENSE";TAB W+F;R(H);A$;T;TAB T0+S;INT (C*R(H)/T)
 332 PRINT AT W+V,H;"TOTAL";TAB W+F;E-NWRONG;A$;E;TAB T0+S;INT (C*(E-NWRONG)/E+.5)
 333 IF E1+E2 THEN PRINT AT T0-U,E;"TIME USED ";MIN;":";SEC
 334 GOSUB X*X*W
 340 GOTO K+C
 360 PRINT AT T0+U,X;"[P][R][E][S][S]█[C]█[T][O]█[C][O][N][T][I][N][U][E]"
 362 GOSUB E*W-U
 365 RETURN
 700 CLS
 710 RETURN
 800 LET F$="00050031"
 805 IF CON=U THEN PRINT AT U,U;K$(T),TAB U;K$(H),TAB U;K$(V),TAB U;K$(X)
 807 IF CON=T THEN PRINT AT U,U;K$(S),TAB U;K$(E),TAB U;K$(IX),TAB U;K$(W)
 808 IF CON=H THEN PRINT AT U,U;K$(W+V),TAB U;K$(W+X),TAB U;K$(W+S),TAB U;K$(W+E)
 812 IF CON=F THEN PRINT AT U,U;K$(T0),TAB U;K$(T0+U),TAB U;K$(T0+T),TAB U;K$(T0+H)
 815 GOSUB K*H/T
 850 RETURN
 900 CLS
 905 LET F$="01200229"
 910 GOSUB K*H/T
 915 PRINT AT T,W+U;"DIRECTIONS",AT F,F;"1 YOU WILL BE GIVEN",TAB X;"ONE OR MORE SENTENCES";AT S,F;"2 THERE WILL BE A CHOICE",TAB X;"OF TWO POSSIBLE WORDS";AT W,F;"3 PUSH THE NUMBER OF",TAB X;"THE CORRECT WORD"
 930 PRINT AT W+F,F;"WORDS BEGINNING WITH",TAB F;"CAPITALS APPEAR AS";TAB F;"FOLLOWS:",AT T0-T,F;"[M]R.   [M]RS.  [G]EORGE"
 933 LET TD=C/T
 934 GOSUB X*X*W
 935 RETURN
 1003 SLOW
 1010 GOSUB 1900
 1012 SCROLL
 1014 PRINT TAB H;"LANGUAGE USAGE"
 1015 GOSUB K*V+C+U
 1045 PRINT TAB T0;"MASTER"
 1046 GOSUB K*V+C
 1053 LET F$="12160019"
 1054 GOSUB K*H/T
 1055 LET F$="15191728"
 1056 GOSUB K*H/T
 1057 PRINT AT W+V,T0-U;"▜";AT W+X,T0-H;"▙"
 1058 SCROLL
 1059 SCROLL
 1074 PRINT TAB W+T;"PART II"
 1075 SCROLL
 1076 SCROLL
 1083 PRINT TAB S;"GRADES 4 THRU 12"
 1085 GOSUB K*V+C
 1091 SCROLL
 1093 PRINT TAB T;"SOFTWARE FOR EXCELLENCE"
 1094 SCROLL
 1095 PRINT AT W+IX,T;"COPYRIGHT 1982  BY";AT V,H0-U;"TM"
 1097 PAUSE H*C
 1102 FAST
 1103 GOSUB T*K-E*W
 1105 CLS
 1107 LET F$="00190031"
 1110 GOSUB K*H/T
 1112 LET Z$="▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
 1114 PRINT AT T,V;"LANGUAGE USAGE PART II";AT F,U;Z$;Z$;AT V,T;"PREPARATION - RULES";TAB U;"▀▀▀▀▀▀";Z$;AT E,V;"1 CONSISTENCY OF TENSE";AT IX,V;"2 IRREGULAR VERB FORMS";TAB V;"3 MAY AND CAN";AT W+H,U;Z$;Z$;TAB T;"TRAINING CAMP";TAB U;Z$;AT W+S,V;"4 TEST PRACTICE",TAB V;"5 TIMED TEST"
 1120 PRINT AT T0,S;"[C][H][O][O][S][E]█[A]█[N][U][M][B][E][R]"
 1125 GOSUB T*K-C*T
 1130 GOSUB E*W-U
 1132 LET L=CODE C$-T*W-E
 1135 IF L<U OR L>V THEN GOTO 1130
 1140 IF L<=H THEN GOTO 1158
 1141 FAST
 1142 IF L<>F THEN GOTO 1155
 1152 LET P1=U
 1153 LET NP=E
 1154 GOTO T*K
 1155 LET E1=U
 1156 LET NP=E
 1157 GOTO K+C*F
 1158 LET CON=F-L
 1165 GOTO 1260
 1200 DIM K$(T0+H,T0+IX)
 1210 LET K$(U)="     MAY AND CAN"
 1211 LET K$(T)="MAY AND MIGHT IMPLY"
 1212 LET K$(H)=" PERMISSION TO DO SOMETHING"
 1213 LET K$(F)=" "
 1214 LET K$(V)="CAN AND COULD IMPLY "
 1215 LET K$(X)=" CAPABILITY TO DO SOMETHING"
 1216 LET K$(S)="IRREGULAR VERBS DO NOT SHOW"
 1217 LET K$(E)=" PAST TENSE BY SIMPLY ADDING"
 1218 LET K$(IX)=" -ED, -T, OR -D TO THE"
 1219 LET K$(W)=" PRESENT TENSE"
 1220 LET K$(W+U)="YOUR MEMORY OF THE PRINCIPAL"
 1221 LET K$(W+T)=" PARTS OF IRREGULAR VERBS"
 1222 LET K$(W+H)=" WILL BE TESTED IN THE WORK"
 1223 LET K$(W+F)=" TO FOLLOW"
 1224 LET K$(W+V)="MAKE THE TENSE OF A VERB"
 1225 LET K$(W+X)=" CONSISTENT WITH THE PRESENT,"
 1226 LET K$(W+S)=" PAST,OR FUTURE TENSE IMPLIED"
 1227 LET K$(W+E)=" BY THE REST OF THE SENTENCE"
 1228 LET K$(T0-U)="    ACCEPT AND EXCEPT"
 1229 LET K$(T0)="ACCEPT IS A VERB MEANING TO"
 1230 LET K$(T0+U)=" AGREE WITH OR TO RECEIVE"
 1231 LET K$(T0+T)="EXCEPT IS A PREPOSITION"
 1232 LET K$(T0+H)=" MEANING LEAVE OUT"
 1259 RETURN
 1260 GOSUB T*IX*C
 1270 IF CON<>U THEN GOTO K+C*H-T0
 1272 LET C(U)=U
 1273 LET C(T)=T
 1274 LET C(V)=T
 1275 LET NP=H
 1277 GOTO 1330
 1280 IF CON<>T THEN GOTO K+C*H-W
 1281 LET C(S)=F
 1283 LET C(W+U)=F
 1286 LET NP=F
 1288 GOTO 1330
 1290 IF CON<>H THEN GOTO K+C*H
 1293 LET C(W+V)=F
 1297 LET NP=T
 1300 IF CON<>F THEN GOTO 1330
 1302 LET C(T0-U)=U
 1304 LET C(T0)=T
 1306 LET C(T0+T)=T
 1308 LET NP=T
 1330 CLS
 1331 LET F$="01200031"
 1332 GOSUB K*H/T
 1333 PRINT AT T,E;"RULES COVERED",TAB U;Z$;Z$;
 1334 IF CON=U THEN GOTO 1341
 1335 LET M=E
 1336 IF CON=H THEN PRINT AT X,F;"CONSISTENCY OF TENSE"
 1337 IF CON=T THEN PRINT AT X,X;"IRREGULAR VERBS"
 1338 GOTO 1342
 1341 LET M=X
 1342 FOR N=U TO T0+H
 1343 IF NOT C(N) THEN GOTO 1355
 1344 PRINT AT M,T;K$(N)
 1345 IF C(N)<T THEN GOTO 1354
 1346 LET M=M+U
 1347 PRINT AT M,T;K$(N+U)
 1348 IF C(N)<H THEN GOTO 1354
 1349 LET M=M+U
 1350 PRINT AT M,T;K$(N+T)
 1351 IF C(N)<F THEN GOTO 1354
 1352 LET M=M+U
 1353 PRINT AT M,T;K$(N+H)
 1354 LET M=M+T
 1355 NEXT N
 1359 GOSUB X*X*W
 1360 IF C(S) THEN GOSUB K*F
 1380 GOTO T*K
 1400 FAST
 1405 CLS
 1410 PRINT AT H,W;"▛▀▀▀▀▀▀▀▀▀▀▜";TAB W;"▌TIMED TEST▐";TAB W;"▙▄▄▄▄▄▄▄▄▄▄▟"
 1420 PRINT AT E,V;"TO START THE TEST";AT W,V;"TYPE THE CODE LETTERS";AT W+T,V;"THEN PRESS ENTER"
 1430 SLOW
 1445 INPUT T$
 1448 IF T$="LAN" THEN GOTO 1470
 1450 PRINT AT T0,E;"[S][O][R][R][Y]█[W][R][O][N][G]█[C][O][D][E]"
 1451 LET TD=W
 1452 GOSUB X*X*W
 1455 GOTO C+K
 1470 LET E1=U
 1495 GOTO T*K
 1500 LET P=VAL F$(U TO T)
 1505 LET B=VAL F$(H TO F)
 1507 LET L=VAL F$(V TO X)
 1510 LET R=VAL F$(S TO E)
 1514 FOR N=L TO R STEP F
 1515 PRINT AT P,N;"▀▀▀▀";
 1516 PRINT AT B,N;"▄▄▄▄";
 1517 IF INKEY$ ="F" THEN FAST
 1518 IF INKEY$ ="S" THEN SLOW
 1520 NEXT N
 1530 FOR N=P TO B
 1535 PRINT AT N,L;"▌";AT N,R;"▐"
 1537 IF INKEY$ ="F" THEN FAST
 1538 IF INKEY$ ="S" THEN SLOW
 1540 NEXT N
 1545 PRINT AT P,L;"▛";AT P,R;"▜";AT B,L;"▙";AT B,R;"▟"
 1550 RETURN
 1814 LET E1=O
 1816 LET E2=O
 1818 LET P2=O
 1820 LET P1=O
 1825 DIM R(F)
 1830 DIM C(T0+H)
 1836 DIM Q(F)
 1841 LET NWRONG=O
 1842 LET TIME=O
 1843 LET NWRONG1=O
 1844 LET MIN=O
 1845 LET SEC=O
 1850 LET TIME0=-U
 1860 LET T2=O
 1870 LET T1=O
 1890 LET WRONG=O
 1899 RETURN
 1900 LET U=PI/PI
 1901 LET T=U+U
 1902 LET H=T+U
 1903 LET F=H+U
 1904 LET V=F+U
 1905 LET X=V+U
 1906 LET S=X+U
 1907 LET E=S+U
 1908 LET IX=E+U
 1909 LET W=V+V
 1910 LET C=W*W
 1911 LET K=C*W
 1912 LET O=U-U
 1913 LET T0=W*T
 1914 LET K=C*W
 1915 LET TT=T0+T
 1916 LET H0=H*W
 1917 LET FT=W+F
 1918 LET J$="00050031"
 1919 LET L$="        "
 1995 GOSUB K+T*C
 1996 GOSUB T*K-T*C
 1999 RETURN
 2000 FAST
 2001 LET UP=T*K+S*W
 2002 GOSUB K-C
 2003 LET CN=T
 2004 LET NLEFT=NP
 2007 CLS
 2008 LET CON=U
 2009 IF NOT P1+C(CN) THEN GOTO 2020
 2011 LET A$="222729314849020642302([C]AN [M]AY) [I] GO TO THE MOVIEAFTER [I] FINISH MY MUSIC LESSON?"
 2012 GOSUB UP
 2020 LET CN=V
 2025 IF NOT P2 THEN GOTO 2045
 2028 LET A$="222729314748020642302([C]AN [M]AY) [I] START WATCHINGTHE BALL GAME NOW?"
 2030 GOSUB UP
 2045 IF NOT E1 THEN GOTO 2100
 2046 LET A$="454645474955020612151[D]ID YOU DECIDE WHETHER [I](MAY CAN) GO OR NOT?"
 2048 GOSUB UP
 2055 GOTO 2100
 2070 CLS
 2071 IF NOT E1+E2+P2+P1 THEN GOSUB K-T*C
 2072 IF E1+E2 THEN PRINT AT U,W+V;"TIME USED ";MIN;":";SEC
 2073 IF NP-NLEFT>=H AND CN<>V THEN GOTO 2075
 2074 PRINT AT E,F;"SELECT THE CORRECT WORD"
 2075 PRINT AT W+U,O;
 2076 LET X$=A$(VAL A$(H TO F) TO VAL A$(V TO X))
 2077 GOSUB VAL A$(W+S TO W+E)
 2080 SLOW
 2085 GOSUB C
 2090 GOSUB C*T
 2092 IF DONE=U THEN RETURN
 2094 IF DONE=T THEN GOTO C*C-U
 2097 GOTO 2085
 2100 IF NOT E2 THEN GOTO 2140
 2103 LET A$="262830364344071109061[W]HEN (CAN MAY) YOU GETTHE LAWN MOWER WORKING?"
 2105 GOSUB UP
 2140 LET CN=T
 2145 IF NOT C(CN) THEN GOTO 2395
 2146 LET A$="242628345051050909061[H]E (CAN MAY) CARRY A FOOTBALLAS WELL AS ANYONE."
 2150 GOSUB UP
 2160 LET A$="222325315354020642301([C]AN [M]AY) YOU MAKE A DECISION ASTO WHO IS THE BEST CANDIDATE?"
 2165 GOSUB UP
 2395 LET CN=S
 2396 LET CON=T
 2397 IF NOT P1+C(CN) THEN GOTO 2445
 2398 LET A$="243336384546061209062[H]E (BEARED BORE) UP WELLUNDER THE LOAD."
 2400 GOSUB UP
 2445 IF NOT P2 THEN GOTO 2495
 2446 LET A$="324043454748141909062[T]HE CHORUS (RISED ROSE) TOSING."
 2450 GOSUB UP
 2495 IF NOT E1 THEN GOTO 2545
 2496 LET A$="314043454950131909062[T]HE GIRLS (SINGED SANG) WITHUNUSUAL CLARITY."
 2500 GOSUB UP
 2545 IF NOT E2 THEN GOTO 2575
 2546 LET A$="242629374647051109061[H]E (FLED FLEED) THE SCENEOF THE ACCIDENT."
 2550 GOSUB UP
 2575 IF NOT C(CN) THEN GOTO 2595
 2576 LET A$="495158596466041118332[T]HE CROPS IN THE GARDEN WERE(FREEZED FROZEN) BY THE COLD."
 2580 GOSUB UP
 2597 IF NOT P1+C(CN) THEN GOTO 2645
 2598 LET A$="374447495051182321242[T]HE VISITOR HAD (RANG RUNG)THE BELL SEVERAL TIMES."
 2600 GOSUB UP
 2645 IF NOT P2 THEN GOTO 2655
 2646 LET A$="303843454849121809062[H]AD THEY (CHOSE CHOSEN) THERED, THEY WOULD HAVE WON."
 2650 GOSUB UP
 2695 IF NOT E1 THEN GOTO 2745
 2696 LET A$="293134414344101509061[S]HE HAS (SWUM SWAM) ATNEAR RECORD SPEED."
 2700 GOSUB UP
 2745 IF NOT E2 THEN GOTO 2755
 2746 LET A$="283641435253101609062[H]AD HE (BROKE BROKEN) THE SEAL,THE GAS WOULD HAVE ESCAPED."
 2750 GOSUB UP
 2775 IF NOT C(CN) THEN GOTO 2785
 2776 LET A$="364450525354182521242[T]HE FARMER HAS (WROTE WRITTEN)TO THE TRUCK MANUFACTURER."
 2780 GOSUB UP
 2785 LET CN=W+V
 2786 LET CON=H
 2796 IF NOT P1+C(CN) THEN GOTO 2805
 2797 LET A$="333941434445141821242[Y]ESTERDAY [I] (SEE SAW)THE STORM COMING."
 2800 GOSUB UP
 2845 IF NOT P2 THEN GOTO 2895
 2846 LET A$="454749505254010518332[T]HE [G]OLDEN [A]GE OF [G]REECE(IS WAS) LONG AGO."
 2850 GOSUB UP
 2895 IF NOT E1 THEN GOTO 2915
 2896 LET A$="252728344243050909061[N]OW (IS WAS) THE BESTTIME TO ORDER SEED."
 2900 GOSUB UP
 2915 IF NOT E2 THEN GOTO 2925
 2916 LET A$="252728344243050909061[H]OW (IS WAS) THE PLAYPRACTICE CURRENTLY GOING?"
 2917 GOSUB UP
 2930 IF NOT C(CN) THEN GOTO V*K
 2931 LET A$="464850575859020618151[T]HE ARTS IN [G]REAT [B]RITAIN(ARE WERE) SUPPORTED NOW."
 2932 GOSUB UP
 4000 GOSUB K*F+C
 4002 PRINT AT S,IX;"[R][E][G][U][L][A][R]█[V][E][R][B][S]";AT W+H,U;"WALK";TAB W;"WALKED";TAB T0+U;"WALKED";AT W+V,U;"TOSS";TAB W;"TOSSED";TAB T0+U;"TOSSED";AT W+S,U;"LISTEN";TAB W;"LISTENED";TAB T0+U;"LISTENED"
 4004 LET TD=C
 4006 GOSUB W*X*X
 4008 GOSUB K*F+C
 4010 PRINT AT S,E;"[I][R][R][E][G][U][L][A][R]█[V][E][R][B][S]";AT W+H,U;"SING";TAB W+U;"SANG";TAB TT;"SUNG";AT W+V,U;"BURST";TAB W+1;"BURST";TAB TT;"BURST";AT W+S,U;"FEEL";TAB W+U;"FELT";TAB TT;"FELT"
 4012 GOSUB W*X*X
 4014 RETURN
 4100 CLS
 4102 PRINT AT U,E;"EXAMPLES OF THE";AT T,S;"PRINCIPAL PARTS OF";AT H,T;"REGULAR AND IRREGULAR VERBS";AT IX,O;"PRESENT";TAB W+U;"PAST";TAB TT;"PAST"," TENSE";TAB W;"TENSE";TAB W+IX;"PARTICIPLE"
 4104 RETURN
 5000 IF P1<>U THEN GOTO 5005
 5001 LET P1=O
 5002 LET P2=U
 5004 GOTO T*K+E
 5005 IF E1<>U THEN GOTO 5014
 5006 LET E2=U
 5007 LET E1=O
 5008 GOTO T*K+E
 5014 LET R=E-NWRONG
 5015 LET R(U)=T-Q(U)
 5016 LET R(T)=F-Q(T)
 5017 LET R(H)=T-Q(H)
 5018 LET R(F)=T-Q(F)
 5020 GOTO C*H
 5100 SCROLL
 5101 SCROLL
 5102 SCROLL
 5103 SCROLL
 5104 RETURN
 6000 CLEAR
 6005 SAVE "LAN[2]"
 6010 RUN 
 9998 PRINT PEEK 16412+256*PEEK 16413-16384
 
   1 GOTO 1000
   6 PRINT AT W+F,O;A$(TT TO (VAL A$(U TO T)));A$(VAL A$(H TO F) TO VAL A$(V TO X));A$(VAL A$(S TO E) TO VAL A$(IX TO W));AT W+V,O;A$(VAL A$(W+U TO W+T) TO )
   7 RETURN
   9 PRINT AT W+F,O;A$(TT TO VAL A$(IX TO W));AT W+V,VAL A$(W+H TO W+F);"1";AT W+V,VAL A$(W+V TO W+X);"2";AT W+S,O;A$(VAL A$(W+U TO W+T) TO )
  10 RETURN
  12 PRINT AT W+F,O;A$(TT TO (VAL A$(U TO T)));AT W+X,O;A$(VAL A$(H TO F) TO );AT W+S,VAL (A$(W+H TO W+F));"1";TAB VAL (A$(W+V TO W+X));"2"
  13 LET X$=A$(VAL A$(S TO E) TO VAL A$(IX TO W))
  14 RETURN
  15 PRINT AT W+F,O;A$(TT TO (VAL A$(U TO T)));AT W+V,O;A$(VAL A$(H TO F) TO VAL A$(V TO X));A$(VAL A$(S TO E) TO VAL A$(IX TO W));A$(VAL A$(W+U TO W+T) TO )
  17 RETURN
  18 PRINT AT W+F,O;A$(TT TO (VAL A$(U TO T)));AT W+X,O;"(";A$(VAL A$(H TO F) TO );AT W+S,VAL (A$(W+H TO W+F));"1";TAB VAL (A$(W+V TO W+X));"2"
  20 RETURN
  21 PRINT AT W+F,O;A$(TT TO VAL A$(V TO X));")";AT W+V,VAL A$(W+H TO W+F);"1";AT W+V,VAL A$(W+V TO W+X);"2";AT W+S,O;A$(VAL A$(S TO E) TO )
  22 RETURN
  24 PRINT AT W+F,O;A$(TT TO VAL A$(U TO T));A$(VAL A$(H TO F) TO VAL (A$(V TO X)));AT W+V,O;A$(VAL A$(S TO E) TO )
  25 RETURN
  27 PRINT AT W+F,O;"(";A$(VAL A$(H TO F) TO VAL A$(IX TO W));AT W+V,VAL A$(W+H TO W+F);"1";AT W+V,VAL A$(W+V TO W+X);"2";AT W+S,O;A$(VAL A$(W+U TO W+T) TO )
  28 RETURN
  30 PRINT AT W+F,O;A$(VAL A$(H TO F) TO VAL A$(V TO X));A$(VAL A$(S TO E) TO VAL A$(IX TO W));AT W+V,O;A$(VAL A$(W+U TO W+T) TO )
  31 RETURN
  33 PRINT AT W+F,O;A$(TT TO (VAL A$(U TO T)));AT W+V,O;A$(VAL A$(S TO E) TO VAL A$(IX TO W));A$(VAL A$(W+U TO W+T) TO )
  34 LET X$=A$(VAL A$(S TO E) TO VAL A$(IX TO W))
  35 RETURN
  36 PRINT AT W+F,O;A$(TT TO VAL A$(IX TO W));AT W+V,VAL A$(W+H TO W+F);"1";AT W+V,VAL A$(W+V TO W+X);"2";AT W+S,O;A$(VAL A$(W+U TO W+T) TO )
  37 RETURN
  39 PRINT AT W+F,O;A$(TT TO VAL A$(U TO T));A$(VAL A$(H TO F) TO VAL (A$(V TO X)));AT W+V,O;A$(VAL A$(W+U TO W+T) TO )
  40 RETURN
  42 PRINT AT W+F,O;A$(TT TO VAL A$(IX TO W));AT W+V,VAL A$(W+H TO W+F);"1";AT W+V,VAL A$(W+V TO W+X);"2";AT W+S,O;A$(VAL A$(W+U TO W+T) TO )
  43 RETURN
  79 SLOW
  80 IF INKEY$ <>"" THEN GOTO E*W
  82 IF INKEY$ ="" THEN GOTO E*W+T
  83 FAST
  84 LET C$=INKEY$ 
  85 IF C$=CHR$ 118 THEN GOTO C0+C
  86 RETURN
 100 SLOW
 101 IF INKEY$ <>"" THEN GOTO C+U
 102 LET C$=""
 103 IF INKEY$ <>"" THEN LET C$=INKEY$ 
 104 IF C$<>"" THEN GOTO C+C/T
 105 IF NOT E1+E2 THEN GOTO C+T
 110 LET T2=PEEK 16437
 115 LET TICK=(T2<>T1)
 120 IF NOT TICK  THEN GOTO C+T
 125 LET T1=T2
 130 LET TIME=TIME+.071111
 135 IF TIME-TIME0<U/X THEN GOTO C+T
 140 LET TIME0=TIME
 141 LET MIN=INT TIME0
 142 LET SEC=W*INT (X*(TIME0-MIN))
 143 PRINT AT  U,H0-V;MIN;":";SEC
 145 GOTO C+T
 150 LET IK=O
 152 IF C$=CHR$ 118 THEN GOTO C+C0
 153 FAST
 155 IF C$<>A$(TT-U) THEN RETURN
 160 LET IK=U
 162 RETURN
 200 IF IK=U THEN GOTO C0/F
 201 IF NOT E1+E2 THEN GOTO T*C+F
 202 LET NWRONG=NWRONG+U
 203 GOTO 272
 204 CLS
 205 LET WRONG=U
 206 GOSUB VAL A$(T0-U TO T0)
 207 PRINT AT E,O;"THE CORRECT WORD IS...";AT W,(T0-U-LEN X$)/T;"-";X$;"-"
 208 GOSUB E*C
 210 GOSUB X*X*W
 233 FAST
 234 LET DONE=U
 235 LET NWRONG1=NWRONG1+U
 237 LET NWRONG=NWRONG+U
 238 IF CON THEN LET Q(CON)=Q(CON)+U
 240 GOTO 270
 250 IF NOT E1+E2 THEN GOTO 255
 252 GOTO 273
 255 CLS
 256 LET F$="07110920"
 257 GOSUB C0*H/T
 258 PRINT AT IX,W+T;"[C][O][R][R][E][C][T]"
 259 LET F$="15170427"
 260 GOSUB C0*H/T
 261 PRINT AT W+X,X;NP-NLEFT+U;" DONE;  ";NLEFT-U;" TO GO"
 265 GOSUB X*X*W
 270 LET WRONG=O
 271 GOTO 273
 272 LET Q(CON)=Q(CON)+U
 273 LET DONE=U
 275 LET NLEFT=NLEFT-U
 276 IF NLEFT=O THEN GOTO C0*V
 280 RETURN
 300 CLS
 302 LET A$=" OUT OF "
 305 IF P1+P2+E1+E2 THEN GOTO H*C+T0
 306 LET F$="03200427"
 307 GOSUB C0*H/T
 311 PRINT AT V,S;"YOUR SCORE CARD",AT IX,IX;NP-NWRONG1;AT IX,W+T;" RIGHT",AT W+H,IX;NWRONG;AT W+H,W+T;" WRONG "
 312 GOSUB X*X*W
 313 GOTO C0+C
 320 LET F$="00200031"
 321 GOSUB C0*H/T
 322 FAST
 323 PRINT AT H,W;"TEST RESULTS";AT V,W+X;"SCORE";TAB T0+F;"PERCENT";
 324 IF P1+P2 THEN PRINT AT T,W+T;"PRACTICE"
 325 PRINT AT S,U;"HOMONYMS";TAB W+H;R(U);A$;X;TAB T0+X;INT (C*R(U)/X)
 327 PRINT AT IX,U;"LAY AND LIE";TAB W+H;R(T);A$;F;TAB T0+X;INT (C*R(T)/F)
 329 PRINT AT W+U,U;"SET AND SAT";TAB W+H;R(H);A$;F;TAB T0+X;INT (C*R(H)/F)
 330 PRINT AT W+H,U;"AMONG AND";AT W+F,T;"BETWEEN";TAB W+H;R(F);A$;T;TAB T0+X;INT (C*R(F)/T)
 332 PRINT AT W+S,H;"TOTAL";TAB W+T;W+X-NWRONG;A$;W+X;TAB T0+X;INT (C*(W+X-NWRONG)/(W+X)+.5)
 333 IF E1+E2 THEN PRINT AT T0-U,E;"TIME USED ";MIN;":";SEC
 334 GOSUB X*X*W
 340 GOTO C0+C
 360 PRINT AT T0+U,X;"[P][R][E][S][S]█[C]█[T][O]█[C][O][N][T][I][N][U][E]"
 361 SLOW
 362 GOSUB E*W-U
 363 FAST
 365 RETURN
 700 CLS
 710 RETURN
 800 LET F$="00040031"
 801 IF CON=F THEN LET F$="00050031"
 803 IF CON=U THEN PRINT AT U,U;K$(U),TAB U;K$(T),TAB U;K$(H)
 804 IF CON=T THEN PRINT AT U,U;K$(IX),TAB U;K$(H+W)
 805 IF CON=H THEN PRINT AT U,U;K$(W+E),TAB U;K$(W+IX),TAB U;K$(T0)
 806 IF CON=F THEN PRINT AT U,U;K$(T0+H),TAB U;K$(T0+F),TAB U;K$(T0+V),TAB U;K$(T0+X)
 810 GOSUB C0*H/T
 850 RETURN
 900 CLS
 905 LET F$="01200229"
 910 GOSUB C0*H/T
 915 PRINT AT T,W+U;"DIRECTIONS",AT F,F;"1 YOU WILL BE GIVEN",TAB X;"ONE OR MORE SENTENCES";AT S,F;"2 THERE WILL BE A CHOICE",TAB X;"OF TWO POSSIBLE WORDS";AT W,F;"3 PUSH THE NUMBER OF",TAB X;"THE CORRECT WORD"
 930 PRINT AT W+F,F;"WORDS BEGINNING WITH",TAB F;"CAPITALS APPEAR AS";TAB F;"FOLLOWS:",AT T0-T,F;"[M]R.   [M]RS.  [G]EORGE"
 934 GOSUB X*X*W
 935 RETURN
 1003 SLOW
 1010 GOSUB 1900
 1012 SCROLL
 1014 PRINT TAB H;"LANGUAGE USAGE"
 1015 GOSUB C0*V+C+U
 1045 PRINT TAB T0;"MASTER"
 1046 GOSUB C0*V+C
 1053 LET F$="12160019"
 1054 GOSUB C0*H/T
 1055 LET F$="15191728"
 1056 GOSUB C0*H/T
 1057 PRINT AT W+V,T0-U;"▜";AT W+X,T0-H;"▙";AT W+V,H0-U;"TM"
 1058 SCROLL
 1059 SCROLL
 1074 PRINT TAB W+U;"PART III"
 1075 SCROLL
 1076 SCROLL
 1083 PRINT TAB S;"GRADES 4 THRU 12"
 1085 GOSUB C0*V+C
 1089 PRINT TAB T;"SOFTWARE FOR EXCELLENCE"
 1092 PRINT AT T0,T;"COPYRIGHT 1982  BY"
 1094 SCROLL
 1095 PAUSE H*C
 1102 FAST
 1103 GOSUB T*K-E*W
 1105 CLS
 1107 LET F$="00200031"
 1110 GOSUB C0*H/T
 1112 LET Z$="▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
 1114 PRINT AT T,F;"LANGUAGE USAGE PART III";AT F,U;"▀▀";Z$;Z$;AT V,T;"PREPARATION - RULES";TAB U;"▀▀▀▀▀▀▀";Z$;AT E,V;"1 HOMONYMS";AT IX,V;"2 LAY AND LIE";AT W,V;"3 SET AND SIT";AT W+U,V;"4 AMONG AND BETWEEN";AT W+H,U;"▀▀";Z$;Z$;TAB T;"TRAINING CAMP";AT W+V,U;"▀";Z$;AT W+S,V;"5 TEST PRACTICE",TAB V;"6 TIMED TEST"
 1120 PRINT AT T0+U,S;"[C][H][O][O][S][E]█[A]█[N][U][M][B][E][R]"
 1125 GOSUB T*C0-C*T
 1130 GOSUB E*W-U
 1132 LET L=CODE C$-T*W-E
 1135 IF L<U OR L>X THEN GOTO 1130
 1140 IF L<=F THEN GOTO 1158
 1141 FAST
 1142 GOTO 1137+H*L
 1152 LET P1=U
 1153 LET NP=W+X
 1154 GOTO T*K
 1155 LET E1=U
 1156 LET NP=W+X
 1157 GOTO K+C*F
 1158 LET CON=L
 1159 GOTO 1260
 1200 DIM K$(T0+X,T0+IX)
 1210 LET K$(U)="HOMONYMS ARE WORDS SIMILAR"
 1211 LET K$(T)=" IN SOUND BUT DIFFERENT IN"
 1212 LET K$(H)=" MEANING (EXAMPLE:TO,TWO,TOO)"
 1213 LET K$(F)="THE MEANING AND SPELLING OF"
 1214 LET K$(V)=" HOMONYMS MUST BE MEMORIZED--"
 1215 LET K$(X)=" NO GENERAL RULES ARE"
 1216 LET K$(S)=" AVAILABLE"
 1217 LET K$(E)="       LAY AND LIE"
 1218 LET K$(IX)="LAY MEANS TO PUT OR PLACE"
 1219 LET K$(W)=" "
 1220 LET K$(W+U)="  (PRINCIPAL PARTS ARE--LAY,"
 1221 LET K$(W+T)="   LAID, HAVE LAID, LAYING)"
 1222 LET K$(W+H)="LIE MEANS TO REST OR RECLINE"
 1223 LET K$(W+F)=" "
 1224 LET K$(W+V)="  (PRINCIPAL PARTS ARE--LIE,"
 1225 LET K$(W+X)="   LAY, HAVE LAIN, LYING)"
 1226 LET K$(W+S)="       SET AND SIT"
 1227 LET K$(W+E)="SET MEANS TO PLACE OR PUT"
 1228 LET K$(W+IX)=" SOMETHING"
 1229 LET K$(T0)="SIT MEANS TO BE SEATED"
 1230 LET K$(T0+U)=" "
 1231 LET K$(TT)="  AMONG AND BETWEEN"
 1232 LET K$(T0+H)="USE BETWEEN WHEN TWO (PEOPLE"
 1233 LET K$(T0+F)=" OR THINGS) ARE INVOLVED"
 1234 LET K$(T0+V)="USE AMONG WHEN MORE"
 1235 LET K$(T0+X)=" THAN TWO ARE INVOLVED"
 1259 RETURN
 1260 GOSUB T*IX*C
 1270 IF CON<>U THEN GOTO C0+C*H-T0
 1272 LET C(U)=H
 1273 LET C(F)=F
 1275 LET NP=X
 1276 LET TD=C-T
 1277 GOTO 1330
 1280 IF CON<>T THEN GOTO C0+C*H-W
 1281 LET C(E)=U
 1282 LET C(IX)=U
 1283 LET C(W+U)=T
 1284 LET C(W+H)=U
 1285 LET C(W+V)=T
 1286 LET NP=F
 1290 IF CON<>H THEN GOTO C0+C*H
 1293 LET C(W+S)=U
 1295 LET C(W+E)=T
 1296 LET C(T0)=T
 1297 LET NP=F
 1300 IF CON<>F THEN GOTO 1330
 1301 LET C(TT)=U
 1302 LET C(T0+H)=T
 1303 LET C(T0+V)=T
 1304 LET NP=T
 1330 CLS
 1333 LET F$="01200031"
 1334 GOSUB C0*H/T
 1335 PRINT AT T,E;"RULES COVERED";TAB U;Z$;Z$;"▀▀"
 1336 IF CON<>U THEN GOTO 1340
 1337 LET M=E
 1338 PRINT AT X,W;"HOMONYMS"
 1339 GOTO 1342
 1340 IF CON=H THEN GOTO 1380
 1341 LET M=X
 1342 FOR N=U TO T0+S
 1343 IF NOT C(N) THEN GOTO 1355
 1344 PRINT AT M,U;K$(N)
 1345 IF C(N)<T THEN GOTO 1354
 1346 LET M=M+U
 1347 PRINT AT M,U;K$(N+U)
 1348 IF C(N)<H THEN GOTO 1354
 1349 LET M=M+U
 1350 PRINT AT M,U;K$(N+T)
 1351 IF C(N)<F THEN GOTO 1354
 1352 LET M=M+U
 1353 PRINT AT M,U;K$(N+H)
 1354 LET M=M+T
 1355 NEXT N
 1359 GOSUB X*X*W
 1360 GOTO T*K
 1380 PRINT AT X,T;K$(S+W);AT E,U;K$(W+E);TAB U;K$(W+IX);AT W+U,H;"(PRINCIPAL PARTS ARE-- SET,",TAB F;"SET, HAVE SET, SETTING)"
 1381 PRINT AT W+F,U;K$(T0),AT W+X,H;"(PRINCIPAL PARTS ARE-- SIT,",TAB F;"SAT, HAVE SAT, SITTING)"
 1382 GOTO 1359
 1400 FAST
 1405 CLS
 1410 PRINT AT H,W;"▛▀▀▀▀▀▀▀▀▀▀▜";TAB W;"▌TIMED TEST▐";TAB W;"▙▄▄▄▄▄▄▄▄▄▄▟"
 1420 PRINT AT E,V;"TO START THE TEST";AT W,V;"TYPE THE CODE LETTERS";AT W+T,V;"THEN PRESS ENTER"
 1430 SLOW
 1446 INPUT C$
 1448 IF C$="LAN" THEN GOTO 1470
 1450 PRINT AT T0,E;"[S][O][R][R][Y]█[W][R][O][N][G]█[C][O][D][E]"
 1452 GOSUB X*X*W
 1455 GOTO C+C0
 1470 LET E1=U
 1495 GOTO T*C0
 1500 LET P=VAL F$(U TO T)
 1505 LET B=VAL F$(H TO F)
 1507 LET L=VAL F$(V TO X)
 1510 LET R=VAL F$(S TO E)
 1514 FOR N=L TO R STEP F
 1515 PRINT AT P,N;"▀▀▀▀";
 1516 PRINT AT B,N;"▄▄▄▄";
 1520 NEXT N
 1530 FOR N=P TO B
 1535 PRINT AT N,L;"▌";AT N,R;"▐"
 1540 NEXT N
 1545 PRINT AT P,L;"▛";AT P,R;"▜";AT B,L;"▙";AT B,R;"▟"
 1550 RETURN
 1814 LET E1=O
 1816 LET E2=O
 1818 LET P2=O
 1820 LET P1=O
 1825 DIM R(F)
 1830 DIM C(T0+S)
 1836 DIM Q(F)
 1841 LET NWRONG=O
 1842 LET TIME=O
 1843 LET NWRONG1=O
 1844 LET MIN=O
 1845 LET SEC=O
 1850 LET TIME0=-U
 1860 LET T2=O
 1870 LET T1=O
 1890 LET WRONG=O
 1899 RETURN
 1900 LET U=PI/PI
 1901 LET T=U+U
 1902 LET H=T+U
 1903 LET F=H+U
 1904 LET V=F+U
 1905 LET X=V+U
 1906 LET S=X+U
 1907 LET E=S+U
 1908 LET IX=E+U
 1909 LET W=V+V
 1910 LET C=W*W
 1911 LET K=C*W
 1912 LET O=U-U
 1913 LET T0=W*T
 1914 LET C0=C*W
 1915 LET TT=T0+T
 1916 LET H0=H*W
 1917 LET FT=W+F
 1918 LET J$="00050031"
 1919 LET L$="        "
 1922 LET E$="(LAY LIE)(LAID LAY)(LAYING LYING)(LAID LAIN)(SET SIT)(SETTING SITTING)"
 1923 LET H$="(AMONG BETWEEN)"
 1995 GOSUB C0+T*C
 1996 GOSUB T*C0-T*C
 1999 RETURN
 2000 FAST
 2001 LET UP=T*K+X*W
 2002 GOSUB 900
 2003 LET CN=U
 2004 LET NLEFT=NP
 2007 CLS
 2008 LET CON=U
 2009 IF NOT P1+C(CN) THEN GOTO 2025
 2011 LET A$="293945474950122009062[T]ELL ME (WEATHER WHETHER) ORNOT YOU ARE GOING."
 2012 GOSUB UP
 2025 IF NOT P2 THEN GOTO 2045
 2028 LET A$="515352586163020612152[I]F YOU WOULD RATHER PLAY CARDS (ITS IT▘S) REALLY YOUR CHOICE."
 2030 GOSUB UP
 2045 IF NOT E1 THEN GOTO 2100
 2046 LET A$="364448517576182421242[D]O NOT LET THE (RAINS REINS) HANG LOOSELY IN YOUR HANDS."
 2048 GOSUB UP
 2055 GOTO 2100
 2060 CLS
 2062 IF NOT E1+E2+P1+P2 THEN GOSUB E*C
 2072 IF E1+E2 THEN PRINT AT U,W+V;"TIME USED ";MIN;":";SEC
 2073 IF NP-NLEFT>=H AND CN<>V THEN GOTO 2075
 2074 PRINT AT X+U,F;"SELECT THE CORRECT WORD"
 2075 PRINT AT W+U,O;
 2076 LET X$=A$(VAL A$(H TO F) TO VAL A$(V TO X))
 2077 GOSUB VAL A$(W+S TO W+E)
 2080 SLOW
 2085 GOSUB C
 2090 GOSUB C*T
 2092 IF DONE=U THEN RETURN
 2094 IF DONE=T THEN GOTO C*C-U
 2097 GOTO 2085
 2100 IF NOT E2 THEN GOTO 2145
 2103 LET A$="313334404344111509061[I]F YOU GO (TO TOO) THEPLAY, I WILL JOIN YOU."
 2105 GOSUB UP
 2145 IF NOT C(CN) THEN GOTO 2194
 2146 LET A$="334247505152162321242[T]HE READING (COARSE COURSE) WAS DIFFICULT BUT WORTHWHILE."
 2150 GOSUB UP
 2196 IF NOT P1+C(CN) THEN GOTO 2245
 2199 LET A$="252736495152092009061[T]HE (PRINCIPLES PRINCIPALS) OFGRAVITY ARE PARTIALLY KNOWN."
 2200 GOSUB UP
 2245 IF NOT P2 THEN GOTO 2295
 2247 LET A$="404851545556222721242[K]ITTY [H]AWK WAS THE (SIGHT SITE) OF THE [W]RIGHT BROTHERS▘ FLIGHT."
 2250 GOSUB UP
 2295 IF NOT E1 THEN GOTO 2345
 2296 LET A$="505159687476122012152[C]HOCOLATE, IN ANY FORM, IS MYFAVORITE (DESERT DESSERT)."
 2300 GOSUB UP
 2345 IF NOT E2 THEN GOTO 2375
 2346 LET A$="474851535765071312151[D]O YOU KNOW WHICH PEDAL ISTHE (BRAKE BREAK)?"
 2355 GOSUB UP
 2375 IF NOT C(CN) THEN GOTO 2395
 2376 LET A$="474856586269121712151[T]HE FIRE CHIEF ASKED US TOKEEP THE (AISLE ISLE) CLEAR."
 2380 GOSUB UP
 2397 IF NOT P1+C(CN) THEN GOTO 2445
 2398 LET A$="252729365152061009061[S]HE (LED LEAD) THE BAND DURINGTHIS YEAR▘S CONCERT."
 2400 GOSUB UP
 2445 IF NOT P2 THEN GOTO 2495
 2446 LET A$="314450525354152521242[T]EXAS WAS (ALL READY  ALREADY)A STATE BY 1850."
 2450 GOSUB UP
 2495 IF NOT E1 THEN GOTO 2545
 2496 LET A$="232529374950051109061[A] (PEACE PIECE) WAS ACHIEVEDBEFORE WAR BROKE OUT."
 2500 GOSUB UP
 2545 IF NOT E2 THEN GOTO 2575
 2546 LET A$="404349505355030918332[T]O ME, THAT IS ONLY (PASSED PAST) HISTORY."
 2550 GOSUB UP
 2575 IF NOT C(CN) THEN GOTO 2595
 2576 LET A$="353741424749172236391[I]F YOU HAVE A (LOOSE LOSE) FLAP, THE TENT MAY TEAR."
 2580 GOSUB UP
 2595 LET CON=T
 2596 LET CN=W+H
 2597 IF NOT P1+C(CN) THEN GOTO 2645
 2598 LET A$="222729314647020642302([L]AY [L]IE) DOWN IF YOU ARETIRED."
 2600 GOSUB UP
 2645 IF NOT P2 THEN GOTO 2655
 2646 LET A$="273436385051081309062[H]ARRY "+E$(W TO T0-1)+" ON THE COUCHWATCHING [T][V]."
 2650 GOSUB UP
 2655 LET CN=IX
 2695 IF NOT E1 THEN GOTO 2745
 2696 LET A$="373944455152192636391[T]HE VOTERS WERE "+E$(T0 TO H0+H)+"BALLOTS IN THE BOX."
 2700 GOSUB UP
 2745 IF NOT E2 THEN GOTO 2755
 2746 LET A$="293134415051101509061[S]HE HAS "+E$(H0+F TO F*W+F)+" ASIDE HERSCHOOL WORK AGAIN."
 2750 GOSUB UP
 2755 LET CN=(W+H)
 2775 IF NOT C(CN) THEN GOTO 2785
 2776 LET A$="363844454951031018332[I]S THAT OLD DOG(LAYING LYING) IN THE YARD?"
 2780 GOSUB UP
 2785 LET CN=IX
 2796 IF NOT P1+C(CN) THEN GOTO 2805
 2797 LET A$="222325315051020627301([L]AY [L]IE) ASIDE YOUR DISPUTESAND ARGUMENTS THIS EVENING."
 2800 GOSUB UP
 2805 LET CN=W+H
 2845 IF NOT P2 THEN GOTO 2895
 2846 LET A$="283436384849091309062[I]F YOU "+E$(U TO IX)+" IN THE SUNTOO LONG, YOU WILL BURN."
 2850 GOSUB UP
 2895 IF NOT E1 THEN GOTO 2915
 2896 LET A$="384548505152192421242[Y]OU HAVE ALREADY "+E$(H0+F TO W*F+F)+"IN BED FOR HALF THE DAY."
 2900 GOSUB UP
 2915 IF NOT E2 THEN GOTO 2925
 2916 LET A$="374650525354202721242[I]S THE BRACELET "+E$(T0 TO H0+H)+"ON THE COUNTER?"
 2917 GOSUB UP
 2925 LET CN=IX
 2930 IF NOT C(CN) THEN GOTO 3400
 2931 LET A$="262831374748071209061[J]UDY "+E$(W TO T0-U)+" THE GLOVESTHERE YESTERDAY."
 2932 GOSUB UP
 3400 LET CON=H
 3405 LET CN=T0
 3410 IF NOT P1+C(CN) THEN GOTO 3430
 3411 LET A$="283436384647091309062[P]LEASE "+E$(W*F+V TO W*V+H)+" WHEREVERYOU WISH."
 3415 GOSUB UP
 3430 LET CN=W+E
 3440 IF NOT P2 THEN GOTO 3480
 3441 LET A$="222325314647020627301([S]ET [S]IT) THE PACKAGES ONTHE TABLE IN THE KITCHEN."
 3445 GOSUB UP
 3480 IF NOT E1 THEN GOTO 3510
 3481 LET A$="222329394849041227301([S]ETTING [S]ITTING) THE TABLEIS EASY."
 3485 GOSUB UP
 3510 LET CN=T0
 3520 IF NOT E2 THEN GOTO 3550
 3521 LET A$="223137395354041242302([S]ETTING [S]ITTING) WILL FEEL GOODAFTER ALL OUR WALKING."
 3530 GOSUB UP
 3550 LET CN=W+E
 3560 IF NOT C(CN) THEN GOTO 3600
 3566 LET A$="313335414546121609061[W]OULD YOU "+E$(W*F+V TO W*V+H)+" YOURBOOTS ON THE NEWSPAPERS?"
 3567 GOSUB UP
 3600 LET CN=T0
 3605 IF NOT P1+C(CN) THEN GOTO 3630
 3606 LET A$="334349515253162421242[H]E FOUND US "+E$(W*V+F TO W*S)+"ON THE SWING."
 3610 GOSUB UP
 3640 IF NOT P2 THEN GOTO 3670
 3641 LET A$="344450525354172521242[T]HE VASE WAS "+E$(W*V+F TO W*S)+"ON THE EDGE OF THE TABLE."
 3645 GOSUB UP
 3680 IF NOT E1 THEN GOTO 3710
 3681 LET A$="334349515253162421242[I]S YOUR DOG "+E$(W*V+F TO W*S)+"IN YOUR FATHER▘S CHAIR AGAIN?"
 3685 GOSUB UP
 3710 LET CN=W+E
 3720 IF NOT E2 THEN GOTO 3750
 3721 LET A$="283032384950091309061[I]F YOU "+E$(W*F+V TO W*V+H)+" THAT CAT ONMY LAP, I WILL SCREAM."
 3725 GOSUB UP
 3750 LET CN=T0
 3760 IF NOT C(CN) THEN GOTO 3780
 3761 LET A$="334349515253162421242[T]HAT CAT IS "+E$(W*V+F TO W*S)+"ON MY LAP."
 3765 GOSUB UP
 3780 LET CON=F
 3781 LET CN=T0+H
 3782 IF NOT P1+C(CN) THEN GOTO 3800
 3785 LET A$="505256586466031018332[T]HIS IS A GOOD SECRET TO KEEP"+H$+" THE TWO OF US."
 3786 GOSUB UP
 3800 LET CN=T0+V
 3802 IF NOT P2 THEN GOTO 3820
 3805 LET A$="444650525860031018332[D]O NOT PUT YOUR FINGERS"+H$+" TWO ROCKS."
 3806 GOSUB UP
 3822 IF NOT E1 THEN GOTO 3840
 3825 LET A$="222327374950031027301([A]MONG [B]ETWEEN) THE [C]OLONIESTHERE WERE SOME DISPUTES."
 3826 GOSUB UP
 3842 IF NOT E2 THEN GOTO 3860
 3845 LET A$="485054646566031018151[Y]OUR TIME HAS TO BE DIVIDED"+H$+" MANY TASKS."
 3846 GOSUB UP
 3860 LET CN=T0+H
 3862 IF NOT C(CN) THEN GOTO C0*V
 3865 LET A$="495059616575132012151[J]UDY, [K]AREN, AND [L]YNN SHAREDTHE PAPER "+H$+" THEM."
 3866 GOSUB UP
 5000 IF P1<>U THEN GOTO 5005
 5001 LET P1=O
 5002 LET P2=U
 5004 GOTO T*C0+E
 5005 IF E1<>U THEN GOTO 5014
 5006 LET E2=U
 5007 LET E1=O
 5008 GOTO T*C0+E
 5014 LET R=W+F-NWRONG
 5015 LET R(U)=X-Q(U)
 5016 LET R(T)=F-Q(T)
 5017 LET R(H)=F-Q(H)
 5018 LET R(F)=T-Q(F)
 5020 GOTO C*H
 5100 SCROLL
 5101 SCROLL
 5102 SCROLL
 5103 SCROLL
 5104 RETURN
 6000 CLEAR
 6005 SAVE "LAN[3]"
 6010 RUN 
 9998 PRINT PEEK 16412+256*PEEK 16413-16384

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

People

No people associated with this content.

Scroll to Top