Count9929A Posted August 28, 2023 Share Posted August 28, 2023 The first version of Miniwriter is a tape for minimemory. Dumps are available on Wht Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306269 Share on other sites More sharing options...
+OLD CS1 Posted August 28, 2023 Share Posted August 28, 2023 10 hours ago, HOME AUTOMATION said: 510 DISPLAY AT(@3,@9):"TYPWRITER": : :TAB(@9);"MAIN MENU" Well, slap me around and call me Susie... I never knew colons could be used in DISPLAY...AT. 3 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306465 Share on other sites More sharing options...
WhataKowinkydink Posted August 29, 2023 Share Posted August 29, 2023 42 minutes ago, OLD CS1 said: I never knew colons could be used in DISPLAY...AT. Damn bro - you've been missing out! :D Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306478 Share on other sites More sharing options...
chris36 Posted August 29, 2023 Share Posted August 29, 2023 7 hours ago, arcadeshopper said: I would like a dump.. if it's a rom cart that's pretty easy to do, esp if you have a tipi lmk if you have one and can dump it Looks like it was possibly shared in the past. I wonder if anyone might still have the "dbt.zip" file sitting in your archives. 2 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306484 Share on other sites More sharing options...
HOME AUTOMATION Posted August 29, 2023 Share Posted August 29, 2023 What device is "ALP"? ...Some sort of line printer perhaps. Spoiler 1 REM COPR 1983,PAUL BEASLEY 2 REM 5/14/83 70 CALL KEY(5,K,S) 80 FF=0 90 CALL SCREEN(15) 95 IE$="* INVALID ENTRY *" 100 LPP=66 110 CPL=80 120 CLM=8 130 CRM=4 142 GOSUB 22000 144 MID=INT((CTL+1)/2) 150 DIM L$(66),SP(66),TYP(66),LT$(66) 155 GOSUB 10000 160 CALL CLEAR 170 PRINT "ENTER --" 180 PRINT:" 1 TO TYPE LETTER" 185 PRINT:" 2 TO TYPE PAGE" 190 PRINT:" 3 TO EDIT TEXT" 195 PRINT:" 4 TO DISPLAY TEXT" 200 PRINT:" 5 TO PRINT TEXT" 210 PRINT:" 6 TO SAVE TEXT" 215 PRINT:" 7 T0 LOAD STORED TEXT" 220 PRINT:" 0 TO QUIT" 230 PRINT 240 INPUT ">":N 250 IF N=0 THEN 320 260 IF(N>0)*(N<8)THEN 290 270 PRINT IE$ 280 GOTO 230 290 CALL CLEAR 300 ON N GOSUB 1000,6000,2000,5000,3000,4000,7000 310 GOTO 160 320 STOP 1000 PRINT "PLEASE SEE INST. ABOUT":"'(=)' AT BEGINING OF INPUT":"TO LEFT JUSTIFY,START A NEW PARA" 1002 PRINT "AND INPUT SPACES BEGINING A NEW LINE": : : 1004 PRINT: :"----NEW LETTER----" 1006 GOSUB 22000 1008 LC=0 1010 GOSUB 10000 1020 PRINT:"DO YOU WANT A HEADING?" 1030 GOSUB 11000 1040 IF A$<>"Y" THEN 1210 1050 PRINT:"DO YOU WANT IT CENTERED?" 1060 GOSUB 11000 1070 PRINT: :"ENTER HEADING LINES--" 1075 LC=LC+1 1078 IF LC>LPP THEN 1700 1080 GOSUB 16000 1090 IF LEN(X$)=0 THEN 1210 1094 CC=CC+LEN(X$) 1096 IF CC>TC THEN 1700 1100 T=1 1110 IF A$<>"Y" THEN 1140 1125 T=-1 1140 TYP(LC)=T 1145 GOSUB 20000 1150 IF RC=0 THEN 1075 1160 CC=CC-LEN(X$) 1170 GOTO 1080 1210 PRINT: : :"DO YOU WANT AN INSIDE":"ADDRESS?" 1220 GOSUB 11000 1230 IF A$<>"Y" THEN 1360 1260 PRINT: :"ENTER INSIDE ADDRESS--" 1270 LC=LC+1 1275 IF LC>LPP THEN 1700 1280 GOSUB 16000 1290 IF LEN(X$)=0 THEN 1360 1294 CC=CC+LEN(X$) 1300 TYP(LC)=2 1310 GOSUB 20000 1320 IF RC=0 THEN 1270 1330 CC=CC-LEN(X$) 1340 GOTO 1280 1360 PRINT: :"ENTER SALUTATION--" 1370 LC=LC+1 1375 IF LC>LPP THEN 1700 1380 GOSUB 16000 1390 IF LEN(X$)=0 THEN 1450 1394 CC=CC+LEN(X$) 1396 IF CC>TC THEN 1700 1400 TYP(LC)=3 1410 GOSUB 20000 1420 IF RC=0 THEN 1445 1430 CC=CC-LEN(X$) 1440 GOTO 1380 1445 LC=LC+1 1448 IF LC>LPP THEN 1700 1450 PRINT: :"ENTER BODY OF LETTER--" 1460 LC=LC+1 1465 IF LC>LPP THEN 1700 1470 GOSUB 16000 1480 IF LEN(X$)=0 THEN 1545 1490 CC=CC+LEN(X$) 1500 IF CC>TC THEN 1700 1510 TYP(LC)=4 1520 GOSUB 20000 1522 IF RC=0 THEN 1530 1523 CC=CC-LEN(X$) 1524 GOTO 1470 1530 CC=CC-CTL+LEN(X$) 1532 IF(CC>TC)+(LC>LPP)THEN 1700 1540 GOTO 1460 1545 IF N<>1 THEN 1730 1550 PRINT: :"DO YOU WANT A CLOSING?" 1560 GOSUB 11000 1570 IF A$<>"Y" THEN 1730 1580 PRINT: :"DO YOU WANT IT IN THE":"MIDDLE OF THE PAGE?" 1590 GOSUB 11000 1600 PRINT: :"ENTER CLOSING--" 1610 LC=LC+1 1615 IF LC>LPP THEN 1700 1620 GOSUB 16000 1630 IF LEN(X$)=0 THEN 1730 1636 CC=CC+LEN(X$) 1638 IF CC>TC THEN 1700 1645 T=-5 1650 IF A$<>"Y" THEN 1670 1655 T=5 1670 TYP(LC)=T 1680 GOSUB 20000 1690 IF RC=0 THEN 1610 1694 CC=CC-LEN(X$) 1696 GOTO 1620 1700 PRINT: :"*** THIS PAGE IS FULL ***": :"SAVE THIS PAGE BEFORE":"CONTINUING WITH A NEW PAGE." 1710 GOSUB 19020 1730 RETURN 2000 PRINT: :"-- EDIT TEXT--": : : 2070 PRINT:"ENTER LINE NO. YOU WISH TO CHANGE." 2072 PRINT:"ENTER LINE NO. AS MINUS NO. TO INSERT OR DELETE A LINE." 2074 PRINT:"ENTER 0 WHEN YOU ARE":"FINISHED ." 2076 PRINT: :" " 2080 INPUT "ENTER LINE NO.: ":LC 2090 IF LC=0 THEN 4090 2092 CALL CLEAR 2095 IF LC<0 THEN 2170 2100 PRINT: :"LINE";LC: :L$(LC) 2110 PRINT:"HIT'ENTER'IF NO CHANGE":"NEW LINE:" 2115 IF TYP(LC)<>0 THEN 2130 2116 PRINT: :"*** CAN'T DO THAT ***" 2117 GOTO 2074 2130 GOSUB 16000 2140 IF LEN(X$)=0 THEN 2074 2150 GOSUB 20000 2160 IF RC=0 THEN 2074 ELSE 2100 2170 LC=ABS(LC) 2175 PRINT:"INSERT OR DELETE?" 2180 INPUT "I OR D: ":A$ 2190 IF(A$="I")+(A$="i")THEN 2230 2200 IF(A$="D")+(A$="d")THEN 2360 2210 PRINT IE$ 2220 GOTO 2175 2230 T=TYP(LC) 2231 IF TYP(LPP)<>0 THEN 2280 2232 IF T<>0 THEN 2236 2234 T=6 2236 LL1=LC 2238 INPUT "BEFORE OR AFTER(B OR A)? ":A$ 2240 IF(A$="B")+(A$="b")THEN 2310 2250 IF(A$="A")+(A$="a")THEN 2300 2260 PRINT IE$: : 2270 GOTO 2230 2280 PRINT: :"*** PAGE IS FULL. ***":"INSERT NOT ALLOWED.": : 2285 GOSUB 19020 2290 GOTO 2070 2300 LL1=LC+1 2310 LL2=LPP 2320 INC=1 2330 GOSUB 17000 2340 TYP(LL1)=T 2345 LC=LL1 2347 IF T<>4 THEN 2100 2348 FF=1 2350 GOTO 2100 2360 LL1=LC+1 2370 LL2=LPP 2380 INC=1 2384 IF TYP(LC)<>4 THEN 2390 2386 FF=1 2390 GOSUB 18000 2400 PRINT:"LINE";LC;" DELETED." 2410 GOTO 2070 3000 PRINT: :"-- PRINT LETTER --" 3003 GOSUB 21000 3005 GOSUB 13000 3006 OPEN #2:"ALP",OUTPUT 3010 PRINT: :"WORKING COPY OR FINAL?" 3020 INPUT "W OR F :":A$ 3030 IF(A$="W")+(A$="w")THEN 3240 3035 IF(A$="F")+(A$="f")THEN 3080 3040 PRINT IE$ 3050 GOTO 3010 3080 INPUT "HOW MANY COPIES? ":NC 3090 IF NC>0 THEN 3120 3100 PRINT IE$ 3110 GOTO 3080 3120 FOR II=1 TO NC 3130 M=TM 3140 GOSUB 15000 3150 FOR I=L1 TO L2 3170 PRINT #2:TAB(LM+SP(I));L$(I) 3180 NEXT I 3190 M=5 3195 GOSUB 15000 3200 M=LPP-NL-TM 3210 NEXT II 3220 GOTO 3320 3240 M=TM 3250 GOSUB 15000 3260 FOR I=L1 TO L2 3280 PRINT #2:TAB(LM-4);I;TAB(SP(I)+LM);L$(I) 3290 NEXT I 3300 M=5 3305 GOSUB 15000 3310 M=NL-TM 3320 CLOSE #2 3330 RETURN 4000 PRINT: :"-- SAVE LETTER --": : 4030 OPEN #1:"CS1",OUTPUT,INTERNAL,FIXED 192 4034 GOSUB 22000 4035 FF=1 4040 GOSUB 13000 4050 FOR LN=LPP TO 1 STEP-1 4052 IF L$(LN)<>" " THEN 4056 4054 NEXT LN 4056 I=1 4058 T1$="" 4060 T$="" 4066 T1$=CHR$(LEN(L$(I))+3)&CHR$(SP(I)+128)&CHR$(TYP(I)+128)&L$(I) 4068 IF LEN(T$)+LEN(T1$)>190 THEN 4076 4070 T$=T$&T1$ 4072 I=I+1 4074 GOTO 4066 4076 IF I>LN THEN 4082 4078 PRINT #1:T$&CHR$(254) 4080 GOTO 4060 4082 PRINT #1:T$&CHR$(255) 4084 CLOSE #1 4090 RETURN 5000 PRINT: :"-- DISPLAY LETTER--" 5010 PRINT: :"WHOLE OR PARTIAL LINES?" 5020 INPUT "W OR P:":A$ 5030 LL=0 5040 FOR I=1 TO LPP 5045 IF TYP(I)=0 THEN 5120 5050 IF(A$="P")+(A$="p")THEN 5100 5060 PRINT I:TAB(SP(I)+5);L$(I) 5065 LL=LL+1 5070 IF LEN(L$(I))<22 THEN 5110 5080 LL=LL+1 5090 GOTO 5110 5100 PRINT I;TAB(6);SEG$(L$(I),1,22) 5110 GOSUB 19000 5120 NEXT I 5130 GOSUB 19020 5140 RETURN 6000 PRINT: :"-- ORDINARY TEXT --" 6002 PRINT:"PLEASE SEE INSTRUCTIONS":"ABOUT '(=)' TO PARA" 6010 PRINT: :"ENTER TEXT--": 6020 LC=0 6024 GOSUB 22000 6030 GOTO 1460 7000 PRINT "-- LOADING LETTER --" 7017 GOSUB 22000 7030 OPEN #1:"CS1",INPUT,INTERNAL,FIXED 192 7035 GOSUB 10000 7040 I=1 7042 INPUT #1:T$ 7044 LN=ASC(T$) 7046 IF LN=255 THEN 7066 7048 IF LN=254 THEN 7042 7050 SP(I)=ASC(SEG$(T$,2,1))-128 7052 TYP(I)=ASC(SEG$(T$,3,1))-128 7054 L$(I)=SEG$(T$,4,LN-3) 7060 T$=SEG$(T$,LN+1,LEN(T$)-LN) 7062 I=I+1 7064 GOTO 7044 7066 CLOSE #1 7068 T$="" 7080 FF=0 7100 RETURN 10000 FOR I=1 TO LPP 10010 L$(I)=" " 10020 SP(I)=1 10030 TYP(I)=0 10040 NEXT I 10050 RETURN 11000 INPUT "Y OR N :":A$ 11010 IF A$<>"y" THEN 11030 11020 A$="Y" 11030 IF A$<>"n" THEN 11050 11040 A$="N" 11050 RETURN 12000 PRINT "* TEXT TOO LONG...REENTER *" 12010 RETURN 13000 IF FF=0 THEN 13660 13005 FOR I1=1 TO LPP 13010 IF TYP(I1)=4 THEN 13040 13020 NEXT I1 13030 GOTO 13660 13040 LEND=0 13042 FOR I2=LPP TO I1 STEP-1 13044 IF(TYP(I2)=0)+(LEND<>0)THEN 13050 13046 LEND=I2 13050 IF TYP(I2)=4 THEN 13070 13060 NEXT I2 13070 IT=1 13075 PRINT:"PLEASE WAIT WHILE I FORMAT":"PARAGRAPHS.": : 13080 I=I1-1 13090 FOR J=1 TO LPP 13100 LT$(J)="" 13110 NEXT J 13120 I=I+1 13130 IF I>I2 THEN 13330 13140 X$=L$(I) 13143 LX=LEN(X$) 13145 L$(I)="" 13150 IF(LX<>0)*(SEG$(X$,1,1)<>" ")THEN 13210 13160 IF LEN(LT$(IT))=0 THEN 13192 13170 IT=IT+1 13172 IF IT>=LPP THEN 13510 13192 FOR J=1 TO LX 13194 IF SEG$(X$,J,1)<>" " THEN 13210 13196 NEXT J 13198 LT$(IT)=" " 13200 IT=IT+1 13201 IF IT>=LPP THEN 13510 13202 GOTO 13120 13210 J1=1 13220 FOR J=J1 TO LX 13230 IF SEG$(X$,J,1)=" " THEN 13260 13240 NEXT J 13250 J=LEN(X$)+1 13260 J=J-1 13270 M=J-J1+1 13280 IF LEN(LT$(IT))+M<=CTL THEN 13300 13290 IT=IT+1 13300 LT$(IT)=LT$(IT)&SEG$(X$,J1,M)&" " 13310 J1=J1+M+1 13320 IF J1<=LX THEN 13220 ELSE 13120 13330 M=I2-I1+1 13340 IF LEN(LT$(IT))>0 THEN 13360 13350 IT=IT-1 13360 IF IT=M THEN 13600 13362 LL1=I2+1 13364 LL2=LPP 13366 INC=ABS(I2-I1+1-IT) 13370 IF IT>M THEN 13490 13380 GOSUB 18000 13480 GOTO 13600 13490 GOSUB 17000 13500 IF LEND-M+IT<LPP THEN 13600 13510 PRINT: :"*** PAGE EXCEEDED ***":"LAST TEXT INCOMPLETE.": : 13600 FOR J=1 TO IT 13610 K=J+I1-1 13615 IF K>LPP THEN 13660 13620 L$(K)=LT$(J) 13625 LT$(J)="" 13630 SP(K)=1 13640 TYP(K)=4 13650 NEXT J 13660 FOR L1=1 TO LPP 13670 IF TYP(L1)<>0 THEN 13730 13680 NEXT L1 13690 L1=1 13700 L2=1 13710 NL=0 13715 TX=0 13720 GOTO 13900 13730 FOR L2=LPP TO 1 STEP-1 13740 IF TYP(L2)<>0 THEN 13760 13750 NEXT L2 13760 NL=L2-L1+1 13770 TX=INT((LPP-NL)/2)-4 13780 IF L1=1 THEN 13900 13790 FOR J=L1 TO L2 13800 K=J-L1+1 13810 L$(K)=L$(J) 13820 SP(K)=SP(J) 13830 TYP(K)=TYP(J) 13840 L$(J)=" " 13850 SP(J)=1 13860 TYP(J)=0 13870 NEXT J 13880 L1=1 13890 L2=NL-1 13900 FF=0 13910 RETURN 15000 IF M<=0 THEN 15050 15010 FOR I=1 TO M 15030 PRINT #2 15040 NEXT I 15050 RETURN 16000 INPUT ">":X$ 16010 IF LEN(X$)=0 THEN 16070 16020 IF SEG$(X$,1,1)<>"=" THEN 16070 16030 IF LEN(X$)=1 THEN 16060 16040 X$=SEG$(X$,2,LEN(X$)-1) 16050 RETURN 16060 X$=" " 16070 RETURN 17000 FOR J=LL2 TO LL1 STEP-1 17010 K=J+INC 17020 IF K>LPP THEN 17060 17030 L$(K)=L$(J) 17040 SP(K)=SP(J) 17050 TYP(K)=TYP(J) 17060 L$(J)=" " 17070 SP(J)=1 17080 TYP(J)=0 17090 NEXT J 17100 RETURN 18000 FOR J=LL1 TO LL2 18010 K=J-INC 18020 IF K<1 THEN 18060 18030 L$(K)=L$(J) 18040 SP(K)=SP(J) 18050 TYP(K)=TYP(J) 18060 L$(J)=" " 18070 SP(J)=1 18080 TYP(J)=0 18090 NEXT J 18100 RETURN 19000 LL=LL+1 19010 IF LL<22 THEN 19070 19020 CALL HCHAR(24,3,30) 19030 CALL KEY(3,K,S) 19040 CALL HCHAR(24,3,32) 19050 IF S=0 THEN 19020 19055 CALL KEY(5,K,S) 19060 LL=0 19070 RETURN 20000 TT=TYP(LC) 20010 AT=ABS(TT) 20020 M=1 20030 RC=0 20040 IF AT<>1 THEN 20120 20050 M=MID 20060 IF TT>0 THEN 20080 20070 M=INT((CTL-LEN(X$)+1)/2) 20080 IF LEN(X$)+M<=CTL THEN 20170 20090 RC=1 20100 GOSUB 12000 20110 RETURN 20120 IF AT<>5 THEN 20160 20130 IF TT<0 THEN 20080 20140 M=MID 20150 GOTO 20080 20160 IF(AT<>4)*(AT<>6)THEN 20080 20162 GOSUB 23000 20163 IF RC<>0 THEN 20190 20165 FF=1 20170 SP(LC)=M 20180 L$(LC)=X$ 20190 RETURN 21000 LM=CLM 21010 RM=CRM 21015 PRINT: :"MARGINS":" TOP:";TM:" LEFT:";LM:" RIGHT:";RM 21020 PRINT: :"DO YOU WISH TO CHANGE THE":"MARGINS?" 21030 GOSUB 11000 21040 IF A$<>"Y" THEN 21170 21045 FF=1 21050 INPUT "ENTER TOP MARGIN:":TM 21060 IF TM>0 THEN 21090 21070 PRINT IE$: : 21080 GOTO 21050 21090 INPUT "ENTER LEFT MARGIN:":LM 21100 IF(6<LM)*(LM<CPL)THEN 21130 21110 PRINT IE$: : 21120 GOTO 21090 21130 INPUT "ENTER RIGHT MARGIN:":RM 21140 IF(0<RM)*(LM+RM<CPL)THEN 21170 21150 PRINT IE$: : 21160 GOTO 21130 21170 CTL=CPL-LM-RM 21210 RETURN 22000 CC=0 22010 LM=CLM 22020 RM=CRM 22030 TM=1 22040 BM=2 22045 CTL=CPL-LM-RM 22050 TC=2500 22060 RETURN 23000 LL2=LEN(X$) 23010 LL1=LL2 23015 RC=0 23020 IF LL2<CTL THEN 23080 23030 FOR J=LL2 TO 1 STEP-1 23040 IF SEG$(X$,J,1)=" " THEN 23070 23050 IF LL1-J>CTL THEN 23090 23060 LL1=J-1 23065 IF LL1<=CTL THEN 23080 23070 NEXT J 23080 RETURN 23090 GOSUB 12000 23100 RC=1 23110 RETURN Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306488 Share on other sites More sharing options...
+OLD CS1 Posted August 29, 2023 Share Posted August 29, 2023 39 minutes ago, WhataKowinkydink said: Damn bro - you've been missing out! Seriously. I have been using other clever and unnecessary methods to move to a new line. 2 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306494 Share on other sites More sharing options...
+Ksarul Posted August 29, 2023 Share Posted August 29, 2023 On 8/27/2023 at 9:47 PM, WhataKowinkydink said: Yes, it is *very* nice- the snag is I suspect it is rather rare, though it could be added to a FinalGROM if the ROM is dumped. Here's a Beyond Word Writer file I found in my archives. It may have been converted from CRU to normal bank switching (I haven't tested it). bww8.bin 3 2 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306505 Share on other sites More sharing options...
HOME AUTOMATION Posted August 29, 2023 Share Posted August 29, 2023 2 hours ago, OLD CS1 said: Well, slap me around and call me Susie... I never knew colons could be used in DISPLAY...AT. Haven't we already been through one abusive relationship... 1 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306510 Share on other sites More sharing options...
HOME AUTOMATION Posted August 29, 2023 Share Posted August 29, 2023 XB... Spoiler 100 CALL CLEAR :: DISPLAY AT(8,9):"WORD PROCESSER" 110 DISPLAY AT(13,9):"BY DOUG THOMAS" :: DISPLAY AT(18,8):"TI-99/4A Version" 120 DIM MSG$(500) 170 GOSUB 430 180 CALL CLEAR 190 GOSUB 1090 200 INPUT "ACTION? :":A 210 IF(A>10)+(A<1)=-1 THEN 220 ELSE 230 220 PRINT "INCORRECT INPUT-TRY AGAIN." :: GOTO 200 230 ON A GOTO 240,970,1350,1410,1450,1480,1510,1690,1720,1780 240 CALL CLEAR :: L=L+1 245 DISPLAY AT(10,3):"PRESS SPACE BAR BEFORE ENTER TO LEAVE BLANK LINE." 260 DISPLAY AT(16,2):" PRESS [ENTER] FOR MORE","THAN 1 SECOND TO FINISH TEXT" 270 REM 280 PRINT " > <" 290 PRINT;L; 300 LINPUT "":MSG$(L+1) 310 CALL KEY(0,K,S) :: IF K=13 THEN GOTO 371 320 IF LEN(MSG$(L+1))>64 THEN GOSUB 930 ELSE 330 325 GOTO 180 330 IF(LEN(MSG$(L+1))>1)THEN 345 ELSE 300 345 L=L+1 :: GOTO 280 370 STOP 371 L=L-1 :: GOTO 180 420 REM *CHARACTER DEFINITIONS* 430 DATA 0000003848483400 440 DATA 0040407048483000 450 DATA 0000003840403800 460 DATA 0008083848483400 470 DATA 000018243C201800 480 DATA 0018282038202000 490 DATA 0000384848380830 500 DATA 0020203824242400 510 DATA 0010003010103800 520 DATA 0010003010105020 530 DATA 0040405060504800 540 DATA 0030101010103800 550 DATA 0000006C54545400 560 DATA 0000007848484800 570 DATA 0000003048483000 580 DATA 0000705848704040 590 DATA 0000384848380808 600 DATA 0000002830202000 610 DATA 0000182038083000 620 DATA 0010103810101800 630 DATA 0000004848483400 640 DATA 0000002424281000 650 DATA 0000004454542800 660 DATA 0000002810282800 670 DATA 0000004848301020 680 DATA 0000003810203800 690 REM **READ DATA AND DEFINE CHARACTERS** 700 RESTORE 430 710 FOR Z0=97 TO 122 720 READ Z$ 730 CALL CHAR(Z0,Z$) 740 NEXT Z0 750 RETURN 930 L=L+1 :: PRINT "LINE TO LONG -- SHORTENED AS SHOWN" :: FOR I=64 TO 1 STEP-1 :: IF SEG$(MSG$(L),I,1)=" " THEN 950 ELSE 940 940 NEXT I 950 MSG$(L)=SEG$(MSG$(L),1,I-1) :: PRINT MSG$(L) :: L=L-1 :: GOTO 345 960 REM - PRINTING TEXT 970 M=L-1 :: CALL CLEAR :: DISPLAY AT(12,5)BEEP:"HOW MANY COPIES? : 1" :: ACCEPT AT(12,24)SIZE(-2):G :: IF G>1 THEN 980 ELSE 1000 980 DISPLAY AT(16,2):"Do you wish Printer to halt before printing next copy? Y/N" :: ACCEPT AT(19,5)SIZE(-1)VALIDATE("YNyn"):S$ 1000 CALL CLEAR :: DISPLAY AT(12,11):"PRINTING" :: L=-1 1010 OPEN #1:"ALP" :: M=M+1 1020 FOR L=1 TO M STEP 1 :: IF L=58 THEN 1081 ELSE 1025 1025 IF L=116 OR L=174 THEN 1082 ELSE 1030 1030 IF L=232 OR L=290 THEN 1082 ELSE 1035 1035 IF L=348 OR L=406 THEN 1082 ELSE 1040 1040 IF L=464 OR L=522 THEN 1082 ELSE 1045 1045 IF L=580 OR L=638 THEN 1082 ELSE 1050 1050 IF L=696 OR L=754 THEN 1082 ELSE 1060 1060 PRINT #1:MSG$(L+1) :: NEXT L 1070 G=G-1 :: L=L-1 :: M=M-1 :: IF G<1 THEN 1080 ELSE 1075 1075 FOR U=1 TO G :: NEXT U :: PRINT #1:CHR$(10)&CHR$(10) :: M=M+1 :: IF S$="Y" OR S$="y" THEN 1076 ELSE 1020 1076 CALL CLEAR :: DISPLAY AT(10,2):"SET UP PAGE FOR NEXT COPY PRESS ANY KEY TO CONTINUE." 1077 CALL KEY(0,K,S) :: IF S=0 THEN 1077 :: CALL CLEAR :: DISPLAY AT(12,11):"PRINTING" :: GOTO 1020 1080 CLOSE #1 :: GOTO 180 1081 E=1 1082 E=E+1 :: PRINT #1 :: PRINT #1:TAB(60);E;"/." :: PRINT #1:CHR$(10)&CHR$(10)&CHR$(10) 1083 PRINT #1:TAB(31);E;"." :: PRINT #1 :: GOTO 1060 1090 DISPLAY AT(3,3):"1 ADD TEXT" 1100 DISPLAY AT(5,3):"2 PRINT TEXT" 1110 DISPLAY AT(7,3):"3 SAVE TO DISK/TAPE" 1120 DISPLAY AT(9,3):"4 READ FROM DISK/TAPE" 1130 DISPLAY AT(11,3):"5 DELETE LINE" 1140 DISPLAY AT(13,3):"6 REPLACE LINE" 1150 DISPLAY AT(15,3):"7 REPLACE WORD" 1160 DISPLAY AT(17,3):"8 INSERT LINE" 1170 DISPLAY AT(19,3):"9 START OVER" 1180 DISPLAY AT(21,2):"10 PRINT SCREEN/PRINTER" 1190 RETURN 1340 REM - SAVE TO DISK/TAPE 1350 CALL CLEAR :: INPUT "TAPE (Y/N)? :":TAPE$ :: IF TAPE$="Y" OR TAPE$="y" THEN 1356 :: CALL CLEAR :: INPUT "ENTER FILENAME$:":FILENAME$ 1352 IF(LEN(FILENAME$)<1)+(LEN(FILENAME$)>10)=-1 THEN 1350 1355 OPEN #3:"DSK1."&FILENAME$,OUTPUT,SEQUENTIAL,INTERNAL,VARIABLE 254 :: GOTO 1360 1356 OPEN #3:"CS1",INTERNAL,OUTPUT,FIXED 192 1360 L=L-1 :: I=L :: PRINT #3:I 1365 IF TAPE$="Y" OR TAPE$="y" THEN 1366 ELSE 1370 1366 FOR L=1 TO I+2 STEP 3 :: GOTO 1385 1370 FOR L=1 TO I+3 STEP 4 1380 PRINT #3:MSG$(L),MSG$(L+1),MSG$(L+2),MSG$(L+3) :: NEXT L :: GOTO 1390 1385 PRINT #3:MSG$(L),MSG$(L+1),MSG$(L+2) :: NEXT L 1390 CLOSE #3 :: GOTO 180 1400 REM - READ FROM DISK/TAPE 1410 CALL CLEAR :: INPUT "TAPE (Y/N)? :":TAPE$ :: IF TAPE$="Y" OR TAPE$="y" THEN 1425 :: CALL CLEAR :: INPUT "ENTER FILENAME$:":FILENAME$ 1412 IF(LEN(FILENAME$)<1)+(LEN(FILENAME$)>10)=-1 THEN 1410 1415 OPEN #3:"DSK1."&FILENAME$,INPUT,SEQUENTIAL,INTERNAL,VARIABLE 254 1420 INPUT #3:Y :: FOR L=I+1 TO Y+I+3 STEP 4 :: GOTO 1430 1425 OPEN #3:"CS1",INTERNAL,INPUT,FIXED 192 :: INPUT #3:Y :: FOR L=I+1 TO Y+I+2 STEP 3 1426 INPUT #3:MSG$(L),MSG$(L+1),MSG$(L+2) :: NEXT L :: GOTO 1440 1430 INPUT #3:MSG$(L),MSG$(L+1),MSG$(L+2),MSG$(L+3) :: NEXT L 1440 L=Y :: CLOSE #3 :: GOTO 180 1450 CALL CLEAR :: REM - DELETE LINE 1460 GOSUB 1960 1470 FOR I=B TO L :: MSG$(I)=MSG$(I+1) :: NEXT I :: MSG$(L+1)="" :: L=L-1 :: GOTO 180 1480 CALL CLEAR :: REM - REPLACE LINE 1490 GOSUB 1960 1500 PRINT "ENTER REPLACEMENT LINE :" :: INPUT MSG$(B) :: IF LEN(MSG$(B))>64 THEN 930 ELSE 180 1510 CALL CLEAR :: REM - REPLACE A WORD 1520 INPUT "WORD TO BE CHANGED :":R$ :: D=LEN(R$) :: IF D=0 THEN 1530 ELSE 1540 1530 PRINT "ERROR" :: FOR ZZ=1 TO 500 :: NEXT ZZ :: GOTO 180 1540 N=0 :: INPUT "NEW WORD? ":N$ :: INPUT "FROM LINE (0=ALL?) ":B 1550 IF B>L THEN 1560 ELSE 1570 1560 PRINT "NO SUCH LINE" :: FOR ZZ=1 TO 500 :: NEXT ZZ :: GOTO 180 1570 IF B<1 THEN 1580 ELSE 1590 1580 C=L :: B=1 :: GOTO 1610 1590 B=B+1 :: INPUT "THRU LINE :":C :: C=C+1 :: IF(C<B)+(C>L)=-1 THEN 1600 ELSE 1610 1600 C=L 1610 PRINT TAB(11):"SEARCHING" :: FOR K=B TO C 1620 P$=MSG$(K) :: IF LEN(P$)<D THEN 1670 ELSE 1630 1630 A=LEN(P$)+1-D :: FOR I=1 TO A 1640 IF R$=SEG$(P$,I,D)THEN 1650 ELSE 1660 1650 GOSUB 1990 1660 NEXT I 1670 NEXT K 1680 PRINT N;" CHANGES MADE." :: FOR ZZ=1 TO 500 :: NEXT ZZ :: GOTO 180 1690 CALL CLEAR :: REM - INSERT NEW LINE 1700 PRINT "BEFORE " :: GOSUB 1960 :: L=L+1 :: FOR I=L TO B+1 STEP-1 :: MSG$(I)=MSG$(I-1) :: NEXT I 1710 PRINT " ENTER NEW LINE ": :: MSG$(B)="" :: INPUT MSG$(B) :: GOTO 180 1720 CALL CLEAR :: REM - START OVER 1730 INPUT "DO YOU WISH TO CONTINUE WITHSCRIPT IF -YES- PRESS >Y<, OTHERWISE >N< & ENTER.":O$ 1740 I=Z :: IF O$="Y" OR O$="y" THEN 1750 ELSE 1760 1750 FOR I=Z TO L :: MSG$(I)="" :: NEXT I :: L=L-1 :: GOTO 1770 1760 FOR I=1 TO L :: MSG$(I)="" :: NEXT I :: Z=0 :: L=0 :: I=0 1770 PRINT :: PRINT "WORK AREA CLEAR " :: V=I+1 :: FOR ZZ=1 TO 200 :: NEXT ZZ :: GOTO 180 1780 CALL CLEAR :: REM - PRINT SCREEN/PRINTER 1790 PRINT "FIRST LINE # ";V+1:"LAST LINE # ";L :: IF L=0 THEN 180 1800 INPUT " START, END LINES?":A,B :: PRINT :: PRINT "PRESS SPACE BAR TO STOP SCREEN PRINT" :: INPUT "ENTER Y/N FOR USING PRINTER ":ANS$ 1810 IF ANS$="Y" THEN 1820 ELSE 1850 1820 OPEN #1:"RS232.DA=8" 1830 PRINT #1:CHR$(30); 1840 PRINT #1:CHR$(27);"B"; 1850 IF(A<0)+(A>L)+(A>B)+(B<0)+(B>L)=-1 THEN 1860 ELSE 1870 1860 PRINT " ERROR" :: GOTO 1790 1870 FOR I=A TO B :: PRINT I;MSG$(I+1) :: IF ANS$="Y" THEN 1880 ELSE 1890 1880 PRINT #1:I;MSG$(I+1) 1890 CALL KEY(0,K,S) :: IF K=32 THEN 1900 ELSE 1930 1900 PRINT :: PRINT "PRESS SPACE BAR TO CONTINUE" 1910 CALL KEY(0,K,S) :: IF S=0 THEN 1910 1920 IF K=32 THEN 1930 1930 NEXT I :: FOR ZZ=1 TO 1000 :: NEXT ZZ :: IF ANS$="Y" THEN 1940 ELSE 1950 1940 CLOSE #1 :: ANS$="" 1950 I=Z :: GOTO 180 1960 INPUT "LINE NUMBER? ":B :: IF(B<1)+(B>L)=-1 THEN 1970 ELSE 1980 1970 PRINT "NO SUCH LINE " :: GOTO 180 1980 PRINT "OLD LINE #";B :: B=B+1 :: PRINT MSG$(B) :: RETURN 1990 CPOS=POS(P$,R$,1) :: IF CPOS<>0 THEN 2000 :: RETURN 2000 T$(1)=SEG$(P$,1,CPOS-1) 2010 T$(2)=SEG$(P$,CPOS+D,LEN(P$)) 2020 P$=T$(1)&N$&T$(2) 2030 MSG$(K)=P$ :: N=N+1 2040 PRINT "LINE #";K :: PRINT MSG$(K) :: RETURN 2 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306519 Share on other sites More sharing options...
HOME AUTOMATION Posted August 29, 2023 Share Posted August 29, 2023 Lots of cassette capable softs here... CassetteProject/ 2 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306521 Share on other sites More sharing options...
+OLD CS1 Posted August 29, 2023 Share Posted August 29, 2023 30 minutes ago, HOME AUTOMATION said: Haven't we already been through one abusive relationship... Yeah, but you never call. 4 1 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306522 Share on other sites More sharing options...
+arcadeshopper Posted August 29, 2023 Share Posted August 29, 2023 15 hours ago, Ksarul said: Here's a Beyond Word Writer file I found in my archives. It may have been converted from CRU to normal bank switching (I haven't tested it). bww8.bin 32 kB · 4 downloads seems to work fine in classic99 1 1 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306784 Share on other sites More sharing options...
HOME AUTOMATION Posted August 29, 2023 Share Posted August 29, 2023 I noticed that as well, than thought, maybe Classic99 supports CRU, switching. So I checked and couldn't find any >6002 addresses, on any word boundaries. I don't have any real hardware here anymore. 1 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306845 Share on other sites More sharing options...
Tursi Posted August 29, 2023 Share Posted August 29, 2023 Classic99 supports CRU switching up to 64k. It doesn't have a separate mode for it, it's piggybacked on the normal 8/9 modes. 1 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306854 Share on other sites More sharing options...
+OLD CS1 Posted August 29, 2023 Share Posted August 29, 2023 39 minutes ago, HOME AUTOMATION said: I noticed that as well, than thought, maybe Classic99 supports CRU, switching. So I checked and couldn't find any >6002 addresses, on any word boundaries. I don't have any real hardware here anymore. Huh... if this file is a CRU-banking binary, then it should be able to load into a Super Space II cartridge. So happens I have one. Also so happens that I am about eight hours from losing power 1 1 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306866 Share on other sites More sharing options...
senior_falcon Posted August 29, 2023 Share Posted August 29, 2023 On 8/27/2023 at 5:56 PM, newTIboyRob said: Hi, just wondering what you'd recommend for an entry level, but still decent word processing program that I can use that is either on cartridge (but my Ti is unexpanded, no disk drive, etc.. just bare bones) or use via tape drive. Any suggestions here? In theory, a word processor could be written using the jailbreak method to start up an assembly language word processor that runs in 40 columns. No cartridge required; this would need nothing more than a console and tape player. You would load the program from the tape player, and then load or create the document, which can then be saved to tape when desired. As a rough estimate, it might use about 5K for the program (depending on the bells and whistles), which would leave about 8K for the document. (About 3 or 4 pages) As far as I know, this does not exist, but it should be possible. The fly in the ointment is that a bare console has no way to send text to a printer. That requires some kind of expansion system, although I understand there was a cart that could send text to a printer. 2 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306879 Share on other sites More sharing options...
+FarmerPotato Posted August 29, 2023 Share Posted August 29, 2023 @senior_falconThe solution was Joytalk. John Clulow I think. Published in magazine (which?) as "Joytalk is cheap". The joystick port (and cassette?) is then used to send output to a printer. Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306880 Share on other sites More sharing options...
Elia Spallanzani fdt Posted August 29, 2023 Share Posted August 29, 2023 Need minimemory http://www.mainbyte.com/ti99/joytalk/joytalk.html 1 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306911 Share on other sites More sharing options...
+OLD CS1 Posted August 29, 2023 Share Posted August 29, 2023 24 minutes ago, Elia Spallanzani fdt said: Need minimemory http://www.mainbyte.com/ti99/joytalk/joytalk.html True, but with the jailbreak from TI BASIC, whatever could be done with the MiniMemory could be done here. Considering the era, a number of cheap side-port PIO interfaces were made available to be used in lieu of a full expansion system. It is reasonable to assume that a TI BASIC jailbreak word processor could avail itself of one of those, and coexist contemporarily. 3 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306924 Share on other sites More sharing options...
+arcadeshopper Posted August 29, 2023 Share Posted August 29, 2023 desktop publisher.. seems to use CS1 fine Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5306944 Share on other sites More sharing options...
RickyDean Posted August 30, 2023 Share Posted August 30, 2023 4 hours ago, OLD CS1 said: Huh... if this file is a CRU-banking binary, then it should be able to load into a Super Space II cartridge. So happens I have one. Also so happens that I am about eight hours from losing power Yes, I too may be losing power in that time frame. The eye will be passing somewhere in my area. I'll be working on the interstate looking for problems, helping people. 1 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5307016 Share on other sites More sharing options...
+OLD CS1 Posted August 30, 2023 Share Posted August 30, 2023 18 minutes ago, RickyDean said: Yes, I too may be losing power in that time frame. The eye will be passing somewhere in my area. I'll be working on the interstate looking for problems, helping people. Stay safe out there. Since I no longer work for emergency management, I ain't got shyte I have to do, but I will be out tomorrow helping clean up the neighborhood and surrounding streets and at some point will be checking up on customer sites. Got all my batteries charged and these Ryobi chainsaws work great for this kind of work. I expect to have to pull out the generator in the morning, so it is sitting right by the garage back door. I am looking forward to a small apocalypse to change the pace. 3 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5307020 Share on other sites More sharing options...
+Ksarul Posted September 3, 2023 Share Posted September 3, 2023 Here's a tested version of the Beyond Wordwriter cartridge that uses standard bank-switched mode (no more CRU switching). With thanks to @PeteE for making the conversion four years ago. I pulled the original thread forward as well, since it has a lot of data concerning several of the DBT CRU-switched cartridges. bww8.bin 4 2 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5309044 Share on other sites More sharing options...
GDMike Posted November 23, 2023 Share Posted November 23, 2023 My Supercart version requires only a Supercart and my SNP notes program. 1 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5354062 Share on other sites More sharing options...
GDMike Posted November 23, 2023 Share Posted November 23, 2023 (edited) 2 hours ago, GDMike said: My Supercart version requires only a Supercart and my SNP notes program. Oops. But to load the software you have to have a disk system, unless someone else loads it up on a Supercart for you. My bad.. This video version can save to disk. The basic snp saved to Supercart ram pages 1-10 Happy Thanksgiving everyone! Edited November 23, 2023 by GDMike 2 Quote Link to comment https://forums.atariage.com/topic/354321-suggestions-for-tape-based-word-processor/page/2/#findComment-5354112 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.