…'840426 CRC’¢CHEK COMëDEDIT ASC$ÌmÓDIMS ASCðMŒDINSTALLDOC=lZ.READ-ME 103©(}ÿinç thå spacå baò wilì sho÷ thå ----CHEK--------ver 1.0-------02/02/83---- FILE CRC CHARS RECORDS READ-ME .103 4A 21 5120 40 DINSTALL.DOC 72 06 46592 364 STRIP .ASC C7 5D 1536 12 FORMFORM.DWS F2 00 6784 53 FIELDFOR.DWS 1D 80 1664 13 DIMS .ASC 4D D0 9856 77 DEDIT .ASC 8F 31 26112 204 DCFORM .ASC 00 F8 8960 70 DCHESHIR.ASC 15 E0 8832 69 DCREATE .ASC 1D 7B 3840 30 DDOC .ASC DC 39 2432 19 DGET .ASC 6E A8 4608 36 DHELP .ASC C1 BB 1536 12 DLABELS .ASC 8C 83 5632 44 DLETTERS.ASC A9 96 6016 47 DNADIN .ASC 33 CE 3456 27 DPUT .ASC EA 3A 4352 34 DSORT .ASC 22 D9 13568 106 DSTAT .ASC 24 8D 7296 57 LONGADDR.D 61 BA 256 2 STANDADD.D 57 66 384 3 SHORTADD.D 82 39 256 2 ARTICLES.D F5 68 4096 32 MEMBERS .D 3D E4 256 2 LONGADDR.DD 61 BA 256 2 STANDADD.DD 57 66 384 3 SHORTADD.DD 82 39 256 2 ARTICLES.DD F5 68 4096 32 MEMBERS .DD 3D E4 256 2 SHORT .DFO 8C EC 896 7 SHORT1 .DFO F2 B8 768 6 STANDADD.DFO 91 87 3456 27 MEMBERS .DFO F1 24 896 7 MEMBERS .DOC 7F 29 2048 16 DHELP .DOC 46 12 6144 48 CHEK .COM 23 B7 2560 20 1/20/84 .CRC 0B AF 1664 13 PIP .COM 00 07 7424 58 DUNFLAG .BAS 89 94 3456 27 DGET+ .BAS 5A 08 4864 38 Ã!9"þ 1þ >2â2ï> 2Õ:]þ °ÍW ++ No file name specified ++ COMMANDS: CHEK [drive:] FILE Examples: CHEK B:HELLO.ASM check only HELLO.ASM CHEK *.ASM check only .ASM files CHEK *.* check all files, check disk quality CHEK *.* F makes disk file named CHEKLIST.CRC CHEK *.* FF makes disk file named FF.CRC CHEK *.* FILE makes disk file named FILE.CRC CHEK *.* HELLO.ABC makes disk file named HELLO.ABC NOTE: If byte 0103 is 0, no disk file is made regardless of request $ :Ög¯“o|šg"ò:·Ê-:m2Õþ Ê-¯2# 27 !"ô Í Í< bÍÃÅ:mþFÂ:nþ Ê-:uþ Ê> 2$!lö ~# Â%1þ ÍQÒ¹:ï·ÊZÍ ++ File(s) not found ++$:Õþ Ê­*ô}æÂn"ò>õÍrñÂb Í<ÂŒ ±ÍöÍ! öå w# ŸÑÍÍW Done $:·ÂÈ:fæ€Â-!eÍçÊ-¯2ïÍß!]óÍö!eüÍöÍXXXXXXXX.XXX \Í<Â&Í++ OPEN FAILED ++$!"Ó!"Ñ!¯ÍE!ºÍEÃO6 #ÂE60É*Ñ|þÊ} Í·ÊkÍþÊ\ͷ‹Í#!€N#"ÑÍÞÍ,ÃOþÂůÍÞ¯ÍÞ:ÔÍÿ> Í^:ÓÍÿÍ ÍWÃ-Í++ File read error ++$*ÓyO}o|gÒ÷|îg}î!oÂã"ÓÉõÍñæþ ÚÆÆ0Ã^ã~Í^#~·ÂãÉå!½Ã2å!µÕÅÍBÂS+ Â4ÃS~þ ÂJ>00wÉÁÑáÉ> Í^> ÅÕåæ_ÕÍFÑÍáÑÁÉõ*òë*ô}“|šÚÏ!"ôë*ò{•zœÒÁ* ëÍ Í·Âµ€*ô"ôÇ ŒÍñÃÅ€Í!"ôë* ëñ*ô#"ôÉÍ ----CHEK--------ver 1.0-------02/02/83---- FILE CRC CHARS RECORDS >É2ßÉ:Õþ È{Írɀͯ2h2|:â·Ê!\ã Íö:\2Ö!ã\ Íö\Íø!Ö\ Íö\Í!ã\ Íö\Í<7È=懇‡‡‡Æo&å× Íöá] Íö¯2h2|2âÉÍïÀÍïÀ~æþ$#É~# x±ÂöÉÑ Í:Õþ ÊA*ô}æÂ"ò>õÍrñ Í<Â9 ±Í ÍÍW ++ ABORTED ++ $Ñ Í*þ ùÉ ++ NO DIRECTORY SPACE FOR CRC FILE ++ $ ++ NO DISK SPACE FOR CRC FILE ++ $ ++ CANNOT CLOSE CRC FILE ++ $  CHEKLISTCRC Í:Õþ ÊA*ô}æÂCHEKLIST$$$ Í<Â9 ±Í ÍÍW ++ ABORTED ++ $Ñ Í*þ ùÉ ++ NO DIRECTORY SPACE FOR CRC FILE ++ $ ++ NO DISK SPACE FOR CRC FILE ++ $ ++ CANNOT CLOSE CRC FILE ++ $  CHEKLISTC {‘z˜ÉÍj|·Âß Í€Ú}x±ÊÃÍI ÍÄ Íš åÍš åÍš DMÑáóÊÏÚ½" æ=ÊÏÍà=ÊÏYPÍà1ÑÁñáù* å* ûÉõÅ!£~4·Êû#~#F#»ÂûxºÂû~#s#r#10 ' ******* DEDIT ******* 15 PRINT"DEDIT must be entered from DIMS. 20 STOP 1000 ' PROGRAM BEGINS HERE 1010 PRINT:PRINT TAB(26);"DEDIT 1.03 - January 10, 1984 1020 DEFINT A-Z 1030 COMMON I,J,K,X,Y,T$,R$,S$,T1$,SKIPPARSE,FT,SEARCH, C,N,NC,P6,P7,P8,P9,PI,S,T,T1,T2,C(),B$(),N$(), SEARCHWORD$(),SEARCHFIELD(),SKIPWORD$(),LOOKFIELD(),DD$(),F$,FT$ 1031 'use of PI discontinued as of v. 1.03 1040 ON ERROR GOTO 7000 1050 ' DIM FOR FORMAT 1060 DIM SQ(NC+1),FM(NC),LFM(NC),F2$(NC),LF2$(NC) 1070 DIM NLL(NC),LNLL(NC),NLC(NC),LNLC(NC) 1080 DIM PU$(NC),LPU$(NC),DLL(NC),LDLL(NC),DLC(NC),LDLC(NC) 1090 DIM FMB(NC),LFMB(NC),FL(NC),LFL(NC),FB(NC),LFB(NC) 1100 GOSUB 7870 ' load default format 1110 IF T=0 THEN T1=N:T2=N:PRINT:PRINT"Here's the last record:":GOTO 2900 1120 ' COMMAND PROCESSOR ENTER HERE AFTER FINISHING COMMAND 1130 E$="" ' error msg 1140 ' ENTER WITH ERROR 1150 FOR I=1 TO 10:C$(I)="":NEXT ' clear 1160 ' ACCEPT COMMAND 1170 IF E$<>"" THEN PRINT CHR$(7); 1180 PRINT CHR$(13); 1190 IF RS THEN X=24:Y=1:GOSUB 6700 1200 PRINT SPC(79); CHR$(13); 1210 PRINT E$" ";:E$="":PRINT"Edit ";F$;": "; 1212 IF RS THEN LINE INPUT;A$: GOTO 1220 1214 LINE INPUT A$ 1220 IF A$="" THEN 1210 1230 ' PARSE COMMAND 1240 A$=A$+" " 1250 J=0 1260 K=INSTR(A$,CHR$(32)) 1265 IF J=10 THEN 1320 1270 J=J+1 1280 IF K=0 THEN 1320 1290 C$(J)=MID$(A$,1,K-1) 1300 A$=MID$(A$,K+1) 1310 GOTO 1260 1320 C$(J)=CHR$(13) 1330 ' 1340 IF LEFT$(C$(1),3)="rep" THEN J=2: GOSUB 1790: GOTO 2580 1345 ' DEFAULTS 1350 A=0:T=2:T1=1:T2=0:C1=0:SEARCH=0:SKIPPARSE=0:P6=0:P7=0:P9=0:PG=1:LPG=1: FLAG=0:FLAG$="" 1360 ' PROCESS WORD MATRIX 1370 J=0 1380 ' LOOP TO HERE TO CHECK NEXT WORD 1390 J=J+1 1400 GOSUB 1790 ' range 1410 IF C$(J)=CHR$(13) THEN 2580 ' do it 1420 C1$=LEFT$(C$(J),3) 1430 ' FINAL COMMANDS 1440 IF C1$="add" THEN T=1: GOTO 2580 1450 IF C1$="fie" THEN GOSUB 2060:GOTO 1120 1460 IF C1$="ins" THEN T=4: GOTO 1390 ' unfinished 1470 IF C1$="don" THEN T=9: GOTO 2580 1490 IF C1$="ren" THEN T=12: GOTO 2580 ' renumber 1500 IF C1$="for" THEN 2170 1505 IF C1$="bac" THEN T=11:GOTO 2580 1506 IF C1$="pro" THEN 8620 1507 IF C1$="got" THEN T=7:B$(0)=C$(J+1):GOTO 2580 'goto 1510 ' RECIRCULATING COMMANDS 1514 IF C1$="cha" THEN T=3:GOTO 1390 1515 IF C1$="del" THEN T=10:GOTO 1390 1520 IF C1$="lis" THEN T=2:GOTO 1390 1530 IF C1$="fin" THEN 1532 ELSE 1540 1532 J=J+1:SEARCH=2:SKIPPARSE=1 1534 X=INSTR(C$(J),CHR$(95)):IF X THEN Y=LEN(C$(J)):GOTO 1535 ELSE 1538 1535 C$(J)=LEFT$(C$(J),X-1)+" "+RIGHT$(C$(J),Y-X) 1536 GOTO 1534 1538 SEARCHWORD$(0)=C$(J):GOTO 1390 1540 IF C1$="sel" THEN SEARCH=1:GOTO 1390 1550 IF C1$="pri" THEN P9=1:GOTO 1390 1560 IF C1$="cop" THEN P7=1:GOTO 1390 'dims out 1570 IF C1$="wri" THEN P6=1:GOTO 1390 ' not implem. 1580 IF C1$="and" THEN GOTO 1390 1590 IF C1$="pag" THEN PG=VAL(C$(J+1)):LPG=PG: J=J+1: GOTO 1390 1600 IF C1$="mar" THEN LLM=VAL(C$(J+1)): J=J+1: GOTO 1390 1610 IF C1$="fla" THEN GOSUB 8550:GOTO 1390 1620 ' TRANSIENT COMMANDS 1630 X$=C$(J): GOSUB 7070: C$(J)=Y$ ' UCV 1640 ON ERROR GOTO 1740 1650 ' open this way to test 1660 OPEN"I",3,DD$(2)+"D"+C$(J)+".BAS" 1670 ' if it's there, close it and chain 1680 CLOSE 3: T$=C$(J):J=J+1 1690 ' GO CHAIN 1700 GOSUB 1790 1705 IF T2=0 THEN T2=N 1710 IF P9 THEN GOSUB 7160 1720 IF SEARCH=1 THEN GOSUB 7460 1725 PRINT:PRINT TAB(19);"Please wait while transient program loads. 1730 CHAIN DD$(2)+"D"+T$,1000 1740 ' NO CHAIN 1750 IF ERR=53 OR ERR=64 THEN 1770 1760 ON ERROR GOTO 0 1770 CLOSE 3: ON ERROR GOTO 7000: E$=C$(J)+"?": RESUME 1140 1780 ' (SUB) GET RANGE 1790 ' TEST WORD 1800 IF C1 THEN RETURN ' range done flag 1810 C3=VAL(C$(J)) 1820 IF C3>0 THEN 1830 ELSE 1850 1830 IF C3>N THEN C3=N 1840 T1=C3: GOTO 1910 1850 IF C$(J)="from" THEN J=J+1: T2=N:GOTO 1790 1860 IF C$(J)="all" THEN T1=1: T2=N: GOTO 2050 1870 IF C$(J)="."THEN T1=T0: GOTO 1910 1880 IF C$(J)="next"THEN T1=T0+1: GOTO 1910 1890 IF C$(J)="to" THEN GOTO 1910 1900 RETURN 1910 ' LOOK FOR 2nd # 1920 J=J+1:IF C$(J)=CHR$(13) THEN 2030 1930 C3=VAL(C$(J)) 1940 IF C3>0 THEN 1950 ELSE 1980 1950 IF C3>N THEN C3=N 1960 T2=C3: IF T1>T2 THEN SWAP T1,T2 1970 GOTO 2050 1980 IF C$(J)="to" THEN 1920 1990 IF C$(J)="." THEN T2=T0: GOTO 2050 2000 IF C$(J)="next" THEN T2=T0+1: GOTO 2050 2010 IF C$(J)="end" THEN T2=N: GOTO 2050 2020 IF C$(J)="last" THEN T2=N:GOTO 2050 2030 IF T2=0 THEN T2=T1:C1=1 ' if only one number 2040 RETURN 2050 J=J+1:C1=1:RETURN 2060 ' (SUB) HIDE FIELDS 2070 PRINT TAB(24)"Here are the fields in "F$:PRINT 2075 FOR I=1 TO NC:C(I)=1:NEXT ' set all to show 2080 GOSUB 7800 2110 FOR I=1 TO NC 2120 PRINT TAB(27)"Show "LEFT$(N$(I),4)"? (y/n) "; 2130 A$=INPUT$(1):IF A$=CHR$(13) THEN A$="y" 2140 PRINT A$:IF A$="n" THEN C(I)=0 2150 NEXT 2160 RETURN 2170 ' FORMAT COMMAND 2190 IF C$(J+1)="0" THEN 2290 2200 IF C$(J+1)=CHR$(13) THEN 2202 ELSE 2210 2202 ' SHOW AVAILABLE FORMATS 2203 PRINT:PRINT"Here are the available formats:":PRINT 2204 WIDTH 70:FILES DD$(5)+"*.DFO":WIDTH 255:PRINT:PRINT 2205 INPUT"Enter the desired format name or just RETURN: ",X$ 2206 IF X$="" THEN 2290 ELSE GOSUB 7070:GOTO 2220 2210 J=J+1:X$=C$(J):GOSUB 7070 'UCV 2220 FO$=Y$ 2230 ON ERROR GOTO 2260 2240 OPEN"I",3,DD$(5)+FO$+".DFO" 2250 ON ERROR GOTO 7000:GOTO 2330 ' do this if OK 2260 IF ERR=64 OR ERR=53 THEN 2280 2270 ON ERROR GOTO 0 2280 ON ERROR GOTO 7000:E$="Format "+FO$+" not available on this disk.": CLOSE 3:RESUME 1140 2290 ' LOAD FORMAT 0 2300 FO$="0" 2310 GOSUB 7870 'do it 2320 GOTO 1120 2330 ' LOAD FORMAT FILE 2335 ON ERROR GOTO 2572 2340 INPUT#3,FO$ ' filename 2350 LINE INPUT #3,A$ 'dummy for date$ 2360 INPUT#3,TM,LTM,LM,LLM,SW,LW,RS,RP,LS,LLP,HMI,VMI 2370 LINE INPUT#3,A$ 'dummy for FSC$ not implemented yet 2380 LINE INPUT#3,HL1$:LINE INPUT#3,HL2$:LINE INPUT #3,HL3$ 2390 LINE INPUT#3,LHL1$:LINE INPUT#3,LHL2$:LINE INPUT#3,LHL3$ 2400 INPUT#3,HB,LHB,RM,LRM,RLL,LRLL,RLC,LRLC,RNB,LRNB 2410 I=0 2420 I=I+1:IF I>NC+1 THEN 2440 2425 INPUT#3,SQ(I):IF SQ(I)=0 THEN 2440 2427 IF SQ(I)>NC THEN SQ(I)=NC 'limiter 2430 GOTO 2420 2440 INPUT#3,EB,LEB 2450 FOR J=1 TO NC 2460 IF EOF(3) THEN 2570 2470 K=SQ(J) 2480 INPUT#3,FM(K),LFM(K) 2490 LINE INPUT#3,F2$(K):LINE INPUT#3,LF2$(K) 2500 INPUT#3,NLL(K),LNLL(K),NLC(K),LNLC(K),FMB(K),LFMB(K) 2510 INPUT#3,DLL(K),LDLL(K),DLC(K),LDLC(K) 2520 LINE INPUT#3,PU$(K):LINE INPUT#3,LPU$(K) 2530 INPUT #3,FL(K),LFL(K),FB(K),LFB(K) 2540 X=LEN(PU$(K)):IF X THEN FL(K)=X 2550 NEXT 2555 ON ERROR GOTO 7000 2570 CLOSE 3:E$="Format "+FO$+" loaded.":GOTO 1140 2572 ON ERROR GOTO 7000:RESUME 2575 2575 CLOSE 3:E$="Error in loading format.":GOTO 1140 2580 ' EXECUTIVE BRANCH 2590 ' JUNK TRAP 2600 IF P9 AND T=1 THEN E$="Not allowed, try again.":GOTO 1140 2610 IF T2=0 THEN T2=N ' fix 2620 IF N=0 AND NOT (T=1 OR T=9) THEN E$="File is empty.": GOTO 1140 2630 ' SET-UPS 2640 IF P9 THEN GOSUB 7160 2650 IF P7 THEN GOSUB 8020 2660 IF E$<>"" THEN GOTO 1140 2670 IF SEARCH=1 THEN GOSUB 7460 2690 ' 1 2 3 4 5 6 7 8 9 10 11 12 2700 ON T GOTO 2730,2900,2770,1120,1120,1120,2720,1120,2720,2900,2720,2720 2710 GOTO 1120 ' junk trap 2720 ' EXIT TO DIMS 2725 PRINT:PRINT TAB(27)"Waiting while loading DIMS.":CHAIN DD$(1)+"DIMS",1000 2730 ' ADD COMMAND 2740 N1=0 ' start 2750 I=N+1 2760 GOTO 4000 2770 ' SET-UP CHANGE 2780 IF T1=T2 THEN 2810 2790 PRINT:PRINT TAB(20);"Select fields to change? (n/y) ";: A$=INPUT$(1):IF A$=CHR$(13) THEN A$="n" 2800 PRINT A$: IF A$="y" THEN 2830 2810 FOR I=1 TO NC: IF C(I)<>0 THEN C(I)=2 2820 NEXT I: GOTO 2900 ' all 2's 2830 PRINT 2840 FOR I=1 TO NC 2850 IF C(I)=0 THEN 2890 2860 IF C(I)=2 THEN C(I)=1 2870 PRINT TAB(25);"Change "LEFT$(N$(I),4)"? (y/n) ";: A$=INPUT$(1):IF A$=CHR$(13) THEN A$="y" 2880 PRINT A$: IF A$="y" THEN C(I)=2 2890 NEXT I 2900 ' RECORD WORK LOOP 2910 C0=0:RC=0:LRC=0'first time 2930 FOR I=T1 TO T2 ' <-------- FOR 2940 GOSUB 6200 ' get rec 2950 IF ASC(T$)=0 THEN PRINT"0";:GOTO 5770 2960 PRINT"+"; 2970 T1$=T$ ' save it 2980 IF SKIPPARSE THEN 3010 2990 GOSUB 6500 ' parse record string 3000 IF T=0 THEN 4000 3010 IF SEARCH=0 THEN 3310 3020 ' SEARCH 3030 IF SEARCH<>2 THEN 3100 3035 ' FIND 3040 IF INSTR(T1$,SEARCHWORD$(0))=0 THEN 5770 3060 IF P9=0 THEN PRINT CHR$(7); ' found it 3070 GOSUB 6500 ' parse 3080 GOTO 3310 3090 ' LOOK FOR SKIPS 3100 J=0 3110 IF SKIPWORD$(J)="" THEN 3190 ' try search then 3120 IF LOOKFIELD(J) THEN 3160 ' look in field 3130 IF INSTR(T1$,SKIPWORD$(J)) THEN 5770 ' whole rec search 3140 J=J+1 3150 GOTO 3110 3160 IF INSTR(B$(LOOKFIELD(J)),SKIPWORD$(J)) THEN 5770 ' field compare 3165 IF B$(LOOKFIELD(J))="" AND SKIPWORD$(J)="_" THEN 5770 'blank field 3170 J=J+1 3180 GOTO 3110 3185 ' SEARCH 3190 IF SEARCHWORD$(0)="" THEN 3290 ' only when skips are all you want 3200 J=0: GOTO 3220 ' now search 3210 IF SEARCHWORD$(J)="" THEN 5770 ' hesitate no longer 3220 IF SEARCHFIELD(J) THEN 3260 ' field 3230 IF INSTR(T1$,SEARCHWORD$(J)) THEN 3290 ' unparsed search 3240 J=J+1 3250 GOTO 3210 3260 IF INSTR(B$(SEARCHFIELD(J)),SEARCHWORD$(J)) THEN 3290 3265 IF B$(SEARCHFIELD(J))="" AND SEARCHWORD$(J)="_" THEN 3290 3270 J=J+1 3280 GOTO 3210 3290 IF P9=0 THEN PRINT CHR$(7); 'TERM DEP 3300 IF SKIPPARSE THEN GOSUB 6500 ' parse 3310 ' PAUSE 3320 IF C0=0 OR T=3 OR T=10 OR P7 OR P9 THEN 4000 ' when not to pause, C0 is for first time 3330 GOSUB 6100 ' exit 3340 IF A=122 THEN 4000 'z 3350 IF RS THEN IF RC=RS THEN X=24:Y=1:GOSUB 6700 3360 PRINT I"Ready>"; 3370 A$=INPUT$(1):A=ASC(A$) 3372 IF A=27 THEN IF (P6 OR P7) THEN GOSUB 8410:GOTO 1120 ELSE GOTO 1120 3375 PRINT A$:IF A=104 THEN 3400 ELSE 4000 'h 3400 ' PAUSE HELP 3410 PRINT:PRINT TAB(5)"The program is waiting for just one keystroke; 3420 PRINT:PRINT TAB(10)"h will print this message, 3430 PRINT TAB(10)"SPACE will show the next record, 3440 PRINT TAB(10)"z will show the next record and keep going until you SPACE, 3450 PRINT TAB(10)"ESC will quit the sequence you're in and go to edit command level. 3460 PRINT:GOTO 3330 4000 ' ADD, CHA OR SHOW REC I I=rec #, J=seq #, K=field #, L=rec length C0=not first time, C3=backup flag C(K): 0=skip field, 1=norm, 2=change 4010 T0=I 4020 IF P9 AND T<>10 THEN 5040 4030 ' NEW SCREEN? 4040 C0=1 4050 IF RS=0 OR (RC>0 AND RC"" THEN PRINT HL1$; 4110 IF RIGHT$(HL1$,1)=" " THEN PRINT"PAGE"PG:GOTO 4130 4120 PRINT 4130 IF HL2$<>"" THEN PRINT HL2$ 4140 IF HL3$<>"" THEN PRINT HL3$ 4150 X=HB:GOSUB 6730 4160 ' NEW REC - PRINT #? 4170 L=0:RC=RC+1 4180 IF E$<>"" THEN PRINT CHR$(7);:PRINT:PRINT E$:E$="" 4190 IF RM=0 THEN 4240 4200 PRINT 4210 IF RLL THEN X=RLL:Y=RLC:GOSUB 6700:GOTO 4230 4220 IF RLC THEN PRINT TAB(RLC); 4230 PRINT I;:X=RNB:GOSUB 6730 4240 J=0 4250 ' NEW FIELD 4260 J=J+1:C3=0'backup flag 4270 K=SQ(J) ' current field number (may be in any order) 4280 IF K=0 THEN X=EB:GOSUB 6730:GOTO 5040 ' next function 4290 IF C3=1 AND C(K)=0 THEN 4300 ELSE 4320 ' hidden field 4300 J=J-1:IF J=0 THEN L=0:GOTO 4250 4310 K=SQ(J):L=L-LEN(B$(K))-1:GOTO 4290 4320 IF C(K)=0 OR FL(K)<0 THEN IF T=1 THEN B$(K)="":L=L+1:GOTO 4250 ELSE L=L+LEN(B$(K))+1:GOTO 4250 ' skip fwd 4330 ' RE-ENTER 4340 IF E$<>"" THEN PRINT:PRINT CHR$(7); E$:E$="" 4350 GOSUB 4820 'print name 4360 ' BRANCH 4370 GOSUB 4940 'pos 4380 IF T=3 AND FLAG=K THEN B$(K)=B$(K)+FLAG$ 4390 IF T=1 GOTO 4410 4400 IF T=3 AND C(K)=2 THEN GOSUB 4980:PRINT CHR$(10);:GOSUB 4940 ELSE 4750 4410 ' CURSOR 4420 L1=FT*128-L-NC+J ' L1=avail space in rec 4430 IF FL(K) THEN EFL=FL(K) ELSE EFL=SW-POS(0) ' EFL=avail screen space 4440 IF L1>=EFL THEN 4460 4450 PRINT SPC(L1-1);"<";:GOSUB 4940 ' pos 4460 ' ENTER NEW DATA 4470 IF T=1 AND K=FLAG THEN PRINT FLAG$; 4480 LINE INPUT; T9$:IF T=1 AND FLAG=K THEN T9$=FLAG$+T9$ 4490 ' CONTROL ENTRIES 4500 IF T=3 THEN IF T9$="" OR T9$=";" OR T9$="+" THEN T9$=B$(K):GOTO 4680 ' no cha 4510 IF T=1 AND (T9$=";" OR T9$="+") THEN 4520 ELSE 4540 4520 T9$=B$(K):IF T9$="" THEN T9$=" " 4530 GOSUB 4940:PRINT T9$; 4540 IF T9$="stop" THEN IF T=1 THEN E$=STR$(N1)+" records added.": T0=I-1:GOTO 1140 ELSE 1120 4550 IF RIGHT$(T9$,1)<>CHR$(92) THEN 4590 4560 C3=1:J=J-1:IF J=0 THEN L=0:GOTO 4250 4570 K=SQ(J):L=L-LEN(B$(K))-1:IF FB(K) THEN PRINT 4580 GOTO 4280 4590 IF T9$=" "THEN T9$=""' enter 1 sp to cha to blank 4600 ' STRIP RT. SPC 4610 IF RIGHT$(T9$,1)=CHR$(32) THEN T9$=LEFT$(T9$,LEN(T9$)-1):GOTO 4610 4620 ' NUM CHECK 4630 IF RIGHT$(N$(K),1)<>"n" THEN 4680 4640 FOR I1=1 TO LEN(T9$) 4650 T3=ASC(MID$(T9$,I1,1)) 4660 IF T3<45 OR T3>57 THEN E$="Re-enter; only numbers allowed.": GOTO 4330 4670 NEXT 4680 ' LENGTH CHECK 4690 L=L+LEN(T9$)+1 4700 IF L+NC-J>FT*128 THEN E$="Record too long. Re-enter, shorter.":GOTO 4160 4710 ' SAVE IT 4720 B$(K)=T9$ 4730 ' RE-DISP IN FORM 4740 IF DLL(K) THEN GOSUB 4950:GOTO 4750 ELSE 4770 4750 ' SHOW DATA 4760 GOSUB 4980 ' print dat 4770 ' FINISH FIELD 4780 X=FB(K):GOSUB 6730 4790 GOTO 4250 ' next field 4800 ' SCREEN DONE 4810 GOTO 5040 ' skip subs 4820 ' (SUB) FIELD NAME 4830 IF NLL(K) THEN X=NLL(K):Y=NLC(K):GOSUB 6700:GOTO 4850 4840 IF NLC(K) THEN PRINT TAB(NLC(K)); 4850 ON FM(K) GOTO 4870,4910 ' plain or special 4860 GOTO 4930 'skip if 0 4870 ' NAME MODE 1 4880 IF RIGHT$(N$(K),1)="n" THEN PRINT LEFT$(N$(K),4)" # ";:GOTO 4930 4890 PRINT LEFT$(N$(K),4)" : "; 4900 GOTO 4930 4910 ' NAME MODE 2 4920 PRINT F2$(K); 4930 X=FMB(K):GOSUB 6730:RETURN 4940 ' (SUB) POSITION DATA (TERM DEP -- BACKSPACE) 4950 IF DLL(K) THEN X=DLL(K):Y=DLC(K):GOSUB 6700:GOTO 4970 4960 IF DLC(K) THEN IF POS(I)>DLC(K) THEN PRINT STRING$(POS(I)-DLC(K),8); ELSE PRINT TAB(DLC(K)); 4970 RETURN 4980 ' (SUB) PRINT DATA 4990 IF RIGHT$(N$(K),1)="n" AND PU$(K)<>"&" AND PU$(K)<>"" THEN N1!=VAL(B$(K)):GOTO 5020 5000 IF FL(K) THEN X$=LEFT$(B$(K),FL(K)) ELSE X$=B$(K) 5010 PRINT X$;:GOTO 5030 5020 PRINT USING PU$(K);N1!; 5030 RETURN 5040 ' LPRINT AND WRITE LP=real prnt pos LTM=top marg LPG=pg count RP=rec/pg LRC=rec count LLP=cond. pg LLC=line count 5050 IF T=0 GOTO 5790 5060 IF P9=0 THEN 5580 ' done 5070 ' START PRINTING 5080 IF C0=0 THEN C0=1:LRC=0:LLC=1: IF LPG=1 THEN X=LTM:GOSUB 7310: LPRINT"FILE: "F$ TAB(30)"DATE:"TAB(50)"SELECTION:": LLC=LLC+1:GOTO 5120 ELSE 5120 5090 ' NEW PAGE? 5100 IF (RP AND LRC=RP) OR LLC>LLP THEN GOSUB 7410 ELSE 5190 'FF 5110 ' PRINT HEADING 5120 X=LTM:GOSUB 7310 'CR 5130 IF LHL1$<>"" THEN LPRINT LHL1$; ELSE 5160 5140 IF RIGHT$(LHL1$,1)=CHR$(32) THEN LPRINT"PAGE"LPG:GOTO 5160 5150 LPRINT:LLC=LLC+1 5160 IF LHL2$<>"" THEN LPRINT LHL2$:LLC=LLC+1 5170 IF LHL3$<>"" THEN LPRINT LHL3$:LLC=LLC+1 5180 X=LHB:GOSUB 7310 'CR 5190 ' NEW REC - LPRINT #? 5200 LRC=LRC+1 ' counts recs on pg 5210 IF LRM=0 THEN 5250 5220 IF LRLL THEN X=LRLL:Y=LRLC:GOSUB 7330:GOTO 5240 5230 IF LRLC THEN Y=LRLC:GOSUB 7360 ' tab 5240 C1=LPOS(0):A$=STR$(I):A$=RIGHT$(A$,LEN(A$)-1): LPRINT A$;:LP=LP+LPOS(0)-C1:X=LRNB:GOSUB 7310 ' CR 5250 J=0 5260 ' NEW FIELD 5270 J=J+1 5280 K=SQ(J) 5290 IF K=0 THEN X=LEB:GOSUB 7310:GOTO 5580 ' done ======> 5300 IF (C(K)=0) OR (LFL(K)<0) THEN 5260 'skip 5310 GOSUB 5340 'name 5320 GOSUB 5470:GOSUB 5510 'pos & lprint data 5330 X=LFB(K):GOSUB 7310:GOTO 5270 'next field 5340 ' (SUB) LPRINT FIELD NAME 5350 IF LNLL(K) THEN X=LNLL(K):Y=LNLC(K):GOSUB 7330:GOTO 5370 5360 IF LNLC(K) THEN Y=LNLC(K):GOSUB 7360 ' tab 5370 ON LFM(K) GOTO 5390,5420 5380 GOTO 5450 'skip if 0 5390 ' NAME MODE 1 5400 LPRINT LEFT$(N$(K),4)" : "; 5410 LP=LP+7:GOTO 5450 5420 ' NAME MODE 2 5422 Y=LEN(LF2$(K)):IF LP+Y>LW THEN X=1:GOSUB 7310:LPRINT SPACE$(5);:LP=6 5430 LPRINT LF2$(K);:LP=LP+Y 5440 ' DONE NAME 5450 X=LFMB(K):GOSUB 7310 5460 RETURN 5470 ' (SUB) POSITION LPRINT DATA 5480 IF LDLL(K) THEN X=LDLL(K):Y=LDLC(K):GOSUB 7330:GOTO 5500 5490 IF LDLC(K) THEN Y=LDLC(K):GOSUB 7360 ' tab 5500 RETURN 5510 ' (SUB) LPRINT DATA 5520 C1=LPOS(0) 5530 IF RIGHT$(N$(K),1)="n" AND LPU$(K)<>"&" AND LPU$(K)<>"" THEN N1!=VAL(B$(K)):GOTO 5560 5540 IF LFL(K) THEN X$=LEFT$(B$(K),LFL(K)) ELSE X$=B$(K) 5542 IF LP+LEN(X$)>LW THEN X=1:GOSUB 7310:LPRINT SPACE$(5);:C1=LPOS(0) 5550 LPRINT X$;:GOTO 5570 5560 LPRINT USING LPU$(K);N1!; 5570 LP=LP+LPOS(0)-C1:RETURN 5580 ' DONE LPRINT & WRITE - BRANCH 5590 IF T=10 OR P7<>0 THEN 5600 ELSE 5680 5600 ' COPY & DELETE PAUSE 5610 GOSUB 6100 'exit 5612 IF A=122 THEN 5650 'z 5620 IF RS THEN X=24:Y=1:GOSUB 6700 5622 IF P7 THEN PRINT"Copy "; 5624 IF P7<>0 AND T=10 THEN PRINT"& "; 5626 IF T=10 THEN PRINT"Delete "; 5630 PRINT"this record? n/y/z/esc >";: A$=INPUT$(1):A=ASC(A$):IF A=13 THEN A$="n" 5632 IF A=27 THEN PRINT"ESC":GOTO 5634 ELSE 5640 5634 IF (P6 OR P7) THEN GOSUB 8410 'close output file 5636 GOTO 1120 5640 PRINT A$:IF A$="y" OR A$="z" THEN 5650 ELSE 5770 5650 ' COPY 5660 IF P7 THEN NR=NR+1:GOSUB 6600:PRINT"!"; 5665 ' DELETE 5670 IF T=10 THEN T$=CHR$(0):GOSUB 6300 'change rec to null 5680 ' BRANCH 5685 IF T=3 OR T=1 THEN 5690 ELSE 5770 5690 ' ASSEM NEW/CHANGED REC STR AND PUT TO DISK 5700 T$="" 5710 FOR J=1 TO NC 5730 T$=T$+B$(J)+CHR$(126) 5740 NEXT J 5750 GOSUB 6300:PRINT"*";:GOSUB 6400:PRINT"!" ' put record, dupe 5760 IF T=1 THEN N=N+1:C=1:I=I+1:N1=N1+1:GOTO 4000 5770 ' WIND UP 5780 GOSUB 6100 ' check exit 5790 NEXT I '<=========== END OF RECORD WORK LOOP 5800 IF P7 THEN GOSUB 8410 'close 2 5805 IF P9 THEN GOSUB 7410 'FF 5810 IF T2=N THEN E$="End of file.":GOTO 1140 5820 GOTO 1120 6100 ' (SUB) EXIT TEST returns character value in A 6110 X$=INKEY$ 6120 IF X$<>"" THEN A=ASC(X$) 6130 IF A<>27 THEN RETURN 6140 IF (P6 OR P7) THEN GOSUB 8410 ' put head & close out file 6145 IF P9 THEN GOSUB 7410 'FF 6150 GOTO 1120 6200 ' (SUB) GET RECORD "I" IN T$ 6210 T$="" ' necessary! 6220 ON FT GOTO 6250,6230 6230 GET#1,FT*I+2 ' latter half 6240 T$=LEFT$(R$,127) 6250 GET#1,FT*I+1 ' whole or first half 6260 T$=R$+T$ 6270 RETURN 6300 ' (SUB) WRITE T$ AS RECORD # I 6310 ON FT GOTO 6340,6320 6320 LSET R$=MID$(T$,129) ' latter half 6330 PUT #1,FT*I+2 6340 LSET R$=LEFT$(T$,128) ' first half 6350 PUT #1,FT*I+1 6360 RETURN 6400 ' (SUB) WRITE T$ AS DUPE REC I 6410 ON FT GOTO 6440,6420 6420 LSET S$=MID$(T$,129) 6430 PUT #2,FT*I+2 6440 LSET S$=LEFT$(T$,128) 6450 PUT #2,FT*I+1 6460 RETURN 6500 ' (SUB) PARSE STRING 6510 K=0 6520 J=INSTR(T$,CHR$(126)) ' delimiter 6530 IF J=0 THEN RETURN 6540 K=K+1 6550 B$(K)=MID$(T$,1,J-1) 6560 T$=MID$(T$,J+1) 6570 GOTO 6520 6600 ' (SUB) PUT T1$ AS OUTPUT REC NR 6610 ON FT GOTO 6640,6620 6620 LSET S$=MID$(T1$,129) 6630 PUT#3,FT*NR+2 6640 LSET S$=LEFT$(T1$,128) 6650 PUT#3,FT*NR+1 6660 RETURN 6700 ' (SUB) POSITION CONSOLE CURSOR (TERM DEP) X=line (1 to 24) Y=column (1 to 80) 6710 PRINT CHR$(20);CHR$(X+127);CHR$(Y+127); 'ACT-5A 6720 RETURN 6730 ' (SUB) CR 6740 FOR I1=1 TO X:PRINT:NEXT:RETURN 7000 ' GENERAL ERROR ROUTINES 7005 IF ERR=53 THEN E$="File not found.":RESUME 1140 7010 IF ERR=61 THEN 7040 'disk full 7020 IF ERR=6 THEN 7060 'overflow 7030 ON ERROR GOTO 0 7040 IF (P6 OR P7) THEN E$="Disk full ... fix then repeat last copy command":RESUME 1140 7050 CLOSE:PRINT:PRINT"Disk full .. files forced closed ..": PRINT"N ="N;" .. adds since last 'done' not updated in header ..": PRINT"Hit return for re-open attempt...then do 'done'. ": INPUT A$:T=8:RESUME 2720 7060 PRINT CHR$(7):PRINT"That number was too big! Try again.":PRINT:RESUME NEXT 7070 ' (SUB) UCV 7080 Y$="" 7090 FOR K=1 TO LEN(X$) 7100 Y$=Y$+" " 7110 X=ASC(MID$(X$,K, 1)) 7120 IF 96"y" THEN 1140 7240 WIDTH LPRINT LW+1 'backup to LP process 7250 LPRINT CHR$(27);CHR$(31);CHR$(HMI+129); 7260 LPRINT CHR$(27);CHR$(30);CHR$(VMI+129); 7270 LPRINT CHR$(27);CHR$(137);CHR$(LLM+129); 7280 LPRINT CHR$(27); "9"; CHR$(13); 'esc 9 sets margin, CR 7300 RETURN 7310 ' (SUB) LCR 7320 FOR I1=1 TO X:LPRINT:LP=1:NEXT:LLC=LLC+X:RETURN 'lp=1 stays inside! 7330 ' (SUB) POSITION LPRINT HEAD (DIABLO) 7340 LPRINT CHR$(27);CHR$(11);CHR$(X);CHR$(27);CHR$(137);CHR$(Y+128+LLM); 7350 LLC=X:LP=Y:RETURN 7360 ' (SUB) TAB LPRINT (DIABLO) 7370 IF LP>Y AND RP=0 THEN X=1:GOSUB 7310 ' addl line if too long 7380 Y1=Y+LLM:IF Y1>126 THEN LPRINT SPACE$(Y1-LP+LLM);:GOTO 7400 ' sim tab 7390 LPRINT CHR$(27);CHR$(137);CHR$(Y1+128); 7400 LP=Y:RETURN 7410 ' (SUB) FORM FEED 7420 LPRINT CHR$(12);CHR$(13);:LRC=0:LLC=1:LPG=LPG+1:LP=1:RETURN 7430 ' (SUB) CLEAR SCREEN, HOME CURSOR (TERM DEP) 7440 PRINT CHR$(12); 7450 RETURN 7460 ' (SUB) SETSEARCH 7470 IF T1=T2 THEN RETURN 7480 GOSUB 7430 'cs 7490 X=5:Y=1:GOSUB 6700 7500 SKIPPARSE=1 ' flag 7510 PRINT"Here are the fields in "F$: GOSUB 7800 7520 FOR J=0 TO 9 7530 INPUT"Number of field to search (RETURN for all fields)";A$ 7540 IF A$="" THEN SEARCHFIELD(J)=0: GOTO 7590 7550 A=VAL(A$) 7560 IF A<1 OR A>NC THEN PRINT"NO FIELD"A: GOTO 7530 7570 SEARCHFIELD(J)=A 7580 SKIPPARSE=0 7590 PRINT TAB(13);:LINE INPUT"Expression to look for ( _ for blank)? ";A$ 7600 SEARCHWORD$(J)=A$ 7610 IF A$="" THEN 7630 7620 NEXT J 7630 PRINT: PRINT"Do you want to select records to exclude? (n/y) "; 7640 A$=INPUT$(1):IF A$=CHR$(13) THEN A$="n" 7655 PRINT A$ 7660 IF A$<>"y" THEN SKIPWORD$(0)="": RETURN 7670 PRINT:FOR J=0 TO 9 7680 INPUT"Number of field to search (RETURN for all fields)";A$ 7690 IF A$="" THEN LOOKFIELD(J)=0: GOTO 7740 7700 A=VAL(A$) 7710 IF A<1 OR A>NC THEN PRINT"NO FIELD"A: GOTO 7680 7720 LOOKFIELD(J)=A 7730 SKIPPARSE=0 7740 PRINT TAB(13);:LINE INPUT"Expression to look for ( _ for blank)? ";A$ 7750 SKIPWORD$(J)=A$ 7760 IF A$="" THEN 7780 7770 NEXT J 7780 PRINT 7790 RETURN 7800 ' (SUB) SHOW FIELDS 7810 FOR K=1 TO NC 7820 PRINT TAB(29); 7830 PRINT USING"##";K;:PRINT". "LEFT$(N$(K),4)" "RIGHT$(N$(K),1) 7840 NEXT 7850 PRINT 7860 RETURN 7870 ' (SUB) LOAD DEFAULT FORMAT CONTROLS 7880 PRINT:PRINT TAB(31)"Installing format 0. 7890 FO$="0":FFN$="":FFD$="":TM=0:LTM=4:LM=0:LLM=3:SW=79:LW=95:RS=0:RP=0 7900 LLP=66-LTM-2 7910 HMI=10:VMI=8:FSC$="":HL1$="" 7920 HL2$="" 7930 HL3$="" 7940 LHL1$=F$+" ":LHL2$="":LHL3$="":HB=1:LHB=1 7950 RM=1:LRM=1:RLL=0:LRLL=0:RLC=0:LRLC=0:RNB=1:LRNB=0 7955 EB=0:LEB=2 7960 FOR I=1 TO NC 7970 SQ(I)=I:FM(I)=1:LFM(I)=2:F2$(I)="":LF2$(I)=" - ": NLL(I)=0:LNLL(I)=0:NLC(I)=0:LNLC(I)=0:FMB(I)=0:LFMB(I)=0 7980 PU$(I)="&":LPU$(I)="&":DLL(I)=0:LDLL(I)=0:DLC(I)=8:LDLC(I)=0: FL(I)=0:LFL(I)=0:FB(I)=1:LFB(I)=0 7990 NEXT 8000 SQ(I)=0 8010 RETURN 8020 ' (SUB) OPEN COPY OUTPUT FILE 8030 PRINT:PRINT"Output file name (prefix optional, default "DD$(3)")";: INPUT F2$:IF F2$="" THEN E$="?":GOTO 8360 8040 X$=F2$:GOSUB 7070:F2$=Y$'ucv 8050 IF MID$(F2$,2,1)=":" THEN 8070 8060 F2$=DD$(3)+F2$ 8070 ON ERROR GOTO 8100 8080 OPEN"I",3,F2$+".D"+FT$ 8090 CLOSE 3:ON ERROR GOTO 7000:GOTO 8200'found 8100 CLOSE 3:ON ERROR GOTO 7000 8110 IF ERR=53 THEN RESUME 8160 8120 IF ERR=61 THEN E$="Sorry, disk is full.":RESUME 8360 8130 IF ERR=64 THEN PRINT"Bad file name, try again.":RESUME 8030 8140 IF ERR=67 THEN E$="Directory full.":RESUME 8360 8150 GOTO 7000 8160 ' make new file 8170 PRINT"Opening new file "F2$ 8180 NR=0:GOSUB 8380 8190 GOTO 8360 8200 ' OPEN & LOAD HEADER 8210 GOSUB 8380 8220 T$="" 8230 ON FT GOTO 8260,8240 8240 GET#3,2 8250 T$=LEFT$(S$,127) 8260 GET#3,1 8270 T$=S$+T$ 8280 GOSUB 6500'parse 8290 FOR I=1 TO 31 8300 IF LEFT$(B$(I),4)="stop" GOTO 8320 8310 NEXT 8320 T3=I-1 8330 IF T3<>NC THEN E$="Copy aborted; output file has a different number of columns" +CHR$(13)+CHR$(10):GOTO 8360 8340 IF F2$=DD$(3)+F$ THEN NR=N ELSE NR=VAL(B$(I+1)) 8350 PRINT"File open, NR ="NR 8360 RETURN 8370 ' (SUB) OPEN THE OUTPUT FILE 8380 OPEN"R",3,F2$+".D"+FT$ 8390 FIELD #3,128 AS S$ 8400 RETURN 8410 ' (SUB) CLOSE DIMS OUT FILE 8420 IF F2$=DD$(3)+F$ THEN C=1:N=NR:GOTO 8530 8430 PRINT:PRINT"Closing output file,"NR"records. 8440 PRINT:PRINT"Backup of copied records is not automatic. The 'backup' command 8450 PRINT"must be used on the file you copied to. 8460 T$="" 8470 FOR I=1 TO 31 8480 T$=T$+N$(I)+CHR$(126) 8490 IF LEFT$(N$(I),4)="stop" THEN 8510 8500 NEXT 8510 T1$=T$+STR$(NR)+CHR$(126) 8520 NR=0:GOSUB 6600 8530 CLOSE 3 8540 RETURN 8550 ' (SUB) FLAGSET 8560 PRINT:PRINT"Here are the fields in "F$:PRINT:GOSUB 7800 8570 INPUT"Number of field to flag ";A:IF A=0 THEN 8610 8580 IF A>NC THEN PRINT A"???":GOTO 8570 8590 FLAG=A 8600 LINE INPUT"Enter flag; may include blanks: ";FLAG$:IF FLAG$="" THEN 8610 8610 RETURN 8620 ' SHOW TRANSIENT PROGRAMS 8630 PRINT:PRINT"Here are the available transient programs; to use one as a command 8640 PRINT:PRINT"skip the 'D' on the front and the '.BAS'." 8650 PRINT:WIDTH 70:FILES DD$(2)+"D???????.BAS":WIDTH 255:PRINT:PRINT 8660 GOTO 1140  the 'D' on the front and the '.BAS'." 8650 P5 ' ***** DIMS ***** 6 ' 7 ' 10 ' INITIALIZATION 20 DEFINT A-Z 30 GOSUB 3420 'cs 40 PRINT:PRINT TAB(29);"DIMS 1.03, January 20, 1984 45 'ACT-5A TERMINAL 50 PRINT 80 ' Dan's Information Management System 85 ' for Basic-80 and CP/M 90 ' originates from PIMS written by Madan L. Gupta 95 ' which comes from A People's Data Base System 96 ' by Gupta and Brent Lander (1977) 100 ' re-written by Dan Dugan, 1979, 1980, 1981, 1982, 1983 110 ' Public Domain - removal of this notice constitutes fraud 120 ' makes random disk records of 128 or 255 bytes 130 ' allows 15 or 30 data fields in record 140 ' makes automatic duplicate file 150 CLEAR,,1000 ' stack space for MBASIC 5.x 155 DEFINT A-Z 160 WIDTH LPRINT 255 170 ' init vars in this order for speed 180 I=0:J=0:K=0:X=0:Y=0:T$="":R$="":T1$="":SKIPPARSE=0:T=0:FT=0:SEARCH=0 190 ' then these for COMMON 200 C=0:N=0:NC=0:P6=0:P7=0:P8=0:P9=0:PI=0:S=0:T1=0:T2=0:F$="":FT$="":S$="" 210 DIM DD$(5) 220 DIM C$(10) ' commands 230 DIM N$(31), B$(32), C(30) ' 30 names + stop + N 240 DIM SEARCHWORD$(10), SEARCHFIELD(10), SKIPWORD$(10), LOOKFIELD(10) 243 NDRIVES=2:GOSUB 1360 ' init disk name strings 245 PRINT TAB(33);NDRIVES"disk system. 250 GOTO 1050 1000 ' WARM ENTRY 1010 DEFINT A-Z 1020 GOSUB 3420'cs 1023 IF C THEN GOSUB 1970 ' save header 1025 IF T=7 THEN CLOSE:GOTO 1650 ' goto 1030 IF T=8 THEN 4200 ' reopen 1033 IF T=9 THEN CLOSE:T=0:GOTO 1050 ' done 1035 IF T=11 THEN 2100 ' backup 1040 IF T=12 THEN 3000 ' renumber 1050 'some not needed but commoned to keep places for speed 1060 COMMON I,J,K,X,Y,T$,R$,S$,T1$,SKIPPARSE,FT,SEARCH, C,N,NC,P6,P7,P8,P9,PI,S,T,T1,T2,C(),B$(),N$(), SEARCHWORD$(),SEARCHFIELD(),SKIPWORD$(),LOOKFIELD(),DD$(),F$,FT$ 1070 ON ERROR GOTO 3290 1080 ' NO-FILE MENU 1100 WIDTH 70 :RESET 'RESET here for floppy system 1105 IF E$<>"" THEN PRINT E$:PRINT 1110 PRINT:PRINT TAB(22)"Here are the data files on this disk: 1120 PRINT:FILES DD$(3)+"*.D?" 1125 WIDTH 255 1130 PRINT:PRINT:PRINT TAB(16);"************* DIMS NO-FILE MENU ************** 1140 PRINT:PRINT TAB(16);"Open any data file shown above ............... 1 1150 PRINT TAB(16);"Install new disks ............................ 2 1160 PRINT 1170 PRINT TAB(16);"Design structure of a new file (DCREATE) ..... 3 1180 PRINT TAB(16);"Change number of disk drives for this session. 4 1190 PRINT 1200 PRINT TAB(16);"Exit DIMS to Basic ........................... 9 1210 PRINT TAB(16);"Exit DIMS to CP/M ............................ 0 1220 PRINT:PRINT TAB(16);STRING$(48,42):PRINT 1230 PRINT TAB(16);: PRINT"To continue enter a number ................... "; 1240 A$=INPUT$(1): IF A$=CHR$(13) THEN A$="1" 1250 PRINT A$ 1255 RESET ' safety for floppies 1260 IF A$="0" THEN SYSTEM 1270 IF A$="1" THEN GOTO 1650 1280 IF A$="2" THEN GOTO 1000 1290 IF A$="3" THEN CHAIN DD$(2)+"DCREATE" 1300 IF A$="4" THEN GOSUB 1330:GOTO 1000 1310 IF A$="9" THEN GOSUB 3420:STOP 1320 GOTO 1230 1330 ' (SUB) ASK # DISKS 1340 PRINT:PRINT TAB(27);:INPUT"Number of disks in system";NDRIVES 1345 PRINT:IF NDRIVES<1 THEN 1000 1350 IF NDRIVES>4 THEN 1340 1360 ' (SUB) INSTALL DISK NAMES 1370 RESTORE 1390 1380 ' DD$(1) (2) (3) (4) (5) ' file groups 1382 ' main trans data dupe misc 1383 ' pgms pgms file file files 1390 DATA 1,"A:","A:","A:","A:","A:" 1400 DATA 2,"A:","B:","A:","B:","B:" 1410 DATA 3,"A:","A:","B:","C:","A:" 1420 DATA 4,"A:","A:","B:","C:","D:" 1430 READ J 1440 FOR K=1 TO 5 1450 READ DD$(K) 1460 NEXT 1470 IF J<>NDRIVES THEN 1430 1480 IF A$<>"4" THEN RETURN 1490 ON NDRIVES GOTO 1500,1510,1540,1580 1500 PRINT"One disk system - all files and programs on A.":GOTO 1630 1510 PRINT"Two disk system: A: = main program and main data files 1520 PRINT TAB(19)"B: = transient programs, backup data files, aux. data files 1530 GOTO 1630 1540 PRINT "Three disk system: A: = main program, transient programs, aux data files 1550 PRINT TAB(21)"B: = main data files 1560 PRINT TAB(21)"C: = backup data files 1570 GOTO 1630 1580 PRINT"Four disk system: A: = main and transient programs 1590 PRINT TAB(20)"B: = main data files 1600 PRINT TAB(20)"C: = backup data files 1610 PRINT TAB(20)"D: = aux. data files 1630 PRINT:PRINT TAB(29)"Hit return to continue.":A$=INPUT$(1) 1640 RETURN 1650 ' LOAD HEADER 1660 GOSUB 3480 ' get name & open up files 1670 GOSUB 3420 'cs 1690 GOSUB 3750 ' get record 1700 GOSUB 1880 'parse into B$'s 1710 FOR I=1 TO 31 1720 N$(I)=B$(I) 'load names 1730 IF LEFT$(N$(I),4)="stop" GOTO 1760 1740 C(I)=1 1750 NEXT I 1760 N=VAL(B$(I+1)) 1770 NC=I-1 ' # cols 1780 PRINT TAB(20)"File "F$" is open. It has"N"records." 1790 ' EXIT TO DEDIT 1795 PRINT:PRINT TAB(24)"Waiting while DEDIT is loading." 1800 CHAIN DD$(1)+"DEDIT",1000 1810 ' (SUB) WRITE T$ AS RECORD # I 1820 ON FT GOTO 1850,1830 1830 LSET R$=MID$(T$,129) ' latter half 1840 PUT #1,FT*I+2 1850 LSET R$=LEFT$(T$,128) ' first half 1860 PUT #1,FT*I+1 1870 RETURN 1880 ' (SUB) PARSE STRING 1890 K=0 1900 J=INSTR(T$,CHR$(126)) ' delimiter 1910 IF J=0 THEN RETURN 1920 K=K+1 1930 B$(K)=MID$(T$,1,J-1) 1940 T$=MID$(T$,J+1) 1950 GOTO 1900 1970 ' (SUB) SAVE HEADERS 1990 PRINT:PRINT TAB(31)"Saving file header":PRINT TAB(39); 2000 T$="" 2010 FOR I=1 TO 31: T$=T$+N$(I)+CHR$(126): T1$=LEFT$(N$(I),4): IF T1$="stop" THEN 2030 2020 NEXT I 2030 T$=T$+STR$(N)+CHR$(126) 'add N at end 2040 I=0 2050 GOSUB 1810 ' put rec 0 2060 PRINT "*"; 2062 NR=0:T1$=T$:GOSUB 3960 'put dupe head 2064 PRINT"!" 2070 RETURN 2100 ' BACKUP makes dupe file 2110 CLOSE 2:KILL DD$(4)+F$+".DD"+FT$ 2120 GOSUB 3720 ' open up .DD on 2 2130 PRINT"Copying main file to dupe file, same numbers.":PRINT 2140 FOR I=0 TO N 2150 IF INKEY$=CHR$(27) THEN PRINT:PRINT:PRINT"Copy aborted.":GOTO 3260 2160 GOSUB 3750: PRINT"+"; ' get record I in T$ 2170 NR=I:T1$=T$:GOSUB 3960:PRINT"*"; ' put record NR 2180 NEXT 2190 PRINT:GOTO 3260 ' to DEDIT 3000 ' RENUMBER COPY MAIN TO DUPE 3010 CLOSE 2:KILL DD$(4)+F$+".DD"+FT$ 3020 GOSUB 3720 ' open 2 3030 PRINT"Copying main file to dupe file, renumbering.":PRINT 3040 NR=0 3050 FOR I=1 TO N 3060 IF INKEY$=CHR$(27) THEN PRINT:PRINT:PRINT"Renumber aborted.":GOTO 3260 3070 GOSUB 3750 ' get rec I in T$ 3080 IF ASC(T$)=0 THEN PRINT"0";:GOTO 3100' skip it 3090 PRINT"+";:NR=NR+1:T1$=T$:GOSUB 3960:PRINT"!"; ' put rec NR 3100 NEXT 3110 GOSUB 4030 ' save header (NR) 3120 ' ERASE MAIN FILE AND COPY DUPE TO MAIN 3130 CLOSE 3140 PRINT:PRINT"The following operation removes space from deleted records: 3150 PRINT: PRINT"Erasing main file. 3160 KILL DD$(3)+F$+".D"+FT$ 3170 PRINT:PRINT:PRINT"Copying dupe to main file.":PRINT 3180 GOSUB 3680 ' open both files 3190 FOR J=1 TO FT*(NR+1) 3200 GET #2,J 3210 PRINT"&"; 3220 LSET R$=S$ 3230 PUT #1,J 3240 PRINT"*"; 3250 NEXT J 3251 N=NR 3252 PRINT:GOSUB 1970 'put header 3255 ' RETURN TO DEDIT 3260 GOTO 1790 3280 ' GENERAL ERROR ROUTINES 3290 IF ERL=1120 AND ERR=53 THEN RESUME 1130 ' if disk empty 3300 IF ERL=1740 AND ERR=9 THEN CLOSE:E$="CAN'T READ HEADER PROPERLY":RESUME 1000 3310 IF ERR=61 THEN PRINT:PRINT"Out of disk space.":PRINT:CLOSE:RESUME 1000 3312 IF ERR=53 THEN E$="FILE NOT FOUND":RESUME 1080 3320 ON ERROR GOTO 0 3330 ' UCV 3340 Y$="" 3350 FOR K=1 TO LEN(X$) 3360 Y$=Y$+" " 3370 X=ASC(MID$(X$,K, 1)) 3380 IF 96¢ á lisô oæ thå optionó therå ió showî in response to "h". .he DIMS Installation Notes - Release 1.03 - INSTALLATION page # .cp 9 ŠINSTALLATION BASIC VERSION DIFFERENCES Therå arå twï criticaì differenceó betweeî Microsofô Basic-8° versioî 4.µ anä 5.x® Onå ió thaô thå CLEAÒ statemenô haó changeä syntax® Thió statemenô ió useä once¬ iî thå maiî menõ prograí DIMS® Iæ yoõ arå instal linç witè 4.µ uså "CLEAÒ 1000¢ whicè setó strinç space® Iæ yoõ arå usinç versioî 5.x¬ uså "CLEAR,,1000¢ whicè setó stack“ space® Iî 5.ø strinç spacå ió useä dynamically¬ buô thå stacë spacå ió determineä froí aî algorithí whicè wilì resulô iî DIMÓ crashinç witè aî "Ouô oæ Memory¢ erroò whicè wilì bå puzzlinç becauså fre(x© wilì stilì sho÷ plentù oæ memory. Thå seconä differencå ió thaô Basic-8° versioî µ haó thå commanä "INKEY$¢ whicè allowó checkinç thå keyboarä withouô stopping® Iæ yoõ neeä tï instalì DIMÓ oî versioî 4.5¬ yoõ wilì havå tï eitheò givå uð thå "z¢ scrollinç controì command¬ oò writå codå thaô lookó aô youò hardwarå ports® Instead of X$=INKEY$ use X=INP(KEYBD.DATA.PORT). MEMORY REQUIREMENT DIMÓ ió currentlù beinç developeä oî á 59K-sizå CP/Í system¬ actuallù á 62Ë Morro÷ harä disë system® Á smalleò systeí maù noô havå rooí foò alì oæ thå filå editoò DEDIT¬ whicè ió big® Thå prograí STRIP.BAÓ ió provideä anä maù bå useä tï removå commentó froí DEDIT® Iô wilì theî fiô oî á 54Ë system® Iæ youò systeí ió smalleò anä you'rå adepô aô Basic¬ yoõ coulä shrinë DEDIÔ bù takinç ouô alì thå codå relatinç tï thå formaô commanä anä replacinç alì thå complicateä positioninç codå witè simplå listinç iî thå defaulô format® Iæ yoõ strið thå commentó keeð youò developmenô versioî witè thå commentó in¬ anä theî strið iô foò running¬ sï you'lì havå thå commentó tï guidå yoõ iî makinç modifications. .cp 4 MODIFYING THE PROGRAMS FOR YOUR TERMINAL AND PRINTER DIMÓ useó thå clear-screeî anä cursoò positioninç functionó oæ youò terminal® Sincå alì terminaló arå different¬ ALÌ THÅ DIMÓ PROGRAMÓ MUSÔ BÅ MODIFIEÄ TÏ SUIÔ YOUÒ TERMINAL® Iî thå codå (TERÍ DEP© wilì appeaò iî commentó aô eacè placå wherå customizatioî ió necessary® Uså youò texô editoò tï searcè foò theså spots® DEDIÔ useó thå mosô functionó anä there forå requireó thå mosô work® Thå supplieä transienô programó don'ô uså cursoò positioninç buô theù dï uså screeî cleaò anä keyboarä testing® ALÌ THÅ PROGRAÍ SEGMENTÓ MUSÔ BÅ LOADEÄ ANÄ RE-SAVEÄ becauså DIMÓ useó CHAIÎ anä programó storeä iî ASCIÉ formaô wilì aô firsô appeaò tï chaiî buô wilì crash soon after with misleading error messages. Wheî writinç Basic-80¬ enterinç á line-feeä produceó á ne÷ linå iî thå listinç whicè ió noô counteä aó á linå bù Basic® Thå combinatioî oæ theså anä tabó makeó iô possiblå tï geô á loô oæ clarifyinç whitå spacå intï thå codå witè verù littlå cosô iî termó oæ characters® Wheî É ediô á program.ASà filå witè WordStaò (iî "n¢ mode)¬ É seå extrá lineó inserteä anä signó oæ confusioî iî thå righô hanä column® Thió ió becauså Basiã haó puô linefeeä followeä bù carriagå return¬ thå oppositå oæ thå usuaì sequence¬ iî thå file® WordStaò can'ô ediô thió sequence® Jusô leavå Šthoså effectó alonå wheî usinç WordStaò anä alì wilì bå well. Speciaì problemó caî ariså iî thå caså oæ aî upper-caså onlù terminal® Iæ yoõ musô uså one¬ copù alì thå prograí ANÄ DATÁ fileó witè PIÐ usinç thå [uÝ option® Theî uså á texô editoò tï finä alì "CHR$(¢ occurrenceó iî thå programó anä changå thoså numberó whicè represenô lower-caså characteró (9· tï 122© tï upper-caså codeó (subtracô 32). .cp 5 PRINTER Thå DIMÓ systeí aó delivereä ió writteî foò á Diablï 161° oò 162° printer¬ anä useó manù oæ itó speciaì controì sequences¬ likå settinç verticaì anä horizontaì pitcè foò listinç iî á pre-recordeä form¬ anä higè speeä absolutå tabbing® Uså witè otheò printeró wilì requirå re-writinç thió code® Diablï controì sequenceó starô witè ESCAPE¬ whicè ió CHR$(27)® DIMÓ wilì allo÷ yoõ tï creatå á formaô specificatioî whicè useó reverså scrollinç oî thå printer¬ buô don'ô dï iô unlesó yoõ havå á bidirectionaì formó tractor. .he DIMS Installation Notes - Release 1.03 - DESCRIPTIONS OF FILES PAGE # .cp 9 DESCRIPTIONS OF FILES PROVIDED *** GROUP 0 - Development *** Keeð theså fileó oî youò "DIMÓ Development¢ seô oæ disks® Theù arå noô needed for working with files under DIMS. READ-ME .103 Release letter DINSTALL.DOC Installation and Operation Manual STRIP .BAS Basic-80 utility for making DEDIT smaller FORMFORM.DWÓ Sourcå filå tï bå copieä wheî designinç screen/printeò formats with the aid of WordStar FIELDFOR.DWS Source file to be appended to copies of FORMFORM.DWS *** GROUP 1 - Main Programs *** Thå followinç Basic-8° programó arå provideä iî ASCIÉ formaô foò easå iî transmission¬ scanning¬ anä editinç durinç installation® THEÙ MUSÔ THEÎ BÅ SAVEÄ IÎ THÅ BASIC-8° COMPRESSEÄ FORMAÔ WITÈ NAME.BAÓ TÏ RUN. DIMS .ASC Opening menu program. DEDIT .ASC The file editor program .cp 10 Š *** GROUÐ ² - Transienô Programó *** Alì theså excepô DCREATÅ chaiî froí anä returî tï thå filå editor¬ DEDIT. DCFORM .ASC Command for creating a screen/printer format for a file. DCHESHIR.ASà Commanä foò printinç labeló 4-acrosó oî widå papeò foò Cheshirå automatiã labeì applicatioî machine® Can alsï bå useä aó á stand-alonå prograí tï prinô froí á comma-delimiteä data file. DCREATE .ASC Program to create a new file format. Chains from DIMS main menu program. DDOà .ASà Commanä thaô displayó oò writeó tï á texô filå oæ noteó associated with a data file. DGEÔ .ASà Commanä whicè getó á sequentiaì filå anä addó iô tï á DIMÓ file. DHELÐ .ASà Commanä whicè displayó screenó describinç filå editoò commands. The screens are stored in the file DHELP.DOC. DLABELS .ASC Command for printing 1-up mailing labels. DLETTERS.ASC Command for printing form letters with file data inserted. DNADIÎ .ASà Commanä foò inputtinç á NAD-likå datá filå tï á DIMÓ "standard" form mailing list file. DPUT .ASC Command which puts a set of records out to a sequential file. DSORT .ASC Command for sorting files. DSTAÔ .ASà Commanä foò calculatinç descriptivå statisticó foò datá iî á numeric field. *** GROUP 3 - Main Data Files *** LONGADDR.D Example data file for long form address lists. STANDADD.D Example data file for standard form address lists. SHORTADD.D Example data file for short form address lists. ARTICLES.D Example data file for magazine articles. MEMBERS .D Example data file for neighborhood association *** GROUP 4 - Backup Data Files *** LONGADDR.DD Example backup data file. (etc.) .DD Š *** GROUP 5 - Auxiliary Files *** SHORT .DFO Example format control file. SHORT1 .DFO Example format control file. STANDADD.DFO Example format control file. MEMBERS .DFO Example format control file - used for printer listing. MEMBERS .DOC Example of a notes file read and written via "doc" command when editing MEMBERS file. DHELP .DOC Screen texts used by help command. .he DIMS Installation Notes - Release 1.03 - PLACING THE FILES PAGE # .cp 5 PLACING THE FILES ON THE APPROPRIATE DRIVES É recommenä thaô besideó thå distributioî master¬ yoõ keeð á seô oæ diskó calleä "Dimó Development¢ whicè consistó oæ alì thå releaså fileó iî compresseä form¬ thå demonstratioî files¬ anä smalì sampleó oæ thå datá fileó yoõ creatå foò yourself® Uså thió seô oæ diskó tï creatå anä tesô formató anä anä tï creatå anä tesô youò owî transienô utilities® Theî havå setó oæ workinç disks¬ whicè wilì bå changeä iî pairs¬ witè jusô thå DIMS componentó yoõ neeä anä plentù oæ spacå foò datá files® Witè threå diskó É uså Á foò everydaù prograí librarù anä  anä à foò data¬  ¦ à gettinç changeä foò differenô setó oæ fileó (seå below). Afteò eacè prograí segmenô ió checkeä oveò anä modifieä foò youò termi nal¬ savå iô iî thå standarä compresseä formaô witè name.bas® Theî thå name.asã filå maù bå erased® Dependinç oî ho÷ manù driveó yoõ have¬ yoõ musô copù thå fileó provideä oî thå distributioî disë tï diskó oî thå appropriatå driveó oæ youò system® Theî changå thå initiaì valuå oæ thå variablå NDRIVEÓ neaò thå beginninç oæ DIMS.BAÓ tï thå numbeò oæ driveó yoõ arå using. Iæ yoõ arå usinç á harä disk¬ commenô ouô thå twï RESEÔ statementó neaò thå toð oæ DIMS.BAS® Theù arå necessarù foò changinç floppies¬ whicè ió onlù alloweä aô thå no-filå menu® .cp 21 ŠIÎ Á TWÏ DRIVÅ SYSTEÍ ..® programó arå spliô betweeî Aº anä Bº, attemptinç tï makå balanceä spacå foò datá (.D© anä backuð (.DD© files. Drive A: Drive B: MBASIC .COM DCFORM .BAS DIMS .BAS DCHESHIR.BAS DEDIT .BAS DCREATE .BAS LONGADDR.D DDOC .BAS STANDADD.D DGET .BAS SHORTADD.D DHELP .BAS ARTICLES.D DLABELS .BAS MEMBERS .D DLETTERS.BAS DNADIN .BAS DPUT .BAS DSORT .BAS DSTAT .BAS SHORT .DFO SHORT1 .DFO MEMBERS .DFO STANDADD.DFO MEMBERS .DOC DHELP .DOC LONGADDR.DD STANDADD.DD SHORTADD.DD ARTICLES.DD MEMBERS .DD OÎ AÎ OSBORNÅ ± OÒ SMALL-CAPACITÙ 2-DRIVÅ SYSTEÍ ..® Thå minimuí needeä tï builä á datá baså ió shown® Tï givå thå maximuí possiblå spacå foò data¬ MBASIC.COÍ ió storeä oî drivå Bº Thå systeí ió starteä froí drivå Aº bù typing "b:mbasic dims". On an O-1, you can add 400 data records. Drive A: Drive B: DIMS .BAS MBASIC .COM DEDIT .BAS STANDADD.DD STANDADD.D .cp 22 ŠIÎ Á THREÅ DRIVÅ SYSTEÍ ..® thå prograí librarù ió kepô togetheò oî Aº anä Bº anä Cº arå saveä foò largå datá files® Á datá filå caî bå aó biç aó thå whole user disk space, and still have 100% backup on the other disk. Drive A: Drive B: Drive C: MBASIC .COM LONGADDR.D LONGADDR.DD DIMS .BAS STANDADD.D STANDADD.DD DEDIT .BAS SHORTADD.D SHORTADD.DD DCFORM .BAS ARTICLES.D ARTICLES.DD DCHESHIR.BAS MEMBERS .D MEMBERS .DD DCREATE .BAS DDOC .BAS DGET .BAS DHELP .BAS DLABELS .BAS DLETTERS.BAS DNADIN .BAS DPUT .BAS DSORT .BAS DSTAT .BAS SHORT .DFO SHORT1 .DFO STANDADD.DFO MEMBERS .DFO DHELP .DOC MEMBERS .DOC .cp 17 IÎ Á FOUÒ DRIVÅ SYSTEÍ ..® auxiliarù fileó (.DOC¬ .DFÏ anä temporarù .$$$© are kept on the fourth drive. Drive A: Drive B: Drive C: Drive D: MBASIC .COM LONGADDR.D LONGADDR.DD SHORT .DFO DIMS .BAS STANDADD.D STANDADD.DD SHORT1 .DFO DEDIT .BAS SHORTADD.D SHORTADD.DD STANDADD.DFO DCFORM .BAS ARTICLES.Ä ARTICLES.DÄ MEMBERS .DFO DCHESHIR.BAS MEMBERS .D MEMBERS .DD MEMBERS .DOC DCREATE .BAS DHELP .DOC DDOC .BAS DGET .BAS DHELP .BAS DLABELS .BAS DLETTERS.BAS DNADIN .BAS DPUT .BAS DSORT .BAS DSTAT .BAS .he DIMS Installation Notes - Release 1.03 - OPERATING INSTRUCTIONS PAGE # .pa Š OPERATING INSTRUCTIONS: MAIN MENU Afteò thå fileó havå beeî puô oî thå appropriatå drives¬ modifieä foò youò terminaì anä drivå configuration¬ anä saveä iî standarä compresseä formaô (ASCIÉ fileó won'ô CHAIN)¬ thå systeí ió starteä bù runninç DIMS® Yoõ shoulä geô thå no-filå menõ witè á directorù oæ thå provideä tesô datá fileó displayed® Iæ yoõ theî hiô return¬ yoõ wilì geô menõ choicå no® 1¬ opeî á file® Enteò thå namå oæ onå oæ thå existinç files¬ jusô thå maiî parô oæ thå name¬ skippinç thå extension® Iô maù bå iî eitheò loweò oò uppeò case. DEDIÔ shoulä loaä anä displaù thå lasô recorä iî thå file® (Iæ yoõ geô "BAÄ FILÅ MODÅ IÎ 6250¢ iô meanó DEDIÔ hasn'ô beeî saveä iî normaì compres seä format.) Typå "help¢ foò á serieó oæ screenó explaininç thå availablå commands® Aô thå "pauså prompt¢ "Ready>¢ iæ yoõ typå "h¢ á menõ oæ pauså optionó wilì appear. Wheî yoõ arå editinç á filå thå onlù safå exiô ió tï typå thå commanä "done¢ (don)® Thió wilì returî yoõ tï thå maiî menu® Otheò choiceó availablå froí thå no-filå menõ includå á reseô whicè ió intendeä tï sho÷ thå ne÷ directorù wheî datá diskó havå beeî changed® Iæ DIMÓ haó beeî properlù installeä (twï RESEÔ statementó enabled)¬ nï harí wilì comå iæ yoõ skið thió steð anä opeî á file® Therå ió alsï á commanä foò changinç thå numbeò oæ diskó iî thå systeí foò thå currenô session® Thió ió foò emer gencù use® Iô ió necessarù tï firsô uså PIÐ tï movå thå fileó arounä tï thå appropriatå driveó iæ yoõ intenä tï dï this. Thå no-filå menõ includeó DCREATE¬ thå sub-prograí thaô setó uð á ne÷ filå froí scratch® Iô askó foò thå name¬ anä choicå oæ size® 128-bytå recordó arå jusô righô foò mailinç listó anä mosô things» thå 256-bytå recorä sizå ió availablå foò recordó thaô neeä morå space® Yoõ arå askeä tï givå thå defaulô 4-characteò namå foò eacè field¬ anä whetheò iô ió aî alphabetiã oò numeriã field® Yoõ caî jusô hiô RETURÎ foò alphabetic® Everywherå iî DIMÓ dialogueó jusô hittinç RETURÎ giveó yoõ thå firsô choicå iî thå menõ oò options® Enteò "stop¢ wheî alì fieldó havå beeî defined¬ and after approval the new file will be opened. Iæ yoõ wanô tï makå á ne÷ filå witè thå samå fielä schemå aó aî existinç one¬ there'ó aî easieò way® Jusô opeî thå filå anä copù onå recorä ("copù 1")¬ givinç thå ne÷ filå name® Theî "done¢ thå olä file¬ opeî thå ne÷ filå anä uså "change¢ tï puô ne÷ datá iî thå copieä record® Theî yoõ caî starô adding. .he DIMS Operating manual - Release 1.03 - DEDIT commands PAGE # .cp 5 ŠFILE EDITING COMMANDS DEDIÔ haó twï prompts¬ "Ediô FILENAME:¢ anä "Ready>"® "Ediô FILENAME¢ ió thå commanä level¬ anä acceptó á commanä line® "Ready>¢ ió thå "pauså prompt¢ betweeî recordó iî á sequencå beinç ruî thrõ iî responså tï á commanä line® Thå pauså prompô "Ready>¢ takeó single-letteò instanô com mandó SPACE¬ ú oò ESC® Hittinç thå spacå baò wilì sho÷ thå nexô record® Hittinç ú wilì starô continuouó scrollinç untiì spacå ió hiô tï stop® Thå ESCAPÅ keù wilì alwayó quiô thå sequencå anä givå yoõ "Ediô FILENAME". "Ediô FILENAME¢ takeó á somewhaô free-forí commanä line® Thió linå ió madå uð oæ onlù valiä commanä words® Thå sequencå caî bå prettù loose¬ buô afteò á "final¢ commanä everythinç elså wilì bå ignoreä excepô foò range- of-recordó wordó anä numbers¬ likå "froí 1° tï 20." Iæ there'ó á recorä numbeò oò á paiò oæ recorä numberó anywherå iî thå command line, the command will be done on the specified range of records. Thå wordó "from¢ "to¢ "all¢ "end¢ "next¢ oò "last¢ maù bå useä wheî talkinç abouô recorä numbers® ".¢ insteaä oæ á numbeò meanó uså thå mosô recentlù displayeä record® Alì thå built-iî commandó maù bå shorteneä tï threå letters. For example, all the following are valid commands: add delete from 10 to 20 delete 10 20 print to 75 print select labels change 57 cha . (means change last record shown) 10 20 list from 10 to 20 (same result as "10 20" select copy delete (moves records to another file) "FINAL" COMMANDS Theså commandó arå normallù thå lasô worä iî thå commanä sentence® Anù followinç wordó excepô recorä numberó wilì bå ignored. add Appends records to the end of the file, prompting field by field. In this mode the following commands take effect: "stop" alone in any field quits adding. "\" (backslash) at end of any field skips back 1 field. ";" alone in the field copies data from last record shown. done Closes the file and returns to the no-file menu. gotï Closeó thå filå anä openó anù nameä filå oî thå same disks. fields Allows "hiding" fields you don't want to show. You may un-hide them with the same command. Controls output of 'put.' Š format 0 Installs default display and print formats. format Installs named format definition for screen and printer. formats Shows available format definition files. backup Makes complete new backup file from main file. Rarely used since backup file is maintained automatically. renumber Renumbers all records sequentially from the top in both main and backup files, closing up holes from deleted records. MISCELLANEOUS COMMANDS The following commands may be given freely anywhere in the command line: change <#> Shows record or records field by field, new data may be entered for each field or the old data may be kept by just hittinç RETURN® Tï eraså á fielä enteò jusô onå space then RETURN® Backslasè '\§ backó uð tï previouó field® Iæ á                 changå commanä includeó morå thaî onå record¬ yoõ wilì bå                 giveî thå optioî tï selecô fieldó tï change¬ whicè speedó                 uð thå procesó oæ doinç somethinç likå jusô addinç zipcodeó                 to an existing file. delete <#> Shows record or records and asks approval to erase. list Shows records. Assumed if no other final command is given. find Finds records containing the exact word string. A phrase can be found if underlines_are_used_instead_of_spaces. select Findó recordó containinç uð tï 1° differenô wordó oò                 phrases® Spaceó arå OK¬ buô nï upper/loweò caså conversioî                 ió done® Iæ yoõ hiô returî wheî askeä whaô fielä tï looë                 iî thå worä wilì bå searcheä foò iî alì fields® Yoõ alsï                 caî specifù uð tï 1° wordó oò phraseó thaô wilì causå thå                 recorä tï bå skipped® Desigî youò codinç systeí tï worë                 witè this® print Prints on list device rather than screen in the current format. copy Copies data records and adds them on to the end of another DIMS file. You will be asked for the name. You may create a new file this way or add to an existing one, but the field definitions must be the same. New records have no auto backup. and Permitted for clarity, ignored. page Sets the page number to start the printout with. margin Setó thå printeò margiî iæ yoõ don'ô wanô thå margiî thaô                 comeó witè thå forí you'rå using. Š flag Combineä witè "add¢ oò "change¢ tï á rangå oæ records¬ askó                 yoõ foò á strinç tï bå addeä automaticallù tï anù (one©                 fielä iî thå record. programs Shows a directory of available "transient commands," i.e.                 various batch processes than can work on the file. .cp 4 TRANSIENT COMMANDS                 Transienô commandó arå sub-programó whicè dï á batcè oæ worë anä theî returî yoõ tï DEDIT® Wherå appropriate¬ theù wilì takå á rangå oæ recordó anä selectioî criteriá froí thå commanä line® Exampleº "prinô selecô labeló 10° tï 150." The most commonly used are described here: cform Process for creating format definition files. Complicated. doc A "notepad" where you can read or write notes associated with thå datá file® Thå doã filå caî bå editeä lateò witè á                 texô editor® Usefuì foò documentinç oî thå spoô codeó yoõ                 invenô foò youò file. labels Printó á batcè oæ mailinç labeló (uså "prinô labels"© witè                 blanë fieldó closeä up® Workó onlù witè threå standarä                 addresó filå formats® It'ó noô harä tï modifù iæ neces                 sary® Afteò thå labeló arå aligned¬ hiô spacå tï prinô onå                 aô á timå tï makå sure® Theî hiô ú tï causå continuouó                 printing® Hiô spacå agaiî tï pause¬ ESà tï abort. letters Printó á texô filå witè datá froí á DIMÓ filå inserted®                 Á personaì salutatioî linå oò otheò datá lineó maù bå                 includeä iæ desired® DLETTERS.BAÓ musô bå modifieä foò                 eacè job® Iæ yoõ havå MailMergå it'ó easieò tï uså "put¢                 tï makå á sequentiaì datá filå whicè ió á subseô oæ thå                 DIMÓ data file anä uså MailMergå witè that. sort Sortó thå recordó intï á ne÷ sequencå iî thå wholå filå oò                 jusô á rangå oæ thå file® Askó questionó foò set-up®                 Alphabetiã keyó maù bå truncateä and/oò blank-filleä tï á                 specifieä length® Sortó alphabeticallù unlesó alì fieldó                 specifieä foò keyó arå numeric® Thå sorteä producô maù                 replacå thå olä filå oò makå á ne÷ file® Limiteä bù memorù                 space to smaller files. stat Computes descriptive statistics for a selected numeric field. put Makes an output file in standard Basic sequential form for further processing with other programs. You may select a range of records in the invoking command line, and selection specifications® Hiddeî fieldó (seå "fields"© wilì bå skipped get Addó datá froí á conventionaì Basiã sequentiaì datá filå tï                 thå enä oæ thå DIMÓ filå froí whicè iô ió called¬ addinç                 recordó tï thå end® Allowó skippinç anä re-orderinç oæ fields. Š .cp 5 FILE STYLES Iæ you'rå openinç uð á ne÷ mailinç lisô file¬ it'ó convenienô tï uså onå oæ threå establisheä setó oæ fielä nameó ® Looë aô thå examplå fileó provided¬ LONGADDR¬ STANDADD¬ anä SHORTADD® Thå transienô commanä "labels¢ haó codå built-iî tï deaì witè anù oæ theså threå forms® Thå lonç forí ió useä foò governmenô oò academiã worë wherå titleó anä organizationó abound® Thå standarä forí ió foò generaì purposes® Thå shorô forí ió foò shorô fileó thaô won'ô neeä tï bå sorteä intï lasô namå order. Tï makå á special-purposå mailinç lisô sucè aó aî organizatioî whicè woulä wanô membershið statuó oò otheò speciaì fields¬ imitate onå oæ thå threå standarä fielä layoutó foò everythinç uð tï thå zið code¬ theî desigî thå layouô beyonä thaô poinô tï suiô thå application® Thió waù thå labeló prograí wilì worë witè thå file® Foò example¬ studù "MEMBERS.DOC,¢ whicè explains the fields of "MEMBERS.D." Thå ZIÐ fielä ió oæ thå numeriã typå sï iô wilì rejecô un-sortablå mistakeó likå usinç "l¢ foò "1"® Puô Europeaî anä Canadiaî postaì codeó afteò thå provincå iî thå C-SÔ field¬ anä leavå thå ZIÐ fielä blank. DESIGNING CODES FOR RECORD SELECTION Iæ codå fieldó arå compatiblù designed¬ thå limiteä selection/rejectioî logiã iî DIMÓ caî dï quitå á gooä joâ oæ pullinç ouô á subset® Thå techniquå thaô I'vå developeä thaô workó reaì welì ió tï uså codeó madå uð oæ onå lower-caså letteò anä onå digit¬ sucè aó a0¬ a1¬ b0¬ c8¬ etc® Anù numbeò oæ codeó caî bå jumbleä iî anù ordeò iî á singlå codå field® Thió makeó iô easù tï adä codeó tï thå schemå aó iô developó - yoõ caî uså thå "doc¢ commanä tï notå theiò meaninç wheî yoõ thinë theí up® Iæ thió forí oæ codinç ió strictlù adhereä tï á subseô oæ á singlå codå maù bå pulleä verù rapidlù usinç "find,¢ sincå thió combinatioî oæ letteò anä digiô doesn't occur anywhere else in the fields. For example: print find a2 labels .he DIMS Operating Manual - Release 1.03 - SCREEN & PRINTER FORMATS PAGE # DESIGNING AND CREATING SCREEN & PRINTER FORMATS Yoõ caî creatå formats¬ thaô is¬ totallù designeä wayó oæ naminç anä displayinç thå datá oî thå screeî anä oî thå printer® Opeî thå examplå filå SHORTADÄ anä trù thå samplå formató SHORÔ anä SHORT± ouô oî it® Yoõ caî seå thå nameó oæ thå formató (.DFÏ files© availablå bù typinç thå commanä "formats.¢ Á formaô ió usuallù designeä foò uså witè á particulaò file¬ thougè iæ thå fieldó arå compatiblå there'ó nï reasoî whù á wholå familù oæ fileó couldn'ô uså thå samå one® Á formaô specificatioî includeó botè thå screeî anä thå printeò images® Yoõ caî desigî eitheò scrollinç oò screen-orienteä forms® Thå designeró oæ commerciaì data-entrù programó (e.g® DataStar¬ dBASÅ II© seeí tï bå preferrinç screen-orienteä displayó theså days¬ wherå thå screeî showó yoõ jusô onå filå recorä aô á timå displayeä iî á designeä Šform® Yoõ caî desigî fixed-positioî formató foò DIMS® É prefeò scrollinç datá entrù becauså yoõ caî orienô yourselæ tï whaô yoõ jusô did® É haven'ô useä fixed-positioî formaô designó anä consequentlù É musô warî yoõ thaô thougè provideä foò iî DIMÓ thió modå hasn'ô beeî fullù testeä anä therå maù bå bugs. USING CFORM TO CREATE A FORMAT CONTROL FILE Therå arå twï wayó oæ creatinç thå formaô specificatioî file¬ .DFO® Thå firsô ió tï givå thå commanä "cform¢ iî DEDIT® Thå cforí transienô allowó yoõ tï prinô ouô á lonç papeò forí oî whicè yoõ filì ouô youò desigî foò thå screeî anä printeò form® Screeî and/oò pagå headingó maù bå madå uð tï threå lineó long® Theså lineó wilì onlù bå printeä iæ non-blank® Fielä nameó (prompts© maù bå omitted¬ thå defaulô 4-characteò fielä namå maù bå used¬ oò á custoí namå maù bå printeä anywhere® Iî positioninç nameó anä datá fields¬ iæ thå linå ió specifieä thå iteí wilì alwayó bå printeä aô thaô line. Iæ thå linå ió ° iô wilì bå printeä wher eveò thå cursoò oò printheaä waó lefô aô thå enä oæ thå previouó field® Similarly¬ iæ á columî ió specifieä thå datá wilì bå printeä there¬ anä iæ columî ° ió giveî iô wilì prinô aô thå columî wherå iô waó lefô bù thå previouó operation® Thió allows¬ foò example¬ printinç Firstnamå Lastname bù defininç thå fielä namå prompô foò "Lastname¢ aó á singlå space¬ aô linå ° anä columî 0. Takå carå wheî enterinç thå datá froí thå filled-ouô form¬ becauså cforí doesn'ô bacë up® Iæ yoõ makå aî erroò yoõ musô starô over® Enteò alì thå specificationó anä tesô iô oî youò datá file® Wheî you'rå debug ginç á formaô design¬ yoõ caî takå á shorô cuô bù usinç á texô editoò prograí oî thå .DFÏ filå thaô cforí createä froí thå specificatioî entrù dialogue® Comparå thå numberó oî thå papeò forí witè thå filå imagå tï figurå ouô wherå iî thå formaô controì filå yoõ are® Thå filå ió reaä aó á sequentiaì filå wheî iô ió useä bù DIMS¬ sï takå greaô carå tï preservå thå exacô numbeò oæ lineó anä itemó peò line® USING WORDSTAR TO CREATE A FORMAT CONTROL FILE Iæ yoõ havå WordStar¬ aî easiest methoä maù bå used® Á WordStaò filå witè promptó includeä aó non-printinç commentó ió editeä tï filì iî alì thå desireä specifications® Thå filå ió theî printeä tï disë tï creatå thå controì file® Starô WordStar® Typå "n¢ tï begiî á "non-document¢ typå oæ file¬ anä namå thå ne÷ filå witè á ne÷ name® É suggesô usinç thå suffix .DWS for this type of file. Aô thå toð oæ thå blanë ne÷ file¬ typå ^KR¬ anä givå thå namå "formform.dws"® Thå loadeä filå containó completå promptó anä instructionó foò creatinç thå formaô controì file® Wheî needed¬ thå filå "fieldfor.dws" is also read in. Thå filå ió printeä usinç thå optioî oæ printinç tï á disë file® Thå producô file'ó namå musô havå thå extensioî .DFO® Thå .DFÏ filå musô bå Šediteä tï removå extrá blanë lineó froí thå end® Theî iô maù bå trieä ouô whilå editinç thå DIMÓ file® Afteò correctionó arå noted¬ worë oî thå .DWÓ source file and print it again. .he DIMS Operating Instructions - Release 1.03 - CRASH RECOVERY PAGE # CRASH RECOVERY DIMÓ recordó everù recorä thaô yoõ enteò oò updatå immediatelù iî twï places¬ thå maiî anä backuð datá files® Hopefullù youò systeí wilì bå seô uð sï thaô theså arå oî differenô disks¬ givinç protectioî againsô eveî á crashed file directory on one disk. Wheî á disë ió baä anä yoõ crasè tï onå oæ CP/M'ó cryptiã "BDOÓ ERROR¢ messages¬ alì youò datá excepô thå lasô recorä yoõ werå enterinç ió stilì good® Iæ yoõ werå iî thå procesó oæ addinç recordó alì thå newly-addeä recordó wilì bå iî thå filå buô thå numbeò oæ recordó wilì noô havå beeî updateä iî thå DIMÓ filå headeò record® Iæ yoõ remembeò whaô thå highesô recorä numbeò was¬ skið thå nexô paragraph. Uså CP/M'ó staô utilitù tï looë aô thå datá file® Notå thå numbeò oæ recordó showî iî thå left-hanä column® Iæ youò filå ió 128-bytå records¬ thå numbeò oæ datá recordó (thå numbeò yoõ want© ió thaô numbeò minuó one® Iæ thå filå ió double-sizå records¬ thå numbeò oæ datá recordó ió thå numbeò oæ CP/Í recordó divideä bù two¬ theî minuó one® Re-starô DIMS® Open the file. Notå thaô DIMÓ stilì thinkó thaô thå filå haó thå numbeò oæ recordó thaô iô haä wheî yoõ diä thå lasô "done.¢ Hiô control-C® Enteò "N=986¢ (uså youò owî number)® Enteò "C=1"® Enteò "cont¢ theî RETURÎ anä seå iæ thå filå appearó tï bå normaì now® Dï "done." Iæ á crasè occuró whilå thå sorô commanä ió writinç itó outpuô oveò thå backuð file¬ thå backuð filå ió invalid® Uså "backup¢ tï restorå it® Shoulä thå maiî oò backuð filå bå lost¬ PIÐ caî bå useä tï copù onå oò thå other¬ anä theî thå CP/Í "ren¢ commanä tï renamå thå file® Thå maiî anä backup data files are identical. .he DIMS Interface and Modification - Release 1.03 - FILE COMPATIBILITY PAGE # INTERFACE AND MODIFICATION FILE COMPATIBILITY DIMÓ fileó arå ASCIÉ datá iî fixed-lengtè randoí accesó blocks¬ anä alì recordó arå eitheò standarä 12¸ bytå lengtè oò 25¶ bytå lengtè dependinç oî whicè waó choseî wheî thå filå waó created® Thió haó nothinç tï dï witè youò diskó beinç doublå oò singlå density® MBASIà anä CP/Í pacë thå re cordó oî thå disë witè nï carriagå returnó betweeî theí anä nï control-Ú aô thå end® Withiî eacè recorä thå fieldó arå jammeä sequentiallù witè thå delimiteò characteò "~¢ (chr$(126)© betweeî thå fieldó anä thå left-oveò spacå filleä witè blanks® Thió characteò maù noô bå useä iî data¬ buô commaó anä quoteó maù bå entereä freely® Herå ió aî examplå oæ whaô á filå recorä lookó likå oî thå disk: .cp 8 Š(headeò recorä - thå lasô iteí ió thå numbeò oæ recordó iî thå file.) LNAM,a~FNAM,a~N2 ,a~ADDR,a~C-ST,a~ZIP ,n~PHON,a~CODE,a~NOTE,a~stop0~ 1~ (data record 1) Dugan~Dan~Daî Dugaî Sounä Design~29° Napoleoî Street¬ Studiï E~Saî Francisco¬ CA~94124~(415© 821-9776~~DIMS~ Thå filå maù bå dumpeä witè thå CP/Í "type¢ command¬ oò examineä anä repaireä witè EÄ oò WordStaò versioî ± (versioî ³ wilì crash© iî thå non- documenô mode® Christensens'ó DU.COÍ utilitù maù bå useä tï repaiò á crasheä file® SuperSorô doeó noô accepô DIMÓ fileó directlù becauså iô insistó oî comma-delimiteä oò fixed-lengtè fielä files. Thå DIMÓ transienô programó "DPUT¢ anä "DGET¢ providå á convenienô meanó foò interfacinç tï otheò programs® DPUÔ outputó á standarä Basiã sequentiaì filå oæ comma-delimiteä records® Iô caî bå invokeä iî á commanä linå witè rangå anä selectioî commandó tï outpuô á subseô file¬ likå "selecô put.¢ DGEÔ doeó thå exacô reverse¬ loadinç á standarä sequentiaì filå intï á DIMÓ file¬ anä allowó stuffinç thå fieldó iî anù combinatioî oò order. Quoteó anä commaó maù bå useä freelù iî DIMÓ datá fields® Tï makå fileó compatiblå witè otheò programs¬ DPUÔ automaticallù putó quoteó arounä fieldó containinç commas® Iô encodeó existinç quoteó iî thå filå intï thå characteò "~"¬ CHR$(126)® DGEÔ dropó thå surroundinç quoteó anä convertó þ bacë tï ". Á DIMÓ filå maù bå re-designeä bù usinç thå 'put§ commanä tï outpuô thå datá tï á temporarù file¬ usinç DCREATÅ (maiî menu© tï creatå á ne÷ DIMÓ filå witè thå desireä fielä names¬ anä usinç thå 'get§ commanä tï stufæ thå datá bacë iî iî thå desireä order. .he DIMS Interface and Modification - Release 1.03 - YOUR TRANSIENTS PAGE # .cp 4 WRITING YOUR OWN 'TRANSIENT' PROGRAMS Whaô É usuallù dï wheî É wanô tï writå á ne÷ transienô functioî ió loaä "DLABELS.BAS¢ anä theî replacå thå workinç sectioî (usually¬ jusô thå insidå oæ thå "I¢ loop© witè ne÷ codå thaô doeó whaô É want® Theî É savå thå filå witè á ne÷ name® Keeð thå beginninç excepô foò thå questionó anä whateveò subroutineó yoõ need® Remembeò thaô yoõ enteò á transienô prograí witè thå rangå oæ records¬ printinç anä selectioî criteriá alreadù speci fieä froí thå DEDIÔ commanä line. Cautioî -- Don'ô changå thå COMMOÎ statement® Alì DIMÓ programó arå entereä aô linå 100° excepô foò thå cold-starô oæ DIMS.BAS® DEDIÔ automa ticallù recognizeó transienô programó iæ they'rå oî thå righô drivå anä theiò nameó starô witè Ä anä enä witè .BAS. .he DIMS Interface and Modification - Release 1.03 - MODIFICATION PAGE # MODIFICATION GUIDELINES Notå thaô alì GOTO'ó anä GOSUB'ó poinô tï remarë lines¡ Thió ió thå oppositå oæ advicå commonlù heard® Thå speeä penaltù foò thió ió infiniŠtesmal® Thå advantageó arå firsô yoõ caî seå whaô GOSU nnnî doeó bù typinç "lisô nnnn,¢ anä seconä it'ó easieò tï adä á linå aô thå beginninç oæ thå subroutine¬ somethinç É seeí tï neeä tï dï often. Regardinç speed¬ É reaä somewherå thaô Basiã searcheó thå wholå prograí froí thå starô foò thå destinationó oæ branchinç statements¬ anä thaô it'ó supposeä tï bå fasteò iæ thå subroutineó arå aô thå beginninç oæ thå program® É spenô á fe÷ houró re-organizinç DEDIÔ tï trù this¬ anä iô wasn'ô wortè it¬ thå timå foò searchinç 10° recordó waó thå same® É puô thå subó bacë wherå theù grew® I'vå hearä thaô thå samå goeó foò variablå storage¬ thaô thoså thaô arå defineä earlieò iî thå ruî arå quickeò tï use® Foò thió reasoî thå commoî looð indexinç variableó arå includeä iî thå COMMOÎ statement¬ thougè mosô oæ theí aren'ô useä foò parameteò passing® .he DIMS Interface and Modification - Release 1.03 - VARIABLES PAGE # DEFINITION OF COMMON VARIABLES B$() Array holds field data of current record C Change flag = 1 when the file has been added to C() Controls display and changing of fields, value 0, 1 or 2 DD$() Array holds drive names for five types of files F$ Current file name FT Current file type, 1 or 2 - determines 128 or 256 byte recs. FT$ Added to extension of file name, blank or 2 I,J,K Loop index variables. Be sure they're free before re-using. LOOKFIELD() - Numbers of fields for which select skips are set N The current number of records in the file N$() Default names for fields, comma, and "a" or "n" for type NC The number of fields in the current file P6 Flag, reserved for "write" function not implemented P7 Flag, = 1 when "copy" in effect P8 Flag, reserved P9 Flag, = 1 when "print" in effect PI Flag, = 1 when printer is assumed ready R$ Disk data string read/written in main data file S S$ Disk data string read/written in backup data file SEARCHFIELD () - Numbers of fields for which select keys have been set SEARCHWORD$() - Key words or phrases for record selection SKIPWORD$() - Key words or phrases for record skipping T Command code, set by some DEDIT commands to control branching T$ Data record string going to or from storage T1 Lowest record number in the batch T2 Highest record number in the batch T1$ Temporary data string X,Y Local parameter passing variables .he DIMS Interface and Modification - Release 1.03 - BUGS PAGE # .CP 5 KNOWN BUGS AND SUGGESTED IMPROVEMENTS Display of non-scrolling forms in DEDIT hasn't been fully debugged. Á harmlesó slightlù garbleä displaù happenó iæ yoõ uså backslasè tï trù tï bacë uð froí thå firsô fielä oæ á record. Š Thå recorä selectioî logiã ió rudimentary¬ anä coulä bå improveä tï includå AND/OÒ anä greater/lesó thaî comparisons® Thió woulä requirå adding some common variables and updating all programs in the system. "Undelete¢ woulä bå easù tï implemenô bù gettinç datá froí thå backuð file® Lotó oæ thingó coulä bå addeä tï DEDIÔ iæ iô weren'ô sï faô already® Thå "sort¢ commanä onlù sortó iî ascendinç order® Therå ió codå writteî iî thå prograí foò descendinç ordeò sortó buô thió switcè haó beeî commenteä ouô aó iô causeó aî unsolveä data-dependenô crash. .he DIMS Installation Notes - Release 1.03 - HISTORY PAGE # HISTORY OF DIMS É starteä witè mù S-10° microcomputeò aô thå enä oæ 1977® Aô thaô timå therå waó nï generalizeä data-baså managemenô prograí available® É studieä á full-fledgeä systeí writteî iî Basiã calleä RISÓ whicè ió publisheä aó á booë (bù Meldmaî eô al¬ Vaî Nostranä Reinholä Co® '78© Iô waó toï compleø foò må tï understand® É spuî mù wheeló foò á yeaò untiì É sa÷ aî aä foò Scelbé Publications§ PIMÓ -- Personaì Informatioî Managemenô System® Thió ió á completå functioninç data-baså manageò foò cassette-baseä computeró likå TRS-8° oò PET® É boughô iô foò $10¬ typeä iô iî anä goô iô tï work. Tï backsteð foò á moment¬ thió prograí waó firsô publisheä aó "Á People'ó Datá Baså System¢ bù Madaî Guptá anä Brenô Landeò iî 1977® Theî Scelbi published PIMS by Gupta in 1979. Witè PIMÓ É haä á workinç frameworë whicè É converteä tï disë random- accesó files® Afteò thaô thå prograí immediatelù wenô tï worë foò må anä mù clients¬ anä jusô gre÷ anä gre÷ aó thå pressurå oæ doinç reaì worë determined® É renteä machinå timå tï thå Saî Franciscï Charteò Revisioî Commissioî foò theiò mailinç lists¬ anä madå manù improvementó tï thå prograí aó thaô projecô grew® Thå systeí oæ chaininç thå transienô pro gramó developeä wheî thå prograí goô toï biç tï bå alì iî memorù aô thå samå time® É havå neveò changeä thå variablå names¬ storagå formaô oò defaulô listinç formaô froí PIMS® I'vå puô mù largå personaì addresó listó ontï DIMS¬ anä á successfuì systeí foò storinç technicaì magazinå articlå citations® Á book¬ Thå Heartó oæ Spacå Guidå Tï Cosmic¬ Transcendenô anä Innerspacå Musiã starteä ouô aó á DIMÓ datá file¬ waó transformeä (bù á purpose-builô transient© tï WordStaò wheî thå datá waó complete¬ theî senô tï thå typesetteò oî á CP/Í disk® É alsï havå partó listó foò mù productó anä thå membershið lisô foò mù neighborhooä association® Alì thió activitù madå må wanô morå real-timå availabilitù oæ mù datá bases¬ anä iî '8± É useä alì mù availablå crediô tï instalì á Morro÷ M2¶ harä disk® DIMÓ runó witè á satisfyinç speeä increaså oî thå harä disk® Iî '81-8² pre-releaså versionó werå uð oî twï systemó iî mù laâ anä fivå otheò CP/Í systemó belonginç tï friends. DIMÓ versioî 1.° waó releaseä tï thå publiã domaiî bù Daî Dugaî Sounä Desigî oî Marcè 20¬ 1983¬ mù 39tè birthday® Iî Apriì '8² Jií Ayeró madå thå wholå systeí availablå oî thå bulletiî boarä oæ Computeò Systemó oæ Marin. .cp 3 Š Thå prograí waó subsequentlù releaseä aó SIG/Í disë #61® Iô receiveä á ravå revie÷ froí Chrió Terrù iî Microsystemó, May '83® Hå saiä "Iæ yoõ can'ô afforä dBASÅ II¬ geô DIMS.¢ É aí usinç dBASÅ IÉ also¬ anä prefeò iô foò mù financiaì records® É stilì prefeò DIMÓ foò mailinç listó becauså it'ó easier for me. Thå mosô recenô growtè iî DIMÓ haó beeî stimulateä bù á mailinç lisô É aí keepinç foò á clienô whicè haó growî tï 750° names® Currentlù thå updatå cyclå ió workinç likå thisº Nameó arå entereä anä editeä iî DIMS® Tï prinô labels¬ É uså "put¢ tï writå thå datá tï á sequentiaì file¬ uså SuperSorô tï sorô thaô filå bù zið codes¬ anä prinô labeló witè DCHESHIR.BAÓ readinç thå sorteä sequentiaì file® Thå zip-sorteä filå ió re-sorteä tï alphabeticaì bù SuperSort® Thå originaì DIMÓ filå ió archiveä tï á floppù anä thå harä disë filå ió erased® Á alphabetiã sorteä ne÷ DIMÓ filå ió madå usinç "get¢ froí thå sorteä sequentiaì file® Thå sequentiaì filå ió theî eraseä anä á listinç oæ thå DIMÓ filå ió printeä aó á guidå foò correctionó anä editinç durinç thå nexô cycle. Thió worë requireä writinç DCHESHIR.BAS¬ bullet-proofinç DGET.BAS¬ anä designinç á mucè betteò defaulô printeò listinç format® Theså improvementó anä somå generaì improvements/fixeó compriså versioî 1.03¬ beinç releaseä iî January¬ 1983.  ANNOUNCEMENT DIMS RELEASE 1.03 AVAILABLE Dear Neighbors: É aí pleaseä tï announcå thå availabilitù oæ DIMÓ releaså 1.03. Thå differenceó betweeî thió releaså anä thå originaì releaså 1.° arå minor® Alì fileó arå compatible® Thå besô thinç ió thaô thå defaulô printeò listinç formaô ió no÷ mucè morå useful® Somå erroró havå beeî corrected® Performancå oæ thå "get¢ commanä haó beeî improved® Ne÷ transienô commandó "nadin¢ anä "cheshir¢ havå beeî added® Thå manuaì haó beeî updated® Twï usefuì ne÷ formaô controì fileó havå beeî added. Wheî yoõ geô releaså 1.0³ yoõ wilì havå tï gï througè thå installatioî editinç again® Thió consistó oæ youò rewritinç thå cursoò positioninç subroutinå iî DEDIT.BAS¬ anä rewritinç thå cleaò screeî subroutinå iî alì thå otheò programs¬ anä makinç similaò adaptationó foò youò printer® Afteò you'rå donå editinç don'ô forgeô tï loaä anä savå alì thå programó witè BASIC® Runninç witè programó iî ASCIÉ forí wilì seeí tï worë foò á littlå whilå beforå crashinç witè á mysteriouó error. É wilì makå 8¢ CP/Í oò Osbornå disë (² disks© copieó oî youò formatteä disk(s)¬ supplieä witè returî postage® DIMÓ useró maù senä må á stamped¬ self-addresseä envelopå tï Šreceivå thå nexô buç fiø oò releaså notice. ------------------------------------------------------------ Updatå tï thå updateº Iî recenô weekó variouó needó havå produceä somå morå DIMÓ news: É havå installeä DEDIÔ 1.0³ anä severaì otheò updateä moduleó oî thå Osbornå 1® Heretoforå É waó usinç 1.° aó installeä bù Yankeå O.U.G® whicè diä noô dï thå running-out- of-spacå indicatoò properly® Turneä ouô thaô probleí waó duå tï thå O-± noô beinç ablå tï handlå á bursô oæ backspacå characteró aó delivereä bù thå BASIà STRING$(© statement® Supposå it'ó becauså theù geô substituteä witè backspace- space-backspacå somewhere® Madå iô á looð insteaä anä iô workó finå iî thå 1.0³-Oz versioî oæ DEDIT. É havå installeä thå entirå DIMÓ 1.0³ systeí (excepô DCFORM¬ whicè ió obsolete© oî aî IBÍ PC® Therå werå morå problemó translatinç tï BASICÁ thaî I'ä hoped¬ buô iô waó prettù straightforwarä work® Samå backspacå probleí iî DEDIÔ aó thå Osborne¬ samå fix® Backspacå oî thå IBÍ ió chr$(29)¬ bù thå way¡ Biggesô borå waó editinç ouô alì thå fancù formattinç I'ä donå witè BASIC-80'ó line-feeä trick® Maybå theù theù decideä sincå it'ó á non-standarä thinç anä incompatiblå witè WordStaò they'ä dumð it® Wasn'ô happù witè thå incompletå controì systeí oæ á "515² Modeì 2¢ workalikå printeò - Thinë É goô alì thå programó fixeä tï worë witè it¬ buô É wasn'ô ablå tï reviså thå .DFÏ files. Dealinç witè thå spacå requirementó oæ á 12,000-namå Šlisô engendereä DGET+¬ whicè inputó recordó froí á sequentiaì datá filå accordinç tï "find¢ oò "select¢ criteriá froí thå commanä line® Examplå commandº seì get+ Alsï fresè ofæ thå keyboarä ió DUNFLAG.BAS¬ á transienô thaô goeó thrõ á filå anä deleteó á characteò strinç oæ youò choucå froí á field¬ closinç uð thå space® Examplå commandº unflag‚ (Theî yoõ arå askeä foò whaô fielä anä whaô string.) Sorry, these aren't documented in the manual yet. PERSONAL NEWS I'vå moveä tï mù ne÷ laboratorù iî á rehabilitateä lumbeò milì building® É aí verù pleaseä witè it¬ á largå skyliô halì iî whicè É havå spreaä ouô worë areaó foò sounä production¬ audiï service¬ manufacturinç anä computeò work® Afteò á couplå oæ monthó oæ shutdowî duå tï movinç anä remodelling¬ worë ió hoô anä heavù iî thå laâ now® Á word- of-moutè networë amonç filí sounä peoplå ió bringinç må manù ne÷ clientó foò Nagrá anä Stellavoø tapå recordeò calibration® Thå nexô busiesô areá theså dayó ió thå computer¬ É havå a mailinç lisô customeò growinç bù leapó anä bounds® Wheneveò theù cranë uð foò á mailinç É havå tï gï thrõ thå harä disë anä makå rooí tï worë iî - it'ó likå havinç á biç basement¬ oncå it'ó full¬ it'ó á constanô battlå tï keeð spacå available. É spenô almosô everù cenô oæ mù availablå crediô gettinç mù ne÷ placå seô up¬ sï É wilì bå drivinç harä aô makinç moneù tï paù ofæ thå debtó foò thå nexô fe÷ years¬ nï ne÷ Štoys® Wortè it. Iæ yoõ arå interesteä iî audiï engineerinç pleaså writå foò á brochurå oî mù latesô product¬ thå FX-serieó oæ multichanneì preseô parametriã equalizers. I'í usinç mù Radiï Shacë Modeì 10° foò do-lists¬ appointmenô calendaò (iî TEXT)¬ shoppinç lists¬ most- commonly-useä phonå numberó file¬ recordinç notes¬ anä dailù journaì writing® É wisè É coulä makå enougè timå tï writå somå softwarå foò it® É havå á gooä starô oî á datá baså managemenô prograí foò thå 10° whicè buildó froí thå experiencå oæ DIMS® É hopå É caî geô iô finisheä anä makå iô commercial® Hopå someonå comeó ouô witè á compileò foò it® Sincerely, Dan Dugan