20 'CRDMCD.ETJ Complement Program for merging with Tony B. Anderson's 22 'CRDFIL.BAS Program, this file will give CRDFIL.BAS Macro capability 24 'see CDMCDC.DOC for instructions Macro is accessed via "[","]", at prompt for card input 26 'Copyright 1988 Evan T. Jones POB 343 Annandale, Va. 22003 CIS(72326,3652) 27 'V-25 Bugs fixed current 10/20/88 278 GOTO602 280 290 292 294 296 298 300 302 304 102RF$(0)="CRDMAC":KEY7,"":RF$=RF$(0):IFPEEK(2)=152THENAK=639:AL=599:LQ=15ELSEAK=319:AL=279:LQ=7 100 MAXFILES=2:CLEAR1000:M=0 242Q$=INPUT$(1):GOSUB430 244 246 248 250CLS:PRINT@41,"Do you want to make any changes? (Y/N) ";:Q$=INPUT$(1):PRINTQ$:IFQ$=""THEN270 414GOSUB1350:GOSUB430:GOTO412 430TS=0:GOSUB4000 432PRINT@39,"";:Q$=INPUT$(1) 434IFQ$=CHR$(13)THEN438ELSEGOSUB3100 436IFCR=1THENCR=0:GOTO432 438RETURN 508GOSUB1350:FORA=1TON:IFINSTR(B$(A),S$)THENGOSUB430ELSENEXT:GOTO506 510M=1:CLS:GOTO504 604GOTO1510 606 608 609 612IFINSTR("Nn",Q$)THENGOTO604 626CLOSE1:GOSUB1450:GOTO604 1400 CLS:PRINT@41,"Now ready for input phase. Press the ENTER key to start. Type ";CHR$(164);"END";CHR$(160);" at any" 1402 PRINT" prompt to terminate the input mode and return to the opening menu. Press the ";CHR$(164);"[";CHR$(160);" key at any prompt for MACRO and special key menu. ";:LINEINPUTQ$ 1450FORA=1TON:B$(A)="":NEXT:RETURN 1510GOSUB4000 1560AX=0 1564B$(0)="" 1570Q$=INPUT$(1) 1575IFMR=1THEN1580ELSEIFQ$=CHR$(0)THENMA=1:GOTO1820ELSE:IFQ$=CHR$(9)THENB$(A)=B$(A)+B$(0):AX=LEN(B$(A)):CO=1:GOSUB4050:PRINTB$(A);:GOTO1564 1580IFQ$=CHR$(8)THEN1650 1590IFMR=1THEN1700 1600IFQ$="]"ORQ$="["THEN1760 1610IFQ$=CHR$(13)THEN1810 1620TS(0)=TS:GOSUB3000:IFTS(0)<>TSTHENGOSUB4002 1630IFMR=1ANDCR=1THENCR=0:GOTO1920ELSEIFCR=1THENCR=0:GOSUB4050:GOTO1560 1640IFMR<>1ANDCO<>1THENIFB$(A)<>""ANDB$(0)=""THENGOSUB4200:GOSUB4050 1644PRINTQ$;:B$(0)=B$(0)+Q$:AX=AX+1:IF(P(A)+LEN(A$(A))+AX-TS)>ALTHENTS=TS+40:GOSUB4002:PRINTB$(A);B$(0); 1646GOTO1570 1650CR=0:IFMR=1THEN1680ELSEIFB$(0)=""THENGOSUB4200:GOSUB4050:GOTO1560 1670AX=AX-1:B$(0)=LEFT$(B$(0),LEN(B$(0))-1):PS=P(A)-TS+LEN(B$(0))+LEN(A$(A)):IFCO=1THENPS=PS+LEN(B$(A)) 1674PRINT@PS," ":PRINT@PS,"";:GOTO1570 1680IFB$(0)=""THEN1900 1690B$(0)=LEFT$(B$(0),LEN(B$(0))-1):PRINT@(214+LEN(B$(0)))," ":GOTO1920 1700IFQ$=CHR$(21)THENRD=1 1710IFRD=1THEN2130 1720IFQ$="R"ORQ$="r"THENMR=0:RF$=RF$(0):GOSUB4002:IFCO=1THENPRINTB$(A);:GOTO1564ELSE1560 1726IFQ$="K"ORQ$="k"THENGOSUB4600:GOTO1900 1730IFQ$="H"ORQ$="h"THENHP=1:GOTO1930ELSE1600 1740CLS:PRINT:PRINTRF$:GOTO1210 1760IFB$(0)=""THEN1900 1770MM=VAL(B$(0)):MM$=STR$(MM):MM$=MID$(MM$,2) 1780IFB$(0)=MM$THEN1930 1790IFRD=1THEN2130 1800IFMR=1THEN1900ELSE1820 1810IFMR=1THEN1770 1820IFCO=1THENB$(A)=B$(A)+B$(0):B$(0)=B$(A)ELSEIFB$(0)=""ANDB$(A)<>""THENB$(0)=B$(A) 1821IFCO=1THEN1822ELSEB$(A)=B$(0):IFB$(A)=""THENGOSUB4200 1822IFB$(A)=""THENB$(A)=" " 1823IFMA=1THEN1840 1824IFINSTR("ENDEndend",B$(A))THENRUN 1825IFLEFT$(B$(A),1)="!"THENB$(0)=B$(A):B$(A)="":RD=1:GOTO2130 1827IFMR=1THENGOSUB4002ELSEIFRD=1THENGOSUB4010ELSEGOSUB4050:PRINTB$(0); 1828GOSUB2124:IFCO=1THENRD=0:MR=0:TT=0:CO=0 1829AX=0:IFA=NANDMR=1ORA=NANDTT=1THENFORAA=1TO600:NEXT:MR=0:TT=0:RD=0:GOTO610ELSEIFA=NTHEN610 1830A=A+1:RD=0:CO=0:TT=0:MR=0:TS(0)=TS:GOSUB4500:IFTS(0)=TSTHENGOSUB4050ELSEGOSUB4002 1831GOTO1560 1840CLS:PRINT@42,"Adding ";CHR$(34);B$(A);CHR$(34);" to ";RF$;" file...." 1850OPENRF$FORAPPENDAS2:PRINT#2,B$(A):CLOSE2:FORAA=1TO600:NEXT:GOSUB4002:MA=0:GOTO1824 1900CLOSE2:KEY(7)OFF:B$(0)="":CLS:PRINT:PRINT" Push to list ";RF$;".DO file" 1910print" Push to return to card file" 1916PRINT" Push for key definition 1920PRINT@(212+LEN(B$(0)))," ":PRINT@202,"CRDMAC# ? ";B$(0);:MR=1:CR=0:GOTO1570 1930ZZ=0:CR=0 1940ONERRORGOTO1740 1950OPENRF$FORINPUTAS2 1970ZZ=ZZ+1 1980IFEOF(2)THEN2100 1990LINEINPUT#2,XX$ 2000IFHP=1THEN2030 2010IFZZ<>MMTHEN1970 2020B$(0)=XX$:CLOSE2:IFCO=1ANDMR=1THENGOSUB4002:Q$=CHR$(9):MR=0:GOTO1575ELSEIFCO=1THENGOSUB4050:Q$=CHR$(9):GOTO1575ELSEGOTO1820 2030IFZZ=1THENCLS:PRINT@280,"" 2040PRINT"CRDMAC# ";ZZ;"= ";XX$ 2050LL=LL+1 2060IFLL to stop any key to continue"; 2080LL=0:Q$=INPUT$(1) 2090IFQ$="S"ORQ$="s"THENMR=0:HP=0:CLOSE2:GOSUB4002:GOTO1560:ELSEPRINT:GOTO1970 2100IFHP=0THENCLS:PRINT@42,"CRDMAC# not found":PRINT@82,"Push any key to continue"ELSE2110 2104IFINKEY$=""THEN2104ELSECLOSE2:GOSUB4002:GOSUB2124:GOTO1560 2110HP=0:PRINT" CRDMAC.DO review completed press any key for CRDMAC menu":LL=0 2120IFINKEY$=""THEN2120ELSE1900 2124RF$=RF$(0):RETURN 3000IFMR=1THEN3030 3010IFQ$=CHR$(30)ORQ$=CHR$(29)THEN3040 3020IFQ$=CHR$(31)ORQ$=CHR$(28)THEN3060 3030RETURN 3040GOSUB3080:A=A-1:CO=0:IFA=0THENA=1 3050CR=1:GOSUB4500:GOTO3030 3060GOSUB3080:A=A+1:CO=0:IFA>NTHENA=N 3070GOTO3050 3080IFAX>0THENB$(A)="" 3090IFB$(A)=""THENGOSUB4200 3094RETURN 3100TS(0)=TS:GOSUB4100:GOSUB3000:IFTS(0)<>TSTHEN3120 3110IFCR=1THENGOSUB4050 3114GOSUB4110:RETURN 3120GOSUB4002:GOTO3110 4000A=1:TS=0 4002CLS 4006IF(P(A)+LEN(A$(A))+LEN(B$(A))-TS)>ALTHENTS=TS+40:GOTO4006 4010FORYY=1TON 4020IFP(YY)(TS+AL)THEN4040 4030PRINT@(P(YY)-TS),A$(YY);B$(YY) 4040NEXT 4050IF(P(A)+LEN(A$(A))+LEN(B$(A))-TS)>ALTHENTS=TS+40:GOSUB4002:GOTO4050 4060PRINT@(P(A)-TS),A$(A); 4070RETURN 4100GOSUB4106:PRINT@MZ," ":RETURN 4106MZ=P(A)-TS+LEN(A$(A))-1:IFMZ<0THENMZ=0 4107RETURN 4110GOSUB4106:PRINT@MZ,CHR$(155):RETURN 4200IFB$(A)=""THENAH=LEN(B$(0))ELSEAH=LEN(B$(A)) 4202IFCO=1THENAH=AX 4204IF(P(A)-TS+AH)>AKTHENGOSUB4002:GOTO4220 4210AA=P(A)+LEN(A$(A)):FORYY=AATO(AA+AH):PRINT@(YY-TS)," ";:NEXT 4220B$(A)="":B$(0)="":AX=0:RETURN 4500IFP(A)TS+AKTHEN4550 4520RETURN 4530TS=P(A):TS=(INT(TS/40))*40:IFTS=40THENTS=0 4540GOTO4520 4550TS=P(A)-AL+LEN(B$(A)):TS=(INT(TS/40))*40:GOTO4520 4600 CLS:PRINT" SPECIAL KEY/FUNCTION DEFINITION":PRINT" = Deletes "; 4601PRINT"character or response.";:PRINT" = Concatenation of entries." 4604 PRINT" = Adds current response to MACRO or CRDMAC file." 4607GOSUB4670 4606PRINT" <[> = Assesses CRDMAC menu." 4608CLS:PRINT:PRINT" <[> = Completes response with "; 4609PRINT"macro from CRDMAC file.":PRINT" <[> = Enters as "; 4610PRINT" response." 4611GOSUB4670 4612CLS:PRINT:PRINT" <";CHR$(153);">or<";CHR$(152);"> = Moves curser between prompts." 4620PRINT" = Not installed Merge CRDRDB.ETJ to use." 4625GOSUB4670 4627 CLS:PRINT@41," = M200 cross bank I/O file format using "; 4628PRINT"XBASIC.CO. Not installed merge CRD2XB.ETJ to activate." 4629GOSUB4670 4630CLS:PRINT:PRINT" ,<#>,<#>,/,<#>,<#>,<#> = Not installed. Merge"; 4631PRINT" CRDRDB.ETJ enabling Data File Coordinator and alternate MACRO "; 4632PRINT"file capability. See "; 4640PRINT" CDMCDC.DOC for further instructions.":GOSUB4670:RETURN 4670PRINT:PRINT" Push to continue";:Q$=INPUT$(1) 4680IFQ$=CHR$(13)THENRETURNELSE4670 5000CLS:PRINT@41,"Error is ";ERR;" on line ";ERL:STOP