Jump to content
IGNORED

suggestions for tape based word processor?


newTIboyRob

Recommended Posts

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.

  • Like 2
Link to comment
Share on other sites

What device is "ALP"? ...Some sort of line printer perhaps.

image.thumb.jpeg.59cd6fd3f2914c588d6132005d7b8e3d.jpeg

 

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

 

 

Link to comment
Share on other sites

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

  • Like 3
  • Thanks 2
Link to comment
Share on other sites

XB...

image.thumb.jpeg.f5993b4e3bcc53b101318df56c1842fb.jpeg

image.thumb.jpeg.5a181be4780b61bd39ba9a3f17aff725.jpeg

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

 

 

  • Like 2
Link to comment
Share on other sites

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 :)

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

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.

  • Like 2
Link to comment
Share on other sites

24 minutes ago, Elia Spallanzani fdt said:

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.

  • Like 3
Link to comment
Share on other sites

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.

  • Thanks 1
Link to comment
Share on other sites

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.

  • Like 3
Link to comment
Share on other sites

  • 2 months later...
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!

 

 

 

IMG_20231123_090849872_HDR.jpg

Edited by GDMike
  • Like 2
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...