0 'TEACHER.BA FOR MOD 200 V.07/12/87 BY DICK SPINDLER [76537,1623] COMMENTS & SUGGESTIONS WELCOME VIA M100 SIG! 10 CLEAR2800:DIMQ$(50):DIMA$(50):LN$=STRING$(40,"-"):ON ERROR GOTO 3000 20 CLS:PRINT:PRINT" ";:PRINTCHR$(27)"p";:PRINT"`TEACHER.BA' TEACHING MACHINE PROGRAM";:PRINTCHR$(27)"q" 30 PRINTTAB(9);:PRINTCHR$(27)"p";:PRINT" FOR TANDY 200 LAPTOP ":PRINTCHR$(27);"q";:GOSUB2100:PRINT" 1) WRITE A NEW FLASHCARD SET":PRINT" 2) LOAD A QUESTION SET FROM RAM":PRINT" 3) DRILL THE SET IN MEMORY" 40 PRINT" 4) CHANGE A QUESTION OR ANSWER":PRINT" 5) ADD QUESTIONS TO THIS SET":PRINT" 6) STOP DRILL PROGRAM/RETURN TO MENU":PRINT" 7) PRINT OUT QUESTION/ANSWER SET":PRINT:PRINT" ";:PRINTCHR$(27);"p";" ";CHR$(152);" PRESS THE NUMBER OF YOUR CHOICE. "; 50 PRINTCHR$(27)"q":GOSUB4100:ONVAL(IN$)GOSUB100,200,300,400,500,600,700 60 IFVAL(IN$)>7THEN20 100 'NEW CARD WRITING 105 IFN>49THENPRINT:PRINT"50 CARDS IN THIS SET - THIS IS THE MAX":PRINT:PRINT"RETURNING TO MENU...":GOSUB6000:NEXT:GOTO20 110 CLS:PRINT"NEW CARD WRITING - NEW CARD IS #";N+1:PRINT:PRINT"ENTER QUESTION FOR SIDE ONE":LINEINPUTQ$(N+1):LN=LEN(Q$(N+1)):IFLN>160THENGOSUB5000:GOTO110ELSEPRINT:PRINTQ$(N+1):PRINTLN$; 120 INPUT"IS THE ABOVE QUESTION CORRECT";YN$:IFYN$<>"Y"ANDYN$<>"y"THEN110 130 PRINT:PRINT"ENTER ANSWER FOR SIDE TWO":LINEINPUTA$(N+1):LN=LEN(A$(N+1)):IFLN>80THENGOSUB5000:GOTO130ELSEPRINT:PRINTA$(N+1):PRINTLN$; 140 INPUT"IS THE ABOVE ANSWER CORRECT";YN$:IFYN$<>"Y"ANDYN$<>"y"THEN110ELSEN=N+1:PRINT 150 INPUT"ANOTHER QUESTION (Y/N)";YN$:IFYN$="Y"ORYN$="y"THEN105ELSEIFCH=0THENPRINT:INPUT"NUMBER OF THIS QUESTION SET";SN$:GOSUB3100ELSEGOSUB6000:CH=1:GOTO20 160 FL$="QUES"+SN$+".DO":GOSUB6000:GOTO20 200 'LOAD QUESTION SET 210 CLS:PRINT:INPUT"NUMBER OF QUESTION FILE TO LOAD";SN$:GOSUB3100:FL$="QUES"+SN$+".DO":PRINT:PRINT"LOADING ";FL$ 220 OPEN FL$ FOR INPUT AS #1:INPUT#1,N:FORX=1TON:LINEINPUT#1,Q$(X):LINEINPUT#1,A$(X):NEXT:CLOSE:LD=1:GOTO20 300 DN=0:IFN<1THEN20ELSECLS:PRINT:PRINTTAB(8)"[[ QUESTION DRILL ]]":PRINT:PRINT"ANSWER ";CHR$(34);"*STOP";CHR$(34);" TO RETURN TO MENU.":PRINT:PRINT"ANSWER ";CHR$(34);"*RESET";CHR$(34);" TO RESET SCORE." 310 PRINT:PRINT"ANSWER ";CHR$(34);"*SCORE";CHR$(34);" FOR SCORE AT ANY TIME.":PRINT:INPUT"DRILL IN ORDER OR AT RANDOM (O/R)";R$:IFR$="R"THENGOSUB2000:'INITIALIZE RANDOM FUNCTION 320 IFR$<>"O"ANDR$<>"R"THEN310 330 DN=DN+1:IFR$="O"THEN QN=QN+1:IFQN>NTHENQN=1:GOTO350ELSEGOTO350 340 QN=INT(RND(1)*100)+1:IFQN>N THEN340 350 CLS:PRINT"QUESTION #";QN;" OF SET DRILL #";DN 360 PRINT:PRINTQ$(QN);"?":PRINT 370 LINEINPUT AN$:IFAN$="*STOP"THENGOSUB8000:GOTO20ELSEIFAN$="*SCORE"THENGOSUB8010:GOTO330ELSEIFAN$="*RESET"THENRT=0:WR=0:DN=0:QN=QN-1:GOTO330 380 LA=LEN(AN$):IFLA=0THENPRINT:PRINTA$(QN):PRINTLN$:GOSUB4000:GOTO330ELSEIFAN$=LEFT$(A$(QN),LA)THENPRINT:PRINTTAB(17)"RIGHT!":FORT=1TO300:NEXT:RT=RT+1:GOTO330 390 PRINT:PRINTTAB(8)"WRONG. THE ANSWER IS:":PRINT:PRINTTAB(20-INT((LEN(A$(QN))/2)))A$(QN):PRINTLN$:WR=WR+1:GOSUB4000:GOTO330 400 'CHANGE QUESTION OR ANSWER 410 CLS:PRINTTAB(10)"[[ CHANGE A CARD ]]":PRINT:INPUT"CARD NUMBER FOR CHANGE (0 FOR MENU)";CN:IFCN>NTHEN7000ELSEIFCN=0THEN20ELSEPRINT:PRINT"QUESTION #";CN;"IS:":PRINTQ$(CN):PRINT:PRINT"ANSWER:":PRINTA$(CN) 420 PRINT:INPUT"CHANGE QUESTION OR ANSWER (Q/A)";QA$:IFQA$="Q"THENNA$=A$(CN):PRINT"NEW QUESTION?":LINEINPUTNQ$:GOTO440ELSEIFQA$<>"A"THEN410 430 NQ$=Q$(CN):PRINT"NEW ANSWER?":LINEINPUTNA$:GOTO440 440 CLS:PRINT@80,"QUESTION#";CN;"IS:":PRINT:PRINTNQ$:PRINT:PRINT"ANSWER#";CN;"IS:" 450 PRINT:PRINTNA$:PRINT:PRINTLN$:PRINT:INPUT"IS THE NEW Q AND A CORRECT (Y/N)";YN$:IFYN$="Y"THENQ$(CN)=NQ$:A$(CN)=NA$:GOSUB6000:GOTO20ELSE410 500 'ADD QUESTIONS TO SET IN RAM 510 CH=1:GOTO100'FLAG FOR ADDING TO CURRENT QUESTION SET 600 IFCH=1THENGOSUB6000:MENUELSEMENU 700 CLS:PRINT:PRINT"PRINTING OUT QUESTION/ANSWER SET.":LPRINTFL$:LPRINT" ":FORX=1TON:PRINT"Q/A #";X:LPRINT"#";X:LPRINTQ$(X):LPRINTA$(X):NEXT:GOTO20 999 STOP 1000 IFFL$=""THENMENUELSEOPEN FL$ FOR OUTPUT AS #1:PRINT#1,N:FORX=1TON:PRINT#1,Q$(X):PRINT#1,A$(X):NEXT:CLOSE:RETURN 2000 S=VAL(RIGHT$(TIME$,2)):FORX=1TOS:D=RND(X):NEXT:RETURN 2100 IFLDTHENPRINTTAB(10)N;"QUESTIONS LOADED":PRINT:RETURNELSEPRINT:RETURN 3000 IFERR=52THENPRINT:PRINT:PRINT"FILE ";FL$;" NOT FOUND.":PRINT"RETURNING TO MENU.":FORT=1TO1000:NEXT:GOTO20ELSEPRINT"ERROR #";ERR;" IN LINE ";ERL:STOP 3100 IFLEN(SN$)<2THENSN$="0"+SN$:RETURNELSERETURN 4000 PRINT:PRINT:PRINTTAB(8);:PRINT"< SPACE > TO CONTINUE" 4100 IN$=INKEY$:IFIN$=""THEN4100 4200 RETURN 5000 PRINT:PRINT"TOO LONG -";LN;" CHARACTERS - LIMIT IS 80.":FORT=1TO600:NEXT:RETURN 6000 PRINT:PRINT"Wait...Recording File.":GOSUB1000:RETURN 7000 PRINT:PRINT"THERE ARE ONLY ";N; "QUESTIONS IN SET.":FOR T=1TO600:NEXT:GOTO20 8000 CLS:PRINT:INPUT"DO YOU WISH TO HAVE YOUR SCORE (Y/N)";YN$:IFYN$="N"ORYN$="n"THENRETURN 8010 IF(RT+WR)=0THENPRINT:PRINT"NO SCORE.":FORT=1TO600:NEXTELSEPRINT:PRINT"YOUR SCORE WAS: ";:PRINTUSING"###.#";(RT/(RT+WR)*100);:PRINT"%":GOSUB4000 8020 QN=QN-1:DN=DN-1:RETURN