Listing of file='LPMAINT' on disk='vmedia/701-2721C.wvd.zip'
# Sector 362, program filename = 'LPMAINT'
0100 REM %LIST PROCESSING MAINTENANCE MENU
0230 DATA 4,0,0,"DATAMERGE Maintenance Functions"
: DATA 4,5,10,"Please Select the Next Operation"
: DATA 1,7,21,1,"Display the Capitalization Exception Tables"
: DATA "Add a Capitalization Exception to the Table"
: DATA "Modify or Delete an Existing Exception Pair"
0280 DATA "Change Default Addresses of the IDEAS Files"
: DATA "Change Default User ID / Definition Address"
: DATA "\DE"
: DATA 4,21,40,"Press EXEC/RUN to Continue"
: DATA 4,22,40," CANCEL/EDIT to Return"
: DATA 0
: DATA 4,0,0," "
: DATA 4,15,05,"IDEAS Control File Address"
0360 DATA 4,15,45,"IDEAS Data File Address"
: DATA 2,15,33,3," "
: DATA 2,15,70,3," "
: DATA 4,21,40,"Press EXEC/RUN to Change Addresses"
: DATA 4,22,40," CANCEL/EDIT to Return"
: DATA 0
0420 DATA 4,0,0," "
: DATA 4,15,05,"Type of Entry"
: DATA 4,15,27,"Input String"
: DATA 4,15,53,"Output String"
: DATA 1,17,05,1,"Complete Word"
: DATA "Partial Word","\DE"
: DATA 2,15,41,8," "
: DATA 2,15,68,8," "
: DATA 4,21,40,"Press EXEC/RUN to Make Addition"
: DATA 4,22,40," CANCEL/EDIT to Return"
0520 DATA 0
0530 DATA 4,0,0," "
: DATA 4,15,05,"Type of Entry"
: DATA 4,15,27,"Input String"
: DATA 1,17,05,1,"Complete Word"
: DATA "Partial Word","\DE"
: DATA 2,15,41,8," "
: DATA 4,21,40,"Press EXEC/RUN to Modify Entry"
: DATA 4,22,40," CANCEL/EDIT to Return"
: DATA 0
: DATA 4,0,0," "
: DATA 4,15,27,"Input String"
0640 DATA 4,15,53,"Output String"
: DATA 2,15,41,8," "
: DATA 2,15,68,8," "
: DATA 4,21,0,"Enter SPACES in Both Strings"
: DATA 4,22,0," to Delete Exception Pair"
: DATA 0
0690 DATA 4,0,0," "
: DATA 4,15,05,"DATAMERGE User ID"
: DATA 4,15,35,"DATAMERGE Definition Address"
: DATA 2,15,24,3," "
: DATA 2,15,65,3," "
: DATA 4,21,40,"Press EXEC/RUN to Change Defaults"
: DATA 4,22,40," CANCEL/EDIT to Return"
: DATA 0
: COM L8(5),L1$6
: DIM L5$(64,2)8,L6$(64,2)8
0790 DIM E$80,L$2,N$8,I,J,T,X1$(24)8,X2$(2)8
: DIM S5(1),S0(1),T5(1),S3(1)
: DIM T1$(5)43,S1$(5)2
: DIM T1(6),S6(6),S1(6),T2$(6)37
: DIM T2(2),S7(2),S2(2),S4(2),T5$(2)8
: DIM S2$(16)2,S1$4
: DIM S2$1,T1$80,T2$2,K$1
: FOR I=1TO 4STEP 1
: DATA LOAD BA T(L8(1)+I)STR(L5$(),(I-1)*256+1,256)
0890 DATA LOAD BA T(L8(1)+10+I)STR(L6$(),(I-1)*256+1,256)
: NEXT I
: J=1
: PRINT HEX(03)
0930 GOSUB '61
: T5(1)=J
: PRINT AT(1,0);BOX(0,80);AT(20,0);BOX(0,80)
0950 GOSUB '62
: IF T5<=0THEN GOTO 1900
: IF T5>1THEN GOTO 950
: J=T5(1)
: ON T5(1)GOTO 1590,1120,1330,1000,1780
1000 GOSUB '61
: DATA LOAD DA T(L8(1))T5$(),X1$()
1020 GOSUB '62
: IF T5<=0THEN GOTO 1080
: IF T5>1THEN GOTO 1020
: IF VER(STR(T5$(1),1,3),"HHH")=3AND VER(STR(T5$(2),1,3),"HHH")=3THEN GOTO
1070
: PRINT AT(23,0,40);L1$;"Invalid Device Address";HEX(0F);
: GOTO 1020
1070 DATA SAVE DA T(L8(1))T5$(),X1$()
1080 PRINT AT(15,0,)
: RESTORE LINE230
: L9$(1)=T5$(1)
: L9$(2)=T5$(2)
: GOTO 930
1120 RESTORE LINE420
: GOSUB '61
1140 GOSUB '62
: IF T5<=0THEN GOTO 1270
: IF T5>1THEN GOTO 1140
: IF T5$(1)=" "AND T5$(2)=" "THEN GOTO 1270
: GOSUB '55(T5$(1),T5(1))
: IF I=0THEN GOTO 1200
: E$="Entry Already Exists"
: GOTO 1300
1200 GOSUB '55(HEX(0000000000000000),T5(1))
: IF I<>0THEN GOTO 1240
: E$="Translate Table Full"
: GOTO 1300
1240 IF LEN(T5$(1))=LEN(T5$(2))THEN 1250
: E$="Output and Input Lengths Must Be Equal"
: GOTO 1300
1250 IF T5(1)=1THEN L5$(I,1)=T5$(1)
: ELSE L6$(I,1)=T5$(1)
: IF T5(1)=1THEN L5$(I,2)=T5$(2)
: ELSE L6$(I,2)=T5$(2)
1270 PRINT AT(15,0,)
: RESTORE LINE230
: GOTO 930
1300 PRINT AT(23,0,40);L1$;E$;HEX(0F);
: GOTO 1140
1330 RESTORE LINE530
: GOSUB '61
1350 GOSUB '62
: IF T5<=0THEN GOTO 1530
: IF T5>1THEN GOTO 1350
: GOSUB '55(T5$(1),T5(1))
: IF I<>0THEN GOTO 1410
: E$="Entry Does Not Exist"
: GOTO 1560
1410 GOSUB '61
: T5$(1)=N$
: N1$=N$
: IF T5(1)=1THEN T5$(2)=L5$(I,2)
: ELSE T5$(2)=L6$(I,2)
1440 GOSUB '62
: IF T5<=0THEN GOTO 1530
: IF T5>1THEN GOTO 1440
: IF T5$(1)=" "AND T5$(2)=" "THEN T5$()=ALL(HEX(00))
: IF POS(T5$()>HEX(00))=0THEN GOTO 1500
: IF T5$(1)=N$OR T5$(1)=N1$THEN GOTO 1500
: I1=I
: GOSUB '55(T5$(1),T5(1))
: IF I=0THEN GOTO 1490
: N1$=N$
: E$="Entry Already Exists"
: PRINT AT(23,0,40);L1$;E$;HEX(0F);
: PRINT AT(15,53,24)
: GOTO 1330
1490 I=I1
: IF LEN(T5$(1))=LEN(T5$(2))THEN 1510
: E$="Output and Input Lengths Must Be Equal"
: PRINT AT(23,0,40);L1$;E$;HEX(0F);
: GOTO 1440
: I=I1
: IF T5(1)=1THEN L5$(I1,1)=T5$(1)
: ELSE L6$(I1,1)=T5$(1)
: IF T5(1)=1THEN L5$(I1,2)=T5$(2)
: ELSE L6$(I1,2)=T5$(2)
1500 IF LEN(T5$(1))=LEN(T5$(2))THEN 1510
: E$="Output and Input Lengths Must Be Equal"
: PRINT AT(23,0,40);L1$;E$;HEX(0F);
: GOTO 1440
1510 IF T5(1)=1THEN L5$(I,1)=T5$(1)
: ELSE L6$(I,1)=T5$(1)
: IF T5(1)=1THEN L5$(I,2)=T5$(2)
: ELSE L6$(I,2)=T5$(2)
1530 PRINT AT(15,0,)
: RESTORE LINE230
: GOTO 930
1560 PRINT AT(23,0,40);L1$;E$;HEX(0F);
: GOTO 1350
1590 GOSUB '45(1)
: PRINT AT(21,40);"Press EXEC/RUN to Display Next Table";
: PRINT AT(22,40);" CANCEL/EDIT to Return";
1620 KEYIN K$
: PRINT AT(23,0,);
: IF K$=HEX(F0)THEN GOTO 1700
: ELSE IF K$<>HEX(82)THEN GOTO 1730
: GOSUB '45(2)
: PRINT AT(21,40);"Press CANCEL/EDIT to Return";
1670 KEYIN K$
: PRINT AT(23,0,);
: IF K$<>HEX(F0)THEN GOTO 1750
1700 PRINT HEX(03)
: RESTORE LINE230
: GOTO 930
1730 PRINT AT(23,0,40);L1$;"Invalid Key";HEX(0F);
: GOTO 1620
1750 PRINT AT(23,0,40);L1$;"Invalid Key";HEX(0F);
: GOTO 1670
1780 RESTORE LINE690
: GOSUB '61
: DATA LOAD DA T(L8(1))X2$(),X1$()
: T5$(1)=X1$(2*#TERM-1)
: T5$(2)=X1$(2*#TERM)
1800 GOSUB '62
: IF T5<=0THEN GOTO 1860
: IF T5>1THEN GOTO 1800
: IF VER(STR(T5$(2),1,3),"HHH")=3THEN GOTO 1845
: PRINT AT(23,0,40);L1$;"Invalid Device Address";HEX(0F);
: GOTO 1800
1845 X1$(2*#TERM-1),L9$(3)=T5$(1)
: X1$(2*#TERM),L9$(4)=T5$(2)
: DATA SAVE DA T(L8(1))X2$(),X1$()
1860 PRINT AT(15,0,)
: RESTORE LINE230
: GOTO 930
1900 FOR I=1TO 4STEP 1
: DATA SAVE BA T(L8(1)+I)STR(L5$(),(I-1)*256+1,256)
: DATA SAVE BA T(L8(1)+10+I)STR(L6$(),(I-1)*256+1,256)
: NEXT I
: A0$()="LPSCREN1"&"Prime 62"
: LOAD T"LPDDOPEN"
1990 DEFFN'55(N$,T)
: IF T=1THEN MAT SEARCHL5$(),=STR(N$,1,8)TO L$STEP 16
: ELSE MAT SEARCHL6$(),=STR(N$,1,8)TO L$STEP 16
: I=VAL(L$,2)
: IF I=0THEN RETURN
: I=(I-1)/16+1
: RETURN
9000 DEFFN'0"SCRATCH T ";HEX(22);"LPMAINT";HEX(22)
9100 DEFFN'1"SAVE T() ";HEX(22);"LPMAINT";HEX(22)