10 REM"{shft ret}{white}
15 REM      SAM STORY MAKER
20 REM   9/13/84 BY JOHN CROOKSHANK
30 REM"{shft ret}{lt. blue}
32 CLR
35 ]RECITER:]PITCH65:]SPEED65:]KNOBS160,140:]LIGHT0
36 PRINT"{clear}":SAY"WELCOME TO STORY MAKER, BY JOHN CROOKSHANK."
40 DIMS$(500):PRINTCHR$(8)
45 PRINT"{clear}{lt. blue}"CHR$(14):POKE53281,0:POKE53280,0
50 PRINT"{home}{rvrs on}{red}               {$d3}TORY {$cd}AKER              {lt. blue}"
55 C$="{$a6}":R$=CHR$(13):E=0:CB=1
60 PRINT"{up}           {green}BY {$ca}OHN {$c3}ROOKSHANK           {lt. blue}";
80 PRINT"  {$d4}HIS PROGRAM IS A MINI WORD PROCESSOR"
90 PRINT"THAT SENDS ITS TEXT TO {$d3}{$c1}{$cd} INSTEAD OF"
100 PRINT"A PRINTER WHEN YOU'RE DONE, IF THE"
120 PRINT"{$c8}{$c5}{$c1}{$d2} {$d3}{$d4}{$cf}{$d2}{$d9} OPTION IS CHOSEN. {$d9}OU WILL"
130 PRINT"BE ABLE TO CREATE DISK FILES OF DATA"
140 PRINT"WHICH CAN BE LOADED AT A LATER TIME TO"
150 PRINT"BE HEARD AGAIN. {$d9}OU CAN CREATE STORIES"
160 PRINT"UP TO 500 LINES LONG. {$d4}HE {white}{$ba}{lt. blue} THAT YOU"
161 PRINT"SEE AT THE END OF SENTENCES IS A RETURN"
162 PRINT"MARK. {$d4}HIS MARKS THE END OF EACH STRING.";
163 PRINT"{$c5}ACH LINE IS A SEPARATE STRING, AND MUST";
164 PRINT"BE RE-TYPED IF YOU WISH TO EDIT IT."
170 PRINT"{blue}{rvrs on}             {$c3}OMMAND {$c3}ODES:             "
180 PRINT"{up}{lt. blue}{rvrs on}{$c3}{$d4}{$d2}{$cc}-{$d7}{rvrs off} {$d7}RITE/{$c1}DD NEW TEXT
190 PRINT"{rvrs on}{$c3}{$d4}{$d2}{$cc}-{$cc}{rvrs off} {$cc}OAD DATA FILE
200 PRINT"{rvrs on}{$c3}{$d4}{$d2}{$cc}-{$d3}{rvrs off} {$d3}AVE DATA FILE
210 PRINT"{rvrs on}{$c3}{$d4}{$d2}{$cc}-{$c5}{rvrs off} {$c5}DIT TEXT
220 PRINT"{rvrs on}{$c3}{$d4}{$d2}{$cc}-{$c8}{rvrs off} {$c8}EAR STORY
230 PRINT"{rvrs on}{$c3}{$d4}{$d2}{$cc}-{$d8}{rvrs off} E{$d8}IT PROGRAM OR FUNCTION
231 PRINT"{rvrs on}{$c3}{$d4}{$d2}{$cc}-{$c3}{rvrs off} {$c3}LEAR ALL TEXT
232 PRINT"{rvrs on}{$c3}{$d4}{$d2}{$cc}-{$c4}{rvrs off} {$c4}OCUMENTATION FILE
235 PRINT"{white}{rvrs on} {$d3}ELECT {$cf}PTION... {lt. blue}";
236 IFX<1THENPRINT"{green}{rvrs on} ({$ce}O TEXT IN {$cd}EMORY) {lt. blue}":GOTO240
237 PRINT"{red}{rvrs on} ({$d4}EXT IN {$cd}EMORY!) {lt. blue}"
240 IFPEEK(653)<>4THEN240
250 GETA$:IFA$=""ORA$>"Z"THEN240
260 A=ASC(A$)+64:IFA=88THEN580
270 IFA=87THEN300 :REMWRITE
275 IFA=83THEN600 :REMSAVE
280 IFA=76THEN700 :REMLOAD
285 IFA=69THEN900 :REMEDIT
290 IFA=72THEN1100:REM HEAR
291 IFA=67THEN1150:REM CLEAR TEXT
292 IFA=68THEN500:REM DOCS FILE
295 GOTO240
300 PRINT"{clear}{rvrs on}{green}             {$d7}RITE/{$c1}DD {$d4}EXT             {lt. blue}":GOTO420
305 CB=1:X=X+1
310 I$=""
320 IFA$=CHR$(34)THENPRINTCHR$(34)"{left}";
321 PRINTC$;
325 GETA$
326 IFA$=R$ANDE=1THENPRINT"{white}{$ba}{lt. blue}":GOTO1010
330 IFA$=R$THENS$(X)=I$:X=X+1:PRINT"{white}{left}{$ba}{lt. blue}":GOTO460
340 IFA$=CHR$(20)ANDI$>""THENPRINT"{left:2}  {left:2}";:I$=LEFT$(I$,LEN(I$)+(LEN(I$)>0)):GOTO320
350 IFA$=CHR$(24)ANDE=0THENPRINT"{left} ":GOTO440
355 IFA$<CHR$(32)THEN400
356 IFA$>CHR$(90)ANDA$<CHR$(193)THEN325
357 IFA$=""THEN400
358 IFA=69THEN360
359 IFLEN(I$)>70ANDA$=" "THENS$(X)=I$:X=X+1:PRINT"{white}{left}{$ba}{lt. blue}":GOTO310
360 I$=I$+A$:PRINT"{left}"A$;
370 IFLEN(I$)>80ANDA$=" "THENS$(X)=I$:X=X+1:PRINT"{left}{white}{$ba}{lt. blue}":GOTO310
380 GOTO320
400 CB=CB*-1:IFCB<1THENPRINT"{left} ";:FORZ=1TO25:NEXT:GOTO325
410 PRINT"{left}"C$;:FORZ=1TO25:NEXT:GOTO325
420 IFX<1THEN305
425 FORZ=1TOX:PRINTS$(Z)"{white}{$ba}{lt. blue}":NEXT
430 GOTO305
440 IFI$=""THENS$(X)="":X=X-1:GOTO45
450 S$(X)=I$:GOTO45
460 IFX>474THENPRINT"{white}"500-X"LINES LEFT!{lt. blue}"
470 GOTO310
500 PRINT"{clear}{rvrs on}{green}            {$c4}OCUMENTATION {$c6}ILE          "
510 PRINT"{down}{lt. blue}{$d4}HERE SHOULD BE A {$c8}{$c5}{$cc}{$d0} FILE ON THIS"
520 PRINT"{down}DISK BY THE NAME OF "CHR$(34)"{$d3}{$d4}{$cf}{$d2}{$d9}{$c8}{$c5}{$cc}{$d0}"CHR$(34)"."
530 PRINT"{down}{$cc}{$cf}{$c1}{$c4} THIS FILE, THEN ENTER THE {$c5}{$c4}{$c9}{$d4}"
540 PRINT"{down}FUNCTION. {$d0}RESS ANY KEY TO CONTINUE"
550 PRINT"{down}READING THE INSTRUCTIONS."
555 PRINT"{down}{$d4}HEN INPUT 0 TO EXIT THE {$c5}{$c4}{$c9}{$d4} FUNCTION."
560 PRINT"{down:2}{white}{$d0}RESS ANY KEY TO RETURN TO MENU...{lt. blue}"
570 POKE198,0:WAIT198,1:GOTO45
580 PRINT"{clear}{rvrs on}{red}             {$c5}{$d8}{$c9}{$d4} {$d0}{$d2}{$cf}{$c7}{$d2}{$c1}{$cd}!              "
581 PRINT"{down:3}{white}{$c1}RE YOU {$d3}{$d5}{$d2}{$c5} ? ({$d9}/{$ce}){lt. blue}":POKE198,0
582 GETA$:IFA$="Y"THENPRINTCHR$(9):END
583 IFA$<>""THEN45
584 GOTO582
600 PRINT"{clear}{rvrs on}{red} {$d3}AVING FILE DATA... (INPUT {$d8} TO EXIT)  "
605 IFX<1THENPRINT"{white}{down:3}{$ce}O TEXT IN MEMORY!":FORZ=1TO2000:NEXT:GOTO45
610 PRINT"{down}{white}INPUT FILENAME ";:INPUTF$
620 IFF$="X"THEN45
625 PRINT:PRINT
630 OPEN15,8,15,"I0"
640 OPEN2,8,2,"0:"+F$+",S,W"
650 INPUT#15,E1,E$:IFE1=63THEN820
655 IFE1<>0THENPRINT"{down:2}{rvrs on}{white}"E1;E$"! {lt. blue}":FORZ=1TO3000:NEXT:CLOSE2:CLOSE15:GOTO600
659 PRINT"{down:3}{green}({$d7}RITING "F$" ...){lt. blue}"
660 PRINT#2,X
670 FORZ=1TOX:IFS$(Z)=""THENS$(Z)=" ."
675 PRINT#2,S$(Z):NEXT
680 CLOSE2:CLOSE15
690 GOTO45
700 PRINT"{clear}                                        ";
710 PRINT"                                        "
720 PRINT"{home}{green}{rvrs on} {$cc}OADING FILE DATA... (INPUT {$d8} TO EXIT) "
725 IFX>0THENPRINT"{down:3}{red}{$d4}EXT IN {$cd}EMORY! {$cc}OADING WILL ERASE TEXT!"
730 INPUT"{white}INPUT FILENAME";F$
740 IFF$="X"THEN45
745 PRINT:PRINT:FORZ=1TOX:S$(Z)="":NEXT:X=0
750 OPEN15,8,15
760 OPEN2,8,2,"0:"+F$+",S,R"
770 INPUT#15,E1,E$:IFE1<>0THENPRINT"{rvrs on}"E1;E$:FORZ=1TO2000:NEXT:CLOSE2:CLOSE15:GOTO700
775 PRINT"{down:3}{green}({$c4}RIVE WILL PAUSE...){lt. blue}"
780 INPUT#2,X:FORZ=1TOX
785 GET#2,A$:IFA$=CHR$(13)THEN795
790 S$(Z)=S$(Z)+A$:GOTO785
795 NEXT
800 CLOSE2:CLOSE15
810 GOTO45
820 CLOSE2:PRINT"{down:2}{white}{rvrs on} {$c6}ILE {$c5}XISTS... {$d2}EPLACE? ({$d9}/{$ce}){lt. blue}":POKE198,0
830 GETA$:IFA$="Y"ORA$="{$d9}"THEN840
835 IFA$<>""THENCLOSE15:GOTO600
836 GOTO830
840 PRINT"{down:3}{red}({$c5}RASING "F$" ...){lt. blue}"
842 PRINT#15,"S0:"+F$
845 PRINT#15,"V0"
846 PRINT#15,"I0"
850 GOTO640
900 E=1:B=1:Y=X:IFX>6THENY=6
910 PRINT"{clear}{rvrs on}{red}              {$c5}DIT {$d4}EXT                 ";
920 PRINT"{rvrs on}{green}       {$d3}ELECT LINE NUMBER TO {$c5}DIT       ";
930 PRINT"            ({$c9}NPUT 0 TO EXIT)           {lt. blue}":PRINT:PRINT:PRINT
940 IFX=0THENPRINT"{down:4}{white}{$ce}O TEXT IN MEMORY!{lt. blue}":FORZ=1TO2000:NEXT:GOTO45
950 FORZ=BTOY:PRINTZ;S$(Z)"{white}{$ba}{lt. blue}"
951 NEXT
955 IFY=XTHENPRINT"{down}{white}{rvrs on} {$c5}ND OF {$c6}ILE... {$c9}NPUT '0' TO EXIT. {lt. blue}":GOTO1000
960 PRINT"{down}{rvrs on}{white} {$cd}ORE...{$d0}RESS ANY KEY TO CONTINUE.. {lt. blue}"
961 PRINT"{rvrs on}{red} {$d0}RESS {$c6}7 TO EDIT A LINE ON THIS PAGE. ":POKE198,0
962 GETA$:IFA$="{f7}"THEN1000
963 IFA$<>""THEN965
964 GOTO962
965 B=Y+1:Y=Y+6
966 IFPEEK(653)=4THEN1000
970 IFY>XTHENY=X
980 GOTO910
1000 T=0:INPUT"{home}{down:4}{white}LINE NUMBER";T
1002 IFT=0THEN45
1003 PRINT"{up}{$c9}NPUT NEW LINE #"T" ({$d8} TO EXIT){green}"
1005 A$="":I$="":GOTO320
1010 IFI$="X"ORI$=""THEN910
1020 S$(T)=I$:GOTO910
1100 PRINT"{clear}{rvrs on}{yellow}              {$c8}EAR {$d3}TORY                "
1101 IFX<1THENPRINT"{white}{down:5}{$ce}O TEXT IN MEMORY!{lt. blue}":FORZ=1TO2000:NEXT:GOTO45
1102 PRINT"{down:4}{white}{$c4}O YOU WANT {rvrs on}{$d3}{rvrs off}AM OR {rvrs on}{$d2}{rvrs off}ECITER {$d3}/{$d2} ?":POKE198,0
1103 GETA$:IFA$="S"ORA$="{$d3}"THEN:]SAM:GOTO1109
1104 IFA$<>""THEN:]RECITER:GOTO1109
1105 GOTO1103
1109 ]KNOBS160,140:]SPEED65:]PITCH65:]LIGHT0
1110 PRINT"{clear}":FORZ=1TOX:S$=S$(Z)
1111 K$=LEFT$(S$,1):IFK$>CHR$(34)ANDK$<CHR$(39)THEN1200
1115 SAYS$:]ERROR
1120 NEXT
1125 IFPEEK(1064)=32THEN45
1126 PRINT"{red}{rvrs on} {$c5}RROR IN {$d3}PEECH: {lt. blue}{rvrs off} {$d0}RESS ANY {$cb}EY...":POKE198,0:WAIT198,1
1127 GOTO45
1150 PRINT"{clear}{down:5}{white}{$c5}RASE {red}{$c1}{$cc:2}{white} TEXT...
1160 PRINT"{down}{$c1}RE YOU SURE {$d9}/{$ce} ?":POKE198,0
1170 GETA$:IFA$="Y"THENCLR:GOTO40
1180 IFA$<>""THEN45
1190 GOTO1170
1200 K=ASC(K$)-34:P$=RIGHT$(S$,LEN(S$)-1):P=VAL(P$)
1210 ONKGOTO1230,1240,1250,1260
1220 GOTO1115
1230 POKE38880,P:SYS38882:GOTO1120
1240 POKE38881,P:SYS38882:GOTO1120
1250 POKE39439,P:GOTO1120
1260 POKE39438,P:GOTO1120
1270 GOTO1120
